.portal-locked { overflow: hidden; }
.locked-catalog { pointer-events: none; user-select: none; opacity: 1; }
.locked-tabs { display:flex; gap:8px; margin-bottom:32px; overflow:hidden; }
.locked-tabs span { flex-shrink:0; display:block; border:1px solid var(--color-border-strong); padding:6px 16px; border-radius:9999px; font-size:12px; font-weight:var(--font-weight-bold); }
.locked-tabs span:first-child { background:var(--color-key-primary); color:var(--color-on-key); border-color:var(--color-key-primary); }
.locked-card { min-width:0; }
.locked-card img { display:block; width:100%; height:auto; }
.passcode-instruction { margin:0 0 20px; color:var(--color-text); text-align:center; font-size:14px; line-height:1.8; }
.passcode-overlay { position:fixed; inset:0; z-index:20; display:grid; place-items:center; overflow:auto; padding:24px; background:transparent; backdrop-filter:blur(3.5px); -webkit-backdrop-filter:blur(3.5px); }
.passcode-dialog { width:min(100%,560px); background:var(--color-surface); padding:24px; border:1px solid var(--color-border); border-radius:16px; box-shadow:0 16px 64px color-mix(in srgb,var(--color-text) 12%,transparent); }
.code-field { display:flex; border:1px solid var(--color-border-strong); border-radius:8px; }
.code-field:focus-within { outline:2px solid var(--color-key-primary); outline-offset:2px; }
.code-field input { text-align:center; min-width:0; width:100%; padding:18px 14px; font:inherit; font-family:monospace; font-size:21px; border:0; border-radius:8px; outline:0; background:transparent; color:var(--color-text); }
.portal-primary { background:var(--color-key-primary)!important; color:var(--color-on-key)!important; border-color:var(--color-key-primary)!important; }
.passcode-dialog [role=status] { font-size:13px; margin:12px 0 0; color:var(--color-error); }
.passcode-dialog [role=status]:empty { display:none; }
.code-field:has(input[aria-invalid=true]) { border-color:var(--color-error); }
.portal-session-bar { display:flex; justify-content:flex-end; align-items:center; gap:12px; font-size:12px; color:var(--color-text-muted); padding:0 0 16px; }
.portal-session-bar button { border:0; background:transparent; color:inherit; text-decoration:underline; cursor:pointer; }
.admin-header { display:flex; align-items:center; gap:24px; padding:24px 40px; border-bottom:1px solid var(--color-border); }
.admin-header span { flex:1; font-size:14px; }
.admin-header a { font-size:13px; }
.admin-main { max-width:1320px; width:calc(100% - 64px); }
.admin-title { display:flex; justify-content:space-between; gap:24px; align-items:center; margin:8px 0 32px; }
.admin-title h1 { margin:0; font-size:30px; }
.admin-title p { margin:8px 0; }
.admin-email,.field-note { color:var(--color-text-muted); font-size:12px; }
.admin-panel { margin-bottom:32px; padding:28px; border:1px solid var(--color-border); border-radius:12px; }
.section-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.section-heading h2 { font-size:20px; margin:0 0 20px; }
.section-heading span { font-size:12px; color:var(--color-text-muted); }
.admin-page button,.admin-page input,.admin-page select { font:inherit; font-size:13px; border:1px solid var(--color-border-strong); border-radius:6px; padding:10px 12px; background:var(--color-surface); color:var(--color-text); }
.admin-page button { cursor:pointer; }
button:disabled { opacity:.55; cursor:wait; }
.admin-page input:focus-visible,.admin-page button:focus-visible,.admin-page select:focus-visible { outline:2px solid var(--color-key-primary); outline-offset:2px; }
.company-create,.filter-row { display:flex; flex-wrap:wrap; align-items:end; gap:16px; margin:8px 0 16px; }
.company-create label,.filter-row label { display:flex; flex-direction:column; gap:6px; font-size:12px; }
.company-create label:first-child { flex:1; min-width:180px; }
.checkbox-label { flex-direction:row!important; align-items:center; align-self:center; }
.table-scroll { overflow:auto; }
.admin-page table { width:100%; border-collapse:collapse; font-size:13px; text-align:left; }
.admin-page th,.admin-page td { padding:14px 12px; border-bottom:1px solid var(--color-border); vertical-align:top; }
.admin-page th { font-size:12px; color:var(--color-text-muted); white-space:nowrap; background:var(--color-surface-neutral); }
.admin-page code { display:block; white-space:nowrap; font-size:14px; margin:0 0 8px; }
.row-actions { min-width:205px; }
.row-actions button { margin:0 4px 4px 0; padding:6px 8px; font-size:12px; }
.metric-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin:24px 0; }
.metric-grid>div { background:var(--color-surface-neutral); padding:20px; border-radius:8px; }
.metric-grid span { display:block; font-size:12px; color:var(--color-text-muted); }
.metric-grid strong { display:block; font-size:26px; margin-top:8px; }
.daily-bars { max-height:300px; overflow:auto; }
.daily-bars>div { display:flex; align-items:center; gap:16px; font-size:12px; padding:5px 0; }
.daily-bars meter { flex:1; height:12px; accent-color:var(--color-key-primary); }
#admin-status { color:var(--color-key-primary); min-height:24px; }
.admin-page dialog { border:1px solid var(--color-border); border-radius:12px; padding:32px; max-width:480px; width:calc(100% - 48px); color:var(--color-text); }
.admin-page dialog::backdrop { background:color-mix(in srgb,var(--color-text) 30%,transparent); }
.dialog-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:24px; }
#rename-label input { display:block; width:100%; }
@media(max-width:600px) {
 .passcode-overlay { padding:16px; }
 .passcode-dialog { padding:20px; }
 .code-field input { font-size:17px; padding:16px 10px; }
 .admin-header { padding:20px; gap:12px; flex-wrap:wrap; }
 .admin-header span { flex-basis:60%; }
 .admin-main { width:calc(100% - 32px); }
 .admin-panel { padding:16px; }
 .admin-title { display:block; }
 .metric-grid { grid-template-columns:repeat(2,1fr); }
 .metric-grid strong { font-size:22px; }
}

.portal-session-bar { width:min(var(--content-width),calc(100% - 48px)); margin-inline:auto; }

.portal-menu { position:relative; pointer-events:auto; }
.portal-menu summary { display:flex; align-items:center; justify-content:center; width:44px; height:44px; cursor:pointer; list-style:none; color:var(--color-text); border-radius:6px; }
.portal-menu summary::-webkit-details-marker { display:none; }
.portal-menu summary:hover,.portal-menu[open] summary { background:var(--color-surface-neutral); }
.portal-menu summary:focus-visible,.portal-menu-panel button:focus-visible { outline:2px solid var(--color-key-primary); outline-offset:3px; }
.portal-menu-panel { position:absolute; top:calc(100% + 8px); right:0; min-width:176px; padding:8px; background:var(--color-surface); border:1px solid var(--color-border); border-radius:8px; box-shadow:0 8px 24px color-mix(in srgb,var(--color-text) 12%,transparent); }
.portal-menu-panel button { display:block; width:100%; min-height:44px; border:0; border-radius:4px; padding:10px 12px; background:transparent; color:var(--color-text); font:inherit; font-size:14px; text-align:left; white-space:nowrap; cursor:pointer; }
.portal-menu-panel button:hover { background:var(--color-surface-neutral); }
.portal-menu-panel [data-logout-status] { margin:8px 12px; color:var(--color-error); font-size:12px; }
.portal-menu-panel [data-logout-status]:empty { display:none; }
