Навесь на кнопки дата атрибуты, при событии click считывай их, передавай в функцию для открытия форм, перезаписывай значения из параметров данной функции. Примерно так
Индекс максимального значения перезаписывается в переменную и его значение сравнивается с текущим значением в цикле, если текущее больше последнего максимального, то его индекс перезаписывается в переменную максимального иначе просто пропускается.
Держи https://webformyself.com/avtomaticheskaya-css-inve... не поддерживается edge ie, и в любом случае нужно воспользоваться js для определения положения фиксированного элемента и передавать противоположный цвет в это свойство. Для старых браузеров ищи скрипты на js, твоя штука называется инверсия цвета.
Первый вариант) И это изобретение велосипеда БЭМ)
UPD посмотрел на коммент Евгений и не могу не согласится с ним, но с оговоркой. Если вы не крупный разработчик, а просто версатальщик, разделять по папкам просто ресурсы по типу. В крупных проектах используется первый вариант, ваш второй вариант не нужно разделять по блокам вообще. В js фреймворках и так все логично делится, и не нужно ничего придумывать.
Зависит от размера сайта. Если стили весят 1мб+ то уже стоит задуматься о разделении. А иначе это особого смысла не имеет. Для spa бандлы весят и более 2мб, ничего как то живем)