2 --main-bright-color: #00A3E1;
3 --main-dark-color: #002B49;
4 --secondary-bright-color: #FFFFFF;
5 --secondary-dark-color: #212322;
6 --danger-color: #CC1111;
7 --warning-color: #CC8800;
8 --success-color: #5CB85C;
9 --regular-font: "GalanoGrotesqueW00-Regular";
10 --base-font-size: 16px;
14 font-family: "GalanoGrotesqueW00-Regular";
15 src: url
("GalanoGrotesqueW00-Regular.woff2") format
("woff2");
18 :root
[lang
="bg"], :root
[lang
="ru"], :root
[lang
="uk"], :root
[lang
="el"], :root
[lang
="he"] {
19 --regular-font: "Helvetica";
23 * resets and base style
29 box-sizing: border-box
;
30 text-decoration: none
;
33 font-family: var
(--regular-font
), "sans-serif";
38 -webkit-appearance: none
;
39 -webkit-text-size-adjust: none
;
47 background: #fff linear-gradient
(90deg, rgba
(0, 0, 0, .8), rgba
(0, 0, 0 ,.5), rgba
(0, 0, 0, .8));
51 background: var
(--secondary-bright-color
);
52 color: var
(--secondary-dark-color
);
53 font-size: var
(--base-font-size
);
56 flex-direction: column
;
61 abbr
[title
], acronym
[title
] {
62 text-decoration: dotted underline
;
70 background-color: var
(--main-bright-color
);
71 background-image: url
("logo.svg");
72 background-position: 10px center
;
73 background-size: 50px 50px;
74 background-repeat: no-repeat
;
75 padding: 0 1em 0 70px;
79 color: var
(--secondary-bright-color
);
82 box-shadow: inset
0 0 1px var
(--main-dark-color
);
94 text-overflow: ellipsis
;
97 #menubar .distversion
{
107 background: var
(--secondary-bright-color
);
108 color: var
(--main-bright-color
);
109 display: inline-block
;
119 #indicators > [data-style
="inactive"] {
120 background: var
(--main-bright-color
);
121 color: var
(--secondary-bright-color
);
122 border: 2px solid var
(--secondary-bright-color
);
123 line-height: calc
(1.5em - 4px);
124 padding: 0 calc
(.5em - 2px);
133 background: var
(--main-bright-color
);
137 color: var
(--secondary-bright-color
);
138 box-shadow: inset
0 0 1px var
(--main-dark-color
);
147 #modemenu > .active
{
149 border-bottom: 2px solid var
(--secondary-bright-color
);
154 display: inline-flex
;
161 background: var
(--main-dark-color
);
162 color: var
(--main-bright-color
);
169 transition: all
.2s ease-in-out
;
190 transition: max-height
.1s ease-in-out
;
193 #mainmenu li
.selected
> a
{
194 color: var
(--secondary-bright-color
);
197 #mainmenu ul:not
(.active
) > li
.selected
> ul
,
198 #mainmenu li
.active
> ul
{
200 transition: max-height
1s ease-in-out
;
201 margin: 0 0 .5em .5em;
204 #mainmenu .l1
> li
> a
{
211 padding: 1em 1em 0 1em;
219 background: var
(--main-bright-color
);
220 color: var
(--secondary-bright-color
);
228 body
.modal-overlay-active
{
232 body
.modal-overlay-active #modal_overlay
{
244 background: rgba
(0, 0, 0, 0.7);
247 -webkit-overflow-scrolling: touch
;
248 transition: opacity
.125s ease-in
;
252 #modal_overlay > .modal
{
255 margin: 10% auto
5rem auto
;
256 background: var
(--secondary-bright-color
);
257 box-shadow: 0 0 3px 1px var
(--main-bright-color
);
259 border-radius: .25em;
261 flex-direction: column
;
264 .modal > h4:first-child {
266 margin: -.5rem -.5rem .5rem -.5rem;
267 background: var
(--main-bright-color
);
268 color: var
(--secondary-bright-color
);
269 border-radius: .25rem .25rem 0 0;
272 .modal > *:first-child:last-child {
273 margin: .5em 0 !important
;
276 .modal .cbi-section > legend:first-child { font-size: 120%; }
287 border-collapse: collapse
;
290 tr
.cbi-section-table-titles
[data-title
]::before
{
295 tr
[data-title
]::before
{
296 content: attr
(data-title
);
298 border-top: 1px solid var
(--main-dark-color
);
306 /* word-break: break-word; */
309 .cbi-section-table-descr th {
316 border-top: 1px solid var
(--main-dark-color
);
318 vertical-align: middle
;
321 td
input:not
([type
]),
322 td input
[type
="text"],
323 td input
[type
="password"],
325 td
.cbi-dropdown:not
(.btn
):not
(.cbi-button
),
333 box-shadow: 0 -6px 6px var
(--main-bright-color
);
337 box-shadow: 0 6px 6px var
(--main-bright-color
);
345 tr
.placeholder
> td
{
357 * view specific table invariants
360 #cbi-wireless-wifi-device .ifacebadge
{
361 flex-direction: column
;
362 justify-content: space-around
;
366 [data-page
="admin-status-overview"] td
{
368 vertical-align: middle
;
371 .assoclist td:nth-of-type(3) > span {
377 .assoclist td:nth-of-type(5) > span {
381 .assoclist td > .ifacebadge {
383 justify-content: space-around
;
388 .assoclist td > .ifacebadge::after {
390 text-overflow: ellipsis
;
393 .assoclist td > .ifacebadge > img {
397 .assoclist td > .ifacebadge[data-ssid][data-ifname] > span {
401 .assoclist td > .ifacebadge[data-ssid][data-ifname]::after {
402 content: attr
(data-ssid
) " (" attr
(data-ifname
) ")";
405 [data-page
="admin-status-overview"] td:nth-of-type
(3) {
409 [data-page
="admin-network-firewall"] table
> tr
> *:nth-child
(1) {
413 [data-page
="admin-network-wireless"] .cbi-section-actions
> div
{
417 [data-page
="admin-network-wireless"] .cbi-section-actions
> div
> * {
421 [data-page
="admin-status-processes"] table
td:nth-of-type
(3),
422 [data-tab
="leases"] table td
[data-name
="duid"] {
423 word-break: break-word
;
436 .uci-change-list del
,
437 .uci-change-list ins
,
438 .uci-change-list var
,
439 .uci-change-legend-label del
,
440 .uci-change-legend-label ins
,
441 .uci-change-legend-label var {
442 text-decoration: none
;
443 font-family: monospace
;
445 border: 1px solid
#ccc;
453 .uci-change-list h5 {
454 margin: .5em 0 .25em 0;
457 .uci-change-list ins
,
458 .uci-change-legend-label ins {
463 .uci-change-list del
,
464 .uci-change-legend-label del {
469 .uci-change-list var
,
470 .uci-change-legend-label var {
475 .uci-change-list var ins
,
476 .uci-change-list var del {
477 display: inline-block
;
489 .uci-change-legend-label {
494 .uci-change-legend-label
> ins
,
495 .uci-change-legend-label
> del
,
496 .uci-change-legend-label > var {
505 .uci-change-legend-label var ins
,
506 .uci-change-legend-label var del {
520 text-align: left
!important
;
524 text-align: right
!important
;
528 text-align: center
!important
;
532 vertical-align: top
!important
;
536 vertical-align: bottom
!important
;
540 vertical-align: middle
!important
;
544 white-space: nowrap
!important
;
548 display: none
!important
;
565 [data-name
="_freq"] select
{
569 .cbi-value-field > div:first-child + br {
577 h1
, h2
, h3
, h4
, h5
, h6
,
578 .cbi-section > legend:first-child {
587 h1
{ font-size: 160%; }
588 h2
{ font-size: 150%; }
589 h3
{ font-size: 140%; }
590 h4
{ font-size: 130%; }
591 h5
{ font-size: 120%; }
592 h6
{ font-size: 110%; }
594 .cbi-section > legend:first-child { font-size: 140%; }
600 p
> textarea:last-child
{
605 color: var
(--main-dark-color
);
610 font-family: monospace
;
611 color: var
(--main-dark-color
);
615 font-family: monospace
;
618 box-shadow: inset
0 0 2px var
(--main-dark-color
);
632 padding: 0 0 0 1.5em;
640 text-decoration: underline
;
647 .ifacebox, .ifacebadge, .zonebadge {
648 display: inline-flex
;
652 box-shadow: 0px 0px 2px var
(--main-dark-color
);
657 vertical-align: text-top
;
658 background: var
(--secondary-bright-color
);
660 color: var
(--secondary-dark-color
);
661 vertical-align: middle
;
664 .zonebadge > .ifacebadge {
665 margin: .125em -.125em .125em .35em;
668 .zonebadge
> .ifacebadge
> img
670 margin: .125em 0 .125em .25em;
674 display: inline-flex
;
675 flex-direction: column
;
683 background: var
(--main-bright-color
);
689 padding: .3em .25em .25em .25em;
694 display: inline-flex
;
703 vertical-align: text-bottom
;
712 .network-status-table {
713 display: inline-flex
;
716 margin: 0 -.2em 1em -.2em;
719 .network-status-table > .ifacebox {
726 .network-status-table > .ifacebox .ifacebadge {
733 .network-status-table .ifacebox-body > div {
736 margin: .3em -.1em -.1em -.1em;
739 .cbi-tooltip-container {
747 box-shadow: 0 0 2px rgba
(0, 0, 0, .7);
749 background: var
(--secondary-bright-color
);
753 transition: opacity
.25s ease-in
;
758 color: var
(--danger-color
);
761 .cbi-tooltip-container:hover .cbi-tooltip:not(:empty) {
764 transition: opacity
.25s ease-in
;
773 border-radius: .25em;
777 box-shadow: 0 0 2px var
(--main-dark-color
);
782 .cbi-progressbar > div {
783 background: var
(--main-bright-color
);
785 transition: width
.25s ease-in
;
789 .cbi-progressbar::after {
796 text-shadow: 0 0 2px var
(--secondary-bright-color
);
797 content: attr
(title
);
804 margin: 0 -.5em 1em -.5em;
806 color: var
(--main-dark-color
);
810 display: inline-flex
;
818 .cbi-tabmenu > li > a {
823 .cbi-tabmenu > .cbi-tab > a {
824 border-bottom: 2px solid var
(--main-dark-color
);
830 transition: opacity
.25s ease-in-out
;
834 [data-tab-active
="true"] {
841 .alert-message:not(.modal) {
842 box-shadow: 0 0 3px var
(--secondary-dark-color
);
845 background: var
(--warning-color
);
846 color: var
(--secondary-bright-color
);
847 transition: opacity
.4s ease
;
850 .alert-message + .alert-message {
851 margin: -.5em 0 1em 0;
854 .alert-message.info {
855 background: var
(--main-bright-color
);
858 .alert-message.warning {
859 background: var
(--warning-color
);
862 .alert-message.danger {
863 background: var
(--danger-color
);
866 .alert-message.success {
867 background: var
(--success-color
);
870 .alert-message .btn {
871 box-shadow: 0 0 2px var
(--secondary-bright-color
);
874 .alert-message .btn:hover {
875 box-shadow: 0 0 4px 1px var
(--secondary-bright-color
);
883 @keyframes fade-out
{
889 animation: fade-in
.4s ease
;
893 animation: fade-out
.4s ease
;
902 background: var
(--main-bright-color
);
903 color: var
(--secondary-bright-color
);
905 border-radius: .25em;
907 box-shadow: 0 0 2px var
(--main-dark-color
);
909 display: inline-block
;
912 button:hover
, .btn:hover
{
913 box-shadow: 0 0 6px var
(--main-bright-color
);
916 button
+ button
, .btn
+ .btn
, button
+ .btn
, .btn
+ button
, select
+ button
{
921 background: var
(--main-dark-color
);
924 button
[disabled
], button
.disabled
, .btn
[disabled
], .btn
.disabled
{
925 pointer-events: none
;
929 .cbi-button-apply, .cbi-button-positive {
930 background: var
(--main-dark-color
);
933 .cbi-button-negative, .cbi-button-remove {
934 background: var
(--danger-color
);
937 input
[type
="checkbox"],
938 input
[type
="radio"] {
939 --bd-color: var
(--main-dark-color
);
940 --fg-color: var
(--main-dark-color
);
943 -webkit-appearance: none
;
946 color: var
(--fg-color
);
948 display: inline-block
;
954 input
[type
="checkbox"]::before
,
955 input
[type
="checkbox"]::after
,
956 input
[type
="radio"]::before
,
957 input
[type
="radio"]::after
{
963 input
[type
="checkbox"]::before
,
964 input
[type
="radio"]::before
{
969 box-shadow: 0 0 2px var
(--bd-color
) !important
;
970 border-radius: .25em;
974 input
[type
="radio"]::before
{
978 input
[type
="checkbox"]::after
,
979 input
[type
="radio"]::after
{
986 input
[type
="checkbox"]:checked::after
,
987 input
[type
="radio"]:checked::after
{
988 --checkmark-icon: url
("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20'><path d='m2.5 7.4 7.5 7.5-2.5 2.4L0 10Zm15-5L20 4.9 7.5 17.3 5 15Z'/></svg>");
989 -webkit-mask: var
(--checkmark-icon
) center
/cover no-repeat
;
990 mask: var
(--checkmark-icon
) center
/cover no-repeat
;
991 background: var
(--fg-color
);
994 input
[type
="radio"]:checked:after
{
995 --checkmark-icon: url
("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20'><circle cx='10' cy='10' r='7'/></svg>");
998 input
[type
="checkbox"].cbi-input-invalid
,
999 input
[type
="radio"].cbi-input-invalid
{
1000 --bd-color: var
(--danger-color
);
1001 --fg-color: var
(--danger-color
);
1006 input
[type
="password"],
1008 .cbi-dropdown:not(.btn):not(.cbi-button) {
1009 border-bottom: 2px solid transparent
;
1010 box-shadow: inset
0 0 1px var
(--main-dark-color
);
1012 line-height: 1.5rem;
1013 min-height: calc
(1.5rem + 2px);
1015 border-radius: .25em;
1018 input:not
([type
]):focus
,
1019 input
[type
="text"]:focus
,
1020 input
[type
="password"]:focus
,
1022 .cbi-dropdown:not
(.btn
):not
(.cbi-button
):focus
,
1023 .cbi-dropdown[open]:not(.btn):not(.cbi-button) {
1024 border-color: var
(--main-dark-color
);
1027 input
[disabled
]:not
([type
]),
1028 input
[disabled
][type
="text"],
1029 input
[disabled
][type
="password"],
1031 .cbi-dynlist[disabled] {
1033 pointer-events: none
;
1036 input:not
([type
]) + .btn
, input:not
([type
]) + button
,
1037 input
[type
="text"] + .btn
, input
[type
="text"] + button
,
1038 input
[type
="password"] + .btn
, input
[type
="password"] + button
{
1039 margin: 0 0 2px -1px;
1040 background: var
(--main-dark-color
);
1041 border-radius: 0 .25em .25em 0;
1044 .control-group > select + .btn, .control-group > select + button {
1048 .control-group
> input:not
([type
]) + .btn
, .control-group
> input:not
([type
]) + button
,
1049 .control-group
> input
[type
="text"] + .btn
, .control-group
> input
[type
="text"] + button
,
1050 .control-group > input[type="password"] + .btn, .control-group > input[type="password"] + button {
1051 margin: .125em .125em calc
(.125em + 2px) calc
(-.125em - .25em) !important
;
1056 -webkit-appearance: menulist
;
1061 box-shadow: inset
0 0 2px var
(--main-dark-color
);
1062 font-family: monospace
;
1068 .cbi-input-invalid:focus {
1069 color: var
(--danger-color
);
1070 border-color: var
(--danger-color
) !important
;
1071 box-shadow: inset
0 0 2px var
(--danger-color
);
1075 display: inline-flex
;
1081 .control-group > .cbi-dropdown > ul > li {
1082 justify-content: space-around
;
1085 .control-group > * {
1086 margin: .125rem !important
;
1087 min-width: auto
!important
;
1090 .control-group
> select
,
1091 .control-group
> input:not
([type
]),
1092 .control-group
> input
[type
="text"],
1093 .control-group > input[type="password"] {
1103 .cbi-value > label:first-child {
1105 padding: 0 .5em 0 0;
1108 .cbi-value > .cbi-value-field {
1112 .cbi-value > .cbi-section {
1119 .cbi-value-description
,
1120 .cbi-value[data-widget="CBI.DummyValue"] > div:first-child {
1127 .cbi-value-description a {
1128 color: var
(--main-bright-color
);
1129 text-decoration: none
;
1132 .cbi-map-descr
a:hover
,
1133 .cbi-value-description a:hover {
1134 color: var
(--main-bright-color
);
1135 text-decoration: underline
;
1143 .cbi-section-create {
1148 display: inline-block
;
1150 min-height: calc
(1.5em + 2px);
1156 .cbi-dynlist > .item {
1157 box-shadow: 0 0 2px var
(--main-dark-color
);
1159 padding: .15em 2em .15em .2em;
1160 border-radius: .25em;
1163 transition: box-shadow
.25s ease-in-out
;
1164 pointer-events: none
;
1166 word-break: break-all
;
1169 .cbi-dynlist > .item::after {
1175 background: var
(--main-bright-color
);
1177 align-items: center
;
1178 justify-content: space-around
;
1180 box-shadow: 0 0 2px var
(--main-dark-color
);
1182 color: var
(--secondary-bright-color
);
1184 pointer-events: all
;
1187 .cbi-dynlist[disabled] > .item::after {
1188 pointer-events: none
;
1191 .cbi-dynlist > .item:hover {
1192 box-shadow: 0 0 2px var
(--main-bright-color
);
1195 .cbi-dynlist > .add-item {
1200 .cbi-dynlist > .add-item > input {
1203 border-radius: .25rem 0 0 .25rem;
1206 .cbi-dynlist > .add-item > .btn {
1208 margin: 0 0 2px -1px;
1214 display: inline-flex
!important
;
1218 padding: 0 !important
;
1221 .cbi-dropdown:not(.btn):not(.cbi-button) {
1222 box-shadow: inset
0 0 1px var
(--main-dark-color
);
1225 .cbi-dropdown > ul {
1226 margin: 0 !important
;
1235 .cbi-dropdown.btn > ul:not(.dropdown) {
1239 .cbi-dropdown.btn.spinning > ul:not(.dropdown) {
1243 .cbi-dropdown.btn > ul.dropdown > li {
1244 color: var
(--main-dark-color
);
1247 .cbi-dropdown > ul.preview {
1251 .cbi-dropdown
> .open
,
1252 .cbi-dropdown > .more {
1256 flex-direction: column
;
1257 justify-content: center
;
1262 .cbi-dropdown
.btn
> .open
,
1263 .cbi-dropdown.cbi-button > .open {
1266 border-left: 1px solid
;
1269 .cbi-dropdown
> .more
,
1270 .cbi-dropdown:not(.btn):not(.cbi-button) > ul > li[placeholder] {
1272 justify-content: center
;
1273 color: rgba
(0, 0, 0, .5);
1276 .cbi-dropdown > ul > li {
1278 white-space: nowrap
;
1280 text-overflow: ellipsis
;
1283 align-items: center
;
1288 .cbi-dropdown
> ul
.dropdown
> li
,
1289 .cbi-dropdown:not(.btn):not(.cbi-button) > ul > li {
1293 .cbi-dropdown > ul > li .hide-open { display: block
; display: initial
; }
1294 .cbi-dropdown > ul > li .hide-close { display: none
; }
1296 .cbi-dropdown > ul > li[display]:not([display="0"]) {
1297 border-left: 1px solid
#ccc;
1300 .cbi-dropdown[empty] > ul {
1305 .cbi-dropdown > ul > li > form {
1309 pointer-events: none
;
1312 .cbi-dropdown > ul > li img {
1314 margin-right: .25em;
1317 .cbi-dropdown > ul > li input[type="text"] {
1320 background: var
(--secondary-bright-color
);
1323 .cbi-dropdown[open] {
1327 .cbi-dropdown[open] > ul.dropdown {
1329 background: var
(--secondary-bright-color
);
1330 box-shadow: 0 0 1px var
(--main-dark-color
), 0 0 4px rgba
(0, 0, 0, .7);
1336 transition: max-height
.125s ease-in
;
1339 .cbi-dropdown
> ul
> li
[display
],
1340 .cbi-dropdown
[open
] > ul
.preview
,
1341 .cbi-dropdown
[open
] > ul
.dropdown
> li
,
1342 .cbi-dropdown
[multiple
] > ul
> li
> label
,
1343 .cbi-dropdown
[multiple
][open
] > ul
.dropdown
> li
,
1344 .cbi-dropdown
[multiple
][more
] > .more
,
1345 .cbi-dropdown[multiple][empty] > .more {
1347 display: flex
!important
;
1350 .cbi-dropdown
[empty
] > ul
> li
,
1351 .cbi-dropdown
[optional
][open
] > ul
.dropdown
> li
[placeholder
],
1352 .cbi-dropdown[multiple][open] > ul.dropdown > li > form {
1353 display: block
!important
;
1356 .cbi-dropdown[open] > ul.dropdown > li .hide-open { display: none
; }
1357 .cbi-dropdown[open] > ul.dropdown > li .hide-close { display: block
; display: initial
; }
1359 .cbi-dropdown[open] > ul.dropdown > li {
1360 border-bottom: 1px solid
#ccc;
1363 .cbi-dropdown[open] > ul.dropdown > li[selected] {
1364 background: var
(--main-dark-color
);
1365 color: var
(--secondary-bright-color
);
1368 .cbi-dropdown
[open
] > ul
.dropdown
> li
.focus
,
1369 .cbi-dropdown[open] > ul.dropdown > li:hover {
1370 background: var
(--main-bright-color
);
1373 .cbi-dropdown[open] > ul.dropdown > li:last-child {
1375 border-bottom: none
;
1378 .cbi-dropdown[open] > ul.dropdown > li[unselectable] {
1382 .cbi-dropdown[open] > ul.dropdown > li > input.create-item-input:first-child:last-child {
1386 .cbi-dropdown[disabled] {
1387 pointer-events: none
;
1394 box-shadow: 0 0 2px var
(--main-dark-color
);
1395 border-radius: .25rem;
1397 flex-direction: column
;
1403 .cbi-filebrowser.open {
1409 transition: opacity
.25s ease-in
;
1412 .cbi-filebrowser > * {
1415 text-overflow: ellipsis
;
1416 padding: 0 0 .25em 0;
1417 margin: .25em .25em 0px .25em;
1418 white-space: nowrap
;
1419 border-bottom: 1px solid var
(--main-dark-color
);
1422 .cbi-filebrowser .cbi-button-positive {
1423 margin-right: .25em;
1426 .cbi-filebrowser > div {
1427 border-bottom: none
;
1430 .cbi-filebrowser > ul > li {
1432 flex-direction: row
;
1433 align-items: center
;
1436 .cbi-filebrowser > ul > li a:hover {
1438 text-decoration: underline
;
1441 .cbi-filebrowser > ul > li > div:first-child {
1444 text-overflow: ellipsis
;
1447 .cbi-filebrowser > ul > li > div:last-child {
1452 .cbi-filebrowser > ul > li > div:last-child > button {
1453 padding: .125em .25em;
1454 margin: 1px 0 1px .25em;
1457 .cbi-filebrowser .upload {
1459 flex-direction: row
;
1461 margin: 0 -.125em .25em -.125em;
1462 padding: 0 0 .125em 0px;
1463 border-bottom: 1px solid var
(--main-dark-color
);
1466 .cbi-filebrowser .upload > * {
1471 .cbi-filebrowser .upload > div > input {
1475 .cbi-section-actions {
1482 justify-content: flex-end
;
1485 border-top: 1px solid var
(--main-dark-color
);
1490 div
[id$
=".ipaddr"] > input
,
1491 .cbi-value-field > div > input[type="password"] {
1493 border-radius: .25rem 0 0 .25rem;
1496 div
[id$
=".txpower"] {
1498 align-items: center
;
1501 div
[id$
=".txpower"] > span
{
1502 white-space: nowrap
;
1506 div
[id$
=".editlist"] {
1510 [data-errors
]::after
{
1511 content: attr
(data-errors
);
1512 background: var
(--danger-color
);
1513 color: var
(--secondary-bright-color
);
1514 border-radius: .6rem;
1518 display: inline-block
;
1522 margin: -.1rem 0 0 -.2rem;
1527 100% { transform: rotate
(360deg); }
1532 padding-left: 2.1em !important
;
1538 align-items: center
;
1544 animation: spin
1s linear infinite
;
1545 content: url
("spinner.svg");
1550 button
.spinning
, .btn
.spinning
{
1551 padding-left: 1.6em !important
;
1554 button
.spinning::before
, .btn
.spinning::before
{
1561 #view > div
.spinning:first-child
{
1565 #view > *:last-child
{
1570 background: var
(--main-bright-color
);
1571 color: var
(--secondary-bright-color
);
1574 border-radius: .5rem;
1578 background: var
(--danger-color
);
1582 background: var
(--success-color
);
1596 @media only screen and
(max-width: 800px) {
1607 background: var
(--main-bright-color
);
1617 border: 2px solid var
(--secondary-bright-color
);
1618 color: var
(--secondary-bright-color
);
1619 border-radius: .5em;
1625 #menubar > h2:hover
{
1626 border-color: var
(--secondary-bright-color
);
1627 color: var
(--secondary-bright-color
);
1634 #menubar > h2::before
{
1639 display: inline-block
;
1644 #menubar > h2
.active::before
{
1649 #menubar .hostname
{
1658 padding: .125em .25em;
1666 transition: max-width
.25s ease-in-out
, padding
.25s ease-in-out
;
1674 padding: 1em 1em calc
(1em + 70px) 1em;
1675 overflow-x: visible
;
1687 display: none
!important
;
1692 flex-direction: column
;
1697 border-bottom: 1px solid var
(--main-dark-color
);
1698 margin-bottom: .5em;
1699 padding-bottom: .5em;
1702 tr
.cbi-section-table-titles
[data-title
]::before
,
1703 tr
.cbi-section-table-titles
,
1704 tr
.cbi-section-table-descr
{
1708 tr
[data-title
]::before
{
1719 text-align: left
!important
;
1729 padding: .2em 0 .2em 40%;
1732 td
[data-title
]::before
{
1733 content: attr
(data-title
) ": ";
1734 white-space: nowrap
;
1738 text-overflow: ellipsis
;
1745 display: inline-flex
;
1746 align-items: center
;
1749 td
[data-title
]::after
{
1753 left: calc
(40% - 2em);
1757 background: linear-gradient
(90deg, rgba
(255, 255, 255, 0), var
(--secondary-bright-color
) 90%);
1760 [data-page
="admin-status-overview"] .cbi-section:nth-of-type
(1) td:first-of-type
,
1761 [data-page
="admin-status-overview"] .cbi-section:nth-of-type
(2) td:first-of-type
{
1767 [data-page
="admin-status-overview"] td
> span
> span
{ font-size: .9rem; }
1769 [data-page
="admin-status-routes"] table:nth-of-type
(3) td:nth-of-type
(1) { word-break: break-all
; }
1771 [data-page
="admin-network-firewall-zones"] td
[data-name
="_info"] {
1773 line-height: 2.2rem;
1776 [data-page
="admin-network-firewall-zones"] td
[data-name
="_info"]::before
,
1777 [data-page
="admin-network-firewall-zones"] td
[data-name
="_info"]::after
{
1781 [data-page
="admin-network-firewall-zones"] td
[data-name
="_info"] label
{
1785 #cbi-wireless-wifi-device tr
{ display: flex
; flex-wrap: wrap
; }
1786 #cbi-wireless-wifi-device tr
> *:nth-child
(1) { flex: 1 1 20%; align-self: center
; }
1787 #cbi-wireless-wifi-device tr
> *:nth-child
(2) { flex: 2 2 75%; }
1788 #cbi-wireless-wifi-device tr
> *:nth-child
(3) { flex: 3 3 100%; }
1790 #cbi-network-interface tr
{ display: flex
; flex-wrap: wrap
; }
1791 #cbi-network-interface tr
> *:nth-child
(1) { flex: 1 1 33%; align-self: center
; }
1792 #cbi-network-interface tr
> *:nth-child
(2) { flex: 2 2 60%; align-self: center
; font-size: .9rem; overflow: hidden
; }
1793 #cbi-network-interface tr
> *:nth-child
(3) { flex: 3 3 100%; }
1794 #cbi-network-interface tr
> *:nth-child
(2) > div
{ overflow: hidden
; text-overflow: ellipsis
; }
1801 .assoclist td > .ifacebadge {
1805 .assoclist td > .ifacebadge > img {
1809 .assoclist td > .ifacebadge > span {
1813 .assoclist td > .ifacebadge[data-ifname]::after {
1814 content: attr
(data-ifname
);
1817 .assoclist td > .ifacebadge[data-signal]::after {
1818 content: attr
(data-signal
) " dBm";
1821 .assoclist td:nth-of-type(3) {
1826 .assoclist td:nth-of-type(1), .assoclist td:nth-of-type(4) {
1831 .assoclist td:nth-of-type(3), .assoclist td:nth-of-type(5) {
1832 flex: 2 2 calc
(100% - 110px);
1834 text-overflow: ellipsis
;
1838 .assoclist td:nth-of-type(6) { flex: 1; text-align: right
!important
; }
1839 .assoclist td[data-title] { padding: .2em 0; }
1840 .assoclist td
[data-title
]::before
,
1841 .assoclist td[data-title]::after { display: none
; }
1843 .leases6 td:nth-of-type(3) { word-wrap: break-word
; }
1845 td
.cbi-section-actions
> div
{ display: flex
; }
1846 td
.cbi-section-actions
> div
> * { flex: 1; }
1848 body
.modal-overlay-active #modal_overlay
> .modal
{
1855 input
[type
="password"],
1857 .cbi-dropdown:not
(.btn
):not
(.cbi-button
),
1859 min-height: calc
(2.2rem + 2px);
1860 line-height: 2.2rem;
1866 line-height: 1.8rem;
1874 .cbi-value > .cbi-value-field {
1877 flex-direction: column
;
1881 .cbi-value > .cbi-value-field > div[id] {
1883 flex-direction: row
;
1886 .cbi-value
> .cbi-value-field
> div
[id
] > input
,
1887 .cbi-value
> .cbi-value-field
> div
[id
] > select
,
1888 .cbi-value > .cbi-value-field > div[id] > .cbi-filebrowser.open {
1893 .cbi-dynlist
.item::after
,
1894 .cbi-dynlist .add-item > .btn {
1905 .control-group > .cbi-dropdown > ul > li {
1907 white-space: normal
;
1908 word-wrap: break-word
;
1911 .cbi-page-actions
.cbi-dropdown
,
1912 .cbi-page-actions .cbi-button-apply:first-child {
1921 margin: 0 -.25em 1em -.25em;
1926 box-shadow: 0 0 4px rgba
(0, 0, 0, .7);
1929 .cbi-value > label:first-child {
1930 padding: 0 0 .5em 0;
1933 [data-page
="admin-system-admin-sshkeys"] .cbi-dynlist
> .item
{
1938 [data-page
="admin-system-opkg"] .control-group
{
1942 [data-page
="admin-status-iptables"] h2
+ div
.right
{
1943 margin: 0 0 1em 0 !important
;
1948 @media only screen and
(min-width: 800px) and
(max-width: 1200px) {
1949 .assoclist tr > *:nth-of-type(2) {