/* The longer dashboard scrolls as a document, without content crossing the transparent navigation. */
body.admin-page .site-header { position:absolute; }
html:has(body > .admin-shell[data-admin-screen="login"]),html:has(body > .admin-shell[data-admin-screen="checking"]) { overflow:hidden; }
body:has(> .admin-shell[data-admin-screen="login"]),body:has(> .admin-shell[data-admin-screen="checking"]) { overflow:hidden; }
.admin-shell { --admin-surface:rgba(255,255,255,.23); --admin-border:rgba(255,255,255,.52); --admin-paid:rgba(255,255,255,.88); --admin-soft-opacity:.24; --admin-pending:rgba(255,255,255,var(--admin-soft-opacity)); --admin-discovery:rgba(221,207,235,.75); --admin-external:rgba(232,231,234,var(--admin-soft-opacity)); height:auto; grid-template-rows:clamp(115px,16svh,210px) auto; min-height:calc(100svh - var(--header-height)); }
.admin-shell[data-admin-screen="login"],.admin-shell[data-admin-screen="checking"] { height:calc(100svh - var(--header-height)); min-height:0; grid-template-rows:clamp(100px,16svh,210px) minmax(0,1fr); padding-bottom:0; }
.admin-workspace,.admin-view { min-width:0; min-height:0; }
.admin-shell[data-admin-screen="login"] .admin-view,.admin-shell[data-admin-screen="checking"] .admin-view { height:100%; display:grid; place-items:center; }
.admin-login { width:min(440px,100%); padding:0 0 clamp(8px,3svh,40px); }
.admin-login h2 { font:400 clamp(2rem,3.1vw,3.75rem)/1.1 var(--serif); letter-spacing:-.04em; margin-bottom:clamp(15px,3svh,34px); }
.admin-form { display:grid; gap:22px; }
.admin-form label { display:grid; gap:9px; font-size:.875rem; }
.admin-form input:not([type="checkbox"]),.admin-form select,.admin-form textarea,.admin-search,.admin-filter { width:100%; border:0; border-bottom:1px solid var(--line); padding:10px 0 12px; background:transparent; color:var(--ink); font:300 1rem/1.5 var(--sans); border-radius:0; }
.admin-form input:focus,.admin-form textarea:focus,.admin-form select:focus,.admin-search:focus,.admin-filter:focus { outline:none; border-color:var(--ink); }
.admin-form select option,.admin-filter option { background:#f7d0bc; }
.admin-form .booking-primary { margin-top:8px; }
.admin-login-button { margin-top:8px; }
.admin-form textarea { resize:vertical; min-height:200px; }
.admin-check { display:flex!important; align-items:flex-start; gap:10px!important; font-weight:300; line-height:1.6; }
.admin-check input { margin-top:4px; accent-color:var(--ink); width:17px; height:17px; }
.admin-status { font:300 .875rem/1.5 var(--sans); min-height:24px; margin-top:12px; }
.admin-status:empty { margin:0; min-height:0; }
.admin-loading { color:var(--muted); font-weight:300; }
.admin-topbar { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:0 0 26px; }
.admin-topbar h2 { font:400 2.75rem/1.15 var(--serif); letter-spacing:-.035em; }
.admin-topbar p { font-size:.8125rem; color:var(--muted); margin-top:9px; }
.admin-actions { display:flex; flex-wrap:wrap; align-items:center; gap:20px; }
.admin-text-button { font:400 .875rem/1.5 var(--sans); min-height:36px; transition:opacity .3s; }
.admin-text-button:hover { opacity:.6; }
.admin-text-button:disabled { opacity:.35; cursor:default; }
.admin-stats { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:26px 0 28px; gap:30px; }
.admin-monthly-row { display:flex; align-items:center; gap:40px; padding-top:19px; font:300 .875rem/1.5 var(--sans); }
.admin-monthly-row label { display:flex; align-items:center; gap:20px; }
.admin-monthly-row select { color:var(--ink); border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; padding:7px 20px 7px 0; font:400 .875rem/1.5 var(--sans); cursor:pointer; }
.admin-monthly-row option { background:#f7d0bc; }
.admin-monthly-values { display:flex; gap:36px; }
.admin-monthly-values strong { font-weight:500; margin-right:6px; font-variant-numeric:tabular-nums; }
.admin-monthly-note { font:300 .6875rem/1.5 var(--sans); color:var(--muted); padding:8px 0 20px; margin-bottom:28px; border-bottom:1px solid var(--line); }
.admin-stats strong { display:block; font:300 2.7rem/1.15 var(--sans); letter-spacing:-.045em; margin-bottom:10px; }
.admin-stats span { font:300 .875rem/1.5 var(--sans); color:var(--muted); }
.admin-tabs { display:flex; gap:36px; border-bottom:1px solid var(--line); margin-bottom:32px; }
.admin-tabs button { position:relative; padding:0 0 18px; font-size:1rem; color:var(--muted); transition:color .3s; }
.admin-tabs button[aria-pressed="true"] { color:var(--ink); }
.admin-tabs button[aria-pressed="true"]::after { content:""; position:absolute; height:2px; background:var(--ink); bottom:-1px; left:0; right:0; }
.admin-panel { animation:admin-enter .45s var(--ease); }
.admin-panel-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; margin:0 0 28px; }
.admin-panel-heading h3 { font:400 2rem/1.18 var(--serif); letter-spacing:-.025em; }
.admin-panel-heading p,.admin-muted { color:var(--muted); font:300 .875rem/1.6 var(--sans); margin-top:8px; }
.admin-surface { background:var(--admin-surface); border:1px solid var(--admin-border); border-radius:16px; }
.admin-week-grid { display:grid; grid-template-columns:46px repeat(7,minmax(0,1fr)); gap:5px 8px; }
.admin-day { text-align:center; padding-bottom:18px; border-bottom:1px solid var(--line); margin-bottom:7px; }
.admin-day span { display:block; font:400 .75rem/1.6 var(--sans); color:var(--muted); }
.admin-day strong { display:block; font:300 1.75rem/1.3 var(--sans); margin-top:5px; }
.admin-day.is-today strong { text-decoration:underline; text-underline-offset:9px; text-decoration-thickness:1px; }
.admin-hour { padding-top:15px; font-size:.75rem; font-weight:300; color:var(--muted); }
.admin-cell { min-height:53px; border-radius:7px; border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.07); display:flex; flex-direction:column; gap:3px; }
.admin-cell button,.admin-preview { width:100%; height:100%; min-height:51px; padding:9px 10px; border-radius:7px; text-align:left; font:400 .8125rem/1.3 var(--sans); background:var(--admin-paid); transition:background .3s; }
.admin-cell:has(> button),.admin-cell button { border-radius:999px; }
.admin-cell button:hover { background:#fff; }
.admin-cell small { display:block; margin-top:4px; font-size:.6875rem; font-weight:300; color:var(--muted); }
.admin-cell .is-pending { background:var(--admin-pending); }
.admin-cell .is-pending:hover { background:rgba(255,255,255,.36); }
.admin-cell .is-discovery { background:var(--admin-discovery); }
.admin-cell button.is-discovery:hover { background:rgba(234,222,246,.9); }
.admin-external { display:block; height:100%; min-height:51px; border-radius:7px; background:var(--admin-external); padding:10px; font:300 .75rem/1.4 var(--sans); color:var(--muted); }
.admin-legend { display:flex; align-items:center; flex-wrap:wrap; gap:22px; margin-top:22px; font-size:.75rem; color:var(--muted); }
.admin-legend span::before { content:""; display:inline-block; width:10px; height:10px; border:1px solid rgba(255,255,255,.25); border-radius:50%; margin-right:8px; background:var(--admin-paid); }
.admin-legend span:nth-child(2)::before { background:var(--admin-discovery); }.admin-legend span:nth-child(3)::before { background:var(--admin-pending); }.admin-legend span:nth-child(4)::before { background:var(--admin-external); }
.admin-tools { display:flex; align-items:center; gap:20px; }.admin-tools .admin-search { width:260px; }.admin-filter { width:145px; font-size:.875rem; }
.admin-list { display:grid; gap:12px; }
.admin-lesson-row { display:grid; grid-template-columns:66px minmax(180px,1fr) auto; align-items:center; gap:24px; padding:22px 26px; }
.admin-date strong { display:block; font:300 1.75rem/1.1 var(--sans); }.admin-date span { display:block; font:400 .6875rem/1.5 var(--sans); text-transform:uppercase; margin-top:6px; }
.admin-lesson-row h4 { font:500 1rem/1.5 var(--sans); }.admin-lesson-row p { font:300 .875rem/1.6 var(--sans); color:var(--muted); margin-top:5px; }
.admin-badge { display:inline-block; font:300 .6875rem/1.5 var(--sans); border:1px solid var(--line); border-radius:20px; padding:3px 9px; margin-left:8px; vertical-align:middle; }
.admin-join { background:rgba(255,255,255,.8); border:1px solid rgba(255,255,255,.8); border-radius:7px; padding:10px 17px; font-size:.8125rem; }.admin-join:hover { background:#fff; }.admin-join[aria-disabled="true"] { opacity:.4; cursor:default; }
.admin-outcomes { display:flex; flex-wrap:wrap; gap:7px; max-width:420px; justify-content:flex-end; }.admin-outcomes button { padding:8px 11px; border:1px solid var(--line); border-radius:6px; font-size:.75rem; }.admin-outcomes button[aria-pressed="true"] { background:var(--ink); color:#fff6ed; }.admin-outcomes button:disabled { opacity:.35; cursor:default; }
.admin-student-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.admin-student-card { padding:28px; }.admin-student-top { display:flex; justify-content:space-between; gap:20px; }.admin-student-card h4 { font:400 1.9rem/1.2 var(--serif); letter-spacing:-.025em; }.admin-student-card .admin-email { font:300 .875rem/1.5 var(--sans); margin:9px 0 18px; overflow-wrap:anywhere; }
.admin-presence { font-size:.6875rem; color:var(--muted); }.admin-presence.is-online::before { content:""; display:inline-block; width:6px; height:6px; border-radius:50%; background:#527b65; margin-right:6px; }
.admin-student-details { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:23px 0; }.admin-student-details dt { font-size:.75rem; color:var(--muted); margin-bottom:7px; }.admin-student-details dd { font:300 .9375rem/1.6 var(--sans); }
.admin-student-card .admin-actions { gap:17px; border-top:1px solid var(--line); padding-top:17px; }.admin-student-card .admin-text-button { font-size:.8125rem; }
.admin-empty { text-align:center; padding:70px 25px; font:300 1rem/1.7 var(--sans); color:var(--muted); }
.admin-dialog { width:min(720px,85vw); max-height:85svh; padding:38px; border:1px solid rgba(255,255,255,.65); border-radius:18px; background:#f8d5c2; color:var(--ink); box-shadow:0 28px 100px rgba(41,41,41,.15); }.admin-dialog::backdrop { background:rgba(41,41,41,.24); backdrop-filter:blur(8px); }
.admin-dialog h2 { font:400 2.65rem/1.12 var(--serif); letter-spacing:-.04em; margin-bottom:14px; }.admin-dialog>p { font:300 .9375rem/1.6 var(--sans); margin-bottom:24px; }.admin-dialog-actions { display:flex; justify-content:flex-end; align-items:center; gap:24px; margin-top:8px; }.admin-dialog .booking-primary { min-height:46px; padding:12px 18px; }.admin-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }.admin-wide { grid-column:1/-1; }.admin-subscription-fields { display:grid; gap:20px; padding:20px; border:1px solid var(--line); border-radius:10px; }.admin-slot-pair { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.admin-credit-counter { display:flex; align-items:center; gap:24px; }.admin-credit-counter button { width:40px; height:40px; border:1px solid var(--line); border-radius:50%; font-size:1.3rem; }.admin-credit-counter output { min-width:35px; text-align:center; font:300 1.6rem/1 var(--sans); }.admin-danger { color:#913b50; }
.admin-reschedule-banner { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:22px; margin-bottom:24px; }.admin-cell button.is-available { background:rgba(255,255,255,.18); }.admin-cell button.is-selected { background:var(--ink); color:#fff; }
@keyframes admin-enter { from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)} }
@media(min-height:1000px){.admin-shell{height:auto}.admin-shell[data-admin-screen="login"],.admin-shell[data-admin-screen="checking"]{height:calc(100svh - var(--header-height))}}
@media(max-height:760px){.admin-shell[data-admin-screen="login"],.admin-shell[data-admin-screen="checking"]{padding-top:calc(var(--header-height) + 20px);grid-template-rows:95px minmax(0,1fr)}.admin-shell[data-admin-screen="login"] .workspace-heading p{margin-top:8px}.admin-login h2{margin-bottom:14px;font-size:2.3rem}.admin-login .admin-form{gap:12px}.admin-login input{padding:5px 0 8px}.admin-login .booking-primary{min-height:44px;padding-block:11px}}
@media(max-width:1200px){.admin-student-grid{grid-template-columns:1fr}.admin-lesson-row{grid-template-columns:55px 1fr}.admin-lesson-row>.admin-actions,.admin-outcomes{grid-column:2;justify-content:flex-start}.admin-week-grid{gap:4px}.admin-cell button{padding:8px 5px;font-size:.75rem}}
@media(prefers-reduced-motion:reduce){.admin-panel{animation:none}.admin-shell *{transition:none!important}}

.admin-shell[data-admin-screen="login"] .admin-workspace,.admin-shell[data-admin-screen="checking"] .admin-workspace { display:flex; flex-direction:column; }
.admin-shell[data-admin-screen="login"] .admin-view,.admin-shell[data-admin-screen="checking"] .admin-view { flex:1; height:auto; }
.admin-cell button:disabled { opacity:.25; cursor:default; }
.admin-actions [data-list][aria-pressed="true"] { text-decoration:underline; text-underline-offset:7px; }

.admin-teaching { margin:0 0 38px; padding:0 0 28px; border-bottom:1px solid var(--line); }
.admin-teaching .admin-panel-heading { margin-bottom:24px; }
.admin-teaching-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; }
.admin-teaching-metric { min-width:0; }
.admin-teaching-metric h4 { font:400 .9375rem/1.5 var(--sans); }
.admin-teaching-metric>strong { display:block; font:300 2.7rem/1.2 var(--sans); font-variant-numeric:tabular-nums; margin:9px 0; }
.admin-teaching-metric>p { font:300 .8125rem/1.6 var(--sans); color:var(--muted); margin-bottom:22px; }
.admin-teaching-metric>p span { white-space:nowrap; }
.admin-teaching-note { font:300 .8125rem/1.6 var(--sans); color:var(--muted); }
.admin-teaching .admin-form { gap:12px; }
.admin-teaching-actions { display:flex; align-items:center; gap:22px; margin-top:8px; }
.admin-teaching-actions .booking-primary { width:auto; min-width:140px; margin:0; padding-inline:24px; }
.admin-teaching-actions p { font:300 .875rem/1.5 var(--sans); min-height:22px; }

.admin-payment-reviews { padding:24px; margin:24px 0; }
.admin-payment-review { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 0; font:300 .875rem/1.6 var(--sans); border-top:1px solid var(--line); }
.admin-payment-review strong { font-weight:400; }
.admin-payment-review .admin-actions { flex-shrink:0; }
@media(max-width:700px) { .admin-payment-review { align-items:flex-start; flex-direction:column; } }
