3 * Copyright 2012 Nut & Bolt
4 * By David Menting <david@nut-bolt.nl>
5 * Based on Bootstrap v1.4.0
7 * Copyright 2011 Twitter, Inc
8 * Licensed under the Apache License v2.0
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Designed and built with all the love in the world @twitter by @mdo and @fat.
14 * Props to Eric Meyer (meyerweb.com) for his CSS reset file. We're using an adapted version here that cuts out some of the reset HTML elements we will never need here (i.e., dfn, samp, etc).
15 * ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
21 box-sizing: border-box;
24 abbr[title], acronym[title] {
25 border-bottom: 1px dotted;
31 border-collapse: collapse;
41 -webkit-text-size-adjust: 100%;
42 -ms-text-size-adjust: 100%;
64 vertical-align: baseline;
76 -ms-interpolation-mode: bicubic;
86 box-sizing: border-box;
87 vertical-align: baseline;
91 button::-moz-focus-inner, input::-moz-focus-inner {
99 input[type="submit"] {
101 -webkit-appearance: button;
105 input[type="button"][disabled],
106 input[type="reset"][disabled],
107 input[type="submit"][disabled] {
111 input[type="search"] {
112 -webkit-appearance: textfield;
113 box-sizing: content-box;
116 input[type="search"]::-webkit-search-decoration {
117 -webkit-appearance: none;
127 * Basic and global styles for generating a grid system, structural layout, and page templates
128 * ------------------------------------------------------------------------------------------- */
130 background-color: #fff;
131 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
136 padding: 58px 5px 5px 5px;
147 .container:before, .container:after {
159 text-decoration: none;
160 line-height: inherit;
161 font-weight: inherit;
166 text-decoration: underline;
182 * Headings, body text, lists, code, and more for a versatile and durable typography system
183 * ---------------------------------------------------------------------------------------- */
187 .table .tr.cbi-section-table-descr .th {
267 text-transform: uppercase;
271 margin: 0 0 18px 25px;
318 border-bottom: 1px solid #eee;
328 font-weight: inherit;
329 line-height: inherit;
332 small { font-size: 0.9em }
342 font-family: Monaco, Andale Mono, Courier New, monospace;
348 background-color: #fee9cc;
349 color: rgba(0, 0, 0, 0.75);
354 background-color: #f5f5f5;
360 border: 1px solid #ccc;
361 border: 1px solid rgba(0, 0, 0, 0.15);
364 white-space: pre-wrap;
365 word-wrap: break-word;
369 * Base styles for various input types, form layouts, and states
370 * ------------------------------------------------------------- */
388 form .cbi-tab-descr {
399 form .clearfix:before, form .clearfix:after,
400 .cbi-value:before, .cbi-value:after {
406 form .clearfix:after,
416 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
427 .cbi-value label.cbi-value-title {
437 input[type=checkbox], input[type=radio] {
441 label > input[type="checkbox"],
442 label > input[type="radio"] {
443 vertical-align: bottom;
452 display: inline-block;
458 border: 1px solid #ccc;
476 display: inline-flex;
477 flex-direction: column;
480 .cbi-dynlist > .item {
482 box-shadow: 0 0 2px #ccc;
484 padding: 2px 2em 2px 4px;
485 border: 1px solid #ccc;
488 pointer-events: none;
491 .cbi-dynlist > .item::after {
494 display: inline-flex;
500 border: 1px solid #ccc;
501 border-radius: 0 3px 3px 0;
504 pointer-events: auto;
507 .cbi-dynlist > .add-item {
511 .cbi-dynlist > .add-item > input,
512 .cbi-dynlist > .add-item > button {
515 text-overflow: ellipsis;
522 box-shadow: inset 0 -1px 3px rgba(0, 0, 0, 0.1);
525 input[type=checkbox], input[type=radio] {
538 background-color: #fff;
541 line-height: initial;
543 width: auto !important;
546 input[type=button], input[type=reset], input[type=submit] {
553 background-color: #fff;
557 height: auto !important;
560 .td > input[type=text],
561 .td > input[type=password],
564 .cbi-dynlist > .add-item > .cbi-dropdown {
569 background-color: #fff;
572 box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
580 ::-webkit-input-placeholder {
584 .item::after, .btn, .cbi-button, input, button, textarea {
585 transition: border linear 0.2s, box-shadow linear 0.2s;
586 box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
590 .btn:hover, .cbi-button:hover, button:hover,
591 input:focus, textarea:focus {
593 border-color: rgba(82, 168, 236, 0.8) !important;
594 box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6);
595 text-decoration: none;
598 input[type=file]:focus, input[type=checkbox]:focus, select:focus {
600 outline: 1px dotted #666;
611 background-color: #f5f5f5;
613 pointer-events: none;
619 pointer-events: auto;
624 .cbi-section-create {
625 padding: 0 0 10px 10px;
628 .cbi-section-create {
630 display: inline-flex;
634 .cbi-section-create > * {
639 .cbi-section-create > * > input {
647 padding: 17px 20px 18px 17px;
648 border-top: 1px solid #ddd;
649 border-radius: 0 0 3px 3px;
653 .actions .secondary-action,
654 .cbi-page-actions .secondary-action{
658 .actions .secondary-action a,
659 .cbi-page-actions .secondary-action a {
663 .actions .secondary-action a:hover,
664 .cbi-page-actions .secondary-action a:hover {
665 text-decoration: underline;
668 .cbi-page-actions > form {
673 .help-inline, .help-block {
696 * Tables for, you guessed it, tabular data
697 * ---------------------------------------- */
698 .tr { display: table-row; }
699 .table[width="33%"], .th[width="33%"], .td[width="33%"] { width: 33%; }
700 .table[width="100%"], .th[width="100%"], .td[width="100%"] { width: 100%; }
708 border-collapse: collapse;
712 .table .th, .table .td {
714 vertical-align: middle; /* Fixme */
715 padding: 10px 10px 9px;
720 .table .tr:first-child .th {
726 .table .td, .table .th {
727 border-top: 1px solid #ddd;
731 height: calc(3em + 20px);
734 .tr.placeholder > .td {
744 .tr.drag-over-below {
745 border: 2px solid #0069d6;
746 border-width: 2px 0 0 0;
749 .tr.drag-over-below {
750 border-width: 0 0 2px 0;
754 * Repeatable UI elements outside the base styles provided from the scaffolding
755 * ---------------------------------------------------------------------------- */
769 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
772 header h3 a:hover, header .brand:hover, header ul .active > a {
773 background-color: #333;
774 background-color: rgba(255, 255, 255, 0.05);
776 text-decoration: none;
783 header h3 a, header .brand {
786 padding: 8px 20px 12px;
800 background-color: #222;
801 background-repeat: repeat-x;
802 background-image: linear-gradient(to bottom, #333333, #222222);
803 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
807 header div > ul, .nav {
815 header div > ul > li, .nav > li {
820 header div > ul a, .nav a {
823 padding: 10px 10px 11px;
825 text-decoration: none;
828 header div > ul a:hover, .nav a:hover {
830 text-decoration: none;
833 header div > ul .active > a, .nav .active > a {
834 background-color: #222;
835 background-color: rgba(0, 0, 0, 0.5);
838 header div > ul.secondary-nav, .nav.secondary-nav {
844 header div > ul.secondary-nav .menu-dropdown,
845 .nav.secondary-nav .menu-dropdown,
846 header div > ul.secondary-nav .dropdown-menu,
847 .nav.secondary-nav .dropdown-menu {
852 header div > ul a.menu:hover,
854 header div > ul li.open .menu,
856 header div > ul .dropdown-toggle:hover,
857 .nav .dropdown-toggle:hover,
858 header div > ul .dropdown.open .dropdown-toggle,
859 .nav .dropdown.open .dropdown-toggle {
861 background: rgba(255, 255, 255, 0.05);
864 header div > ul .menu-dropdown,
866 header div > ul .dropdown-menu,
867 .nav .dropdown-menu {
868 background-color: #333;
871 header div > ul .menu-dropdown a.menu,
872 .nav .menu-dropdown a.menu,
873 header div > ul .dropdown-menu a.menu,
874 .nav .dropdown-menu a.menu,
875 header div > ul .menu-dropdown .dropdown-toggle,
876 .nav .menu-dropdown .dropdown-toggle,
877 header div > ul .dropdown-menu .dropdown-toggle,
878 .nav .dropdown-menu .dropdown-toggle {
882 header div > ul .menu-dropdown a.menu.open,
883 .nav .menu-dropdown a.menu.open,
884 header div > ul .dropdown-menu a.menu.open,
885 .nav .dropdown-menu a.menu.open,
886 header div > ul .menu-dropdown .dropdown-toggle.open,
887 .nav .menu-dropdown .dropdown-toggle.open,
888 header div > ul .dropdown-menu .dropdown-toggle.open,
889 .nav .dropdown-menu .dropdown-toggle.open {
891 background: rgba(255, 255, 255, 0.05);
894 header div > ul .menu-dropdown li a,
895 .nav .menu-dropdown li a,
896 header div > ul .dropdown-menu li a,
897 .nav .dropdown-menu li a {
899 text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5);
902 header div > ul .menu-dropdown li a:hover,
903 .nav .menu-dropdown li a:hover,
904 header div > ul .dropdown-menu li a:hover,
905 .nav .dropdown-menu li a:hover {
906 background-color: #191919;
907 background-repeat: repeat-x;
908 background-image: linear-gradient(to bottom, #292929, #191919);
912 header div > ul .menu-dropdown .active a,
913 .nav .menu-dropdown .active a,
914 header div > ul .dropdown-menu .active a,
915 .nav .dropdown-menu .active a {
919 header div > ul .menu-dropdown .divider,
920 .nav .menu-dropdown .divider,
921 header div > ul .dropdown-menu .divider,
922 .nav .dropdown-menu .divider {
923 background-color: #222;
927 header ul .menu-dropdown li a, header ul .dropdown-menu li a {
935 a.menu:after, .dropdown-toggle:after {
938 display: inline-block;
940 text-indent: -99999px;
944 border-left: 4px solid transparent;
945 border-right: 4px solid transparent;
946 border-top: 4px solid #fff;
950 .menu-dropdown, .dropdown-menu {
951 background-color: #fff;
965 border-color: rgba(0, 0, 0, 0.2);
967 border-width: 0 1px 1px;
968 border-radius: 0 0 6px 6px;
969 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
970 background-clip: padding-box;
973 .menu-dropdown li, .dropdown-menu li {
976 background-color: transparent;
979 .menu-dropdown .divider, .dropdown-menu .divider {
983 background-color: #eee;
984 border-bottom: 1px solid #fff;
987 header .dropdown-menu a, .dropdown-menu a {
994 text-shadow: 0 1px 0 #fff;
997 header .dropdown-menu a:hover,
998 .dropdown-menu a:hover,
999 header .dropdown-menu a.hover,
1000 .dropdown-menu a.hover {
1001 background-color: #ddd;
1002 background-repeat: repeat-x;
1003 background-image: linear-gradient(to bottom, #eee, #ddd);
1005 text-decoration: none;
1006 box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.025), inset 0 -1px rgba(0, 0, 0, 0.025);
1010 .dropdown.open .menu,
1011 .open .dropdown-toggle,
1012 .dropdown.open .dropdown-toggle {
1015 background: rgba(0, 0, 0, 0.3);
1018 .open .menu-dropdown,
1019 .dropdown.open .menu-dropdown,
1020 .open .dropdown-menu,
1021 .dropdown.open .dropdown-menu {
1025 .dropdown:hover ul.dropdown-menu {
1029 .dropdown-menu .dropdown-menu {
1038 .tabs, .cbi-tabmenu {
1039 margin: 0 -5px 18px;
1044 background: linear-gradient(#fff 28px, #ddd 28px);
1045 background-size: 1px 29px;
1046 background-position: left bottom;
1049 .tabs > li, .cbi-tabmenu > li {
1052 align-items: center;
1055 margin: 4px 2px 0 2px;
1057 border: 1px solid #ddd;
1058 border-bottom: none;
1059 border-radius: 4px 4px 0 0;
1063 .tabs > li > a, .cbi-tabmenu > li > a {
1065 white-space: nowrap;
1067 text-overflow: ellipsis;
1069 text-decoration: none;
1070 border-radius: 4px 4px 0 0;
1075 .tabs > li:not(.active):hover, .cbi-tabmenu > .cbi-tab-disabled:hover {
1076 background: linear-gradient(#fff 90%, #ddd 100%);
1079 .tabs > li:not(.active), .cbi-tabmenu > .cbi-tab-disabled {
1081 background: linear-gradient(#eee 90%, #ddd 100%);
1084 .cbi-tab-disabled[data-errors]::after {
1085 content: attr(data-errors);
1086 background: #c43c35;
1100 .cbi-tabmenu.map > li {
1105 .cbi-tabcontainer > fieldset.cbi-section[id] > legend {
1109 .tabs .menu-dropdown, .tabs .dropdown-menu {
1112 border-radius: 0 6px 6px 6px;
1115 .tabs a.menu:after, .tabs .dropdown-toggle:after {
1116 border-top-color: #999;
1121 .tabs li.open.menu .menu, .tabs .open.dropdown .dropdown-toggle {
1125 .tabs li.open a.menu:after, .tabs .dropdown.open .dropdown-toggle:after {
1126 border-top-color: #555;
1129 .tab-content > .tab-pane,
1130 .tab-content > div {
1134 .tab-content > .active {
1141 background-color: #f5f5f5;
1142 background-repeat: repeat-x;
1143 background-image: linear-gradient(to bottom, #fff, #f5f5f5);
1144 border: 1px solid #ddd;
1146 box-shadow: inset 0 1px 0 #fff;
1151 text-shadow: 0 1px 0 #fff;
1154 .breadcrumb .divider {
1159 .breadcrumb .active a {
1166 border-top: 1px solid #eee;
1175 background: rgba(0, 0, 0, 0.7);
1178 -webkit-overflow-scrolling: touch;
1179 transition: opacity .125s ease-in;
1191 align-items: center;
1194 box-shadow: 0 0 3px #444;
1195 padding: 1em 1em .5em 1em;
1202 line-height: normal;
1203 margin-bottom: .5em;
1208 white-space: pre-wrap;
1212 body.modal-overlay-active {
1217 body.modal-overlay-active #modal_overlay {
1221 visibility: visible;
1225 .alert-message.danger,
1227 .alert-message.danger:hover,
1229 .alert-message.error,
1231 .alert-message.error:hover,
1233 .alert-message.success,
1235 .alert-message.success:hover,
1237 .alert-message.info,
1239 .alert-message.info:hover,
1240 .cbi-tooltip.error, .cbi-tooltip.success, .cbi-tooltip.info {
1244 .btn .close, .alert-message .close {
1245 font-family: Arial, sans-serif;
1250 .alert-message.danger,
1252 .alert-message.error,
1253 .cbi-tooltip.error {
1254 background: linear-gradient(to bottom, #ee5f5b, #c43c35) repeat-x;
1255 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1256 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1259 .btn.success, .alert-message.success, .cbi-tooltip.success {
1260 background: linear-gradient(to bottom, #62c462, #57a957) repeat-x;
1261 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1262 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1265 .btn.info, .alert-message.info, .cbi-tooltip.info {
1266 background: linear-gradient(to bottom, #5bc0de, #339bb9) repeat-x;
1267 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1268 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1271 .alert-message.notice, .cbi-tooltip.notice {
1272 background: linear-gradient(to bottom, #efefef, #fefefe) repeat-x;
1273 text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.25);
1274 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1281 display: inline-block;
1282 background: linear-gradient(#fff, #fff 25%, #e6e6e6) no-repeat;
1283 padding: 5px 14px 6px;
1284 text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
1287 line-height: normal;
1288 border: 1px solid #ccc;
1289 border-bottom-color: #bbb;
1291 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1296 outline: 1px dotted #666;
1300 .cbi-input-invalid.cbi-dropdown,
1301 .cbi-input-invalid.cbi-dropdown:not([open]) > ul > li,
1302 .cbi-value-error input {
1307 .cbi-button-positive,
1308 .cbi-button-fieldadd,
1315 .cbi-button-neutral,
1316 .cbi-button-download,
1329 border-color: #0069d6;
1333 .cbi-button-negative,
1334 .cbi-section-remove .cbi-button,
1336 .cbi-button-remove {
1341 .cbi-page-actions::after {
1347 .cbi-page-actions > :not([method="post"]):not(.cbi-button-apply):not(.cbi-button-save):not(.cbi-button-reset) {
1353 .cbi-button-action.important,
1354 .cbi-page-actions .cbi-button-apply,
1355 .cbi-section-actions .cbi-button-edit {
1357 background: linear-gradient(to bottom, #0069d6, #0049d6) no-repeat;
1358 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1361 .cbi-button-positive.important,
1362 .cbi-page-actions .cbi-button-save {
1364 background: linear-gradient(to bottom, #4a4, #484) no-repeat;
1365 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1368 .cbi-button-negative.important {
1370 background: linear-gradient(to bottom, #c44, #c00) no-repeat;
1371 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1374 .cbi-page-actions .cbi-button-apply + .cbi-button-save {
1375 background: linear-gradient(#fff, #fff 25%, #e6e6e6);
1376 text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.75);
1381 border: 1px solid #ccc;
1383 display: inline-flex;
1387 background: linear-gradient(#fff 0%, #e9e8e6 100%);
1392 .cbi-dynlist > .item:focus,
1393 .cbi-dropdown:focus {
1394 outline: 2px solid #4b6e9b;
1397 .cbi-dropdown > ul {
1398 margin: 0 !important;
1407 .cbi-dropdown > ul.preview {
1411 .cbi-dropdown > .open,
1412 .cbi-dropdown > .more {
1416 flex-direction: column;
1417 justify-content: center;
1423 .cbi-dropdown > .more,
1424 .cbi-dropdown > ul > li[placeholder] {
1427 text-shadow: 1px 1px 0px #fff;
1429 justify-content: center;
1432 .cbi-dropdown > ul > li {
1435 white-space: nowrap;
1437 text-overflow: ellipsis;
1440 align-items: center;
1446 .cbi-dropdown > ul > li .hide-open { display: block; display: initial; }
1447 .cbi-dropdown > ul > li .hide-close { display: none; }
1449 .cbi-dropdown > ul > li[display]:not([display="0"]) {
1450 border-left: 1px solid #ccc;
1453 .cbi-dropdown[empty] > ul {
1457 .cbi-dropdown > ul > li > form {
1461 pointer-events: none;
1464 .cbi-dropdown > ul > li img {
1465 vertical-align: middle;
1466 margin-right: .25em;
1469 .cbi-dropdown > ul > li > form > input[type="checkbox"] {
1473 .cbi-dropdown > ul > li input[type="text"] {
1477 .cbi-dropdown[open] {
1481 .cbi-dropdown[open] > ul.dropdown {
1483 background: #f6f6f5;
1484 border: 1px solid #918e8c;
1485 box-shadow: 0 0 4px #918e8c;
1491 transition: max-height .125s ease-in;
1494 .cbi-dropdown > ul > li[display],
1495 .cbi-dropdown[open] > ul.preview,
1496 .cbi-dropdown[open] > ul.dropdown > li,
1497 .cbi-dropdown[multiple] > ul > li > label,
1498 .cbi-dropdown[multiple][open] > ul.dropdown > li,
1499 .cbi-dropdown[multiple][more] > .more,
1500 .cbi-dropdown[multiple][empty] > .more {
1505 .cbi-dropdown[empty] > ul > li,
1506 .cbi-dropdown[optional][open] > ul.dropdown > li[placeholder],
1507 .cbi-dropdown[multiple][open] > ul.dropdown > li > form {
1511 .cbi-dropdown[open] > ul.dropdown > li .hide-open { display: none; }
1512 .cbi-dropdown[open] > ul.dropdown > li .hide-close { display: block; display: initial; }
1514 .cbi-dropdown[open] > ul.dropdown > li {
1515 border-bottom: 1px solid #ccc;
1518 .cbi-dropdown[open] > ul.dropdown > li[selected] {
1519 background: #b0d0f0;
1522 .cbi-dropdown[open] > ul.dropdown > li.focus {
1523 background: linear-gradient(90deg, #a3c2e8 0%, #84aad9 100%);
1526 .cbi-dropdown[open] > ul.dropdown > li:last-child {
1528 border-bottom: none;
1531 .cbi-dropdown[open] > ul.dropdown > li[unselectable] {
1535 .cbi-dropdown[open] > ul.dropdown > li > input.create-item-input:first-child:last-child {
1539 .cbi-dropdown[disabled] {
1540 pointer-events: none;
1544 input[type="text"] + .cbi-button,
1545 input[type="password"] + .cbi-button,
1546 select + .cbi-button {
1547 border-radius: 0 3px 3px 0;
1551 vertical-align: top;
1557 select + .cbi-button {
1558 border-left-color: transparent;
1565 .cbi-title-ref::after {
1569 .cbi-tooltip-container {
1577 box-shadow: 0 0 2px #ccc;
1583 transition: opacity .25s ease-in;
1586 .cbi-tooltip-container:hover .cbi-tooltip:not(:empty) {
1589 transition: opacity .25s ease-in;
1593 border: 1px solid #ccc;
1599 background: #f9f9f9;
1602 .cbi-progressbar > div {
1603 background: #90c0e0;
1605 transition: width .25s ease-in;
1609 .cbi-progressbar::after {
1616 text-shadow: 0 0 2px #fff;
1617 content: attr(title);
1620 text-overflow: ellipsis;
1623 .zonebadge .cbi-tooltip {
1625 background: inherit;
1626 margin: -1.6em 0 0 -5px;
1628 pointer-events: none;
1629 box-shadow: 0 0 3px #444;
1632 .zonebadge .cbi-tooltip > * {
1641 .zone-forwards > * {
1646 .zone-forwards > span {
1651 .zone-forwards .zone-src,
1652 .zone-forwards .zone-dest {
1654 flex-direction: column;
1657 .btn.active, .btn:active {
1658 box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
1663 background-image: none;
1670 background-image: none;
1677 line-height: normal;
1678 padding: 9px 14px 9px;
1683 padding: 7px 9px 7px;
1687 button.btn::-moz-focus-inner, input[type=submit].btn::-moz-focus-inner {
1697 line-height: 13.5px;
1698 text-shadow: 0 1px 0 #fff;
1704 text-decoration: none;
1711 margin-bottom: 18px;
1713 background: linear-gradient(to bottom, #fceec1, #eedc94) repeat-x;
1714 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1715 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1716 text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
1718 border-style: solid;
1720 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
1723 .alert-message .close {
1733 .alert-message.danger p a,
1734 .alert-message.error p a,
1735 .alert-message.success p a,
1736 .alert-message.info p a {
1748 .alert-message div {
1755 padding: 1px 3px 2px;
1758 color: #fff !important;
1759 text-transform: uppercase;
1760 white-space: nowrap;
1761 background-color: #bfbfbf;
1772 text-decoration: none;
1776 background-color: #c43c35;
1780 background-color: #f89406;
1784 background-color: #46a546;
1788 background-color: #62cffc;
1791 /* LuCI specific items */
1792 .hidden { display: none }
1798 form.inline { display: inline; margin-bottom: 0; }
1800 header .pull-right { padding-top: 8px; }
1802 #modemenu li:last-child span.divider { display: none }
1804 #syslog { width: 100%; }
1806 .cbi-section-table .tr:hover .td,
1807 .cbi-section-table .tr:hover .th,
1808 .cbi-section-table .tr:hover::before {
1809 background-color: #f5f5f5;
1812 .cbi-section-table .tr.cbi-section-table-descr .th {
1813 font-weight: normal;
1816 .cbi-section-table-titles.named::before,
1817 .cbi-section-table-descr.named::before,
1818 .cbi-section-table-row[data-title]::before {
1819 content: attr(data-title) " ";
1820 display: table-cell;
1821 padding: 10px 10px 9px;
1824 vertical-align: middle;
1827 .cbi-section-table-titles.named::before,
1828 .cbi-section-table-descr.named::before,
1829 .cbi-section-table-row[data-title]::before {
1830 border-top: 1px solid #ddd;
1833 .left { text-align: left !important; }
1834 .right { text-align: right !important; }
1835 .center { text-align: center !important; }
1836 .top { vertical-align: top !important; }
1837 .middle { vertical-align: middle !important; }
1838 .bottom { vertical-align: bottom !important; }
1840 .cbi-value-field { line-height: 1.5em; }
1842 .cbi-value-field input[type=checkbox],
1843 .cbi-value-field input[type=radio] {
1849 .cbi-value-field table td {
1853 .table.cbi-section-table input[type="password"],
1854 .table.cbi-section-table input[type="text"],
1855 .table.cbi-section-table textarea,
1856 .table.cbi-section-table select {
1860 .table.cbi-section-table .td.cbi-section-table-cell {
1861 white-space: nowrap;
1865 .table.cbi-section-table .td.cbi-section-table-cell select {
1869 .td.cbi-section-actions {
1871 vertical-align: middle;
1874 .td.cbi-section-actions > * {
1878 .td.cbi-section-actions > * > *,
1879 .td.cbi-section-actions > * > form > * {
1884 .td.cbi-section-actions > * > form {
1885 display: inline-flex;
1889 .table.valign-middle .td {
1890 vertical-align: middle;
1895 .tr.cbi-section-table-titles {
1896 background: #f9f9f9;
1899 .cbi-value-description {
1900 background-image: url(/luci-static/resources/cbi/help.gif);
1901 background-position: .25em .2em;
1902 background-repeat: no-repeat;
1903 margin: .25em 0 0 0;
1904 padding: 0 0 0 1.7em;
1907 .cbi-section-error {
1908 border: 1px solid #f00;
1910 background-color: #fce6e6;
1912 margin-bottom: 18px;
1915 .cbi-section-error ul { margin: 0 0 0 20px; }
1917 .cbi-section-error ul li {
1923 background-color: #fff;
1924 border: 1px solid #ccc;
1927 white-space: nowrap;
1928 background-image: linear-gradient(#fff, #fff 25%, #f9f9f9);
1929 text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
1931 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1932 display: inline-flex;
1933 flex-direction: column;
1938 .ifacebox .ifacebox-head {
1939 border-bottom: 1px solid #ccc;
1944 .ifacebox .ifacebox-head.active {
1945 background: #90c0e0;
1948 .ifacebox .ifacebox-body {
1953 display: inline-block;
1954 flex-direction: row;
1955 white-space: nowrap;
1956 background-color: #fff;
1957 border: 1px solid #ccc;
1959 background-image: linear-gradient(#fff, #fff 25%, #f9f9f9);
1960 text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
1962 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1970 vertical-align: middle;
1973 .ifacebadge-active {
1978 .network-status-table {
1983 .network-status-table .ifacebox {
1988 .network-status-table .ifacebox-body {
1990 flex-direction: column;
1995 .network-status-table .ifacebox-body > * {
1999 .network-status-table .ifacebox-body > span {
2004 .network-status-table .ifacebox-body > div {
2010 #dsl_status_table .ifacebox-body span > strong {
2011 display: inline-block;
2016 .network-status-table .ifacebox-body .ifacebadge {
2017 display: inline-flex;
2025 .ifacebadge.large > * {
2032 display: inline-block;
2033 white-space: nowrap;
2035 text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
2039 .zonebadge > strong {
2041 display: inline-block;
2048 .zonebadge > .ifacebadge {
2053 border: 1px dashed #aaa;
2060 .td.cbi-value-field var {
2065 #modal_overlay > .modal.uci-dialog,
2066 #modal_overlay > .modal.cbi-modal {
2075 .uci-change-list del,
2076 .uci-change-list ins,
2077 .uci-change-list var,
2078 .uci-change-legend-label del,
2079 .uci-change-legend-label ins,
2080 .uci-change-legend-label var {
2081 text-decoration: none;
2082 font-family: monospace;
2084 border: 1px solid #ccc;
2092 .uci-change-list ins,
2093 .uci-change-legend-label ins {
2098 .uci-change-list del,
2099 .uci-change-legend-label del {
2104 .uci-change-list var,
2105 .uci-change-legend-label var {
2110 .uci-change-list var ins,
2111 .uci-change-list var del {
2112 display: inline-block;
2118 .uci-change-legend {
2122 .uci-change-legend-label {
2127 .uci-change-legend-label > ins,
2128 .uci-change-legend-label > del,
2129 .uci-change-legend-label > var {
2138 .uci-change-legend-label var ins,
2139 .uci-change-legend-label var del {
2154 background: rgba(0, 0, 0, 0.7);
2157 -webkit-overflow-scrolling: touch;
2158 transition: opacity .125s ease-in;
2162 #modal_overlay > .modal {
2169 align-items: center;
2172 box-shadow: 0 0 3px #444;
2173 padding: 1em 1em .5em 1em;
2178 #modal_overlay .modal > * {
2180 line-height: normal;
2181 margin-bottom: .5em;
2184 #modal_overlay .modal > pre,
2185 #modal_overlay .modal > textarea {
2186 white-space: pre-wrap;
2190 body.modal-overlay-active {
2195 body.modal-overlay-active #modal_overlay {
2201 html body.apply-overlay-active {
2202 height: calc(100vh - 63px);
2205 #applyreboot-section {
2209 [data-page="admin-network-dhcp"] [data-name="ip"] {
2215 50% { opacity: .5; }
2216 100% { opacity: 1; }
2220 animation: flash .35s;
2225 padding-left: 32px !important;
2235 background: url(../resources/icons/loading.gif) no-repeat center;
2236 background-size: 16px;
2245 [data-tab-active="true"] {
2249 transition: opacity .25s ease-in;