:root{--bg: #f4f5f7;--surface: #ffffff;--surface-2: #f6f7f9;--text: #1c1c1e;--text-2: #6b7280;--text-3: #9aa0a8;--border: #e6e8ec;--accent: #0a84ff;--accent-weak: #e8f1ff;--green: #34c759;--amber: #ff9f0a;--red: #ff3b30;--radius: 16px;--radius-sm: 10px;--shadow: 0 1px 2px rgba(16,24,40,.05), 0 8px 24px rgba(16,24,40,.05);--shadow-sm: 0 1px 2px rgba(16,24,40,.06);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--sidebar-bg: #0f1115}@media (prefers-color-scheme: dark){:root{--bg: #0b0b0d;--surface: #16171a;--surface-2: #1f2024;--text: #f2f2f7;--text-2: #9aa0a8;--text-3: #6b7280;--border: #2a2c31;--accent: #0a84ff;--accent-weak: #14243c;--shadow: 0 1px 2px rgba(0,0,0,.4);--shadow-sm: 0 1px 2px rgba(0,0,0,.4);--sidebar-bg: #0a0a0c}}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{--bg: #0b0b0d;--surface: #16171a;--surface-2: #1f2024;--text: #f2f2f7;--text-2: #9aa0a8;--text-3: #6b7280;--border: #2a2c31;--accent-weak: #14243c;--shadow: 0 1px 2px rgba(0,0,0,.4);--sidebar-bg: #0a0a0c}*{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}h1,h2,h3{margin:0}.splash{height:100vh;display:flex;flex-direction:column;gap:14px;align-items:center;justify-content:center;color:var(--text-2)}.spinner{width:30px;height:30px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app{display:flex;height:100vh;overflow:hidden}.sidebar{width:244px;flex-shrink:0;background:var(--sidebar-bg);color:#e7e9ee;display:flex;flex-direction:column;padding:16px 12px}.brand{display:flex;align-items:baseline;gap:8px;padding:6px 10px 16px;font-size:15px}.brand span{font-weight:700;color:#fff}.brand small{color:#8a8f98;font-weight:600;letter-spacing:.08em;font-size:10px}.nav-scroll{overflow-y:auto;flex:1}.nav-cap{padding:14px 12px 6px;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:#6b7280}.nav-item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:10px;color:#c9cdd4;font-size:14px;cursor:pointer;margin-bottom:2px;transition:background .1s,color .1s}.nav-item .ni{width:20px;text-align:center;font-size:15px}.nav-item:hover{background:#ffffff0f;color:#fff}.nav-item.active{background:var(--accent);color:#fff;box-shadow:0 4px 12px #0a84ff59}.main-wrap{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{height:56px;flex-shrink:0;display:flex;align-items:center;gap:14px;padding:0 16px 0 12px;background:var(--surface);border-bottom:1px solid var(--border)}.tb-tabs{display:flex;gap:4px;align-items:center;overflow-x:auto;flex:1;height:100%;padding-top:8px}.tb-tab{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:10px 10px 0 0;font-size:13px;color:var(--text-2);cursor:pointer;white-space:nowrap;border:1px solid transparent;border-bottom:none}.tb-tab:hover{background:var(--surface-2)}.tb-tab.active{background:var(--bg);color:var(--text);font-weight:600;border-color:var(--border)}.tb-tab-title{max-width:190px;overflow:hidden;text-overflow:ellipsis}.tb-x{opacity:.45;font-size:16px;line-height:1}.tb-x:hover{opacity:1;color:var(--red)}.userchip{display:flex;align-items:center;gap:10px;flex-shrink:0}.avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#5e5ce6);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:15px}.uc-text{line-height:1.2}.uc-name{font-size:13px;font-weight:600}.uc-sub{font-size:11px;color:var(--text-2)}.uc-out{margin-left:4px;font-size:18px;color:var(--text-2);padding:4px 6px;border-radius:8px}.uc-out:hover{background:var(--surface-2);color:var(--red)}.content{flex:1;position:relative;overflow:hidden}.erp-view{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto}.main{padding:28px 34px;max-width:1160px}.h1{font-size:25px;font-weight:750;letter-spacing:-.01em;margin-bottom:4px}.sub{color:var(--text-2);margin:0 0 24px;font-size:14px;max-width:760px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-sm)}.card h3{font-size:15.5px;margin-bottom:6px}.card p{margin:0;color:var(--text-2);font-size:13px;line-height:1.5}.card.link{cursor:pointer;transition:transform .1s ease,box-shadow .1s ease}.card.link:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.pill{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:600;vertical-align:middle}.pill.live{background:#34c75929;color:var(--green)}.pill.stub{background:#ff9f0a29;color:var(--amber)}.svc-meta{margin-top:12px!important;font-size:12px!important;color:var(--text-3)!important}.svc-ext{margin-left:6px;font-size:12px}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin-bottom:20px}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm)}.tile-label{font-size:12.5px;color:var(--text-2);margin-bottom:8px}.tile-value{font-size:26px;font-weight:750;letter-spacing:-.02em}.tile-sub{font-size:11.5px;color:var(--text-3);margin-top:4px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow-sm);margin-bottom:18px}.panel-head{margin-bottom:14px}.panel-head h3{font-size:15px}.cols2{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media (max-width: 860px){.cols2{grid-template-columns:1fr}}.chart-svg{width:100%;height:220px;display:block}.chart-x{display:flex;justify-content:space-between;margin-top:6px;font-size:11px;color:var(--text-3)}.chart-tip{margin-top:8px;font-size:12.5px;color:var(--text-2)}.chart-tip b{color:var(--text)}.barlist{display:flex;flex-direction:column;gap:11px}.barrow{display:grid;grid-template-columns:150px 1fr auto;align-items:center;gap:12px}.barrow-label{font-size:13px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.barrow-track{background:var(--surface-2);border-radius:6px;height:12px;overflow:hidden}.barrow-fill{height:100%;background:var(--accent);border-radius:6px;min-width:4px}.barrow-val{font-size:12.5px;font-weight:600;white-space:nowrap}.svc-mini{display:flex;flex-direction:column;gap:8px}.svc-chip{display:flex;align-items:center;gap:9px;padding:9px 12px;border:1px solid var(--border);border-radius:10px;font-size:13.5px;cursor:pointer}.svc-chip:hover{background:var(--surface-2)}.svc-chip .dot{width:8px;height:8px;border-radius:50%}.dot.ok{background:var(--green)}.dot.wip{background:var(--amber)}.tabs{display:flex;gap:6px;margin-bottom:18px;flex-wrap:wrap}.tab{padding:7px 14px;border-radius:20px;background:var(--surface);border:1px solid var(--border);cursor:pointer;font-size:13.5px}.tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}th,td{text-align:left;padding:11px 14px;font-size:13.5px;border-bottom:1px solid var(--border)}th{color:var(--text-2);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.03em}tr:last-child td{border-bottom:none}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:16px 0}input,select{padding:8px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:13.5px;font-family:var(--font)}.btn{padding:8px 16px;border-radius:var(--radius-sm);border:none;background:var(--accent);color:#fff;font-weight:600;font-size:13.5px;cursor:pointer}.btn.ghost{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn:hover{opacity:.92}.muted{color:var(--text-2);font-size:13px}.error{color:var(--red);font-size:13px;margin:8px 0}.frame-wrap{position:absolute;top:0;right:0;bottom:0;left:0;flex-direction:column}.svc-frame{flex:1;width:100%;height:100%;border:0;background:#fff}.frame-note{padding:7px 14px;font-size:12.5px;background:var(--accent-weak);color:var(--text);border-bottom:1px solid var(--border)}
