:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}body{color:#eaf7ff;background:#071625;margin:0;font-family:Arial,sans-serif}.app{max-width:1200px;margin:auto;padding:0 30px 30px}.login-page{place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{background:#111827;border:1px solid #334155;border-radius:8px;gap:12px;width:100%;max-width:420px;padding:28px;display:grid}.login-card h1,.login-card h2{margin:0}.login-error{color:#fecaca;background:#7f1d1d;border-radius:6px;padding:10px}.landing-page{place-items:center;min-height:100vh;padding:24px;display:grid}.landing-content{text-align:center;gap:22px;width:100%;max-width:760px;display:grid}.landing-header{gap:10px;display:grid}.landing-header h1{margin:0;font-size:40px;line-height:1.18}.landing-header p,.landing-note{color:#cbd5e1;margin:0;font-size:18px;line-height:1.5}.timeslot-box{background:#111827;border:1px solid #334155;border-radius:8px;gap:16px;padding:24px;display:grid}.timeslot-box h2{margin:0}.timeslot-list{gap:10px;display:grid}.timeslot-row{text-align:left;background:#1e293b;border:1px solid #334155;border-radius:8px;grid-template-columns:110px 130px minmax(0,1fr) minmax(0,1fr);align-items:center;gap:10px;padding:12px;display:grid}.timeslot-row strong{color:#bbf7d0}.timeslot-row span{color:#e5e7eb}.empty-timeslots{color:#cbd5e1;background:#1e293b;border:1px solid #334155;border-radius:8px;padding:16px}.landing-login-button{justify-self:center;min-width:160px}.app-header{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#051c33f7;border-bottom:1px solid #38bdf847;margin:0 -30px 24px;position:sticky;top:0;box-shadow:0 12px 34px #00407047}.app-header-inner{grid-template-columns:minmax(220px,280px) minmax(0,1fr) auto;align-items:center;gap:14px;max-width:1200px;margin:0 auto;padding:14px 30px;display:grid}.brand-button{color:#fff;background:0 0;border:none;justify-self:start;align-items:center;gap:12px;width:100%;min-width:0;padding:0;font-size:19px;font-weight:800;display:inline-flex}.brand-button:hover{background:0 0}.brand-logo{object-fit:contain;width:58px;height:58px}.brand-text{color:#fff;text-shadow:0 2px #00518b99;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.primary-nav{justify-content:flex-start;align-items:center;gap:6px;min-width:0;display:flex;overflow:visible}.nav-item{position:relative}.nav-link,.nav-menu-item{color:#d8f3ff;white-space:nowrap;background:0 0;border:1px solid #0000;font-weight:700}.nav-link{align-items:center;gap:6px;display:inline-flex}.nav-link:hover,.nav-menu-item:hover,.nav-item.active>.nav-link,.nav-link.active,.nav-menu-item.active{color:#fff;background:#0080be47;border-color:#7dd3fc7a}.nav-caret{color:#7dd3fc;font-size:11px}.nav-menu{background:#08223d;border:1px solid #7dd3fc6b;border-radius:8px;gap:4px;min-width:190px;padding:8px;display:none;position:absolute;top:100%;left:0;box-shadow:0 18px 40px #00182e80}.has-menu:hover .nav-menu,.has-menu:focus-within .nav-menu{display:grid}.nav-menu-item{text-align:left;width:100%}.user-menu{justify-content:end;align-items:center;gap:12px;display:flex}.user-menu div{text-align:right;gap:2px;display:grid}.user-menu strong{color:#fff;font-size:14px}.user-menu span{color:#a8e8ff;font-size:12px}.mobile-menu-button{width:40px;height:40px;padding:9px;display:none}.mobile-menu-button span{background:#eaf7ff;height:2px;margin:4px 0;display:block}.admin-form{gap:10px;max-width:520px;margin:0 auto;display:grid}.role-options,.password-reset-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.role-options label{align-items:center;gap:6px;display:flex}.message-template-layout{grid-template-columns:minmax(220px,320px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.message-template-list{gap:10px;display:grid}.message-template-list button{text-align:left;gap:4px;display:grid}.message-template-list button span{color:#cbd5e1;font-size:13px}.message-template-list .selected-template{background:#14532d;border-color:#22c55e}.message-template-form{gap:12px;display:grid}.message-template-form label:not(.checkbox-row){text-align:left;gap:6px;display:grid}.message-template-form textarea{min-height:320px}.template-usage{color:#dbeafe;text-align:left;background:#172554;border:1px solid #2563eb;border-radius:8px;padding:10px}@media (width<=760px){.message-template-layout{grid-template-columns:1fr}}.instructor-admin-layout{grid-template-columns:minmax(180px,280px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.instructor-list-panel,.admin-list,.schedule-editor{gap:10px;display:grid}.admin-list button{text-align:left;gap:4px;display:grid}.admin-list span{color:#cbd5e1;font-size:13px}.selected-admin-item{background:#14532d;border-color:#22c55e}.instructor-form{max-width:none;margin:0}.schedule-editor-row{background:#1e293b;border:1px solid #334155;border-radius:8px;grid-template-columns:minmax(140px,1fr) 130px 130px auto auto;align-items:center;gap:10px;padding:10px;display:grid}.instructor-date-row{grid-template-columns:minmax(150px,1fr) 130px 130px auto auto auto}.schedule-editor-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:14px;display:flex}h1{text-align:center;margin-bottom:10px;font-size:42px}h2{text-align:center;margin-top:10px}.controls{flex-wrap:wrap;justify-content:center;gap:12px;margin:20px 0;display:flex}button,select,input{color:#fff;background:#0c2a46;border:1px solid #1d5f8f;border-radius:8px;padding:10px 14px;font-size:14px}button:hover,select:hover,input:hover{cursor:pointer;background:#0f4f7d}table{border-collapse:collapse;background:#111827;width:100%}th,td{text-align:center;border:1px solid #334155;padding:10px}th{background:#1e293b}.status,.confirmation-status{border-radius:999px;padding:6px 10px;font-size:13px;font-weight:700;display:inline-block}.scheduled{color:#fff;background:#1d4ed8}.completed{color:#fff;background:#15803d}.called-out{color:#fff;background:#ca8a04}.cancelled{color:#fff;background:#b91c1c}.no-show{color:#fff;background:#c2410c}.rescheduled{color:#fff;background:#7c3aed}.confirmation-not-started{color:#fff;background:#475569}.confirmation-sent{color:#fff;background:#2563eb}.confirmation-confirmed{color:#fff;background:#15803d}.confirmation-issue{color:#fff;background:#b91c1c}.daily-list{gap:16px;display:grid}.schedule-block-list{gap:10px;display:grid}.schedule-block{background:#111827;border:1px solid #334155;border-radius:8px;grid-template-columns:140px 1fr;align-items:start;gap:14px;padding:14px;display:grid}.schedule-block.available{border-color:#15803d}.schedule-block.booked{border-color:#2563eb}.schedule-block-time{color:#93c5fd;font-weight:700}.available-block-label{color:#bbf7d0;font-weight:700}.available-block-panel,.assign-block-form{gap:10px;display:grid}.first-lesson-badge{color:#fef3c7;text-transform:uppercase;vertical-align:middle;background:#78350f;border:1px solid #f59e0b;border-radius:999px;margin-left:8px;padding:3px 8px;font-size:11px;font-weight:700;line-height:1.2;display:inline-block}.filter-controls,.page-tabs{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin:18px 0;display:flex}.filter-refresh-status{color:#bbf7d0;font-weight:700}.page-tabs button{min-width:110px}.fill-in-availability-panel{background:#0f172a;border:1px solid #334155;border-radius:8px;gap:10px;padding:10px;display:grid}.fill-in-select-row{grid-template-columns:repeat(2,minmax(160px,1fr));gap:10px;display:grid}.fill-in-select-row label{color:#cbd5e1;gap:6px;display:grid}.unfilled-toolbar{gap:14px;margin:18px 0 24px;display:grid}.unfilled-toolbar .page-tabs,.unfilled-toolbar .report-total{margin:0}.active-tab{background:#14532d;border-color:#22c55e}.unfilled-filters{flex-wrap:wrap;justify-content:center;align-items:end;gap:12px;display:flex}.unfilled-filters label{color:#cbd5e1;gap:8px;min-width:180px;font-weight:700;display:grid}.unfilled-date-list{gap:24px;display:grid}.unfilled-day h3{margin:0 0 12px}.unfilled-comparison{padding-bottom:8px;overflow-x:auto}.unfilled-comparison-header,.unfilled-comparison-row{grid-template-columns:repeat(4,minmax(260px,1fr));gap:0;min-width:1040px;display:grid}.unfilled-comparison-header{align-items:end;margin-bottom:12px}.unfilled-comparison-header h3{margin:0;padding:0 12px}.unfilled-comparison-rows{gap:10px;display:grid}.unfilled-comparison-cell{min-width:0}.unfilled-comparison-cell .schedule-block{border-radius:0;grid-template-columns:1fr;height:100%}.unfilled-comparison-cell:first-child .schedule-block{border-top-left-radius:8px;border-bottom-left-radius:8px}.unfilled-comparison-cell:last-child .schedule-block{border-top-right-radius:8px;border-bottom-right-radius:8px}.unfilled-comparison-cell .fill-in-select-row{grid-template-columns:1fr}.unfilled-empty-cell{background:#0f172a7a;border:1px solid #1e293b;height:100%;min-height:140px}.student-search-results{gap:8px;max-height:280px;display:grid;overflow:auto}.student-search-results button{text-align:left;gap:4px;display:grid}.student-search-results span{color:#cbd5e1;font-size:13px}.student-search-results .selected-student-result{background:#14532d;border-color:#22c55e}.lesson-edit-form{grid-template-columns:minmax(130px,1fr) 110px 110px minmax(150px,1fr) auto;align-items:end;gap:10px;margin-top:10px;display:grid}.lesson-actions{flex-wrap:wrap;gap:10px;display:flex}.lesson-quick-edit{grid-template-columns:repeat(2,minmax(180px,1fr));gap:10px;max-width:520px;margin:10px 0;display:grid}.lesson-quick-edit label{color:#cbd5e1;text-align:left;gap:6px;display:grid}.lesson-history-toolbar{flex-wrap:wrap;justify-content:center;align-items:end;gap:10px;margin:8px 0 16px;display:flex}.lesson-history-toolbar label{color:#cbd5e1;text-align:left;gap:6px;min-width:180px;display:grid}.lesson-copy-status{color:#bbf7d0;padding:10px 0;font-weight:700}.lesson-edit-form label{color:#cbd5e1;text-align:left;gap:6px;display:grid}.lesson-edit-form .lesson-notes-field{grid-column:1/-2}.lesson-edit-form textarea{min-height:84px}.schedule-block-lesson{gap:6px;display:grid}.instructor-block{grid-template-columns:140px minmax(0,1fr)}.instructor-lesson{background:#1e293b;border:1px solid #334155;border-radius:8px;padding:12px}.instructor-student-button{justify-self:start;padding:0;font-size:18px}.instructor-lesson-meta,.instructor-student-notes,.instructor-lesson-notes{color:#cbd5e1;line-height:1.4}.instructor-student-notes strong,.instructor-lesson-notes strong{color:#e5e7eb}.lesson-card{background:#111827;border:1px solid #334155;border-radius:12px;padding:18px}.lesson-time{color:#93c5fd;font-size:16px;font-weight:700}.lesson-student{margin:8px 0;font-size:24px;font-weight:700}.lesson-details{color:#cbd5e1;margin-bottom:12px}.lesson-credits{color:#bbf7d0;margin-bottom:12px;font-weight:700}.inline-payment-form{border-top:1px solid #334155;gap:10px;margin-top:12px;padding-top:12px;display:grid}.status-row,.confirmation-actions{flex-wrap:wrap;gap:10px;margin:12px 0;display:flex}.google-voice-contact{align-items:start;gap:6px;display:grid}.google-voice-contact span{color:#cbd5e1;font-size:13px}.template-help{color:#cbd5e1;margin:10px 0;font-size:13px}textarea{color:#fff;resize:vertical;background:#1e293b;border:1px solid #334155;border-radius:8px;width:100%;min-height:90px;margin-top:12px;padding:10px;font-size:14px}.search-box{color:#fff;background:#1e293b;border:1px solid #334155;border-radius:8px;width:100%;max-width:500px;margin:20px auto;padding:12px;font-size:16px;display:block}.link-button{color:#93c5fd;cursor:pointer;background:0 0;border:none;font-size:15px;font-weight:700}.link-button:hover{text-decoration:underline}.lesson-student-button{padding:0;font-size:24px}.detail-card{background:#111827;border:1px solid #334155;border-radius:12px;margin:20px 0;padding:20px}.student-row{border-top:1px solid #334155;padding:12px 0}.guardian-list,.guardian-form{gap:12px;display:grid}.guardian-row{border-top:1px solid #334155;gap:8px;padding:12px 0;display:grid}.guardian-actions,.checkbox-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.checkbox-row input{width:auto}.student-time-block-list{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:14px;display:grid}.student-time-block{color:#bbf7d0;border-color:#15803d;font-weight:700}.student-time-block:hover{background:#14532d}.allocation-table{margin:18px 0}.allocation-table h4{color:#cbd5e1;margin:0 0 10px}.move-student-row{flex-wrap:wrap;align-items:end;gap:10px;margin-top:12px;display:flex}.move-student-row label{gap:6px;display:grid}.weekly-actions{gap:8px;min-width:150px;display:grid}.weekly-actions input{box-sizing:border-box;width:100%}h3{text-align:center;margin-top:28px}.report-filters{grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px;margin:20px 0;display:grid}.report-date-filters{grid-template-columns:repeat(2,minmax(180px,1fr));max-width:620px;margin-left:auto;margin-right:auto}.report-filters label{color:#cbd5e1;gap:8px;font-weight:700;display:grid}.report-total{color:#cbd5e1;justify-content:center;align-items:center;gap:12px;margin:16px 0;display:flex}.report-total strong{color:#93c5fd;font-size:28px}.summary-grid{grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px;margin:22px 0;display:grid}.summary-panel{text-align:center;background:#111827;border:1px solid #334155;border-radius:8px;padding:18px}.summary-panel span{color:#cbd5e1;margin-bottom:8px;display:block}.summary-panel strong{color:#93c5fd;font-size:30px}.report-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin:24px 0;display:flex}.student-credit-lessons-row>td{background:#0f172a;padding:14px}.nested-report-table{background:#172033}.nested-report-table th{background:#243044}.financial-date-actions{flex-wrap:wrap;align-self:end;gap:8px;display:flex}.financial-date-actions button{flex:110px}.financial-report-actions{align-items:end}.financial-report-actions label{color:#cbd5e1;gap:8px;min-width:260px;font-weight:700;display:grid}.success-message{color:#86efac;text-align:center;font-weight:700}button:disabled{opacity:.58}button:disabled:hover{cursor:not-allowed;background:#0c2a46}.accounting-entry-row{grid-template-columns:minmax(180px,1fr) 160px 150px auto;align-items:end;gap:10px;margin:18px 0;display:grid}.financial-summary-grid{margin-bottom:20px}.financial-summary-card{gap:12px;display:grid}.financial-summary-line{border-bottom:1px solid #334155;grid-template-columns:220px 1fr;align-items:center;gap:12px;padding-bottom:12px;display:grid}.financial-summary-line:last-child{border-bottom:0;padding-bottom:0}.financial-summary-label{color:#93a4bd;text-align:left;font-weight:700}.financial-summary-value{color:#e5efff;text-align:left;font-size:18px}.financial-expense-breakdown{flex-wrap:wrap;gap:10px 22px;display:flex}.credit-breakdown-count{font-size:24px;line-height:1.2;display:block}.credit-breakdown-amount{color:#64748b;margin-top:4px;font-size:14px}.move-lesson-row{flex-wrap:wrap;align-items:end;gap:10px;margin-top:10px;display:flex}.move-lesson-row label{gap:4px;min-width:180px;display:grid}@media (width<=760px){.report-filters,.accounting-entry-row{grid-template-columns:1fr}.financial-date-actions,.financial-report-actions{grid-template-columns:1fr;display:grid}.financial-report-actions label{min-width:0}.financial-summary-line{grid-template-columns:1fr}}.error-message{color:#fca5a5;text-align:center;font-weight:700}@media (width<=760px){.app{padding:0 18px 24px}.app-header{margin:0 -18px 18px}.app-header-inner{grid-template-columns:auto minmax(0,1fr);gap:12px;padding:12px 18px}.mobile-menu-button{display:block}.brand-button{min-width:0;font-size:16px}.brand-logo{width:46px;height:46px}.brand-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.primary-nav{background:#08223d;border:1px solid #7dd3fc6b;border-radius:8px;grid-column:1/-1;justify-content:stretch;align-items:stretch;padding:8px;display:none}.primary-nav.open{display:grid}.nav-item,.nav-link,.nav-menu-item{width:100%}.nav-link{justify-content:space-between}.nav-menu{min-width:0;box-shadow:none;margin:4px 0 8px;display:grid;position:static}.user-menu{border-top:1px solid #334155;grid-column:1/-1;justify-content:space-between;padding-top:10px}.user-menu div{text-align:left}h1{font-size:32px}.landing-header h1{font-size:32px;line-height:1.22}.landing-header p,.landing-note{font-size:16px}.timeslot-row{text-align:center;grid-template-columns:1fr}.report-filters,.summary-grid,.instructor-admin-layout,.schedule-editor-row,.lesson-quick-edit,.lesson-edit-form,.fill-in-select-row{grid-template-columns:1fr}.unfilled-filters{grid-template-columns:1fr;display:grid}.unfilled-comparison{overflow-x:visible}.unfilled-comparison-header,.unfilled-comparison-row{grid-template-columns:1fr;min-width:0}.unfilled-comparison-header,.unfilled-empty-cell{display:none}.lesson-edit-form .lesson-notes-field{grid-column:auto}table{font-size:13px}th,td{padding:8px}}
