:root{--bg:#f5f6f8;--surface:#fff;--border:#dfe3e8;--ink:#1a1f27;--ink-soft:#5b6472;--primary:#2f5fa6;--primary-hover:#244b85;--danger:#b23b3b;--danger-bg:#fbeaea;--success:#2f7a52;--warning:#a5690a;--warning-bg:#fbf0dc;--radius:8px;--font:-apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--ink);margin:0;font-size:15px;line-height:1.5}h1,h2,h3{margin:0 0 8px;line-height:1.2}p{color:var(--ink-soft);margin:0 0 12px}a{color:var(--primary)}.page{flex-direction:column;min-height:100%;display:flex}.center-page{justify-content:center;align-items:center;min-height:100%;padding:24px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:420px;padding:32px}.card.wide{max-width:640px}.field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.field label{color:var(--ink-soft);font-size:13px;font-weight:600}input,select{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:6px;padding:10px 12px}input:focus,select:focus,button:focus-visible{outline:2px solid var(--primary);outline-offset:1px}button.btn,a.btn{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{color:var(--primary);border-color:var(--primary);background:0 0}.btn-block{width:100%}.alert{border-radius:6px;margin-bottom:16px;padding:10px 14px;font-size:13.5px}.alert-error{background:var(--danger-bg);color:var(--danger)}.alert-success{color:var(--success);background:#e8f3ec}.row{gap:12px;display:flex}.row>.field{flex:1}.topbar{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 24px;display:flex}.topbar .brand{font-size:16px;font-weight:700}.shell{flex:1;min-height:0;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-shrink:0;width:232px;padding:12px 12px 20px;overflow-y:auto}.nav-section+.nav-section{border-top:1px solid var(--border);margin-top:18px;padding-top:14px}.nav-section-title{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);opacity:.75;padding:4px 12px 6px;font-size:11px;font-weight:700}.sidebar a{color:var(--ink-soft);border-radius:6px;align-items:center;gap:10px;margin:1px 0;padding:9px 12px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.sidebar a .nav-icon{opacity:.8;flex-shrink:0}.sidebar a.active,.sidebar a:hover{background:var(--bg);color:var(--ink)}.sidebar a.active{color:var(--primary);font-weight:600}.sidebar a.active .nav-icon{opacity:1}.content{flex:1;padding:28px;overflow-y:auto}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:28px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.stat-card .label{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;font-size:12.5px}.stat-card .value{margin-top:4px;font-size:28px;font-weight:700}.muted{color:var(--ink-soft);font-size:13.5px}.toggle{background:var(--border);cursor:pointer;border:none;border-radius:999px;flex-shrink:0;width:42px;height:24px;padding:0;transition:background .15s;position:relative}.toggle:disabled{cursor:not-allowed;opacity:.7}.toggle-knob{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.toggle.on{background:var(--success)}.toggle.on .toggle-knob{transform:translate(18px)}.wizard-steps{flex-wrap:wrap;gap:8px;margin-bottom:28px;display:flex}.wizard-step{background:var(--bg);color:var(--ink-soft);border:1px solid var(--border);border-radius:100px;padding:6px 14px;font-size:13px;font-weight:600}.wizard-step.current{background:var(--primary);color:#fff;border-color:var(--primary)}.wizard-step.done{color:var(--success);background:#e6f0e9;border-color:#cfe4d6}.sample-badge{letter-spacing:.02em;background:var(--warning-bg);color:var(--warning);white-space:nowrap;border-radius:100px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}
