:root{--purple:#6c47ff;--purple-hover:#5b38e6;--purple-light:#f2effe;--ink:#17181c;--muted:#8a8d98;--border:#eceef2;--bg:#fafafb;--surface:#fff;--green:#17915a;--green-tint:#e6f6ee;--red:#d1453d;--red-tint:#fdeceb;--amber:#9a6b00;--amber-tint:#fff6df;--shadow-sm:0 1px 2px rgba(20,21,26,.04);--shadow-card:0 1px 2px rgba(20,21,26,.04),0 4px 14px rgba(20,21,26,.035);--radius:14px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--purple);text-decoration:none;transition:color .15s ease}a:hover{color:var(--purple-hover)}.shell{max-width:980px;margin:0 auto;padding:28px 24px 60px}.topbar{display:flex;align-items:center;justify-content:space-between;background:var(--surface);border-bottom:1px solid var(--border);padding:14px 28px;position:-webkit-sticky;position:sticky;top:0;z-index:10;-webkit-backdrop-filter:saturate(180%) blur(8px);backdrop-filter:saturate(180%) blur(8px)}.topbar .brand{font-weight:800;font-size:15px;letter-spacing:-.01em}.topbar nav{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.topbar nav a{font-weight:600;font-size:13.5px;color:var(--muted);padding:7px 11px;border-radius:8px;transition:all .15s ease}.topbar nav a:hover{color:var(--ink);background:var(--bg)}.topbar nav a.active{color:var(--purple);background:var(--purple-light)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:20px;margin-bottom:14px}.row{display:flex;align-items:center;justify-content:space-between;gap:16px}.muted{color:var(--muted);font-size:13px}.h1{font-size:23px;font-weight:800;letter-spacing:-.015em;margin:4px 0 20px}.h2{font-size:14.5px;font-weight:700;letter-spacing:-.005em;margin:0 0 12px}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;background:var(--purple);color:#fff;font-weight:600;font-size:13.5px;padding:9px 16px;border-radius:9px;cursor:pointer;transition:background .15s ease,box-shadow .15s ease,opacity .15s ease;box-shadow:var(--shadow-sm)}.btn:hover{background:var(--purple-hover)}.btn.secondary{background:var(--surface);color:var(--ink);border-color:var(--border)}.btn.secondary:hover{background:var(--bg)}.btn.green{background:var(--green)}.btn.green:hover{background:#137a4b}.btn.red{background:var(--surface);color:var(--red);border-color:var(--red-tint)}.btn.red:hover{background:var(--red-tint)}.btn:disabled{opacity:.5;cursor:default;box-shadow:none}.pill{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px;letter-spacing:.01em}.pill.pending{background:var(--amber-tint);color:var(--amber)}.pill.approved{background:var(--green-tint);color:var(--green)}.pill.denied{background:var(--red-tint);color:var(--red)}.input{width:100%;padding:10px 13px;border:1px solid var(--border);border-radius:9px;font-size:14.5px;background:var(--surface);color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease}.input:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 3px var(--purple-light)}.formActions{display:flex;gap:8px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{width:360px}.error{color:var(--red);font-size:13px;margin-top:8px}.stat{font-size:28px;font-weight:800;letter-spacing:-.02em;margin-top:2px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:14px;gap:14px}.stat-grid .card{transition:box-shadow .15s ease,transform .15s ease}.stat-grid a.card:hover{box-shadow:var(--shadow-card),0 0 0 1px var(--purple-light);transform:translateY(-1px)}.navBadge{display:inline-block;margin-left:6px;min-width:17px;height:17px;padding:0 5px;border-radius:999px;background:var(--red);color:#fff;font-size:10.5px;font-weight:700;line-height:17px;text-align:center}.banner{display:flex;align-items:center;justify-content:space-between;background:var(--amber-tint);border:1px solid #f0e0ad;border-radius:12px;padding:12px 16px;margin-bottom:16px;font-weight:600;font-size:13.5px}.banner,.banner a{color:var(--amber)}.banner a{text-decoration:underline}.searchBar{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.searchBar .input[type=search]{flex:1 1;min-width:220px}.searchBar .btn{white-space:nowrap}.select{width:auto;padding-right:32px;cursor:pointer;background:var(--surface)}