:root{--bg:#fff;--surface:#fff;--fg:#141414;--muted:#6b7280;--border:#e4e6ea;--accent:#0613ce;--accent-hover:#040ea8;--sidebar-bg:#eceef2;--sidebar-fg:#141414}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);margin:0;padding:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px}a{color:var(--accent)}button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 14px;font-size:14px;font-weight:600;transition:background .15s,opacity .15s}button:hover:not(:disabled){background:var(--accent-hover)}button:disabled{opacity:.55;cursor:default}button.icon-btn{color:var(--muted);background:0 0;border:none;border-radius:8px;align-items:center;padding:6px;display:inline-flex}button.icon-btn:hover:not(:disabled){color:#dc2626;background:#fdecec}input,select{color:var(--fg);border:1px solid var(--border);background:#fff;border-radius:8px;padding:9px 11px;font-size:14px}input::placeholder{color:var(--muted)}.dash-sidebar{background:var(--sidebar-bg);width:234px;min-height:100vh;color:var(--sidebar-fg);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;padding:22px 16px;display:flex}.dash-content{flex:1;padding:24px}.dash-hamburger,.dash-overlay{display:none}@media (max-width:768px){.dash-sidebar{z-index:50;transition:transform .22s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:2px 0 18px #0003}.dash-sidebar.open{transform:translate(0)}.dash-overlay{z-index:40;background:#0000006b;display:block;position:fixed;inset:0}.dash-hamburger{color:var(--fg);background:0 0;justify-content:center;align-items:center;margin-right:auto;padding:6px;display:inline-flex}.dash-content{padding:14px}}.only-mobile{display:none}@media (max-width:768px){.only-desktop{display:none}.only-mobile{display:block}}.login-bg{background:radial-gradient(1100px 560px at 50% -15%,#1e2436,#0c0e13 62%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.login-bg canvas{z-index:0;width:100%;height:100%;position:absolute;inset:0}.login-stage{z-index:1;flex-direction:column;align-items:center;gap:30px;display:flex;position:relative}.brand{transform-origin:50%;align-items:center;gap:18px;animation:1.4s 1.5s both mr-shrink;display:flex}.brand-text{letter-spacing:4px;color:#fff;white-space:nowrap;font-size:clamp(30px,7vw,64px);font-weight:800;animation:1.5s both mr-wipe}.login-card{z-index:1;border:2px solid var(--accent);background:#fff;border-radius:20px;width:100%;max-width:404px;padding:26px;animation:1.4s 1.5s both mr-rise;position:relative;box-shadow:0 24px 70px #0000008c}.login-card label{color:var(--fg);margin-bottom:7px;font-size:14px;font-weight:600;display:block}.login-card input{border:1px solid var(--border);background:#f5f6f7;border-radius:10px;width:100%;padding:15px 16px;font-size:15px}.login-card input:focus{border-color:var(--accent);background:#fff;outline:none;box-shadow:0 0 0 3px #0613ce40}.login-card button{border-radius:10px;width:100%;margin-top:4px;padding:15px;font-size:15px}@keyframes mr-wipe{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes mr-rise{0%{opacity:0;transform:translateY(250px)}to{opacity:1;transform:translateY(0)}}@keyframes mr-shrink{0%{transform:translateY(180px)scale(.89)}to{transform:translateY(0)scale(1)}}
