:root{--ink:#20241f;--muted:#667066;--line:#d8ddd3;--paper:#f6f4ee;--panel:#fffdf7;--panel-strong:#ebe6d8;--accent:#315f4b;--accent-strong:#204635;--danger:#9d322d;--steel:#334a5f;--focus:#c59d3d}*{box-sizing:border-box}html,body{min-height:100%}body{background:linear-gradient(115deg, #315f4b1f, transparent 34%), linear-gradient(180deg, #f8f6f0 0%, var(--paper) 100%);color:var(--ink);margin:0;font-family:Aptos,Segoe UI,sans-serif}button{cursor:pointer}button:disabled{cursor:not-allowed}@keyframes spin{to{transform:rotate(360deg)}}.button-spinner,.busy-spinner{animation:.9s linear infinite spin}.auth-screen{grid-template-columns:minmax(0,1fr) minmax(360px,460px);min-height:100vh;display:grid}.auth-copy{border-right:1px solid var(--line);flex-direction:column;justify-content:center;padding:56px;display:flex}.brand-mark{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:8px;place-items:center;width:46px;height:46px;display:grid}.brand-mark.compact{width:34px;height:34px}.eyebrow{color:var(--muted);letter-spacing:0;text-transform:uppercase;margin:28px 0 10px;font-size:12px;font-weight:700}.auth-copy h1{max-width:720px;color:var(--ink);letter-spacing:0;margin:0;font-family:Georgia,Times New Roman,serif;font-size:56px;font-weight:600;line-height:1}.system-strip{flex-wrap:wrap;gap:10px;margin-top:34px;display:flex}.language-switcher{max-width:240px;color:var(--muted);text-transform:uppercase;gap:7px;margin-top:22px;font-size:12px;font-weight:800;display:grid}.language-switcher select{border:1px solid var(--line);color:var(--ink);text-transform:none;background:#fffdf7e6;border-radius:999px;outline:none;padding:8px 30px 8px 12px;font-size:13px;font-weight:800}.language-switcher.compact{min-width:150px;margin-top:0;display:inline-grid}.language-switcher.compact span{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.system-strip span,.role-pill{border:1px solid var(--line);color:var(--steel);background:#fffdf7bd;border-radius:999px;padding:8px 11px;font-size:13px;font-weight:700}.login-panel{background:#fffdf7c2;flex-direction:column;justify-content:center;padding:32px;display:flex}.panel-header{gap:14px;margin-bottom:28px;display:flex}.panel-header svg{color:var(--accent);flex:none}.panel-header h2,.topbar h1,.section-heading h2{letter-spacing:0;margin:0;font-size:24px}.panel-header p,.section-heading p,.module-card p{color:var(--muted);margin:6px 0 0;line-height:1.45}.login-form{gap:16px;display:grid}.login-form label{color:var(--muted);gap:8px;font-size:13px;font-weight:700;display:grid}.field-label{align-items:center;gap:5px;display:inline-flex}.required-star{color:var(--danger);font-weight:950}.login-form .checkbox-field{align-items:flex-start;gap:10px;line-height:1.35;display:flex}.login-form .checkbox-field input{width:auto;accent-color:var(--accent);margin-top:2px}.login-form input,.business-card input,.business-card select,.business-card textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:8px;outline:none;padding:12px 13px}.login-form input:focus,.business-card input:focus,.business-card select:focus,.business-card textarea:focus{border-color:var(--focus);box-shadow:0 0 0 3px #c59d3d38}.business-card textarea{resize:vertical;min-height:86px}.date-only-control{position:relative}.date-only-display{cursor:pointer;caret-color:#0000}.date-only-display::placeholder{color:#1b1f1c70}.date-only-control.has-clear .date-only-display{padding-right:48px}.date-only-clear{width:auto;min-height:22px;color:var(--accent);background:#eefcf9;border:1px solid #14796f3d;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:900;line-height:1;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.date-native-input{opacity:0;pointer-events:none;height:1px;position:absolute;top:0;left:0;width:1px!important}.payment-meta-row{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:10px;display:grid}.payment-meta-row.single{grid-template-columns:minmax(0,1fr)}.course-price-pill{background:var(--accent);color:#fff;border-radius:8px;min-height:54px;padding:10px 12px}.course-price-pill span{text-transform:uppercase;color:#ffffffb8;font-size:11px;font-weight:900;display:block}.course-price-pill strong{margin-top:3px;font-size:16px;font-weight:900;display:block}.payment-method-choice{min-height:54px;color:var(--muted);background:#ffffffbd;border:1px solid #315f4b38;border-radius:8px;font-size:13px;font-weight:900}.payment-method-choice.selected{border-color:var(--accent);background:var(--accent);color:#fff}.form-hint{color:var(--muted);margin-top:9px;font-size:12px;font-weight:700;line-height:1.45;display:block}.form-hint.positive{color:var(--accent-strong)}.form-success{color:var(--accent);margin:0;font-size:13px;font-weight:800}.onboarding-card,.empty-state,.selection-summary,.payment-intent-card{color:var(--accent);background:#315f4b14;border:1px solid #315f4b3d;border-radius:8px;gap:7px;padding:14px;display:grid}.onboarding-card span,.empty-state span,.selection-summary span,.payment-intent-card span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:900}.onboarding-card strong,.empty-state strong,.selection-summary strong,.payment-intent-card strong{color:var(--ink);font-size:15px}.onboarding-card p,.selection-summary p,.payment-intent-card p{color:var(--muted);margin:0;font-size:13px;font-weight:700;line-height:1.45}.payment-intent-card{background:#c59d3d1f;border-color:#c59d3d57}.payment-intent-card code{overflow-wrap:anywhere;color:var(--steel);background:#fffdf7b8;border:1px solid #c59d3d47;border-radius:8px;padding:9px 10px;font-size:12px}.checkout-status-card{background:linear-gradient(135deg,#fffdf7f0,#ebe6d880),#ffffffbf;border:1px solid #315f4b38;border-radius:12px;gap:12px;padding:14px;display:grid;box-shadow:0 12px 36px #20241f0f}.checkout-status-head,.checkout-status-grid,.checkout-actions{align-items:center;gap:10px;display:flex}.checkout-status-head,.checkout-actions{justify-content:space-between}.checkout-status-grid{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.checkout-status-card span,.checkout-provider-panel span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:900}.checkout-status-card strong,.checkout-provider-panel strong{color:var(--ink);font-size:15px;font-weight:900;display:block}.checkout-status-card p,.checkout-provider-panel p{color:var(--muted);margin:0;font-size:13px;font-weight:700;line-height:1.45}.checkout-provider-panel{background:#fffdf7b8;border:1px solid #315f4b29;border-radius:10px;gap:7px;padding:12px;display:grid}.checkout-provider-panel code{overflow-wrap:anywhere;color:var(--steel);background:#fff;border:1px solid #315f4b24;border-radius:8px;padding:9px 10px;font-size:12px}.checkout-actions{flex-wrap:wrap}.empty-state.compact{background:#ebe6d86b}.business-card .secondary-action{min-height:38px;color:var(--accent);background:#fff;border-color:#315f4b3d;justify-self:start;padding:0 14px}.registration-picker{gap:10px;display:grid}.registration-tree-card{border:1px solid var(--line);background:#fffdf7c7;border-radius:8px;padding:10px}.registration-tree-card.nested{background:#ebe6d857;margin-top:9px}.registration-tree-card summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;display:flex}.registration-tree-card summary strong{color:var(--ink)}.registration-tree-card summary span{color:var(--muted);font-size:12px;font-weight:900}.registration-class-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:9px;margin-top:10px;display:grid}.business-card .registration-class-card{border:1px solid var(--line);min-height:112px;color:var(--ink);text-align:left;background:#fff;justify-content:stretch;gap:6px;padding:13px;display:grid}.business-card .registration-class-card.disabled{color:var(--muted);background:#ebe6d875;border-color:#d8ddd3e6}.registration-class-card span{color:var(--muted);font-size:12px;font-weight:800}.registration-card-topline{justify-content:space-between;align-items:center;gap:8px;display:flex}.registration-card-topline strong{color:var(--ink);font-size:14px}.class-status-chip{background:#315f4b14;border:1px solid #315f4b38;border-radius:999px;padding:4px 8px;color:var(--accent)!important}.class-status-chip.selected{background:var(--accent);color:#fff!important}.registration-price-line{color:var(--accent)!important;font-weight:900!important}.invite-result{color:var(--accent);background:#315f4b14;border:1px solid #315f4b3d;border-radius:8px;gap:5px;padding:12px;display:grid}.invite-result span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:900}.invite-result strong{overflow-wrap:anywhere;font-size:13px}.invite-result-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.business-card .copy-link-button{min-height:34px;color:var(--accent);box-shadow:none;white-space:nowrap;background:#fff;border-color:#0f766e3d;padding:0 12px}.business-card .copy-link-button:hover:not(:disabled){color:var(--accent-strong);box-shadow:none;background:#def7f2;border-color:#0f766e5c;transform:none}.data-row .invite-row-url{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.invite-row-url a{color:var(--accent);overflow-wrap:anywhere;font-size:12px;font-weight:900}.inline-copy-button{min-height:28px;color:var(--accent);background:#fff;border:1px solid #0f766e38;border-radius:8px;align-items:center;gap:5px;padding:4px 8px;font-size:12px;font-weight:850;display:inline-flex}.inline-copy-button:hover{color:var(--accent-strong);background:#def7f2;border-color:#0f766e5c}.discount-batch-list{gap:14px;margin-top:14px;display:grid}.discount-batch-card{border:1px solid var(--line);background:#fff;border-radius:8px;gap:14px;padding:14px;display:grid;box-shadow:0 8px 18px #0f172a0d}.discount-batch-header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.discount-batch-header strong{color:var(--ink);font-size:16px;font-weight:900;display:block}.discount-batch-header span,.discount-counts span{color:var(--muted);font-size:12px;font-weight:800;line-height:1.45;display:block}.discount-counts{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.discount-counts span{color:var(--accent);background:#effcf9;border:1px solid #0f766e29;border-radius:999px;padding:5px 8px}.discount-code-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;display:grid}.discount-code-pill{background:#f8fafc;border:1px solid #0f766e29;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 8px;padding:9px;display:grid}.discount-code-pill span{color:var(--ink);overflow-wrap:anywhere;font-size:13px;font-weight:900}.discount-code-pill small{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:850}.discount-code-pill button{min-height:30px;color:var(--accent);background:#fff;border:1px solid #0f766e38;border-radius:8px;grid-row:span 2;align-items:center;gap:5px;padding:4px 8px;font-size:12px;font-weight:850;display:inline-flex}.discount-code-pill.expired,.discount-code-pill.void,.discount-code-pill.redeemed{opacity:.72;background:#f1f5f9;border-color:#64748b33}@media (max-width:680px){.invite-result-row{grid-template-columns:1fr}.business-card .copy-link-button{justify-self:start}.discount-batch-header{display:grid}.discount-counts{justify-content:flex-start}}.inline-invite-panel{background:#315f4b0f;border:1px solid #315f4b3d;border-radius:8px;gap:10px;padding:12px;display:grid}.inline-invite-panel>div:first-child{gap:4px;display:grid}.inline-invite-panel strong{color:var(--ink);font-size:14px}.inline-invite-panel span,.field-help{color:var(--muted);font-size:12px;font-weight:800;line-height:1.45}.login-form button,.module-card button,.business-card button{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:44px;font-weight:800;display:inline-flex}.primary-link-button{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:8px;justify-content:center;align-items:center;min-height:44px;font-weight:800;text-decoration:none;display:inline-flex}.business-card .payment-method-choice{color:var(--muted);background:#ffffffbd;border-color:#315f4b38}.business-card .payment-method-choice.selected{border-color:var(--accent);background:var(--accent);color:#fff}.busy-overlay{z-index:60;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:all;background:#20241f52;place-items:center;display:grid;position:fixed;inset:0}.busy-card{background:var(--accent);color:#fff;border:1px solid #ffffff2e;border-radius:16px;justify-items:center;gap:8px;min-width:240px;padding:22px 24px;display:grid;box-shadow:0 20px 60px #20241f42}.busy-card strong{font-size:16px;font-weight:900}.busy-card span{color:#ffffffbd;font-size:12px;font-weight:700}.login-form button:hover:not(:disabled){background:var(--accent-strong)}.form-error{color:var(--danger);margin:0;font-size:13px;font-weight:700}.workspace-error{margin-top:18px}.shell{grid-template-columns:244px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);background:#fffdf7c7;padding:22px}.sidebar-brand{align-items:center;gap:10px;font-weight:900;display:flex}.sidebar nav{gap:7px;margin-top:30px;display:grid}.nav-item{width:100%;color:var(--muted);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:9px;padding:10px 11px;font-weight:800;text-decoration:none;display:flex}.nav-item.active{background:var(--panel-strong);color:var(--ink)}.workspace{min-width:0;padding:28px}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding-bottom:24px;display:flex}.topbar .eyebrow{margin:0 0 6px}.topbar-actions{align-items:center;gap:10px;display:flex}.icon-button{border:1px solid var(--line);background:var(--panel);width:42px;height:42px;color:var(--ink);border-radius:8px;place-items:center;display:grid}.status-grid,.module-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:22px;display:grid}.status-tile,.module-card{border:1px solid var(--line);background:#fffdf7c7;border-radius:8px;padding:18px}.status-tile span{color:var(--muted);font-size:13px;font-weight:800;display:block}.status-tile strong{margin-top:7px;font-size:24px;display:block}.module-section,.data-section{margin-top:30px}.action-grid{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}.business-card{border:1px solid var(--line);background:#fffdf7d1;border-radius:8px;gap:14px;padding:18px;display:grid}.business-card label{color:var(--muted);gap:8px;font-size:13px;font-weight:800;display:grid}.compact-heading{flex-direction:column;align-items:start;gap:0}.section-heading{justify-content:space-between;align-items:end;gap:16px;display:flex}.module-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.module-card{min-height:206px;display:grid}.module-card-header{color:var(--accent);justify-content:space-between;align-items:center;font-size:12px;font-weight:900;display:flex}.module-card h3{margin:18px 0 0;font-size:20px}.module-card button{border-color:var(--line);background:var(--panel-strong);color:var(--muted);align-self:end;margin-top:18px}.data-list{gap:10px;margin-top:14px;display:grid}.alpha-group{margin-top:16px}.alpha-group h3{color:var(--muted);letter-spacing:.08em;margin:0;font-size:13px;font-weight:900}.list-scroll-panel{margin-top:10px;padding-right:4px}.list-scroll-panel.is-frozen{max-height:min(56vh,560px);overflow-y:auto}.tree-list{gap:12px;margin-top:14px;display:grid}.tree-card{border:1px solid var(--line);background:#fffdf7c7;border-radius:8px;padding:12px}.tree-card.nested{background:#ebe6d86b;margin-top:10px}.tree-card summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;display:flex}.tree-card summary span{color:var(--muted);font-size:13px;font-weight:800}.compact-grid{margin-top:14px}.warning-tile,.due-row,.review-row{border-color:#9d322d57}.report-panel{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.report-filter-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.report-filter-row label{color:var(--muted);text-transform:uppercase;gap:8px;font-size:12px;font-weight:900;display:grid}.data-row{border:1px solid var(--line);background:#fffdf7c7;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;min-height:72px;padding:0 0 0 16px;transition:border-color .12s,background-color .12s;display:flex;overflow:hidden}.data-row strong,.data-row span{display:block}.data-row strong{color:var(--ink);font-size:15px}.data-row>button{color:#fff;background:#c7352f;border:0;border-left:1px solid #8018163d;border-radius:0;flex:0 0 92px;align-self:stretch;place-items:center;width:92px;transition:background-color .12s,transform .12s;display:grid}.data-row>button:hover{background:#b72f29}.data-row>button:active{transform:translateY(1px)}.data-row>button svg{stroke-width:2.2px;width:16px;height:16px}.attendance-student-list{gap:10px;display:grid}.attendance-student-card{border:1px solid var(--line);background:#ebe6d842;border-radius:8px;gap:12px;padding:14px;display:grid}.attendance-student-card strong,.attendance-student-card span{display:block}.attendance-student-card strong{color:var(--ink);font-size:15px}.attendance-student-card span{color:var(--muted);margin-top:3px;font-size:13px;font-weight:800}.attendance-status-row{flex-wrap:wrap;gap:8px;display:flex}.attendance-status-row button{border:1px solid var(--line);min-height:34px;color:var(--muted);background:#fff;border-radius:999px;padding:0 12px;font-size:12px;font-weight:900}.statistics-heading{align-items:start}.statistics-tabs,.attendance-view-tabs{border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#fff;border-radius:8px;gap:6px;padding:4px;display:inline-flex}.attendance-view-tabs{margin-top:16px}.statistics-tabs{align-self:start}.statistics-tabs button,.attendance-view-tabs button{min-height:38px;color:var(--steel);background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:850;display:inline-flex}.statistics-tabs button.selected,.attendance-view-tabs button.selected{background:var(--accent);color:#fff}.statistics-tabs svg,.attendance-view-tabs svg{width:16px;height:16px}.statistics-placeholder{align-content:center;min-height:160px}.statistics-placeholder h3{margin:0 0 8px}.statistics-placeholder p{color:var(--muted);margin:0;font-weight:760}.report-section{margin-top:18px}.report-card{background:var(--panel);gap:16px}.report-toolbar{grid-template-columns:minmax(180px,260px) minmax(260px,1fr) auto auto;align-items:end;gap:12px;display:grid}.report-control{gap:7px;display:grid}.report-control span{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:900}.report-search-control{min-width:0}.report-segmented{border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#fff;border-radius:8px;align-self:end;gap:4px;padding:4px;display:inline-flex}.report-segmented button,.report-export-button,.report-column-menu summary,.report-column-actions button{color:var(--steel);background:0 0;border:0;border-radius:6px;font-size:13px;font-weight:850}.report-segmented button{min-height:38px;padding:0 12px}.report-segmented button.selected{background:var(--accent);color:#fff}.report-export-button{white-space:nowrap;height:48px;color:var(--accent);box-shadow:var(--shadow-sm);background:#e9fbf6;border:1px solid #0f766e3d;justify-content:center;align-self:end;align-items:center;gap:8px;padding:0 14px;display:inline-flex}.report-export-button:disabled{cursor:not-allowed;border-color:var(--line);color:var(--muted);opacity:.72;background:#f8fafc}.report-export-button svg{flex:none}.report-column-menu{position:relative}.report-column-menu summary{border:1px solid var(--line);min-height:48px;box-shadow:var(--shadow-sm);cursor:pointer;background:#fff;align-items:center;padding:0 14px;list-style:none;display:inline-flex}.report-column-menu summary::-webkit-details-marker{display:none}.report-column-list{z-index:20;border:1px solid var(--line);width:min(520px,80vw);max-height:440px;box-shadow:var(--shadow-lg);background:#fff;border-radius:8px;gap:8px;margin-top:8px;padding:10px;display:grid;position:absolute;right:0;overflow:auto}.report-column-control{border:1px solid #94a3b83d;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px;display:grid}.report-column-control label{min-width:0;color:var(--ink);align-items:center;gap:8px;font-size:13px;font-weight:850;display:inline-flex}.report-column-control input{width:16px;height:16px}.report-column-actions{gap:4px;display:inline-flex}.report-column-actions button{border:1px solid var(--line);background:#fff;justify-content:center;align-items:center;min-height:30px;padding:0 8px;display:inline-flex}.report-column-actions button.selected{color:var(--accent);background:#e6faf5;border-color:#0f766e57}.report-context-row{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px 18px;font-size:13px;font-weight:800;display:flex}.report-context-row strong{color:var(--ink)}.report-loading{color:var(--accent);align-items:center;gap:6px;display:inline-flex}.report-table-shell{border:1px solid var(--line);background:#fff;border-radius:8px;max-height:calc(100dvh - 340px);overflow:auto}.report-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;min-width:max-content}.report-table th,.report-table td{color:var(--ink);text-align:left;vertical-align:top;background:#fff;border-bottom:1px solid #e2e8f0e0;border-right:1px solid #e2e8f0e0;padding:10px 12px}.report-table th{z-index:5;background:#f8fafc;font-size:12px;font-weight:900;position:sticky;top:0}.report-table .report-table-filter-row th{z-index:4;background:#f8fafc;top:43px}.report-table th.pinned,.report-table td.pinned{z-index:7;background:#fff;position:sticky;box-shadow:1px 0 #94a3b847}.report-table th.pinned{z-index:9;background:#f8fafc}.report-table .report-table-filter-row th.pinned{z-index:8}.report-table th button{width:100%;color:inherit;text-align:left;font:inherit;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;padding:0;display:flex}.report-table th button strong{color:var(--accent);letter-spacing:.04em;font-size:10px}.report-table td{overflow-wrap:anywhere;font-size:13px;font-weight:760}.report-table .numeric,.report-table .numeric button{text-align:right}.report-table input,.report-table select{width:100%;min-height:30px;color:var(--ink);background:#fff;border:1px solid #cbd5e1b8;border-radius:6px;padding:0 8px;font-size:12px;font-weight:760}.report-table .report-table-filter-row input,.report-table .report-table-filter-row select{min-width:0}.report-filter-empty{min-height:30px;display:block}.report-table th button.date-only-clear{width:auto;min-height:22px;color:var(--accent);text-align:center;background:#eefcf9;border:1px solid #14796f3d;border-radius:999px;justify-content:center;align-items:center;gap:0;padding:3px 8px;font-size:11px;font-weight:900;line-height:1;display:inline-flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.attendance-workflow{grid-template-columns:minmax(280px,360px) minmax(0,1fr);align-items:start;gap:18px;margin-top:18px;display:grid}.attendance-class-panel,.attendance-main-panel{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow-sm);border-radius:8px}.attendance-class-panel{gap:12px;max-height:calc(100dvh - 116px);padding:16px;display:grid;position:sticky;top:88px;overflow:auto}.attendance-class-list,.attendance-session-list,.attendance-history-records{gap:10px;display:grid}.attendance-class-button{border:1px solid var(--line);width:100%;min-height:72px;color:var(--ink);text-align:left;background:#fff;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;transition:border-color .14s,background-color .14s,box-shadow .14s;display:grid}.attendance-class-button:hover,.attendance-class-button.selected{box-shadow:var(--shadow-sm);background:#effcf9;border-color:#0f766e70}.attendance-class-button strong,.attendance-class-button span{display:block}.attendance-class-button strong{font-size:14px;font-weight:850}.attendance-class-button span{color:var(--muted);margin-top:4px;font-size:12px;font-weight:760}.attendance-class-rate{white-space:nowrap;background:#e6faf5;border:1px solid #0f766e2e;border-radius:999px;padding:4px 8px;color:var(--accent)!important;margin-top:0!important}.attendance-main-panel{gap:14px;min-height:420px;padding:18px;display:grid}.attendance-main-header{grid-template-columns:minmax(0,1fr) minmax(220px,320px);align-items:start;gap:18px;display:grid}.attendance-main-header h3{margin:4px 0 0;font-size:22px}.attendance-main-header p{color:var(--muted);margin:6px 0 0;font-size:13px;font-weight:760}.attendance-eyebrow{color:var(--accent);text-transform:uppercase;font-size:12px;font-weight:900}.attendance-date-control{justify-self:end;gap:7px;display:grid}.attendance-date-picker{width:min(100%,292px);position:relative}.attendance-date-shell{background:#f8fafc;border:1px solid #315f4b29;border-radius:8px;grid-template-columns:38px minmax(174px,1fr) 38px;gap:6px;padding:5px;display:grid;box-shadow:inset 0 1px #ffffffb8}.attendance-main-panel .attendance-date-step,.attendance-main-panel .attendance-date-display-button,.attendance-main-panel .attendance-calendar-nav,.attendance-main-panel .attendance-calendar-day,.attendance-main-panel .attendance-inline-action{box-shadow:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;font-weight:900;transition:border-color .14s,background-color .14s,color .14s,box-shadow .14s,transform .14s;display:inline-flex}.attendance-main-panel .attendance-date-step{min-height:38px;color:var(--accent);background:0 0;border:1px solid #0000;padding:0}.attendance-main-panel .attendance-date-display-button{min-height:38px;color:var(--ink);background:#fff;border:1px solid #315f4b2e;justify-content:flex-start;padding:0 10px;box-shadow:0 1px 2px #0f172a0d}.attendance-main-panel .attendance-date-display-button svg{color:var(--accent);flex:none}.attendance-main-panel .attendance-date-display-button.no-lesson{background:#9d322d14;border-color:#9d322d5c}.attendance-main-panel .attendance-date-display-button.no-lesson svg,.attendance-main-panel .attendance-date-display-button.no-lesson .attendance-date-display-copy span{color:#9d322d}.attendance-date-display-copy{align-items:baseline;gap:8px;min-width:0;display:flex}.attendance-date-display-copy strong{color:var(--ink);white-space:nowrap;font-size:13px;font-weight:900}.attendance-date-display-copy span{color:var(--muted);text-transform:capitalize;font-size:11px;font-weight:900}.attendance-calendar-popover{z-index:20;background:#fffdf7fa;border:1px solid #315f4b2e;border-radius:12px;width:min(320px,100vw - 40px);padding:12px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 20px 46px #20241f29}.attendance-calendar-header{grid-template-columns:34px 1fr 34px;align-items:center;gap:8px;margin-bottom:10px;display:grid}.attendance-calendar-header strong{color:var(--ink);text-align:center;text-transform:capitalize;font-size:14px;font-weight:900}.attendance-main-panel .attendance-calendar-nav{min-height:34px;color:var(--accent);background:#315f4b0f;border:1px solid #315f4b29;justify-content:center;align-items:center;padding:0;display:inline-flex}.attendance-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.attendance-calendar-weekday{color:var(--muted);text-align:center;font-size:11px;font-weight:900}.attendance-main-panel .attendance-calendar-day{min-height:34px;color:var(--ink);background:0 0;border:1px solid #0000;padding:0;font-size:12px;position:relative}.attendance-main-panel .attendance-calendar-day.outside{color:#6670666b}.attendance-main-panel .attendance-calendar-day.today{background:#c59d3d1f;border-color:#c59d3d6b}.attendance-main-panel .attendance-calendar-day.has-session{color:#9a3412;background:#fff7ed;border-color:#d977065c}.attendance-main-panel .attendance-calendar-day.has-lesson{color:#0f766e;background:#147f7017;border-color:#147f7047}.attendance-main-panel .attendance-calendar-day.no-lesson{color:#9d322d;background:#9d322d14;border-color:#9d322d4d}.attendance-main-panel .attendance-calendar-day.has-session:after{content:"";background:#d97706;border-radius:999px;width:5px;height:5px;position:absolute;bottom:5px;right:5px}.attendance-main-panel .attendance-calendar-day.selected{border-color:var(--accent);background:var(--accent);color:#fff}.attendance-main-panel .attendance-calendar-day.selected.no-lesson{color:#fff;background:#9d322d;border-color:#9d322d}.attendance-main-panel .attendance-calendar-day.selected.has-session:after{background:#fed7aa}.attendance-session-banner{background:#fffbeb;border:1px solid #b7791f4d;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;padding:12px;display:flex}.attendance-session-banner.saved{background:#effcf9;border-color:#0f766e38}.attendance-session-banner.no-lesson{background:#9d322d14;border-color:#9d322d47}.attendance-session-banner.no-lesson strong{color:#9d322d}.attendance-session-banner strong,.attendance-session-banner span{display:block}.attendance-session-banner span{color:var(--muted);margin-top:3px;font-size:12px;font-weight:760}.attendance-session-banner-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.attendance-session-rate-chip{min-height:40px;color:var(--accent);background:#fff;border:1px solid #0f766e38;border-radius:8px;align-items:center;gap:8px;padding:0 12px;display:inline-flex}.attendance-session-rate-chip.compact{background:#e6faf5;border-radius:999px;min-height:30px;padding:4px 9px}.attendance-session-rate-chip span{color:var(--muted);text-transform:uppercase;margin-top:0;font-size:11px;font-weight:900}.attendance-session-rate-chip strong{color:var(--accent);font-size:14px;font-weight:950}.attendance-summary-row,.attendance-session-counts{flex-wrap:wrap;gap:8px;display:flex}.attendance-status-chip,.attendance-status-badge{border:1px solid var(--line);color:var(--steel);background:#fff;border-radius:999px;align-items:center;gap:5px;padding:5px 9px;font-size:12px;font-weight:850;display:inline-flex}.attendance-status-chip.present,.attendance-status-badge.present{color:var(--accent);background:#e6faf5;border-color:#0f766e33}.attendance-status-chip.late,.attendance-status-badge.late{color:#a16207;background:#fffbeb;border-color:#b7791f40}.attendance-status-chip.absent,.attendance-status-badge.absent{color:var(--danger);background:#fff5f4;border-color:#c241363d}.attendance-status-chip.excused,.attendance-status-badge.excused{color:#1d4ed8;background:#eff6ff;border-color:#2563eb33}.attendance-roster-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.attendance-roster-actions>span{color:var(--muted);font-size:13px;font-weight:800}.attendance-main-panel .attendance-inline-action{min-height:40px;color:var(--accent);white-space:nowrap;background:#fff;border:1px solid #315f4b38;padding:0 14px}.attendance-main-panel .attendance-inline-action:hover:not(:disabled),.attendance-main-panel .attendance-date-step:hover:not(:disabled),.attendance-main-panel .attendance-date-display-button:hover:not(:disabled),.attendance-main-panel .attendance-calendar-nav:hover:not(:disabled),.attendance-main-panel .attendance-calendar-day:hover:not(:disabled){color:var(--accent);background:#effcf9;border-color:#0f766e5c}.attendance-main-panel .attendance-calendar-day.selected:hover:not(:disabled){border-color:var(--accent);background:var(--accent);color:#fff}.attendance-main-panel .attendance-inline-action:hover:not(:disabled),.attendance-main-panel .attendance-date-display-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 18px #0f766e1a}.attendance-main-panel .attendance-today-button{background:#fff}.attendance-main-panel .attendance-mark-all-button{color:var(--accent);background:#e6faf5;border-color:#0f766e52}.attendance-student-card.roster-card{background:#fff;grid-template-columns:minmax(180px,1fr) auto;align-items:center}.attendance-saved-record-note{width:fit-content;color:var(--accent);background:#315f4b14;border:1px solid #315f4b2e;border-radius:999px;align-items:center;margin-top:7px;padding:4px 9px;font-size:11px;font-weight:900;display:inline-flex}.attendance-status-row{justify-content:flex-end}.attendance-status-row button:hover{color:var(--accent);background:#effcf9;border-color:#0f766e5c}.attendance-save-button{background:linear-gradient(180deg, #ffffff1f, transparent), var(--accent);color:#fff;border:1px solid #0f766eb8;border-radius:8px;justify-content:center;align-items:center;gap:9px;width:100%;min-height:52px;font-size:15px;font-weight:900;transition:background-color .14s,border-color .14s,box-shadow .14s,transform .14s;display:inline-flex;box-shadow:0 12px 24px #0f766e2e}.attendance-save-button:hover:not(:disabled){border-color:var(--accent-strong);background:linear-gradient(180deg, #ffffff24, transparent), var(--accent-strong);transform:translateY(-1px);box-shadow:0 16px 30px #0f766e38}.attendance-save-button:active:not(:disabled){transform:translateY(0)}.attendance-save-button:disabled{color:#f8fafc;box-shadow:none;cursor:not-allowed;background:#cbd5e1;border-color:#94a3b85c}.attendance-save-button svg{stroke-width:2.4px;flex:none}.teacher-attendance-panel{min-height:auto}.teacher-attendance-review-card{gap:14px;margin-bottom:18px;display:grid}.teacher-attendance-review-card .section-heading,.teacher-attendance-review-card .report-table-shell{grid-column:1/-1}.teacher-attendance-review-card .report-table-shell{max-height:380px}.teacher-attendance-panel .status-grid{margin-top:0}.teacher-attendance-list{gap:10px}.teacher-attendance-card{background:#fff}.teacher-attendance-actions{justify-content:flex-end;align-items:center}.teacher-attendance-actions .attendance-inline-action{min-width:92px}.teacher-attendance-actions .attendance-status-badge{margin-right:4px}.teacher-attendance-note-row,.teacher-attendance-day-issue-row{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;width:100%;display:grid}.teacher-attendance-note-row label,.teacher-attendance-day-issue-row label,.teacher-attendance-adjust-panel label{min-width:0;color:var(--muted);text-transform:uppercase;gap:5px;font-size:11px;font-weight:900;display:grid}.teacher-attendance-note-row textarea,.teacher-attendance-day-issue-row textarea,.teacher-attendance-adjust-panel textarea,.teacher-attendance-adjust-panel select{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#fff;border-radius:8px;font-size:13px;font-weight:700}.teacher-attendance-note-row textarea,.teacher-attendance-day-issue-row textarea,.teacher-attendance-adjust-panel textarea{resize:vertical;min-height:42px;padding:9px 10px}.teacher-attendance-day-issue-row{background:#f0fdfaa6;border:1px solid #0f766e29;border-radius:8px;padding:10px}.teacher-attendance-adjust-panel select{min-height:42px;padding:0 10px}.table-action{color:var(--accent-strong);cursor:pointer;background:#14b8a614;border:1px solid #0f766e38;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:900}.table-action.urgent{background:var(--accent);color:#fff}.table-action.quiet{color:var(--steel);background:#f8fafc;border-color:#64748b3d}.teacher-attendance-no-action{color:var(--muted);white-space:nowrap;background:#14b8a612;border:1px solid #0f766e29;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:900;display:inline-flex}.teacher-attendance-adjust-row td{background:#f8fafc}.teacher-attendance-adjust-panel{background:#fff;border:1px solid #0f766e2e;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px;display:grid}.teacher-attendance-adjust-actions{grid-column:1/-1;justify-content:flex-end;gap:10px;display:flex}.teacher-attendance-adjust-panel .attendance-inline-action{background:var(--accent);color:#fff;cursor:pointer;border:1px solid #0f766e3d;border-radius:8px;padding:10px 16px;font-size:13px;font-weight:900}.attendance-main-panel .attendance-inline-action:disabled,.attendance-main-panel .attendance-date-step:disabled,.attendance-main-panel .attendance-date-display-button:disabled,.attendance-main-panel .attendance-calendar-nav:disabled,.attendance-main-panel .attendance-calendar-day:disabled{color:#94a3b8;box-shadow:none;cursor:not-allowed;background:#f8fafc;border-color:#94a3b847;transform:none}.attendance-status-badge.checked-in{color:#b45309;background:#fff7ed;border-color:#d9770638}.attendance-status-badge.checked-out{color:var(--accent);background:#e6faf5;border-color:#0f766e38}.attendance-session-card{border:1px solid var(--line);background:#fff;border-radius:8px;gap:12px;padding:14px;display:grid}.attendance-session-card-header{justify-content:space-between;gap:16px;display:flex}.business-card .attendance-session-toggle,.attendance-session-toggle{width:100%;min-height:auto;color:inherit;text-align:left;box-shadow:none;background:0 0;border:0;align-items:center;padding:0}.attendance-session-toggle:hover{color:inherit}.attendance-session-toggle-main{align-items:center;gap:10px;min-width:0;display:flex}.attendance-session-toggle-icon{color:var(--muted);flex:none;transition:transform .14s,color .14s}.attendance-session-toggle-icon.expanded{color:var(--brand);transform:rotate(90deg)}.attendance-session-card-header strong,.attendance-session-card-header span{display:block}.attendance-session-card-header span{color:var(--muted);margin-top:4px;font-size:12px;font-weight:760}.attendance-history-records{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.attendance-history-record{border:1px solid var(--line);background:#f8fafc;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;min-height:42px;padding:8px 10px;display:flex}.attendance-history-record>span{color:var(--ink);font-size:13px;font-weight:800}@media (max-width:920px){.auth-screen,.shell{grid-template-columns:1fr}.auth-copy{border-right:0;border-bottom:1px solid var(--line);min-height:42vh;padding:32px}.auth-copy h1{font-size:40px}.sidebar{z-index:2;border-right:0;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 18px;display:flex;position:sticky;top:0}.sidebar nav{margin-top:0;display:flex}.status-grid,.module-grid{grid-template-columns:1fr 1fr}.action-grid{grid-template-columns:1fr}}@media (max-width:620px){.login-panel,.workspace{padding:20px}.auth-copy{padding:24px 20px}.auth-copy h1{font-size:34px}.topbar,.section-heading{flex-direction:column;align-items:start}.status-grid,.module-grid{grid-template-columns:1fr}.sidebar-brand span,.nav-item{font-size:13px}}:root{--ink:#111827;--muted:#64748b;--line:#dbe3ec;--paper:#f4f7fb;--panel:#fff;--panel-strong:#eef3f8;--accent:#0f766e;--accent-strong:#0b5f59;--danger:#c24136;--steel:#334155;--focus:#2563eb;--success:#16803c;--warning:#b7791f;--nav:#0d1726;--nav-soft:#132239;--nav-muted:#9fb0c4;--nav-line:#ffffff1a;--shadow-sm:0 1px 2px #0f172a0d;--shadow-md:0 12px 28px #0f172a14}html{background:var(--paper)}body{color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background:linear-gradient(#f8fafc 0%,#f3f6fa 36%,#edf2f7 100%);font-family:Inter,Aptos,Segoe UI,system-ui,-apple-system,sans-serif;font-size:15px}button,input,select{font:inherit}button,a,summary,select{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #2563eb38}::selection{background:#0f766e2e}.button-spinner,.busy-spinner,.spin{animation:.9s linear infinite spin}.auth-screen{background:var(--paper);grid-template-columns:minmax(0,1fr) minmax(380px,450px);gap:20px;min-height:100dvh;padding:20px;display:grid}.auth-copy{color:#fff;min-height:calc(100dvh - 40px);box-shadow:var(--shadow-md);background:linear-gradient(135deg,#0f766e47,#0000 42%),linear-gradient(#111c2e 0%,#0d1726 100%);border:1px solid #ffffff14;border-radius:8px;justify-content:center;padding:clamp(38px,5vw,64px)}.auth-copy .brand-mark,.login-copy .brand-mark{color:#fff;background:#ffffff1a;border-color:#ffffff29}.auth-copy .eyebrow{color:#a7f3d0}.auth-copy h1{color:#fff;max-width:780px;font-family:inherit;font-size:clamp(42px,5vw,72px);font-weight:850;line-height:.98}.system-strip span,.auth-copy .language-switcher select{color:#e5edf6;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffff14;border-color:#ffffff29}.login-panel{border:1px solid var(--line);box-shadow:var(--shadow-md);background:#ffffffe6;border-radius:8px;align-self:center;padding:34px}.panel-header{border-bottom:1px solid var(--line);align-items:flex-start;padding-bottom:22px}.panel-header h2,.topbar h1,.section-heading h2{color:var(--ink);font-size:24px;font-weight:850}.login-shell{background:var(--paper);place-items:center;min-height:100dvh;padding:32px;display:grid}.login-card{border:1px solid var(--line);background:var(--panel);width:min(1080px,100%);box-shadow:var(--shadow-md);border-radius:8px;grid-template-columns:minmax(0,.92fr) minmax(410px,1.08fr);display:grid;overflow:hidden}.login-copy{background:linear-gradient(135deg, #0f766e47, transparent 46%), var(--nav);color:#fff;flex-direction:column;justify-content:center;min-height:620px;padding:44px;display:flex}.brand-row{color:#fff;align-items:center;gap:12px;font-size:14px;font-weight:900;display:flex}.login-copy h1{color:#fff;margin:28px 0 0;font-size:clamp(34px,4vw,52px);font-weight:850;line-height:1.02}.login-copy p{color:#c7d2e1;max-width:520px;margin:16px 0 0;line-height:1.55}.login-card>.login-form,.login-card>form.login-form{align-content:center;padding:38px}.login-form{gap:15px}.login-form label,.business-card label{color:var(--steel);text-transform:none;font-size:12px;font-weight:850}.login-form input,.login-form select,.business-card input,.business-card select,.business-card textarea,.report-filter-row select,.language-switcher select{border:1px solid var(--line);min-height:42px;color:var(--ink);box-shadow:var(--shadow-sm);background:#fff;border-radius:8px;transition:border-color .14s,box-shadow .14s,background-color .14s}.login-form input:focus,.login-form select:focus,.business-card input:focus,.business-card select:focus,.business-card textarea:focus,.report-filter-row select:focus,.language-switcher select:focus{border-color:#2563eb94;box-shadow:0 0 0 4px #2563eb1a}.login-form button,.primary-link-button,.business-card button,.module-card button{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:8px;min-height:42px;font-size:14px;font-weight:850;transition:background-color .14s,border-color .14s,box-shadow .14s,transform .14s;box-shadow:0 1px 2px #0f172a14}.login-form button:hover:not(:disabled),.primary-link-button:hover,.business-card button:hover:not(:disabled){border-color:var(--accent-strong);background:var(--accent-strong);transform:translateY(-1px);box-shadow:0 10px 20px #0f766e29}.primary-link-button{padding:0 18px}.form-error{color:#9f2d25;background:#c2413612;border:1px solid #c241362e;border-radius:8px;padding:10px 12px}.form-message{border:1px solid #0000;border-radius:8px;margin:0;padding:12px 14px;font-size:15px;font-weight:850;line-height:1.45}.form-message.success{color:#116b33;background:#16803c14;border-color:#16803c38}.form-message.error{color:#9f2d25;background:#c2413612;border-color:#c241362e}.workspace-message{margin-top:18px}.invite-shell{align-items:start;padding:24px}.invite-card{grid-template-columns:minmax(320px,420px) minmax(0,1fr);width:min(1188px,100%)}.invite-copy{justify-content:center;min-height:calc(100dvh - 48px)}.invite-summary{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.invite-summary span,.invite-meta-grid span{color:#e5edf6;background:#ffffff14;border:1px solid #ffffff26;border-radius:8px;padding:8px 10px;font-size:12px;font-weight:850}.invite-card>.invite-form{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:14px 22px;max-height:calc(100dvh - 48px);padding:clamp(30px,3.5vw,48px);overflow:auto}.invite-form-header,.invite-form .invite-name-grid,.invite-form .field-wide,.invite-form .invite-consent-group,.invite-form .invite-password-grid,.invite-form>.form-error,.invite-submit{grid-column:1/-1}.invite-form-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:18px;padding-bottom:22px;display:flex}.invite-form-header span{color:var(--muted);font-size:12px;font-weight:850}.invite-form-header h2{color:var(--ink);letter-spacing:0;margin:4px 0 0;font-size:26px;font-weight:850}.invite-meta-grid{gap:8px;min-width:min(280px,100%);display:grid}.invite-meta-grid span{overflow-wrap:anywhere;border-color:var(--line);color:var(--steel);background:#f8fafc}.invite-form .invite-name-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px 22px;display:grid}.invite-form .invite-name-grid label{min-width:0}.invite-form .checkbox-field{min-height:24px;color:var(--steel);grid-template-columns:18px minmax(0,1fr);align-items:center;gap:9px;margin:0;line-height:1.35;display:grid}.invite-form .invite-consent-group{gap:8px;margin:0;display:grid}.invite-form .checkbox-field input{width:18px;height:18px;min-height:18px;box-shadow:none;accent-color:var(--accent);place-self:center start;margin:0;padding:0}.invite-form .checkbox-field input:focus{box-shadow:0 0 0 3px #2563eb1f}.invite-form .checkbox-field>span{padding-top:1px;display:block}.invite-form .checkbox-field .required-star{padding:0;display:inline}.invite-form .invite-password-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px 22px;display:grid}.invite-form .invite-password-grid label{min-width:0}.invite-form .form-hint,.invite-form .form-success,.invite-form .form-error{line-height:1.45}.invite-status-panel{align-content:center}.shell{background:var(--paper);grid-template-columns:268px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:linear-gradient(180deg, #0f766e24, transparent 38%), var(--nav);color:#fff;border-right:0;height:100vh;padding:18px 14px;position:sticky;top:0;overflow-y:auto}.sidebar-brand{border-bottom:1px solid var(--nav-line);color:#fff;gap:12px;min-height:52px;padding:6px 10px 18px}.sidebar-brand span{letter-spacing:0;font-size:14px}.brand-mark.compact{border-color:var(--nav-line);background:#ffffff14}.sidebar nav{gap:5px;margin-top:18px}.nav-item{min-height:42px;color:var(--nav-muted);border:1px solid #0000;border-radius:8px;padding:10px 12px;font-size:14px;font-weight:820;transition:background-color .14s,color .14s,border-color .14s}.nav-item:hover{border-color:var(--nav-line);color:#fff;background:#ffffff0f}.nav-item.active{color:#fff;background:linear-gradient(135deg,#14b8a63d,#ffffff14);border-color:#2dd4bf47;box-shadow:inset 3px 0 #2dd4bf}.workspace{width:100%;min-width:0;max-width:1540px;margin:0 auto;padding:24px 32px 56px}.topbar{z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f4f7fbdb;border-bottom:1px solid #dbe3ece6;margin:-24px -32px 24px;padding:18px 32px;position:sticky;top:0}.topbar h1{font-size:clamp(22px,2vw,30px);line-height:1.12}.topbar .eyebrow{color:var(--muted);font-size:11px;font-weight:900}.topbar-actions{flex-wrap:wrap;justify-content:flex-end}.role-pill,.language-switcher.compact select,.icon-button{border-color:var(--line);min-height:40px;box-shadow:var(--shadow-sm);background:#ffffffdb}.role-pill{color:var(--steel);padding:10px 12px}.icon-button{color:var(--steel);transition:border-color .14s,color .14s,transform .14s}.icon-button:hover{color:var(--accent);border-color:#0f766e47;transform:translateY(-1px)}.icon-button.active{color:var(--accent);background:#f0fdfae6;border-color:#0f766e57}.data-section{margin-top:24px}.section-heading{align-items:flex-start;margin-bottom:2px}.section-heading h2,.section-heading h3{color:var(--ink);margin:0;font-size:20px;font-weight:850}.section-heading p{color:var(--muted);font-size:13px}.status-grid,.module-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-top:16px}.status-tile,.module-card,.business-card,.tree-card,.registration-tree-card,.data-row,.attendance-student-card{border-color:var(--line);background:var(--panel);box-shadow:var(--shadow-sm);border-radius:8px}.status-tile{min-height:98px;padding:16px;position:relative;overflow:hidden}.status-tile:before{background:var(--accent);content:"";width:3px;position:absolute;inset:0 auto 0 0}.status-tile.warning-tile:before{background:var(--warning)}.status-tile span{color:var(--muted);font-size:12px;font-weight:900}.status-tile strong{color:var(--ink);margin-top:8px;font-size:clamp(22px,2vw,30px);font-weight:900}.report-filter-row{grid-template-columns:minmax(220px,340px) minmax(220px,320px);gap:12px}.report-filter-row label{color:var(--steel);text-transform:none}.business-card{grid-template-columns:repeat(12,minmax(0,1fr));gap:15px;padding:20px}.business-card>.section-heading,.business-card>.onboarding-card,.business-card>.empty-state,.business-card>.registration-stepper,.business-card>.registration-picker,.business-card>.registration-layout,.business-card>.selection-summary,.business-card>.payment-meta-row,.business-card>.checkout-status-card,.business-card>.form-hint,.business-card>.invite-result,.business-card>.inline-invite-panel,.business-card>.attendance-student-list,.business-card>.report-toolbar,.business-card>.report-context-row,.business-card>.report-table-shell,.business-card>.report-filter-bar,.business-card>button{grid-column:1/-1}.business-card>label,.business-card>input,.business-card>select,.business-card>.date-only-control{grid-column:span 6}.business-card>.wide-field{grid-column:1/-1}.report-filter-bar{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.report-filter-bar label{color:var(--muted);gap:7px;font-size:12px;font-weight:900;display:grid}.lesson-batch-panel{grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) minmax(160px,220px) auto;align-items:end}.lesson-batch-panel>div:first-child{align-self:center}.lesson-batch-panel label{color:var(--muted);gap:7px;font-size:12px;font-weight:900;display:grid}.business-card .secondary-action{min-height:38px;color:var(--accent);box-shadow:none;background:#eefbf8;border-color:#0f766e38}.business-card .secondary-action:hover:not(:disabled){color:var(--accent-strong);background:#def7f2;border-color:#0f766e5c}.business-card .secondary-action.danger{color:var(--danger);background:#c2413614;border-color:#c2413638}.data-list{gap:8px;margin-top:14px}.data-row{min-height:62px;padding:12px 14px;transition:border-color .14s,box-shadow .14s,transform .14s}.data-row:hover{border-color:#0f766e4d;transform:translateY(-1px);box-shadow:0 8px 18px #0f172a0f}.data-row.selected-edit{background:#effcf9;border-color:#0f766e8f}.data-row strong{font-size:14px;font-weight:850}.data-row span{color:var(--muted);font-size:12px;font-weight:760}.data-row>button{border-left-color:#c241362e;flex-basis:50px;width:50px;margin:-12px -14px -12px 0}.directory-group-list{gap:14px;margin-top:14px;display:grid}.directory-group-card{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow-sm);border-radius:8px;grid-template-columns:58px minmax(0,1fr);display:grid;overflow:hidden}.directory-group-index{color:var(--accent);background:linear-gradient(#0f766e1f,#0f766e08);border-right:1px solid #0f766e29;place-items:start center;padding-top:18px;font-size:22px;font-weight:950;display:grid}.directory-group-content{min-width:0;padding:14px}.directory-group-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.directory-group-header strong{color:var(--ink);font-size:16px;font-weight:900}.directory-group-header span{color:var(--muted);font-size:12px;font-weight:850}.directory-card-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;display:grid}.teacher-directory-grid{margin-top:14px}.directory-card{border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#fff;border-radius:8px;gap:12px;padding:14px;display:grid}.directory-card-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.directory-card-heading strong{color:var(--ink);font-size:15px;font-weight:900;display:block}.directory-card-heading span{color:var(--muted);font-size:12px;font-weight:800;display:block}.directory-status{color:var(--accent);background:#e8fbf7;border:1px solid #0f766e38;border-radius:999px;flex:none;padding:5px 9px;font-size:11px;font-weight:900}.directory-status.inactive,.directory-status.archived{color:var(--muted);background:#f1f5f9;border-color:#64748b38}.directory-status.cancelled{color:var(--danger);background:#fff5f4;border-color:#c241363d}.directory-status.completed{color:var(--accent);background:#e6faf5;border-color:#0f766e3d}.directory-card-metrics{flex-wrap:wrap;gap:8px;display:flex}.directory-card-metrics span{border:1px solid var(--line);color:var(--muted);background:#f8fafc;border-radius:8px;padding:7px 10px;font-size:12px;font-weight:850}.directory-chip-list{gap:8px;display:grid}.directory-chip{background:#f2fbf8;border:1px solid #0f766e2e;border-radius:8px;gap:3px;padding:9px 10px;display:grid}.directory-chip strong{color:var(--ink);font-size:13px;font-weight:900}.directory-chip small{color:var(--muted);font-size:11px;font-weight:800}.directory-chip.muted{border-color:var(--line);color:var(--muted);background:#f8fafc;font-size:12px;font-weight:850}.directory-card-actions{flex-wrap:wrap;gap:8px;display:flex}.directory-card-actions .secondary-action{width:auto;min-height:36px;padding:8px 12px}.paid-row{border-color:#16803c38}.due-row,.review-row,.warning-tile{border-color:#b7791f57}.tree-list{gap:10px}.tree-card,.registration-tree-card{padding:13px}.tree-card.nested,.registration-tree-card.nested{background:#f8fafc}.tree-card summary,.registration-tree-card summary{border-radius:8px;padding:2px}.tree-card summary:hover,.registration-tree-card summary:hover{color:var(--accent)}.registration-tree-summary-meta{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:inline-flex}.registration-tree-summary-meta em{color:var(--accent-strong);background:#0f766e1a;border-radius:999px;padding:2px 8px;font-style:normal}.registration-class-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.business-card .registration-class-card{min-height:118px;box-shadow:var(--shadow-sm);background:#fff;border-radius:8px;transition:border-color .14s,box-shadow .14s,transform .14s}.business-card .registration-class-card:hover:not(:disabled){border-color:#0f766e5c;transform:translateY(-1px);box-shadow:0 10px 22px #0f172a12}.business-card .registration-class-card.selected{border-color:var(--accent);background:#effcf9}.business-card .registration-class-card.disabled{opacity:.72;background:#f1f5f9}.class-status-chip{background:#e6faf5;border-color:#0f766e33;color:var(--accent)!important}.class-status-chip.selected{background:var(--accent)}.class-status-chip.locked{background:#c2413614;border-color:#c2413638;color:var(--danger)!important}.payment-meta-row{grid-template-columns:minmax(0,220px) minmax(0,1fr)}.course-price-pill{background:linear-gradient(135deg, #2dd4bf2e, transparent), var(--accent);box-shadow:var(--shadow-sm)}.payment-method-field{gap:8px;display:grid}.payment-method-list{gap:9px;display:grid}.payment-method-list .payment-method-choice{cursor:pointer;border-color:var(--line);width:100%;min-height:58px;color:var(--ink);box-shadow:var(--shadow-sm);text-align:left;background:#fff;grid-template-columns:auto minmax(0,1fr) auto;justify-content:stretch;align-items:center;gap:12px;padding:11px 12px;transition:border-color .14s,background-color .14s,box-shadow .14s,transform .14s;display:grid}.payment-method-list .payment-method-choice:not(.disabled):hover{background:#f8fffd;border-color:#0f766e57;transform:translateY(-1px);box-shadow:0 10px 20px #0f766e1a}.payment-method-list .payment-method-choice:focus-within{box-shadow:0 0 0 4px #2563eb1a, var(--shadow-sm);border-color:#2563eb94}.payment-method-list .payment-method-choice.selected,.business-card .payment-method-list .payment-method-choice.selected{color:var(--ink);box-shadow:0 0 0 1px #0f766e2e, var(--shadow-sm);background:#effcf9;border-color:#0f766e94}.payment-method-list .payment-method-choice.disabled{cursor:not-allowed;opacity:.72;transform:none}.payment-method-list .payment-method-radio{width:18px;min-width:18px;height:18px;min-height:18px;box-shadow:none;appearance:none;background:#fff;border:2px solid #334a5f6b;border-radius:999px;margin:0;padding:0}.payment-method-list .payment-method-radio:focus{box-shadow:none;outline:none}.payment-method-list .payment-method-choice.selected .payment-method-radio{border-color:var(--accent);background:radial-gradient(circle at center, var(--accent) 0 42%, #fff 45%)}.payment-method-copy{min-width:0}.payment-method-copy strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:900;display:block;overflow:hidden}.payment-method-mark{justify-content:center;align-items:center;width:132px;min-width:132px;min-height:40px;padding:0;display:inline-flex}.payment-method-mark img{object-fit:contain;width:100%;max-width:132px;height:40px;display:block}.payment-method-choice.selected .payment-method-mark{filter:saturate(1.06)}.attendance-status-row button.selected{border-color:var(--accent);background:var(--accent);color:#fff}.onboarding-card,.empty-state,.selection-summary,.payment-intent-card,.inline-invite-panel,.invite-result{background:#effcf9;border-color:#0f766e2e}.checkout-status-card{box-shadow:var(--shadow-sm);background:#fff;border-radius:8px}.checkout-status-card.pending{background:#fffbeb;border-color:#b7791f5c}.checkout-status-card.success{background:#f0fdf4;border-color:#16803c52}.checkout-status-card.danger{background:#fff5f4;border-color:#c241364d}.checkout-status-card.review{background:#f4f7ff;border-color:#2563eb47}.checkout-provider-panel,.checkout-provider-panel code,.payment-intent-card code{border-color:var(--line);background:#f8fafc}.registration-workflow-card{gap:18px}.registration-stepper{width:min(100%,460px);box-shadow:var(--shadow-sm);background:#fff;border:1px solid #0f766e24;border-radius:12px;align-items:center;gap:10px;padding:7px;display:flex}.registration-stepper span{min-width:150px;min-height:42px;color:var(--steel);text-align:center;word-break:keep-all;border-radius:8px;flex:1 1 0;justify-content:center;align-items:center;padding:0 14px;font-size:13px;font-weight:900;line-height:1.25;display:inline-flex}.registration-stepper-connector{width:30px;height:30px;color:var(--accent);background:#f8fafc;border:1px solid #0f766e29;border-radius:999px;flex:0 0 30px;place-items:center;display:inline-grid}.registration-stepper span.selected{background:var(--accent);color:#fff}.registration-stepper span.complete{color:var(--accent-strong);background:#e6faf5}.registration-layout{grid-template-columns:minmax(0,1fr) minmax(320px,390px);grid-template-areas:"classes summary";align-items:start;gap:18px;display:grid}.registration-layout.review{grid-template-columns:minmax(0,720px);grid-template-areas:"summary"}.registration-side-panel,.registration-class-browser{gap:14px;display:grid}.registration-side-panel{scrollbar-gutter:stable;border-left:1px solid #0f766e24;grid-area:summary;max-height:calc(100dvh - 112px);padding-left:18px;position:sticky;top:88px;overflow:auto}.registration-layout.review .registration-side-panel{border-left:0;max-height:none;padding-left:0;position:static;overflow:visible}.registration-child-field{align-self:start}.registration-child-field select{min-height:46px}.registration-selection-summary{min-height:0}.registration-payment-panel{gap:14px;display:grid}.registration-payment-panel label{gap:8px;display:grid}.registration-payment-panel .course-price-pill{min-height:74px}.registration-discount-panel{background:#fffdf7c7;border:1px solid #0f766e29;border-radius:8px;gap:10px;padding:12px;display:grid}.registration-discount-panel summary{cursor:pointer;color:var(--accent-strong);font-size:13px;font-weight:900}.discount-code-entry{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;margin-top:10px;display:grid}.discount-code-entry label{min-width:0}.discount-code-entry input{text-transform:uppercase}.discount-code-entry .secondary-action{white-space:nowrap;min-height:46px}.registration-discount-panel .form-hint{margin-top:8px;display:block}.cart-summary-panel{background:#f0fdfa;border-color:#14b8a647;gap:12px;display:grid}.registration-cart-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.registration-cart-metrics>div{background:#ffffffc7;border:1px solid #0f766e29;border-radius:8px;gap:4px;min-width:0;padding:9px;display:grid}.registration-cart-metrics span{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:900}.registration-cart-metrics strong{min-width:0;color:var(--accent-strong);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.registration-cart-discount-row{border-top:1px solid #0f766e29;justify-content:space-between;align-items:center;gap:12px;padding-top:10px;display:flex}.registration-cart-discount-row span{color:var(--muted);font-size:12px;font-weight:800}.registration-cart-discount-row strong{color:var(--accent-strong);font-size:13px;font-weight:900}.registration-selection-action-row{background:#ffffffc7;border:1px solid #0f766e2e;border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(150px,auto);align-items:center;gap:10px;padding:10px;display:grid}.registration-selection-action-row>div{gap:3px;min-width:0;display:grid}.registration-selection-action-row span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:900}.registration-selection-action-row strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:950;overflow:hidden}.registration-selection-action-row .checkout-primary-action.compact{white-space:nowrap;min-height:42px;padding-inline:14px}.registration-cart-groups{gap:10px;display:grid}.registration-cart-group{border-top:1px solid #0f766e24;gap:8px;padding-top:10px;display:grid}.registration-cart-group>div:first-child{justify-content:space-between;align-items:center;gap:8px;display:flex}.registration-cart-group>div:first-child span{color:var(--muted);font-size:11px;font-weight:900}.registration-cart-row{background:#ffffffd1;border:1px solid #0f766e29;border-radius:8px;grid-template-columns:minmax(0,1fr) auto 30px;align-items:center;gap:8px;padding:8px;display:grid}.registration-cart-row.readonly{grid-template-columns:minmax(0,1fr) auto}.registration-cart-row span{min-width:0;color:var(--steel);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800;overflow:hidden}.registration-cart-row strong{color:var(--accent-strong);white-space:nowrap;font-size:12px}.registration-cart-row button{color:#b91c1c;background:#fff;border:1px solid #dc26263d;border-radius:8px;place-items:center;width:30px;height:30px;min-height:30px;padding:0;display:inline-grid}.registration-cart-hint{color:var(--steel);font-size:12px;font-weight:800;line-height:1.35}.registration-safety-note{border:1px solid var(--line);border-radius:8px;gap:5px;padding:12px;display:grid}.registration-safety-note strong{font-size:13px}.registration-safety-note span{color:var(--steel);font-size:12px;font-weight:800;line-height:1.35}.registration-safety-note.success{background:#f0fdfa;border-color:#14b8a652}.registration-safety-note.success strong{color:var(--accent-strong)}.registration-safety-note.warning{background:#fffbeb;border-color:#d9770647}.registration-safety-note.warning strong{color:#92400e}.registration-safety-note.danger{background:#fef2f2;border-color:#dc26263d}.registration-safety-note.danger strong{color:#991b1b}.registration-side-panel .checkout-status-card{margin:0;padding:14px}.registration-processing-panel{background:#fffbeb;border-color:#d9770657;gap:14px;padding:18px;display:grid}.registration-processing-banner{border-bottom:1px solid #d9770638;gap:6px;padding-bottom:12px;display:grid}.registration-processing-banner span{color:#92400e;text-transform:uppercase;font-size:12px;font-weight:900}.registration-processing-banner strong{color:#111827;font-size:22px;font-weight:950;line-height:1.15}.registration-processing-banner p{color:#374151;max-width:64ch;font-size:13px;font-weight:850;line-height:1.45}.registration-processing-indicator{background:#d977062e;border-radius:999px;height:5px;position:relative;overflow:hidden}.registration-processing-indicator span{border-radius:inherit;background:linear-gradient(90deg,#0d948800,#0d9488eb,#0d948800);width:42%;animation:1.25s ease-in-out infinite registration-processing-sweep;position:absolute;inset:0 auto 0 0}.registration-processing-panel .checkout-provider-panel{background:#fff}.registration-side-panel .checkout-status-head,.registration-side-panel .checkout-actions{align-items:stretch}.registration-side-panel .checkout-status-grid{grid-template-columns:1fr}.checkout-primary-action{width:100%;min-height:48px}.registration-checkout-actions{grid-template-columns:minmax(140px,.8fr) minmax(0,1.4fr);align-items:stretch;gap:10px;display:grid}.registration-checkout-actions.locked{grid-template-columns:1fr}.registration-checkout-actions .secondary-action,.registration-checkout-actions .checkout-primary-action{min-height:48px}.registration-selection-mobile-action{display:none}.payment-meta-row.compact{grid-template-columns:1fr;gap:8px;display:grid}.payment-meta-row.compact .payment-method-choice{width:100%;min-height:40px}@keyframes registration-processing-sweep{0%{transform:translate(-100%)}to{transform:translate(240%)}}@media (prefers-reduced-motion:reduce){.registration-processing-indicator span{animation:none;transform:none}}@media (max-width:760px){.discount-code-entry,.registration-checkout-actions{grid-template-columns:1fr}}.registration-class-browser{grid-area:classes;min-width:0}.registration-browser-head{grid-template-columns:minmax(0,1fr) minmax(220px,320px);align-items:end;gap:14px;display:grid}.registration-browser-head>div{gap:5px;display:grid}.registration-browser-head>div>span:last-child{color:var(--muted);font-size:12px;font-weight:850}.registration-browser-head input{border:1px solid var(--line);width:100%;min-height:42px;color:var(--ink);box-shadow:var(--shadow-sm);background:#fff;border-radius:8px;outline:none;padding:10px 12px}.registration-browser-head input:focus{border-color:#2563eb94;box-shadow:0 0 0 4px #2563eb1a}.registration-subject-tabs{gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.registration-subject-tabs button{border:1px solid var(--line);min-height:34px;color:var(--steel);box-shadow:var(--shadow-sm);background:#fff;border-radius:8px;flex:none;padding:0 12px;font-size:13px;font-weight:850}.registration-subject-tabs button.selected{border-color:var(--accent);background:var(--accent);color:#fff}.registration-list-tools{justify-content:flex-end;gap:8px;display:flex}.registration-list-tools button{min-height:34px;color:var(--accent-strong);box-shadow:var(--shadow-sm);background:#fff;border:1px solid #0f766e2e;border-radius:8px;padding:0 12px;font-size:12px;font-weight:900}.registration-list-tools button:disabled{cursor:not-allowed;opacity:.5}.registration-picker.compact{border:1px solid var(--line);background:#f8fafc;border-radius:8px;max-height:min(58dvh,640px);padding:10px;overflow:auto}.registration-picker.compact .registration-tree-card{background:#fff}.registration-picker.compact .registration-tree-card.nested{background:#f8fafc}.registration-class-grid.compact{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.business-card .registration-class-card.compact{min-height:96px;padding:11px}.registration-class-card.compact .registration-card-topline strong{font-size:13px}.registration-class-card.compact span{line-height:1.3}.attendance-student-card{background:#f8fafc}.attendance-status-row button{border-color:var(--line);min-height:34px;color:var(--steel);background:#fff;transition:border-color .14s,background-color .14s,color .14s}.attendance-status-row button:hover{border-color:#0f766e52}@media (max-width:1100px){.report-toolbar{grid-template-columns:1fr}.report-segmented{width:100%;overflow-x:hidden}.report-segmented button{flex:1 0 auto}.report-column-menu summary{justify-content:center;width:100%}.statistics-heading{display:grid}.statistics-tabs{width:100%}.statistics-tabs button{flex:1 1 0;justify-content:center}.attendance-workflow{grid-template-columns:1fr}.attendance-class-panel{max-height:none;position:static}.attendance-main-header{grid-template-columns:1fr}.attendance-date-control{justify-self:stretch}.attendance-date-picker{width:100%}.attendance-student-card.roster-card{grid-template-columns:1fr}.attendance-status-row{justify-content:flex-start}.attendance-session-card-header{display:grid}}.busy-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172a57}.busy-card{background:var(--nav);border-radius:8px}@media (max-width:1180px){.shell{grid-template-columns:1fr}.sidebar{z-index:30;border-bottom:1px solid var(--nav-line);grid-template-columns:auto minmax(0,1fr);gap:14px;height:auto;padding:12px 16px;display:grid;position:sticky;top:0;overflow-x:hidden}.sidebar-brand{border-bottom:0;min-height:42px;padding:0}.sidebar nav{gap:6px;margin-top:0;padding-bottom:2px;display:flex;overflow-x:auto}.nav-item{white-space:nowrap;flex:none;width:auto}.workspace{padding:22px 24px 46px}.topbar{margin:-22px -24px 22px;padding:16px 24px}}@media (max-width:920px){.auth-screen,.login-card{grid-template-columns:1fr}.auth-copy,.login-copy{min-height:auto}.invite-card>.invite-form{grid-template-columns:1fr;max-height:none;overflow:visible}.invite-form .invite-name-grid,.invite-form .invite-password-grid{grid-template-columns:1fr}.invite-form-header{flex-direction:column;align-items:stretch}.business-card,.lesson-batch-panel{grid-template-columns:1fr}.registration-layout,.registration-browser-head{grid-template-columns:1fr;grid-template-areas:none}.registration-side-panel{border-left:0;grid-area:auto;max-height:none;padding-left:0;position:static;overflow:visible}.registration-class-browser{grid-area:auto}.registration-picker.compact{max-height:none}.registration-workflow-card.has-selection-action{padding-bottom:112px}.registration-selection-action-row{display:none}.registration-selection-mobile-action{right:16px;bottom:max(12px, env(safe-area-inset-bottom));z-index:45;background:#fffffff5;border:1px solid #0f766e2e;border-radius:12px;grid-template-columns:minmax(0,1fr) minmax(108px,auto);align-items:center;gap:10px;padding:10px;display:grid;position:fixed;left:16px;box-shadow:0 18px 44px #0f172a2e}.registration-selection-mobile-action>div{gap:2px;min-width:0;display:grid}.registration-selection-mobile-action span{color:var(--muted);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:11px;font-weight:900;overflow:hidden}.registration-selection-mobile-action strong{color:var(--ink);font-size:15px;font-weight:950}.registration-selection-mobile-action button{background:var(--accent);color:#fff;border:0;border-radius:8px;min-height:46px;padding:0 16px;font-size:14px;font-weight:950}.registration-selection-mobile-action button:disabled{cursor:not-allowed;opacity:.55}.business-card>label,.business-card>input,.business-card>select,.business-card>.date-only-control{grid-column:1/-1}.report-filter-row,.payment-meta-row,.checkout-status-grid{grid-template-columns:1fr}}@media (max-width:620px){.auth-screen,.login-shell{padding:12px}.auth-copy,.login-panel,.login-copy,.login-card>.login-form,.login-card>form.login-form{padding:24px}.invite-shell{padding:12px}.auth-copy h1,.login-copy h1{font-size:34px}.sidebar{grid-template-columns:1fr}.workspace{padding:18px 16px 34px}.topbar{margin:-18px -16px 18px;padding:14px 16px}.topbar,.section-heading,.checkout-status-head,.checkout-actions{flex-direction:column;align-items:stretch}.topbar-actions{justify-content:flex-start}.status-grid,.module-grid{grid-template-columns:1fr}.data-row{flex-direction:column;align-items:flex-start}.data-row>button{border-top:1px solid #c241362e;border-left:0;flex-basis:auto;align-self:stretch;width:auto;margin:0 -14px -12px}.directory-group-card{grid-template-columns:1fr}.directory-group-index{border-bottom:1px solid #0f766e29;border-right:0;place-items:center start;min-height:44px;padding:0 14px}.directory-card-heading{flex-direction:column;align-items:flex-start}}@media (max-width:760px){html{-webkit-text-size-adjust:100%}body{overflow-x:hidden}input,select,textarea{font-size:16px}.auth-screen,.shell{min-height:100dvh}.auth-screen{background:var(--paper)}.shell{display:block}.sidebar{z-index:1000;background:linear-gradient(180deg, #0f172ae6, #0f172afa), var(--nav);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);width:100%;height:auto;max-height:42vh;padding:8px max(10px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));isolation:isolate;border-top:1px solid #ffffff1f;border-bottom:0;display:block;position:fixed;inset:auto 0 0;overflow:hidden;transform:translateZ(0)}.sidebar-brand{display:none}.sidebar nav{overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;gap:8px;margin-top:0;padding-bottom:0;display:flex;overflow:auto hidden}.sidebar nav::-webkit-scrollbar{display:none}.nav-item{scroll-snap-align:start;text-align:center;white-space:normal;border-radius:10px;flex-direction:column;flex:0 0 76px;justify-content:center;align-items:center;gap:4px;min-width:76px;max-width:112px;height:62px;min-height:62px;padding:7px 8px;font-size:10px;line-height:1.12;display:inline-flex;overflow:hidden}.nav-item svg{flex:none;width:19px;height:19px}.nav-item.active{box-shadow:inset 0 3px #2dd4bf}.workspace{z-index:0;max-width:none;padding-bottom:calc(104px + env(safe-area-inset-bottom));position:relative}.topbar{top:0}.topbar-actions{gap:8px;width:100%}.language-switcher.compact,.language-switcher.compact select,.role-pill{min-width:0}.role-pill{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.business-card,.report-card,.section-card,.registration-workflow-card{border-radius:8px;min-width:0;max-width:100%}.business-card>*,.registration-layout,.registration-side-panel,.registration-class-browser{min-width:0;max-width:100%}.registration-stepper{gap:6px;width:100%;max-width:100%;padding:6px}.registration-stepper span{min-width:0;padding:0 8px}.registration-stepper-connector{flex-basis:28px;width:28px;height:28px}.business-card input,.business-card select,.business-card textarea,.login-form input,.invite-form input,.invite-form select,.invite-form textarea,.report-filter-row input,.report-filter-row select,.registration-browser-head input,.discount-code-entry input,.business-card button,.section-heading button,.report-card button,.registration-workflow-card button,.registration-subject-tabs button,.payment-method-choice,.icon-button,.language-switcher.compact select{min-height:44px}.report-table-shell,.directory-group-card,.teacher-directory-grid,.registration-picker,.registration-class-list{-webkit-overflow-scrolling:touch}.registration-selection-mobile-action{right:max(12px, env(safe-area-inset-right));bottom:calc(82px + env(safe-area-inset-bottom));left:max(12px, env(safe-area-inset-left))}}@media (max-width:430px){.auth-copy,.login-panel,.login-copy,.login-card>.login-form,.login-card>form.login-form{padding:20px}.auth-copy h1,.login-copy h1{font-size:30px;line-height:1.05}.topbar h1{font-size:20px;line-height:1.18}.nav-item{flex-basis:70px;min-width:70px}.registration-workflow-card.has-selection-action{padding-bottom:138px}.registration-selection-mobile-action{grid-template-columns:1fr}.registration-selection-mobile-action button{width:100%}}@media (max-height:560px) and (orientation:landscape){.sidebar{padding-top:6px;padding-bottom:max(6px, env(safe-area-inset-bottom))}.nav-item{min-height:50px}.workspace{padding-bottom:calc(86px + env(safe-area-inset-bottom))}.registration-selection-mobile-action{bottom:calc(72px + env(safe-area-inset-bottom))}}
