* { box-sizing: border-box; }
html, body { width: 100%; min-height: 100%; margin: 0; background: #020617; color: #e2e8f0; font-family: Arial, Helvetica, sans-serif; }
body { overflow: hidden; }
.hidden { display: none !important; }
.auth-page { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: radial-gradient(circle at 18% 12%, rgba(14,165,233,.2), transparent 34%), radial-gradient(circle at 82% 86%, rgba(37,99,235,.18), transparent 38%), #020617; }
.auth-card { width: min(440px,100%); padding: 38px; border: 1px solid rgba(56,189,248,.22); border-radius: 24px; background: rgba(7,20,38,.9); box-shadow: 0 28px 80px rgba(0,0,0,.45); backdrop-filter: blur(18px); }
.brand-mark { display:grid; place-items:center; width:54px; height:54px; margin-bottom:18px; border-radius:16px; background:linear-gradient(145deg,#0ea5e9,#2563eb); color:white; font-size:18px; font-weight:800; }
.eyebrow { margin:0 0 6px; color:#38bdf8; font-size:11px; font-weight:700; letter-spacing:.2em; }
.auth-card h1 { margin:0; color:#f8fafc; font-size:30px; }
.auth-copy { margin:10px 0 26px; color:#94a3b8; }
.auth-card form,.auth-card label { display:grid; gap:9px; }
.auth-card form { gap:18px; }
.auth-card label { color:#cbd5e1; font-size:13px; font-weight:700; }
.auth-card input { height:48px; padding:0 14px; border:1px solid #27415f; border-radius:12px; outline:0; background:#0b1b30; color:#f8fafc; font-size:15px; }
.auth-card input:focus { border-color:#38bdf8; box-shadow:0 0 0 3px rgba(56,189,248,.12); }
.primary-button { height:50px; border:0; border-radius:12px; background:linear-gradient(135deg,#0ea5e9,#2563eb); color:white; cursor:pointer; font-size:15px; font-weight:800; }
.primary-button:disabled { opacity:.55; cursor:wait; }
.form-message { color:#fbbf24; font-size:13px; line-height:1.55; }
.auth-links { display:flex; justify-content:space-between; margin-top:22px; }
.auth-links button,.session-bar button { border:0; background:transparent; color:#38bdf8; cursor:pointer; }
.security-note { margin:28px 0 0; color:#64748b; text-align:center; font-size:11px; }
.access-card { text-align:center; }
.access-badge { display:inline-flex; margin-bottom:20px; padding:7px 12px; border:1px solid rgba(56,189,248,.35); border-radius:999px; background:rgba(14,165,233,.12); color:#7dd3fc; font-size:12px; font-weight:800; }
.access-badge.rejected { border-color:rgba(248,113,113,.35); background:rgba(239,68,68,.12); color:#fca5a5; }
.access-email { margin:22px 0; padding:12px; border-radius:10px; background:#0b1b30; color:#cbd5e1; font-size:13px; }
.access-actions { display:grid; gap:10px; }
.secondary-button { height:46px; border:1px solid #27415f; border-radius:12px; background:transparent; color:#cbd5e1; cursor:pointer; font-weight:700; }
.dashboard-shell { width:100vw; height:100vh; padding-top:42px; }
.session-bar { position:fixed; inset:0 0 auto; z-index:20; height:42px; display:flex; align-items:center; justify-content:flex-end; gap:18px; padding:0 24px; border-bottom:1px solid #1e3a5f; background:#071426; color:#94a3b8; font-size:13px; }
.dashboard-frame { display:block; width:100%; height:calc(100vh - 42px); border:0; background:#020617; }
.loading-banner { padding:30px; color:#cbd5e1; }
.error-banner { color:#fca5a5; }
.admin-button { padding:6px 12px !important; border:1px solid rgba(56,189,248,.35) !important; border-radius:8px; background:rgba(14,165,233,.1) !important; }
.admin-panel { position:fixed; inset:62px 24px 24px auto; z-index:30; width:min(820px,calc(100vw - 48px)); padding:24px; overflow:auto; border:1px solid #1e3a5f; border-radius:18px; background:#071426; box-shadow:0 25px 80px rgba(0,0,0,.6); }
.admin-panel-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.admin-panel-header h2 { margin:2px 0 0; color:#f8fafc; }
.admin-panel-header button { border:1px solid #27415f; border-radius:8px; padding:7px 12px; background:transparent; color:#cbd5e1; cursor:pointer; }
.admin-message { color:#94a3b8; font-size:13px; }
.request-table-wrap { overflow:auto; }
.request-table { width:100%; border-collapse:collapse; font-size:13px; }
.request-table th,.request-table td { padding:12px 10px; border-bottom:1px solid #17304c; text-align:left; white-space:nowrap; }
.request-table th { color:#7dd3fc; }
.status-pill { display:inline-flex; padding:4px 8px; border-radius:999px; font-size:11px; font-weight:800; }
.status-pill.pending { background:rgba(245,158,11,.15); color:#fcd34d; }
.status-pill.approved { background:rgba(34,197,94,.15); color:#86efac; }
.status-pill.rejected { background:rgba(239,68,68,.15); color:#fca5a5; }
.request-actions { display:flex; gap:8px; }
.request-actions button { border:1px solid rgba(56,189,248,.4); border-radius:7px; padding:6px 10px; background:rgba(14,165,233,.1); color:#7dd3fc; cursor:pointer; }
.request-actions .danger-action { border-color:rgba(248,113,113,.35); background:rgba(239,68,68,.1); color:#fca5a5; }
@media (max-width:720px) {
  .auth-card { padding:28px 22px; }
  .admin-panel { inset:52px 8px 8px; width:auto; padding:16px; }
  .session-bar { padding:0 12px; }
}
