@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&family=DM+Sans:wght@400;500;700&display=swap";:root,:root[data-theme=light]{color-scheme:light;--ink: #0f172a;--paper: #f8fafc;--card: #ffffff;--accent: #0a7ea4;--accent-strong: #075985;--muted: #475569;--line: #cbd5e1;--ok: #047857;--wait: #b45309;--error: #b91c1c;--bg-gradient: radial-gradient(circle at 10% 10%, #cffafe 0%, #f8fafc 45%, #e2e8f0 100%);--surface: rgba(255, 255, 255, .9);--surface-border: rgba(203, 213, 225, .9);--surface-shadow: 0 10px 30px rgba(15, 23, 42, .08);--surface-strong: #ffffff;--hover-border: #7dd3fc;--status-active-bg: #d1fae5;--status-coming-bg: #fef3c7;--button-primary-text: #f0fdff;--button-secondary-bg: #ffffff;--button-secondary-border: #7dd3fc;--button-secondary-hover: #eff6ff;--button-danger-bg: #fee2e2;--button-danger-border: #fecaca;--button-danger-text: #991b1b;--button-danger-hover: #fecaca;--button-disabled-bg: #e2e8f0;--button-disabled-text: #64748b;--focus-ring: #0ea5e9;--input-bg: #ffffff;--modal-overlay: rgba(15, 23, 42, .62);--modal-shadow: 0 18px 42px rgba(15, 23, 42, .24);--table-border: #e2e8f0;--table-head-bg: #f1f5f9;--metric-border: #99f6e4;--metric-bg: #ecfeff;--brand-wine: #7b1e2b;--brand-wine-strong: #5a1420;--brand-wine-ink: #fff7f8;--font-heading: "Space Grotesk", "Segoe UI", sans-serif;--font-body: "DM Sans", "Segoe UI", sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--weight-medium: 500;--weight-bold: 700;--leading-normal: 1.55;--tracking-tight: -.02em;--tracking-wider: .16em;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 2rem;--space-8: 3rem;--padding-card: var(--space-5);--padding-panel: var(--space-4);--gap-form: var(--space-3);--gap-items: var(--space-2);--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1.125rem;--radius-full: 999px}:root[data-theme=dark]{color-scheme:dark;--ink: #e2e8f0;--paper: #020617;--card: #0f172a;--accent: #38bdf8;--accent-strong: #0ea5e9;--muted: #94a3b8;--line: #334155;--ok: #34d399;--wait: #f59e0b;--error: #f87171;--bg-gradient: radial-gradient(circle at 15% 10%, #0f172a 0%, #020617 45%, #020617 100%);--surface: rgba(15, 23, 42, .88);--surface-border: rgba(71, 85, 105, .8);--surface-shadow: 0 12px 32px rgba(2, 6, 23, .55);--surface-strong: #0b1222;--hover-border: #38bdf8;--status-active-bg: rgba(16, 185, 129, .22);--status-coming-bg: rgba(245, 158, 11, .22);--button-primary-text: #082f49;--button-secondary-bg: #0f172a;--button-secondary-border: #334155;--button-secondary-hover: #1e293b;--button-danger-bg: rgba(127, 29, 29, .36);--button-danger-border: #b91c1c;--button-danger-text: #fecaca;--button-danger-hover: rgba(153, 27, 27, .45);--button-disabled-bg: #1f2937;--button-disabled-text: #64748b;--focus-ring: #38bdf8;--input-bg: #0b1222;--modal-overlay: rgba(2, 6, 23, .78);--modal-shadow: 0 20px 46px rgba(2, 6, 23, .7);--table-border: #273449;--table-head-bg: #111827;--metric-border: #0f766e;--metric-bg: #042f2e;--brand-wine: #b33a52;--brand-wine-strong: #8e273e;--brand-wine-ink: #fff6f7}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:var(--font-body);color:var(--ink);background:var(--bg-gradient);line-height:var(--leading-normal);transition:background .18s ease,color .18s ease}h1,h2,h3{margin:0;font-family:var(--font-heading);letter-spacing:var(--tracking-tight)}p{margin:0;line-height:var(--leading-normal)}a{color:inherit}input,select,textarea,button{font:inherit}.portal-shell,.placeholder-shell,.not-found,.auth-shell,.module-shell{width:min(1160px,94vw);margin:0 auto;padding:2.5rem 0 3rem}.hero,.panel,.auth-card,.not-found-card,.placeholder-card{background:var(--surface);border:1px solid var(--surface-border);border-radius:18px;box-shadow:var(--surface-shadow)}.hero{padding:clamp(1.2rem,2.8vw,2rem)}.hero h1{margin-top:.6rem;font-size:clamp(1.8rem,4.4vw,2.7rem)}.hero p{margin-top:.85rem;max-width:72ch;color:var(--muted);line-height:1.55}.eyebrow{text-transform:uppercase;font-size:var(--text-xs);letter-spacing:var(--tracking-wider);font-weight:var(--weight-bold);color:var(--accent-strong)}.helper-inline{color:var(--muted);font-size:var(--text-sm)}.menu-grid{margin-top:1.2rem;display:grid;gap:.95rem;grid-template-columns:1fr}.menu-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1.1rem;display:flex;flex-direction:column;gap:.9rem;min-height:200px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.menu-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #0f172a26;border-color:var(--hover-border)}.card-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.card-top h2{font-size:1.15rem}.menu-card p{color:var(--muted);line-height:1.45}.status-pill{border-radius:999px;font-size:.74rem;font-weight:700;padding:.28rem .62rem;white-space:nowrap}.status-pill.active{background:var(--status-active-bg);color:var(--ok)}.status-pill.coming_soon{background:var(--status-coming-bg);color:var(--wait)}.card-link,.primary-link,.secondary-link,.primary-button,.secondary-button,.danger-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:var(--radius-md);font-weight:var(--weight-bold);min-height:2.5rem;border:1px solid transparent;padding:.6rem .95rem;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.card-link,.primary-link,.primary-button{background:var(--accent);color:var(--button-primary-text)}.card-link:hover,.primary-link:hover,.primary-button:hover{background:var(--accent-strong)}.secondary-link,.secondary-button{background:var(--button-secondary-bg);color:var(--accent-strong);border-color:var(--button-secondary-border)}.secondary-link:hover,.secondary-button:hover{background:var(--button-secondary-hover)}.primary-button:disabled,.secondary-button:disabled,.danger-button:disabled{background:var(--button-disabled-bg);border-color:var(--button-secondary-border);color:var(--button-disabled-text);cursor:not-allowed}.danger-button{background:var(--button-danger-bg);border-color:var(--button-danger-border);color:var(--button-danger-text)}.danger-button:hover{background:var(--button-danger-hover)}.card-link.disabled{background:var(--button-disabled-bg);color:var(--button-disabled-text);cursor:not-allowed}.card-link:focus-visible,.primary-link:focus-visible,.secondary-link:focus-visible,.primary-button:focus-visible,.secondary-button:focus-visible,.danger-button:focus-visible,.theme-toggle:focus-visible,.text-button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.theme-toggle{position:fixed;top:.8rem;right:.8rem;z-index:90;min-height:2.35rem;border-radius:999px;border:1px solid var(--line);background:var(--surface-strong);color:var(--ink);font-weight:700;padding:.4rem .8rem;box-shadow:var(--surface-shadow);cursor:pointer}.brand-logo{position:fixed;top:.8rem;left:.8rem;z-index:90;display:inline-flex;align-items:center;gap:.55rem;text-decoration:none;min-height:2.35rem;border-radius:999px;border:1px solid var(--line);background:var(--surface-strong);color:var(--ink);padding:.32rem .72rem .32rem .32rem;box-shadow:var(--surface-shadow)}.brand-logo-mark{width:1.7rem;height:1.7rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-family:Space Grotesk,Segoe UI,sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.05em;background:linear-gradient(135deg,var(--brand-wine),var(--brand-wine-strong));color:var(--brand-wine-ink)}.brand-logo-text{font-family:Space Grotesk,Segoe UI,sans-serif;font-size:.94rem;font-weight:700;letter-spacing:.01em;color:var(--brand-wine)}.assistance-session-chip{position:fixed;top:1.2rem;left:50%;transform:translate(-50%);z-index:90;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);font-size:.82rem;font-weight:700;letter-spacing:.01em;max-width:min(34vw,320px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.auth-shell{display:grid;place-items:center;min-height:82vh}.auth-card{width:min(560px,94vw);padding:1.4rem;display:grid;gap:.9rem}.form-grid{display:grid;gap:.75rem}.captcha-wrap{display:grid;gap:.4rem;justify-items:start;overflow-x:auto}.captcha-box{min-height:78px}.form-grid.inline-form{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end}.field{display:grid;gap:.35rem}.field span{color:var(--muted);font-size:var(--text-sm);font-weight:var(--weight-medium)}.field input,.field select,.field textarea,td input,td select{min-height:2.35rem;border-radius:var(--radius-md);border:1px solid var(--line);padding:.45rem .65rem;background:var(--input-bg);color:var(--ink)}.field input:hover,.field select:hover,.field textarea:hover,td input:hover,td select:hover{border-color:var(--hover-border)}.field-compact{max-width:280px}.error-text{color:var(--error);font-weight:700}.text-button{width:fit-content;border:0;background:transparent;color:var(--accent-strong);padding:0;font-weight:700;cursor:pointer}.text-button:hover{text-decoration:underline}.google-button{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;padding:.65rem 1rem;border:1.5px solid var(--line);border-radius:var(--radius-md);background:var(--surface-strong);color:var(--ink);font-size:.95rem;font-weight:500;cursor:pointer;transition:border-color .15s,box-shadow .15s}.google-button:hover{border-color:var(--hover-border);box-shadow:0 2px 8px #00000014}.google-button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.google-button-icon{width:20px;height:20px;flex-shrink:0}.auth-divider{display:flex;align-items:center;gap:.75rem;color:var(--muted);font-size:.8rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--line)}.modal-overlay{position:fixed;inset:0;z-index:70;background:var(--modal-overlay);display:grid;place-items:center;padding:1rem}.modal-card{width:min(580px,94vw);max-height:calc(100vh - 2rem);overflow:auto;border-radius:18px;background:var(--surface-strong);border:1px solid var(--line);box-shadow:var(--modal-shadow);padding:1.2rem;display:grid;gap:.9rem}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem}.modal-title-block{display:grid;gap:.35rem}.modal-title-block p{color:var(--muted);line-height:1.4}.module-shell{display:grid;gap:1rem}.assistance-shell{width:min(1180px,94vw);padding-top:4.5rem}.module-header{background:var(--surface);border:1px solid var(--surface-border);border-radius:18px;box-shadow:var(--surface-shadow);padding:1.25rem;display:grid;gap:1rem}.module-header p{margin-top:.45rem;color:var(--muted)}.assistance-overview{gap:1rem}.assistance-overview-head{display:grid;gap:1rem}.assistance-overview-head h2{margin-top:.2rem;font-size:clamp(1.35rem,3vw,1.9rem)}.assistance-date-field{width:100%}.assistance-nav-grid{display:flex;flex-wrap:wrap;gap:.7rem}.assistance-nav-card{min-height:2.8rem;border:1px solid var(--button-secondary-border);border-radius:12px;background:var(--button-secondary-bg);color:var(--accent-strong);padding:.75rem 1rem;text-align:center;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .15s ease;box-shadow:inset 0 0 0 1px #0a7ea414}.assistance-nav-card:hover{background:var(--button-secondary-hover);border-color:var(--hover-border);transform:translateY(-1px)}.assistance-nav-card.is-active{background:var(--button-secondary-hover);border-color:var(--accent);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.assistance-nav-card:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.assistance-nav-card-label{color:var(--accent-strong);font-size:1rem;font-weight:700}.assistance-nav-card-metric{color:var(--accent-strong);font-size:.92rem;line-height:1;font-weight:700}.assistance-nav-card-detail{color:var(--muted);font-size:.85rem}.assistance-section-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);justify-content:space-between}.assistance-course-picker{flex:1;max-width:18rem;min-width:10rem}.assistance-subnav{display:flex;flex-wrap:wrap;gap:.7rem}.assistance-subnav-button{display:inline-flex;align-items:center;justify-content:center;min-height:2.8rem;border:1px solid var(--button-secondary-border);border-radius:12px;background:var(--button-secondary-bg);color:var(--accent-strong);padding:.75rem 1rem;font-size:1rem;font-weight:700;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .15s ease;box-shadow:inset 0 0 0 1px #0a7ea414}.assistance-subnav-button:hover{background:var(--button-secondary-hover);border-color:var(--hover-border);transform:translateY(-1px)}.assistance-subnav-button.is-active{background:var(--button-secondary-hover);border-color:var(--accent);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.assistance-subnav-button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.header-actions{display:flex;flex-wrap:wrap;gap:.55rem}.assistance-footer-actions{justify-items:end}.panel{padding:1.1rem;display:grid;gap:.85rem}.panel h2{font-size:var(--text-xl)}.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:.7rem;flex-wrap:wrap}.panel-title-actions{display:inline-flex;align-items:center;gap:.55rem;flex-wrap:wrap}.success-text{color:var(--ok);font-weight:700}.roll-call-panel{gap:1rem}.roll-call-toolbar,.roll-call-footer-actions,.roll-call-status-actions,.roll-call-review-stats,.attendance-actions-row{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.roll-call-toolbar{justify-content:flex-start}.roll-call-stepbar{display:flex;flex-wrap:wrap;gap:.55rem}.roll-call-step-chip{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--line);background:var(--surface-strong);color:var(--muted);font-size:.82rem;font-weight:700;padding:.42rem .78rem}.roll-call-step-chip.is-active{border-color:color-mix(in srgb,var(--accent) 35%,var(--line));background:color-mix(in srgb,var(--accent) 10%,var(--surface-strong));color:var(--accent-strong)}.roll-call-step-chip.is-done{border-color:color-mix(in srgb,var(--ok) 32%,var(--line));background:color-mix(in srgb,var(--ok) 12%,var(--surface-strong));color:var(--ok)}.roll-call-workspace,.roll-call-stage,.roll-call-sidebar{display:grid;gap:1rem}.enroll-col--full{grid-column:1 / -1}.enroll-course-option{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .5rem;border:none;border-radius:var(--radius-sm);background:transparent;cursor:pointer;text-align:left;transition:background .12s ease}.enroll-course-option:hover{background:var(--surface-strong)}.enroll-course-option.is-picked{background:color-mix(in srgb,var(--accent) 10%,transparent)}.enroll-course-option.is-picked .enroll-course-name{color:var(--accent)}.enroll-course-name{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--ink);flex:1}.enroll-course-days{font-size:var(--text-xs);color:var(--muted);flex-shrink:0}.enroll-manage-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.enroll-action-btn{flex-shrink:0;padding:.25rem .7rem;min-height:unset;height:auto;font-size:var(--text-xs);font-weight:var(--weight-bold);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-strong);color:var(--muted);cursor:pointer;transition:background .12s ease,color .12s ease}.enroll-action-btn:hover,.enroll-action-btn.is-active{background:var(--button-secondary-hover);border-color:var(--accent);color:var(--accent)}.student-inline-form,.student-edit-form{display:grid;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-strong)}.student-edit-form{margin:.25rem 0 .5rem;border-color:color-mix(in srgb,var(--accent) 30%,transparent);overflow:visible}.student-form-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.student-form-actions .primary-button,.student-form-actions .secondary-button{flex:1;min-width:120px}.share-panel{display:grid;gap:.65rem;padding-top:.35rem;border-top:1px solid var(--line)}.share-panel-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}.share-panel-title{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--ink)}.share-panel-form{display:flex;flex-wrap:wrap;gap:.55rem;align-items:flex-end}.share-panel-form .field{flex:1;min-width:14rem}.share-panel-list{display:grid;gap:.45rem}.share-panel-item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.45rem .6rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.share-badge{display:inline-flex;align-items:center;justify-content:center;padding:.18rem .55rem;border-radius:999px;border:1px solid var(--button-secondary-border);background:var(--button-secondary-bg);color:var(--muted);font-size:.75rem;font-weight:var(--weight-bold)}.share-badge--inline{margin-left:.15rem;flex-shrink:0;white-space:nowrap}.enroll-columns{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);align-items:start}.enroll-col{display:flex;flex-direction:column;gap:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-3);background:var(--surface)}.enroll-col-header{display:flex;align-items:center;justify-content:space-between}.enroll-col-title{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--ink);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.enroll-col-count{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);border-radius:var(--radius-full);padding:.1rem .5rem;min-width:1.5rem;text-align:center}.enroll-search{width:100%;padding:.45rem .65rem;font-size:var(--text-sm);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-strong);color:var(--ink);outline:none}.enroll-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}.student-sort-bar{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.student-sort-label{font-size:var(--text-sm);color:var(--ink-muted);white-space:nowrap}.student-sort-select{flex:1;padding:.4rem .6rem;font-size:var(--text-sm);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-strong);color:var(--ink);outline:none;cursor:pointer}.student-sort-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}.student-created-at{font-size:var(--text-xs, .75rem);color:var(--ink-muted);font-weight:var(--weight-regular, 400);margin-left:.5rem;white-space:nowrap}.enroll-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem;max-height:22rem;overflow-y:auto;-webkit-overflow-scrolling:touch}.enroll-list--tall{max-height:60vh}.enroll-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.4rem .5rem;border-radius:var(--radius-sm);font-size:var(--text-sm)}.enroll-item:hover{background:var(--surface-strong)}.enroll-item--inactive{opacity:.5}.enroll-item--clickable{cursor:pointer}.student-enrolled-at{font-size:var(--text-xs, .75rem);color:var(--muted);font-weight:400;white-space:nowrap;flex-shrink:0}.enroll-name{display:flex;align-items:center;gap:.4rem;flex:1;min-width:0}.enroll-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex-shrink:1}.enroll-code{font-size:var(--text-xs);color:var(--muted);background:var(--surface-strong);border-radius:var(--radius-sm);padding:.05rem .35rem;flex-shrink:0}.enroll-inactive-badge{font-size:var(--text-xs);color:var(--muted);font-style:italic;flex-shrink:0}.enroll-item--student{flex-wrap:wrap;align-items:center;gap:.2rem .5rem;padding:.45rem .5rem;cursor:pointer}.enroll-item--student .enroll-name{order:1;flex:1 1 auto;min-width:0}.enroll-item--student .student-course-chips,.enroll-item--student .student-no-course{order:3;width:100%;padding-left:.1rem}.enroll-item--student .enroll-action-btn{order:2;flex-shrink:0}@media(min-width:540px){.enroll-item--student{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) auto;align-items:center;gap:.5rem .75rem}.enroll-item--student .enroll-name,.enroll-item--student .student-course-chips,.enroll-item--student .student-no-course,.enroll-item--student .enroll-action-btn{order:unset}.enroll-item--student .student-course-chips,.enroll-item--student .student-no-course{width:auto;flex:unset;min-width:0;padding-left:0}}.student-course-chips{display:flex;flex-wrap:wrap;gap:.3rem}.student-course-chip{display:inline-flex;flex-direction:column;align-items:flex-start;gap:.05rem;font-size:.68rem;font-weight:var(--weight-medium);color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 10%,transparent);border:1px solid color-mix(in srgb,var(--color-accent) 25%,transparent);border-radius:var(--radius-sm);padding:.15rem .45rem;max-width:22ch;min-width:0;overflow:hidden}.chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.chip-date{font-size:.6rem;font-weight:400;color:var(--muted);white-space:nowrap}@media(min-width:540px){.student-course-chip{max-width:38ch}}.student-no-course{font-size:.68rem;color:var(--muted);font-style:italic}.enroll-btn{flex-shrink:0;width:1.75rem;height:1.75rem;min-height:unset;padding:0;border-radius:var(--radius-full);font-size:1.1rem;line-height:1;font-weight:var(--weight-bold);cursor:pointer;transition:background .12s ease,transform .12s ease}.enroll-btn--add{border:1px solid var(--accent);background:transparent;color:var(--accent)}.enroll-btn--add:hover:not(:disabled){background:var(--accent);color:#fff;transform:scale(1.1)}.enroll-btn--remove{border:1px solid var(--error, #d93025);background:transparent;color:var(--error, #d93025)}.enroll-btn--remove:hover{background:var(--error, #d93025);color:#fff;transform:scale(1.1)}.enroll-btn:disabled{opacity:.35;cursor:not-allowed}.enroll-empty{font-size:var(--text-sm);color:var(--muted);padding:.5rem;text-align:center}.roll-call-select-grid{display:grid;gap:1rem;grid-template-columns:1fr}.roll-call-block{display:grid;gap:.85rem}.roll-call-block h3,.roll-call-student-main h3,.roll-call-review h3,.roll-call-stage-card h3,.roll-call-sidebar-card h3{font-size:1.12rem}.roll-call-course-grid,.roll-call-pending-list,.roll-call-review-list{display:grid;gap:.65rem}.roll-call-course-card,.roll-call-pending-item,.roll-call-review-row{width:100%;border:1px solid var(--line);border-radius:10px;background:var(--surface-strong);color:var(--ink);padding:.85rem;text-align:left;cursor:pointer;display:grid;gap:.25rem;transition:border-color .15s ease,background .15s ease,transform .15s ease}.roll-call-course-card:hover,.roll-call-pending-item:hover,.roll-call-review-row:hover{border-color:var(--hover-border);transform:translateY(-1px)}.roll-call-course-card:disabled,.roll-call-pending-item:disabled{cursor:not-allowed;opacity:.65;transform:none}.roll-call-course-card span,.roll-call-pending-item span,.roll-call-review-row span{font-weight:700}.roll-call-course-card strong,.roll-call-pending-item strong{color:var(--accent-strong);font-size:.9rem}.roll-call-course-card small,.roll-call-pending-item small{color:var(--muted);font-size:.84rem}.roll-call-stage-card,.roll-call-sidebar-card,.roll-call-student-card,.roll-call-review{border:1px solid var(--line);border-radius:12px;background:var(--surface-strong);padding:1rem;display:grid;gap:1rem}.roll-call-stage-card .panel-title-row,.roll-call-sidebar-card .panel-title-row{align-items:flex-start}.roll-call-save-hint{font-size:var(--text-sm);margin:0;font-weight:var(--weight-bold)}.roll-call-save-hint--saving{color:var(--muted)}.roll-call-save-hint--saved{color:var(--success, #16a34a)}.roll-call-save-hint--error{color:var(--danger, #dc2626)}.roll-call-all-saved{font-size:var(--text-sm);color:var(--success, #16a34a);font-weight:var(--weight-bold);margin:0}.roll-call-btn--selected{outline:3px solid currentColor;outline-offset:2px}.roll-call-row-sync{font-size:var(--text-xs);color:var(--muted);margin-left:auto;flex-shrink:0}.roll-call-row-sync--error{color:var(--danger, #dc2626)}.roll-call-progress{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;color:var(--muted);font-size:.9rem}.roll-call-progress span,.roll-call-progress strong{display:inline-flex}.roll-call-sidebar-progress{display:grid;gap:.45rem}.roll-call-sidebar-progress-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;color:var(--muted);font-size:.9rem}.roll-call-sidebar progress{width:100%}.roll-call-student-main{display:grid;gap:.35rem}.roll-call-student-main h3{font-size:clamp(1.45rem,4vw,2.3rem)}.roll-call-student-order{display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem}.roll-call-student-order strong{color:var(--accent-strong);font-size:1rem;white-space:nowrap}.roll-call-status-actions{display:grid;grid-template-columns:1fr}.roll-call-status-actions .primary-button,.roll-call-status-actions .danger-button{min-height:3.4rem;font-size:1.05rem}.status-chip{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--button-secondary-bg);border:1px solid var(--button-secondary-border);color:var(--muted);font-size:.82rem;font-weight:700;padding:.3rem .65rem;white-space:nowrap}.status-chip.is-present{background:var(--status-active-bg);border-color:var(--metric-border);color:var(--ok)}.status-chip.is-absent{background:var(--button-danger-bg);border-color:var(--button-danger-border);color:var(--button-danger-text)}.roll-call-review-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.roll-call-review-name{display:flex;align-items:center;gap:.4rem;min-width:0}.roll-call-review-name .enroll-code{font-weight:400}.roll-call-now-card{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:.8rem .9rem;display:grid;gap:.2rem}.roll-call-now-label{color:var(--muted);font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.split-panel{grid-template-columns:1fr}.split-panel>article{display:grid;gap:.8rem}.checkbox-grid{display:grid;gap:.45rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.checkbox-grid.compact{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.check-item{display:flex;align-items:center;gap:.45rem}.check-item input{width:1rem;height:1rem}.workstream-grid{display:grid;gap:.8rem;grid-template-columns:1fr}.service-toolbar,.checklist-toolbar{display:flex;gap:.75rem;align-items:center;justify-content:flex-start;flex-wrap:wrap}.service-toolbar p,.checklist-toolbar p{color:var(--muted)}.service-category-grid,.checklist-category-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.checklist-static-hh-grid{display:grid;gap:.55rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.checklist-static-hh-row{border:1px solid var(--line);border-radius:10px;padding:.55rem .65rem;display:grid;gap:.2rem;background:var(--surface-strong)}.checklist-static-hh-row span{color:var(--muted);font-size:.84rem}.checklist-static-hh-row strong{color:var(--accent-strong);font-size:.98rem}.service-elements-grid,.checklist-elements-grid{display:grid;gap:.8rem;grid-template-columns:1fr}.service-category-list,.checklist-category-list{display:grid;gap:.55rem}.service-category-row,.checklist-category-row{border:1px dashed var(--line);border-radius:10px;padding:.55rem;display:grid;gap:.5rem;background:var(--surface-strong)}.service-card-actions,.checklist-card-actions{display:inline-flex;align-items:center;gap:.7rem}.service-card-toggle,.checklist-card-toggle{font-size:.84rem}.service-qty-field,.checklist-qty-field,.service-hh-field,.checklist-hh-field{display:grid;gap:.3rem;max-width:140px}.checklist-hh-static-field{display:grid;gap:.3rem;max-width:160px}.service-qty-field span,.checklist-qty-field span,.service-hh-field span,.checklist-hh-field span,.checklist-hh-static-field span{color:var(--muted);font-size:.84rem;font-weight:500}.checklist-hh-static-field strong{color:var(--accent-strong);font-size:.95rem}.service-qty-field input,.checklist-qty-field input,.service-hh-field input,.checklist-hh-field input{min-height:2.1rem;border-radius:10px;border:1px solid var(--line);padding:.35rem .5rem;background:var(--input-bg);color:var(--ink)}.service-summary-inline,.checklist-summary-inline{font-size:.88rem}.saved-estimate-controls,.saved-estimate-search-grid{display:grid;gap:.6rem;grid-template-columns:1fr}.saved-estimate-search-actions{display:inline-flex;align-items:flex-end;gap:.55rem;flex-wrap:wrap}.saved-estimate-row-actions{display:inline-flex;gap:.45rem;flex-wrap:wrap}.workstream-card{border:1px solid var(--line);border-radius:12px;padding:.9rem;display:grid;gap:.7rem;background:var(--surface-strong)}.workstream-card-collapsed{gap:0}.workstream-card-header{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.workstream-card-header span{color:var(--muted);font-size:.9rem}.field-grid{display:grid;gap:.6rem;grid-template-columns:1fr}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface-strong)}table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}th,td{text-align:left;padding:.58rem .65rem;border-bottom:1px solid var(--table-border);vertical-align:middle}thead th{background:var(--table-head-bg);font-weight:700}tbody tr:last-child td{border-bottom:0}.metric-card{border:1px solid var(--metric-border);background:var(--metric-bg);border-radius:12px;padding:.95rem;display:grid;gap:.25rem;width:fit-content}.metric-card span{color:var(--muted);font-size:.88rem}.metric-card strong{font-size:1.55rem;color:var(--accent-strong)}.family-shell{gap:1.15rem}.family-shell-minimal{width:min(820px,94vw);padding-bottom:5.5rem}.family-shell-minimal .panel,.family-shell-minimal .hero{background:#121214f0;border-color:#ffffff14;box-shadow:0 24px 60px #00000047}.family-shell-minimal .eyebrow{color:#fca5a5}.family-shell-minimal .helper-inline{color:#ffffff9e}.family-shell-minimal .error-text{color:#fda4af}.family-shell-minimal .success-text{color:#86efac}.family-shell-minimal .field span{color:#ffffffad}.family-shell-minimal .field input,.family-shell-minimal .field select,.family-shell-minimal .field textarea{background:#ffffff0f;border-color:#ffffff14;color:#f8fafc}.family-shell-minimal .field input::placeholder,.family-shell-minimal .field textarea::placeholder{color:#ffffff57}.family-shell-minimal .secondary-button,.family-shell-minimal .secondary-link{background:#ffffff08;border-color:#ffffff1f;color:#f8fafc}.family-shell-minimal .secondary-button:hover,.family-shell-minimal .secondary-link:hover{background:#ffffff14}.family-shell-minimal .danger-button{background:#ff6b571f;border-color:#ff6b5759;color:#fecaca}.family-shell-minimal .danger-button:hover{background:#ff6b572e}.family-dashboard-card{display:grid;gap:1.2rem}.family-dashboard-top{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem}.family-dashboard-actions{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:flex-end}.family-shared-members{margin-top:.4rem;color:#ffffffc2;font-size:1rem}.family-total-block{display:grid;gap:.35rem}.family-total-label{color:#ffffff85;font-size:.92rem;text-transform:uppercase;letter-spacing:.1em}.family-total-block h1{font-size:clamp(3rem,10vw,5.2rem);line-height:.96;color:#f8fafc}.family-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.family-mini-stat{border-radius:18px;background:#ffffff0d;border:1px solid rgba(255,255,255,.06);padding:.95rem;display:grid;gap:.35rem}.family-mini-stat span{color:#ffffff85;font-size:.82rem}.family-mini-stat strong{color:#f8fafc;font-size:1.08rem}.family-filter-grid,.family-settings-grid{display:grid;gap:.8rem;grid-template-columns:1fr}.family-quick-grid{display:grid;gap:1rem}.family-accent-button{background:#ff6255;color:#fff6f5}.family-accent-button:hover{background:#ef4d43}.family-empty-state{min-height:220px;border-radius:24px;display:grid;place-items:center;gap:.4rem;text-align:center;background:linear-gradient(180deg,#ffffff08,#ffffff03),radial-gradient(circle at 10% 10%,rgba(255,255,255,.08),transparent 45%);border:1px solid rgba(255,255,255,.06);color:#f8fafc;padding:1.2rem}.family-transaction-card,.family-shell-minimal .voice-draft-card{background:#ffffff0a;border-color:#ffffff14}.family-transaction-card strong,.family-shell-minimal .section-header h2,.family-loading-card h1{color:#f8fafc}.family-shell-minimal .transaction-main p,.family-shell-minimal .transaction-amount-group small{color:#ffffff8f}.family-shell-minimal .money-ok{color:#86efac}.family-shell-minimal .money-warn{color:#fdba74}.family-settings-summary{display:flex;flex-wrap:wrap;gap:.7rem}.family-setting-chip{border-radius:999px;padding:.65rem .9rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);display:inline-flex;gap:.55rem;align-items:center;color:#f8fafc}.family-setting-chip span{color:#ffffff85;font-size:.82rem}.family-voice-review{margin-top:.4rem}.family-voice-summary-card{display:grid;gap:.9rem;border-radius:22px;padding:1rem;background:linear-gradient(180deg,#ff625524,#ff62550d),#ffffff0a;border:1px solid rgba(255,255,255,.08)}.family-voice-summary-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.7rem}.family-voice-summary-kind{display:inline-flex;align-items:center;min-height:2rem;padding:.35rem .75rem;border-radius:999px;background:#080c1652;color:#fff6f7;font-size:.84rem;font-weight:700}.family-voice-summary-grid{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}.family-voice-summary-item{display:grid;gap:.3rem;padding:.9rem;border-radius:18px;background:#080c162e;border:1px solid rgba(255,255,255,.08)}.family-voice-summary-item span{color:#ffffff9e;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}.family-voice-summary-item strong{color:#fff7f8;font-size:1rem;line-height:1.35}.family-voice-summary-transcript{color:#fffc;line-height:1.55;padding:.9rem 1rem;border-radius:18px;background:#080c1624;border:1px solid rgba(255,255,255,.06)}.family-recorder-overlay{position:fixed;inset:0;z-index:120;background:radial-gradient(circle at 80% 20%,rgba(255,98,85,.28),transparent 28%),radial-gradient(circle at 50% 100%,rgba(153,120,255,.2),transparent 35%),linear-gradient(180deg,#ffd3cdbd,#cc9db4d1);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.family-recorder-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto;align-items:center;padding:calc(1.4rem + env(safe-area-inset-top)) 1.25rem calc(1.8rem + env(safe-area-inset-bottom))}.family-recorder-status-pill{justify-self:center;min-width:170px;min-height:4.2rem;padding:.9rem 1.3rem;border-radius:999px;background:#080c16eb;color:#fff6f7;display:inline-flex;align-items:center;justify-content:center;gap:.7rem;box-shadow:0 16px 36px #080c163d;font-weight:700;letter-spacing:.04em}.family-recorder-dot{width:.78rem;height:.78rem;border-radius:999px;background:#ff9d3b;box-shadow:0 0 #ff9d3b8c;animation:family-recorder-pulse 1.4s infinite}.family-recorder-copy{display:grid;gap:1rem;align-self:center;justify-items:center;text-align:center;color:#fff5f6fa;padding:0 .8rem}.family-recorder-copy .eyebrow{color:#fff5f6bf}.family-recorder-copy h2{max-width:9ch;font-size:clamp(2.4rem,10vw,4.5rem);line-height:.98;letter-spacing:-.05em}.family-recorder-copy p:last-child{max-width:26rem;color:#fff5f6d1;font-size:1rem;line-height:1.5}.family-recorder-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem}.family-recorder-circle{width:5.7rem;height:5.7rem;border-radius:999px;border:1px solid rgba(255,245,246,.35);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;cursor:pointer;transition:transform .16s ease,background .16s ease,border-color .16s ease}.family-recorder-circle:hover{transform:translateY(-2px)}.family-recorder-circle-cancel{background:#fff5f62e;color:#fff6f7}.family-recorder-circle-confirm{background:#ff766c;border-color:#ff8478f2;color:#fff8f8}.family-recorder-processing{display:grid;gap:.85rem}.family-recorder-processing-bar{width:min(320px,72vw);height:.5rem;border-radius:999px;background:#fff5f64d;overflow:hidden;position:relative}.family-recorder-processing-bar:after{content:"";position:absolute;inset:0;width:38%;border-radius:inherit;background:linear-gradient(90deg,#ff766c40,#ff766cf2);animation:family-recorder-loading 1.1s ease-in-out infinite}@keyframes family-recorder-pulse{0%{box-shadow:0 0 #ff9d3b85}70%{box-shadow:0 0 0 12px #ff9d3b00}to{box-shadow:0 0 #ff9d3b00}}@keyframes family-recorder-loading{0%{transform:translate(-110%)}to{transform:translate(320%)}}.family-hero{display:flex;flex-direction:column;gap:1rem}.hero-actions,.section-actions,.button-row,.family-footer-links{display:flex;flex-wrap:wrap;gap:.55rem}.family-inline-message{margin-top:-.2rem}.family-toolbar{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:.8rem}.family-grid,.family-panel{display:grid;gap:1rem}.section-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.9rem}.section-header h2{margin-top:.25rem;font-size:1.35rem}.metric-grid{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.family-shell .metric-card{width:100%}.metric-card-default{border-color:var(--metric-border)}.metric-card-ok{border-color:#6ee7b7;background:#ecfdf5}.metric-card-warn{border-color:#fbbf24;background:#fffbeb}.metric-card-error{border-color:#f87171;background:#fef2f2}.inline-fields{display:grid;gap:.75rem;grid-template-columns:1fr}.inline-fields-compact{align-items:end}.compact-field{min-width:150px}.list-grid,.report-stack{display:grid;gap:.8rem}.transaction-card,.voice-draft-card,.invite-box{border:1px solid var(--line);border-radius:14px;background:var(--surface-strong);padding:.95rem;display:grid;gap:.75rem}.transaction-main{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.8rem}.transaction-main p{margin-top:.3rem;color:var(--muted)}.transaction-amount-group{display:grid;gap:.15rem;justify-items:end}.transaction-amount-group small{color:var(--muted)}.money-ok{color:var(--ok);font-weight:700}.money-warn{color:var(--wait);font-weight:700}.budget-row{display:grid;gap:.6rem;padding:.75rem 0;border-bottom:1px solid var(--line)}.budget-row:last-of-type{border-bottom:0}.simple-list{list-style:none;padding:0;margin:0;display:grid;gap:.55rem}.simple-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem;border:1px solid var(--line);border-radius:12px;padding:.7rem .85rem;background:var(--surface-strong)}.definition-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin:0}.definition-grid div{border:1px solid var(--line);border-radius:12px;background:var(--surface-strong);padding:.75rem}.definition-grid dt{color:var(--muted);font-size:.88rem}.definition-grid dd{margin:.28rem 0 0;font-weight:700}.form-divider{height:1px;background:var(--line)}.separated-form{padding-top:.2rem}.not-found,.placeholder-shell{min-height:80vh;display:grid;place-items:center}.not-found-card,.placeholder-card{padding:1.4rem;width:min(620px,94vw);display:grid;gap:.85rem}@media(min-width:700px){.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.assistance-overview-head{grid-template-columns:minmax(0,1fr) minmax(220px,260px);align-items:end}.roll-call-workspace{grid-template-columns:minmax(0,1fr) minmax(300px,340px);align-items:start}.roll-call-sidebar{position:sticky;top:1rem}.roll-call-select-grid{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr)}.roll-call-course-grid,.roll-call-status-actions,.field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.family-hero{flex-direction:row;align-items:flex-start;justify-content:space-between}.inline-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.saved-estimate-search-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.theme-toggle{top:1rem;right:1rem}.brand-logo{top:1rem;left:1rem}.assistance-session-chip{top:1.35rem}.family-filter-grid,.family-settings-grid,.family-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:980px){.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.module-header{grid-template-columns:1fr auto;align-items:start}.split-panel{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.family-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1200px){.menu-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.workstream-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:699px){.assistance-shell{width:min(100%,100vw);padding:4.25rem 1rem 3rem}.assistance-nav-grid{gap:.55rem}.assistance-nav-card{width:100%;justify-content:center;padding:.9rem 1rem;min-height:3.2rem}.assistance-subnav-button{width:100%;min-height:3rem}.assistance-section-toolbar{flex-direction:column;align-items:stretch}.assistance-course-picker{max-width:100%}.enroll-columns{grid-template-columns:1fr}.enroll-list{max-height:14rem}.enroll-btn{width:2.2rem;height:2.2rem}.panel{padding:var(--padding-card)}.assistance-session-chip{top:1.25rem;left:50%;right:auto;transform:translate(-50%);max-width:min(48vw,220px);font-size:.76rem}.assistance-footer-actions{justify-items:stretch}.assistance-footer-actions .danger-button{width:100%}.module-header,.panel{border-radius:14px}.form-grid.inline-form .primary-button{width:100%}.family-shell-minimal{width:min(100%,100vw);padding:1.1rem 1rem 6rem}.family-shell-minimal .panel{border-radius:28px}.family-stat-grid{grid-template-columns:1fr}.family-dashboard-actions{justify-content:flex-start}}.family-shell-v2{min-height:100vh;width:min(100%,520px);margin:0 auto;padding:1.25rem 1rem 6rem;display:grid;gap:1rem}.family-minimal-stage,.family-minimal-settings{border-radius:32px;background:radial-gradient(circle at top left,rgba(255,126,95,.24),transparent 34%),radial-gradient(circle at top right,rgba(255,68,68,.18),transparent 28%),linear-gradient(180deg,#18181c,#0f0f12);color:#f8eef0;border:1px solid rgba(255,255,255,.08);box-shadow:0 28px 80px #060a1847}.family-minimal-stage h1,.family-minimal-settings h2{color:#fff7f8}.family-minimal-stage{min-height:74vh;display:grid;align-content:center;gap:1rem;text-align:center}.family-minimal-stage-loading{min-height:56vh}.family-minimal-month{margin:-.3rem 0 0;font-size:.98rem;color:#ffeff0bd;text-transform:capitalize}.family-minimal-stage h1{margin:0;font-size:clamp(3.8rem,12vw,5.8rem);line-height:.95;letter-spacing:-.08em}.family-minimal-caption{margin:0;color:#ffeff0c7}.family-minimal-actions,.family-settings-actions,.family-dictation-inline-actions,.family-dictation-actions{display:flex;gap:.85rem;flex-wrap:wrap}.family-minimal-actions{justify-content:center;margin-top:.35rem}.family-minimal-primary{min-width:220px;min-height:58px;border-radius:999px;background:linear-gradient(135deg,#ff6d62,#ff4d62);box-shadow:0 20px 44px #ff5c6052}.family-minimal-settings{display:grid;gap:1rem}.family-minimal-settings .field span{color:#ffeff0d6}.family-minimal-settings .field input{background:#0c0a126b;color:#fff7f5;border:1px solid rgba(255,255,255,.18)}.family-minimal-settings .helper-inline,.family-minimal-stage .helper-inline,.family-minimal-settings .secondary-link{color:#ffeff0c2}.family-history-block,.family-history-list{display:grid;gap:.8rem}.family-history-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.family-chart-card{display:grid;gap:1rem;padding:1rem;border-radius:24px;background:#ffffff0d;border:1px solid rgba(255,255,255,.07)}.family-chart-layout{display:grid;gap:1rem;align-items:center}.family-pie-visual{position:relative;width:min(100%,220px);aspect-ratio:1;margin:0 auto}.family-pie-visual svg{width:100%;height:auto;display:block}.family-pie-center{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);display:grid;gap:.2rem;width:7rem;text-align:center}.family-pie-center strong{color:#fff7f8;font-size:1rem}.family-pie-center span{color:#ffeff0b3;font-size:.82rem;text-transform:capitalize}.family-pie-legend{display:grid;gap:.75rem}.family-pie-legend-item{display:grid;grid-template-columns:auto 1fr auto;gap:.8rem;align-items:center;padding:.9rem .95rem;border-radius:20px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06)}.family-pie-legend-mark{width:.8rem;height:.8rem;border-radius:999px;display:inline-block}.family-pie-legend-item p{margin:.18rem 0 0;color:#ffeff0ad}.family-history-item{display:flex;justify-content:space-between;gap:1rem;padding:.95rem 1rem;border-radius:22px;background:#ffffff0f;border:1px solid rgba(255,255,255,.07)}.family-history-item-main{display:grid;gap:.15rem}.family-history-item strong{color:#fff7f8}.family-history-item p{margin:.3rem 0 0;color:#ffeff0b3}.family-dictation-overlay{position:fixed;inset:0;z-index:90;padding:max(1rem,env(safe-area-inset-top)) 1rem max(1.2rem,env(safe-area-inset-bottom));overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:radial-gradient(circle at top left,rgba(255,188,174,.28),transparent 24%),radial-gradient(circle at top right,rgba(204,157,255,.2),transparent 30%),linear-gradient(145deg,#c68883,#d25e57,#a191b4);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.family-dictation-shell{min-height:100%;height:auto;border-radius:38px;padding:1.35rem 1.1rem 2rem;display:flex;flex-direction:column;gap:1rem;overflow-y:auto;background:linear-gradient(180deg,#ffffff14,#ffffff05);border:1px solid rgba(255,255,255,.28);box-shadow:inset 0 0 0 1px #ffffff14}.family-dictation-pill{width:fit-content;margin:0 auto;padding:.72rem 1.1rem;border-radius:999px;background:#0e0c12d1;color:#fff4ef;display:inline-flex;align-items:center;gap:.55rem;font-weight:700}.family-dictation-pulse{width:.72rem;height:.72rem;border-radius:999px;background:#ffb347;box-shadow:0 0 #ffb3478c;animation:family-dictation-pulse 1.2s infinite}.family-dictation-timer{margin:0;text-align:center;color:#fff5f0eb;font-size:1.15rem;font-weight:700}.family-dictation-copy{display:grid;gap:.7rem;justify-items:center;text-align:center;padding:1.2rem 0}.family-dictation-copy h2{margin:0;font-size:clamp(2rem,9vw,3.8rem);line-height:1.04;color:#fff3f1}.family-dictation-copy p:last-child{margin:0;max-width:19rem;color:#fff4f1c7;font-size:1.04rem}.family-circle-button{width:5.7rem;height:5.7rem;border-radius:999px;border:none;cursor:pointer;font-size:1.05rem;font-weight:800;transition:transform .16s ease,box-shadow .16s ease}.family-circle-button:hover{transform:translateY(-2px)}.family-circle-cancel{background:#ffffff38;color:#fff8f5;box-shadow:0 12px 28px #100e1c1f}.family-circle-confirm{background:linear-gradient(135deg,#ff7c72,#ff6a61);color:#fff;box-shadow:0 18px 34px #ff5f5c47}.family-dictation-actions{margin-top:auto;justify-content:space-between;align-items:flex-end}.family-dictation-inline-actions{margin-top:auto;justify-content:flex-end}.family-dictation-loader{width:min(280px,100%);height:14px;margin:0 auto;overflow:hidden;border-radius:999px;background:#ffffff2e}.family-dictation-loader:after{content:"";display:block;width:42%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ffffff4d,#ffffffd9);animation:family-dictation-loader 1s ease-in-out infinite}.family-draft-preview-card{display:grid;gap:.75rem;padding:1rem;border-radius:24px;background:#110e1652;color:#fff7f5}.family-draft-preview-meta{display:flex;justify-content:space-between;gap:1rem;align-items:center;color:#fff5f0b8;font-size:.92rem}.family-draft-preview-row{display:flex;justify-content:space-between;gap:1rem;align-items:center}.family-draft-preview-row span{color:#fff5f0b8}.family-draft-fields{display:grid;gap:.85rem}.family-payment-method-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.family-payment-method-button{display:grid;gap:.35rem;min-height:96px;padding:1rem;border-radius:20px;border:1px solid rgba(255,255,255,.16);background:#0c0a126b;color:#fff7f5;text-align:left;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}.family-payment-method-button span{color:#fff5f0b8;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em}.family-payment-method-button strong{font-size:1rem;line-height:1.35}.family-payment-method-button:hover{transform:translateY(-1px);border-color:#ffffff47}.family-payment-method-button.is-selected{background:linear-gradient(180deg,#ff625557,#ff625529);border-color:#ffd1ccb3;box-shadow:0 16px 28px #ff62552e}.family-dictation-shell .field span{color:#fff5f0d6}.family-dictation-shell .field input,.family-dictation-shell .field textarea{background:#0c0a126b;color:#fff7f5;border:1px solid rgba(255,255,255,.18)}.family-dictation-shell .field textarea[readonly]{opacity:.88}@keyframes family-dictation-pulse{0%{box-shadow:0 0 #ffb34773}70%{box-shadow:0 0 0 14px #ffb34700}to{box-shadow:0 0 #ffb34700}}@keyframes family-dictation-loader{0%{transform:translate(-100%)}to{transform:translate(260%)}}@media(max-width:699px){.family-shell-v2{width:min(100%,100vw);padding:1rem 1rem 5.5rem}.family-minimal-stage{min-height:70vh}.family-dictation-shell{border-radius:30px;padding-inline:1rem}.family-history-heading{flex-direction:column}.family-pie-legend-item{grid-template-columns:1fr}.family-dictation-inline-actions,.family-settings-actions{flex-direction:column;align-items:stretch}}.dashboard-filters{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end}.dashboard-filters .field{min-width:0}.dashboard-today-btn{height:38px;padding:0 var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font-size:var(--text-sm);font-weight:var(--weight-bold);cursor:pointer;white-space:nowrap;align-self:flex-end;transition:background .12s,border-color .12s,color .12s}.dashboard-today-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.dashboard-today-btn.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.dashboard-today-btn:disabled{opacity:.5;cursor:not-allowed}.dashboard-loading-hint{font-size:var(--text-sm);color:var(--muted);align-self:center}.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.dashboard-kpi{display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:var(--space-3) var(--space-2);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-strong);text-align:center}.dashboard-kpi-value{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--accent);line-height:1}.dashboard-kpi-value--absent{color:var(--error, #d93025)}.dashboard-kpi-label{font-size:var(--text-xs);color:var(--muted);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.course-summary-list{display:grid;gap:var(--space-2);list-style:none;margin:0;padding:0}.course-summary-row{display:grid;grid-template-columns:1fr auto auto;grid-template-rows:auto auto;gap:var(--space-2) var(--space-3);align-items:center;padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-strong);cursor:pointer;transition:background .15s,border-color .15s}.course-summary-row:hover{background:var(--surface-hover, var(--surface));border-color:var(--accent)}.course-summary-xlsx-btn{font-size:var(--text-xs);font-weight:var(--weight-bold);padding:2px 8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent);cursor:pointer;white-space:nowrap;line-height:1.6;transition:background .12s,border-color .12s}.course-summary-xlsx-btn:hover:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent)}.course-summary-xlsx-btn:disabled{opacity:.5;cursor:wait}.dashboard-detail-back{margin-bottom:var(--space-3)}.course-summary-row progress{grid-column:1 / -1;width:100%;height:8px;border-radius:var(--radius-full);accent-color:var(--accent)}.course-summary-name{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--ink)}.course-summary-meta{font-size:var(--text-xs);color:var(--muted);white-space:nowrap}.course-summary-row progress{width:80px;height:8px;border-radius:var(--radius-full);accent-color:var(--accent)}.course-summary-pct{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--accent);min-width:2.5rem;text-align:right}.pivot-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-strong);-webkit-overflow-scrolling:touch}.pivot-table-wrap table{min-width:max-content}.pivot-table-wrap th:first-child,.pivot-table-wrap td:first-child{position:sticky;left:0;background:var(--surface-strong);z-index:2;min-width:160px;font-weight:var(--weight-bold)}.pivot-table-wrap thead th:first-child{background:var(--table-head-bg, var(--surface-strong))}.att-chip{display:inline-flex;align-items:center;justify-content:center;width:1.8rem;height:1.8rem;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-bold);line-height:1}.att-chip--present{background:color-mix(in srgb,var(--ok, #1a7f37) 15%,transparent);color:var(--ok, #1a7f37)}.att-chip--absent{background:color-mix(in srgb,var(--error, #d93025) 12%,transparent);color:var(--error, #d93025)}.att-chip--empty{background:var(--line);color:var(--muted)}@media(min-width:700px){.dashboard-kpi-grid{grid-template-columns:repeat(4,1fr)}.course-summary-row{grid-template-columns:1fr auto auto auto auto;grid-template-rows:auto}.course-summary-row progress{grid-column:auto;width:80px}}
