html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}:root{font-family:PingFangSC-Regular,PingFang SC,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:#333;background-color:#f5f7fa;--space-1: 4px;--space-2: 8px;--space-2-5: 10px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--space-8: 40px;--space-9: 48px;--space-10: 64px;--space-11: 80px;--component-gap: var(--space-2-5);--section-gap: var(--space-5);--page-edge-gap: var(--space-2-5);--page-bottom-padding: var(--space-8);--card-padding: var(--space-5);--app-header-height: 50px;--form-select-height: 34px;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden}#root{min-height:100vh;width:100%;overflow-x:hidden}.layout-page{display:flex;flex-direction:column;gap:var(--section-gap);padding-bottom:var(--page-bottom-padding);min-height:calc(100vh - var(--app-header-height, 0px))}.layout-section{margin:0 var(--page-edge-gap) var(--section-gap)}.layout-grid-12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--section-gap);align-items:start;margin:0 var(--page-edge-gap) var(--section-gap)}.layout-grid-2col{display:grid;grid-template-columns:320px minmax(0,1fr);gap:var(--component-gap);align-items:start;margin:0 var(--page-edge-gap) var(--section-gap)}.layout-main-8{grid-column:span 8}.layout-side-4{grid-column:span 4}.layout-block{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:12px;padding:var(--card-padding);display:flex;flex-direction:column;gap:var(--component-gap);min-width:0}.layout-panel{height:100%;min-height:0}.layout-panel-scroll{flex:1;min-height:0;overflow:auto}.layout-panel-fixed{max-height:var(--layout-panel-height, auto);height:var(--layout-panel-height, auto)}.layout-block-header{display:flex;align-items:center;justify-content:space-between;gap:var(--component-gap)}.layout-block-title{display:flex;flex-direction:column;gap:var(--space-1)}.layout-block-actions{display:flex;align-items:center;gap:var(--component-gap)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.5;color:#333;background-color:#f5f7fa}#root{height:100%;display:flex;flex-direction:column}a{color:#165dff;text-decoration:none;transition:color .3s ease}a:hover{color:#0040d0;text-decoration:none}table{border-collapse:collapse;width:100%}th,td{padding:8px;text-align:left}input,select,textarea{font-family:inherit;font-size:inherit}select{min-height:var(--form-select-height)}button{font-family:inherit;font-size:inherit}.component-title{margin:0;font-size:16px;font-weight:600;color:#333;line-height:1.2}.component-header{display:flex;justify-content:space-between;align-items:center;padding:11px 16px;min-height:48px;background-color:#fafafa}.card-title{composes:component-title;color:#fff}.page-title{margin:0 0 4px;font-size:18px;font-weight:700;color:#333}.page-description{margin:0;font-size:14px;color:#666;line-height:1.5}.page-title-section{display:flex;margin:var(--space-2-5) var(--page-edge-gap) var(--section-gap);border-radius:8px;background-color:#f5f7fa;padding:var(--space-2) var(--space-3);width:100%;max-width:none}.page-title-left{flex:3;padding-right:var(--space-5);display:flex;align-items:center}.page-title-right{flex:1;display:flex;align-items:center;justify-content:flex-end}.temp-page .page-title-section{display:flex;margin:var(--space-2-5) var(--page-edge-gap) var(--section-gap);border-radius:8px;background-color:#f5f7fa;padding:var(--space-2) var(--space-3)}.temp-page .page-title-left{flex:3;padding-right:20px;display:flex;align-items:center}.temp-page .page-title-right{flex:1;display:flex;align-items:center;justify-content:flex-end}@media(max-width:768px){.sidebar{display:none}.main-content{margin-left:0}}.page-title-container{display:flex;flex-direction:column;justify-content:flex-start;background-color:transparent}.app-layout{display:flex;flex-direction:column;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:#f5f7fa;color:#333;overflow-x:hidden}.app-header{min-height:var(--app-header-height);background-color:#fff;box-shadow:0 2px 4px #0000001a;display:flex;align-items:stretch;padding:8px 20px;z-index:100;position:relative;overflow-x:hidden}.app-layout.is-collapsed .app-header{overflow:hidden}.header-logo{width:240px;display:flex;align-items:center;justify-content:flex-start;margin-left:-20px;padding-left:20px;background:transparent;box-sizing:border-box}.app-layout.is-collapsed .header-logo{width:64px;justify-content:center;padding-left:0;margin-left:-20px}.header-content{flex:1;display:flex;justify-content:space-between;align-items:flex-start;margin-left:20px;min-width:0;overflow-x:hidden;overflow-y:visible}.api-status-banner{background:#fff3cd;color:#8a6d3b;border:1px solid #ffeeba;border-radius:6px;padding:6px 10px;font-size:12px}.header-main{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.logo-toggle{background:transparent;border:none;padding:0;cursor:pointer;display:inline-flex;align-items:flex-end;justify-content:center;width:220px;gap:8px}.app-layout.is-collapsed .logo-toggle{width:40px;height:40px;align-items:center}.logo{width:120px;height:32px;object-fit:contain;background:transparent;display:block}.logo-favicon{width:20px;height:20px;background:transparent;display:block}.logo-business-name{margin:0;font-size:18px;font-weight:700;color:#333;line-height:1.2;max-width:92px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.header-breadcrumb-row{display:flex;align-items:center;min-height:32px}.breadcrumb{display:flex;align-items:center;gap:5px;width:100%;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-height:28px}.breadcrumb-item{color:#666;text-decoration:none;font-size:14px}.breadcrumb-item:hover{color:#1890ff}.breadcrumb-separator{color:#999}.header-actions{display:flex;align-items:center;gap:12px;padding-top:4px}.header-message-button{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 14px;border:1px solid #dbe5f0;border-radius:999px;background:linear-gradient(135deg,#f8fbff,#eef5ff);color:#1e3a5f;cursor:pointer;transition:all .2s ease}.header-message-button:hover{border-color:#93c5fd;background:linear-gradient(135deg,#eff6ff,#dbeafe);box-shadow:0 8px 18px #3b82f624}.header-message-button.is-active{border-color:#60a5fa;background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1d4ed8}.header-message-button.is-live{box-shadow:0 10px 20px #10b98129}.header-message-status-dot{width:8px;height:8px;border-radius:999px;background:#94a3b8;flex-shrink:0}.header-message-status-dot.is-connected,.header-message-status-dot.is-authenticated,.header-message-status-dot.is-alive{background:#10b981;box-shadow:0 0 0 4px #10b98129}.header-message-status-dot.is-connecting{background:#f59e0b}.header-message-status-dot.is-error,.header-message-status-dot.is-auth_error,.header-message-status-dot.is-disconnected{background:#ef4444}.header-message-icon{font-size:16px;line-height:1}.header-message-text{font-size:13px;font-weight:600;white-space:nowrap}.header-message-badge{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#ef4444;color:#fff;font-size:11px;font-weight:700;line-height:20px;text-align:center;box-shadow:0 4px 10px #ef444447}.route-tabs-bar{position:sticky;top:0;z-index:10;background:#e9eef5;padding:6px 0 8px;box-shadow:0 6px 14px #0f172a14}.route-tabs{display:flex;align-items:center;gap:8px;width:100%;min-width:0}.route-tabs-toast{position:absolute;right:12px;top:6px;padding:6px 10px;border-radius:6px;background:#fff7ed;color:#b45309;font-size:12px;display:flex;gap:12px;align-items:center;box-shadow:0 6px 12px #b453092e;z-index:20}.route-tabs-list{display:flex;align-items:center;gap:6px;flex:1;overflow-x:auto;overflow-y:hidden;padding-bottom:2px;scroll-behavior:smooth;scrollbar-width:none;min-width:0}.route-tabs-list::-webkit-scrollbar{display:none}.route-tabs-scroll-button{border:1px solid #e5e7eb;background:#fff;color:#475569;border-radius:6px;font-size:12px;height:30px;padding:0 8px;cursor:pointer;line-height:1;display:inline-flex;align-items:center;justify-content:center}.route-tab{border:1px solid #e5e7eb;background:#fff;color:#475569;border-radius:6px;font-size:13px;padding:4px 24px 4px 12px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;transition:all .2s ease;position:relative}.route-tab:before{content:"";width:6px;height:6px;border-radius:999px;background:#c4c4c4;display:inline-block}.route-tab.active{border-color:#1890ff;color:#1d4ed8;background:#eff6ff}.route-tab.active:before{background:#1890ff}.route-tab-close{position:absolute;top:2px;right:4px;width:14px;height:14px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;line-height:1;color:#94a3b8;background:#f1f5f9;opacity:0;pointer-events:none;transition:opacity .2s ease}.route-tab:hover .route-tab-close,.route-tab:focus-within .route-tab-close{opacity:1;pointer-events:auto}.route-tab-close:hover{color:#475569;background:#e2e8f0}.route-tab-close:focus{outline:2px solid #93c5fd;outline-offset:1px}.route-tabs-actions{position:relative;display:flex;align-items:center}.route-tabs-actions.is-limit .route-tabs-action-button,.route-tabs-scroll-button.is-right.is-limit{background:#fff4cc;border-color:#f7d774;color:#a16207}.route-tabs-action-button{border:1px solid #e5e7eb;background:#fff;color:#475569;border-radius:6px;font-size:12px;padding:6px 10px;cursor:pointer}.route-tabs-menu{position:absolute;top:calc(100% + 6px);right:0;background:#fff;border-radius:8px;box-shadow:0 8px 20px #0f172a1f;min-width:160px;padding:6px;z-index:1000}.route-tabs-menu-item{width:100%;background:transparent;border:none;text-align:left;padding:8px 10px;font-size:13px;color:#334155;cursor:pointer;border-radius:6px}.route-tabs-menu-item:hover{background:#f1f5f9}.version{color:#999;font-size:14px}.user-info{display:flex;align-items:center}.user-avatar{display:flex;align-items:center;gap:8px;background:transparent;border:none;padding:4px 8px;cursor:pointer;border-radius:999px;transition:background .2s}.user-avatar:focus-visible{outline:2px solid #93c5fd;outline-offset:2px}.user-avatar:hover{background-color:#1890ff1a}.user-avatar img{width:28px;height:28px;border-radius:50%}.username{font-size:14px;color:#333;white-space:nowrap}.logout-btn{margin-left:10px;padding:4px 12px;background-color:#f5222d;color:#fff;border:none;border-radius:4px;font-size:12px;cursor:pointer;transition:all .3s}.logout-btn:hover{background-color:#ff4d4f}.login-btn{display:flex;align-items:center;gap:8px;color:#1890ff;text-decoration:none;font-size:14px;padding:8px 16px;border:1px solid #1890ff;border-radius:4px;transition:all .3s}.login-btn:hover{background-color:#e6f7ff}.login-icon{font-size:16px}.app-body{display:flex;flex:1;min-height:calc(100vh - var(--app-header-height));background-color:#f3f6fa;overflow-x:hidden}.sidebar{width:240px;background-color:#021a2d;border-right:1px solid rgba(2,26,45,.35);overflow-y:auto;overflow-x:hidden;transition:width .3s;display:flex;flex-direction:column;scrollbar-width:none;-ms-overflow-style:none}.sidebar.collapsed{width:64px}.sidebar.collapsed .sidebar-version{text-align:center}.sidebar::-webkit-scrollbar{display:none}.sidebar-version{margin-top:auto;padding:var(--section-gap);color:#9aa4b2;font-size:12px;text-align:right}.main-content{flex:1;padding:0 10px;overflow-y:auto;overflow-x:hidden;background-color:#f3f6fa}.message-popup-stack{position:fixed;top:calc(var(--app-header-height) + 20px);right:20px;z-index:1200;display:flex;flex-direction:column;gap:10px;width:min(360px,calc(100vw - 32px))}.message-popup-card{position:relative;display:flex;flex-direction:column;gap:6px;border:1px solid #dbe5f0;border-left:4px solid #60a5fa;border-radius:14px;padding:14px 16px 14px 14px;background:#fffffff5;box-shadow:0 16px 28px #0f172a24;text-align:left;cursor:pointer}.message-popup-card strong{padding-right:20px;font-size:14px;color:#0f172a}.message-popup-card p{margin:0;font-size:13px;color:#475569;line-height:1.5}.message-popup-card.is-success{border-left-color:#10b981}.message-popup-card.is-warning{border-left-color:#f59e0b}.message-popup-card.is-urgent{border-left-color:#ef4444}.message-popup-close{position:absolute;top:10px;right:12px;color:#94a3b8;font-size:16px;line-height:1}.app-footer{height:60px;background-color:#fff;box-shadow:0 -2px 4px #0000000d;display:flex;align-items:center;justify-content:center;padding:0 20px}.footer-content{display:flex;gap:20px;font-size:13px;color:#999}.user-avatar-container{position:relative;display:flex;align-items:center}.user-menu{position:fixed;margin:0;background-color:#fff;box-shadow:0 4px 12px #00000026;border-radius:8px;min-width:160px;z-index:9999;animation:slideDown .2s ease-out;padding:6px 0;overflow:hidden}.user-menu:before{content:"";position:absolute;top:-6px;right:18px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.user-menu .menu-item{display:flex;align-items:center;padding:10px 16px;cursor:pointer;font-size:14px;color:#333;transition:background-color .2s;width:100%;border:none;background:transparent;text-align:left;justify-content:flex-start}.user-menu .menu-item:focus-visible{outline:2px solid #93c5fd;outline-offset:1px}.user-menu .menu-item:hover{background-color:#f5f7fa}.user-menu .menu-item:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.user-menu .menu-item:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.user-menu .menu-icon{margin-right:8px;font-size:16px}.enum-modal-header{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.enum-modal-header.is-dragging{cursor:grabbing}@media(max-width:768px){.sidebar{position:fixed;left:0;top:60px;bottom:60px;z-index:99}.sidebar.collapsed{left:-240px}.main-content{padding:10px}.header-content{margin-left:0}.header-message-button{min-width:38px;padding:0 10px}.header-message-text{display:none}.message-popup-stack{top:calc(var(--app-header-height) + 12px);right:12px;width:calc(100vw - 24px)}.footer-content{flex-direction:column;gap:5px;text-align:center}}.menu{padding:0;background-color:#021a2d;flex:1;display:flex;flex-direction:column}.menu-section{margin-bottom:16px}.menu-items{list-style:none;padding:0;margin:0;flex:1}.menu-item{position:relative;margin-bottom:0;border-bottom:1px solid rgba(255,255,255,.15)}.menu-item-content{display:flex;justify-content:space-between;align-items:center;background-color:#021a2d;position:relative}.menu-link{flex:1;display:flex;align-items:center;padding:12px 20px;color:#fff;text-decoration:none;font-size:16px;font-weight:600;background-color:transparent;transition:background-color .2s ease,color .2s ease}.menu-link .menu-icon{flex-shrink:0}.menu-link:hover{background-color:transparent;color:#fff}.menu-item.active>.menu-link{background-color:#1777c9;color:#fff}.menu-item.active>.menu-item-content{background-color:#1777c9}.menu-item.is-expanded>.menu-item-content{background-color:#0f3550}.menu-item.active.is-expanded>.menu-item-content{background-color:#1777c9}.menu-item:hover>.menu-link,.menu-item:hover>.menu-item-content{background-color:#0a2a46}.menu-item.active:hover>.menu-item-content,.menu-item.active:hover>.menu-link{background-color:#1777c9}.menu-icon{margin-right:10px;font-size:20px;width:28px;height:28px;text-align:center;display:inline-flex;align-items:center;justify-content:center}.menu-icon svg{width:20px;height:20px;vertical-align:middle;display:block}.menu-icon-img{width:20px;height:20px;vertical-align:middle;display:block;object-fit:contain}.menu-item.active>.menu-item-content .menu-icon svg,.menu-item.active>.menu-item-content .menu-icon-img,.menu-item.active>.menu-link .menu-icon svg,.menu-item.active>.menu-link .menu-icon-img,.menu-item.is-selected>.menu-item-content .menu-icon svg,.menu-item.is-selected>.menu-item-content .menu-icon-img{width:18px;height:18px}.menu-item>.menu-link .menu-icon-img,.menu-item>.menu-item-content .menu-link .menu-icon-img{filter:brightness(0) invert(1)}.menu-item>.menu-link .menu-icon svg,.menu-item>.menu-item-content .menu-link .menu-icon svg{filter:brightness(0) invert(1)}.submenu .menu-icon-img,.submenu .menu-icon svg{width:16px;height:16px;filter:none}.expand-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background-color:inherit;border:none;cursor:pointer;color:#fff;transition:transform .3s;border-radius:2px}.expand-btn:hover{background-color:inherit;color:#fff}.expand-btn.expanded{transform:rotate(180deg);color:#fff}.menu-tooltip{position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:#0b1e33;color:#fff;padding:6px 10px;border-radius:6px;font-size:12px;white-space:nowrap;opacity:0;pointer-events:none;box-shadow:0 8px 18px #0f172a33;transition:opacity .2s ease,transform .2s ease}.sidebar.collapsed .menu-item:hover .menu-tooltip{opacity:1;transform:translateY(-50%) translate(2px)}.submenu{list-style:none;padding:0;margin:0;background-color:#fff;border-left:none;overflow:hidden;transition:max-height .3s ease;max-height:0}.submenu.expanded{max-height:1000px}.submenu-item{margin:0;position:relative}.submenu-item .menu-link{padding:6px 20px 6px 44px;background-color:#fff;color:#1a1a1a;font-size:14px;font-weight:600;border-top:1px solid rgba(0,0,0,.06);position:relative}.submenu-item.has-submenu:hover .menu-link,.submenu-item .menu-link:hover,.submenu-item.active .menu-link{background-color:#f1f7ff;color:#1a1a1a}.submenu-item.active .menu-link:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background-color:#1777c9}.third-level-menu{list-style:none;padding:0;margin:0;background-color:#021a2d;border-left:none}.third-level-menu-item{margin:0;position:relative}.third-level-menu-item .menu-link{padding:8px 20px 8px 60px;background-color:#021a2d;border-bottom:none;color:#fff;transition:background-color .2s ease,color .2s ease}.third-level-menu-item .menu-link:hover{background-color:#0a2a46;color:#fff}.third-level-menu-item.active .menu-link{background-color:#1777c9;color:#fff;font-weight:500}.menu-floating-panel{position:fixed;min-width:200px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 16px 32px #0f172a33;padding:10px;z-index:999;overflow-y:auto}.menu-floating-title{font-size:12px;font-weight:600;color:#1f2937;margin-bottom:8px}.menu-floating-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.menu-floating-item .menu-floating-link{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;text-decoration:none;color:#374151;font-size:12px}.menu-floating-item .menu-floating-link:hover{background:#f1f5f9;color:#111827}.sidebar.collapsed .menu-link{justify-content:center;padding:12px 0;width:100%}.sidebar.collapsed .menu-link span:not(.menu-icon){display:none}.sidebar.collapsed .menu-icon{margin-right:0}.sidebar.collapsed .menu-item-content{justify-content:center;padding:0}.sidebar.collapsed .expand-btn{display:none}.message-center-page{padding:0 0 20px}.message-center-banner{margin:0 var(--page-edge-gap) 16px;padding:10px 12px;border-radius:8px;border:1px solid transparent;font-size:13px}.message-center-banner.is-success{background:#f6ffed;color:#389e0d;border-color:#b7eb8f}.message-center-banner.is-error{background:#fff1f0;color:#cf1322;border-color:#ffccc7}.message-center-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--layout-gap, 16px);margin:0 var(--page-edge-gap) var(--section-gap)}.message-center-overview-card{border-radius:12px;padding:18px 20px;background:linear-gradient(135deg,#f8fbff,#eef5ff);border:1px solid #d6e4ff;box-shadow:0 8px 18px #165dff14}.message-center-overview-card strong{display:block;margin-top:8px;font-size:28px;line-height:1;color:#165dff}.message-center-overview-label{font-size:13px;color:#5b6b7b}.message-center-panel{margin:0 var(--page-edge-gap);border-radius:12px;background:#fff;border:1px solid #e5eaf3;box-shadow:0 8px 18px #0f172a0d;overflow:hidden}.message-center-tabs{display:flex;gap:8px;padding:16px 16px 0;border-bottom:1px solid #edf1f6}.message-center-tab{border:none;background:transparent;color:#4e5969;padding:10px 14px;border-radius:10px 10px 0 0;cursor:pointer;font-weight:600}.message-center-tab.is-active{color:#165dff;background:#eef4ff}.message-center-section{padding:16px}.message-center-toolbar,.message-center-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.message-center-filter-group{display:flex;flex-wrap:wrap;gap:12px}.message-center-input,.message-center-select{min-height:36px;border:1px solid #d9e2ef;border-radius:8px;padding:0 12px;background:#fff}.message-center-input{min-width:280px}.message-center-select{min-width:160px}.message-center-primary-btn,.message-center-secondary-btn,.message-center-link-btn{border-radius:8px;cursor:pointer}.message-center-primary-btn{min-height:36px;padding:0 16px;border:none;background:#165dff;color:#fff}.message-center-secondary-btn{min-height:36px;padding:0 16px;border:1px solid #c9d6ea;background:#fff;color:#243b53}.message-center-link-btn{border:none;background:none;color:#165dff;padding:0}.message-center-link-btn.is-danger{color:#cf1322}.message-center-muted-action{color:#86909c}.message-center-section-head h3{margin:0 0 6px;font-size:16px;color:#1d2129}.message-center-section-head p{margin:0;color:#6b7280;font-size:13px}.message-center-table-wrap{overflow-x:auto}.message-center-table{width:100%;border-collapse:collapse}.message-center-table th,.message-center-table td{padding:12px 10px;border-bottom:1px solid #edf1f6;vertical-align:top;font-size:13px}.message-center-table th{background:#f8fafc;color:#4b5563;font-weight:600}.message-center-table tr.is-unread{background:#f7fbff}.message-center-content-cell{min-width:320px;color:#4e5969}.message-center-sub-link{margin-top:6px;font-size:12px;color:#94a3b8;word-break:break-all}.message-center-action-group{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.message-center-empty{text-align:center;color:#86909c;padding:32px 12px}.message-center-switch{display:inline-flex;align-items:center;gap:8px;color:#334155}.message-center-rule-section{margin-top:24px;padding-top:24px;border-top:1px solid #edf1f6}@media(max-width:1024px){.message-center-overview{grid-template-columns:1fr}.message-center-toolbar,.message-center-section-head{flex-direction:column}.message-center-input{min-width:0;width:100%}}.dashboard{--ink: #0f172a;--muted: #5b6472;--accent: #0b3d91;--surface: #ffffff;--panel: rgba(255, 255, 255, .88);--shadow: 0 20px 40px rgba(15, 23, 42, .12);font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,Heiti SC,sans-serif;padding-bottom:32px;color:var(--ink)}.page-actions{display:flex;gap:12px}.dashboard .btn{padding:8px 16px;border:1px solid transparent;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;display:inline-flex;align-items:center;gap:6px}.dashboard .btn-primary{background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff;box-shadow:0 10px 20px #2563eb40}.dashboard .btn-primary:hover{transform:translateY(-1px)}.dashboard .btn-secondary{background:#ffffffe6;color:var(--accent);border-color:#2563eb59}.dashboard .btn-secondary:hover{transform:translateY(-1px)}.dashboard .btn-sm{padding:4px 10px;font-size:12px;border-radius:999px}.dashboard-feedback{margin:0 10px 16px;padding:10px 14px;border-radius:14px;font-size:13px;border:1px solid transparent}.dashboard-feedback.info{background:#0ea5e914;border-color:#0ea5e92e;color:#0369a1}.dashboard-feedback.warning{background:#f9731614;border-color:#f9731633;color:#c2410c}.hero-strip{margin:12px 10px 24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.hero-card{background:var(--panel);border:1px solid rgba(15,23,42,.08);border-radius:16px;padding:16px 18px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;flex-direction:column;gap:6px}.hero-label{font-size:12px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}.hero-value{font-size:28px;font-weight:700}.hero-meta{font-size:13px;color:var(--muted)}.hero-value-row{display:flex;align-items:baseline;gap:12px}.dashboard-kpis{margin:0 10px 24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.kpi-card{border-radius:18px;padding:18px;background:var(--surface);border:1px solid rgba(15,23,42,.08);box-shadow:0 12px 30px #0f172a1a;display:flex;flex-direction:column;gap:6px}.kpi-title{font-size:13px;color:var(--muted)}.kpi-value{font-size:26px;font-weight:700}.kpi-change{font-size:12px;font-weight:600}.kpi-change.positive{color:#16a34a}.kpi-change.negative{color:#dc2626}.kpi-change.neutral{color:#475569}.kpi-blue{border-left:4px solid #2563eb}.kpi-green{border-left:4px solid #16a34a}.kpi-amber{border-left:4px solid #f97316}.kpi-violet{border-left:4px solid #7c3aed}.dashboard-columns{margin:0 10px;display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:18px}.panel{background:var(--surface);border-radius:18px;border:1px solid rgba(15,23,42,.08);box-shadow:var(--shadow);padding:18px;margin-bottom:18px}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.panel-header h3{margin:0;font-size:16px}.panel-subtitle{font-size:12px;color:var(--muted)}.ghost-link{background:transparent;border:none;color:var(--accent);font-size:13px;font-weight:600;cursor:pointer}.alerts-table{border-radius:14px;overflow:hidden;border:1px solid rgba(15,23,42,.06)}.table{width:100%;border-collapse:collapse;background:#fff}.table thead{background:#f8fafc}.table th{padding:12px 14px;text-align:left;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:#475569;border-bottom:1px solid #e2e8f0}.table td{padding:12px 14px;font-size:13px;color:#1f2937;border-bottom:1px solid #e2e8f0}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background-color:#f1f5f9}.panel-empty{padding:28px 16px;text-align:center;color:var(--muted);font-size:14px}.level,.status{padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600}.level.critical{background-color:#fee2e2;color:#b91c1c}.level.warning,.status.pending{background-color:#fef3c7;color:#b45309}.level.info,.status.processing{background-color:#dbeafe;color:#1d4ed8}.status.resolved{background-color:#dcfce7;color:#15803d}.activity-list{list-style:none;margin:0;padding:0;display:grid;gap:12px;color:var(--ink)}.activity-list li{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding-bottom:8px;border-bottom:1px dashed rgba(15,23,42,.15);font-size:14px}.activity-time{font-size:12px;color:var(--muted)}.activity-link{padding:0;border:none;background:transparent;color:var(--ink);text-align:left;cursor:pointer;font-size:14px}.activity-link:hover{color:var(--accent)}.activity-dot{width:10px;height:10px;border-radius:50%}.status-up{background:#2563eb}.status-warn{background:#f97316}.status-info{background:#0ea5e9}.status-ok{background:#16a34a}.action-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.action-card{background-color:#f8fafc;border:1px solid rgba(15,23,42,.08);border-radius:14px;padding:18px 14px;text-align:left;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;display:flex;flex-direction:column;align-items:flex-start;gap:12px}.action-card:hover{transform:translateY(-2px);box-shadow:0 12px 24px #0f172a1f}.action-icon{width:42px;height:42px;border-radius:12px;background-color:#0f172a0f;display:flex;align-items:center;justify-content:center;font-size:22px}.add-lamp{color:#2563eb}.create-ticket{color:#f97316}.maintenance-task{color:#16a34a}.light-config{color:#7c3aed}.action-title{font-size:13px;font-weight:600;color:var(--ink)}.action-card-header{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px}.action-badge{padding:4px 8px;border-radius:999px;background:#2563eb1a;color:#1d4ed8;font-size:12px;font-weight:700}.action-meta{font-size:12px;color:#2563eb;font-weight:600}.action-description{font-size:12px;line-height:1.6;color:var(--muted)}.health-list{display:grid;gap:12px}.health-item{display:flex;justify-content:space-between;font-size:14px;color:var(--ink)}.health-ok{color:#16a34a}.health-warn{color:#d97706}.health-info{color:#2563eb}@media(max-width:1100px){.dashboard-columns{grid-template-columns:1fr}}@media(max-width:720px){.page-actions{flex-direction:column;align-items:stretch}.hero-strip,.dashboard-kpis{grid-template-columns:1fr}.action-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}.quality-rate-content{display:flex;justify-content:center;align-items:center}.quality-rate-header{margin:-20px -20px 0;border-radius:8px 8px 0 0}.quality-rate-pie-container{display:flex;justify-content:center;align-items:center;width:100%}.quality-rate-pie{position:relative;width:160px;height:160px;border-radius:50%;display:flex;justify-content:center;align-items:center}.quality-rate-pie-inner{width:120px;height:120px;border-radius:50%;background-color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center}.quality-rate-pie-percentage{font-size:28px;font-weight:600;color:#52c41a}.quality-rate-pie-label{font-size:12px;color:#666;margin-top:4px}.business-chart-container{display:flex;flex-direction:column;width:100%;height:100%;border-radius:8px;overflow:hidden;background-color:#fff;box-shadow:0 2px 8px #0000001a}.chart-title{border-radius:8px 8px 0 0}.chart-content{flex:1;padding:16px;display:flex;flex-direction:column;justify-content:center;align-items:center}.chart-data{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.bar-chart{display:flex;align-items:flex-end;justify-content:space-around;width:100%;height:100%;max-height:300px;padding:20px 0}.chart-bar{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;flex:1;margin:0 8px;height:100%}.bar{width:100%;min-height:20px;border-radius:4px 4px 0 0;transition:all .3s ease;cursor:pointer}.bar:hover{opacity:.8;transform:scaleY(1.05)}.bar-label{margin-top:8px;font-size:12px;color:#666;text-align:center;max-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-data{font-size:14px;color:#999;text-align:center}.statistics-card{background-color:#fbbf241a;border-radius:8px;box-shadow:0 2px 8px #0000001a;flex:1;overflow:hidden}.card-header{background-color:#fbbf24;padding:7px 16px;display:flex;justify-content:space-between;align-items:center}.card-title-container{display:flex;flex-direction:column;gap:2px}.card-title{color:#fff}.card-icon{width:32px;height:32px;background-color:#fff3;border-radius:50%;display:flex;align-items:center;justify-content:center}.card-icon:after{content:"";width:16px;height:16px;background-color:#fff;clip-path:polygon(20% 0%,80% 0%,100% 100%,0% 100%)}.card-value{font-size:20px;font-weight:800;color:#fff;margin:0;line-height:1.2}.card-details{padding:0 16px 10px}.detail-item{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px dashed #C4C4C4}.detail-label{color:#6b7280;font-size:14px}.detail-value{color:#333;font-size:14px;font-weight:500}.fault-alarm-list{width:100%;background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.fault-alarm-body{display:flex;flex-direction:column;gap:6px;padding:10px 16px}.fault-alarm-item{display:flex;flex-direction:column;gap:0;padding:4px 0;border-bottom:1px solid #f0f0f0}.fault-alarm-item:last-child{border-bottom:none}.fault-alarm-row{display:flex;align-items:center;justify-content:space-between;gap:20px}.fault-alarm-row-top{margin-bottom:2px}.fault-alarm-phenomenon,.fault-alarm-description,.fault-alarm-location,.fault-alarm-time{font-size:13px;color:#333;line-height:1.4}.fault-alarm-description,.fault-alarm-location{color:#666}.fault-alarm-actions{display:flex;gap:8px}.fault-btn{padding:4px 10px;border-radius:4px;font-size:12px;cursor:pointer;border:1px solid transparent;transition:all .3s}.fault-btn-ghost{color:#666;border-color:#d9d9d9;background-color:#fff}.fault-btn-ghost:hover{color:#165dff;border-color:#165dff}.fault-btn-primary{color:#fff;background-color:#165dff;border-color:#165dff}.fault-btn-primary:hover{background-color:#0040d0;border-color:#0040d0}.fault-alarm-empty{text-align:center;color:#999;padding:24px 0}.side-gutter-table{width:100%;background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.side-gutter-table table{width:100%;margin:0;border-collapse:collapse;table-layout:fixed}.side-gutter-table__table-wrap{width:100%}.side-gutter-table th,.side-gutter-table td{padding:0;text-align:left;vertical-align:middle;height:40px;line-height:40px;border:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-gutter-table tbody tr{border-bottom:1px dashed #e6e6e6}.side-gutter-table tbody tr:last-child{border-bottom:none}.side-gutter-table thead tr{border-bottom:1px dashed #e6e6e6}.side-gutter-table tbody tr:hover td{background-color:#f0f7ff}.side-gutter-table tbody tr.side-gutter-table__empty-row:hover td{background-color:transparent}.side-gutter-table tbody tr.side-gutter-table__empty-row,.side-gutter-table tbody tr.side-gutter-table__empty-row td{border-bottom:none}.side-gutter-table__side{width:20px;min-width:20px;max-width:20px;padding:0}.side-gutter-table__pagination{display:flex;justify-content:space-between;align-items:center;padding:8px 36px;margin-top:10px;background-color:#fff}.side-gutter-table__pagination--simple{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;padding:8px 20px}.side-gutter-table__pagination--simple .side-gutter-table__pagination-controls{gap:10px}.side-gutter-table__pagination--simple .side-gutter-table__page-button{width:28px;height:28px;border-radius:6px;padding:0;font-size:16px;line-height:1}.side-gutter-table__page-number{font-size:14px;color:#333}.side-gutter-table__pagination-controls{display:flex;gap:6px;flex-wrap:wrap}.side-gutter-table__page-button{border:1px solid #d9d9d9;background-color:#fff;color:#333;padding:2px 8px;border-radius:4px;font-size:12px;cursor:pointer;transition:all .3s}.side-gutter-table__page-button:hover:not(:disabled){color:#165dff;border-color:#165dff}.side-gutter-table__page-button:disabled{color:#999;border-color:#e6e6e6;cursor:not-allowed}.side-gutter-table__page-button.is-active{color:#165dff;border-color:#165dff;background-color:#f0f7ff}.side-gutter-table__pagination-text{font-size:12px;color:#666}.lamp-management-overview{display:flex;flex-direction:column;gap:var(--section-gap);padding:0 var(--page-edge-gap) var(--page-bottom-padding)}.lamp-management-header-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.lamp-management-search{min-width:240px;height:36px;border:1px solid #d9e2f2;border-radius:999px;padding:0 var(--space-3);color:#0f172a;background:#fff}.lamp-management-page-button{height:36px;border-radius:999px;padding:0 var(--space-4);border:1px solid transparent;cursor:pointer;font-size:13px;transition:all .2s ease}.lamp-management-page-button-primary{background:#2563eb;color:#fff}.lamp-management-page-button-primary:hover{background:#1d4ed8}.lamp-management-page-button-primary:disabled{cursor:not-allowed;opacity:.7}.lamp-management-page-button-ghost{background:#fff;color:#2563eb;border-color:#d9e2f2}.lamp-management-page-button-ghost:hover{background:#eff6ff;border-color:#2563eb}.lamp-management-overview-feedback{padding:var(--space-2-5) var(--space-4);border:1px solid #dbe3f1;border-radius:12px;background:#f8fbff;color:#44556f;font-size:13px}.lamp-management-overview-statistics{display:flex;gap:var(--component-gap);overflow-x:auto}.lamp-management-overview-summary-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--component-gap)}.lamp-management-overview-summary-card{background:linear-gradient(180deg,#fff,#f8fbff);border:1px solid #e8eef8;border-radius:16px;padding:var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);box-shadow:0 1px 4px #0f172a0f}.lamp-management-overview-summary-card span{color:#64748b;font-size:13px}.lamp-management-overview-summary-card strong{color:#0f172a;font-size:28px;line-height:1}.lamp-management-overview-summary-card small{color:#94a3b8;font-size:12px}.lamp-management-overview-chart-section{display:grid;grid-template-columns:320px minmax(0,1fr);gap:var(--section-gap)}.lamp-management-overview-chart-left,.lamp-management-overview-chart-right{background:#fff;border-radius:16px;border:1px solid #e9eef6;box-shadow:0 1px 4px #0f172a0f;overflow:hidden}.lamp-management-overview-chart-left{min-height:280px;padding:var(--card-padding)}.lamp-management-overview-content-section{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(320px,.95fr);gap:var(--section-gap);align-items:start}.lamp-management-overview-left-panel{min-width:0;background:#fff;border-radius:16px;border:1px solid #e9eef6;box-shadow:0 1px 4px #0f172a0f}.lamp-management-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--card-padding) 0;flex-wrap:wrap}.lamp-management-toolbar-group{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.lamp-management-filter-pill{height:32px;border-radius:999px;border:1px solid #d9e2f2;background:#fff;color:#475569;padding:0 var(--space-3);font-size:12px;cursor:pointer;transition:all .2s ease}.lamp-management-filter-pill:hover,.lamp-management-filter-pill.is-active{color:#2563eb;background:#eff6ff;border-color:#2563eb}.lamp-management-toolbar-stats{display:flex;gap:var(--space-3);flex-wrap:wrap;color:#64748b;font-size:12px}.lamp-management-overview-right-panel{display:flex;flex-direction:column;gap:var(--section-gap);min-width:0}.lamp-management-alarm-panel{background:#fff;border-radius:16px;border:1px solid #e9eef6;box-shadow:0 1px 4px #0f172a0f;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.lamp-management-overview-header-action,.lamp-management-overview-text-button{border:1px solid #d9e2f2;background:#fff;color:#2563eb;padding:var(--space-1) var(--space-3);border-radius:999px;font-size:12px;cursor:pointer;transition:all .2s ease}.lamp-management-overview-header-action:hover,.lamp-management-overview-text-button:hover{border-color:#2563eb;background:#eff6ff}.lamp-management-rate{display:inline-flex;align-items:center;justify-content:center;min-width:68px;padding:var(--space-1) var(--space-2-5);border-radius:999px;font-size:12px;font-weight:600}.lamp-management-rate-good{background:#10b9811f;color:#047857}.lamp-management-rate-warning{background:#f59e0b24;color:#b45309}.lamp-management-rate-alert{background:#ef44441f;color:#b91c1c}.lamp-management-table-link{border:none;background:transparent;color:#2563eb;cursor:pointer;font-size:12px;padding:0}.lamp-management-table-link:hover{text-decoration:underline}.lamp-management-fault{color:#64748b;font-weight:500}.lamp-management-fault-active{color:#dc2626;font-weight:700}.lamp-management-overview-maintenance-panel{background:#fff;border-radius:16px;border:1px solid #e9eef6;box-shadow:0 1px 4px #0f172a0f;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.lamp-management-overview-maintenance-panel-road{background:linear-gradient(180deg,#fff,#f8fbff)}.lamp-management-overview-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.lamp-management-overview-panel-header h3{margin:0;color:#0f172a;font-size:16px}.lamp-management-overview-panel-header span{display:inline-block;margin-top:var(--space-1);color:#94a3b8;font-size:12px}.lamp-management-overview-maintenance-list{display:grid;gap:var(--space-3)}.lamp-management-overview-maintenance-item{border:1px solid #edf2fb;border-radius:14px;padding:var(--space-3) var(--space-4);background:linear-gradient(180deg,#fff,#f9fbff);display:flex;flex-direction:column;gap:var(--space-1)}.lamp-management-overview-maintenance-item span{color:#64748b;font-size:13px}.lamp-management-overview-maintenance-item strong{color:#0f172a;font-size:24px}.lamp-management-overview-maintenance-item small{color:#94a3b8;font-size:12px}.lamp-management-road-focus{display:flex;flex-direction:column;gap:var(--space-3)}.lamp-management-road-focus-badge{display:inline-flex;align-items:center;justify-content:center;width:fit-content;max-width:100%;padding:var(--space-2) var(--space-3);border-radius:999px;font-size:13px;font-weight:600}.lamp-management-road-focus-badge-good{color:#047857;background:#10b9811f}.lamp-management-road-focus-badge-warning{color:#b45309;background:#f59e0b24}.lamp-management-road-focus-badge-alert{color:#b91c1c;background:#ef44441f}.lamp-management-road-focus-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}.lamp-management-road-focus-item{border:1px solid #edf2fb;border-radius:14px;padding:var(--space-3) var(--space-4);background:#fff;display:flex;flex-direction:column;gap:var(--space-1)}.lamp-management-road-focus-item span{color:#64748b;font-size:12px}.lamp-management-road-focus-item strong{color:#0f172a;font-size:22px}.lamp-management-road-focus-item small{color:#94a3b8;font-size:12px}.lamp-management-road-empty{color:#94a3b8;font-size:13px}@media(max-width:1280px){.lamp-management-overview-summary-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.lamp-management-overview-chart-section{grid-template-columns:1fr}}@media(max-width:960px){.lamp-management-overview-content-section,.lamp-management-overview-summary-strip,.lamp-management-road-focus-grid{grid-template-columns:1fr}}@media(max-width:640px){.lamp-management-overview{padding-left:var(--page-edge-gap);padding-right:var(--page-edge-gap)}.lamp-management-overview-chart-left{padding:var(--space-4)}.lamp-management-overview-panel-header{flex-direction:column}.lamp-management-search{min-width:100%}}.lamp-asset-overview{display:flex;flex-direction:column;gap:var(--section-gap);padding:0 var(--page-edge-gap) var(--page-bottom-padding)}.lamp-asset-overview__feedback{padding:10px 14px;border:1px solid #dbe3f1;border-radius:12px;background:#f8fbff;color:#44556f;font-size:13px}.lamp-asset-overview__statistics{display:flex;gap:var(--component-gap);overflow-x:auto}.lamp-asset-overview__charts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--section-gap)}.lamp-asset-overview__card{background:#fff;border-radius:16px;padding:18px;border:1px solid #e9eef6;box-shadow:0 1px 4px #0f172a0f;min-height:308px;display:flex;flex-direction:column;gap:18px}.lamp-asset-overview__card-header{display:flex;flex-direction:column;gap:6px}.lamp-asset-overview__card-header h3{margin:0;font-size:16px;color:#0f172a}.lamp-asset-overview__card-header span{font-size:12px;color:#94a3b8}.lamp-asset-overview__donut-layout{display:grid;grid-template-columns:160px minmax(0,1fr);align-items:center;gap:18px;flex:1}.lamp-asset-overview__donut{width:160px;height:160px;border-radius:50%;display:flex;align-items:center;justify-content:center}.lamp-asset-overview__donut-inner{width:94px;height:94px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px #94a3b833;display:flex;flex-direction:column;align-items:center;justify-content:center}.lamp-asset-overview__donut-inner strong{color:#0f172a;font-size:22px;font-weight:700}.lamp-asset-overview__donut-inner span{color:#64748b;font-size:12px}.lamp-asset-overview__legend{display:flex;flex-direction:column;gap:12px}.lamp-asset-overview__legend-item{display:flex;align-items:center;justify-content:space-between;gap:12px}.lamp-asset-overview__legend-label{display:inline-flex;align-items:center;gap:8px;color:#334155;font-size:13px}.lamp-asset-overview__legend-label i{width:10px;height:10px;border-radius:999px}.lamp-asset-overview__bars{display:flex;flex-direction:column;gap:16px;flex:1;justify-content:center}.lamp-asset-overview__bar-row{display:grid;grid-template-columns:118px minmax(0,1fr);gap:12px;align-items:center}.lamp-asset-overview__bar-meta{display:flex;flex-direction:column;gap:4px}.lamp-asset-overview__bar-meta strong{font-size:14px;color:#0f172a}.lamp-asset-overview__bar-meta span{font-size:12px;color:#64748b}.lamp-asset-overview__bar-track{position:relative;height:12px;border-radius:999px;background:#e6edf8;overflow:hidden}.lamp-asset-overview__bar-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#1d4ed8,#60a5fa)}.lamp-asset-overview__insights{display:grid;gap:12px;flex:1}.lamp-asset-overview__insight{border:1px solid #e8eef8;border-radius:14px;padding:16px;background:linear-gradient(180deg,#fff,#f8fbff);display:flex;flex-direction:column;gap:6px}.lamp-asset-overview__insight span{color:#64748b;font-size:13px}.lamp-asset-overview__insight strong{color:#0f172a;font-size:24px;font-weight:700}.lamp-asset-overview__insight small{color:#94a3b8;font-size:12px}.lamp-asset-overview__table-section{background:#fff;border-radius:12px;border:1px solid #eef2f7;box-shadow:0 1px 4px #0f172a0f}.lamp-asset-overview__table-meta{color:#64748b;font-size:12px}.lamp-asset-overview__table .side-gutter-table__table-wrap{padding-bottom:8px}.lamp-asset-overview__table .side-gutter-table__pagination{padding:12px 16px 16px}.lamp-asset-overview__status{display:inline-flex;align-items:center;justify-content:center;min-width:52px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600}.lamp-asset-overview__status--online{background:#10b9811f;color:#047857}.lamp-asset-overview__status--offline{background:#94a3b82e;color:#475569}.lamp-asset-overview__status--fault{background:#ef44441f;color:#b91c1c}.lamp-asset-overview__status--unknown{background:#3b82f61f;color:#1d4ed8}@media(max-width:1200px){.lamp-asset-overview__charts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.lamp-asset-overview__charts{grid-template-columns:1fr}.lamp-asset-overview__donut-layout{grid-template-columns:1fr;justify-items:center}}@media(max-width:640px){.lamp-asset-overview{padding-left:10px;padding-right:10px}.lamp-asset-overview__bar-row{grid-template-columns:1fr}}.lamp-light-path-page{--lamp-light-path-tabs-offset: 56px;--lamp-light-path-drawer-top: calc(var(--app-header-height) + var(--lamp-light-path-tabs-offset));min-height:calc(100vh - var(--app-header-height));padding-bottom:20px;display:flex;flex-direction:column;gap:16px}.lamp-light-path-header-actions,.lamp-light-path-detail-actions,.lamp-light-path-editor-toolbar,.lamp-light-path-drawer-actions{display:flex;align-items:center;gap:12px}.lamp-light-path-feedback{margin:0 10px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;border-radius:14px;background:#eff6ff;color:#1d4ed8}.lamp-light-path-feedback.is-error{background:#fef2f2;color:#b91c1c}.lamp-light-path-feedback.is-success{background:#ecfdf5;color:#047857}.lamp-light-path-road-panel,.lamp-light-path-detail-panel,.lamp-light-path-modal,.lamp-light-path-drawer-section{background:#fff;border:1px solid #dbe7ff;border-radius:20px}.lamp-light-path-road-panel{margin:0 10px 20px;padding:16px;box-shadow:0 2px 8px #0f172a14;display:flex;flex-direction:column;gap:16px}.lamp-light-path-road-header{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}.lamp-light-path-road-header h3{margin:0;font-size:15px;color:#1f2937}.lamp-light-path-road-header span{color:#64748b;font-size:12px}.lamp-light-path-road-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.lamp-light-path-road-filters select{border:1px solid #c7ddff;border-radius:6px;padding:6px 10px;font-size:12px;min-width:160px;background:#fff}.lamp-light-path-road-search{display:flex;align-items:center;gap:6px;border:1px solid #c7ddff;border-radius:6px;padding:4px 8px;background:#fff}.lamp-light-path-road-search input{border:none;outline:none;font-size:12px;min-width:180px}.lamp-light-path-road-table{overflow-x:auto;border-radius:10px;border:1px solid #e5e7eb}.lamp-light-path-road-table-inner{width:100%;min-width:1160px;border-collapse:collapse;background:#fff;color:#1f2937;font-size:12px}.lamp-light-path-road-table-inner thead{background:#f3f4f6}.lamp-light-path-road-table-inner th,.lamp-light-path-road-table-inner td{padding:12px 10px;text-align:left;border-bottom:1px solid #e5e7eb;white-space:nowrap}.lamp-light-path-road-table-inner th{font-weight:600;color:#374151}.lamp-light-path-road-table-inner tbody tr:last-child td{border-bottom:none}.lamp-light-path-road-link{border:none;background:transparent;padding:0;color:#0c6ddf;font-size:13px;font-weight:600;cursor:pointer;text-align:left}.lamp-light-path-road-link:hover{color:#0a56af;text-decoration:underline}.lamp-light-path-road-empty{text-align:center;color:#94a3b8}.lamp-light-path-drawer-backdrop{position:fixed;top:var(--lamp-light-path-drawer-top);right:0;bottom:0;left:0;background:#0f172a00;pointer-events:none;transition:background .18s ease;z-index:1090}.lamp-light-path-drawer-backdrop.is-open{background:#0f172a2e;pointer-events:auto}.lamp-light-path-drawer{position:fixed;top:var(--lamp-light-path-drawer-top);right:0;width:min(760px,calc(100vw - 40px));height:calc(100vh - var(--lamp-light-path-drawer-top));background:#f8fbff;box-shadow:-16px 0 40px #0f172a24;transform:translate(104%);transition:transform .22s ease;z-index:1100}.lamp-light-path-drawer.is-open{transform:translate(0)}.lamp-light-path-drawer-inner{height:100%;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:16px}.lamp-light-path-drawer-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.lamp-light-path-drawer-header strong{display:block;font-size:24px;color:#0f172a}.lamp-light-path-drawer-header span{display:block;margin-top:6px;color:#64748b;font-size:13px}.lamp-light-path-drawer-section,.lamp-light-path-detail-panel{padding:16px}.lamp-light-path-panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.lamp-light-path-panel-header strong{display:block;color:#0f172a;font-size:18px}.lamp-light-path-panel-header span{display:block;margin-top:4px;color:#64748b;font-size:13px}.lamp-light-path-list,.lamp-light-path-section-list{display:flex;flex-direction:column;gap:12px}.lamp-light-path-direct-list{display:flex;flex-direction:column;gap:16px}.lamp-light-path-section-direct-list{display:flex;flex-direction:column;gap:0}.lamp-light-path-section-item{border-bottom:1px solid #e5edf9;padding:12px 0}.lamp-light-path-section-compact-row{display:grid;grid-template-columns:minmax(280px,max-content) auto minmax(0,1fr);align-items:center;gap:20px;min-width:0}.lamp-light-path-section-controls{display:contents}.lamp-light-path-section-meta{display:flex;flex-direction:column;gap:2px;min-width:280px}.lamp-light-path-section-meta strong{color:#0f172a;font-size:17px}.lamp-light-path-section-meta span,.lamp-light-path-section-length{color:#64748b;font-size:13px}.lamp-light-path-section-length{white-space:nowrap;min-width:fit-content}.lamp-light-path-tag-row{display:grid;grid-template-columns:repeat(2,max-content);justify-content:flex-start;align-items:start;min-width:0;gap:12px}.lamp-light-path-tag-toggle{display:inline-flex;align-items:center;gap:8px;border:1px solid #cfe0ff;border-radius:999px;background:#f8fbff;color:#1e3a8a;padding:6px 12px;font-size:12px;font-weight:600;cursor:pointer}.lamp-light-path-tag-toggle input{width:14px;height:14px;margin:0;pointer-events:none}.lamp-light-path-tag-toggle.is-checked{border-color:#2563eb;background:#eff6ff}.lamp-light-path-tag-toggle.is-active{border-color:#2563eb;background:linear-gradient(180deg,#3b82f6,#2563eb);color:#fff}.lamp-light-path-tag-toggle:disabled{opacity:.6;cursor:default}.lamp-light-path-empty-tag{color:#94a3b8;font-size:13px}.lamp-light-path-line-item{border:1px solid #dbe7ff;border-radius:20px;background:#fff;overflow:hidden}.lamp-light-path-line-item.is-expanded{border-color:#bfdbfe;box-shadow:0 10px 30px #2563eb14}.lamp-light-path-line-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px}.lamp-light-path-line-meta{display:flex;flex-direction:column;gap:8px}.lamp-light-path-line-meta strong{color:#0f172a;font-size:17px}.lamp-light-path-line-meta span{color:#64748b;font-size:13px;line-height:1.7}.lamp-light-path-line-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.lamp-light-path-line-body{padding:0 20px 20px}.lamp-light-path-button-list{flex-direction:row;flex-wrap:nowrap;align-items:center;gap:16px;overflow-x:auto}.lamp-light-path-card,.lamp-light-path-section-row{width:100%;display:grid;grid-template-columns:minmax(140px,1.1fr) 120px repeat(3,minmax(90px,1fr));gap:12px;align-items:center;border:1px solid #dbe7ff;border-radius:16px;background:#fff;padding:14px 16px;text-align:left}.lamp-light-path-card{cursor:pointer}.lamp-light-path-select-button{display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:0;min-height:46px;padding:0 20px;border:1px solid #cfe0ff;border-radius:14px;background:#fff;color:#1e3a8a;font-size:15px;font-weight:700;line-height:1.2;text-align:center;white-space:nowrap;box-shadow:0 6px 16px #2563eb14}.lamp-light-path-select-button.is-active{border-color:#2563eb;background:linear-gradient(180deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 14px 28px #2563eb38}.lamp-light-path-select-button:hover{border-color:#2563eb}.lamp-light-path-card.is-active,.lamp-light-path-section-row.is-checked{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb14}.lamp-light-path-card span,.lamp-light-path-section-row span{color:#64748b;font-size:14px}.lamp-light-path-table{overflow-x:auto;border:1px solid #dbe7ff;border-radius:16px;background:#fff}.lamp-light-path-table-inner{width:100%;min-width:640px;border-collapse:collapse;color:#1f2937;font-size:13px}.lamp-light-path-table-inner thead{background:#f8fafc}.lamp-light-path-table-inner th,.lamp-light-path-table-inner td{padding:12px 14px;text-align:left;border-bottom:1px solid #e2e8f0;white-space:nowrap}.lamp-light-path-table-inner th{font-weight:600;color:#334155}.lamp-light-path-table-inner tbody tr{cursor:pointer;transition:background .16s ease}.lamp-light-path-table-inner tbody tr:hover{background:#f8fbff}.lamp-light-path-table-inner tbody tr.is-active{background:#eff6ff}.lamp-light-path-table-inner tbody tr:last-child td{border-bottom:none}.lamp-light-path-empty{padding:24px 12px;color:#94a3b8;text-align:center}.lamp-light-path-danger{color:#b91c1c;border-color:#fecaca}.lamp-light-path-section-row{grid-template-columns:auto minmax(150px,1.2fr) minmax(120px,1fr) minmax(120px,1fr) 96px}.lamp-light-path-section-row input{width:18px;height:18px}.lamp-light-path-section-row.is-static{grid-template-columns:minmax(150px,1.2fr) minmax(120px,1fr) minmax(120px,1fr) 96px}.lamp-light-path-field{display:flex;flex-direction:column;gap:8px;min-width:320px}.lamp-light-path-field span,.lamp-light-path-roadside-group>span{font-size:13px;font-weight:600;color:#475569}.lamp-light-path-field select{height:38px;border:1px solid #cbd5e1;border-radius:12px;padding:0 12px;font-size:14px;color:#0f172a;background:#fff}.lamp-light-path-roadside-group{display:flex;flex-direction:column;gap:8px}.lamp-light-path-roadside-actions{display:flex;justify-content:flex-end;margin-top:2px}.lamp-light-path-roadside-options{display:flex;gap:12px;flex-wrap:wrap}.lamp-light-path-roadside-option{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 14px;border:1px solid #cbd5e1;border-radius:12px;color:#0f172a}.lamp-light-path-roadside-option.is-checked{border-color:#2563eb;color:#1d4ed8}.lamp-light-path-modal-backdrop{position:fixed;inset:0;background:#0f172a6b;display:flex;align-items:center;justify-content:center;padding:24px;z-index:1200}.lamp-light-path-modal{width:min(720px,calc(100vw - 48px));max-height:calc(100vh - 96px);overflow:auto;padding:24px}.lamp-light-path-modal-header,.lamp-light-path-modal-footer{display:flex;justify-content:space-between;align-items:center;gap:12px}.lamp-light-path-modal-actions{display:flex;align-items:center;gap:12px}.lamp-light-path-modal-header h3{margin:0;font-size:28px;color:#0f172a}.lamp-light-path-modal-header p{margin:8px 0 0;color:#64748b}.lamp-light-path-modal-body{display:flex;flex-direction:column;gap:16px;margin:20px 0}.lamp-light-path-modal-section{display:flex;flex-direction:column;gap:14px}.lamp-light-path-path-list{display:flex;flex-direction:column;gap:10px}.lamp-light-path-path-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border:1px solid #e5edf9;border-radius:14px;background:#fbfdff}.lamp-light-path-path-row.is-draft{border-style:dashed;border-color:#93c5fd;background:#eff6ff}.lamp-light-path-path-meta{display:flex;flex-direction:column;gap:4px}.lamp-light-path-path-meta strong{color:#0f172a;font-size:14px}.lamp-light-path-path-meta span{color:#64748b;font-size:12px}.lamp-light-path-path-actions{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.lamp-light-path-modal-close{border:none;background:transparent;color:#475569;cursor:pointer;font-size:16px}.mono{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}@media(max-width:1024px){.lamp-light-path-road-filters{flex-direction:column;align-items:stretch}.lamp-light-path-road-filters select,.lamp-light-path-road-search input,.lamp-light-path-field{min-width:0}.lamp-light-path-drawer{width:100%}.lamp-light-path-line-header{flex-direction:column}.lamp-light-path-line-actions{width:100%;justify-content:flex-start}.lamp-light-path-section-compact-row{grid-template-columns:1fr;align-items:flex-start}.lamp-light-path-section-length{text-align:left}.lamp-light-path-tag-row{flex-wrap:wrap;justify-content:flex-start}.lamp-light-path-drawer-inner{padding:16px}.lamp-light-path-card,.lamp-light-path-section-row,.lamp-light-path-section-row.is-static{grid-template-columns:1fr}.lamp-light-path-modal{width:calc(100vw - 24px);max-height:calc(100vh - 24px);padding:16px}}.pole-management{display:flex;flex-direction:column;gap:16px}.pole-management-actions{display:flex;gap:12px}.pole-management-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.pole-summary-card{border:1px solid #dbe5f4;border-radius:16px;background:linear-gradient(180deg,#fff,#f8fbff);padding:18px 20px;display:flex;flex-direction:column;gap:8px;box-shadow:0 10px 30px #0f172a0f}.pole-summary-card span{color:#64748b;font-size:13px}.pole-summary-card strong{color:#0f172a;font-size:30px;line-height:1}.pole-summary-card.tone-green strong{color:#15803d}.pole-summary-card.tone-orange strong{color:#c2410c}.pole-summary-card.tone-blue strong{color:#1d4ed8}.pole-management-panel{background:#fff;border:1px solid #dbe5f4;border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:16px;box-shadow:0 12px 32px #0f172a0f}.pole-management-panel-header{display:flex;align-items:end;justify-content:space-between;gap:16px}.pole-management-panel-header h3,.pole-detail-header h3,.pole-modal-header h3{margin:0;color:#0f172a}.pole-management-panel-header span,.pole-detail-header p,.pole-modal-header p{color:#64748b;font-size:13px;margin:4px 0 0}.pole-management-filters{display:flex;gap:12px;flex-wrap:wrap}.pole-management-filters select,.pole-management-search input,.pole-modal-form input{height:40px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;padding:0 12px;font-size:14px;color:#0f172a}.pole-management-search{min-width:280px;flex:1;display:flex;align-items:center;gap:8px;height:40px;border:1px solid #cbd5e1;border-radius:10px;padding:0 12px;background:#fff}.pole-management-search input{border:0;padding:0;flex:1;min-width:0}.pole-management-search input:focus,.pole-modal-form input:focus,.pole-management-filters select:focus{outline:none}.pole-management-feedback{border-radius:12px;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa;padding:12px 14px;font-size:14px}.pole-management-content{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.95fr);gap:16px;min-height:520px}.pole-road-table,.pole-detail-panel{border:1px solid #e2e8f0;border-radius:18px;overflow:hidden;background:#f8fafc}.pole-road-table{overflow:auto}.pole-road-table table{width:100%;border-collapse:collapse}.pole-road-table th,.pole-road-table td{padding:14px 12px;border-bottom:1px solid #e2e8f0;text-align:left;vertical-align:middle;font-size:14px}.pole-road-table th{position:sticky;top:0;z-index:1;background:#eff6ff;color:#334155;font-size:13px}.pole-road-table tbody tr{cursor:pointer;background:#fff}.pole-road-table tbody tr:hover{background:#f8fbff}.pole-road-table tbody tr.is-active{background:#eff6ff}.pole-road-main{display:flex;flex-direction:column;gap:4px}.pole-status-chip{display:inline-flex;align-items:center;justify-content:center;min-width:84px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:600}.pole-status-chip.is-complete{background:#dcfce7;color:#166534}.pole-status-chip.is-missing{background:#ffedd5;color:#c2410c}.pole-table-empty{text-align:center;color:#64748b;padding:40px 16px}.pole-detail-panel{padding:18px;display:flex;flex-direction:column;gap:16px;overflow:auto}.pole-detail-header{display:flex;justify-content:space-between;gap:12px;align-items:start}.pole-detail-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pole-detail-meta div,.pole-detail-card-grid div{display:flex;flex-direction:column;gap:4px}.pole-detail-meta span,.pole-detail-card-grid span{font-size:12px;color:#64748b}.pole-detail-meta strong,.pole-detail-card-grid strong{color:#0f172a;font-size:14px}.pole-detail-list{display:flex;flex-direction:column;gap:12px}.pole-detail-card{background:#fff;border:1px solid #dbe5f4;border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:12px}.pole-detail-card-header{display:flex;justify-content:space-between;gap:12px;align-items:start}.pole-detail-card-header div{display:flex;flex-direction:column;gap:4px}.pole-detail-card-header span{color:#64748b;font-size:12px}.pole-detail-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pole-detail-empty{min-height:240px;border:1px dashed #cbd5e1;border-radius:16px;background:#fff;color:#475569;display:flex;flex-direction:column;justify-content:center;gap:10px;padding:24px}.pole-detail-empty strong{color:#0f172a}.pole-modal-backdrop{position:fixed;inset:0;background:#0f172a66;display:flex;align-items:center;justify-content:center;padding:24px;z-index:1100}.pole-modal{width:min(760px,100%);max-height:calc(100vh - 48px);overflow:auto;border-radius:20px;background:#fff;box-shadow:0 24px 60px #0f172a33;border:1px solid #dbe5f4}.pole-modal-header{padding:20px 20px 0;display:flex;justify-content:space-between;gap:16px;align-items:start}.pole-modal-form{padding:20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.pole-modal-form label{display:flex;flex-direction:column;gap:8px}.pole-modal-form span{font-size:13px;color:#475569}.pole-modal-footer{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:12px;padding-top:4px}@media(max-width:1080px){.pole-management-summary,.pole-management-content,.pole-detail-meta,.pole-detail-card-grid,.pole-modal-form{grid-template-columns:1fr}}@media(max-width:768px){.pole-management-panel,.pole-detail-panel{padding:16px}.pole-management-actions,.pole-detail-header,.pole-management-panel-header{flex-direction:column;align-items:stretch}.pole-management-search{min-width:0}}.lighting-configuration{display:flex;flex-direction:column;gap:var(--section-gap);padding:0 var(--page-edge-gap) var(--page-bottom-padding)}.lighting-configuration__header-actions{display:flex;gap:10px;flex-wrap:wrap}.lighting-configuration__feedback{padding:12px 16px;border-radius:12px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border:1px solid #dbe4f0;background:#f8fbff;color:#41556d}.lighting-configuration__feedback.is-success{background:#ecfdf3;color:#047857;border-color:#b7ebc6}.lighting-configuration__feedback.is-error{background:#fff4f2;color:#b42318;border-color:#f7c5be}.lighting-configuration__summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--component-gap)}.lighting-configuration__summary-card{background:#fff;border-radius:16px;padding:18px;border:1px solid #e8eef7;box-shadow:0 1px 4px #0f172a0f;display:flex;flex-direction:column;gap:6px}.lighting-configuration__summary-card span{color:#64748b;font-size:13px}.lighting-configuration__summary-card strong{color:#0f172a;font-size:28px;font-weight:700}.lighting-configuration__summary-card small{color:#94a3b8;font-size:12px}.lighting-configuration__panel{background:#fff;border:1px solid #eef2f7;border-radius:14px;box-shadow:0 1px 4px #0f172a0f;padding:16px 0 0}.lighting-configuration__toolbar{display:flex;justify-content:space-between;gap:16px;padding:0 16px 16px;flex-wrap:wrap}.lighting-configuration__tabs{display:flex;gap:10px;flex-wrap:wrap}.lighting-configuration__tab{border:1px solid #d6dfec;background:#fff;border-radius:999px;padding:8px 14px;font-size:13px;color:#475569;cursor:pointer;display:inline-flex;align-items:center;gap:8px}.lighting-configuration__tab span{color:#94a3b8;font-size:12px}.lighting-configuration__tab.is-active{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.lighting-configuration__tab.is-active span{color:#1d4ed8}.lighting-configuration__filters{display:flex;gap:10px;flex-wrap:wrap}.lighting-configuration__filters input{min-width:280px;border:1px solid #dbe4f0;border-radius:10px;padding:9px 12px;font-size:13px}.lighting-configuration__table-meta{color:#64748b;font-size:12px}.lighting-configuration__table .side-gutter-table__table-wrap{padding-bottom:8px}.lighting-configuration__table .side-gutter-table__pagination{padding:12px 16px 16px}.lighting-configuration__optics{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600}.lighting-configuration__optics--road{background:#2563eb1f;color:#1d4ed8}.lighting-configuration__optics--square{background:#0ea5e91f;color:#0369a1}.lighting-configuration__optics--landscape{background:#22c55e1f;color:#15803d}.lighting-configuration__optics--flood{background:#f973161f;color:#c2410c}.lighting-configuration__optics--default{background:#94a3b829;color:#475569}.lighting-configuration__actions-cell{display:inline-flex;gap:10px}.lighting-configuration__table-link{border:none;background:none;color:#2563eb;cursor:pointer;padding:0}.lighting-configuration__table-link.is-danger{color:#dc2626}.lighting-configuration__modal-backdrop{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:24px;z-index:1000}.lighting-configuration__modal{width:min(720px,100%);background:#fff;border-radius:18px;box-shadow:0 20px 48px #0f172a38;overflow:hidden}.lighting-configuration__modal-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid #edf2f7}.lighting-configuration__modal-header h3{margin:0;font-size:18px;color:#0f172a}.lighting-configuration__modal-close{border:none;background:none;color:#64748b;cursor:pointer}.lighting-configuration__modal-body{padding:20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.lighting-configuration__field{display:flex;flex-direction:column;gap:8px;color:#475569;font-size:13px}.lighting-configuration__field input,.lighting-configuration__field select,.lighting-configuration__field textarea{border:1px solid #dbe4f0;border-radius:10px;padding:10px 12px;font-size:13px;background:#fff}.lighting-configuration__field textarea{resize:vertical}.lighting-configuration__field em{color:#dc2626;font-style:normal;font-size:12px}.lighting-configuration__field--full{grid-column:1 / -1}.lighting-configuration__modal-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:10px;padding-top:8px}@media(max-width:1080px){.lighting-configuration__summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.lighting-configuration__summary{grid-template-columns:1fr}.lighting-configuration__filters input{min-width:0;width:100%}.lighting-configuration__modal-body{grid-template-columns:1fr}}.my-desktop{min-height:calc(100vh - var(--app-header-height));display:flex;flex-direction:column;padding-bottom:24px;color:#1f2937}.desktop-feedback{margin:0 10px 16px;padding:12px 14px;border-radius:12px;background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe;font-size:13px}.desktop-feedback.is-error{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.desktop-actions{display:flex;gap:10px}.desktop-btn{border-radius:999px;padding:6px 16px;border:1px solid transparent;font-size:13px;cursor:pointer;font-weight:600}.desktop-btn-primary{background-color:#2563eb;color:#fff}.desktop-btn-ghost{background-color:#fff;border-color:#cbd5f5;color:#1d4ed8}.desktop-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:0 10px 20px}.desktop-system-banner{margin:0 10px 20px}.desktop-system-banner-card{display:flex;flex-direction:column;gap:12px;padding:18px 20px;border-radius:16px;background:linear-gradient(135deg,#eff6ff,#fff 72%);border:1px solid #bfdbfe;box-shadow:0 10px 24px #0f172a14}.desktop-system-banner-label{font-size:12px;font-weight:700;color:#2563eb;letter-spacing:.06em}.desktop-system-banner-title{font-size:20px;color:#0f172a}.desktop-system-banner-text{margin:0;font-size:13px;line-height:1.7;color:#475569}.desktop-system-banner-actions{display:flex;gap:10px;flex-wrap:wrap}.desktop-kpi-card{background-color:#fff;border-radius:12px;padding:16px;box-shadow:0 6px 18px #0f172a14;display:flex;flex-direction:column;gap:6px}.desktop-kpi-label{font-size:12px;color:#64748b;letter-spacing:.04em}.desktop-kpi-value{font-size:24px;font-weight:700}.desktop-kpi-meta{font-size:12px;color:#6b7280}.desktop-kpi-meta.positive{color:#16a34a}.desktop-kpi-meta.negative{color:#dc2626}.desktop-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:0 10px 20px}.desktop-panel{background-color:#fff;border-radius:12px;padding:16px;box-shadow:0 10px 24px #0f172a14}.desktop-panel-highlight{background:linear-gradient(135deg,#f8fafc,#eef2ff);border:1px solid #e2e8f0}.desktop-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.desktop-panel-header h3{margin:0;font-size:16px;font-weight:600}.desktop-link{background:none;border:none;color:#2563eb;font-size:12px;cursor:pointer;padding:0}.desktop-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}.desktop-list li{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:10px;background-color:#f8fafc}.desktop-list-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.desktop-list-title{font-size:14px;font-weight:600;color:#1f2937}.desktop-list-meta{font-size:12px;color:#64748b}.desktop-list-empty{color:#64748b;text-align:center}.desktop-status-tag{flex-shrink:0;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600}.desktop-status-tag.is-0{background:#fef3c7;color:#b45309}.desktop-status-tag.is-1{background:#dbeafe;color:#1d4ed8}.desktop-status-tag.is-2{background:#ede9fe;color:#6d28d9}.desktop-status-tag.is-3{background:#fee2e2;color:#b91c1c}.desktop-shortcuts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.desktop-shortcut-header-actions{display:flex;align-items:center;gap:12px}.desktop-shortcut-count{font-size:12px;color:#64748b}.desktop-shortcut{border-radius:16px;padding:14px;font-size:13px;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:8px;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.desktop-shortcut:hover{transform:translateY(-2px);box-shadow:0 12px 22px #0f172a1f}.desktop-shortcut-blue{background:linear-gradient(180deg,#eef4ff,#fff);border:1px solid #bfdbfe;color:#1d4ed8}.desktop-shortcut-red{background:linear-gradient(180deg,#fff1f2,#fff);border:1px solid #fecdd3;color:#be123c}.desktop-shortcut-amber{background:linear-gradient(180deg,#fff7ed,#fff);border:1px solid #fed7aa;color:#c2410c}.desktop-shortcut-green{background:linear-gradient(180deg,#ecfdf5,#fff);border:1px solid #bbf7d0;color:#15803d}.desktop-shortcut-violet{background:linear-gradient(180deg,#f5f3ff,#fff);border:1px solid #ddd6fe;color:#6d28d9}.desktop-shortcut-slate{background:linear-gradient(180deg,#f8fafc,#fff);border:1px solid #cbd5e1;color:#334155}.desktop-shortcut-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.desktop-shortcut-title{font-size:14px;font-weight:700}.desktop-shortcut-badge{flex-shrink:0;min-width:40px;padding:2px 8px;border-radius:999px;background:#ffffffc7;font-size:12px;font-weight:700;text-align:center}.desktop-shortcut-meta{font-size:12px;font-weight:600;opacity:.88}.desktop-shortcut-description{min-height:36px;font-size:12px;line-height:1.5;color:#475569}.desktop-shortcut-action{margin-top:auto;font-size:12px;font-weight:700}.desktop-manager-modal{width:min(860px,calc(100vw - 32px));max-height:calc(100vh - 64px);overflow:hidden}.desktop-manager-modal-body{display:flex;flex-direction:column;gap:16px;max-height:calc(100vh - 180px);overflow:auto}.desktop-manager-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.desktop-manager-head h4{margin:0 0 4px;font-size:15px;font-weight:700;color:#0f172a}.desktop-manager-head p{margin:0;font-size:12px;color:#64748b}.desktop-manager-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.desktop-manager-section{display:flex;flex-direction:column;gap:12px}.desktop-manager-section-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.desktop-manager-section-header h5{margin:0;font-size:14px;font-weight:700;color:#0f172a}.desktop-manager-section-header span{font-size:12px;color:#64748b}.desktop-shortcut-manager-actions{display:flex;gap:10px}.desktop-shortcut-modal-actions{display:flex;justify-content:flex-end;gap:10px}.desktop-shortcut-manager-list{display:grid;gap:10px}.desktop-shortcut-manager-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc}.desktop-shortcut-manager-item.is-active{background:#fff;border-color:#bfdbfe;box-shadow:0 8px 20px #0f172a0f}.desktop-shortcut-manager-main{display:flex;align-items:flex-start;gap:12px;flex:1;cursor:pointer}.desktop-shortcut-manager-main input{margin-top:2px}.desktop-shortcut-manager-copy{display:flex;flex-direction:column;gap:4px}.desktop-shortcut-manager-title{font-size:14px;font-weight:700;color:#0f172a}.desktop-shortcut-manager-desc{font-size:12px;color:#64748b;line-height:1.5}.desktop-shortcut-manager-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.desktop-shortcut-manager-order{font-size:12px;color:#475569}.desktop-order-btn{border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;cursor:pointer}.desktop-order-btn:disabled{cursor:not-allowed;opacity:.5}.desktop-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.desktop-metric{background-color:#f8fafc;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:6px}.desktop-metric-label{font-size:12px;color:#64748b}.desktop-metric-value{font-size:18px;font-weight:700}.desktop-subpanel{margin-top:14px;padding-top:14px;border-top:1px solid #e2e8f0}.desktop-subpanel-title{margin-bottom:10px;font-size:13px;font-weight:600;color:#475569}.desktop-mini-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.desktop-mini-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:10px;background:#f8fafc;font-size:13px;color:#334155}.desktop-announcement h4{margin:0 0 8px;font-size:15px}.desktop-announcement p{margin:0 0 12px;font-size:13px;color:#475569;line-height:1.5}.desktop-announcement-meta{font-size:12px;color:#64748b}.desktop-module-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.desktop-module-widget{position:relative;overflow:hidden;border:1px solid #e5e7eb}.desktop-module-widget:after{content:"";position:absolute;inset:auto -40px -56px auto;width:132px;height:132px;border-radius:999px;background:#ffffff8c;pointer-events:none}.desktop-module-widget-workorder{background:linear-gradient(135deg,#eff6ff,#fff 68%)}.desktop-module-widget-inventory{background:linear-gradient(135deg,#ecfdf5,#fff 68%)}.desktop-module-widget-project{background:linear-gradient(135deg,#f5f3ff,#fff 68%)}.desktop-module-widget-collaboration{background:linear-gradient(135deg,#fff7ed,#fff 68%)}.desktop-module-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.desktop-module-stat{position:relative;z-index:1;display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:14px;background:#ffffffd1;border:1px solid rgba(148,163,184,.18)}.desktop-module-stat span{font-size:12px;color:#64748b}.desktop-module-stat strong{font-size:22px;font-weight:700;color:#0f172a}.desktop-module-summary{position:relative;z-index:1;margin-top:14px;padding-top:14px;border-top:1px solid rgba(148,163,184,.22);display:flex;flex-direction:column;gap:6px}.desktop-module-summary-label{font-size:12px;font-weight:600;color:#64748b}.desktop-module-summary-title{font-size:16px;font-weight:700;color:#0f172a}.desktop-module-summary-meta{font-size:12px;line-height:1.6;color:#475569}@media(max-width:768px){.desktop-actions{flex-wrap:wrap}.desktop-shortcut-header-actions,.desktop-manager-head,.desktop-manager-section-header,.desktop-shortcut-manager-item{flex-direction:column;align-items:stretch}.desktop-manager-modal{width:min(100vw - 20px,100%)}.desktop-manager-modal-body{max-height:calc(100vh - 220px)}.desktop-shortcut-manager-tools{justify-content:flex-start}.desktop-shortcut-modal-actions{flex-direction:column-reverse}.desktop-module-stat-grid{grid-template-columns:1fr}}.login-container{position:relative;isolation:isolate;--login-header-top-gap: 34px;min-height:100vh;display:flex;flex-direction:column;color:#dbeafe;background:transparent;font-family:PingFang SC,Microsoft YaHei,sans-serif;overflow:hidden}.login-container:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(circle at 28% 35%,#143466d1,#020617f5 58%),linear-gradient(140deg,#020617,#030a1c 48%,#01040c)}.login-content-shell{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;justify-content:flex-start}.login-header{position:relative;z-index:20;min-height:68px;margin-top:var(--login-header-top-gap);display:flex;align-items:center;justify-content:center;background:transparent;padding:6px 16px 0}.login-logo{width:min(1280px,100%);margin:0 auto}.login-logo h1{display:flex;align-items:center;justify-content:center;gap:14px;margin:0;color:#3ea8ff;font-size:clamp(20px,2vw,36px);line-height:1;letter-spacing:1px}.login-logo-mark{width:auto;height:clamp(40px,3vw,58px);display:block}.login-logo-text-group{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;align-self:flex-end}.login-logo-text{color:inherit;line-height:1;display:inline-flex;align-items:flex-end;padding:0}.login-logo-subtitle{margin-top:6px;font-size:clamp(12px,1.2vw,15px);line-height:1.2;color:#93c5fd;font-weight:400}.login-logo-text.is-emphasized{color:#111;font-weight:800;font-family:SimHei,Heiti SC,Microsoft YaHei,sans-serif;background:#ffffffed;border-radius:10px;padding:3px 12px}.login-main{flex:1;width:min(1360px,calc(100% - 40px));margin:0 auto;padding:0 0 20px;display:flex;align-items:center;gap:26px}.login-main:not(.is-form-only){margin-top:-24px}.login-main.is-form-only{justify-content:center}.login-visual-panel{flex:1;min-width:540px;display:flex;align-items:center;justify-content:center;overflow:hidden}.login-system-ring{position:relative;width:min(650px,92%);aspect-ratio:1;isolation:isolate;transform:scale(.94);transform-origin:center}.login-system-ring:after{content:"";position:absolute;inset:19.5%;border-radius:50%;border:2px dashed rgba(56,189,248,.28);box-shadow:0 0 18px #38bdf81f;z-index:0;pointer-events:none;transform-origin:center;animation:login-ring-dash-spin 24s linear infinite,login-ring-dash-glow 3.6s ease-in-out infinite}@keyframes login-ring-dash-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes login-ring-dash-glow{0%,to{opacity:.45;box-shadow:0 0 12px #38bdf814}50%{opacity:.95;box-shadow:0 0 22px #38bdf833}}.login-system-core,.login-system-card{position:absolute;width:156px;min-height:156px;padding:18px 14px;border-radius:16px;border:1px solid rgba(56,189,248,.34);background:#020818d6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;box-shadow:0 18px 34px #0208185c;font:inherit;color:inherit;outline:none;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease,background .25s ease,filter .25s ease}.login-system-core{left:50%;top:50%;width:154px;min-height:154px;transform:translate(-50%,-50%);border-radius:50%;border-color:#38bdf8b8;background:linear-gradient(145deg,#0ea5e933,#38bdf847);box-shadow:0 0 46px #38bdf84d,inset 0 0 28px #38bdf833;z-index:8}.login-system-card{z-index:2;width:192px;min-height:192px;border:none;border-radius:0;background:transparent;box-shadow:none;clip-path:polygon(50% 3%,92% 26%,92% 74%,50% 97%,8% 74%,8% 26%)}.login-system-card:before{content:"";position:absolute;inset:0;border:1px solid rgba(56,189,248,.24);background:linear-gradient(150deg,#05122de6,#030c22d1);box-shadow:0 12px 24px #02081842;transition:border-color .25s ease,box-shadow .25s ease,background .25s ease,opacity .25s ease;clip-path:inherit;pointer-events:none}.login-system-card:after{content:"";position:absolute;inset:2px;clip-path:inherit;background:radial-gradient(circle at 50% 36%,#38bdf829,#38bdf800 62%);opacity:.48;transition:opacity .25s ease;pointer-events:none}.login-system-card>*{position:relative;z-index:1}.login-system-card:hover{transform:translateY(-1px)}.login-system-card:hover:before{border-color:#38bdf8b8;box-shadow:0 0 24px #38bdf83d,inset 0 0 12px #38bdf81a;background:linear-gradient(150deg,#071838e6,#05112ad6)}.login-system-card:hover:after{opacity:.62}.login-system-core.is-entry-button,.login-system-card.is-entry-button{cursor:pointer}.login-system-core.is-entry-button:hover{border-color:#38bdf8;box-shadow:0 0 52px #38bdf885,inset 0 0 34px #38bdf847;background:linear-gradient(145deg,#0ea5e947,#38bdf857)}.login-system-card.is-entry-button:hover{filter:brightness(1.04) saturate(1.03)}.login-system-card.is-entry-button:hover:before{border-color:#38bdf8d1;box-shadow:0 0 30px #38bdf84d,inset 0 0 14px #38bdf81f}.login-system-card.is-entry-button:hover:after{opacity:.7}.login-system-core.is-entry-button:hover{transform:translate(-50%,-50%) scale(1.04)}.login-system-core.is-entry-button:active{transform:translate(-50%,-50%) scale(1.01)}.login-system-card.is-entry-button:active{filter:brightness(1.02) saturate(1.02)}.login-system-core.is-entry-button:focus-visible,.login-system-card.is-entry-button:focus-visible{box-shadow:none}.login-system-core.is-entry-button:focus-visible{box-shadow:0 0 0 3px #38bdf840,0 0 34px #38bdf84d}.login-system-core.is-selected{border-color:#38bdf8;box-shadow:0 0 58px #38bdf88f,inset 0 0 36px #38bdf83d;background:linear-gradient(145deg,#0ea5e94d,#38bdf861)}.login-system-card.is-entry-button:focus-visible:before{border-color:#38bdf8;box-shadow:0 0 0 3px #38bdf840,0 0 34px #38bdf84d}.login-system-card.is-selected:before{border-color:#38bdf8e0;box-shadow:0 0 36px #38bdf857,inset 0 0 18px #38bdf829;background:linear-gradient(150deg,#081b3eeb,#061534db)}.login-system-card.is-selected:after{opacity:.74}.login-system-core.is-entry-button:hover .system-card-title,.login-system-card.is-entry-button:hover .system-card-title,.login-system-core.is-selected .system-card-title,.login-system-card.is-selected .system-card-title{color:#8fdcff;text-shadow:0 0 8px rgba(56,189,248,.28)}.login-system-core.is-entry-button:hover .system-card-desc,.login-system-card.is-entry-button:hover .system-card-desc,.login-system-core.is-selected .system-card-desc,.login-system-card.is-selected .system-card-desc{color:#c7d2fe}.login-system-link{position:absolute;height:3px;background:linear-gradient(90deg,#38bdf8b3,#38bdf826);transform-origin:left center;z-index:1;box-shadow:0 0 10px #38bdf847;pointer-events:none}.system-card-title{color:#4cc5ff;font-size:15px;font-weight:600;line-height:1.35}.system-card-desc{margin-top:8px;color:#94a3b8;font-size:12px;line-height:1.4}.login-form-panel{width:430px;display:flex;align-items:center;justify-content:center}.login-main.is-form-only .login-form-panel{width:min(920px,calc(100% - 24px))}.login-box{width:100%;padding:30px;border-radius:18px;border:1px solid rgba(56,189,248,.28);background:#020818e6;box-shadow:0 22px 52px #01051070}.login-main.is-form-only .login-box{min-height:460px;display:flex;align-items:center;justify-content:center;padding:34px 56px}.login-form{margin:0}.login-main.is-form-only .login-form{width:100%;max-width:460px;margin:0 auto}.login-form h2{margin-bottom:20px;text-align:center;color:#38bdf8;font-size:20px;letter-spacing:1px;font-weight:600}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:8px;color:#dbeafe;font-size:14px}.form-group input,.entity-input-block input{width:100%;height:44px;padding:0 12px;border-radius:10px;border:1px solid rgba(148,163,184,.4);background:#020617;color:#e2e8f0;font-size:14px;transition:border-color .2s ease,box-shadow .2s ease}.form-group input:focus,.entity-input-block input:focus{outline:none;border-color:#38bdf8;box-shadow:0 0 0 2px #38bdf833}.form-group input:disabled,.entity-input-block input:disabled{cursor:not-allowed;opacity:.6}.entity-selector{display:flex;flex-direction:column;gap:14px}.entity-selector-title{text-align:center;color:#e2e8f0;font-size:16px;font-weight:600}.entity-selector-hint{text-align:center;color:#94a3b8;font-size:13px}.entity-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.entity-card{border:1px solid rgba(59,130,246,.25);border-radius:12px;background:#0f172ab3;padding:14px;text-align:left;cursor:pointer;color:#e2e8f0;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.entity-card:hover{border-color:#38bdf8e6;transform:translateY(-1px);box-shadow:0 12px 22px #02081859}.entity-card.is-disabled,.entity-card:disabled{cursor:not-allowed;opacity:.64;box-shadow:none;transform:none}.entity-card-name{color:#f8fafc;font-size:16px;font-weight:600}.entity-card-meta{margin-top:8px;font-size:13px;color:#94a3b8}.entity-input-block{display:flex;flex-direction:column;gap:10px}.entity-input-block label{color:#dbeafe;font-size:13px}.entity-confirm-btn{width:100%;height:42px;border:none;border-radius:10px;background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;font-size:14px;font-weight:500;cursor:pointer}.entity-confirm-btn:disabled{cursor:not-allowed;opacity:.55}.password-group{position:relative}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input{padding-right:42px}.toggle-password-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:auto;height:auto;border:none;background:transparent;color:#94a3b8;font-size:16px;line-height:1;cursor:pointer;padding:4px}.toggle-password-btn:hover{color:#e2e8f0}.toggle-password-btn:disabled{cursor:not-allowed;opacity:.5}.login-mode-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px}.login-mode-btn{height:40px;border-radius:10px;border:1px solid rgba(56,189,248,.18);background:#0f172adb;color:#94a3b8;font-size:13px;cursor:pointer;transition:border-color .2s ease,color .2s ease,background .2s ease}.login-mode-btn.is-active{border-color:#38bdf885;background:#0ea5e924;color:#e0f2fe}.login-mode-btn:disabled{opacity:.55;cursor:not-allowed}.captcha-row{display:flex;gap:10px;align-items:center}.captcha-row input{flex:1}.captcha-refresh{width:122px;min-width:122px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid rgba(148,163,184,.4);background:#020617;color:#cbd5e1;cursor:pointer;padding:0 8px}.captcha-refresh img{display:block;height:32px}.captcha-refresh:disabled{opacity:.55;cursor:not-allowed}.login-secondary-action{width:122px;min-width:122px}.login-field-hint{margin-top:8px;color:#94a3b8;font-size:12px;line-height:1.5}.error-message{margin-bottom:16px;border-radius:10px;border:1px solid rgba(248,113,113,.5);background:#7f1d1d3d;color:#fca5a5;text-align:center;font-size:13px;padding:8px 12px}.login-preferences{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px;margin-bottom:0;flex-wrap:wrap}.login-checkbox-label{display:inline-flex;align-items:center;gap:6px;color:#cbd5e1;font-size:13px;line-height:1.2}.login-checkbox-label input[type=checkbox]{width:14px;height:14px;margin:0;accent-color:#38bdf8}.privacy-link-btn{border:none;background:transparent;color:#7dd3fc;font-size:13px;padding:0;cursor:pointer}.privacy-link-btn:hover{color:#bae6fd;text-decoration:underline}.privacy-link-btn:disabled{cursor:not-allowed;opacity:.55;text-decoration:none}.form-actions{margin-top:20px}.login-btn{width:100%;height:44px;border:none;border-radius:10px;background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;font-size:15px;font-weight:600;letter-spacing:.5px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.login-btn:hover{transform:translateY(-1px);box-shadow:0 0 20px #38bdf859}.login-btn:disabled,.login-btn.loading{cursor:not-allowed;opacity:.58;transform:none;box-shadow:none}.privacy-modal-backdrop{position:fixed;inset:0;z-index:60;background:#020617ad;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:16px}.privacy-modal{width:min(680px,100%);max-height:min(82vh,820px);border-radius:14px;border:1px solid rgba(56,189,248,.32);background:#020818f7;box-shadow:0 20px 48px #02081880;display:flex;flex-direction:column;overflow:hidden}.privacy-modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid rgba(56,189,248,.2)}.privacy-modal-header h3{margin:0;color:#e2e8f0;font-size:16px;font-weight:600}.privacy-modal-close{border:1px solid rgba(148,163,184,.34);border-radius:8px;background:transparent;color:#cbd5e1;height:30px;padding:0 10px;cursor:pointer}.privacy-modal-close:hover{border-color:#38bdf899;color:#f8fafc}.privacy-modal-content{padding:14px 16px;overflow-y:auto;color:#cbd5e1;font-size:14px;line-height:1.75}.privacy-modal-content p{margin:0 0 10px}.privacy-modal-content p:last-child{margin-bottom:0}.privacy-modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 16px;border-top:1px solid rgba(56,189,248,.2)}.privacy-modal-btn{min-width:96px;height:34px;border-radius:8px;border:none;font-size:13px;cursor:pointer}.privacy-modal-btn.secondary{border:1px solid rgba(148,163,184,.34);background:transparent;color:#cbd5e1}.privacy-modal-btn.primary{background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff}.app-footer{position:relative;z-index:1;height:56px;border-top:1px solid rgba(56,189,248,.16);background:#020617b8;display:flex;align-items:center;justify-content:center;padding:0 16px}.footer-content{text-align:center;color:#94a3b8;font-size:12px;line-height:1.35}.footer-content p{margin:0}@media(max-width:1250px){.login-main{width:min(1200px,calc(100% - 28px));gap:20px}.login-system-ring{width:min(580px,100%);transform:scale(.88)}.login-system-core,.login-system-card{width:172px;min-height:172px}.login-system-core{width:138px;min-height:138px}}@media(max-width:1080px){.login-main{flex-direction:column;justify-content:center;gap:14px;padding-top:0}.login-main:not(.is-form-only){margin-top:0}.login-visual-panel{min-width:0;width:100%;max-height:320px}.login-system-ring{width:min(500px,95%);transform:scale(.76)}.login-form-panel{width:min(440px,100%)}.login-main.is-form-only .login-form-panel{width:min(760px,100%)}.login-main.is-form-only .login-box{min-height:420px;padding:28px 30px}}@media(max-width:768px){.login-header{height:72px}.login-logo h1{justify-content:flex-start;font-size:20px;gap:10px}.login-logo-subtitle{font-size:12px;margin-top:4px}.login-logo-mark{height:34px}.login-main{width:calc(100% - 20px);gap:12px}.login-visual-panel{display:none}.login-form-panel{width:100%}.login-box{padding:22px 16px;border-radius:14px}.login-main.is-form-only .login-box{min-height:0;padding:22px 16px}.entity-card-grid{grid-template-columns:1fr}.captcha-row{flex-direction:column;align-items:stretch}.captcha-refresh{width:100%;min-width:0}.login-preferences{flex-direction:column;align-items:flex-start;gap:8px}.app-footer{height:auto;padding:8px 12px}}.basic-setting-management{--layout-gap: 16px}.basic-setting-management .enum-setting-content{margin-top:0}.layout-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--layout-gap);align-items:start}.layout-block{width:100%;margin-bottom:var(--layout-gap)}.settings-sidebar-block{grid-column:span 3;min-width:320px;max-width:320px}@media(max-width:1024px){.layout-grid{grid-template-columns:1fr}.settings-sidebar-block,.right-settings-block{grid-column:span 1;max-width:100%}}.basic-setting-panel{min-height:520px}.basic-setting-panel .enum-panel-block{border-bottom:none}.basic-setting-item{display:flex;flex-direction:column;gap:4px}.basic-setting-item-desc{font-size:12px;color:#7a7a7a}.basic-setting-search-icon{font-size:14px;color:#9aa4b2}.basic-setting-section{display:flex;flex-direction:column;gap:var(--layout-gap);padding-top:12px}.basic-setting-header-desc{margin-top:2px;font-size:12px;color:#666;line-height:1.4}.basic-setting-scope-notice{margin-top:4px;font-size:12px;color:#c2410c;line-height:1.4}.basic-setting-form{--basic-setting-label-width: 140px;display:flex;flex-direction:column;gap:var(--layout-gap)}.basic-setting-section-title{padding:10px 12px;background:#f8fafc;border:1px dashed #e2e8f0;border-radius:10px;font-size:12px;font-weight:600;color:#334155;display:flex;align-items:center;justify-content:space-between;gap:12px}.basic-setting-section-title.is-toggle{padding:10px 12px}.basic-setting-section-title .basic-setting-radio-group{gap:24px}.basic-setting-section-title.has-top-spacing{margin-top:12px}.basic-setting-section-title.is-plain{padding:0;background:transparent;border:none;border-radius:0;font-size:12px;font-weight:500;color:#4d4d4d;justify-content:flex-start}.basic-setting-toggle{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#4d4d4d}.basic-setting-toggle-row{display:flex;align-items:center;gap:var(--layout-gap)}.basic-setting-toggle-actions{display:flex;gap:8px}.basic-setting-field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#4d4d4d}.basic-setting-field.has-top-spacing{margin-top:12px}.basic-setting-field.is-indented{margin-left:calc(var(--basic-setting-label-width) + 12px)}.basic-setting-field .enum-input,.basic-setting-field .enum-select{width:100%;min-width:0;box-sizing:border-box}.basic-setting-field-label{font-weight:500;min-width:var(--basic-setting-label-width)}.basic-setting-required{margin-left:4px;color:#d14343;font-weight:600}.basic-setting-input-group{display:flex;align-items:center;gap:8px;flex:1}.basic-setting-unit{font-size:12px;color:#7a7a7a;white-space:nowrap}.basic-setting-field-row{display:flex;align-items:center;gap:var(--layout-gap)}.basic-setting-server-row{flex-wrap:wrap}.basic-setting-server-input{width:120px;flex:0 0 auto}.basic-setting-server-actions{display:inline-flex;align-items:center;gap:8px}.basic-setting-field-row .enum-input,.basic-setting-field-row .enum-select{flex:1;width:auto;min-width:0}.basic-setting-helper{font-size:12px;color:#9aa4b2;white-space:nowrap}.basic-setting-map-picker-toolbar{flex:1;min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:12px}.basic-setting-map-picker-provider{font-size:12px;color:#64748b;white-space:nowrap}.basic-setting-map-picker-shell{margin-left:calc(var(--basic-setting-label-width) + var(--layout-gap));border:1px solid #dbe3f4;border-radius:10px;overflow:hidden;background:#f8fafc}.basic-setting-map-picker-canvas{width:100%;height:240px}.basic-setting-map-picker-status{margin-left:calc(var(--basic-setting-label-width) + var(--layout-gap));margin-top:6px;font-size:12px;color:#64748b}.basic-setting-map-picker-status.is-error{color:#b91c1c}.basic-setting-map-modal-mask{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:4200;padding:24px}.basic-setting-map-modal{width:min(960px,100%);max-height:min(760px,92vh);background:#fff;border-radius:12px;border:1px solid #dbe3f4;box-shadow:0 20px 44px #0f172a3d;padding:16px;display:flex;flex-direction:column;gap:10px}.basic-setting-map-modal-header{display:flex;align-items:center;justify-content:space-between}.basic-setting-map-modal-header h4{margin:0;font-size:16px;color:#1f2937}.basic-setting-map-modal-close{border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:6px;padding:4px 10px;cursor:pointer}.basic-setting-map-modal-subtitle{font-size:12px;color:#64748b}.basic-setting-map-modal-canvas-shell{border:1px solid #dbe3f4;border-radius:10px;overflow:hidden;background:#f8fafc}.basic-setting-map-modal-canvas{width:100%;height:min(520px,62vh)}.basic-setting-map-modal-status{font-size:12px;color:#475569}.basic-setting-map-modal-status.is-error{color:#b91c1c}.basic-setting-map-modal-selected{font-size:12px;color:#334155}.basic-setting-map-modal-actions{display:flex;justify-content:flex-end;gap:10px}.basic-setting-logo-input{display:flex;align-items:center;gap:12px;flex:1}.basic-setting-logo-input .enum-input{flex:1}.basic-setting-logo-input-placeholder{flex:1;height:34px}.basic-setting-logo-group{display:flex;flex-direction:column;gap:12px}.basic-setting-logo-actions{display:flex;flex-wrap:wrap;gap:var(--layout-gap);align-items:center;font-size:12px;color:#4d4d4d}.basic-setting-logo-actions .basic-setting-field-label{min-width:var(--basic-setting-label-width)}.basic-setting-logo-actions-buttons{flex:1;display:flex;gap:var(--layout-gap);align-items:center}.basic-setting-logo-actions-slot{flex:1;display:flex;align-items:center}.basic-setting-logo-previews{display:flex;gap:var(--layout-gap);margin-left:calc(var(--basic-setting-label-width) + var(--layout-gap));align-items:stretch;margin-top:0}.basic-setting-logo-preview-card{flex:1;display:flex;flex-direction:column;gap:4px}.basic-setting-logo-previews .basic-setting-logo-preview{flex:1;margin-left:0;margin-top:0;min-height:80px;height:80px;background:#fff;box-shadow:0 6px 14px #0f172a0f;border-style:solid;padding:8px}.basic-setting-logo-previews .basic-setting-logo-preview.is-empty{border-style:solid;color:#9aa4b2}.basic-setting-logo-previews .basic-setting-logo-preview img{width:100%;height:60px;max-width:100%;max-height:60px;object-fit:contain}.basic-setting-logo-previews .basic-setting-logo-preview.is-favicon img{height:60px}.basic-setting-logo-previews .basic-setting-logo-preview.is-favicon{min-height:80px;height:80px}.basic-setting-logo-caption{font-size:12px;color:#9aa4b2}.basic-setting-logo-previews .basic-setting-logo-preview.is-small img{width:100%;height:60px}.basic-setting-logo-preview{margin-top:10px;margin-left:calc(var(--basic-setting-label-width) + 12px);border-radius:8px;border:1px solid #e5e7eb;background:#f9fafb;padding:12px;position:relative;display:inline-flex;align-items:center;justify-content:center}.basic-setting-logo-preview.is-empty{min-height:calc(var(--app-header-height) * 2);min-width:240px;color:#9aa4b2;font-size:12px;border-style:dashed}.basic-setting-logo-preview img{height:calc(var(--app-header-height) * 2);width:auto;max-width:100%;object-fit:contain}.basic-setting-logo-preview.is-small{min-height:72px;min-width:120px;padding:8px}.basic-setting-logo-preview.is-small img{height:32px;width:32px}.basic-setting-logo-remove{position:absolute;top:8px;right:8px;background:#f97316;color:#fff;border:none;border-radius:4px;font-size:12px;padding:4px 8px;cursor:pointer}.basic-setting-static{height:30px;border:1px solid #d9d9d9;border-radius:4px;padding:0 10px;font-size:13px;color:#6b7280;display:flex;align-items:center;background:#f9fafb}.basic-setting-radio-group{display:flex;gap:18px}.basic-setting-radio{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#1f1f1f}.basic-setting-sync-status{margin-left:calc(var(--basic-setting-label-width) + var(--layout-gap));display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:#6b7280}.basic-setting-sync-status.is-running{color:#2563eb}.basic-setting-sync-status.is-success{color:#16a34a}.basic-setting-sync-status.is-failed{color:#dc2626}.basic-setting-sync-title{font-weight:600}.basic-setting-sync-error{color:#dc2626}.my-settings{padding:0 0 20px;--my-settings-row-height: 48px}.my-settings-helper{font-size:12px;color:#9aa4b2;margin-left:calc(var(--basic-setting-label-width) + var(--layout-gap))}.my-settings .basic-setting-field-row{min-height:var(--my-settings-row-height)}.my-settings-security-table{display:flex;flex-direction:column;border-top:none;border-bottom:none}.my-settings-security-row{display:grid;grid-template-columns:160px minmax(240px,1fr) 160px 80px;align-items:center;gap:12px;min-height:var(--my-settings-row-height);padding:12px 0;border-bottom:none;font-size:13px;color:#4d4d4d}.my-settings-security-row:last-child{border-bottom:none}.my-settings-security-title{font-size:14px;font-weight:600;color:#1f1f1f}.my-settings-security-desc{color:#6b7280;line-height:1.4}.my-settings-security-status{color:#4d4d4d;text-align:left}.my-settings-security-action{border:none;background:none;color:#165dff;cursor:pointer;font-size:13px;padding:0;text-align:right}.my-settings-security-action:hover{color:#0040d0}.my-settings-banner{margin-bottom:16px;padding:10px 12px;border-radius:8px;border:1px solid transparent;font-size:13px}.my-settings-banner.is-error{background:#fff1f0;color:#cf1322;border-color:#ffccc7}.my-settings-banner.is-success{background:#f6ffed;color:#389e0d;border-color:#b7eb8f}.my-settings-modal{width:min(420px,calc(100vw - 32px))}.my-settings-modal-error{margin-bottom:12px;padding:10px 12px;border-radius:8px;background:#fff1f0;color:#cf1322;border:1px solid #ffccc7;font-size:13px}.my-settings-modal-hint{font-size:12px;color:#8c8c8c}@media(max-width:768px){.my-settings{padding:0 0 16px}.my-settings-helper{margin-left:0}.my-settings-security-row{grid-template-columns:1fr;padding:12px 0}.my-settings-security-action{text-align:left}}.message-template-page{padding-bottom:20px}.message-template-banner{margin:0 var(--page-edge-gap) 16px;padding:10px 12px;border-radius:8px;border:1px solid transparent;font-size:13px}.message-template-banner.is-success{background:#f6ffed;color:#389e0d;border-color:#b7eb8f}.message-template-banner.is-error{background:#fff1f0;color:#cf1322;border-color:#ffccc7}.message-template-head-actions{display:flex;gap:12px}.message-template-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--layout-gap, 16px);margin:0 var(--page-edge-gap) var(--section-gap)}.message-template-card{border-radius:12px;padding:18px 20px;background:linear-gradient(135deg,#f7fbff,#edf5ff);border:1px solid #d6e4ff;box-shadow:0 8px 18px #165dff14}.message-template-card span{font-size:13px;color:#5b6b7b}.message-template-card strong{display:block;margin-top:8px;font-size:28px;line-height:1;color:#165dff}.message-template-panel{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);gap:16px;margin:0 var(--page-edge-gap)}.message-template-list,.message-template-editor{border-radius:12px;background:#fff;border:1px solid #e5eaf3;box-shadow:0 8px 18px #0f172a0d}.message-template-list{overflow:hidden}.message-template-editor{padding:16px}.message-template-toolbar{display:flex;flex-wrap:wrap;gap:12px;padding:16px;border-bottom:1px solid #edf1f6}.message-template-input,.message-template-select,.message-template-textarea{width:100%;min-height:38px;border:1px solid #d9e2ef;border-radius:8px;padding:0 12px;background:#fff}.message-template-input{min-width:220px}.message-template-select{min-width:180px}.message-template-textarea{min-height:112px;padding:10px 12px;resize:vertical}.message-template-primary-btn,.message-template-secondary-btn{min-height:38px;padding:0 16px;border-radius:8px;cursor:pointer}.message-template-primary-btn{border:none;background:#165dff;color:#fff}.message-template-secondary-btn{border:1px solid #c9d6ea;background:#fff;color:#243b53}.message-template-table-wrap{overflow-x:auto}.message-template-table{width:100%;border-collapse:collapse}.message-template-table th,.message-template-table td{padding:12px 10px;border-bottom:1px solid #edf1f6;vertical-align:top;font-size:13px}.message-template-table th{background:#f8fafc;color:#4b5563;font-weight:600}.message-template-table tbody tr{cursor:pointer}.message-template-table tbody tr.is-active{background:#f3f8ff}.message-template-code{margin-top:4px;color:#86909c;font-size:12px}.message-template-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.message-template-editor-head h3,.message-template-block h4{margin:0 0 6px;color:#1d2129}.message-template-editor-head p,.message-template-hint{margin:0;color:#6b7280;font-size:13px}.message-template-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.message-template-form-grid label,.message-template-block{display:flex;flex-direction:column;gap:6px}.message-template-form-grid label.is-full,.message-template-select.is-full{grid-column:1 / -1}.message-template-block{margin-top:16px}.message-template-checks{display:flex;flex-wrap:wrap;gap:12px}.message-template-checkbox{display:inline-flex;align-items:center;gap:8px;color:#334155}.message-template-checkbox.top-gap{margin-top:10px}.message-template-empty{text-align:center;color:#86909c;padding:48px 12px}@media(max-width:1100px){.message-template-overview,.message-template-panel,.message-template-form-grid{grid-template-columns:1fr}.message-template-editor-head,.message-template-head-actions{flex-direction:column}}.operation-log-page{display:flex;flex-direction:column;gap:20px}.operation-log-page-actions,.operation-log-filter-actions,.operation-log-pagination-actions{display:flex;gap:12px}.operation-log-banner{padding:12px 16px;border-radius:14px;background:#eef6ff;color:#1d4d8f;border:1px solid #c9ddff}.operation-log-banner.is-error{background:#fff2f0;color:#9f2f25;border-color:#f3c2bc}.operation-log-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.operation-log-overview-card,.operation-log-filter-card,.operation-log-table-card,.operation-log-detail-card{background:#fff;border:1px solid #dbe4f0;border-radius:20px;box-shadow:0 12px 30px #223c6014}.operation-log-overview-card{padding:20px 22px;display:flex;flex-direction:column;gap:8px}.operation-log-overview-card span{color:#60748a;font-size:13px}.operation-log-overview-card strong{color:#16324f;font-size:30px}.operation-log-layout{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(320px,.95fr);gap:20px;align-items:start}.operation-log-main{display:flex;flex-direction:column;gap:20px}.operation-log-filter-card,.operation-log-table-card,.operation-log-detail-card{padding:18px}.operation-log-quick-filters{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.operation-log-chip-btn{min-height:34px;padding:0 14px;border-radius:999px;border:1px solid #ccd9e7;background:#f7fbff;color:#35516f;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease}.operation-log-chip-btn:hover{border-color:#88acd4;background:#edf5ff}.operation-log-chip-btn.is-active{border-color:#2d7dd8;background:#e8f3ff;color:#1f5d9f}.operation-log-filter-grid,.operation-log-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.operation-log-field,.operation-log-detail-grid>div{display:flex;flex-direction:column;gap:8px}.operation-log-field span,.operation-log-detail-label{color:#58708a;font-size:12px;font-weight:600}.operation-log-input,.operation-log-select,.operation-log-primary-btn,.operation-log-secondary-btn{border-radius:12px;font-size:14px}.operation-log-input,.operation-log-select{min-height:42px;padding:0 12px;border:1px solid #cad7e5;background:#fbfdff;color:#1c324a}.operation-log-input:focus,.operation-log-select:focus{outline:none;border-color:#6599d4;box-shadow:0 0 0 3px #6599d424}.operation-log-filter-actions{margin-top:16px}.operation-log-primary-btn,.operation-log-secondary-btn,.operation-log-link-btn{min-height:40px;padding:0 16px;border:0;cursor:pointer;transition:transform .15s ease,opacity .15s ease}.operation-log-primary-btn{background:linear-gradient(135deg,#0f6bcf,#3b8df2);color:#fff}.operation-log-secondary-btn,.operation-log-link-btn{background:#edf3f9;color:#244564}.operation-log-primary-btn:hover,.operation-log-secondary-btn:hover,.operation-log-link-btn:hover{transform:translateY(-1px)}.operation-log-primary-btn:disabled,.operation-log-secondary-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.operation-log-table-wrap{overflow:auto}.operation-log-table{width:100%;border-collapse:collapse;min-width:1080px}.operation-log-table th,.operation-log-table td{padding:14px 12px;border-bottom:1px solid #e6edf5;text-align:left;vertical-align:top;font-size:13px;color:#1f3854}.operation-log-table th{color:#60748a;font-weight:700;background:#f8fbfe}.operation-log-table tbody tr.is-active{background:#f3f8ff}.operation-log-empty,.operation-log-detail-empty{text-align:center;color:#8194a8;padding:36px 12px}.operation-log-subtext{color:#74879c;font-size:12px;margin-top:4px}.operation-log-mono{font-family:Consolas,Courier New,monospace;word-break:break-all}.operation-log-result-badge{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:700;background:#eef3f8;color:#46627e}.operation-log-result-badge.is-success{background:#e7f7ed;color:#1d7a43}.operation-log-result-badge.is-failed{background:#fff0ee;color:#b34132}.operation-log-result-badge.is-warning{background:#fff7e8;color:#a06b13}.operation-log-result-badge.is-skipped{background:#f0f3f8;color:#5d7188}.operation-log-pagination{margin-top:16px;display:flex;justify-content:space-between;align-items:center;gap:12px;color:#5b7086;font-size:13px}.operation-log-detail-card{position:sticky;top:20px}.operation-log-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.operation-log-detail-head h3{margin:0;font-size:18px;color:#16324f}.operation-log-detail-body{display:flex;flex-direction:column;gap:18px}.operation-log-detail-grid strong{color:#173450;font-size:14px;line-height:1.5}.operation-log-detail-section{display:flex;flex-direction:column;gap:8px}.operation-log-detail-box,.operation-log-detail-json{margin:0;padding:14px;border-radius:14px;background:#f6f9fc;border:1px solid #dde7f1;color:#1f3750}.operation-log-detail-json{white-space:pre-wrap;word-break:break-word;max-height:420px;overflow:auto;font-size:12px}@media(max-width:1280px){.operation-log-layout{grid-template-columns:1fr}.operation-log-detail-card{position:static}}@media(max-width:900px){.operation-log-overview,.operation-log-filter-grid,.operation-log-detail-grid{grid-template-columns:1fr}.operation-log-pagination{flex-direction:column;align-items:flex-start}}.iot-adapter-page{padding:0 0 24px}.iot-adapter-actions{display:flex;gap:10px;align-items:center}.main-content-grid.iot-adapter-grid{margin:0 12px 24px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;align-items:start}.iot-adapter-grid .layout-block{width:100%}.iot-adapter-summary-block,.iot-adapter-block,.iot-adapter-editor-block{grid-column:span 12}.iot-adapter-summary-card,.iot-adapter-card{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:16px;box-shadow:0 12px 28px #0f172a0f}.iot-adapter-summary-card{padding:18px 20px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.iot-adapter-summary-label{font-size:12px;color:#6b7280}.iot-adapter-summary-value{margin-top:6px;font-size:28px;line-height:1;font-weight:700;color:#111827}.iot-adapter-card{padding:18px 20px;display:flex;flex-direction:column;gap:14px}.iot-adapter-card-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.iot-adapter-card-title{font-size:16px;font-weight:700;color:#111827}.iot-adapter-card-subtitle{margin-top:4px;font-size:12px;color:#6b7280}.iot-adapter-banner{border-radius:12px;padding:12px 14px;font-size:13px}.iot-adapter-banner.is-success{background:#ecfdf3;color:#166534;border:1px solid #bbf7d0}.iot-adapter-banner.is-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.iot-adapter-filter-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px}.iot-adapter-filter-field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#4b5563}.iot-adapter-table-shell{overflow-x:auto}.iot-adapter-table{width:100%;border-collapse:collapse;min-width:1080px}.iot-adapter-table th,.iot-adapter-table td{padding:12px 10px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:top;font-size:13px}.iot-adapter-table th{font-size:12px;font-weight:700;color:#6b7280;background:#f8fafc}.iot-adapter-table tbody tr{cursor:pointer;transition:background-color .2s ease,box-shadow .2s ease}.iot-adapter-table tbody tr:hover{background:#f8fafc}.iot-adapter-table tbody tr.is-active{background:#eff6ff}.iot-adapter-name{font-weight:600;color:#111827}.iot-adapter-subline{margin-top:4px;font-size:12px;color:#6b7280}.iot-adapter-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#1f2937}.iot-adapter-protocol{display:inline-flex;align-items:center;justify-content:center;min-width:64px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700}.iot-adapter-protocol.is-http{background:#eff6ff;color:#1d4ed8}.iot-adapter-protocol.is-mqtt{background:#ecfdf5;color:#047857}.iot-adapter-status{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:600}.iot-adapter-status.is-enabled{background:#ecfdf3;color:#166534}.iot-adapter-status.is-disabled{background:#f3f4f6;color:#4b5563}.iot-adapter-config-preview{max-width:320px;color:#4b5563;line-height:1.5;word-break:break-all}.iot-adapter-row-actions{display:flex;gap:8px;flex-wrap:wrap}.iot-adapter-row-actions .enum-button.is-danger{background:#fee2e2;border-color:#fecaca;color:#b91c1c}.iot-adapter-empty{text-align:center;color:#6b7280;padding:32px 12px}.iot-adapter-editor-card{position:sticky;top:16px}.iot-adapter-editor-form{display:flex;flex-direction:column;gap:16px}.iot-adapter-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.iot-adapter-editor-wide{grid-column:1 / -1}.iot-adapter-section-card{border:1px solid #e5e7eb;border-radius:14px;padding:16px;background:linear-gradient(180deg,#fff,#f8fafc)}.iot-adapter-section-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.iot-adapter-section-header h4{margin:0;font-size:15px;color:#111827}.iot-adapter-section-header span{font-size:12px;color:#6b7280}.iot-adapter-capabilities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.iot-adapter-toggle{display:flex;align-items:center;gap:10px;min-height:44px;padding:10px 12px;border:1px solid #dbeafe;border-radius:12px;background:#f8fbff;color:#1f2937;font-size:13px}.iot-adapter-toggle input{margin:0}.iot-adapter-toggle-inline{align-self:end;min-height:42px}.iot-adapter-plain-textarea{min-height:110px}.iot-adapter-editor-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.iot-adapter-form-error{border-radius:10px;padding:10px 12px;background:#fef2f2;border:1px solid #fecaca;color:#991b1b;font-size:13px}@media(min-width:1200px){.iot-adapter-block{grid-column:span 7}.iot-adapter-editor-block{grid-column:span 5}}@media(max-width:960px){.iot-adapter-summary-card{grid-template-columns:repeat(2,minmax(0,1fr))}.iot-adapter-filter-row,.iot-adapter-editor-grid,.iot-adapter-capabilities{grid-template-columns:1fr}.iot-adapter-editor-card{position:static}}@media(max-width:640px){.iot-adapter-summary-card{grid-template-columns:1fr}}.iot-device-page{display:flex;flex-direction:column;gap:var(--section-gap);padding-bottom:var(--page-bottom-padding)}.iot-device-title-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.iot-device-verify-switch{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#334155}.iot-device-verify-switch input{width:14px;height:14px}.iot-device-feedback{margin:0 var(--page-edge-gap);border-radius:12px;padding:10px 14px;font-size:13px;border:1px solid rgba(15,23,42,.08);background:#f8fafc;color:#334155}.iot-device-feedback.is-error{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.iot-device-summary{margin:0 var(--page-edge-gap);display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.iot-device-summary-card{background:#fff;border-radius:14px;padding:16px 18px;border:1px solid rgba(15,23,42,.08);box-shadow:0 8px 24px #0f172a0d}.iot-device-summary-title{font-size:12px;color:#64748b}.iot-device-summary-value{margin-top:8px;font-size:28px;font-weight:700;color:#0f172a}.iot-device-summary-meta{margin-top:6px;font-size:12px;color:#94a3b8}.iot-device-panel{margin:0 var(--page-edge-gap);background:#fff;border-radius:14px;padding:16px;border:1px solid rgba(15,23,42,.08);box-shadow:0 1px 4px #0f172a0f;display:flex;flex-direction:column;gap:16px}.iot-device-panel-header{display:flex;justify-content:space-between;gap:16px;align-items:center}.iot-device-panel-header h3{margin:0;font-size:16px;color:#0f172a}.iot-device-panel-header span{font-size:12px;color:#94a3b8}.iot-device-filters,.iot-device-log-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.iot-device-search{display:inline-flex;align-items:center;gap:6px;background:#f1f5f9;border-radius:999px;padding:6px 12px;min-width:260px}.iot-device-search input{border:none;background:transparent;outline:none;font-size:12px;width:100%}.iot-device-select{border:1px solid #e2e8f0;border-radius:8px;padding:6px 10px;font-size:12px;color:#334155;background:#fff}.iot-device-filter-actions{display:flex;gap:8px}.iot-device-layout{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(320px,1fr);gap:16px;align-items:start}.iot-device-table-shell{overflow-x:auto}.iot-device-table{width:100%;border-collapse:collapse;min-width:940px}.iot-device-table thead{background:#f8fafc}.iot-device-table th,.iot-device-table td{padding:10px 12px;font-size:12px;color:#334155;text-align:left;border-bottom:1px solid rgba(15,23,42,.06);vertical-align:middle}.iot-device-table th{font-weight:600;color:#475569}.iot-device-primary{font-weight:600;color:#0f172a}.iot-device-secondary{margin-top:4px;font-size:12px;color:#94a3b8}.iot-device-online{display:inline-flex;align-items:center;justify-content:center;min-width:52px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:600}.iot-device-online.is-online{background:#ecfdf5;color:#047857}.iot-device-online.is-offline{background:#fef2f2;color:#b91c1c}.iot-device-verify-tag{display:inline-flex;align-items:center;justify-content:center;min-width:52px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:600}.iot-device-verify-tag.is-verified{background:#ecfdf5;color:#047857}.iot-device-verify-tag.is-pending{background:#fff7ed;color:#c2410c}.iot-device-table td .enum-button+.enum-button{margin-left:6px}.iot-device-empty{text-align:center;color:#94a3b8;padding:28px 12px}.iot-device-log-table td{vertical-align:top}.iot-device-log-request-pre{margin:0;max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;line-height:1.5;color:#334155;cursor:zoom-in}.iot-device-log-request-pre.is-expanded{max-width:none;white-space:pre-wrap;word-break:break-all;overflow:visible;text-overflow:unset;cursor:zoom-out}.iot-device-log-pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#64748b;font-size:12px}.iot-device-detail-card{border:1px solid rgba(15,23,42,.08);border-radius:12px;padding:16px;background:linear-gradient(180deg,#fbfdff,#f8fafc);display:flex;flex-direction:column;gap:14px}.iot-device-detail-title{font-size:15px;font-weight:700;color:#0f172a}.iot-device-detail-empty{font-size:13px;color:#94a3b8;min-height:180px;display:flex;align-items:center}.iot-device-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.iot-device-detail-grid span{display:block;font-size:11px;color:#94a3b8;margin-bottom:4px}.iot-device-detail-grid strong{font-size:13px;color:#0f172a;word-break:break-word}.iot-device-state-block{display:flex;flex-direction:column;gap:8px}.iot-device-state-title{font-size:13px;font-weight:600;color:#0f172a}.iot-device-state-pre{margin:0;padding:12px;border-radius:10px;background:#0f172a;color:#e2e8f0;font-size:12px;line-height:1.5;overflow:auto;max-height:280px}@media(max-width:1200px){.iot-device-layout{grid-template-columns:1fr}}@media(max-width:768px){.iot-device-summary{grid-template-columns:1fr 1fr}.iot-device-detail-grid{grid-template-columns:1fr}.iot-device-search{min-width:100%}.iot-device-log-pagination{flex-direction:column;align-items:flex-start}}.integration-admin-page{display:flex;flex-direction:column;gap:var(--section-gap);padding-bottom:var(--page-bottom-padding)}.integration-admin-feedback{margin:0 var(--page-edge-gap);border-radius:12px;padding:10px 14px;font-size:13px;border:1px solid rgba(15,23,42,.08);background:#f8fafc;color:#334155}.integration-admin-embedded-actions{margin:0 var(--page-edge-gap);display:flex;justify-content:flex-end}.integration-admin-feedback.is-error{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.integration-admin-feedback.is-success{background:#ecfdf5;border-color:#bbf7d0;color:#047857}.integration-admin-summary{margin:0 var(--page-edge-gap);display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.integration-admin-summary-card{background:#fff;border-radius:14px;padding:16px 18px;border:1px solid rgba(15,23,42,.08);box-shadow:0 8px 24px #0f172a0d}.integration-admin-summary-title{font-size:12px;color:#64748b}.integration-admin-summary-value{margin-top:8px;font-size:28px;font-weight:700;color:#0f172a}.integration-admin-summary-meta{margin-top:6px;font-size:12px;color:#94a3b8}.integration-admin-panel{margin:0 var(--page-edge-gap);background:#fff;border-radius:14px;padding:16px;border:1px solid rgba(15,23,42,.08);box-shadow:0 1px 4px #0f172a0f;display:flex;flex-direction:column;gap:16px}.integration-admin-panel-header{display:flex;justify-content:space-between;gap:16px;align-items:center}.integration-admin-panel-header h3{margin:0;font-size:16px;color:#0f172a}.integration-admin-panel-header span{font-size:12px;color:#94a3b8}.integration-admin-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.integration-admin-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.integration-admin-search{display:inline-flex;align-items:center;gap:6px;background:#f1f5f9;border-radius:999px;padding:6px 12px;min-width:280px}.integration-admin-search input{border:none;background:transparent;outline:none;font-size:12px;width:100%}.integration-admin-select,.integration-admin-input{border:1px solid #e2e8f0;border-radius:8px;padding:6px 10px;font-size:12px;color:#334155;background:#fff}.integration-admin-layout{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(320px,1fr);gap:16px;align-items:start}.integration-admin-table-shell{overflow-x:auto}.integration-admin-table{width:100%;border-collapse:collapse;min-width:920px}.integration-admin-table thead{background:#f8fafc}.integration-admin-table th,.integration-admin-table td{padding:10px 12px;font-size:12px;color:#334155;text-align:left;border-bottom:1px solid rgba(15,23,42,.06);vertical-align:middle}.integration-admin-table th{font-weight:600;color:#475569}.integration-admin-primary{font-weight:600;color:#0f172a}.integration-admin-secondary{margin-top:4px;font-size:12px;color:#94a3b8}.integration-admin-tag{display:inline-flex;align-items:center;justify-content:center;min-width:56px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:600}.integration-admin-tag.is-pending{background:#fff7ed;color:#c2410c}.integration-admin-tag.is-resolved,.integration-admin-tag.is-active{background:#ecfdf5;color:#047857}.integration-admin-tag.is-claimed{background:#eff6ff;color:#1d4ed8}.integration-admin-tag.is-rejected,.integration-admin-tag.is-disabled{background:#fef2f2;color:#b91c1c}.integration-admin-table-actions{display:flex;gap:8px;flex-wrap:wrap}.integration-admin-empty{text-align:center;color:#94a3b8;padding:24px 12px}.integration-admin-detail-card{background:linear-gradient(180deg,#f8fbff,#f8fafc);border-radius:14px;border:1px solid rgba(148,163,184,.2);padding:16px;display:flex;flex-direction:column;gap:14px}.integration-admin-detail-title{font-size:15px;font-weight:700;color:#0f172a}.integration-admin-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.integration-admin-detail-grid span{display:block;font-size:11px;color:#94a3b8}.integration-admin-detail-grid strong{display:block;margin-top:4px;font-size:13px;color:#0f172a;word-break:break-all}.integration-admin-code{margin:0;padding:12px;border-radius:10px;background:#0f172a;color:#e2e8f0;font-size:12px;line-height:1.5;max-height:320px;overflow:auto;white-space:pre-wrap;word-break:break-word}.integration-admin-detail-empty{color:#94a3b8;font-size:13px}.integration-admin-modal-backdrop{position:fixed;inset:0;background:#0f172a5c;display:flex;align-items:center;justify-content:center;padding:24px;z-index:1000}.integration-admin-modal{width:min(560px,100%);background:#fff;border-radius:16px;box-shadow:0 24px 80px #0f172a33;overflow:hidden}.integration-admin-modal-header{padding:16px 18px;border-bottom:1px solid rgba(15,23,42,.08);font-size:16px;font-weight:700;color:#0f172a}.integration-admin-modal-body{padding:18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.integration-admin-modal-field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#475569}.integration-admin-modal-field.is-wide{grid-column:1 / -1}.integration-admin-modal-field input,.integration-admin-modal-field select,.integration-admin-modal-field textarea{border:1px solid #cbd5e1;border-radius:10px;padding:9px 11px;font-size:13px;color:#0f172a;background:#fff;outline:none}.integration-admin-modal-field textarea{min-height:120px;resize:vertical}.integration-admin-modal-actions{padding:0 18px 18px;display:flex;justify-content:flex-end;gap:10px}@media(max-width:1100px){.integration-admin-layout{grid-template-columns:1fr}}@media(max-width:760px){.integration-admin-modal-body,.integration-admin-detail-grid{grid-template-columns:1fr}.integration-admin-search{min-width:100%}.integration-admin-table{min-width:760px}}.system-integration-page{display:flex;flex-direction:column;gap:20px}.system-integration-tabs-shell{display:flex;flex-direction:column;gap:18px}.system-integration-tabs{display:flex;flex-wrap:wrap;gap:12px;padding:16px 18px;border:1px solid rgba(15,23,42,.08);border-radius:18px;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 16px 32px #0f172a0f}.system-integration-tab{border:1px solid rgba(15,23,42,.08);background:#fff;color:#334155;border-radius:999px;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer;transition:all .18s ease}.system-integration-tab:hover{border-color:#0e749047;color:#0f766e}.system-integration-tab.is-active{background:linear-gradient(135deg,#0f766e,#155e75);border-color:transparent;color:#fff;box-shadow:0 12px 24px #0f766e38}.system-integration-panel{min-width:0}@media(max-width:768px){.system-integration-tabs{gap:10px;padding:14px}.system-integration-tab{width:100%}}.iot-command-page{display:flex;flex-direction:column;gap:20px}.iot-command-page-actions,.iot-command-filter-actions,.iot-command-pagination-actions{display:flex;gap:12px}.iot-command-banner{padding:12px 16px;border-radius:14px;background:#eff7f4;color:#1d5d48;border:1px solid #c5e4d8}.iot-command-banner.is-error{background:#fff2f0;color:#9f2f25;border-color:#f3c2bc}.iot-command-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.iot-command-overview-card,.iot-command-filter-card,.iot-command-table-card,.iot-command-detail-card{background:#fff;border:1px solid #d9e6e0;border-radius:20px;box-shadow:0 14px 34px #18352d14}.iot-command-overview-card{padding:20px 22px;display:flex;flex-direction:column;gap:8px}.iot-command-overview-card span{color:#637c72;font-size:13px}.iot-command-overview-card strong{color:#183c33;font-size:30px}.iot-command-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(340px,1fr);gap:20px;align-items:start}.iot-command-main{display:flex;flex-direction:column;gap:20px}.iot-command-filter-card,.iot-command-table-card,.iot-command-detail-card{padding:18px}.iot-command-filter-grid,.iot-command-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.iot-command-field,.iot-command-detail-grid>div{display:flex;flex-direction:column;gap:8px}.iot-command-field span,.iot-command-detail-label{color:#587065;font-size:12px;font-weight:600}.iot-command-input,.iot-command-select,.iot-command-primary-btn,.iot-command-secondary-btn{border-radius:12px;font-size:14px}.iot-command-input,.iot-command-select{min-height:42px;padding:0 12px;border:1px solid #cadccf;background:#fbfefc;color:#1c3a30}.iot-command-input:focus,.iot-command-select:focus{outline:none;border-color:#4ea98a;box-shadow:0 0 0 3px #4ea98a24}.iot-command-filter-actions{margin-top:16px}.iot-command-primary-btn,.iot-command-secondary-btn,.iot-command-link-btn{min-height:40px;padding:0 16px;border:0;cursor:pointer;transition:transform .15s ease,opacity .15s ease}.iot-command-primary-btn{background:linear-gradient(135deg,#146e55,#23a17d);color:#fff}.iot-command-secondary-btn,.iot-command-link-btn{background:#edf6f1;color:#285547}.iot-command-primary-btn:hover,.iot-command-secondary-btn:hover,.iot-command-link-btn:hover{transform:translateY(-1px)}.iot-command-primary-btn:disabled,.iot-command-secondary-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.iot-command-table-wrap{overflow:auto}.iot-command-table{width:100%;border-collapse:collapse;min-width:1100px}.iot-command-table th,.iot-command-table td{padding:14px 12px;border-bottom:1px solid #e4efe9;text-align:left;vertical-align:top;font-size:13px;color:#1f3d34}.iot-command-table th{color:#607a70;font-weight:700;background:#f6fbf8}.iot-command-table tbody tr.is-active{background:#f2faf6}.iot-command-empty,.iot-command-detail-empty{text-align:center;color:#7a9288;padding:36px 12px}.iot-command-subtext{color:#738a80;font-size:12px;margin-top:4px}.iot-command-mono{font-family:Consolas,Courier New,monospace;word-break:break-all}.iot-command-status-badge{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:700;background:#eef3f0;color:#4d665d}.iot-command-status-badge.is-queued,.iot-command-status-badge.is-sending{background:#eef7ff;color:#2d69aa}.iot-command-status-badge.is-acked,.iot-command-status-badge.is-executed{background:#e7f7ed;color:#1d7a43}.iot-command-status-badge.is-failed,.iot-command-status-badge.is-timeout{background:#fff0ee;color:#b34132}.iot-command-pagination{margin-top:16px;display:flex;justify-content:space-between;align-items:center;gap:12px;color:#5b7067;font-size:13px}.iot-command-detail-card{position:sticky;top:20px}.iot-command-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.iot-command-detail-head h3{margin:0;font-size:18px;color:#16382f}.iot-command-detail-toolbar{display:flex;align-items:center;gap:12px;margin-top:8px;flex-wrap:wrap}.iot-command-detail-body{display:flex;flex-direction:column;gap:18px}.iot-command-polling-toggle{display:inline-flex;align-items:center;gap:8px;color:#436558;font-size:12px;font-weight:600}.iot-command-polling-banner{padding:12px 14px;border-radius:14px;background:#eef7ff;border:1px solid #c9ddff;color:#25578d;font-size:13px}.iot-command-detail-grid strong{color:#17372f;font-size:14px;line-height:1.5}.iot-command-detail-section{display:flex;flex-direction:column;gap:8px}.iot-command-timeline{display:flex;flex-direction:column;gap:12px}.iot-command-timeline-item{display:grid;grid-template-columns:16px minmax(0,1fr);gap:12px;align-items:flex-start}.iot-command-timeline-dot{width:12px;height:12px;margin-top:5px;border-radius:999px;background:#c3d4cb;box-shadow:0 0 0 4px #edf5f1}.iot-command-timeline-item.is-done .iot-command-timeline-dot{background:#1f8d62;box-shadow:0 0 0 4px #e6f6ee}.iot-command-timeline-item.is-active .iot-command-timeline-dot{background:#2d69aa;box-shadow:0 0 0 4px #e8f2ff}.iot-command-timeline-item.is-failed .iot-command-timeline-dot{background:#b34132;box-shadow:0 0 0 4px #fff0ee}.iot-command-timeline-content{padding:12px 14px;border-radius:14px;border:1px solid #ddebe4;background:#f8fcfa}.iot-command-timeline-item.is-active .iot-command-timeline-content{border-color:#c9ddff;background:#f5faff}.iot-command-timeline-item.is-failed .iot-command-timeline-content{border-color:#f3c2bc;background:#fff5f3}.iot-command-timeline-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:6px}.iot-command-timeline-head strong{color:#17372f;font-size:14px}.iot-command-timeline-head span{color:#6b8278;font-size:12px}.iot-command-detail-json{margin:0;padding:14px;border-radius:14px;background:#f6faf7;border:1px solid #ddebe4;color:#1f3750;white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto;font-size:12px}.iot-command-textarea{min-height:180px;padding:12px;border:1px solid #cadccf;border-radius:12px;background:#fbfefc;color:#1c3a30;font-size:13px;font-family:Consolas,Courier New,monospace;resize:vertical}.iot-command-textarea:focus{outline:none;border-color:#4ea98a;box-shadow:0 0 0 3px #4ea98a24}.iot-command-drawer-mask{position:fixed;inset:0;background:#0f1f1857;display:flex;justify-content:flex-end;z-index:1200}.iot-command-drawer{width:min(720px,100vw);height:100%;background:linear-gradient(180deg,#f8fcfa,#fff 18%);box-shadow:-18px 0 40px #0e201829;padding:24px;display:flex;flex-direction:column;gap:18px;overflow:auto}.iot-command-drawer-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.iot-command-drawer-head h3{margin:0 0 6px;color:#17382f;font-size:22px}.iot-command-drawer-head p{margin:0;color:#638073;font-size:13px;line-height:1.6}.iot-command-drawer-close{min-height:38px;padding:0 14px;border:0;border-radius:12px;background:#eaf3ee;color:#2a5648;cursor:pointer}.iot-command-drawer-form{display:flex;flex-direction:column;gap:18px}.iot-command-drawer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.iot-command-field-span-3{grid-column:1 / -1}.iot-command-inline-error{padding:12px 14px;border-radius:14px;background:#fff2f0;border:1px solid #f3c2bc;color:#9f2f25;font-size:13px}.iot-command-drawer-actions{display:flex;justify-content:flex-end;gap:12px}@media(max-width:1280px){.iot-command-layout{grid-template-columns:1fr}.iot-command-detail-card{position:static}}@media(max-width:900px){.iot-command-overview,.iot-command-filter-grid,.iot-command-detail-grid,.iot-command-drawer-grid{grid-template-columns:1fr}.iot-command-pagination{flex-direction:column;align-items:flex-start}.iot-command-drawer{width:100vw;padding:18px}.iot-command-drawer-head{flex-direction:column}}.iot-automation-page{display:flex;flex-direction:column;gap:20px}.iot-automation-feedback{padding:12px 16px;border-radius:12px;border:1px solid #d7e1da;background:#f7fbf8;color:#365145}.iot-automation-feedback.is-error{border-color:#f0c2bd;background:#fff4f2;color:#8a4035}.iot-automation-feedback.is-success{border-color:#c8e1c7;background:#f4fbf2;color:#2f6b32}.iot-automation-title-actions,.iot-automation-filter-actions,.iot-automation-row-actions{display:flex;gap:10px;flex-wrap:wrap}.iot-automation-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.iot-automation-summary-card,.iot-automation-panel,.iot-automation-detail-card{border-radius:18px;border:1px solid #dce7e0;background:#fff;box-shadow:0 18px 40px #2d493c0d}.iot-automation-summary-card{padding:18px 20px}.iot-automation-summary-title{font-size:13px;color:#6b7d73}.iot-automation-summary-value{margin-top:8px;font-size:30px;font-weight:700;color:#1d3a2b}.iot-automation-summary-meta{margin-top:8px;font-size:13px;color:#708378}.iot-automation-panel{padding:20px}.iot-automation-panel-header h3,.iot-automation-detail-title{margin:0;font-size:20px;color:#20372d}.iot-automation-panel-header span{display:block;margin-top:6px;color:#708378;font-size:14px}.iot-automation-filters{display:grid;grid-template-columns:minmax(260px,1.5fr) repeat(2,minmax(180px,220px)) auto;gap:12px;margin-top:20px;align-items:center}.iot-automation-search{display:flex;align-items:center;gap:10px;padding:0 14px;border-radius:12px;border:1px solid #d4e1d9;background:#f8fbf9}.iot-automation-search input,.iot-automation-select{min-height:44px}.iot-automation-search input{width:100%;border:0;background:transparent;outline:none;color:#284638}.iot-automation-search-icon{color:#6f8178}.iot-automation-select{border-radius:12px;border:1px solid #d4e1d9;background:#f8fbf9;padding:0 14px;color:#284638}.iot-automation-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.9fr);gap:20px;margin-top:20px}.iot-automation-table-shell{overflow:auto}.iot-automation-table{width:100%;border-collapse:collapse;min-width:920px}.iot-automation-table th,.iot-automation-table td{padding:14px 12px;border-bottom:1px solid #ecf2ee;text-align:left;vertical-align:top}.iot-automation-table th{color:#65786e;font-size:13px;font-weight:600}.iot-automation-primary{font-weight:600;color:#1f392e}.iot-automation-secondary{margin-top:4px;color:#7a8d82;font-size:13px}.iot-automation-result-cell{color:#53675d;max-width:260px}.iot-automation-badge{display:inline-flex;align-items:center;justify-content:center;min-width:62px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:600}.iot-automation-badge.is-enabled{background:#ebf7ea;color:#28743b}.iot-automation-badge.is-disabled{background:#f4f6f5;color:#6b7d73}.iot-automation-empty,.iot-automation-detail-empty{padding:28px 12px;text-align:center;color:#73867b}.iot-automation-detail-card{padding:20px}.iot-automation-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;margin-top:18px}.iot-automation-detail-grid div{display:flex;flex-direction:column;gap:6px}.iot-automation-detail-grid div.is-full{grid-column:1 / -1}.iot-automation-detail-grid span{font-size:12px;color:#6d8176}.iot-automation-detail-grid strong{color:#20372d;font-size:14px;line-height:1.5}.iot-automation-json-block{margin-top:18px}.iot-automation-json-title{margin-bottom:8px;color:#5f7469;font-size:13px;font-weight:600}.iot-automation-json-block pre{margin:0;padding:14px;overflow:auto;border-radius:14px;background:#f5f8f6;border:1px solid #e2ece6;color:#244033;font-size:12px;line-height:1.6}.iot-automation-modal{width:min(960px,calc(100vw - 32px))}.iot-automation-modal-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.iot-automation-json-field{grid-column:1 / -1}.iot-automation-json-textarea{min-height:150px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.iot-automation-form-error{grid-column:1 / -1;padding:12px 14px;border-radius:12px;border:1px solid #f0c2bd;background:#fff5f3;color:#8a4035}@media(max-width:1100px){.iot-automation-layout{grid-template-columns:1fr}}@media(max-width:900px){.iot-automation-filters,.iot-automation-modal-body,.iot-automation-detail-grid{grid-template-columns:1fr}}.component-management{padding:0 0 20px}.component-management-panel{overflow-y:auto}.component-management-panel .component-header{min-height:auto}.component-list-actions{display:inline-flex;align-items:center;gap:10px}.component-refresh-button{height:28px;padding:0 12px;border:1px solid #d9d9d9;border-radius:6px;background:#fff;font-size:12px;color:#1f1f1f;cursor:pointer}.component-refresh-button:hover{border-color:#bfbfbf}.component-example{margin-top:4px;background:#f8fafc;border-radius:8px;padding:10px 12px}.component-example-title{font-size:12px;font-weight:600;color:#111827;margin-bottom:6px}.component-example pre{margin:0 0 8px;font-size:12px;color:#1f2937;background:#0f172a;color:#e2e8f0;padding:8px 10px;border-radius:6px;overflow-x:auto}.component-example pre:last-child{margin-bottom:0}.component-params-table{margin-top:10px;border-top:1px solid #eef1f5}.component-params-head,.component-params-item{display:grid;grid-template-columns:1fr .6fr 2fr;gap:8px;padding:8px 0;font-size:12px;color:#4b5563}.component-params-head{font-weight:600;color:#111827}.component-params-item{border-top:1px solid #f1f5f9}.component-preview{display:flex;flex-direction:column;gap:10px}.component-preview-stage{background:#f8fafc;border-radius:10px;padding:12px}.component-preview-stage .component-header,.component-preview-stage .chart-title,.component-preview-stage .card-header,.component-preview-stage .statistics-card .card-header,.component-preview-stage .fault-alarm-header,.component-preview-stage .quality-rate-header{background-color:#fafafa;padding:11px 16px;min-height:48px;border-bottom:1px solid #e6e6e6;border-radius:0;margin:0;justify-content:space-between;align-items:center}.component-preview-stage .component-title,.component-preview-stage .card-title,.component-preview-stage .statistics-card .card-title{color:#333!important;font-size:16px;font-weight:600;line-height:1.2;margin:0}.component-preview-stage .card-header{box-shadow:none;background-color:#fafafa!important}.component-preview-stage .component-title,.component-preview-stage .card-title,.component-preview-stage .page-title{font-size:14px;font-weight:600;color:#1f1f1f;line-height:1.2;margin:0}.component-preview-note{font-size:12px;color:#94a3b8}.component-empty{font-size:12px;color:#9ca3af}.user-management-page{padding:0 0 24px;--layout-gap: 16px}.user-management-actions{display:flex;align-items:center;gap:8px}.main-content-grid.user-management-grid{margin:0 12px 24px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--layout-gap);align-items:start}.user-management-grid .layout-block{width:100%}.user-management-block{grid-column:span 12}.user-management-card{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:14px;box-shadow:0 12px 26px #0f172a0f;padding:16px 18px;display:flex;flex-direction:column;gap:14px}.user-management-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.user-management-card-title{font-size:15px;font-weight:600;color:#1f2937}.user-management-card-subtitle{font-size:12px;color:#6b7280;margin-top:4px}.user-management-card-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.user-management-clear{border:none;background:none;color:#6b7280;font-size:12px;cursor:pointer;padding:0}.user-management-clear:hover{color:#374151}.user-management-filter-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px 16px;align-items:end}.user-management-filter-field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#4b5563}.user-management-filter-field .enum-input,.user-management-filter-field .enum-select{width:100%;min-width:0;box-sizing:border-box}.user-management-filter-actions{display:flex;align-items:flex-end;justify-content:flex-end;padding-bottom:2px}.user-management-advanced{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 16px;align-items:end;padding-top:12px;border-top:1px dashed #e5e7eb}.user-management-date-range{display:flex;align-items:center;gap:6px}.user-management-date-range .enum-input{min-width:0}.user-management-date-separator{font-size:12px;color:#6b7280}.user-management-table{padding:0}.user-management-table-shell .enum-table{min-width:0;table-layout:auto}.user-management-table-shell{max-height:calc(100vh - 320px)}.user-management-table-shell .enum-table-body{overflow-y:auto}.user-management-table-shell .enum-table th,.user-management-table-shell .enum-table td{padding-left:0;padding-right:0}.user-management-table-shell .enum-table th:first-child,.user-management-table-shell .enum-table td:first-child{padding-left:10px;padding-right:0}.user-management-table-shell .enum-table th:last-child,.user-management-table-shell .enum-table td:last-child{padding-left:10px;padding-right:10px}.user-management-role-cell{max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-management-role-text{display:inline-block;max-width:100%;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-management-modal{max-width:calc(100vw - 32px)}.user-management-modal.horizontal{width:760px}.user-management-modal.is-readonly .enum-modal-field input,.user-management-modal.is-readonly .enum-modal-field .enum-select{background:#f3f4f6;color:#9ca3af;border-color:#e5e7eb}.user-management-modal.is-readonly .enum-modal-field .enum-select{pointer-events:none}.user-management-modal-body{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px}.user-management-modal-body .enum-modal-field{margin:0}.user-management-modal-body .enum-modal-field input,.user-management-modal-body .enum-modal-field .enum-select{height:32px}.user-management-modal-body .enum-modal-field:last-child{grid-column:span 3}.user-management-modal-body .user-management-check-field{grid-column:span 3}.user-management-check-options{display:flex;flex-wrap:wrap;gap:8px 12px}.user-management-check-item{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#374151}.user-management-check-item input{margin:0}.user-management-empty-text{font-size:12px;color:#9ca3af}@media(max-width:640px){.user-management-modal-body{grid-template-columns:1fr}.user-management-modal.horizontal{width:100%}}.user-management-lock{display:inline-flex;align-items:center;padding:2px 8px;border-radius:12px;font-size:12px;color:#1f2937;background:#eef2ff}.user-management-lock.is-lock{color:#8a3a3a;background:#fdecec}@media(max-width:1024px){.main-content-grid.user-management-grid{grid-template-columns:1fr}.user-management-block{grid-column:span 1}}.role-management-page .enum-setting-content{grid-template-columns:320px 1fr}.role-management-create{min-width:96px}.role-list-item{display:flex;flex-direction:column;gap:4px}.role-management-search-icon{font-size:14px;color:#9aa4b2}.role-list-desc{font-size:12px;color:#6b7280}.role-permission-panel{min-width:0}.role-permission-header .role-permission-subtitle{font-size:12px;color:#6b7280}.role-permission-scope-hint{font-size:12px;color:#475569}.role-management-tabs{display:inline-flex;align-items:center;gap:8px;padding:4px;background:transparent;border-radius:12px}.role-management-tabs-row{padding:4px 12px;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;background:#f3f4f6;gap:10px}.role-management-tab-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.role-management-tab{border:1px solid #d5dce6;background:#fff;padding:3px 12px;border-radius:10px;font-size:13px;color:#4b5563;cursor:pointer;display:inline-flex;align-items:center;gap:10px;box-shadow:0 1px 4px #0f172a14;transition:border-color .2s ease,color .2s ease,background .2s ease}.role-management-tab:before{content:"";width:8px;height:8px;border-radius:999px;background:#b7bcc6}.role-management-tab.is-active{border-color:#1d4ed8;color:#1d4ed8;background:#f0f6ff}.role-management-tab.is-active:before{background:#1d4ed8}.role-permission-body{padding:16px;display:flex;flex-direction:column;gap:16px;overflow-y:auto}.role-permission-header-actions{display:inline-flex;align-items:center;gap:12px}.role-permission-title-row{display:inline-flex;align-items:center;gap:10px}.role-permission-header-summary{font-size:12px;color:#6b7280}.role-management-toast{position:fixed;top:24px;right:24px;z-index:999;background:#16a34a;color:#fff;padding:10px 16px;border-radius:8px;box-shadow:0 10px 20px #0f172a26;font-size:12px}.role-edit-modal{width:520px;max-width:calc(100vw - 32px)}.role-edit-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}.role-edit-body .enum-modal-field.span-2{grid-column:span 2}.role-edit-body textarea{min-height:90px;resize:vertical}.role-permission-menu-tree{display:flex;flex-direction:column;gap:16px}.role-permission-menu-container{padding:14px;border-radius:16px;border:1px solid #e5e7eb;background:linear-gradient(180deg,#f8fafcf2,#fff);box-shadow:0 8px 22px #0f172a14;display:flex;flex-direction:column;gap:12px}.role-permission-menu-group{padding-bottom:12px;border-bottom:1px dashed #e5e7eb}.role-permission-menu-group:last-child{border-bottom:none;padding-bottom:0}.role-permission-menu-node{display:flex;flex-direction:column;gap:8px}.role-permission-simple-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;box-shadow:0 2px 8px #0f172a0d;transition:border-color .2s ease,box-shadow .2s ease}.role-permission-simple-row:hover{border-color:#bfdbfe;box-shadow:0 4px 14px #2563eb1f}.role-permission-simple-row.is-selected{border-color:#93c5fd;background:linear-gradient(180deg,#eff6ffcc,#fff)}.role-permission-simple-row.is-scope-partial{border-color:#fdba74;background:linear-gradient(180deg,#fff7edd9,#fff)}.role-permission-simple-row.is-scope-locked{border-color:#d1d5db;background:linear-gradient(180deg,#f8fafcf2,#fff)}.role-permission-simple-row.is-scope-locked .role-permission-menu-label{color:#6b7280}.role-permission-menu-main{display:inline-flex;align-items:center;gap:10px;min-width:0;flex:1}.role-permission-menu-label{font-size:13px;color:#1f2937;font-weight:600}.role-permission-simple-options{display:inline-flex;align-items:center;gap:10px}.role-permission-count-pill{font-size:11px;color:#475569;background:#eef2f7;border:1px solid #e2e8f0;padding:2px 8px;border-radius:999px;font-weight:600}.role-permission-simple-item{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#4b5563}.role-permission-simple-item input{margin:0}.role-permission-simple-item input:disabled{cursor:not-allowed}.role-permission-simple-item input:indeterminate{accent-color:#9ca3af}.role-permission-collapse-toggle{border:1px solid #e5e7eb;background:#f8fafc;color:#475569;font-size:14px;font-weight:600;line-height:1;width:24px;height:24px;padding:0;border-radius:8px;cursor:pointer;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;box-shadow:inset 0 1px #ffffffb3;transition:border-color .2s ease,color .2s ease,background .2s ease,box-shadow .2s ease}.role-permission-collapse-toggle:hover{border-color:#93c5fd;color:#1d4ed8;background:#eff6ff;box-shadow:0 2px 6px #3b82f626}.role-permission-collapse-placeholder{width:24px;flex-shrink:0}.role-permission-advanced-toggle{border:1px solid #e5e7eb;background:#fff;color:#4b5563;font-size:12px;padding:2px 8px;border-radius:999px;cursor:pointer}.role-permission-advanced-toggle:hover{border-color:#93c5fd;color:#1d4ed8}.role-permission-advanced{padding:12px 14px;border:1px dashed #dbe3ef;border-radius:12px;background:#f8fafc;display:flex;flex-direction:column;gap:10px}.role-permission-scope-note{margin-top:-2px;padding-left:2px;font-size:11px;color:#b45309}.role-permission-advanced-group{display:flex;flex-direction:column;gap:8px}.role-permission-advanced-title{font-size:12px;color:#6b7280;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.role-permission-advanced-list{display:flex;flex-wrap:wrap;gap:8px 10px}.role-permission-advanced-item{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#4b5563;background:#fff;border:1px solid #e5e7eb;padding:4px 8px;border-radius:10px}.role-permission-advanced-item-indent{padding-left:18px}.role-permission-advanced-item input{margin:0}.role-permission-advanced-item input:disabled{cursor:not-allowed}.role-permission-menu-children{margin-left:16px;padding-left:16px;border-left:2px solid #e2e8f0;display:flex;flex-direction:column;gap:8px}.role-permission-group{border:1px solid #e5e7eb;border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:12px;background:#fafafa}.role-permission-group-header{display:flex;align-items:center;justify-content:space-between}.role-permission-group-toggle{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:#1f2937}.role-permission-group-toggle input{margin:0}.role-permission-count{font-size:12px;color:#6b7280}.role-permission-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px 12px}.role-permission-item{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:#374151}.role-permission-item input{margin:0}.role-members-body{padding:16px;display:flex;flex-direction:column;gap:12px}.role-members-list{display:flex;flex-direction:column;gap:5px}.role-member-item{padding:10px 12px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:nowrap}.role-member-main{display:flex;align-items:center;gap:6px;min-width:0}.role-member-name{font-size:14px;color:#111827;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.role-member-account{font-size:12px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.role-member-separator{font-size:12px;color:#9ca3af}.role-member-meta{font-size:12px;color:#6b7280;white-space:nowrap}.role-member-remove{margin-left:auto;padding:4px 10px;font-size:12px}.role-members-summary{display:flex;justify-content:space-between;font-size:12px;color:#6b7280}.role-members-count{color:#111827;font-weight:600}.role-members-empty{padding:16px;border-radius:10px;background:#f9fafb;color:#9ca3af;font-size:12px;text-align:center;border:1px dashed #e5e7eb}.role-member-modal{width:520px;max-width:calc(100vw - 32px)}.role-member-search{background:#f8fafc;border-radius:8px;padding:8px}.role-member-search .enum-input{width:100%}.role-member-list{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow-y:auto;padding-right:4px}.role-member-option{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;border:1px solid #e5e7eb;background:#fff;cursor:pointer}.role-member-option input{margin:0}.role-member-option-info{display:flex;flex-direction:column;gap:4px;flex:1}@media(max-width:1024px){.role-management-page .enum-setting-content{grid-template-columns:1fr}.role-permission-body{padding:14px}}.business-module-management{padding:0 0 24px;--layout-gap: 16px}.business-module-management .enum-setting-content{margin:0 12px 24px}.business-module-search-icon{font-size:14px;color:#9aa4b2}.business-module-list-item{display:flex;align-items:center;width:100%;gap:8px}.business-module-list-main{display:flex;flex-direction:column;flex:1;min-width:0;gap:4px}.business-module-list-name{font-size:14px;font-weight:600;color:#1f2937}.business-module-list-desc{font-size:12px;color:#6b7280}.business-module-list-delete{border:none;background:transparent;color:#ef4444;font-size:12px;margin-left:auto;flex-shrink:0;cursor:pointer;padding:2px 4px}.business-module-list-delete:disabled{color:#cbd5f5;cursor:not-allowed}.business-module-detail-panel{min-width:0}.business-module-panel-header{background:#f3f4f6;border-bottom:1px solid #e5e7eb;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.business-module-panel-subtitle{font-size:12px;color:#6b7280;margin-top:4px}.business-module-panel-title-input{min-width:min(520px,100%);height:44px;font-size:30px;font-weight:700}.business-module-panel-subtitle-input{margin-top:8px;min-width:min(520px,100%);height:40px;font-size:18px;font-weight:600}.business-module-panel-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.business-module-status-toggle{display:flex;align-items:center;gap:8px;font-size:12px;color:#4b5563}.business-module-panel-body{padding:16px;display:flex;flex-direction:column;gap:16px}.business-module-save-notice{border-radius:8px;padding:8px 12px;font-size:12px;font-weight:500}.business-module-save-notice.is-success{background:#ecfdf3;color:#16a34a;border:1px solid #bbf7d0}.business-module-save-notice.is-error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.business-module-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.business-module-summary-card{background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;padding:10px 12px}.business-module-summary-label{font-size:12px;color:#6b7280}.business-module-summary-value{font-size:14px;font-weight:600;color:#1f2937;margin-top:4px}.business-module-summary-input{width:100%;min-width:0;box-sizing:border-box;margin-top:0}.business-module-code-input-row{display:flex;align-items:center;gap:8px}.business-module-code-input-row .enum-input{flex:1;min-width:0}.business-module-code-action{flex-shrink:0;white-space:nowrap}.business-module-menu{display:flex;flex-direction:column;gap:10px}.business-module-menu-title{font-size:13px;font-weight:600;color:#1f2937}.business-module-menu-list{display:flex;flex-direction:column;gap:6px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;padding:10px 12px}.business-module-menu-node{display:flex;flex-direction:column;gap:6px;padding:6px 0;border-bottom:1px dashed #eef2f7}.business-module-menu-node:last-child{border-bottom:none}.business-module-menu-row{display:flex;align-items:center;gap:8px;font-size:12px;color:#374151}.business-module-menu-toggle,.business-module-menu-toggle-spacer{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center}.business-module-menu-toggle{border:none;background:transparent;color:#6b7280;cursor:pointer;padding:0}.business-module-menu-toggle-icon{display:inline-block;transition:transform .2s ease}.business-module-menu-toggle.is-open .business-module-menu-toggle-icon{transform:rotate(90deg)}.business-module-menu-row input{margin:0}.business-module-menu-children{display:flex;flex-direction:column;gap:6px;margin-left:20px;padding-left:12px;border-left:2px solid #e5e7eb}.business-module-menu-empty{font-size:12px;color:#9aa4b2;padding:12px;border:1px dashed #e5e7eb;border-radius:8px;background:#f9fafb}.business-module-empty{font-size:12px;color:#6b7280;padding:16px;border:1px dashed #e5e7eb;border-radius:8px;background:#f9fafb}@media(max-width:1024px){.business-module-panel-header{flex-direction:column;align-items:flex-start}.business-module-panel-title-input,.business-module-panel-subtitle-input{min-width:100%}}.business-module-detail{padding:0 0 24px;--layout-gap: 16px}.main-content-grid.business-module-detail-grid{margin:0 12px 24px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--layout-gap);align-items:start}.business-module-block{grid-column:span 12}.business-module-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 8px 18px #0f172a14;overflow:hidden;display:flex;flex-direction:column}.business-module-card .enum-table-wrap{padding:0 16px 16px}.business-module-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:#f3f4f6;border-bottom:1px solid #e5e7eb}.business-module-card-title{font-size:15px;font-weight:600;color:#1f2937}.business-module-card-subtitle{font-size:12px;color:#6b7280;margin-top:4px}.business-module-detail-grid .layout-block{width:100%}.business-module-info{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#4b5563;padding:12px 16px 16px}.business-module-info-row{display:flex;align-items:center;gap:12px}.business-module-info-label{min-width:72px;color:#6b7280}.business-module-info-value{color:#111827}.business-module-service-table .enum-table{min-width:980px}.business-module-input{width:100%;min-width:0;box-sizing:border-box}.business-module-service-row{opacity:.7}@media(max-width:1024px){.main-content-grid.business-module-detail-grid{grid-template-columns:1fr}}.business-entity-management{padding:0 0 24px;--layout-gap: 16px}.business-entity-management .enum-setting-content{margin:0 12px 24px}.business-entity-search-icon{font-size:14px;color:#9aa4b2}.business-entity-header-actions{display:flex;align-items:center;gap:10px}.business-entity-list-item{display:flex;flex-direction:column;gap:4px}.business-entity-list-name{font-size:14px;font-weight:600;color:#1f2937}.business-entity-list-desc{font-size:12px;color:#6b7280}.business-entity-detail-panel{min-width:0}.business-entity-panel-header{background:#f3f4f6;border-bottom:1px solid #e5e7eb;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.business-entity-title-row{display:flex;align-items:center;gap:8px}.business-entity-title-input{font-size:18px;font-weight:600;color:#111827;min-width:240px}.business-entity-panel-header-actions{display:flex;gap:8px}.business-entity-panel-subtitle{font-size:12px;color:#6b7280;margin-top:4px}.business-entity-detail-tabs{display:flex;gap:14px;padding:12px 16px 0;border-bottom:1px solid #e5e7eb}.business-entity-detail-tab{border:0;background:transparent;color:#6b7280;font-size:13px;font-weight:600;width:100px;padding:0 0 10px;cursor:pointer;border-bottom:2px solid transparent;text-align:left}.business-entity-detail-tab.is-active{color:#2563eb;border-bottom-color:#2563eb}.business-entity-panel-body{padding:16px;display:flex;flex-direction:column;gap:16px}.business-entity-detail-pane{min-width:0}.business-entity-detail-pane.is-hidden{display:none}.business-entity-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.business-entity-summary-card{background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;padding:10px 12px}.business-entity-summary-label{font-size:12px;color:#6b7280}.business-entity-summary-value{font-size:14px;font-weight:600;color:#1f2937;margin-top:4px}.business-entity-section{display:flex;flex-direction:column;gap:10px}.business-entity-section-title{font-size:13px;font-weight:600;color:#1f2937}.business-entity-service-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.business-entity-service-hint{font-size:12px;color:#6b7280}.business-entity-service-list{display:flex;flex-direction:column;gap:10px}.business-entity-service-row{display:grid;grid-template-columns:180px 120px 1fr 120px 80px 140px;gap:8px;align-items:center}.business-entity-service-row.is-verify-failed>div,.business-entity-service-row.is-verify-failed .business-entity-toggle span{color:#9ca3af}.business-entity-service-row .enum-input,.business-entity-service-row .enum-select{width:100%;min-width:0;box-sizing:border-box}.business-entity-service-empty{font-size:12px;color:#9aa4b2;padding:12px;border:1px dashed #e5e7eb;border-radius:8px;background:#f9fafb}.business-entity-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#4b5563}.business-entity-host-section{border:1px solid #e5e7eb;border-radius:10px;padding:12px;background:#fff;display:flex;flex-direction:column;gap:10px}.business-entity-host-section-title{font-size:12px;color:#6b7280;font-weight:600}.business-entity-host-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.business-entity-host-message{font-size:12px;color:#10b981}.business-entity-host-message-error{color:#b91c1c}.business-entity-data-source-tab{display:flex;flex-direction:column;gap:16px}.business-entity-data-source-intro{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}.business-entity-data-source-intro h4{margin:0;font-size:15px;color:#111827}.business-entity-data-source-intro p{margin:6px 0 0;font-size:12px;color:#6b7280}.business-entity-data-source-readonly{font-size:12px;color:#92400e;background:#fffbeb;border:1px solid #fcd34d;border-radius:999px;padding:6px 10px}.business-entity-data-source-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.business-entity-data-source-toolbar{display:grid;grid-template-columns:180px 180px minmax(220px,1fr) auto auto auto;gap:12px}.business-entity-data-source-notice{border-radius:8px;padding:10px 12px;font-size:12px}.business-entity-data-source-notice.is-success{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.business-entity-data-source-notice.is-error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.business-entity-data-source-table-wrap{border:1px solid #e5e7eb;border-radius:12px;overflow:auto;background:#fff}.business-entity-data-source-table{width:100%;border-collapse:collapse;table-layout:auto}.business-entity-data-source-table th,.business-entity-data-source-table td{padding:8px 10px;border-bottom:1px solid #eef2f7;text-align:left;font-size:13px;color:#1f2937;line-height:1.4;vertical-align:middle}.business-entity-data-source-table th{background:#f8fafc;font-size:12px;font-weight:600;color:#475569;padding:12px 10px}.business-entity-data-source-empty{padding:24px;text-align:center;color:#94a3b8}.business-entity-data-source-actions{display:flex;gap:8px;flex-wrap:wrap}.business-entity-data-source-actions .enum-button{display:inline-flex;align-items:center;justify-content:center;height:30px;padding:0 12px;font-size:12px;white-space:nowrap;flex:0 0 auto}.business-entity-row-link{border:none;background:transparent;padding:0;color:#0c6ddf;font:inherit;font-weight:600;cursor:pointer;text-align:left}.business-entity-row-link:hover{color:#084c9e;text-decoration:underline}.business-entity-source-tag,.business-entity-status-tag{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;white-space:nowrap}.business-entity-source-tag.is-local{background:#f1f5f9;color:#475569}.business-entity-source-tag.is-shared{background:#dbeafe;color:#1d4ed8}.business-entity-status-tag.is-available{background:#ecfdf5;color:#047857}.business-entity-status-tag.is-pending_bind{background:#fffbeb;color:#b45309}.business-entity-status-tag.is-grant_expired,.business-entity-status-tag.is-abnormal{background:#fef2f2;color:#b91c1c}.business-entity-status-tag.is-share_inactive,.business-entity-status-tag.is-disabled,.business-entity-status-tag.is-grant_inactive,.business-entity-status-tag.is-grant_not_started{background:#f3f4f6;color:#4b5563}.business-entity-config-drawer-mask{position:fixed;left:0;right:0;bottom:0;z-index:1280;background:#0f172a42;display:flex;justify-content:flex-end}.business-entity-config-drawer{width:min(760px,calc(100vw - 40px));height:100%;background:#fff;border-left:1px solid #d8e1ea;box-shadow:-24px 0 48px #0f172a2e;display:flex;flex-direction:column;animation:business-entity-config-drawer-slide-in .24s ease}.business-entity-config-drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 24px 18px;border-bottom:1px solid #e6edf5;background:linear-gradient(180deg,#fcfdff,#f7faff)}.business-entity-config-drawer-header h3{margin:0;font-size:18px;color:#1d2a38}.business-entity-config-drawer-header p{margin:8px 0 0;font-size:13px;line-height:1.7;color:#5a6a79}.business-entity-config-drawer-close{border:none;background:transparent;color:#5a6a79;font-size:28px;line-height:1;cursor:pointer;padding:0;flex:0 0 auto}.business-entity-config-drawer-body{flex:1;overflow:auto;padding:20px 24px 24px;display:flex;flex-direction:column;gap:18px}.business-entity-config-drawer-section{border:1px solid #dbe7f6;border-radius:14px;background:linear-gradient(180deg,#fbfdff,#fff);padding:18px;display:flex;flex-direction:column;gap:14px}.business-entity-config-drawer-section.is-disabled{opacity:.72}.business-entity-config-drawer-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.business-entity-config-drawer-section-header h4{margin:0;font-size:15px;color:#1f2937}.business-entity-config-drawer-section-header p{margin:6px 0 0;font-size:12px;line-height:1.6;color:#64748b}.business-entity-config-drawer-disabled-tip{font-size:12px;color:#92400e;padding:10px 12px;border:1px solid #fcd34d;border-radius:10px;background:#fffbeb}.business-entity-config-drawer-footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}@keyframes business-entity-config-drawer-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.business-entity-data-source-checkbox{display:flex;gap:8px;align-items:center}.business-entity-data-source-source-tabs{display:flex;align-items:flex-end;gap:0;overflow-x:auto;border-bottom:1px solid #d8e1ea;background:linear-gradient(180deg,#fcfdff,#f7faff);border-radius:10px 10px 0 0}.business-entity-data-source-source-tab{position:relative;border:none;background:transparent;padding:16px 18px 14px;cursor:pointer;display:inline-flex;align-items:center;gap:10px;white-space:nowrap;color:#435567;transition:color .2s ease,background .2s ease}.business-entity-data-source-source-tab:after{content:"";position:absolute;left:18px;right:18px;bottom:-1px;height:3px;border-radius:999px 999px 0 0;background:transparent;transition:background .2s ease}.business-entity-data-source-source-tab-label{font-size:14px;font-weight:600}.business-entity-data-source-source-tab.active{color:#0c6ddf}.business-entity-data-source-source-tab.active:after{background:#0c6ddf}.business-entity-data-source-shared-info{border:1px solid #dbe7f6;border-radius:12px;background:linear-gradient(180deg,#f8fbff,#fdfefe);padding:14px;display:flex;flex-direction:column;gap:12px}.business-entity-data-source-shared-info-title{font-size:13px;font-weight:600;color:#1f2937}.business-entity-data-source-shared-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 16px}.business-entity-resource-item-hint{font-size:12px;color:#9a3412;padding:10px 12px;border:1px solid #fdba74;border-radius:8px;background:#fff7ed;margin-bottom:8px}.business-entity-data-source-textarea{min-height:88px;resize:vertical}.business-entity-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 16px}.business-entity-form .enum-select.is-readonly,.enum-modal-field .enum-select.is-readonly{background:#f3f4f6;color:#9ca3af;border-color:#e5e7eb;cursor:not-allowed}.business-entity-field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#4b5563}.business-entity-field-span-2{grid-column:span 2}.business-entity-field .enum-input,.business-entity-field .enum-select{width:100%;min-width:0;box-sizing:border-box}.business-entity-readonly{width:100%;min-height:36px;padding:6px 10px;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb;color:#374151;font-size:14px;display:flex;align-items:center;box-sizing:border-box}.business-entity-data-source-summary-box{align-items:flex-start;line-height:1.6;white-space:pre-wrap}.business-entity-module-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;padding:12px}.business-entity-module-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#374151;flex-wrap:wrap}.business-entity-module-item input{margin:0}.enum-modal-error{color:#f97316;font-size:12px;margin-bottom:8px}.business-entity-empty{font-size:12px;color:#6b7280;padding:16px;border:1px dashed #e5e7eb;border-radius:8px;background:#f9fafb}.business-entity-precheck-warning{font-size:12px;color:#9a3412;padding:12px;border:1px solid #fdba74;border-radius:8px;background:#fff7ed}@media(max-width:1024px){.business-entity-panel-header{flex-direction:column;align-items:flex-start}.business-entity-data-source-toolbar,.business-entity-service-row{grid-template-columns:1fr}.business-entity-config-drawer{width:100%}.business-entity-config-drawer-header,.business-entity-config-drawer-body{padding-left:18px;padding-right:18px}.business-entity-field-span-2{grid-column:span 1}}.main-road-setting{min-height:calc(100vh - var(--app-header-height));padding-bottom:20px}.main-road-setting-feedback{margin:0 10px 16px;padding:12px 14px;border-radius:12px;background:#fff7ed;border:1px solid rgba(251,146,60,.25);color:#9a3412;font-size:12px}.main-road-setting-summary{margin:0 10px 20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.main-road-setting-card{background:#fff;border-radius:12px;border:1px solid rgba(15,23,42,.08);box-shadow:0 1px 4px #0f172a0f;padding:16px;display:flex;flex-direction:column;gap:8px}.main-road-setting-card .summary-label{font-size:12px;color:#64748b}.main-road-setting-card .summary-value{font-size:26px;line-height:1.1;color:#0f172a}.main-road-setting-card .summary-desc{font-size:12px;color:#94a3b8}.main-road-setting-section{margin:0 10px 20px}.responsibility-area{background:#fff;border-radius:10px;box-shadow:0 2px 8px #00000014;overflow:hidden}.responsibility-area-header{border-radius:10px 10px 0 0}.responsibility-area-body{padding:16px}.responsibility-area-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr 1fr;gap:12px;padding:10px 12px;background:#f8fafc;border-radius:8px;font-size:12px;color:#1f2937;align-items:center}.responsibility-area-row.is-head{background:#eef2ff;font-weight:600;color:#1e3a8a}.area-name{font-weight:600}.status-chip{justify-self:start;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600}.status-chip.is-good{color:#15803d;background:#dcfce7}.status-chip.is-watch{color:#b45309;background:#fef3c7}.status-chip.is-alert{color:#b91c1c;background:#fee2e2}.status-chip.is-neutral{color:#475569;background:#e2e8f0}.responsibility-area-empty{padding:12px;text-align:center;font-size:12px;color:#94a3b8}@media(max-width:768px){.responsibility-area-row{grid-template-columns:1.2fr 1fr 1fr;row-gap:8px}}.responsibility-team-page{min-height:calc(100vh - var(--app-header-height));padding-bottom:20px}.responsibility-team-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.responsibility-team-search{display:flex;align-items:center;gap:6px;border:1px solid #dbe3f4;border-radius:6px;padding:4px 8px;background:#fff}.responsibility-team-search input{border:none;outline:none;font-size:12px;min-width:180px}.responsibility-team-feedback{margin:0 10px 16px;padding:10px 14px;border:1px solid #dbe3f1;border-radius:12px;background:#f8fbff;color:#44556f;font-size:13px}.responsibility-team-feedback-error{border-color:#f4c7c3;background:#fff6f5;color:#b42318}.responsibility-team-summary{margin:0 10px 20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.responsibility-team-panel{margin:0 10px 20px;background:#fff;border-radius:10px;padding:16px;box-shadow:0 2px 8px #0f172a14;display:flex;flex-direction:column;gap:16px}.responsibility-team-toolbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}.responsibility-team-toolbar select{border:1px solid #c7ddff;border-radius:6px;padding:6px 10px;font-size:12px;background:#fff}.responsibility-team-count{font-size:13px;color:#475569;font-weight:600}.responsibility-team-table{display:flex;flex-direction:column;gap:8px}.responsibility-team-table .table-row{display:grid;grid-template-columns:.9fr 1.1fr .9fr 1fr .7fr .7fr 1.4fr .8fr;gap:12px;padding:10px 12px;background:#f8fafc;border-radius:8px;font-size:12px;color:#1f2937;align-items:center}.responsibility-team-table .table-row.is-head{background:#eef2ff;font-weight:600;color:#1e3a8a}.description-cell{color:#475569}.responsibility-team-empty{padding:32px 16px;text-align:center;color:#64748b;font-size:13px}.responsibility-team-modal-backdrop{position:fixed;inset:0;background:#0f172a6b;display:flex;align-items:center;justify-content:center;padding:20px;z-index:2000}.responsibility-team-modal{width:min(760px,100%);background:#fff;border-radius:18px;padding:20px;box-shadow:0 28px 60px #0f172a40;display:flex;flex-direction:column;gap:16px}.responsibility-team-member-modal{width:min(1120px,100%)}.responsibility-team-modal-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.responsibility-team-modal-header h3{margin:0 0 6px;font-size:20px;color:#0f172a}.responsibility-team-modal-header span{font-size:13px;color:#64748b}.responsibility-team-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.responsibility-team-form-grid label{display:flex;flex-direction:column;gap:8px;font-size:13px;color:#475569}.responsibility-team-form-grid label.full{grid-column:1 / -1}.responsibility-team-form-grid input,.responsibility-team-form-grid select,.responsibility-team-form-grid textarea{border:1px solid #dbe3f4;border-radius:10px;padding:10px 12px;font-size:13px;color:#0f172a;background:#fff;outline:none}.responsibility-team-form-grid textarea{resize:vertical}.responsibility-team-member-layout{display:grid;grid-template-columns:minmax(320px,1.1fr) minmax(320px,.9fr);gap:18px}.responsibility-team-member-list,.responsibility-team-member-form{border:1px solid #e2e8f0;border-radius:14px;padding:16px;background:#f8fafc;display:flex;flex-direction:column;gap:14px}.responsibility-team-member-head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#475569;font-size:13px}.responsibility-team-member-item{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border:1px solid #e2e8f0;border-radius:12px;padding:12px;background:#fff}.responsibility-team-member-item strong{display:block;font-size:14px;color:#0f172a;margin-bottom:6px}.responsibility-team-member-item span{color:#64748b;font-size:12px}.responsibility-team-member-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.responsibility-team-checkbox-row{flex-direction:row!important;align-items:center}.responsibility-team-modal-actions{display:flex;justify-content:flex-end;gap:10px}@media(max-width:960px){.responsibility-team-table .table-row{grid-template-columns:repeat(2,minmax(0,1fr))}.responsibility-team-table .table-row.is-head{display:none}}@media(max-width:720px){.responsibility-team-form-grid,.responsibility-team-member-layout{grid-template-columns:1fr}}.new-responsibility-area{min-height:calc(100vh - var(--app-header-height));padding-bottom:20px}.responsibility-stepper{margin:0 10px 16px;background:#fff;border-radius:10px;padding:16px;box-shadow:0 2px 8px #0f172a14;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.step-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;background:#f8fafc;border:1px solid #e2e8f0;font-size:12px;color:#475569}.step-item.is-active{border-color:#1d6fd9;background:#eef2ff;color:#1d6fd9}.step-index{width:24px;height:24px;border-radius:999px;background:#1d6fd9;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:600}.responsibility-card{margin:0 10px 20px;background:#fff;border-radius:10px;padding:16px;box-shadow:0 2px 8px #0f172a14;display:flex;flex-direction:column;gap:16px}.responsibility-card h3{margin:0;font-size:15px;color:#1f2937}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px 16px}.form-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#475569}.form-grid input,.form-grid select{border:1px solid #c7ddff;border-radius:6px;padding:6px 10px;font-size:12px;background:#fff}.form-grid .full-row{grid-column:1 / -1}.form-actions{display:flex;justify-content:flex-end;gap:10px}.road-pickers{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:16px}.road-panel{border:1px solid #e2e8f0;border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:10px}.panel-header{display:flex;justify-content:space-between;font-size:12px;color:#1f2937;font-weight:600}.panel-count{color:#94a3b8;font-weight:500}.panel-search{display:flex;align-items:center;gap:6px;border:1px solid #dbe3f4;border-radius:6px;padding:4px 8px;background:#fff}.panel-search input{border:none;outline:none;font-size:12px;width:100%}.panel-list{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow-y:auto}.road-item{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:#334155;padding:8px 0}.road-item span{display:flex;flex-direction:column;gap:4px}.road-item strong{font-size:13px;color:#0f172a}.road-item em{font-style:normal;color:#64748b}.road-item small{color:#94a3b8;line-height:1.5}.road-panel-empty{padding:18px 10px;color:#94a3b8;font-size:12px;text-align:center}.summary-strip{padding:10px 12px;border-radius:8px;background:#f8fafc;border:1px solid #e2e8f0;font-size:12px;color:#475569}.confirm-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px 16px;font-size:12px;color:#475569}.confirm-grid strong{display:block;margin-top:4px;font-size:13px;color:#1f2937}.confirm-roads h4{margin:0 0 8px;font-size:13px;color:#1f2937}.confirm-list{display:flex;flex-direction:column;gap:6px}.confirm-item{display:flex;justify-content:space-between;padding:8px 10px;border-radius:6px;background:#f8fafc;font-size:12px;color:#475569}@media(max-width:960px){.form-grid,.road-pickers,.confirm-grid{grid-template-columns:1fr}}.sla-quality-page{min-height:calc(100vh - var(--app-header-height));padding-bottom:24px}.sla-header-actions{display:flex;align-items:center;gap:10px}.sla-dropdown{position:relative}.sla-caret{margin-left:6px;font-size:11px}.sla-dropdown-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:140px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 12px 24px #0f172a1f;padding:6px;z-index:10}.sla-dropdown-item{width:100%;border:none;background:transparent;text-align:left;padding:6px 8px;font-size:12px;color:#1f1f1f;cursor:pointer;border-radius:6px}.sla-dropdown-item:hover{background:#f3f4f6}.sla-info-banner{margin:0 10px 18px;background:#fff;border-radius:10px;padding:14px 16px;display:flex;gap:12px;align-items:flex-start;box-shadow:0 2px 8px #0f172a14}.sla-status-banner{margin:0 10px 18px;border-radius:10px;padding:12px 16px;font-size:13px;box-shadow:0 2px 8px #0f172a14}.sla-status-banner.is-info{background:#eff6ff;color:#1d4ed8}.sla-status-banner.is-success{background:#ecfdf3;color:#047857}.sla-status-banner.is-error{background:#fef2f2;color:#b91c1c}.sla-info-icon{width:34px;height:34px;border-radius:10px;background:#e0f2fe;color:#0284c7;display:flex;align-items:center;justify-content:center;font-weight:700}.sla-info-text h3{margin:0 0 4px;font-size:14px;color:#0f172a}.sla-info-text p{margin:0;font-size:12px;line-height:1.6;color:#64748b}.sla-overview{margin:0 10px 20px;display:grid;grid-template-columns:minmax(320px,1fr) minmax(360px,2fr);gap:16px}.sla-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0f172a14;padding:16px;display:flex;flex-direction:column;gap:12px}.sla-card-header h3{margin:0;font-size:14px;color:#1f2937}.sla-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.sla-trend-toggle{display:inline-flex;align-items:center;gap:6px;background:#f1f5f9;border-radius:999px;padding:4px}.sla-trend-toggle-btn{border:none;background:transparent;color:#475569;font-size:11px;padding:4px 10px;border-radius:999px;cursor:pointer;transition:all .2s ease}.sla-trend-toggle-btn.is-active{background:#fff;color:#1f2937;box-shadow:0 1px 4px #0f172a26}.sla-rate-body{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.sla-donut{--rate: 0;width:150px;height:150px;border-radius:50%;background:conic-gradient(#2563eb calc(var(--rate) * 1%),#e5e7eb 0);position:relative;display:flex;align-items:center;justify-content:center}.sla-donut:after{content:"";position:absolute;inset:16px;background:#fff;border-radius:50%;box-shadow:inset 0 0 0 1px #e5e7eb}.sla-donut-center{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:4px}.sla-donut-center strong{font-size:22px;color:#0f172a}.sla-donut-center span{font-size:12px;color:#64748b}.sla-rate-list{display:flex;flex-direction:column;gap:8px;min-width:180px}.sla-rate-item{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:8px;font-size:12px;color:#475569}.sla-rate-dot{width:8px;height:8px;border-radius:50%}.sla-trend-body{display:flex;flex-direction:column;gap:10px}.sla-trend-chart-wrap{display:grid;grid-template-columns:44px 1fr;align-items:stretch;gap:6px}.sla-trend-axis{position:relative;height:180px}.sla-trend-axis-label{position:absolute;right:0;transform:translateY(-50%);font-size:11px;color:#94a3b8}.sla-trend-chart{width:100%;height:180px;background:linear-gradient(180deg,rgba(37,99,235,.08),transparent);border-radius:10px}.sla-trend-grid line{stroke:#94a3b859;stroke-width:1}.sla-trend-footer{display:grid;padding:0 24px;margin-left:50px;font-size:11px;color:#94a3b8;text-align:center;overflow-x:auto;gap:6px}.sla-policy-panel{margin:0 10px 20px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0f172a14;padding:16px;display:flex;flex-direction:column;gap:14px}.sla-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.sla-panel-header h3{margin:0;font-size:14px;color:#1f2937}.sla-panel-subtitle{display:block;margin-top:4px;font-size:12px;color:#94a3b8}.sla-policy-table{border:1px solid #e5e7eb;border-radius:10px;overflow-x:auto}.sla-policy-table table{width:100%;min-width:980px;border-collapse:collapse;font-size:12px;color:#1f2937}.sla-policy-table thead{background:#f8fafc}.sla-policy-table th,.sla-policy-table td{padding:12px 10px;text-align:left;border-bottom:1px solid #e5e7eb;vertical-align:top}.sla-policy-table tbody tr:last-child td{border-bottom:none}.sla-empty-cell{text-align:center!important;color:#94a3b8;padding:24px 12px!important}.sla-modal-backdrop{position:fixed;inset:0;background:#0f172a6b;display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000}.sla-modal{width:min(720px,100%);max-height:calc(100vh - 48px);overflow-y:auto;background:#fff;border-radius:14px;box-shadow:0 18px 42px #0f172a38;padding:20px;display:flex;flex-direction:column;gap:16px}.sla-modal.sla-modal-wide{width:min(820px,100%)}.sla-modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.sla-modal-header h3{margin:0;font-size:18px;color:#0f172a}.sla-modal-close{border:none;background:#f1f5f9;color:#475569;border-radius:999px;padding:8px 12px;cursor:pointer}.sla-modal-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.sla-modal-field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#475569}.sla-modal-field.sla-modal-field-wide{grid-column:1 / -1}.sla-modal-field input,.sla-modal-field select,.sla-modal-field textarea{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;font-size:13px;color:#0f172a;background:#fff}.sla-modal-field textarea{resize:vertical;min-height:92px}.sla-modal-field input:disabled,.sla-modal-field select:disabled,.sla-modal-field textarea:disabled,.sla-modal-close:disabled{opacity:.65;cursor:not-allowed}.sla-modal-field input:focus,.sla-modal-field select:focus,.sla-modal-field textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.sla-modal-check{grid-column:1 / -1;display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#334155}.sla-modal-check input{margin:0}.sla-field-error{font-size:12px;color:#dc2626;line-height:1.4}.sla-modal-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:10px}.sla-col-check{width:40px}.sla-code{font-family:SFMono-Regular,Menlo,Consolas,monospace;color:#0f172a}.sla-type{display:flex;flex-direction:column;gap:4px}.sla-type strong{font-size:12px;color:#1f2937}.sla-type span{font-size:11px;color:#94a3b8}.sla-pill{padding:2px 10px;border-radius:999px;font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent}.sla-pill-urgent{background:#fee2e2;color:#b91c1c;border-color:#fecaca}.sla-pill-high{background:#ffedd5;color:#c2410c;border-color:#fed7aa}.sla-pill-medium{background:#e0f2fe;color:#0369a1;border-color:#bae6fd}.sla-pill-low{background:#ecfdf3;color:#047857;border-color:#bbf7d0}.sla-condition{color:#475569}.sla-switch{position:relative;display:inline-flex;align-items:center}.sla-switch input{position:absolute;opacity:0;width:0;height:0}.sla-switch-track{width:34px;height:18px;border-radius:999px;background:#e2e8f0;position:relative;transition:all .2s ease}.sla-switch-track:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .2s ease}.sla-switch input:checked+.sla-switch-track{background:#2563eb}.sla-switch input:checked+.sla-switch-track:after{transform:translate(16px)}.sla-update{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#64748b}.sla-actions{display:flex;gap:8px}.sla-actions button{border:none;background:transparent;font-size:12px;color:#2563eb;cursor:pointer;padding:0}.sla-actions button.danger{color:#dc2626}.sla-table-footer{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#64748b;flex-wrap:wrap;gap:10px}.sla-pagination{display:flex;gap:6px}.sla-pagination button{width:28px;height:28px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;font-size:12px;color:#475569;cursor:pointer}.sla-pagination button.is-active{background:#2563eb;color:#fff;border-color:#2563eb}.sla-rule-panel{margin:0 10px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0f172a14;padding:16px;display:flex;flex-direction:column;gap:14px}.sla-rule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.sla-rule-card{background:#f8fafc;border-radius:10px;padding:12px 14px;border:1px solid #e2e8f0}.sla-rule-card h4{margin:0 0 8px;font-size:13px;color:#1f2937}.sla-rule-card ul{margin:0;padding-left:18px;font-size:12px;color:#475569;line-height:1.6}.sla-rule-card-wide{background:#f1f5f9}@media(max-width:960px){.sla-overview{grid-template-columns:1fr}.sla-trend-footer{grid-template-columns:repeat(4,1fr);row-gap:6px}.sla-modal{padding:16px}.sla-modal-body{grid-template-columns:1fr}}.lighting-rate-page{min-height:calc(100vh - var(--app-header-height));padding-bottom:24px}.lighting-rate-search{display:flex;align-items:center;gap:6px;border:1px solid #dbe3f4;border-radius:6px;padding:4px 8px;background:#fff}.lighting-rate-search input{border:none;outline:none;font-size:12px;min-width:180px}.lighting-rate-search-icon{font-size:12px;color:#9aa4b2}.lighting-rate-actions{display:flex;gap:10px;margin:0 10px 18px;flex-wrap:wrap}.lighting-rate-feedback{margin:0 10px 18px;border-radius:10px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;box-shadow:0 2px 8px #0f172a14}.lighting-rate-feedback.is-info{background:#eff6ff;color:#1d4ed8}.lighting-rate-feedback.is-success{background:#ecfdf3;color:#047857}.lighting-rate-feedback.is-error{background:#fef2f2;color:#b91c1c}.lighting-rate-grid{margin:0 10px 20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.lighting-rate-card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 2px 8px #0f172a14;display:flex;flex-direction:column;gap:12px}.lighting-rate-empty{background:#fff;border-radius:12px;padding:28px 20px;box-shadow:0 2px 8px #0f172a14;text-align:center;color:#94a3b8}.lighting-rate-card-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.lighting-rate-card-header h3{margin:0;font-size:14px;color:#1f2937}.lighting-rate-tag{font-size:11px;color:#64748b;background:#f1f5f9;padding:2px 8px;border-radius:999px}.lighting-rate-fields{display:grid;gap:12px}.lighting-rate-fields label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#475569}.lighting-rate-input{display:flex;align-items:center;gap:6px;border:1px solid #c7ddff;border-radius:6px;padding:4px 8px;background:#fff}.lighting-rate-input input{border:none;outline:none;font-size:12px;width:100%}.lighting-rate-input span{color:#94a3b8;font-size:12px}.lighting-rate-fields select{border:1px solid #c7ddff;border-radius:6px;padding:6px 8px;font-size:12px;background:#fff}.lighting-rate-average{padding:10px 12px;border-radius:8px;background:#f8fafc;border:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#475569}.lighting-rate-average strong{font-size:14px;color:#0f172a}.lighting-rate-trend{margin:0 10px 20px;background:#fff;border-radius:12px;padding:16px;box-shadow:0 2px 8px #0f172a14;display:flex;flex-direction:column;gap:12px}.lighting-rate-editor{border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;padding:14px;display:flex;flex-direction:column;gap:12px}.lighting-rate-editor-header{display:flex;flex-direction:column;gap:4px}.lighting-rate-editor-header strong{font-size:14px;color:#0f172a}.lighting-rate-editor-header span{font-size:12px;color:#64748b}.lighting-rate-editor-table{overflow-x:auto}.lighting-rate-editor-table table{width:100%;min-width:760px;border-collapse:collapse}.lighting-rate-editor-table th,.lighting-rate-editor-table td{border-bottom:1px solid #e2e8f0;padding:10px 8px;text-align:left}.lighting-rate-editor-table th{font-size:12px;color:#475569}.lighting-rate-editor-table input{width:100%;border:1px solid #cbd5e1;border-radius:8px;padding:7px 8px;font-size:12px;background:#fff}.lighting-rate-series-name{min-width:120px;display:inline-flex;align-items:center;gap:8px;font-size:12px;color:#1f2937}.lighting-rate-series-name i{width:10px;height:10px;border-radius:999px;display:inline-block}.lighting-rate-editor-error{font-size:12px;color:#dc2626}.lighting-rate-trend-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.lighting-rate-trend-header h3{margin:0;font-size:14px;color:#1f2937}.lighting-rate-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:#475569}.lighting-rate-legend span{display:inline-flex;align-items:center;gap:6px}.lighting-rate-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.lighting-rate-chart{width:100%;background:#f8fafc;border-radius:10px;padding:12px 10px 8px;border:1px solid #e2e8f0}.lighting-rate-chart-inner{display:grid;grid-template-columns:44px 1fr;gap:6px;align-items:stretch}.lighting-rate-axis-y{display:flex;flex-direction:column;justify-content:space-between;font-size:11px;color:#94a3b8;padding:8px 0 6px;text-align:right}.lighting-rate-chart svg{width:100%;height:240px}.lighting-rate-gridlines line{stroke:#e5e7eb;stroke-width:1}.lighting-rate-axis{display:grid;grid-template-columns:repeat(7,1fr);font-size:11px;color:#94a3b8;text-align:center;margin-top:4px}@media(max-width:768px){.lighting-rate-chart svg{height:200px}.lighting-rate-axis{grid-template-columns:repeat(4,1fr);row-gap:4px}}.code-rule-management{gap:0}.code-rule-management .enum-setting-content{display:grid;grid-template-columns:320px minmax(0,1fr);gap:var(--component-gap);align-items:start}.code-rule-management .settings-sidebar-block{grid-column:1;padding:0}.code-rule-management .left-sidebar-panel{height:100%;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.code-rule-management .left-sidebar-header{padding:11px 16px;min-height:48px;background:#fafafa;border-bottom:1px solid #e6e6e6}.code-rule-management .left-sidebar-header h3{font-size:16px;font-weight:600;color:#333}.code-rule-management .left-sidebar-count{font-size:12px;color:#666}.code-rule-management .left-sidebar-search{padding:8px 10px;background:#f7f8fa;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb}.code-rule-management .left-sidebar-input{height:24px;border-radius:4px;border:1px solid #d9d9d9;padding:0 8px;font-size:12px}.code-rule-management .left-sidebar-content{padding-top:0}.code-rule-management .right-settings-block{grid-column:2}.code-rule-actions{display:flex;align-items:center;gap:12px}.code-rule-dropdown{position:relative}.code-rule-caret{margin-left:6px;font-size:11px}.code-rule-dropdown-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:120px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 10px 20px #0f172a14;padding:6px;z-index:10}.code-rule-dropdown-item{width:100%;border:none;background:transparent;text-align:left;padding:6px 8px;font-size:12px;color:#1f1f1f;cursor:pointer;border-radius:6px}.code-rule-dropdown-item:hover{background:#f3f4f6}.code-rule-search{display:flex;align-items:center;gap:8px}.code-rule-subtitle{font-size:12px;color:#666}.code-rule-title-code{margin-left:10px;font-size:13px;font-weight:500;color:#6b7280}.code-rule-title-edit{display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%}.code-rule-code-input{width:220px}.code-rule-actions-cell{display:inline-flex;align-items:center;gap:8px}.code-rule-config-actions{display:flex;align-items:center;gap:10px}.code-rule-check{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#4d4d4d}.code-rule-select{height:30px;border-radius:6px;border:1px solid #d9d9d9;padding:0 8px;font-size:12px;background:#fff}.code-rule-input{height:30px;border-radius:6px;border:1px solid #d9d9d9;padding:0 8px;font-size:12px;width:120px}.code-rule-input-inline{height:26px;line-height:26px;border-radius:4px;border:1px solid #d9d9d9;padding:0 6px;font-size:12px;width:100%}.code-rule-input-inline--label{width:calc(100% - 10px)}.code-rule-select-inline{background:#fff}.code-rule-inline-group{display:flex;flex-direction:column;gap:6px;min-width:220px}.code-rule-inline-hint{font-size:12px;line-height:1.4;color:#6b7280}.code-rule-modal .enum-modal-field select{height:30px;border:1px solid #d9d9d9;border-radius:6px;padding:0 10px;font-size:13px;color:#1f1f1f;background:#fff;box-sizing:border-box}.code-rule-readonly-value{min-height:30px;border:1px dashed #d9d9d9;border-radius:6px;padding:6px 10px;font-size:13px;line-height:1.4;color:#4b5563;background:#f8fafc;box-sizing:border-box}.code-rule-input-inline--number{text-align:center;width:calc(100% - 20px)}.code-rule-actions-cell{align-items:center}.code-rule-button-compact{height:26px;padding:0 10px;font-size:12px}.code-rule-item-body{display:flex;flex-direction:column;gap:4px}.code-rule-item-head{display:flex;align-items:center;gap:8px;min-width:0}.code-rule-item-desc{font-size:12px;color:#666}.code-rule-list-meta{display:inline-flex;align-items:center;gap:8px;margin-left:12px;flex-shrink:0}.code-rule-list-delete,.code-rule-list-copy{white-space:nowrap}.code-rule-source-badge{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:999px;font-size:11px;font-weight:500;white-space:nowrap}.code-rule-source-badge.is-platform{color:#0f5cd6;background:#eaf2ff}.code-rule-source-badge.is-override{color:#116149;background:#eafaf4}.code-rule-source-badge-title{margin-left:10px;vertical-align:middle}.code-rule-management .side-gutter-table{box-shadow:none;border:1px solid #eeeeee}.code-rule-table-wrap{padding:0}.code-rule-management .settings-sidebar-block .enum-setting-panel-left{height:100%}.code-rule-management .right-settings-block{min-height:0}.code-rule-management .enum-panel-block-table{display:flex;flex-direction:column;flex:1;min-height:0}.code-rule-management .code-rule-table-wrap{flex:1}.code-rule-test-button{height:26px;padding:0 10px;font-size:12px;background:#34d399;border-color:#22c55e;color:#fff}.code-rule-test-button:hover{background:#22c55e;border-color:#22c55e}.code-rule-test-button:disabled{background:#86efac;border-color:#86efac;color:#fff}.code-rule-preview-tags{display:flex;flex-wrap:wrap;gap:6px}.code-rule-preview-tags span{background:#f3f4f6;border-radius:999px;font-size:11px;padding:2px 8px;color:#6b7280}.code-rule-example-list{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-direction:column;gap:6px;font-size:12px;color:#4b5563}.code-rule-example-list li{font-family:SFMono-Regular,Menlo,Consolas,monospace;color:#111827}@media(max-width:1200px){.code-rule-actions{flex-wrap:wrap}}.light-path-type-content{display:flex;flex:1;min-width:0;margin:0 10px;padding-bottom:var(--section-gap)}.light-path-type-header-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px}.light-path-type-header-actions .enum-button{height:28px;padding:0 10px;border-radius:6px;font-size:12px;line-height:1}.light-path-type-header-actions .enum-button.ghost{border-color:#cbd5e1;color:#334155}.light-path-type-header-actions .enum-button.primary{background-color:#2563eb;border-color:#2563eb}.light-path-type-block-actions{display:inline-flex;align-items:center;gap:6px}.light-path-type-block-actions .enum-button{height:28px;padding:0 10px;border-radius:6px;font-size:12px;line-height:1}.light-path-type-block-actions .enum-button.primary{background-color:#2563eb;border-color:#2563eb}.light-path-type-panel{flex:1 1 auto;width:100%;min-width:0;overflow:auto}.light-path-type-empty{min-height:480px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:16px;padding:48px 56px}.light-path-type-empty h3{margin:0;font-size:30px;line-height:1.2;color:#0f172a}.light-path-type-empty p{margin:0;max-width:640px;font-size:16px;line-height:1.7;color:#475569}.light-path-type-empty-badge{padding:7px 12px;border-radius:999px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;font-weight:600;font-size:13px;letter-spacing:.02em}.light-path-type-notice{margin:20px 24px 0;padding:14px 18px;border-radius:14px;border:1px solid #fde68a;background:#fffbeb;color:#92400e;font-size:14px;line-height:1.6}.light-path-type-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 24px 0}.light-path-type-summary-card{padding:16px 18px;border-radius:14px;border:1px solid #e2e8f0;background:#fff;display:flex;flex-direction:column;gap:4px;box-shadow:0 8px 18px #0f172a0a}.light-path-type-summary-card span{color:#64748b;font-size:12px}.light-path-type-summary-card strong{color:#0f172a;font-size:26px;line-height:1.15;font-weight:700}.light-path-type-summary-card small{color:#64748b;font-size:12px;line-height:1.5}.light-path-type-management .right-settings-block{overflow:auto}.light-path-side-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:12px;font-weight:600}.light-path-side-badge.is-muted{background:#f1f5f9;color:#64748b}.light-path-inline-actions{margin-top:12px}.light-path-position-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.light-path-position-overview-item{border:1px solid #e2e8f0;border-radius:12px;padding:14px 16px;background:#fbfcfe}.light-path-position-overview-item span{display:block;color:#64748b;font-size:12px;margin-bottom:6px}.light-path-position-overview-item strong{color:#0f172a;font-size:14px;line-height:1.5}.light-path-binding-check{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:#334155}.light-path-binding-disabled{color:#94a3b8;font-size:12px}.light-path-type-tips{margin-top:20px}.light-path-type-panel .enum-panel-block-description,.light-path-type-panel .enum-panel-block-tips{background:#fbfcfe;border-color:#e2e8f0}.light-path-type-panel .enum-panel-block-table{margin-top:20px}.light-path-type-panel .enum-panel-block-title{letter-spacing:0}.light-path-type-split-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:20px;margin:20px 24px 0}.light-path-type-card-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.light-path-type-card{border:1px solid #e2e8f0;border-radius:14px;padding:14px 16px;background:#fff;box-shadow:0 8px 18px #0f172a0a}.light-path-type-card-head,.light-path-type-card-meta,.light-path-type-card-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.light-path-type-card-head strong{color:#0f172a;font-size:15px}.light-path-type-card-meta{margin-top:10px;flex-wrap:wrap;justify-content:flex-start;color:#64748b;font-size:12px}.light-path-type-card-actions{margin-top:12px;justify-content:flex-end}.light-path-type-pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:12px;font-weight:600}.light-path-type-pill.is-muted{background:#f1f5f9;color:#64748b}.light-path-type-panel-block-derived{margin-top:20px}.light-path-type-derived-note{color:#64748b;font-size:12px;line-height:1.6}.light-path-type-table-empty{padding:28px 12px;text-align:center;color:#64748b}@media(max-width:960px){.light-path-type-header-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.light-path-type-block-actions{width:100%;justify-content:flex-start}.light-path-type-summary,.light-path-position-overview,.light-path-type-split-grid{grid-template-columns:1fr}.light-path-type-empty{min-height:360px;padding:36px 24px}.light-path-type-empty h3{font-size:24px}}.tab-management-page{min-height:calc(100vh - var(--app-header-height));display:flex;flex-direction:column;gap:0}.tab-management-page .page-title-section{margin:0 10px var(--section-gap);max-width:none}.tab-management-page-actions{display:flex;align-items:center;gap:8px}.tab-management-page .left-sidebar-count{font-size:12px;color:#666}.tab-management-page .left-sidebar-search{padding:8px 10px;background:#f7f8fa;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb}.tab-management-page .left-sidebar-input{height:24px;border-radius:4px;border:1px solid #d9d9d9;padding:0 8px;font-size:12px}.tab-management-page .enum-group-list{display:flex;flex-direction:column;gap:var(--space-2);padding:0 10px 10px;margin:10px 0}.tab-management-item{list-style:none;border:1px solid transparent;border-radius:6px;background:transparent;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);text-align:left;cursor:pointer;transition:all .2s ease}.tab-management-item:hover{background-color:#f5f7fa;border-color:#e5e7eb}.tab-management-item.is-active{background-color:#f0f7ff;border-color:#cfe0ff;color:#165dff}.tab-management-item.is-disabled .tab-management-item-title{color:#6b7280}.tab-management-item-main{display:flex;flex-direction:column;gap:var(--space-1)}.tab-management-item-title{font-size:14px;font-weight:600;color:inherit}.tab-management-item-sub{font-size:12px;color:#666}.tab-management-item-status{font-size:12px;color:#9ca3af;white-space:nowrap}.tab-management-preview{padding:0;display:flex;flex-direction:column;gap:0;min-height:0;min-width:0}.tab-management-preview-title{display:flex;flex-direction:column;gap:8px}.tab-management-name-input{width:min(320px,60vw);min-width:240px}.tab-management-name-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f62e}.tab-management-preview-code{font-size:13px;color:#64748b}.tab-management-enabled-count{font-size:12px;color:#94a3b8}.tab-management-empty{border:1px dashed #e2e8f0;border-radius:8px;padding:var(--space-4);font-size:12px;color:#94a3b8;text-align:center}.tab-management-single-tab{margin-top:0}.tab-management-preview .attribute-tabs-body{padding:12px 16px 16px}.tab-management-page .enum-modal-field textarea,.tab-management-page .enum-modal-field select{border:1px solid #d9d9d9;border-radius:6px;padding:6px 10px;font-size:13px;color:#1f1f1f}.road-management{min-height:calc(100vh - var(--app-header-height));padding-bottom:20px}.road-management-actions{display:flex;gap:10px}.road-management-summary{margin:0 10px 20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.road-management-panel{margin:0 10px 20px;background:#fff;border-radius:10px;padding:16px;box-shadow:0 2px 8px #0f172a14;display:flex;flex-direction:column;gap:16px}.road-management-header h3{margin:0;font-size:15px;color:#1f2937}.road-management-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.road-management-filters select{border:1px solid #c7ddff;border-radius:6px;padding:6px 10px;font-size:12px;min-width:160px;background:#fff}.road-management-search{display:flex;align-items:center;gap:6px;border:1px solid #c7ddff;border-radius:6px;padding:4px 8px;background:#fff}.road-management-search input{border:none;outline:none;font-size:12px;min-width:180px}.road-search-icon{font-size:12px;color:#9aa4b2}.road-management-table{overflow-x:auto;border-radius:10px;border:1px solid #e5e7eb}.road-management-table-inner{width:100%;min-width:1200px;border-collapse:collapse;background:#fff;color:#1f2937;font-size:12px}.road-management-table-inner thead{background:#f3f4f6}.road-management-table-inner th,.road-management-table-inner td{padding:12px 10px;text-align:left;border-bottom:1px solid #e5e7eb;white-space:nowrap}.road-management-table-inner th{font-weight:600;color:#374151}.road-management-table-inner tbody tr:last-child td{border-bottom:none}.road-name-link{border:none;background:transparent;padding:0;color:#0c6ddf;font-size:13px;font-weight:600;cursor:pointer;text-align:left}.road-name-link:hover{color:#0a56af;text-decoration:underline}.table-actions{display:flex;align-items:center;gap:10px}.link-btn.danger{color:#dc2626}.link-btn.danger:disabled{color:#94a3b8;cursor:not-allowed}@media(max-width:768px){.road-management-filters select{min-width:140px}}.road-node-management-page{min-height:calc(100vh - var(--app-header-height));padding-bottom:var(--section-gap)}.road-node-management-page.is-map-mode{min-height:calc(100vh - var(--app-header-height));display:flex;flex-direction:column}.road-node-management-actions{display:flex;gap:10px}.road-node-import-input{display:none}.road-node-management-actions .action-btn.is-active{border-color:#0c6ddf;color:#0c6ddf;background:#eff6ff}.road-node-management-summary{margin:0 10px var(--section-gap);display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.road-node-management-panel,.road-node-map-panel{margin:0 10px var(--section-gap);background:#fff;border-radius:10px;padding:16px;box-shadow:0 2px 8px #0f172a14;display:flex;flex-direction:column;gap:16px}.road-node-management-page.is-map-mode .road-node-management-summary{display:none}.road-node-management-page.is-map-mode .road-node-map-panel{flex:1 1 auto;min-height:0;padding:0;background:transparent;box-shadow:none}.road-node-management-header h3{margin:0;font-size:15px;color:#1f2937}.road-node-management-header p{margin:6px 0 0;font-size:12px;color:#6b7280}.road-node-management-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.road-node-management-filter-actions{margin-left:auto;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.road-node-management-filters select{border:1px solid #c7ddff;border-radius:6px;height:30px;padding:0 10px;font-size:12px;min-width:160px;background:#fff}.road-node-management-search{display:flex;align-items:center;gap:6px;border:1px solid #c7ddff;border-radius:6px;padding:4px 8px;background:#fff}.road-node-management-search input{border:none;outline:none;font-size:12px;min-width:180px}.road-node-search-icon{font-size:12px;color:#9aa4b2}.road-node-management-table{overflow-x:auto;border-radius:10px;border:1px solid #e5e7eb}.road-node-management-table-inner{width:100%;min-width:1080px;border-collapse:collapse;background:#fff;color:#1f2937;font-size:12px}.road-node-management-table-inner thead{background:#f3f4f6}.road-node-management-table-inner th,.road-node-management-table-inner td{padding:12px 10px;text-align:left;border-bottom:1px solid #e5e7eb;white-space:nowrap}.road-node-management-table-inner th{font-weight:600;color:#374151}.road-node-management-table-inner tbody tr:last-child td{border-bottom:none}.road-node-map-layout{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(320px,.95fr);gap:16px;align-items:start}.road-node-management-page.is-map-mode .road-node-map-layout{flex:1 1 auto;min-height:0;align-items:stretch}.road-node-map-shell{position:relative;width:100%;height:100%;min-height:0;border-radius:12px;overflow:hidden;border:1px solid rgba(15,23,42,.08);box-shadow:0 1px 4px #0f172a0f;background:#0f172a;isolation:isolate}.road-node-map-stage{position:relative;width:100%;height:560px;min-height:560px;border:1px solid #dbe3f0;border-radius:12px;overflow:hidden;background:#f8fafc}.road-node-management-page.is-map-mode .road-node-map-stage,.road-node-management-page.is-map-mode .road-node-map-sidebar{min-height:calc(100vh - var(--app-header-height) - 220px)}.road-node-management-page.is-map-mode .road-node-map-stage{height:100%}.road-node-map-stage-cruise{height:100%;min-height:0;min-width:0;border:none;border-radius:0;box-shadow:none;background:transparent}.road-node-map-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1}.road-node-map-floating-toolbar{position:absolute;top:12px;right:calc(12px + var(--map-compass-offset, 72px));z-index:2400;max-width:calc(100% - 296px - (24px + var(--map-compass-offset, 72px)));pointer-events:auto}.road-node-map-toolbar-right{display:inline-flex;flex-direction:column;align-items:flex-end;gap:10px}.road-node-map-toolbar-actions{display:inline-flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.road-node-map-toolbar-actions-compact{justify-content:flex-end}.road-node-map-toolbar-actions .action-btn{background:#fffffff0;border-color:#94a3b866;box-shadow:0 8px 18px #0f172a1f}.road-node-map-toolbar-tags{display:inline-flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.road-node-map-tag{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:#fffffff0;border:1px solid rgba(203,213,225,.95);color:#0f172a;font-size:12px;line-height:1;padding:7px 12px;box-shadow:0 8px 18px #0f172a1a;white-space:nowrap}.road-node-map-tag i{width:10px;height:10px;border-radius:999px;flex:0 0 auto}.road-node-map-stage:fullscreen,.road-node-map-stage:-webkit-full-screen{width:100vw;height:100vh;min-height:100vh;max-width:100vw;max-height:100vh;border-radius:0;border:none;margin:0;padding:0}.road-node-map-stage:fullscreen .road-node-map-canvas,.road-node-map-stage:-webkit-full-screen .road-node-map-canvas{width:100%;height:100%}.road-node-map-empty{display:flex;align-items:center;justify-content:center;min-height:160px;border:1px dashed #cbd5e1;border-radius:10px;background:#f8fafc;color:#64748b;font-size:13px;text-align:center;padding:16px}.road-node-map-stage .road-node-map-empty{position:absolute;inset:0;min-height:0;border:none;border-radius:0;color:#cbd5e1;background:linear-gradient(135deg,#0f172a,#1e293b);z-index:2}.road-node-map-empty.small{min-height:120px}.road-node-map-sidebar{display:flex;flex-direction:column;gap:10px;min-height:560px;padding:12px;border:1px solid #e5e7eb;border-radius:12px;background:#fbfdff}.road-node-map-floating-sidebar{position:absolute;top:12px;left:12px;z-index:2400;width:272px;max-height:calc(100% - 24px);pointer-events:auto}.road-node-map-sidebar-container{display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - var(--app-header-height) - 156px)}.road-node-map-panel-header{min-height:46px;padding:0 10px;border-radius:8px;background:#e2e8f0}.road-node-map-sidebar-section{display:flex;flex-direction:column;gap:8px}.road-node-map-sidebar-header{display:flex;align-items:center;justify-content:flex-start;gap:12px;font-size:13px;font-weight:600;color:#0f172a}.road-node-map-sidebar-actions{display:flex;gap:8px;flex-wrap:wrap;padding:10px 8px 12px;margin:2px 0 4px;border-top:1px solid rgba(226,232,240,.92);border-bottom:1px solid rgba(226,232,240,.92);background:linear-gradient(180deg,#f8fafcf5,#f1f5f9eb);border-radius:10px;box-shadow:inset 0 1px #ffffffe0}.road-node-map-sidebar-actions .action-btn{min-height:34px;padding:0 12px}.road-node-map-sidebar-actions .action-btn-primary{box-shadow:0 8px 16px #3b82f629}.road-node-pending-list{display:flex;flex-direction:column;gap:8px;overflow:auto;padding:2px 2px 4px}.road-node-editor-list{max-height:calc(100vh - var(--app-header-height) - 260px)}.road-node-pending-card-selected{border-color:#c7ddff;background:linear-gradient(180deg,#fff,#f8fbff)}.road-node-selected-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.road-node-selected-title{display:flex;align-items:center;gap:8px;min-width:0}.road-node-selected-title strong{font-size:13px;color:#1f2937}.road-node-selected-status{font-size:11px;color:#64748b;white-space:nowrap}.road-node-selected-meta{display:flex;flex-wrap:wrap;gap:6px 12px;padding-top:2px;border-top:1px dashed #dbe3f0;font-size:11px;color:#64748b}.road-node-selected-actions{display:flex;gap:8px;justify-content:flex-end}.road-node-selected-roads{display:flex;flex-direction:column;gap:8px}.road-node-selected-roads strong{font-size:12px;color:#334155}.road-node-selected-roads p{margin:0;font-size:12px;color:#64748b}.road-node-pending-card{border:1px solid #dbe3f0;border-radius:8px;background:#fff;padding:10px;display:flex;flex-direction:column;gap:8px}.road-node-pending-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.road-node-pending-card-title{display:flex;align-items:center;gap:8px;min-width:0}.road-node-pending-card-head strong{font-size:12px;color:#1f2937}.road-node-pending-card-title span{font-size:11px;color:#64748b;white-space:nowrap}.road-node-pending-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.road-node-pending-grid .road-node-pending-field.span-2{grid-column:1 / -1}.road-node-pending-field{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#475569}.road-node-pending-field input,.road-node-pending-field select{width:100%;border:1px solid #c7ddff;border-radius:6px;padding:6px 8px;min-height:34px;font-size:12px;line-height:1.25;background:#fff;box-sizing:border-box}.road-node-pending-coords{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:2px;font-size:11px;color:#64748b;border-top:1px dashed #e2e8f0}.road-node-pending-coords strong{font-size:11px;font-weight:600;color:#334155}.road-node-type-badge{display:inline-flex;align-items:center;justify-content:center;min-width:68px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:600}.road-node-type-badge.type-intersection{background:#dbeafe;color:#1d4ed8}.road-node-type-badge.type-shape_point{background:#e5e7eb;color:#4b5563}.road-node-type-badge.type-dead_end{background:#fee2e2;color:#b91c1c}.road-node-type-badge.type-boundary{background:#dcfce7;color:#15803d}.road-node-remark-cell{max-width:240px;white-space:normal;line-height:1.5}.road-node-modal{width:min(760px,calc(100vw - 32px))}.road-node-modal-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.road-node-modal-body .enum-modal-field.span-2,.road-node-related-roads.span-2{grid-column:1 / -1}.road-node-modal-body textarea,.road-node-modal-body input,.road-node-modal-body select{width:100%}.road-node-location-input{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.road-node-location-helper{margin-top:6px;font-size:12px;color:#64748b}.road-node-location-error{margin-top:6px;font-size:12px;color:#b91c1c}.checkbox-field input[type=checkbox]{width:auto;justify-self:start}.road-node-related-roads{display:flex;flex-direction:column;gap:8px;padding-top:4px}.road-node-related-roads strong{font-size:13px;color:#1f2937}.road-node-related-roads p{margin:0;font-size:12px;color:#6b7280}.road-node-road-tags{display:flex;flex-wrap:wrap;gap:8px}.road-node-road-tag{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:12px}.road-node-modal-delete,.road-node-modal-action-spacer{margin-right:auto}.road-node-picker-modal{width:min(860px,calc(100vw - 32px))}.road-node-picker-body{display:grid;gap:12px}.road-node-picker-map-shell{min-height:420px;border:1px solid #dbe3f0;border-radius:12px;overflow:hidden;background:#f8fafc}.road-node-picker-map-canvas{width:100%;height:420px}.road-node-picker-status{font-size:12px;color:#475569;line-height:1.6}.road-node-picker-status.is-error{color:#b91c1c}@media(max-width:768px){.road-node-management-filters select,.road-node-management-search input{min-width:140px}.road-node-map-layout{grid-template-columns:1fr}.road-node-map-stage,.road-node-map-sidebar,.road-node-map-floating-sidebar{min-height:0}.road-node-map-stage,.road-node-map-canvas{height:420px}.road-node-map-floating-toolbar{position:static;max-width:100%;margin-bottom:12px}.road-node-map-toolbar-right,.road-node-map-toolbar-actions,.road-node-map-toolbar-tags{width:100%;justify-content:flex-start;align-items:flex-start}.road-node-map-floating-sidebar{position:static;width:100%;max-height:none;margin-bottom:12px}.road-node-map-stage-cruise{min-height:420px}.road-node-modal-body,.road-node-pending-grid{grid-template-columns:1fr}.road-node-pending-grid .road-node-pending-field.span-2{grid-column:auto}.road-node-location-input{grid-template-columns:1fr}.road-node-picker-map-shell,.road-node-picker-map-canvas{min-height:320px;height:320px}}.responsibility-area-management{min-height:calc(100vh - var(--app-header-height));padding-bottom:20px}.responsibility-area-feedback{margin:0 10px 16px;padding:10px 14px;border:1px solid #dbe3f1;border-radius:12px;background:#f8fbff;color:#44556f;font-size:13px}.responsibility-area-feedback-error{border-color:#f4c7c3;background:#fff6f5;color:#b42318}.responsibility-area-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.responsibility-area-search{display:flex;align-items:center;gap:6px;border:1px solid #dbe3f4;border-radius:6px;padding:4px 8px;background:#fff}.responsibility-area-search input{border:none;outline:none;font-size:12px;min-width:180px}.responsibility-area-search .search-icon{font-size:12px;color:#9aa4b2}.action-btn{border:1px solid transparent;border-radius:6px;padding:6px 14px;font-size:12px;cursor:pointer;font-weight:600}.action-btn-primary{background:#1d6fd9;color:#fff}.action-btn-secondary{background:#fff;color:#1d6fd9;border-color:#c7ddff}.action-btn-light{background:#fff;color:#475569;border-color:#e2e8f0}.responsibility-area-summary{margin:0 10px 20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.summary-meta{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#667085;gap:10px}.responsibility-area-panel{margin:0 10px 20px;background:#fff;border-radius:10px;padding:16px;box-shadow:0 2px 8px #0f172a14;display:flex;flex-direction:column;gap:16px}.responsibility-area-tabs{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap}.tab-buttons{display:flex;gap:8px}.tab-counters{display:flex;gap:10px;flex-wrap:wrap}.counter-card{min-width:120px;padding:6px 10px;border-radius:8px;background:#f8fafc;border:1px solid #e2e8f0;font-size:12px;color:#475569;display:flex;align-items:center;justify-content:space-between;gap:10px}.counter-card strong{font-size:14px;color:#1f2937}.responsibility-area-filters{display:flex;gap:10px;flex-wrap:wrap}.type-filter{border:1px solid #c7ddff;border-radius:6px;padding:6px 10px;font-size:12px;background:#fff;min-width:140px}.tab-btn{border:1px solid #e2e8f0;background:#f8fafc;color:#475569;padding:6px 14px;border-radius:999px;font-size:12px;cursor:pointer}.tab-btn.is-active{background:#1d6fd9;color:#fff;border-color:#1d6fd9}.responsibility-area-table{display:flex;flex-direction:column;gap:8px}.table-row{display:grid;grid-template-columns:1fr 1.4fr 1fr .8fr .8fr .9fr .9fr 1fr .8fr 1fr;gap:12px;padding:10px 12px;background:#f8fafc;border-radius:8px;font-size:12px;color:#1f2937;align-items:center}.table-row.is-head{background:#eef2ff;font-weight:600;color:#1e3a8a}.status-tag{display:inline-flex;align-items:center;justify-content:center;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600}.status-tag.is-enabled{background:#dcfce7;color:#15803d}.status-tag.is-disabled{background:#fef2f2;color:#dc2626}.table-actions{display:flex;gap:8px;flex-wrap:wrap}.link-btn{background:none;border:none;color:#1d6fd9;cursor:pointer;font-size:12px;padding:0}.responsibility-area-empty{border:1px dashed #dbe3f4;border-radius:10px;padding:24px;text-align:center;color:#94a3b8;font-size:13px;background:#f8fafc}.responsibility-area-map-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.responsibility-area-map-card{border:1px solid #e2e8f0;border-radius:12px;padding:14px;background:#f8fafc;display:flex;flex-direction:column;gap:12px}.responsibility-area-map-head{display:flex;justify-content:space-between;gap:12px}.responsibility-area-map-head strong{display:block;color:#111827;font-size:14px}.responsibility-area-map-head span{font-size:12px;color:#64748b}.responsibility-area-map-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.responsibility-area-map-metrics div{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:10px}.responsibility-area-map-metrics span{display:block;color:#64748b;font-size:12px}.responsibility-area-map-metrics strong{display:block;margin-top:4px;color:#111827;font-size:14px}.responsibility-area-map-footer{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:#475569}.responsibility-area-modal-backdrop{position:fixed;inset:0;background:#0f172a73;z-index:1200;display:flex;align-items:center;justify-content:center;padding:24px}.responsibility-area-modal{width:min(920px,100%);max-height:calc(100vh - 48px);overflow:auto;background:#fff;border-radius:14px;padding:16px;box-shadow:0 18px 50px #0f172a47;display:flex;flex-direction:column;gap:16px}.responsibility-area-modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.responsibility-area-modal-header h3{margin:0;font-size:16px;color:#111827}.responsibility-area-modal-header span{font-size:12px;color:#64748b}.responsibility-area-detail-grid,.responsibility-area-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px 16px}.responsibility-area-detail-grid div,.responsibility-area-edit-grid label{display:flex;flex-direction:column;gap:6px}.responsibility-area-detail-grid span,.responsibility-area-edit-grid span{font-size:12px;color:#64748b}.responsibility-area-detail-grid strong{color:#111827;font-size:13px}.responsibility-area-detail-grid .full,.responsibility-area-edit-grid .full{grid-column:1 / -1}.responsibility-area-edit-grid input,.responsibility-area-edit-grid select,.responsibility-area-edit-grid textarea{border:1px solid #c7ddff;border-radius:6px;padding:6px 10px;font-size:12px;background:#fff}.responsibility-area-modal-actions{display:flex;justify-content:flex-end;gap:10px}@media(max-width:1100px){.table-row{grid-template-columns:repeat(5,minmax(0,1fr));row-gap:8px}}@media(max-width:768px){.responsibility-area-actions{flex-wrap:wrap}.responsibility-area-search input{min-width:140px}.responsibility-area-detail-grid,.responsibility-area-edit-grid,.responsibility-area-map-metrics{grid-template-columns:1fr}.responsibility-area-map-footer,.responsibility-area-modal-header,.responsibility-area-modal-actions{flex-direction:column;align-items:flex-start}}.new-road-info{min-height:calc(100vh - var(--app-header-height));padding-bottom:20px}.new-road-info-create{padding-bottom:var(--section-gap)}.new-road-create-map-panel{margin:0 10px var(--section-gap);padding:0;min-height:0;background:transparent;box-shadow:none;display:flex;flex-direction:column}.new-road-create-map-shell{position:relative;width:100%;height:100%;min-height:0;flex:1 1 auto}.new-road-create-map-shell .new-road-create-sidebar.power-cruise-sidebar{bottom:12px;width:min(400px,calc(100% - 24px));max-width:min(400px,calc(100% - 24px));max-height:none}.new-road-create-sidebar-container{height:100%;padding:20px;gap:20px;overflow:hidden}.new-road-create-map-shell .new-road-create-sidebar-container.power-cruise-sidebar-container{padding:20px;gap:20px}.new-road-create-sidebar-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;color:#0f172a}.new-road-create-sidebar-header strong{display:block;font-size:16px}.new-road-create-sidebar-header p{margin:6px 0 0;font-size:12px;line-height:1.5;color:#64748b}.new-road-create-sidebar-header>span{flex:0 0 auto;padding:5px 10px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:12px;line-height:1.2}.new-road-create-sidebar-body{display:flex;flex-direction:column;gap:20px;flex:1 1 auto;min-height:0;overflow:auto;padding-right:0}.new-road-create-pick-panel{display:flex;flex-direction:column;gap:20px;margin-bottom:0;padding:20px;border:1px solid #dbe3f4;background:#f8fafc}.new-road-create-pick-header{display:flex;align-items:center;justify-content:space-between;gap:20px}.new-road-create-pick-header strong{font-size:14px;color:#0f172a}.new-road-create-pick-header span{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:12px}.new-road-create-pick-toolbar{align-items:flex-start}.new-road-create-node-list{display:grid;grid-template-columns:1fr;gap:8px;width:100%}.new-road-create-node-empty{padding:12px;border:1px dashed #cbd5e1;background:#f8fafc;font-size:12px;line-height:1.6;color:#64748b}.new-road-create-node-summary{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}.new-road-create-node-summary-toggle{flex:0 0 auto;width:28px;height:28px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#475569;font-size:14px;line-height:1;cursor:pointer}.new-road-create-node-item{position:relative;display:flex;flex-direction:column;gap:4px;box-sizing:border-box;padding:10px 12px;border:1px solid #dbe3f4;border-radius:14px;background:#fff;text-align:left;cursor:grab}.new-road-create-node-item.is-indented{width:calc(100% - 28px);margin-left:28px}.new-road-create-node-item.is-selected{border-color:#c7ddff;background:#eff6ff}.new-road-create-node-item.is-active{border-color:#2563eb;background:#dbeafe;box-shadow:0 0 0 2px #2563eb2e}.new-road-create-node-item.is-drag-over{border-color:#2563eb;box-shadow:inset 0 0 0 1px #2563eb}.new-road-create-node-item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.new-road-create-node-item strong{font-size:13px;color:#0f172a;line-height:1.5}.new-road-create-node-remove{flex:0 0 auto;width:22px;height:22px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#64748b;font-size:12px;line-height:1;cursor:pointer}.new-road-create-node-remove:hover{border-color:#94a3b8;color:#334155}.new-road-create-node-item span{font-size:12px;color:#475569;line-height:1.5}.new-road-create-sidebar-body .new-road-overview,.new-road-create-sidebar-body .road-overview-card,.new-road-create-sidebar-body .road-overview-form{margin:0}.new-road-create-sidebar-body .road-overview-card{gap:20px}.new-road-create-sidebar-body .info-grid{grid-template-columns:1fr;gap:8px}.new-road-create-sidebar-body .info-grid-field--span-2{grid-column:span 1}.new-road-create-sidebar-body .info-grid label{display:flex;flex-direction:row;align-items:center;gap:20px}.new-road-create-sidebar-body .info-grid label>span{flex:0 0 108px;line-height:32px;white-space:nowrap}.new-road-create-sidebar-body .info-grid label>input,.new-road-create-sidebar-body .info-grid label>select{flex:1 1 auto;min-width:0}.new-road-create-basic-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.new-road-create-map-stage{position:relative;width:100%;height:100%;min-height:0;flex:1 1 auto;border:none;border-radius:0;background:transparent}.new-road-create-map-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;border:none;border-radius:0}.new-road-create-map-canvas>div,.new-road-create-map-canvas>div>div{width:100%;height:100%}.new-road-create-map-placeholder{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;color:#cbd5e1;background:linear-gradient(135deg,#0f172aeb,#1e293beb)}.new-road-create-map-placeholder.is-error{color:#fecaca;background:linear-gradient(135deg,#3f1d1df5,#6b1f1ff5)}.new-road-create-toolbar{top:72px;left:auto;right:calc(12px + var(--map-compass-offset, 72px));width:max-content;max-width:calc(100% - 520px - (24px + var(--map-compass-offset, 72px)))}.new-road-create-selection-toolbar{top:12px;left:432px;right:auto;width:max-content;max-width:calc(100% - 456px)}.new-road-create-selection-toolbar-content{display:inline-flex;align-items:center;gap:10px;max-width:min(560px,calc(100vw - 40px));flex-wrap:wrap;padding:4px 12px;background:#fffffff5;border:1px solid rgba(226,232,240,.9);border-radius:12px;box-shadow:0 10px 24px #0f172a1f;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.new-road-create-selection-toolbar-title{font-size:12px;font-weight:600;color:#334155;white-space:nowrap}.new-road-create-selection-toolbar-content .map-pick-btn:disabled{opacity:.45;cursor:not-allowed}.new-road-create-selection-toolbar-content .map-pick-tool-btn:disabled{background:#ffffffeb;border-color:#dbe4f0}.new-road-create-toolbar-right{display:inline-flex;flex-direction:column;align-items:flex-end;gap:10px}.new-road-create-editor-panel{display:flex;flex-direction:column;gap:10px;width:min(440px,100%)}.new-road-create-editor-panel .section-endpoint-editor{background:#fffffff5;box-shadow:0 10px 24px #0f172a1f}.new-road-actions{display:flex;gap:12px}.road-detail-shell{background:#fff;border-bottom:1px solid #e5e7eb}.road-detail-header{padding:18px 20px 16px;background:#f3f4f6;display:flex;align-items:center;justify-content:space-between;gap:16px}.road-detail-header-main{min-width:0}.road-detail-title-row{display:flex;align-items:center;gap:8px}.road-detail-title{margin:0;font-size:20px;line-height:1.3;color:#111827}.road-detail-title-suffix{color:#374151}.road-detail-subtitle{margin:8px 0 0;font-size:12px;color:#6b7280;white-space:pre-wrap}.road-detail-header-actions{display:flex;align-items:center;justify-content:flex-end}.road-detail-tabs{display:flex;gap:14px;padding:12px 20px 0;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb}.road-detail-tab{border:0;background:transparent;color:#6b7280;font-size:13px;font-weight:600;min-width:100px;padding:0 0 10px;cursor:pointer;border-bottom:2px solid transparent;text-align:left}.road-detail-tab.is-active{color:#2563eb;border-bottom-color:#2563eb}.road-detail-body{padding:16px 10px 20px;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.8fr);gap:16px;align-items:start}.road-detail-main{min-width:0;background:#fff;border-radius:10px;box-shadow:0 2px 8px #0f172a14;overflow:hidden}.road-detail-tabs-in-panel{padding:12px 20px 0;border-top:none;background:#fff}.road-detail-panel-content{padding:16px}.road-detail-map-panel{min-width:0;position:sticky;top:16px}.new-road-overview{margin:0;display:block}.road-info-card{background:#fff;border-radius:10px;padding:16px;box-shadow:0 2px 8px #0f172a14;display:flex;flex-direction:column;gap:12px}.road-info-card h3{margin:0;font-size:15px;color:#1f2937}.road-overview-card{background:transparent;border-radius:0;padding:0;box-shadow:none;gap:18px}.road-overview-form{min-width:0}.road-map-side-card{gap:12px}.section-endpoint-editor{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid #dbe3f4;border-radius:10px;background:#f8fafc}.section-endpoint-editor-header{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:#475569}.section-endpoint-editor-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.road-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.road-section-actions{display:flex;align-items:center;gap:8px}.road-section-tools{display:flex;align-items:center;gap:8px;margin-left:auto}.road-light-path-layout{display:grid;grid-template-columns:minmax(280px,320px) minmax(0,1fr);gap:16px}.road-light-path-list-panel,.road-light-path-detail-panel{display:flex;flex-direction:column;gap:12px}.road-light-path-title-group{display:flex;flex-direction:column;gap:4px;color:#334155;font-size:12px}.road-light-path-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.road-light-path-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.road-light-path-card{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;width:100%;min-height:44px;padding:8px 12px;border:1px solid #dbe3f4;border-radius:10px;background:#fff;cursor:pointer;text-align:left;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.road-light-path-card.is-active{border-color:#2563eb;box-shadow:0 10px 24px #2563eb1f;transform:translateY(-1px)}.road-light-path-card-title{flex:0 0 auto;min-width:0;font-size:14px;font-weight:600;color:#0f172a;white-space:nowrap}.road-light-path-card-inline{display:flex;align-items:center;gap:12px;min-width:0;flex-wrap:wrap}.road-light-path-card-meta{font-size:12px;color:#64748b;white-space:nowrap}.road-light-path-section-table{display:flex;flex-direction:column;border:1px solid #dbe3f4;border-radius:12px;overflow:hidden;background:#fff}.road-light-path-section-head,.road-light-path-section-row{display:grid;grid-template-columns:72px minmax(150px,1.1fr) minmax(120px,1fr) minmax(120px,1fr) 96px 108px 108px;gap:12px;padding:10px 12px;align-items:center;font-size:12px}.road-light-path-section-head{background:#eff6ff;color:#475569;font-weight:600;border-bottom:1px solid #dbe3f4}.road-light-path-section-row{color:#1f2937;border-bottom:1px solid #e5e7eb}.road-light-path-section-row:last-child{border-bottom:none}.road-light-path-empty{padding:12px;border:1px dashed #cbd5e1;border-radius:10px;background:#fff;font-size:12px;color:#64748b}.road-light-path-editor{display:flex;flex-direction:column;gap:10px}.road-light-path-editor-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:#475569}.road-light-path-editor-list{display:flex;flex-direction:column;gap:8px}.road-light-path-editor-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #dbe3f4;border-radius:10px;background:#fff}.road-light-path-editor-row.is-checked{border-color:#93c5fd;background:#f8fbff}.road-light-path-editor-main{display:grid;grid-template-columns:18px minmax(150px,1fr) minmax(120px,1fr) minmax(120px,1fr) 90px;gap:12px;align-items:center;flex:1;font-size:12px;color:#1f2937}.road-light-path-editor-main input{margin:0}.road-light-path-editor-code{color:#0f172a}.road-light-path-editor-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.road-light-path-editor-order{font-size:12px;color:#64748b}.road-light-path-dialog{max-width:720px}.road-light-path-dialog-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.road-light-path-dialog-field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#475569}.road-light-path-dialog-field--span-2{grid-column:1 / -1}.road-light-path-dialog-field select{width:100%;min-width:0;height:34px;padding:6px 10px;border:1px solid #dbe3f4;border-radius:8px;background:#fff;font-size:12px;color:#0f172a}.road-light-path-dialog-preview{grid-column:1 / -1;display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-height:34px;padding:0 12px;border:1px solid #dbe3f4;border-radius:12px;background:#f8fafc}.road-light-path-position-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.road-light-path-side-grid{display:flex;align-items:stretch;gap:10px}.road-light-path-position-card{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid #dbe3f4;border-radius:12px;background:#fff;cursor:pointer}.road-light-path-position-card input{margin:0}.road-light-path-position-card strong{font-size:13px;color:#0f172a}.road-light-path-position-card span{font-size:12px;color:#64748b}.road-light-path-position-card.is-checked{border-color:#93c5fd;background:#eff6ff}.road-light-path-side-card{display:inline-flex;align-items:center;gap:8px;flex:1 1 0;height:34px;padding:0 12px;border:1px solid #dbe3f4;border-radius:12px;background:#fff;cursor:pointer;box-sizing:border-box}.road-light-path-side-card input{margin:0;flex:0 0 auto}.road-light-path-side-card strong{font-size:13px;color:#0f172a;line-height:1.2;white-space:nowrap}.road-light-path-side-card.is-checked{border-color:#93c5fd;background:#eff6ff}.road-light-path-dialog-sections{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow:auto}.road-light-path-dialog-section-actions{display:flex;justify-content:flex-end;margin-top:4px}.road-column-picker{position:relative}.road-column-picker-panel{position:absolute;top:calc(100% + 8px);right:0;min-width:180px;padding:10px 12px;border:1px solid #dbe3f4;border-radius:10px;background:#fff;box-shadow:0 12px 32px #0f172a1f;display:flex;flex-direction:column;gap:8px;z-index:20}.road-column-picker-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#334155}.road-column-picker-item input{margin:0}.section-endpoint-display{display:inline-flex;align-items:center;gap:6px}.section-endpoint-trigger{width:20px;height:20px;padding:0;border:none;background:transparent;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.section-endpoint-trigger:hover{opacity:.8}.section-endpoint-trigger-icon{width:16px;height:16px;display:block}.archive-upload-btn{border:1px solid #2563eb;color:#2563eb;background:#eff6ff;border-radius:6px;font-size:12px;padding:6px 10px;cursor:pointer}.archive-upload-btn:disabled{opacity:.55;cursor:not-allowed}.archive-upload-input{display:none}.road-section-code-btn{border:none;background:transparent;padding:0;color:#2563eb;cursor:pointer;font:inherit;text-align:left}.road-section-code-btn:hover .mono,.road-section-code-btn.is-active .mono{text-decoration:underline}.info-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#475569}.new-road-info .info-grid div{flex-direction:row}.info-grid-field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#475569}.info-grid-field--span-2{grid-column:span 2}.info-grid-field--inline{flex-direction:row;align-items:center;gap:12px}.info-grid-field--inline>span{flex:0 0 72px;line-height:32px;white-space:nowrap}.info-grid-field--light-path{flex-direction:row;align-items:center;gap:12px}.info-grid-field--light-path>span{flex:0 0 72px;line-height:32px;white-space:nowrap}.info-grid input,.info-grid select{border:1px solid #dbe3f4;border-radius:6px;padding:6px 10px;height:32px;box-sizing:border-box;font-size:12px;line-height:18px;background:#fff}.road-node-map-editor{border-color:#fbcfe8;background:#fff7ed}.archive-action-btn-danger{color:#b91c1c;border-color:#fecaca}.multi-check-group{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:stretch;flex:1 1 auto;min-width:0;gap:0;border:1px solid #dbe3f4;border-radius:8px;overflow:hidden;background:#fff}.multi-check-group .multi-check-item{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:6px;min-height:34px;flex:1 1 0;width:auto;padding:0 14px;border-right:1px solid #dbe3f4;background:#f8fafc;color:#475569;cursor:pointer;box-sizing:border-box;transition:background-color .2s ease,color .2s ease}.multi-check-group .multi-check-item:last-child{border-right:none}.multi-check-group .multi-check-item input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;margin:0}.multi-check-group .multi-check-item.is-checked{background:#2563eb;color:#1d4ed8}.multi-check-group .multi-check-item.is-checked span{color:#fff}.multi-check-empty{min-height:34px;display:flex;align-items:center;padding:0 12px;color:#94a3b8}.road-map-card{min-height:420px}.map-pick-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.map-pick-btn{border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:6px;font-size:12px;padding:6px 10px;cursor:pointer}.map-pick-btn.is-active{border-color:#2563eb;color:#1d4ed8;background:#eff6ff}.map-pick-tool-btn{display:inline-flex;align-items:center;justify-content:center;min-height:36px;min-width:36px;padding:7px;border-radius:10px;box-shadow:0 4px 14px #0f172a14;position:relative}.map-pick-tool-btn-icon{width:18px;height:18px;display:block;flex:0 0 18px}.map-pick-tool-btn.is-active .map-pick-tool-btn-icon{filter:brightness(0) saturate(100%) invert(26%) sepia(93%) saturate(1886%) hue-rotate(214deg) brightness(96%) contrast(97%)}.map-pick-tool-btn:after{content:attr(data-tooltip);position:absolute;top:calc(100% + 8px);right:0;padding:6px 8px;border-radius:8px;background:#0f172aeb;color:#f8fafc;font-size:12px;line-height:1.4;white-space:normal;width:max-content;max-width:240px;box-shadow:0 10px 24px #0f172a2e;pointer-events:none;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .16s ease,transform .16s ease,visibility 0s linear .2s;transition-delay:.2s}.map-pick-tool-btn:hover:after,.map-pick-tool-btn:focus-visible:after,.map-pick-tool-btn.is-active:after{opacity:1;visibility:visible;transform:translateY(0)}.map-pick-preview{font-size:12px;color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:4px 8px}.road-map-placeholder{height:300px;border-radius:12px;background:linear-gradient(135deg,#eef2ff,#e2e8f0);border:1px dashed #c7ddff;display:flex;align-items:center;justify-content:center;color:#64748b;font-size:12px}.road-map-placeholder-error{border-style:solid;border-color:#fecaca;background:#fff1f2;color:#b91c1c}.road-map-canvas{height:300px;border-radius:12px;border:1px solid #dbe3f4;overflow:hidden}.road-map-tags{display:flex;flex-wrap:wrap;gap:8px}.tag{padding:4px 10px;border-radius:999px;background:#e0f2fe;color:#0284c7;font-size:12px}.road-tab-panel{margin:0 10px 20px}.road-tab-content{display:flex;flex-direction:column;gap:12px}.road-tab-content h3{margin:0;font-size:15px;color:#1f2937}.new-road-info-detail .new-road-overview,.new-road-info-detail .road-tab-panel{margin:0}.road-table{display:flex;flex-direction:column;gap:8px}.road-table--section{min-width:0;overflow-x:auto;overflow-y:visible;padding-bottom:4px;border:1px solid #dbe3f4;border-radius:0;background:#fff}.road-table-input{width:100%;min-width:0;height:30px;box-sizing:border-box;border:1px solid #dbe3f4;border-radius:6px;padding:4px 8px;font-size:12px;background:#fff}.road-table-inline-field{display:flex;flex-direction:column;gap:6px}.road-table-head,.road-table-row{display:grid;grid-template-columns:.5fr 1.3fr 1fr 1fr .9fr 1fr .7fr .7fr .9fr .9fr;gap:12px;padding:10px 12px;border-radius:0;font-size:12px;align-items:center;box-sizing:border-box}.road-table-head{background:#f8fafc;font-weight:600;color:#475569;border-bottom:1px solid #dbe3f4}.road-table-row{background:#fff;color:#1f2937;border-bottom:1px solid #dbe3f4}.road-table--section .road-table-row:last-child{border-bottom:none}.road-table--section .road-table-head,.road-table--section .road-table-row{padding:8px 10px;font-size:13px;line-height:1.4}.road-table--section .road-table-head{padding:12px 10px}.section-grid{grid-template-columns:.5fr 1.2fr 1fr 1fr .95fr .85fr 1fr .7fr .7fr .8fr 1fr .9fr .8fr}.alert-grid{grid-template-columns:1.6fr 1fr 1.1fr .8fr .9fr}.pole-info-grid{grid-template-columns:.5fr 1.1fr .8fr .9fr 1fr .7fr 1.2fr .9fr .9fr .8fr}.maintenance-grid{grid-template-columns:1.6fr .9fr 1.1fr .9fr 1.4fr}.road-map-dialog-overlay{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:24px;z-index:1200}.road-map-dialog{width:min(1100px,100%);max-height:min(90vh,860px);overflow:auto;background:#fff;border-radius:16px;padding:18px;box-shadow:0 20px 50px #0f172a38;display:flex;flex-direction:column;gap:14px}.road-map-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.road-map-dialog-header h3{margin:0;font-size:16px;color:#0f172a}.road-map-dialog-header p{margin:4px 0 0;font-size:12px;color:#64748b}.road-map-dialog-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.road-map-dialog-canvas{height:420px;border-radius:12px;border:1px solid #dbe3f4;overflow:hidden}.road-map-dialog-points{display:flex;flex-wrap:wrap;gap:8px}@media(max-width:1100px){.road-detail-body{grid-template-columns:1fr}.road-detail-map-panel{position:static}.new-road-create-map-panel{height:auto!important;max-height:none!important}.new-road-create-map-shell .new-road-create-sidebar.power-cruise-sidebar{width:min(380px,calc(100% - 24px));max-width:min(380px,calc(100% - 24px))}.new-road-create-toolbar{max-width:calc(100% - 400px)}.new-road-create-selection-toolbar{left:412px;max-width:calc(100% - 436px)}}@media(max-width:900px){.road-detail-header{flex-direction:column;align-items:flex-start}.road-detail-header-actions{width:100%;justify-content:flex-start}.road-detail-tabs{overflow-x:auto}.road-card-header{flex-wrap:wrap}.road-section-tools{width:100%;justify-content:flex-end}.road-light-path-layout,.road-light-path-list,.road-light-path-dialog-body{grid-template-columns:1fr}.road-light-path-dialog-field--span-2{grid-column:span 1}.road-light-path-position-grid{grid-template-columns:1fr}.road-light-path-side-grid{flex-direction:column}.info-grid{grid-template-columns:1fr}.info-grid-field--span-2{grid-column:span 1}.info-grid-field--inline{flex-direction:column;align-items:flex-start;gap:6px}.info-grid-field--inline>span{line-height:normal}.info-grid-field.info-grid-field--light-path{flex-direction:row;align-items:center;gap:12px}.info-grid-field.info-grid-field--light-path>span{flex:0 0 72px;line-height:32px}.new-road-create-map-panel{min-height:720px}.new-road-create-map-shell .new-road-create-sidebar.power-cruise-sidebar{position:absolute;top:12px;left:12px;right:12px;width:auto;max-height:min(56%,calc(100% - 132px))}.new-road-create-toolbar{inset:auto 12px 12px;width:auto;max-width:none}.new-road-create-selection-toolbar{left:12px;right:auto;max-width:calc(100% - 24px)}.new-road-create-toolbar-right{align-items:stretch;justify-content:flex-start}.new-road-create-editor-panel{width:100%}}.room-management{display:flex;flex-direction:column;gap:var(--section-gap);padding-bottom:var(--section-gap)}.room-management-actions{display:flex;gap:12px}.room-management-summary{margin:0 var(--page-edge-gap) var(--section-gap);display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--component-gap)}.room-management-summary .summary-card{background:#fff;border-radius:12px;padding:14px 16px;border:1px solid rgba(15,23,42,.08);box-shadow:0 4px 12px #0f172a14;display:flex;flex-direction:column;gap:12px}.room-management-summary .summary-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.room-management-summary .summary-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.room-management-summary .summary-label{font-size:12px;color:#64748b}.room-management-summary .summary-value{font-size:22px;font-weight:700;color:#0f172a}.room-management-summary .summary-change{font-size:12px;color:#94a3b8;white-space:nowrap}.room-management-panel{margin:0 var(--page-edge-gap);background:#fff;border-radius:12px;padding:16px;border:1px solid rgba(15,23,42,.08);box-shadow:0 1px 4px #0f172a0f;display:flex;flex-direction:column;gap:16px;min-height:0}.room-management-header h3{margin:0;font-size:16px;color:#0f172a}.room-management-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.room-management-header-meta{font-size:12px;color:#64748b}.room-management-feedback{border-radius:10px;padding:10px 12px;background:#fff7ed;color:#9a3412;font-size:12px;border:1px solid rgba(251,146,60,.25)}.room-management-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.room-management-filters select{border:1px solid #e2e8f0;border-radius:8px;padding:6px 10px;font-size:12px;color:#334155;background:#fff}.room-management-search{display:inline-flex;align-items:center;gap:6px;background:#f1f5f9;border-radius:999px;padding:6px 12px}.room-management-search input{border:none;background:transparent;font-size:12px;outline:none;width:180px}.room-search-icon{font-size:12px}.room-management-table{flex:1;min-height:0;overflow:auto}.room-management-table-inner{width:100%;border-collapse:collapse;min-width:980px}.room-management-table-inner thead{background:#f8fafc}.room-management-table-inner th,.room-management-table-inner td{padding:10px 12px;font-size:12px;color:#334155;text-align:left;border-bottom:1px solid rgba(15,23,42,.06)}.room-management-table-inner tbody td{line-height:20px;vertical-align:middle}.room-management-table-inner th{font-weight:600;color:#475569}.room-status{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:999px;font-size:11px;background:#e2e8f0;color:#475569}.room-status.status-在线{background:#dcfce7;color:#16a34a}.room-status.status-离线预警{background:#fee2e2;color:#ef4444}.room-status.status-维护中{background:#ffedd5;color:#f97316}.room-table-actions{display:table-cell;vertical-align:middle}.room-table-actions .room-detail-link{display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:#2563eb;cursor:pointer;font-size:12px;line-height:20px;padding:0}@media(max-width:1200px){.room-management-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.room-management-summary{grid-template-columns:1fr}.room-management-search input{width:140px}}.room-detail{min-height:calc(100vh - var(--app-header-height));padding-bottom:24px;display:flex;flex-direction:column;gap:var(--section-gap)}.room-detail-actions{display:flex;gap:12px}.room-detail-tabs{margin:0 var(--page-edge-gap) var(--section-gap);background:#fff;border-radius:12px;border:1px solid rgba(15,23,42,.08);padding:12px 16px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.room-detail-feedback{margin:0 var(--page-edge-gap);border-radius:12px;padding:12px 14px;background:#fff7ed;color:#9a3412;border:1px solid rgba(251,146,60,.25);font-size:12px}.room-detail-grid{margin:0 var(--page-edge-gap) var(--section-gap);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:16px}.room-detail-left,.room-detail-right{display:flex;flex-direction:column;gap:16px}.room-card{background:#fff;border-radius:12px;border:1px solid rgba(15,23,42,.08);padding:16px;box-shadow:0 1px 4px #0f172a0f;display:flex;flex-direction:column;gap:12px}.room-card h3{margin:0;font-size:16px;color:#0f172a}.room-tab-panel{margin:0 var(--page-edge-gap)}.room-table{display:flex;flex-direction:column;gap:8px}.room-table-head,.room-table-row{display:grid;gap:12px;align-items:center;font-size:12px;color:#475569}.room-table.is-device .room-table-head,.room-table.is-device .room-table-row{grid-template-columns:repeat(5,minmax(0,1fr))}.room-table.is-network .room-table-head,.room-table.is-network .room-table-row{grid-template-columns:repeat(6,minmax(0,1fr))}.room-table.is-power .room-table-head,.room-table.is-power .room-table-row{grid-template-columns:repeat(4,minmax(0,1fr))}.room-table-head{font-weight:600;color:#1f2937}.room-table-row{background:#f8fafc;border-radius:10px;padding:10px 12px}.room-panel-empty{border-radius:10px;padding:16px;background:#f8fafc;color:#64748b;font-size:12px}@media(max-width:1200px){.room-detail-grid{grid-template-columns:1fr}}@media(max-width:768px){.info-grid{grid-template-columns:1fr}.room-table-head,.room-table-row{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:6px}}.room-form-page{min-height:calc(100vh - var(--app-header-height));padding-bottom:24px;display:flex;flex-direction:column;gap:var(--section-gap)}.room-form-actions{display:flex;gap:12px}.room-form-feedback{margin:0 var(--page-edge-gap);border-radius:12px;padding:12px 14px;font-size:12px;border:1px solid rgba(251,146,60,.25)}.room-form-feedback.is-error{background:#fff7ed;color:#9a3412}.room-form-card,.room-form-preview{margin:0 var(--page-edge-gap);background:#fff;border-radius:12px;border:1px solid rgba(15,23,42,.08);box-shadow:0 1px 4px #0f172a0f;padding:16px;display:flex;flex-direction:column;gap:16px}.room-form-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.room-form-header h3{margin:0;font-size:16px;color:#0f172a}.room-form-header span{font-size:12px;color:#64748b}.room-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.room-form-grid label,.room-form-check{display:flex;flex-direction:column;gap:8px}.room-form-grid span{font-size:12px;color:#475569}.room-form-grid input,.room-form-grid select,.room-form-grid textarea{width:100%;border:1px solid #dbe3ef;border-radius:10px;padding:10px 12px;font-size:13px;color:#0f172a;background:#fff;outline:none}.room-form-grid textarea{resize:vertical;min-height:100px}.room-form-grid input:focus,.room-form-grid select:focus,.room-form-grid textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.room-form-grid input:disabled,.room-form-grid select:disabled,.room-form-grid textarea:disabled{background:#f8fafc;color:#94a3b8}.room-form-checkbox{display:inline-flex;align-items:center;gap:10px;min-height:42px;padding:10px 12px;border:1px solid #dbe3ef;border-radius:10px;background:#fff;color:#0f172a;font-size:13px}.room-form-checkbox input[type=checkbox]{width:16px;height:16px;margin:0}.room-form-wide{grid-column:1 / -1}.room-form-preview pre{margin:0;padding:16px;border-radius:12px;background:#0f172a;color:#e2e8f0;overflow:auto;font-size:12px;line-height:1.6}@media(max-width:768px){.room-form-grid{grid-template-columns:1fr}}.power-distribution-page{display:flex;flex-direction:column;gap:var(--section-gap);padding-bottom:var(--page-bottom-padding)}.power-distribution-feedback{margin:0 var(--page-edge-gap);border-radius:12px;padding:10px 14px;font-size:13px;border:1px solid rgba(15,23,42,.08);background:#f8fafc;color:#334155}.power-distribution-feedback.is-error{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.power-distribution-feedback.is-success{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.power-distribution-actions{display:flex;gap:12px;flex-wrap:wrap}.power-distribution-title-actions{display:flex;gap:12px}.action-btn{border:1px solid #dbe4f0;background:#fff;color:#1e293b;border-radius:10px;padding:8px 14px;font-size:12px;font-weight:600;cursor:pointer}.action-btn:disabled{cursor:not-allowed;opacity:.6}.action-btn-light{background:#fff}.action-btn-primary{background:#2563eb;color:#fff;border-color:#2563eb}.action-btn-danger{background:#fff1f2;color:#be123c;border-color:#fecdd3}.power-distribution-summary{margin:0 var(--page-edge-gap) var(--section-gap);display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--component-gap)}.power-distribution-summary .summary-card{background:#fff;border-radius:12px;padding:14px 16px;border:1px solid rgba(15,23,42,.08);box-shadow:0 4px 12px #0f172a14;display:flex;flex-direction:column;gap:12px}.power-distribution-summary .summary-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.power-distribution-summary .summary-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.power-distribution-summary .summary-label{font-size:12px;color:#64748b}.power-distribution-summary .summary-value{font-size:22px;font-weight:700;color:#0f172a}.power-distribution-summary .summary-change{font-size:12px;color:#94a3b8;white-space:nowrap}.power-distribution-panel{margin:0 var(--page-edge-gap);background:#fff;border-radius:12px;padding:16px;border:1px solid rgba(15,23,42,.08);box-shadow:0 1px 4px #0f172a0f;display:flex;flex-direction:column;gap:16px}.power-distribution-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.power-distribution-header h3{margin:0;font-size:16px;color:#0f172a}.power-distribution-header span{font-size:12px;color:#94a3b8}.power-distribution-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.power-distribution-results{margin-left:auto;font-size:12px;color:#64748b}.power-filter-select{border:1px solid #e2e8f0;border-radius:8px;padding:6px 10px;font-size:12px;color:#334155;background:#fff}.power-search{display:inline-flex;align-items:center;gap:6px;background:#f1f5f9;border-radius:999px;padding:6px 12px}.power-search-icon{font-size:12px}.power-search input{border:none;background:transparent;font-size:12px;outline:none;width:180px}.power-distribution-table{overflow-x:auto}.power-table{width:100%;border-collapse:collapse;table-layout:auto;min-width:880px}.power-table thead{background:#f8fafc}.power-table th,.power-table td{padding:10px 12px;font-size:12px;color:#334155;text-align:left;border-bottom:1px solid rgba(15,23,42,.06);white-space:normal;overflow:visible;text-overflow:clip}.power-table-check{width:44px}.power-table tbody td{line-height:20px;vertical-align:middle}.power-table th{font-weight:600;color:#475569}.power-stack{display:flex;flex-direction:column;gap:2px;min-width:0}.power-muted{color:#94a3b8}.mono{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.power-status{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:999px;font-size:11px;background:#e2e8f0;color:#475569}.power-status.status-在线{background:#dcfce7;color:#16a34a}.power-status.status-离线预警{background:#fee2e2;color:#ef4444}.power-status.status-维护中{background:#ffedd5;color:#f97316}.imbalance-tag{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:999px;font-size:11px;background:#e2e8f0;color:#475569}.imbalance-tag.warning{background:#ffedd5;color:#f97316}.power-distribution-pagination{display:flex;justify-content:flex-end;align-items:center;gap:10px}.pager-btn{border:1px solid #e5e7eb;background:#fff;border-radius:10px;padding:6px 14px;font-size:12px;cursor:pointer;color:#475467}.power-table-actions{display:table-cell;vertical-align:middle;white-space:nowrap}.link-btn{display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:#2563eb;cursor:pointer;font-size:12px;line-height:20px;padding:0;margin-right:12px}.link-btn:last-child{margin-right:0}.power-device-modal-backdrop{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:24px;z-index:1400}.power-device-modal{width:min(520px,100%);background:#fff;border-radius:18px;box-shadow:0 20px 50px #0f172a47;display:flex;flex-direction:column;overflow:hidden}.power-device-modal-header{padding:18px 20px 14px;border-bottom:1px solid #e2e8f0;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.power-device-modal-header h3{margin:0;font-size:18px;color:#0f172a}.power-device-modal-header span{display:block;margin-top:6px;font-size:12px;color:#64748b}.power-device-modal-close{border:none;background:transparent;color:#64748b;cursor:pointer;font-size:13px}.power-device-form{padding:20px;display:grid;gap:16px}.power-device-field{display:flex;flex-direction:column;gap:8px}.power-device-field span{font-size:13px;font-weight:600;color:#334155}.power-device-field input,.power-device-field select{border:1px solid #dbe4f0;border-radius:10px;padding:10px 12px;font-size:13px;color:#0f172a;outline:none;background:#fff}.power-device-modal-actions{padding:0 20px 20px;display:flex;justify-content:flex-end;gap:12px}@media(max-width:1200px){.power-distribution-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.power-distribution-summary{grid-template-columns:1fr}.power-distribution-title-actions,.power-distribution-actions,.power-distribution-pagination,.power-device-modal-actions{width:100%;justify-content:stretch}.action-btn,.pager-btn{flex:1 1 0}.power-distribution-results{margin-left:0}.power-search input{width:140px}}.power-map-editor-page{min-height:calc(100vh - var(--app-header-height));padding-bottom:var(--section-gap)}.power-map-editor-feedback{margin:0 10px;border-radius:14px;padding:12px 16px;font-size:14px}.power-map-editor-feedback.is-error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.power-map-editor-feedback.is-success{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.power-map-editor-sidebar{display:none}.power-map-editor-map-panel{margin:0 10px var(--section-gap);padding:0;min-height:0;background:transparent;box-shadow:none;display:flex;flex-direction:column}.power-map-editor-map-shell{position:relative;width:100%;height:100%;min-height:0;flex:1 1 auto}.power-map-editor-map-shell:before{content:"";position:absolute;inset:0;border-radius:12px;border:1px solid rgba(15,23,42,.08);box-shadow:0 1px 4px #0f172a0f;background:#0f172a;pointer-events:none;z-index:0}.power-map-editor-map-stage{position:relative;width:100%;height:100%;min-height:0;flex:1 1 auto;border:none;border-radius:12px;overflow:hidden;background:transparent;isolation:isolate}.power-map-editor-map-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1}.power-map-editor-map-canvas>div,.power-map-editor-map-canvas>div>div{width:100%;height:100%}@media(min-width:1101px){.power-map-editor-map-stage{height:100%}}@media(max-width:1100px){.power-map-editor-map-panel{height:auto!important;max-height:none!important}}@media(max-width:900px){.power-map-editor-map-stage{min-height:720px}}.pd-control-approval-page{min-height:calc(100vh - var(--app-header-height));padding-bottom:24px;display:flex;flex-direction:column;gap:var(--section-gap)}.pd-control-approval-actions{display:flex;gap:12px}.pd-control-approval-feedback{margin:0 var(--page-edge-gap);border-radius:12px;padding:12px 14px;font-size:12px;border:1px solid rgba(251,146,60,.25)}.pd-control-approval-feedback.is-error{background:#fff7ed;color:#9a3412}.pd-control-approval-feedback.is-success{background:#ecfdf5;border-color:#22c55e40;color:#166534}.pd-control-approval-toolbar,.pd-control-approval-layout{margin:0 var(--page-edge-gap)}.pd-control-approval-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.pd-control-approval-filters{display:flex;flex-wrap:wrap;gap:8px}.pd-control-filter-pill{border:1px solid rgba(15,23,42,.12);background:#fff;color:#475569;padding:7px 12px;border-radius:999px;font-size:12px;cursor:pointer}.pd-control-filter-pill.is-active{border-color:#2563eb;color:#2563eb;font-weight:600}.pd-control-approval-layout{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);gap:16px}.pd-control-approval-list,.pd-control-approval-detail{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:12px;padding:16px;box-shadow:0 1px 4px #0f172a0f;display:flex;flex-direction:column;gap:12px;min-height:420px}.pd-control-approval-panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.pd-control-approval-panel-head h3,.pd-control-subsection h4{margin:0;color:#0f172a}.pd-control-approval-panel-head span,.pd-control-subsection{color:#64748b;font-size:12px}.pd-control-empty{border-radius:10px;background:#f8fafc;color:#475569;font-size:12px;padding:12px 14px}.pd-control-list-item{width:100%;border:1px solid rgba(15,23,42,.08);border-radius:12px;background:#fff;padding:14px;text-align:left;display:flex;flex-direction:column;gap:8px;cursor:pointer}.pd-control-list-item.is-active{border-color:#2563eb73;box-shadow:inset 0 0 0 1px #2563eb1f}.pd-control-list-item-head,.pd-control-list-item-meta,.pd-control-step-row,.pd-control-detail-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.pd-control-list-item-head{justify-content:space-between}.pd-control-list-item-head strong,.pd-control-info-grid strong{color:#0f172a}.pd-control-list-item-meta,.pd-control-list-item-no{color:#64748b;font-size:12px}.pd-control-status-chip{display:inline-flex;align-items:center;justify-content:center;min-width:78px;height:24px;padding:0 10px;border-radius:999px;font-size:12px;background:#e2e8f0;color:#334155}.pd-control-status-chip.is-pending_l1,.pd-control-status-chip.is-pending_l2,.pd-control-status-chip.is-approved,.pd-control-status-chip.is-dispatching{background:#dbeafe;color:#1d4ed8}.pd-control-status-chip.is-executed{background:#dcfce7;color:#166534}.pd-control-status-chip.is-failed,.pd-control-status-chip.is-rejected,.pd-control-status-chip.is-cancelled,.pd-control-status-chip.is-expired{background:#fee2e2;color:#b91c1c}.pd-control-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}.pd-control-info-grid div{display:flex;flex-direction:column;gap:6px;color:#64748b;font-size:12px}.pd-control-info-grid .is-span-2{grid-column:1 / -1}.pd-control-step-row{padding:10px 12px;border-radius:10px;background:#f8fafc}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}@media(max-width:960px){.pd-control-approval-layout,.pd-control-info-grid{grid-template-columns:1fr}.pd-control-info-grid .is-span-2{grid-column:auto}}.assembly-board-page{display:flex;flex-direction:column;gap:var(--section-gap);padding-bottom:var(--page-bottom-padding)}.assembly-feedback{margin:0 var(--page-edge-gap);padding:var(--space-2-5) var(--space-4);border-radius:var(--space-3);background:#2563eb14;color:#1d4ed8;font-size:13px}.assembly-header-actions{display:flex;align-items:center;gap:var(--space-2-5)}.assembly-header-search{display:inline-flex;align-items:center;gap:var(--space-2);background:#fff;border-radius:var(--space-2-5);padding:var(--space-2) var(--space-2-5);border:1px solid rgb(15 23 42 / 12%);min-width:240px}.assembly-header-search input{border:none;outline:none;font-size:12px;background:transparent;width:100%}.header-icon-btn{border:1px solid rgb(15 23 42 / 12%);background:#fff;min-width:64px;height:32px;border-radius:var(--space-2);cursor:pointer;padding:0 var(--space-3)}.assembly-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--component-gap);margin:0 var(--page-edge-gap)}.assembly-card,.assembly-filter,.assembly-table,.assembly-detail-panel{background:#fff;border:1px solid rgb(15 23 42 / 8%);box-shadow:0 10px 30px #0f172a0a}.assembly-card{border-radius:18px;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2-5);min-height:120px}.card-header,.assembly-table-header,.assembly-detail-header,.assembly-material-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.card-label,.assembly-table-header h3,.assembly-detail-header h3,.assembly-material-header h4{font-size:14px;color:#0f172a;font-weight:600}.card-icon{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#e0f2fe,#dcfce7);display:inline-flex;align-items:center;justify-content:center}.card-icon-dot{width:10px;height:10px;border-radius:50%;background:#1d4ed8;box-shadow:14px 0 #10b981,7px 12px #0ea5e9}.card-value-row{display:flex;align-items:baseline;gap:var(--space-3);flex-wrap:wrap}.card-value{font-size:30px;font-weight:700;color:#10b981}.card-meta,.assembly-table-header span,.assembly-detail-header span,.assembly-material-header span{font-size:12px;color:#64748b}.card-trend{display:inline-flex;align-items:center;gap:var(--space-2);font-size:14px;font-weight:600;color:#22c55e}.trend-label{font-size:12px;color:#475569}.assembly-filter{margin:0 var(--page-edge-gap);border-radius:16px;padding:var(--space-4)}.filter-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto auto;gap:var(--component-gap);align-items:end}.filter-control{display:flex;flex-direction:column;gap:var(--space-2);font-size:12px;color:#334155}.filter-control select,.assembly-detail-form select,.assembly-detail-form input{border:1px solid #e2e8f0;border-radius:var(--space-2-5);padding:var(--space-2) var(--space-2-5);font-size:12px;min-height:38px}.filter-search-input{display:flex;align-items:center;gap:var(--space-2);border:1px solid #e2e8f0;border-radius:var(--space-2-5);padding:var(--space-2) var(--space-2-5)}.filter-search-input input{border:none;outline:none;font-size:12px;width:100%}.assembly-detail-form textarea{border:1px solid #e2e8f0;border-radius:var(--space-2-5);padding:var(--space-2-5);font-size:12px;resize:vertical;min-height:96px}.filter-reset,.filter-apply,.assembly-ghost-btn,.assembly-primary-btn{height:38px;border-radius:var(--space-2-5);border:1px solid rgb(15 23 42 / 12%);font-size:12px;padding:0 var(--space-4);cursor:pointer}.filter-reset,.assembly-ghost-btn{background:#fff;color:#334155}.filter-apply,.assembly-primary-btn{background:#2563eb;color:#fff;border-color:#2563eb}.assembly-workspace{margin:0 var(--page-edge-gap);display:grid;grid-template-columns:minmax(0,1.8fr) minmax(320px,.95fr);gap:var(--component-gap);align-items:start}.assembly-table,.assembly-detail-panel{border-radius:18px;padding:var(--space-5)}.assembly-table{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.assembly-batch-toolbar,.assembly-batch-actions,.assembly-check-inline{display:flex;align-items:center}.assembly-batch-toolbar{justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.assembly-batch-actions{gap:var(--space-2-5);flex-wrap:wrap}.assembly-batch-actions select{min-width:220px;min-height:38px;border:1px solid #e2e8f0;border-radius:var(--space-2-5);padding:var(--space-2) var(--space-2-5);font-size:12px}.assembly-check-inline{gap:var(--space-2);font-size:12px;color:#334155}.assembly-table-actions{display:flex;gap:var(--space-3);font-size:12px;color:#64748b;flex-wrap:wrap}.assembly-table-grid{display:flex;flex-direction:column;gap:var(--space-2)}.assembly-table-row{display:grid;grid-template-columns:56px 84px 148px 120px 108px minmax(120px,1fr) 100px 120px 88px 132px 96px 148px;gap:var(--space-2);align-items:center;font-size:12px;color:#0f172a;padding:var(--space-2-5) var(--space-3);border-radius:var(--space-3)}.assembly-table-row:not(.assembly-table-head){background:#f8fafc;cursor:pointer;transition:background-color .18s ease,box-shadow .18s ease}.assembly-table-row:not(.assembly-table-head):hover,.assembly-table-row.is-selected{background:#eef4ff;box-shadow:inset 0 0 0 1px #2563eb2e}.assembly-table-head{color:#64748b;padding:0 var(--space-3) var(--space-2)}.mono{font-family:SFMono-Regular,Menlo,Consolas,monospace}.status-tag{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-1) var(--space-2-5);border-radius:999px;font-size:12px;white-space:nowrap}.status-tag.tone-waiting{background:#3b82f61f;color:#2563eb}.status-tag.tone-ready{background:#f973161f;color:#ea580c}.status-tag.tone-finished{background:#22c55e26;color:#15803d}.status-tag.tone-dispatched{background:#0ea5e91f;color:#0369a1}.status-tag.tone-review{background:#8b5cf61f;color:#7c3aed}.status-tag.tone-muted{background:#94a3b81f;color:#64748b}.row-actions{display:inline-flex;gap:var(--space-2);flex-wrap:wrap}.link-btn.emphasis{color:#f97316}.assembly-empty{text-align:center;color:#94a3b8;font-size:12px;padding:var(--space-7) 0}.assembly-pagination{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#64748b;gap:var(--space-3);flex-wrap:wrap}.pager-controls{display:inline-flex;gap:var(--space-2)}.pager-btn{border:1px solid rgb(15 23 42 / 12%);background:#fff;border-radius:var(--space-2);padding:var(--space-2) var(--space-2-5);font-size:12px;cursor:pointer}.pager-btn.active{background:#2563eb;color:#fff;border-color:#2563eb}.link-btn:disabled,.assembly-ghost-btn:disabled,.assembly-primary-btn:disabled,.pager-btn:disabled{opacity:.6;cursor:not-allowed}.assembly-detail-panel{display:flex;flex-direction:column;gap:var(--space-4);position:sticky;top:12px}.assembly-detail-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2-5)}.assembly-detail-summary-history{margin-top:calc(var(--space-1) * -1)}.assembly-detail-batch{background:#eff6ff;border-radius:var(--space-3);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-1)}.assembly-detail-batch span,.assembly-detail-batch small{font-size:12px;color:#64748b}.assembly-detail-batch strong{font-size:22px;color:#1d4ed8}.assembly-detail-chip,.assembly-detail-item,.assembly-material-item{background:#f8fafc;border-radius:var(--space-3);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.assembly-detail-chip span,.assembly-detail-item span,.assembly-material-item span,.assembly-detail-form label{font-size:12px;color:#64748b}.assembly-detail-chip strong,.assembly-detail-item strong,.assembly-material-item strong{font-size:14px;color:#0f172a}.assembly-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2-5)}.assembly-detail-form{display:flex;flex-direction:column;gap:var(--space-2)}.assembly-detail-form small{font-size:12px;color:#64748b}.assembly-material-panel{display:flex;flex-direction:column;gap:var(--space-3)}.assembly-material-list,.assembly-history-list{display:flex;flex-direction:column;gap:var(--space-2)}.assembly-history-item{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);border-radius:var(--space-3);background:#f8fafc;padding:var(--space-3)}.assembly-history-item div{display:flex;flex-direction:column;gap:var(--space-1)}.assembly-history-action{justify-content:flex-end;align-items:flex-start}.assembly-modal-mask{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:var(--space-5);z-index:1200}.assembly-modal{width:min(760px,100%);max-height:min(88vh,820px);overflow:auto;background:#fff;border-radius:20px;box-shadow:0 24px 60px #0f172a40}.assembly-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-5);border-bottom:1px solid rgb(15 23 42 / 8%)}.assembly-modal-header h3{margin:0;font-size:18px;color:#0f172a}.assembly-modal-header span{font-size:12px;color:#64748b}.assembly-modal-close{border:1px solid rgb(15 23 42 / 12%);background:#fff;border-radius:var(--space-2);min-width:64px;height:32px;cursor:pointer}.assembly-modal-body{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5)}.assembly-form-error{border-radius:var(--space-3);background:#ef44441a;color:#b91c1c;font-size:12px;padding:var(--space-3)}.assembly-assign-user-list{display:flex;flex-direction:column;gap:var(--space-2)}.assembly-recommend-card{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);border-radius:var(--space-3);background:linear-gradient(135deg,#2563eb14,#10b98114);border:1px solid rgb(37 99 235 / 14%)}.assembly-recommend-card span,.assembly-recommend-card small{font-size:12px;color:#64748b}.assembly-recommend-card strong{font-size:15px;color:#0f172a}.assembly-assign-user{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border:1px solid rgb(15 23 42 / 10%);border-radius:var(--space-3);background:#f8fafc;cursor:pointer}.assembly-assign-user.is-selected{border-color:#2563eb59;background:#eef4ff}.assembly-assign-user div{display:flex;flex-direction:column;gap:var(--space-1)}.assembly-assign-user strong{font-size:14px;color:#0f172a}.assembly-assign-user span,.assembly-history-item span{font-size:12px;color:#64748b}.assembly-history-item strong{font-size:13px;color:#0f172a}.assembly-material-empty{border-radius:var(--space-3);background:#f8fafc;color:#64748b;font-size:12px;padding:var(--space-4)}.assembly-detail-actions{display:flex;gap:var(--space-2-5);flex-wrap:wrap}.assembly-detail-actions button{flex:1 1 180px}.detail-empty{padding:var(--space-8) 0}@media(max-width:1280px){.assembly-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.assembly-workspace{grid-template-columns:1fr}.assembly-detail-panel{position:static}}@media(max-width:960px){.filter-row{grid-template-columns:1fr}.assembly-table-row{grid-template-columns:repeat(2,minmax(0,1fr))}.assembly-table-head{display:none}.assembly-detail-summary,.assembly-detail-grid,.assembly-history-item{grid-template-columns:1fr}}@media(max-width:640px){.assembly-summary{grid-template-columns:1fr}.assembly-header-actions{flex-wrap:wrap}.assembly-header-search{min-width:0;width:100%}}.lamp-inbound-page{display:flex;flex-direction:column;gap:var(--section-gap);padding:0 var(--page-edge-gap) var(--page-bottom-padding)}.lamp-inbound-print-sheet{display:none}.lamp-inbound-header-actions{display:flex;align-items:center;gap:12px}.lamp-inbound-feedback{padding:10px 14px;border-radius:12px;border:1px solid rgba(15,23,42,.08);background:#f8fafc;color:#334155;font-size:13px}.lamp-inbound-feedback.is-error{background:#fef2f2;border-color:#ef44442e;color:#b91c1c}.lamp-inbound-feedback.is-info{background:#eff6ff;border-color:#2563eb2e;color:#1d4ed8}.lamp-inbound-search{width:280px;height:38px;border:1px solid #d7dfeb;border-radius:10px;padding:0 14px;background:#fff}.lamp-inbound-btn{height:38px;padding:0 16px;border-radius:10px;border:1px solid transparent;cursor:pointer;font-size:13px;font-weight:600}.lamp-inbound-btn-primary{background:linear-gradient(135deg,#14532d,#15803d);color:#fff}.lamp-inbound-btn-secondary{background:#fff;border-color:#d7dfeb;color:#334155}.lamp-inbound-btn:disabled{opacity:.6;cursor:not-allowed}.lamp-inbound-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--component-gap)}.lamp-inbound-summary-card,.lamp-inbound-panel,.lamp-inbound-modal{background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:0 1px 4px #0f172a0f}.lamp-inbound-summary-card{border-radius:16px;padding:var(--card-padding);display:flex;flex-direction:column;gap:var(--space-2)}.lamp-inbound-summary-label{font-size:12px;color:#64748b;text-transform:uppercase;letter-spacing:.08em}.lamp-inbound-summary-row{display:flex;align-items:baseline;gap:12px}.lamp-inbound-summary-row strong{font-size:30px;color:#0f172a}.lamp-inbound-summary-row span,.lamp-inbound-panel-header span,.lamp-inbound-detail-pill span,.lamp-inbound-mini-header span,.lamp-inbound-item-card span,.lamp-inbound-empty-panel{color:#64748b;font-size:13px}.lamp-inbound-board,.lamp-inbound-bottom{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(320px,1fr);gap:var(--section-gap)}.lamp-inbound-panel{border-radius:16px;padding:18px}.lamp-inbound-panel-wide{min-width:0}.lamp-inbound-panel-header,.lamp-inbound-mini-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.lamp-inbound-panel-header{margin-bottom:16px}.lamp-inbound-panel-header h3,.lamp-inbound-mini-header h4,.lamp-inbound-modal-header h3{margin:0;color:#0f172a}.lamp-inbound-mini-header{margin-bottom:14px}.lamp-inbound-status-tabs{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.lamp-inbound-status-pill{border:1px solid #d7dfeb;background:#fff;border-radius:999px;padding:8px 12px;color:#475569;display:inline-flex;align-items:center;gap:8px;cursor:pointer}.lamp-inbound-status-pill strong{color:#0f172a}.lamp-inbound-status-pill.is-active{background:#eff6ff;border-color:#bfdbfe}.lamp-inbound-table-wrap{overflow:auto}.lamp-inbound-table{width:100%;border-collapse:collapse;min-width:980px}.lamp-inbound-table th,.lamp-inbound-table td{padding:12px 10px;border-bottom:1px solid #eef2f7;text-align:left;font-size:13px;color:#334155;vertical-align:middle}.lamp-inbound-table tbody tr{cursor:pointer}.lamp-inbound-table tbody tr.is-selected{background:#f8fbff}.lamp-inbound-table th{color:#64748b;font-weight:600;white-space:nowrap}.lamp-inbound-table .mono{font-family:Consolas,Monaco,monospace;color:#0f172a}.lamp-inbound-status-tag{display:inline-flex;align-items:center;justify-content:center;min-width:66px;height:28px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600}.status-receiving{background:#eff6ff;color:#1d4ed8}.status-review{background:#fef2f2;color:#b91c1c}.status-done{background:#ecfdf5;color:#15803d}.lamp-inbound-row-actions{display:flex;flex-wrap:wrap;gap:10px}.lamp-inbound-row-actions button,.lamp-inbound-text-btn{padding:0;border:none;background:transparent;color:#2563eb;cursor:pointer;font-size:12px}.lamp-inbound-text-btn.is-danger{color:#b91c1c}.lamp-inbound-empty{text-align:center!important;color:#94a3b8!important;padding:24px 0!important}.lamp-inbound-detail-head{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.lamp-inbound-detail-head.is-secondary{margin-bottom:0}.lamp-inbound-detail-pill,.lamp-inbound-item-card,.lamp-inbound-create-item-card,.checkpoint-item{border-radius:12px;background:#f8fafc;padding:12px 14px}.lamp-inbound-detail-pill strong,.lamp-inbound-item-card strong,.lamp-inbound-create-item-head strong,.checkpoint-item strong,.lamp-inbound-record-item strong{color:#0f172a;font-size:13px}.lamp-inbound-detail-pill,.lamp-inbound-item-card,.checkpoint-item{display:flex;flex-direction:column;gap:4px}.lamp-inbound-detail-pill input,.lamp-inbound-detail-pill select{width:100%;border:1px solid #d7dfeb;border-radius:10px;padding:9px 10px;background:#fff;color:#0f172a;font-size:13px}.lamp-inbound-detail-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}.lamp-inbound-detail-section{border:1px solid #eef2f7;border-radius:14px;background:linear-gradient(180deg,#fff,#fbfdff);padding:14px}.lamp-inbound-form-grid.is-readonly{margin-top:0}.lamp-inbound-exec-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.lamp-inbound-exec-card{border-radius:12px;background:#f8fafc;padding:12px 14px;display:flex;flex-direction:column;gap:6px}.lamp-inbound-exec-card span,.lamp-inbound-step-item span{color:#64748b;font-size:12px}.lamp-inbound-exec-card strong,.lamp-inbound-step-item strong{color:#0f172a;font-size:14px}.lamp-inbound-note-block{border-radius:12px;background:#f8fafc;padding:14px;color:#334155;font-size:13px;line-height:1.7;min-height:96px}.lamp-inbound-note-block textarea{width:100%;min-height:110px;border:1px solid #d7dfeb;border-radius:10px;padding:10px 12px;background:#fff;color:#334155;font-size:13px;line-height:1.7;resize:vertical}.lamp-inbound-step-list{display:grid;gap:10px}.lamp-inbound-step-item{border-left:3px solid #bfdbfe;padding:8px 0 8px 12px;display:flex;flex-direction:column;gap:4px}.lamp-inbound-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.lamp-inbound-form-grid label{display:flex;flex-direction:column;gap:8px;color:#334155;font-size:13px}.lamp-inbound-form-grid input,.lamp-inbound-form-grid select,.lamp-inbound-form-grid textarea{width:100%;border:1px solid #d7dfeb;border-radius:10px;padding:10px 12px;background:#fff;font-size:13px}.lamp-inbound-form-grid textarea{resize:vertical}.lamp-inbound-form-grid .span-2{grid-column:span 2}.lamp-inbound-progress-bar{margin-top:16px;display:flex;align-items:center;gap:12px}.lamp-inbound-progress-track{flex:1;height:10px;border-radius:999px;background:#e2e8f0;overflow:hidden}.lamp-inbound-progress-fill{height:100%;background:linear-gradient(90deg,#14532d,#22c55e)}.lamp-inbound-progress-bar strong{font-size:12px;color:#166534}.lamp-inbound-checkpoints{display:grid;gap:12px;margin-top:16px}.checkpoint-item span{color:#64748b;font-size:12px}.lamp-inbound-items-block{margin-top:18px;border-top:1px solid #eef2f7;padding-top:16px}.lamp-inbound-items-list,.lamp-inbound-create-items,.lamp-inbound-records{display:grid;gap:12px}.lamp-inbound-item-meta{display:flex;flex-wrap:wrap;gap:12px;color:#475569;font-size:12px}.lamp-inbound-items-table{display:grid;gap:0;border:1px solid #eef2f7;border-radius:12px;overflow:hidden;background:#fff}.lamp-inbound-items-table-row{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(140px,1.2fr) repeat(3,minmax(70px,.6fr));gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid #eef2f7;font-size:13px;color:#334155}.lamp-inbound-items-table-row:last-child{border-bottom:none}.lamp-inbound-items-table-row.is-head{background:#f8fafc;color:#64748b;font-size:12px;font-weight:600}.lamp-inbound-items-table-row strong{color:#0f172a;font-size:13px}.lamp-inbound-inline-input{width:100%;min-width:0;border:1px solid #d7dfeb;border-radius:8px;padding:8px 10px;background:#fff;color:#0f172a;font-size:13px}.lamp-inbound-form-actions{margin-top:16px;display:flex;justify-content:flex-end;gap:10px}.lamp-inbound-record-item{border-radius:12px;border:1px solid #eef2f7;padding:14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.lamp-inbound-record-item.is-highlighted{border-color:#3b82f659;background:linear-gradient(180deg,#f8fbff,#eef6ff);box-shadow:0 0 0 1px #3b82f614}.lamp-inbound-record-item div{display:flex;flex-direction:column;gap:4px}.lamp-inbound-print-header,.lamp-inbound-print-summary,.lamp-inbound-print-detail-grid,.lamp-inbound-print-document-bar,.lamp-inbound-print-acceptance,.lamp-inbound-print-signatures{display:grid;gap:12px}.lamp-inbound-print-header{grid-template-columns:minmax(0,1fr) auto;align-items:start;margin-bottom:18px}.lamp-inbound-print-header h1,.lamp-inbound-print-section h2{margin:0;color:#0f172a}.lamp-inbound-print-header p,.lamp-inbound-print-meta span,.lamp-inbound-print-summary span,.lamp-inbound-print-detail-grid span,.lamp-inbound-print-note span{color:#64748b;font-size:12px}.lamp-inbound-print-meta{display:grid;gap:6px;justify-items:end}.lamp-inbound-print-summary{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:18px}.lamp-inbound-print-document-bar{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.lamp-inbound-print-summary div,.lamp-inbound-print-detail-grid div,.lamp-inbound-print-document-bar div,.lamp-inbound-print-acceptance-card{border:1px solid #d7dfeb;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.lamp-inbound-print-summary strong,.lamp-inbound-print-detail-grid strong{color:#0f172a;font-size:14px}.lamp-inbound-print-section{margin-bottom:18px}.lamp-inbound-print-table{width:100%;border-collapse:collapse;margin-top:10px}.lamp-inbound-print-table th,.lamp-inbound-print-table td{border:1px solid #d7dfeb;padding:8px 10px;text-align:left;font-size:12px;color:#334155}.lamp-inbound-print-table th{background:#f8fafc;color:#0f172a}.lamp-inbound-print-detail-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.lamp-inbound-print-acceptance{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:12px}.lamp-inbound-print-note{margin-top:12px}.lamp-inbound-print-note p{margin:6px 0 0;border:1px solid #d7dfeb;border-radius:10px;padding:10px 12px;color:#334155;font-size:12px;line-height:1.7;white-space:pre-wrap}.lamp-inbound-print-signatures{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:26px}.lamp-inbound-print-signature-box{border:1px dashed #cbd5e1;border-radius:10px;padding:14px 12px;min-height:110px;display:flex;flex-direction:column;gap:12px}.lamp-inbound-print-signature-box span,.lamp-inbound-print-signature-box em{color:#475569;font-size:12px;font-style:normal}.lamp-inbound-print-signature-line{flex:1;border-bottom:1px solid #94a3b8}.lamp-inbound-record-item span,.lamp-inbound-timeline span,.lamp-inbound-modal-header p{color:#64748b;font-size:12px}.lamp-inbound-timeline{margin:0;padding-left:18px;display:grid;gap:14px}.lamp-inbound-timeline li{color:#334155}.lamp-inbound-timeline strong{display:block;margin-bottom:4px;color:#0f172a}.lamp-inbound-empty-panel{padding:32px 16px;text-align:center;border:1px dashed #d7dfeb;border-radius:14px;background:#f8fafc}.lamp-inbound-modal-backdrop{position:fixed;inset:0;background:#0f172a6b;display:flex;align-items:center;justify-content:center;padding:24px;z-index:2000}.lamp-inbound-modal{width:min(1100px,100%);max-height:calc(100vh - 48px);overflow:auto;border-radius:24px;padding:24px}.lamp-inbound-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.lamp-inbound-modal-close{border:1px solid #d7dfeb;background:#fff;color:#334155;border-radius:999px;padding:8px 14px;cursor:pointer}.lamp-inbound-form-feedback{margin-bottom:16px;padding:10px 14px;border-radius:12px;border:1px solid rgba(15,23,42,.08);background:#eff6ff;color:#1d4ed8;font-size:13px}.lamp-inbound-form-feedback.is-error{background:#fef2f2;border-color:#ef44442e;color:#b91c1c}.lamp-inbound-create-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:18px}.lamp-inbound-create-section{border:1px solid #eef2f7;border-radius:18px;padding:16px;background:linear-gradient(180deg,#fff,#fbfdff)}.lamp-inbound-create-item-card{border:1px solid #e2e8f0}.lamp-inbound-create-item-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}@media(max-width:1280px){.lamp-inbound-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.lamp-inbound-board,.lamp-inbound-bottom,.lamp-inbound-create-layout{grid-template-columns:1fr}}@media(max-width:768px){.lamp-inbound-header-actions{width:100%;flex-wrap:wrap}.lamp-inbound-search{width:100%}.lamp-inbound-summary,.lamp-inbound-form-grid,.lamp-inbound-record-item,.lamp-inbound-detail-head,.lamp-inbound-detail-sections,.lamp-inbound-exec-grid,.lamp-inbound-items-table-row{grid-template-columns:1fr}.lamp-inbound-form-grid .span-2{grid-column:span 1}.lamp-inbound-panel-header,.lamp-inbound-modal-header,.lamp-inbound-form-actions,.lamp-inbound-create-item-head{flex-direction:column;align-items:flex-start}}@media print{body *{visibility:hidden}.lamp-inbound-print-sheet,.lamp-inbound-print-sheet *{visibility:visible}.lamp-inbound-print-sheet{display:block;position:absolute;inset:0;padding:0;color:#0f172a;background:#fff}.lamp-inbound-print-summary,.lamp-inbound-print-detail-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.lamp-inbound-print-document-bar,.lamp-inbound-print-acceptance,.lamp-inbound-print-signatures{grid-template-columns:repeat(3,minmax(0,1fr))}.lamp-inbound-print-summary div:last-child{grid-column:span 4}.lamp-inbound-print-document-bar div:last-child,.lamp-inbound-print-acceptance .lamp-inbound-print-acceptance-card:last-child{grid-column:span 3}}.power-detail{min-height:calc(100vh - var(--app-header-height));padding-bottom:24px;display:flex;flex-direction:column;gap:var(--section-gap)}.power-detail-actions{display:flex;gap:12px}.power-distribution-feedback{margin:0 var(--page-edge-gap);border-radius:12px;padding:12px 14px;font-size:12px;border:1px solid rgba(251,146,60,.25)}.power-distribution-feedback.is-error{background:#fff7ed;color:#9a3412}.power-distribution-feedback.is-success{background:#ecfdf5;border-color:#22c55e40;color:#166534}.power-detail-tabs{margin:0 var(--page-edge-gap) var(--section-gap);background:#fff;border-radius:12px;border:1px solid rgba(15,23,42,.08);padding:12px 16px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.tabs-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tab-pill{border:1px solid rgba(15,23,42,.12);background:#fff;padding:6px 14px;border-radius:999px;font-size:13px;color:#475569;cursor:pointer}.tab-helper{font-size:12px;color:#64748b}.power-detail-grid{margin:0 var(--page-edge-gap) var(--section-gap);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:16px}.power-detail-left,.power-detail-right{display:flex;flex-direction:column;gap:16px}.power-card{background:#fff;border-radius:12px;border:1px solid rgba(15,23,42,.08);padding:16px;box-shadow:0 1px 4px #0f172a0f;display:flex;flex-direction:column;gap:12px}.power-card h3{margin:0;font-size:16px;color:#0f172a}.power-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.power-card-hint{display:block;margin-top:4px;font-size:12px;color:#64748b}.info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}.info-grid.compact{gap:10px 14px}.info-grid div{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#64748b}.info-grid strong{font-size:14px;color:#0f172a;font-weight:600}.phase-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.phase-card{background:#f8fafc;border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:6px;font-size:12px;color:#64748b}.phase-card strong{color:#0f172a;font-size:14px}.phase-card.warning{background:#ffedd5;color:#9a3412}.map-card .map-placeholder{height:240px;border-radius:10px;background:linear-gradient(135deg,#e2e8f0,#f8fafc);display:flex;align-items:center;justify-content:center;color:#64748b;font-size:12px}.map-card .map-placeholder-error{color:#b91c1c;background:linear-gradient(135deg,#fee2e2,#fff1f2)}.map-card .map-canvas{height:240px;border-radius:10px;overflow:hidden}.map-tags{display:flex;flex-wrap:wrap;gap:8px}.control-empty{border-radius:10px;background:#f8fafc;color:#475569;font-size:12px;line-height:1.6;padding:12px 14px}.control-actions{display:flex;flex-wrap:wrap;gap:10px}.control-request-note{border-radius:10px;background:#eff6ff;color:#1d4ed8;font-size:12px;line-height:1.6;padding:12px 14px}.control-actions .action-btn{min-width:92px}.control-request-modal-backdrop{position:fixed;inset:0;background:#0f172a7a;display:flex;align-items:center;justify-content:center;padding:20px;z-index:1200}.control-request-modal{width:min(560px,100%);background:#fff;border-radius:16px;box-shadow:0 18px 48px #0f172a3d;padding:20px;display:flex;flex-direction:column;gap:14px}.control-request-modal h3{margin:0;color:#0f172a}.control-request-modal textarea{width:100%;min-height:108px;resize:vertical;border:1px solid rgba(148,163,184,.45);border-radius:12px;padding:12px 14px;font:inherit;color:#0f172a;background:#fff}.control-request-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.control-request-form-grid label{display:flex;flex-direction:column;gap:8px;font-size:13px;color:#475569}.control-request-form-grid input,.control-request-form-grid select{border:1px solid rgba(148,163,184,.45);border-radius:12px;padding:10px 12px;font:inherit;color:#0f172a;background:#fff}.control-request-modal-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.tag{background:#f1f5f9;color:#475569;padding:4px 10px;border-radius:999px;font-size:12px}.power-tab-panel{margin:0 var(--page-edge-gap)}.topology-list{display:flex;flex-direction:column;gap:10px}.topology-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:10px;background:#f8fafc;font-size:12px;color:#475569}.topology-item.is-active{border:1px solid rgba(37,99,235,.18);background:linear-gradient(180deg,#dbeafec7,#f8fafcf5)}.topology-item strong{display:block;color:#0f172a}.topology-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.topology-subtext{font-size:11px;color:#64748b}.topology-history-link{width:fit-content;border:none;background:transparent;padding:0;color:#2563eb;font-size:12px;cursor:pointer}.topology-history-link:hover{color:#1d4ed8;text-decoration:underline}.topology-index{width:28px;height:28px;border-radius:50%;background:#e2e8f0;display:flex;align-items:center;justify-content:center;font-weight:600}.topology-side{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.topology-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.topology-actions .action-btn{min-width:84px}.phase-tag{padding:4px 10px;border-radius:999px;font-size:11px;background:#e2e8f0;color:#475569}.phase-L1{background:#dbeafe;color:#1d4ed8}.phase-L2{background:#dcfce7;color:#15803d}.phase-L3{background:#ffedd5;color:#c2410c}.phase--{background:#e2e8f0;color:#64748b}.trend-placeholder{height:180px;border-radius:12px;background:linear-gradient(180deg,#2563eb14,#2563eb00);display:flex;align-items:center;justify-content:center;color:#64748b;font-size:12px}.phase-trend-stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.power-command-table .power-table-head,.power-command-table .power-table-row{grid-template-columns:minmax(96px,1fr) minmax(88px,.8fr) minmax(180px,1.4fr) minmax(160px,1.1fr) minmax(0,1.2fr)}.command-status-chip{display:inline-flex;align-items:center;justify-content:center;min-width:68px;padding:4px 10px;border-radius:999px;font-size:11px;background:#e2e8f0;color:#475569}.command-status-chip.is-queued,.command-status-chip.is-sending{background:#dbeafe;color:#1d4ed8}.command-status-chip.is-acked,.command-status-chip.is-executed{background:#dcfce7;color:#15803d}.command-status-chip.is-failed,.command-status-chip.is-timeout{background:#fee2e2;color:#b91c1c}.phase-trend-card{border:1px solid rgba(15,23,42,.08);border-radius:12px;background:#f8fafc;padding:14px;display:flex;flex-direction:column;gap:12px}.phase-trend-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.phase-trend-head strong{color:#0f172a;font-size:14px}.phase-trend-head span{color:#64748b;font-size:12px}.phase-trend-chart-wrap{position:relative;padding-left:40px}.phase-trend-axis{position:absolute;inset:0 auto 0 0;width:38px}.phase-trend-axis-label{position:absolute;left:0;transform:translateY(-50%);font-size:11px;color:#64748b}.phase-trend-chart{width:100%;height:180px;overflow:visible}.phase-trend-grid line{stroke:#94a3b852;stroke-dasharray:4 4}.phase-trend-footer{display:grid;gap:8px;padding-left:40px;color:#64748b;font-size:11px}.thresholds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.thresholds div{background:#f8fafc;border-radius:10px;padding:10px 12px;font-size:12px;color:#64748b;display:flex;flex-direction:column;gap:6px}.thresholds strong{color:#0f172a}.power-table{flex-direction:column;gap:8px}.power-table-head,.power-table-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;align-items:center;font-size:12px;color:#475569}.power-table-head{font-weight:600;color:#1f2937}.power-table-row{background:#f8fafc;border-radius:10px;padding:10px 12px}.room-panel-empty{padding:18px 16px;color:#6b7280;font-size:14px}.power-circuit-modal-backdrop{position:fixed;inset:0;background:#0f172a6b;display:flex;align-items:center;justify-content:center;padding:20px;z-index:2000}.power-circuit-modal{width:min(760px,100%);background:#fff;border-radius:18px;padding:20px;box-shadow:0 28px 60px #0f172a40;display:flex;flex-direction:column;gap:16px}.power-circuit-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.power-circuit-modal-header h3{margin:0 0 6px;font-size:20px;color:#0f172a}.power-circuit-modal-header span{font-size:13px;color:#64748b}.power-circuit-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.power-circuit-form-grid label{display:flex;flex-direction:column;gap:8px;font-size:13px;color:#475569}.power-circuit-form-grid input,.power-circuit-form-grid select{border:1px solid #dbe3ef;border-radius:10px;padding:10px 12px;font-size:13px;color:#0f172a;background:#fff;outline:none}.power-circuit-form-grid input:disabled,.power-circuit-form-grid select:disabled{background:#f8fafc;color:#94a3b8}.power-circuit-form-full{grid-column:1 / -1}.power-circuit-modal-actions{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap}.power-tab-panel .power-table-head,.power-tab-panel .power-table-row{grid-template-columns:repeat(5,minmax(0,1fr))}@media(max-width:1200px){.power-detail-grid{grid-template-columns:1fr}.phase-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.thresholds,.phase-trend-stack{grid-template-columns:1fr}}@media(max-width:768px){.info-grid{grid-template-columns:1fr}.power-card-header{align-items:stretch}.topology-item{flex-direction:column;align-items:stretch}.topology-side,.topology-actions,.power-circuit-modal-header,.power-circuit-modal-actions{justify-content:flex-start}.power-circuit-form-grid{grid-template-columns:1fr}.power-table-head,.power-table-row{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:6px}.control-request-form-grid{grid-template-columns:1fr}}.power-cruise-page{padding-bottom:var(--section-gap)}.power-cruise-panel-full{margin:0;min-height:0;min-height:560px}.power-cruise-map-shell{position:relative;width:100%;height:100%;min-height:0;border-radius:12px;overflow:hidden;border:1px solid rgba(15,23,42,.08);box-shadow:0 1px 4px #0f172a0f;background:#0f172a;isolation:isolate}.power-cruise-map-shell .map-canvas,.power-cruise-map-shell .map-placeholder{position:absolute;inset:0;width:100%;height:100%;z-index:1}.power-cruise-map-shell .map-placeholder{display:flex;align-items:center;justify-content:center;color:#cbd5e1;background:linear-gradient(135deg,#0f172a,#1e293b)}.power-cruise-map-shell .map-placeholder.map-error{color:#fecaca;background:linear-gradient(135deg,#3f1d1d,#6b1f1f)}.map-road-label-overlay{position:absolute;inset:0;z-index:1650;pointer-events:none}.map-road-label-item{position:absolute;transform:translate(-50%,-50%);padding:1px 6px;border-radius:10px;font-size:11px;line-height:1.2;letter-spacing:.1px;white-space:nowrap;color:#0f172ae0;background:#ffffffbd;border:1px solid rgba(148,163,184,.32);text-shadow:0 1px 1px rgba(255,255,255,.72);box-shadow:0 1px 2px #0f172a1f}.power-cruise-device-info-window{padding:8px 12px;border-radius:10px;border:1px solid rgba(226,232,240,.96);background:#fffffff2;backdrop-filter:blur(2px) saturate(120%);-webkit-backdrop-filter:blur(2px) saturate(120%);box-shadow:0 8px 18px #0f172a2e;color:#0f172a;font-size:12px;line-height:1.35}.power-cruise-device-info-name{font-weight:600}.power-cruise-device-info-code{margin-top:3px;color:#64748b}.power-cruise-floating{position:absolute;z-index:2400;pointer-events:auto;border-radius:10px;background:#0f172ab8;border:1px solid rgba(148,163,184,.35);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.power-cruise-floating-top{left:12px;right:12px;top:12px;padding:12px;display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:12px;align-items:center}.power-cruise-sidebar{position:absolute;top:12px;left:12px;--cruise-left-box-height: 46px;z-index:2400;width:260px;max-height:calc(100% - 24px)}.power-cruise-sidebar-container{display:flex;flex-direction:column;gap:0;background:#fff;border-radius:12px;border:1px solid rgba(15,23,42,.12);padding:10px 7px;box-shadow:0 8px 20px #0f172a1f}.power-cruise-search{height:var(--cruise-left-box-height);padding:0;display:flex;align-items:center;color:#0f172a;-webkit-backdrop-filter:none;backdrop-filter:none;margin:10px 0 0}.power-cruise-search input{width:100%;height:30px;border-radius:8px;border:1px solid rgba(148,163,184,.6);padding:0 10px;font-size:12px;color:#0f172a;background:#fff;margin:0}.power-cruise-search input::placeholder{color:#94a3b8}.power-cruise-toolbar{top:12px;left:auto;right:calc(12px + var(--map-compass-offset, 72px));width:max-content;max-width:calc(100% - (24px + var(--map-compass-offset, 72px)));padding:0;display:flex;align-items:center;justify-content:flex-end;gap:16px;background:transparent;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.power-cruise-toolbar-right{display:inline-flex;flex-direction:column;align-items:flex-end;gap:8px}.power-cruise-title-row{display:inline-flex;align-items:center;justify-content:space-between;gap:12px;width:100%;height:var(--cruise-left-box-height);margin:0}.power-cruise-title{margin:0;color:#0f172a;font-size:16px;line-height:1.2}.action-btn-text{background:transparent;border:none;padding:0;color:#0f172a;font-size:12px;display:inline-flex;align-items:center;gap:6px;cursor:pointer}.action-btn-text .action-btn-icon{width:14px;height:14px;display:inline-flex}.action-btn-text .action-btn-icon svg{width:14px;height:14px}.power-cruise-actions{display:inline-flex;gap:10px}.power-cruise-tags{display:inline-flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.power-cruise-tags .tag{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:#dbeafef2;color:#1d4ed8;font-size:11px;padding:2px 8px;white-space:nowrap}.power-cruise-tags .tag-primary{background:#3b82f6e0;border:1px solid rgba(147,197,253,.9);color:#fff}.power-cruise-tags .tag-focus{background:#0e7490e6;border:1px solid rgba(103,232,249,.8);color:#fff}.power-cruise-reset{position:absolute;z-index:2401;touch-action:none;cursor:grab;border:none;padding:0;background:transparent}.power-cruise-reset:active{cursor:grabbing}.power-cruise-reset img{width:40px;height:40px;display:block;filter:drop-shadow(0 8px 18px rgba(15,23,42,.18))}.power-cruise-tags .tag-toggle{border:1px solid rgba(148,163,184,.45);background:#0f172a99;color:#e2e8f0;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}.power-cruise-tags .tag-toggle.active{background:#3b82f6e0;border-color:#93c5fde6;color:#fff}.power-cruise-tags .tag-toggle-secondary.active{background:#0f766ee0;border-color:#5eead4e6}.power-cruise-poi{margin-top:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:#e2e8f0;font-size:11px;position:relative}.power-cruise-poi .poi-toggle{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;height:22px;min-height:22px;box-sizing:border-box;border-radius:999px;border:1px solid rgba(148,163,184,.45);background:#0f172a99;color:#e2e8f0;cursor:pointer;font-size:11px}.power-cruise-poi .poi-toggle.active{border-color:#93c5fde6;background:#3b82f6e0;color:#fff}.power-cruise-poi .poi-toggle-icon{display:inline-flex;width:16px;height:16px}.power-cruise-poi .poi-toggle-icon svg{width:16px;height:16px}.power-cruise-poi .poi-panel{position:absolute;top:36px;right:0;min-width:220px;padding:10px;border-radius:10px;background:#0f172af2;border:1px solid rgba(148,163,184,.4);box-shadow:0 12px 30px #0f172a59;z-index:6}.power-cruise-poi .poi-panel-title{font-weight:600;margin-bottom:8px;color:#f8fafc}.power-cruise-poi .poi-panel-section{margin-top:12px;padding-top:12px;border-top:1px solid rgba(148,163,184,.28)}.power-cruise-poi .poi-options{display:flex;flex-direction:column;gap:8px}.power-cruise-poi .view-mode-controls{display:flex;flex-direction:column;gap:8px;color:#e2e8f0;font-size:11px}.power-cruise-poi .view-option{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.power-cruise-poi .view-option input{accent-color:#60a5fa}.power-cruise-poi .view-option.is-disabled{opacity:.5;cursor:not-allowed}.power-cruise-poi .poi-option{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.power-cruise-poi .poi-option input{accent-color:#60a5fa}.power-cruise-poi .poi-option-disabled{opacity:.5;cursor:not-allowed}.power-cruise-poi .poi-hint{margin-top:8px;color:#94a3b8}.power-cruise-poi .view3d-controls{display:flex;flex-direction:column;gap:8px;color:#e2e8f0;font-size:11px}.power-cruise-poi .view3d-toggle{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.power-cruise-poi .view3d-toggle.is-disabled{opacity:.6;cursor:not-allowed}.power-cruise-poi .view3d-toggle input{accent-color:#60a5fa}.power-cruise-poi .view3d-slider{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:8px}.power-cruise-poi .view3d-slider.is-disabled{opacity:.6}.power-cruise-poi .view3d-slider input[type=range]{width:100%}.power-cruise-poi .view3d-label{color:#cbd5f5}.power-cruise-poi .view3d-value{min-width:36px;text-align:right;color:#e2e8f0}.power-cruise-poi .view3d-reset{align-self:flex-start;border:1px solid rgba(148,163,184,.4);background:#0f172a99;color:#e2e8f0;border-radius:999px;padding:2px 10px;font-size:11px;cursor:pointer}.panel-header{display:flex;align-items:center;justify-content:flex-start;color:#0f172a;font-size:13px;font-weight:600;background:transparent;border:0;padding:0 8px;margin:0;cursor:pointer;height:var(--cruise-left-box-height);width:100%;border-radius:8px}.panel-header-device{background:#e2e8f0}.panel-header-fault{background:#fde68a;margin-top:0}.panel-header-device.is-collapsed,.panel-header-fault.is-collapsed{margin-top:40px}.panel-header.open .panel-toggle{transform:rotate(180deg)}.panel-toggle{margin-left:6px;transition:transform .2s ease}.panel-right{margin-left:auto;display:inline-flex;align-items:center}.panel-count{background:#f871712e;color:#0f172a;padding:2px 8px;border-radius:999px;font-size:12px}.device-list,.fault-list{max-height:30vh;overflow:auto;display:flex;flex-direction:column;gap:4px;min-height:0;margin-top:-6px}.device-empty,.fault-empty{color:#475569;font-size:12px;padding:8px}.device-item,.fault-item{border:1px solid rgba(148,163,184,.4);background:#f8fafc;border-radius:8px;text-align:left;padding:0 10px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;height:30px;color:#0f172a}.device-item.active,.fault-item.active{border-color:#fca5a5;background:#fee2e2}.device-name,.fault-name{font-size:12px;font-weight:600}.device-code,.fault-meta{font-size:11px;color:#64748b;margin-left:12px;text-align:right}.power-cruise-tags .tag-dot{width:8px;height:8px;border-radius:50%;flex:0 0 8px}.power-cruise-tags .tag-dot-normal{background:#22c55e}.power-cruise-tags .tag-dot-warning{background:#f59e0b}.power-cruise-tags .tag-dot-fault{background:#1f4d3a;animation:cruise-fault-dot-blink 1.1s linear infinite}@keyframes cruise-fault-dot-blink{0%,49%{background:#ef4444}50%,to{background:#1f4d3a}}@media(max-width:1100px){.power-cruise-floating-top{grid-template-columns:1fr}.power-cruise-tags{justify-content:flex-start}.power-cruise-toolbar{right:12px;flex-direction:column;align-items:flex-start;gap:8px}.power-cruise-toolbar-right{align-items:flex-start}.power-cruise-sidebar{left:12px;right:12px;width:auto}.power-cruise-sidebar .power-cruise-floating{width:auto}.power-cruise-device-panel,.power-cruise-fault-panel{max-height:35%}}.network-system-page{display:flex;flex-direction:column;gap:var(--section-gap);padding-bottom:var(--page-bottom-padding)}.network-system-actions{display:flex;gap:12px}.network-system-summary{margin:0 var(--page-edge-gap) var(--section-gap);display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--component-gap)}.network-system-summary .summary-card{background:#fff;border-radius:12px;padding:14px 16px;border:1px solid rgba(15,23,42,.08);box-shadow:0 4px 12px #0f172a14;display:flex;flex-direction:column;gap:12px}.network-system-summary .summary-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.network-system-summary .summary-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.network-system-summary .summary-label{font-size:12px;color:#64748b}.network-system-summary .summary-value{font-size:22px;font-weight:700;color:#0f172a}.network-system-summary .summary-change{font-size:12px;color:#94a3b8;white-space:nowrap}.network-system-panel{margin:0 var(--page-edge-gap);background:#fff;border-radius:12px;padding:16px;border:1px solid rgba(15,23,42,.08);box-shadow:0 1px 4px #0f172a0f;display:flex;flex-direction:column;gap:16px}.network-system-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.network-system-header h3{margin:0;font-size:16px;color:#0f172a}.network-system-header span{font-size:12px;color:#94a3b8}.network-system-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.network-system-filters select{border:1px solid #e2e8f0;border-radius:8px;padding:6px 10px;font-size:12px;color:#334155;background:#fff}.network-search{display:inline-flex;align-items:center;gap:6px;background:#f1f5f9;border-radius:999px;padding:6px 12px}.network-search input{border:none;background:transparent;font-size:12px;outline:none;width:180px}.network-system-table{overflow-x:auto}.network-table{width:100%;border-collapse:collapse;table-layout:fixed;min-width:100%}.network-table thead{background:#f8fafc}.network-table th,.network-table td{padding:10px 12px;font-size:12px;color:#334155;text-align:left;border-bottom:1px solid rgba(15,23,42,.06);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.network-table tbody td{line-height:20px;vertical-align:middle}.network-table th{font-weight:600;color:#475569}.network-status{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:999px;font-size:11px;background:#e2e8f0;color:#475569}.network-status.status-在线{background:#dcfce7;color:#16a34a}.network-status.status-告警{background:#fee2e2;color:#ef4444}.network-status.status-维护中{background:#ffedd5;color:#f97316}.network-system-pagination{display:flex;justify-content:flex-end;align-items:center;gap:12px}.pager-btn{border:1px solid #e2e8f0;background:#fff;border-radius:8px;padding:6px 12px;font-size:12px;cursor:pointer}.pager-btn:disabled{cursor:not-allowed;color:#94a3b8}.pager-info{font-size:12px;color:#64748b}.network-table-actions{display:table-cell;vertical-align:middle}.network-table-actions .network-detail-link{display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:#2563eb;cursor:pointer;font-size:12px;line-height:20px;padding:0}.table-empty{text-align:center;color:#94a3b8;padding:16px 0}@media(max-width:1200px){.network-system-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.network-system-summary{grid-template-columns:1fr}.network-search input{width:140px}}.pole-device-page{display:flex;flex-direction:column;gap:var(--section-gap);padding:0 var(--page-edge-gap) var(--page-bottom-padding)}.pole-device-feedback{padding:10px 14px;border:1px solid #dbe3f1;border-radius:12px;background:#f8fbff;color:#44556f;font-size:13px}.pole-device-feedback-error{border-color:#f4c7c3;background:#fff6f5;color:#b42318}.pole-device-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--component-gap)}.pole-device-summary-card{background:#fff;border-radius:16px;padding:var(--card-padding);box-shadow:0 1px 4px #0f172a0f;border:1px solid rgba(15,23,42,.08);display:flex;flex-direction:column;gap:var(--space-2)}.pole-device-summary-label{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#64748b}.pole-device-summary-value{font-size:28px;font-weight:700;color:#0f172a}.pole-device-summary-value-row{display:flex;align-items:baseline;gap:var(--space-3)}.pole-device-summary-meta{font-size:13px;color:#64748b}.pole-device-charts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--section-gap)}.pole-device-chart-card{background:#fff;border-radius:12px;padding:16px;border:1px solid #eef2f7;box-shadow:0 1px 4px #0f172a0f;display:flex;flex-direction:column;gap:14px;min-height:320px}.pole-device-chart-header h3{margin:0;font-size:16px;color:#0f172a}.pole-device-chart-header span{color:#94a3b8;font-size:12px}.pole-device-chart-placeholder{border:1px dashed #d5dbe7;border-radius:10px;padding:16px;color:#94a3b8;display:flex;flex-direction:column;gap:8px;min-height:220px;justify-content:center}.pole-device-chart-placeholder strong{font-size:28px;color:#0f172a}.pole-device-chart-placeholder small{font-size:12px;color:#c0c6d4}.pole-device-category-bars{display:flex;flex-direction:column;gap:14px}.pole-device-category-row{display:grid;grid-template-columns:120px minmax(0,1fr) 72px;align-items:center;gap:12px}.pole-device-category-meta{display:flex;flex-direction:column;gap:4px}.pole-device-category-meta strong{color:#0f172a;font-size:14px;font-weight:700}.pole-device-category-meta span,.pole-device-category-rate{color:#64748b;font-size:12px}.pole-device-category-track{position:relative;height:10px;border-radius:999px;background:#e5edf8;overflow:hidden}.pole-device-category-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#60a5fa)}.pole-device-donut-wrap{display:grid;grid-template-columns:160px minmax(0,1fr);align-items:center;gap:18px}.pole-device-donut{width:160px;height:160px;border-radius:50%;display:flex;align-items:center;justify-content:center}.pole-device-donut-inner{width:96px;height:96px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px #94a3b833}.pole-device-donut-inner strong{color:#0f172a;font-size:20px;font-weight:700}.pole-device-donut-inner span{color:#64748b;font-size:12px}.pole-device-donut-legend{display:flex;flex-direction:column;gap:12px}.pole-device-donut-legend-item{display:flex;align-items:center;justify-content:space-between;gap:12px}.pole-device-donut-legend-label{display:inline-flex;align-items:center;gap:8px;color:#334155;font-size:13px}.pole-device-trend-wrap{display:flex;flex-direction:column;gap:10px}.pole-device-trend-svg{width:100%;height:180px}.pole-device-trend-axis{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.pole-device-trend-axis-item{display:flex;flex-direction:column;align-items:center;gap:2px}.pole-device-trend-axis-item strong{color:#0f172a;font-size:13px}.pole-device-trend-axis-item span{color:#64748b;font-size:12px}.pole-device-table-section{background:#fff;border-radius:12px;border:1px solid #eef2f7;box-shadow:0 1px 4px #0f172a0f}.pole-device-task-board{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);gap:var(--section-gap)}.pole-device-task-card{background:#fff;border-radius:12px;padding:16px;border:1px solid #eef2f7;box-shadow:0 1px 4px #0f172a0f;display:flex;flex-direction:column;gap:14px}.pole-device-task-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.pole-device-task-summary-item{border:1px solid #e6edf8;border-radius:12px;padding:14px;background:#f8fbff;display:flex;flex-direction:column;gap:6px}.pole-device-task-summary-item span{color:#64748b;font-size:12px}.pole-device-task-summary-item strong{color:#0f172a;font-size:24px;font-weight:700}.pole-device-task-toolbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.pole-device-task-select{border:1px solid #dbe4f0;border-radius:8px;padding:6px 10px;font-size:12px;color:#334155;background:#fff}.pole-device-task-link{border:none;background:transparent;color:#2563eb;padding:0;font-size:12px;cursor:pointer}.pole-device-task-link:hover{text-decoration:underline}.pole-device-task-list{display:flex;flex-direction:column;gap:12px}.pole-device-task-item{border:1px solid #e8eef8;border-radius:12px;padding:14px;background:#fff;display:flex;flex-direction:column;gap:10px}.pole-device-task-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.pole-device-task-top strong{color:#0f172a;font-size:14px}.pole-device-task-age,.pole-device-task-meta{color:#64748b;font-size:12px}.pole-device-task-meta{display:flex;flex-wrap:wrap;gap:10px 16px}.pole-device-task-footer{display:flex;justify-content:space-between;gap:12px;align-items:center}.pole-device-task-tags{display:flex;gap:8px;flex-wrap:wrap}.pole-device-task-priority,.pole-device-task-status{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600}.pole-device-task-priority{background:#fff7ed;color:#c2410c}.pole-device-task-status.status-todo{background:#fee2e2;color:#dc2626}.pole-device-task-status.status-doing,.pole-device-task-status.status-review{background:#dbeafe;color:#2563eb}.pole-device-task-status.status-done{background:#dcfce7;color:#16a34a}.pole-device-chart-placeholder--compact{min-height:180px}.pole-device-table{--status-item-height: 32px}.pole-device-table .side-gutter-table__table-wrap{padding-bottom:8px}.pole-device-table .side-gutter-table__pagination{padding:12px 16px 16px}.pole-device-modules{list-style:none;margin:0;padding:0;display:grid;gap:10px;width:100%}.pole-device-modules-item{display:flex;align-items:center;gap:0;font-size:12px;color:#111827;line-height:1.3;min-height:var(--status-item-height)}.pole-device-modules-dot{width:10px;height:10px;border-radius:999px}.pole-device-modules-label{color:#0f172a;flex:1;min-width:0;display:inline-flex;align-items:center;gap:8px}.pole-device-modules-value{color:#475569;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;width:150px;flex:none}.pole-device-status{display:flex;flex-direction:column;gap:0;line-height:1.1}.pole-device-status-item{display:flex;flex-direction:column;gap:6px;justify-content:center;min-height:var(--status-item-height)}.pole-device-status-row{display:flex;align-items:center;gap:0;font-size:11px;color:#64748b;line-height:1.1}.pole-device-status-label{display:inline-flex;align-items:center;gap:8px;flex:1;min-width:0;color:#0f172a}.pole-device-status-dot{width:12px;height:12px;border-radius:999px;flex:none}.pole-device-status-value{color:#475569;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;width:140px;flex:none}.pole-device-status-track{height:4px;background:#e2e8f0;border-radius:999px;overflow:hidden;margin-bottom:8px}.pole-device-status-fill{height:100%;border-radius:999px}.pole-device-actions{display:flex;gap:10px;flex-wrap:wrap}.pole-device-actions button{border:none;background:transparent;color:#2563eb;padding:0;border-radius:0;cursor:pointer;font-size:12px}.pole-device-actions button:hover{text-decoration:underline}.pole-device-total{display:flex;flex-direction:column;gap:0;font-size:12px;color:#94a3b8}.pole-device-total strong,.pole-device-total span{line-height:1}.pole-device-total strong{color:#0f172a}@media(max-width:1200px){.pole-device-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.pole-device-charts,.pole-device-task-board{grid-template-columns:1fr}.pole-device-donut-wrap{grid-template-columns:1fr;justify-items:center}.pole-device-detail-grid{grid-template-columns:1fr}}@media(max-width:768px){.pole-device-summary,.pole-device-category-row,.pole-device-task-summary{grid-template-columns:1fr}.pole-device-task-footer,.pole-device-task-top{flex-direction:column;align-items:flex-start}.pole-device-trend-axis{grid-template-columns:repeat(4,minmax(0,1fr))}.pole-device-search{min-width:0;width:100%}.pole-device-selection-bar,.pole-device-selection-actions{align-items:stretch}.pole-device-detail-metrics{grid-template-columns:1fr}}.pole-device-header-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.pole-device-search,.pole-device-filter{border:1px solid #dbe4f0;border-radius:8px;padding:6px 10px;font-size:12px;color:#334155;background:#fff}.pole-device-search{min-width:220px}.pole-device-page-btn{border-radius:8px;padding:6px 12px;font-size:12px;border:1px solid transparent;cursor:pointer}.pole-device-page-btn.primary{background:#2563eb;color:#fff}.pole-device-page-btn.ghost{background:#fff;border-color:#dbe4f0;color:#334155}.pole-device-selection-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px 0;flex-wrap:wrap;color:#475569;font-size:13px}.pole-device-selection-actions{display:flex;gap:8px;flex-wrap:wrap}.pole-device-modal-backdrop{position:fixed;inset:0;background:#0f172a73;z-index:1200;display:flex;align-items:center;justify-content:center;padding:24px}.pole-device-modal{width:min(1080px,100%);max-height:calc(100vh - 48px);overflow:auto;background:#fff;border-radius:14px;padding:16px;border:1px solid #eef2f7;box-shadow:0 18px 50px #0f172a47}.pole-device-modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px}.pole-device-modal-header h3{margin:0;font-size:16px;color:#0f172a}.pole-device-modal-header span{font-size:12px;color:#64748b}.pole-device-modal-close{border:1px solid #dbe4f0;background:#fff;color:#334155;border-radius:8px;padding:6px 12px;font-size:12px;cursor:pointer}.pole-device-detail-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(260px,.9fr);gap:16px}.pole-device-detail-main,.pole-device-detail-status,.pole-device-detail-modules{border:1px solid #e8eef8;border-radius:12px;padding:14px;background:#f8fbff}.pole-device-detail-head{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}.pole-device-detail-head strong{font-size:18px;color:#0f172a}.pole-device-detail-head span{color:#64748b;font-size:13px}.pole-device-detail-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pole-device-detail-metric{background:#fff;border-radius:10px;padding:12px;border:1px solid #e2e8f0;display:flex;flex-direction:column;gap:6px}.pole-device-detail-metric span{font-size:12px;color:#64748b}.pole-device-detail-metric strong{font-size:22px;color:#0f172a}.pole-device-detail-status{display:flex;flex-direction:column;gap:12px}.pole-device-detail-status-item{display:flex;flex-direction:column;gap:6px}.pole-device-detail-modules h4{margin:0 0 12px;color:#0f172a;font-size:14px}.icon-button{border:none;background:transparent;position:relative;font-size:18px;cursor:pointer}.icon-dot{position:absolute;width:8px;height:8px;border-radius:50%;background:#2563eb;top:-2px;right:-2px}.interface-linkage-page{display:flex;flex-direction:column;gap:var(--section-gap);padding:0 var(--page-edge-gap) var(--page-bottom-padding)}.interface-linkage-actions{display:flex;gap:12px}.interface-linkage-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--component-gap)}.interface-summary-card{background:#fff;border-radius:12px;border:1px solid #eef2f7;box-shadow:0 6px 14px #0f172a14;padding:16px;display:flex;flex-direction:column;gap:14px}.interface-summary-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.interface-summary-title{font-size:13px;color:#64748b}.interface-summary-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.interface-summary-card strong{font-size:24px;color:#0f172a}.interface-summary-meta{font-size:12px;color:#94a3b8;white-space:nowrap}.interface-summary-card.tone-primary strong{color:#2563eb}.interface-summary-card.tone-success strong{color:#16a34a}.interface-summary-card.tone-warning strong{color:#f97316}.interface-summary-card.tone-danger strong{color:#ef4444}.interface-linkage-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--section-gap)}.interface-panel{background:#fff;border-radius:12px;border:1px solid #eef2f7;box-shadow:0 1px 4px #0f172a0f;padding:16px;display:flex;flex-direction:column;gap:16px}.interface-panel-header{display:flex;justify-content:space-between;align-items:center;gap:16px}.interface-panel-header h3{margin:0;font-size:16px;color:#0f172a}.interface-panel-header span{font-size:12px;color:#94a3b8}.interface-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.interface-flow-item{border-radius:10px;background:#f8fafc;padding:12px;display:flex;flex-direction:column;gap:6px}.interface-flow-item strong{font-size:18px;color:#0f172a}.interface-flow-item span{font-size:12px;color:#64748b}.interface-flow-item.tone-primary{border:1px solid #dbeafe}.interface-flow-item.tone-success{border:1px solid #dcfce7}.interface-flow-item.tone-warning{border:1px solid #ffedd5}.interface-trend{display:flex;flex-direction:column;gap:10px}.interface-trend-chart{width:100%;height:140px;background:linear-gradient(180deg,rgba(37,99,235,.08),transparent);border-radius:10px}.interface-trend-chart circle{fill:#2563eb}.interface-trend-footer{display:grid;grid-template-columns:repeat(7,1fr);font-size:11px;color:#94a3b8;text-align:center}.interface-filter{display:flex;align-items:center;gap:12px}.interface-filter-tabs{display:inline-flex;gap:6px;padding:4px;background:#f1f5f9;border-radius:999px}.interface-filter-tab{border:none;background:transparent;font-size:12px;padding:4px 12px;border-radius:999px;cursor:pointer;color:#64748b}.interface-filter-tab.is-active{background:#fff;color:#0f172a;box-shadow:0 1px 4px #0f172a26}.interface-filter-input{border:1px solid #e2e8f0;border-radius:8px;padding:6px 10px;font-size:12px;min-width:220px}.interface-status{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:999px;font-size:11px;background:#e2e8f0;color:#475569}.interface-status.status-on{background:#dcfce7;color:#16a34a}.interface-status.status-warn{background:#ffedd5;color:#f97316}@media(max-width:1200px){.interface-linkage-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.interface-linkage-grid{grid-template-columns:1fr}}@media(max-width:640px){.interface-linkage-summary{grid-template-columns:1fr}.interface-filter{flex-direction:column;align-items:flex-start}.interface-filter-input{width:100%}}.emergency-strategy-page{display:flex;flex-direction:column;gap:var(--section-gap);padding:0 var(--page-edge-gap) var(--page-bottom-padding)}.emergency-actions{display:flex;gap:12px}.emergency-feedback{margin:0 10px;padding:12px 16px;border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;box-shadow:0 2px 8px #0f172a14}.emergency-feedback.is-info{background:#eff6ff;color:#1d4ed8}.emergency-feedback.is-success{background:#ecfdf3;color:#047857}.emergency-feedback.is-error{background:#fef2f2;color:#b91c1c}.emergency-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--component-gap)}.emergency-summary-card{background:#fff;border-radius:12px;border:1px solid #eef2f7;box-shadow:0 6px 14px #0f172a14;padding:16px;display:flex;flex-direction:column;gap:8px}.emergency-summary-title{font-size:13px;color:#64748b}.emergency-summary-body{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.emergency-summary-card strong{font-size:24px;color:#0f172a}.emergency-summary-meta{font-size:12px;color:#94a3b8;white-space:nowrap}.emergency-summary-card.tone-primary strong{color:#2563eb}.emergency-summary-card.tone-success strong{color:#16a34a}.emergency-summary-card.tone-warning strong{color:#f97316}.emergency-summary-card.tone-danger strong{color:#ef4444}.emergency-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,.85fr);gap:var(--section-gap)}.emergency-layout-left{display:flex;flex-direction:column;gap:var(--section-gap)}.emergency-layout-right{display:flex;flex-direction:column}.emergency-prepanel-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.emergency-prepanel{background:transparent;border:none;box-shadow:none;padding:0}.emergency-panel-card{background:#fff;border-radius:12px;border:1px solid #eef2f7;box-shadow:0 1px 4px #0f172a0f;padding:14px;display:flex;flex-direction:column;gap:12px}.emergency-panel-card-header{display:none}.emergency-panel-card-header h4{margin:0;font-size:14px;color:#0f172a}.emergency-panel-card-header span{font-size:12px;color:#94a3b8}.emergency-execution-list{display:flex;flex-direction:column;gap:12px}.emergency-empty{border:1px dashed #cbd5e1;border-radius:12px;padding:20px 16px;text-align:center;color:#94a3b8;font-size:12px;background:#fff}.emergency-execution-item{border:1px solid #eef2f7;border-radius:12px;padding:12px;background:#f8fafc;display:flex;flex-direction:column;gap:10px}.emergency-execution-header{display:flex;justify-content:space-between;gap:12px}.emergency-execution-header strong{font-size:14px;color:#0f172a}.emergency-execution-header span{font-size:12px;color:#94a3b8}.emergency-execution-status{padding:2px 10px;border-radius:999px;font-size:11px;background:#dbeafe;color:#2563eb;align-self:flex-start}.emergency-execution-meta{display:flex;gap:16px;font-size:12px;color:#64748b;flex-wrap:wrap}.emergency-execution-progress{display:flex;align-items:center;gap:10px;font-size:12px;color:#475569}.emergency-execution-bar{flex:1;height:8px;background:#e2e8f0;border-radius:999px;overflow:hidden}.emergency-execution-bar-fill{height:100%;background:linear-gradient(90deg,#2563eb,#60a5fa);border-radius:999px}.emergency-execution-detail{font-size:12px;color:#64748b}.emergency-pending-list{display:flex;flex-direction:column;gap:12px}.emergency-pending-item{border:1px solid #f2c7c7;border-radius:12px;padding:12px;background:#fff7f7;display:flex;flex-direction:column;gap:8px}.emergency-pending-item strong{font-size:14px;color:#0f172a}.emergency-pending-item span{font-size:12px;color:#64748b}.emergency-pending-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.emergency-pending-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.emergency-priority{padding:2px 10px;border-radius:999px;font-size:11px;background:#e2e8f0;color:#475569}.emergency-priority-紧急{background:#fee2e2;color:#ef4444}.emergency-priority-较高{background:#ffedd5;color:#f97316}.emergency-priority-常规{background:#dcfce7;color:#16a34a}.emergency-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,.85fr);gap:var(--section-gap)}.emergency-panel-section{display:flex;flex-direction:column;gap:16px}.emergency-panel-divider{height:1px;background:#eef2f7}.emergency-grid-left,.emergency-grid-right{display:flex;flex-direction:column;gap:var(--section-gap)}.emergency-panel{background:#fff;border-radius:12px;border:1px solid #eef2f7;box-shadow:0 1px 4px #0f172a0f;padding:16px;display:flex;flex-direction:column;gap:16px}.emergency-panel-header{display:flex;justify-content:space-between;align-items:center;gap:16px}.emergency-panel-header h3{margin:0;font-size:16px;color:#0f172a}.emergency-panel-header span{font-size:12px;color:#94a3b8}.emergency-region-list{display:flex;flex-direction:column;gap:10px}.emergency-region-item{border:1px solid #eef2f7;border-radius:10px;padding:12px;background:#f8fafc;display:flex;flex-direction:column;gap:8px}.emergency-region-item strong{font-size:14px;color:#0f172a}.emergency-region-item span{font-size:12px;color:#94a3b8}.emergency-region-metrics{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.emergency-tag{display:inline-flex;padding:2px 8px;border-radius:999px;font-size:11px;background:#e2e8f0;color:#475569}.emergency-tag.status-on{background:#dcfce7;color:#16a34a}.emergency-tag.status-pending{background:#ffedd5;color:#f97316}.emergency-command-list{display:flex;flex-direction:column;gap:12px}.emergency-command-item{border:1px solid #eef2f7;border-radius:10px;padding:12px;background:#f8fafc;display:flex;flex-direction:column;gap:8px}.emergency-command-header{display:flex;justify-content:space-between;gap:12px}.emergency-command-header strong{font-size:14px;color:#0f172a}.emergency-command-header span{font-size:12px;color:#94a3b8}.emergency-command-steps{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;color:#64748b;font-size:12px}.emergency-command-steps li:before{content:"•";margin-right:6px}.emergency-filter{display:flex;align-items:center;gap:12px}.emergency-filter-tabs{display:inline-flex;gap:6px;padding:4px;background:#f1f5f9;border-radius:999px}.emergency-filter-tab{border:none;background:transparent;font-size:12px;padding:4px 12px;border-radius:999px;cursor:pointer;color:#64748b}.emergency-filter-tab.is-active{background:#fff;color:#0f172a;box-shadow:0 1px 4px #0f172a26}.emergency-filter-input{border:1px solid #e2e8f0;border-radius:8px;padding:6px 10px;font-size:12px;min-width:220px}.emergency-status{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:999px;font-size:11px;background:#e2e8f0;color:#475569}.emergency-status.status-on{background:#dcfce7;color:#16a34a}.emergency-status.status-pending{background:#ffedd5;color:#f97316}.emergency-table-link{font-size:12px}.emergency-modal-backdrop{position:fixed;inset:0;background:#0f172a6b;display:flex;align-items:center;justify-content:center;padding:24px;z-index:1200}.emergency-modal{width:min(720px,100%);background:#fff;border-radius:18px;box-shadow:0 24px 60px #0f172a3d;overflow:hidden}.emergency-modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid #e2e8f0}.emergency-modal-header h3{margin:0;font-size:18px;color:#0f172a}.emergency-modal-close{border:none;background:transparent;color:#64748b;font-size:13px;cursor:pointer}.emergency-modal-close:disabled{opacity:.5;cursor:not-allowed}.emergency-modal-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:22px}.emergency-modal-field{display:flex;flex-direction:column;gap:8px;font-size:13px;color:#334155}.emergency-modal-field span{font-weight:600}.emergency-modal-field input,.emergency-modal-field select{width:100%;border:1px solid #dbe4ee;border-radius:10px;padding:10px 12px;font-size:14px;color:#0f172a;background:#fff;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.emergency-modal-field input:focus,.emergency-modal-field select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.emergency-modal-field input:disabled,.emergency-modal-field select:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}.emergency-field-error{font-size:12px;color:#dc2626}.emergency-modal-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:12px;padding-top:4px}@media(max-width:1200px){.emergency-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.emergency-prepanel-grid,.emergency-layout{grid-template-columns:1fr}.emergency-layout-right{gap:var(--section-gap)}}@media(max-width:640px){.emergency-summary{grid-template-columns:1fr}.emergency-actions{width:100%;flex-wrap:wrap}.emergency-filter{flex-direction:column;align-items:flex-start}.emergency-filter-input{width:100%}.emergency-modal-backdrop{padding:12px}.emergency-modal-body{grid-template-columns:1fr;padding:18px}.emergency-modal-actions{flex-direction:column-reverse}}.inventory-management-overview{padding-bottom:var(--page-bottom-padding)}.inventory-overview-feedback{margin:0 var(--page-edge-gap) var(--component-gap);padding:10px 14px;border-radius:12px;border:1px solid rgba(15,23,42,.08);background:#f8fafc;color:#334155;font-size:13px}.inventory-overview-feedback.is-error{background:#fef2f2;border-color:#ef44442e;color:#b91c1c}.inventory-overview-feedback.is-success{background:#eff6ff;border-color:#2563eb2e;color:#1d4ed8}.layout-block{width:100%}.hero-block{margin:0 var(--page-edge-gap) var(--component-gap)}.hero-strip{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--component-gap)}.hero-card{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:16px;padding:var(--card-padding);display:flex;flex-direction:column;gap:var(--space-2)}.hero-label{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#64748b}.hero-value{font-size:28px;font-weight:700;color:#0f172a}.hero-meta{font-size:13px;color:#64748b}.hero-value-row{display:flex;align-items:baseline;gap:var(--space-3)}.main-content-grid{margin:0 var(--page-edge-gap) var(--section-gap);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--component-gap);align-items:start}.main-left{grid-column:span 8;display:flex;flex-direction:column;gap:var(--section-gap)}.main-right{grid-column:span 4;display:flex;flex-direction:column;gap:var(--section-gap)}.data-chart-panel{background:transparent;border-radius:0;padding:0;box-shadow:none}.data-chart-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--component-gap)}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.panel-header h3{margin:0;font-size:16px;color:#0f172a}.panel-header p{margin:var(--space-1) 0 0;font-size:12px;color:#64748b}.panel-tag{border:1px solid #e2e8f0;border-radius:12px;padding:var(--space-1) var(--space-2-5);font-size:11px;color:#475569}.warning-body{display:flex;flex-direction:column;gap:var(--space-2)}.warning-item{border-bottom:1px dashed #e2e8f0;padding:var(--space-2) 0;display:flex;justify-content:space-between;gap:var(--space-2)}.warning-item:last-child{border-bottom:none;padding-bottom:0}.warning-item p,.movement-list p{margin:6px 0 0;color:#64748b;font-size:12px}.warning-status{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:12px;font-size:12px;background:#fee2e2;color:#b91c1c;margin-right:var(--space-2)}.quick-actions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:0}.quick-action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-3)}.quick-actions{background:#fff;border-radius:16px;padding:var(--card-padding);box-shadow:0 16px 40px #0f172a14;width:100%}.quick-action-card{border:1px solid #e2e8f0;border-radius:12px;padding:var(--space-3);background:#fafbff;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);font-size:12px;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.quick-action-card:hover{transform:translateY(-2px);border-color:#bfdbfe;box-shadow:0 12px 24px #2563eb1f}.quick-action-card.is-pending{background:#fffaf0;border-color:#fcd34d}.quick-action-card small{color:#64748b;font-size:11px}.action-icon{font-size:24px}.movement-list{overflow-x:auto;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.movement-list li{display:flex;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px dashed #e2e8f0}.movement-list li:last-child{border-bottom:none;padding-bottom:0}.distribution-lower,.distribution-table-panel{width:100%}.distribution-table-panel{background:#fff;border-radius:16px;padding:var(--card-padding);box-shadow:0 16px 40px #0f172a14;display:flex;flex-direction:column;gap:var(--space-4);position:relative;padding-bottom:var(--space-11)}.warning-panel,.movement-panel{background:#fff;border-radius:16px;padding:var(--card-padding);box-shadow:0 16px 40px #0f172a14;display:flex;flex-direction:column;gap:var(--space-4)}.distribution-table-panel{min-height:564px}.distribution-table{display:flex;flex-direction:column;gap:var(--space-3);flex:1;width:100%;box-sizing:border-box}.distribution-table-wrapper{display:flex;flex-direction:column;gap:0;flex:1;min-height:384px;overflow-x:auto;padding:0;padding-right:var(--card-padding)}.alert-movement-block{display:flex;flex-direction:column;gap:var(--space-4)}.movement-panel .link-btn,.warning-panel .link-btn{border-radius:999px;border:1px solid #e2e8f0;padding:var(--space-1) var(--space-3);background:#fff;font-size:12px;cursor:pointer}.pagination-controls{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);font-size:13px;color:#475569;margin-top:auto;position:absolute;right:var(--card-padding);bottom:var(--card-padding)}.pagination-controls button{border:1px solid #cbd5f5;background:#fff;border-radius:6px;padding:var(--space-2) var(--space-3);font-size:12px;cursor:pointer}.pagination-controls button:disabled{opacity:.4;cursor:not-allowed}.distribution-table table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px}.distribution-table th,.distribution-table td{padding:0;border-bottom:1px solid #f1f5f9;text-align:left;height:40px;line-height:40px}.table-empty,.side-empty{text-align:center;color:#94a3b8;font-size:12px;padding:20px 0}.distribution-table th{font-weight:600}.distribution-table th{font-size:12px;color:#64748b}.distribution-table th:nth-child(1),.distribution-table td:nth-child(1){min-width:90px}.distribution-table th:nth-child(2),.distribution-table td:nth-child(2){min-width:150px}.distribution-table th:nth-child(3),.distribution-table td:nth-child(3){min-width:150px}.distribution-table th:nth-child(4),.distribution-table td:nth-child(4){min-width:60px}.distribution-table th:nth-child(5),.distribution-table td:nth-child(5){min-width:90px}.distribution-table th:nth-child(6),.distribution-table td:nth-child(6){min-width:120px}.distribution-table th:nth-child(7),.distribution-table td:nth-child(7){min-width:110px}.distribution-table th:nth-child(8),.distribution-table td:nth-child(8){min-width:100px}.distribution-table th:nth-child(9),.distribution-table td:nth-child(9){min-width:80px}.status-badge{display:inline-flex;padding:var(--space-1) var(--space-2-5);border-radius:999px;background:#ecfdf5;color:#047857;font-size:12px;height:30px;min-width:80px;align-items:center;justify-content:center;line-height:1}.movement-list p{margin:var(--space-1) 0 0;font-size:12px;color:#64748b}.link-btn{border:none;background:transparent;color:#2563eb;font-size:12px;cursor:pointer}.distribution-lower{margin:0}.main-right .warning-panel,.main-right .movement-panel{width:100%}@media(max-width:1024px){.main-content-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.main-left,.main-right{grid-column:span 6}}@media(max-width:768px){.quick-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.inventory-distribution-card{width:100%;box-sizing:border-box;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;min-height:280px;overflow:visible;padding:20px}.inventory-distribution-header{margin:-20px -20px 0;border-radius:8px 8px 0 0}.inventory-distribution-body{display:flex;flex-direction:column;gap:16px;flex:1;padding-top:16px}.inventory-distribution-subtitle{margin:0;font-size:12px;color:#666}.inventory-status-card__chart{position:relative;width:220px;height:220px;margin:0 auto}.inventory-status-card__donut{width:100%;height:100%;outline:none}.inventory-status-card__donut:focus,.inventory-status-card__donut:focus-visible{outline:none}.inventory-status-card__center{position:absolute;inset:60px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:12px;color:#475569;text-align:center}.inventory-status-card__center strong{font-size:24px;color:#0f172a}.inventory-status-card__slice{cursor:pointer;transition:opacity .2s ease,transform .2s ease;transform-origin:100px 100px;opacity:.85;outline:none}.inventory-status-card__slice:focus,.inventory-status-card__slice:focus-visible{outline:none}.inventory-status-card__slice.is-active{opacity:1}.inventory-status-card__legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.inventory-status-card__legend li{display:inline-flex;align-items:center;gap:8px;color:#0f172a}.inventory-status-card__indicator{width:12px;height:12px;border-radius:50%;flex-shrink:0}.inventory-status-card__legend strong{font-size:12px;font-weight:600;color:#0f172a}.inventory-status-card__legend p,.inventory-status-card__value{display:none}.inventory-status-card__legend li.is-active strong,.inventory-status-card__legend li.is-active .inventory-status-card__value{color:#1d4ed8}.inventory-status-card__labels{pointer-events:none}.inventory-status-card__label-text{font-size:11px;fill:#0f172a;font-weight:600}.inventory-type-card{width:100%}.inventory-type-card__chart{width:200px;height:200px;margin:0 auto;position:relative;display:flex;align-items:center;justify-content:center}.inventory-type-card__pie{width:100%;height:100%;outline:none;margin:0 auto}.inventory-type-card__slice{cursor:pointer;transition:transform .2s ease}.inventory-type-card__legend{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;justify-items:center}.inventory-type-card__legend li{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:#0f172a}.inventory-type-card__legend strong{font-size:12px;font-weight:600;color:#0f172a}.inventory-type-card__legend p{display:none}.inventory-type-card__legend span{color:#64748b;font-weight:500}.inventory-type-card__labels{pointer-events:none}.inventory-type-card__label-text{font-size:11px;fill:#0f172a;font-weight:600}.left-sidebar-panel{display:flex;flex-direction:column;height:100%}.left-sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid #e6e6e6}.left-sidebar-header h3{margin:0;font-size:18px;color:#1f2937}.left-sidebar-count{font-size:12px;color:#666;white-space:nowrap}.left-sidebar-search{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #e5e7eb}.left-sidebar-input{flex:1;border:1px solid #d9d9d9;border-radius:4px;padding:0 10px;height:28px;font-size:12px;background:#fff}.left-sidebar-content{flex:1;min-height:0;overflow:auto;padding-top:12px}.left-sidebar-clear{border:none;background:transparent;color:#94a3b8;cursor:pointer;font-size:14px;line-height:1;padding:0}.left-sidebar-clear:hover{color:#64748b}.inventory-category-page{display:flex;flex-direction:column;gap:0;padding-bottom:var(--page-bottom-padding);min-height:100vh}.inventory-category-page .page-title-section{margin:0 var(--page-edge-gap) var(--section-gap);max-width:none}.inventory-category-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--component-gap);margin:0 var(--page-edge-gap) var(--component-gap)}.inventory-category-card{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:12px;padding:var(--card-padding);display:flex;flex-direction:column;gap:var(--space-2)}.inventory-category-card-title{font-size:12px;color:#64748b}.inventory-category-card-value{font-size:20px;font-weight:600;color:#0f172a}.inventory-category-body{display:grid;grid-template-columns:320px 1fr;gap:var(--component-gap);margin:0 var(--page-edge-gap);align-items:start;flex:1;min-height:0}.inventory-category-toolbar{display:inline-flex;align-items:center;gap:var(--space-2)}.inventory-category-tree,.inventory-category-detail{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:12px;padding:var(--card-padding);display:flex;flex-direction:column;gap:0;min-width:0}.inventory-category-tree{height:100%;background:none;border:none;padding:0;gap:0}.inventory-category-detail{height:100%;min-height:0}.inventory-category-detail-header h3{margin:0;font-size:16px;color:#0f172a}.inventory-category-detail-header span{font-size:12px;color:#94a3b8}.inventory-category-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid #e2e8f0}.inventory-category-detail-heading{display:flex;flex-direction:column;gap:var(--space-1)}.inventory-category-detail-tabs{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) 0;border-bottom:1px solid #e2e8f0}.inventory-category-tab{display:inline-flex;align-items:center;gap:var(--space-1-5);padding:6px 16px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;font-size:12px;font-weight:600;color:#475569;cursor:pointer}.inventory-category-tab-dot{width:8px;height:8px;border-radius:999px;background:#cbd5f5}.inventory-category-tab.is-active{border-color:#3b82f6;color:#1d4ed8;box-shadow:0 0 0 1px #3b82f633}.inventory-category-tab.is-active .inventory-category-tab-dot{background:#2563eb}.inventory-category-tree-list{display:flex;flex-direction:column;gap:var(--space-3);flex:1;min-height:0;overflow:auto}.inventory-category-tree .left-sidebar-panel{height:100%}.inventory-category-tree .left-sidebar-header{padding:11px 16px;min-height:48px;background:#fafafa;border-bottom:1px solid #e6e6e6}.inventory-category-tree .left-sidebar-header h3{font-size:16px;font-weight:600;color:#333}.inventory-category-tree .left-sidebar-count{font-size:12px;color:#666}.inventory-category-tree .left-sidebar-search{padding:8px 10px;background:#f7f8fa;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb}.inventory-category-tree .left-sidebar-input{height:24px;border-radius:4px;border:1px solid #d9d9d9;padding:0 8px;font-size:12px}.inventory-category-tree .left-sidebar-content{padding-top:0}.tree-node-icon{width:18px;height:18px;margin-right:var(--space-2);flex-shrink:0;display:inline-block}.inventory-category-tree-node{display:flex;flex-direction:column;gap:var(--space-1)}.tree-toggle{border:none;background:transparent;cursor:pointer;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;color:#64748b;font-size:12px}.inventory-category-detail-summary{font-size:12px;color:#64748b;padding:var(--space-2) var(--space-3);background:#f8fafc;border-radius:8px}.inventory-category-table{display:flex;flex-direction:column;gap:var(--space-2);flex:1;min-height:0;overflow:auto;padding-bottom:var(--space-2)}.inventory-category-table-head,.inventory-category-table-row{display:grid;grid-template-columns:120px 160px 90px 200px 90px 70px 120px;gap:var(--space-2);align-items:center;font-size:12px}.inventory-category-table-filter{display:flex;align-items:center;gap:var(--space-2);border:1px solid #e2e8f0;border-radius:8px;padding:var(--space-2) var(--space-2-5);font-size:12px}.inventory-category-table-filter input{border:none;outline:none;width:100%;font-size:12px}.inventory-category-table-head{color:#64748b}.inventory-category-table-row{color:#0f172a;padding:var(--space-2) 0;border-bottom:1px dashed #e2e8f0;cursor:pointer;transition:background .2s ease}.inventory-category-table-row:hover{background:#f8fafc}.inventory-category-table-row.is-active{background:#eef2ff}.inventory-category-table-row.is-disabled{color:#94a3b8}.row-actions{display:inline-flex;gap:var(--space-2)}.row-actions .link-btn.danger{color:#dc2626}.inventory-category-empty{border:1px dashed #e2e8f0;border-radius:8px;padding:var(--space-4);font-size:12px;color:#94a3b8;text-align:center}.inventory-category-form{margin-top:var(--space-1);background:#f8fafc;border-radius:12px;padding:var(--card-padding);display:flex;flex-direction:column;gap:var(--space-3)}.inventory-category-form+.inventory-category-form{margin-top:var(--component-gap)}.inventory-category-form-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.inventory-category-form-title{font-size:13px;font-weight:600;color:#0f172a}.inventory-category-notice{border-radius:8px;padding:var(--space-2) var(--space-3);font-size:12px;font-weight:500}.inventory-category-notice.is-success{background:#ecfdf3;color:#16a34a;border:1px solid #bbf7d0}.inventory-category-notice.is-error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.inventory-category-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--space-3);column-gap:40px}.inventory-category-form-grid label{display:grid;grid-template-columns:84px minmax(0,1fr);align-items:center;column-gap:var(--space-2-5);font-size:12px;color:#475569}.inventory-category-form-grid label>span{white-space:nowrap}.inventory-category-form-grid input,.inventory-category-form-grid select{border:1px solid #e2e8f0;border-radius:8px;padding:var(--space-2) var(--space-2-5);height:32px;line-height:20px;font-size:12px}.inventory-category-tab-list{display:flex;flex-direction:column;gap:var(--space-2)}.inventory-category-tab-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border:1px solid #e2e8f0;border-radius:8px;font-size:12px;color:#475569;background:#fff}.inventory-category-tab-item input{width:14px;height:14px}.parent-picker{position:relative;display:flex;flex-direction:column}.parent-picker.is-disabled{opacity:.7}.parent-picker-trigger{border:1px solid #e2e8f0;border-radius:8px;padding:var(--space-2) var(--space-2-5);height:32px;line-height:20px;font-size:12px;background:#fff;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.parent-picker-caret{color:#94a3b8}.parent-picker-panel{position:absolute;top:calc(100% + var(--space-2));left:0;right:0;z-index:20;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:var(--space-2);box-shadow:0 8px 20px #0f172a14;max-height:280px;overflow:auto}.parent-picker-tree,.inventory-category-parent-node{display:flex;flex-direction:column;gap:var(--space-1)}.inventory-category-form-actions{display:flex;justify-content:flex-end;gap:var(--space-2-5)}@media(max-width:1200px){.inventory-category-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-category-body{grid-template-columns:1fr}.inventory-category-table-head,.inventory-category-table-row{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--space-2)}.inventory-category-table-filter{margin-bottom:var(--space-1)}.inventory-category-form-grid{grid-template-columns:1fr}}.inventory-details-page{display:flex;flex-direction:column;gap:var(--section-gap);padding-bottom:var(--page-bottom-padding)}.inventory-details-body{display:flex;flex-direction:column;gap:var(--section-gap);margin:0 var(--page-edge-gap)}.inventory-details-feedback{margin:0 var(--page-edge-gap);padding:10px 14px;border-radius:12px;border:1px solid rgba(15,23,42,.08);background:#f8fafc;color:#334155;font-size:13px}.inventory-details-feedback.is-error{background:#fef2f2;border-color:#ef44442e;color:#b91c1c}.inventory-search{display:inline-flex;align-items:center;gap:6px;background:#fff;border-radius:8px;padding:6px 10px;border:1px solid rgba(15,23,42,.12)}.inventory-search input{border:none;outline:none;font-size:12px;background:transparent}.inventory-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--component-gap)}.summary-card{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:12px;padding:var(--space-4);display:flex;flex-direction:column;gap:14px}.summary-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.summary-label{font-size:12px;color:#64748b}.summary-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.summary-value{font-size:20px;font-weight:600;color:#0f172a}.summary-meta{font-size:12px;color:#16a34a;text-align:right}.inventory-filter{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:12px;padding:var(--space-4)}.filter-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto auto;gap:var(--component-gap);align-items:center}.filter-row label{display:flex;align-items:center;gap:8px;font-size:12px;color:#334155}.filter-row input,.filter-row select{border:1px solid #e2e8f0;border-radius:8px;padding:6px 10px;font-size:12px}.inventory-filter-meta{justify-self:end;font-size:12px;color:#64748b}.inventory-table{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:12px;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.inventory-table-header{display:flex;align-items:center;justify-content:space-between}.inventory-table-header h3{font-size:15px;color:#0f172a}.inventory-table-header span{font-size:12px;color:#94a3b8}.inventory-table-header .enum-button[disabled]{opacity:.6;cursor:not-allowed}.inventory-table-grid{display:flex;flex-direction:column;gap:8px}.inventory-table-row{display:grid;grid-template-columns:90px 110px 130px 150px 90px 50px 70px 110px 90px 90px 90px 70px;gap:8px;align-items:center;font-size:12px;color:#0f172a}.inventory-table-head{color:#64748b}.inventory-name{font-weight:600}.inventory-status{font-size:12px;color:#0f172a}.inventory-status.is-低库存预警{color:#ea580c}.inventory-status.is-待审批{color:#0ea5e9}.inventory-empty{padding:24px 0 8px;text-align:center;color:#94a3b8;font-size:12px}@media(max-width:1200px){.inventory-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-row{grid-template-columns:1fr}.inventory-filter-meta{justify-self:start}.inventory-table-row{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:6px}}.inventory-alert-page{padding-bottom:var(--page-bottom-padding)}.inventory-alert-search{display:flex;align-items:center;gap:var(--space-2);background:#fff;border:1px solid rgba(15,23,42,.1);border-radius:10px;padding:var(--space-2) var(--space-3);min-width:220px}.inventory-alert-search input{border:none;outline:none;width:180px;font-size:13px;color:#1f2937;background:transparent}.inventory-alert-summary{margin:0 var(--page-edge-gap) var(--section-gap);display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--component-gap)}.alert-summary-card{background:#fff;border-radius:12px;border:1px solid #eef2f7;box-shadow:0 6px 14px #0f172a14;padding:16px;display:flex;flex-direction:column;gap:14px;min-height:110px}.alert-summary-card .summary-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.alert-summary-card .summary-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.alert-summary-card .summary-title{font-size:13px;color:#64748b}.alert-summary-card .summary-value{font-size:24px;font-weight:700;color:#0f172a}.alert-summary-card .summary-desc{font-size:12px;color:#94a3b8;white-space:nowrap}.alert-summary-card.severity{border-color:#ef444433}.alert-summary-card.warning{border-color:#f9731633}.alert-summary-card.pending{border-color:#facc154d}.inventory-alert-actions{margin:0 var(--page-edge-gap) var(--space-4);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.inventory-alert-tabs{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.alert-tab{border:1px solid rgba(15,23,42,.12);background:#fff;padding:8px 16px;border-radius:999px;font-size:13px;color:#475569;cursor:pointer}.alert-tab.active{border-color:#2563eb;color:#2563eb;font-weight:600}.inventory-alert-toolbar{display:flex;align-items:center;gap:var(--space-2)}.alert-batch-select{border:1px solid rgba(15,23,42,.12);background:#fff;padding:6px 12px;border-radius:8px;font-size:12px;color:#475569}.inventory-alert-filter{margin:0 var(--page-edge-gap) var(--section-gap);background:#fff;border-radius:16px;border:1px solid rgba(15,23,42,.08);padding:var(--space-4);display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.inventory-alert-filter label{display:flex;flex-direction:column;gap:var(--space-2);font-size:12px;color:#64748b}.inventory-alert-filter select{min-width:160px;padding:6px 10px;border-radius:8px;border:1px solid rgba(15,23,42,.15);font-size:12px;color:#1f2937}.filter-actions{display:flex;align-items:center;gap:var(--space-2)}.inventory-alert-grid{margin:0 var(--page-edge-gap);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--component-gap);align-items:start}.inventory-alert-left{grid-column:span 8}.inventory-alert-right{grid-column:span 4;display:flex;flex-direction:column;gap:var(--component-gap)}.alert-table-card,.alert-side-card{background:#fff;border-radius:16px;border:1px solid rgba(15,23,42,.08);padding:var(--space-4)}.alert-table-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-3)}.alert-table-header h3{margin:0;font-size:16px;color:#0f172a}.alert-table-header span{font-size:12px;color:#94a3b8}.alert-table{overflow-x:auto}.alert-table-row{display:grid;grid-template-columns:50px 90px 90px 140px 120px 90px 60px 80px 80px 100px 110px 90px 80px 90px 100px;align-items:center;column-gap:var(--space-2);padding:10px 0;font-size:12px;color:#475569;border-bottom:1px solid rgba(15,23,42,.06);min-width:1200px}.alert-table-head{font-weight:600;color:#1f2937;border-bottom:1px solid rgba(15,23,42,.12)}.alert-name{color:#0f172a;font-weight:500}.alert-level.level-severe{color:#ef4444;font-weight:600}.alert-level.level-low{color:#f97316;font-weight:600}.alert-level.level-soon{color:#f59e0b;font-weight:600}.alert-status.status-pending{color:#ef4444;font-weight:600}.alert-status.status-done{color:#22c55e;font-weight:600}.alert-actions .text-button{color:#2563eb}.alert-side-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-3)}.alert-side-header h4{margin:0;font-size:15px;color:#0f172a}.alert-side-note{font-size:12px;color:#94a3b8}.alert-top-list{display:flex;flex-direction:column;gap:var(--space-2)}.alert-top-item{display:flex;align-items:center;gap:var(--space-2);background:#f8fafc;border-radius:12px;padding:10px 12px}.alert-top-rank{width:24px;height:24px;border-radius:50%;background:#e2e8f0;font-size:12px;color:#475569;display:flex;align-items:center;justify-content:center}.alert-top-info p{margin:0;font-size:13px;color:#0f172a}.alert-top-info span{font-size:11px;color:#94a3b8}.alert-top-tag{margin-left:auto;font-size:11px;padding:4px 8px;border-radius:999px;background:#fee2e2;color:#ef4444}.alert-top-tag.level-low,.alert-top-tag.level-soon{background:#ffedd5;color:#f97316}.alert-top-tag.level-done{background:#dcfce7;color:#22c55e}.alert-donut{display:flex;gap:var(--space-3);align-items:center}.alert-donut-chart{width:120px;height:120px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative}.alert-donut-center{width:70px;height:70px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 0 8px #fffc}.alert-donut-center strong{font-size:16px;color:#0f172a}.alert-donut-center span{font-size:11px;color:#94a3b8}.alert-donut-legend{display:flex;flex-direction:column;gap:var(--space-2)}.donut-legend-item{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:var(--space-2);font-size:12px;color:#475569}.donut-legend-item .dot{width:8px;height:8px;border-radius:50%}.donut-legend-item strong{font-size:12px;color:#0f172a}.alert-trend{display:flex;flex-direction:column;gap:var(--space-2)}.alert-trend-chart{width:100%;height:140px;background:linear-gradient(180deg,#2563eb14,#2563eb00);border-radius:12px}.alert-trend-axis{display:grid;grid-template-columns:repeat(7,1fr);font-size:10px;color:#94a3b8;text-align:center}@media(max-width:1200px){.inventory-alert-left{grid-column:span 12}.inventory-alert-right{grid-column:span 12;flex-direction:row;flex-wrap:wrap}.alert-side-card{flex:1 1 320px}}@media(max-width:768px){.inventory-alert-actions,.inventory-alert-filter{flex-direction:column;align-items:flex-start}.filter-actions{width:100%}.inventory-alert-summary{grid-template-columns:1fr}}.inventory-material-page{display:flex;flex-direction:column;gap:0;padding-bottom:var(--page-bottom-padding);min-height:100vh}.inventory-material-page .page-title-section{margin:0 var(--page-edge-gap) var(--section-gap);max-width:none}.inventory-material-search{display:flex;align-items:center;gap:var(--space-2);border:1px solid #e2e8f0;border-radius:999px;padding:6px 12px;background:#fff}.inventory-material-search input{border:none;outline:none;font-size:12px;width:220px}.inventory-material-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:var(--component-gap);margin:0 var(--page-edge-gap);align-items:start}.inventory-material-sidebar,.inventory-material-detail{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:12px;padding:var(--card-padding);display:flex;flex-direction:column;gap:var(--space-4);min-width:0;margin-bottom:var(--page-bottom-padding)}.inventory-material-sidebar{background:none;border:none;padding:0;gap:0}.inventory-material-sidebar .left-sidebar-panel{height:100%}.inventory-material-sidebar .left-sidebar-header{padding:11px 16px;min-height:48px;background:#fafafa;border-bottom:1px solid #e6e6e6}.inventory-material-sidebar .left-sidebar-header h3{font-size:16px;font-weight:600;color:#333}.inventory-material-sidebar .left-sidebar-count{font-size:12px;color:#666}.inventory-material-sidebar .left-sidebar-search{padding:8px 10px;background:#f7f8fa;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb}.inventory-material-sidebar .left-sidebar-input{height:24px;border-radius:4px;border:1px solid #d9d9d9;padding:0 8px;font-size:12px}.inventory-material-sidebar .left-sidebar-content{padding-top:0}.detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.detail-header h3{margin:0;font-size:16px;color:#0f172a}.detail-header span{font-size:12px;color:#94a3b8}.detail-actions{display:inline-flex;gap:var(--space-2);align-items:center}.inventory-category-empty{text-align:center;padding:24px 0;color:#94a3b8;font-size:12px}.inventory-material-notice{border-radius:8px;padding:10px 12px;font-size:12px}.inventory-material-notice.success{background:#22c55e1f;color:#166534}.inventory-material-notice.error{background:#f871711f;color:#991b1b}.inventory-category-tree-list{display:flex;flex-direction:column;gap:var(--space-3);flex:1;min-height:0;overflow:auto;padding:0}.tree-node{border:none;background:transparent;text-align:left;display:inline-flex;align-items:center;gap:var(--space-2);font-size:13px;color:#334155;cursor:pointer;padding:var(--space-1) 0}.tree-node-icon{width:18px;height:18px;margin-right:0;flex-shrink:0;display:inline-block}.tree-node.is-active{color:#2563eb;font-weight:600}.tree-node.is-disabled{opacity:.7;cursor:not-allowed}.tree-node-label{font-weight:600}.tree-node-meta{font-size:11px;color:#94a3b8}.tree-children{display:flex;flex-direction:column;gap:var(--space-2)}.tree-node-row{display:flex;align-items:center;gap:var(--space-2)}.tree-toggle{border:none;background:transparent;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;color:#64748b;font-size:12px}.tree-toggle.is-open{color:#2563eb}.tree-toggle-placeholder{display:inline-block;width:16px;height:16px}.parent-node-row{display:flex;align-items:center;gap:var(--space-2)}.parent-node{border:none;background:transparent;text-align:left;font-size:12px;color:#334155;cursor:pointer;padding:var(--space-1) 0}.parent-node.is-active{color:#2563eb;font-weight:600}.parent-node.is-disabled{opacity:.7;cursor:not-allowed}.parent-children{display:flex;flex-direction:column;gap:var(--space-1)}.item-row{border:none;background:transparent;border-radius:10px;padding:4px 0;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;cursor:pointer;font-size:12px;color:#0f172a;text-align:left}.tree-children .item-row{padding-left:0}.item-code{padding-right:0;white-space:nowrap}.item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.item-row.is-active{border-color:transparent;background:transparent}.item-row.is-active .item-code,.item-row.is-active .item-name{color:#2563eb;font-weight:600}.item-code{font-weight:600;color:#0f172a}.item-name{color:#475569}.inventory-material-empty{text-align:center;padding:24px 0;color:#94a3b8;font-size:12px}.detail-tabs{display:inline-flex;gap:8px;border-bottom:1px solid #e2e8f0;padding-bottom:8px}.tab-item{border:1px solid transparent;background:#f8fafc;padding:6px 12px;border-radius:999px;font-size:12px;color:#64748b;cursor:pointer}.tab-item.is-active{background:#0f172a;color:#fff}.detail-panel{min-height:260px}.material-filter{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:0}.material-filter label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#475569}.material-filter select{border:1px solid #e2e8f0;border-radius:8px;padding:8px 10px;height:36px;line-height:20px;font-size:12px;outline:none}.material-table{display:flex;flex-direction:column;gap:8px;flex:1}.material-table-wrap{overflow-x:auto;flex:1}.material-table-grid{width:100%;border-collapse:collapse;min-width:860px}.material-table-grid th,.material-table-grid td{padding:10px 12px;border-bottom:1px dashed #eef1f6;text-align:left;font-size:13px;color:#1f2937}.material-table-grid th{background:#f2f4f7;font-weight:600;color:#344054}.material-table-grid thead th:first-child{border-top-left-radius:12px}.material-table-grid thead th:last-child{border-top-right-radius:12px}.material-table-grid tbody tr{cursor:pointer;transition:background .2s ease}.material-table-grid tbody tr:hover{background:#f8fafc}.material-table-grid tbody tr.is-active{background:#eff6ff}.material-table-empty{text-align:center;padding:24px 0;color:#98a2b3;font-size:12px}.material-table-pagination{margin-top:auto;display:flex;align-items:center;justify-content:space-between;padding:12px 0 0;font-size:12px;color:#475467}.page-controls{display:inline-flex;align-items:center;gap:8px}.page-btn:disabled{opacity:.5;cursor:not-allowed}.page-indicator{min-width:60px;text-align:center}.material-name{font-weight:600}.material-detail-header-bar{display:flex;align-items:center;justify-content:space-between;padding:0;border-bottom:none}.material-detail-header-main{display:flex;flex-direction:column;gap:4px}.material-detail-title-row{display:inline-flex;align-items:center;gap:10px}.material-detail-code{font-size:14px;color:#64748b;font-weight:500;margin-left:6px}.material-detail-subtitle{font-size:12px;color:#6b7280}.material-detail-header-actions{display:inline-flex;align-items:center;gap:12px}.material-detail-tabs-row{padding:4px 12px;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;background:#f3f4f6;gap:10px}.material-detail-tabs{display:inline-flex;align-items:center;gap:8px;padding:4px}.material-detail-tab{border:1px solid #d5dce6;background:#fff;padding:3px 12px;border-radius:10px;font-size:13px;color:#4b5563;cursor:pointer;display:inline-flex;align-items:center;gap:10px;box-shadow:0 1px 4px #0f172a14;transition:border-color .2s ease,color .2s ease,background .2s ease}.material-detail-tab:before{content:"";width:8px;height:8px;border-radius:999px;background:#b7bcc6}.material-detail-tab.is-active{border-color:#1d4ed8;color:#1d4ed8;background:#f0f6ff}.material-detail-tab.is-active:before{background:#1d4ed8}.material-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 18px;font-size:12px;color:#475569}.material-detail-grid .detail-field{display:flex;flex-direction:column;gap:4px}.material-detail-grid .detail-field span:first-child{color:#94a3b8}.material-detail-empty{font-size:12px;color:#94a3b8;padding:8px 0}.material-archive-modal{width:min(920px,92vw)}.material-archive-modal-body{display:flex;flex-direction:column;gap:16px}.detail-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.detail-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#475569}.detail-form input,.detail-form select{border:1px solid #e2e8f0;border-radius:8px;padding:8px 10px;font-size:12px;outline:none}.parent-picker{position:relative}.parent-picker.is-disabled{opacity:.6;pointer-events:none}.parent-picker-trigger{width:100%;border:1px solid #e2e8f0;border-radius:8px;padding:8px 10px;font-size:12px;display:flex;justify-content:space-between;align-items:center;background:#fff;cursor:pointer}.parent-picker-caret{color:#94a3b8;font-size:12px}.parent-picker-panel{position:absolute;top:calc(100% + 6px);left:0;right:0;max-height:320px;overflow:auto;border:1px solid rgba(15,23,42,.12);border-radius:12px;padding:12px;background:#fff;box-shadow:0 10px 24px #0f172a1f;z-index:20}.parent-picker-option{padding-bottom:var(--space-2);border-bottom:1px dashed #e2e8f0;margin-bottom:var(--space-2)}.parent-picker-tree{display:flex;flex-direction:column;gap:var(--space-2)}.detail-empty{text-align:center;padding:40px 0;color:#94a3b8;font-size:12px}@media(max-width:1100px){.inventory-material-layout{grid-template-columns:1fr}.inventory-material-search input{width:140px}}@media(max-width:720px){.detail-form{grid-template-columns:1fr}}.warehouse-management-page{padding-bottom:var(--page-bottom-padding)}.warehouse-feedback,.warehouse-summary-grid,.warehouse-main-grid,.warehouse-task-panel{margin:0 var(--page-edge-gap) var(--component-gap)}.warehouse-feedback{padding:10px 14px;border-radius:12px;border:1px solid rgba(15,23,42,.08);background:#f8fafc;color:#334155;font-size:13px}.warehouse-feedback.is-error{background:#fef2f2;border-color:#ef44442e;color:#b91c1c}.warehouse-feedback.is-info{background:#eff6ff;border-color:#2563eb2e;color:#1d4ed8}.warehouse-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--component-gap)}.warehouse-summary-card,.warehouse-panel,.warehouse-task-panel{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:18px;box-shadow:0 16px 40px #0f172a0f}.warehouse-summary-card{padding:var(--card-padding);display:flex;flex-direction:column;gap:8px}.summary-label{font-size:12px;color:#64748b;text-transform:uppercase;letter-spacing:.08em}.warehouse-summary-card strong{font-size:30px;color:#0f172a}.warehouse-summary-card p,.warehouse-card span,.warehouse-panel-header p,.warehouse-task-list p{margin:0;color:#64748b;font-size:13px}.warehouse-main-grid{display:grid;grid-template-columns:minmax(320px,.95fr) minmax(0,1.35fr);gap:var(--component-gap);align-items:start}.warehouse-panel,.warehouse-task-panel{padding:var(--card-padding)}.warehouse-panel-header,.warehouse-table-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.warehouse-panel-header h3,.warehouse-table-header h4{margin:0;color:#0f172a}.warehouse-link-btn{border:1px solid #cbd5e1;background:#fff;color:#2563eb;border-radius:999px;padding:8px 14px;font-size:12px;cursor:pointer}.warehouse-header-actions,.warehouse-row-actions{display:flex;align-items:center;gap:10px}.warehouse-danger-btn{border:1px solid rgba(220,38,38,.22);background:#fff5f5;color:#b91c1c;border-radius:999px;padding:8px 14px;font-size:12px;cursor:pointer}.warehouse-warning-btn{border:1px solid rgba(217,119,6,.24);background:#fffbeb;color:#b45309;border-radius:999px;padding:8px 14px;font-size:12px;cursor:pointer}.warehouse-link-inline{border:none;background:transparent;color:#2563eb;cursor:pointer;padding:0;font-size:12px}.warehouse-link-inline.is-danger{color:#b91c1c}.warehouse-card-list{display:flex;flex-direction:column;gap:12px;margin-top:20px}.warehouse-empty-state{margin-top:20px;padding:18px 20px;border-radius:16px;background:linear-gradient(135deg,#eff6ff,#f8fafc);border:1px dashed rgba(37,99,235,.28)}.warehouse-empty-state strong,.warehouse-task-list strong{color:#0f172a}.warehouse-empty-state p{margin:6px 0 0;color:#64748b;font-size:13px}.warehouse-card{width:100%;border:1px solid #e2e8f0;border-radius:16px;background:linear-gradient(180deg,#fafcff,#f8fafc);padding:16px;text-align:left;cursor:pointer;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.warehouse-card:hover,.warehouse-card.is-active{border-color:#93c5fd;transform:translateY(-1px);box-shadow:0 14px 30px #2563eb1f}.warehouse-card-top,.warehouse-card-meta{display:flex;justify-content:space-between;gap:12px}.warehouse-card-top{align-items:flex-start;margin-bottom:14px}.warehouse-card-top strong{display:block;margin-bottom:6px;font-size:16px;color:#0f172a}.warehouse-card-meta{flex-wrap:wrap}.warehouse-status,.warehouse-task-status{display:inline-flex;align-items:center;justify-content:center;min-width:72px;height:28px;border-radius:999px;font-size:12px}.warehouse-status.is-online{background:#dcfce7;color:#166534}.warehouse-status.is-busy,.warehouse-task-status{background:#fef3c7;color:#92400e}.warehouse-status.is-disabled{background:#e2e8f0;color:#475569}.warehouse-detail-panel{display:flex;flex-direction:column;gap:20px}.warehouse-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.warehouse-detail-item{border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc;padding:14px 16px;display:flex;flex-direction:column;gap:8px}.warehouse-detail-item span{color:#64748b;font-size:12px}.warehouse-detail-item strong{color:#0f172a;font-size:16px}.warehouse-table-block{border-top:1px solid #e2e8f0;padding-top:16px}.warehouse-table-block table{width:100%;border-collapse:collapse;margin-top:14px}.warehouse-table-block th,.warehouse-table-block td{text-align:left;padding:12px 8px;border-bottom:1px solid #f1f5f9;font-size:13px}.warehouse-table-block th{color:#64748b;font-weight:600}.warehouse-table-empty{text-align:center;color:#94a3b8;padding:20px 0}.warehouse-task-list{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-direction:column;gap:14px}.warehouse-task-list li{display:flex;justify-content:space-between;gap:16px;align-items:center;border-bottom:1px dashed #e2e8f0;padding-bottom:14px}.warehouse-task-list li:last-child{border-bottom:none;padding-bottom:0}.warehouse-task-empty{color:#94a3b8}.warehouse-modal-backdrop{position:fixed;inset:0;background:#0f172a6b;display:flex;align-items:center;justify-content:center;padding:24px;z-index:2000}.warehouse-modal{width:min(760px,100%);max-height:calc(100vh - 48px);overflow:auto;background:#fff;border-radius:24px;box-shadow:0 28px 60px #0f172a47;padding:24px}.warehouse-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.warehouse-modal-header h3{margin:0 0 6px;color:#0f172a}.warehouse-modal-header p{margin:0;color:#64748b;font-size:13px}.warehouse-modal-feedback{margin-bottom:16px;padding:10px 14px;border-radius:14px;border:1px solid rgba(15,23,42,.08);background:#f8fafc;color:#334155;font-size:13px}.warehouse-modal-feedback.is-error{background:#fef2f2;border-color:#ef44442e;color:#b91c1c}.warehouse-modal-feedback.is-info{background:#eff6ff;border-color:#2563eb2e;color:#1d4ed8}.warehouse-modal-close,.warehouse-secondary-btn,.warehouse-primary-btn{border-radius:999px;padding:10px 16px;font-size:13px;cursor:pointer}.warehouse-modal-close,.warehouse-secondary-btn{border:1px solid #cbd5e1;background:#fff;color:#334155}.warehouse-primary-btn{border:none;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff}.warehouse-primary-btn:disabled{cursor:not-allowed;opacity:.7}.warehouse-link-btn:disabled,.warehouse-warning-btn:disabled,.warehouse-danger-btn:disabled{cursor:not-allowed;opacity:.6}.warehouse-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.warehouse-form-grid label{display:flex;flex-direction:column;gap:8px;color:#334155;font-size:13px}.warehouse-form-grid label.is-full,.warehouse-form-actions{grid-column:1 / -1}.warehouse-form-grid input,.warehouse-form-grid select,.warehouse-form-grid textarea{width:100%;border:1px solid #cbd5e1;border-radius:14px;padding:12px 14px;font-size:14px;color:#0f172a;background:#fff}.warehouse-form-grid textarea{resize:vertical;min-height:88px}.warehouse-form-grid input:focus,.warehouse-form-grid select:focus,.warehouse-form-grid textarea:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 3px #60a5fa2e}.warehouse-form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:4px}@media(max-width:1100px){.warehouse-main-grid{grid-template-columns:1fr}.warehouse-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.warehouse-detail-grid,.warehouse-form-grid{grid-template-columns:1fr}.warehouse-card-top,.warehouse-card-meta,.warehouse-panel-header,.warehouse-table-header,.warehouse-task-list li,.warehouse-modal-header,.warehouse-form-actions,.warehouse-header-actions,.warehouse-row-actions{flex-direction:column;align-items:flex-start}}.inventory-warehousing-page{padding-bottom:var(--page-bottom-padding)}.warehousing-feedback{margin:0 var(--page-edge-gap) var(--section-gap);padding:12px 14px;border-radius:12px;border:1px solid #dbe3f1;background:#f8fbff;color:#44556f;font-size:13px}.warehousing-feedback.is-error{border-color:#f4c7c3;background:#fff6f5;color:#b42318}.warehousing-feedback.is-success{border-color:#b7e4c7;background:#f1fff5;color:#166534}.warehousing-summary{margin:0 var(--page-edge-gap) var(--section-gap);display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--component-gap)}.warehousing-tabs{margin:0 var(--page-edge-gap) var(--section-gap);background:#fff;border-radius:16px;border:1px solid rgba(15,23,42,.08);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.warehousing-form{margin:0 var(--page-edge-gap) var(--section-gap);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--component-gap);align-items:start}.warehousing-card{background:#fff;border-radius:16px;border:1px solid rgba(15,23,42,.08);padding:var(--space-4)}.card-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-3)}.warehousing-records{margin:0 var(--page-edge-gap);background:#fff;border-radius:16px;border:1px solid rgba(15,23,42,.08);padding:var(--space-4)}.records-row{display:grid;grid-template-columns:1.4fr 1.2fr 1fr .7fr .8fr .8fr .6fr;align-items:center;gap:var(--space-2);font-size:12px;color:#475569;padding:8px 0;border-bottom:1px solid rgba(15,23,42,.06)}.record-status.已入库{color:#22c55e;font-weight:600}.record-status.待审核{color:#f97316;font-weight:600}.inventory-issuance-page{padding-bottom:var(--page-bottom-padding)}.issuance-feedback{margin:0 var(--page-edge-gap) var(--section-gap);padding:12px 14px;border-radius:12px;border:1px solid #dbe3f1;background:#f8fbff;color:#44556f;font-size:13px}.issuance-feedback.is-error{border-color:#f4c7c3;background:#fff6f5;color:#b42318}.issuance-feedback.is-success{border-color:#b7e4c7;background:#f1fff5;color:#166534}.issuance-summary{margin:0 var(--page-edge-gap) var(--section-gap);display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--component-gap)}.summary-card{background:#fff;border-radius:16px;border:1px solid rgba(15,23,42,.08);padding:var(--card-padding);display:flex;flex-direction:column;gap:var(--space-4)}.summary-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.summary-label{font-size:13px;color:#64748b}.summary-row{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-3)}.summary-value{font-size:26px;font-weight:700;color:#0f172a}.summary-meta{font-size:12px;color:#94a3b8;white-space:nowrap}.issuance-tabs{margin:0 var(--page-edge-gap) var(--section-gap);background:#fff;border-radius:16px;border:1px solid rgba(15,23,42,.08);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.tabs-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.tab-pill{border:1px solid rgba(15,23,42,.12);background:#fff;padding:8px 16px;border-radius:999px;font-size:13px;color:#475569;cursor:pointer}.tab-pill.active{color:#2563eb;border-color:#2563eb;font-weight:600}.tab-hint{background:#f8fafc;border-radius:10px;padding:10px 14px;font-size:12px;color:#475569}.issuance-form{margin:0 var(--page-edge-gap) var(--section-gap);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--component-gap);align-items:start}.issuance-card{background:#fff;border-radius:16px;border:1px solid rgba(15,23,42,.08);padding:var(--space-4)}.order-card{grid-column:span 5}.items-card{grid-column:span 7}.card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-3)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.form-grid label{display:flex;flex-direction:column;gap:var(--space-2);font-size:12px;color:#64748b}.form-grid input,.form-grid select,.form-grid textarea{border:1px solid rgba(15,23,42,.15);border-radius:8px;padding:8px 10px;font-size:12px;color:#1f2937;background:#fff}.form-span{grid-column:span 2}.items-table{display:flex;flex-direction:column;gap:var(--space-2)}.items-row{display:grid;grid-template-columns:40px 1.2fr 1.2fr 90px 70px 80px;align-items:center;gap:var(--space-2);font-size:12px;color:#475569}.items-head{font-weight:600;color:#1f2937;padding-bottom:6px;border-bottom:1px solid rgba(15,23,42,.08)}.items-row select,.items-row input{border:1px solid rgba(15,23,42,.12);border-radius:6px;padding:6px 8px;font-size:12px;color:#1f2937}.spec-cell{color:#0f172a}.card-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3)}.card-actions .enum-button[disabled]{opacity:.6;cursor:not-allowed}.summary-inline{display:flex;align-items:baseline;gap:var(--space-2);font-size:12px;color:#64748b;margin-right:auto}.summary-inline strong{color:#0f172a;font-weight:600}.issuance-records{margin:0 var(--page-edge-gap);background:#fff;border-radius:16px;border:1px solid rgba(15,23,42,.08);padding:var(--space-4)}.records-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.records-header h3{margin:0;font-size:16px;color:#0f172a}.records-table{display:flex;flex-direction:column;gap:var(--space-2)}.records-row{display:grid;grid-template-columns:1.2fr 1.2fr 1fr 1fr 1fr 1fr .6fr .5fr;align-items:center;gap:var(--space-2);font-size:12px;color:#475569;padding:8px 0;border-bottom:1px solid rgba(15,23,42,.06)}.records-head{font-weight:600;color:#1f2937}.records-empty{padding:20px 0 8px;text-align:center;color:#94a3b8;font-size:12px}@media(max-width:1200px){.order-card,.items-card{grid-column:span 12}}@media(max-width:768px){.form-grid{grid-template-columns:1fr}.form-span{grid-column:span 1}.items-row,.records-row{grid-template-columns:1fr 1fr}}.external-repair-page{padding-bottom:30px}.external-repair-actions{display:flex;gap:10px;align-items:center}.external-repair-actions .btn-icon{margin-right:6px}.external-repair-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:0 10px 18px}.summary-delta{font-size:12px}.summary-card.tone-danger{border-color:#fbd0d0;background:linear-gradient(135deg,#fff5f5,#fff 70%)}.external-repair-filter{margin:0 10px 16px;padding:14px 16px 12px;border-radius:12px;background:#fff;border:1px solid #e6e8ee}.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px 16px}.filter-grid label{display:flex;flex-direction:column;font-size:13px;color:#475467;gap:6px}.filter-grid select,.filter-grid input{height:36px;border-radius:8px;border:1px solid #d0d5dd;padding:0 10px;font-size:13px;color:#1f2937;background:#f8fafc}.filter-search{grid-column:span 2}.filter-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.external-repair-status{display:flex;gap:10px;margin:0 10px 14px;flex-wrap:wrap}.external-repair-table{margin:0 10px 24px;background:#fff;border:1px solid #e6e8ee;border-radius:12px;overflow:hidden}.table-header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-bottom:1px solid #edf0f5;background:#f8fafc;font-size:13px;color:#475467}.table-checkbox{display:flex;align-items:center;gap:8px}.external-repair-table table{width:100%;border-collapse:collapse;min-width:1080px}.external-repair-table th,.external-repair-table td{padding:10px 12px;border-bottom:1px dashed #e1e6ef;text-align:left;font-size:13px;color:#1f2937}.external-repair-table th{background:#f2f4f7;font-weight:600;color:#344054}.external-repair-table tbody tr:hover{background:#fafcff}.external-repair-table .mono{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px}.external-repair-table .desc{color:#475467;max-width:220px}.badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600}.priority-urgent{background:#fee2e2;color:#b91c1c}.priority-high{background:#ffedd5;color:#c2410c}.priority-medium{background:#e0f2fe;color:#0369a1}.priority-low{background:#dcfce7;color:#166534}.status-invalid{background:#f2f4f7;color:#475467}.status-review{background:#eef4ff;color:#175cd3}.table-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;font-size:13px;color:#475467}.page-btn.active{border-color:#3b82f6;color:#1d4ed8;background:#eff6ff}.action-btn-ghost{background:transparent;color:#475467;border:1px dashed #d0d5dd}.external-repair-detail-mask{position:fixed;inset:0;background:#0f172a7a;z-index:1000}.external-repair-detail-drawer{position:absolute;top:0;right:0;width:min(620px,100vw);height:100%;background:#fff;box-shadow:-24px 0 64px #0f172a3d;display:flex;flex-direction:column}.external-repair-detail-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:20px 22px 16px;border-bottom:1px solid #eef1f6}.external-repair-detail-header h3{margin:0;font-size:18px;color:#111827}.external-repair-detail-header span{display:block;margin-top:4px;font-size:12px;color:#667085}.external-repair-detail-close{border:none;background:#f2f4f7;color:#344054;border-radius:999px;padding:6px 12px;cursor:pointer;font-size:12px}.external-repair-detail-loading{padding:24px 22px;color:#667085;font-size:13px}.external-repair-detail-body{flex:1;overflow-y:auto;padding:20px 22px;display:grid;gap:16px;background:radial-gradient(circle at top right,rgba(59,130,246,.08),transparent 30%),linear-gradient(180deg,#f8fafc,#fff 36%)}.external-repair-detail-hero,.external-repair-detail-section{border:1px solid #e6e8ee;border-radius:16px;background:#fff}.external-repair-detail-hero{display:flex;justify-content:space-between;gap:18px;padding:18px;background:linear-gradient(135deg,#fffaf0,#fff 52%,#f7fbff)}.external-repair-detail-hero-main{display:grid;gap:10px;min-width:0}.external-repair-detail-code{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:14px;font-weight:700;color:#0f172a}.external-repair-detail-description{font-size:13px;line-height:1.7;color:#475467;word-break:break-word}.external-repair-detail-hero-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.external-repair-detail-section{padding:16px}.external-repair-detail-section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.external-repair-detail-section-title h4{margin:0;font-size:15px;color:#111827}.external-repair-detail-section-title span{font-size:12px;color:#667085}.external-repair-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.external-repair-detail-item{border-radius:12px;background:#f8fafc;border:1px solid #eef1f6;padding:12px;display:flex;flex-direction:column;gap:6px}.external-repair-detail-item.is-wide{grid-column:1 / -1}.external-repair-detail-item span{font-size:12px;color:#667085}.external-repair-detail-item strong{font-size:13px;color:#111827;font-weight:600;word-break:break-word}.external-repair-detail-actions{display:flex;justify-content:flex-end;gap:10px;padding:16px 22px 20px;border-top:1px solid #eef1f6;background:#fff}.external-repair-photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.external-repair-photo-card{display:grid;gap:8px;text-decoration:none;color:inherit}.external-repair-photo-card img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:12px;border:1px solid #e6e8ee;background:#f8fafc}.external-repair-photo-card span{font-size:12px;color:#667085}.external-repair-photo-empty{border-radius:12px;border:1px dashed #d0d5dd;background:#f8fafc;padding:16px;font-size:13px;color:#667085}.external-repair-process-mask{position:fixed;inset:0;background:#0f172a6b;z-index:1001;display:flex;align-items:center;justify-content:center;padding:28px}.external-repair-process-dialog{width:min(860px,100%);max-height:calc(100vh - 56px);overflow:hidden;border-radius:22px;background:radial-gradient(circle at top left,rgba(37,99,235,.08),transparent 30%),linear-gradient(180deg,#f8fbff,#fff 38%);box-shadow:0 30px 90px #0f172a3d;display:flex;flex-direction:column}.external-repair-process-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:22px 24px 16px;border-bottom:1px solid #e7edf6}.external-repair-process-header h3{margin:0;font-size:20px;color:#0f172a}.external-repair-process-header span{display:block;margin-top:5px;font-size:12px;color:#667085}.external-repair-process-body{padding:20px 24px 24px;overflow-y:auto;display:grid;gap:16px}.external-repair-process-summary,.external-repair-process-panel{border:1px solid #e6e8ee;border-radius:18px;background:#fff}.external-repair-process-summary{display:flex;justify-content:space-between;gap:18px;padding:18px;background:linear-gradient(135deg,#fff8ef,#fff,#eef6ff)}.external-repair-process-summary-main{min-width:0;display:grid;gap:10px}.external-repair-process-desc{font-size:13px;line-height:1.7;color:#475467;word-break:break-word}.external-repair-process-tags{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.external-repair-process-panel{padding:16px}.external-repair-process-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.external-repair-process-actions-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.external-repair-process-actions-title h4{margin:0;font-size:15px;color:#111827}.external-repair-process-actions-title span{font-size:12px;color:#667085}.external-repair-process-assign-box{margin-bottom:14px;padding:14px;border-radius:14px;border:1px solid #dbe4f0;background:#f8fbff;display:grid;gap:12px}.external-repair-process-assign-header{display:grid;gap:4px}.external-repair-process-assign-header strong{font-size:14px;color:#111827}.external-repair-process-assign-header span{font-size:12px;color:#667085}.external-repair-process-assign-toolbar{display:flex;gap:10px;align-items:center}.external-repair-process-assign-toolbar input{flex:1;height:38px;border-radius:10px;border:1px solid #d0d5dd;padding:0 12px;font-size:13px;background:#fff}.external-repair-process-assignee-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.external-repair-process-assignee-item{display:flex;align-items:flex-start;gap:10px;padding:12px;border-radius:12px;border:1px solid #d8e1ee;background:#fff;cursor:pointer}.external-repair-process-assignee-item.is-active{border-color:#3b82f6;background:#eff6ff}.external-repair-process-assignee-item input{margin-top:3px}.external-repair-process-assignee-item div{display:grid;gap:4px}.external-repair-process-assignee-item strong{font-size:13px;color:#111827}.external-repair-process-assignee-item span{font-size:12px;color:#667085;word-break:break-word}.external-repair-process-assignee-empty{grid-column:1 / -1;border-radius:12px;border:1px dashed #cbd5e1;background:#fff;padding:14px;font-size:12px;color:#667085}.external-repair-process-workorder-box{margin-bottom:14px;padding:14px;border-radius:14px;border:1px solid #dbe4f0;background:#fff;display:grid;gap:12px}.external-repair-process-workorder-header{display:grid;gap:4px}.external-repair-process-workorder-header strong{font-size:14px;color:#111827}.external-repair-process-workorder-header span{font-size:12px;color:#667085}.external-repair-process-log-list{display:grid;gap:10px}.external-repair-process-log-item{border-radius:12px;border:1px solid #e5e7eb;background:#f8fafc;padding:12px;display:grid;gap:8px}.external-repair-process-log-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.external-repair-process-log-head strong{font-size:13px;color:#111827}.external-repair-process-log-head span{font-size:12px;color:#667085}.external-repair-process-log-meta{display:grid;gap:4px}.external-repair-process-log-meta span{font-size:12px;color:#475467;word-break:break-word}.external-repair-process-workorder-empty{border-radius:12px;border:1px dashed #cbd5e1;background:#f8fafc;padding:14px;font-size:12px;color:#667085}.external-repair-process-workorder-hint{border-radius:12px;padding:12px 14px;font-size:12px;line-height:1.6}.external-repair-process-workorder-hint.is-ready{border:1px solid #b7e4c7;background:#f0fff6;color:#166534}.external-repair-process-workorder-hint.is-waiting{border:1px solid #fed7aa;background:#fff7ed;color:#c2410c}.external-repair-process-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.external-repair-process-action-card{border:1px solid #d8e1ee;border-radius:16px;padding:16px;background:#fff;text-align:left;cursor:pointer;display:grid;gap:8px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.external-repair-process-action-card strong{font-size:15px;color:#111827}.external-repair-process-action-card span{font-size:12px;line-height:1.6;color:#667085}.external-repair-process-action-card:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 28px #0f172a14}.external-repair-process-action-card:disabled{cursor:not-allowed;opacity:.58}.external-repair-process-action-card.is-primary{border-color:#bfd4ff;background:linear-gradient(180deg,#eff6ff,#fff)}.external-repair-process-action-card.is-success{border-color:#bfe7ca;background:linear-gradient(180deg,#f0fff6,#fff)}.external-repair-process-action-card.is-muted{border-color:#e2e8f0;background:linear-gradient(180deg,#f8fafc,#fff)}@media(max-width:960px){.filter-search{grid-column:span 1}.external-repair-actions{flex-wrap:wrap}.external-repair-detail-hero,.external-repair-detail-section-title,.external-repair-detail-actions,.external-repair-detail-header{flex-direction:column;align-items:stretch}.external-repair-detail-grid{grid-template-columns:1fr}.external-repair-detail-drawer{width:100vw}.external-repair-process-mask{padding:0;align-items:stretch}.external-repair-process-dialog{width:100vw;max-height:100vh;border-radius:0}.external-repair-process-header,.external-repair-process-summary,.external-repair-process-actions-title{flex-direction:column;align-items:stretch}.external-repair-process-grid,.external-repair-process-assignee-list,.external-repair-process-action-grid{grid-template-columns:1fr}.external-repair-process-log-head{flex-direction:column;align-items:flex-start}.external-repair-process-tags{align-items:flex-start}.external-repair-process-assign-toolbar{flex-direction:column;align-items:stretch}}.work-order-center{padding-bottom:var(--page-bottom-padding)}.work-order-actions{display:flex;gap:10px;align-items:center}.work-order-actions .btn-icon{margin-right:6px}.work-order-feedback{margin:0 var(--page-edge-gap) 14px;border-radius:12px;border:1px solid #d0d5dd;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}.work-order-feedback.is-success{background:#ecfdf3;border-color:#abefc6;color:#067647}.work-order-feedback.is-error{background:#fef3f2;border-color:#fecdca;color:#b42318}.work-order-feedback.is-warning{background:#fffaeb;border-color:#fedf89;color:#b54708}.work-order-feedback-close{border:none;background:transparent;color:inherit;cursor:pointer;font-size:12px}.work-order-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--component-gap);margin:0 var(--page-edge-gap) var(--section-gap)}.summary-card{background:#fff;border:1px solid #e6e8ee;border-radius:12px;padding:14px 16px;box-shadow:0 8px 18px #0f172a0d;position:relative;overflow:hidden}.summary-card:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:4px;border-radius:999px;background:#d0d5dd}.summary-icon{position:absolute;right:14px;top:14px;width:28px;height:28px;border-radius:50%;background:#f2f4f7;box-shadow:inset 0 0 0 1px #11182714}.summary-card.tone-danger:before{background:#f97316}.summary-card.tone-slate:before{background:#94a3b8}.summary-card.tone-primary:before{background:#2563eb}.summary-card.tone-success:before{background:#22c55e}.summary-icon.tone-danger{background:#fee2e2}.summary-icon.tone-slate{background:#e2e8f0}.summary-icon.tone-primary{background:#dbeafe}.summary-icon.tone-success{background:#dcfce7}.work-order-charts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:var(--component-gap);margin:0 var(--page-edge-gap) var(--component-gap)}.work-order-lower{display:grid;grid-template-columns:minmax(320px,1fr) minmax(0,2fr);gap:var(--section-gap);margin:0 var(--page-edge-gap) var(--section-gap)}.donut-chart{position:relative;width:220px;height:220px;margin:10px auto 16px;border-radius:50%;background:conic-gradient(#ef4444 0 32%,#f97316 32% 56%,#3b82f6 56% 84%,#10b981 84% 100%)}.donut-hole{position:absolute;inset:30px;background:#fff;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px #eef1f6}.donut-hole strong{font-size:24px;color:#111827}.donut-hole span{font-size:12px;color:#667085}.chart-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px;font-size:12px;color:#475467}.chart-legend .dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:6px}.dot-danger{background:#ef4444}.line-chart{position:relative;height:260px;border-radius:12px;background:linear-gradient(180deg,#f8fafc,#fff);border:1px dashed #d0d5dd;overflow:hidden}.line-grid{position:absolute;inset:20px 18px 30px;background-image:linear-gradient(#e5e7eb 1px,transparent 1px),linear-gradient(90deg,#e5e7eb 1px,transparent 1px);background-size:100% 25%,25% 100%;opacity:.5}.line-svg{position:absolute;inset:24px 24px 46px;width:calc(100% - 48px);height:calc(100% - 70px)}.line-stroke{fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.line-created{stroke:#94a3b8}.line-dispatched{stroke:#3b82f6}.line-verified{stroke:#10b981}.line-axis{position:absolute;left:24px;right:24px;bottom:24px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;font-size:11px;color:#667085}.line-axis span{text-align:center}.line-legend{position:absolute;bottom:10px;right:16px;display:flex;gap:12px;font-size:12px;color:#667085}.urgent-list{display:grid;gap:12px}.urgent-item{border:1px solid #eef1f6;border-radius:10px;padding:12px;background:#f9fafb;display:flex;justify-content:space-between;gap:12px}.urgent-left{flex:1;min-width:0}.urgent-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.urgent-top h4{margin:0;font-size:14px;color:#111827}.urgent-badge{background:#fee2e2;color:#b91c1c;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600}.urgent-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;margin-top:6px;font-size:12px;color:#475467}.urgent-owner{font-weight:600;color:#111827}.urgent-actions-col{display:flex;flex-direction:column;gap:8px;align-self:center}.pool-card{padding:14px 16px 16px}.pool-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.pool-title h3{margin:0;font-size:16px;color:#111827}.pool-title span{font-size:12px;color:#667085}.pool-search{display:flex;align-items:center;gap:8px;background:#f2f4f7;padding:6px 10px;border-radius:999px;border:1px solid #e0e4ea}.pool-search input{border:none;background:transparent;outline:none;font-size:13px;color:#1f2937}.pool-tools{display:flex;align-items:center;gap:10px}.pool-status{display:flex;gap:10px;margin:14px 0 12px;flex-wrap:wrap}.status-pill{border:1px solid #e0e4ea;background:#fff;border-radius:999px;padding:6px 12px;display:inline-flex;align-items:center;gap:10px;font-size:13px;color:#475467;cursor:pointer;transition:all .2s ease}.pool-table{overflow-x:auto}.pool-table table{width:100%;border-collapse:collapse;min-width:760px}.pool-table th,.pool-table td{padding:10px 12px;border-bottom:1px dashed #eef1f6;text-align:left;font-size:13px;color:#1f2937}.pool-table th{background:#f2f4f7;font-weight:600;color:#344054}.pool-table .primary{font-weight:600}.status-todo{background:#fff7ed;color:#c2410c}.status-dispatched{background:#eff6ff;color:#1d4ed8}.status-review{background:#f5f3ff;color:#6d28d9}.pool-footer{display:flex;justify-content:space-between;align-items:center;padding-top:12px;font-size:13px;color:#475467}.pagination{display:flex;gap:8px}.page-btn{border:1px solid #d0d5dd;background:#fff;padding:4px 10px;border-radius:6px;font-size:12px;color:#344054;cursor:pointer}.action-btn-light{background:#f2f4f7;color:#1f2937}.action-btn-secondary{background:#111827;color:#fff}.action-btn:disabled,.link-btn:disabled,.page-btn:disabled{cursor:not-allowed;opacity:.6}.work-order-modal-mask,.work-order-drawer-mask{position:fixed;inset:0;background:#0f172a7a;z-index:1000}.work-order-modal{width:min(720px,calc(100vw - 32px));margin:56px auto;background:#fff;border-radius:18px;box-shadow:0 24px 64px #0f172a47;overflow:hidden}.work-order-modal.work-order-modal-narrow{width:min(520px,calc(100vw - 32px))}.work-order-modal-header,.work-order-drawer-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:18px 20px 14px;border-bottom:1px solid #eef1f6}.work-order-modal-header h3,.work-order-drawer-header h3{margin:0;font-size:18px;color:#111827}.work-order-modal-header span,.work-order-drawer-header span{display:block;margin-top:4px;font-size:12px;color:#667085}.work-order-modal-close{border:none;background:#f2f4f7;color:#344054;border-radius:999px;padding:6px 12px;cursor:pointer;font-size:12px}.work-order-form{padding:18px 20px 20px}.work-order-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.work-order-form-field{display:flex;flex-direction:column;gap:8px;font-size:13px;color:#344054;margin-bottom:14px}.work-order-form-field.is-full{width:100%}.work-order-form-field span{font-weight:600}.work-order-form-field input,.work-order-form-field select,.work-order-form-field textarea{border:1px solid #d0d5dd;border-radius:10px;background:#fff;color:#101828;font-size:13px;padding:10px 12px;outline:none}.work-order-form-field textarea{resize:vertical;min-height:96px}.work-order-form-field input:focus,.work-order-form-field select:focus,.work-order-form-field textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f61f}.work-order-fault-picker{display:grid;gap:8px}.work-order-field-hint{font-size:12px;color:#667085;font-weight:400}.work-order-form-error{margin-bottom:14px;border-radius:10px;background:#fef3f2;border:1px solid #fecdca;color:#b42318;padding:10px 12px;font-size:13px}.work-order-assignee-panel{border:1px solid #e4e7ec;border-radius:12px;background:#f8fafc;padding:12px;display:grid;gap:10px}.work-order-assignee-panel-header{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#667085}.work-order-assignee-selected{border-radius:10px;background:#eff6ff;color:#1d4ed8;padding:10px 12px;font-size:13px;border:1px solid #bfdbfe}.work-order-assignee-role-tabs{display:flex;flex-wrap:wrap;gap:8px}.work-order-role-pill{border:1px solid #d0d5dd;border-radius:999px;background:#fff;color:#344054;padding:6px 10px;font-size:12px;cursor:pointer}.work-order-role-pill.is-active{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}.work-order-assignee-list{display:grid;gap:8px;max-height:240px;overflow-y:auto}.work-order-assignee-option{display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;align-items:start;border:1px solid #e4e7ec;border-radius:10px;background:#fff;padding:10px 12px;cursor:pointer}.work-order-assignee-option.is-active{border-color:#60a5fa;box-shadow:0 0 0 3px #3b82f61f}.work-order-assignee-option input{margin-top:2px}.work-order-assignee-option strong{display:block;font-size:13px;color:#111827}.work-order-assignee-option span{display:block;margin-top:4px;font-size:12px;color:#667085;word-break:break-word}.work-order-assignee-empty{font-size:12px;color:#98a2b3;padding:8px 0}.work-order-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.work-order-drawer{position:absolute;top:0;right:0;width:min(540px,100vw);height:100%;background:#fff;box-shadow:-24px 0 64px #0f172a3d;display:flex;flex-direction:column}.work-order-drawer-loading{padding:24px 20px;color:#667085;font-size:13px}.work-order-drawer-body{flex:1;overflow-y:auto;padding:20px;display:grid;gap:16px}.work-order-detail-section{border:1px solid #e6e8ee;border-radius:14px;padding:16px;background:linear-gradient(180deg,#fff,#f8fafc)}.work-order-detail-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.work-order-detail-title h4{margin:0;font-size:15px;color:#111827}.work-order-detail-title span{font-size:12px;color:#667085}.work-order-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.work-order-detail-item{border-radius:12px;background:#fff;border:1px solid #eef1f6;padding:12px;display:flex;flex-direction:column;gap:6px}.work-order-detail-item.is-wide{grid-column:1 / -1}.work-order-detail-item span{font-size:12px;color:#667085}.work-order-detail-item strong{font-size:13px;color:#111827;font-weight:600;word-break:break-word}.work-order-detail-actions-inline{display:flex;justify-content:space-between;align-items:center;gap:12px}.work-order-timeline{display:grid;gap:12px}.work-order-timeline-item{display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;align-items:start}.work-order-timeline-item strong{display:block;font-size:13px;color:#111827}.work-order-timeline-item span{display:block;margin-top:4px;font-size:12px;color:#667085}.work-order-timeline-meta{color:#344054}.work-order-timeline-note{color:#475467;white-space:pre-wrap}.work-order-timeline-dot{width:10px;height:10px;margin-top:4px;border-radius:50%;background:#2563eb;box-shadow:0 0 0 4px #2563eb1f}.work-order-timeline-empty{font-size:12px;color:#98a2b3}.work-order-drawer-actions{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px 20px;border-top:1px solid #eef1f6}@media(max-width:1100px){.work-order-charts,.work-order-lower{grid-template-columns:1fr}}@media(max-width:900px){.pool-header,.pool-tools,.work-order-form-grid,.work-order-detail-grid{grid-template-columns:1fr;flex-direction:column;align-items:flex-start}.urgent-item,.work-order-detail-title,.work-order-detail-actions-inline,.work-order-form-actions,.work-order-drawer-actions,.work-order-modal-header,.work-order-drawer-header,.work-order-feedback{flex-direction:column;align-items:stretch}.work-order-modal{width:calc(100vw - 20px);margin:24px auto}.work-order-drawer{width:100vw}}.pole-location-work-order-create{padding-bottom:var(--page-bottom-padding)}.pole-location-create-actions{display:flex;gap:10px}.pole-location-create-panel{margin:0 var(--page-edge-gap) var(--section-gap);background:#fff;border:1px solid #e6e8ee;border-radius:16px;box-shadow:0 10px 24px #0f172a0f;padding:20px}.pole-location-create-panel-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.pole-location-create-panel-header h3{margin:0;font-size:18px;color:#111827}.pole-location-create-panel-header span{color:#667085;font-size:12px}.pole-location-create-form{display:flex;flex-direction:column;gap:18px}.pole-location-create-grid,.pole-location-create-road-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.pole-location-create-field{display:flex;flex-direction:column;gap:8px}.pole-location-create-field span{font-size:13px;font-weight:600;color:#344054}.pole-location-create-field input,.pole-location-create-field select,.pole-location-create-field textarea{width:100%;border:1px solid #d0d5dd;border-radius:10px;padding:10px 12px;font-size:13px;color:#111827;background:#fff;box-sizing:border-box}.pole-location-create-field input:disabled{color:#667085;background:#f8fafc}.pole-location-create-field textarea{resize:vertical;min-height:120px}.pole-location-create-field.is-block{width:100%}.pole-location-section-picker{display:flex;flex-wrap:wrap;gap:10px;padding:12px;border:1px solid #d0d5dd;border-radius:10px;background:#fff}.pole-location-section-option{display:inline-flex;align-items:center;gap:10px;min-height:36px;padding:0 12px;border:1px solid #d0d5dd;border-radius:999px;background:#f8fafc;cursor:pointer;color:#344054;box-sizing:border-box}.pole-location-section-option input{margin:0}.pole-location-section-option.is-checked{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.pole-location-section-code{font-weight:600;color:#111827}.pole-location-section-option.is-checked .pole-location-section-code{color:#1d4ed8}.pole-location-section-length{font-size:12px;color:#667085}.pole-location-section-option.is-checked .pole-location-section-length{color:#1d4ed8}.pole-location-section-empty{color:#667085;font-size:13px}.pole-location-create-road-card{border:1px solid #e4e7ec;background:linear-gradient(180deg,#f8fbff,#fff);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:16px}.pole-location-create-road-card-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.pole-location-create-road-card-header h4{margin:0;font-size:15px;color:#111827}.pole-location-create-road-card-header span{color:#667085;font-size:12px}.pole-location-create-road-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.pole-location-create-road-meta-item{border-radius:12px;background:#fff;border:1px solid #e4e7ec;padding:12px;display:flex;flex-direction:column;gap:6px}.pole-location-create-road-meta-item span{color:#667085;font-size:12px}.pole-location-create-road-meta-item strong{color:#111827;font-size:14px}.pole-location-create-error{border-radius:10px;border:1px solid #fecdca;background:#fef3f2;color:#b42318;padding:10px 12px;font-size:13px}.pole-location-create-footer{display:flex;justify-content:flex-end;gap:10px}@media(max-width:900px){.pole-location-create-grid,.pole-location-create-road-grid,.pole-location-create-road-meta{grid-template-columns:1fr}.pole-location-create-panel-header,.pole-location-create-road-card-header{flex-direction:column;align-items:flex-start}}.pole-location-work-order-detail,.pole-location-detail-content{display:flex;flex-direction:column;gap:20px}.pole-location-detail-card{background:#fff;border-radius:20px;border:1px solid #dbe7ff;padding:20px 22px;box-shadow:0 12px 30px #2563eb14}.pole-location-detail-card-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.pole-location-detail-card-header h3{margin:0;font-size:18px;color:#102a43}.pole-location-detail-card-header span{color:#5b6b7f;font-size:13px}.pole-location-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}.pole-location-detail-grid div{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-radius:14px;background:#f8fbff}.pole-location-detail-grid div.is-wide{grid-column:1 / -1}.pole-location-detail-grid span,.pole-location-detail-summary span{font-size:12px;color:#7b8ba1}.pole-location-detail-grid strong,.pole-location-detail-summary strong{color:#102a43;font-size:14px}.pole-location-detail-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}.pole-location-detail-summary div{padding:14px 16px;border-radius:14px;background:linear-gradient(135deg,#eff6ff,#f8fbff);border:1px solid #dbe7ff;display:flex;flex-direction:column;gap:6px}.pole-location-detail-tip{margin-bottom:16px;border:1px solid #dbe7ff}.pole-location-detail-tags{display:flex;flex-wrap:wrap;gap:10px}.tag,.status-tag{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;border-radius:999px;background:#eff6ff;color:#2563eb;font-size:12px;font-weight:600}.pole-location-map-panel{position:relative;min-height:360px;border-radius:18px;overflow:hidden;border:1px solid #dbe7ff;background:#edf4ff;margin-bottom:16px}.pole-location-map-canvas{width:100%;height:360px}.pole-location-map-placeholder,.pole-location-map-error,.pole-location-detail-placeholder,.pole-location-detail-empty{padding:18px;border-radius:14px;background:#f8fbff;color:#5b6b7f}.pole-location-detail-error{padding:16px 18px;border-radius:14px;background:#fff1f2;color:#be123c;border:1px solid #fecdd3}.pole-location-map-placeholder,.pole-location-map-error{position:absolute;z-index:2;top:16px;left:16px;max-width:calc(100% - 32px)}.pole-location-preview-table{overflow-x:auto}.pole-location-preview-table table{width:100%;min-width:760px;border-collapse:collapse}.pole-location-preview-table th,.pole-location-preview-table td{padding:12px 10px;border-bottom:1px solid #e6eefb;text-align:left;font-size:13px;color:#243b53}.pole-location-preview-table th{color:#486581;font-weight:600}.pole-location-preview-table tbody tr{cursor:pointer}.pole-location-preview-table tbody tr.is-active{background:#eff6ff}.pole-location-row-actions{display:flex;gap:8px;flex-wrap:wrap}.pole-location-row-readonly{color:#7b8ba1;font-size:12px}.action-btn.secondary{background:#fff;color:#2563eb;border:1px solid #bfd3ff}.mono{font-family:Consolas,Courier New,monospace}.pole-location-timeline{display:flex;flex-direction:column;gap:14px}.pole-location-timeline-item{display:grid;grid-template-columns:18px 1fr;gap:12px}.pole-location-timeline-dot{width:10px;height:10px;margin-top:6px;border-radius:50%;background:#2563eb;box-shadow:0 0 0 4px #2563eb1f}.pole-location-timeline-item div{display:flex;flex-direction:column;gap:4px}.pole-location-timeline-item strong{color:#102a43}.pole-location-timeline-item span{color:#5b6b7f;font-size:13px}.pole-location-timeline-meta,.pole-location-timeline-note{color:#7b8ba1}@media(max-width:900px){.pole-location-detail-grid,.pole-location-detail-summary{grid-template-columns:1fr}.pole-location-map-panel,.pole-location-map-canvas{min-height:300px;height:300px}}.planned-workorder-page{display:flex;flex-direction:column;gap:var(--section-gap);padding:0 var(--page-edge-gap) var(--page-bottom-padding)}.planned-feedback{border-radius:10px;border:1px solid #dbeafe;background:#eff6ff;color:#1d4ed8;padding:10px 12px;font-size:13px}.planned-feedback-error{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.planned-workorder-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.search-box{display:inline-flex;align-items:center;gap:6px;background:#f2f4f7;border:1px solid #e0e4ea;border-radius:999px;padding:6px 10px}.search-box input{border:none;background:transparent;outline:none;font-size:13px;color:#1f2937;min-width:220px}.action-btn{border-radius:8px;padding:6px 12px;font-size:12px;border:1px solid transparent;cursor:pointer}.action-btn-light{background:#fff;border-color:#e2e8f0;color:#334155}.planned-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.summary-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px;color:#667085}.summary-card.tone-warning{border-color:#fde4c7;background:linear-gradient(135deg,#fff7ed,#fff 70%)}.summary-card.tone-success{border-color:#c6f1d7;background:linear-gradient(135deg,#f0fff6,#fff 70%)}.summary-card.tone-primary{border-color:#cfe0ff;background:linear-gradient(135deg,#f1f5ff,#fff 70%)}.summary-card.tone-neutral{border-color:#e5e7eb;background:linear-gradient(135deg,#f8fafc,#fff 70%)}.planned-panels{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.9fr);gap:14px}.panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.overview-list,.info-list{display:grid;gap:10px}.overview-item,.info-item{border-radius:10px;padding:12px;background:#f9fafb;border:1px solid #eef1f6}.overview-item{display:flex;justify-content:space-between;gap:14px}.overview-item strong,.info-item strong{display:block;color:#111827;margin-bottom:4px}.overview-item span,.overview-item-meta,.info-item span{font-size:12px;color:#667085}.overview-item-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;white-space:nowrap}.empty-panel{border:1px dashed #cbd5e1;border-radius:10px;padding:18px 12px;text-align:center;font-size:13px;color:#64748b;background:#f8fafc}.planned-table{background:#fff;border:1px solid #e6e8ee;border-radius:12px;padding:14px 16px 16px}.table-header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.status-tabs{display:flex;gap:10px;flex-wrap:wrap}.status-pill{border:1px solid #e0e4ea;background:#fff;border-radius:999px;padding:6px 12px;display:inline-flex;align-items:center;gap:10px;font-size:13px;color:#475467;cursor:pointer}.status-pill .pill-count{background:#f2f4f7;color:#1f2937;border-radius:999px;padding:2px 8px;font-weight:600}.status-pill.is-active{border-color:#3b82f6;color:#1d4ed8;background:#eff6ff}.status-pill.is-active .pill-count{background:#dbeafe;color:#1d4ed8}.table-wrap{overflow-x:auto;margin-top:12px}.table-wrap table{width:100%;border-collapse:collapse;min-width:1180px}.table-wrap th,.table-wrap td{padding:10px 12px;border-bottom:1px dashed #eef1f6;text-align:left;font-size:13px;color:#1f2937;vertical-align:top}.plan-name-cell{display:flex;flex-direction:column;gap:4px}.plan-name-cell strong{color:#111827}.plan-name-cell span{font-size:12px;color:#667085}.status-paused{background:#f2f4f7;color:#475467}.status-done{background:#eef4ff;color:#175cd3}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.link-btn.is-danger{color:#dc2626}.link-btn:disabled{color:#94a3b8;cursor:not-allowed}.table-footer{display:flex;justify-content:flex-end;align-items:center;padding-top:12px;font-size:13px;color:#475467}@media(max-width:1200px){.planned-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.planned-panels{grid-template-columns:1fr}.overview-item{flex-direction:column}.overview-item-meta{align-items:flex-start}}@media(max-width:768px){.planned-summary{grid-template-columns:1fr}.search-box input{min-width:150px}}.new-patrol-plan-page{min-height:calc(100vh - var(--app-header-height));padding-bottom:20px}.new-patrol-plan-card{margin:0 var(--page-edge-gap) 20px;background:#fff;border:1px solid #e6e8ee;border-radius:12px;padding:18px;box-shadow:0 8px 18px #0f172a0d;display:flex;flex-direction:column;gap:18px}.new-patrol-plan-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.new-patrol-plan-card-header h3{margin:0;font-size:16px;color:#111827}.new-patrol-plan-card-header span{font-size:12px;color:#667085}.new-patrol-plan-form-grid{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:14px 16px}.new-patrol-plan-form-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#475467}.new-patrol-plan-form-grid input,.new-patrol-plan-form-grid select{height:38px;border-radius:8px;border:1px solid #d0d5dd;background:#fff;padding:0 12px;font-size:13px;color:#111827}.new-patrol-plan-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:14px;border-radius:10px;background:#f8fafc;border:1px solid #e5e7eb}.new-patrol-plan-summary span{display:block;font-size:12px;color:#667085}.new-patrol-plan-summary strong{display:block;margin-top:6px;font-size:14px;color:#111827}.new-patrol-plan-actions{display:flex;justify-content:flex-end;gap:10px}@media(max-width:900px){.new-patrol-plan-form-grid,.new-patrol-plan-summary{grid-template-columns:1fr}.new-patrol-plan-actions{flex-direction:column;align-items:stretch}}.patrol-plan-page{padding-bottom:var(--page-bottom-padding)}.patrol-feedback{margin:0 var(--page-edge-gap) var(--component-gap);padding:10px 12px;border-radius:10px;background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8;font-size:13px}.patrol-feedback-error{background:#fef2f2;border-color:#fecaca;color:#b42318}.patrol-header-actions{display:flex;gap:var(--component-gap);align-items:center;flex-wrap:wrap}.patrol-header-actions select{height:34px;border-radius:8px;border:1px solid #d0d5dd;background:#fff;padding:0 10px;font-size:13px;color:#344054}.status-chip{padding:6px 12px;border-radius:999px;background:#f2f4f7;color:#475467;font-size:12px;border:1px dashed #d0d5dd}.patrol-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--component-gap);margin:0 var(--page-edge-gap) var(--section-gap)}.summary-card{background:#fff;border:1px solid #e6e8ee;border-radius:12px;padding:14px 16px;box-shadow:0 8px 18px #0f172a0d}.summary-meta{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#667085}.summary-title{font-weight:600}.summary-note{font-size:12px}.summary-value{margin-top:8px;font-size:24px;font-weight:700;color:#111827}.summary-card.tone-success{border-color:#c6f1d7}.summary-card.tone-warning{border-color:#fde4c7}.summary-card.tone-danger{border-color:#fbd0d0}.summary-card.tone-primary{border-color:#cfe0ff}.patrol-charts{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--section-gap);margin:0 var(--page-edge-gap) var(--section-gap)}.panel-card{background:#fff;border:1px solid #e6e8ee;border-radius:12px;padding:14px 16px 16px;box-shadow:0 8px 18px #0f172a0d}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.panel-header h3{margin:0;font-size:16px;color:#111827}.panel-header span{font-size:12px;color:#667085}.column-chart{position:relative;height:248px;border-radius:12px;border:1px dashed #d0d5dd;background:linear-gradient(180deg,#f8fafc,#fff);overflow:hidden}.column-grid{position:absolute;inset:18px 18px 36px;background-image:linear-gradient(#e5e7eb 1px,transparent 1px),linear-gradient(90deg,#e5e7eb 1px,transparent 1px);background-size:100% 25%,16.66% 100%;opacity:.5}.column-bars{position:absolute;inset:30px 24px 42px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;align-items:end}.column-bars span{display:block;align-self:end;min-height:20px;border-radius:8px 8px 2px 2px}.chart-axis-labels{position:absolute;left:24px;right:24px;bottom:14px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;font-size:12px;color:#667085;text-align:center}.pie-chart{position:relative;width:220px;height:220px;margin:0 auto 12px;border-radius:50%;background:conic-gradient(#3b82f6 0 46%,#f97316 46% 78%,#10b981 78% 100%)}.pie-hole{position:absolute;inset:28px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px #eef1f6}.pie-hole strong{font-size:22px;color:#111827}.pie-hole span{font-size:12px;color:#667085}.chart-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;font-size:12px;color:#475467}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:6px}.dot-primary{background:#3b82f6}.dot-warning{background:#f97316}.dot-success{background:#10b981}.patrol-table{margin:0 var(--page-edge-gap) var(--section-gap);background:#fff;border:1px solid #e6e8ee;border-radius:12px;padding:14px 16px 16px}.table-header{display:flex;justify-content:space-between;align-items:center;gap:var(--component-gap);margin-bottom:12px}.table-header h3{margin:0;font-size:16px;color:#111827}.table-header select{height:34px;border-radius:8px;border:1px solid #d0d5dd;background:#fff;padding:0 10px;font-size:13px;color:#344054}.table-wrap{overflow-x:auto}.table-wrap table{width:100%;border-collapse:collapse;min-width:920px}.table-wrap th,.table-wrap td{padding:10px 12px;border-bottom:1px dashed #eef1f6;text-align:left;font-size:13px;color:#1f2937}.table-wrap th{background:#f2f4f7;font-weight:600;color:#344054}.primary{font-weight:600}.mono{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px}.status-tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:8px;font-size:12px;font-weight:600}.status-active{background:#ecfdf3;color:#027a48}.status-pending{background:#fff7ed;color:#c2410c}.status-doing{background:#eef4ff;color:#175cd3}.status-done{background:#ecfdf3;color:#027a48}.status-delay{background:#fef3f2;color:#b42318}.task-source-tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600}.task-source-auto{background:#eef4ff;color:#175cd3}.task-source-manual{background:#f4f3ff;color:#6941c6}.row-actions{display:flex;gap:8px}.link-btn{border:none;background:transparent;color:#2563eb;cursor:pointer;font-size:12px;padding:0}.link-btn:hover{color:#1d4ed8}.empty{text-align:center;padding:24px;color:#98a2b3}.action-btn{border:none;border-radius:8px;padding:8px 12px;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.action-btn-primary{background:#2563eb;color:#fff}@media(max-width:1100px){.patrol-charts{grid-template-columns:1fr}}@media(max-width:900px){.table-header{flex-direction:column;align-items:flex-start}}.patrol-plan-detail-page{min-height:calc(100vh - var(--app-header-height));padding-bottom:20px}.patrol-detail-feedback{margin:0 var(--page-edge-gap) var(--component-gap);padding:10px 12px;border-radius:10px;background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8;font-size:13px}.patrol-detail-feedback-error{background:#fef2f2;border-color:#fecaca;color:#b42318}.patrol-detail-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 var(--page-edge-gap) var(--section-gap)}.patrol-detail-summary-card,.patrol-detail-card{background:#fff;border:1px solid #e6e8ee;border-radius:12px;box-shadow:0 8px 18px #0f172a0d}.patrol-detail-summary-card{padding:14px 16px}.patrol-detail-summary-card span{display:block;font-size:12px;color:#667085}.patrol-detail-summary-card strong{display:block;margin-top:8px;font-size:22px;color:#111827}.patrol-detail-card{margin:0 var(--page-edge-gap) var(--section-gap);padding:16px}.patrol-detail-card-header{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.patrol-detail-card-header h3{margin:0;font-size:16px;color:#111827}.patrol-detail-card-header span{font-size:12px;color:#667085}.patrol-detail-form-grid{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:14px 16px}.patrol-detail-form-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#475467}.patrol-detail-form-grid input,.patrol-detail-form-grid select{height:38px;border-radius:8px;border:1px solid #d0d5dd;background:#fff;padding:0 12px;font-size:13px;color:#111827}.patrol-detail-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.patrol-detail-task-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}.patrol-detail-task-toolbar select{height:34px;border-radius:8px;border:1px solid #d0d5dd;background:#fff;padding:0 10px;font-size:13px;color:#344054}.patrol-detail-task-toolbar-meta{font-size:12px;color:#667085}.patrol-detail-batch-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}.patrol-detail-batch-toolbar select{height:34px;border-radius:8px;border:1px solid #d0d5dd;background:#fff;padding:0 10px;font-size:13px;color:#344054}.patrol-detail-batch-meta{font-size:12px;color:#667085}.patrol-batch-danger{color:#b42318}.patrol-detail-pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap}.patrol-detail-pagination-meta{font-size:12px;color:#667085}.patrol-detail-pagination-actions{display:flex;gap:10px}.patrol-detail-task-create{margin-bottom:16px;padding:14px;border:1px solid #e6e8ee;border-radius:12px;background:linear-gradient(180deg,#f8fbff,#fff)}.patrol-detail-task-edit{margin-bottom:16px;padding:14px;border:1px solid #d6e4ff;border-radius:12px;background:linear-gradient(180deg,#eef4ff,#fff)}.patrol-detail-task-create-header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.patrol-detail-task-create-header h4{margin:0;font-size:14px;color:#111827}.patrol-detail-task-create-header span{font-size:12px;color:#667085}.patrol-detail-task-form-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px 16px}.patrol-detail-task-form-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#475467}.patrol-detail-task-form-grid input,.patrol-detail-task-form-grid select{height:38px;border-radius:8px;border:1px solid #d0d5dd;background:#fff;padding:0 12px;font-size:13px;color:#111827}.patrol-detail-task-form-wide{grid-column:1 / -1}.patrol-detail-task-create-actions{display:flex;justify-content:flex-end;margin-top:14px}.patrol-detail-task-edit-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.link-btn-danger{color:#b42318}.link-btn-danger:hover{color:#912018}.patrol-detail-table-wrap{overflow-x:auto}.patrol-detail-table-wrap table{width:100%;border-collapse:collapse;min-width:860px}.patrol-detail-table-wrap th,.patrol-detail-table-wrap td{padding:10px 12px;border-bottom:1px dashed #eef1f6;text-align:left;font-size:13px;color:#1f2937}.patrol-detail-table-wrap th{background:#f2f4f7;font-weight:600;color:#344054}.patrol-task-drawer-mask{position:fixed;inset:0;background:#0f172a5c;display:flex;justify-content:flex-end;z-index:1200}.patrol-task-drawer{width:min(420px,100%);height:100%;background:#fff;box-shadow:-12px 0 32px #0f172a2e;padding:18px 16px;display:flex;flex-direction:column;gap:16px}.patrol-task-drawer-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.patrol-task-drawer-header h3{margin:0 0 4px;font-size:18px;color:#111827}.patrol-task-drawer-header span{font-size:12px;color:#667085}.patrol-task-drawer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.patrol-task-drawer-item{padding:12px;border-radius:10px;background:#f8fafc;border:1px solid #e6e8ee}.patrol-task-drawer-item span{display:block;font-size:12px;color:#667085;margin-bottom:6px}.patrol-task-drawer-item strong{font-size:14px;color:#111827;word-break:break-word}.patrol-task-drawer-item-wide{grid-column:1 / -1}.patrol-task-drawer-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:auto}@media(max-width:900px){.patrol-detail-summary,.patrol-detail-form-grid,.patrol-detail-task-form-grid{grid-template-columns:1fr}.patrol-detail-actions,.patrol-detail-task-edit-actions,.patrol-detail-task-toolbar,.patrol-detail-batch-toolbar,.patrol-detail-pagination{flex-direction:column;align-items:stretch}.patrol-detail-pagination-actions{flex-direction:column}.patrol-task-drawer{width:100%}.patrol-task-drawer-grid{grid-template-columns:1fr}.patrol-task-drawer-actions{flex-direction:column;align-items:stretch}}.ops-overview-page{display:flex;flex-direction:column;gap:var(--section-gap);padding:0 var(--page-edge-gap) var(--page-bottom-padding)}.ops-overview-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--component-gap)}.ops-overview-feedback{padding:10px 14px;border:1px solid #dbe3f1;border-radius:12px;background:#f8fbff;color:#44556f;font-size:13px}.ops-overview-summary-card{background:#fff;border-radius:12px;border:1px solid #eef2f7;box-shadow:0 6px 14px #0f172a14;padding:16px;display:flex;flex-direction:column;gap:10px}.ops-overview-summary-header{display:flex;justify-content:space-between;color:#64748b;font-size:13px}.ops-overview-summary-icon{width:28px;height:28px;border-radius:50%;background:#f1f5f9;box-shadow:inset 0 0 0 1px #0f172a14;display:inline-flex;align-items:center;justify-content:center;font-size:14px}.ops-overview-summary-value{font-size:24px;font-weight:700;color:#0f172a}.ops-overview-summary-meta{font-size:12px;color:#94a3b8}.ops-overview-summary-body{display:flex;align-items:baseline;gap:12px;min-height:32px}.ops-overview-summary-card.tone-primary .ops-overview-summary-value{color:#2563eb}.ops-overview-summary-card.tone-success .ops-overview-summary-value{color:#16a34a}.ops-overview-summary-card.tone-warning .ops-overview-summary-value{color:#f97316}.ops-overview-summary-card.tone-danger .ops-overview-summary-value{color:#ef4444}.ops-overview-summary-icon.tone-primary{background:#dbeafe}.ops-overview-summary-icon.tone-success{background:#dcfce7}.ops-overview-summary-icon.tone-warning{background:#ffedd5}.ops-overview-summary-icon.tone-danger{background:#fee2e2}.ops-overview-header-actions{display:flex;gap:12px}.ops-overview-icon-btn{border:none;background:transparent;position:relative;font-size:18px;cursor:pointer}.ops-overview-icon-dot{position:absolute;width:8px;height:8px;border-radius:50%;background:#2563eb;top:-2px;right:-2px}.ops-overview-card{background:#fff;border-radius:12px;border:1px solid #eef2f7;box-shadow:0 1px 4px #0f172a0f;padding:16px}.ops-overview-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.ops-overview-card-header h3{margin:0;font-size:16px;color:#0f172a}.ops-overview-card-header span{color:#94a3b8;font-size:12px}.ops-overview-link-btn{border:none;background:transparent;color:#2563eb;font-size:12px;cursor:pointer;padding:0}.ops-overview-link-btn:hover{text-decoration:underline}.ops-overview-content{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,.85fr);gap:var(--section-gap)}.ops-overview-left,.ops-overview-right{display:flex;flex-direction:column;gap:var(--section-gap)}.ops-overview-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--section-gap)}.ops-overview-chart-placeholder{border:1px dashed #d5dbe7;border-radius:10px;padding:16px;color:#94a3b8;display:flex;flex-direction:column;gap:8px;min-height:220px;justify-content:center}.ops-overview-chart-placeholder strong{font-size:28px;color:#0f172a}.ops-overview-chart-placeholder small{font-size:12px;color:#c0c6d4}.ops-overview-schedule-list{display:flex;flex-direction:column;gap:12px}.ops-overview-schedule-item{border:1px solid #eef2f7;border-radius:10px;padding:12px 12px 12px 16px;display:flex;flex-direction:column;gap:8px;background:#f8fafc;position:relative}.ops-overview-schedule-item:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:999px;background:#3b82f6}.ops-overview-schedule-meta{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#64748b}.ops-overview-schedule-day,.ops-overview-schedule-title{font-weight:600;color:#0f172a}.ops-overview-schedule-footer{display:flex;justify-content:space-between;font-size:12px;color:#94a3b8}.ops-overview-urgent-list{display:flex;flex-direction:column;gap:12px}.ops-overview-urgent-item{border:1px solid #f4c1c4;border-radius:10px;padding:12px;background:#fff7f8;display:flex;flex-direction:column;gap:8px}.ops-overview-urgent-header{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#64748b}.ops-overview-urgent-title{font-weight:600;color:#0f172a}.ops-overview-urgent-tags{display:flex;gap:8px}.ops-overview-urgent-tag{background:#fb923c;color:#fff;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600}.ops-overview-urgent-meta{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#64748b}.ops-overview-urgent-actions{display:flex;justify-content:flex-end}.ops-overview-primary-btn{border:none;background:#2563eb;color:#fff;border-radius:8px;padding:6px 12px;font-size:12px;cursor:pointer}.ops-overview-table-card{padding:0}.ops-overview-table .component-header{flex-wrap:wrap;gap:10px}.ops-overview-table .side-gutter-table__table-wrap{overflow-x:auto}.ops-overview-table .side-gutter-table__table-wrap table{min-width:0;table-layout:auto}.ops-overview-table th,.ops-overview-table td{white-space:normal;line-height:1.4;height:auto;padding:10px 0}.ops-overview-table th{font-weight:600}.ops-overview-table-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.ops-overview-select{border:1px solid #e2e8f0;border-radius:8px;padding:4px 10px;font-size:12px;color:#334155;background:#fff}.ops-overview-table .side-gutter-table__table-wrap{padding-bottom:8px}.ops-overview-table .side-gutter-table__pagination{padding:12px 16px 16px}.ops-overview-status-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:2px 8px;font-size:11px;line-height:1;background:#e2e8f0;color:#475569}.ops-overview-status-pill.active,.ops-overview-status-pill.status-doing{background:#dbeafe;color:#2563eb}.ops-overview-status-pill.done,.ops-overview-status-pill.status-done{background:#dcfce7;color:#16a34a}.ops-overview-status-pill.status-todo{background:#fee2e2;color:#ef4444}@media(max-width:1200px){.ops-overview-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-overview-content,.ops-overview-charts{grid-template-columns:1fr}}@media(max-width:768px){.ops-overview-summary{grid-template-columns:1fr}}.regular-task-page{display:flex;flex-direction:column;gap:var(--section-gap);padding:0 var(--page-edge-gap) var(--page-bottom-padding)}.regular-task-feedback{border-radius:10px;border:1px solid #dbeafe;background:#eff6ff;color:#1d4ed8;padding:10px 12px;font-size:13px}.regular-task-feedback-error{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.regular-task-header-actions{display:flex;gap:10px}.regular-task-btn{border-radius:8px;padding:6px 12px;font-size:12px;border:1px solid transparent;cursor:pointer}.regular-task-btn.primary{background:#2563eb;color:#fff}.regular-task-btn.ghost{background:#fff;border-color:#e2e8f0;color:#334155}.regular-task-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--component-gap)}.regular-task-summary-card{background:#fff;border-radius:12px;border:1px solid #eef2f7;box-shadow:0 6px 14px #0f172a14;padding:16px;display:flex;flex-direction:column;gap:14px}.regular-task-summary-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.regular-task-summary-title{font-size:13px;color:#64748b}.regular-task-summary-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.regular-task-summary-value{font-size:22px;font-weight:700;color:#0f172a}.regular-task-summary-meta{font-size:12px;color:#94a3b8;white-space:nowrap}.regular-task-summary-card.tone-danger .regular-task-summary-value{color:#ef4444}.regular-task-summary-card.tone-primary .regular-task-summary-value{color:#2563eb}.regular-task-summary-card.tone-warning .regular-task-summary-value{color:#f97316}.regular-task-summary-card.tone-success .regular-task-summary-value{color:#16a34a}.regular-task-summary-card.tone-slate .regular-task-summary-value{color:#0f172a}.regular-task-content{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,.7fr);gap:var(--section-gap)}.regular-task-table-card{background:#fff;border-radius:12px;border:1px solid #eef2f7;box-shadow:0 1px 4px #0f172a0f;overflow:hidden}.regular-task-table-actions{display:flex;align-items:center;gap:10px}.regular-task-search{border:1px solid #e2e8f0;border-radius:8px;padding:4px 10px;font-size:12px;min-width:180px}.regular-task-select{border:1px solid #e2e8f0;border-radius:8px;padding:4px 10px;font-size:12px;color:#334155;background:#fff}.regular-task-table .side-gutter-table__table-wrap{overflow-x:auto}.regular-task-table .side-gutter-table__table-wrap table{min-width:960px;table-layout:auto}.regular-task-table th,.regular-task-table td{white-space:normal;line-height:1.4;height:auto;padding:10px 0}.regular-task-table .side-gutter-table__pagination{padding:12px 16px 16px}.regular-task-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:2px 8px;font-size:11px;line-height:1;background:#e2e8f0;color:#475569}.regular-task-status.status-enabled{background:#dcfce7;color:#16a34a}.regular-task-status.status-disabled{background:#fee2e2;color:#ef4444}.regular-task-actions{display:flex;gap:8px}.regular-task-actions button{border:none;background:transparent;color:#2563eb;cursor:pointer;font-size:12px}.regular-task-plan-card{background:#fff;border-radius:12px;border:1px solid #eef2f7;box-shadow:0 1px 4px #0f172a0f;padding:16px;display:flex;flex-direction:column;gap:12px}.regular-task-card-header h3{margin:0;font-size:16px;color:#0f172a}.regular-task-card-header span{font-size:12px;color:#94a3b8}.regular-task-plan-list{display:flex;flex-direction:column;gap:12px}.regular-task-plan-item{border:1px solid #eef2f7;border-radius:10px;padding:12px;background:#f8fafc;display:flex;flex-direction:column;gap:6px}.regular-task-plan-day{font-weight:600;color:#0f172a;font-size:12px}.regular-task-plan-title{font-weight:600;color:#0f172a}.regular-task-plan-footer{display:flex;justify-content:space-between;font-size:12px;color:#94a3b8}.regular-task-plan-status{color:#16a34a;font-weight:600}.regular-task-plan-empty{border:1px dashed #cbd5e1;border-radius:10px;padding:18px 12px;text-align:center;font-size:13px;color:#64748b;background:#f8fafc}@media(max-width:1200px){.regular-task-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.regular-task-content{grid-template-columns:1fr}}@media(max-width:768px){.regular-task-summary{grid-template-columns:1fr}.regular-task-table-actions{flex-wrap:wrap}}.regular-task-plan-detail-page{display:flex;flex-direction:column;gap:var(--section-gap);padding:0 var(--page-edge-gap) var(--page-bottom-padding)}.regular-task-plan-detail-actions{display:flex;gap:10px;flex-wrap:wrap}.regular-task-plan-detail-feedback{border-radius:10px;border:1px solid #dbeafe;background:#eff6ff;color:#1d4ed8;padding:10px 12px;font-size:13px}.regular-task-plan-detail-feedback-error{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.regular-task-plan-detail-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.regular-task-plan-detail-summary-card,.regular-task-plan-detail-card{background:#fff;border-radius:12px;border:1px solid #eef2f7;box-shadow:0 1px 4px #0f172a0f}.regular-task-plan-detail-summary-card{padding:16px;display:flex;flex-direction:column;gap:10px}.regular-task-plan-detail-summary-card span{font-size:13px;color:#64748b}.regular-task-plan-detail-summary-card strong{font-size:22px;color:#0f172a}.regular-task-plan-detail-main{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.regular-task-plan-detail-card{padding:18px}.regular-task-plan-detail-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.regular-task-plan-detail-card-header h3{margin:0;font-size:16px;color:#0f172a}.regular-task-plan-detail-card-header span{font-size:12px;color:#94a3b8}.regular-task-plan-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.regular-task-plan-detail-grid div{display:flex;flex-direction:column;gap:6px;border:1px solid #eef2f7;border-radius:10px;padding:12px;background:#f8fafc}.regular-task-plan-detail-grid span{font-size:12px;color:#64748b}.regular-task-plan-detail-grid strong{color:#0f172a;line-height:1.5}.regular-task-plan-detail-grid-wide{grid-column:1 / -1}.regular-task-plan-detail-table-wrap{overflow-x:auto}.regular-task-plan-detail-table-wrap table{width:100%;border-collapse:collapse;min-width:720px}.regular-task-plan-detail-table-wrap th,.regular-task-plan-detail-table-wrap td{padding:12px 8px;border-bottom:1px solid #eef2f7;text-align:left;font-size:13px}.regular-task-plan-detail-table-wrap th{color:#475569;font-weight:600}.regular-task-plan-detail-empty{text-align:center;color:#94a3b8}@media(max-width:900px){.regular-task-plan-detail-summary,.regular-task-plan-detail-grid{grid-template-columns:1fr}}.regular-task-plan-form-page{display:flex;flex-direction:column;gap:var(--section-gap);padding:0 var(--page-edge-gap) var(--page-bottom-padding)}.regular-task-plan-form-actions{display:flex;gap:10px}.regular-task-plan-form-feedback{border-radius:10px;border:1px solid #dbeafe;background:#eff6ff;color:#1d4ed8;padding:10px 12px;font-size:13px}.regular-task-plan-form-feedback-error{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.regular-task-plan-form-card,.regular-task-plan-form-preview{background:#fff;border-radius:12px;border:1px solid #eef2f7;box-shadow:0 1px 4px #0f172a0f;padding:18px}.regular-task-plan-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.regular-task-plan-form-grid label{display:flex;flex-direction:column;gap:8px}.regular-task-plan-form-grid span{font-size:13px;color:#475569}.regular-task-plan-form-grid input,.regular-task-plan-form-grid select,.regular-task-plan-form-grid textarea{width:100%;border:1px solid #dbe3f0;border-radius:10px;padding:10px 12px;font-size:14px;color:#0f172a;background:#fff;outline:none}.regular-task-plan-form-grid textarea{resize:vertical}.regular-task-plan-form-grid input:focus,.regular-task-plan-form-grid select:focus,.regular-task-plan-form-grid textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.regular-task-plan-form-wide{grid-column:1 / -1}.regular-task-plan-form-preview-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.regular-task-plan-form-preview-header h3{margin:0;font-size:16px;color:#0f172a}.regular-task-plan-form-preview-header span{font-size:12px;color:#94a3b8}.regular-task-plan-form-preview pre{margin:0;padding:14px;border-radius:10px;background:#0f172a;color:#e2e8f0;overflow:auto;font-size:12px;line-height:1.5}@media(max-width:900px){.regular-task-plan-form-grid{grid-template-columns:1fr}}.project-overview-page{display:flex;flex-direction:column;gap:var(--section-gap);padding-bottom:var(--page-bottom-padding)}.project-overview-body{display:flex;flex-direction:column;gap:var(--section-gap);margin:0 var(--page-edge-gap)}.project-page-feedback{border-radius:10px;border:1px solid rgba(37,99,235,.2);background:#2563eb14;color:#1e3a8a;font-size:12px;padding:10px 12px}.project-page-feedback.is-error{border-color:#dc262633;background:#dc262614;color:#991b1b}.project-overview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--component-gap);background:#fff;border-radius:12px;padding:var(--space-3) var(--space-4);border:1px solid rgba(15,23,42,.08)}.project-overview-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--component-gap)}.project-stat-card{background:#fff;border-radius:12px;padding:var(--space-4);border:1px solid rgba(15,23,42,.08);display:flex;flex-direction:column;gap:14px}.project-stat-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.project-stat-label{font-size:12px;color:#64748b}.project-stat-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.project-stat-value{font-size:20px;font-weight:600;color:#0f172a}.project-stat-trend{font-size:11px;color:#16a34a;white-space:nowrap}.project-overview-grid{display:grid;grid-template-columns:380px minmax(0,1fr);gap:var(--section-gap)}.project-overview-panel{background:#fff;border-radius:12px;padding:var(--space-4);border:1px solid rgba(15,23,42,.08);display:flex;flex-direction:column;gap:var(--space-4)}.project-overview-panel-wide{min-height:420px}.project-status-ring{width:140px;height:140px;border-radius:50%;background:conic-gradient(#3b82f6 0 46%,#22c55e 46% 78%,#f97316 78% 92%,#94a3b8 92% 100%)}.project-activity{display:flex;flex-direction:column;gap:12px}.project-activity-chart{display:flex;align-items:flex-end;gap:12px;height:120px}.project-activity-bar{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1}.project-activity-bar-inner{width:100%;background:#93c5fd;border-radius:8px}.project-activity-label{font-size:11px;color:#64748b}.project-table-header,.project-table-row{display:grid;grid-template-columns:110px minmax(160px,1fr) 100px 140px 90px 120px;gap:12px;align-items:center}.project-name a:hover{color:#1d4ed8}.project-status-tag.is-已完成{background:#22c55e26;color:#15803d}.project-status-tag.is-暂停{background:#94a3b833;color:#475569}.project-actions{display:inline-flex;gap:8px}@media(max-width:1200px){.project-overview-grid{grid-template-columns:1fr}.project-overview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.project-in-progress-page{display:flex;flex-direction:column;gap:var(--section-gap);padding-bottom:var(--page-bottom-padding)}.project-in-progress-body{display:flex;flex-direction:column;gap:var(--section-gap);margin:0 var(--page-edge-gap)}.project-page-feedback{border:1px solid #dbeafe;background:#eff6ff;color:#1e40af;border-radius:10px;padding:8px 12px;font-size:12px}.project-page-feedback.is-error{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.project-page-feedback.is-success{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.project-in-progress-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--component-gap);background:#fff;border-radius:12px;padding:var(--space-3) var(--space-4);border:1px solid rgba(15,23,42,.08)}.project-year-tabs{display:inline-flex;align-items:center;gap:8px}.project-year-tab{border:1px solid #e2e8f0;background:#f8fafc;color:#334155;padding:6px 14px;border-radius:999px;font-size:12px;cursor:pointer}.project-year-tab.is-active{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.project-toolbar-actions{display:inline-flex;align-items:center;gap:10px}.project-search{display:inline-flex;align-items:center;gap:6px;background:#f1f5f9;border-radius:999px;padding:6px 12px}.project-search-icon{font-size:12px}.project-search-input{border:none;background:transparent;font-size:12px;outline:none;width:180px}.project-in-progress-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--component-gap)}.project-stat-card{background:#fff;border-radius:12px;padding:var(--space-4);border:1px solid rgba(15,23,42,.08);box-shadow:0 6px 14px #0f172a14;display:flex;flex-direction:column;gap:12px}.project-stat-header{display:flex;justify-content:space-between;align-items:center}.project-stat-label{font-size:13px;color:#64748b}.project-stat-body{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.project-stat-value{font-size:24px;font-weight:600;color:#0f172a}.project-stat-trend{font-size:11px;color:#16a34a}.project-in-progress-grid{display:grid;grid-template-columns:360px minmax(0,1fr);gap:var(--section-gap)}.project-in-progress-panel{background:#fff;border-radius:12px;padding:var(--space-4);border:1px solid rgba(15,23,42,.08);display:flex;flex-direction:column;gap:var(--space-4)}.project-in-progress-panel-wide{min-height:420px}.project-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.project-panel-header h3{font-size:15px;color:#0f172a}.project-panel-subtitle{font-size:12px;color:#94a3b8}.project-panel-actions{display:inline-flex;align-items:center;gap:8px}.project-status-body{display:flex;align-items:center;gap:16px}.project-status-chart{position:relative;width:140px;height:140px}.project-status-ring{width:140px;height:140px;border-radius:50%;background:conic-gradient(#3b82f6 0 62%,#f97316 62% 80%,#a3a3a3 80% 92%,#22c55e 92% 100%)}.project-status-ring-center{position:absolute;inset:22px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;color:#64748b}.project-status-legend{display:flex;flex-direction:column;gap:8px}.project-status-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#334155}.project-status-dot{width:8px;height:8px;border-radius:50%}.project-status-value{margin-left:auto;color:#64748b}.project-table{display:flex;flex-direction:column;gap:8px}.project-table-header,.project-table-row{display:grid;grid-template-columns:110px minmax(160px,1fr) 100px 140px 90px 170px;gap:12px;align-items:center}.project-table-header{font-size:12px;color:#64748b}.project-table-row{background:#f8fafc;border-radius:10px;padding:10px 12px;font-size:12px;color:#0f172a}.project-name{font-weight:600}.project-name a{color:inherit;text-decoration:none}.project-name a:hover{text-decoration:underline}.project-actions{display:inline-flex;gap:8px;flex-wrap:wrap}.project-table-empty{font-size:12px;color:#94a3b8;text-align:center;padding:18px 0}.project-status-select{border:1px solid #e2e8f0;border-radius:8px;padding:6px 10px;font-size:12px;color:#334155;background:#fff}.project-create-modal-backdrop{position:fixed;inset:0;background:#0f172a73;z-index:1200;display:flex;align-items:center;justify-content:center;padding:24px}.project-create-modal{width:min(860px,100%);max-height:calc(100vh - 48px);overflow:auto;background:#fff;border-radius:14px;box-shadow:0 18px 50px #0f172a47;display:flex;flex-direction:column}.project-create-modal-header{padding:16px 20px;border-bottom:1px solid #e2e8f0}.project-create-modal-header h3{margin:0;font-size:16px;color:#0f172a}.project-create-modal-body{padding:16px 20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.project-create-modal-error{grid-column:1 / -1;border:1px solid #fecaca;background:#fef2f2;color:#b91c1c;border-radius:10px;padding:8px 10px;font-size:12px}.project-create-field{display:flex;flex-direction:column;gap:6px}.project-create-field span{font-size:12px;color:#475569}.project-create-field input,.project-create-field select,.project-create-field textarea{border:1px solid #dbe4ef;border-radius:8px;padding:8px 10px;font-size:13px;color:#0f172a;background:#fff}.project-create-field textarea{resize:vertical}.project-create-rule-preview{min-height:37px;border:1px dashed #bfdbfe;border-radius:8px;background:#f8fbff;color:#1e3a8a;font-size:12px;display:flex;align-items:center;padding:8px 10px}.project-create-field-wide{grid-column:1 / -1}.project-create-modal-actions{padding:14px 20px;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end;gap:10px}@media(max-width:1200px){.project-in-progress-grid{grid-template-columns:1fr}.project-in-progress-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.project-table-header,.project-table-row{grid-template-columns:100px minmax(140px,1fr) 90px 120px 80px 150px;gap:8px}.project-create-modal-body{grid-template-columns:1fr}}.project-detail-page{display:flex;flex-direction:column;gap:var(--section-gap);padding-bottom:var(--page-bottom-padding)}.project-detail-body{display:flex;flex-direction:column;gap:var(--section-gap);margin:0 var(--page-edge-gap)}.project-detail-tabs{background:#fff;border-radius:12px;border:1px solid rgba(15,23,42,.08);padding:var(--space-3) var(--space-4)}.project-detail-tab-list{display:inline-flex;align-items:center;gap:8px}.project-detail-tab{border:1px solid #e2e8f0;background:#f8fafc;color:#334155;padding:6px 14px;border-radius:999px;font-size:12px;cursor:pointer}.project-detail-tab.is-active{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.project-detail-panel{background:#fff;border-radius:12px;padding:var(--space-4);border:1px solid rgba(15,23,42,.08);display:flex;flex-direction:column;gap:var(--space-4)}.project-detail-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.project-detail-panel-header h3{font-size:15px;color:#0f172a}.project-detail-panel-header span{font-size:12px;color:#64748b}.project-detail-summary{display:inline-flex;align-items:center;gap:16px}.project-detail-summary-item{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#64748b}.project-detail-summary-item strong{font-size:14px;color:#0f172a}.project-detail-milestones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.project-detail-milestone{background:#f8fafc;border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:10px}.project-detail-milestone-title{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#0f172a}.project-detail-base-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.project-detail-base-item{background:#f8fafc;border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:6px;font-size:12px;color:#64748b}.project-detail-base-item strong{color:#0f172a}.project-detail-primary-button{border:none;background:#2563eb;color:#fff;border-radius:8px;padding:8px 14px;font-size:12px;cursor:pointer}.project-detail-primary-button:hover{background:#1d4ed8}.project-detail-inline-error,.project-detail-modal-error{border:1px solid #fecaca;background:#fef2f2;color:#b91c1c;border-radius:10px;padding:8px 10px;font-size:12px}.project-detail-sub-table{display:flex;flex-direction:column;gap:8px}.project-detail-sub-header,.project-detail-sub-row{display:grid;grid-template-columns:minmax(160px,1fr) 120px 160px 100px 120px;gap:12px;align-items:center}.project-detail-sub-header{font-size:12px;color:#64748b}.project-detail-sub-row{background:#f8fafc;border-radius:10px;padding:10px 12px;font-size:12px;color:#0f172a}.project-detail-sub-actions{display:inline-flex;gap:8px;justify-content:flex-start}.text-button{border:none;background:transparent;color:#2563eb;font-size:12px;cursor:pointer}.text-button:hover{text-decoration:underline}.text-button.is-danger{color:#dc2626}.project-detail-sub-empty{text-align:center;font-size:12px;color:#94a3b8;padding:18px 0}.project-detail-empty{margin:0 var(--page-edge-gap);padding:24px;background:#fff;border-radius:12px;border:1px dashed rgba(15,23,42,.12);color:#94a3b8;font-size:12px}.project-progress{display:flex;align-items:center;gap:8px}.project-progress-bar{flex:1;height:6px;background:#e2e8f0;border-radius:999px;overflow:hidden}.project-progress-fill{height:100%;background:#3b82f6}.project-progress-text{font-size:11px;color:#64748b}.project-status-tag{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;font-size:11px;color:#0f172a;background:#e2e8f0}.project-status-tag.is-进行中{background:#3b82f626;color:#1d4ed8}.project-status-tag.is-延期{background:#f9731633;color:#c2410c}.project-status-tag.is-暂停{background:#a3a3a333;color:#525252}.project-status-tag.is-已完成{background:#22c55e33;color:#166534}.project-detail-modal-backdrop{position:fixed;inset:0;background:#0f172a73;z-index:1200;display:flex;align-items:center;justify-content:center;padding:24px}.project-detail-modal{width:min(760px,100%);max-height:calc(100vh - 48px);overflow:auto;background:#fff;border-radius:14px;box-shadow:0 18px 50px #0f172a47;display:flex;flex-direction:column}.project-detail-modal-header{padding:16px 20px;border-bottom:1px solid #e2e8f0}.project-detail-modal-header h3{margin:0;font-size:16px;color:#0f172a}.project-detail-modal-body{padding:16px 20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.project-detail-field{display:flex;flex-direction:column;gap:6px}.project-detail-field span{font-size:12px;color:#475569}.project-detail-field input,.project-detail-field select,.project-detail-field textarea{border:1px solid #dbe4ef;border-radius:8px;padding:8px 10px;font-size:13px;color:#0f172a;background:#fff}.project-detail-field textarea{resize:vertical}.project-detail-field-wide{grid-column:1 / -1}.project-detail-modal-actions{padding:14px 20px;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end;gap:10px}@media(max-width:1200px){.project-detail-panel-header{flex-direction:column;align-items:flex-start}.project-detail-summary{flex-wrap:wrap}.project-detail-milestones{grid-template-columns:1fr}.project-detail-base-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-detail-sub-header,.project-detail-sub-row{grid-template-columns:minmax(140px,1fr) 100px 140px 90px 100px}}@media(max-width:768px){.project-detail-base-grid,.project-detail-modal-body{grid-template-columns:1fr}.project-detail-sub-header{display:none}.project-detail-sub-row{grid-template-columns:1fr;align-items:flex-start}.project-detail-sub-actions{justify-content:flex-start}}.project-progress-page{display:flex;flex-direction:column;gap:var(--section-gap);padding-bottom:var(--page-bottom-padding)}.project-progress-selector{display:inline-flex;align-items:center;gap:8px;background:#fff;border-radius:8px;padding:6px 10px;border:1px solid rgba(15,23,42,.12);font-size:12px;color:#334155}.project-progress-selector select{border:none;background:transparent;font-size:12px;color:#0f172a}.project-progress-body{display:flex;flex-direction:column;gap:var(--section-gap);margin:0 var(--page-edge-gap)}.project-progress-layout{display:grid;grid-template-columns:520px minmax(0,1fr);gap:var(--section-gap);align-items:start}.project-progress-left{display:flex;flex-direction:column;gap:var(--section-gap)}.progress-card{background:#fff;border-radius:12px;border:1px solid rgba(15,23,42,.08);padding:18px;display:flex;flex-direction:column;gap:14px}.progress-card-title{font-size:16px;font-weight:600;color:#0f172a}.progress-card-subtitle{font-size:12px;color:#64748b}.progress-chart{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:center;background:#f8fafc;border-radius:12px;padding:12px}.progress-chart-left{display:flex;flex-direction:column;align-items:center;justify-content:center}.progress-overall-label{font-size:12px;color:#334155;margin-bottom:6px;text-align:center;font-weight:700}.progress-percent{font-size:28px;font-weight:700;color:#22c55e;text-align:center}.bar-chart{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-items:end;height:120px}.bar-chart-item{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:11px;color:#475569}.bar-chart-bar{width:18px;border-radius:6px}.bar-chart-item em{font-style:normal;font-size:10px;color:#94a3b8}.progress-chart-note{font-size:12px;color:#64748b;text-align:right}.progress-list{display:flex;flex-direction:column;gap:10px}.progress-list-empty{font-size:13px;color:#94a3b8;padding-top:6px}.progress-list-item{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:#334155;border-bottom:1px solid #eef2f7;padding-bottom:8px}.project-progress-right{position:relative;padding-left:24px}.milestone-header{display:inline-flex;align-items:center;gap:8px;background:#fff;border-radius:8px;padding:6px 10px;border:1px solid rgba(15,23,42,.12);margin-bottom:12px;font-size:12px}.milestone-header select{border:none;background:transparent;font-size:12px}.milestone-timeline{position:relative;display:flex;flex-direction:column;gap:16px}.milestone-line{position:absolute;left:12px;top:8px;bottom:8px;width:2px;background:#d1d5db}.milestone-row{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:start}.milestone-dot{width:28px;height:28px;border-radius:50%;background:#e5e7eb;display:flex;align-items:center;justify-content:center;font-size:12px;color:#475569;z-index:1}.milestone-row.is-done .milestone-dot{background:#22c55e;color:#fff}.milestone-row.is-active .milestone-dot{background:#2563eb;color:#fff}.milestone-card{background:#f7f8fa;border-radius:14px;padding:16px 18px;display:flex;flex-direction:column;gap:8px}.milestone-card.is-highlight{border:2px solid #1d4ed8}.milestone-card-header{display:grid;grid-template-columns:180px 1fr;align-items:center;gap:12px;font-size:16px;font-weight:600;color:#0f172a}.milestone-code{font-size:16px;font-weight:600;color:#111827}.milestone-title{font-size:16px}.milestone-desc{font-size:13px;color:#64748b}.milestone-meta{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#64748b}.milestone-status{font-weight:600}.milestone-status.is-已完成{color:#22c55e}.milestone-status.is-进行中{color:#2563eb}.milestone-status.is-待验收{color:#ea580c}.milestone-status.is-已派发,.milestone-status.is-处理中{color:#2563eb}.milestone-status.is-待派发{color:#64748b}.milestone-empty{padding:18px 0 0 40px;color:#94a3b8;font-size:13px}@media(max-width:1200px){.project-progress-layout{grid-template-columns:1fr}}.project-acceptance-page{width:100%}.project-acceptance-body{display:flex;flex-direction:column;gap:var(--section-gap, 16px)}.project-page-feedback{padding:10px 12px;border:1px solid #dbe6f3;border-radius:10px;background:#f8fbff;color:#1f3b57;font-size:13px}.project-page-feedback.is-error{border-color:#fecaca;background:#fff1f2;color:#9f1239}.project-acceptance-toolbar{display:flex;gap:12px;justify-content:space-between;align-items:flex-end;background:#fff;border:1px solid #e5edf7;border-radius:12px;padding:12px}.project-acceptance-filters{display:flex;gap:12px;flex-wrap:wrap}.project-acceptance-filter{display:flex;flex-direction:column;gap:6px;min-width:220px}.project-acceptance-filter span{font-size:12px;color:#64748b}.project-acceptance-filter select{height:34px;border:1px solid #d6e2f1;border-radius:8px;padding:0 10px;font-size:13px;background:#fff}.project-acceptance-search{display:flex;align-items:center;gap:8px;border:1px solid #d6e2f1;border-radius:8px;background:#fff;min-width:280px;height:34px;padding:0 10px}.project-acceptance-search input{border:0;outline:none;width:100%;font-size:13px}.project-acceptance-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.project-acceptance-stat{background:#fff;border:1px solid #e6eef8;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:6px}.project-acceptance-stat span{color:#64748b;font-size:12px}.project-acceptance-stat strong{color:#0f172a;font-size:22px;line-height:1}.project-acceptance-stat.is-warning strong{color:#ea580c}.project-acceptance-stat.is-success strong{color:#16a34a}.project-acceptance-stat.is-primary strong{color:#2563eb}.project-acceptance-stat.is-neutral strong{color:#475569}.project-acceptance-table{background:#fff;border:1px solid #e5edf7;border-radius:12px;overflow:hidden}.project-acceptance-table-header,.project-acceptance-table-row{display:grid;grid-template-columns:1.1fr 1.5fr .9fr .7fr 1fr 1fr 1fr;gap:8px;align-items:center;padding:12px}.project-acceptance-table-header{background:#f7fafc;color:#475569;font-size:12px;border-bottom:1px solid #e2e8f0}.project-acceptance-table-row{border-bottom:1px solid #eef2f7;font-size:13px;color:#0f172a}.project-acceptance-table-row:last-of-type{border-bottom:0}.project-acceptance-title{font-weight:500}.project-acceptance-tag{display:inline-flex;justify-content:center;align-items:center;height:24px;padding:0 8px;border-radius:999px;font-size:12px;background:#e2e8f0;color:#334155}.project-acceptance-tag.is-待验收{background:#ffedd5;color:#c2410c}.project-acceptance-tag.is-已验收{background:#dcfce7;color:#166534}.project-acceptance-tag.is-处理中{background:#dbeafe;color:#1d4ed8}.project-acceptance-actions{display:inline-flex;gap:10px}.project-acceptance-empty{padding:28px 12px;text-align:center;color:#94a3b8;font-size:13px}@media(max-width:1200px){.project-acceptance-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.project-acceptance-toolbar{flex-direction:column;align-items:stretch}.project-acceptance-search{min-width:0;width:100%}.project-acceptance-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.project-acceptance-table{overflow-x:auto}.project-acceptance-table-header,.project-acceptance-table-row{min-width:980px}}.fault-monitoring-page{display:flex;flex-direction:column;gap:var(--section-gap);padding:0 var(--page-edge-gap) var(--page-bottom-padding)}.fault-banner{padding:10px 12px;border-radius:10px;border:1px solid transparent;font-size:13px}.fault-banner.is-success{background:#f6ffed;color:#389e0d;border-color:#b7eb8f}.fault-banner.is-error{background:#fff1f0;color:#cf1322;border-color:#ffccc7}.fault-monitoring-actions{display:flex;gap:12px}.fault-monitoring-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--component-gap)}.fault-summary-card{background:#fff;border-radius:12px;border:1px solid #eef2f7;box-shadow:0 6px 14px #0f172a14;padding:16px;display:flex;flex-direction:column;gap:12px}.fault-summary-header{display:flex;justify-content:space-between;color:#64748b;font-size:13px;align-items:center}.fault-summary-icon{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:14px;background:#f1f5f9}.fault-summary-body{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.fault-summary-body strong{font-size:24px;color:#0f172a}.fault-summary-body span{font-size:12px;color:#94a3b8}.fault-summary-card.tone-primary .fault-summary-body strong{color:#2563eb}.fault-summary-card.tone-success .fault-summary-body strong{color:#16a34a}.fault-summary-card.tone-warning .fault-summary-body strong{color:#f97316}.fault-summary-card.tone-danger .fault-summary-body strong{color:#ef4444}.fault-summary-icon.tone-primary{background:#dbeafe}.fault-summary-icon.tone-success{background:#dcfce7}.fault-summary-icon.tone-warning{background:#ffedd5}.fault-summary-icon.tone-danger{background:#fee2e2}.fault-monitoring-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--section-gap)}.fault-panel{background:#fff;border-radius:12px;border:1px solid #eef2f7;box-shadow:0 1px 4px #0f172a0f;padding:16px;display:flex;flex-direction:column;gap:16px}.fault-panel-header{display:flex;justify-content:space-between;align-items:center;gap:16px}.fault-panel-header h3{margin:0;font-size:16px;color:#0f172a}.fault-panel-header span{font-size:12px;color:#94a3b8}.link-btn{border:none;background:transparent;color:#2563eb;font-size:12px;cursor:pointer;padding:0}.fault-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.fault-flow-item{border-radius:10px;background:#f8fafc;padding:12px;display:flex;flex-direction:column;gap:6px}.fault-flow-item strong{font-size:18px;color:#0f172a}.fault-flow-label{font-size:12px;color:#64748b}.fault-flow-item.tone-primary{border:1px solid #dbeafe}.fault-flow-item.tone-success{border:1px solid #dcfce7}.fault-flow-item.tone-warning{border:1px solid #ffedd5}.fault-stage-list{display:flex;flex-direction:column;gap:14px}.fault-stage-item{border:1px solid #eef2f7;border-radius:10px;padding:12px;background:#f8fafc;display:flex;flex-direction:column;gap:10px}.fault-stage-meta{display:flex;justify-content:space-between;align-items:center;gap:12px}.fault-stage-meta strong{font-size:14px;color:#0f172a}.fault-stage-meta span{font-size:12px;color:#64748b}.fault-stage-target{font-size:12px;color:#94a3b8}.fault-stage-bar{height:8px;border-radius:999px;background:#e2e8f0;overflow:hidden}.fault-stage-bar-fill{height:100%;border-radius:999px}.fault-stage-bar-fill.tone-success{background:#22c55e}.fault-stage-bar-fill.tone-primary{background:#2563eb}.fault-stage-bar-fill.tone-warning{background:#f59e0b}.fault-stage-footer{display:flex;justify-content:space-between;font-size:12px;color:#64748b}.fault-stage-tag{padding:2px 8px;border-radius:999px;font-size:11px;text-transform:uppercase;background:#e2e8f0;color:#475569}.fault-stage-tag.tone-success{background:#dcfce7;color:#16a34a}.fault-stage-tag.tone-primary{background:#dbeafe;color:#2563eb}.fault-stage-tag.tone-warning{background:#ffedd5;color:#f97316}.fault-filter{display:flex;align-items:center;gap:12px}.fault-filter-select{border:1px solid #e2e8f0;border-radius:8px;padding:6px 10px;font-size:12px;min-width:180px;background:#fff}.fault-filter-tabs{display:inline-flex;gap:6px;padding:4px;background:#f1f5f9;border-radius:999px}.fault-filter-tab{border:none;background:transparent;font-size:12px;padding:4px 12px;border-radius:999px;cursor:pointer;color:#64748b}.fault-filter-tab.is-active{background:#fff;color:#0f172a;box-shadow:0 1px 4px #0f172a26}.fault-filter-input{border:1px solid #e2e8f0;border-radius:8px;padding:6px 10px;font-size:12px;min-width:220px}.fault-status{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:999px;font-size:11px;background:#e2e8f0;color:#475569}.fault-status.status-ok{background:#dcfce7;color:#16a34a}.fault-status.status-delay{background:#fee2e2;color:#ef4444}.fault-table-wrap{overflow-x:auto}.fault-table{width:100%;border-collapse:collapse}.fault-table th,.fault-table td{padding:12px 10px;border-bottom:1px solid #edf1f6;vertical-align:top;font-size:13px}.fault-table th{background:#f8fafc;color:#4b5563;text-align:left}.fault-table tr.is-selected{background:#f7fbff}.fault-sub-text{margin-top:4px;color:#94a3b8;font-size:12px}.fault-empty{text-align:center;color:#86909c;padding:32px 12px}.fault-route-form{display:flex;flex-direction:column;gap:16px}.fault-route-meta{display:flex;flex-direction:column;gap:4px;padding:12px;border-radius:10px;background:#f8fafc;border:1px solid #eef2f7}.fault-route-meta strong{color:#0f172a}.fault-route-meta span{color:#64748b;font-size:13px}.fault-form-field{display:flex;flex-direction:column;gap:8px;color:#334155;font-size:13px}.fault-route-hint{padding:12px;border-radius:10px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:12px;line-height:1.6}.fault-route-actions{display:flex;gap:12px}@media(max-width:1200px){.fault-monitoring-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.fault-monitoring-grid{grid-template-columns:1fr}}@media(max-width:640px){.fault-monitoring-summary{grid-template-columns:1fr}.fault-filter{flex-direction:column;align-items:flex-start}.fault-filter-input,.fault-filter-select{width:100%}}.api-management-page{padding:0 24px 24px}.api-management-panel{margin-top:24px;display:flex;flex-wrap:wrap;gap:20px}.api-management-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 6px 18px #0f172a14;flex:1 1 360px;min-width:320px}.api-management-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.api-management-card-header h3{margin:0;font-size:20px}.api-management-subtitle{margin:4px 0 0;color:#555}.api-management-description{margin:0 0 16px;color:#3c3c3c;line-height:1.6}.api-management-actions{display:flex;gap:8px;flex-wrap:wrap}.api-management-summary{margin-top:24px;display:grid;gap:12px}.api-management-summary .label{display:block;font-size:12px;color:#8c8c8c;margin-bottom:4px}.api-management-summary strong{display:block;font-size:14px;color:#111;word-break:break-all}.api-management-notes{padding-left:20px;margin:12px 0 0;color:#3c3c3c;line-height:1.6}.api-management-sync{margin-top:10px;font-size:12px;color:#16a34a}.api-management-sync.is-error{color:#dc2626}.server-management{padding:0 0 24px;--layout-gap: 16px}.server-management .enum-setting-content{margin:0 12px 24px}.server-search-icon{font-size:14px;color:#9aa4b2}.server-list-actions{display:flex;align-items:center;gap:10px}.server-list-item{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%}.server-list-meta{display:inline-flex;align-items:center;gap:8px;margin-left:auto}.server-list-name{font-size:14px;font-weight:600;color:#1f2937;display:block;line-height:1.3}.server-list-desc{font-size:11px;color:#94a3b8;margin-top:2px;display:block;line-height:1.3}.server-status{padding:4px 10px;border-radius:999px;font-size:12px;background:#e2e8f0;color:#475569}.server-status.正常{background:#dcfce7;color:#16a34a}.server-status.待校验{background:#fef3c7;color:#d97706}.server-header-delete{border:1px solid rgba(239,68,68,.3);background:#fff1f2;color:#be123c;transition:background .2s ease,border-color .2s ease}.server-header-delete:hover:not(:disabled){background:#ffe4e6;border-color:#ef444480}.server-header-delete:disabled{opacity:.6;cursor:not-allowed}.server-detail-panel{min-width:0}.server-error{margin:12px 0;padding:10px 12px;border-radius:8px;background:#fff1f0;color:#a8071a;font-size:12px}.server-detail-body{padding:0;display:flex;flex-direction:column;gap:0}.server-detail-header{padding:12px 16px;background:#fff;border-bottom:1px solid #e5e7eb}.server-detail-desc{margin-top:6px;font-size:12px;color:#666;line-height:1.4;display:block}.enum-panel-header-main .component-title{display:block}.server-title-edit{display:flex;flex-direction:column;gap:8px;min-width:280px}.server-title-edit .enum-input{height:34px;font-size:14px}.server-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 16px;background:#f3f4f6;border-bottom:1px solid #e5e7eb;border-radius:0}.server-tabs-bottom{margin-top:0}.server-tab{border:1px solid #d5dce6;background:#fff;padding:4px 12px;border-radius:10px;font-size:13px;color:#4b5563;cursor:pointer;display:inline-flex;align-items:center;gap:8px;box-shadow:0 1px 4px #0f172a14;transition:border-color .2s ease,color .2s ease,background .2s ease}.server-tab:before{content:"";width:8px;height:8px;border-radius:999px;background:#b7bcc6}.server-tab.active{border-color:#1d4ed8;color:#1d4ed8;background:#f0f6ff;font-weight:600}.server-tab.active:before{background:#1d4ed8}.server-card{background:#fff;border-radius:16px;border:1px solid rgba(15,23,42,.08);padding:var(--space-4)}.card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.card-header h3{margin:0;font-size:16px;color:#0f172a}.card-header span{font-size:12px;color:#94a3b8}.card-actions{display:flex;gap:var(--space-2)}.server-inline-hint{display:block;margin-top:6px;font-size:11px;color:#94a3b8}.server-form-grid,.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.server-form-grid label,.settings-grid label{display:flex;flex-direction:column;gap:var(--space-2);font-size:12px;color:#64748b}.server-form-grid input,.server-form-grid select,.settings-grid input,.settings-grid select{border:1px solid rgba(15,23,42,.15);border-radius:8px;padding:8px 10px;font-size:12px;color:#1f2937}.server-form-grid textarea,.settings-grid textarea{border:1px solid rgba(15,23,42,.15);border-radius:8px;padding:8px 10px;font-size:12px;color:#1f2937;resize:vertical}.server-form-grid .span-2,.settings-grid .span-2{grid-column:span 2}.task-row{margin-top:var(--space-3);display:flex;gap:var(--space-6);font-size:12px;color:#64748b}.task-row strong{display:block;margin-top:4px;color:#0f172a;font-weight:600}.init-modal{max-width:480px}.init-status-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;font-size:14px;color:#0f172a}.init-status.error{color:#dc2626;font-weight:600}.init-percent{font-size:13px;color:#64748b}.init-progress{width:100%;height:10px;border-radius:999px;background:#e5e7eb;overflow:hidden}.init-progress-fill{height:100%;background:#2563eb;transition:width .3s ease}.init-progress-fill.error{background:#dc2626}.init-detail{margin-top:10px;font-size:12px;color:#6b7280;line-height:1.4;word-break:break-all}@media(max-width:1100px){.server-form-grid,.settings-grid{grid-template-columns:1fr}.server-form-grid .span-2,.settings-grid .span-2{grid-column:span 1}.task-row{flex-direction:column}}.sqlite-card{display:flex;flex-direction:column;gap:var(--space-3)}.sqlite-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5)}.sqlite-field{display:flex;flex-direction:column;gap:var(--space-2);font-size:12px;color:#475569;padding-right:var(--space-5);box-sizing:border-box}.sqlite-field input,.sqlite-field select,.sqlite-field textarea{border:1px solid rgba(15,23,42,.15);border-radius:10px;padding:8px 10px;font-size:12px;color:#1f2937;background:#fff;height:36px;box-sizing:border-box}.sqlite-field textarea{height:auto;resize:vertical}.sqlite-field.span-2{grid-column:span 2}.sqlite-inline{display:flex;gap:var(--space-4);align-items:center}.sqlite-inline input[type=file]{max-width:240px}.sqlite-inline-right input{flex:1}.sqlite-input-group{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.sqlite-file-row{flex-wrap:wrap}.sqlite-file-select{min-width:140px;height:36px}.sqlite-file-row .sqlite-input-wrap input{height:36px}.sqlite-input-wrap{position:relative;flex:1}.sqlite-input-wrap input{width:100%;padding-right:64px}.sqlite-input-suffix{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:12px;color:#94a3b8;pointer-events:none}.sqlite-actions-row{display:flex;align-items:center;gap:var(--space-2)}.sqlite-actions-row .enum-button{min-width:112px}.sqlite-field.span-2 .sqlite-helper{margin-top:4px}.sqlite-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.sqlite-helper{font-size:11px;color:#94a3b8}.sqlite-warning{font-size:11px;color:#dc2626}.sqlite-required{color:#dc2626;font-size:11px;margin-left:4px}.sqlite-recommend{color:#16a34a;font-size:11px;margin-left:4px}.sqlite-switch-row{display:flex;align-items:center;gap:10px;min-height:36px}.sqlite-switch{position:relative;width:42px;height:22px;display:inline-flex;align-items:center}.sqlite-switch input{opacity:0;width:0;height:0}.sqlite-switch-track{width:42px;height:22px;border-radius:999px;background:#e2e8f0;position:relative;transition:background .2s ease}.sqlite-switch-track:after{content:"";position:absolute;width:18px;height:18px;left:2px;top:2px;border-radius:50%;background:#fff;transition:transform .2s ease;box-shadow:0 1px 2px #0f172a33}.sqlite-switch input:checked+.sqlite-switch-track{background:#2563eb}.sqlite-switch input:checked+.sqlite-switch-track:after{transform:translate(20px)}.sqlite-monitor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-3)}.sqlite-monitor-card{background:#f8fafc;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:6px;font-size:12px;color:#64748b}.sqlite-monitor-card strong{color:#0f172a;font-size:14px}.sqlite-monitor-subtitle{margin-top:var(--space-3);margin-bottom:var(--space-2);font-size:13px;color:#334155;font-weight:600}@media(max-width:1100px){.sqlite-grid{grid-template-columns:1fr}.sqlite-field.span-2{grid-column:span 1}.sqlite-input-group{flex-direction:column;align-items:stretch}.sqlite-file-select,.sqlite-file-row .sqlite-input-wrap input{height:40px}.sqlite-actions-row{justify-content:flex-start}}.mysql-card{display:flex;flex-direction:column;gap:var(--space-3)}.mysql-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}.mysql-field{display:flex;flex-direction:column;gap:var(--space-2);font-size:12px;color:#475569;padding-right:var(--space-5);box-sizing:border-box}.mysql-field.span-2{grid-column:span 2}.mysql-field input,.mysql-field select,.mysql-field textarea{border:1px solid rgba(15,23,42,.15);border-radius:10px;padding:8px 10px;font-size:12px;color:#1f2937;background:#fff;height:36px;box-sizing:border-box}.mysql-field textarea{height:auto;resize:vertical}.mysql-helper{font-size:11px;color:#94a3b8}.mysql-radio-group{display:flex;flex-wrap:wrap;gap:var(--space-3)}.mysql-radio{display:inline-flex;align-items:center;gap:8px;font-size:12px}.mysql-inline{display:flex;align-items:center;gap:var(--space-2)}.mysql-help-button{min-width:64px}.mysql-file-input{max-width:220px}.mysql-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.mysql-monitor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-3)}.mysql-monitor-card{background:#f8fafc;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:6px;font-size:12px;color:#64748b}.mysql-monitor-card strong{color:#0f172a;font-size:14px}@media(max-width:1100px){.mysql-grid{grid-template-columns:1fr}.mysql-field.span-2{grid-column:span 1}}.mssql-card{display:flex;flex-direction:column;gap:var(--space-3)}.mssql-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}.mssql-field{display:flex;flex-direction:column;gap:var(--space-2);font-size:12px;color:#475569;padding-right:var(--space-5);box-sizing:border-box}.mssql-field.span-2{grid-column:span 2}.mssql-field input,.mssql-field select,.mssql-field textarea{border:1px solid rgba(15,23,42,.15);border-radius:10px;padding:8px 10px;font-size:12px;color:#1f2937;background:#fff;height:36px;box-sizing:border-box}.mssql-field textarea{height:auto;resize:vertical}.mssql-helper{font-size:11px;color:#94a3b8}.mssql-radio-group{display:flex;flex-wrap:wrap;gap:var(--space-3)}.mssql-radio{display:inline-flex;align-items:center;gap:8px;font-size:12px}.mssql-inline{display:flex;align-items:center;gap:var(--space-2)}.mssql-help-button{min-width:64px}.mssql-file-input{max-width:220px}.mssql-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.mssql-monitor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-3)}.mssql-monitor-card{background:#f8fafc;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:6px;font-size:12px;color:#64748b}.mssql-monitor-card strong{color:#0f172a;font-size:14px}.mssql-alert{background:#fef9c3;color:#854d0e;font-size:12px;padding:10px 12px;border-radius:10px}.mssql-section{display:flex;flex-direction:column;gap:var(--space-2)}.mssql-section h4{font-size:13px;color:#0f172a}.mssql-switch-row{display:flex;align-items:center;gap:var(--space-2);min-height:36px}.mssql-switch{position:relative;display:inline-flex;align-items:center}.mssql-switch input{opacity:0;width:0;height:0}.mssql-switch-track{width:44px;height:24px;border-radius:999px;background:#e2e8f0;position:relative;transition:background .2s ease}.mssql-switch-track:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0f172a4d;transition:transform .2s ease}.mssql-switch input:checked+.mssql-switch-track{background:#2563eb}.mssql-switch input:checked+.mssql-switch-track:after{transform:translate(20px)}.mssql-preview{background:#0f172a;color:#e2e8f0;border-radius:12px;padding:16px;font-size:11px;line-height:1.6;overflow:auto;max-height:280px}@media(max-width:1100px){.mssql-grid{grid-template-columns:1fr}.mssql-field.span-2{grid-column:span 1}}.mqtt-card{display:flex;flex-direction:column;gap:var(--space-3)}.mqtt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}.mqtt-field{display:flex;flex-direction:column;gap:var(--space-2);font-size:12px;color:#475569;padding-right:var(--space-5);box-sizing:border-box}.mqtt-field.span-2{grid-column:span 2}.mqtt-field input,.mqtt-field select,.mqtt-field textarea{border:1px solid rgba(15,23,42,.15);border-radius:10px;padding:8px 10px;font-size:12px;color:#1f2937;background:#fff;height:36px;box-sizing:border-box}.mqtt-field textarea{height:auto;resize:vertical}.mqtt-helper{font-size:11px;color:#94a3b8}.mqtt-radio-group{display:flex;flex-wrap:wrap;gap:var(--space-3)}.mqtt-radio{display:inline-flex;align-items:center;gap:8px;font-size:12px}.mqtt-switch-row{display:flex;align-items:center;gap:var(--space-2);min-height:36px}.mqtt-switch{position:relative;display:inline-flex;align-items:center}.mqtt-switch input{opacity:0;width:0;height:0}.mqtt-switch-track{width:44px;height:24px;border-radius:999px;background:#e2e8f0;position:relative;transition:background .2s ease}.mqtt-switch-track:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0f172a4d;transition:transform .2s ease}.mqtt-switch input:checked+.mqtt-switch-track{background:#2563eb}.mqtt-switch input:checked+.mqtt-switch-track:after{transform:translate(20px)}.mqtt-alert{background:#fef9c3;color:#854d0e;font-size:12px;padding:10px 12px;border-radius:10px}.mqtt-alert.mqtt-info{background:#e0f2fe;color:#075985}.mqtt-collapse{border:1px solid rgba(148,163,184,.3);border-radius:12px;padding:12px 16px;background:#f8fafc}.mqtt-collapse-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2);font-size:12px;color:#0f172a}.mqtt-monitor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3)}.mqtt-monitor-card{background:#f8fafc;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:6px;font-size:12px;color:#64748b}.mqtt-monitor-card strong{color:#0f172a;font-size:14px}.mqtt-section{display:flex;flex-direction:column;gap:var(--space-2)}.mqtt-section h4{font-size:13px;color:#0f172a}.mqtt-checkbox-group{display:flex;flex-wrap:wrap;gap:var(--space-3)}.mqtt-checkbox{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#475569}.mqtt-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.mqtt-preview{background:#0f172a;color:#e2e8f0;border-radius:12px;padding:16px;font-size:11px;line-height:1.6;overflow:auto;max-height:280px}@media(max-width:1100px){.mqtt-grid{grid-template-columns:1fr}.mqtt-field.span-2{grid-column:span 1}}.pg-card{display:flex;flex-direction:column;gap:var(--space-3)}.pg-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}.pg-field{display:flex;flex-direction:column;gap:var(--space-2);font-size:12px;color:#475569;padding-right:var(--space-5);box-sizing:border-box}.pg-field.span-2{grid-column:span 2}.pg-field input,.pg-field select,.pg-field textarea{border:1px solid rgba(15,23,42,.15);border-radius:10px;padding:8px 10px;font-size:12px;color:#1f2937;background:#fff;height:36px;box-sizing:border-box}.pg-field textarea{height:auto;resize:vertical}.pg-helper{font-size:11px;color:#94a3b8}.pg-switch-row{display:flex;align-items:center;gap:var(--space-2);min-height:36px}.pg-switch{position:relative;display:inline-flex;align-items:center}.pg-switch input{opacity:0;width:0;height:0}.pg-switch-track{width:44px;height:24px;border-radius:999px;background:#e2e8f0;position:relative;transition:background .2s ease}.pg-switch-track:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0f172a4d;transition:transform .2s ease}.pg-switch input:checked+.pg-switch-track{background:#2563eb}.pg-switch input:checked+.pg-switch-track:after{transform:translate(20px)}.pg-alert{background:#e0f2fe;color:#075985;font-size:12px;padding:10px 12px;border-radius:10px}.pg-collapse{border:1px solid rgba(148,163,184,.3);border-radius:12px;padding:12px 16px;background:#f8fafc}.pg-collapse-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2);font-size:12px;color:#0f172a}.pg-monitor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3)}.pg-monitor-card{background:#f8fafc;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:6px;font-size:12px;color:#64748b}.pg-monitor-card strong{color:#0f172a;font-size:14px}.pg-section{display:flex;flex-direction:column;gap:var(--space-2)}.pg-section h4{font-size:13px;color:#0f172a}.pg-checkbox-group{display:flex;flex-wrap:wrap;gap:var(--space-3)}.pg-checkbox{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#475569}.pg-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.pg-preview{background:#0f172a;color:#e2e8f0;border-radius:12px;padding:16px;font-size:11px;line-height:1.6;overflow:auto;max-height:280px}@media(max-width:1100px){.pg-grid{grid-template-columns:1fr}.pg-field.span-2{grid-column:span 1}}.enum-setting-container{min-height:calc(100vh - var(--app-header-height));display:flex;flex-direction:column}.enum-setting-content{display:grid;grid-template-columns:320px 1fr;gap:var(--component-gap);align-items:start;margin:0 10px;padding-bottom:var(--section-gap);flex:1}.enum-setting-panel{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden;display:flex;flex-direction:column;min-height:460px}.enum-setting-panel-left{min-height:0}.enum-setting-panel-left .enum-group-list{overflow-y:auto;flex:1}.enum-setting-panel-wide{min-width:0;overflow-y:auto}.enum-setting-panel-wide .component-header{align-items:center;justify-content:space-between;gap:12px;min-height:auto}.enum-panel-header{border-bottom:1px solid #e6e6e6}.enum-panel-header-main{display:flex;flex-direction:column;gap:6px;justify-content:center;flex:1 1 auto;min-width:0}.enum-title-input{height:30px;border-radius:6px;border:1px solid #d9d9d9;padding:0 10px;font-size:16px;font-weight:600;color:#1f1f1f;min-width:240px}.enum-title-code{margin-left:10px;font-size:13px;font-weight:500;color:#6b7280}.enum-panel-actions{display:flex;gap:10px;flex:0 0 auto;flex-shrink:0;align-items:center;white-space:nowrap}.enum-panel-meta{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:#666;line-height:1.4}.enum-group-summary{font-size:12px;color:#666}.enum-modal-backdrop{position:fixed;inset:0;background:#0f172a59;display:flex;align-items:center;justify-content:center;z-index:1000}.enum-modal{width:360px;background:#fff;border-radius:10px;box-shadow:0 12px 30px #0f172a33;padding:16px;display:flex;flex-direction:column;gap:12px}.enum-modal-header{font-size:16px;font-weight:600;color:#1f1f1f}.enum-modal-body{display:flex;flex-direction:column;gap:10px}.enum-modal-field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#4d4d4d}.enum-modal-field input{height:30px;border:1px solid #d9d9d9;border-radius:6px;padding:0 10px;font-size:13px;color:#1f1f1f}.enum-modal-actions{display:flex;justify-content:flex-end;gap:8px}.enum-batch-actions{display:flex;align-items:center;gap:8px}.enum-batch-dropdown{position:relative}.enum-batch-caret{margin-left:6px;font-size:11px}.enum-batch-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:120px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 10px 20px #0f172a14;padding:6px;z-index:10}.enum-batch-item{width:100%;border:none;background:transparent;text-align:left;padding:6px 8px;font-size:12px;color:#1f1f1f;cursor:pointer;border-radius:6px}.enum-batch-item:hover{background:#f3f4f6}.enum-meta-item{display:inline-flex;align-items:center;gap:6px}.enum-inline-checkbox{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#333}.enum-inline-checkbox input{margin:0}.enum-meta-input{height:24px;border:1px solid #d9d9d9;border-radius:6px;padding:0 8px;font-size:12px;color:#333;min-width:140px}.enum-meta-icon{width:14px;height:14px;border-radius:4px;background:#e8edf8;flex-shrink:0}.enum-panel-block{padding:8px 16px;border-bottom:1px solid #e6e6e6}.enum-panel-block-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.enum-panel-block-actions{display:flex;align-items:center;gap:8px}.enum-panel-block-title{font-size:14px;font-weight:600;color:#1f1f1f}.enum-panel-block-text{margin:2px 0 0;font-size:13px;color:#4d4d4d;line-height:1.2}.enum-description-input{width:100%;min-height:40px;border-radius:6px;border:1px solid #d9d9d9;padding:6px 10px;font-size:13px;color:#333;resize:vertical}.enum-panel-block-description{background:#f7f8fa}.enum-panel-block-table{border-bottom:none}.enum-panel-block-tips{border-top:1px solid #e6e6e6;border-bottom:none;margin-top:auto;margin-bottom:10px}.enum-panel-tips{margin:8px 0 0;padding-left:18px;font-size:12px;color:#666;line-height:1.6}.enum-group-list{list-style:none;padding:0 10px 10px;margin:10px 0;display:flex;flex-direction:column;gap:5px}.enum-group-search{padding:10px}.enum-group-search .enum-input{width:100%;min-width:0;box-sizing:border-box}.code-rule-search-icon{font-size:14px;color:#7b8190}.side-list-search{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#f7f8fa;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb}.side-list-search .enum-input{border:1px solid #d9d9d9;background:#fff;height:24px;padding:0 8px;border-radius:4px}.enum-group-empty{padding:10px 12px;font-size:12px;color:#999}.enum-group-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:6px;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.enum-group-item:hover{background-color:#f5f7fa;border-color:#e5e7eb}.enum-group-item.is-active{background-color:#f0f7ff;border-color:#cfe0ff;color:#165dff}.enum-group-name{font-size:14px;color:inherit}.enum-group-count{font-size:12px;color:#999}.enum-toolbar{display:flex;align-items:center;gap:10px}.enum-input{height:30px;border:1px solid #d9d9d9;border-radius:4px;padding:0 10px;font-size:13px;min-width:200px}.enum-select{height:30px;border:1px solid #d9d9d9;border-radius:4px;padding:0 10px;font-size:13px;background-color:#fff}.enum-button{height:30px;padding:0 12px;border-radius:4px;border:1px solid transparent;font-size:12px;cursor:pointer;transition:all .2s ease;white-space:nowrap;flex-shrink:0}.enum-button.ghost{border-color:#d9d9d9;background-color:#fff;color:#333}.enum-button.ghost:hover{border-color:#165dff;color:#165dff}.enum-button.ghost.danger{border-color:#f3caca;color:#d14343}.enum-button.ghost.danger:hover{border-color:#d14343;color:#d14343}.enum-button.primary{background-color:#165dff;border-color:#165dff;color:#fff}.enum-button.primary:hover{background-color:#0040d0;border-color:#0040d0}.enum-button:disabled{cursor:not-allowed;opacity:.6;background-color:#f3f4f6;border-color:#e5e7eb;color:#9ca3af}.enum-table-wrap{padding:0;overflow-x:auto}.enum-table-shell{--enum-head-height: 44px;--enum-row-height: 40px;--enum-footer-height: 48px;border:1px solid #eeeeee;border-radius:10px;overflow:hidden;background:#fff;min-height:calc(var(--enum-head-height) + (var(--enum-row-height) * 8) + var(--enum-footer-height));display:flex;flex-direction:column}.enum-table-body{flex:1;min-height:0}.enum-table{width:100%;border-collapse:collapse;min-width:1130px;table-layout:fixed}.enum-table thead tr{background-color:#f5f7fa}.enum-table th,.enum-table td{text-align:left;font-size:13px;border-bottom:1px dashed #e0e0e0;white-space:nowrap;vertical-align:middle;line-height:1.4}.enum-table th.enum-table-center,.enum-table td.enum-table-center{text-align:center}.enum-table-center .enum-color-field,.enum-table-center .enum-status-switch,.enum-table-center .enum-actions{justify-content:center}.enum-table-center .enum-color-field{margin:0 auto}.enum-table-center .enum-order-input{display:block;margin:0 auto}.enum-table th{padding:12px 10px;height:var(--enum-head-height)}.enum-table td{padding:8px 10px;height:var(--enum-row-height)}.enum-table th:last-child,.enum-table td:last-child{position:sticky;right:0;z-index:2;background:#fff}.enum-table th:nth-last-child(2),.enum-table td:nth-last-child(2){position:sticky;right:160px;z-index:2;background:#fff;box-shadow:-8px 0 12px -12px #0f172a47}.enum-table th:last-child{z-index:3;background-color:#f5f7fa}.enum-table th:nth-last-child(2){z-index:3;background-color:#f5f7fa}.enum-text-muted{color:#666}.enum-status{display:inline-flex;align-items:center;padding:2px 8px;border-radius:12px;font-size:12px;color:#2f6b32;background-color:#e9f7ea}.enum-status.is-off{color:#8a3a3a;background-color:#fdecec}.enum-color-field{display:inline-flex;align-items:center;gap:8px;vertical-align:middle;flex-wrap:wrap}.enum-color-dot{width:16px;height:16px;border-radius:50%;flex-shrink:0}.enum-color-input,.enum-order-input{height:24px;border:1px solid #d9d9d9;border-radius:6px;padding:0 10px;font-size:12px;color:#333;background:#fff}.enum-text-input{height:24px;border:1px solid #d9d9d9;border-radius:6px;padding:0 8px;font-size:12px;color:#333;width:100%;box-sizing:border-box}.enum-color-input[readonly],.enum-order-input[readonly]{background:#f9fafb;color:#6b7280;cursor:not-allowed}.enum-color-input{width:90px}.enum-color-text{min-width:90px;display:inline-block;font-size:12px;color:#333}.enum-order-input{width:60px}.enum-color-palette{display:inline-flex;align-items:center;gap:6px}.enum-color-swatch{width:16px;height:16px;border-radius:50%;border:1px solid #d1d5db;padding:0;cursor:pointer}.enum-color-swatch.is-active{border-color:#1d4ed8;box-shadow:0 0 0 2px #1d4ed826}.enum-color-more{position:relative;width:16px;height:16px;border-radius:50%;border:1px dashed #cbd5f5;background:#f8fafc;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.enum-color-more input{position:absolute;inset:0;opacity:0;cursor:pointer}.enum-color-more-icon{font-size:12px;color:#4f46e5;line-height:1}.enum-actions{display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;vertical-align:middle}.enum-status-switch{display:inline-flex;align-items:center;gap:8px;vertical-align:middle}.enum-switch{position:relative;display:inline-flex;align-items:center;cursor:pointer}.enum-switch input{position:absolute;opacity:0;pointer-events:none}.enum-switch-track{width:34px;height:18px;border-radius:999px;background:#d1d5db;transition:background .2s ease;position:relative}.enum-switch-track:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .2s ease;box-shadow:0 1px 2px #00000026}.enum-switch input:checked+.enum-switch-track{background:#2563eb}.enum-switch input:checked+.enum-switch-track:after{transform:translate(16px)}.enum-switch-label{font-size:12px;color:#333}.enum-link{border:none;background:none;color:#165dff;cursor:pointer;font-size:12px;padding:0}.enum-link.danger{color:#d14343}.enum-table-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 16px;font-size:12px;color:#666;min-height:var(--enum-footer-height)}.enum-pagination{display:flex;align-items:center;gap:10px}.enum-page-btn{width:28px;height:28px;border-radius:6px;border:1px solid #d9d9d9;background:#fff;cursor:pointer;font-size:16px;line-height:1;color:#333}.enum-page-btn:disabled{cursor:not-allowed;color:#9ca3af;border-color:#e5e7eb}.enum-page-number{font-size:14px;color:#333}@media(max-width:1100px){.enum-setting-content{grid-template-columns:1fr}}.settings-sidebar-block{grid-column:span 3;min-width:320px;max-width:320px;position:sticky;top:calc(var(--app-header-height) + 12px);align-self:start;height:fit-content}.right-settings-block{grid-column:span 9}.menu-management-page{--menu-control-height: 34px;--menu-sort-badge-height: 28px;padding:0 0 24px}.menu-management-content{margin:0 12px 24px}.menu-management-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.menu-management-toolbar .enum-input{min-width:220px}.menu-management-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.menu-management-page .enum-button{height:var(--menu-control-height);min-height:var(--menu-control-height);padding:0 14px;display:inline-flex;align-items:center;justify-content:center;line-height:1;vertical-align:middle}.menu-management-name{display:flex;flex-direction:column;gap:2px;line-height:1.3}.menu-management-name-main{font-weight:600;color:#1f2937}.menu-management-name-sub{font-size:12px;color:#6b7280}.menu-management-sort-badge{display:inline-flex;align-items:center;justify-content:center;min-width:48px;height:var(--menu-sort-badge-height);padding:0 10px;border-radius:calc(var(--menu-sort-badge-height) / 2);color:#fff;font-size:12px;font-weight:600;line-height:1}.menu-management-sort-badge.is-level-0{background:#021a2d}.menu-management-sort-badge.is-level-1{background:#1777c9}.menu-management-status{display:inline-flex;align-items:center;justify-content:center;min-width:68px;height:var(--menu-control-height);padding:0 12px;border-radius:calc(var(--menu-control-height) / 2);line-height:1;font-size:12px;font-weight:500}.menu-management-status.is-on{background:#10b9811f;color:#047857}.menu-management-status.is-off{background:#f871711f;color:#b91c1c}.menu-management-modal{width:420px}.menu-management-modal .enum-modal-field .enum-select{width:100%}.menu-management-sort-editor{display:flex;flex-direction:column;gap:8px}.menu-management-sort-quick-actions{display:flex;flex-wrap:wrap;gap:6px}
