:root{--neu-bg:#fff;--neu-text:#191919;--neu-text-sec:#99191919;--neu-border:#eee;--neu-accent:#191919;--neu-accent-soft:#efefef;--neu-muted:#f1f1f1;--neu-destructive:#ed0008;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--font-base:system-ui, -apple-system, "Segoe UI", Tahoma, Arial, sans-serif;--font-size-sm:13px;--font-size-md:15px;--font-size-lg:18px;--font-size-xl:20px;--radius-sm:8px;--radius-md:12px;--radius-lg:25px;--border-thin:1px solid var(--neu-border);--layout-max:1200px;--bp-sm:640px;--bp-md:1024px;--bp-lg:1440px}*{box-sizing:border-box}body{font-family:var(--font-base);background:var(--neu-bg);color:var(--neu-text);font-size:var(--font-size-md);margin:0}:focus-visible{outline:2px solid var(--neu-accent);outline-offset:2px}.shell{min-height:100vh;display:flex}.shell-sidebar{border-inline-end:var(--border-thin);width:250px;padding:var(--space-4);flex-shrink:0}.shell-brand{font-weight:700;font-size:var(--font-size-lg);margin-bottom:var(--space-4)}.shell-nav{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.shell-link{border-radius:var(--radius-sm);color:var(--neu-text);padding:10px 14px;text-decoration:none;display:block}.shell-link.active{background:var(--neu-accent-soft);font-weight:600}.shell-main{flex-direction:column;flex:1;min-width:0;display:flex}.shell-topbar{border-bottom:var(--border-thin);padding:var(--space-3) var(--space-4)}.shell-title{font-weight:600}.shell-content{flex:1;min-width:0}@media (width<=1024px){.shell-sidebar{width:200px;max-height:100vh;position:sticky;top:0;overflow-y:auto}}@media (width<=640px){.shell{flex-direction:column}.shell-sidebar{border-inline-end:none;border-bottom:var(--border-thin);width:100%}.shell-nav{flex-flow:wrap}}.btn{font-family:inherit;font-size:var(--font-size-md);border-radius:var(--radius-lg);cursor:pointer;border:1px solid #0000;padding:10px 20px}.btn-primary{background:var(--neu-accent);color:#fff}.btn-secondary{background:var(--neu-accent-soft);color:var(--neu-text)}.btn-danger{background:var(--neu-destructive);color:#fff}.btn-ghost{color:var(--neu-text);border-color:var(--neu-border);background:0 0}.btn:disabled{opacity:.5;cursor:not-allowed}.field{gap:var(--space-1);margin-bottom:var(--space-3);flex-direction:column;display:flex}.field-label{font-size:var(--font-size-sm);color:var(--neu-text)}.field-input{font-family:inherit;font-size:var(--font-size-md);color:var(--neu-text);background:var(--neu-bg);border:var(--border-thin);border-radius:var(--radius-lg);padding:12px 20px}.field-input:focus{border-color:var(--neu-accent);border-width:1.5px;outline:none}.field-error{font-size:var(--font-size-sm);color:var(--neu-destructive);margin:0}.card{background:var(--neu-bg);border:var(--border-thin);border-radius:var(--radius-md);padding:var(--space-4);margin:var(--space-2) 0}.page{max-width:var(--layout-max);padding:var(--space-4);margin:0 auto}.page-title{font-size:var(--font-size-xl);margin:0 0 var(--space-4)}.state{text-align:center;padding:var(--space-6) var(--space-4);color:var(--neu-text)}.state-title{font-size:var(--font-size-lg);margin:0 0 var(--space-2)}.state-hint{color:var(--neu-text-sec);font-size:var(--font-size-sm);margin:0}.state-error .state-title{color:var(--neu-destructive)}.spinner{border:3px solid var(--neu-border);border-top-color:var(--neu-accent);border-radius:50%;width:22px;height:22px;animation:.9s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}
