:root{--color-text:#152036;--color-text-secondary:#34445f;--color-text-muted:#52617a;--color-text-subtle:#5b6578;--color-text-faint:#6b7a92;--color-text-placeholder:#8190a8;--color-heading:#2b3d5d;--color-surface:#fff;--color-page:#f1f5fb;--color-surface-soft:#f7f9fd;--color-surface-hover:#fafcff;--color-surface-inset:#fbfcfe;--color-border:#d6e0ee;--color-border-control:#c9d5e6;--color-border-subtle:#e3e9f2;--color-divider:#edf1f7;--color-border-header:#dde5f0;--color-accent:#1765de;--color-accent-strong:#174fa7;--color-primary:#2563eb;--color-primary-hover:#1d4fd0;--color-interactive-hover:#1556bf;--color-interactive-surface:#eff5ff;--color-selected:#edf5ff;--color-selected-strong:#dceaff;--color-selected-border:#b9cff2;--color-info-surface:#f7faff;--color-error:#8c2020;--color-error-border:#c14c4c;--color-error-surface:#fff0f0;--color-success:#245a2c;--color-success-border:#72a77d;--color-success-surface:#effaf1;--color-warning-surface:#fff8e6;--color-warning-border:#e2c77d;--color-attendance-success:#236341;--color-attendance-success-surface:#e8f5ed;--color-attendance-warning:#805218;--color-attendance-warning-surface:#fff3df;--color-attendance-error:#a32232;--control-size:44px;--control-size-compact:40px;--control-size-small:36px;--control-size-large:48px;--icon-size:1.25rem;--icon-size-small:1rem;--icon-size-compact:1.15rem;--text-caption:.75rem;--text-label:.78rem;--text-xs:.8rem;--text-sm:.85rem;--text-control:.875rem;--text-body:.9rem;--text-emphasis:.95rem;--text-base:1rem;--text-subheading:1.1rem;--text-heading:clamp(1.4rem, 4vw, 1.75rem);--weight-medium:600;--weight-semibold:650;--weight-bold:700;--weight-label:750;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--radius-small:.4rem;--radius-medium:.5rem;--radius-compact:.55rem;--radius-control:.6rem;--radius-card:.75rem;--radius-panel:.85rem;--radius-large:1rem;--shadow-panel:0 1rem 2.5rem #1a3c6c0f;--shadow-control:0 1px 2px #1a3c6c0f;--shadow-dialog:0 1.25rem 3.5rem #0517333d;--duration-interaction:.14s;--app-bar-height:4.25rem;--schedule-toolbar-height:4.35rem;--schedule-slot-height:3rem;--schedule-time-column-width:3.6rem;--page-width:76rem;--page-width-narrow:46rem}*{box-sizing:border-box}:root{color:var(--color-text);background:var(--color-page);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px}body{background:radial-gradient(circle at 5% -10%, #4884ff29, transparent 29rem), var(--color-page);min-width:320px;margin:0;overflow-x:hidden}button,input{font:inherit}button{min-height:var(--control-size);cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #2376ff61}.access-screen{min-height:100vh;padding:var(--space-6);place-items:center;display:grid}.access-card{width:min(100%,31rem);padding:clamp(var(--space-6), 6vw, var(--space-12));border:1px solid var(--color-border);background:#ffffffe6;border-radius:1.25rem;box-shadow:0 1.5rem 4rem #1b3a681f}.access-card h1{margin:.4rem 0 var(--space-3);letter-spacing:-.045em;font-size:clamp(1.7rem,6vw,2.5rem)}.access-card>p:not(.eyebrow){color:var(--color-text-muted);margin:0;line-height:1.6}.access-card__retry{min-height:var(--control-size);border:1px solid var(--color-accent);border-radius:var(--radius-medium);background:var(--color-accent);color:var(--color-surface);font:inherit;font-weight:var(--weight-bold);margin-block-start:var(--space-4);padding:.65rem 1rem}.access-card__retry:disabled{opacity:.6;cursor:not-allowed}.eyebrow{color:var(--color-accent);font-size:var(--text-label);letter-spacing:.1em;text-transform:uppercase;margin:0;font-weight:800}.app-shell{min-height:100vh}.app-bar{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0d1f3df5;border-bottom:1px solid #ffffff1f;position:sticky;top:0;box-shadow:0 .5rem 1.5rem #10264b1f}.app-bar__inner{width:calc(100% - 2rem);min-height:var(--app-bar-height);align-items:center;gap:var(--space-5);margin:0 auto;display:flex}.workspace-nav{align-self:stretch;gap:.2rem;min-width:0;display:flex;overflow-x:auto}.workspace-nav__item{white-space:nowrap;color:#b5c6e3;min-height:0;font-size:var(--text-body);font-weight:var(--weight-semibold);background:0 0;border:0;border-bottom:3px solid #0000;border-radius:0;flex-shrink:0;padding:0 .7rem}.workspace-nav__item:hover,.workspace-nav__item--active{color:var(--color-surface);border-bottom-color:#65a4ff}.app-bar__refresh,.app-bar__import,.icon-button{width:var(--control-size);height:var(--control-size);min-height:var(--control-size);border-radius:var(--radius-control);transition:background var(--duration-interaction) ease, color var(--duration-interaction) ease, border-color var(--duration-interaction) ease;background:0 0;border:1px solid #0000;flex:none;place-items:center;padding:0;display:grid}.app-bar__refresh,.app-bar__import{color:#d7e3f8}.app-bar__refresh:hover:not(:disabled),.app-bar__import:hover:not(:disabled){color:var(--color-surface);background:#ffffff1a;border-color:#ffffff2e}.app-bar__refresh:disabled,.app-bar__import:disabled{cursor:wait;opacity:.55}.app-bar__refresh[aria-busy=true] .icon{animation:.9s linear infinite app-bar-refresh-spin}@keyframes app-bar-refresh-spin{to{transform:rotate(360deg)}}.teacher-identity{color:#d7e3f8;min-width:0;max-width:35vw;font-size:var(--text-sm);font-weight:var(--weight-semibold);white-space:nowrap;align-items:center;gap:.45rem;margin-left:auto;display:inline-flex}.teacher-identity>span:last-child{text-overflow:ellipsis;overflow:hidden}.teacher-identity__dot{background:#51d7a6;border-radius:50%;width:.48rem;height:.48rem;box-shadow:0 0 0 3px #51d7a624}.schedule-shell{--schedule-grid-sticky-top:calc(var(--app-bar-height) + var(--schedule-toolbar-height));--booking-block-margin:2px;--booking-inline-margin:3px;width:100%;max-width:var(--page-width);padding:var(--space-4) var(--space-4) var(--space-12);margin:0 auto;overflow-x:clip}.schedule-date-bar{top:var(--app-bar-height);z-index:5;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-2) 0 .85rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f1f5fbf5;flex-wrap:nowrap;display:flex;position:sticky}.date-controls,.room-controls{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-control);border-radius:.8rem;padding:.2rem}.date-controls{flex:auto;align-items:center;gap:.15rem;min-width:0;display:flex}.date-controls .date-picker{width:min(100%,20rem);min-width:12rem;max-width:20rem;min-height:var(--control-size);border-radius:var(--radius-control);cursor:pointer;flex:0 20rem;place-items:center;display:grid;position:relative;overflow:hidden}.date-picker__display{color:var(--color-heading);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap}.date-picker input[type=date]{opacity:0;cursor:pointer;width:100%;height:100%;padding:0;position:absolute;inset:0}.date-picker:focus-within{outline:3px solid var(--color-primary);outline-offset:2px}.date-controls button,.date-controls input{min-width:var(--control-size);min-height:var(--control-size);border-radius:var(--radius-control);color:var(--color-heading);background:0 0;border:0}.date-controls button{place-items:center;padding:0;transition:background .15s,color .15s;display:grid}.date-controls button:hover{background:var(--color-interactive-surface);color:var(--color-interactive-hover)}.date-controls button:last-child{border-radius:0 var(--radius-control) var(--radius-control) 0;margin-left:.2rem;box-shadow:-1px 0 #e6ecf4}.date-controls .date-picker__display{min-width:8rem;padding:0 var(--space-2);text-align:center;flex:auto}.date-controls input:not([type=date]){width:9.6rem;padding:0 var(--space-2);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.date-picker:hover{background:#f4f7fc}.room-controls{min-height:var(--control-size-large);flex:none;align-items:stretch;margin:0;display:inline-flex}.room-toggle{min-height:var(--control-size);border-radius:var(--radius-control);color:var(--color-heading);font-size:.82rem;font-weight:var(--weight-semibold);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:0;align-items:center;gap:.4rem;padding:0 .7rem;display:inline-flex}.room-toggle:first-of-type{border-radius:var(--radius-control) 0 0 var(--radius-control)}.room-toggle+.room-toggle{border-radius:0 var(--radius-control) var(--radius-control) 0;border-left:1px solid #e6ecf4}.room-toggle:hover{background:var(--color-interactive-surface);color:var(--color-interactive-hover)}.room-toggle--pressed{color:var(--color-interactive-hover);box-shadow:inset 0 0 0 1px var(--color-selected-border);background:#e6efff}.schedule-loading,.schedule-message{margin:var(--space-4) 0;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface)}.schedule-message strong{display:block}.schedule-message p{margin:var(--space-2) 0 var(--space-4)}.schedule-message button,.booking-form__actions button,.booking-details__header>button,.booking-details__actions button{border:1px solid var(--color-primary);border-radius:var(--radius-small);background:var(--color-primary);color:var(--color-surface);padding:0 .8rem}.schedule-message--inline{margin:0 0 var(--space-3);border-color:var(--color-warning-border);background:var(--color-warning-surface);font-size:var(--text-control)}.schedule-message--inline strong{display:inline}.schedule-grid-scroll{isolation:isolate;position:relative;overflow:visible}.schedule-grid{--schedule-grid-columns:var(--schedule-time-column-width) repeat(var(--schedule-day-columns), minmax(0, 1fr));border-top:1px solid var(--color-border-subtle);border-left:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:.9rem;width:100%;min-width:0;overflow:visible;box-shadow:0 1rem 2.5rem #1a3c6c14}.schedule-grid__header-clip{top:var(--schedule-grid-sticky-top);z-index:4;height:var(--control-size);isolation:isolate;background:var(--color-surface-soft);position:sticky;overflow:clip}.schedule-grid__sticky-header,.schedule-grid__body{grid-template-columns:var(--schedule-grid-columns);width:100%;min-width:0;display:grid}.schedule-grid__sticky-header{min-height:var(--control-size);background:var(--color-surface-soft);transform:translateX(var(--schedule-scroll-offset));will-change:transform}.schedule-grid__body{grid-template-rows:repeat(var(--schedule-slot-count), var(--schedule-slot-height));background:var(--color-surface);position:relative}@media (width>=801px){.schedule-shell--week{max-width:none}}@media (width<=800px){.schedule-grid-scroll{overflow:auto visible}.schedule-grid--week .schedule-grid__sticky-header,.schedule-grid--week .schedule-grid__body{min-width:calc(var(--schedule-time-column-width) + 7 * 8.5rem)}}.schedule-grid__corner,.schedule-grid__header,.schedule-grid__hour,.schedule-grid__cell{border-right:1px solid var(--color-border-subtle);border-bottom:1px solid var(--color-divider);min-width:0}.schedule-grid__corner,.schedule-grid__header{min-height:var(--control-size);border-bottom-color:var(--color-border-header);background:var(--color-surface-soft);color:var(--color-heading);font-size:var(--text-label);font-weight:var(--weight-label);letter-spacing:.05em;text-transform:uppercase;justify-content:center;align-items:center;margin:0;padding:.6rem .3rem;display:flex}.schedule-grid__corner{width:var(--schedule-time-column-width);height:var(--control-size);z-index:2;color:var(--color-text-placeholder);justify-content:flex-end;padding-right:.55rem;position:absolute;inset:0 auto auto 0}.schedule-grid__header{grid-column:var(--schedule-column);grid-row:1}.schedule-grid__hour{grid-row:var(--schedule-row);z-index:1;min-height:var(--schedule-slot-height);padding:.15rem .55rem 0 var(--space-1);background:var(--color-surface-inset);color:var(--color-text-faint);font-size:var(--text-caption);font-weight:var(--weight-medium);font-variant-numeric:tabular-nums;justify-content:flex-end;align-items:flex-start;display:flex;position:sticky;left:0}.schedule-grid__cell{grid-column:var(--schedule-column);grid-row:var(--schedule-row);min-height:var(--schedule-slot-height);background:var(--color-surface);position:relative}.schedule-grid__cell>button,.schedule-grid__cell>.schedule-grid__unknown{width:100%;height:100%;min-height:var(--schedule-slot-height);text-align:center;border:0;border-radius:0;justify-content:center;align-items:center;padding:.4rem;display:flex}.schedule-grid button:focus-visible{outline-offset:-3px}.empty-slot{color:#58749d;touch-action:none;-webkit-user-select:none;user-select:none;transition:background var(--duration-interaction) ease, color var(--duration-interaction) ease;background:0 0;position:relative}.schedule-grid__cell>.empty-slot--handle{border-radius:var(--radius-compact);width:2.75rem;height:2.75rem;min-height:2.75rem;margin:auto;position:static}.empty-slot__price{color:var(--color-text-faint);font-size:.66rem;font-weight:var(--weight-semibold);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;line-height:1;position:absolute;top:.35rem;left:auto;right:.45rem}.empty-slot:hover,.empty-slot:focus-visible{color:#1f63d6;background:#eef4ff}.empty-slot--selected{background:var(--color-selected-strong);color:var(--color-interactive-hover)}.schedule-grid__unknown{color:#6d788b;background:repeating-linear-gradient(135deg,#f5f7fa 0 6px,#eef1f6 6px 12px);font-size:.68rem;line-height:1.1}.booking{--booking-background:#e8f0ff;--booking-border:#87abe6;--booking-text:#173d78;--booking-muted-text:#355d96;grid-column:var(--schedule-column) / span 1;left:0;right:0;top:calc(var(--booking-slot-offset) * var(--schedule-slot-height));height:calc(var(--booking-slot-duration) * var(--schedule-slot-height) - 2 * var(--booking-block-margin));z-index:1;min-width:0;min-height:0;margin:var(--booking-block-margin) var(--booking-inline-margin);border:1px solid var(--booking-border);border-radius:var(--radius-compact);background:var(--booking-background);color:var(--booking-text);font-size:var(--text-label);text-align:left;overflow-wrap:anywhere;cursor:default;flex-direction:column;grid-row:1/-1;justify-content:flex-start;align-items:flex-start;gap:.15rem;padding:.45rem .6rem;line-height:1.2;display:flex;position:absolute;overflow:hidden;box-shadow:0 1px 2px #173d781f}.booking--colour-1{--booking-background:#e6f7f1;--booking-border:#75c7aa;--booking-text:#155d49;--booking-muted-text:#347765}.booking--colour-2{--booking-background:#fff1dc;--booking-border:#e8b96b;--booking-text:#7a4710;--booking-muted-text:#8a591b}.booking--colour-3{--booking-background:#f4edff;--booking-border:#b99ae3;--booking-text:#59358c;--booking-muted-text:#7251a2}.booking--colour-4{--booking-background:#ffecef;--booking-border:#e6a0ad;--booking-text:#823341;--booking-muted-text:#9b5260}.booking--colour-5{--booking-background:#e7f7f9;--booking-border:#78c3ca;--booking-text:#125a62;--booking-muted-text:#36767d}.booking strong{max-width:100%;font-weight:var(--weight-bold);overflow-wrap:anywhere}.booking span{color:var(--booking-muted-text)}.booking--editable{cursor:pointer;transition:background var(--duration-interaction) ease, border-color var(--duration-interaction) ease}.booking--editable:hover,.booking--editable:focus-visible{border-color:var(--booking-text);background:var(--color-surface)}.icon{width:var(--icon-size);height:var(--icon-size);flex:none;display:block}.icon-button{color:#4a5b78}.icon-button:hover:not(:disabled){background:var(--color-interactive-surface);color:var(--color-interactive-hover)}.icon-button:disabled{opacity:.45}.icon-button--primary{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-surface)}.icon-button--primary:hover:not(:disabled){border-color:var(--color-primary-hover);background:var(--color-primary-hover);color:var(--color-surface)}.icon-button--danger:hover:not(:disabled){background:var(--color-error-surface);color:#b42323}.visually-hidden,.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=420px){.schedule-shell{padding-inline:var(--space-1)}.date-controls{width:auto}.date-controls label,.date-controls input{flex:1 1 0}.schedule-grid{grid-template-columns:3rem minmax(0,1fr) minmax(0,1fr)}.booking{padding:.35rem .4rem;font-size:.7rem}}.classes-shell{width:100%;max-width:var(--page-width-narrow);padding:var(--space-6) var(--space-4) var(--space-12);margin:0 auto}.classes-header h1{font-size:var(--text-heading);letter-spacing:-.035em;margin:0}.classes-header p{margin:var(--space-1) 0 var(--space-4);color:var(--color-text-subtle);font-size:var(--text-body)}.classes-panel,.achievement-group{border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);box-shadow:var(--shadow-panel);overflow:hidden}.classes-panel h2,.achievement-group h2{padding:.7rem var(--space-4);border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface-soft);color:var(--color-heading);font-size:var(--text-label);font-weight:var(--weight-label);letter-spacing:.05em;text-transform:uppercase}.classes-panel h2{margin:0}.classes-panel>p{padding:var(--space-4);color:var(--color-text-subtle);margin:0}.class-add{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.class-group-picker{color:var(--color-text-secondary);font-size:var(--text-control);flex-wrap:wrap;flex:100%;align-items:center;gap:.65rem;display:flex}.class-group-picker label{align-items:center;gap:.35rem;display:inline-flex}.class-group-option{align-items:center;gap:var(--space-1);display:inline-flex}.class-group-option .icon-button{width:2rem;min-height:2rem;padding:0}.class-group-picker input[type=checkbox]{width:1rem;min-height:1rem;accent-color:var(--color-primary);border:0;flex:none;padding:0}.class-group-picker>div{gap:.35rem;display:inline-flex}.class-group-picker button{border:1px solid var(--color-border-control);border-radius:var(--radius-medium);background:var(--color-surface);min-height:2.5rem;padding:0 .65rem}.group-membership-manager{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-subtle)}.group-membership-manager h3{margin:0 0 var(--space-2);color:var(--color-text-secondary);font-size:var(--text-body)}.group-membership-manager details{border-top:1px solid var(--color-divider);padding:.45rem 0}.group-membership-manager summary{cursor:pointer;font-weight:var(--weight-semibold)}.group-membership-manager__list{flex-wrap:wrap;gap:.45rem .9rem;padding:.65rem 0;display:flex}.group-membership-manager__list label{color:var(--color-text-muted);font-size:var(--text-control);align-items:center;gap:.35rem;display:inline-flex}.group-membership-manager__list input{accent-color:var(--color-primary)}.group-membership-manager>details>button{border:1px solid var(--color-border-control);border-radius:var(--radius-medium);background:var(--color-surface);min-height:2.5rem;padding:0 .7rem}.skater-onboarding{margin-bottom:var(--space-4)}.skater-onboarding__form{padding:.9rem var(--space-4) var(--space-4)}.skater-onboarding__groups{margin:0}.skater-onboarding__groups .group-membership-manager__list{padding:.35rem 0}.skater-onboarding__groups>p{color:var(--color-text-muted);font-size:var(--text-sm);margin:.2rem 0 0}.schedule-import{width:min(100%,48rem)}.schedule-import h2{margin:.35rem var(--space-12) var(--space-2) 0;font-size:1.4rem}.schedule-import>p{color:var(--color-text-subtle);line-height:1.5}.schedule-import textarea{resize:vertical;border:1px solid var(--color-border-control);width:100%;min-height:14rem;color:var(--color-text);font:var(--text-body)/1.5 ui-monospace, SFMono-Regular, Consolas, monospace;border-radius:.65rem;padding:.8rem}.schedule-import__actions{margin-top:var(--space-4);justify-content:flex-end;gap:.6rem;display:flex}.schedule-import__actions button,.schedule-import__row select,.class-add input,.class-add select,.class-rename-form input,.schedule-coach-picker select,.schedule-import__row input{border:1px solid var(--color-border-control);background:var(--color-surface)}.schedule-import__actions button,.schedule-import__row select{min-height:var(--control-size);border-radius:var(--radius-compact);color:var(--color-text);padding:0 .8rem}.schedule-import__actions .button-primary{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-surface)}.schedule-import__room{font-weight:var(--weight-semibold);align-items:center;gap:.6rem;display:flex}.schedule-import__summary{font-weight:var(--weight-bold)}.schedule-import__rows{gap:var(--space-2);max-height:min(55vh,34rem);display:grid;overflow:auto}.schedule-import__row{border:1px solid #e0e7f1;border-radius:.65rem;grid-template-columns:minmax(11rem,1fr) minmax(12rem,1fr) minmax(8rem,.65fr);align-items:center;gap:.35rem .8rem;padding:.7rem;display:grid}.schedule-import__row>div{gap:var(--space-1);display:grid}.schedule-import__row>div span{color:var(--color-text-subtle)}.schedule-import__row label{gap:var(--space-1);color:var(--color-text-subtle);font-size:var(--text-xs);display:grid}.schedule-import__row select{width:100%}.schedule-import__problem,.schedule-import__duplicate{font-size:var(--text-sm);grid-column:1/-1;margin:0}.schedule-import__problem{color:#a5361c}.schedule-import__duplicate{color:#637086}@media (width<=640px){.schedule-import__row{grid-template-columns:1fr}.schedule-import__problem,.schedule-import__duplicate{grid-column:auto}}.class-add__name{flex:18rem;align-items:center}.class-add input,.class-add select,.class-rename-form input{min-width:0;min-height:var(--control-size);border-radius:var(--radius-control);color:inherit;padding:0 .7rem}.class-add input{flex:10rem}.class-add select{flex:12rem}.class-add__name input{min-width:0}.class-add input::placeholder{color:var(--color-text-placeholder)}.class-list{margin:0;padding:0;list-style:none}.class-row{justify-content:space-between;align-items:center;gap:var(--space-3);min-width:0;min-height:3.5rem;padding:var(--space-1) var(--space-2) var(--space-1) var(--space-4);border-bottom:1px solid var(--color-divider);display:flex}.class-row:last-child{border-bottom:0}.class-row:hover{background:var(--color-surface-hover)}.class-row--archived,.class-row--archived:hover{color:#6b7485;background:#f7f8fa}.class-row__content{flex-wrap:wrap;align-items:baseline;gap:.15rem .6rem;min-width:0;display:flex}.class-row__content strong{font-weight:var(--weight-medium);overflow-wrap:anywhere}.class-status,.class-owner{color:#6b7485;font-size:var(--text-label)}.class-status{padding:.1rem var(--space-2);font-weight:var(--weight-semibold);background:#e9edf3;border-radius:999px}.class-row__actions{flex:none;gap:.1rem;display:flex}.class-rename-form{flex:1;align-items:center;gap:.35rem;min-width:0;display:flex}.class-rename-form input{flex:auto}.class-edit-groups{gap:var(--space-2) .85rem;border:1px solid var(--color-border);border-radius:var(--radius-compact);flex-wrap:wrap;flex:1 0 100%;min-width:100%;margin:.35rem 0;padding:.55rem;display:flex}.class-edit-groups legend{color:var(--color-text-muted);padding:0 .3rem;font-size:.82rem}.class-edit-groups label{color:var(--color-text-secondary);font-size:var(--text-sm);align-items:center;gap:.35rem;display:inline-flex}.class-edit-groups input{accent-color:var(--color-primary)}.group-editor{width:min(100%,42rem)}.group-editor__create{padding:.45rem 0 var(--space-3);border-bottom:1px solid #e7ecf4;grid-template-columns:1fr auto;align-items:center;gap:.55rem;display:grid}.group-editor__item{padding:var(--space-3) 0;border-bottom:1px solid #e7ecf4;flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.group-editor__create>label{color:var(--color-text-muted);font-weight:var(--weight-semibold);grid-column:1/-1}.group-editor__create>input,.group-editor__item>input{min-width:0;min-height:var(--control-size);padding:var(--space-2) .7rem;border:1px solid var(--color-border-control);border-radius:var(--radius-compact)}.group-editor__item>strong{color:var(--color-text-secondary);flex:1}.group-editor__create .group-membership-manager__list,.group-editor__item .group-membership-manager__list{grid-column:1/-1;max-height:9rem;overflow:auto}.group-editor__create .group-membership-manager__list{grid-column:1/-1}.group-editor__item>input,.group-editor__item .group-membership-manager__list{flex:1 0 100%}.classes-message{margin:0 0 var(--space-3);border-radius:var(--radius-control);padding:.7rem}.classes-message--error,.booking-form__message--error,.booking-details__message--error{border:1px solid var(--color-error-border);background:var(--color-error-surface);color:var(--color-error)}.classes-message--success,.booking-form__message--success,.booking-details__message--success{border:1px solid var(--color-success-border);background:var(--color-success-surface);color:var(--color-success)}.classes-confirm{z-index:40;width:min(90vw,28rem);padding:var(--space-5);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-dialog);border-radius:.9rem;position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.classes-confirm h2{font-size:var(--text-subheading);margin:0}.classes-confirm p{color:var(--color-text-muted);line-height:1.45}.classes-confirm .class-row__actions{justify-content:flex-end;gap:var(--space-2)}.classes-confirm button{min-height:var(--control-size);border:1px solid var(--color-primary);border-radius:var(--radius-control);background:var(--color-primary);color:var(--color-surface);font-weight:var(--weight-semibold);padding:0 .9rem}.classes-confirm button:last-child{border-color:var(--color-border-control);background:var(--color-surface);color:#172033}.booking-form{background:var(--color-surface);border:0;border-radius:0;width:min(100%,32rem);margin:0;padding:0}.booking-form h2{margin:0}.booking-form header p{margin:.35rem 0 var(--space-4);color:var(--color-text-subtle)}.booking-form form{gap:var(--space-2);display:grid}.booking-form input,.booking-form select,.booking-form textarea{width:100%;min-width:0;max-width:100%;min-height:var(--control-size);border-radius:var(--radius-small);background:var(--color-surface);border:1px solid #9da9bc;padding:.55rem .65rem}.booking-form textarea{resize:vertical;min-height:5rem}.booking-form input[type=date]{box-sizing:border-box;text-overflow:clip;appearance:none;width:100%;display:block;overflow:hidden}.booking-time-picker{border:0;gap:.3rem;min-width:0;margin:0;padding:0;display:grid}.booking-time-picker legend{width:auto;padding:0}.booking-time-picker__controls{align-items:center;gap:.4rem;width:max-content;display:flex}.booking-time-picker__controls input{text-align:center;font-variant-numeric:tabular-nums;width:5.75rem;padding-inline:.4rem}.booking-form__identity{border:1px solid var(--color-border);border-radius:var(--radius-small);background:var(--color-info-surface);gap:.35rem;margin:0 0 .35rem;padding:.65rem;display:grid}.booking-form__identity div{gap:var(--space-2);grid-template-columns:max-content minmax(0,1fr);display:grid}.booking-form__identity dt{font-weight:var(--weight-bold)}.booking-form__identity dd{overflow-wrap:anywhere;min-width:0;margin:0}.booking-form__mode,.booking-form__weekdays{gap:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-small);flex-wrap:wrap;margin:.35rem 0;padding:.65rem;display:flex}.booking-form__mode legend,.booking-form__weekdays legend{width:100%;font-weight:var(--weight-bold);padding:0}.booking-form__mode label,.booking-form__weekdays label{align-items:center;gap:.35rem;min-height:2rem;display:inline-flex}.booking-form__mode input,.booking-form__weekdays input{width:1.1rem;min-height:1.1rem;margin:0}.booking-form__quote{margin-top:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-info-surface);padding:.8rem}.booking-form__quote h3,.booking-form__quote p{margin:0 0 .55rem}.booking-form__occurrences,.booking-form__occurrences ul{gap:.55rem;margin:0;padding-left:1.2rem;display:grid}.booking-form__occurrences>li{gap:.2rem;display:grid}.booking-form__occurrences li{color:#30425f;font-size:var(--text-sm)}.booking-form__total{border-top:1px solid var(--color-border);padding-top:.65rem;font-size:1.05rem}.booking-form__checkbox{min-height:var(--control-size);align-items:center;gap:var(--space-2);margin-top:var(--space-1);font-weight:var(--weight-medium);display:flex}.booking-form__checkbox input{width:1.25rem;min-height:1.25rem;margin:0}.booking-form__help{color:var(--color-text-subtle);font-size:var(--text-sm);margin:0}.booking-form__actions{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.booking-form__actions button{min-height:var(--control-size);flex:8rem}.booking-form__actions button:last-child{background:var(--color-surface);color:#172033;border-color:#9da9bc}.booking-form__message{margin:var(--space-3) 0;border-radius:var(--radius-small);padding:.7rem}.booking-details{background:var(--color-surface);border:0;border-radius:0;width:100%;margin:0;padding:0;position:relative}.booking-details__header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.booking-details__header h2,.booking-details__header p{margin:0}.booking-details__header p{color:var(--color-text-subtle);font-size:var(--text-sm);margin-top:.35rem}.booking-details__header>button,.booking-details__actions button{min-height:var(--control-size)}.booking-details__list{margin:var(--space-5) 0;gap:.65rem;display:grid}.booking-details__list>div{gap:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid #e4e8ef;grid-template-columns:7rem minmax(0,1fr);display:grid}.booking-details__list dt{color:var(--color-text-subtle);font-weight:var(--weight-medium)}.booking-details__list dd{overflow-wrap:anywhere;margin:0}.booking-details__history{margin:0 0 var(--space-4);color:var(--color-text-subtle)}.booking-details__actions{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.booking-details__actions button:last-child{background:var(--color-surface);color:#172033;border-color:#9da9bc}.booking-details__confirm{border-radius:var(--radius-small);background:var(--color-warning-surface);border:1px solid #c28a25;width:min(100vw - 2rem,32rem);max-height:calc(100vh - 2rem);padding:.85rem;overflow:auto;box-shadow:0 1rem 3rem #1720334d}.booking-details__confirm-backdrop{z-index:1000;padding:var(--space-4);background:#17203373;place-items:center;display:grid;position:fixed;inset:0}.booking-details__confirm h3{margin:0}.booking-details__confirm p{line-height:1.4}.booking-details__message{margin:var(--space-3) 0;border-radius:var(--radius-small);padding:.7rem}.booking-details__confirm fieldset{margin:var(--space-4) 0 0;border:1px solid var(--color-warning-border);border-radius:var(--radius-small);gap:.55rem;padding:.7rem;display:grid}.booking-details__confirm label{gap:var(--space-2);align-items:flex-start;display:flex}.booking-details__snapshot{margin:var(--space-4) 0;border-radius:var(--radius-medium);background:var(--color-info-surface);border:1px solid #d7e1ef;padding:.8rem}.booking-details__snapshot h3{margin:0 0 var(--space-2);font-size:var(--text-emphasis)}.booking-details__snapshot ul{gap:.35rem;margin:0;padding-left:1.2rem;display:grid}.booking-details__actions>.icon-button{width:var(--control-size);place-items:center;padding:0;display:grid}.achievements-shell,.app-shell>.attendance-shell{width:min(100% - 2rem, var(--page-width));margin:0 auto}.achievements-shell{padding:var(--space-8) 0 var(--space-12)}.achievements-header{justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.achievements-header h1{margin:var(--space-1) 0;letter-spacing:-.045em;font-size:clamp(1.8rem,4vw,2.5rem)}.achievements-header p:last-child{color:var(--color-text-muted);margin:.35rem 0 0}.achievements-summary{padding:.7rem var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);color:var(--color-text-muted);white-space:nowrap;align-items:baseline;gap:.45rem;display:flex}.achievements-summary strong{color:var(--color-accent);font-size:1.35rem}.achievements-catalog,.achievements-panel{margin-top:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-large);background:#ffffffeb;box-shadow:0 .6rem 1.8rem #1b3a680f}.achievements-catalog summary{justify-content:space-between;align-items:center;gap:var(--space-4);cursor:pointer;min-height:4.5rem;padding:.9rem 1.1rem;list-style-position:inside;display:flex}.achievements-catalog summary>span:first-child{gap:.2rem;display:grid}.achievements-catalog summary small{color:#66758d}.achievements-catalog__count{color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-bold);white-space:nowrap}.achievements-catalog__body{padding:0 1.1rem 1.1rem}.achievement-create{gap:var(--space-2);margin-top:var(--space-4);display:grid}.achievement-create label{color:var(--color-text-secondary);font-size:var(--text-control);font-weight:var(--weight-bold)}.achievement-create__fields{gap:var(--space-2);flex-wrap:wrap;display:flex}.achievement-create input{min-width:0;min-height:var(--control-size);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-control);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);font:inherit;flex:12rem}.achievement-create button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-size);padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);background:var(--color-accent);color:var(--color-surface);font:inherit;font-weight:var(--weight-bold);cursor:pointer;border:0;display:inline-flex}.achievement-create button:hover:not(:disabled){background:var(--color-interactive-hover)}.achievement-create button:disabled{opacity:.55;cursor:default}.achievement-create :is(input,button):focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.achievement-create p{color:var(--color-success);font-size:var(--text-control)}.achievement-create p[role=alert]{color:var(--color-error)}.achievement-create input[aria-invalid=true]{border-color:var(--color-error-border)}.achievements-profile-picker{align-items:center;gap:var(--space-3) var(--space-4);flex-wrap:wrap;display:flex}.achievements-profile-picker select{flex:0 24rem;width:100%;min-width:0}.achievements-profile-picker label{color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-label)}.achievements-profile-picker select{min-height:var(--control-size);padding:var(--space-2) .7rem;border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);font:inherit;border:1px solid #cbd7e6}.achievements-profile-picker a{color:var(--color-accent);font-size:var(--text-control);font-weight:var(--weight-bold)}.achievement-list,.achievement-catalog-list{margin:0;padding:0;list-style:none}.achievement-row{border-bottom:1px solid #edf0f5;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.8rem;display:grid}.achievement-row:last-child{border-bottom:0}.achievement-row--disabled{color:#7a8495;background:#f8f9fb}.achievement-row__name{gap:.15rem;display:grid}.achievement-row__name strong{font-size:.92rem}.achievement-row__name span{color:#956c26;font-size:var(--text-caption)}.achievement-visibility{background:var(--color-surface);color:#7c8799;border:1px solid #d3dbe8;border-radius:.65rem;place-items:center;width:42px;min-height:42px;display:grid}.achievement-visibility--visible{background:var(--color-selected);color:var(--color-accent);border-color:#a5c7fc}.achievement-visibility .icon{width:var(--icon-size-compact);height:var(--icon-size-compact)}.achievement-status{border-radius:var(--radius-control);border:1px solid #cbd7e6;justify-self:end;min-width:0;margin:0;padding:0;display:inline-flex}.achievement-status__option{cursor:pointer;position:relative}.achievement-status__option+.achievement-status__option{border-left:1px solid #cbd7e6}.achievement-status__icon{width:var(--control-size);min-height:var(--control-size);background:var(--color-surface);color:var(--color-text-muted);place-items:center;display:grid}.achievement-status__option:first-of-type .achievement-status__icon{border-radius:var(--radius-compact) 0 0 var(--radius-compact)}.achievement-status__option:last-of-type .achievement-status__icon{border-radius:0 var(--radius-compact) var(--radius-compact) 0}.achievement-status__icon .icon{width:var(--icon-size);height:var(--icon-size)}.achievement-status__option input:checked+.achievement-status__icon--not_accomplished{color:var(--color-text-secondary);background:#edf0f5;box-shadow:inset 0 0 0 2px}.achievement-status__option input:checked+.achievement-status__icon--training{color:#086978;background:#e4f7fa;box-shadow:inset 0 0 0 2px}.achievement-status__option input:checked+.achievement-status__icon--competition{color:#825409;background:#fff2cb;box-shadow:inset 0 0 0 2px}.achievement-status__option input:focus-visible+.achievement-status__icon{z-index:1;outline:2px solid var(--color-primary);outline-offset:2px;position:relative}.achievement-status[aria-busy=true]{opacity:.5}.achievement-status[aria-busy=true] .achievement-status__option{cursor:default}.achievement-catalog-row{min-height:3.15rem;font-size:var(--text-control);border-bottom:1px solid #edf0f5;grid-template-columns:auto minmax(10rem,1fr) auto auto auto auto;align-items:center;gap:.55rem;display:grid}.achievement-catalog-row:last-child{border-bottom:0}.achievement-catalog-row[draggable=true]{cursor:grab}.achievement-catalog-row[draggable=true]:active{cursor:grabbing}.achievement-catalog-row__grip{color:#8995a8;-webkit-user-select:none;user-select:none;font-size:1.15rem}.achievement-catalog-row__name{min-width:0}.achievement-catalog-row__rename{grid-column:2/4;gap:.35rem;display:flex}.achievement-catalog-row__rename input{width:100%;min-height:var(--control-size-compact);border-radius:var(--radius-medium);border:1px solid #b8c7da;min-width:0;padding:.4rem .55rem}.achievement-row-action{width:var(--control-size-small);min-height:var(--control-size-small);border-radius:var(--radius-medium);background:var(--color-surface);color:var(--color-text-muted);border:1px solid #d5deea;flex:none;place-items:center;padding:0;display:inline-grid}.achievement-row-action:disabled{opacity:.4}.achievement-row-action .icon{width:var(--icon-size-small);height:var(--icon-size-small)}.achievement-catalog-row__move{gap:var(--space-1);display:inline-flex}.achievement-switch-label{color:#66758d;font-size:var(--text-xs)}.achievement-catalog-row input[type=checkbox]{width:2.7rem;height:1.45rem;accent-color:var(--color-accent)}.achievements-message{margin:var(--space-4) 0;color:var(--color-text-muted)}.achievements-message--error{color:var(--color-attendance-error)}@media (width<=640px){.achievements-shell{padding-top:var(--space-6)}.achievements-header{align-items:flex-start}.achievements-header p:last-child{max-width:22rem;font-size:var(--text-body)}.achievements-panel{padding:.8rem}.achievements-catalog summary{flex-direction:column;align-items:flex-start;gap:.45rem;padding:.85rem}.achievements-catalog__body{padding:0 .85rem .85rem}.achievement-row{grid-template-columns:minmax(0,1fr) auto;gap:.45rem .65rem;padding:.55rem}.achievement-status{grid-column:1/-1}.achievement-catalog-row{grid-template-columns:auto minmax(0,1fr) auto auto auto;gap:.35rem}.achievement-catalog-row__rename{grid-column:2/4}.achievement-switch-label{display:none}.achievement-catalog-row__move{grid-column:5}.achievement-catalog-row__move .achievement-row-action{width:30px}}.workspace-overlay{z-index:30;padding:var(--space-3);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0d1c3559;place-items:start end;display:grid;position:fixed;inset:0}.workspace-panel{border-radius:var(--radius-large);background:var(--color-surface);width:min(100%,34rem);max-height:calc(100vh - 1.5rem);box-shadow:var(--shadow-dialog);border:1px solid #d7e1ef;margin-top:0;padding:1.35rem;position:relative;overflow:auto}.workspace-panel__close{min-height:2.25rem;width:var(--control-size);height:var(--control-size);border-radius:var(--radius-medium);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--weight-bold);border:1px solid #cbd7e7;padding:0 .65rem;position:absolute;top:.75rem;right:.75rem}.workspace-panel .booking-form header,.workspace-panel .booking-details__header{padding-right:4.25rem}@media (width<=640px){.app-bar__inner{width:min(100% - 1rem, var(--page-width));gap:.45rem}.teacher-identity>span:last-child{display:inline}.schedule-date-bar{gap:.35rem}.date-controls{gap:0;padding:.15rem}.date-controls button{min-width:var(--control-size-compact)}.date-controls .date-picker{flex:auto;min-width:0}.date-picker__display{text-overflow:ellipsis;max-width:100%;font-size:.76rem;overflow:hidden}.room-controls{min-height:var(--control-size);padding:.15rem}.room-toggle{padding-inline:.45rem;font-size:.74rem}.class-add--admin select,.class-add--admin .class-add__name{flex-basis:100%}.workspace-nav__item{padding-inline:.45rem;font-size:.82rem}.schedule-shell{padding:var(--space-4) var(--space-2) var(--space-8)}.workspace-overlay{align-items:end;padding:0}.workspace-panel{border-radius:var(--radius-large) var(--radius-large) 0 0;max-height:min(90vh,46rem)}}@media (width>=900px){.schedule-grid--week{min-width:0}}.achievement-artwork{cursor:auto;grid-column:2/-1;align-items:center;gap:.8rem;padding:.4rem 0 .8rem;display:flex}.achievement-artwork img{object-fit:contain;background:#f3f7ff;border:1px solid #d5deea;border-radius:12px;width:64px;height:64px}.achievement-artwork>div{align-items:center;gap:var(--space-2) .8rem;flex-wrap:wrap;display:flex}.achievement-artwork__upload{min-height:var(--control-size-compact);border-radius:var(--radius-medium);color:#1754a5;font-size:var(--text-sm);font-weight:var(--weight-bold);cursor:pointer;background:#f3f7ff;border:1px solid #bfd0e8;align-items:center;padding:.45rem .7rem;display:inline-flex;position:relative}.achievement-artwork__upload:focus-within{outline:2px solid var(--color-accent);outline-offset:2px}.achievement-artwork__upload:has(input:disabled){opacity:.5;cursor:wait}.achievement-artwork__upload input{z-index:1;opacity:0;width:100%;height:100%;cursor:inherit;border:0;margin:0;padding:0;position:absolute;inset:0}.achievement-artwork button{min-height:var(--control-size-compact);color:var(--color-text-muted);font-size:var(--text-xs);background:0 0;border:0;text-decoration:underline}.achievement-artwork small{color:#66758d;font-size:var(--text-caption);flex-basis:100%}.achievement-artwork p{color:var(--color-attendance-error);flex-basis:100%;margin:0}.achievement-artwork--background{margin-top:var(--space-4);padding:var(--space-4);background:#f5f8fd;border-radius:.8rem}.achievement-artwork--background img{object-fit:cover;width:90px;height:70px}.class-prices{gap:var(--space-3);flex-wrap:wrap;display:flex}.class-prices input{width:8rem;min-width:0}.class-rename-form{flex-wrap:wrap}.attendance-shell{width:100%;min-width:0;max-width:100%;padding:var(--space-5);color:var(--color-text);font-variant-numeric:tabular-nums;scrollbar-color:#a5b6ce var(--color-surface-soft);scrollbar-width:thin}.app-shell>.attendance-shell{padding:var(--space-8) 0 var(--space-12)}.attendance-shell ::selection{color:var(--color-text);background:#cce0ff}.attendance-shell button,.attendance-shell select,.attendance-shell input:not([type=checkbox]){min-height:var(--control-size);border:1px solid var(--color-border);border-radius:var(--radius-compact);background:var(--color-surface);min-width:0;color:var(--color-text-muted);font:inherit;padding:.55rem .8rem}.attendance-shell button{justify-content:center;align-items:center;gap:var(--space-2);font-size:var(--text-control);font-weight:var(--weight-semibold);transition:background var(--duration-interaction) ease, border-color var(--duration-interaction) ease, color var(--duration-interaction) ease;display:inline-flex}.attendance-shell button:hover:not(:disabled){background:var(--color-selected);color:var(--color-accent-strong);border-color:#9bb9e4}.attendance-shell button:active:not(:disabled){background:var(--color-selected-strong)}.attendance-shell button:disabled{opacity:.5;cursor:default}.attendance-shell button:focus-visible,.attendance-shell input:focus-visible,.attendance-shell select:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}.attendance-shell .icon{width:var(--icon-size-compact);height:var(--icon-size-compact);flex:none}.attendance-shell input[type=checkbox]{width:20px;height:20px;accent-color:var(--color-accent);cursor:pointer;flex-shrink:0;margin:0}.attendance-shell input:disabled{cursor:default}.attendance-shell select{max-width:100%}.attendance-filters{align-items:center;gap:var(--space-3) var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.attendance-filters>label,.attendance-date-control label{align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm);display:flex}.attendance-date-control{align-items:center;gap:.35rem;display:flex}.attendance-date-control>button{width:var(--control-size);padding:0}.attendance-date-control label{min-width:0;min-height:var(--control-size);border:1px solid var(--color-border);border-radius:var(--radius-compact);background:var(--color-surface);padding:.55rem .8rem;position:relative;overflow:hidden}.attendance-date-control__display{color:var(--color-heading);font-size:var(--text-control);font-weight:var(--weight-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attendance-date-control input[type=date]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0;padding:0!important}.attendance-counter{color:var(--color-attendance-success);font-size:var(--text-xs);font-weight:var(--weight-medium);display:block}.attendance-counter--empty{color:var(--color-attendance-warning)}.attendance-roster-heading{justify-content:flex-end;align-items:center;gap:var(--space-3);margin:var(--space-6) 0 var(--space-3);display:flex}.attendance-roster-heading h2{font-size:var(--text-base);margin:0 auto 0 0}.attendance-list{margin-block:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);overflow:hidden}.attendance-roster-group+.attendance-roster-group{border-top:1px solid var(--color-border)}.attendance-roster-group__heading{border-bottom:1px solid var(--color-divider);background:var(--color-surface-soft);color:var(--color-heading);font-size:var(--text-sm);font-weight:var(--weight-semibold);margin:0;padding:.6rem .85rem}.attendance-session-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:1.1rem var(--space-5) .7rem;display:flex}.attendance-session-header>div{min-width:0}.attendance-session-header h3{overflow-wrap:anywhere;font-size:var(--text-subheading);letter-spacing:-.015em;margin:0}.attendance-session-meta{color:var(--color-text-muted);font-size:var(--text-sm);margin:.4rem 0 0;line-height:1.6}.attendance-session-summary{justify-content:space-between;gap:var(--space-2);padding:0 var(--space-5) var(--space-4);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.attendance-session-summary>span:last-child{color:var(--color-text-muted);font-size:var(--text-xs)}.attendance-skater-row{min-height:72px;padding:.8rem var(--space-5);cursor:pointer;border-bottom:1px solid var(--color-divider);align-items:center;gap:.85rem;display:flex}.attendance-skater-row:last-child{border-bottom:0}.attendance-skater-row:hover{background:var(--color-surface-soft)}.attendance-skater-row:focus-within{background:var(--color-selected)}.attendance-skater-name{min-width:0;font-size:var(--text-emphasis);font-weight:var(--weight-medium);overflow-wrap:anywhere;flex:1}.attendance-skater-name small{color:var(--color-text-muted);font-size:var(--text-caption);margin-top:.2rem;font-weight:400;display:block}.attendance-skater-status{align-items:center;gap:var(--space-5);flex:none;display:flex}.attendance-skater-status>strong{font-size:var(--text-body)}.attendance-state{color:var(--color-text-muted);background:var(--color-divider);font-size:var(--text-caption);font-weight:var(--weight-medium);white-space:nowrap;border-radius:.35rem;padding:.3rem .6rem;display:inline-block}.attendance-state--paid{color:var(--color-attendance-success);background:var(--color-attendance-success-surface)}.attendance-state--unpaid{color:var(--color-attendance-warning);background:var(--color-attendance-warning-surface)}.attendance-absent{color:var(--color-text-muted);font-size:var(--text-xs)}.attendance-table-wrap{isolation:isolate;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);max-width:100%;max-height:min(65dvh,42rem);scroll-padding-top:5rem;overflow:auto}.attendance-table-wrap--portrait{display:none}.attendance-table{border-collapse:separate;border-spacing:0;width:100%}.attendance-table th,.attendance-table td{border:0;border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);text-align:center;min-width:7rem;padding:.9rem}.attendance-table th{background:var(--color-surface-soft);font-size:var(--text-sm)}.attendance-table thead th{z-index:2;position:sticky;top:0}.attendance-table th.attendance-table__session-heading{z-index:1;text-align:left;overflow-wrap:anywhere;width:clamp(10rem,34vw,16rem);min-width:clamp(10rem,34vw,16rem);max-width:16rem;position:sticky;left:0}.attendance-table thead th.attendance-table__session-heading{z-index:4}.attendance-table__group-label{color:var(--color-heading);text-align:left!important}.attendance-table--landscape thead tr:nth-child(2) th{top:2.9rem}.attendance-table--landscape thead tr:nth-child(2) th.attendance-table__session-heading{top:0}.attendance-table--portrait thead small{color:var(--color-text-muted);font-size:var(--text-caption);margin-top:.3rem;font-weight:400;line-height:1.4;display:block}.attendance-table .attendance-event--current>th{background:var(--color-attendance-success-surface)}.attendance-table-wrap:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}.attendance-grid-check{min-width:var(--control-size);min-height:var(--control-size);cursor:pointer;align-content:center;justify-items:center;display:grid}.attendance-payment-row input,.attendance-payment-row button{scroll-margin-top:18rem}.attendance-table td:has(input:checked){background:var(--color-selected)}.attendance-table small{color:var(--color-text-muted);font-size:var(--text-caption);margin-top:.35rem;font-weight:400;line-height:1.5;display:block}.attendance-event--current{background:var(--color-attendance-success-surface);color:var(--color-attendance-success)}.attendance-skater-picker{margin-bottom:var(--space-4);gap:var(--space-2);max-width:32rem;color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-semibold);display:grid}.attendance-skater-picker select{color:var(--color-text);font-weight:500}.attendance-payment-tools{align-items:center;gap:var(--space-3);padding:.6rem var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-surface-soft);margin:0;display:flex}.attendance-payment-tools label{min-height:var(--control-size);color:var(--color-text-muted);font-size:var(--text-sm);align-items:center;gap:.6rem;display:flex}.attendance-select-all{cursor:pointer;margin-right:auto}.attendance-checkout{margin-bottom:var(--space-4);top:calc(var(--app-bar-height) + .5rem);z-index:5;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border:1px solid var(--color-selected-border);border-radius:var(--radius-card);background:var(--color-selected);flex-wrap:wrap;display:flex;position:sticky}.attendance-checkout-totals{gap:var(--space-4) var(--space-8);flex-wrap:wrap;display:flex}.attendance-checkout-totals>div{gap:.3rem;display:grid}.attendance-checkout-totals span{color:var(--color-accent-strong);font-size:var(--text-xs)}.attendance-checkout-totals strong{font-size:1.25rem}.attendance-shell .attendance-pay-button{min-height:var(--control-size-large);border-color:var(--color-accent);background:var(--color-accent);color:var(--color-surface)}.attendance-shell .attendance-pay-button:hover:not(:disabled){background:var(--color-accent-strong);color:var(--color-surface)}.attendance-payment-list{border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);overflow:hidden}.attendance-payment-list:empty{display:none}.attendance-payment-row{align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.attendance-payment-row:last-child{border-bottom:0}.attendance-payment-row:has(input:checked:not(:disabled)){background:var(--color-selected)}.attendance-payment-row label{min-height:var(--control-size);cursor:pointer;flex:24rem;align-items:center;gap:.85rem;display:flex}.attendance-payment-details{flex:1;gap:.35rem;min-width:0;display:grid}.attendance-payment-details>strong{font-size:var(--text-emphasis);overflow-wrap:anywhere}.attendance-payment-details>span,.attendance-payment-details small{color:var(--color-text-muted);font-size:var(--text-xs);line-height:1.5}.attendance-payment-amount{justify-items:end;gap:.4rem;display:grid}.attendance-shell .attendance-payment-row>button{font-size:var(--text-caption)}.attendance-message{padding:var(--space-4);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-body);border-radius:.65rem;flex-wrap:wrap;align-items:center;gap:.6rem;line-height:1.6;display:flex}.attendance-message--error{color:var(--color-attendance-error);background:#fff1f2;border-color:#e4b7bd}.attendance-message--success{color:var(--color-attendance-success);background:var(--color-attendance-success-surface)}.attendance-message--warning{color:var(--color-attendance-warning);background:var(--color-attendance-warning-surface)}.attendance-empty{padding:var(--space-12) var(--space-6);border-radius:var(--radius-panel);color:var(--color-text-muted);text-align:center;border:1px dashed #aabbd1;justify-items:center;gap:.65rem;display:grid}.attendance-empty .icon{width:2rem;height:2rem}.attendance-empty h2,.attendance-empty p{margin:0}.attendance-empty h2{color:var(--color-text);font-size:var(--text-base)}.attendance-empty p{font-size:var(--text-body);line-height:1.6}.attendance-shell--embedded{padding:var(--space-4) 0 0}.attendance-shell--embedded .attendance-roster-heading{margin-top:0}.attendance-shell--embedded .attendance-session-header,.attendance-shell--embedded .attendance-session-summary,.attendance-shell--embedded .attendance-skater-row{padding-inline:.85rem}.attendance-shell--embedded .attendance-skater-status{flex-direction:column;align-items:flex-end;gap:.3rem}@media (orientation:portrait){.attendance-table-wrap--landscape{display:none}.app-shell>.attendance-shell--grid{height:calc(100dvh - var(--app-bar-height));flex-direction:column;min-height:0;padding-bottom:0;display:flex}.attendance-table-wrap--portrait{flex:auto;height:auto;min-height:0;max-height:none;display:block;overflow:hidden auto}.attendance-table--portrait{table-layout:fixed;height:100%}.attendance-table--portrait th,.attendance-table--portrait td{overflow-wrap:anywhere;min-width:0;padding:.7rem .45rem}.attendance-table--portrait th.attendance-table__session-heading{width:clamp(7rem,35%,12rem);min-width:clamp(7rem,35%,12rem);max-width:none}.attendance-table--portrait thead th:not(.attendance-table__session-heading){padding-inline:.35rem}.attendance-table--portrait thead strong{overflow-wrap:anywhere}.attendance-table--portrait .attendance-table__group-label{z-index:1;position:sticky;left:0}}@media (width<=640px){.app-shell>.attendance-shell{width:calc(100% - 1.5rem);padding-top:var(--space-6)}.attendance-filters{gap:var(--space-3)}.attendance-date-control{flex:100%}.attendance-date-control label{flex:1}.attendance-roster-heading{gap:var(--space-2);margin-top:var(--space-4)}.attendance-roster-heading h2{font-size:var(--text-body)}.attendance-session-header{padding:var(--space-4) .85rem .65rem}.attendance-session-header h3{font-size:var(--text-base)}.attendance-session-summary{padding-inline:.85rem}.attendance-skater-row{gap:.65rem;min-height:76px;padding-inline:.85rem}.attendance-skater-name{font-size:var(--text-control)}.attendance-skater-status{flex-direction:column;align-items:flex-end;gap:.35rem}.attendance-skater-picker{max-width:none}.attendance-payment-tools{padding-inline:.85rem}.attendance-select-all{flex-basis:100%}.attendance-checkout{padding:var(--space-4);gap:.85rem}.attendance-checkout-totals{justify-content:space-between;gap:.65rem;width:100%}.attendance-pay-button{width:100%}.attendance-payment-row{padding:.85rem}.attendance-payment-row label{gap:.65rem}.attendance-payment-details>strong{font-size:var(--text-control)}.attendance-payment-row>button{margin-left:1.9rem}}@media (prefers-reduced-motion:reduce){.attendance-shell button{transition:none}}.booking-details__tabs{gap:var(--space-2);border-bottom:1px solid #d7e1ef;min-width:0;display:flex}.booking-details__tabs button{min-height:var(--control-size);padding:var(--space-2) .65rem;color:var(--color-text-muted);font:inherit;font-weight:var(--weight-bold);background:0 0;border:0;border-bottom:3px solid #0000;border-radius:0}.booking-details__tabs button[aria-selected=true]{border-bottom-color:var(--color-primary);color:var(--color-accent-strong)}.booking-details__tabs button:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.booking-details__tabs button:disabled{opacity:.5}.workspace-navigation{flex:auto;align-self:stretch;align-items:stretch;min-width:0;display:flex;position:relative}.workspace-navigation__measure{visibility:hidden;pointer-events:none;gap:.2rem;width:max-content;display:flex;position:fixed;top:0;right:100%}.workspace-navigation__measure .workspace-nav__item{display:block}.workspace-navigation .workspace-nav{overflow:visible}.workspace-navigation .workspace-nav[hidden]{display:none}.workspace-navigation__current{min-width:0;color:var(--color-surface);font-size:var(--text-emphasis);font-weight:var(--weight-semibold);align-items:center;gap:.6rem;display:flex}.workspace-navigation__current>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-bar__menu{width:var(--control-size);height:var(--control-size);border-radius:var(--radius-compact);color:var(--color-surface);background:0 0;border:1px solid #526888;flex:none;place-items:center;padding:0;display:grid}.app-bar__menu .icon{width:var(--icon-size);height:var(--icon-size)}.app-bar__menu:hover{background:#253f63}.workspace-navigation[data-compact=true] .workspace-nav:not([hidden]){gap:var(--space-1);width:min(20rem,100vw - 2rem);padding:var(--space-2);border-radius:var(--radius-card);background:#0d1f3d;flex-direction:column;display:flex;position:absolute;top:calc(100% + .5rem);left:0;box-shadow:0 .75rem 2rem #0d1f3d38}.workspace-navigation[data-compact=true] .workspace-nav .workspace-nav__item{min-height:var(--control-size-large);padding:var(--space-3);border-radius:var(--radius-small);text-align:left;border:0}.workspace-navigation[data-compact=true] .workspace-nav .workspace-nav__item--active{background:#253f63}.app-bar__inner>.teacher-identity{flex:0 auto;min-width:0;max-width:14rem}@media (width<=640px){.app-bar__inner>.teacher-identity{max-width:6rem}}.class-form-grid{align-items:start;gap:var(--space-3) var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.class-add{padding:var(--space-4);border-bottom:0}.classes-create-panel{margin-bottom:var(--space-4)}.class-add--admin>select{grid-column:1/-1;width:100%}.classes-panel__heading{justify-content:space-between;align-items:center;gap:var(--space-3);padding:.45rem var(--space-4);border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface-soft);display:flex}.classes-panel__heading h2{background:0 0;border:0;padding:.25rem 0}.classes-panel h2.classes-panel__heading--toggle{background:var(--color-surface-soft);border:0;padding:0}.classes-panel__heading-toggle{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;min-height:3.15rem;padding:.45rem var(--space-4);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.classes-panel__heading-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:-3px}.classes-panel__heading-toggle .classes-panel__toggle{pointer-events:none}.classes-panel__heading-toggle[aria-expanded=true] .classes-panel__toggle .icon{transform:rotate(45deg)}.classes-panel__toggle{border:1px solid var(--color-border-control);border-radius:var(--radius-compact);background:var(--color-surface);width:2.25rem;height:2.25rem;color:var(--color-text-secondary);cursor:pointer;flex:none;place-items:center;padding:0;display:grid}.classes-panel__toggle:hover{background:var(--color-surface-hover);color:var(--color-accent)}.classes-panel__toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.classes-panel__toggle .icon{transition:transform .18s ease-out}.classes-panel__toggle[aria-expanded=true] .icon{transform:rotate(45deg)}.class-add__name{grid-column:auto;align-self:end;gap:.3rem;width:100%;min-width:0;display:grid}.class-add__name label{color:var(--color-text-secondary);font-size:var(--text-sm)}.class-form-grid .class-prices{align-items:end;gap:var(--space-4);grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;display:grid}.class-prices label{min-width:0;color:var(--color-text-secondary);font-size:var(--text-sm);gap:.3rem;display:grid}.class-form-grid .class-edit-groups{flex:none;grid-column:1/-1;width:100%;min-width:0;margin:0}.class-group-edit{border:1px solid var(--color-border-control);background:var(--color-surface);color:#405271;vertical-align:middle;cursor:pointer;border-radius:.45rem;place-items:center;width:32px;min-height:32px;margin-left:.35rem;padding:0;display:inline-grid}.class-group-edit .icon{width:var(--icon-size-small);height:var(--icon-size-small)}.class-form-actions{grid-column:1/-1;justify-content:flex-end;gap:.5rem;display:flex}.class-form-actions .icon-button{min-width:var(--control-size)}.class-rename-form{width:100%;padding:var(--space-3)}.class-row--editing{padding:var(--space-2);background:var(--color-surface-soft);display:block}.achievements-shell{width:100%;max-width:var(--page-width-narrow);padding:var(--space-6) var(--space-4) var(--space-12)}.achievements-profile-picker--top{top:var(--app-bar-height);z-index:4;align-items:center;gap:var(--space-2);margin:0 -.25rem var(--space-3);padding:var(--space-2) var(--space-1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f1f5fbf5;flex-wrap:nowrap;display:flex;position:sticky}.achievements-profile-picker--top select{flex:1 1 0;width:auto;min-width:0}.achievements-profile-picker__actions{align-items:center;gap:var(--space-2);flex-wrap:nowrap;flex:none;min-width:0;display:flex}.achievements-profile-open,.achievements-profile-copy{min-height:var(--control-size);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-accent);cursor:pointer;border:1px solid #cbd7e6}.achievements-profile-open{padding:var(--space-2) var(--space-3);font:inherit;font-size:var(--text-control);font-weight:var(--weight-bold);justify-content:center;align-items:center;gap:.45rem;display:inline-flex}.achievements-profile-open .icon{width:1.1rem;height:1.1rem}.achievements-profile-copy{width:var(--control-size);padding:var(--space-2);flex:none;place-items:center;display:grid}.achievements-profile-copy .icon{width:1.1rem;height:1.1rem}.achievements-profile-copy:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.achievement-artwork--profile-card{flex:none;grid-column:auto;gap:0;padding:0}.achievement-artwork--profile-card img,.achievement-artwork--profile-card small{display:none}.achievement-artwork--profile-card>div{flex-wrap:wrap;gap:.35rem}.achievement-artwork--profile-card>.achievement-artwork__controls{border-radius:var(--radius-medium);background:#f3f7ff;border:1px solid #bfd0e8;flex-wrap:nowrap;gap:0;overflow:hidden}.achievement-artwork--profile-card .achievement-artwork__upload{min-height:var(--control-size);white-space:nowrap;gap:.35rem;padding:.45rem .65rem}.achievement-artwork--profile-card .achievement-artwork__controls .achievement-artwork__upload{background:0 0;border:0;border-radius:0}.achievement-artwork--profile-card .achievement-artwork__remove{width:var(--control-size);min-height:var(--control-size);color:var(--color-text-muted);border-left:1px solid #bfd0e8;border-radius:0;flex:none;place-items:center;padding:0;text-decoration:none;display:grid}.achievement-artwork--profile-card .achievement-artwork__remove:hover{background:var(--color-surface-hover);color:var(--color-attendance-error)}.achievement-artwork--profile-card .achievement-artwork__remove .icon,.achievement-artwork--profile-card .achievement-artwork__upload .icon{width:var(--icon-size-small);height:var(--icon-size-small)}.achievement-artwork--profile-card p{flex-basis:100%}.achievements-panel{box-shadow:none;background:0 0;border:0;border-radius:0;margin-top:0;padding:0}.achievement-artwork--background{display:none}@media (width<=640px){.class-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.class-form-grid .class-add__name,.class-form-grid .class-prices,.class-form-grid .class-edit-groups,.class-form-actions{grid-column:1/-1}.achievements-profile-picker--top select{flex:1 1 0;width:auto;min-width:0}.achievements-profile-picker__actions{gap:.35rem}.achievements-profile-open{width:var(--control-size);padding:var(--space-2);flex:none}.achievements-profile-open span{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}@media (width<=760px){.class-form-grid,.class-form-grid .class-prices{grid-template-columns:repeat(2,minmax(0,1fr))}}.achievement-group h2{margin:0 -1rem var(--space-1)}.achievement-group{margin-top:var(--space-4);padding:0 var(--space-4) var(--space-4)}.achievement-list{border:0;border-radius:0;overflow:visible}.achievement-row{min-height:3.5rem;padding:var(--space-1) var(--space-2) var(--space-1) var(--space-4);border-bottom-color:var(--color-divider)}.achievement-row:hover{background:var(--color-surface-hover)}@media (width<=640px){.class-form-grid{gap:var(--space-3);grid-template-columns:minmax(0,1fr)}.class-form-grid .class-add__name,.class-form-grid .class-location,.class-form-grid .class-prices,.class-form-grid .class-edit-groups,.class-form-grid .class-session-type,.class-form-grid .class-session-help,.class-form-actions{grid-column:1}.class-form-grid{gap:.65rem}.class-add{padding:var(--space-3)}.class-form-grid .class-prices{gap:var(--space-3)}.class-form-grid .class-prices input{width:100%}.class-rename-form{padding:var(--space-2)}.classes-panel__heading{padding-inline:var(--space-3)}.achievement-group{padding:0 var(--space-3) var(--space-3)}.achievement-group h2{margin-inline:-.75rem;padding-inline:.85rem}.achievement-row{padding:var(--space-1) var(--space-1) var(--space-1) var(--space-2);grid-template-columns:minmax(0,1fr) auto auto;gap:.45rem .55rem}.achievement-status{grid-column:auto}}.class-session-type,.class-session-help{grid-column:1/-1}.class-session-help{margin:0}.booking-form__audience{padding:var(--space-3);border:1px solid var(--color-border-control);border-radius:8px;margin:0}.booking-form__audience p{margin:var(--space-1) 0 var(--space-3)}.booking-form__audience input[type=checkbox]{width:auto;min-height:auto;padding:0}.class-form-grid .class-session-type{justify-content:flex-start;align-items:center;gap:var(--space-2);display:flex}.class-form-grid .class-session-type input[type=checkbox]{flex:none;width:1rem;height:1rem;min-height:0;margin:0;padding:0}.class-form-grid .class-location{min-width:0;color:var(--color-text-secondary);font-size:var(--text-sm);grid-column:auto;gap:.3rem;display:grid}.schedule-coach-picker{align-items:center;gap:var(--space-2);min-width:0;color:var(--color-text-secondary);display:flex}.schedule-coach-picker select{min-width:0;max-width:14rem;min-height:var(--control-size);padding:var(--space-2);border-radius:var(--radius-compact);color:var(--color-text);font:inherit}.schedule-import__row input{width:100%;min-width:0;min-height:var(--control-size);border-radius:var(--radius-compact);color:var(--color-text);font:inherit;padding:0 .8rem}@media (width<=640px){.schedule-shell--coach-selector{--schedule-toolbar-height:7.5rem}.schedule-shell--coach-selector .schedule-date-bar{flex-wrap:wrap}.schedule-shell--coach-selector .date-controls{flex-basis:100%}.schedule-coach-picker{width:100%}.schedule-coach-picker select{flex:1;max-width:none}}.chatgpt-connect{margin:var(--space-3) auto;width:calc(100% - 2rem);color:var(--color-text)}.chatgpt-connect>summary{cursor:pointer;width:fit-content;padding:var(--space-2) 0;font-weight:var(--weight-semibold)}.chatgpt-connect__body{max-width:65ch;padding:var(--space-3) 0}.chatgpt-connect__actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.chatgpt-connect__body p{line-height:1.5}.chatgpt-connect__actions button{padding:var(--space-2) var(--space-3);border:1px solid var(--color-accent);border-radius:var(--radius-control);background:var(--color-accent);color:var(--color-surface);font-weight:var(--weight-semibold)}.chatgpt-connect__actions button:hover:not(:disabled){background:var(--color-accent-strong)}.chatgpt-connect__actions button.secondary{border-color:var(--color-border-control);background:var(--color-surface);color:var(--color-text)}.chatgpt-connect__actions button.secondary:hover:not(:disabled){background:var(--color-interactive-surface)}.chatgpt-connect__actions button:disabled{opacity:.6}.chatgpt-connect>summary:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.report-shell{width:min(100% - 2rem,76rem);margin:0 auto;padding:1.5rem 0 4rem}.report-header{margin-bottom:1rem}.report-header h1{letter-spacing:-.035em;margin:.25rem 0 .4rem;font-size:clamp(1.4rem,4vw,1.75rem)}.report-intro{color:#52617a;max-width:42rem;margin:0;font-size:.9rem;line-height:1.5}.report-toolbar{z-index:6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffeb;border:1px solid #d6e0ee;border-radius:.85rem;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin:0 0 1rem;padding:.3rem .3rem .3rem .9rem;display:flex;position:sticky;top:4.75rem;box-shadow:0 .5rem 1.5rem #1a3c6c1a}.report-actions{flex-wrap:nowrap;flex:auto;align-items:center;gap:.5rem 1rem;min-width:0;display:flex}.report-actions label{color:#5b6578;letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:.5rem;font-size:.78rem;font-weight:750;display:flex}.report-actions input,.report-actions select{color:#152036;width:0;min-width:0;min-height:40px;font:inherit;letter-spacing:0;text-transform:none;background:#fff;border:1px solid #c9d5e6;border-radius:.55rem;flex:1 1 0;padding:0 .6rem;font-size:.9rem;font-weight:650}.report-toolbar__buttons{gap:.25rem;margin-left:auto;display:flex}.report-message{background:#fff;border:1px solid #d6e0ee;border-radius:.6rem;margin:1rem 0;padding:.85rem}.report-message--error{color:#8c2020;background:#fff0f0;border-color:#c14c4c}.report-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:0 0 1rem;display:grid}.report-summary__card,.report-cashbox{background:#fff;border:1px solid #d6e0ee;border-radius:.75rem;flex-direction:column;justify-content:center;gap:.2rem;padding:.8rem 1rem;display:flex}.report-summary__card span,.report-cashbox span{color:#5b6578;letter-spacing:.05em;text-transform:uppercase;font-size:.72rem;font-weight:750}.report-summary__card strong,.report-cashbox strong{color:#132a54;font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1.5rem}.report-summary__card:last-child,.report-cashbox{background:#eef5ff;border-color:#b9cff2}.report-cashbox{margin-bottom:1rem}.report-teacher{margin-top:1.75rem}.report-teacher__header{border-bottom:2px solid #d6e0ee;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.75rem;padding-bottom:.5rem;display:flex}.report-teacher__header h2{margin:0;font-size:1.2rem}.report-teacher__header span{color:#132a54;font-variant-numeric:tabular-nums;font-weight:750}.report-table-wrap{background:#fff;border:1px solid #d6e0ee;border-radius:.75rem;overflow-x:auto}.report-table{border-collapse:collapse;width:100%;min-width:56rem}.report-table th,.report-table td{text-align:left;vertical-align:top;border-bottom:1px solid #edf1f7;padding:.65rem .75rem;font-size:.85rem}.report-table tbody tr:last-child td{border-bottom:0}.report-table tbody tr:nth-child(2n) td{background:#fbfcfe}.report-table th{color:#5b6578;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;background:#f7f9fd;border-bottom-color:#dde5f0;font-size:.72rem}.report-table td:first-child,.report-table td:nth-child(2),.report-table td:nth-child(6),.report-table td:nth-child(7){white-space:nowrap;font-variant-numeric:tabular-nums}.report-table th:nth-child(6),.report-table th:nth-child(7),.report-table td:nth-child(6),.report-table td:nth-child(7){text-align:right}.report-table td:nth-child(7){color:#132a54;font-weight:750}.report-table__stacked,.report-table__secondary{display:block}.report-table__secondary{color:#6b7a92;margin-top:.15rem;font-size:.75rem}.report-table__cancelled td,.report-table tbody tr.report-table__cancelled:nth-child(2n) td{color:#8a5a5a;background:#fff7f7}.report-table__cancelled td:nth-child(5) strong{text-decoration:line-through}.report-breakdown{color:#6b7a92;margin-top:.3rem;font-size:.75rem}.report-breakdown span{color:#5b6578;letter-spacing:.04em;text-transform:uppercase;font-size:.68rem;font-weight:750}.report-breakdown ul{margin:.2rem 0 0;padding-left:1rem;line-height:1.45}.report-empty{color:#52617a;border:1px dashed #c9d5e6;border-radius:.6rem;margin:1rem 0;padding:1rem}@media print{@page{margin:1.2cm}body:has(.report-shell){background:#fff}.report-toolbar,.report-message{display:none!important}body:has(.report-shell) .app-bar{display:none!important}.report-shell{width:100%;margin:0;padding:0}.report-header{margin-bottom:.8rem}.report-summary__card,.report-cashbox{background:#fff}.report-table-wrap{border-color:#333;overflow:visible}.report-table{min-width:0;font-size:9pt}.report-table th,.report-table td{padding:.35rem;font-size:9pt;background:#fff!important}.report-breakdown{break-inside:avoid;display:block!important}.report-teacher{break-inside:avoid}}@media (width<=640px){.report-summary{gap:.4rem}.report-summary__card{padding:.6rem .7rem}.report-summary__card strong{font-size:1.1rem}.report-toolbar{top:4.5rem}.app-bar__inner{gap:.45rem;width:min(100% - 1rem,76rem)}.teacher-identity>span:last-child{display:inline}.schedule-date-bar{gap:.35rem}.date-controls{gap:0;padding:.15rem}.date-controls button{min-width:40px}.date-controls .date-picker{flex:auto;min-width:0}.date-picker__display{text-overflow:ellipsis;max-width:100%;font-size:.76rem;overflow:hidden}.room-controls{min-height:44px;padding:.15rem}.room-toggle{padding-inline:.45rem;font-size:.74rem}.class-add--admin select,.class-add--admin .class-add__name{flex-basis:100%}.workspace-nav__item{padding-inline:.45rem;font-size:.82rem}.report-shell{width:min(100% - 1rem,76rem);padding-top:1rem}.schedule-shell{padding:1rem .5rem 2rem}.workspace-overlay{align-items:end;padding:0}.workspace-panel{border-radius:1rem 1rem 0 0;max-height:min(90vh,46rem)}}@media (width<=600px){.schedule-shell--two-selectors{--schedule-toolbar-height:11rem}}
