.portal-root{--shadow:0 10px 30px rgba(0,0,0,0.45);min-height:100vh;background:var(--bg);color:var(--ink);font-family:var(--font-b)}.portal-root[data-theme=midnight]{--bg:#0b0c0b;--panel:#161816;--panel2:#1e211e;--line:rgba(242,242,242,0.12);--ink:#f2f2f2;--dim:rgba(242,242,242,0.55);--chipbg:rgba(255,151,0,0.12);--shadow:0 10px 30px rgba(0,0,0,0.45)}.portal-root[data-theme=concrete]{--bg:#f2f2f2;--panel:#ffffff;--panel2:#e9e9e7;--line:rgba(34,36,35,0.14);--ink:#222423;--dim:rgba(34,36,35,0.55);--chipbg:rgba(0,35,156,0.08);--shadow:0 8px 22px rgba(34,36,35,0.1)}.portal-root h1,.portal-root h2,.portal-root h3{font-family:var(--font-d);font-weight:400;text-transform:uppercase;letter-spacing:.06em}.portal-root .micro{letter-spacing:.32em;color:var(--dim)}.portal-root .micro,.portal-root .tag{font-size:10px;font-weight:700;text-transform:uppercase}.portal-root .tag{display:inline-block;letter-spacing:.14em;padding:4px 9px;border-radius:2px;background:var(--chipbg);color:var(--orange)}.portal-root .tag.blue{color:var(--bluelit)}.portal-root[data-theme=concrete] .tag.blue{color:var(--blue)}.portal-root .tag.red{color:var(--red);background:rgba(254,74,44,.12)}.portal-root .tag.green{color:var(--green);background:rgba(63,164,91,.14)}.portal-root .btn{background:var(--orange);color:#141414;border:none;border-radius:3px;font-weight:800;font-size:11px;letter-spacing:.22em;text-transform:uppercase;padding:12px 18px;transition:box-shadow .25s,transform .2s}.portal-root .btn:hover{box-shadow:0 0 22px rgba(255,151,0,.45);transform:translateY(-1px)}.portal-root .btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.portal-root .btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.portal-root .btn.ghost:hover{border-color:var(--orange);color:var(--orange);box-shadow:none}.portal-root .btn.red{background:var(--red);color:#fff}.portal-root .btn.green{background:var(--green);color:#fff}.portal-root .btn.sm{padding:7px 12px;font-size:10px;letter-spacing:.16em}.portal-root input,.portal-root select,.portal-root textarea{background:var(--panel2);border:1px solid var(--line);color:var(--ink);font-family:var(--font-b);font-size:14px;padding:11px 12px;border-radius:3px;width:100%}.portal-root input:focus,.portal-root select:focus,.portal-root textarea:focus{outline:none;border-color:var(--orange)}.portal-root label{font-size:10px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--dim);display:block;margin-bottom:6px}.portal-root .field{margin-bottom:14px}.portal-root table{width:100%;border-collapse:collapse;font-size:13px}.portal-root th{text-align:left;font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);padding:10px 12px}.portal-root td,.portal-root th{border-bottom:1px solid var(--line)}.portal-root td{padding:11px 12px;vertical-align:middle}.portal-root tr:last-child td{border-bottom:none}.portal-root #login-view{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 50% -10%,rgba(0,35,156,.25),transparent 60%),var(--bg)}.portal-root #login-card{width:min(420px,100%);background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:38px 34px;box-shadow:var(--shadow)}.portal-root #login-card img{height:34px;display:block;margin:0 auto 8px}.portal-root #login-card h1{text-align:center;font-size:22px;margin:14px 0 4px}.portal-root #login-card>p{text-align:center;font-size:12px;color:var(--dim);margin-bottom:24px}.portal-root #login-err{color:var(--red);font-size:12px;min-height:16px;margin-bottom:8px}.portal-root .demo-chips{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}.portal-root .demo-chips button{flex:1 1;min-width:110px;background:var(--panel2);border:1px solid var(--line);color:var(--dim);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:9px 6px;border-radius:3px;cursor:pointer}.portal-root .demo-chips button:hover{border-color:var(--orange);color:var(--orange)}.portal-root .backlink{display:block;text-align:center;margin-top:20px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);text-decoration:none}.portal-root .backlink:hover{color:var(--orange)}.portal-root #topbar{display:flex;align-items:center;gap:18px;padding:14px clamp(16px,3vw,32px);border-bottom:1px solid var(--line);background:var(--panel);position:-webkit-sticky;position:sticky;top:0;z-index:20}.portal-root #topbar img{height:24px}.portal-root #topbar .who{margin-left:auto;text-align:right}.portal-root #topbar .who b{display:block;font-size:13px}.portal-root #topbar .who span{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}.portal-root .switchers{display:flex;gap:8px;align-items:center}.portal-root .switchers .sw{display:flex;border:1px solid var(--line);border-radius:3px;overflow:hidden}.portal-root .switchers .sw button{background:transparent;border:none;color:var(--dim);font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:7px 10px;cursor:pointer}.portal-root .switchers .sw button.on{background:var(--orange);color:#141414}.portal-root #layout-wrap{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 57px)}.portal-root nav#side{border-right:1px solid var(--line);background:var(--panel);padding:18px 0}.portal-root nav#side a{display:flex;align-items:center;gap:10px;width:100%;background:none;color:var(--dim);font-size:12px;font-weight:600;letter-spacing:.08em;padding:12px 22px;text-align:left;border:none;border-left:3px solid transparent;text-decoration:none;cursor:pointer}.portal-root nav#side a:hover{color:var(--ink)}.portal-root nav#side a.on{color:var(--orange);border-left-color:var(--orange);background:var(--chipbg)}.portal-root nav#side .badge{margin-left:auto;background:var(--red);color:#fff;font-size:10px;font-weight:800;border-radius:10px;padding:1px 7px}.portal-root main#view{padding:clamp(18px,3vw,36px);max-width:1200px;width:100%}.portal-root main#view h2{font-size:26px;margin-bottom:4px}.portal-root main#view .sub{font-size:13px;color:var(--dim);margin-bottom:24px}.portal-root .panel{background:var(--panel);border:1px solid var(--line);border-radius:5px;padding:20px;box-shadow:var(--shadow)}.portal-root .panel h3{font-size:15px;letter-spacing:.12em;margin-bottom:14px;color:var(--ink)}.portal-root .grid{display:grid;grid-gap:16px;gap:16px}.portal-root[data-layout=cards] .dash-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.portal-root[data-layout=rows] .dash-grid{grid-template-columns:1fr}.portal-root .stat-row{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:20px}.portal-root .stat{flex:1 1;min-width:130px;background:var(--panel);border:1px solid var(--line);border-radius:5px;padding:16px 18px}.portal-root .stat b{font-family:var(--font-d);font-weight:400;font-size:30px;color:var(--orange);display:block}.portal-root .stat span{font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}.portal-root .list-item{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}.portal-root .list-item:last-child{border-bottom:none}.portal-root .list-item .grow{flex:1 1;min-width:0}.portal-root .list-item b{font-size:14px;display:block}.portal-root .list-item small{font-size:12px;color:var(--dim)}.portal-root .avatar{width:36px;height:36px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-family:var(--font-d);font-size:14px;flex-shrink:0}.portal-root .empty{color:var(--dim);font-size:13px;padding:16px 0}.portal-root #cal{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:5px;gap:5px;margin-top:14px}.portal-root #cal .dow{font-size:9px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--dim);text-align:center;padding-bottom:4px}.portal-root #cal .day{aspect-ratio:1.2;border:1px solid var(--line);border-radius:3px;background:var(--panel2);font-size:12px;font-weight:600;color:var(--ink);display:grid;place-items:center;cursor:pointer}.portal-root #cal .day.blank{visibility:hidden}.portal-root #cal .day.avail{background:rgba(63,164,91,.25);border-color:var(--green)}.portal-root #cal .day.unavail{background:rgba(254,74,44,.22);border-color:var(--red)}.portal-root #cal .day.booked{background:rgba(255,151,0,.25);border-color:var(--orange);cursor:default}.portal-root #scan-video{width:100%;border-radius:5px;border:1px solid var(--orange)}.portal-root .scan-err{color:var(--red);font-size:12px;min-height:16px;margin-bottom:6px}.portal-root #toast,.portal-toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,80px);background:var(--ink,#f2f2f2);color:var(--bg,#0b0c0b);font-size:13px;font-weight:600;padding:12px 22px;border-radius:4px;transition:transform .3s;z-index:99}.portal-root #toast.show,.portal-toast.show{transform:translate(-50%)}.portal-root dialog,dialog.portal-modal{background:var(--panel,#161816);color:var(--ink,#f2f2f2);border:1px solid var(--line,rgba(242,242,242,.12));border-radius:6px;padding:26px;width:min(560px,92vw);box-shadow:var(--shadow)}.portal-root dialog::-webkit-backdrop,dialog.portal-modal::-webkit-backdrop{background:rgba(0,0,0,.55)}.portal-root dialog::backdrop,dialog.portal-modal::backdrop{background:rgba(0,0,0,.55)}.portal-root dialog h3,dialog.portal-modal h3{font-size:18px;margin-bottom:16px;font-family:var(--font-d);text-transform:uppercase;letter-spacing:.06em}@media (max-width:820px){.portal-root #layout-wrap{grid-template-columns:1fr}.portal-root nav#side{display:flex;overflow-x:auto;border-right:none;border-bottom:1px solid var(--line);padding:0}.portal-root nav#side a{border-left:none;border-bottom:3px solid transparent;white-space:nowrap;width:auto}.portal-root nav#side a.on{border-bottom-color:var(--orange)}.portal-root .switchers{display:none}}