.\n\n.list-group {\n // No need to set list-style: none; since .list-group-item is block level\n margin-bottom: 20px;\n padding-left: 0; // reset padding because ul and ol\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n // Place the border on the list items and negative margin up for better styling\n margin-bottom: -1px;\n background-color: @list-group-bg;\n border: 1px solid @list-group-border;\n\n // Round the first and last items\n &:first-child {\n .border-top-radius(@list-group-border-radius);\n }\n &:last-child {\n margin-bottom: 0;\n .border-bottom-radius(@list-group-border-radius);\n }\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive items.\n// Includes an extra `.active` modifier class for showing selected items.\n\na.list-group-item,\nbutton.list-group-item {\n color: @list-group-link-color;\n\n .list-group-item-heading {\n color: @list-group-link-heading-color;\n }\n\n // Hover state\n &:hover,\n &:focus {\n text-decoration: none;\n color: @list-group-link-hover-color;\n background-color: @list-group-hover-bg;\n }\n}\n\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n\n.list-group-item {\n // Disabled state\n &.disabled,\n &.disabled:hover,\n &.disabled:focus {\n background-color: @list-group-disabled-bg;\n color: @list-group-disabled-color;\n cursor: @cursor-disabled;\n\n // Force color to inherit for custom content\n .list-group-item-heading {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-disabled-text-color;\n }\n }\n\n // Active class on item itself, not parent\n &.active,\n &.active:hover,\n &.active:focus {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: @list-group-active-color;\n background-color: @list-group-active-bg;\n border-color: @list-group-active-border;\n\n // Force color to inherit for custom content\n .list-group-item-heading,\n .list-group-item-heading > small,\n .list-group-item-heading > .small {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-active-text-color;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n.list-group-item-variant(success; @state-success-bg; @state-success-text);\n.list-group-item-variant(info; @state-info-bg; @state-info-text);\n.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);\n.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);\n\n\n// Custom content options\n//\n// Extra classes for creating well-formatted content within `.list-group-item`s.\n\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n","// List Groups\n\n.list-group-item-variant(@state; @background; @color) {\n .list-group-item-@{state} {\n color: @color;\n background-color: @background;\n\n a&,\n button& {\n color: @color;\n\n .list-group-item-heading {\n color: inherit;\n }\n\n &:hover,\n &:focus {\n color: @color;\n background-color: darken(@background, 5%);\n }\n &.active,\n &.active:hover,\n &.active:focus {\n color: #fff;\n background-color: @color;\n border-color: @color;\n }\n }\n }\n}\n","//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n margin-bottom: @line-height-computed;\n background-color: @panel-bg;\n border: 1px solid transparent;\n border-radius: @panel-border-radius;\n .box-shadow(0 1px 1px rgba(0,0,0,.05));\n}\n\n// Panel contents\n.panel-body {\n padding: @panel-body-padding;\n &:extend(.clearfix all);\n}\n\n// Optional heading\n.panel-heading {\n padding: @panel-heading-padding;\n border-bottom: 1px solid transparent;\n .border-top-radius((@panel-border-radius - 1));\n\n > .dropdown .dropdown-toggle {\n color: inherit;\n }\n}\n\n// Within heading, strip any `h*` tag of its default margins for spacing.\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: ceil((@font-size-base * 1.125));\n color: inherit;\n\n > a,\n > small,\n > .small,\n > small > a,\n > .small > a {\n color: inherit;\n }\n}\n\n// Optional footer (stays gray in every modifier class)\n.panel-footer {\n padding: @panel-footer-padding;\n background-color: @panel-footer-bg;\n border-top: 1px solid @panel-inner-border;\n .border-bottom-radius((@panel-border-radius - 1));\n}\n\n\n// List groups in panels\n//\n// By default, space out list group content from panel headings to account for\n// any kind of custom content between the two.\n\n.panel {\n > .list-group,\n > .panel-collapse > .list-group {\n margin-bottom: 0;\n\n .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n }\n\n // Add border top radius for first one\n &:first-child {\n .list-group-item:first-child {\n border-top: 0;\n .border-top-radius((@panel-border-radius - 1));\n }\n }\n\n // Add border bottom radius for last one\n &:last-child {\n .list-group-item:last-child {\n border-bottom: 0;\n .border-bottom-radius((@panel-border-radius - 1));\n }\n }\n }\n > .panel-heading + .panel-collapse > .list-group {\n .list-group-item:first-child {\n .border-top-radius(0);\n }\n }\n}\n// Collapse space between when there's no additional content.\n.panel-heading + .list-group {\n .list-group-item:first-child {\n border-top-width: 0;\n }\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n\n// Tables in panels\n//\n// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and\n// watch it go full width.\n\n.panel {\n > .table,\n > .table-responsive > .table,\n > .panel-collapse > .table {\n margin-bottom: 0;\n\n caption {\n padding-left: @panel-body-padding;\n padding-right: @panel-body-padding;\n }\n }\n // Add border top radius for first one\n > .table:first-child,\n > .table-responsive:first-child > .table:first-child {\n .border-top-radius((@panel-border-radius - 1));\n\n > thead:first-child,\n > tbody:first-child {\n > tr:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n border-top-right-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-top-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n // Add border bottom radius for last one\n > .table:last-child,\n > .table-responsive:last-child > .table:last-child {\n .border-bottom-radius((@panel-border-radius - 1));\n\n > tbody:last-child,\n > tfoot:last-child {\n > tr:last-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n border-bottom-right-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-bottom-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n > .panel-body + .table,\n > .panel-body + .table-responsive,\n > .table + .panel-body,\n > .table-responsive + .panel-body {\n border-top: 1px solid @table-border-color;\n }\n > .table > tbody:first-child > tr:first-child th,\n > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n }\n > .table-bordered,\n > .table-responsive > .table-bordered {\n border: 0;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n > thead,\n > tbody {\n > tr:first-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n > tbody,\n > tfoot {\n > tr:last-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n }\n > .table-responsive {\n border: 0;\n margin-bottom: 0;\n }\n}\n\n\n// Collapsible panels (aka, accordion)\n//\n// Wrap a series of panels in `.panel-group` to turn them into an accordion with\n// the help of our collapse JavaScript plugin.\n\n.panel-group {\n margin-bottom: @line-height-computed;\n\n // Tighten up margin so it's only between panels\n .panel {\n margin-bottom: 0;\n border-radius: @panel-border-radius;\n\n + .panel {\n margin-top: 5px;\n }\n }\n\n .panel-heading {\n border-bottom: 0;\n\n + .panel-collapse > .panel-body,\n + .panel-collapse > .list-group {\n border-top: 1px solid @panel-inner-border;\n }\n }\n\n .panel-footer {\n border-top: 0;\n + .panel-collapse .panel-body {\n border-bottom: 1px solid @panel-inner-border;\n }\n }\n}\n\n\n// Contextual variations\n.panel-default {\n .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);\n}\n.panel-primary {\n .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);\n}\n.panel-success {\n .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);\n}\n.panel-info {\n .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);\n}\n.panel-warning {\n .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);\n}\n.panel-danger {\n .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);\n}\n","// Panels\n\n.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {\n border-color: @border;\n\n & > .panel-heading {\n color: @heading-text-color;\n background-color: @heading-bg-color;\n border-color: @heading-border;\n\n + .panel-collapse > .panel-body {\n border-top-color: @border;\n }\n .badge {\n color: @heading-bg-color;\n background-color: @heading-text-color;\n }\n }\n & > .panel-footer {\n + .panel-collapse > .panel-body {\n border-bottom-color: @border;\n }\n }\n}\n","// Embeds responsive\n//\n// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n border: 0;\n }\n}\n\n// Modifier class for 16:9 aspect ratio\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n\n// Modifier class for 4:3 aspect ratio\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n","//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: @well-bg;\n border: 1px solid @well-border;\n border-radius: @border-radius-base;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));\n blockquote {\n border-color: #ddd;\n border-color: rgba(0,0,0,.15);\n }\n}\n\n// Sizes\n.well-lg {\n padding: 24px;\n border-radius: @border-radius-large;\n}\n.well-sm {\n padding: 9px;\n border-radius: @border-radius-small;\n}\n","//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n float: right;\n font-size: (@font-size-base * 1.5);\n font-weight: @close-font-weight;\n line-height: 1;\n color: @close-color;\n text-shadow: @close-text-shadow;\n .opacity(.2);\n\n &:hover,\n &:focus {\n color: @close-color;\n text-decoration: none;\n cursor: pointer;\n .opacity(.5);\n }\n\n // Additional properties for button version\n // iOS requires the button element instead of an anchor tag.\n // If you want the anchor version, it requires `href=\"#\"`.\n // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n button& {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n }\n}\n","//\n// Modals\n// --------------------------------------------------\n\n// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and shit\n\n// Kill the scroll on the body\n.modal-open {\n overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n display: none;\n overflow: hidden;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal;\n -webkit-overflow-scrolling: touch;\n\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n\n // When fading in the modal, animate it to slide down\n &.fade .modal-dialog {\n .translate(0, -25%);\n .transition-transform(~\"0.3s ease-out\");\n }\n &.in .modal-dialog { .translate(0, 0) }\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n background-color: @modal-content-bg;\n border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)\n border: 1px solid @modal-content-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 3px 9px rgba(0,0,0,.5));\n background-clip: padding-box;\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal-background;\n background-color: @modal-backdrop-bg;\n // Fade for backdrop\n &.fade { .opacity(0); }\n &.in { .opacity(@modal-backdrop-opacity); }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n padding: @modal-title-padding;\n border-bottom: 1px solid @modal-header-border-color;\n &:extend(.clearfix all);\n}\n// Close icon\n.modal-header .close {\n margin-top: -2px;\n}\n\n// Title text within header\n.modal-title {\n margin: 0;\n line-height: @modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n padding: @modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n padding: @modal-inner-padding;\n text-align: right; // right align buttons\n border-top: 1px solid @modal-footer-border-color;\n &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons\n\n // Properly space out buttons\n .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n }\n // but override that for button groups\n .btn-group .btn + .btn {\n margin-left: -1px;\n }\n // and override it for block buttons as well\n .btn-block + .btn-block {\n margin-left: 0;\n }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@media (min-width: @screen-sm-min) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n width: @modal-md;\n margin: 30px auto;\n }\n .modal-content {\n .box-shadow(0 5px 15px rgba(0,0,0,.5));\n }\n\n // Modal sizes\n .modal-sm { width: @modal-sm; }\n}\n\n@media (min-width: @screen-md-min) {\n .modal-lg { width: @modal-lg; }\n}\n","//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n position: absolute;\n z-index: @zindex-tooltip;\n display: block;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n .reset-text();\n font-size: @font-size-small;\n\n .opacity(0);\n\n &.in { .opacity(@tooltip-opacity); }\n &.top { margin-top: -3px; padding: @tooltip-arrow-width 0; }\n &.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; }\n &.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; }\n &.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: @tooltip-max-width;\n padding: 3px 8px;\n color: @tooltip-color;\n text-align: center;\n background-color: @tooltip-bg;\n border-radius: @border-radius-base;\n}\n\n// Arrows\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1\n.tooltip {\n &.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-left .tooltip-arrow {\n bottom: 0;\n right: @tooltip-arrow-width;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-right .tooltip-arrow {\n bottom: 0;\n left: @tooltip-arrow-width;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;\n border-right-color: @tooltip-arrow-color;\n }\n &.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-left-color: @tooltip-arrow-color;\n }\n &.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-left .tooltip-arrow {\n top: 0;\n right: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-right .tooltip-arrow {\n top: 0;\n left: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n}\n",".reset-text() {\n font-family: @font-family-base;\n // We deliberately do NOT reset font-size.\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: @line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n}\n","//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: @zindex-popover;\n display: none;\n max-width: @popover-max-width;\n padding: 1px;\n // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n .reset-text();\n font-size: @font-size-base;\n\n background-color: @popover-bg;\n background-clip: padding-box;\n border: 1px solid @popover-fallback-border-color;\n border: 1px solid @popover-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 5px 10px rgba(0,0,0,.2));\n\n // Offset the popover to account for the popover arrow\n &.top { margin-top: -@popover-arrow-width; }\n &.right { margin-left: @popover-arrow-width; }\n &.bottom { margin-top: @popover-arrow-width; }\n &.left { margin-left: -@popover-arrow-width; }\n}\n\n.popover-title {\n margin: 0; // reset heading margin\n padding: 8px 14px;\n font-size: @font-size-base;\n background-color: @popover-title-bg;\n border-bottom: 1px solid darken(@popover-title-bg, 5%);\n border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;\n}\n\n.popover-content {\n padding: 9px 14px;\n}\n\n// Arrows\n//\n// .arrow is outer, .arrow:after is inner\n\n.popover > .arrow {\n &,\n &:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n }\n}\n.popover > .arrow {\n border-width: @popover-arrow-outer-width;\n}\n.popover > .arrow:after {\n border-width: @popover-arrow-width;\n content: \"\";\n}\n\n.popover {\n &.top > .arrow {\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-bottom-width: 0;\n border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-top-color: @popover-arrow-outer-color;\n bottom: -@popover-arrow-outer-width;\n &:after {\n content: \" \";\n bottom: 1px;\n margin-left: -@popover-arrow-width;\n border-bottom-width: 0;\n border-top-color: @popover-arrow-color;\n }\n }\n &.right > .arrow {\n top: 50%;\n left: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-left-width: 0;\n border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-right-color: @popover-arrow-outer-color;\n &:after {\n content: \" \";\n left: 1px;\n bottom: -@popover-arrow-width;\n border-left-width: 0;\n border-right-color: @popover-arrow-color;\n }\n }\n &.bottom > .arrow {\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-bottom-color: @popover-arrow-outer-color;\n top: -@popover-arrow-outer-width;\n &:after {\n content: \" \";\n top: 1px;\n margin-left: -@popover-arrow-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-color;\n }\n }\n\n &.left > .arrow {\n top: 50%;\n right: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-right-width: 0;\n border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-left-color: @popover-arrow-outer-color;\n &:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: @popover-arrow-color;\n bottom: -@popover-arrow-width;\n }\n }\n}\n","//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n\n > .item {\n display: none;\n position: relative;\n .transition(.6s ease-in-out left);\n\n // Account for jankitude on images\n > img,\n > a > img {\n &:extend(.img-responsive);\n line-height: 1;\n }\n\n // WebKit CSS3 transforms for supported devices\n @media all and (transform-3d), (-webkit-transform-3d) {\n .transition-transform(~'0.6s ease-in-out');\n .backface-visibility(~'hidden');\n .perspective(1000px);\n\n &.next,\n &.active.right {\n .translate3d(100%, 0, 0);\n left: 0;\n }\n &.prev,\n &.active.left {\n .translate3d(-100%, 0, 0);\n left: 0;\n }\n &.next.left,\n &.prev.right,\n &.active {\n .translate3d(0, 0, 0);\n left: 0;\n }\n }\n }\n\n > .active,\n > .next,\n > .prev {\n display: block;\n }\n\n > .active {\n left: 0;\n }\n\n > .next,\n > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n }\n\n > .next {\n left: 100%;\n }\n > .prev {\n left: -100%;\n }\n > .next.left,\n > .prev.right {\n left: 0;\n }\n\n > .active.left {\n left: -100%;\n }\n > .active.right {\n left: 100%;\n }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: @carousel-control-width;\n .opacity(@carousel-control-opacity);\n font-size: @carousel-control-font-size;\n color: @carousel-control-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug\n // We can't have this transition here because WebKit cancels the carousel\n // animation if you trip this while in the middle of another animation.\n\n // Set gradients for backgrounds\n &.left {\n #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));\n }\n &.right {\n left: auto;\n right: 0;\n #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));\n }\n\n // Hover/focus state\n &:hover,\n &:focus {\n outline: 0;\n color: @carousel-control-color;\n text-decoration: none;\n .opacity(.9);\n }\n\n // Toggles\n .icon-prev,\n .icon-next,\n .glyphicon-chevron-left,\n .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n margin-top: -10px;\n z-index: 5;\n display: inline-block;\n }\n .icon-prev,\n .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n }\n .icon-next,\n .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n }\n .icon-prev,\n .icon-next {\n width: 20px;\n height: 20px;\n line-height: 1;\n font-family: serif;\n }\n\n\n .icon-prev {\n &:before {\n content: '\\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)\n }\n }\n .icon-next {\n &:before {\n content: '\\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)\n }\n }\n}\n\n// Optional indicator pips\n//\n// Add an unordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n\n li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid @carousel-indicator-border-color;\n border-radius: 10px;\n cursor: pointer;\n\n // IE8-9 hack for event handling\n //\n // Internet Explorer 8-9 does not support clicks on elements without a set\n // `background-color`. We cannot use `filter` since that's not viewed as a\n // background color by the browser. Thus, a hack is needed.\n // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer\n //\n // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we\n // set alpha transparency for the best results possible.\n background-color: #000 \\9; // IE8\n background-color: rgba(0,0,0,0); // IE9\n }\n .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: @carousel-indicator-active-bg;\n }\n}\n\n// Optional captions\n// -----------------------------\n// Hidden by default for smaller viewports\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: @carousel-caption-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n & .btn {\n text-shadow: none; // No shadow for button elements in carousel-caption\n }\n}\n\n\n// Scale up controls for tablets and up\n@media screen and (min-width: @screen-sm-min) {\n\n // Scale up the controls a smidge\n .carousel-control {\n .glyphicon-chevron-left,\n .glyphicon-chevron-right,\n .icon-prev,\n .icon-next {\n width: (@carousel-control-font-size * 1.5);\n height: (@carousel-control-font-size * 1.5);\n margin-top: (@carousel-control-font-size / -2);\n font-size: (@carousel-control-font-size * 1.5);\n }\n .glyphicon-chevron-left,\n .icon-prev {\n margin-left: (@carousel-control-font-size / -2);\n }\n .glyphicon-chevron-right,\n .icon-next {\n margin-right: (@carousel-control-font-size / -2);\n }\n }\n\n // Show and left align the captions\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n\n // Move up the indicators\n .carousel-indicators {\n bottom: 20px;\n }\n}\n","// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n// contenteditable attribute is included anywhere else in the document.\n// Otherwise it causes space to appear at the top and bottom of elements\n// that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n// `:before` to contain the top-margins of child elements.\n//\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n\n.clearfix() {\n &:before,\n &:after {\n content: \" \"; // 1\n display: table; // 2\n }\n &:after {\n clear: both;\n }\n}\n","// Center-align a block level element\n\n.center-block() {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n","// CSS image replacement\n//\n// Heads up! v3 launched with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (has been removed in v4)\n.hide-text() {\n font: ~\"0/0\" a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n// New mixin to use as of v3.0.1\n.text-hide() {\n .hide-text();\n}\n","//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n//\n// Support for responsive views via media queries is kind of borked in IE10, for\n// Surface/desktop in split view and for Windows Phone 8. This particular fix\n// must be accompanied by a snippet of JavaScript to sniff the user agent and\n// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at\n// our Getting Started page for more information on this bug.\n//\n// For more information, see the following:\n//\n// Issue: https://github.com/twbs/bootstrap/issues/10497\n// Docs: http://getbootstrap.com/getting-started/#support-ie10-width\n// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/\n// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n\n@-ms-viewport {\n width: device-width;\n}\n\n\n// Visibility utilities\n// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n .responsive-invisibility();\n}\n\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n\n.visible-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-visibility();\n }\n}\n.visible-xs-block {\n @media (max-width: @screen-xs-max) {\n display: block !important;\n }\n}\n.visible-xs-inline {\n @media (max-width: @screen-xs-max) {\n display: inline !important;\n }\n}\n.visible-xs-inline-block {\n @media (max-width: @screen-xs-max) {\n display: inline-block !important;\n }\n}\n\n.visible-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-visibility();\n }\n}\n.visible-sm-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: block !important;\n }\n}\n.visible-sm-inline {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline !important;\n }\n}\n.visible-sm-inline-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline-block !important;\n }\n}\n\n.visible-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-visibility();\n }\n}\n.visible-md-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: block !important;\n }\n}\n.visible-md-inline {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline !important;\n }\n}\n.visible-md-inline-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline-block !important;\n }\n}\n\n.visible-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-visibility();\n }\n}\n.visible-lg-block {\n @media (min-width: @screen-lg-min) {\n display: block !important;\n }\n}\n.visible-lg-inline {\n @media (min-width: @screen-lg-min) {\n display: inline !important;\n }\n}\n.visible-lg-inline-block {\n @media (min-width: @screen-lg-min) {\n display: inline-block !important;\n }\n}\n\n.hidden-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-invisibility();\n }\n}\n.hidden-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-invisibility();\n }\n}\n.hidden-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-invisibility();\n }\n}\n.hidden-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-invisibility();\n }\n}\n\n\n// Print utilities\n//\n// Media queries are placed on the inside to be mixin-friendly.\n\n// Note: Deprecated .visible-print as of v3.2.0\n.visible-print {\n .responsive-invisibility();\n\n @media print {\n .responsive-visibility();\n }\n}\n.visible-print-block {\n display: none !important;\n\n @media print {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n\n @media print {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n\n @media print {\n display: inline-block !important;\n }\n}\n\n.hidden-print {\n @media print {\n .responsive-invisibility();\n }\n}\n","// Responsive utilities\n\n//\n// More easily include all the states for responsive-utilities.less.\n.responsive-visibility() {\n display: block !important;\n table& { display: table !important; }\n tr& { display: table-row !important; }\n th&,\n td& { display: table-cell !important; }\n}\n\n.responsive-invisibility() {\n display: none !important;\n}\n"]}
\ No newline at end of file
diff --git a/web/css/dark.css b/web/css/dark.css
index bb3c709..1009646 100644
--- a/web/css/dark.css
+++ b/web/css/dark.css
@@ -1,70 +1,487 @@
-body { background: #212e36 url('../img/dark.png'); color: #dcdcdc; }
-.navbar { min-height: 40px; }
-.navbar-brand { color: #FFF !important; padding: 10px; font-size: 20px; }
-.dropdown .dropdown-toggle { padding-bottom: 10px; padding-top: 10px; }
-.dropdown-menu > li > a { color: #FFF !important; background-color: #222222 !important; }
-.dropdown-menu > li > a:hover { color: #FFF !important; background: #000 !important; }
-.dropdown-menu { background: #222 !important; background-color: #222222 !important; }
-.navbar-inverse .navbar-inner { background-color:#1B1B1B; background-image:-moz-linear-gradient(top, #222222, #111111); background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111)); background-image:-webkit-linear-gradient(top, #222222, #111111); background-image:-o-linear-gradient(top, #222222, #111111); background-image:linear-gradient(to bottom, #212e36, #212e36); background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0); border-color: #252525; }
-.content { background: #212e36; padding: 20px; border-radius: 5px; border: 1px #212e36 solid; -webkit-box-shadow: 0 0px 0px rgba(0, 0, 0, 0); -moz-box-shadow: 0 0px 0px rgba(0, 0, 0, 0); box-shadow: 0 0px 0px rgba(0, 0, 0, 0); margin-bottom: 20px; }
-.table { background: #363b40; margin-bottom: 0; border-collapse: collapse; border-radius: 3px; }
-.table th { text-align: center; }
-.table-striped tbody > tr.even > td, .table-striped tbody > tr.even > th { background-color: #212e36; }
-.table-striped tbody > tr.odd > td, .table-striped tbody > tr.odd > th { background-color: #212e36; }
-.table td { text-align: center; border-color: #2F2F2F; }
-.progress { margin-bottom: 0; background: #363b40; }
-.table-hover > tbody > tr:hover > td { background: #414141; }
-tr.even.expandRow > :hover { background: #212e36 !important; }
-tr.odd.expandRow > :hover { background: #212e36 !important; }
-.expandRow > td { padding: 0 !important; border-top: 0px !important; }
-#month_traffic { min-width: 85px; max-width: 95px;}
-#network { min-width: 110px; }
-#cpu, #ram, #hdd { min-width: 45px; max-width: 90px; }
-#ping { max-width: 100px; }
+:root{
+ /* =====色板===== */
+ /*常量,不随明暗主题变化*/
+ --color-white: #FFFFFF;
+ --color-black: #000000;
-@media only screen and (max-width: 1200px) {
- #type, tr td:nth-child(4) { display:none; visibility:hidden; }
- #location, tr td:nth-child(5) { display:none; visibility:hidden; }
- #uptime, tr td:nth-child(6) { display:none; visibility:hidden; }
- #ping, tr td:nth-child(13) { display:none; visibility:hidden; }
-}
-@media only screen and (max-width: 720px) {
- body { font-size: 10px; }
- .content { padding: 0; }
- #type, tr td:nth-child(4) { display:none; visibility:hidden; }
- #location, tr td:nth-child(5) { display:none; visibility:hidden; }
- #uptime, tr td:nth-child(6) { display:none; visibility:hidden; }
- #ping, tr td:nth-child(13) { display:none; visibility:hidden; }
-}
-@media only screen and (max-width: 620px) {
- body { font-size: 10px; }
- .content { padding: 0; }
- #month_traffic, tr td:nth-child(2) { display:none; visibility:hidden; }
- #type, tr td:nth-child(4) { display:none; visibility:hidden; }
- #location, tr td:nth-child(5) { display:none; visibility:hidden; }
- #uptime, tr td:nth-child(6) { display:none; visibility:hidden; }
- #traffic, tr td:nth-child(9) { display:none; visibility:hidden; }
- #ping, tr td:nth-child(13) { display:none; visibility:hidden; }
-}
-@media only screen and (max-width: 533px) {
- body { font-size: 10px; }
- .content { padding: 0; }
- #month_traffic, tr td:nth-child(2) { display:none; visibility:hidden; }
- #type, tr td:nth-child(4) { display:none; visibility:hidden; }
- #location, tr td:nth-child(5) { display:none; visibility:hidden; }
- #uptime, tr td:nth-child(6) { display:none; visibility:hidden; }
- #traffic, tr td:nth-child(9) { display:none; visibility:hidden; }
- #ping, tr td:nth-child(13) { display:none; visibility:hidden; }
-}
-@media only screen and (max-width: 450px) {
- body { font-size: 10px; }
- .content { padding: 0; }
- #month_traffic, tr td:nth-child(2) { display:none; visibility:hidden; }
- #name, tr td:nth-child(3) { min-width: 55px; max-width: 85px; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; }
- #type, tr td:nth-child(4) { display:none; visibility:hidden; }
- #location, tr td:nth-child(5) { display:none; visibility:hidden; }
- #uptime, tr td:nth-child(6) { display:none; visibility:hidden; }
- #traffic, tr td:nth-child(9) { display:none; visibility:hidden; }
- #cpu, #ram, #hdd { min-width: 25px; max-width: 50px; }
- #ping, tr td:nth-child(13) { display:none; visibility:hidden; }
+ --lay-color-white: #FAFAFA;
+ --lay-color-black: #333333;
+
+ --lay-color-red-1: #FFF1E8;
+ --lay-color-red-2: #FFD7C0;
+ --lay-color-red-3: #FFBB99;
+ --lay-color-red-4: #FF9C71;
+ --lay-color-red-5: #FF7A4A;
+ --lay-color-red-6: #FF5722;
+ --lay-color-red-7: #D23B15;
+ --lay-color-red-8: #A6250B;
+ --lay-color-red-9: #791404;
+ --lay-color-red-10: #4D0800;
+
+ --lay-color-blue-1: #E8F9FF;
+ --lay-color-blue-2: #C0ECFF;
+ --lay-color-blue-3: #97DCFF;
+ --lay-color-blue-4: #6FCAFF;
+ --lay-color-blue-5: #46B5FF;
+ --lay-color-blue-6: #1E9FFF;
+ --lay-color-blue-7: #1379D2;
+ --lay-color-blue-8: #0A58A6;
+ --lay-color-blue-9: #043A79;
+ --lay-color-blue-10: #00214D;
+
+ --lay-color-lightblue-1: #E8FDFF;
+ --lay-color-lightblue-2: #C1F4FB;
+ --lay-color-lightblue-3: #9CEAF7;
+ --lay-color-lightblue-4: #77DDF4;
+ --lay-color-lightblue-5: #53CEF0;
+ --lay-color-lightblue-6: #31BDEC;
+ --lay-color-lightblue-7: #1F95C4;
+ --lay-color-lightblue-8: #10709C;
+ --lay-color-lightblue-9: #064E74;
+ --lay-color-lightblue-10: #002F4D;
+
+ /* --lay-color-green-1: #E8FFF9;
+ --lay-color-green-2: #AAEADB;
+ --lay-color-green-3: #74D5C2;
+ --lay-color-green-4: #46C0AC;
+ --lay-color-green-5: #1FAB98;
+ --lay-color-green-6: #009688;
+ --lay-color-green-7: #00847B;
+ --lay-color-green-8: #00716D;
+ --lay-color-green-9: #005F5F;
+ --lay-color-green-10: #004A4D; */
+
+ --lay-color-green-1: #E8FFF9;
+ --lay-color-green-2: #B5F1E3;
+ --lay-color-green-3: #87E3D1;
+ --lay-color-green-4: #5DD6C1;
+ --lay-color-green-5: #37C8B5;
+ --lay-color-green-6: #16BAAA;
+ --lay-color-green-7: #0E9F95;
+ --lay-color-green-8: #08837F;
+ --lay-color-green-9: #036868;
+ --lay-color-green-10: #004A4D;
+
+ /* --lay-color-lightgreen-1: #E8FFEB;
+ --lay-color-lightgreen-2: #C8F1CE;
+ --lay-color-lightgreen-3: #ABE3B5;
+ --lay-color-lightgreen-4: #8FD49E;
+ --lay-color-lightgreen-5: #76C68A;
+ --lay-color-lightgreen-6: #5FB878;
+ --lay-color-lightgreen-7: #3D9D5B;
+ --lay-color-lightgreen-8: #228243;
+ --lay-color-lightgreen-9: #0D6730;
+ --lay-color-lightgreen-10: #004D20; */
+
+ --lay-color-lightgreen-1: #E8FFF2;
+ --lay-color-lightgreen-2: #B5F1D1;
+ --lay-color-lightgreen-3: #86E2B4;
+ --lay-color-lightgreen-4: #5CD49C;
+ --lay-color-lightgreen-5: #37C588;
+ --lay-color-lightgreen-6: #16B777;
+ --lay-color-lightgreen-7: #0E9C68;
+ --lay-color-lightgreen-8: #088259;
+ --lay-color-lightgreen-9: #036749;
+ --lay-color-lightgreen-10: #004D38;
+
+ --lay-color-orange-1: #FFFCE8;
+ --lay-color-orange-2: #FFF5BA;
+ --lay-color-orange-3: #FFEA8B;
+ --lay-color-orange-4: #FFDC5D;
+ --lay-color-orange-5: #FFCB2E;
+ --lay-color-orange-6: #FFB800;
+ --lay-color-orange-7: #D29000;
+ --lay-color-orange-8: #A66C00;
+ --lay-color-orange-9: #794B00;
+ --lay-color-orange-10: #4D2D00;
+
+ --lay-color-cyan-1: #E8F6FF;
+ --lay-color-cyan-2: #B9CEDD;
+ --lay-color-cyan-3: #8FA7BB;
+ --lay-color-cyan-4: #6A829A;
+ --lay-color-cyan-5: #4A5F78;
+ --lay-color-cyan-6: #2F4056;
+ --lay-color-cyan-7: #223654;
+ --lay-color-cyan-8: #162C51;
+ --lay-color-cyan-9: #0B214F;
+ --lay-color-cyan-10: #00174D;
+
+ --lay-color-purple-1: #FDE8FF;
+ --lay-color-purple-2: #EDBEF4;
+ --lay-color-purple-3: #DC97E8;
+ --lay-color-purple-4: #C972DD;
+ --lay-color-purple-5: #B651D1;
+ --lay-color-purple-6: #A233C6;
+ --lay-color-purple-7: #8120A8;
+ --lay-color-purple-8: #631289;
+ --lay-color-purple-9: #48076B;
+ --lay-color-purple-10: #2F004D;
+
+ --lay-color-black-1: #E8F8FF;
+ --lay-color-black-2: #BFD0D8;
+ --lay-color-black-3: #98A8B1;
+ --lay-color-black-4: #73818A;
+ --lay-color-black-5: #505B63;
+ --lay-color-black-6: #2F363C;
+ --lay-color-black-7: #23303C;
+ --lay-color-black-8: #18293C;
+ --lay-color-black-9: #0C213C;
+ --lay-color-black-10: #00183C;
+
+ /* --lay-color-black-1: #E8F2FF;
+ --lay-color-black-2: #C1CBDB;
+ --lay-color-black-3: #9CA5B6;
+ --lay-color-black-4: #798192;
+ --lay-color-black-5: #585E6D;
+ --lay-color-black-6: #393D49;
+ --lay-color-black-7: #2B3149;
+ --lay-color-black-8: #1D2549;
+ --lay-color-black-9: #0E1749;
+ --lay-color-black-10: #000949; */
+
+ --lay-color-gray-1: #FAFAFA;
+ --lay-color-gray-2: #F6F6F6;
+ --lay-color-gray-3: #EEEEEE;
+ --lay-color-gray-4: #E2E2E2;
+ --lay-color-gray-5: #DDDDDD;
+ --lay-color-gray-6: #D2D2D2;
+ --lay-color-gray-7: #CCCCCC;
+ --lay-color-gray-8: #C2C2C2;
+ --lay-color-gray-9: #AAAAAA;
+ --lay-color-gray-10: #939393;
+
+ /* =====语义===== */
+ /* 主色 */
+ --lay-color-primary: var(--lay-color-green-6);
+ --lay-color-primary-hover: var(--lay-color-green-5);
+ --lay-color-primary-active: var(--lay-color-green-7);
+ --lay-color-primary-disabled: var(--lay-color-green-3);
+ --lay-color-primary-light: var(--lay-color-green-4);
+
+ /* 次色 */
+ --lay-color-secondary: var(--lay-color-lightgreen-6);
+ --lay-color-secondary-hover: var(--lay-color-lightgreen-5);
+ --lay-color-secondary-active: var(--lay-color-lightgreen-7);
+ --lay-color-secondary-disabled: var(--lay-color-lightgreen-3);
+ --lay-color-secondary-light: var(--lay-color-lightgreen-4);
+
+ /* 引导 */
+ --lay-color-info: var(--lay-color-lightblue-6);
+ --lay-color-info-hover: var(--lay-color-lightblue-5);
+ --lay-color-info-active: var(--lay-color-lightblue-7);
+ --lay-color-info-disabled: var(--lay-color-lightblue-3);
+ --lay-color-info-light: var(--lay-color-lightblue-4);
+
+ /* 百搭 */
+ --lay-color-normal: var(--lay-color-blue-6);
+ --lay-color-normal-hover: var(--lay-color-blue-5);
+ --lay-color-normal-active: var(--lay-color-blue-7);
+ --lay-color-normal-disabled: var(--lay-color-blue-3);
+
+ /* 警示 */
+ --lay-color-warning: var(--lay-color-orange-6);
+ --lay-color-warning-hover: var(--lay-color-orange-5);
+ --lay-color-warning-active: var(--lay-color-orange-7);
+ --lay-color-warning-disabled: var(--lay-color-orange-3);
+ --lay-color-warning-light: var(--lay-color-orange-4);
+
+ /* 成功 */
+ --lay-color-success: var(--lay-color-lightgreen-6);
+ --lay-color-success-hover: var(--lay-color-lightgreen-5);
+ --lay-color-success-active: var(--lay-color-lightgreen-7);
+ --lay-color-success-disabled: var(--lay-color-lightgreen-3);
+ --lay-color-success-light: var(--lay-color-lightgreen-4);
+
+ /* 错误 */
+ --lay-color-danger: var(--lay-color-red-6);
+ --lay-color-danger-hover: var(--lay-color-red-5);
+ --lay-color-danger-active: var(--lay-color-red-7);
+ --lay-color-danger-disabled: var(--lay-color-red-3);
+ --lay-color-danger-light: var(--lay-color-red-4);
+
+ --lay-color-bg-1: #17171A; /*整体背景*/
+ --lay-color-bg-2: #232324; /*一级容器背景,卡片,面板*/
+ --lay-color-bg-3: #2a2a2b; /*二级容器背景*/
+ --lay-color-bg-4: #313132; /*三级容器背景*/
+ --lay-color-bg-5: #373739; /*下拉弹出框、Tooltip 背景颜色*/
+ --lay-color-bg-white: #f6f6f6; /*白色背景*/
+
+ --lay-color-text-1: rgba(255,255,255,.9); /*强调/正文标题*/
+ --lay-color-text-2: rgba(255,255,255,.7); /*次强调/语句*/
+ --lay-color-text-3: rgba(255,255,255,.5); /*次要信息*/
+ --lay-color-text-4: rgba(255,255,255,.3);/*禁用状态文字 */
+
+ --lay-color-border-1: #2e2e30;
+ --lay-color-border-2: #484849;
+ --lay-color-border-3: #5f5f60;
+ --lay-color-border-4: #929293;
+
+ --lay-color-fill-1: rgba(255,255,255,.04);/*浅/禁用*/
+ --lay-color-fill-2: rgba(255,255,255,.08);/*常规/白底悬浮*/
+ --lay-color-fill-3: rgba(255,255,255,.12); /*深/灰底悬浮*/
+ --lay-color-fill-4: rgba(255,255,255,.16);/*重/特殊场景*/
+
+ --lay-color-hover: var(--lay-color-fill-3); /*bg*/
+ --lay-color-active: var(--lay-color-fill-3); /*bg*/
}
+blockquote,body,button,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,input,li,ol,p,pre,td,textarea,th,ul{-webkit-tap-highlight-color: rgba(0, 0, 0, 0)} /*danger: 勿改*/
+body{color:var(--lay-color-text-2);background-color: var(--lay-color-bg-1); color-scheme: dark;}
+hr{border-bottom:1px solid var(--lay-color-border-2)!important}
+a{color:var(--lay-color-text-1);}
+a:hover{color:var(--lay-color-text-3)}
+/* 三角形 */
+.layui-edge{border-color:transparent}
+.layui-edge-top{border-bottom-color:var(--lay-color-border-4)}
+.layui-edge-right{border-left-color:var(--lay-color-border-4)}
+.layui-edge-bottom{border-top-color:var(--lay-color-border-4)}
+.layui-edge-left{border-right-color:var(--lay-color-border-4)}
+/* 禁用文字 */
+.layui-disabled,.layui-disabled:hover{color:var(--lay-color-text-4)!important}
+/* 图标 */
+.layui-icon{-moz-osx-font-smoothing:grayscale}
+/* admin 布局 */
+.layui-layout-admin .layui-header{background-color:var(--lay-color-bg-2)}
+.layui-layout-admin .layui-footer{box-shadow:-1px 0 4px rgb(0 0 0 / 12%);background-color:var(--lay-color-bg-2)}
+.layui-layout-admin .layui-logo{color:var(--lay-color-primary);box-shadow:0 1px 2px 0 rgb(0 0 0 / 15%)}
+/* 引用 */
+.layui-elem-quote{border-left:5px solid var(--lay-color-secondary);background-color:var(--lay-color-bg-2)}
+/* 进度条 */
+.layui-progress{background-color: var(--lay-color-bg-3)}
+.layui-progress-bar{background-color:var( --lay-color-secondary)}
+.layui-progress-text{color:var(--lay-color-text-2)}
+.layui-progress-big .layui-progress-text{color: var(--lay-color-text-1)}
+/* 折叠面板 */
+.layui-colla-title{color: var(--lay-color-text-1);background-color: var(--lay-color-bg-2)}
+.layui-colla-content{color:var(--lay-color-text-2)}
+/* 卡片面板 */
+.layui-card{background-color: var(--lay-color-bg-2);box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}
+.layui-card-header{border-bottom:1px solid var(--lay-color-border-2);color:var(--lay-color-text-1)}
+/* 常规面板 */
+.layui-panel{box-shadow:1px 1px 4px rgb(0 0 0 / 8%);background-color: var( --lay-color-bg-2);color: var(--lay-color-text-1)}
+/* 窗口面板 */
+.layui-panel-window{border-top:5px solid var(--lay-color-border-2);background-color: var(--lay-color-bg-2)}
+/* 背景颜色 */
+.layui-bg-red{background-color:var(--lay-color-red-6)!important;color: var(--lay-color-white)!important}
+.layui-bg-orange{background-color:var(--lay-color-orange-6)!important;color: var(--lay-color-white)!important}
+.layui-bg-green{background-color:var(--lay-color-green-6)!important;color: var(--lay-color-white)!important}
+.layui-bg-cyan{background-color:var(--lay-color-cyan-6)!important;color: var(--lay-color-white)!important}
+.layui-bg-blue{background-color: var(--lay-color-blue-6)!important;color: var(--lay-color-white)!important}
+.layui-bg-black{background-color:var(--lay-color-black-6)!important;color: var(--lay-color-white)!important}
+.layui-bg-purple{background-color: var(--lay-color-purple-6)!important; color: var(--lay-color-white)!important;}
+.layui-bg-gray{background-color:var(--lay-color-gray-1)!important;color: var(--lay-color-black-6)!important}
+/* 徽章 */
+.layui-badge-rim,.layui-border,.layui-colla-content,.layui-colla-item,.layui-collapse,.layui-elem-field,.layui-form-pane .layui-form-item[pane],.layui-form-pane .layui-form-label,.layui-input,.layui-input-split,.layui-panel,.layui-quote-nm,.layui-select,.layui-tab-bar,.layui-tab-card,.layui-tab-title,.layui-tab-title .layui-this:after,.layui-textarea{border-color: var(--lay-color-border-1)}
+/* 边框颜色 */
+.layui-border{color:var(--lay-color-text-1)!important}
+.layui-border-red{border-color:var(--lay-color-red-6)!important;color:var(--lay-color-red-6)!important}
+.layui-border-orange{border-color:var(--lay-color-orange-6)!important;color:var(--lay-color-orange-6)!important}
+.layui-border-green{border-color:var(--lay-color-green-6)!important;color:var(--lay-color-green-6)!important}
+.layui-border-cyan{border-color:var(--lay-color-cyan-6)!important;color:var(--lay-color-cyan-6)!important}
+.layui-border-blue{border-color: var(--lay-color-blue-6)!important;color: var(--lay-color-blue-6)!important}
+.layui-border-purple{border-color: var(--lay-color-purple-6)!important; color: var(--lay-color-purple-6)!important;}
+.layui-border-black{border-color:var(--lay-color-black-6)!important;color:var(--lay-color-black-5)!important}
+/* 文本区域 */
+.layui-text{color:var(--lay-color-text-3)}
+.layui-text h1,.layui-text h2,.layui-text h3,.layui-text h4,.layui-text h5,.layui-text h6{color: var(--lay-color-text-2)}
+.layui-text-em,.layui-word-aux{color: var(--lay-color-text-2)!important}
+.layui-text a:not(.layui-btn){color:var(--lay-color-lightblue-6)}
+.layui-text blockquote:not(.layui-elem-quote){border-left:5px solid var(--lay-color-border-4)}
+.layui-text pre>code:not(.layui-code){background-color:var(--lay-color-bg-white)}
+/* 字体颜色 */
+.layui-font-red{color:var(--lay-color-red-6)!important}
+.layui-font-orange{color:var(--lay-color-orange-6)!important}
+.layui-font-green{color:var(--lay-color-green-6)!important}
+.layui-font-cyan{color:var(--lay-color-cyan-6)!important}
+.layui-font-blue{color:var(--lay-color-lightblue-6)!important}
+.layui-font-black{color:var(--lay-color-black)!important}
+.layui-font-purple{color:var(--lay-color-purple-6)!important;}
+.layui-font-gray{color:var(--lay-color-gray-7)!important}
+/* 按钮 */
+.layui-btn{border:1px solid transparent;background-color:var(--lay-color-primary);color: var(--lay-color-text-1)}
+.layui-btn:hover{color: var(--lay-color-text-2)}
+.layui-btn-primary{border-color:var(--lay-color-border-2);color:var(--lay-color-text-1);background-color: var(--lay-color-bg-4)}
+.layui-btn-primary:hover{border-color:var(--lay-color-primary);color:var(--lay-color-text-2)}
+.layui-btn-normal{background-color: var(--lay-color-normal)}
+.layui-btn-warm{background-color:var(--lay-color-warning)}
+.layui-btn-danger{background-color:var(--lay-color-danger)}
+.layui-btn-checked{background-color:var(--lay-color-success)}
+.layui-btn-disabled,.layui-btn-disabled:active,.layui-btn-disabled:hover{border-color: var(--lay-color-border-2)!important;background-color: var(--lay-color-bg-2)!important;color: var(--lay-color-text-4)!important}
+.layui-btn-group .layui-btn{border-left:1px solid var(--lay-color-border-2)}
+.layui-btn-group .layui-btn-primary:hover{border-color:var(--lay-color-border-2);color:var(--lay-color-primary)}
+.layui-btn-group .layui-btn-primary:first-child{border-left:1px solid var(--lay-color-gray-5)}
+/*表单*/
+.layui-input,.layui-select,.layui-textarea{background-color: var(--lay-color-fill-2);color: var(--lay-color-text-2)}
+.layui-input[disabled],.layui-select[disabled],.layui-textarea[disabled]{background-color: var(--lay-color-fill-1);color: var(--lay-color-text-4)}
+.layui-input:hover,.layui-textarea:hover{border-color: var(--lay-color-border-2)!important}
+.layui-input:focus,.layui-textarea:focus{border-color: var(--lay-color-border-2)!important}
+.layui-form-danger+.layui-form-select .layui-input,.layui-form-danger:focus{border-color:var(--lay-color-danger)!important}
+/* 输入框点缀 */
+.layui-input-prefix .layui-icon,.layui-input-split .layui-icon,.layui-input-suffix .layui-icon{color: var(--lay-color-gray-8)}
+.layui-input-wrap .layui-input:focus+.layui-input-split{border-color: var(--lay-color-border-2)}
+.layui-input-affix .layui-icon{color: var(--lay-color-text-2)}
+.layui-input-affix .layui-icon-clear{color:var(--lay-color-text-2)}
+.layui-input-affix .layui-icon:hover{color:var(--lay-color-text-3)}
+/* 下拉选择 */
+.layui-form-select{color:var(--lay-color-text-2)}
+.layui-form-select .layui-edge{border-top-color:var(--lay-color-gray-8)}
+.layui-form-select dl{border:1px solid var( --lay-color-border-2);background-color: var(--lay-color-bg-5);box-shadow:1px 1px 4px rgb(0 0 0 / 8%)}
+.layui-form-select dl dt{color:var(--lay-color-gray-8)}
+.layui-form-select dl dd:hover{background-color:var(--lay-color-active)}
+.layui-form-select dl dd.layui-select-tips{color:var(--lay-color-text-2)}
+.layui-form-select dl dd.layui-this{background-color: var(--lay-color-active);color: var(--lay-color-text-1)}
+.layui-form-select dl dd.layui-disabled,.layui-form-select dl dd:hover.layui-disabled{background-color: var(--lay-color-bg-5)}
+.layui-select-none{color:var(--lay-color-black-8)}
+.layui-select-disabled .layui-disabled{border-color:var(--lay-color-gray-3)!important}
+.layui-select-disabled .layui-edge{border-top-color:var(--lay-color-gray-6)}
+/* 复选框 */
+.layui-form-checkbox{background-color:var(--lay-color-fill-2)}
+.layui-form-checkbox span{background-color:var(--lay-color-fill-3);color:var(--lay-color-text-2)}
+.layui-form-checkbox:hover span{background-color: var(--lay-color-active)}
+.layui-form-checkbox i{background-color: var(--lay-color-fill-1);border-top-color:var(--lay-color-border-1);border-right-color:var(--lay-color-border-1);border-bottom-color:var(--lay-color-border-1);border-left-color:initial;color:var(--lay-color-text-1)}
+.layui-form-checkbox:hover i{border-color:var(--lay-color-border-2);color:var(--lay-color-text-4)}
+.layui-form-checked,.layui-form-checked:hover{border-color:var(--lay-color-secondary-active)}
+.layui-form-checked span,.layui-form-checked:hover span{background-color:var(--lay-color-secondary)}
+.layui-form-checked i,.layui-form-checked:hover i{color:var(--lay-color-secondary-hover)}
+/* 复选框-默认风格 */
+.layui-form-checkbox[lay-skin=primary]{background-image:none;background-color:initial;border-color:initial!important}
+.layui-form-checkbox[lay-skin=primary] span{background-image:none;background-color:initial;color:var(--lay-color-text-2)}
+.layui-form-checkbox[lay-skin=primary] i{border-color:var(--lay-color-border-1);background-color:var(--lay-color-fill-2)}
+.layui-form-checkbox[lay-skin=primary]:hover i{border-color:var(--lay-color-secondary-hover);color:var(--lay-color-text-1)}
+.layui-form-checked[lay-skin=primary] i{background-color:var(--lay-color-secondary);color:var(--lay-color-text-1);border-color:var(--lay-color-secondary-active)!important}
+.layui-checkbox-disabled[lay-skin=primary] span{background-image:none!important;background-color:initial!important;color:var(--lay-color-text-4)!important}
+.layui-form-checked.layui-checkbox-disabled[lay-skin=primary] i{background-image:initial!important;background-color:var(--lay-color-fill-1)!important;border-color:var(--lay-color-border-2)!important}
+.layui-checkbox-disabled[lay-skin=primary]:hover i{border-color:var(--lay-color-border-1)}
+.layui-form-checkbox[lay-skin="primary"] .layui-icon-indeterminate:before{background-color: var(--lay-color-gray-6);opacity: 1;}
+.layui-form-checkbox[lay-skin="primary"]:hover .layui-icon-indeterminate:before{background-color: var(--lay-color-secondary-hover);opacity: 1;}
+.layui-form-checkbox[lay-skin="primary"] .layui-icon-indeterminate{border-color: var(--lay-color-border-2);}
+.layui-form-checkbox[lay-skin="primary"]:hover .layui-icon-indeterminate {border-color: var(--lay-color-secondary-hover);}
+/* 复选框-开关风格 */
+.layui-form-switch{border-color:var(--lay-color-border-2);background-color:var(--lay-color-fill-2)}
+.layui-form-switch i{background-color:var(--lay-color-gray-4)}
+.layui-form-switch.layui-checkbox-disabled i{background-color:var(--lay-color-gray-4)}
+.layui-form-switch em{color:var(--lay-color-gray-8)!important}
+.layui-form-onswitch{border-color:var(--lay-color-secondary-active);background-color:var(--lay-color-secondary)}
+.layui-form-onswitch i{background-color:var(--lay-color-gray-4)}
+.layui-form-onswitch em{color:var(--lay-color-text-1)!important}
+.layui-checkbox-disabled{border-color:var(--lay-color-border-2)!important}
+.layui-checkbox-disabled span{background-color:var(--lay-color-fill-3)!important;color: var(--lay-color-text-4);}
+.layui-checkbox-disabled i{border-color:var(--lay-color-border-2)!important}
+.layui-checkbox-disabled em{color:var(--lay-color-text-4)!important}
+.layui-checkbox-disabled:hover i{color:var(--lay-color-text-1)!important}
+/*复选框背景优化*/
+.layui-form-checkbox i:before{opacity:0;filter:alpha(opacity=0)}
+.layui-form-checkbox:hover i:before{opacity:1;filter:alpha(opacity=100)}
+.layui-form-checked.layui-checkbox-disabled:hover i:before,.layui-form-checked:hover i:before,.layui-form-checked i:before{opacity:1;filter:alpha(opacity=100)}
+.layui-form-checkbox[lay-skin=primary]:hover i:before{opacity:0;filter:alpha(opacity=0)}
+.layui-form-checked[lay-skin=primary]:hover i:before{opacity:1;filter:alpha(opacity=100)}
+.layui-checkbox-disabled:hover i:before{opacity:0;filter:alpha(opacity=0)}
+/*单选框*/
+.layui-form-radio>i{color:var(--lay-color-gray-8)}
+.layui-form-radio:hover *,.layui-form-radioed,.layui-form-radioed>i{color:var(--lay-color-secondary)}
+.layui-radio-disabled>i{color:var(--lay-color-text-4)!important}
+.layui-radio-disabled *{color:var(--lay-color-text-4)!important}
+/* 表单方框风格 */
+.layui-form-pane .layui-form-label{background-color:var(--lay-color-bg-2)}
+/** 分页 **/
+.layui-laypage a,.layui-laypage button,.layui-laypage input,.layui-laypage select,.layui-laypage span{border:1px solid var(--lay-color-border-2)}
+.layui-laypage a,.layui-laypage span{background-color: var(--lay-color-bg-2);color: var(--lay-color-text-2)}
+.layui-laypage a[data-page]{color:var(--lay-color-text-2)}
+.layui-laypage a:hover{color: var(--lay-color-primary)}
+.layui-laypage .layui-laypage-spr{color:var(--lay-color-text-3)}
+.layui-laypage .layui-laypage-curr em{color: var(--lay-color-white)}
+.layui-laypage .layui-laypage-curr .layui-laypage-em{background-color: var(--lay-color-primary)}
+.layui-laypage .layui-laypage-skip{color:var(--lay-color-text-3)}
+.layui-laypage button,.layui-laypage input{background-color: var(--lay-color-bg-2)}
+.layui-laypage input:focus,.layui-laypage select:focus{border-color: var(--lay-color-primary)!important}
+/** 流加载 **/
+.layui-flow-more{color:var(--lay-color-text-1)}
+.layui-flow-more a cite{background-color: var(--lay-color-bg-4);color: var(--lay-color-text-1)}
+.layui-flow-more a i{color:var(--lay-color-text-2)}
+/** 表格 **/
+.layui-table{background-color: var(--lay-color-bg-2);color: var(--lay-color-text-2)}
+.layui-table-mend{background-color: var(--lay-color-bg-2)}
+.layui-table-click,.layui-table-hover,.layui-table[lay-even] tbody tr:nth-child(even){background-color:var(--lay-color-bg-2)}
+.layui-table td,.layui-table th,.layui-table-col-set,.layui-table-fixed-r,.layui-table-grid-down,.layui-table-header,.layui-table-mend,.layui-table-page,.layui-table-tips-main,.layui-table-tool,.layui-table-total,.layui-table-view,.layui-table[lay-skin=line],.layui-table[lay-skin=row]{border-color: var(--lay-color-border-2)}
+.layui-table-view .layui-table td[data-edit]:hover:after{border:1px solid var(--lay-color-primary-active)}
+.layui-table-init{background-color: var(--lay-color-bg-2);}
+.layui-table-init .layui-icon{color:var(--lay-color-gray-8);}
+.layui-table-page{background-color: var(--lay-color-bg-2);}
+.layui-table-tool{background-color: var(--lay-color-bg-2);}
+.layui-table-tool .layui-inline[lay-event]{color:var(--lay-color-text-3);border:1px solid var(--lay-color-border-2)}
+.layui-table-tool .layui-inline[lay-event]:hover{border:1px solid var(--lay-color-border-3)}
+.layui-table-tool-panel{color: var(--lay-color-text-1); border:1px solid var(--lay-color-border-2);background-color: var(--lay-color-bg-5);box-shadow:0 2px 4px rgba(0,0,0,.12)}
+.layui-table-tool-panel li:hover{background-color:var(--lay-color-active)}
+.layui-table-col-set{background-color: var(--lay-color-white)}
+.layui-table-sort .layui-table-sort-asc{border-bottom-color:var(--lay-color-border-4)}
+.layui-table-sort .layui-table-sort-asc:hover{border-bottom-color:var(--lay-color-border-3)}
+.layui-table-sort .layui-table-sort-desc{border-top-color:var(--lay-color-border-4)}
+.layui-table-sort .layui-table-sort-desc:hover{border-top-color:var(--lay-color-border-3)}
+.layui-table-sort[lay-sort=asc] .layui-table-sort-asc{border-bottom-color:var(--lay-color-bg-5)}
+.layui-table-sort[lay-sort=desc] .layui-table-sort-desc{border-top-color:var(--lay-color-bg-5)}
+.layui-table-cell .layui-table-link{color: var(--lay-color-lightblue-5)}
+.layui-table-body .layui-none{color:var(--lay-color-gray-8)}
+.layui-table-fixed-l{box-shadow:1px 0 8px rgba(0,0,0,1)}
+.layui-table-fixed-r{box-shadow:-1px 0 8px rgba(0,0,0,1)}
+.layui-table-edit{box-shadow:1px 1px 20px rgba(0,0,0,.15);background-color: var(--lay-color-bg-2)}
+.layui-table-edit:focus{border-color:var(--lay-color-secondary)!important}
+select.layui-table-edit{border-color:var(--lay-color-border-2)}
+.layui-table-grid-down{background-color: var(--lay-color-bg-5);color:var(--lay-color-gray-8)}
+.layui-table-grid-down:hover{background-color:var(--lay-color-bg-5)}
+body .layui-table-tips .layui-layer-content{box-shadow:0 1px 6px rgba(0,0,0,.12)}
+.layui-table-tips-main{background-color: var(--lay-color-bg-5);color: var(--lay-color-text-3)}
+.layui-table-tips-c{background-color:var(--lay-color-gray-7);color: var(--lay-color-text-1)}
+.layui-table-tips-c:hover{background-color:var(--lay-color-gray-8)}
+/* 下拉菜单 */
+.layui-dropdown{background-color: var(--lay-color-bg-5)}
+.layui-dropdown.layui-panel,.layui-dropdown .layui-panel{background-color: var(--lay-color-bg-5)}
+.layui-dropdown.layui-panel .layui-menu{background-color: var(--lay-color-bg-5)}
+/** 导航菜单 **/
+.layui-nav{background-color:#393d49;color: var(--lay-color-white)}
+.layui-nav .layui-nav-item a{color: var(--lay-color-text-1);}
+.layui-nav .layui-this:after,.layui-nav-bar{background-color:var(--lay-color-secondary)}
+.layui-nav .layui-nav-item a:hover,.layui-nav .layui-this a{color: var(--lay-color-text-1)}
+.layui-nav-child{box-shadow:0 2px 4px rgba(0,0,0,.12);border:1px solid var(--lay-color-border-2);background-color: var(--lay-color-bg-5)}
+.layui-nav .layui-nav-child a{color: var(--lay-color-text-1)}
+.layui-nav .layui-nav-child a:hover{background-color: var(--lay-color-bg-5);color: var(--lay-color-text-1)}
+.layui-nav-child dd.layui-this{background-color: var(--lay-color-bg-5);color: var(--lay-color-text-1)}
+.layui-nav-tree .layui-nav-child dd.layui-this,.layui-nav-tree .layui-nav-child dd.layui-this a,.layui-nav-tree .layui-this,.layui-nav-tree .layui-this>a,.layui-nav-tree .layui-this>a:hover{background-color: var(--lay-color-primary);color: var(--lay-color-white)}
+.layui-nav-itemed>a,.layui-nav-tree .layui-nav-title a,.layui-nav-tree .layui-nav-title a:hover{color: var(--lay-color-white)!important}
+.layui-nav-tree .layui-nav-bar{background-color:var(--lay-color-primary)}
+.layui-nav-tree .layui-nav-child a{color: var(--lay-color-white);color: var(--lay-color-white)}
+.layui-nav-tree .layui-nav-child,.layui-nav-tree .layui-nav-child a:hover{color: var(--lay-color-white)}
+.layui-nav-itemed>.layui-nav-child{background-color:rgba(0, 0, 0, .3) !important}
+.layui-nav-tree.layui-bg-gray a,.layui-nav.layui-bg-gray .layui-nav-item a{color: var(--lay-color-black-4)}
+.layui-nav.layui-bg-gray .layui-nav-child{background-color: var(--lay-color-gray-1);}
+.layui-nav-tree.layui-bg-gray .layui-nav-itemed>a{color:#333!important}
+.layui-nav.layui-bg-gray .layui-this a{color:var(--lay-color-secondary)}
+.layui-nav-tree.layui-bg-gray .layui-nav-child dd.layui-this,.layui-nav-tree.layui-bg-gray .layui-nav-child dd.layui-this a,.layui-nav-tree.layui-bg-gray .layui-this,.layui-nav-tree.layui-bg-gray .layui-this>a{color:var(--lay-color-secondary)!important}
+.layui-nav-tree.layui-bg-gray .layui-nav-bar{background-color:var( --lay-color-secondary)}
+/*徽章*/
+.layui-badge,.layui-badge-dot,.layui-badge-rim{background-color:var(--lay-color-red-6);color: var(--lay-color-white)}
+.layui-badge-rim{background-color: var(--lay-color-white);color:var(--lay-color-black-6)}
+/*fix style*/
+.layui-layer-loading{background:0 0}
+.layui-btn-primary{border-color:transparent}
+.layui-btn-group .layui-btn:first-child{border-left:none}
+.layui-btn-group .layui-btn-primary:hover{border-top-color:transparent; border-bottom-color: transparent;}
+.layui-menu li:hover{background-color:var(--lay-color-fill-2)}
+.layui-nav-child dd.layui-this{background-color:var(--lay-color-fill-2)}
+.layui-nav .layui-nav-child a:hover{background-color:var(--lay-color-fill-2)}
+.layui-nav .layui-nav-item a:hover,.layui-nav .layui-this a{background-color: var(--lay-color-fill-2)}
+.layui-nav-child dd.layui-this{background-color: var(--lay-color-fill-2)}
+.layui-tab-card>.layui-tab-title .layui-this:after,.layui-tab-title .layui-this:after{border-bottom-color:var(--lay-color-bg-1)}
+.layui-form-select dl dd:hover{background-color:var(--lay-color-fill-2)}
+.layui-form-select dl dd.layui-this{background-color:var(--lay-color-fill-2)}
+.layui-laypage button{color:var(--lay-color-text-1)}
+.layui-table-click,.layui-table-hover,.layui-table[lay-even] tbody tr:nth-child(even){background-color:var(--lay-color-fill-3)}
+.layui-transfer-data li:hover{background-color:var(--lay-color-active)}
+.layui-menu .layui-menu-item-checked,.layui-menu .layui-menu-item-checked2{background-color:var(--lay-color-fill-2)!important}
+.layui-input-split{background-color: var(--lay-color-bg-2);}
+.layui-layer-tab .layui-layer-title span:first-child{border-left: none !important;}
+.layui-slider-input.layui-input,
+.layui-slider-input .layui-input {background-color: var(--lay-color-bg-2);}
+
+body {background: #212e36;}
+.layui-panel {overflow-x: auto;}
+.layui-table th, .layui-table td { text-align: center;white-space: nowrap; }
+.collapse { text-align: center; }
\ No newline at end of file
diff --git a/web/css/light.css b/web/css/light.css
index a44e4f1..ebd680a 100644
--- a/web/css/light.css
+++ b/web/css/light.css
@@ -1,67 +1,5 @@
-body { background: #ebebeb url('../img/light.png'); }
-.navbar { min-height: 40px; }
-.navbar-brand { color: #fff; padding: 10px; font-size: 20px; }
-.dropdown .dropdown-toggle { padding-bottom: 10px; padding-top: 10px; }
-.navbar-inverse .navbar-brand { color: #fff; padding: 10px; font-size: 20px; }
-.content { background: #ffffff; padding: 20px; border-radius: 5px; border: 1px #cecece solid; -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, .1); -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, .1); box-shadow: 0 1px 10px rgba(0, 0, 0, .1); margin-bottom: 20px; }
-.table { background: #ffffff; margin-bottom: 0; border-collapse: collapse; border-radius: 3px; }
-.table th, .table td { text-align: center; }
-.table-striped tbody > tr.even > td, .table-striped tbody > tr.even > th { background-color: #F9F9F9; }
-.table-striped tbody > tr.odd > td, .table-striped tbody > tr.odd > th { background-color: #FFF; }
-.progress { margin-bottom: 0; }
-.progress-bar { color: #000; }
-.table-hover > tbody > tr:hover > td { background: #E6E6E6; }
-tr.even.expandRow > :hover { background: #F9F9F9 !important; }
-tr.odd.expandRow > :hover { background: #FFF !important; }
-.expandRow > td { padding: 0 !important; border-top: 0px !important; }
-#month_traffic { min-width: 85px; max-width: 95px;}
-#network { min-width: 110px; }
-#cpu, #ram, #hdd { min-width: 45px; max-width: 90px; }
-#ping { max-width: 100px; }
-
-@media only screen and (max-width: 1200px) {
- #type, tr td:nth-child(4) { display:none; visibility:hidden; }
- #location, tr td:nth-child(5) { display:none; visibility:hidden; }
- #uptime, tr td:nth-child(6) { display:none; visibility:hidden; }
- #ping, tr td:nth-child(13) { display:none; visibility:hidden; }
-}
-@media only screen and (max-width: 720px) {
- body { font-size: 10px; }
- .content { padding: 0; }
- #type, tr td:nth-child(4) { display:none; visibility:hidden; }
- #location, tr td:nth-child(5) { display:none; visibility:hidden; }
- #uptime, tr td:nth-child(6) { display:none; visibility:hidden; }
- #ping, tr td:nth-child(13) { display:none; visibility:hidden; }
-}
-@media only screen and (max-width: 620px) {
- body { font-size: 10px; }
- .content { padding: 0; }
- #month_traffic, tr td:nth-child(2) { display:none; visibility:hidden; }
- #type, tr td:nth-child(4) { display:none; visibility:hidden; }
- #location, tr td:nth-child(5) { display:none; visibility:hidden; }
- #uptime, tr td:nth-child(6) { display:none; visibility:hidden; }
- #traffic, tr td:nth-child(9) { display:none; visibility:hidden; }
- #ping, tr td:nth-child(13) { display:none; visibility:hidden; }
-}
-@media only screen and (max-width: 533px) {
- body { font-size: 10px; }
- .content { padding: 0; }
- #month_traffic, tr td:nth-child(2) { display:none; visibility:hidden; }
- #type, tr td:nth-child(4) { display:none; visibility:hidden; }
- #location, tr td:nth-child(5) { display:none; visibility:hidden; }
- #uptime, tr td:nth-child(6) { display:none; visibility:hidden; }
- #traffic, tr td:nth-child(9) { display:none; visibility:hidden; }
- #ping, tr td:nth-child(13) { display:none; visibility:hidden; }
-}
-@media only screen and (max-width: 450px) {
- body { font-size: 10px; }
- .content { padding: 0; }
- #month_traffic, tr td:nth-child(2) { display:none; visibility:hidden; }
- #name, tr td:nth-child(3) { min-width: 55px; max-width: 85px; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; }
- #type, tr td:nth-child(4) { display:none; visibility:hidden; }
- #location, tr td:nth-child(5) { display:none; visibility:hidden; }
- #uptime, tr td:nth-child(6) { display:none; visibility:hidden; }
- #traffic, tr td:nth-child(9) { display:none; visibility:hidden; }
- #cpu, #ram, #hdd { min-width: 25px; max-width: 50px; }
- #ping, tr td:nth-child(13) { display:none; visibility:hidden; }
-}
+body {background: #ebebeb url(../img/light.png);}
+.layui-panel {overflow-x: auto;}
+.layui-table th, .layui-table td { text-align: center;white-space: nowrap; }
+.layui-progress-text { color: #000 !important; }
+.collapse { text-align: center; }
\ No newline at end of file
diff --git a/web/img/dark.png b/web/img/dark.png
deleted file mode 100644
index bc814c0..0000000
Binary files a/web/img/dark.png and /dev/null differ
diff --git a/web/index.html b/web/index.html
index 7c175dd..8103a9a 100644
--- a/web/index.html
+++ b/web/index.html
@@ -1,110 +1,80 @@
-
-
-
云监控
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 警告:如果出现此消息,请确保您已启用Javascript!
否则云监控主服务没启动或已关闭.
-
-
-
-
-
-
- 🔗协议 |
- 📊月流量↓|↑ |
- 📌节点 |
- 🗂️虚拟化 |
- 🌍位置 |
- ⏱️在线 |
- 负载 |
- 🚦网络↓|↑ |
- 📋总流量↓|↑ |
- 🎯核芯 |
- ⚡️内存 |
- 💾硬盘 |
- 🌐CU|CT|CM |
-
-
-
-
-
-
-
-
Updating...
-
+
+
+
云监控
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
您不应该看到此提示,如果看到此提示说明您未能正确加载网站依赖,请启用js或换用其他浏览器
+
+
+
+
+
- 云监控
+
-
+ 主题
+
+ - 暗色
+ - 亮色
+
+
+
+
+
+
+
+
+
+
+
+ 🔗协议 |
+ 📊月流量↓|↑ |
+ 📌节点 |
+ 🗂️虚拟化 |
+ 🌍位置 |
+ ⏱️在线 |
+ 负载 |
+ 🚦网络↓|↑ |
+ 📋总流量↓|↑ |
+ 🎯核芯 |
+ ⚡️内存 |
+ 💾硬盘 |
+ 🌐CU|CT|CM |
+
+
+
+
+
+
+
+
最后更新: 几秒前.
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/web/js/bootstrap.min.js b/web/js/bootstrap.min.js
deleted file mode 100644
index 9bcd2fc..0000000
--- a/web/js/bootstrap.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
- * Bootstrap v3.3.7 (http://getbootstrap.com)
- * Copyright 2011-2016 Twitter, Inc.
- * Licensed under the MIT license
- */
-if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j
document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth ',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m