:root{font-family:Inter,Microsoft YaHei,PingFang SC,system-ui,sans-serif;color:#f4f2ed;background:#090d10;font-synthesis:none;text-rendering:geometricPrecision;--bg: #090d10;--panel: #11171c;--panel-2: #151c22;--border: #263039;--orange: #ff7b23;--text: #f4f2ed;--muted: #89949d;--green: #35c98b;--red: #f56565;--amber: #f7a928}*{box-sizing:border-box}body{margin:0;min-width:1180px;min-height:100vh;background:var(--bg)}button,input{font:inherit}button{color:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:194px 1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:194px;background:#0b1014;border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:5}.brand{height:66px;padding:0 20px;display:flex;align-items:center;gap:11px;border-bottom:1px solid var(--border);font-weight:780;font-size:19px;letter-spacing:-.5px}.brand>span:last-child{display:flex;flex-direction:column}.brand small{font-size:8px;color:#697680;letter-spacing:2.4px;margin-top:2px}.brand-mark{width:34px;height:34px;background:var(--orange);color:#111;display:grid;place-items:center;border-radius:8px;transform:rotate(-2deg)}.sidebar nav{padding:14px 0;display:flex;flex-direction:column;gap:3px}.sidebar nav button{position:relative;height:45px;display:flex;align-items:center;gap:13px;border:0;background:transparent;color:#b7c0c7;padding:0 25px;cursor:pointer;text-align:left}.sidebar nav button:hover{background:#121a20;color:#fff}.sidebar nav button.active{color:var(--orange);background:#182026;font-weight:700}.sidebar nav button.active:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--orange)}.collapse{border:0;background:transparent;color:#86929b;margin:auto auto 21px;cursor:pointer}.workspace{grid-column:2;min-width:0}.topbar{height:66px;position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;padding:0 25px;background:#090d10f5;border-bottom:1px solid var(--border)}.search{width:340px;height:38px;display:flex;align-items:center;gap:9px;padding:0 12px;background:#0e1419;border:1px solid #31404b;border-radius:7px;color:#6f7b84}.search:focus-within{border-color:#b45b21;color:var(--orange)}.search input{width:100%;color:var(--text);border:0;outline:0;background:transparent;font-size:13px}.top-actions{display:flex;align-items:center;gap:12px;font-size:13px;color:#d6d9db}.system-state{display:flex;align-items:center;gap:8px;padding-right:16px;border-right:1px solid var(--border)}.system-state i{width:7px;height:7px;border-radius:50%;background:var(--amber)}.system-state.online i{background:var(--green)}.notification{position:relative;border:0;background:transparent;cursor:pointer;padding:7px}.notification b{position:absolute;right:-2px;top:-2px;min-width:17px;height:17px;border-radius:9px;background:var(--red);font:700 10px/17px inherit}.avatar{display:grid;place-items:center;width:30px;height:30px;border:1px solid #45515a;border-radius:50%;background:#e7ddd0;color:#29323a;font-weight:800}.content{padding:18px 23px 28px}.page-heading{height:52px;display:flex;align-items:flex-start;justify-content:space-between}h1,h2,p{margin:0}.page-heading h1{font-size:22px;letter-spacing:-.4px}.page-heading p,.table-panel header p{margin-top:5px;color:var(--muted);font-size:12px}.updated{color:#68747d;font-size:11px;margin-top:7px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:13px}.metric-card{min-height:80px;border:1px solid var(--border);background:var(--panel);border-radius:8px;padding:12px 15px;display:flex;align-items:center;gap:13px}.metric-icon{width:48px;height:48px;display:grid;place-items:center;color:var(--orange);border:1px solid var(--orange);border-radius:50%}.metric-card>div{min-width:0;display:flex;flex-direction:column;gap:5px}.eyebrow{color:var(--muted);font-size:12px}.metric-card strong{font-size:21px;letter-spacing:.2px}.trend{margin-left:auto;align-self:flex-end;color:var(--orange);font-weight:700;font-size:12px}.trend.good{color:var(--green)}.overview-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,.95fr);gap:13px;margin-bottom:13px}.panel{border:1px solid var(--border);background:var(--panel);border-radius:8px;overflow:hidden}.panel>header{min-height:45px;padding:0 14px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.panel h2{font-size:15px}.panel header button{background:transparent;border:0;color:var(--muted);cursor:pointer;font-size:12px}.chart-panel svg{display:block;width:100%;height:210px;padding:2px 9px 0}.legend{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px}.line-key{width:18px;border-top:3px solid var(--orange);margin-left:12px}.bar-key{width:14px;height:8px;background:#4a5863;margin-left:10px}.grid-line{stroke:#2d3942;stroke-dasharray:4 4}.chart-bar{fill:#45525c}.chart-line{fill:none;stroke:var(--orange);stroke-width:2.5}.chart-dot{fill:var(--orange);stroke:#ffd0b0;stroke-width:1.2}.chart-label{fill:#89949d;font-size:11px}.alerts{min-width:0}.alerts>header button:hover{color:#fff}.alert-row{min-height:63px;margin:8px 9px;border:1px solid #27323a;border-radius:6px;display:grid;grid-template-columns:35px 1fr auto;align-items:center;gap:9px;padding:8px 10px}.alert-row>span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--orange)}.alert-row.high>span{background:var(--red)}.alert-row div{min-width:0;display:flex;flex-direction:column;gap:5px}.alert-row strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alert-row small{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alert-row time{color:#818d96;font-size:10px;align-self:flex-start}.table-panel{margin-bottom:13px}.table-panel>header{min-height:48px}.outline{border:1px solid #b75b20!important;color:var(--orange)!important;border-radius:5px;padding:6px 12px}.outline:hover{background:#29180f!important}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:11px}th{color:#9ba5ac;font-weight:600;text-align:left;background:#10161a}th,td{height:30px;padding:5px 14px;border-bottom:1px solid #253039;white-space:nowrap}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#151d23}td strong{display:block;font-size:11px}td small{display:block;color:#697680;font-size:9px;margin-top:2px}.health{display:inline-flex;align-items:center;gap:6px;font-size:10px}.health i{width:6px;height:6px;border-radius:50%;background:var(--green)}.health.watch{color:#e6b04d}.health.watch i{background:var(--amber)}.health.disabled i{background:var(--red)}.route-copy{color:#9ba4ab}.route-copy span{color:var(--orange);margin:0 4px}.jobs-panel>header>div{display:flex;align-items:center;gap:18px}.tabs{display:flex;align-self:stretch;gap:18px}.tabs button{padding:0 2px;position:relative}.tabs button.active{color:var(--orange)}.tabs button.active:after{content:"";position:absolute;left:0;right:0;bottom:-14px;height:2px;background:var(--orange)}.job-id{color:var(--orange);font-family:ui-monospace,Consolas,monospace}.progress{display:inline-block;vertical-align:middle;width:106px;height:7px;background:#202a31;overflow:hidden}.progress span{display:block;height:100%;background:var(--orange)}.table-panel em{color:#b5bdc3;font-style:normal;margin-left:7px}.job-status{display:inline-flex;align-items:center;gap:6px}.job-status i{width:6px;height:6px;border-radius:50%;background:#599ec6}.job-status.processing i,.job-status.completed i{background:var(--green)}.job-status.failed i{background:var(--red)}.empty{height:72px;text-align:center;color:var(--muted)}.dialog-backdrop{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;background:#000000b8;display:grid;place-items:center}.dialog{width:640px;max-height:84vh;overflow:auto;background:#11171c;border:1px solid #34414b;border-radius:10px;box-shadow:0 24px 80px #0000008c}.dialog>header{padding:18px;display:flex;justify-content:space-between;border-bottom:1px solid var(--border)}.dialog h2{font-size:17px}.dialog p{margin-top:6px;font-size:11px;color:var(--muted)}.icon-button{border:0;background:transparent;cursor:pointer}.route-strategy-form{padding:14px 18px 4px;display:flex;flex-direction:column;gap:13px}.pinned-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px 14px}.field-row{display:grid;grid-template-columns:150px 1fr;gap:10px;align-items:center}.field-row label{color:var(--muted);font-size:12px}.field-row input[type=number],.field-row input:not([type]),.field-row input[type=text]{height:34px;padding:0 10px;background:#0e1419;color:var(--text);border:1px solid #31404b;border-radius:6px;outline:0}.field-row select{height:34px;padding:0 8px;background:#0e1419;color:var(--text);border:1px solid #31404b;border-radius:6px;outline:0}.field-row input:focus,.field-row select:focus{border-color:#b45b21}.field-hint{color:#68747d;font-size:10px}.segmented{display:inline-flex;background:#0e1419;border:1px solid #31404b;border-radius:6px;overflow:hidden;width:fit-content}.segmented button{border:0;background:transparent;color:var(--muted);padding:7px 13px;font-size:11px;cursor:pointer}.segmented button.active{background:var(--orange);color:#160c06;font-weight:700}.dialog footer{min-height:58px;padding:10px 18px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.dialog footer span{color:var(--muted);font-size:10px}.primary{background:var(--orange);color:#160c06;border:0;border-radius:5px;padding:8px 15px;font-weight:800;cursor:pointer}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:600}.badge.ok{color:var(--green);background:#35c98b1f}.badge.warn{color:var(--amber);background:#f7a9281f}.badge.bad{color:var(--red);background:#f565651f}.badge.info{color:#599ec6;background:#599ec624}.delta-pos{color:var(--green)}.delta-neg{color:var(--red)}.error-cell{color:var(--red);max-width:220px;overflow:hidden;text-overflow:ellipsis}.prompt-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;color:#b5bdc3}.muted{color:var(--muted);font-size:10px}.pinned-tag{color:var(--green)}.settings-panel{max-width:860px}.settings-form{padding:8px 18px 16px;display:flex;flex-direction:column;gap:14px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--border)}.setting-row strong{display:block;font-size:13px}.setting-row small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.toggle{width:42px;height:23px;border-radius:12px;border:1px solid #45515a;background:#202a31;position:relative;cursor:pointer;flex-shrink:0}.toggle i{position:absolute;top:2px;left:2px;width:17px;height:17px;border-radius:50%;background:#8b959c;transition:left .15s ease,background .15s ease}.toggle.on{background:#ff7b2347;border-color:var(--orange)}.toggle.on i{left:21px;background:var(--orange)}.settings-actions{display:flex;align-items:center;gap:14px;padding-top:6px}.toast{position:fixed;z-index:40;left:50%;bottom:34px;transform:translate(-50%);background:#1a232b;border:1px solid #3a4a56;color:var(--text);font-size:12px;padding:10px 18px;border-radius:8px;box-shadow:0 10px 30px #00000080}.login-page{min-height:100vh;display:grid;place-items:center;background:var(--bg)}.login-card{width:360px;border:1px solid var(--border);background:var(--panel);border-radius:10px;padding:30px 28px;display:flex;flex-direction:column;gap:14px}.login-card .brand{height:auto;padding:0 0 6px;border-bottom:0;justify-content:center}.login-card h1{font-size:18px;text-align:center;letter-spacing:-.3px}.login-card input{height:38px;padding:0 12px;background:#0e1419;color:var(--text);border:1px solid #31404b;border-radius:6px;outline:0}.login-card input:focus{border-color:#b45b21}.login-card .primary{height:40px;width:100%}.login-error{color:var(--red);font-size:12px;text-align:center}.offline-banner{margin-bottom:13px;padding:14px 18px;border-color:#7a4a1e;background:#1c1510}.offline-banner p{color:#e6b04d;font-size:12px}@media(max-width:1300px){.app-shell{grid-template-columns:170px 1fr}.sidebar{width:170px}.metrics{gap:8px}.metric-card{padding:10px}.metric-icon{width:38px;height:38px}.overview-grid{grid-template-columns:1.45fr 1fr}}.ticket-list{display:flex;flex-direction:column;gap:8px;padding:10px 12px}.ticket-item{border:1px solid #27323a;border-radius:7px;background:#10161a}.ticket-item.closed{opacity:.7}.ticket-head{display:grid;grid-template-columns:74px minmax(0,1fr) 130px 96px;align-items:center;gap:10px;padding:10px 13px;cursor:pointer;font-size:12px}.ticket-head:hover{background:#151d23}.ticket-head strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ticket-head time{color:var(--muted);font-size:10px;text-align:right}.ticket-status{font-size:10px;font-weight:700;padding:3px 8px;border-radius:10px;width:fit-content}.ticket-status.open{color:var(--amber);background:#f7a9281f}.ticket-status.answered{color:var(--green);background:#35c98b1f}.ticket-status.closed{color:#8b959c;background:#8b959c24}.ticket-body{padding:4px 13px 13px;display:flex;flex-direction:column;gap:9px;border-top:1px dashed #27323a}.ticket-message{color:#c9d0d5;font-size:12px;line-height:1.7;white-space:pre-wrap}.ticket-reply{background:#15211b;border:1px solid #24402f;border-radius:6px;padding:9px 11px}.ticket-reply strong{display:block;color:var(--green);font-size:10px;margin-bottom:5px}.ticket-reply p{color:#c9d0d5;font-size:12px;line-height:1.7;white-space:pre-wrap}.ticket-actions{display:flex;flex-direction:column;gap:8px}.ticket-actions textarea{min-height:66px;padding:9px 11px;background:#0e1419;color:var(--text);border:1px solid #31404b;border-radius:6px;outline:0;font:inherit;resize:vertical}.ticket-actions textarea:focus{border-color:#b45b21}.ticket-buttons{display:flex;gap:9px}.totp-secret{text-align:center;padding:10px;background:#0e1419;border:1px dashed #31404b;border-radius:6px}.totp-secret code{color:var(--orange);font-size:16px;letter-spacing:2px}.totp-input{display:flex;align-items:center;gap:9px;border:1px solid #31404b;background:#0e1419;border-radius:6px;padding:0 12px;color:var(--muted)}.totp-input input{border:0!important;background:transparent!important}.login-hint{color:var(--muted);font-size:12px;line-height:1.6}.link-button{border:0;background:transparent;color:var(--orange);cursor:pointer;font-size:12px}
