:root{--bg: #0b1220;--bg-alt: #111827;--card-bg: #020617;--accent: #22d3ee;--accent-soft: rgba(34, 211, 238, .12);--text: #e5e7eb;--muted: #9ca3af;--danger: #fb7185;--border: #1f2933;--radius-lg: 1rem;--radius-xl: 1.5rem;--shadow-soft: 0 18px 45px rgba(15, 23, 42, .75);--shadow-card: 0 12px 35px rgba(15, 23, 42, .9)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,sans-serif;background:radial-gradient(circle at top,#1f2937,#020617 50%,#000);color:var(--text);min-height:100vh}.fullpage-center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1.25rem}.card{background:linear-gradient(145deg,#0f172af5,#020617fa);border-radius:var(--radius-xl);border:1px solid rgba(148,163,184,.2);box-shadow:var(--shadow-card);padding:2.5rem 2.25rem}.login-card{width:100%;max-width:420px;text-align:center;position:relative;overflow:hidden}.login-card:before{content:"";position:absolute;top:-30%;right:-30%;bottom:-30%;left:-30%;opacity:.22;background:radial-gradient(circle at 0% 0%,rgba(34,211,238,.2),transparent 60%),radial-gradient(circle at 100% 100%,rgba(56,189,248,.12),transparent 55%);pointer-events:none}.logo-circle{width:64px;height:64px;border-radius:999px;margin:0 auto 1.5rem;background:radial-gradient(circle at 30% 20%,#e0f2fe 0,#38bdf8 40%,#0f172a);display:flex;align-items:center;justify-content:center;font-size:2rem;box-shadow:0 18px 40px #082f49b3}.title{margin:0;font-size:1.8rem;letter-spacing:.04em}.subtitle{margin-top:.35rem;margin-bottom:1.8rem;color:var(--muted)}.form{display:flex;flex-direction:column;gap:1rem;text-align:left;margin-bottom:1rem;position:relative;z-index:1}.label{display:flex;flex-direction:column;gap:.25rem;font-size:.875rem;color:var(--muted)}.input{border-radius:999px;border:1px solid rgba(148,163,184,.4);background:#7a8aa9f2;color:var(--text);padding:.75rem 1.1rem;font-size:1.2rem;outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease,transform .15s ease}.input::placeholder{color:#6b7280}.input:focus{border-color:var(--accent);box-shadow:0 0 0 1px #22d3ee80;background:#0f172a;transform:translateY(-.5px)}.button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:999px;padding:.7rem 1.4rem;font-size:.95rem;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;transition:transform .12s ease,box-shadow .12s ease,background .15s ease,border-color .15s ease}.button.primary{background:radial-gradient(circle at 0 0,#e0f2fe 0,#22d3ee 40%,#0ea5e9);color:#0f172a;box-shadow:0 16px 30px #082f49bf}.button.primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 20px 40px #082f49e6}.button.primary:active:not(:disabled){transform:translateY(0);box-shadow:0 10px 24px #082f49e6}.button:disabled{opacity:.65;cursor:wait}.button.outline{border-radius:999px;border:1px solid rgba(148,163,184,.6);background:transparent;color:var(--text);padding-inline:1rem;padding-block:.5rem;font-size:.85rem}.button.outline:hover{background:#0f172abf;border-color:#94a3b8}.button.small{font-size:.8rem}.error{padding:.6rem .8rem;border-radius:.75rem;background:#f871711a;border:1px solid rgba(248,113,113,.4);color:#fecaca;font-size:.8rem}.hint{margin-top:.75rem;font-size:.78rem;color:var(--muted)}.dashboard-layout{min-height:100vh;display:flex;flex-direction:column}.topnav{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.8rem;border-bottom:1px solid rgba(31,41,55,.85);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(to bottom,#0f172af5,#0f172aeb);position:sticky;top:0;z-index:10}.brand-mark{font-size:1.4rem}.brand-text{font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:.95rem}.topnav-right{display:flex;align-items:center;gap:.75rem}.user-chip{display:flex;align-items:center;gap:.6rem;padding:.25rem .4rem;border-radius:999px;background:radial-gradient(circle at 0 0,rgba(34,211,238,.16),transparent 60%)}.avatar{width:28px;height:28px;border-radius:999px;background:#0f172ae6;border:1px solid rgba(148,163,184,.5);display:flex;align-items:center;justify-content:center;font-size:.9rem}.user-info{display:flex;flex-direction:column}.user-name{font-size:.83rem;font-weight:500}.user-role{font-size:.7rem;color:var(--muted)}.dashboard-main{padding:1.8rem clamp(1.25rem,3vw,2.4rem);max-width:1120px;margin:0 auto;width:100%}.hero-card{background:radial-gradient(circle at 10% 0%,rgba(34,211,238,.26),transparent 60%),radial-gradient(circle at 100% 100%,rgba(56,189,248,.18),transparent 55%),linear-gradient(135deg,#0f172af5,#020617fa);border-radius:1.4rem;padding:1.75rem 1.6rem;border:1px solid rgba(148,163,184,.35);box-shadow:var(--shadow-soft);margin-bottom:1.75rem}.hero-card h1{margin-top:0;margin-bottom:.6rem}.hero-card p{margin-top:.25rem;margin-bottom:.5rem}.hero-card .muted{color:var(--muted);font-size:.86rem}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.25rem}.grid .card{padding:1.25rem 1.2rem;border-radius:1.2rem}.muted{color:var(--muted)}@media (max-width: 640px){.card{padding:2rem 1.6rem}.login-card{padding-inline:1.5rem}.topnav,.dashboard-main{padding-inline:1rem}}.topnav-left{display:flex;align-items:center;gap:.6rem}.topnav-nav{display:flex;align-items:center;gap:1rem;margin-left:2rem}.nav-link{font-size:.9rem;color:var(--muted);text-decoration:none;padding-bottom:.15rem;border-bottom:2px solid transparent;transition:color .15s ease,border-color .15s ease}.nav-link:hover{color:var(--text)}.nav-link-active{color:var(--text);border-bottom-color:var(--accent)}.label-title{display:flex;align-items:center;gap:.25rem}.required{color:#f97373}
