@font-face{font-family:GeistMono;src:url(../media/GeistMono_Variable.p.0b02cdm7g7y6h.woff2)format("woff2");font-display:swap;font-weight:100 900}.geistmono_157ca88a-module__iaM1Ya__className{font-family:GeistMono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}.geistmono_157ca88a-module__iaM1Ya__variable{--font-geist-mono:"GeistMono", ui-monospace, SFMono-Regular, Roboto Mono, Menlo, Monaco, Liberation Mono, DejaVu Sans Mono, Courier New, monospace}
@font-face{font-family:GeistSans;src:url(../media/Geist_Variable-s.p.2-i4fw5gbtlb7.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:GeistSans Fallback;src:local(Arial);ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.0%;size-adjust:106.28%}.geistsans_d5a4f12f-module__Ur3q_a__className{font-family:GeistSans,GeistSans Fallback}.geistsans_d5a4f12f-module__Ur3q_a__variable{--font-geist-sans:"GeistSans", "GeistSans Fallback"}
*{box-sizing:border-box}html{background:#0d0d0d}body{color:#f0f0f0;font-family:var(--font-geist-sans),system-ui,sans-serif;font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0d0d0d;margin:0;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select{font-family:inherit}button{cursor:pointer;-webkit-user-select:none;user-select:none}::selection{color:#f0f0f0;background:#19335a}
.attendance-stage{color:#ebebeb;color:lab(93.04% .0000298023 -.0000119209);background:#0a0a0a;background:lab(2.75381% 0 0);min-height:100dvh;overflow-x:clip}.attendance-stage *,.attendance-stage :before,.attendance-stage :after{box-sizing:border-box}.attendance-app{--bg:#0a0a0a;--bg-raise:#0f0f0f;--bg-code:#0d0d0d;--line:#222;--line-strong:#333;--fg:#ebebeb;--fg-mid:#a4a4a4;--fg-dim:#7a7a7a;--accent:#4c99f8;--accent-soft:#152a43;--positive:#67c280;--positive-soft:#0d2514;--warning:#e5b15b;--focus-ring:#d1d1d1;--disabled-text:#5d5d5d;--disabled-bg:#141414;--z-sticky:20;--z-dropdown:100;--z-skip:200;--mono:var(--font-geist-mono), ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--sans:var(--font-geist-sans), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--type-caption:12px;--type-label:13px;--type-ui:14px;--type-body:15px;--type-title:clamp(28px, 3vw, 34px);--ease-out:cubic-bezier(.23, 1, .32, 1);background:var(--bg);min-height:100dvh;color:var(--fg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--sans);font-size:var(--type-ui);font-synthesis:none;font-variant-numeric:tabular-nums;letter-spacing:-.006em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}@supports (color:lab(0% 0 0)){.attendance-app{--bg:lab(2.75381% 0 0);--bg-raise:lab(4.4379% 0 0);--bg-code:lab(3.6999% 0 0);--line:lab(13% 0 0);--line-strong:lab(21.12% 0 0);--fg:lab(93.04% .0000298023 -.0000119209);--fg-mid:lab(67.52% -.0000298023 0);--fg-dim:lab(51.28% -.0000298023 0);--accent:lab(61.9106% -.91216 -55.336);--accent-soft:lab(16.1886% -1.08622 -19.1302);--positive:lab(71.5106% -39.4771 24.605);--positive-soft:lab(12.4163% -13.6875 8.52715);--warning:lab(75.6725% 12.8776 50.7748);--focus-ring:lab(83.76% -.0000298023 0);--disabled-text:lab(39.68% 0 0);--disabled-bg:lab(6.19571% 0 0)}}.attendance-app h1,.attendance-app h2,.attendance-app p,.attendance-app dl,.attendance-app dd,.attendance-app ol{margin:0}.attendance-app h1,.attendance-app h2{text-wrap:balance}.attendance-app p{text-wrap:pretty}.attendance-app button,.attendance-app input,.attendance-app select{font:inherit}.attendance-app button,.attendance-app a,.attendance-app input,.attendance-app select,.attendance-app summary{touch-action:manipulation}.attendance-app button{cursor:pointer;-webkit-user-select:none;user-select:none;border:0;min-width:44px;min-height:44px}.attendance-app button:active{transform:scale(.96)}.attendance-app button:disabled{cursor:not-allowed;background:var(--disabled-bg);color:var(--disabled-text)}.attendance-app :is(button,input,select,a,summary):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:3px}.attendance-app input,.attendance-app select{min-height:44px;font-size:16px}.attendance-app input::placeholder{color:var(--fg-dim);opacity:1}.attendance-app time{font-variant-numeric:tabular-nums}.attendance-app ::selection{background:color-mix(in oklch, var(--fg) 18%, transparent);color:var(--fg)}.attendance-skip{z-index:var(--z-skip);background:var(--fg);min-height:44px;color:var(--bg);border-radius:6px;align-items:center;padding:8px 12px;font-weight:600;display:inline-flex;position:fixed;inset-block-start:12px;inset-inline-start:12px;transform:translateY(calc(-100% - 24px))}.attendance-skip:focus{transform:translateY(0)}.lab-wrap{width:min(100%,1120px);margin-inline:auto;padding-inline:24px}.lab-app-header{z-index:var(--z-sticky);isolation:isolate;border-bottom:1px solid var(--line);background:color-mix(in oklch, var(--bg) 96%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0}.lab-header-inner{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:20px;min-height:56px;display:grid}.lab-wordmark{min-height:44px;color:var(--fg);letter-spacing:-.01em;background:0 0;align-items:center;gap:10px;padding:0;font-size:14px;font-weight:600;display:inline-flex}.chap-mark{--chap-highlight:#f8f8f8;pointer-events:none;-webkit-user-select:none;user-select:none;background:#f8f8f8;background:lab(97.68% -.0000298023 .0000119209);border-radius:9px;flex:none;width:34px;height:34px;padding:3px;display:block;box-shadow:inset 0 0 0 1px #bebebe3d;box-shadow:inset 0 0 0 1px lab(76.8% -.0000298023 0/.24)}@supports (color:lab(0% 0 0)){.chap-mark{--chap-highlight:lab(97.68% -.0000298023 .0000119209)}}.lab-page-nav{justify-content:center;align-items:center;gap:2px;min-width:0;display:flex}.lab-page-nav a{min-height:44px;color:var(--fg-dim);white-space:nowrap;transition:background .12s var(--ease-out), color .12s var(--ease-out);background:0 0;border-radius:6px;align-items:center;padding-inline:11px;font-size:12px;display:inline-flex}.lab-page-nav a[aria-current=page]{background:var(--bg-raise);color:var(--fg)}.account-menu{position:relative}.account-menu summary{min-height:44px;color:var(--fg-mid);cursor:pointer;white-space:nowrap;transition:background .12s var(--ease-out), color .12s var(--ease-out), transform .12s var(--ease-out);border-radius:6px;align-items:center;gap:8px;padding:4px 7px;list-style:none;display:flex}.account-menu summary::-webkit-details-marker{display:none}.account-menu summary>i{background:var(--accent);border-radius:50%;flex:none;width:7px;height:7px}.account-menu summary>span,.account-menu>div>span{min-width:0;line-height:1.2;display:grid}.account-menu strong{color:var(--fg);font-size:11px;font-weight:550}.account-menu small{color:var(--fg-dim);font-family:var(--mono);font-size:9px}.account-menu[open] summary{background:var(--bg-raise)}.account-menu>div{z-index:var(--z-dropdown);border:1px solid var(--line-strong);background:var(--bg-raise);border-radius:7px;width:260px;padding:14px;position:absolute;inset-block-start:calc(100% + 8px);inset-inline-end:0;box-shadow:0 18px 42px #00000061;box-shadow:0 18px 42px lab(0% 0 0/.38)}.account-menu>div>span{padding:2px 4px 12px}.account-menu>div strong{font-size:13px}.account-menu>div small{text-overflow:ellipsis;margin-top:3px;overflow:hidden}.account-menu>div button{background:var(--bg);width:100%;color:var(--fg-mid);text-align:start;border-radius:5px;margin-top:4px;font-size:12px}.live-notice>i{background:var(--accent);border-radius:50%;flex:none;width:7px;height:7px}.lab-workspace{min-height:calc(100dvh - 121px);padding-bottom:96px}#attendance-content{scroll-margin-top:72px}.lab-context{min-height:52px;color:var(--fg-dim);align-items:center;gap:8px;font-size:12px;display:flex}.lab-context i{color:var(--line-strong);font-style:normal}.lab-context strong{color:var(--fg-mid);font-weight:500}.system-page{width:100%}.system-page-header{justify-content:space-between;align-items:flex-end;gap:40px;min-height:116px;padding:12px 0 28px;display:flex}.system-page-header h1{font-size:var(--type-title);letter-spacing:-.04em;font-weight:620;line-height:1.08}.system-page-header p{max-width:62ch;color:var(--fg-mid);font-size:var(--type-ui);margin-top:7px;line-height:1.5}.system-page-actions{align-items:center;gap:8px;display:flex}.primary-action,.secondary-action,.text-action,.row-action{white-space:nowrap;transition:background .12s var(--ease-out), border-color .12s var(--ease-out), color .12s var(--ease-out), transform .12s var(--ease-out);border-radius:6px;padding-inline:14px}.primary-action{background:var(--fg);color:var(--bg);font-weight:500}.secondary-action{border:1px solid var(--line);min-height:44px;color:var(--fg-mid);background:0 0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.text-action{color:var(--fg-mid);background:0 0}.row-action{border:1px solid var(--line);min-height:44px;color:var(--fg-mid);background:0 0;justify-self:start;font-size:12px}.row-control-cell{justify-self:start}.row-control-cell .row-action{width:100%}.muted-action{color:var(--fg-dim);border-color:#0000}.metric-band{border:1px solid var(--line);background:var(--line);grid-template-columns:1.15fr repeat(3,1fr);gap:1px;display:grid}.metric-band>div{background:var(--bg);flex-direction:column;justify-content:center;gap:6px;min-width:0;min-height:142px;padding:24px;display:flex}.metric-band .metric-primary{background:var(--bg-raise)}.metric-band dt{color:var(--fg-dim);font-size:12px}.metric-band dd{color:var(--fg);letter-spacing:-.04em;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(32px,4vw,44px);font-weight:300;line-height:1;overflow:hidden}.metric-band span{color:var(--fg-dim);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.overview-layout{grid-template-columns:minmax(0,1.55fr) minmax(280px,.72fr);gap:64px;padding-top:64px;display:grid}.overview-activity{border-inline-start:1px solid var(--line);padding-inline-start:24px}.section-heading{justify-content:space-between;align-items:flex-start;gap:20px;min-height:62px;display:flex}.section-heading h2{color:var(--fg);letter-spacing:-.01em;font-size:14px;font-weight:500}.section-heading p{color:var(--fg-dim);margin-top:3px;font-size:12px}.section-heading .text-action{min-height:44px}.overview-member{border-top:1px solid var(--line);grid-template-columns:36px minmax(0,1fr) 76px 68px 62px;align-items:center;gap:12px;min-height:64px;display:grid}.overview-member:last-child{border-bottom:1px solid var(--line)}.overview-member>span:nth-child(2){gap:2px;min-width:0;display:grid}.overview-member strong{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.overview-member small,.overview-member time,.overview-member>span:nth-child(4){color:var(--fg-dim);font-size:12px}.initials{border:1px solid var(--line);background:var(--bg-raise);width:32px;height:32px;color:var(--fg-mid);font-family:var(--mono);border-radius:4px;flex:none;place-items:center;font-size:12px;font-style:normal;font-weight:500;display:grid}.presence-state{color:var(--fg-mid);white-space:nowrap;align-items:center;gap:7px;font-size:12px;font-weight:500;display:inline-flex}.presence-state:before{content:"";background:currentColor;border-radius:50%;flex:none;width:7px;height:7px}.presence-state.present{color:var(--positive)}.presence-state.away{color:var(--fg-dim)}.presence-state.inactive{color:var(--warning)}.event-summary{border-top:1px solid var(--line);grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:64px;display:grid}.event-mark{border:1px solid var(--line);width:30px;height:30px;color:var(--fg-dim);border-radius:4px;place-items:center;display:grid}.event-mark.in{border-color:color-mix(in oklch, var(--positive) 38%, var(--line));color:var(--positive)}.event-summary>span:nth-child(2){gap:2px;min-width:0;display:grid}.event-summary strong{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.event-summary small,.event-summary time{color:var(--fg-dim);font-size:12px}.system-health{border-top:1px solid var(--line);min-height:52px;color:var(--fg-dim);align-items:center;gap:8px;font-size:12px;display:flex}.system-health i{background:var(--positive);border-radius:50%;width:7px;height:7px}.system-toolbar{grid-template-columns:minmax(240px,1fr) auto 180px;align-items:end;gap:8px;margin-bottom:16px;display:grid}.member-toolbar{grid-template-columns:minmax(300px,420px) 190px;max-width:620px}.activity-toolbar{grid-template-columns:minmax(280px,1fr) 170px 170px;max-width:820px}.field{min-width:0;color:var(--fg-dim);gap:6px;font-size:12px;display:grid}.field input,.field select{border:1px solid var(--line);background:var(--bg);width:100%;min-width:0;color:var(--fg);transition:border-color .12s var(--ease-out), background .12s var(--ease-out);border-radius:6px;padding-inline:12px}.field input:hover,.field select:hover{border-color:var(--line-strong)}.filter-group{border:1px solid var(--line);height:44px;display:flex}.filter-group button{border-inline-start:1px solid var(--line);color:var(--fg-dim);background:0 0;justify-content:center;align-items:center;gap:7px;padding-inline:12px;display:flex}.filter-group button:first-child{border-inline-start:0}.filter-group button span{color:inherit;font-family:var(--mono);font-size:12px}.filter-group button[aria-pressed=true]{background:var(--bg-raise);color:var(--fg)}.live-notice{min-height:48px;color:var(--fg-dim);font-family:var(--mono);align-items:center;gap:8px;font-size:12px;display:flex}.data-list{border-top:1px solid var(--line);padding-bottom:48px}.data-row{border-bottom:1px solid var(--line);min-height:60px;color:var(--fg-mid);align-items:center;gap:14px;padding-inline:8px;font-size:12px;display:grid}.data-labels{min-height:40px;color:var(--fg-dim);font-family:var(--mono);font-size:12px}.attendance-list .data-row{grid-template-columns:minmax(240px,1.4fr) .7fr .65fr .65fr .55fr .65fr}.member-list .data-row{grid-template-columns:minmax(230px,1.3fr) .65fr .55fr .85fr .68fr .78fr}.activity-list .data-row{grid-template-columns:minmax(190px,1.2fr) .62fr .5fr .5fr .62fr .78fr .9fr}.member-identity{align-items:center;gap:12px;min-width:0;display:flex}.member-identity>span{gap:2px;min-width:0;display:grid}.member-identity strong{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.member-identity small{color:var(--fg-dim)}.member-link{max-width:100%;color:var(--fg);text-align:start;text-overflow:ellipsis;white-space:nowrap;background:0 0;padding:0;font-weight:520;overflow:hidden;min-width:0!important;min-height:44px!important}.event-action{font-weight:500}.event-action.in{color:var(--positive)}.event-action.out{color:var(--fg-dim)}.system-empty{flex-direction:column;justify-content:center;align-items:flex-start;gap:8px;min-height:240px;padding-inline:8px;display:flex}.data-row.empty-row{display:block}.system-empty strong{color:var(--fg);font-weight:500}.system-empty span{max-width:48ch;color:var(--fg-dim)}.system-empty .text-action{padding-inline:0}.first-run-state{flex-direction:column;justify-content:center;align-items:flex-start;min-height:360px;padding-bottom:48px;display:flex}.first-run-state h2{color:var(--fg);letter-spacing:-.025em;font-size:22px;font-weight:520}.first-run-state p{max-width:52ch;color:var(--fg-mid);margin-top:8px;line-height:1.6}.first-run-state .primary-action{margin-top:22px}.compact-empty{border-top:1px solid var(--line);flex-direction:column;justify-content:center;gap:4px;min-height:128px;display:flex}.compact-empty strong{color:var(--fg-mid);font-size:12px;font-weight:500}.compact-empty span{color:var(--fg-dim);font-size:12px}.back-action{color:var(--fg-mid);background:0 0;margin-top:8px;padding:0;font-size:12px;min-height:44px!important}.member-detail-page .system-page-header{min-height:104px;padding-top:2px}.member-summary,.report-summary{border:1px solid var(--line);background:var(--line);grid-template-columns:repeat(4,1fr);gap:1px;margin:0;display:grid}.member-summary>div,.report-summary>div{background:var(--bg);flex-direction:column;justify-content:center;gap:4px;min-height:104px;padding:18px 20px;display:flex}.member-summary dt,.report-summary dt{color:var(--fg-dim);font-size:12px}.member-summary dd,.report-summary dd{color:var(--fg);letter-spacing:-.035em;font-size:26px;font-weight:400;line-height:1.1}.member-summary span{color:var(--fg-dim);font-size:11px}.member-history-heading,.report-heading{align-items:flex-end;min-height:96px;padding-bottom:18px}.member-history-heading>span{color:var(--fg-dim);font-family:var(--mono);font-size:11px}.history-list .data-row{grid-template-columns:minmax(170px,1fr) .65fr .6fr .7fr minmax(180px,1.2fr)}.history-list .data-row>span:first-child{gap:2px;display:grid}.history-list .data-row>span:first-child strong{color:var(--fg);font-weight:500}.history-list .data-row>span:first-child small{color:var(--fg-dim)}.report-status{font-weight:500}.report-status.present{color:var(--positive)}.report-status.excused{color:var(--warning)}.report-status.absent{color:var(--fg-mid)}.report-calendar-layout{border-block:1px solid var(--line);grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);display:grid}.practice-calendar-panel{min-width:0;padding:24px 32px 28px 0}.practice-calendar-panel>header{justify-content:space-between;align-items:flex-start;gap:24px;min-height:50px;display:flex}.practice-calendar-panel>header div{min-width:0}.practice-calendar-panel h2,.report-selected-day h2{color:var(--fg);letter-spacing:-.018em;font-size:17px;font-weight:520}.practice-calendar-panel p,.report-selected-day p{color:var(--fg-dim);margin-top:3px;font-size:12px}.calendar-month-actions{flex:none;align-items:center;gap:8px;display:flex}.calendar-month-actions span{color:var(--fg-dim);font-family:var(--mono);white-space:nowrap;font-size:11px}.calendar-month-actions button{background:var(--bg-raise);min-width:44px;color:var(--fg-mid);border-radius:5px}.practice-calendar{border-collapse:separate;border-spacing:4px;table-layout:fixed;width:100%;margin-top:12px}.practice-calendar caption{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.practice-calendar th{height:28px;color:var(--fg-dim);font-family:var(--mono);text-align:center;font-size:10px;font-weight:400}.practice-calendar td{text-align:center;vertical-align:middle;height:48px;padding:0}.calendar-day-label,.calendar-day-button{border-radius:4px;justify-content:center;align-items:center;width:100%;min-height:44px;display:flex}.calendar-day-label{color:var(--fg-dim)}.calendar-day-button{background:var(--bg-raise);color:var(--fg);justify-content:space-between;padding-inline:10px}.calendar-day-button small{color:var(--accent);font-family:var(--mono);font-size:10px}.calendar-day-button[aria-pressed=true]{background:var(--fg);color:var(--bg)}.calendar-day-button[aria-pressed=true] small{color:inherit}.report-selected-day{border-inline-start:1px solid var(--line);min-width:0;padding:24px 0 28px 32px}.report-selected-day>header{min-height:62px}.report-selected-day .report-summary{background:0 0;border:0;grid-template-columns:repeat(2,1fr);gap:20px 24px;width:100%;margin-top:24px}.report-selected-day .report-summary>div{background:0 0;min-height:64px;padding:0}.report-list .data-row{grid-template-columns:minmax(230px,1.2fr) .7fr .6fr 1fr}.report-note,.privacy-note{max-width:78ch;color:var(--fg-dim);font-size:12px;line-height:1.55;margin-top:20px!important}.account-editor{border:1px solid var(--line);background:var(--bg-raise);grid-template-columns:minmax(170px,.75fr) minmax(220px,1fr) 150px minmax(190px,.85fr) auto;align-items:end;gap:12px;margin-bottom:24px;padding:22px;display:grid}.role-guide{grid-template-columns:repeat(3,1fr);gap:28px;margin-bottom:10px;display:grid}.role-guide p{border-inline-start:1px solid var(--line-strong);gap:4px;min-width:0;padding-inline-start:12px;display:grid}.role-guide strong{color:var(--fg-mid);font-size:12px;font-weight:500}.role-guide span{color:var(--fg-dim);font-size:11px;line-height:1.45}.account-list .data-row{grid-template-columns:minmax(220px,1.1fr) 150px minmax(180px,.85fr) .68fr .58fr .72fr}.row-select-cell select{border:1px solid var(--line);background:var(--bg);width:100%;min-height:44px;color:var(--fg-mid);border-radius:5px;padding-inline:10px;font-size:12px}.row-select-cell select:disabled{cursor:not-allowed;background:var(--disabled-bg);color:var(--disabled-text)}.activity-list code{color:var(--fg-mid);font-family:var(--mono);font-size:11px}.inline-editor{grid-template-columns:minmax(220px,1fr) minmax(180px,.8fr) minmax(160px,.65fr) auto;align-items:end;gap:16px;margin-bottom:24px;padding:8px 0 30px;display:grid}.inline-editor>div{align-self:center}.inline-editor>.primary-action{min-width:132px}.inline-editor h2{font-size:16px;font-weight:500}.inline-editor p{max-width:42ch;color:var(--fg-dim);margin-top:4px;font-size:12px}.door-layout{min-height:590px}.door-display{background:var(--bg);max-width:820px;padding:18px 0 48px}.door-display>header{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.door-display h2{letter-spacing:-.04em;font-size:clamp(24px,3vw,32px);font-weight:600}.door-display header p{max-width:42ch;color:var(--fg-dim);margin-top:6px}.door-code-wrap{align-items:flex-end;gap:28px;padding:52px 0 44px;display:flex}.attendance-qr{color:#060606;color:lab(1.5609% 0 0);background:#fff;background:lab(100% 0 0);width:min(360px,68vw);height:auto;padding:14px}.qr-loading{aspect-ratio:1;border:1px solid var(--line);width:min(360px,68vw);color:var(--fg-dim);font-family:var(--mono);place-items:center;font-size:12px;display:grid}.door-code-wrap>div{gap:4px;display:grid}.door-code-wrap>div span{color:var(--fg-dim);font-size:12px}.door-code-wrap>div strong{font-family:var(--mono);font-size:20px;font-weight:500}.door-code-wrap>div small{color:var(--fg-dim);font-family:var(--mono);font-size:11px}.door-display ol{grid-template-columns:repeat(3,1fr);gap:12px;padding:0;list-style:none;display:grid}.door-display li{color:var(--fg-dim);align-items:center;gap:9px;font-size:12px;display:flex}.door-display li span{border:1px solid var(--line);width:28px;height:28px;color:var(--fg-mid);font-family:var(--mono);border-radius:4px;flex:none;place-items:center;display:grid}.settings-layout{grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:64px;padding-bottom:40px;display:grid}.settings-section>header,.deployment-section>header{min-height:78px}.settings-section h2,.deployment-section h2{letter-spacing:-.01em;font-size:16px;font-weight:500}.settings-section header p,.deployment-section header p{max-width:55ch;color:var(--fg-dim);margin-top:5px;font-size:12px}.settings-fields{grid-template-columns:1fr 1fr;gap:16px 12px;display:grid}.settings-fields .field:last-child{grid-column:1/-1}.settings-section>footer{min-height:72px;color:var(--fg-dim);justify-content:space-between;align-items:center;gap:20px;font-size:12px;display:flex}.deployment-section{border-inline-start:1px solid var(--line);padding-inline-start:24px}.deployment-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:22px;min-height:76px;display:flex}.deployment-row:last-child{border-bottom:1px solid var(--line)}.deployment-row>span:first-child{gap:4px;display:grid}.deployment-row strong{color:var(--fg-mid);font-weight:500}.deployment-row small{max-width:40ch;color:var(--fg-dim);line-height:1.45}.deployment-state{color:var(--warning);font-family:var(--mono);white-space:nowrap;font-size:12px}.deployment-state.ready{color:var(--positive)}.lab-footer{padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line)}.lab-footer .lab-wrap{min-height:64px;color:var(--fg-dim);font-family:var(--mono);justify-content:space-between;align-items:center;gap:16px;font-size:12px;display:flex}.student-app{place-items:center;padding:20px;display:grid}.student-site{border:1px solid var(--line);background:var(--bg);flex-direction:column;width:min(100%,430px);min-height:min(760px,100dvh - 40px);display:flex}.student-header{border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:62px;padding-inline:22px;display:flex}.student-header strong{font-size:13px;font-weight:600}.student-header>span:last-child{color:var(--fg-dim);font-family:var(--mono);margin-inline-start:auto;font-size:11px}.student-checkin{flex:1;padding:44px 30px 36px}.student-checkin h1{letter-spacing:-.05em;max-width:10ch;margin-top:0;font-size:clamp(34px,10vw,44px);font-weight:620;line-height:.98}.student-intro,.student-success>p{max-width:34ch;color:var(--fg-mid);font-size:15px;line-height:1.55;margin-top:18px!important}.student-identity{border-top:1px solid var(--line);border-bottom:1px solid var(--line);align-items:center;gap:14px;min-height:86px;margin-top:34px;display:flex}.student-identity .initials{width:38px;height:38px}.student-identity>span{gap:2px;min-width:0;display:grid}.student-identity small{color:var(--fg-dim);font-size:11px}.student-identity strong{color:var(--fg);font-size:15px;font-weight:550}.student-identity>span>span{color:var(--fg-dim);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.student-error{border-inline-start:2px solid var(--warning);color:var(--warning);padding-inline-start:12px;font-size:12px;line-height:1.5;margin-top:16px!important}.student-submit{background:var(--fg);width:100%;color:var(--bg);border-radius:6px;justify-content:center;align-items:center;gap:10px;margin-top:22px;font-size:15px;font-weight:600;display:flex;min-height:52px!important}.student-spinner{border:2px solid color-mix(in oklch, var(--bg) 35%, transparent);border-top-color:var(--bg);border-radius:50%;width:17px;height:17px;animation:.7s linear infinite student-spin}.student-privacy{margin-top:28px}.student-privacy strong{color:var(--fg-mid);font-size:12px;font-weight:500}.student-privacy p{color:var(--fg-dim);margin-top:5px;font-size:12px;line-height:1.55}.student-success{padding-top:36px}.success-mark{border:1px solid color-mix(in oklch, var(--positive) 50%, var(--line));width:46px;height:46px;color:var(--positive);border-radius:50%;place-items:center;font-size:20px;display:grid}.student-success h1{max-width:8ch;margin-top:24px}.student-success dl{border-top:1px solid var(--line);margin-top:42px}.student-success dl>div{border-bottom:1px solid var(--line);grid-template-columns:80px 1fr;align-items:center;gap:20px;min-height:58px;display:grid}.student-success dt{color:var(--fg-dim);font-family:var(--mono);font-size:11px}.student-success dd{color:var(--fg-mid)}.student-footer{min-height:calc(58px + env(safe-area-inset-bottom));padding:0 22px env(safe-area-inset-bottom);border-top:1px solid var(--line);color:var(--fg-dim);font-family:var(--mono);justify-content:space-between;align-items:center;gap:12px;font-size:10px;display:flex}.student-blocked{flex-direction:column;justify-content:center;display:flex}.student-blocked .blocked-mark{border:1px solid var(--line-strong);width:46px;height:46px;color:var(--warning);border-radius:50%;place-items:center;font-size:22px;display:grid}.student-blocked h1{max-width:9ch;margin-top:24px}.student-blocked p{max-width:34ch;color:var(--fg-mid);margin-top:18px;font-size:15px;line-height:1.55}.student-blocked small{max-width:36ch;color:var(--fg-dim);margin-top:28px;font-size:12px;line-height:1.55}.session-loading,.access-view{min-height:100dvh}.session-bar{border-bottom:1px solid var(--line);min-height:57px}.session-bar-inner{justify-content:space-between;align-items:center;gap:16px;min-height:56px;display:flex}.session-wordmark{color:var(--fg);align-items:center;gap:10px;font-size:13px;display:inline-flex}.session-wordmark strong{font-weight:600}.session-bar button{color:var(--fg-mid);transition:color .12s var(--ease-out), transform .12s var(--ease-out);background:0 0;padding-inline:8px;font-size:12px}.session-progress{background:var(--line);height:1px;overflow:hidden}.session-progress i{background:var(--fg-mid);width:24%;height:100%;animation:session-progress 1.1s var(--ease-out) infinite;display:block;transform:translate(-110%)}.session-loading-body{gap:14px;padding-top:clamp(64px,12vw,120px);display:grid}.session-loading-body i{background:var(--bg-raise);border-radius:2px;width:min(100%,520px);height:14px;display:block}.session-loading-body i:first-child{width:min(58%,280px);height:28px}.session-loading-body i:last-child{width:min(76%,400px)}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.access-blocked{flex-direction:column;justify-content:center;width:min(100% - 40px,560px);min-height:calc(100dvh - 57px);margin-inline:auto;padding-block:48px;display:flex}.access-blocked h1{letter-spacing:-.04em;font-size:34px}.access-blocked p{color:var(--fg-mid);margin-top:12px}.access-blocked .primary-action{align-self:flex-start;margin-top:24px}.access-actions{gap:8px;margin-top:24px;display:flex}.access-blocked .access-actions .primary-action{margin-top:0}.access-actions>a{justify-content:center;align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.staff-login{flex-direction:column;justify-content:center;width:min(100%,460px);min-height:100dvh;margin-inline:auto;padding:28px;display:flex}.staff-login>header{align-items:center;gap:10px;margin-bottom:52px;display:flex}.staff-login>header strong{font-size:13px;font-weight:600}.staff-login>header>span:last-child{color:var(--fg-dim);font-family:var(--mono);margin-inline-start:auto;font-size:11px}.staff-login section{gap:16px;display:grid}.staff-login h1{letter-spacing:-.045em;font-size:36px;font-weight:620;line-height:1}.staff-login section>p{max-width:38ch;color:var(--fg-mid);margin-bottom:16px;font-size:14px;line-height:1.55}.staff-login .primary-action{width:100%;margin-top:4px}.staff-login small{color:var(--fg-dim);font-size:11px;line-height:1.55}.staff-login .login-error{border-inline-start:2px solid var(--warning);color:var(--warning);padding-inline-start:12px;font-size:12px}@keyframes student-spin{to{transform:rotate(360deg)}}@keyframes session-progress{to{transform:translate(520%)}}@media (hover:hover) and (pointer:fine){.lab-page-nav a:hover{color:var(--fg)}.primary-action:not(:disabled):hover,.student-submit:not(:disabled):hover{background:#fff;background:lab(100% 0 0)}.secondary-action:not(:disabled):hover,.row-action:not(:disabled):hover{border-color:var(--line-strong);background:var(--bg-raise);color:var(--fg)}.session-bar button:hover,.text-action:not(:disabled):hover{color:var(--fg)}.field input:hover,.field select:hover{border-color:var(--line-strong)}}@media (prefers-reduced-motion:reduce){.attendance-app *,.attendance-app :before,.attendance-app :after{scroll-behavior:auto!important;transition-duration:.01ms!important}.attendance-app button:active{transform:none}.student-spinner{animation:none}.session-progress i{width:100%;animation:none;transform:none}}@media (max-width:920px){.lab-header-inner{grid-template-columns:auto 1fr auto;gap:14px}.lab-page-nav{justify-content:flex-start;overflow-x:auto}.lab-page-nav a{flex:none}.overview-layout{grid-template-columns:1fr;gap:48px}.overview-activity{border-block-start:1px solid var(--line);border-inline-start:0;padding-block-start:32px;padding-inline-start:0}.inline-editor{grid-template-columns:1fr 1fr}.inline-editor>div{grid-column:1/-1}.settings-layout{grid-template-columns:1fr;gap:48px}.deployment-section{border-block-start:1px solid var(--line);border-inline-start:0;padding-block-start:32px;padding-inline-start:0}.attendance-list .data-row{grid-template-columns:minmax(220px,1.3fr) .65fr .55fr .65fr}.attendance-list .data-row>:nth-child(3),.attendance-list .data-row>:nth-child(4){display:none}.member-list .data-row{grid-template-columns:minmax(210px,1.2fr) .55fr .68fr .78fr}.member-list .data-row>:nth-child(2),.member-list .data-row>:nth-child(4){display:none}.activity-list .data-row{grid-template-columns:minmax(210px,1.2fr) .65fr .55fr .7fr}.activity-list .data-row>:nth-child(3),.activity-list .data-row>:nth-child(6),.activity-list .data-row>:nth-child(7){display:none}.history-list .data-row{grid-template-columns:minmax(180px,1fr) .65fr .7fr .9fr}.history-list .data-row>:nth-child(3){display:none}.account-editor{grid-template-columns:1fr 1fr}.account-list .data-row{grid-template-columns:minmax(220px,1.1fr) 150px minmax(180px,.85fr) .6fr .72fr}.account-list .data-row>:nth-child(4){display:none}}@media (max-width:760px){.lab-wrap{padding-inline:16px}.lab-header-inner{grid-template-columns:1fr auto;gap:0 12px;padding-block-start:6px}.lab-wordmark{grid-area:1/1}.account-menu{grid-area:1/2}.lab-page-nav{scrollbar-width:none;grid-area:2/1/auto/-1;justify-content:flex-start;margin-inline:-8px;padding-bottom:6px}.lab-page-nav::-webkit-scrollbar{display:none}.lab-context{min-height:44px}.system-page-header{min-height:108px}.metric-band{grid-template-columns:1fr 1fr}.metric-band>div{min-height:120px;padding:18px}.system-toolbar,.member-toolbar,.activity-toolbar{grid-template-columns:1fr}.filter-group{width:100%}.filter-group button{flex:1}.team-field{width:100%}.member-summary,.report-summary{grid-template-columns:1fr 1fr}.report-calendar-layout{grid-template-columns:1fr}.practice-calendar-panel{padding-inline-end:0}.report-selected-day{border-block-start:1px solid var(--line);border-inline-start:0;padding-inline-start:0}.role-guide{grid-template-columns:1fr;gap:10px}.account-editor{grid-template-columns:1fr}}@media (max-width:620px){.lab-workspace{padding-bottom:72px}.system-page-header{flex-direction:column;align-items:flex-start;gap:18px;min-height:auto;padding:18px 0 26px}.system-page-header h1{font-size:30px}.system-page-actions{width:100%}.system-page-actions button{flex:1}.metric-band dd{font-size:32px}.metric-band span{white-space:normal}.overview-layout{padding-top:48px}.overview-member{grid-template-columns:36px minmax(0,1fr) auto auto;gap:8px}.overview-member>time{display:none}.section-heading{min-height:70px}.data-labels{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;min-height:0;margin:-1px;padding:0;position:absolute;overflow:hidden}.attendance-list .data-row{grid-template-columns:minmax(0,1fr) auto auto;gap:8px;min-height:68px;padding-inline:4px}.attendance-list .data-row>:nth-child(2),.attendance-list .data-row>:nth-child(3),.attendance-list .data-row>:nth-child(4){display:none}.attendance-list .row-action{padding-inline:8px}.member-list .data-row{grid-template-columns:minmax(0,1fr) auto;gap:7px;min-height:116px;padding:12px 4px}.member-list .data-row>:nth-child(2),.member-list .data-row>:nth-child(4){display:none}.member-list .data-row>:first-child{grid-area:1/1}.member-list .data-row>:nth-child(3){grid-area:1/2}.member-list .data-row>:nth-child(5){grid-area:2/1;justify-self:stretch}.member-list .data-row>:nth-child(6){grid-area:2/2;justify-self:stretch}.activity-list .data-row{grid-template-columns:minmax(0,1fr) auto auto;gap:8px;padding-inline:4px}.activity-list .data-row>:nth-child(3),.activity-list .data-row>:nth-child(5),.activity-list .data-row>:nth-child(6),.activity-list .data-row>:nth-child(7){display:none}.history-list .data-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;min-height:68px;padding-inline:4px}.history-list .data-row>:nth-child(3),.history-list .data-row>:nth-child(4),.history-list .data-row>:nth-child(5){display:none}.report-list .data-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding-inline:4px}.report-list .data-row>:nth-child(2),.report-list .data-row>:nth-child(4){display:none}.account-list .data-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;min-height:196px;padding:12px 4px}.account-list .data-row>:first-child{grid-column:1/-1}.account-list .data-row>:nth-child(2){grid-column:1}.account-list .data-row>:nth-child(3){grid-area:3/1/auto/-1}.account-list .data-row>:nth-child(4){display:none}.account-list .data-row>:nth-child(5){grid-area:2/2}.account-list .data-row>:nth-child(6){grid-area:4/1/auto/-1}.practice-calendar-panel{padding-block:20px 24px}.practice-calendar-panel>header{gap:12px}.calendar-day-button{padding-inline:8px}.member-history-heading{flex-direction:column;justify-content:center;align-items:flex-start;gap:8px}.inline-editor{grid-template-columns:1fr;margin-inline:0;padding:8px 0 30px}.inline-editor>div{grid-column:auto}.door-display{padding:22px 0 36px}.door-code-wrap{gap:14px;padding:42px 0 36px}.attendance-qr{width:min(270px,72%);padding:10px}.door-display ol,.settings-fields{grid-template-columns:1fr}.settings-fields .field:last-child{grid-column:auto}.settings-section>footer{flex-direction:column;align-items:stretch;padding:16px 0 24px}.deployment-row{flex-direction:column;align-items:flex-start;gap:7px;padding-block:14px}.lab-footer .lab-wrap{flex-direction:column;justify-content:center;align-items:flex-start;gap:3px}.student-app{padding:0;display:block}.student-site{border:0;width:100%;min-height:100dvh}.student-checkin{padding:36px 22px 30px}.student-checkin h1{margin-top:0}}
