@font-face{font-family:Pretendard Variable;font-weight:45 920;font-style:normal;font-display:swap;src:url(/assets/PretendardVariable-CJuje-Rk.woff2) format("woff2-variations")}:root{--blue-50:#eff6ff;--blue-100:#dbeafe;--blue-200:#bfdbfe;--blue-300:#93c5fd;--blue-400:#60a5fa;--blue-500:#3b82f6;--blue-600:#2563eb;--blue-700:#1d4ed8;--blue-800:#1e40af;--blue-900:#1e3a8a;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--success:#16a34a;--warning:#f59e0b;--error:#dc2626;--info:#0ea5e9;--font-sans:"Pretendard Variable", Pretendard, -apple-system, system-ui, sans-serif;--font-mono:"JetBrains Mono", "Pretendard Variable", ui-monospace, "SF Mono", monospace;--tracking-tight:-.025em;--tracking-body:-.01em;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--s-16:64px;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--r-pill:999px;--blur-glass:7px;--ease-out:cubic-bezier(.22,.61,.36,1);--dur:.18s;--u:1;--f:1;--bg:#0a0f1a;--bg-sunken:#070b13;--surface:#111827;--surface-2:#151e30;--surface-glass:rgba(17,24,39,.55);--surface-glass-border:rgba(148,163,184,.14);--border:#1f2a3c;--border-strong:#2b3a52;--fg:#e8eef7;--fg-muted:#9fb0c6;--fg-subtle:#617087;--accent:#3b82f6;--accent-strong:#2563eb;--accent-hover:#60a5fa;--accent-fg:#ffffff;--accent-soft:rgba(37,99,235,.16);--shadow-xs:0 1px 2px rgba(0,0,0,.45);--shadow-sm:0 1px 2px rgba(0,0,0,.35), 0 3px 10px rgba(0,0,0,.28);--shadow-md:0 6px 22px rgba(0,0,0,.45);--shadow-lg:0 16px 48px rgba(0,0,0,.6);--shadow-glow:0 0 0 1px rgba(59,130,246,.45), 0 8px 28px rgba(37,99,235,.4)}[data-theme=dark]{--bg:#0a0f1a;--bg-sunken:#070b13;--surface:#111827;--surface-2:#151e30;--surface-glass:rgba(17,24,39,.55);--surface-glass-border:rgba(148,163,184,.14);--border:#1f2a3c;--border-strong:#2b3a52;--fg:#e8eef7;--fg-muted:#9fb0c6;--fg-subtle:#617087;--accent:#3b82f6;--accent-strong:#2563eb;--accent-hover:#60a5fa;--accent-fg:#ffffff;--accent-soft:rgba(37,99,235,.16);--shadow-xs:0 1px 2px rgba(0,0,0,.45);--shadow-sm:0 1px 2px rgba(0,0,0,.35), 0 3px 10px rgba(0,0,0,.28);--shadow-md:0 6px 22px rgba(0,0,0,.45);--shadow-lg:0 16px 48px rgba(0,0,0,.6);--shadow-glow:0 0 0 1px rgba(59,130,246,.45), 0 8px 28px rgba(37,99,235,.4)}[data-theme=light]{--bg:#f1f5f9;--bg-sunken:#e8eef5;--surface:#ffffff;--surface-2:#f8fafc;--surface-glass:rgba(255,255,255,.62);--surface-glass-border:rgba(15,23,42,.1);--border:#e2e8f0;--border-strong:#cbd5e1;--fg:#0f172a;--fg-muted:#475569;--fg-subtle:#94a3b8;--accent:#2563eb;--accent-strong:#1d4ed8;--accent-hover:#1d4ed8;--accent-fg:#ffffff;--accent-soft:rgba(37,99,235,.1);--shadow-xs:0 1px 2px rgba(15,23,42,.06);--shadow-sm:0 1px 2px rgba(15,23,42,.06), 0 3px 10px rgba(15,23,42,.06);--shadow-md:0 8px 24px rgba(15,23,42,.1);--shadow-lg:0 20px 52px rgba(15,23,42,.16);--shadow-glow:0 0 0 1px rgba(37,99,235,.35), 0 10px 30px rgba(37,99,235,.22)}[data-bg=off]{--surface-glass:var(--surface);--surface-glass-border:var(--border);--blur-glass:0px}@keyframes mops-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes mops-pulse{0%,to{opacity:1}50%{opacity:.35}}:root{--muted: var(--fg-muted);--primary: var(--accent);--red: var(--error);--font-scale-x: .96;--surface-alpha: 1;--header-h: 64px}:root{--surface-glass-bg: color-mix(in srgb, var(--surface) calc(var(--surface-alpha) * 100%), transparent);--surface-glass-blur: blur(calc(var(--blur-glass) * (1 - var(--surface-alpha))))}html{background:var(--bg)}html,body{transition:background-color var(--dur) var(--ease-out)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:calc(15px * var(--f));line-height:1.5;letter-spacing:var(--tracking-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.appbar h1,.card-head h2,.kpi .value,.dash-head h2,h3{letter-spacing:var(--tracking-tight)}.eyebrow{font-family:var(--font-mono);font-size:calc(11px * var(--f));letter-spacing:.08em;text-transform:uppercase;color:var(--fg-subtle)}.kpi .value{display:inline-block;transform:scaleX(var(--font-scale-x));transform-origin:left}.appbar{display:flex;align-items:stretch;justify-content:space-between;gap:16px;padding:0 calc(28px * var(--u));background:var(--surface-glass);-webkit-backdrop-filter:blur(var(--blur-glass));backdrop-filter:blur(var(--blur-glass));border-bottom:1px solid var(--surface-glass-border);position:sticky;top:0;z-index:20;flex-wrap:nowrap}.appbar .brand{display:flex;align-items:center;gap:12px;padding:calc(16px * var(--u)) 0;flex:none}.appbar h1{font-size:calc(19px * var(--f));font-weight:700;margin:0}.appbar .sub{color:var(--fg-muted);font-size:calc(13px * var(--f))}.appbar .hint{font-family:var(--font-mono);font-size:calc(12px * var(--f));color:var(--fg-subtle);background:var(--surface-2);border:1px solid var(--border);padding:6px 12px;border-radius:var(--r-pill)}.layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:calc(20px * var(--u));padding:calc(20px * var(--u)) calc(28px * var(--u)) calc(40px * var(--u));max-width:1200px;margin:0 auto;align-items:start}@media (max-width: 820px){.layout{grid-template-columns:minmax(0,1fr)}.side{position:static}}main{min-width:0}@media (max-width: 640px){.appbar .hint{display:none}}@media (max-width: 720px){.appbar{padding:0 calc(14px * var(--u));gap:10px}.appbar-left{gap:10px}.appbar .sub,.tab .label,.theme-toggle .label{display:none}.tab{padding-left:calc(10px * var(--u));padding-right:calc(10px * var(--u))}.theme-toggle{padding:7px 10px;gap:0}}.side{position:sticky;top:calc(var(--header-h) + calc(20px * var(--u)))}.side-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.side-head .title{font-family:var(--font-mono);font-size:calc(12px * var(--f));font-weight:600;color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.06em}.side-head .count{font-family:var(--font-mono);font-size:calc(12px * var(--f));color:var(--fg-subtle);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);padding:2px 9px}.btn-new{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:calc(10px * var(--u)) calc(12px * var(--u));margin-bottom:12px;border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600;font-size:calc(14px * var(--f));border-radius:var(--r-md);cursor:pointer;transition:background var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.btn-new:hover{background:color-mix(in srgb,var(--accent) 24%,transparent)}.side-compact{display:none}@media (max-width: 820px){.side-compact{display:flex;gap:8px;margin-bottom:12px}.side-compact .select{flex:1 1 auto;min-width:0;min-height:40px}.btn-new,ul.spec-list{display:none}}.btn-icon-add{flex:none;width:40px;min-height:40px;display:flex;align-items:center;justify-content:center;border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);border-radius:var(--r-md);cursor:pointer;transition:background var(--dur) var(--ease-out)}.btn-icon-add:hover{background:color-mix(in srgb,var(--accent) 24%,transparent)}.search-wrap{position:relative;margin-bottom:10px}.search-wrap .search{margin-bottom:0;padding-left:34px}.search-wrap .search-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--fg-subtle);pointer-events:none}.spec-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.spec-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(11px * var(--u)) calc(13px * var(--u));text-align:left;cursor:pointer;background:var(--surface-glass-bg);backdrop-filter:var(--surface-glass-blur);-webkit-backdrop-filter:var(--surface-glass-blur);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm);transition:border-color var(--dur) var(--ease-out),background var(--dur) var(--ease-out)}.spec-item:hover{border-color:var(--border-strong)}.spec-item.active{border-color:var(--accent);background:var(--accent-soft)}.spec-item .name{font-weight:600;font-size:calc(14px * var(--f));display:flex;align-items:center;gap:8px;min-width:0}.spec-item .name .key{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spec-item .meta{color:var(--fg-muted);font-size:calc(12px * var(--f))}.tag{font-family:var(--font-mono);font-size:calc(11px * var(--f));font-weight:600;padding:3px 9px 3px 7px;border-radius:var(--r-pill);border:1px solid transparent;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}.tag:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex:0 0 auto}.tag-common{background:var(--accent-soft);color:var(--accent)}.tag-on{background:color-mix(in srgb,var(--success) 14%,transparent);color:var(--success)}.tag-off{background:var(--surface-2);color:var(--fg-subtle)}.card{background:var(--surface-glass-bg);backdrop-filter:var(--surface-glass-blur);-webkit-backdrop-filter:var(--surface-glass-blur);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(18px * var(--u)) calc(22px * var(--u));border-bottom:1px solid var(--border)}.card-head .h{display:flex;align-items:center;gap:10px}.card-head h2{font-size:calc(17px * var(--f));margin:0;font-weight:700}.version-tag{color:var(--fg-muted);font-size:calc(13px * var(--f))}.card-body{padding:calc(22px * var(--u))}.alert{margin:0 22px;margin-top:calc(16px * var(--u));padding:calc(10px * var(--u)) calc(14px * var(--u));border-radius:var(--r-md);font-size:calc(13.5px * var(--f))}.alert-err{background:color-mix(in srgb,var(--error) 10%,transparent);color:var(--error);border:1px solid color-mix(in srgb,var(--error) 35%,transparent)}.alert-ok{background:color-mix(in srgb,var(--success) 10%,transparent);color:var(--success);border:1px solid color-mix(in srgb,var(--success) 35%,transparent)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:calc(16px * var(--u)) calc(20px * var(--u))}@media (max-width: 620px){.grid{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1 / -1}.field label{font-size:calc(13px * var(--f));font-weight:600;color:var(--fg-muted)}.input,.select{padding:calc(9px * var(--u)) calc(11px * var(--u));font-size:calc(14px * var(--f));color:var(--fg);border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);width:100%;font-family:var(--font-sans);transition:border-color var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}.input::placeholder{color:var(--fg-subtle)}.input:focus,.select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input:disabled{background:var(--surface-2);color:var(--fg-muted)}.switches{display:flex;gap:22px;align-items:center;margin-top:4px}.switch{display:flex;align-items:center;gap:8px;font-size:calc(14px * var(--f));font-weight:500;cursor:pointer}.switch input{width:17px;height:17px;accent-color:var(--accent);cursor:pointer}.section-title{display:flex;align-items:center;justify-content:space-between;margin:calc(26px * var(--u)) 0 calc(12px * var(--u));padding-top:calc(20px * var(--u));border-top:1px solid var(--border)}.section-title h3{font-size:calc(15px * var(--f));margin:0;font-weight:700}.section-title .desc{font-size:calc(12.5px * var(--f));color:var(--fg-muted)}.hint-text{color:var(--fg-muted);font-size:calc(12.5px * var(--f));margin-top:calc(14px * var(--u))}.table-wrap{border:1px solid var(--border);border-radius:var(--r-md);overflow-x:auto}.table-scroll{overflow-x:auto}table.fields{width:100%;min-width:600px;border-collapse:collapse;font-size:calc(14px * var(--f))}table.fields th{text-align:left;font-family:var(--font-mono);font-size:calc(11px * var(--f));font-weight:600;color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.06em;background:var(--surface-2);padding:calc(10px * var(--u)) calc(12px * var(--u));border-bottom:1px solid var(--border)}table.fields th.center,table.fields td.center{text-align:center}table.fields th.col-type{width:130px}table.fields th.col-notnull{width:90px}table.fields th.col-partition{width:80px}table.fields th.col-del{width:48px}table.fields td{padding:calc(7px * var(--u)) calc(12px * var(--u));border-bottom:1px solid var(--border);vertical-align:middle}table.fields tr:last-child td{border-bottom:none}table.fields tbody tr:hover{background:var(--surface-2)}.cell{width:100%;padding:calc(7px * var(--u)) calc(9px * var(--u));border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:calc(13.5px * var(--f));background:var(--surface);color:var(--fg);transition:border-color var(--dur) var(--ease-out)}.cell:focus{outline:none;box-shadow:0 0 0 3px var(--accent-soft);border-color:var(--accent)}table.fields input[type=checkbox]{width:17px;height:17px;accent-color:var(--accent);cursor:pointer}.icon-del{display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--fg-subtle);line-height:1;cursor:pointer;padding:6px;border-radius:var(--r-sm);transition:color var(--dur) var(--ease-out),background var(--dur) var(--ease-out)}.icon-del:hover{color:var(--error);background:color-mix(in srgb,var(--error) 12%,transparent)}.btn-add{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:calc(8px * var(--u)) calc(14px * var(--u));font-size:calc(13.5px * var(--f));font-weight:500;border:1px dashed var(--border-strong);background:var(--surface-2);color:var(--fg-muted);border-radius:var(--r-md);cursor:pointer;transition:color var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.btn-add svg,.btn-new svg{flex:none}.btn-add:hover{border-color:var(--accent);color:var(--accent)}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:calc(24px * var(--u));padding-top:calc(20px * var(--u));border-top:1px solid var(--border)}.btn{font-family:var(--font-sans);padding:calc(10px * var(--u)) calc(20px * var(--u));font-size:calc(14px * var(--f));font-weight:600;border-radius:var(--r-md);cursor:pointer;border:1px solid transparent;display:inline-flex;align-items:center;gap:7px;transition:background var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),color var(--dur) var(--ease-out)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn svg{flex:none}.btn-primary{background:var(--accent-strong);color:var(--accent-fg);border-color:var(--accent-strong);box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-primary:disabled{background:var(--border-strong);border-color:var(--border-strong);color:var(--fg-subtle);cursor:not-allowed;opacity:.7;box-shadow:none}.btn-ghost{background:var(--surface-2);color:var(--fg);border-color:var(--border-strong)}.btn-ghost:hover{background:var(--surface);border-color:var(--fg-subtle)}.btn-danger{background:color-mix(in srgb,var(--error) 10%,transparent);color:var(--error);border-color:color-mix(in srgb,var(--error) 35%,transparent);margin-left:auto}.btn-danger:hover{background:color-mix(in srgb,var(--error) 16%,transparent)}.empty{text-align:center;color:var(--fg-subtle);padding:60px 20px}.empty .big{font-size:calc(15px * var(--f));font-weight:600;color:var(--fg);margin-bottom:6px}.appbar .tools{display:flex;align-items:center;gap:12px;padding:calc(16px * var(--u)) 0;flex:none}.theme-toggle{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;padding:7px 13px;font-size:calc(13px * var(--f));font-weight:500;cursor:pointer;background:var(--surface);color:var(--fg);border:1px solid var(--border-strong);border-radius:var(--r-pill);transition:background var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.theme-toggle:hover{background:var(--surface-2);border-color:var(--fg-subtle)}.theme-toggle svg{flex:none}.theme-toggle:disabled{opacity:.5;cursor:not-allowed}@keyframes mops-spin{to{transform:rotate(360deg)}}.spin{animation:mops-spin .8s linear infinite}.search{width:100%;padding:calc(9px * var(--u)) calc(12px * var(--u));margin-bottom:10px;font-size:calc(14px * var(--f));color:var(--fg);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);font-family:var(--font-sans)}.search::placeholder{color:var(--fg-subtle)}.search:focus{outline:none;box-shadow:0 0 0 3px var(--accent-soft);border-color:var(--accent)}.side-empty{color:var(--fg-subtle);font-size:calc(13px * var(--f));padding:10px 4px}.cell.invalid,.input.invalid{border-color:var(--error);background:color-mix(in srgb,var(--error) 8%,var(--surface))}.cell.invalid:focus,.input.invalid:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--error) 20%,transparent);border-color:var(--error)}.issues{margin:0;padding-left:18px}.issues li{margin:2px 0}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.login-card{width:100%;max-width:360px;background:var(--surface-glass-bg);backdrop-filter:var(--surface-glass-blur);-webkit-backdrop-filter:var(--surface-glass-blur);border:1px solid var(--border);border-radius:var(--r-xl);padding:calc(28px * var(--u)) calc(26px * var(--u));box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:calc(16px * var(--u))}.login-brand{text-align:center;margin-bottom:4px}.login-brand h1{margin:0;font-size:calc(24px * var(--f));letter-spacing:var(--tracking-tight)}.login-brand .sub{color:var(--fg-muted);font-size:calc(13px * var(--f))}.login-btn{width:100%;justify-content:center;padding:calc(10px * var(--u));font-size:calc(15px * var(--f))}.login-err{color:var(--error);background:color-mix(in srgb,var(--error) 10%,transparent);border:1px solid color-mix(in srgb,var(--error) 35%,transparent);border-radius:var(--r-md);padding:calc(8px * var(--u)) calc(12px * var(--u));font-size:calc(13px * var(--f))}.token-issued .alert{margin:0}.token-issued .grid{margin-top:calc(12px * var(--u))}.token-value-row{display:flex;gap:8px}.input-mono{font-family:var(--font-mono)}.drag-handle{display:flex;align-items:center;justify-content:center;cursor:grab;color:var(--fg-subtle);-webkit-user-select:none;user-select:none;padding:4px 6px}.drag-handle:active{cursor:grabbing}tr.dragging{opacity:.45}tr.drop-target td{box-shadow:inset 0 2px 0 var(--accent)}table.fields td.grip{width:34px;padding-left:8px;padding-right:0}table.fields th.grip{width:34px}.appbar-left{display:flex;align-items:stretch;gap:22px;min-width:0;flex:1 1 auto}.tabs{display:flex;align-items:stretch;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.tabs::-webkit-scrollbar{display:none}.tab{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;flex:none;padding:calc(16px * var(--u)) calc(4px * var(--u));border:none;background:transparent;cursor:pointer;color:var(--fg-subtle);font-weight:600;font-size:calc(13.5px * var(--f));border-bottom:2px solid transparent;transition:color var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.tab svg{flex:none;opacity:.85}.tab.active{color:var(--fg);border-bottom-color:var(--accent)}.tab.active svg{color:var(--accent);opacity:1}.tab:hover:not(.active){color:var(--fg)}input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;margin:0;width:18px;height:18px;flex:none;position:relative;cursor:pointer;border:1.5px solid var(--border-strong);border-radius:5px;background:var(--surface);transition:background var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}input[type=checkbox]:hover{border-color:var(--accent)}input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}input[type=checkbox]:checked:after{content:"";position:absolute;left:5px;top:1.5px;width:5px;height:9px;border:solid var(--accent-fg);border-width:0 2px 2px 0;transform:rotate(45deg)}input[type=checkbox]:focus-visible{outline:2px solid var(--accent-soft);outline-offset:1px}.dash{display:flex;flex-direction:column;gap:calc(20px * var(--u));padding:calc(20px * var(--u)) calc(28px * var(--u)) calc(40px * var(--u));max-width:1200px;margin:0 auto}.dash-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.dash-head h2{margin:0;font-size:calc(18px * var(--f))}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:calc(16px * var(--u))}@media (max-width: 820px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.kpi{background:var(--surface-glass-bg);backdrop-filter:var(--surface-glass-blur);-webkit-backdrop-filter:var(--surface-glass-blur);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:calc(16px * var(--u)) calc(18px * var(--u))}.kpi .label{font-size:calc(12.5px * var(--f));color:var(--fg-muted);font-weight:600}.kpi .value{font-size:calc(26px * var(--f));font-weight:600;margin-top:6px;color:var(--fg)}.kpi .unit{font-size:calc(14px * var(--f));color:var(--fg-muted);font-weight:600;margin-left:4px}.grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:calc(20px * var(--u))}@media (max-width: 900px){.grid2{grid-template-columns:minmax(0,1fr)}}.panel{background:var(--surface-glass-bg);backdrop-filter:var(--surface-glass-blur);-webkit-backdrop-filter:var(--surface-glass-blur);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column}.panel-narrow{max-width:640px}.panel-head{padding:calc(15px * var(--u)) calc(20px * var(--u));border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.panel-head h3{margin:0;font-size:calc(15px * var(--f))}.panel-head .desc{font-size:calc(12.5px * var(--f));color:var(--fg-muted)}.panel-body{padding:calc(12px * var(--u)) calc(20px * var(--u)) calc(18px * var(--u));flex:1;display:flex;flex-direction:column}.bars-fill{flex:1;display:flex;flex-direction:column;justify-content:space-between;gap:2px;min-height:220px}.chart-fill{flex:1;display:flex;flex-direction:column;justify-content:center}.bar-row{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:12px;align-items:center;padding:calc(7px * var(--u)) 0}.bar-name{font-size:calc(13.5px * var(--f));font-weight:600;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{display:block;height:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);overflow:hidden}.bar-fill{display:block;width:var(--bar-w);height:100%;background:var(--accent);border-radius:var(--r-pill);min-width:2px}.bar-val{font-family:var(--font-mono);font-size:calc(12.5px * var(--f));color:var(--fg-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.utable{width:100%;border-collapse:collapse;font-size:calc(13.5px * var(--f))}.utable th{text-align:left;font-family:var(--font-mono);color:var(--fg-subtle);font-size:calc(12px * var(--f));font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:calc(8px * var(--u)) calc(10px * var(--u));border-bottom:1px solid var(--border)}.utable td{padding:calc(8px * var(--u)) calc(10px * var(--u));border-bottom:1px solid var(--border)}.utable td.num,.utable th.num{text-align:right;font-variant-numeric:tabular-nums}.utable tr:last-child td{border-bottom:none}.utable td.strong{font-weight:600;color:var(--fg)}.utable th.col-compress,.utable th.col-retention{width:160px}.utable th.col-ratio{width:120px}.utable th.col-action{width:80px}.btn-sm{padding:6px 12px;font-size:calc(13px * var(--f))}.res-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.res-card{border:1px solid var(--border);border-radius:var(--r-md);padding:14px 16px;background:var(--surface-2)}.res-card .host{font-weight:700;margin-bottom:10px;color:var(--fg)}.meter{margin:9px 0}.meter .top{display:flex;justify-content:space-between;font-size:calc(12.5px * var(--f));margin-bottom:4px;color:var(--fg-muted)}.meter .track{height:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-pill);overflow:hidden}.meter .fill{height:100%;border-radius:var(--r-pill)}.dash-empty{color:var(--fg-subtle);font-size:calc(13.5px * var(--f));padding:18px 4px;text-align:center}.tl-legend{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:8px;font-size:calc(12.5px * var(--f));color:var(--fg-muted);align-items:center}.tl-key{display:flex;align-items:center;gap:6px}.tl-toggle{border:none;background:transparent;cursor:pointer;padding:0;font:inherit;color:var(--fg)}.tl-toggle:hover{color:var(--accent)}.tl-toggle.off{opacity:.45;text-decoration:line-through}.tl-key i{width:13px;height:3px;border-radius:2px;display:inline-block}.tl-svg{width:100%;height:auto;display:block;overflow:visible}.tl-grid{stroke:var(--border)}.tl-axis{font-family:var(--font-mono);fill:var(--fg-subtle);font-size:10px;letter-spacing:0}.tl-threshold{stroke-dasharray:5 4}.tl-swatch{background:var(--swatch-color)}.tl-swatch-fade{opacity:.6}.tl-stroke{stroke:var(--stroke-color)}.tl-fill{fill:var(--fill-color)}.res-tl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}.res-tl-card{border:1px solid var(--border);border-radius:var(--r-md);padding:12px 14px}.res-tl-card .host{font-weight:700;margin-bottom:4px;font-size:calc(14px * var(--f));color:var(--fg)}.tl-sub{font-size:calc(12px * var(--f));color:var(--fg-subtle);font-weight:600;margin:12px 0 4px}.bar-row.compact{grid-template-columns:118px minmax(0,1fr) auto;padding:calc(5px * var(--u)) 0;font-size:calc(13px * var(--f))}.tl-wrap{position:relative;cursor:crosshair;-webkit-user-select:none;user-select:none}.tl-cross{stroke:var(--fg-muted);stroke-dasharray:3 3}.tl-sel{fill:var(--accent);opacity:.12}.tl-reset{display:inline-flex;align-items:center;gap:5px;margin-left:auto;padding:3px 11px;font-size:calc(12px * var(--f));border:1px solid var(--border-strong);background:var(--surface);color:var(--fg);border-radius:var(--r-pill);cursor:pointer}.tl-reset svg{flex:none}.tl-reset:hover{background:var(--surface-2)}.tl-tip{position:absolute;top:2px;transform:translate(-50%);pointer-events:none;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-md);padding:calc(8px * var(--u)) calc(10px * var(--u));font-size:calc(12.5px * var(--f));min-width:118px;z-index:5}.tl-tip-t{font-family:var(--font-mono);font-weight:700;margin-bottom:5px;color:var(--fg-subtle)}.tl-tip-row{display:flex;justify-content:space-between;gap:14px;margin:2px 0}.tl-tip-k{display:flex;align-items:center;gap:6px}.tl-tip-k i{width:10px;height:10px;border-radius:3px;display:inline-block}.tl-tip-v{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;color:var(--fg)}.period{display:flex;gap:3px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);padding:3px}.period button{padding:calc(5px * var(--u)) calc(12px * var(--u));border:none;background:transparent;color:var(--fg-subtle);font-weight:600;font-size:calc(12.5px * var(--f));border-radius:var(--r-pill);cursor:pointer}.period button.active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm)}.dash-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.toast-host{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:10px;z-index:100}.toast{display:flex;align-items:center;gap:9px;min-width:220px;max-width:380px;padding:calc(12px * var(--u)) calc(16px * var(--u));border-radius:var(--r-md);box-shadow:var(--shadow-md);font-size:calc(14px * var(--f));font-weight:500;color:var(--accent-fg);animation:mops-fade-up var(--dur) var(--ease-out)}.toast .ti{flex:none}.kbd{font-family:var(--font-mono);font-size:calc(11px * var(--f));color:var(--fg-subtle);margin-left:8px;font-weight:500}.toast-ok{background:var(--success)}.toast-err{background:var(--error)}.toast-info{background:var(--info)}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;margin:6px 0;border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--border);cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:var(--r-pill);background:transparent}input[type=range]::-moz-range-track{height:6px;border-radius:var(--r-pill);background:transparent}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin-top:-6px;width:17px;height:17px;border-radius:50%;background:var(--accent-strong);border:2px solid var(--accent-fg);box-shadow:var(--shadow-sm);cursor:pointer}input[type=range]::-moz-range-thumb{width:17px;height:17px;border-radius:50%;border:2px solid var(--accent-fg);background:var(--accent-strong);box-shadow:var(--shadow-sm);cursor:pointer}input[type=range]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.setting-row+.setting-row{margin-top:calc(22px * var(--u))}.setting-row__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.setting-row__head label{font-size:calc(14px * var(--f));font-weight:600;color:var(--fg)}.setting-row__val{font-family:var(--font-mono);font-size:calc(12.5px * var(--f));color:var(--accent);font-weight:600}.setting-row__desc{margin:2px 0 4px;font-size:calc(12.5px * var(--f));color:var(--fg-muted)}.setting-preview{margin-top:calc(22px * var(--u))}.setting-preview__label{margin-bottom:8px}.setting-preview__card{box-shadow:var(--shadow-md)}
