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;
102 word-break: break-all;
106 input[type="button"][disabled],
107 input[type="reset"][disabled],
108 input[type="submit"][disabled] {
112 input[type="search"] {
113 -webkit-appearance: textfield;
114 box-sizing: content-box;
117 input[type="search"]::-webkit-search-decoration {
118 -webkit-appearance: none;
128 * Basic and global styles for generating a grid system, structural layout, and page templates
129 * ------------------------------------------------------------------------------------------- */
131 background-color: #fff;
132 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
137 padding: 58px 5px 5px 5px;
148 .container:before, .container:after {
160 text-decoration: none;
161 line-height: inherit;
162 font-weight: inherit;
167 text-decoration: underline;
183 * Headings, body text, lists, code, and more for a versatile and durable typography system
184 * ---------------------------------------------------------------------------------------- */
188 .table .tr.cbi-section-table-descr .th {
268 text-transform: uppercase;
272 margin: 0 0 18px 25px;
319 border-bottom: 1px solid #eee;
329 font-weight: inherit;
330 line-height: inherit;
333 small { font-size: 0.9em }
343 font-family: Monaco, Andale Mono, Courier New, monospace;
349 background-color: #fee9cc;
350 color: rgba(0, 0, 0, 0.75);
355 background-color: #f5f5f5;
361 border: 1px solid #ccc;
362 border: 1px solid rgba(0, 0, 0, 0.15);
365 white-space: pre-wrap;
366 word-wrap: break-word;
370 * Base styles for various input types, form layouts, and states
371 * ------------------------------------------------------------- */
389 form .cbi-tab-descr {
400 form .clearfix:before, form .clearfix:after,
401 .cbi-value:before, .cbi-value:after {
407 form .clearfix:after,
417 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
428 .cbi-value label.cbi-value-title {
438 input[type=checkbox], input[type=radio] {
442 label > input[type="checkbox"],
443 label > input[type="radio"] {
444 vertical-align: bottom;
451 .cbi-dropdown:not(.btn):not(.cbi-button),
453 display: inline-block;
458 border: 1px solid #ccc;
464 .cbi-dropdown:not(.btn):not(.cbi-button),
473 .cbi-dropdown:not(.btn):not(.cbi-button),
483 display: inline-flex;
484 flex-direction: column;
487 .cbi-dynlist > .item {
489 box-shadow: 0 0 2px #ccc;
491 padding: 2px 2em 2px 4px;
492 border: 1px solid #ccc;
495 pointer-events: none;
498 .cbi-dynlist > .item::after {
501 display: inline-flex;
507 border: 1px solid #ccc;
508 border-radius: 0 3px 3px 0;
511 pointer-events: auto;
514 .cbi-dynlist > .add-item {
518 .cbi-dynlist > .add-item > input,
519 .cbi-dynlist > .add-item > button {
522 text-overflow: ellipsis;
529 box-shadow: inset 0 -1px 3px rgba(0, 0, 0, 0.1);
532 input[type=checkbox], input[type=radio] {
545 background-color: #fff;
548 line-height: initial;
550 width: auto !important;
553 input[type=button], input[type=reset], input[type=submit] {
560 background-color: #fff;
563 .td > input[type=text],
564 .td > input[type=password],
566 .td > .cbi-dropdown:not(.btn):not(.cbi-button),
567 .cbi-dynlist > .add-item > .cbi-dropdown {
572 background-color: #fff;
575 box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
583 ::-webkit-input-placeholder {
587 .item::after, .btn, .cbi-button, input, button, textarea {
588 transition: border linear 0.2s, box-shadow linear 0.2s;
589 box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
593 .btn:hover, .cbi-button:hover, button:hover,
594 input:focus, textarea:focus {
596 border-color: rgba(82, 168, 236, 0.8) !important;
597 box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6);
598 text-decoration: none;
601 input[type=file]:focus, input[type=checkbox]:focus, select:focus {
603 outline: 1px dotted #666;
614 background-color: #f5f5f5;
616 pointer-events: none;
622 pointer-events: auto;
627 .cbi-section-create {
628 padding: 0 0 10px 10px;
631 .cbi-section-create {
633 display: inline-flex;
637 .cbi-section-create > * {
642 .cbi-section-create > * > input {
650 padding: 17px 20px 18px 17px;
651 border-top: 1px solid #ddd;
652 border-radius: 0 0 3px 3px;
656 .actions .secondary-action,
657 .cbi-page-actions .secondary-action{
661 .actions .secondary-action a,
662 .cbi-page-actions .secondary-action a {
666 .actions .secondary-action a:hover,
667 .cbi-page-actions .secondary-action a:hover {
668 text-decoration: underline;
671 .cbi-page-actions > form {
676 .help-inline, .help-block {
699 * Tables for, you guessed it, tabular data
700 * ---------------------------------------- */
701 .tr { display: table-row; }
702 .table[width="33%"], .th[width="33%"], .td[width="33%"] { width: 33%; }
703 .table[width="100%"], .th[width="100%"], .td[width="100%"] { width: 100%; }
711 border-collapse: collapse;
715 .table .th, .table .td {
717 vertical-align: middle; /* Fixme */
718 padding: 10px 10px 9px;
723 .table .tr:first-child .th {
729 .table .td, .table .th {
730 border-top: 1px solid #ddd;
734 height: calc(3em + 20px);
737 .tr.placeholder > .td {
747 .tr.drag-over-below {
748 border: 2px solid #0069d6;
749 border-width: 2px 0 0 0;
752 .tr.drag-over-below {
753 border-width: 0 0 2px 0;
757 * Repeatable UI elements outside the base styles provided from the scaffolding
758 * ---------------------------------------------------------------------------- */
772 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
775 header h3 a:hover, header .brand:hover, header ul .active > a {
776 background-color: #333;
777 background-color: rgba(255, 255, 255, 0.05);
779 text-decoration: none;
786 header h3 a, header .brand {
789 padding: 8px 20px 12px;
803 background-color: #222;
804 background-repeat: repeat-x;
805 background-image: linear-gradient(to bottom, #333333, #222222);
806 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
810 header div > ul, .nav {
818 header div > ul > li, .nav > li {
823 header div > ul a, .nav a {
826 padding: 10px 10px 11px;
828 text-decoration: none;
831 header div > ul a:hover, .nav a:hover {
833 text-decoration: none;
836 header div > ul .active > a, .nav .active > a {
837 background-color: #222;
838 background-color: rgba(0, 0, 0, 0.5);
841 header div > ul.secondary-nav, .nav.secondary-nav {
847 header div > ul.secondary-nav .menu-dropdown,
848 .nav.secondary-nav .menu-dropdown,
849 header div > ul.secondary-nav .dropdown-menu,
850 .nav.secondary-nav .dropdown-menu {
855 header div > ul a.menu:hover,
857 header div > ul li.open .menu,
859 header div > ul .dropdown-toggle:hover,
860 .nav .dropdown-toggle:hover,
861 header div > ul .dropdown.open .dropdown-toggle,
862 .nav .dropdown.open .dropdown-toggle {
864 background: rgba(255, 255, 255, 0.05);
867 header div > ul .menu-dropdown,
869 header div > ul .dropdown-menu,
870 .nav .dropdown-menu {
871 background-color: #333;
874 header div > ul .menu-dropdown a.menu,
875 .nav .menu-dropdown a.menu,
876 header div > ul .dropdown-menu a.menu,
877 .nav .dropdown-menu a.menu,
878 header div > ul .menu-dropdown .dropdown-toggle,
879 .nav .menu-dropdown .dropdown-toggle,
880 header div > ul .dropdown-menu .dropdown-toggle,
881 .nav .dropdown-menu .dropdown-toggle {
885 header div > ul .menu-dropdown a.menu.open,
886 .nav .menu-dropdown a.menu.open,
887 header div > ul .dropdown-menu a.menu.open,
888 .nav .dropdown-menu a.menu.open,
889 header div > ul .menu-dropdown .dropdown-toggle.open,
890 .nav .menu-dropdown .dropdown-toggle.open,
891 header div > ul .dropdown-menu .dropdown-toggle.open,
892 .nav .dropdown-menu .dropdown-toggle.open {
894 background: rgba(255, 255, 255, 0.05);
897 header div > ul .menu-dropdown li a,
898 .nav .menu-dropdown li a,
899 header div > ul .dropdown-menu li a,
900 .nav .dropdown-menu li a {
902 text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5);
905 header div > ul .menu-dropdown li a:hover,
906 .nav .menu-dropdown li a:hover,
907 header div > ul .dropdown-menu li a:hover,
908 .nav .dropdown-menu li a:hover {
909 background-color: #191919;
910 background-repeat: repeat-x;
911 background-image: linear-gradient(to bottom, #292929, #191919);
915 header div > ul .menu-dropdown .active a,
916 .nav .menu-dropdown .active a,
917 header div > ul .dropdown-menu .active a,
918 .nav .dropdown-menu .active a {
922 header div > ul .menu-dropdown .divider,
923 .nav .menu-dropdown .divider,
924 header div > ul .dropdown-menu .divider,
925 .nav .dropdown-menu .divider {
926 background-color: #222;
930 header ul .menu-dropdown li a, header ul .dropdown-menu li a {
938 a.menu:after, .dropdown-toggle:after {
941 display: inline-block;
943 text-indent: -99999px;
947 border-left: 4px solid transparent;
948 border-right: 4px solid transparent;
949 border-top: 4px solid #fff;
953 .menu-dropdown, .dropdown-menu {
954 background-color: #fff;
968 border-color: rgba(0, 0, 0, 0.2);
970 border-width: 0 1px 1px;
971 border-radius: 0 0 6px 6px;
972 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
973 background-clip: padding-box;
976 .menu-dropdown li, .dropdown-menu li {
979 background-color: transparent;
982 .menu-dropdown .divider, .dropdown-menu .divider {
986 background-color: #eee;
987 border-bottom: 1px solid #fff;
990 header .dropdown-menu a, .dropdown-menu a {
997 text-shadow: 0 1px 0 #fff;
1000 header .dropdown-menu a:hover,
1001 .dropdown-menu a:hover,
1002 header .dropdown-menu a.hover,
1003 .dropdown-menu a.hover {
1004 background-color: #ddd;
1005 background-repeat: repeat-x;
1006 background-image: linear-gradient(to bottom, #eee, #ddd);
1008 text-decoration: none;
1009 box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.025), inset 0 -1px rgba(0, 0, 0, 0.025);
1013 .dropdown.open .menu,
1014 .open .dropdown-toggle,
1015 .dropdown.open .dropdown-toggle {
1018 background: rgba(0, 0, 0, 0.3);
1021 .open .menu-dropdown,
1022 .dropdown.open .menu-dropdown,
1023 .open .dropdown-menu,
1024 .dropdown.open .dropdown-menu {
1028 .dropdown:hover ul.dropdown-menu {
1032 .dropdown-menu .dropdown-menu {
1041 .tabs, .cbi-tabmenu {
1042 margin: 0 -5px 18px;
1047 background: linear-gradient(#fff 28px, #ddd 28px);
1048 background-size: 1px 29px;
1049 background-position: left bottom;
1052 .tabs > li, .cbi-tabmenu > li {
1055 align-items: center;
1058 margin: 4px 2px 0 2px;
1060 border: 1px solid #ddd;
1061 border-bottom: none;
1062 border-radius: 4px 4px 0 0;
1066 .tabs > li > a, .cbi-tabmenu > li > a {
1068 white-space: nowrap;
1070 text-overflow: ellipsis;
1072 text-decoration: none;
1073 border-radius: 4px 4px 0 0;
1078 .tabs > li:not(.active):hover, .cbi-tabmenu > .cbi-tab-disabled:hover {
1079 background: linear-gradient(#fff 90%, #ddd 100%);
1082 .tabs > li:not(.active), .cbi-tabmenu > .cbi-tab-disabled {
1084 background: linear-gradient(#eee 90%, #ddd 100%);
1087 .cbi-tab-disabled[data-errors]::after {
1088 content: attr(data-errors);
1089 background: #c43c35;
1103 .cbi-tabmenu.map > li {
1108 .cbi-tabcontainer > fieldset.cbi-section[id] > legend {
1112 .tabs .menu-dropdown, .tabs .dropdown-menu {
1115 border-radius: 0 6px 6px 6px;
1118 .tabs a.menu:after, .tabs .dropdown-toggle:after {
1119 border-top-color: #999;
1124 .tabs li.open.menu .menu, .tabs .open.dropdown .dropdown-toggle {
1128 .tabs li.open a.menu:after, .tabs .dropdown.open .dropdown-toggle:after {
1129 border-top-color: #555;
1132 .tab-content > .tab-pane,
1133 .tab-content > div {
1137 .tab-content > .active {
1144 background-color: #f5f5f5;
1145 background-repeat: repeat-x;
1146 background-image: linear-gradient(to bottom, #fff, #f5f5f5);
1147 border: 1px solid #ddd;
1149 box-shadow: inset 0 1px 0 #fff;
1154 text-shadow: 0 1px 0 #fff;
1157 .breadcrumb .divider {
1162 .breadcrumb .active a {
1169 border-top: 1px solid #eee;
1178 background: rgba(0, 0, 0, 0.7);
1181 -webkit-overflow-scrolling: touch;
1182 transition: opacity .125s ease-in;
1194 align-items: center;
1197 box-shadow: 0 0 3px #444;
1198 padding: 1em 1em .5em 1em;
1204 line-height: normal;
1205 margin-bottom: .5em;
1211 white-space: pre-wrap;
1215 body.modal-overlay-active {
1220 body.modal-overlay-active #modal_overlay {
1224 visibility: visible;
1228 .alert-message.danger,
1230 .alert-message.danger:hover,
1232 .alert-message.error,
1234 .alert-message.error:hover,
1236 .alert-message.success,
1238 .alert-message.success:hover,
1240 .alert-message.info,
1242 .alert-message.info:hover,
1243 .cbi-tooltip.error, .cbi-tooltip.success, .cbi-tooltip.info {
1247 .btn .close, .alert-message .close {
1248 font-family: Arial, sans-serif;
1253 .alert-message.danger,
1255 .alert-message.error,
1256 .cbi-tooltip.error {
1257 background: linear-gradient(to bottom, #ee5f5b, #c43c35) repeat-x;
1258 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1259 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1262 .btn.success, .alert-message.success, .cbi-tooltip.success {
1263 background: linear-gradient(to bottom, #62c462, #57a957) repeat-x;
1264 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1265 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1268 .btn.info, .alert-message.info, .cbi-tooltip.info {
1269 background: linear-gradient(to bottom, #5bc0de, #339bb9) repeat-x;
1270 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1271 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1274 .alert-message.notice, .cbi-tooltip.notice {
1275 background: linear-gradient(to bottom, #efefef, #fefefe) repeat-x;
1276 text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.25);
1277 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1284 display: inline-block;
1285 background: linear-gradient(#fff, #fff 25%, #e6e6e6) no-repeat;
1286 padding: 5px 14px 6px;
1287 text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
1290 line-height: normal;
1291 border: 1px solid #ccc;
1292 border-bottom-color: #bbb;
1294 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1299 outline: 1px dotted #666;
1303 .cbi-input-invalid.cbi-dropdown:not(.btn):not(.cbi-button),
1304 .cbi-input-invalid.cbi-dropdown:not([open]) > ul > li,
1305 .cbi-value-error input {
1310 .cbi-button-positive,
1311 .cbi-button-fieldadd,
1318 .cbi-button-neutral,
1319 .cbi-button-download,
1332 border-color: #0069d6;
1336 .cbi-button-negative,
1337 .cbi-section-remove .cbi-button,
1339 .cbi-button-remove {
1344 .cbi-page-actions::after {
1350 .cbi-page-actions > :not([method="post"]):not(.cbi-button-apply):not(.cbi-button-negative):not(.cbi-button-save):not(.cbi-button-reset) {
1356 .cbi-button-action.important,
1357 .cbi-page-actions .cbi-button-apply,
1358 .cbi-section-actions .cbi-button-edit {
1360 background: linear-gradient(to bottom, #0069d6, #0049d6) no-repeat;
1361 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1364 .cbi-button-positive.important,
1365 .cbi-page-actions .cbi-button-save {
1367 background: linear-gradient(to bottom, #4a4, #484) no-repeat;
1368 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1371 .cbi-button-negative.important {
1373 background: linear-gradient(to bottom, #c44, #c00) no-repeat;
1374 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1377 .cbi-page-actions .cbi-button-apply + .cbi-button-save,
1378 .cbi-page-actions .cbi-button-negative + .cbi-button-save {
1379 background: linear-gradient(#fff, #fff 25%, #e6e6e6);
1380 text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.75);
1385 display: inline-flex !important;
1389 padding: 0 !important;
1392 .cbi-dropdown:not(.btn):not(.cbi-button) {
1393 background: linear-gradient(#fff 0%, #e9e8e6 100%);
1394 border: 1px solid #ccc;
1399 .cbi-dynlist > .item:focus,
1400 .cbi-dropdown:focus {
1401 outline: 2px solid #4b6e9b;
1404 .cbi-dropdown > ul {
1405 margin: 0 !important;
1414 .cbi-dropdown.btn > ul:not(.dropdown),
1415 .cbi-dropdown.cbi-button > ul:not(.dropdown) {
1416 margin: 0 0 0 13px !important;
1419 .cbi-dropdown.btn.spinning > ul:not(.dropdown),
1420 .cbi-dropdown.cbi-button.spinning > ul:not(.dropdown) {
1421 margin: 0 !important;
1424 .cbi-dropdown > ul.preview {
1428 .cbi-dropdown > .open,
1429 .cbi-dropdown > .more {
1433 flex-direction: column;
1434 justify-content: center;
1440 .cbi-dropdown.btn > .open,
1441 .cbi-dropdown.cbi-button > .open {
1444 border-left: 1px solid;
1447 .cbi-dropdown > .more,
1448 .cbi-dropdown:not(.btn):not(.cbi-button) > ul > li[placeholder] {
1451 text-shadow: 1px 1px 0px #fff;
1453 justify-content: center;
1456 .cbi-dropdown > ul > li {
1458 white-space: nowrap;
1460 text-overflow: ellipsis;
1463 align-items: center;
1468 .cbi-dropdown > ul.dropdown > li,
1469 .cbi-dropdown:not(.btn):not(.cbi-button) > ul > li {
1475 .cbi-dropdown > ul > li .hide-open { display: block; display: initial; }
1476 .cbi-dropdown > ul > li .hide-close { display: none; }
1478 .cbi-dropdown > ul > li[display]:not([display="0"]) {
1479 border-left: 1px solid #ccc;
1482 .cbi-dropdown[empty] > ul {
1486 .cbi-dropdown > ul > li > form {
1490 pointer-events: none;
1493 .cbi-dropdown > ul > li img {
1494 vertical-align: middle;
1495 margin-right: .25em;
1498 .cbi-dropdown > ul > li > form > input[type="checkbox"] {
1502 .cbi-dropdown > ul > li input[type="text"] {
1506 .cbi-dropdown[open] {
1510 .cbi-dropdown[open] > ul.dropdown {
1512 background: #f6f6f5;
1513 border: 1px solid #918e8c;
1514 box-shadow: 0 0 4px #918e8c;
1520 transition: max-height .125s ease-in;
1523 .cbi-dropdown > ul > li[display],
1524 .cbi-dropdown[open] > ul.preview,
1525 .cbi-dropdown[open] > ul.dropdown > li,
1526 .cbi-dropdown[multiple] > ul > li > label,
1527 .cbi-dropdown[multiple][open] > ul.dropdown > li,
1528 .cbi-dropdown[multiple][more] > .more,
1529 .cbi-dropdown[multiple][empty] > .more {
1531 display: flex !important;
1534 .cbi-dropdown[empty] > ul > li,
1535 .cbi-dropdown[optional][open] > ul.dropdown > li[placeholder],
1536 .cbi-dropdown[multiple][open] > ul.dropdown > li > form {
1537 display: block !important;
1540 .cbi-dropdown[open] > ul.dropdown > li .hide-open { display: none; }
1541 .cbi-dropdown[open] > ul.dropdown > li .hide-close { display: block; display: initial; }
1543 .cbi-dropdown[open] > ul.dropdown > li {
1544 border-bottom: 1px solid #ccc;
1547 .cbi-dropdown[open] > ul.dropdown > li[selected] {
1548 background: #b0d0f0;
1551 .cbi-dropdown[open] > ul.dropdown > li.focus {
1552 background: linear-gradient(90deg, #a3c2e8 0%, #84aad9 100%);
1555 .cbi-dropdown[open] > ul.dropdown > li:last-child {
1557 border-bottom: none;
1560 .cbi-dropdown[open] > ul.dropdown > li[unselectable] {
1564 .cbi-dropdown[open] > ul.dropdown > li > input.create-item-input:first-child:last-child {
1568 .cbi-dropdown[disabled] {
1569 pointer-events: none;
1573 input[type="text"] + .cbi-button,
1574 input[type="password"] + .cbi-button,
1575 select + .cbi-button {
1576 border-radius: 0 3px 3px 0;
1580 vertical-align: top;
1586 select + .cbi-button {
1587 border-left-color: transparent;
1594 .cbi-title-ref::after {
1598 .cbi-tooltip-container {
1606 box-shadow: 0 0 2px #ccc;
1612 transition: opacity .25s ease-in;
1615 .cbi-tooltip-container:hover .cbi-tooltip:not(:empty) {
1618 transition: opacity .25s ease-in;
1622 border: 1px solid #ccc;
1628 background: #f9f9f9;
1631 .cbi-progressbar > div {
1632 background: #90c0e0;
1634 transition: width .25s ease-in;
1638 .cbi-progressbar::after {
1645 text-shadow: 0 0 2px #fff;
1646 content: attr(title);
1649 text-overflow: ellipsis;
1652 .zonebadge .cbi-tooltip {
1654 background: inherit;
1655 margin: -1.6em 0 0 -5px;
1657 pointer-events: none;
1658 box-shadow: 0 0 3px #444;
1661 .zonebadge .cbi-tooltip > * {
1670 .zone-forwards > * {
1675 .zone-forwards > span {
1680 .zone-forwards .zone-src,
1681 .zone-forwards .zone-dest {
1683 flex-direction: column;
1686 .btn.active, .btn:active {
1687 box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
1704 line-height: normal;
1705 padding: 9px 14px 9px;
1710 padding: 7px 9px 7px;
1714 button.btn::-moz-focus-inner, input[type=submit].btn::-moz-focus-inner {
1724 line-height: 13.5px;
1725 text-shadow: 0 1px 0 #fff;
1731 text-decoration: none;
1737 padding: .5em .5em .25em .5em;
1738 margin-bottom: .5em;
1740 background: linear-gradient(to bottom, #fceec1, #eedc94) repeat-x;
1741 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1742 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1743 text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
1745 border-style: solid;
1747 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
1750 .alert-message .close {
1763 line-height: inherit;
1764 background: transparent;
1769 .alert-message button {
1774 padding: 1px 3px 2px;
1777 color: #fff !important;
1778 text-transform: uppercase;
1779 white-space: nowrap;
1780 background-color: #bfbfbf;
1791 text-decoration: none;
1795 background-color: #c43c35;
1799 background-color: #f89406;
1803 background-color: #46a546;
1807 background-color: #62cffc;
1810 /* LuCI specific items */
1811 .hidden { display: none }
1817 form.inline { display: inline; margin-bottom: 0; }
1819 header .pull-right { padding-top: 8px; }
1821 #modemenu li:last-child span.divider { display: none }
1823 #syslog { width: 100%; }
1825 .cbi-section-table .tr:hover .td,
1826 .cbi-section-table .tr:hover .th,
1827 .cbi-section-table .tr:hover::before {
1828 background-color: #f5f5f5;
1831 .cbi-section-table .tr.cbi-section-table-descr .th {
1832 font-weight: normal;
1835 .cbi-section-table-titles.named::before,
1836 .cbi-section-table-descr.named::before,
1837 .cbi-section-table-row[data-title]::before {
1838 content: attr(data-title) " ";
1839 display: table-cell;
1840 padding: 10px 10px 9px;
1843 vertical-align: middle;
1846 .cbi-section-table-titles.named::before,
1847 .cbi-section-table-descr.named::before,
1848 .cbi-section-table-row[data-title]::before {
1849 border-top: 1px solid #ddd;
1852 .left { text-align: left !important; }
1853 .right { text-align: right !important; }
1854 .center { text-align: center !important; }
1855 .top { vertical-align: top !important; }
1856 .middle { vertical-align: middle !important; }
1857 .bottom { vertical-align: bottom !important; }
1859 .cbi-value-field { line-height: 1.5em; }
1861 .cbi-value-field input[type=checkbox],
1862 .cbi-value-field input[type=radio] {
1868 .cbi-value-field table td {
1872 .table.cbi-section-table input[type="password"],
1873 .table.cbi-section-table input[type="text"],
1874 .table.cbi-section-table textarea,
1875 .table.cbi-section-table select {
1879 .table.cbi-section-table .td.cbi-section-table-cell {
1880 white-space: nowrap;
1884 .table.cbi-section-table .td.cbi-section-table-cell select {
1888 .td.cbi-section-actions {
1890 vertical-align: middle;
1893 .td.cbi-section-actions > * {
1897 .td.cbi-section-actions > * > *,
1898 .td.cbi-section-actions > * > form > * {
1903 .td.cbi-section-actions > * > form {
1904 display: inline-flex;
1908 .table.valign-middle .td {
1909 vertical-align: middle;
1914 .tr.cbi-section-table-titles {
1915 background: #f9f9f9;
1918 .cbi-value-description {
1919 background-image: url(/luci-static/resources/cbi/help.gif);
1920 background-position: .25em .2em;
1921 background-repeat: no-repeat;
1922 margin: .25em 0 0 0;
1923 padding: 0 0 0 1.7em;
1926 .cbi-section-error {
1927 border: 1px solid #f00;
1929 background-color: #fce6e6;
1931 margin-bottom: 18px;
1934 .cbi-section-error ul { margin: 0 0 0 20px; }
1936 .cbi-section-error ul li {
1942 background-color: #fff;
1943 border: 1px solid #ccc;
1946 white-space: nowrap;
1947 background-image: linear-gradient(#fff, #fff 25%, #f9f9f9);
1948 text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
1950 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1951 display: inline-flex;
1952 flex-direction: column;
1957 .ifacebox .ifacebox-head {
1958 border-bottom: 1px solid #ccc;
1963 .ifacebox .ifacebox-head.active {
1964 background: #90c0e0;
1967 .ifacebox .ifacebox-body {
1972 display: inline-block;
1973 flex-direction: row;
1974 white-space: nowrap;
1975 background-color: #fff;
1976 border: 1px solid #ccc;
1978 background-image: linear-gradient(#fff, #fff 25%, #f9f9f9);
1979 text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
1981 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1989 vertical-align: middle;
1992 .ifacebadge-active {
1997 .network-status-table {
2002 .network-status-table .ifacebox {
2007 .network-status-table .ifacebox-body {
2009 flex-direction: column;
2014 .network-status-table .ifacebox-body > * {
2018 .network-status-table .ifacebox-body > span {
2023 .network-status-table .ifacebox-body > div {
2027 #dsl_status_table .ifacebox-body span > strong {
2028 display: inline-block;
2033 .network-status-table .ifacebox-body .ifacebadge {
2042 display: inline-flex;
2045 .network-status-table .ifacebox-body .ifacebadge > span {
2047 text-overflow: ellipsis;
2051 .ifacebadge.large > * {
2058 display: inline-block;
2059 white-space: nowrap;
2061 text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
2065 .zonebadge > strong {
2067 display: inline-block;
2074 .zonebadge > .ifacebadge {
2079 border: 1px dashed #aaa;
2086 .td.cbi-value-field var {
2091 div.cbi-value var[data-tooltip],
2092 .td.cbi-value-field var[data-tooltip],
2093 div.cbi-value var.cbi-tooltip-container,
2094 .td.cbi-value-field var.cbi-tooltip-container {
2096 border-bottom: 1px dotted #0069d6;
2099 div.cbi-value var.cbi-tooltip-container,
2100 .td.cbi-value-field var.cbi-tooltip-container .cbi-tooltip {
2102 white-space: normal;
2106 #modal_overlay > .modal.uci-dialog,
2107 #modal_overlay > .modal.cbi-modal {
2116 .uci-change-list del,
2117 .uci-change-list ins,
2118 .uci-change-list var,
2119 .uci-change-legend-label del,
2120 .uci-change-legend-label ins,
2121 .uci-change-legend-label var {
2122 text-decoration: none;
2123 font-family: monospace;
2125 border: 1px solid #ccc;
2133 .uci-change-list ins,
2134 .uci-change-legend-label ins {
2139 .uci-change-list del,
2140 .uci-change-legend-label del {
2145 .uci-change-list var,
2146 .uci-change-legend-label var {
2151 .uci-change-list var ins,
2152 .uci-change-list var del {
2153 display: inline-block;
2159 .uci-change-legend {
2163 .uci-change-legend-label {
2168 .uci-change-legend-label > ins,
2169 .uci-change-legend-label > del,
2170 .uci-change-legend-label > var {
2179 .uci-change-legend-label var ins,
2180 .uci-change-legend-label var del {
2195 background: rgba(0, 0, 0, 0.7);
2198 -webkit-overflow-scrolling: touch;
2199 transition: opacity .125s ease-in;
2203 #modal_overlay > .modal {
2210 align-items: center;
2213 box-shadow: 0 0 3px #444;
2214 padding: 1em 1em .5em 1em;
2218 #modal_overlay .modal > * {
2220 line-height: normal;
2221 margin-bottom: .5em;
2224 #modal_overlay .modal > pre,
2225 #modal_overlay .modal > textarea {
2226 white-space: pre-wrap;
2230 body.modal-overlay-active {
2235 body.modal-overlay-active #modal_overlay {
2241 html body.apply-overlay-active {
2242 height: calc(100vh - 63px);
2245 #applyreboot-section {
2249 [data-page="admin-network-dhcp"] [data-name="ip"] {
2255 50% { opacity: .5; }
2256 100% { opacity: 1; }
2260 animation: flash .35s;
2265 padding-left: 32px !important;
2275 background: url(../resources/icons/loading.gif) no-repeat center;
2276 background-size: 16px;
2285 [data-tab-active="true"] {
2289 transition: opacity .25s ease-in;
2295 border: 1px solid #ccc;
2298 flex-direction: column;
2304 .cbi-filebrowser.open {
2308 transition: opacity .25s ease-in;
2311 .cbi-filebrowser > * {
2314 text-overflow: ellipsis;
2315 padding: 0 0 .25em 0;
2316 margin: .25em .25em 0px .25em;
2317 white-space: nowrap;
2318 border-bottom: 1px solid #ccc;
2321 .cbi-filebrowser .cbi-button-positive {
2322 margin-right: .25em;
2325 .cbi-filebrowser > div {
2326 border-bottom: none;
2329 .cbi-filebrowser > ul > li {
2331 flex-direction: row;
2334 .cbi-filebrowser > ul > li:hover {
2335 background: #f5f5f5;
2338 .cbi-filebrowser > ul > li > div:first-child {
2341 text-overflow: ellipsis;
2344 .cbi-filebrowser > ul > li > div:last-child {
2349 .cbi-filebrowser > ul > li > div:last-child > button {
2350 padding: .125em .25em;
2351 margin: 1px 0 1px .25em;
2354 .cbi-filebrowser .upload {
2356 flex-direction: row;
2358 margin: 0 -.125em .25em -.125em;
2359 padding: 0 0 .125em 0px;
2360 border-bottom: 1px solid #ccc;
2363 .cbi-filebrowser .upload > * {
2368 .cbi-filebrowser .upload > .btn {
2372 .cbi-filebrowser .upload > div {
2377 .cbi-filebrowser .upload > div > input {
2381 @keyframes fade-in {
2383 100% { opacity: 1; }
2386 @keyframes fade-out {
2388 100% { opacity: 0; }
2392 animation: fade-in .4s ease;
2396 animation: fade-out .4s ease;