:root{color-scheme:light;--color-bg:#f5f7fa;--color-surface:#fff;--color-surface-2:#eef2f6;--color-border:#e2e8f0;--color-border-strong:#cbd5e1;--color-text:#0f172a;--color-text-muted:#586573;--color-text-inverse:#fff;--color-link:#4a5bff;--color-primary:#0aa564;--color-primary-hover:#08915a;--color-primary-active:#06784a;--color-on-primary:#fff;--color-secondary:#5b6cff;--color-secondary-hover:#4a5bff;--color-on-secondary:#fff;--color-success:#15803d;--color-success-bg:#dcfce7;--color-warning:#92400e;--color-warning-bg:#fef3c7;--color-danger:#b91c1c;--color-danger-bg:#fee2e2;--color-info:#1d4ed8;--color-info-bg:#dbeafe;--color-special:#7e22ce;--color-special-bg:#f3e8ff;--color-disabled-bg:#e5e7eb;--color-disabled-text:#9aa3af;--color-overlay:rgba(15,23,42,.45);--color-skeleton:#e5e9ef;--color-skeleton-sheen:#eef2f6;--color-toast-bg:#111827;--color-toast-text:#fff;--color-focus:#0aa564;--focus-ring:0 0 0 3px rgba(10,165,100,.4);--font-sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;--text-xs:12px;--text-sm:13px;--text-base:15px;--text-md:16px;--text-lg:18px;--text-xl:22px;--text-2xl:28px;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:800;--leading-tight:1.25;--leading:1.5;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill:999px;--border-width:1px;--shadow-sm:0 1px 2px rgba(15,23,42,.06);--shadow-md:0 4px 12px rgba(15,23,42,.08);--shadow-lg:0 12px 32px rgba(15,23,42,.12);--motion-fast:120ms;--motion:180ms;--motion-slow:280ms;--ease-standard:cubic-bezier(0.2,0.7,0.2,1);--z-base:0;--z-dropdown:100;--z-sticky:200;--z-overlay:1000;--z-modal:1100;--z-toast:1200;--bp-sm:640px;--bp-md:768px;--bp-lg:1024px;--bp-xl:1280px;--container-max:1100px}[data-theme=dark]{color-scheme:dark;--color-bg:#0b0f14;--color-surface:#141a21;--color-surface-2:#1b232c;--color-border:#273039;--color-border-strong:#3a4654;--color-text:#e6edf3;--color-text-muted:#9aa7b4;--color-text-inverse:#0b0f14;--color-link:#8aa0ff;--color-primary:#1fdd8a;--color-primary-hover:#14c97a;--color-primary-active:#0fb56c;--color-on-primary:#06140e;--color-secondary:#7c8cff;--color-secondary-hover:#6878ff;--color-on-secondary:#0b0f14;--color-success:#4ade80;--color-success-bg:rgba(34,197,94,.16);--color-warning:#fbbf24;--color-warning-bg:rgba(245,158,11,.16);--color-danger:#f87171;--color-danger-bg:rgba(239,68,68,.16);--color-info:#60a5fa;--color-info-bg:rgba(59,130,246,.16);--color-special:#c084fc;--color-special-bg:rgba(168,85,247,.18);--color-disabled-bg:#1b232c;--color-disabled-text:#5b6776;--color-overlay:rgba(2,6,12,.62);--color-skeleton:#1b232c;--color-skeleton-sheen:#243039;--color-toast-bg:#1b232c;--color-toast-text:#e6edf3;--color-focus:#2fe6a6;--focus-ring:0 0 0 3px rgba(47,230,166,.45);--shadow-sm:0 1px 2px rgba(0,0,0,.4);--shadow-md:0 6px 16px rgba(0,0,0,.5);--shadow-lg:0 16px 40px rgba(0,0,0,.6)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading);color:var(--color-text);background:var(--color-bg)}a{color:var(--color-link)}:focus-visible{outline:2px solid transparent;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.container{max-width:var(--container-max);margin:0 auto;padding:var(--space-4)}header.app{border-bottom:var(--border-width) solid var(--color-border);background:var(--color-surface)}nav.app{display:flex;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-3) var(--space-4);align-items:center}nav.app a{color:var(--color-text);text-decoration:none}nav.app a:hover{color:var(--color-primary)}@media (max-width:640px){nav.app{gap:var(--space-2)}}.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);min-height:40px;font:inherit;font-size:var(--text-base);font-weight:var(--fw-semibold);border-radius:var(--radius-md);border:var(--border-width) solid transparent;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard)}.ui-btn:focus-visible{box-shadow:var(--focus-ring)}.ui-btn[data-variant=primary]{background:var(--color-primary);color:var(--color-on-primary)}.ui-btn[data-variant=primary]:hover{background:var(--color-primary-hover)}.ui-btn[data-variant=primary]:active{background:var(--color-primary-active)}.ui-btn[data-variant=secondary]{background:var(--color-surface-2);color:var(--color-text);border-color:var(--color-border)}.ui-btn[data-variant=secondary]:hover{border-color:var(--color-border-strong);background:var(--color-surface)}.ui-btn[data-variant=danger]{background:var(--color-danger);color:var(--color-text-inverse)}.ui-btn[data-variant=danger]:hover{filter:brightness(.95)}.ui-btn[data-variant=ghost]{background:transparent;color:var(--color-text)}.ui-btn[data-variant=ghost]:hover{background:var(--color-surface-2)}.ui-btn:disabled{background:var(--color-disabled-bg);color:var(--color-disabled-text);border-color:transparent;cursor:not-allowed}.ui-btn[aria-busy=true]{cursor:progress}.ui-input,.ui-select{padding:var(--space-2) var(--space-3);min-height:40px;font:inherit;font-size:var(--text-base);color:var(--color-text);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard)}.ui-input{width:100%}.ui-input::placeholder{color:var(--color-text-muted)}.ui-input:hover,.ui-select:hover{border-color:var(--color-border-strong)}.ui-input:focus-visible,.ui-select:focus-visible{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.ui-input[aria-invalid=true]{border-color:var(--color-danger)}.ui-input:disabled,.ui-select:disabled{background:var(--color-disabled-bg);color:var(--color-disabled-text);cursor:not-allowed}.ui-field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3)}.ui-field-label{font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--color-text)}.ui-field-hint{font-size:var(--text-xs);color:var(--color-text-muted)}.ui-field-error{font-size:var(--text-xs);color:var(--color-danger)}.ui-badge{display:inline-flex;align-items:center;font-size:var(--text-xs);font-weight:var(--fw-semibold);padding:2px var(--space-2);border-radius:var(--radius-pill);border:var(--border-width) solid var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)}.ui-badge[data-variant=success]{background:var(--color-success-bg);color:var(--color-success);border-color:transparent}.ui-badge[data-variant=warning]{background:var(--color-warning-bg);color:var(--color-warning);border-color:transparent}.ui-badge[data-variant=danger]{background:var(--color-danger-bg);color:var(--color-danger);border-color:transparent}.ui-alert{padding:var(--space-3);border-radius:var(--radius-md);margin:var(--space-2) 0;border:var(--border-width) solid var(--color-border);border-left-width:3px;background:var(--color-surface-2);color:var(--color-text)}.ui-alert-title{display:block;margin-bottom:var(--space-1);font-weight:var(--fw-semibold)}.ui-alert[data-variant=info]{border-left-color:var(--color-info);background:var(--color-info-bg)}.ui-alert[data-variant=success]{border-left-color:var(--color-success);background:var(--color-success-bg)}.ui-alert[data-variant=warning]{border-left-color:var(--color-warning);background:var(--color-warning-bg)}.ui-alert[data-variant=error]{border-left-color:var(--color-danger);background:var(--color-danger-bg)}.ui-empty{text-align:center;padding:var(--space-10);color:var(--color-text-muted)}.ui-empty-title{font-weight:var(--fw-semibold);color:var(--color-text)}.ui-error{text-align:center;padding:var(--space-10)}.ui-error-title{font-weight:var(--fw-semibold);color:var(--color-danger)}.ui-sronly{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.ui-skeleton-row{height:14px;border-radius:var(--radius-sm);margin:var(--space-2) 0;background:linear-gradient(90deg,var(--color-skeleton) 25%,var(--color-skeleton-sheen) 37%,var(--color-skeleton) 63%);background-size:400% 100%;animation:ui-skeleton 1.4s ease infinite}@keyframes ui-skeleton{0%{background-position:100% 50%}to{background-position:0 50%}}.ui-table-wrap{overflow-x:auto}.ui-table{width:100%;border-collapse:collapse;font-size:var(--text-base)}.ui-table th{text-align:left;padding:var(--space-2);border-bottom:2px solid var(--color-border-strong);color:var(--color-text-muted);font-weight:var(--fw-semibold)}.ui-table td{padding:var(--space-2);border-bottom:var(--border-width) solid var(--color-border);color:var(--color-text)}.ui-table tbody tr:hover{background:var(--color-surface-2)}.ui-pagination{display:flex;gap:var(--space-2);align-items:center;margin-top:var(--space-3);color:var(--color-text)}.ui-overlay{position:fixed;inset:0;background:var(--color-overlay);z-index:var(--z-modal)}.ui-overlay--center{display:grid;place-items:center}.ui-dialog{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);max-width:480px;width:90%}.ui-dialog,.ui-drawer{background:var(--color-surface);color:var(--color-text);padding:var(--space-5);box-shadow:var(--shadow-lg)}.ui-drawer{position:absolute;top:0;right:0;height:100%;width:min(360px,90%);border-left:var(--border-width) solid var(--color-border);overflow-y:auto}.ui-toast{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-toast-bg);color:var(--color-toast-text);box-shadow:var(--shadow-md)}.ui-toast[data-variant=success]{border-left:3px solid var(--color-success)}.ui-toast[data-variant=error]{border-left:3px solid var(--color-danger)}.ui-masked{font-family:var(--font-mono);color:var(--color-text-muted);letter-spacing:.04em}.ui-secure-img{max-width:100%;border-radius:var(--radius-md)}.ui-state{padding:var(--space-10);text-align:center;color:var(--color-text)}.skip-link{position:absolute;left:-9999px;top:0;z-index:var(--z-toast)}.skip-link:focus{left:var(--space-3);top:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-surface);color:var(--color-text);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--focus-ring);text-decoration:none}.sw-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100dvh}.sw-sidebar{position:-webkit-sticky;position:sticky;top:0;align-self:start;height:100dvh;display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4) var(--space-3);border-right:var(--border-width) solid var(--color-border);background:var(--color-surface);overflow-y:auto}.sw-brand{font-weight:var(--fw-bold);font-size:var(--text-lg);letter-spacing:-.02em;text-decoration:none;color:var(--color-text);padding:0 var(--space-2) var(--space-2)}.sw-brand b{color:var(--color-primary)}.sw-brand small{display:block;font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase}.sw-brand small,.sw-navlink{font-weight:var(--fw-medium);color:var(--color-text-muted)}.sw-navlink{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);text-decoration:none;font-size:var(--text-sm)}.sw-navlink:hover{background:var(--color-surface-2);color:var(--color-text)}.sw-side-spacer{flex:1 1}.sw-side-foot{display:flex;flex-direction:column;gap:var(--space-2);border-top:var(--border-width) solid var(--color-border);padding-top:var(--space-3);margin-top:var(--space-2)}.sw-status-chip{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--color-text-muted);padding:0 var(--space-2)}.sw-lang{background:var(--color-surface-2);color:var(--color-text);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);min-height:36px;padding:0 var(--space-2);width:100%}.sw-main{display:flex;flex-direction:column;min-width:0;background:var(--color-bg)}.sw-content{padding:var(--space-6) var(--space-6);max-width:1200px;width:100%}.sw-page-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-4)}.sw-page-head h1{margin:0}.sw-panel{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);background:var(--color-surface)}.sw-stack{display:flex;flex-direction:column;gap:var(--space-3)}.sw-muted{color:var(--color-text-muted)}.sw-code{font-family:var(--font-mono);padding:2px var(--space-2);background:var(--color-surface-2);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm)}.sw-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:var(--space-3);gap:var(--space-3)}.sw-stat{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);background:var(--color-surface);text-decoration:none;color:var(--color-text);display:block;transition:border-color var(--motion-fast) var(--ease-standard)}a.sw-stat:hover{border-color:var(--color-primary)}.sw-stat-label{color:var(--color-text-muted);font-size:var(--text-sm)}.sw-stat-value{font-size:var(--text-2xl);font-weight:var(--fw-bold);margin-top:2px}.sw-quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:var(--space-3);gap:var(--space-3);margin:var(--space-4) 0}.sw-quick a{display:flex;align-items:center;gap:var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);background:var(--color-surface);text-decoration:none;color:var(--color-text);font-weight:var(--fw-semibold)}.sw-quick a:hover{border-color:var(--color-primary);color:var(--color-primary)}.sw-quick .sw-q-icon{font-size:20px}.sw-list{list-style:none;padding:0;margin:0;flex-direction:column}.sw-list,.sw-row{display:flex;gap:var(--space-2)}.sw-row{align-items:center;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-surface)}.sw-msg{border-left:3px solid var(--color-border-strong);padding:var(--space-1) var(--space-3);background:var(--color-surface-2);border-radius:0 var(--radius-md) var(--radius-md) 0}.sw-msg small{color:var(--color-text-muted)}.sw-inline-form{display:flex;gap:var(--space-2);align-items:flex-end;flex-wrap:wrap}.sw-textarea{width:100%;padding:var(--space-3);border-radius:var(--radius-md);border:var(--border-width) solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit}.sw-textarea:focus-visible{border-color:var(--color-primary);box-shadow:var(--focus-ring);outline:none}.sw-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}.sw-fieldset{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3)}.sw-auth-wrap{min-height:100dvh;display:grid;place-items:center;padding:var(--space-4);background:radial-gradient(100% 100% at 50% 0,color-mix(in srgb,var(--color-primary) 8%,transparent),transparent 55%),var(--color-bg)}.sw-auth-card{width:min(420px,100%);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6);background:var(--color-surface);box-shadow:var(--shadow-lg)}@media (max-width:900px){.sw-shell{grid-template-columns:1fr}.sw-sidebar{position:static;height:auto;flex-direction:row;align-items:center;flex-wrap:wrap;gap:var(--space-2);border-right:none;border-bottom:var(--border-width) solid var(--color-border);overflow-x:auto}.sw-brand{padding:0 var(--space-2)}.sw-side-spacer{display:none}.sw-side-foot{flex-direction:row;align-items:center;border-top:none;padding-top:0;margin-top:0;margin-left:auto}.sw-lang{width:auto}.sw-content{padding:var(--space-4)}}