:root{--bg: #0e1116;--bg-panel: #161b22;--bg-panel-2: #1c232d;--border: #2a323d;--border-strong: #3a4552;--text: #d7dde4;--text-dim: #8b96a3;--accent: #3b82f6;--accent-hover: #2f6fd6;--pos: #3fb950;--neg: #f85149;--warn-bg: #3d1c1c;--warn-border: #f85149;--info: #58a6ff;--mono: "SFMono-Regular", ui-monospace, "JetBrains Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:13px;line-height:1.4}.app{display:flex;flex-direction:column;min-height:100%}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--bg-panel);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.brand{display:flex;flex-direction:column}.brand-title{font-weight:600;font-size:15px;letter-spacing:.2px}.brand-sub{color:var(--text-dim);font-size:12px}.tabs{display:flex;gap:6px}.tab{background:transparent;border:1px solid var(--border);color:var(--text-dim);padding:7px 16px;border-radius:6px;cursor:pointer;font-size:13px}.tab:hover{color:var(--text);border-color:var(--border-strong)}.tab.active{background:var(--bg-panel-2);color:var(--text);border-color:var(--accent)}.content{padding:18px 20px 40px;flex:1}.panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:14px 16px;margin-bottom:16px}.dropzone{display:block;border:1.5px dashed var(--border-strong);border-radius:8px;padding:22px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.dropzone:hover{border-color:var(--accent);background:var(--bg-panel-2)}.dz-title{font-weight:600;margin-bottom:4px}.dz-sub{color:var(--text-dim)}code{font-family:var(--mono);background:var(--bg-panel-2);padding:1px 5px;border-radius:4px}.detect-line{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}.badge{background:var(--bg-panel-2);border:1px solid var(--border);border-radius:20px;padding:3px 12px;font-size:12px}.badge-muted{color:var(--text-dim)}.badge-info{color:var(--info);border-color:var(--info)}.si-title{font-weight:600;margin-bottom:10px}.si-fields{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:4px}.field span{font-size:12px;color:var(--text-dim)}.field input,input[type=number],select{background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:6px 8px;font-size:13px;min-width:90px}input:focus,select:focus{outline:none;border-color:var(--accent)}.si-hint{color:var(--text-dim);font-size:12px;align-self:center}.write-action{margin-top:14px}.btn{background:var(--bg-panel-2);border:1px solid var(--border-strong);color:var(--text);padding:8px 16px;border-radius:6px;cursor:pointer;font-size:13px}.btn:hover:not(:disabled){border-color:var(--accent)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-mini{background:transparent;border:1px solid var(--border);color:var(--text-dim);border-radius:4px;width:22px;height:22px;cursor:pointer;line-height:1}.btn-mini:hover{color:var(--neg);border-color:var(--neg)}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:8px;background:var(--bg-panel)}table.grid{border-collapse:collapse;width:100%;font-size:12px}table.grid th,table.grid td{border-bottom:1px solid var(--border);padding:7px 10px;text-align:left;white-space:nowrap}table.grid thead th{background:var(--bg-panel-2);color:var(--text-dim);font-weight:600;position:sticky;top:0;z-index:5}table.grid td.num,table.grid th.num{text-align:right;font-variant-numeric:tabular-nums}.sticky-col{position:sticky;left:0;background:var(--bg-panel);z-index:6}thead .sticky-col{z-index:8;background:var(--bg-panel-2)}tbody tr:hover td,tbody tr:hover .sticky-col{background:var(--bg-panel-2)}.mono{font-family:var(--mono)}.pos{color:var(--pos)}.neg{color:var(--neg)}.row-unconfigured td{color:var(--text-dim)}.unconfigured-note{color:var(--text-dim);font-style:italic}.tag{display:inline-block;margin-left:6px;font-size:10px;padding:1px 6px;border-radius:10px;border:1px solid var(--border-strong);color:var(--text-dim)}.tag-muted{opacity:.7}.ovr-head{min-width:190px}.ovr-inputs{display:flex;gap:5px;align-items:center}.ovr-inputs input{min-width:70px;width:70px;padding:4px 6px}.config-intro{color:var(--text-dim)}.config-intro b{color:var(--text)}.empty-hint{color:var(--text-dim);padding:30px;text-align:center}.error-box{border:1px solid var(--neg);color:var(--neg);background:#f8514914;border-radius:8px;padding:10px 14px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:10px;width:min(760px,94vw);max-height:90vh;overflow:auto}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border);font-weight:600}.modal-body{padding:18px}.warn-box{border:1.5px solid var(--warn-border);background:var(--warn-bg);border-radius:8px;padding:12px 14px;margin-bottom:14px}.warn-title{font-weight:700;color:#ffb4ae;margin-bottom:6px}.warn-box p{margin:0;color:#f0d3d1}.write-scope{margin-bottom:12px;color:var(--text-dim)}.confirm-check{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:6px;margin-bottom:14px;cursor:pointer}.confirm-check input{width:16px;height:16px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}.result-head{display:flex;gap:8px;margin-bottom:12px}.changes-wrap{max-height:46vh;overflow:auto;border:1px solid var(--border);border-radius:6px}.grid-compact th,.grid-compact td{padding:5px 9px}.run-panel{border:1.5px solid var(--accent)}.run-panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.run-panel-title{font-size:15px;font-weight:700}.run-panel-sub{color:var(--text-dim);font-size:13px;margin-top:4px;max-width:60ch}.btn-lg{padding:11px 22px;font-size:14px}.run-intro{margin:0 0 14px;color:var(--text)}.run-mode{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}.run-mode .confirm-check{margin-bottom:0;align-items:flex-start}.run-backup{margin-bottom:12px;color:var(--text-dim);font-size:13px}.run-audit{margin-bottom:12px;font-size:13px}.run-session-id{color:var(--text-dim);font-size:12px}.confirm-cell{display:flex;align-items:center;gap:6px;font-size:12px;cursor:pointer;white-space:normal}.confirm-cell input{width:15px;height:15px;flex:0 0 auto}.write-action-label{color:var(--text-dim);font-size:12px;margin-bottom:6px}.config-intro-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px}.db-status{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--text-dim);white-space:nowrap}.db-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto;display:inline-block;background:var(--text-dim)}.db-dot-ok{background:var(--pos)}.db-dot-off{background:var(--neg)}.db-dot-unknown{background:var(--text-dim)}.db-status-label{font-weight:500}.db-status-hint{color:var(--info);font-style:italic}.audit-intro{color:var(--text-dim)}.audit-intro b{color:var(--text)}.audit-intro-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.audit-note{padding:22px 30px}.audit-check{color:var(--pos);font-weight:700}.audit-dash{color:var(--text-dim)}
