:root{--navy:#0b1220;--slate:#172033;--blue:#2563eb;--blue-soft:#eff6ff;--bg:#f6f8fb;--muted:#667085;--line:#e4e7ec;--white:#fff;--green:#15803d;--red:#b42318;--amber:#a15c00;--purple:#6d28d9;--radius:18px;--shadow:0 12px 34px #10182812}*{box-sizing:border-box}html{background:var(--bg)}body{color:var(--navy);background:var(--bg);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}.brand{align-items:center;gap:12px;display:flex}.brand-mark{background:var(--navy);color:#fff;border-radius:13px;place-items:center;width:44px;height:44px;font-size:23px;font-weight:900;display:grid;position:relative;overflow:hidden}.brand-mark:after{content:"";background:var(--blue);width:17px;height:17px;position:absolute;bottom:-7px;left:-4px;transform:rotate(45deg)}.brand-copy{line-height:1.05;display:grid}.brand-copy strong{letter-spacing:.22em;font-size:17px}.brand-copy small{color:var(--muted);text-transform:uppercase;letter-spacing:.11em;margin-top:5px;font-size:10px}.button{border:0;border-radius:11px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 17px;font-weight:760;display:inline-flex}.button-primary{background:var(--blue);color:#fff;box-shadow:0 8px 22px #2563eb2e}.button-secondary{color:var(--navy);border:1px solid var(--line);background:#fff}.button-ghost{color:#e2e8f0;background:0 0;border:1px solid #ffffff24}.muted{color:var(--muted)}.eyebrow{color:var(--blue);text-transform:uppercase;letter-spacing:.13em;margin-bottom:6px;font-size:11px;font-weight:850;display:inline-block}.eyebrow.light{color:#93c5fd}.alert{border-radius:10px;padding:11px 13px;font-size:13px}.alert-error{color:#912018;background:#fef3f2;border:1px solid #fecdca}.alert-success{color:#05603a;background:#ecfdf3;border:1px solid #abefc6}.page-alert{margin:-8px 0 18px}.text-link{color:var(--blue);font-size:12px;font-weight:750}.auth-shell{grid-template-columns:1.08fr .92fr;min-height:100vh;display:grid}.auth-visual{color:#fff;background:radial-gradient(circle at 15% 10%,#1e3a8a 0,#0000 31%),linear-gradient(145deg,#0b1220,#111c34 62%,#172554);align-items:center;padding:64px;display:grid}.auth-visual .brand-mark{color:var(--navy);background:#fff}.auth-visual .brand-copy small{color:#94a3b8}.auth-visual-inner{max-width:620px;margin:0 auto}.auth-visual h1{letter-spacing:-.055em;margin:68px 0 24px;font-size:clamp(44px,5vw,74px);line-height:.99}.auth-visual p{color:#cbd5e1;max-width:580px;font-size:18px;line-height:1.7}.auth-points{flex-wrap:wrap;gap:10px;margin-top:34px;display:flex}.auth-points span{color:#dbeafe;background:#ffffff0d;border:1px solid #ffffff24;border-radius:999px;padding:9px 13px;font-size:12px}.auth-card-wrap{place-items:center;padding:36px;display:grid}.auth-card{border:1px solid var(--line);width:min(460px,100%);box-shadow:var(--shadow);background:#fff;border-radius:24px;gap:16px;padding:36px;display:grid}.auth-card h2{letter-spacing:-.035em;margin:0;font-size:34px}.auth-card p{margin:0 0 4px;line-height:1.6}label{color:#344054;gap:7px;font-size:13px;font-weight:700;display:grid}input,textarea,select{width:100%;color:var(--navy);background:#fff;border:1px solid #d0d5dd;border-radius:10px;outline:none;padding:10px 11px}input:focus,textarea:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1a}.setup-shell{background:linear-gradient(180deg,#fff,var(--bg));min-height:100vh;padding:28px}.setup-top{justify-content:space-between;align-items:center;max-width:1080px;margin:0 auto 26px;display:flex}.setup-grid{grid-template-columns:1fr 1fr;gap:18px;max-width:1080px;margin:0 auto;display:grid}.setup-panel h1,.setup-panel h2{letter-spacing:-.035em;margin:4px 0 10px}.accent-panel{color:#fff;background:linear-gradient(160deg,#0f172a,#172554)}.accent-panel p,.accent-panel small{color:#cbd5e1}.accent-panel label{color:#dbeafe}.center-shell{place-items:center;min-height:100vh;padding:30px;display:grid}.centered{text-align:center;justify-items:center;gap:18px;max-width:650px;display:grid}.centered h1{letter-spacing:-.04em;margin:0;font-size:38px}.portal-shell{grid-template-columns:248px 1fr;min-height:100vh;display:grid}.sidebar{color:#fff;background:#0b1220;flex-direction:column;justify-content:space-between;height:100vh;padding:24px 18px;display:flex;position:sticky;top:0}.sidebar .brand-copy small{color:#94a3b8}.admin-chip{background:#ffffff0a;border:1px solid #ffffff1c;border-radius:13px;gap:4px;margin:28px 0 22px;padding:13px;display:grid}.admin-chip span{color:#94a3b8;text-transform:uppercase;letter-spacing:.08em;font-size:10px}.admin-chip strong{font-size:13px}.nav-list{gap:5px;display:grid}.nav-list a{color:#cbd5e1;border-radius:9px;padding:10px 12px;font-size:13px;font-weight:650}.nav-list a:hover{color:#fff;background:#ffffff12}.portal-main{min-width:0;padding:34px 38px 60px}.page-header{justify-content:space-between;align-items:end;gap:20px;margin:0 0 24px;display:flex}.page-header h1{letter-spacing:-.045em;margin:0;font-size:36px}.page-header p{color:var(--muted);margin:7px 0 0;font-size:14px}.metrics-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;display:grid}.metric,.panel{border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:0 3px 18px #0f172a09}.metric{gap:7px;padding:20px;display:grid}.metric span{color:var(--muted);font-size:12px}.metric strong{letter-spacing:-.04em;font-size:28px}.metric small{color:#98a2b3}.content-grid{gap:18px;display:grid}.content-grid.two-thirds{grid-template-columns:1.7fr .8fr}.content-grid.half{grid-template-columns:1fr 1fr;align-items:start}.panel{padding:22px}.panel h2{letter-spacing:-.02em;margin:2px 0 18px;font-size:20px}.panel-head{justify-content:space-between;align-items:start;gap:14px;display:flex}.panel-head a{color:var(--blue);font-size:12px;font-weight:750}.item-list{gap:8px;display:grid}.item-card{border:1px solid #edf2f7;border-radius:12px;align-items:center;gap:11px;min-height:62px;padding:11px 12px;display:flex}.item-card>div:not(.avatar-letter){gap:3px;display:grid}.item-card span,.item-card small{color:var(--muted);font-size:11px}.avatar-letter{background:var(--blue-soft);width:38px;height:38px;color:var(--blue);border-radius:11px;flex:none;place-items:center;font-weight:900;display:grid}.grow{flex:1}.align-right{text-align:right}.signal-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.signal-list li{border-top:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:12px 0;display:flex}.signal-list strong{font-size:22px}.signal-list span{color:var(--muted);font-size:12px}.status{white-space:nowrap;color:#475467;background:#f2f4f7;border-radius:999px;align-items:center;width:max-content;padding:5px 8px;font-size:10px;font-weight:800;display:inline-flex}.status-active,.status-completed,.status-confirmed,.status-approved,.status-admin{color:#05603a;background:#ecfdf3}.status-pending{color:#93370d;background:#fffaeb}.status-suspended,.status-rejected,.status-cancelled_by_business,.status-cancelled_by_customer,.status-no_show{color:#912018;background:#fef3f2}.status-business_owner{color:#175cd3;background:#eff8ff}.status-staff{color:#5925dc;background:#f4f3ff}.status-customer{color:#344054;background:#f2f4f7}.empty-state{color:var(--muted);text-align:center;padding:32px 8px;font-size:13px}.table-panel{padding:0;overflow:hidden}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:900px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;text-align:left;background:#f9fafb;padding:12px 15px;font-size:10px}td{vertical-align:middle;border-top:1px solid #eef2f6;padding:14px 15px;font-size:12px}td>strong,td>span{display:block}td>span{color:var(--muted);margin-top:4px;font-size:11px}.business-action-grid{grid-template-columns:110px 90px auto;gap:6px;min-width:280px;display:grid}.business-action-grid input,.business-action-grid select,.inline-role-form select{padding:7px 8px;font-size:11px}.inline-role-form{align-items:center;gap:6px;min-width:190px;display:flex}.mini-button{background:var(--blue-soft);color:#1d4ed8;border:0;border-radius:7px;padding:7px 9px;font-size:10px;font-weight:800}.mini-button.danger{color:#b42318;background:#fef3f2}.stack-form{gap:14px;display:grid}.inline-actions{flex-wrap:wrap;gap:9px;display:flex}.detail-list{gap:0;margin:0;display:grid}.detail-list>div{border-top:1px solid #f1f5f9;grid-template-columns:150px 1fr;gap:12px;padding:12px 0;display:grid}.detail-list dt{color:var(--muted);font-size:12px}.detail-list dd{margin:0;font-size:12px;font-weight:700}.mono{word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.check-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.check-list li{color:var(--muted);align-items:center;gap:9px;font-size:13px;display:flex}.check-list li:before{content:"✓";color:#067647;background:#ecfdf3;border-radius:50%;place-items:center;width:18px;height:18px;font-size:11px;font-weight:900;display:grid}.security-panel{background:#f8faff;border-color:#c7d7fe}.panel-pad{padding:20px 22px 0}.panel-pad h2{margin:0 0 12px}@media (max-width:1100px){.metrics-grid{grid-template-columns:repeat(2,1fr)}.content-grid.two-thirds,.content-grid.half,.setup-grid{grid-template-columns:1fr}}.pilot-note{color:#1e3a8a;background:#eff6ff;border:1px solid #bfdbfe;border-radius:14px;margin-top:18px;padding:14px 16px;font-size:12px;line-height:1.6}.status-submitted{color:#175cd3;background:#eff8ff}.status-no_device,.status-suppressed{color:#475467;background:#f2f4f7}.status-failed{color:#912018;background:#fef3f2}.status-cancelled{color:#9a3412;background:#fff7ed}@media (max-width:800px){.auth-shell{grid-template-columns:1fr}.auth-visual{min-height:42vh;padding:34px 24px}.auth-visual h1{margin-top:35px;font-size:44px}.portal-shell{display:block}.sidebar{height:auto;padding:16px;position:static}.nav-list{padding-bottom:5px;display:flex;overflow-x:auto}.nav-list a{white-space:nowrap}.sidebar form{display:none}.portal-main{padding:20px 14px 40px}.metrics-grid{grid-template-columns:1fr 1fr;gap:9px}.metric{padding:14px}.metric strong{font-size:22px}.setup-shell{padding:18px}}
