:root{--ink:#20303b;--muted:#71808a;--brand:#26716d;--brand-dark:#185551;--bg:#f3f6f5;--card:#fff;--line:#dbe4e1;--red:#b53b3b;--green:#197353}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif}a{color:var(--brand-dark);text-decoration:none}a:hover{text-decoration:underline}header{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:32px;padding:0 max(24px,calc((100% - 1180px)/2));white-space:nowrap}.brand{font-weight:800;font-size:20px;color:var(--ink)}nav{display:flex;gap:20px}.user-menu{margin-left:auto;color:var(--muted);font-size:14px}.user-menu a{margin-left:12px}.container{max-width:1180px;margin:0 auto;padding:32px 24px 64px}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.page-heading h1{margin:0;font-size:30px;letter-spacing:-.5px}.page-heading p,.eyebrow{margin:4px 0;color:var(--muted)}.eyebrow{text-transform:uppercase;font-size:12px;font-weight:700;letter-spacing:.08em}h2{font-size:18px;margin:0 0 16px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:22px;box-shadow:0 2px 5px #18322a08}.dashboard,.two-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.two-cols{margin:18px 0}.clean-list{list-style:none;padding:0;margin:0}.clean-list li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.clean-list li:last-child{border-bottom:0}.clean-list time{color:var(--muted);min-width:88px}.balance{text-align:right}.balance span{display:block;color:var(--muted);font-size:13px}.balance strong{display:block;font-size:28px}.negative{color:var(--red)!important}.positive{color:var(--green)!important}.focus{border-left:4px solid #e6ad42;margin-bottom:18px}.focus p{margin:0}.actions-row,.actions{display:flex;align-items:center;gap:12px;margin:16px 0}.actions-row form{margin:0}button,.button{appearance:none;border:0;border-radius:8px;background:var(--brand);color:#fff;padding:10px 15px;font:inherit;font-weight:650;cursor:pointer;display:inline-block}.button:hover,button:hover{background:var(--brand-dark);text-decoration:none}.secondary{background:#e6efed;color:var(--brand-dark)}.link-danger{background:none;color:var(--red);padding:8px}.link-danger:hover{background:#fff0f0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:780px}.wide{grid-column:1/-1}label{display:block;font-size:14px;font-weight:650;color:#42515a}input,select,textarea{display:block;width:100%;border:1px solid #cbd7d4;border-radius:7px;background:#fff;color:var(--ink);font:inherit;font-weight:400;padding:9px;margin-top:5px}textarea{min-height:76px;resize:vertical}.compact-form{display:grid;gap:12px}.compact-form label{font-size:13px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:520px}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--line)}th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.search{display:flex;align-items:center;gap:10px;margin:0 0 16px}.search input{margin:0;max-width:300px}.search a{font-size:14px}.lesson{border-top:1px solid var(--line);padding:14px 0}.lesson:first-of-type{border-top:0;padding-top:0}.lesson>div{display:flex;gap:12px;align-items:center}.lesson p{margin:8px 0 0}.badge{font-size:12px;font-weight:700;background:#e8f0ee;color:var(--brand-dark);padding:3px 7px;border-radius:999px}.cancelled{opacity:.6}.lesson details{margin-top:10px}.lesson summary{cursor:pointer;color:var(--brand-dark);font-weight:650;margin-bottom:10px}.notice,.error{background:#e6f2eb;border:1px solid #bbdec8;color:#17613d;border-radius:8px;padding:12px 14px;margin-bottom:18px}.error{background:#fff0f0;border-color:#f0c4c4;color:#9d2d2d}.auth{max-width:390px;margin:12vh auto;padding:28px;background:#fff;border:1px solid var(--line);border-radius:14px}.auth h1{margin:0}.auth p{color:var(--muted)}.auth form{display:grid;gap:14px;margin-top:22px}@media(max-width:720px){header{padding:0 16px;gap:14px;height:auto;min-height:60px;flex-wrap:wrap}nav{order:3;width:100%;padding-bottom:12px;gap:14px;overflow:auto}.container{padding:22px 16px}.dashboard,.two-cols,.form-grid{grid-template-columns:1fr}.page-heading{align-items:flex-start}.balance strong{font-size:22px}.user-menu{font-size:12px}.search{flex-wrap:wrap}.search input{max-width:none}}
.actions-row form{margin-left:auto}.student-table th:nth-child(3),.student-table td:nth-child(3),.student-table th:nth-child(4),.student-table td:nth-child(4){display:none}.student-table{min-width:0}.file-download{font-size:12px;font-weight:600;margin-left:6px}.avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;display:block;background:#e6efed}.lesson-planning{display:none}.student-profile{display:flex;gap:20px;align-items:flex-start;margin-bottom:18px}.profile-avatar{width:150px;height:150px;flex:none;border-radius:50%;object-fit:cover;background:#e6efed}.student-profile dl{display:grid;grid-template-columns:150px 1fr;gap:7px 16px;margin:0}.student-profile dt{color:#71808a}.student-profile dd{margin:0}@media(max-width:720px){.student-profile{display:block}.profile-avatar{margin-bottom:16px}.student-profile dl{grid-template-columns:1fr}}.student-profile~.page-heading:not(.student-title),.student-profile~.actions-row{display:none}.profile-photo{display:block;width:100%;max-width:700px;height:auto;border-radius:10px;margin:18px 0 0}.student-profile .actions-row{display:flex;margin:18px 0 0}.student-profile .actions-row form{margin-left:0}.student-profile dd{overflow-wrap:anywhere;white-space:pre-wrap}.photo-crop-controls{display:flex;gap:18px;align-items:center;margin-top:12px}.photo-crop-controls img{width:160px;height:160px;border-radius:50%;object-fit:cover;object-position:50% 50%;background:#e6efed}.photo-crop-controls>div{flex:1}@media(max-width:720px){.photo-crop-controls{align-items:flex-start;flex-direction:column}}.photo-crop-controls .avatar-crop-preview{width:160px;height:160px;flex:0 0 160px;border-radius:50%;overflow:hidden;position:relative;background:#e6efed}.photo-crop-controls .avatar-crop-preview img{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 50%;border-radius:0;transition:transform .08s linear}.card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.student-profile .actions-row{display:none}.student-profile~.actions-row{display:flex;justify-content:space-between}.student-profile~.actions-row form{margin-left:auto}.student-table th,.student-table td{padding:5px 8px}.student-table .avatar{width:32px;height:32px}.student-table td:first-child{width:44px;padding-left:4px;padding-right:3px}.student-table .avatar{width:38px;height:38px}.student-table td:first-child{width:50px}.checkbox-label{display:flex!important;align-items:center;gap:8px;cursor:pointer;width:max-content}.checkbox-label input[type="checkbox"]{display:inline-block;width:auto;margin:0;padding:0}.lesson-actions{justify-content:space-between;max-width:520px}.lesson-actions button,.lesson-actions .button{min-width:180px;text-align:center}.lesson-actions{width:100%;max-width:none}.form-grid .checkbox-label{grid-column:1/-1;align-self:start}.lesson-student-notes{grid-column:1/-1;background:#fff0f3;border:1px solid #f0c8d0;border-left:4px solid #d77c91;border-radius:8px;padding:14px}.lesson-student-notes h2{margin-bottom:6px}.lesson-student-notes p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}header{padding-left:32px;padding-right:32px}.form-grid .checkbox-label{margin-top:-12px}.student-financial-history{display:none}.lesson-primary{display:flex;gap:12px;align-items:center}
#new-lesson-form + .lesson-actions,#completed-lesson-form + .lesson-actions{max-width:780px}.lesson-actions .lesson-primary button{background:var(--brand);color:#fff}.lesson-actions .lesson-primary button:hover{background:var(--brand-dark)}.cancel-action{background:#fff!important;color:var(--ink)!important;border:1px solid #d8c7c7!important}.cancel-action:hover{background:#fff5f5!important}.action-icon{display:inline-block;margin-right:7px;font-size:1.05em;line-height:1}.cancel-action .action-icon{color:var(--red);font-weight:800}
.action-icon{font-size:1.28em;vertical-align:-.08em}.lesson-previous-homework{grid-column:1/-1;background:#f7f9f8;border:1px solid var(--line);border-radius:8px;padding:14px}.lesson-previous-homework h2{margin:0 0 6px;font-size:14px;color:#42515a}.lesson-previous-homework p{margin:0;min-height:1.45em;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink)}.lesson-previous-homework-wrap>label{margin-bottom:5px}.lesson-previous-homework-wrap .lesson-previous-homework{grid-column:auto}.lesson-previous-homework h2{display:none}
.planning-card{max-width:900px}.planning-time{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.planning-time-control{display:grid;grid-template-columns:auto 1fr auto;gap:6px;align-items:center;margin-top:5px}.planning-time-control input{margin:0}.planning-time-control button{padding:8px 9px;white-space:nowrap;font-size:13px}.planning-rule{margin:0;padding:15px;border:1px solid var(--line);border-radius:10px;background:#f9fbfa}.planning-rule legend{padding:0 5px;font-weight:700}.planning-rule-fields{display:grid;grid-template-columns:145px 145px minmax(180px,1fr);gap:12px;align-items:end}.planning-rule-fields input[type="date"]{width:145px}.planning-weekday-buttons{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:14px 0 12px}.planning-weekday-button{position:relative;display:block;cursor:pointer}.planning-weekday-button input{position:absolute;opacity:0;pointer-events:none}.planning-weekday-button span{display:grid;place-items:center;min-height:38px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--brand-dark);font-size:14px;font-weight:700;transition:background .12s,border-color .12s,color .12s}.planning-weekday-button:hover span{border-color:#86aaa4;background:#eef5f3}.planning-weekday-button input:checked+span{background:var(--brand);border-color:var(--brand);color:#fff}.planning-weekday-button input:focus-visible+span{outline:3px solid #b8d8d2;outline-offset:2px}.planning-lesson-notes{border:1px solid var(--line);border-radius:9px;padding:0 13px;background:#f9fbfa}.planning-lesson-notes summary{padding:11px 0;cursor:pointer;color:var(--brand-dark);font-weight:650}.planning-lesson-notes[open]{padding-bottom:13px}.planning-lesson-notes textarea{margin-top:0}.planning-calendar-nav{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.planning-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.planning-month{border:1px solid var(--line);border-radius:10px;padding:13px}.planning-month h2{text-align:center;margin:0 0 11px;font-size:15px}.planning-weekdays,.planning-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.planning-weekdays span{text-align:center;color:var(--muted);font-size:11px;font-weight:700}.planning-day{width:100%;aspect-ratio:1;padding:0;border-radius:50%;background:transparent;color:var(--ink);font-size:13px;font-weight:500}.planning-day:hover:not(:disabled){background:#e7f0ed;color:var(--brand-dark)}.planning-day.is-selected{background:var(--brand);color:#fff}.planning-day.is-selected:hover{background:var(--brand-dark)}.planning-day:disabled{color:#bdc7c4;cursor:default}.planning-summary{padding:11px 13px;background:#f7f9f8;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:14px}.planning-actions{max-width:900px;justify-content:space-between}.planning-actions button:disabled{background:#b7c5c1;cursor:not-allowed}.actions-row a[href*="action=finance"] .action-icon{display:none}@media(max-width:720px){.planning-months,.planning-rule-fields{grid-template-columns:1fr}.planning-rule-fields input[type="date"]{width:100%}.planning-weekday-buttons{grid-template-columns:repeat(4,minmax(0,1fr))}.planning-time{grid-template-columns:1fr}.planning-calendar-nav{flex-direction:column}}
.lesson-primary button[name="mode"][value="planned"]{display:none}
.homework-attachment-control{grid-column:1/-1;margin-top:-8px}.paperclip-button{background:transparent;color:var(--brand-dark);padding:6px 0;font-size:14px}.paperclip-button:hover{background:transparent;text-decoration:underline}.homework-attachment-control>div{margin-top:6px;padding:10px 12px;background:#f7f9f8;border:1px solid var(--line);border-radius:8px}.homework-attachment-control input{background:#fff}.homework-attachment-control small{display:block;color:var(--muted);margin-top:6px}.homework-file-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.homework-file-item{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:4px 7px;background:#e8f0ee;color:var(--brand-dark);border-radius:6px;font-size:13px;overflow-wrap:anywhere}.homework-file-item button{padding:0;border:0;background:transparent;color:var(--red);font-size:19px;line-height:1;min-width:16px}.homework-file-item button:hover{background:transparent;color:#7f2020}
.homework-defaults{display:grid;gap:7px;padding:13px;border:1px solid var(--line);border-radius:8px;background:#f9fbfa}.homework-defaults strong{font-size:14px}.homework-defaults .checkbox-label{font-size:14px;font-weight:500}
.avatar-crop-preview [data-photo-preview-empty]{position:absolute;inset:0;display:grid;place-items:center;padding:16px;color:var(--muted);font-size:13px;text-align:center}
.delivery-check{font-size:18px;font-weight:800;line-height:1}
.parent-delivery-defaults{display:grid;gap:9px;margin-top:4px;padding-top:9px;border-top:1px solid var(--line)}.parent-delivery-default{display:grid;grid-template-columns:minmax(155px,1fr) minmax(0,2fr);gap:4px 14px;align-items:start}.parent-delivery-default>strong{grid-column:1;font-size:14px}.parent-delivery-default>small{grid-column:1;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.parent-delivery-default>div{grid-column:2;grid-row:1/3;display:grid;gap:4px}.parent-delivery-default .checkbox-label{margin:0}@media(max-width:520px){.parent-delivery-default{grid-template-columns:1fr}.parent-delivery-default>strong,.parent-delivery-default>small,.parent-delivery-default>div{grid-column:1;grid-row:auto}}
.homework-send-options{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:4px}.homework-send-options .checkbox-label{font-size:14px;font-weight:500}.student-form-actions{margin-top:20px}#student-form .checkbox-label{margin-top:-2px}
.homework-defaults-view{display:grid;gap:5px;color:var(--muted)}.homework-defaults-view label{font-size:14px;font-weight:400}.homework-defaults-view input{display:inline-block;width:auto;margin:0;accent-color:#aab7b3}
.lesson-editor-card{max-width:780px}.lesson-editor-card fieldset.homework-send-options{display:block;min-inline-size:0;border:0;padding:0}.lesson-editor-card .homework-send-options legend{font-size:14px;font-weight:650;color:#42515a;margin-bottom:7px}.lesson-editor-card .homework-send-options> .checkbox-label{margin-bottom:7px}.lesson-parent-recipients{display:grid;gap:7px;padding-left:0}.lesson-parent-recipients .checkbox-label{margin:0}
.lesson-editor-card--readonly{background:#f1f3f3}.lesson-editor-card--readonly input:disabled,.lesson-editor-card--readonly select:disabled,.lesson-editor-card--readonly textarea[readonly],.lesson-editor-card--readonly .homework-attachment-control{background:#e9eded;color:#526168}.lesson-editor-card--readonly .planning-time-control button:disabled{background:#e9eded;color:#71808a;cursor:default}.lesson-editor-card--readonly .homework-attachment-control{border-radius:8px;padding:10px 12px}
.dashboard .clean-list li:has(a[href*="action=lesson"]){cursor:pointer;border-radius:7px;padding:10px 9px;margin:0 -9px}.dashboard .clean-list li:has(a[href*="action=lesson"]):hover{background:#edf3f1}.dashboard .clean-list li:has(a[href*="action=lesson"]) a{font-weight:650}.homework-defaults-view{transform:translateY(2px)}
.lesson-view-heading{align-items:center}.lesson-completed-badge{font-size:14px;padding:6px 11px}.lesson-overview,.lesson-content-card,.lesson-homework-card,.lesson-parent-card,.lesson-mail-card{max-width:780px;margin-bottom:18px}.lesson-info-grid{display:grid;grid-template-columns:210px 1fr;gap:9px 20px;margin:0}.lesson-info-grid dt{color:var(--muted)}.lesson-info-grid dd{margin:0;font-weight:600}.lesson-rich-text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55}.lesson-mail-status{display:flex;gap:24px;flex-wrap:wrap}.lesson-mail-status p{margin:0}.lesson-homework-card .homework-attachment-links{margin:12px 0 0;padding-left:19px}@media(max-width:720px){.lesson-info-grid{grid-template-columns:1fr}.lesson-view-heading{align-items:flex-start}}
.lesson-mail-status{display:grid;gap:7px}.lesson-mail-actions{margin:16px 0 0}
.lesson-edit-button{margin-top:18px}.lesson-edit-form{display:grid;gap:14px;max-width:780px;margin-bottom:18px}.lesson-edit-attachments{display:grid;gap:7px;padding:12px;background:#f7f9f8;border:1px solid var(--line);border-radius:8px}.lesson-edit-attachments label{font-size:14px;font-weight:400}.lesson-edit-attachments input{display:inline-block;width:auto;margin:0}.homework-updated-at{margin:13px 0 0;text-align:right;color:var(--muted);font-size:12px}
.lesson-parent-status{margin:14px 0 0;font-size:14px}.lesson-parent-send{margin-top:12px}
.lesson-mail-card.lesson-mail-needed{background:#fff0f3;border-color:#f1c6d0}
#student-form + .student-form-actions{max-width:780px;justify-content:space-between}
.finance-balances,.finance-journal{margin-bottom:18px}.finance-filter label{font-size:13px}.finance-filter select{width:auto;min-width:150px;margin-top:3px}.sort-link{color:var(--muted);text-decoration:none}.sort-link:hover{color:var(--brand-dark);text-decoration:none}.sort-link span{font-size:14px;margin-left:3px}.clickable-row{cursor:pointer}.clickable-row:hover td{background:#f3f8f6}
.finance-export{margin-top:18px}.excel-export{display:inline-flex;align-items:center;gap:10px}.excel-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:3px;background:#fff;color:#1d6f42;font-size:20px;font-weight:850;font-family:Arial,sans-serif;line-height:1}
.finance-export{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.csv-export{font-size:14px;font-weight:650}
.auth-wide{max-width:850px;display:grid;grid-template-columns:1fr 1fr;gap:28px}.auth-wide section+section{border-left:1px solid var(--line);padding-left:28px}.portal-request h2{margin:0;font-size:20px}.portal-request form{display:grid;gap:14px;margin-top:22px}.portal-mode{display:flex!important;align-items:flex-start;gap:8px;font-weight:500}.portal-mode input{display:inline-block;width:auto;margin:4px 0 0}.portal-container{max-width:960px}.portal-switch{margin-bottom:18px}.portal-homework{padding:10px 0;border-bottom:1px solid var(--line)}.portal-homework:last-child{border-bottom:0}.portal-homework p{margin:6px 0 0;white-space:pre-wrap}@media(max-width:720px){.auth-wide{grid-template-columns:1fr}.auth-wide section+section{border-left:0;border-top:1px solid var(--line);padding:24px 0 0}}
.email-test-log-label{margin-top:18px}.email-test-log{min-height:210px;font:13px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;background:#f7f9f8}
header + .auth{margin:56px auto}@media(max-width:720px){header + .auth{margin:32px 16px}}
.auth-wide h2{margin:0 0 6px}.auth-wide>section>p{margin:0}.auth-wide>section>form,.auth-wide .portal-request form{margin-top:14px}.portal-request .portal-mode:last-of-type{margin-bottom:10px}
.portal-request .portal-mode:last-of-type{margin-bottom:8px}
.login-cards{max-width:850px;margin:56px auto}.login-cards.auth-wide section+section{border:1px solid var(--line);padding:22px}.login-card{min-width:0}.login-card h2{font-size:20px}.login-card p{margin:0;color:var(--muted)}.login-card form{display:grid;gap:14px;margin-top:14px}@media(max-width:720px){.login-cards{margin:32px 16px}.login-cards.auth-wide section+section{border:1px solid var(--line);padding:22px}}
#student-form input[name="default_lesson_duration_minutes"]{appearance:textfield;-moz-appearance:textfield}#student-form input[name="default_lesson_duration_minutes"]::-webkit-inner-spin-button,#student-form input[name="default_lesson_duration_minutes"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.quick-planning-form{max-width:680px}.quick-calendar{border:1px solid var(--line);border-radius:10px;padding:14px;background:#f9fbfa}.quick-calendar .planning-calendar-nav{align-items:center;margin-bottom:10px}.quick-calendar .planning-calendar-nav button{padding:7px 11px}.quick-calendar-title{text-align:center}.quick-calendar .planning-weekdays,.quick-calendar .planning-days{gap:5px}.quick-calendar .planning-day{background:#fff;border:1px solid transparent}.quick-calendar .planning-day:hover:not(:disabled){border-color:#c6d8d4}.quick-planning-actions{max-width:680px}
.page-heading-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}@media(max-width:720px){.page-heading-actions{width:100%}}
.quick-planning-actions button,.quick-planning-actions .button{min-width:0;padding-left:11px;padding-right:11px}
.quick-planning-form input[name="lesson_duration"]{appearance:textfield;-moz-appearance:textfield}.quick-planning-form input[name="lesson_duration"]::-webkit-inner-spin-button,.quick-planning-form input[name="lesson_duration"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.quick-calendar .planning-day.is-selected,.quick-calendar .planning-day.is-selected:hover{background:var(--brand);color:#fff;border-color:var(--brand)}
.past-lesson-row,.scheduled-lesson-row{justify-content:flex-start!important;align-items:center;gap:9px}.past-lesson-row time,.scheduled-lesson-row time{min-width:auto}.past-lesson-row a{min-width:0;flex:1}.lesson-duration{color:var(--muted);white-space:nowrap;flex:0 0 74px}.lesson-type-icon{font-size:19px;line-height:1}.lesson-homework-status{flex:0 0 1.25em;margin-left:auto;font-size:18px;line-height:1;text-align:center}.lesson-homework-status.is-disabled{color:var(--muted)}.lesson-homework-status.is-action-needed{filter:saturate(1.25)}.lesson-types-editor{display:grid;gap:10px}.lesson-type-edit{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.lesson-type-edit input[name="icon"]{width:5.5rem;text-align:center;font-size:18px}.lesson-type-edit input[name="name"]{flex:1;min-width:180px}@media(max-width:520px){.lesson-type-edit button{padding-left:12px;padding-right:12px}}
.planning-card input[name="planning_duration"]{appearance:textfield;-moz-appearance:textfield}.planning-card input[name="planning_duration"]::-webkit-inner-spin-button,.planning-card input[name="planning_duration"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.sending-overlay{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:24px;background:#17332bd9;cursor:wait}.sending-overlay-panel{display:grid;justify-items:center;gap:12px;min-width:min(100%,330px);padding:27px 30px;border-radius:14px;background:#fff;color:var(--ink);box-shadow:0 16px 45px #0005;text-align:center}.sending-overlay-panel>span:last-child{color:var(--muted);font-size:14px}.sending-spinner{width:38px;height:38px;border:4px solid #d9e6e2;border-top-color:var(--brand);border-radius:50%;animation:sending-spin .8s linear infinite}@keyframes sending-spin{to{transform:rotate(360deg)}}.container>.notice,.container>.error{width:100%;max-width:none}.send-result-notice{font-size:16px;font-weight:650}
.student-list-card{padding:10px 22px}.student-list-row{justify-content:flex-start!important;align-items:center;gap:12px;cursor:pointer;border-radius:7px;padding:10px 9px!important;margin:0 -9px}.student-list-row:hover,.student-list-row:focus{background:#edf3f1;outline:0}.student-list-row strong{font-weight:650}.student-list-avatar{flex:0 0 38px;width:38px;height:38px;display:inline-grid;place-items:center;background:#e6efed;color:var(--brand-dark);font-size:15px;font-weight:700}
.homework-submissions-card{max-width:780px;margin-bottom:18px}.homework-submissions-card.homework-submissions-needed{background:#fff0f3;border-color:#efc8d1}.homework-submissions-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.homework-submissions-heading h2{margin:0}.homework-submissions-heading button{width:auto;margin:0;white-space:nowrap}.homework-submissions-meta{display:grid;justify-items:end;gap:3px;margin-top:13px;color:var(--muted);font-size:12px;text-align:right}.homework-submission{padding:13px 0;border-top:1px solid var(--line)}.homework-submission:first-of-type{padding-top:0;border-top:0}.homework-submission p{margin:7px 0 0}.submission-form-card{max-width:780px}.submission-form-card small{display:block;color:var(--muted);margin-top:6px}.submission-lesson-list small{color:var(--muted)}
.portal-submission-files{margin-top:0}.portal-submission-files>div{margin-top:6px!important;padding:0!important;background:transparent!important;border:0!important;border-radius:0!important}.portal-file-picker{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.portal-file-browse{display:inline-flex!important;width:auto!important;margin:0!important;padding:10px 15px!important;background:var(--brand)!important;color:#fff!important;cursor:pointer;font:inherit!important;font-size:16px!important;font-weight:650!important}.portal-file-browse:hover{background:var(--brand-dark)!important}.portal-file-browse input{display:none!important}.portal-file-placeholder{color:var(--muted);font-size:14px;font-weight:400}
.assigned-homework{margin:0 0 16px;padding:14px;background:#f7f9f8;border:1px solid var(--line);border-radius:8px}.assigned-homework h3{margin:0 0 7px;font-size:14px;color:#42515a}.assigned-homework-files-title{display:block;margin-top:13px;font-size:14px;color:#42515a}.assigned-homework .homework-attachment-links{margin:7px 0 0;padding-left:19px}.assigned-homework .homework-attachment-links li{color:var(--brand-dark)}
.availability-heading{margin-bottom:12px}.availability-navigation{display:flex;gap:8px;flex-wrap:nowrap;margin:0 0 14px}.availability-navigation .button{padding:8px 11px;white-space:nowrap}.availability-card{padding:16px}.availability-scroll{overflow:auto;-webkit-overflow-scrolling:touch}.availability-board{display:grid;grid-template-columns:52px repeat(7,minmax(84px,1fr));min-width:640px;border:1px solid var(--line);border-radius:8px;overflow:hidden}.availability-corner{position:sticky;left:0;z-index:3;background:#f7f9f8;border-bottom:1px solid var(--line)}.availability-day-heading{display:grid;justify-items:center;gap:1px;padding:8px 3px;background:#f7f9f8;border-left:1px solid var(--line);border-bottom:1px solid var(--line);font-size:15px}.availability-day-heading span{color:var(--muted);font-size:13px}.availability-day-heading.is-today{background:#e8f0ee;color:var(--brand-dark)}.availability-hours{position:sticky;left:0;z-index:2;height:1024px;display:grid;grid-template-rows:repeat(16,64px);background:#f7f9f8}.availability-hours span{position:relative;top:-8px;padding-right:6px;text-align:right;color:var(--muted);font-size:13px}.availability-day{position:relative;height:1024px;border-left:1px solid var(--line);background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 63px,var(--line) 63px,var(--line) 64px)}.availability-day.is-today{background-color:#fbfdfc}.availability-lesson{position:absolute;z-index:1;left:4px;right:4px;display:grid;align-content:start;gap:2px;overflow:hidden;padding:5px 6px;border:1px solid #1d615d;border-radius:6px;background:#dcefeb;color:#174c49;font-size:11px;font-weight:650;line-height:1.2;box-shadow:0 1px 2px #18322a1c}.availability-lesson:hover{background:#cae5df;text-decoration:none}.availability-lesson span{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow-wrap:anywhere}.availability-lesson small{color:#3f6d69;font-size:10px;font-weight:500}@media(max-width:720px){.availability-navigation{gap:6px}.availability-navigation .button{padding:8px 9px;font-size:14px}.availability-card{padding:10px}.availability-board{grid-template-columns:46px repeat(7,78px);min-width:592px}.availability-day-heading{font-size:13px}.availability-day-heading span,.availability-hours span{font-size:12px}.availability-lesson{left:3px;right:3px;padding:4px}}
header{height:auto;min-height:64px;white-space:normal;flex-wrap:wrap}header nav{flex:1 1 520px;min-width:0;flex-wrap:wrap;overflow:visible}
.availability-hours span{font-size:15px}@media(max-width:720px){.availability-hours span{font-size:14px}}
.availability-day-heading span{font-size:15px}@media(max-width:720px){.availability-day-heading span{font-size:14px}}
.availability-lesson.is-online{background:#dbeafe;border-color:#477fc7;color:#214f8b}.availability-lesson.is-online small{color:#4771a7}.availability-lesson.is-online:hover{background:#c9e0fb}.availability-lesson.is-offline{background:#dcefeb;border-color:#1d615d;color:#174c49}.availability-lesson.is-offline:hover{background:#cae5df}
.planned-lesson-cancel-card{width:min(100%,780px);margin-top:18px}.planned-lesson-cancel-card summary{cursor:pointer;color:var(--ink);font-size:18px;font-weight:700}.planned-lesson-cancel-card[open] summary{margin-bottom:16px}.planned-lesson-cancel-card .link-danger{justify-self:end;width:fit-content;border:1px solid #e0aaaa;background:#fff4f4;font-weight:650}.planned-lesson-cancel-card .link-danger:hover{background:#ffe8e8}
@media(min-width:721px){.quick-planning-form,.lesson-create-form{grid-template-columns:minmax(0,1fr) 220px 145px}}.quick-planning-form .planning-time-control,.lesson-create-form .planning-time-control{grid-template-columns:36px minmax(0,1fr) 36px;gap:4px}.quick-planning-form .planning-time-control button,.lesson-create-form .planning-time-control button{padding-left:4px;padding-right:4px}.quick-planning-form .planning-time-control input,.lesson-create-form .planning-time-control input{min-width:0}.lesson-create-form input[name="lesson_duration"]{appearance:textfield;-moz-appearance:textfield}.lesson-create-form input[name="lesson_duration"]::-webkit-inner-spin-button,.lesson-create-form input[name="lesson_duration"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.planning-rule-actions{display:flex;justify-content:flex-start;gap:10px}
.planning-rule-actions{justify-content:flex-end}.planning-selection-summary{margin:14px 0 0;color:var(--ink);font-size:16px}
.planning-rule-actions{justify-content:space-between}.planning-selection-summary{margin:4px 0 0}
@media(max-width:480px){.planning-weekday-buttons{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:481px) and (max-width:720px){.planning-weekday-buttons{grid-template-columns:repeat(7,minmax(0,1fr))}.planning-rule-fields{grid-template-columns:120px 120px minmax(120px,1fr)}.planning-rule-fields input[type="date"]{width:120px}}
#bulk-planning-form{grid-template-columns:repeat(2,minmax(0,1fr))}
.login-cards.portal-first .portal-request{order:-1}
.email-copy-button{display:inline-grid;place-items:center;width:28px;height:28px;margin-left:6px;padding:0;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--brand-dark);vertical-align:middle;font-size:17px;line-height:1;cursor:pointer}.email-copy-button:hover,.email-copy-button:focus-visible{border-color:var(--brand);background:#edf3f1;outline:0}.email-copy-button.is-copied{background:var(--brand);border-color:var(--brand);color:#fff}
.student-money-date-row{display:grid;grid-template-columns:minmax(175px,1fr) minmax(100px,120px);gap:12px}
.student-profile-photo .profile-photo{margin-left:auto!important;margin-right:auto!important}
.dashboard .clean-list li:has(a[href*="action=lesson"]) a:hover{text-decoration:none}
.lesson-history-shortcuts{display:flex;gap:12px;flex-wrap:nowrap;white-space:nowrap}.lesson-row.is-cancelled,.scheduled-lesson-row.is-cancelled{position:relative}.lesson-row.is-cancelled::after,.scheduled-lesson-row.is-cancelled::after{content:"";position:absolute;z-index:1;left:16px;right:16px;top:50%;height:3px;background:#c94a4a;pointer-events:none}
.lesson-history-filter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.lesson-history-filter button,.lesson-history-filter .lesson-history-shortcuts{grid-column:1/-1}
.student-profile .student-profile-notes-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.student-profile .student-profile-notes-actions .student-profile-wide{margin:0!important;padding:0!important;border:0!important;min-width:0}.student-profile .student-profile-notes-actions .student-profile-primary-actions{margin:0!important}.clean-list .lesson-row{padding:0}.lesson-row-link{display:flex;align-items:center;gap:9px;width:100%;padding:10px 8px;margin:0 -8px;color:var(--ink);text-decoration:none}.lesson-row-link:hover{background:#f3f8f6;text-decoration:none}.lesson-row-link:focus-visible{outline:3px solid #b8d8d2;outline-offset:-2px}.lesson-row-price{margin-left:auto;white-space:nowrap}.lesson-history-filter{margin-bottom:14px}@media(max-width:720px){.student-profile .student-profile-notes-actions{grid-template-columns:1fr}.student-profile .student-profile-notes-actions .student-profile-primary-actions{justify-content:flex-end}}
.student-profile{display:block}.student-profile-heading{margin:0 0 16px}.student-profile-top{display:flex;align-items:flex-start;gap:20px}.student-profile .student-profile-details{display:grid;grid-template-columns:310px minmax(0,1fr);gap:10px;align-items:start;flex:1;min-width:0}.student-profile .student-profile-column{display:grid;grid-template-columns:130px minmax(0,1fr);column-gap:4px;row-gap:8px;align-items:start;margin:0}.student-profile .student-profile-column dt,.student-profile .student-profile-wide dt{margin:0;padding-top:2px;color:var(--muted);font-size:13px;line-height:1.45}.student-profile .student-profile-column dd,.student-profile .student-profile-wide dd{margin:0;line-height:1.45;overflow-wrap:anywhere;white-space:pre-wrap}.student-profile .student-profile-wide{display:grid;grid-template-columns:150px minmax(0,1fr);column-gap:12px;row-gap:10px;align-items:start;margin:18px 0 0;padding-top:16px;border-top:1px solid var(--line)}.student-profile-primary-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.student-profile-photo{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.student-profile-photo .profile-photo{margin:0}.student-profile-management-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}.student-profile-management-actions form{margin:0}@media(max-width:920px){.student-profile .student-profile-details{grid-template-columns:1fr;gap:12px}}@media(max-width:720px){.student-profile-top{display:block}.student-profile-top .profile-avatar{margin-bottom:16px}.student-profile .student-profile-wide{grid-template-columns:130px minmax(0,1fr);margin-top:16px}}
.parent-links-actions{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:16px}.parent-link-existing summary{cursor:pointer;color:var(--brand-dark);font-weight:650}.parent-link-existing[open]{width:min(100%,680px);padding:12px;border:1px solid var(--line);border-radius:8px;background:#f9fbfa}.parent-link-existing[open] summary{margin-bottom:10px}.parent-link-table{max-height:250px;margin:0;overflow:auto;border:1px solid var(--line);border-radius:7px;background:#fff}.parent-link-table table{min-width:0}.parent-link-table th,.parent-link-table td{padding:8px 10px}.parent-link-table th:first-child,.parent-link-table td:first-child{width:38px}.parent-link-table input[type="radio"]{width:auto;margin:0}.parent-link-table [data-parent-link-row]{cursor:pointer}.parent-link-table [data-parent-link-row]:hover td{background:#edf3f1}.parent-link-existing form>button{justify-self:end;width:fit-content}
.parent-students-context{margin-top:10px;padding:10px 12px;border-left:3px solid var(--brand);background:#f4f8f7}.parent-students-context strong{display:block;color:var(--ink)}.parent-students-context ul{margin:5px 0 0;padding-left:20px}.parent-students-context li{margin:2px 0}
