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,
415 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
426 .cbi-value label.cbi-value-title {
436 input[type=checkbox], input[type=radio] {
440 label > input[type="checkbox"],
441 label > input[type="radio"] {
442 vertical-align: bottom;
451 display: inline-block;
457 border: 1px solid #ccc;
475 display: inline-flex;
476 flex-direction: column;
479 .cbi-dynlist > .item {
481 box-shadow: 0 0 2px #ccc;
483 padding: 2px 2em 2px 4px;
484 border: 1px solid #ccc;
487 pointer-events: none;
490 .cbi-dynlist > .item::after {
493 display: inline-flex;
499 border: 1px solid #ccc;
500 border-radius: 0 3px 3px 0;
503 pointer-events: auto;
506 .cbi-dynlist > .add-item {
510 .cbi-dynlist > .add-item > input,
511 .cbi-dynlist > .add-item > button {
514 text-overflow: ellipsis;
521 box-shadow: inset 0 -1px 3px rgba(0, 0, 0, 0.1);
524 input[type=checkbox], input[type=radio] {
537 background-color: #fff;
540 line-height: initial;
542 width: auto !important;
545 input[type=button], input[type=reset], input[type=submit] {
552 background-color: #fff;
556 height: auto !important;
559 .td > input[type=text],
560 .td > input[type=password],
563 .cbi-dynlist > .add-item > .cbi-dropdown {
568 background-color: #fff;
571 box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
579 ::-webkit-input-placeholder {
583 .item::after, .btn, .cbi-button, input, textarea {
584 transition: border linear 0.2s, box-shadow linear 0.2s;
585 box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
589 .btn:hover, .cbi-button:hover,
590 input:focus, textarea:focus {
592 border-color: rgba(82, 168, 236, 0.8) !important;
593 box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6);
594 text-decoration: none;
597 input[type=file]:focus, input[type=checkbox]:focus, select:focus {
599 outline: 1px dotted #666;
608 background-color: #f5f5f5;
610 pointer-events: none;
616 pointer-events: auto;
621 .cbi-section-create {
622 padding: 0 0 10px 10px;
625 .cbi-section-create {
627 display: inline-flex;
631 .cbi-section-create > * {
636 .cbi-section-create > * > input {
644 padding: 17px 20px 18px 17px;
645 border-top: 1px solid #ddd;
646 border-radius: 0 0 3px 3px;
650 .actions .secondary-action,
651 .cbi-page-actions .secondary-action{
655 .actions .secondary-action a,
656 .cbi-page-actions .secondary-action a {
660 .actions .secondary-action a:hover,
661 .cbi-page-actions .secondary-action a:hover {
662 text-decoration: underline;
665 .cbi-page-actions > form {
670 .help-inline, .help-block {
693 * Tables for, you guessed it, tabular data
694 * ---------------------------------------- */
695 .tr { display: table-row; }
696 .table[width="33%"], .th[width="33%"], .td[width="33%"] { width: 33%; }
697 .table[width="100%"], .th[width="100%"], .td[width="100%"] { width: 100%; }
705 border-collapse: collapse;
709 .table .th, .table .td {
711 vertical-align: middle; /* Fixme */
712 padding: 10px 10px 9px;
717 .table .tr:first-child .th {
723 .table .td, .table .th {
724 border-top: 1px solid #ddd;
728 height: calc(3em + 20px);
731 .tr.placeholder > .td {
741 * Repeatable UI elements outside the base styles provided from the scaffolding
742 * ---------------------------------------------------------------------------- */
756 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
759 header h3 a:hover, header .brand:hover, header ul .active > a {
760 background-color: #333;
761 background-color: rgba(255, 255, 255, 0.05);
763 text-decoration: none;
770 header h3 a, header .brand {
773 padding: 8px 20px 12px;
787 background-color: #222;
788 background-repeat: repeat-x;
789 background-image: linear-gradient(to bottom, #333333, #222222);
790 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
794 header div > ul, .nav {
802 header div > ul > li, .nav > li {
807 header div > ul a, .nav a {
810 padding: 10px 10px 11px;
812 text-decoration: none;
815 header div > ul a:hover, .nav a:hover {
817 text-decoration: none;
820 header div > ul .active > a, .nav .active > a {
821 background-color: #222;
822 background-color: rgba(0, 0, 0, 0.5);
825 header div > ul.secondary-nav, .nav.secondary-nav {
831 header div > ul.secondary-nav .menu-dropdown,
832 .nav.secondary-nav .menu-dropdown,
833 header div > ul.secondary-nav .dropdown-menu,
834 .nav.secondary-nav .dropdown-menu {
839 header div > ul a.menu:hover,
841 header div > ul li.open .menu,
843 header div > ul .dropdown-toggle:hover,
844 .nav .dropdown-toggle:hover,
845 header div > ul .dropdown.open .dropdown-toggle,
846 .nav .dropdown.open .dropdown-toggle {
848 background: rgba(255, 255, 255, 0.05);
851 header div > ul .menu-dropdown,
853 header div > ul .dropdown-menu,
854 .nav .dropdown-menu {
855 background-color: #333;
858 header div > ul .menu-dropdown a.menu,
859 .nav .menu-dropdown a.menu,
860 header div > ul .dropdown-menu a.menu,
861 .nav .dropdown-menu a.menu,
862 header div > ul .menu-dropdown .dropdown-toggle,
863 .nav .menu-dropdown .dropdown-toggle,
864 header div > ul .dropdown-menu .dropdown-toggle,
865 .nav .dropdown-menu .dropdown-toggle {
869 header div > ul .menu-dropdown a.menu.open,
870 .nav .menu-dropdown a.menu.open,
871 header div > ul .dropdown-menu a.menu.open,
872 .nav .dropdown-menu a.menu.open,
873 header div > ul .menu-dropdown .dropdown-toggle.open,
874 .nav .menu-dropdown .dropdown-toggle.open,
875 header div > ul .dropdown-menu .dropdown-toggle.open,
876 .nav .dropdown-menu .dropdown-toggle.open {
878 background: rgba(255, 255, 255, 0.05);
881 header div > ul .menu-dropdown li a,
882 .nav .menu-dropdown li a,
883 header div > ul .dropdown-menu li a,
884 .nav .dropdown-menu li a {
886 text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5);
889 header div > ul .menu-dropdown li a:hover,
890 .nav .menu-dropdown li a:hover,
891 header div > ul .dropdown-menu li a:hover,
892 .nav .dropdown-menu li a:hover {
893 background-color: #191919;
894 background-repeat: repeat-x;
895 background-image: linear-gradient(to bottom, #292929, #191919);
899 header div > ul .menu-dropdown .active a,
900 .nav .menu-dropdown .active a,
901 header div > ul .dropdown-menu .active a,
902 .nav .dropdown-menu .active a {
906 header div > ul .menu-dropdown .divider,
907 .nav .menu-dropdown .divider,
908 header div > ul .dropdown-menu .divider,
909 .nav .dropdown-menu .divider {
910 background-color: #222;
914 header ul .menu-dropdown li a, header ul .dropdown-menu li a {
922 a.menu:after, .dropdown-toggle:after {
925 display: inline-block;
927 text-indent: -99999px;
931 border-left: 4px solid transparent;
932 border-right: 4px solid transparent;
933 border-top: 4px solid #fff;
937 .menu-dropdown, .dropdown-menu {
938 background-color: #fff;
952 border-color: rgba(0, 0, 0, 0.2);
954 border-width: 0 1px 1px;
955 border-radius: 0 0 6px 6px;
956 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
957 background-clip: padding-box;
960 .menu-dropdown li, .dropdown-menu li {
963 background-color: transparent;
966 .menu-dropdown .divider, .dropdown-menu .divider {
970 background-color: #eee;
971 border-bottom: 1px solid #fff;
974 header .dropdown-menu a, .dropdown-menu a {
981 text-shadow: 0 1px 0 #fff;
984 header .dropdown-menu a:hover,
985 .dropdown-menu a:hover,
986 header .dropdown-menu a.hover,
987 .dropdown-menu a.hover {
988 background-color: #ddd;
989 background-repeat: repeat-x;
990 background-image: linear-gradient(to bottom, #eee, #ddd);
992 text-decoration: none;
993 box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.025), inset 0 -1px rgba(0, 0, 0, 0.025);
997 .dropdown.open .menu,
998 .open .dropdown-toggle,
999 .dropdown.open .dropdown-toggle {
1002 background: rgba(0, 0, 0, 0.3);
1005 .open .menu-dropdown,
1006 .dropdown.open .menu-dropdown,
1007 .open .dropdown-menu,
1008 .dropdown.open .dropdown-menu {
1012 .dropdown:hover ul.dropdown-menu {
1016 .dropdown-menu .dropdown-menu {
1025 .tabs, .cbi-tabmenu {
1026 margin: 0 -5px 18px;
1031 background: linear-gradient(#fff 28px, #ddd 28px);
1032 background-size: 1px 29px;
1033 background-position: left bottom;
1036 .tabs > li, .cbi-tabmenu > li {
1039 align-items: center;
1042 margin: 4px 2px 0 2px;
1044 border: 1px solid #ddd;
1045 border-bottom: none;
1046 border-radius: 4px 4px 0 0;
1050 .tabs > li > a, .cbi-tabmenu > li > a {
1052 white-space: nowrap;
1054 text-overflow: ellipsis;
1056 text-decoration: none;
1057 border-radius: 4px 4px 0 0;
1062 .tabs > li:not(.active):hover, .cbi-tabmenu > .cbi-tab-disabled:hover {
1063 background: linear-gradient(#fff 90%, #ddd 100%);
1066 .tabs > li:not(.active), .cbi-tabmenu > .cbi-tab-disabled {
1068 background: linear-gradient(#eee 90%, #ddd 100%);
1071 .cbi-tab-disabled[data-errors]::after {
1072 content: attr(data-errors);
1073 background: #c43c35;
1087 .cbi-tabmenu.map > li {
1092 .cbi-tabcontainer > fieldset.cbi-section[id] > legend {
1096 .tabs .menu-dropdown, .tabs .dropdown-menu {
1099 border-radius: 0 6px 6px 6px;
1102 .tabs a.menu:after, .tabs .dropdown-toggle:after {
1103 border-top-color: #999;
1108 .tabs li.open.menu .menu, .tabs .open.dropdown .dropdown-toggle {
1112 .tabs li.open a.menu:after, .tabs .dropdown.open .dropdown-toggle:after {
1113 border-top-color: #555;
1116 .tab-content > .tab-pane,
1117 .tab-content > div {
1121 .tab-content > .active {
1128 background-color: #f5f5f5;
1129 background-repeat: repeat-x;
1130 background-image: linear-gradient(to bottom, #fff, #f5f5f5);
1131 border: 1px solid #ddd;
1133 box-shadow: inset 0 1px 0 #fff;
1138 text-shadow: 0 1px 0 #fff;
1141 .breadcrumb .divider {
1146 .breadcrumb .active a {
1153 border-top: 1px solid #eee;
1162 background: rgba(0, 0, 0, 0.7);
1165 -webkit-overflow-scrolling: touch;
1166 transition: opacity .125s ease-in;
1178 align-items: center;
1181 box-shadow: 0 0 3px #444;
1182 padding: 1em 1em .5em 1em;
1189 line-height: normal;
1190 margin-bottom: .5em;
1195 white-space: pre-wrap;
1199 body.modal-overlay-active {
1204 body.modal-overlay-active #modal_overlay {
1208 visibility: visible;
1212 .alert-message.danger,
1214 .alert-message.danger:hover,
1216 .alert-message.error,
1218 .alert-message.error:hover,
1220 .alert-message.success,
1222 .alert-message.success:hover,
1224 .alert-message.info,
1226 .alert-message.info:hover,
1227 .cbi-tooltip.error, .cbi-tooltip.success, .cbi-tooltip.info {
1231 .btn .close, .alert-message .close {
1232 font-family: Arial, sans-serif;
1237 .alert-message.danger,
1239 .alert-message.error,
1240 .cbi-tooltip.error {
1241 background: linear-gradient(to bottom, #ee5f5b, #c43c35) repeat-x;
1242 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1243 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1246 .btn.success, .alert-message.success, .cbi-tooltip.success {
1247 background: linear-gradient(to bottom, #62c462, #57a957) repeat-x;
1248 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1249 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1252 .btn.info, .alert-message.info, .cbi-tooltip.info {
1253 background: linear-gradient(to bottom, #5bc0de, #339bb9) repeat-x;
1254 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1255 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1258 .alert-message.notice, .cbi-tooltip.notice {
1259 background: linear-gradient(to bottom, #efefef, #fefefe) repeat-x;
1260 text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.25);
1261 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1268 display: inline-block;
1269 background: linear-gradient(#fff, #fff 25%, #e6e6e6) no-repeat;
1270 padding: 5px 14px 6px;
1271 text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
1274 line-height: normal;
1275 border: 1px solid #ccc;
1276 border-bottom-color: #bbb;
1278 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1283 outline: 1px dotted #666;
1287 .cbi-input-invalid.cbi-dropdown,
1288 .cbi-input-invalid.cbi-dropdown:not([open]) > ul > li,
1289 .cbi-value-error input {
1294 .cbi-button-positive,
1295 .cbi-button-fieldadd,
1302 .cbi-button-neutral,
1303 .cbi-button-download,
1316 border-color: #0069d6;
1320 .cbi-button-negative,
1321 .cbi-section-remove .cbi-button,
1323 .cbi-button-remove {
1328 .cbi-page-actions::after {
1334 .cbi-page-actions > :not([method="post"]):not(.cbi-button-apply):not(.cbi-button-save):not(.cbi-button-reset) {
1340 .cbi-button-action.important,
1341 .cbi-page-actions .cbi-button-apply,
1342 .cbi-section-actions .cbi-button-edit {
1344 background: linear-gradient(to bottom, #0069d6, #0049d6) no-repeat;
1345 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1348 .cbi-button-positive.important,
1349 .cbi-page-actions .cbi-button-save {
1351 background: linear-gradient(to bottom, #4a4, #484) no-repeat;
1352 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1355 .cbi-button-negative.important {
1357 background: linear-gradient(to bottom, #c44, #c00) no-repeat;
1358 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1361 .cbi-page-actions .cbi-button-apply + .cbi-button-save {
1362 background: linear-gradient(#fff, #fff 25%, #e6e6e6);
1363 text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.75);
1368 border: 1px solid #ccc;
1370 display: inline-flex;
1374 background: linear-gradient(#fff 0%, #e9e8e6 100%);
1379 .cbi-dynlist > .item:focus,
1380 .cbi-dropdown:focus {
1381 outline: 2px solid #4b6e9b;
1384 .cbi-dropdown > ul {
1385 margin: 0 !important;
1394 .cbi-dropdown > ul.preview {
1398 .cbi-dropdown > .open,
1399 .cbi-dropdown > .more {
1403 flex-direction: column;
1404 justify-content: center;
1410 .cbi-dropdown > .more,
1411 .cbi-dropdown > ul > li[placeholder] {
1414 text-shadow: 1px 1px 0px #fff;
1416 justify-content: center;
1419 .cbi-dropdown > ul > li {
1422 white-space: nowrap;
1424 text-overflow: ellipsis;
1427 align-items: center;
1433 .cbi-dropdown > ul > li .hide-open { display: block; display: initial; }
1434 .cbi-dropdown > ul > li .hide-close { display: none; }
1436 .cbi-dropdown > ul > li[display]:not([display="0"]) {
1437 border-left: 1px solid #ccc;
1440 .cbi-dropdown[empty] > ul {
1444 .cbi-dropdown > ul > li > form {
1448 pointer-events: none;
1451 .cbi-dropdown > ul > li img {
1452 vertical-align: middle;
1453 margin-right: .25em;
1456 .cbi-dropdown > ul > li > form > input[type="checkbox"] {
1460 .cbi-dropdown > ul > li input[type="text"] {
1464 .cbi-dropdown[open] {
1468 .cbi-dropdown[open] > ul.dropdown {
1470 background: #f6f6f5;
1471 border: 1px solid #918e8c;
1472 box-shadow: 0 0 4px #918e8c;
1478 transition: max-height .125s ease-in;
1481 .cbi-dropdown > ul > li[display],
1482 .cbi-dropdown[open] > ul.preview,
1483 .cbi-dropdown[open] > ul.dropdown > li,
1484 .cbi-dropdown[multiple] > ul > li > label,
1485 .cbi-dropdown[multiple][open] > ul.dropdown > li,
1486 .cbi-dropdown[multiple][more] > .more,
1487 .cbi-dropdown[multiple][empty] > .more {
1492 .cbi-dropdown[empty] > ul > li,
1493 .cbi-dropdown[optional][open] > ul.dropdown > li[placeholder],
1494 .cbi-dropdown[multiple][open] > ul.dropdown > li > form {
1498 .cbi-dropdown[open] > ul.dropdown > li .hide-open { display: none; }
1499 .cbi-dropdown[open] > ul.dropdown > li .hide-close { display: block; display: initial; }
1501 .cbi-dropdown[open] > ul.dropdown > li {
1502 border-bottom: 1px solid #ccc;
1505 .cbi-dropdown[open] > ul.dropdown > li[selected] {
1506 background: #b0d0f0;
1509 .cbi-dropdown[open] > ul.dropdown > li.focus {
1510 background: linear-gradient(90deg, #a3c2e8 0%, #84aad9 100%);
1513 .cbi-dropdown[open] > ul.dropdown > li:last-child {
1515 border-bottom: none;
1518 .cbi-dropdown[open] > ul.dropdown > li[unselectable] {
1522 .cbi-dropdown[open] > ul.dropdown > li > input.create-item-input:first-child:last-child {
1526 .cbi-dropdown[disabled] {
1527 pointer-events: none;
1531 input[type="text"] + .cbi-button,
1532 input[type="password"] + .cbi-button,
1533 select + .cbi-button {
1534 border-radius: 0 3px 3px 0;
1538 vertical-align: top;
1544 select + .cbi-button {
1545 border-left-color: transparent;
1552 .cbi-title-ref::after {
1556 .cbi-tooltip-container {
1564 box-shadow: 0 0 2px #ccc;
1570 transition: opacity .25s ease-in;
1573 .cbi-tooltip-container:hover .cbi-tooltip:not(:empty) {
1576 transition: opacity .25s ease-in;
1580 border: 1px solid #ccc;
1586 background: #f9f9f9;
1589 .cbi-progressbar > div {
1590 background: #90c0e0;
1592 transition: width .25s ease-in;
1596 .cbi-progressbar::after {
1603 text-shadow: 0 0 2px #fff;
1604 content: attr(title);
1607 text-overflow: ellipsis;
1610 .zonebadge .cbi-tooltip {
1612 background: inherit;
1613 margin: -1.6em 0 0 -5px;
1615 pointer-events: none;
1616 box-shadow: 0 0 3px #444;
1619 .zonebadge .cbi-tooltip > * {
1628 .zone-forwards > * {
1633 .zone-forwards > span {
1638 .zone-forwards .zone-src,
1639 .zone-forwards .zone-dest {
1641 flex-direction: column;
1644 .btn.active, .btn:active {
1645 box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
1650 background-image: none;
1657 background-image: none;
1664 line-height: normal;
1665 padding: 9px 14px 9px;
1670 padding: 7px 9px 7px;
1674 button.btn::-moz-focus-inner, input[type=submit].btn::-moz-focus-inner {
1684 line-height: 13.5px;
1685 text-shadow: 0 1px 0 #fff;
1691 text-decoration: none;
1698 margin-bottom: 18px;
1700 background: linear-gradient(to bottom, #fceec1, #eedc94) repeat-x;
1701 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1702 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1703 text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
1705 border-style: solid;
1707 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
1710 .alert-message .close {
1720 .alert-message.danger p a,
1721 .alert-message.error p a,
1722 .alert-message.success p a,
1723 .alert-message.info p a {
1735 .alert-message div {
1742 padding: 1px 3px 2px;
1745 color: #fff !important;
1746 text-transform: uppercase;
1747 white-space: nowrap;
1748 background-color: #bfbfbf;
1759 text-decoration: none;
1763 background-color: #c43c35;
1767 background-color: #f89406;
1771 background-color: #46a546;
1775 background-color: #62cffc;
1778 /* LuCI specific items */
1779 .hidden { display: none }
1785 form.inline { display: inline; margin-bottom: 0; }
1787 header .pull-right { padding-top: 8px; }
1789 #modemenu li:last-child span.divider { display: none }
1791 #syslog { width: 100%; }
1793 .cbi-section-table .tr:hover .td,
1794 .cbi-section-table .tr:hover .th,
1795 .cbi-section-table .tr:hover::before {
1796 background-color: #f5f5f5;
1799 .cbi-section-table .tr.cbi-section-table-descr .th {
1800 font-weight: normal;
1803 .cbi-section-table-titles.named::before,
1804 .cbi-section-table-descr.named::before,
1805 .cbi-section-table-row[data-title]::before {
1806 content: attr(data-title) " ";
1807 display: table-cell;
1808 padding: 10px 10px 9px;
1811 vertical-align: middle;
1814 .cbi-section-table-titles.named::before,
1815 .cbi-section-table-descr.named::before,
1816 .cbi-section-table-row[data-title]::before {
1817 border-top: 1px solid #ddd;
1820 .left { text-align: left !important; }
1821 .right { text-align: right !important; }
1822 .center { text-align: center !important; }
1823 .top { vertical-align: top !important; }
1824 .middle { vertical-align: middle !important; }
1825 .bottom { vertical-align: bottom !important; }
1827 .cbi-value-field { line-height: 1.5em; }
1829 .cbi-value-field input[type=checkbox],
1830 .cbi-value-field input[type=radio] {
1836 .cbi-value-field table td {
1840 .table.cbi-section-table input[type="password"],
1841 .table.cbi-section-table input[type="text"],
1842 .table.cbi-section-table textarea,
1843 .table.cbi-section-table select {
1847 .table.cbi-section-table .td.cbi-section-table-cell {
1848 white-space: nowrap;
1852 .table.cbi-section-table .td.cbi-section-table-cell select {
1856 .td.cbi-section-actions {
1858 vertical-align: middle;
1861 .td.cbi-section-actions > * {
1865 .td.cbi-section-actions > * > *,
1866 .td.cbi-section-actions > * > form > * {
1871 .td.cbi-section-actions > * > form {
1872 display: inline-flex;
1876 .table.valign-middle .td {
1877 vertical-align: middle;
1882 .tr.cbi-section-table-titles {
1883 background: #f9f9f9;
1886 .cbi-value-description {
1887 background-image: url(/luci-static/resources/cbi/help.gif);
1888 background-position: .25em .2em;
1889 background-repeat: no-repeat;
1890 margin: .25em 0 0 0;
1891 padding: 0 0 0 1.7em;
1894 .cbi-section-error {
1895 border: 1px solid #f00;
1897 background-color: #fce6e6;
1899 margin-bottom: 18px;
1902 .cbi-section-error ul { margin: 0 0 0 20px; }
1904 .cbi-section-error ul li {
1910 background-color: #fff;
1911 border: 1px solid #ccc;
1914 white-space: nowrap;
1915 background-image: linear-gradient(#fff, #fff 25%, #f9f9f9);
1916 text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
1918 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1919 display: inline-flex;
1920 flex-direction: column;
1925 .ifacebox .ifacebox-head {
1926 border-bottom: 1px solid #ccc;
1931 .ifacebox .ifacebox-head.active {
1932 background: #90c0e0;
1935 .ifacebox .ifacebox-body {
1940 display: inline-block;
1941 flex-direction: row;
1942 white-space: nowrap;
1943 background-color: #fff;
1944 border: 1px solid #ccc;
1946 background-image: linear-gradient(#fff, #fff 25%, #f9f9f9);
1947 text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
1949 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1957 vertical-align: middle;
1960 .ifacebadge-active {
1965 .network-status-table {
1970 .network-status-table .ifacebox {
1975 .network-status-table .ifacebox-body {
1977 flex-direction: column;
1982 .network-status-table .ifacebox-body > * {
1986 .network-status-table .ifacebox-body > span {
1990 .network-status-table .ifacebox-body > div {
1996 #dsl_status_table .ifacebox-body span > strong {
1997 display: inline-block;
2002 .network-status-table .ifacebox-body .ifacebadge {
2003 display: inline-flex;
2011 .ifacebadge.large > * {
2018 display: inline-block;
2019 white-space: nowrap;
2021 text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
2025 .zonebadge > strong {
2027 display: inline-block;
2034 .zonebadge > .ifacebadge {
2039 border: 1px dashed #aaa;
2046 .td.cbi-value-field var {
2056 .uci-change-list del,
2057 .uci-change-list ins,
2058 .uci-change-list var,
2059 .uci-change-legend-label del,
2060 .uci-change-legend-label ins,
2061 .uci-change-legend-label var {
2062 text-decoration: none;
2063 font-family: monospace;
2065 border: 1px solid #ccc;
2073 .uci-change-list ins,
2074 .uci-change-legend-label ins {
2079 .uci-change-list del,
2080 .uci-change-legend-label del {
2085 .uci-change-list var,
2086 .uci-change-legend-label var {
2091 .uci-change-list var ins,
2092 .uci-change-list var del {
2093 display: inline-block;
2099 .uci-change-legend {
2103 .uci-change-legend-label {
2108 .uci-change-legend-label > ins,
2109 .uci-change-legend-label > del,
2110 .uci-change-legend-label > var {
2119 .uci-change-legend-label var ins,
2120 .uci-change-legend-label var del {
2135 background: rgba(0, 0, 0, 0.7);
2138 -webkit-overflow-scrolling: touch;
2139 transition: opacity .125s ease-in;
2143 #modal_overlay > .modal {
2150 align-items: center;
2153 box-shadow: 0 0 3px #444;
2154 padding: 1em 1em .5em 1em;
2159 #modal_overlay .modal > * {
2161 line-height: normal;
2162 margin-bottom: .5em;
2165 #modal_overlay .modal > pre,
2166 #modal_overlay .modal > textarea {
2167 white-space: pre-wrap;
2171 body.modal-overlay-active {
2176 body.modal-overlay-active #modal_overlay {
2182 html body.apply-overlay-active {
2183 height: calc(100vh - 63px);
2186 #applyreboot-section {
2190 [data-page="admin-network-dhcp"] [data-name="ip"] {
2196 50% { opacity: .5; }
2197 100% { opacity: 1; }
2201 animation: flash .35s;
2206 padding-left: 32px !important;
2216 background: url(../resources/icons/loading.gif) no-repeat center;
2217 background-size: 16px;
2226 [data-tab-active="true"] {
2230 transition: opacity .25s ease-in;