.wall-root{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background:radial-gradient(1100px 560px at 50% -8%,rgba(34,211,238,.11),transparent 62%),radial-gradient(900px 480px at 92% 108%,rgba(37,99,235,.12),transparent 60%),#050c15;color:#cfe3f5;font-family:var(--font);-webkit-user-select:none;user-select:none}.wall-root:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(rgba(120,170,220,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(120,170,220,.045) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(circle at 50% 38%,#000 30%,transparent 88%);mask-image:radial-gradient(circle at 50% 38%,#000 30%,transparent 88%)}.wall-stage{position:absolute;top:0;left:0;width:1920px;height:1080px;transform-origin:top left;display:flex;flex-direction:column;z-index:1}.wall-head{height:84px;flex:0 0 84px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:linear-gradient(180deg,#0a1624eb,#050c1500);border-bottom:1px solid rgba(56,120,180,.18)}.wall-brand{display:flex;align-items:center;gap:12px}.wall-brand-mark{width:38px;height:38px;border-radius:9px;display:grid;place-items:center;font-size:18px;font-weight:500;color:#041018;background:linear-gradient(135deg,#67e8f9,#2f80ed);box-shadow:0 0 22px #22d3ee73}.wall-title{font-size:22px;letter-spacing:3px;font-weight:500;color:#e6f4ff;line-height:1.2}.wall-subtitle{font-size:11px;letter-spacing:2.6px;color:#5f8bab;margin-top:3px}.wall-clock{text-align:center;line-height:1}.wall-clock-time{font-family:var(--mono);font-size:36px;letter-spacing:2px;color:#e8f8ff;font-variant-numeric:tabular-nums;text-shadow:0 0 24px rgba(34,211,238,.35)}.wall-clock-date{margin-top:6px;font-size:12px;letter-spacing:2px;color:#6f9ab8}.wall-head-right{display:flex;align-items:center;gap:10px}.wall-live{display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 11px;border-radius:999px;border:1px solid rgba(34,211,238,.3);background:#22d3ee14;font-size:12px;letter-spacing:1px;color:#7fe3f5}.wall-live.offline{border-color:#ff5b6266;background:#ff5b621a;color:#ff8d92}.wall-dot{width:7px;height:7px;border-radius:50%;background:#22d3ee;box-shadow:0 0 10px #22d3ee;animation:wall-blink 1.6s ease-in-out infinite}.wall-live.offline .wall-dot{background:#ff5b62;box-shadow:0 0 10px #ff5b62;animation-duration:.9s}@keyframes wall-blink{0%,to{opacity:1}50%{opacity:.25}}.wall-updated{font-size:12px;color:#5f8bab;font-variant-numeric:tabular-nums}.wall-head-btn{height:30px;padding:0 12px;border-radius:6px;border:1px solid rgba(86,148,200,.32);background:#14283e99;color:#a8cbe6;font-size:12px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;transition:all .16s ease}.wall-head-btn:hover{border-color:#22d3ee99;color:#e6f8ff;box-shadow:0 0 14px #22d3ee33}.wall-body{flex:1;min-height:0;display:grid;grid-template-columns:440px 1fr 420px;gap:16px;padding:16px 24px 20px}.wall-col{display:flex;flex-direction:column;gap:16px;min-height:0}.wall-panel{position:relative;display:flex;flex-direction:column;min-height:0;padding:12px 16px 14px;background:linear-gradient(180deg,#102032e6,#0a1420d1);border:1px solid rgba(76,132,180,.22);border-radius:3px;box-shadow:inset 0 0 46px #22d3ee0b}.wall-panel:before,.wall-panel:after{content:"";position:absolute;width:11px;height:11px;border-color:#22d3ee8c;border-style:solid;pointer-events:none}.wall-panel:before{top:-1px;left:-1px;border-width:1px 0 0 1px}.wall-panel:after{bottom:-1px;right:-1px;border-width:0 1px 1px 0}.wall-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;flex:0 0 auto}.wall-panel-title{display:flex;align-items:center;gap:9px;font-size:13px;letter-spacing:2px;color:#9dc4e2}.wall-panel-title:before{content:"";width:3px;height:13px;border-radius:1px;background:linear-gradient(180deg,#67e8f9,#2563eb);box-shadow:0 0 10px #22d3eebf}.wall-panel-hint{font-size:11px;letter-spacing:1px;color:#5a7f9c;font-variant-numeric:tabular-nums}.wall-kpis{flex:0 0 auto;display:grid;grid-template-columns:1fr 1fr;gap:12px}.wall-kpi{position:relative;padding:12px 14px 13px;border:1px solid rgba(76,132,180,.2);border-radius:3px;background:linear-gradient(160deg,#14283eeb,#0a1420db);overflow:hidden}.wall-kpi:after{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:#22d3ee;opacity:.85}.wall-kpi-label{font-size:12px;letter-spacing:1.6px;color:#7fa6c4}.wall-kpi-value{margin-top:4px;font-family:var(--mono);font-size:40px;line-height:1.06;letter-spacing:-1px;color:#eaf7ff;font-variant-numeric:tabular-nums}.wall-kpi-sub{margin-top:2px;font-size:11px;color:#5f8bab;letter-spacing:.5px}.wall-kpi.tone-critical:after{background:#ff5b62}.wall-kpi.tone-critical .wall-kpi-value{color:#ff7078;text-shadow:0 0 20px rgba(255,77,79,.4)}.wall-kpi.tone-warning:after{background:#ffb020}.wall-kpi.tone-warning .wall-kpi-value{color:#ffc14d}.wall-kpi.tone-ok:after{background:#3ddc97}.wall-kpi.tone-ok .wall-kpi-value{color:#62e6ab}.wall-donut{position:relative;flex:0 0 auto}.wall-donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.wall-donut-total{font-family:var(--mono);font-size:34px;line-height:1;color:#eaf7ff;font-variant-numeric:tabular-nums}.wall-donut-label{margin-top:5px;font-size:11px;letter-spacing:2px;color:#5f8bab}.wall-legend{display:flex;flex-direction:column;gap:7px;margin-top:10px;flex:0 0 auto}.wall-legend-row{display:flex;align-items:center;gap:8px;font-size:12px;color:#93b4cd}.wall-legend-swatch{width:8px;height:8px;border-radius:2px;flex:0 0 auto}.wall-legend-name{flex:1}.wall-legend-count{font-family:var(--mono);color:#e3f2fd;font-variant-numeric:tabular-nums}.wall-legend-pct{width:44px;text-align:right;color:#5f8bab;font-variant-numeric:tabular-nums}.wall-ranks{flex:1;min-height:0;display:flex;flex-direction:column;gap:11px;overflow:hidden}.wall-rank{display:flex;flex-direction:column;gap:5px}.wall-rank-top{display:flex;align-items:baseline;gap:8px;font-size:12.5px}.wall-rank-idx{width:20px;font-family:var(--mono);font-size:11px;color:#4d7593;flex:0 0 auto}.wall-rank-name{flex:1;color:#d3e7f7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wall-rank-site{font-size:11px;color:#5f8bab;flex:0 0 auto}.wall-rank-count{font-family:var(--mono);color:#eaf7ff;font-variant-numeric:tabular-nums;flex:0 0 auto}.wall-rank-bar{height:6px;margin-left:28px;border-radius:3px;background:#78aadc1a;overflow:hidden}.wall-rank-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,#1d6fd6,#22d3ee);transition:width .5s ease}.wall-rank-fill.hot{background:linear-gradient(90deg,#b3261e,#ff5b62);box-shadow:0 0 12px #ff5b6259}.wall-feed{flex:1;min-height:0;display:flex;flex-direction:column;gap:6px;overflow:hidden}.wall-feed-head,.wall-feed-row{display:grid;grid-template-columns:56px 62px 1.05fr .9fr 1.5fr 74px;gap:10px;align-items:center;padding:0 12px}.wall-feed-head{height:26px;font-size:11px;letter-spacing:1.4px;color:#4f7794;border-bottom:1px solid rgba(76,132,180,.16);flex:0 0 auto}.wall-feed-row{min-height:48px;border-left:3px solid #2f4a66;border-radius:2px;background:#1224388c;animation:wall-row-in .4s ease both}.wall-feed-row.sev-critical{border-left-color:#ff5b62;background:linear-gradient(90deg,#ff5b6224,#12243880 55%);animation:wall-row-in .4s ease both,wall-critical-pulse 2.4s ease-in-out infinite .4s}.wall-feed-row.sev-warning{border-left-color:#ffb020;background:linear-gradient(90deg,#ffb0201a,#12243880 55%)}.wall-feed-row.sev-info{border-left-color:#4cc9f0}@keyframes wall-row-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes wall-critical-pulse{0%,to{box-shadow:inset 0 0 0 1px #ff5b622e}50%{box-shadow:inset 0 0 0 1px #ff5b6280,0 0 16px #ff5b6224}}.wall-feed-time{font-family:var(--mono);font-size:12.5px;color:#7fa6c4;font-variant-numeric:tabular-nums}.wall-feed-main{display:flex;flex-direction:column;gap:1px;min-width:0}.wall-feed-name{font-size:13px;color:#eaf7ff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wall-feed-sub{font-size:11px;color:#5f8bab;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wall-feed-summary{font-size:12.5px;color:#b9d4e8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wall-chip{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:3px;font-size:11px;letter-spacing:.6px;border:1px solid transparent;white-space:nowrap}.wall-chip.sev-critical{color:#ff8d92;border-color:#ff5b6273;background:#ff5b621f}.wall-chip.sev-warning{color:#ffcb75;border-color:#ffb02066;background:#ffb0201a}.wall-chip.sev-info{color:#7fd8f5;border-color:#4cc9f066;background:#4cc9f01a}.wall-chip.st-pending{color:#ffcb75;border-color:#ffb02052}.wall-chip.st-firing{color:#ff8d92;border-color:#ff5b6266}.wall-chip.st-acked{color:#8fd0ff;border-color:#4ca0ff66}.wall-chip.st-suppressed{color:#96a7bb;border-color:#96a7bb52}.wall-feed-pager{flex:0 0 auto;margin-top:8px;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#4f7794;letter-spacing:1px;font-variant-numeric:tabular-nums}.wall-feed-dots{display:flex;gap:5px}.wall-feed-dot{width:14px;height:3px;border-radius:2px;background:#78aadc33}.wall-feed-dot.on{background:#22d3ee;box-shadow:0 0 8px #22d3ee99}.wall-statuses{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:10px}.wall-status-row{display:flex;align-items:center;gap:10px;font-size:12px;color:#93b4cd}.wall-status-name{width:54px;flex:0 0 auto}.wall-status-bar{flex:1;height:8px;border-radius:4px;background:#78aadc1a;overflow:hidden}.wall-status-fill{height:100%;border-radius:4px;transition:width .5s ease}.wall-status-count{width:34px;text-align:right;font-family:var(--mono);color:#eaf7ff;font-variant-numeric:tabular-nums}.wall-recent{flex:1;min-height:0;display:flex;flex-direction:column;gap:9px;overflow:hidden}.wall-recent-row{display:flex;align-items:center;gap:9px;font-size:12.5px;padding-left:9px;border-left:2px solid rgba(61,220,151,.5)}.wall-recent-time{font-family:var(--mono);font-size:11.5px;color:#5f8bab;flex:0 0 auto;font-variant-numeric:tabular-nums}.wall-recent-name{flex:1;color:#c7dded;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wall-recent-rule{font-size:11px;color:#5f8bab;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wall-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#4f7794;font-size:13px;letter-spacing:1.5px}.wall-empty-ok{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-size:20px;color:#3ddc97;border:1px solid rgba(61,220,151,.4);box-shadow:0 0 24px #3ddc972e inset}.wall-error{position:absolute;left:50%;bottom:26px;transform:translate(-50%);padding:8px 16px;border-radius:4px;font-size:12px;color:#ffb4b8;background:#781418b3;border:1px solid rgba(255,91,98,.4);z-index:3}img.wall-brand-logo{object-fit:contain;border-radius:9px}:root{--bg: #f4f6f8;--surface: #ffffff;--surface-2: #fafbfc;--surface-3: #f1f3f6;--border: #e5e8ec;--border-strong: #d3d8de;--text: #16191d;--text-2: #5a636e;--text-3: #8b939e;--primary: #2563eb;--primary-hover: #1d4ed8;--primary-text: #2563eb;--primary-weak: #eef4ff;--primary-border: #c7d9fd;--ok: #0f9f5f;--ok-weak: #e8f7ef;--warn: #c2740a;--warn-weak: #fdf4e3;--danger: #d92d20;--danger-weak: #fdeceb;--info: #0b7fc4;--info-weak: #e9f4fb;--muted-weak: #f0f2f5;--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .04);--shadow-md: 0 6px 20px rgba(16, 24, 40, .08);--shadow-lg: 0 18px 48px rgba(16, 24, 40, .14);--sidebar-w: 224px;--topbar-h: 60px;--font: system-ui, -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", sans-serif;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:13px;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-weight:500}h1{font-size:18px;letter-spacing:-.2px}h2{font-size:15px}h3{font-size:13px}a{color:var(--primary-text);text-decoration:none}button{font-family:inherit;font-size:inherit}input,select,textarea{font-family:inherit;font-size:13px;color:var(--text)}::selection{background:#cfe0ff}.app-shell{display:flex;min-height:100%}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:0 18px;height:var(--topbar-h);border-bottom:1px solid var(--border)}.brand-mark{width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:500;letter-spacing:-.5px}.brand-text{display:flex;flex-direction:column;line-height:1.2}.brand-text strong{font-size:13px;font-weight:500}.brand-text span{font-size:11px;color:var(--text-3)}.nav{padding:10px;display:flex;flex-direction:column;gap:2px;overflow-y:auto;flex:1}.nav-group-label{font-size:11px;color:var(--text-3);padding:14px 10px 6px;letter-spacing:.4px}.nav-item{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--radius-sm);color:var(--text-2);font-size:13px;cursor:pointer;border:none;background:transparent;width:100%;text-align:left;transition:background .12s ease,color .12s ease}.nav-item:hover{background:var(--surface-3);color:var(--text)}.nav-item.active{background:var(--primary-weak);color:var(--primary-text)}.nav-item .nav-icon{width:16px;height:16px;flex:0 0 16px;opacity:.85}.nav-item .nav-count{margin-left:auto;font-size:11px;color:var(--text-3)}.sidebar-foot{padding:12px 14px;border-top:1px solid var(--border);font-size:11px;color:var(--text-3);display:flex;align-items:center;justify-content:space-between;gap:8px}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:var(--topbar-h);background:#ffffffdb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px;padding:0 20px;position:sticky;top:0;z-index:20}.topbar-title{display:flex;flex-direction:column;gap:1px}.topbar-title h1{font-size:15px}.topbar-title span{font-size:12px;color:var(--text-3)}.topbar-spacer{flex:1}.content{padding:18px 20px 40px;display:flex;flex-direction:column;gap:16px;max-width:1560px;width:100%}.user-chip{display:flex;align-items:center;gap:8px;padding:5px 8px 5px 5px;border:1px solid var(--border);border-radius:999px;background:var(--surface);cursor:pointer}.user-chip:hover{border-color:var(--border-strong)}.avatar{width:24px;height:24px;border-radius:999px;background:var(--primary-weak);color:var(--primary-text);display:grid;place-items:center;font-size:11px;font-weight:500}.user-meta{display:flex;flex-direction:column;line-height:1.15}.user-meta strong{font-size:12px;font-weight:500}.user-meta span{font-size:10px;color:var(--text-3)}.menu{position:absolute;right:20px;top:calc(var(--topbar-h) - 6px);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);min-width:168px;padding:5px;z-index:40}.menu button{display:block;width:100%;text-align:left;padding:7px 10px;border:none;background:transparent;border-radius:var(--radius-sm);color:var(--text-2);cursor:pointer}.menu button:hover{background:var(--surface-3);color:var(--text)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-head{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--border)}.card-head h2{font-size:13px;font-weight:500}.card-head .hint{font-size:11px;color:var(--text-3)}.card-head .spacer{flex:1}.card-body{padding:16px}.card-body.tight{padding:10px 12px}.card-body.flush{padding:0}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:13px 15px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow-sm);min-width:0}.kpi-label{font-size:12px;color:var(--text-2);display:flex;align-items:center;gap:6px}.kpi-value{font-size:24px;font-weight:500;letter-spacing:-.6px;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:6px}.kpi-value .unit{font-size:12px;color:var(--text-3);font-weight:400;letter-spacing:0}.kpi-sub{font-size:11px;color:var(--text-3);display:flex;gap:10px;flex-wrap:wrap}.kpi-sub b{font-weight:500;color:var(--text-2);font-variant-numeric:tabular-nums}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:30px;padding:0 11px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;font-size:12px;font-weight:400;transition:background .12s ease,border-color .12s ease,opacity .12s ease;white-space:nowrap}.btn:hover{background:var(--surface-3)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary-text);color:#fff}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-danger{color:var(--danger);border-color:#f3c3bf;background:var(--danger-weak)}.btn-danger:hover{background:#fbdad7}.btn-ghost{border-color:transparent;background:transparent;color:var(--text-2)}.btn-ghost:hover{background:var(--surface-3);color:var(--text)}.btn-sm{height:26px;padding:0 9px;font-size:12px}.btn-icon{width:30px;padding:0}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field label{font-size:12px;color:var(--text-2);display:flex;align-items:center;gap:4px}.field label .req{color:var(--danger)}.field .hint{font-size:11px;color:var(--text-3)}.input,.select,.textarea{height:32px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:0 9px;background:var(--surface);outline:none;width:100%;transition:border-color .12s ease,box-shadow .12s ease}.textarea{height:auto;padding:8px 9px;resize:vertical;font-family:var(--mono);font-size:12px;line-height:1.5}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary-text);box-shadow:0 0 0 3px #2563eb1f}.input.invalid{border-color:var(--danger)}.field-error{font-size:11px;color:var(--danger)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid .span-2{grid-column:span 2}.search{position:relative;min-width:200px}.search input{padding-left:28px}.search svg{position:absolute;left:8px;top:8px;width:14px;height:14px;color:var(--text-3)}.checkbox{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--text-2);cursor:pointer}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tabs{display:inline-flex;background:var(--surface-3);border-radius:var(--radius-sm);padding:2px;gap:2px}.tab{border:none;background:transparent;padding:5px 11px;border-radius:5px;font-size:12px;color:var(--text-2);cursor:pointer;display:inline-flex;align-items:center;gap:6px}.tab.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.tab .count{font-size:11px;color:var(--text-3);font-variant-numeric:tabular-nums}.table-wrap{overflow:auto;max-width:100%}table.data{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px}table.data thead th{position:sticky;top:0;background:var(--surface-2);color:var(--text-2);text-align:left;font-weight:400;font-size:11.5px;padding:8px 12px;border-bottom:1px solid var(--border);white-space:nowrap;z-index:1}table.data tbody td{padding:9px 12px;border-bottom:1px solid var(--border);vertical-align:middle}table.data tbody tr:last-child td{border-bottom:none}table.data tbody tr.clickable{cursor:pointer}table.data tbody tr.clickable:hover{background:var(--surface-2)}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}.chip.tag{background:var(--surface-2);border-color:var(--border);color:var(--text-2);font-weight:400}.chip.chip-soft{background:color-mix(in srgb,var(--primary) 10%,transparent);border-color:color-mix(in srgb,var(--primary) 24%,transparent);color:var(--primary-text, var(--primary));font-weight:400}.kb-table tbody td{padding:12px}.kb-table tbody tr{transition:background .12s ease}.kb-table tbody tr:hover{background:var(--surface-2)}.kb-doc-title{font-weight:600;font-size:13px;line-height:1.4}.cell-primary{display:flex;flex-direction:column;gap:1px;min-width:0}.cell-primary strong{font-weight:500;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell-primary span{font-size:11px;color:var(--text-3);font-family:var(--mono)}.mono{font-family:var(--mono);font-size:11.5px;color:var(--text-2)}.badge{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 7px;border-radius:4px;font-size:11.5px;white-space:nowrap;border:1px solid transparent}.badge .dot{width:6px;height:6px;border-radius:999px;background:currentColor;flex:0 0 6px}.badge.up{color:var(--ok);background:var(--ok-weak);border-color:#c6ead6}.badge.down{color:var(--danger);background:var(--danger-weak);border-color:#f6cfcb}.badge.degraded{color:var(--warn);background:var(--warn-weak);border-color:#f2e0bd}.badge.maintenance{color:var(--info);background:var(--info-weak);border-color:#c9e6f7}.badge.unknown{color:var(--text-2);background:var(--muted-weak);border-color:#e2e5ea}.badge.neutral{color:var(--text-2);background:var(--surface-3);border-color:var(--border)}.badge.primary{color:var(--primary-text);background:var(--primary-weak);border-color:var(--primary-border)}.tag{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:4px;background:var(--surface-3);color:var(--text-2);font-size:11px;border:1px solid var(--border)}.bar{height:5px;background:var(--surface-3);border-radius:999px;overflow:hidden;min-width:44px}.bar>i{display:block;height:100%;background:var(--primary);border-radius:999px}.bar.warn>i{background:#e8a33d}.bar.danger>i{background:var(--danger)}.bar-row{display:flex;align-items:center;gap:8px}.bar-row .val{font-size:11.5px;color:var(--text-2);font-variant-numeric:tabular-nums;min-width:46px;text-align:right}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182852;z-index:60;display:flex;justify-content:flex-end}.drawer{width:min(560px,100%);background:var(--surface);height:100%;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:slide-in .18s ease-out}@keyframes slide-in{0%{transform:translate(14px);opacity:.6}to{transform:translate(0);opacity:1}}.drawer-head{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.drawer-head h2{font-size:14px}.drawer-body{padding:16px 18px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:12px}.drawer-foot{padding:12px 18px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end;background:var(--surface-2)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;background:#10182852;padding:24px}.modal-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:min(600px,100%);max-height:86vh;display:flex;flex-direction:column}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:36px 20px;color:var(--text-3);text-align:center}.empty strong{font-weight:500;color:var(--text-2);font-size:13px}.empty .icon{width:34px;height:34px;border-radius:10px;background:var(--surface-3);display:grid;place-items:center;color:var(--text-3)}.skeleton{background:linear-gradient(90deg,#eef1f4 25%,#f6f8fa 37%,#eef1f4 63%);background-size:400% 100%;animation:shimmer 1.3s ease infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:999px;animation:spin .7s linear infinite}.spinner.dark{border-color:#2563eb40;border-top-color:var(--primary-text)}@keyframes spin{to{transform:rotate(360deg)}}.alert{display:flex;gap:9px;padding:10px 12px;border-radius:var(--radius-sm);font-size:12px;border:1px solid;align-items:flex-start}.alert.error{background:var(--danger-weak);border-color:#f6cfcb;color:#8f2118}.alert.warn{background:var(--warn-weak);border-color:#f2e0bd;color:#7a4a07}.alert.info{background:var(--info-weak);border-color:#c9e6f7;color:#0a5c8f}.alert.success{background:var(--ok-weak);border-color:#c6ead6;color:#0b6b40}.alert .alert-body{flex:1;min-width:0}.alert strong{font-weight:500}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1fr 460px;background:var(--bg)}.login-side{background:radial-gradient(1000px 560px at 15% 15%,#dce9ff 0%,transparent 60%),radial-gradient(760px 540px at 85% 82%,#dcf5ef 0%,transparent 58%),radial-gradient(500px 400px at 60% 45%,#f0e9ff 0%,transparent 62%),#f7f9fc;padding:56px 64px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--border);position:relative;overflow:hidden}.login-side h1{font-size:44px;line-height:1.28;max-width:600px;letter-spacing:-1px;font-weight:650;margin-top:20px;background:linear-gradient(135deg,var(--text) 55%,var(--primary-text) 130%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--text)}.login-side p{color:var(--text-2);max-width:540px;font-size:17.5px;line-height:1.75;margin-top:18px}.login-points{display:flex;flex-direction:column;gap:10px;max-width:540px;margin-top:48px}.login-point{display:flex;gap:12px;align-items:flex-start;background:#ffffffb8;border:1px solid var(--border);border-radius:12px;padding:13px 16px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.login-point:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--primary-text) 30%,var(--border));box-shadow:0 8px 24px #1e40af14}.login-point .dot-mark{width:30px;height:30px;border-radius:9px;background:color-mix(in srgb,var(--primary-text) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--primary-text) 22%,var(--border));display:grid;place-items:center;color:var(--primary-text);flex:0 0 30px;margin-top:1px}.login-point strong{font-size:15px;font-weight:600;display:block}.login-point span{font-size:13.5px;color:var(--text-3);line-height:1.55;display:block;margin-top:2px}.login-side-foot{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--text-3)}.login-brand{margin-bottom:32px}.login-brand .brand-text strong{font-size:18px;font-weight:650;letter-spacing:-.2px}.login-brand .brand-text span{font-size:12.5px}.login-panel{display:flex;align-items:center;justify-content:center;padding:40px 48px;background:radial-gradient(600px 400px at 80% 10%,rgba(59,130,246,.05) 0%,transparent 60%),var(--surface)}.login-form{width:100%;max-width:330px;display:flex;flex-direction:column;gap:16px}.login-form .brand{border:none;padding:0;height:auto;margin-bottom:8px}.login-form h2{font-size:24px;font-weight:650;letter-spacing:-.3px}.login-form .sub{font-size:13.5px;color:var(--text-3);margin-top:-10px}.login-form .field label{font-size:13px;font-weight:500}.login-form .input{height:40px;font-size:14px;border-radius:9px}.login-form .btn-primary{height:42px;font-size:15px;font-weight:600;border-radius:9px;box-shadow:0 4px 14px #2563eb47;transition:transform .15s ease,box-shadow .15s ease}.login-form .btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 18px #2563eb57}.login-hint{font-size:11px;color:var(--text-3);background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);padding:8px 10px;line-height:1.6}.chart{width:100%}.grid-2{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:16px}.grid-2-even{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.detail-head{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap}.detail-head .titles{display:flex;flex-direction:column;gap:5px;min-width:0}.detail-head h1{display:flex;align-items:center;gap:9px;font-size:17px}.detail-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--text-2)}.detail-meta .kv{display:inline-flex;align-items:center;gap:5px}.detail-meta .kv b{font-weight:400;color:var(--text-3)}.info-list{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px 12px;font-size:12.5px}.info-list dt{color:var(--text-3);white-space:nowrap}.info-list dd{margin:0;color:var(--text);word-break:break-all}.row{display:flex;align-items:center;gap:8px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:10px}.col{display:flex;flex-direction:column;gap:8px}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.muted{color:var(--text-3)}.text-sm{font-size:11.5px}.text-2{color:var(--text-2)}.strong{font-weight:500}.nowrap{white-space:nowrap}.num{font-variant-numeric:tabular-nums}.mt-0{margin-top:0}.hr{height:1px;background:var(--border);border:none;margin:2px 0}.link-btn{border:none;background:transparent;color:var(--primary-text);cursor:pointer;padding:0;font-size:12px}.link-btn:hover{text-decoration:underline}@media(max-width:1180px){.grid-2{grid-template-columns:minmax(0,1fr)}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.sidebar{width:64px;flex:0 0 64px}.sidebar .brand-text,.sidebar .nav-item span,.sidebar .nav-group-label,.sidebar-foot{display:none}.nav-item{justify-content:center}.login-wrap{grid-template-columns:1fr}.login-side{display:none}.form-grid,.grid-2-even,.grid-3{grid-template-columns:minmax(0,1fr)}.form-grid .span-2{grid-column:span 1}}.chip{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap;border:1px solid transparent}.chip.sev-critical{background:#fdecec;color:#b42318;border-color:#f7cfcd}.chip.sev-warning{background:#fff6e6;color:#b25c05;border-color:#f7e0b8}.chip.sev-info{background:#eef4ff;color:#1c4ed8;border-color:#d5e2fb}.chip.st-firing{background:#fdecec;color:#b42318}.chip.st-pending{background:#f4f5f7;color:var(--text-2)}.chip.st-acked{background:#eef4ff;color:#1c4ed8}.chip.st-resolved{background:#e9f7ef;color:#0f7b3f}.chip.st-closed{background:#f4f5f7;color:var(--text-3)}.chip.st-suppressed{background:#f4f0fb;color:#6941c6}.chip.st-muted{background:#f4f5f7;color:var(--text-3)}.icon-btn{border:none;background:transparent;color:var(--text-3);cursor:pointer;font-size:15px;line-height:1;padding:6px 8px;border-radius:8px}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.timeline{list-style:none;margin:0;padding:0 0 0 14px;border-left:1px solid var(--border);display:flex;flex-direction:column;gap:12px}.timeline li{position:relative;font-size:13px}.timeline-dot{position:absolute;left:-19px;top:5px;width:7px;height:7px;border-radius:50%;background:var(--border-strong, #cfd4dc)}.nav-item .nav-count-pill{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#d92d20;color:#fff;font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}.profile-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:16px;align-items:start}@media(max-width:1180px){.profile-layout{grid-template-columns:minmax(0,1fr)}}.id-card{display:flex;flex-direction:column;gap:14px}.id-card-head{display:flex;align-items:center;gap:10px}.id-avatar{width:44px;height:44px;border-radius:13px;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:18px;font-weight:600;flex:0 0 44px}.role-chip{margin-left:auto;height:20px;padding:0 8px;border-radius:4px;font-size:11.5px;display:inline-flex;align-items:center;border:1px solid var(--border);color:var(--text-2);background:var(--surface-3)}.role-chip.role-admin{color:var(--primary-text);background:var(--primary-weak);border-color:var(--primary-border)}.meta-list{display:flex;flex-direction:column}.meta-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px dashed var(--border);font-size:12px}.meta-row>span{color:var(--text-3);flex:0 0 auto}.meta-row>strong{font-weight:500;text-align:right;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-head{display:flex;flex-direction:column;gap:2px;padding:8px 10px 9px;border-bottom:1px solid var(--border);margin-bottom:4px}.menu-head strong{font-size:13px;font-weight:500}.menu-head span{font-size:11.5px;color:var(--text-3)}.channel-tips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.channel-tips>div{padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);font-size:12px;line-height:1.65;color:var(--text-3)}.channel-tips strong{display:block;font-size:12.5px;font-weight:500;color:var(--text);margin-bottom:2px}@media(max-width:1080px){.channel-tips{grid-template-columns:minmax(0,1fr)}}.channel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px}.channel-card{display:flex;flex-direction:column;gap:10px;padding:14px 16px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.channel-card.disabled{background:var(--surface-2)}.channel-head{display:flex;align-items:center;gap:10px}.channel-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:0 0 34px;background:var(--primary-weak);color:var(--primary-text)}.channel-icon.kind-email{background:var(--info-weak);color:var(--info)}.channel-icon.kind-wecom{background:#e8f6ee;color:#1a9c5b}.channel-icon.kind-dingtalk,.channel-icon.kind-feishu{background:var(--primary-weak);color:var(--primary-text)}.channel-icon.kind-wechat{background:#e9f7e9;color:#2f9e44}.channel-icon.kind-webhook{background:var(--surface-3);color:var(--text-2)}.channel-title{display:flex;flex-direction:column;gap:1px;min-width:0}.channel-title strong{font-size:13.5px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channel-title span{font-size:11.5px;color:var(--text-3)}.channel-detail{font-size:12.5px;color:var(--text-2);font-family:var(--mono);background:var(--surface-2);border:1px dashed var(--border);border-radius:var(--radius-sm);padding:7px 9px;word-break:break-all}.channel-meta{display:flex;align-items:center;gap:10px}.channel-result{font-size:12px;line-height:1.6;padding:7px 9px;border-radius:var(--radius-sm);border:1px solid var(--border);word-break:break-all}.channel-result.ok{background:var(--ok-weak);border-color:#bce8cf;color:#0b7a48}.channel-result.fail{background:var(--danger-weak);border-color:#f6cdc9;color:#a5251b}.channel-actions{display:flex;align-items:center;gap:6px;margin-top:2px}.incident-layout{display:grid;grid-template-columns:300px minmax(0,1fr) 340px;gap:14px;align-items:start;margin-bottom:14px}@media(max-width:1440px){.incident-layout{grid-template-columns:270px minmax(0,1fr)}.incident-layout>.col:last-child{grid-column:1 / -1}}@media(max-width:1100px){.incident-layout{grid-template-columns:minmax(0,1fr)}}.detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px;padding:16px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.incident-alert{padding:9px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.history-item{display:flex;flex-direction:column;gap:3px;width:100%;padding:8px 10px;text-align:left;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font:inherit;color:inherit}.history-item:hover{background:var(--surface-2)}.history-item.active{border-color:var(--primary-border);background:var(--primary-weak)}.analysis-banner{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);font-size:13px;line-height:1.55}.analysis-banner.ok{background:var(--ok-weak);border-color:#bfe7d1;color:#0b6b41}.analysis-banner.warn{background:var(--warn-weak);border-color:#f2ddb4;color:#8a4b06}.analysis-banner.error{background:var(--danger-weak);border-color:#f5c9c5;color:#a02218}.stream-box{font-family:var(--mono);font-size:12.5px;line-height:1.7;white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto;padding:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-2)}.stream-caret{display:inline-block;width:7px;height:14px;margin-left:2px;vertical-align:-2px;background:var(--primary);animation:caret-blink 1s steps(2,start) infinite}@keyframes caret-blink{to{visibility:hidden}}.analysis-summary{font-size:15px;line-height:1.6;font-weight:500;color:var(--text)}.confidence{margin:12px 0 4px}.confidence-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:5px}.confidence .bar{height:7px}.analysis-block{margin-top:14px;padding-top:12px;border-top:1px dashed var(--border)}.analysis-block-title{font-size:12px;font-weight:500;color:var(--text-3);letter-spacing:.04em;margin-bottom:6px}.analysis-hypothesis{margin:0;font-size:13.5px;line-height:1.7;color:var(--text)}.evidence{display:flex;gap:9px;align-items:flex-start;padding:8px 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.evidence-source{flex:none;height:20px;padding:0 7px;border-radius:999px;background:var(--surface-3);color:var(--text-2);font-size:11.5px;line-height:20px}.evidence-ref{font-family:var(--mono);font-size:11px;color:var(--text-3);word-break:break-all}.alt-item{display:flex;flex-direction:column;gap:2px;padding-left:10px;border-left:2px solid var(--border)}.analysis-disclaimer{margin-top:14px;padding:8px 10px;border-radius:var(--radius-sm);background:var(--muted-weak);color:var(--text-3);font-size:12px;line-height:1.6}.action-card{padding:11px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.action-step{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--primary-weak);color:var(--primary-text);font-size:12px;font-weight:500}.action-command{display:block;margin-top:7px;padding:7px 9px;background:var(--surface-3);border-radius:var(--radius-sm);font-family:var(--mono);font-size:11.5px;line-height:1.55;color:var(--text-2);white-space:pre-wrap;word-break:break-all}.chip.risk-low{background:var(--ok-weak);color:#0b6b41;border-color:#bfe7d1}.chip.risk-medium{background:var(--warn-weak);color:#8a4b06;border-color:#f2ddb4}.chip.risk-high{background:var(--danger-weak);color:#a02218;border-color:#f5c9c5}.chip.chip-warn{background:#fff;color:#8a4b06;border-style:dashed}.chain{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.chain-node{display:inline-flex;align-items:center;gap:7px;padding:7px 12px 7px 7px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);font-size:13px}.chain-node+.chain-node:before{content:"→";margin-right:4px;color:var(--text-3)}.chain-index{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;border-radius:50%;background:var(--surface-3);color:var(--text-2);font-size:11.5px}.local-only{display:flex;flex-direction:column;gap:4px;margin-top:14px;padding:11px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.timeline-item{position:relative;display:flex;gap:10px;padding-bottom:12px}.timeline-item .timeline-dot{position:static;flex:none;margin-top:6px;width:8px;height:8px;border-radius:50%;background:var(--border-strong)}.timeline-item .timeline-dot.alert{background:var(--warn)}.timeline-item .timeline-dot.analysis{background:var(--primary)}.timeline-item .timeline-dot.ack{background:var(--info)}.timeline-item .timeline-dot.resolve{background:var(--ok)}.timeline{display:flex;flex-direction:column;padding-left:0;border-left:none;gap:0}.env-badge{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:4px;font-size:11px;font-weight:500;line-height:1;border:1px solid transparent;white-space:nowrap}.env-badge.env-prod{background:var(--danger);border-color:var(--danger);color:#fff}.env-badge.env-staging{background:var(--warn-weak);border-color:#f0dcb4;color:var(--warn)}.env-badge.env-test{background:var(--info-weak);border-color:#cfe4f3;color:var(--info)}.env-badge.env-dev{background:var(--surface-3);border-color:var(--border);color:var(--text-2)}.env-badge.env-unset{background:transparent;border:1px dashed var(--border-strong);color:var(--text-3)}.env-picker{display:flex;gap:6px;flex-wrap:wrap}.env-chip{height:30px;padding:0 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-size:12px;cursor:pointer;transition:border-color .12s ease,background .12s ease,color .12s ease}.env-chip:hover{border-color:var(--border-strong)}.env-chip.active{border-color:var(--primary-text);background:var(--primary-weak);color:var(--primary-text);font-weight:500}.env-chip.env-prod.active{border-color:var(--danger);background:var(--danger-weak);color:var(--danger)}.env-chip.env-staging.active{border-color:var(--warn);background:var(--warn-weak);color:var(--warn)}.env-chip.env-test.active{border-color:var(--info);background:var(--info-weak);color:var(--info)}.env-chip.env-dev.active{border-color:var(--text-2);background:var(--surface-3);color:var(--text)}.tag-editor{display:flex;flex-direction:column;gap:6px}.tag-editor-box{display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-height:34px;padding:4px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:text}.tag-editor-box:focus-within{border-color:var(--primary-text);box-shadow:0 0 0 3px var(--primary-weak)}.tag-editor-input{flex:1;min-width:110px;height:24px;border:none;outline:none;background:transparent;font:inherit;font-size:13px;color:var(--text)}.tag.tag-editable{height:20px;gap:4px;padding-right:2px;background:var(--primary-weak);border-color:var(--primary-border);color:var(--primary-text)}.tag.tag-editable button{border:none;background:transparent;color:inherit;cursor:pointer;font-size:13px;line-height:1;padding:0 3px;opacity:.6}.tag.tag-editable button:hover{opacity:1}.tag-suggest{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.tag.tag-btn{height:20px;cursor:pointer;background:var(--surface);border-style:dashed;color:var(--text-2)}.tag.tag-btn:hover{border-color:var(--primary-text);color:var(--primary-text)}.filter-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:-6px}.filter-hint{font-size:12px;color:var(--text-3)}html[data-theme=dark]{--bg: #0e1116;--surface: #161a20;--surface-2: #1b2028;--surface-3: #222932;--border: #262d37;--border-strong: #343d49;--text: #e7ebf1;--text-2: #a3adbb;--text-3: #6f7a89;--primary: #3b82f6;--primary-hover: #60a5fa;--primary-text: #60a5fa;--primary-weak: rgba(59, 130, 246, .16);--primary-border: rgba(59, 130, 246, .4);--ok: #34d399;--ok-weak: rgba(52, 211, 153, .14);--warn: #f5b544;--warn-weak: rgba(245, 181, 68, .14);--danger: #f87171;--danger-weak: rgba(248, 113, 113, .14);--info: #4cb8f0;--info-weak: rgba(76, 184, 240, .14);--muted-weak: #1e242c;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .5);--shadow-md: 0 8px 24px rgba(0, 0, 0, .5);--shadow-lg: 0 22px 56px rgba(0, 0, 0, .6)}html[data-theme=dark] .topbar{background:#161a20db}html[data-theme=dark] .overlay,html[data-theme=dark] .modal-backdrop{background:#0000009e}html[data-theme=dark] .chip.sev-warning{background:var(--warn-weak);border-color:#f5b54452}html[data-theme=dark] .chip.chip-warn{background:var(--surface-2);border-color:var(--border-strong)}.brand-mark{background:linear-gradient(135deg,var(--primary),var(--primary-hover))}.brand-default-logo{background:none;object-fit:contain;display:block;flex:0 0 auto}html[data-theme=dark] .brand-mark{background:linear-gradient(135deg,var(--primary),var(--primary-border));color:#fff}.brand-logo{height:28px;max-width:140px;width:auto;object-fit:contain;display:block;flex:0 0 auto}.brand.has-logo{padding-right:10px}.brand.has-logo .brand-text{min-width:0}.brand.has-logo .brand-text strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}.settings-main{display:flex;flex-direction:column;gap:16px}.settings-side{position:sticky;top:76px;display:flex;flex-direction:column;gap:12px}@media(max-width:1180px){.settings-layout{grid-template-columns:minmax(0,1fr)}.settings-side{position:static}}.brand-preview{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden;box-shadow:var(--shadow-sm)}.brand-preview-bar{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border);background:var(--surface)}.brand-preview-body{padding:12px 14px 16px;display:flex;flex-direction:column;gap:8px;background:var(--bg)}.preview-line{height:8px;border-radius:4px;background:var(--surface-3)}.preview-line.short{width:62%}.preview-line.tiny{width:38%}.preview-nav{display:flex;flex-direction:column;gap:6px;margin-top:4px}.preview-nav-item{display:flex;align-items:center;gap:8px;height:24px;padding:0 8px;border-radius:var(--radius-sm);font-size:11px;color:var(--text-2)}.preview-nav-item.active{background:var(--primary-weak);color:var(--primary-text)}.preview-nav-dot{width:6px;height:6px;border-radius:2px;background:currentColor;opacity:.7}.brand-preview-foot{padding:8px 14px 12px;font-size:11px;color:var(--text-3);border-top:1px solid var(--border);line-height:1.5}.preview-label{font-size:11px;color:var(--text-3);letter-spacing:.4px;text-transform:uppercase}.logo-drop{display:flex;align-items:center;gap:14px;padding:12px;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2)}.logo-drop.dragging{border-color:var(--primary-text);background:var(--primary-weak)}.logo-preview{width:56px;height:56px;flex:0 0 56px;border-radius:10px;border:1px solid var(--border);background:var(--surface);display:grid;place-items:center;overflow:hidden}.logo-preview img{max-width:100%;max-height:100%;object-fit:contain}.logo-drop-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.logo-drop-body strong{font-size:13px;font-weight:500}.logo-drop-actions{display:flex;gap:8px;margin-top:2px}.theme-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.theme-opt{text-align:left;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;display:flex;flex-direction:column;gap:3px;transition:border-color .12s ease,box-shadow .12s ease}.theme-opt:hover{border-color:var(--border-strong)}.theme-opt.active{border-color:var(--primary-text);box-shadow:0 0 0 3px var(--primary-weak)}.theme-opt strong{font-size:13px;font-weight:500;color:var(--text)}.theme-opt span{font-size:11px;color:var(--text-3);line-height:1.4}.theme-swatch{display:flex;gap:3px;margin-bottom:6px}.theme-swatch i{width:14px;height:14px;border-radius:4px;border:1px solid var(--border)}.theme-swatch.light i:nth-child(1){background:#fff}.theme-swatch.light i:nth-child(2){background:#e9edf2}.theme-swatch.light i:nth-child(3){background:#2563eb}.theme-swatch.dark i:nth-child(1){background:#161a20}.theme-swatch.dark i:nth-child(2){background:#262d37}.theme-swatch.dark i:nth-child(3){background:#60a5fa}.theme-swatch.system i:nth-child(1){background:linear-gradient(135deg,#fff 50%,#161a20 50%)}.theme-swatch.system i:nth-child(2){background:linear-gradient(135deg,#e9edf2 50%,#262d37 50%)}.theme-swatch.system i:nth-child(3){background:linear-gradient(135deg,#2563eb 50%,#60a5fa 50%)}.accent-grid{display:flex;flex-wrap:wrap;gap:8px}.accent-opt{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 12px 0 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-2);font-size:12px;cursor:pointer;transition:border-color .12s ease,background .12s ease,color .12s ease}.accent-opt:hover{border-color:var(--border-strong)}.accent-opt.active{border-color:var(--primary-text);background:var(--primary-weak);color:var(--primary-text);font-weight:500}.accent-dot{width:14px;height:14px;border-radius:50%;box-shadow:inset 0 0 0 1px #00000014}.license-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media(max-width:720px){.license-grid{grid-template-columns:minmax(0,1fr)}}.license-edition-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:500;background:var(--primary-weak);border:1px solid var(--primary-border);color:var(--primary-text)}.license-edition-badge[data-edition=community]{background:var(--surface-2, rgba(127, 127, 127, .12));border-color:#7f7f7f47;color:var(--text-2, inherit)}.quota-rows{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.quota-row{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;font-size:13px}.quota-row+.quota-row{border-top:1px solid var(--border)}.license-state{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:var(--radius-sm);font-size:12px;border:1px solid transparent}.license-state.ok{background:var(--ok-weak);border-color:#0f9f5f3d;color:var(--ok)}.license-state.warn{background:var(--warn-weak);border-color:#c2740a47;color:var(--warn)}.license-state.danger{background:var(--danger-weak);border-color:#d92d2042;color:var(--danger)}.license-state .dot-mark{width:6px;height:6px;border-radius:50%;background:currentColor;flex:0 0 6px}.settings-actions{display:flex;align-items:center;gap:8px;justify-content:flex-end;padding-top:4px;position:sticky;bottom:0;padding-bottom:10px;background:linear-gradient(to top,var(--bg) 62%,transparent)}.settings-state{margin-right:auto;font-size:12px;color:var(--ok);display:inline-flex;align-items:center;gap:5px}.settings-state.dirty{color:var(--warn)}.settings-tabs-wrap{display:flex;flex-direction:column;gap:8px}.settings-layout .settings-tabs{display:flex;width:100%;padding:3px}.settings-layout .settings-tabs .tab{flex:1;justify-content:center;padding:8px 12px;font-size:13px;font-weight:500}.tab-dirty{width:6px;height:6px;border-radius:50%;background:var(--primary)}.settings-tab-desc{margin:0;font-size:12px;color:var(--text-3);padding:0 2px}.settings-layout.no-side{grid-template-columns:minmax(0,1fr)}.settings-saved{margin-right:auto;font-size:12px;color:var(--ok);display:inline-flex;align-items:center;gap:5px}.readonly-note{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--info-weak);border:1px solid rgba(11,127,196,.2);color:var(--info);font-size:12px;line-height:1.5}.form-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar-copy{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;min-width:0}.login-copy{margin:14px 0 0;font-size:11px;color:var(--text-3);text-align:center}.report-period-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0 4px;font-size:14px}.report-period-line strong{font-size:15px}.report-summary{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:13.5px;line-height:1.65}.delta-tag{font-size:12px;color:var(--text-3)}.delta-tag.bad{color:var(--danger)}.delta-tag.good{color:var(--ok)}.spark-wrap{padding-top:6px}.spark-bars{display:flex;align-items:flex-end;gap:2px;height:72px}.spark-bars .spark-col{flex:1;min-width:2px;background:linear-gradient(180deg,var(--primary) 0%,var(--primary-weak, var(--primary)) 100%);opacity:.85;border-radius:2px 2px 0 0;transition:opacity .15s}.spark-bars .spark-col:hover{opacity:1}.spark-axis{display:flex;gap:2px;margin-top:4px}.spark-axis span{flex:1;min-width:2px;font-size:10px;color:var(--text-3);text-align:left;overflow:hidden;white-space:nowrap}.bar-list{display:flex;flex-direction:column;gap:6px}.bar-item{display:grid;grid-template-columns:minmax(80px,170px) 1fr 62px;align-items:center;gap:10px;font-size:12.5px}.bar-item .bar-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2)}.bar-item .bar-track{height:6px;background:var(--surface-3, rgba(127, 127, 127, .14));border-radius:4px;overflow:hidden}.bar-item .bar-track span{display:block;height:100%;background:var(--primary);border-radius:4px;opacity:.8}.bar-item .bar-val{text-align:right;color:var(--text-3);font-variant-numeric:tabular-nums;white-space:nowrap}.block-title{font-size:12px;font-weight:600;color:var(--text-3);margin:12px 0 6px}.data tbody tr.active-row td{background:color-mix(in srgb,var(--primary) 8%,transparent)}.btn.danger{color:var(--danger)}.btn.danger:hover{border-color:var(--danger)}.report-insight-list,.report-suggestion-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.report-insight{border:1px solid var(--border, rgba(127, 127, 127, .25));border-radius:8px;padding:8px 12px}.report-actions{margin:6px 0 0;padding-left:20px;font-size:13px;line-height:1.7}.report-suggestion{display:flex;align-items:flex-start;gap:8px}.report-suggestion .text-sm{line-height:1.6}.field.combo{position:relative}.combo-menu{position:absolute;top:calc(100% - 22px);left:0;right:0;z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0f172a24;max-height:220px;overflow:auto;padding:4px;display:flex;flex-direction:column;gap:2px}.combo-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;background:transparent;border-radius:6px;padding:6px 10px;font-size:13px;color:var(--text);text-align:left;cursor:pointer}.combo-item:hover{background:var(--primary-weak)}.combo-count{font-size:12px;color:var(--text-3);white-space:nowrap}.backup-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;align-items:start}@media(max-width:1180px){.backup-grid{grid-template-columns:minmax(0,1fr)}}.backup-strip{display:flex;align-items:flex-start;gap:12px;padding:13px 15px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.backup-strip.tone-ok{border-left-color:var(--ok)}.backup-strip.tone-warn{border-left-color:var(--warn)}.backup-strip.tone-danger{border-left-color:var(--danger)}.backup-strip-icon{display:flex;margin-top:1px;color:var(--text-3)}.backup-strip.tone-ok .backup-strip-icon{color:var(--ok)}.backup-strip.tone-warn .backup-strip-icon{color:var(--warn)}.backup-strip.tone-danger .backup-strip-icon{color:var(--danger)}.backup-strip-title{font-size:13px;font-weight:500;display:flex;align-items:center;gap:8px}.backup-strip-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:none}.backup-strip-meta .mono{font-size:12px;color:var(--text-2)}.backup-note{font-size:11.5px;line-height:1.65;color:var(--text-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px}.switch-row{display:flex;gap:10px;align-items:flex-start;cursor:pointer}.switch{position:relative;flex:none;width:34px;height:20px;margin-top:1px}.switch input{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;opacity:0;cursor:pointer}.switch i{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:var(--surface-3);border:1px solid var(--border-strong);transition:background .15s ease,border-color .15s ease}.switch i:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:999px;background:var(--surface);box-shadow:0 1px 2px #10182847;transition:transform .15s ease}.switch.on i{background:var(--primary);border-color:var(--primary)}.switch.on i:after{transform:translate(14px)}.switch.disabled{opacity:.55}.switch.disabled input{cursor:not-allowed}.switch-title{display:block;font-size:12.5px}.switch-hint{display:block;font-size:11.5px;line-height:1.55;color:var(--text-3);margin-top:2px}.form-row-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kv{display:grid;grid-template-columns:68px minmax(0,1fr);gap:8px;align-items:baseline;font-size:12px}.kv-key{color:var(--text-2)}.kv-val{color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code-block{margin:0;padding:8px 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--mono);font-size:11.5px;line-height:1.6;color:var(--text-2);white-space:pre-wrap;word-break:break-all}.code-inline{font-family:var(--mono);font-size:11.5px;padding:1px 5px;border-radius:4px;background:var(--surface-3);border:1px solid var(--border);color:var(--text-2);white-space:nowrap}.text-danger{color:var(--danger)}.text-warn{color:var(--warn)}.restore-target{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.restore-target .mono{font-size:12.5px}.restore-steps{margin:0;padding-left:18px;font-size:12px;line-height:1.75;color:var(--text-2)}html[data-theme=dark] .switch i:after{background:#e7ebf1}.apv-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 12px;border-bottom:1px solid var(--border)}table.data tbody tr.selected{background:var(--surface-2);box-shadow:inset 2px 0 0 var(--primary)}.apv-detail{font-size:12.5px;line-height:1.65;color:var(--text-2);white-space:pre-wrap;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px}.apv-actions{display:flex;flex-direction:column;gap:10px;padding:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.apv-hint{display:flex;align-items:flex-start;gap:6px;font-size:11.5px;line-height:1.6;color:var(--text-3)}.apv-hint svg{flex:none;margin-top:2px;color:var(--text-3)}.apv-tl{display:flex;flex-direction:column;padding:2px 0}.apv-tl-step{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;padding-bottom:14px}.apv-tl-step:last-child{padding-bottom:2px}.apv-tl-step:before{content:"";position:absolute;left:8px;top:20px;bottom:-2px;width:2px;background:var(--border)}.apv-tl-step:last-child:before{display:none}.apv-tl-dot{position:relative;z-index:1;width:18px;height:18px;border-radius:999px;display:flex;align-items:center;justify-content:center;background:var(--surface-3);border:1px solid var(--border-strong);color:transparent}.apv-tl-step.done .apv-tl-dot{background:var(--ok);border-color:var(--ok);color:#fff}.apv-tl-step.danger .apv-tl-dot{background:var(--danger);border-color:var(--danger);color:#fff}.apv-tl-step.warn .apv-tl-dot{background:var(--warn);border-color:var(--warn);color:#fff}.apv-tl-step.wait .apv-tl-dot{background:var(--surface);border-style:dashed}.apv-tl-body{min-width:0;padding-top:1px}.apv-tl-head{display:flex;align-items:baseline;gap:8px;font-size:12.5px}.apv-tl-label{font-weight:500;color:var(--text)}.apv-tl-step.wait .apv-tl-label{color:var(--text-3);font-weight:400}.apv-tl-tag{font-size:10.5px;line-height:1;padding:3px 6px;border-radius:999px;border:1px solid var(--border);color:var(--text-3);white-space:nowrap}.apv-tl-tag.danger{color:var(--danger);border-color:var(--danger)}.apv-tl-tag.warn{color:var(--warn);border-color:var(--warn)}.apv-tl-actor{color:var(--text-2)}.apv-tl-step.wait .apv-tl-actor{color:var(--text-3)}.apv-tl-time{font-size:11.5px;color:var(--text-3);font-variant-numeric:tabular-nums}.apv-tl-note{margin-top:3px;font-size:12px;line-height:1.55;color:var(--text-2);background:var(--surface-2);border-radius:var(--radius-sm);padding:5px 8px}html[data-theme=dark] .apv-tl-step.done .apv-tl-dot,html[data-theme=dark] .apv-tl-step.danger .apv-tl-dot,html[data-theme=dark] .apv-tl-step.warn .apv-tl-dot{color:#10151c}
