.cw-layout{grid-template-columns:200px 1fr;align-items:start;gap:20px;display:grid}@media (width<=800px){.cw-layout{grid-template-columns:1fr}}.cw-steps{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex;position:sticky;top:12px}@media (width<=800px){.cw-steps{flex-flow:wrap;position:static}}.cw-step button{border-radius:var(--radius-sm);width:100%;color:var(--dim);cursor:pointer;font:inherit;text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:10px;padding:8px 10px;display:flex}.cw-step button:disabled{cursor:default;opacity:.6}.cw-step-num{border:1px solid var(--line-strong);border-radius:999px;flex:none;justify-content:center;align-items:center;width:24px;height:24px;font-size:.8rem;display:inline-flex}.cw-step-done button{color:var(--text)}.cw-step-done .cw-step-num{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.cw-step-current button{color:var(--text);background:var(--panel);border-color:var(--line-strong)}.cw-step-current .cw-step-num{background:var(--accent);border-color:var(--accent);color:#0a0e0b}.cw-step-problem .cw-step-num{border-color:var(--danger);color:var(--danger)}.cw-body{min-width:0}.cw-nav{justify-content:space-between}.cw-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.cw-card{text-align:left;font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;flex-direction:column;gap:6px;padding:14px;display:flex}.cw-card:hover:not(:disabled){border-color:var(--line-strong)}.cw-card:disabled{opacity:.55;cursor:not-allowed}.cw-card-active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:var(--accent-soft)}.cw-card-danger.cw-card-active{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger);background:var(--danger-soft)}.cw-card p{margin:0}.cw-points{color:var(--dim);margin:0;padding-left:18px;font-size:.85rem}.cw-narrow{max-width:320px}.cw-range{width:100%;accent-color:var(--accent);margin:8px 0 4px}.cw-hits{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;display:grid}.cw-hit{text-align:left;font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;align-items:flex-start;gap:10px;min-width:0;padding:10px;display:flex}.cw-hit:hover{border-color:var(--accent)}.cw-hit img,.cw-hit-icon{background:var(--bg-2);object-fit:cover;border-radius:8px;flex:none;width:40px;height:40px}.cw-ellipsis{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.cw-link{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:0;padding:0 4px;text-decoration:underline}.dash-gauges{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:16px;display:grid}.gauge{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:0;padding:14px 16px}.gauge-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.gauge-label{color:var(--dim);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem}.gauge-flag{text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:1px 7px;font-size:.72rem;font-weight:700}.gauge-warn .gauge-flag{background:var(--warn-soft);color:var(--warn)}.gauge-danger .gauge-flag{background:var(--danger-soft);color:#ff7b73}.gauge-value{font-variant-numeric:tabular-nums;margin:2px 0 8px;font-size:1.5rem;font-weight:700}.gauge-meter{background:var(--panel-2);border-radius:999px;height:6px;overflow:hidden}.gauge-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .3s}.gauge-warn .gauge-fill{background:var(--warn)}.gauge-danger .gauge-fill{background:var(--danger)}.gauge-hint{color:var(--muted);margin-top:6px;font-size:.8rem}.dash-grid{grid-template-columns:2fr 1fr;align-items:start;gap:14px;margin-bottom:16px;display:grid}@media (width<=900px){.dash-grid{grid-template-columns:1fr}}.dash-links{flex-direction:column;gap:6px;display:flex}.dash-links a{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text);background:var(--bg-2);justify-content:space-between;align-items:center;padding:9px 12px;display:flex}.dash-links a:hover{border-color:var(--line-strong);background:var(--panel-2);text-decoration:none}.dash-links a span{color:var(--muted);font-size:.8rem}.dash-counts{color:var(--dim);flex-wrap:wrap;gap:16px;font-size:.85rem;display:flex}.dash-counts strong{color:var(--text);font-variant-numeric:tabular-nums}.pub{flex-direction:column;display:flex}.pub-hero{padding:40px var(--gutter) 28px;text-align:center;background:radial-gradient(ellipse 80% 60% at 50% -10%, #5bb85b2e, transparent 70%), linear-gradient(to bottom, var(--bg-2), var(--bg));border-bottom:1px solid var(--line)}.pub-hero-inner{flex-direction:column;align-items:center;gap:12px;max-width:720px;margin:0 auto;display:flex}.pub-kicker{text-transform:uppercase;letter-spacing:.14em;color:var(--accent);font-size:.72rem;font-weight:700}.pub-hero h1{letter-spacing:-.02em;margin:0;font-size:clamp(2rem,7vw,3rem)}.pub-lead{max-width:460px;margin:0;font-size:1rem}.pub-hero-note{margin:0}.pub-status{border:1px solid var(--line-strong);background:var(--panel);border-radius:999px;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-top:6px;padding:10px 18px;display:inline-flex}.pub-status-text{letter-spacing:.01em;font-size:1.2rem;font-weight:750}.pub-status-on .pub-status-text{color:var(--accent)}.pub-status-off .pub-status-text{color:var(--dim)}.pub-status-sub{color:var(--dim);font-size:.9rem}.pub-status-sub strong{color:var(--text)}.pub-addresses{flex-direction:column;gap:10px;width:100%;margin-top:8px;display:flex}.pub-addr{background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius-sm);text-align:left;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;padding:6px 6px 6px 12px;display:flex}.pub-addr-lg{padding:10px 10px 10px 16px;font-size:1.05rem}.pub-addr-label{text-transform:uppercase;letter-spacing:.08em;color:var(--dim);flex:none;min-width:56px;font-size:.72rem;font-weight:700}.pub-addr-value{overflow-wrap:anywhere;flex:auto;min-width:0;font-weight:600}.pub-addr-suffix{white-space:nowrap;display:inline-block}.pub-addr-wrap{font-size:.85rem}.pub-addr-extra{color:var(--dim);flex:none;font-size:.85rem}.pub-addr .btn{flex:none;margin-left:auto}.pub-section{padding:28px var(--gutter);width:100%;max-width:1200px;margin:0 auto}.pub-section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:14px;display:flex}.pub-section-head h2{margin:0;font-size:1.35rem}.pub-stale{color:var(--warn)}.pub-grid{grid-template-columns:1fr;gap:14px;display:grid}.pub-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:10px;min-width:0;padding:16px;transition:border-color .15s,transform .15s;display:flex}.pub-card:hover{border-color:var(--line-strong)}.pub-card-off{background:linear-gradient(to bottom, var(--panel), var(--bg-2))}.pub-card-off .pub-card-name{color:var(--dim)}.pub-card-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.pub-card-title{align-items:center;gap:10px;min-width:0;display:flex}.pub-card-name{overflow-wrap:anywhere;margin:0;font-size:1.15rem}.pub-card-name a{color:inherit}.pub-card-meta{flex-wrap:wrap;align-items:center;gap:6px;font-size:.85rem;display:flex}.pub-engine{margin-right:4px;font-weight:600}.pub-players{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.pub-players strong{font-size:1.5rem;font-weight:750;line-height:1}.pub-players-lg strong{font-size:2.2rem}.pub-players-on{color:var(--accent)}.pub-players-state{margin-left:4px}.pub-motd{color:var(--text);overflow-wrap:anywhere;margin:0;font-style:italic}.pub-motd-lg{font-size:1.1rem}.pub-desc{overflow-wrap:anywhere;margin:0;font-size:.92rem}.pub-card-foot{margin-top:auto;padding-top:6px;font-size:.88rem}.pub-connect,.pub-packs{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:8px;padding:12px;display:flex}.pub-connect-title{text-transform:uppercase;letter-spacing:.08em;color:var(--dim);font-size:.75rem;font-weight:700}.pub-steps{counter-reset:step;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.pub-steps li{counter-increment:step;padding-left:30px;position:relative}.pub-steps li:before{content:counter(step);background:var(--accent-soft);width:22px;height:22px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:flex;position:absolute;top:0;left:0}.pub-step-text{margin-bottom:6px;font-size:.9rem;font-weight:600}.pub-step-body{flex-direction:column;gap:6px;display:flex}.pub-pack-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.pub-pack-btn{white-space:normal;text-align:left;justify-content:flex-start;max-width:100%}.pub-pack-name{overflow-wrap:anywhere}.pub-pack-kind{color:var(--dim);text-transform:uppercase;letter-spacing:.06em;margin-left:auto;padding-left:8px;font-size:.72rem}.pub-pack-hint{margin-top:3px;padding-left:2px}.pub-howto{border-top:1px solid var(--line)}.pub-howto-grid{grid-template-columns:1fr;gap:14px;display:grid}.pub-howto-col{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:8px;min-width:0;padding:16px;display:flex}.pub-howto-col h3,.pub-howto-col p{margin:0}.pub-list{flex-direction:column;gap:8px;margin:0;padding-left:18px;display:flex}.pub-back{color:var(--dim);margin-bottom:14px;font-size:.9rem;display:inline-block}.pub-join{flex-direction:column;gap:12px;display:flex}.pub-join-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.pub-join-head .pub-card-name{font-size:clamp(1.5rem,6vw,2.2rem)}.pub-join-grid{grid-template-columns:1fr;gap:14px;display:grid}.pub-join .banner{margin-bottom:0}.pub-foot{padding:18px var(--gutter);width:100%;max-width:1200px;color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:0 auto;font-size:.82rem;display:flex}.pub-foot a{color:var(--dim);border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 10px}.pub-foot a:hover{color:var(--text);background:var(--panel-2);text-decoration:none}@media (width>=600px){.pub-addresses{flex-direction:row}.pub-addresses .pub-addr{flex:1 1 0}.pub-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.pub-howto-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}}@media (width>=900px){.pub-hero{padding:64px var(--gutter) 40px}.pub-join-grid{grid-template-columns:3fr 2fr;align-items:start}}@media (prefers-reduced-motion:reduce){.pub-card,.pulse{transition:none;animation:none}}.srv-actions{flex-wrap:nowrap;justify-content:flex-end}.srv-tab-panel{margin-top:16px}.srv-console-bar{gap:10px}.srv-console-input .input{font-family:var(--mono)}.srv-namelist{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.srv-namelist li{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2);justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;display:flex}.srv-namelist li>.dim{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.srv-dl{grid-template-columns:max-content 1fr;gap:6px 14px;margin:0;display:grid}.srv-dl dt{color:var(--dim);font-size:.85rem}.srv-dl dd{word-break:break-word;margin:0}.srv-danger{border-color:#e5534b73}.srv-danger .card-title{color:var(--danger)}.srv-chips{margin-bottom:12px}.srv-chips .badge{align-items:center;gap:6px;padding-right:4px;display:inline-flex}.srv-chip-x{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 4px;font-size:1rem;line-height:1}.srv-chip-x:hover{background:#ffffff1f}.srv-admin-add{max-width:480px}.mods-source-toggle{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mods-source{border:1px solid var(--line-strong);background:var(--panel-2);color:var(--dim);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:7px 14px;font-weight:600;display:inline-flex}.mods-source:hover{color:var(--text)}.mods-source-active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.mods-search-form{grid-template-columns:minmax(200px,2fr) repeat(3,minmax(120px,1fr)) auto;align-items:end;gap:12px;display:grid}.mods-search-submit{align-items:flex-end;padding-bottom:1px;display:flex}@media (width<=800px){.mods-search-form{grid-template-columns:1fr 1fr}.mods-search-form .field:first-child,.mods-search-submit{grid-column:1/-1}}.mods-hits,.mods-versions,.mods-downloads{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.mods-hit{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-2);grid-template-columns:48px 1fr auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.mods-hit-icon{object-fit:cover;background:var(--panel-2);border-radius:8px;width:48px;height:48px}.mods-hit-icon-blank{border:1px dashed var(--line-strong);display:block}.mods-hit-body{min-width:0}.mods-hit-name{color:var(--text);font-weight:600}.mods-hit-summary{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.mods-hit-actions{flex:none}@media (width<=600px){.mods-hit{grid-template-columns:40px 1fr}.mods-hit-actions{grid-column:2}}.mods-version{border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:8px 12px;display:grid}.mods-version:hover{background:var(--panel-2)}.mods-version-active{border-color:var(--accent);background:var(--accent-soft)}.mods-version-main{overflow-wrap:anywhere;flex-direction:column;min-width:0;display:flex}.mods-version-meta{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;display:flex}.mods-drop{border:2px dashed var(--line-strong);border-radius:var(--radius);text-align:center;cursor:pointer;flex-direction:column;align-items:center;gap:4px;padding:24px 16px;transition:border-color .12s,background .12s;display:flex}.mods-drop:hover,.mods-drop-over{border-color:var(--accent);background:var(--accent-soft)}.mods-drop-busy{cursor:default;text-align:left;align-items:stretch}.mods-drop-title{font-weight:600}.mods-progress{background:var(--panel-2);border:1px solid var(--line);border-radius:999px;height:8px;overflow:hidden}.mods-progress-bar{background:var(--accent);border-radius:999px;height:100%;transition:width .15s linear}.mods-pack-name{font-size:1.05rem}.mods-download{align-items:flex-start;gap:10px;display:flex}.mods-download-body{flex-direction:column;min-width:0;display:flex}:root{--bg:#0f1512;--bg-2:#131a16;--panel:#182019;--panel-2:#1f2a21;--line:#2a382d;--line-strong:#3a4c3e;--text:#e6efe7;--dim:#96a89a;--muted:#5f7264;--accent:#5bb85b;--accent-2:#47a047;--accent-ink:#0b1a0b;--accent-soft:#5bb85b24;--danger:#e5534b;--danger-soft:#e5534b24;--warn:#e3b341;--warn-soft:#e3b34124;--info:#58a6ff;--info-soft:#58a6ff24;--dirt:#8a5a2b;--radius:10px;--radius-sm:6px;--shadow:0 10px 30px #00000059;--font:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "JetBrains Mono", "SFMono-Regular", Menlo, Consolas, monospace;--gutter:16px;--sidebar-w:220px;--topbar-h:56px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5;overflow-x:hidden}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0 0 .5em;font-weight:650;line-height:1.25}h1{font-size:1.6rem}h2{font-size:1.25rem}h3{font-size:1.05rem}p{margin:0 0 .75em}code,pre,.mono{font-family:var(--mono);font-size:.92em}code{background:var(--panel-2);border-radius:4px;padding:.1em .4em}hr{border:0;border-top:1px solid var(--line);margin:16px 0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.dim{color:var(--dim)}.muted{color:var(--muted)}.small{font-size:.85rem}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.stack{flex-direction:column;gap:12px;display:flex}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.page{padding:20px var(--gutter) 48px;width:100%;max-width:1200px;margin:0 auto}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:18px;display:flex}.page-head h1{margin:0}.public-layout{flex-direction:column;min-height:100%;display:flex}.topbar{height:var(--topbar-h);padding:0 var(--gutter);border-bottom:1px solid var(--line);background:var(--bg-2);z-index:20;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.wordmark{letter-spacing:.02em;color:var(--text);align-items:center;gap:10px;font-size:1.05rem;font-weight:750;display:inline-flex}.wordmark:hover{text-decoration:none}.wordmark-block{background:linear-gradient(to bottom, var(--accent) 0 38%, var(--accent-2) 38% 52%, var(--dirt) 52%);border-radius:5px;width:22px;height:22px;box-shadow:inset 0 0 0 1px #00000059}.topbar-nav{align-items:center;gap:6px;display:flex}.topbar-nav a{color:var(--dim);border-radius:var(--radius-sm);padding:6px 10px}.topbar-nav a:hover,.topbar-nav a.active{color:var(--text);background:var(--panel-2);text-decoration:none}.public-main{flex:1}.public-footer{padding:24px var(--gutter);color:var(--muted);border-top:1px solid var(--line);text-align:center;font-size:.8rem}.admin-layout{grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--topbar-h) 1fr;min-height:100%;display:grid}.admin-layout .topbar{grid-column:1/-1}.sidebar{border-right:1px solid var(--line);background:var(--bg-2);flex-direction:column;gap:2px;padding:12px 10px;display:flex}.sidebar a{border-radius:var(--radius-sm);color:var(--dim);align-items:center;gap:10px;padding:9px 12px;font-weight:500;display:flex}.sidebar a:hover{background:var(--panel-2);color:var(--text);text-decoration:none}.sidebar a.active{background:var(--accent-soft);color:var(--accent)}.sidebar-section{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:12px 12px 4px;font-size:.72rem}.admin-main{min-width:0}.userchip{color:var(--dim);align-items:center;gap:8px;font-size:.9rem;display:inline-flex}.userchip strong{color:var(--text)}.menu-btn{display:none}@media (width<=800px){.admin-layout{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line);flex-flow:wrap;display:none}.sidebar.open{display:flex}.sidebar-section{display:none}.menu-btn{display:inline-flex}.hide-mobile{display:none!important}}.btn{border:1px solid var(--line-strong);background:var(--panel-2);color:var(--text);border-radius:var(--radius-sm);font:inherit;cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:7px;font-weight:550;text-decoration:none;transition:background .12s,border-color .12s,opacity .12s;display:inline-flex}.btn:hover{background:#26332a;text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:focus-visible,.input:focus-visible,.tab:focus-visible,.toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-md{padding:8px 14px;font-size:.92rem}.btn-sm{padding:5px 10px;font-size:.82rem}.btn-lg{padding:11px 20px;font-size:1rem}.btn-block{width:100%}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:#6cc76c}.btn-ghost{color:var(--dim);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--panel-2);color:var(--text)}.btn-danger{background:var(--danger-soft);color:#ff7b73;border-color:#e5534b66}.btn-danger:hover{background:var(--danger);color:#fff}.btn-warn{background:var(--warn-soft);color:var(--warn);border-color:#e3b34166}.btn-warn:hover{background:var(--warn);color:#1a1400}.badge{letter-spacing:.01em;white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.badge-neutral{background:var(--panel-2);color:var(--dim);border-color:var(--line)}.badge-accent{background:var(--accent-soft);color:var(--accent)}.badge-info{background:var(--info-soft);color:var(--info)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-danger{background:var(--danger-soft);color:#ff7b73}.badge-muted{color:var(--muted);border-color:var(--line);background:0 0}.status-dot-wrap{align-items:center;gap:7px;display:inline-flex}.status-dot{background:var(--muted);border-radius:50%;flex:none;width:10px;height:10px;box-shadow:0 0 0 3px #ffffff0a}.status-ok{background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.status-warn{background:var(--warn);box-shadow:0 0 0 3px var(--warn-soft)}.status-off{background:var(--muted)}.status-danger{background:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.status-muted{background:var(--line-strong)}.status-label{color:var(--dim);text-transform:capitalize;font-size:.85rem}.pulse{animation:1.2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:0}.card-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;display:flex}.card-title{margin:0;font-size:.98rem}.card-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.card-body{padding:16px}.card-body-flush{padding:0}.card-foot{border-top:1px solid var(--line);color:var(--dim);padding:10px 16px;font-size:.85rem}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.stat-label{color:var(--dim);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem}.stat-value{margin-top:2px;font-size:1.5rem;font-weight:700}.stat-hint{color:var(--muted);font-size:.82rem}.stat-accent .stat-value{color:var(--accent)}.stat-warn .stat-value{color:var(--warn)}.stat-danger .stat-value{color:var(--danger)}.table-wrap{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.table{border-collapse:collapse;width:100%;min-width:480px;font-size:.92rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap;padding:10px 14px}.table th{text-transform:uppercase;letter-spacing:.06em;color:var(--dim);background:var(--bg-2);font-size:.75rem;font-weight:600}.table tbody tr:last-child td{border-bottom:0}.table-clickable tbody tr{cursor:pointer}.table-clickable tbody tr:hover{background:var(--panel-2)}.table-compact th,.table-compact td{padding:6px 10px}.tabs{border-bottom:1px solid var(--line);gap:2px;margin-bottom:16px;display:flex;overflow-x:auto}.tab{color:var(--dim);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:10px 14px;font-weight:550;display:inline-flex}.tab:hover{color:var(--text)}.tab-active{color:var(--accent);border-bottom-color:var(--accent)}.tab:disabled{opacity:.45;cursor:not-allowed}.tab-badge{background:var(--panel-2);border-radius:999px;padding:0 7px;font-size:.75rem}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field-inline{flex-direction:row;justify-content:space-between;align-items:center;gap:12px}.field-label{color:var(--dim);font-size:.85rem;font-weight:600}.field-req{color:var(--danger)}.field-msg{color:var(--muted);font-size:.8rem}.field-msg-error{color:#ff7b73}.input{background:var(--bg-2);width:100%;color:var(--text);border:1px solid var(--line-strong);border-radius:var(--radius-sm);font:inherit;min-width:0;padding:8px 11px;font-size:.95rem}.input::placeholder{color:var(--muted)}.input:disabled{opacity:.6}.input-invalid{border-color:var(--danger)}.textarea{resize:vertical;min-height:90px}.select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--dim) 50%), linear-gradient(135deg, var(--dim) 50%, transparent 50%);background-position:calc(100% - 16px) 55%,calc(100% - 11px) 55%;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:30px}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.form-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.toggle-wrap{align-items:center;gap:10px;display:inline-flex}.toggle{border:1px solid var(--line-strong);background:var(--bg-2);cursor:pointer;border-radius:999px;flex:none;width:40px;height:22px;padding:0;transition:background .15s;position:relative}.toggle-knob{background:var(--dim);border-radius:50%;width:16px;height:16px;transition:transform .15s,background .15s;position:absolute;top:2px;left:2px}.toggle-on{background:var(--accent);border-color:var(--accent)}.toggle-on .toggle-knob{background:var(--accent-ink);transform:translate(18px)}.toggle:disabled{opacity:.5;cursor:not-allowed}.toggle-label{font-size:.92rem}.modal-backdrop{padding:var(--gutter);z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;width:100%;max-height:calc(100vh - 32px);display:flex}.modal-sm{max-width:420px}.modal-md{max-width:620px}.modal-lg{max-width:900px}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-title{margin:0}.modal-close{color:var(--dim);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;padding:4px 8px;font-size:1.4rem;line-height:1}.modal-close:hover{background:var(--panel-2);color:var(--text)}.modal-body{padding:18px;overflow:auto}.modal-foot{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.modal-message{color:var(--dim)}.toast-stack{right:var(--gutter);bottom:var(--gutter);z-index:200;max-width:min(420px, calc(100vw - 2 * var(--gutter)));flex-direction:column;gap:8px;display:flex;position:fixed}.toast{background:var(--panel-2);border:1px solid var(--line-strong);border-left:4px solid var(--info);color:var(--text);border-radius:var(--radius-sm);box-shadow:var(--shadow);cursor:pointer;padding:10px 14px;font-size:.92rem;animation:.15s ease-out toast-in}.toast-success{border-left-color:var(--accent)}.toast-warn{border-left-color:var(--warn)}.toast-error{border-left-color:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.spinner{border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;flex:none;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.loading{color:var(--dim);justify-content:center;align-items:center;gap:10px;padding:32px;display:flex}.empty{text-align:center;color:var(--dim);padding:36px 16px}.empty-icon{margin-bottom:6px;font-size:2rem}.empty-title{color:var(--text);font-weight:600}.empty-desc{margin-top:4px;font-size:.9rem}.empty-action{margin-top:14px}.error-box{background:var(--danger-soft);color:#ff9d97;border-radius:var(--radius-sm);border:1px solid #e5534b66;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.banner{border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--panel-2);margin-bottom:16px;padding:12px 16px}.banner-warn{background:var(--warn-soft);color:var(--warn);border-color:#e3b34166}.banner-danger{background:var(--danger-soft);color:#ff9d97;border-color:#e5534b66}.console{border:1px solid var(--line);border-radius:var(--radius-sm);font-family:var(--mono);white-space:pre-wrap;word-break:break-word;color:#cfe3d1;background:#0a0e0b;height:420px;padding:10px 12px;font-size:.82rem;line-height:1.45;overflow:auto}.console-line-warn{color:var(--warn)}.console-line-error{color:#ff7b73}.hero{padding:40px var(--gutter) 24px;text-align:center;background:radial-gradient(at top,#5bb85b1f,#0000 60%)}.hero h1{font-size:clamp(1.6rem,4vw,2.4rem)}.address{background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius-sm);font-family:var(--mono);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;max-width:100%;padding:8px 8px 8px 14px;font-size:1rem;display:inline-flex}.fullpage{min-height:100%;padding:var(--gutter);text-align:center;justify-content:center;align-items:center;display:flex}
