.student-preview-button{text-align:left;background:#f7f7f1;border:1px solid #ccd3c8;border-radius:8px;align-items:center;gap:9px;margin-top:auto;margin-bottom:14px;padding:10px;display:flex}.student-preview-button>span:first-child{color:var(--sage);font-size:16px}.student-preview-button strong,.student-preview-button small{font-size:10px;display:block}.student-preview-button small{color:var(--muted);margin-top:2px;font-size:8px}.student-preview-button b{margin-left:auto}.nav-icon{flex:0 0 20px;place-items:center;height:20px;display:inline-grid;position:relative}.nav-icon-home:before{content:"";border-top:2px solid;border-left:2px solid;border-radius:2px 0 0;width:11px;height:11px;position:absolute;top:2px;left:4px;transform:rotate(45deg)}.nav-icon-home:after{content:"";border:2px solid;border-top:0;border-radius:0 0 3px 3px;width:12px;height:10px;position:absolute;bottom:1px;left:4px}.nav-icon-calendar{border:2px solid;border-radius:4px;height:18px;width:18px!important}.nav-icon-calendar:before{content:"";border-top:2px solid;position:absolute;top:4px;left:-2px;right:-2px}.nav-icon-calendar:after{content:"";background:currentColor;border-radius:50%;width:2px;height:2px;position:absolute;top:8px;left:3px;box-shadow:5px 0,10px 0,0 5px,5px 5px,10px 5px}.sidebar-footer{align-items:center;gap:8px;margin-top:0;display:flex}.sidebar-calendar{margin-top:18px;padding-top:16px}.sidebar{overflow-y:auto}.sidebar-week-heading{justify-content:space-between;align-items:baseline;padding:0 7px 8px;display:flex}.sidebar-week-heading strong{font:400 15px Georgia,serif}.sidebar-week-heading span{color:var(--muted);font-size:11px}.sidebar-week-days{gap:3px;display:grid}.sidebar-week-days button{text-align:left;background:0 0;border:0;border-radius:7px;grid-template-columns:48px 1fr auto;align-items:center;gap:7px;width:100%;min-height:42px;padding:5px 7px;display:grid}.sidebar-week-days button:hover,.sidebar-week-days button.today{background:color-mix(in srgb,var(--paper) 72%,transparent)}.sidebar-week-days button>span strong,.sidebar-week-days button>span small{display:block}.sidebar-week-days button>span:first-child strong{font-size:13px}.sidebar-week-days button>span:first-child small{color:var(--muted);margin-top:1px;font-size:11px}.sidebar-week-days button>span:nth-child(2) strong{font-size:12px}.sidebar-week-days button>span:nth-child(2) small{color:var(--muted);margin-top:1px;font-size:11px}.sidebar-week-days button>b{color:var(--sage-dark);font-size:18px;font-weight:400}.week-grid>strong.focused-day{color:var(--sage-dark);background:#e8efe4;border-radius:6px 6px 0 0}.full-calendar .slot.focused-day{background:#e8efe457}html[data-theme=dark] .week-grid>strong.focused-day,html[data-theme=dark] .sidebar-week-days button.today{color:#c7dfcb;background:#26382a}html[data-theme=dark] .full-calendar .slot.focused-day{background:#26382a61}.sidebar-owner{flex:1;align-items:center;gap:9px;min-width:0;display:flex}.sidebar-owner strong,.sidebar-owner small{font-size:11px;display:block}.sidebar-owner small{color:var(--muted);margin-top:2px;font-size:8px}.sidebar-footer .sidebar-signout{border:1px solid var(--line);background:var(--paper);width:auto;color:var(--sage-dark);text-align:center;border-radius:6px;flex:none;padding:6px 8px;font-size:8px;font-weight:750;display:inline-flex}.next-gap>span{border:1px solid var(--line);border-radius:50%;place-items:center;width:29px;height:29px;font-size:11px;font-weight:800;display:grid}.right-rail{align-self:start}.dashboard-grid>.right-rail{grid-auto-rows:1fr;align-self:stretch}.recent-lessons{margin-top:13px}.recent-lessons article{border-top:1px solid var(--line);grid-template-columns:36px 1fr 75px 65px 90px;align-items:center;gap:12px;min-height:51px;font-size:10px;display:grid}.recent-lessons article>strong{font:400 13px Georgia,serif}.recent-lessons article>span{color:var(--muted);font-size:9px}.recent-lessons article>button{color:var(--sage-dark);text-align:right;background:0 0;border:0;font-size:9px;font-weight:700}.empty-lessons{text-align:center;padding:36px 12px}.empty-lessons strong{font:400 17px Georgia,serif}.empty-lessons p,.empty-history{color:var(--muted);font-size:9px;line-height:1.55}.empty-history{margin:18px 0 4px}.student-portal{background:var(--cream);min-height:100vh;display:block}.portal-header{z-index:10;background:#e7eadf;border-bottom:1px solid #cfd5c9;align-items:center;gap:38px;height:76px;padding:0 36px;display:flex;position:sticky;top:0}.portal-header nav{gap:18px;margin-left:auto;display:flex}.portal-header nav button{color:#778078;background:0 0;border:0;border-bottom:2px solid #0000;padding:8px 2px;font-size:11px;font-weight:700}.portal-header nav button.active{color:var(--sage-dark);border-color:var(--sage-dark)}.portal-account{border-left:1px solid #cbd2c7;align-items:center;gap:9px;padding-left:22px;display:flex}.portal-account strong,.portal-account small{font-size:10px;display:block}.portal-account small{color:var(--muted);font-size:8px}.portal-account button{background:var(--paper);border:1px solid #c7cec2;border-radius:6px;margin-left:7px;padding:7px 9px;font-size:9px}.portal-wrap{max-width:920px;margin:auto;padding:46px 30px 70px}.portal-title{justify-content:space-between;align-items:end;margin-bottom:28px;display:flex}.portal-title h1{margin:0;font:400 39px Georgia,serif}.portal-title>div>p:last-child{color:var(--muted);margin:7px 0 0;font-size:12px}.student-history{padding:8px 28px}.student-history>.section-title{padding:20px 0 5px}.student-portal-layout{grid-template-columns:minmax(0,1.65fr) minmax(230px,.75fr);align-items:start;gap:18px;display:grid}.student-portal-aside{gap:18px;display:grid}.student-billing,.student-message{padding:22px}.student-billing strong,.student-billing span{display:block}.student-billing>strong{margin:13px 0 3px;font:400 32px Georgia,serif}.student-billing>span{color:var(--sage);margin-bottom:17px;font-size:9px}.student-message h2{margin:12px 0;font:400 18px Georgia,serif}.student-message textarea{resize:vertical;border:1px solid var(--line);width:100%;min-height:105px;font:inherit;background:#fff;border-radius:6px;margin-bottom:10px;padding:10px;font-size:10px}.portal-single{max-width:620px;margin:auto}.student-home-grid{grid-template-columns:minmax(0,1.6fr) minmax(220px,.7fr);align-items:start;gap:18px;display:grid}.student-home-main,.student-home-aside{gap:18px;display:grid}.next-lesson-card{border-left:4px solid var(--sage);grid-template-columns:1fr auto auto;align-items:center;gap:15px;padding:23px;display:grid}.next-lesson-card h2{margin:0 0 5px;font:400 23px Georgia,serif}.next-lesson-card p:not(.eyebrow){color:var(--muted);margin:0;font-size:10px}.confirmed-status{color:var(--sage-dark);background:#e8efe4;border-radius:20px;padding:6px 9px;font-size:8px;font-weight:750}.home-request-card{border-left:4px solid var(--gold);justify-content:space-between;align-items:center;gap:15px;padding:18px 21px;display:flex}.home-request-card h2{margin:0 0 4px;font:400 17px Georgia,serif}.home-request-card p:not(.eyebrow),.home-request-card>span{color:var(--muted);margin:0;font-size:9px}.home-request-card>span{color:#8b744c;background:#f3eee1;border-radius:20px;padding:6px 9px;font-weight:750}.home-history{padding:23px}.home-history article{border-bottom:1px solid var(--line);grid-template-columns:55px 1fr;gap:14px;padding:17px 0;display:grid}.home-history article:last-child{border-bottom:0;padding-bottom:0}.home-history time{color:var(--sage-dark);font:400 12px Georgia,serif}.home-history strong{font-size:10px}.home-history article p{color:var(--muted);margin:5px 0 0;font-size:9px;line-height:1.55}.home-shortcut{padding:21px}.home-shortcut>strong{margin:11px 0 3px;font:400 29px Georgia,serif;display:block}.home-shortcut>span{color:var(--sage);margin-bottom:12px;font-size:9px;display:block}.home-shortcut h2{margin:10px 0 7px;font:400 17px Georgia,serif}.home-shortcut>p:not(.eyebrow){color:var(--muted);font-size:9px;line-height:1.55}.home-calendar-action{width:100%}.student-week-calendar{margin-bottom:18px;padding:24px;overflow:hidden}.student-calendar-heading{justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:20px;display:flex}.student-calendar-heading h2{margin:0;font:400 20px Georgia,serif}.student-calendar-controls{align-items:center;gap:16px;display:flex}.calendar-hours{border:1px solid var(--line);color:var(--muted);background:#f1efe7;border-radius:20px;padding:6px 9px;font-size:8px;font-weight:750}.calendar-key{color:var(--muted);gap:14px;font-size:8px;display:flex}.calendar-key span{align-items:center;gap:5px;display:flex}.calendar-key i{border-radius:2px;width:8px;height:8px}.calendar-key .key-open{background:#dce8d8;border:1px solid #a9bda4}.calendar-key .key-busy{background:#eeeae1}.student-month-layout{grid-template-columns:minmax(360px,1.1fr) minmax(260px,.8fr);align-items:start;gap:22px;display:grid}.month-picker{min-width:0}.month-picker-head{justify-content:space-between;align-items:center;margin-bottom:15px;display:flex}.month-picker-head strong{font:400 17px Georgia,serif}.month-picker-head button{border:1px solid var(--line);background:0 0;border-radius:50%;width:30px;height:30px;font-size:18px}.month-weekdays,.month-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.month-weekdays span{color:var(--muted);text-align:center;text-transform:uppercase;padding:5px 0;font-size:7px;font-weight:750}.month-days button,.month-days i{border:1px solid var(--line);text-align:center;background:#f1efe7;border-radius:6px;min-height:49px;padding:6px 3px;font-style:normal}.month-days button span,.month-days button small{display:block}.month-days button span{font:400 13px Georgia,serif}.month-days button small{color:var(--sage);margin-top:4px;font-size:6px;font-weight:750}.month-days button.has-openings{background:#e8efe4;border-color:#b8c9b3}.month-days button.selected{border-color:var(--sage-dark);background:var(--sage-dark);color:#fff}.month-days button.selected small{color:#dce8d8}.month-days button:disabled{color:#aaa49a;cursor:default;opacity:.65}.day-request{border-left:1px solid var(--line);padding-left:22px}.day-request h2{margin:0 0 15px;font:400 20px Georgia,serif}.day-request label{font-size:9px;font-weight:750;display:block}.day-request select{border:1px solid var(--line);background:#fff;border-radius:6px;width:100%;margin-top:6px;padding:9px;font-size:10px;display:block}.day-times{margin:17px 0}.day-times>strong{margin-bottom:8px;font-size:9px;display:block}.day-times>div{flex-wrap:wrap;gap:6px;max-height:190px;display:flex;overflow-y:auto}.day-times button{color:var(--sage-dark);background:#edf0e9;border:1px solid #cad3c7;border-radius:5px;padding:6px 8px;font-size:8px}.day-times button.selected{border:2px solid var(--sage-dark);background:var(--sage-dark);color:#fff;box-shadow:0 0 0 3px color-mix(in srgb,var(--sage-dark) 22%,transparent);padding:5px 9px;font-weight:800}.day-times button.selected span{margin-right:4px}.day-times>p{color:var(--muted);font-size:9px}.day-request .primary{width:100%}.day-request .primary:disabled{cursor:not-allowed;opacity:.5}.student-calendar-scroll{border-top:1px solid var(--line);border-left:1px solid var(--line);max-height:520px;overflow:auto}.student-calendar-grid{grid-template-columns:64px repeat(7,minmax(105px,1fr));min-width:860px;display:grid}.student-calendar-grid>strong{z-index:3;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);text-align:center;padding:10px 5px;font-size:8px;position:sticky;top:0}.student-calendar-grid .corner{z-index:4;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;left:0}.student-calendar-row{display:contents}.student-calendar-row time{z-index:2;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);color:var(--muted);padding:9px 8px;font-size:8px;position:sticky;left:0}.student-calendar-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);place-items:center;min-height:48px;padding:6px;display:grid}.student-calendar-cell .open{width:100%;height:100%;min-height:23px;color:var(--sage-dark);background:#e8efe4;border:1px solid #b8c9b3;border-radius:4px;font-size:7px;font-weight:750}.student-calendar-cell .open:hover,.student-calendar-cell .open.selected{background:var(--sage-dark);color:#fff}.student-calendar-cell .unavailable{color:#999389;text-align:center;background:#eeeae1;border-radius:3px;width:100%;height:100%;min-height:23px;padding:5px 3px;font-size:6px}.student-schedule-grid{grid-template-columns:minmax(0,1.35fr) minmax(250px,.75fr);align-items:start;gap:18px;display:grid}.availability-list,.request-form{padding:24px}.availability-list article{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:12px;padding:17px 0;display:grid}.availability-list article>strong{font:400 13px Georgia,serif}.availability-list article div{flex-wrap:wrap;justify-content:flex-end;gap:7px;display:flex}.availability-list article button{color:var(--sage-dark);background:#edf0e9;border:1px solid #cad3c7;border-radius:5px;padding:6px 8px;font-size:8px}.availability-list article button:hover,.availability-list article button.selected{background:var(--sage-dark);border-color:var(--sage-dark);color:#fff}.calendar-privacy{color:var(--muted);margin:15px 0 0;font-size:8px;line-height:1.5}.request-form h2{margin:0 0 17px;font:400 20px Georgia,serif}.request-form label{margin-top:12px;font-size:9px;font-weight:750;display:block}.request-form select{border:1px solid var(--line);background:#fff;border-radius:6px;width:100%;margin-top:6px;padding:10px;font-size:10px;display:block}.request-form .primary{width:100%;margin-top:17px}.student-request-status{background:#f3eee1;border-radius:6px;margin-bottom:15px;padding:10px}.student-request-status strong,.student-request-status span{font-size:9px;display:block}.student-request-status span{color:var(--muted);margin-top:4px;font-size:8px}.student-request-status.approved{color:var(--sage-dark);background:#e8eee5}.student-request-status.declined{color:#a3533c;background:#f6e1d7}.request-review{border-left:4px solid var(--gold);justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;padding:17px 20px;display:flex}.calendar-request-panel{margin-bottom:14px;padding:14px 16px}.calendar-request-panel>header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:10px;display:flex}.calendar-request-panel>header h2{margin:0;font-size:19px;font-weight:500}.calendar-request-panel>header>span{color:var(--muted);background:#edf0e9;border-radius:99px;flex:none;padding:5px 9px;font-size:12px;font-weight:750}.calendar-request-list{gap:6px;max-height:220px;padding-right:4px;display:grid;overflow-y:auto}.calendar-request-list .request-review{border:1px solid var(--line);border-left:3px solid var(--gold);background:color-mix(in srgb,var(--paper) 80%,var(--cream));box-shadow:none;border-radius:7px;gap:12px;margin:0;padding:9px 11px}.calendar-request-list .request-review.approved{border-left-color:var(--sage)}.calendar-request-list .request-review.declined{border-left-color:var(--coral)}.calendar-request-list .request-review .eyebrow{margin-bottom:2px;font-size:10px}.calendar-request-list .request-review h2{font-size:16px}.calendar-request-list .request-review p:not(.eyebrow){margin-top:2px;font-size:13px}.calendar-request-list .request-actions{gap:6px}.calendar-request-list .request-actions button{padding:7px 10px;font-size:12px}.calendar-request-list .request-status{padding:5px 8px;font-size:11px}html[data-theme=dark] .calendar-request-panel>header>span{background:#303831}@media (width<=680px){.calendar-request-panel{padding:12px}.calendar-request-list{max-height:260px}.calendar-request-list .request-review{flex-direction:column;align-items:flex-start}.calendar-request-list .request-actions{width:100%}.calendar-request-list .request-actions button{flex:1}}.request-review h2{margin:0;font:400 17px Georgia,serif}.request-review p:not(.eyebrow){color:var(--muted);margin:4px 0 0;font-size:9px}.request-actions{gap:8px;display:flex}.request-review.approved{border-left-color:var(--sage)}.request-review.declined{border-left-color:var(--coral)}.request-status{color:var(--sage-dark);text-transform:capitalize;background:#e8eee5;border-radius:20px;padding:6px 10px;font-size:9px;font-weight:750}.lesson-status{color:var(--sage-dark);text-transform:capitalize;background:#edf0e9;border-radius:20px;margin:0 6px 7px 0;padding:3px 6px;font-size:7px;font-weight:750;display:inline-block}.lesson-status.completed{background:#e1eddd}.lesson-status.canceled,.lesson-status.missed{color:#a3533c;background:#f6e1d7}.status.invited{color:#8b744c;background:#f3eee1}.status.archived{color:var(--muted);background:#ece9e2}.student-card.archived{opacity:.72}.student-card.archived .avatar{filter:grayscale()}.archive-warning{color:#796846;background:#f3eee1;border-radius:6px;margin:14px 0 0;padding:10px;font-size:8px;line-height:1.5}.modal-context{color:var(--muted);background:#f1efe7;border-radius:6px;margin:-12px 0 18px;padding:10px 12px;font-size:9px}.profile-account-card{grid-column:1/-1;padding:24px}.profile-account-card h2,.settings-card h2,.policies-page h2{margin:0 0 16px;font:400 21px Georgia,serif}.profile-account-card form{grid-template-columns:1.2fr 1.4fr 1fr .7fr auto;align-items:end;gap:10px;display:grid}.profile-account-card label,.settings-card label{font-size:9px;font-weight:750}.profile-account-card input,.profile-account-card select,.settings-card select{border:1px solid var(--line);background:#fff;border-radius:6px;width:100%;margin-top:6px;padding:9px;font-size:10px;display:block}.account-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;margin-top:15px;padding-top:15px;display:flex}.outline.danger{color:#a3533c;border-color:#d9b4a8}.series-note{color:var(--muted);margin:10px 0 0;font-size:8px;line-height:1.45}.series-cancel{margin-top:9px}.next-lesson-actions{gap:3px;display:grid}.settings-grid{grid-template-columns:.8fr 1.2fr;align-items:stretch;gap:18px;display:grid}.settings-card{padding:23px}.settings-card>p:not(.eyebrow){color:var(--muted);font-size:9px;line-height:1.55}.settings-toggle{align-items:center;gap:8px;margin-bottom:15px;display:flex}.settings-toggle input{accent-color:var(--sage-dark)}.email-settings-card,.reminder-settings-card{flex-direction:column;align-items:flex-start;display:flex}.email-settings-card>p:not(.eyebrow){margin:0 0 22px}.email-settings-card>.outline{margin-top:auto}.reminder-settings-card .settings-toggle{margin:0 0 20px}.reminder-timing{width:100%;margin-bottom:20px;display:block}.reminder-settings-card>p:not(.eyebrow){margin:0 0 22px}.reminder-settings-card>.outline{margin-top:auto}.policy-editor textarea{border:1px solid var(--line);resize:vertical;width:100%;min-height:180px;font:inherit;background:#fff;border-radius:6px;margin-bottom:12px;padding:11px;font-size:10px;line-height:1.55}.export-card{grid-column:1/-1}.export-card>div{flex-wrap:wrap;gap:8px;margin-top:15px;display:flex}.billing-notice{background:#e8efe4;border:1px solid #c8d5c4;border-radius:8px;justify-content:space-between;align-items:center;gap:15px;margin:-12px 0 18px;padding:13px 16px;font-size:10px;display:flex}.invoice-ledger{margin-top:16px}.invoice-record{border-top:1px solid var(--line);grid-template-columns:minmax(180px,1fr) 100px 70px auto;align-items:center;gap:14px;padding:15px 0;display:grid}.invoice-record strong,.invoice-record small{display:block}.invoice-record>div:first-child>strong{font:400 13px Georgia,serif}.invoice-record small{color:var(--muted);margin-top:4px;font-size:8px}.invoice-record>div:last-child{flex-wrap:wrap;justify-content:flex-end;gap:7px;display:flex}.unbilled-ledger{margin-top:20px}.unbilled-groups{margin-top:16px}.unbilled-groups article{border-top:1px solid var(--line);grid-template-columns:minmax(180px,1fr) 100px auto;align-items:center;gap:14px;padding:15px 0;display:grid}.unbilled-groups article strong,.unbilled-groups article small{display:block}.unbilled-groups article small{color:var(--muted);margin-top:4px;font-size:9px}.invoice-status{text-transform:capitalize;border-radius:99px;justify-self:start;padding:5px 8px;font-size:8px;font-weight:750}.invoice-status.open{color:#a25842;background:#f6e1d7}.invoice-status.paid{color:var(--sage-dark);background:#e8efe4}.invoice-status.void{color:var(--muted);background:#ece9e2}.invoice-status.open:not(:empty){white-space:nowrap}.email-history{margin-top:20px;padding:23px}.email-tracking-note{border-radius:7px;margin:12px 0 0;padding:10px 12px;font-size:9px}.email-tracking-note.connected{color:var(--sage-dark);background:#e8efe4}.email-tracking-note.pending{color:#82682e;background:#f5ead2}.email-delivery-list{margin-top:15px}.email-delivery-list article{border-top:1px solid var(--line);grid-template-columns:minmax(220px,1fr) 130px 90px;align-items:center;gap:14px;padding:14px 0;display:grid}.email-delivery-list strong,.email-delivery-list small{display:block}.email-delivery-list strong{font-size:10px}.email-delivery-list small,.email-delivery-list time{color:var(--muted);margin-top:4px;font-size:8px}.email-delivery-list .email-error{color:#a3533c}.email-delivery-status{color:var(--muted);text-transform:capitalize;background:#ece9e2;border-radius:99px;justify-self:start;padding:5px 8px;font-size:8px;font-weight:750}.email-delivery-status.sent,.email-delivery-status.delivered{color:var(--sage-dark);background:#e8efe4}.email-delivery-status.failed,.email-delivery-status.bounced,.email-delivery-status.suppressed,.email-delivery-status.complained{color:#a25842;background:#f6e1d7}.policies-page{max-width:680px;margin:auto;padding:28px}.policies-page>p:not(.eyebrow){color:var(--muted);border-top:1px solid var(--line);padding:13px 0;font-size:11px;line-height:1.7}.modal textarea{border:1px solid var(--line);resize:vertical;width:100%;min-height:95px;font:inherit;background:#fff;border-radius:6px;margin-top:6px;padding:10px;font-size:10px}.availability-settings{border:1px solid var(--line);background:#f1efe7;border-radius:8px;grid-template-columns:minmax(300px,1fr) minmax(260px,.85fr);gap:20px;margin:-4px 0 24px;padding:22px;display:grid}.availability-settings h2{margin:0 0 15px;font:400 20px Georgia,serif}.availability-form label{font-size:9px;font-weight:750;display:block}.availability-form select,.availability-form input[type=time],.availability-form input[type=date]{border:1px solid var(--line);background:#fff;border-radius:6px;width:100%;margin-top:6px;padding:9px;font-size:10px;display:block}.availability-form .specific-date{margin:15px 0}.availability-form fieldset{border:0;margin:15px 0;padding:0}.availability-form legend{margin-bottom:7px;font-size:9px;font-weight:750}.availability-form fieldset{flex-wrap:wrap;gap:6px;display:flex}.availability-form fieldset label{position:relative}.availability-form fieldset input{opacity:0;pointer-events:none;position:absolute}.availability-form fieldset span{color:var(--muted);background:#fff;border:1px solid #cad0c6;border-radius:5px;padding:7px 9px;display:block}.availability-form fieldset input:checked+span{border-color:var(--sage-dark);background:var(--sage-dark);color:#fff}.availability-time-row{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:15px;display:grid}.availability-help{color:var(--muted);margin:0 0 15px;font-size:8px;line-height:1.5}.time-away-picker{border:1px solid var(--line);background:var(--paper);border-radius:8px;margin:15px 0 9px;padding:12px}.time-away-head{grid-template-columns:30px 1fr 30px;align-items:center;margin-bottom:8px;display:grid}.time-away-head strong{text-align:center;font:400 13px Georgia,serif}.time-away-head button{border:1px solid var(--line);width:28px;height:28px;color:var(--ink);background:0 0;border-radius:50%;font-size:17px}.time-away-weekdays,.time-away-days{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.time-away-weekdays span{color:var(--muted);text-align:center;padding:4px 0;font-size:7px;font-weight:750}.time-away-days button,.time-away-days i{min-height:31px;color:var(--ink);background:0 0;border:0;border-radius:5px;font-size:9px;font-style:normal}.time-away-days button:hover:not(:disabled){background:color-mix(in srgb,var(--sage) 18%,transparent)}.time-away-days button.in-range{background:color-mix(in srgb,var(--sage) 25%,transparent);border-radius:2px}.time-away-days button.range-start,.time-away-days button.range-end{background:var(--sage-dark);color:#fff;border-radius:6px;font-weight:800}.time-away-days button:disabled{color:var(--muted);opacity:.35}.time-away-summary{min-height:28px;color:var(--muted);margin:10px 2px 0;font-size:8px;line-height:1.45}.lesson-date-picker{margin-top:6px}.lesson-date-picker .time-away-summary{text-align:center;min-height:0;margin-bottom:0}.availability-rules article{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:11px 0;display:flex}.availability-rules article>div strong,.availability-rules article>div span{display:block}.availability-rules article strong{font:400 12px Georgia,serif}.availability-rules article span{color:var(--muted);margin-top:3px;font-size:8px}.availability-rules article.open strong{color:var(--sage-dark)}.availability-rules article.blocked strong{color:#a25842}.availability-rules article button{color:var(--muted);background:0 0;border:0;font-size:8px;text-decoration:underline}.message-actions{gap:9px;display:flex}.inbox{grid-template-columns:minmax(210px,.72fr) minmax(0,1.8fr);min-height:520px;display:grid;overflow:hidden}.inbox>aside{border-right:1px solid var(--line);padding:10px}.inbox>aside button{text-align:left;width:100%;color:var(--ink);background:0 0;border:0;border-radius:7px;align-items:center;gap:10px;padding:11px;display:flex}.inbox>aside button.active{background:#eef0e9}.inbox>aside button>span:last-child{min-width:0}.inbox>aside strong,.inbox>aside small{display:block}.inbox>aside small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:8px;overflow:hidden}.conversation{flex-direction:column;min-width:0;padding:22px;display:flex}.conversation header{border-bottom:1px solid var(--line);padding-bottom:14px}.conversation h2{margin:3px 0 0;font:400 20px Georgia,serif}.conversation .simple-thread{flex:1;max-height:420px;padding-right:4px;overflow-y:auto}.simple-thread article{flex-direction:column;max-width:78%;display:flex}.simple-thread article.mine{align-self:flex-end}.simple-thread article.theirs{align-self:flex-start}.simple-thread article p{max-width:100%}.simple-thread article time{color:var(--muted);margin-top:3px;font-size:7px}.simple-thread article.mine time{text-align:right}.message-composer{border-top:1px solid var(--line);padding-top:14px}.message-composer textarea{resize:vertical;border:1px solid var(--line);width:100%;min-height:88px;font:inherit;background:#fff;border-radius:6px;padding:10px;font-size:10px}.message-composer>div{justify-content:flex-end;align-items:center;gap:12px;margin-top:8px;display:flex}.message-composer>div span{color:#a25842;margin-right:auto;font-size:8px}.broadcast-success{color:var(--sage-dark);background:#e8efe4;border:1px solid #c8d5c4;border-radius:7px;margin:-14px 0 18px;padding:10px 13px;font-size:10px;font-weight:750}.broadcast-modal textarea{border:1px solid var(--line);resize:vertical;width:100%;min-height:120px;font:inherit;background:#fff;border-radius:6px;margin-top:6px;padding:10px;font-size:10px}.broadcast-audience{border:1px solid var(--line);background:#f1efe7;border-radius:7px;margin-bottom:15px;padding:12px}.broadcast-audience span,.broadcast-audience strong,.broadcast-audience small{display:block}.broadcast-audience span{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:8px}.broadcast-audience strong{margin:4px 0;font:400 15px Georgia,serif}.broadcast-audience small{color:var(--muted);font-size:8px;line-height:1.45}.broadcast-warning{color:var(--muted);margin:12px 0 0;font-size:8px}.slot .recurring{font-weight:750}.slot .available.recurring{color:var(--sage-dark);background:#e8efe4;border:1px solid #b8c9b3!important}.slot .booked.recurring{color:#8f887d;background:#eeeae1}.full-calendar .slot{height:34px;padding:3px;position:relative;overflow:visible}.full-calendar .slot button{font-size:7px}.slot .availability-booking{z-index:1;width:calc(100% - 6px);color:var(--sage-dark);border:1px solid #b8c9b3;border-left:4px solid var(--sage);text-align:left;background:#e8efe4;border-radius:7px;flex-direction:column;align-items:flex-start;gap:3px;padding:7px 8px;display:flex;position:absolute;inset:3px 3px auto;overflow:hidden}.availability-booking strong{font-size:13px}.availability-booking small{color:inherit;opacity:.78;white-space:nowrap;font-size:11px}.slot .availability-booking.blocked{color:#716c64;background:#eeeae1;border-color:#d7d0c3 #d7d0c3 #d7d0c3 #a08f77}.slot .lesson-booking{z-index:2;width:calc(100% - 6px);color:var(--sage-dark);text-align:left;background:#dfe7dc;border-radius:7px;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:2px;padding:7px 8px;font-weight:750;display:flex;position:absolute;inset:3px 3px auto;overflow:hidden;box-shadow:0 3px 9px #34483a24;border-left:4px solid var(--sage)!important}.lesson-booking strong,.lesson-booking span,.lesson-booking small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.lesson-booking strong{font-size:12px}.lesson-booking span{font-size:13px}.lesson-booking small{opacity:.78;margin-top:auto;font-size:10px}.lesson-color-0{--lesson-accent:#66806a;--lesson-fill:#dfe9dd}.lesson-color-1{--lesson-accent:#718ba3;--lesson-fill:#dfe8ef}.lesson-color-2{--lesson-accent:#b8894f;--lesson-fill:#f2e6d2}.lesson-color-3{--lesson-accent:#a06c7b;--lesson-fill:#eee0e5}.slot .lesson-booking[class*=lesson-color-]{background:var(--lesson-fill);color:#28372f;border-left-color:var(--lesson-accent)!important}.mobile-calendar-days,.mobile-day-agenda,.mobile-calendar-toggle,.mobile-day-timeline{display:none}.student-calendar-cell{min-height:31px;padding:4px}.invoice-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr 80px 60px;align-items:center;gap:12px;margin:18px 0;padding:17px 0;display:grid}.invoice-row strong,.invoice-row small{font-size:10px;display:block}.invoice-row small{color:var(--muted);margin-top:3px;font-size:8px}.simple-thread{flex-direction:column;gap:9px;margin:18px 0;display:flex}.simple-thread p{border-radius:7px;max-width:78%;margin:0;padding:9px 11px;font-size:9px;line-height:1.5}.simple-thread .mine{background:var(--sage-dark);color:#fff;align-self:flex-end}.simple-thread .theirs{background:#eeeae1}.student-note{border-bottom:1px solid var(--line);grid-template-columns:84px 1fr;gap:22px;padding:25px 0;display:grid}.student-note:last-child{border-bottom:0}.student-note time{color:var(--sage-dark);font:400 14px Georgia,serif}.student-note h2{margin:0 0 8px;font:400 18px Georgia,serif}.student-note p{color:var(--muted);margin:0;font-size:11px;line-height:1.65}.theme-control{border:1px solid var(--line);background:color-mix(in srgb, var(--cream) 84%, var(--paper));border-radius:8px;grid-template-columns:repeat(3,1fr);gap:3px;padding:3px;display:grid}.theme-control button{color:var(--muted);background:0 0;border:0;border-radius:5px;padding:8px 12px;font-size:9px;font-weight:750}.theme-control button.active{background:var(--paper);color:var(--ink);box-shadow:0 2px 7px #18241d18}.theme-icon{display:none}.theme-control.compact{flex:none}.theme-control.compact button{padding:6px 8px;font-size:8px}.appearance-card .theme-control{margin:4px 0 13px}html[data-theme=dark] .sidebar,html[data-theme=dark] .mobile-head,html[data-theme=dark] .portal-header{border-color:var(--line);background:#18201b}html[data-theme=dark] .content{background:radial-gradient(circle at 80% 5%,#29352d88 0,transparent 28%),var(--cream)}html[data-theme=dark] .brand small,html[data-theme=dark] .sidebar nav button,html[data-theme=dark] .portal-header nav button{color:var(--muted)}html[data-theme=dark] .sidebar nav button.active,html[data-theme=dark] .mobile-nav button.active,html[data-theme=dark] .inbox aside button.active{color:#b9d0bd;background:#28332c}html[data-theme=dark] .student-preview-button,html[data-theme=dark] .piece,html[data-theme=dark] .lesson-note,html[data-theme=dark] .privacy-note,html[data-theme=dark] .availability-settings,html[data-theme=dark] .broadcast-audience,html[data-theme=dark] .month-days button,html[data-theme=dark] .month-days i,html[data-theme=dark] .calendar-hours{color:var(--muted);border-color:var(--line);background:#252d28}html[data-theme=dark] .note-card{background:#342f22}html[data-theme=dark] .note-card>p:not(.eyebrow){color:#d0c4a8}html[data-theme=dark] input,html[data-theme=dark] select,html[data-theme=dark] textarea,html[data-theme=dark] .portal-account button,html[data-theme=dark] .availability-form fieldset span{border-color:var(--line);color:var(--ink);background:#222b25}html[data-theme=dark] .bubbles .theirs,html[data-theme=dark] .simple-thread .theirs,html[data-theme=dark] .unavailable,html[data-theme=dark] .student-calendar-cell .unavailable{color:var(--muted);background:#29312c}html[data-theme=dark] .confirmed-status,html[data-theme=dark] .lesson-status.completed,html[data-theme=dark] .billing-notice,html[data-theme=dark] .broadcast-success,html[data-theme=dark] .student-request-status.approved{color:#a8c8ad;background:#26382a;border-color:#405744}html[data-theme=dark] .home-request-card>span,html[data-theme=dark] .student-request-status,html[data-theme=dark] .status.invited{color:#d7bc84;background:#393225}html[data-theme=dark] .status.archived{color:var(--muted);background:#30332f}html[data-theme=dark] .archive-warning{color:#d7bc84;background:#393225}html[data-theme=dark] .modal-context{background:#252d28}html[data-theme=dark] .pill.due,html[data-theme=dark] .lesson-status.canceled,html[data-theme=dark] .lesson-status.missed{color:#efa38d;background:#452a24}html[data-theme=dark] .day-times button,html[data-theme=dark] .availability-list article button,html[data-theme=dark] .month-days button.has-openings,html[data-theme=dark] .student-calendar-cell .open,html[data-theme=dark] .slot .available.recurring{color:#a8c8ad;background:#26382a;border-color:#405744}html[data-theme=dark] .day-times button.selected{background:var(--sage-dark);color:#fff;border-color:#b6d0ba}html[data-theme=dark] .staff-lines,html[data-theme=dark] .progress{background:var(--line)}html[data-theme=dark] .availability-form fieldset input:checked+span{color:#142019;background:#a8c8ad;border-color:#d1e3d4;box-shadow:0 0 0 2px #a8c8ad38}html[data-theme=dark] .availability-form fieldset input:focus-visible+span{outline-offset:2px;outline:2px solid #d1e3d4}html[data-theme=dark] .availability-form input[type=time],html[data-theme=dark] .availability-form input[type=date]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#edf3ee;-webkit-text-fill-color:#edf3ee;background-color:#222b25;border-color:#526158}html[data-theme=dark] .availability-form input[type=time]::-webkit-datetime-edit{color:#edf3ee}html[data-theme=dark] .availability-form input[type=date]::-webkit-datetime-edit{color:#edf3ee}html[data-theme=dark] .availability-form input[type=time]::-webkit-calendar-picker-indicator{filter:invert();opacity:.85}html[data-theme=dark] .availability-form input[type=date]::-webkit-calendar-picker-indicator{filter:invert();opacity:.85}html[data-theme=dark] .month-days button.selected,html[data-theme=dark] .day-times button.selected,html[data-theme=dark] .availability-list article button.selected,html[data-theme=dark] .student-calendar-cell .open.selected{color:#142019;background:#a8c8ad;border-color:#d1e3d4;box-shadow:0 0 0 2px #a8c8ad38}html[data-theme=dark] .month-days button.selected small{color:#314d39}html[data-theme=dark] .time-away-days button.range-start,html[data-theme=dark] .time-away-days button.range-end{color:#142019;background:#a8c8ad}.portal-wrap,.compact-portal{max-width:1080px;padding:34px 28px 52px}.welcome-row{margin-bottom:24px}.students-strip{margin-top:16px}.lede{font-size:17px;line-height:1.5}.paper p:not(.eyebrow),.paper small,.paper time,.small-copy,.calendar-privacy,.availability-help,.broadcast-warning,.series-note,.modal-context,.form-error{font-size:12px;line-height:1.55}.paper input,.paper select,.paper textarea,.modal input,.modal select,.modal textarea,.day-request select,.message-composer textarea{padding:11px 12px;font-size:14px}.day-availability-blocks button small,.student-calendar-grid>strong,.student-calendar-row time{font-size:12px}html[data-theme=dark] .simple-thread article.theirs{box-shadow:none;border:0;padding:0;background:0 0!important}@media (width<=680px){.mobile-nav button{grid-template-rows:22px auto;place-items:center;display:grid}.mobile-nav button .nav-icon{width:20px;height:20px;margin:0 auto 3px;display:inline-grid}.mobile-nav button .nav-icon-calendar{width:18px!important}.page-wrap,.portal-wrap{padding:20px 16px 32px}.paper,.settings-card,.student-billing,.student-message,.home-history,.home-shortcut,.availability-list,.request-form,.note-editor,.teacher-history{padding:17px}.portal-header .theme-control button{width:34px;padding:7px 4px;font-size:0}.portal-header .theme-control button:first-letter{font-size:13px}.portal-header .theme-label{display:none}.portal-header .theme-icon{font-size:18px;line-height:1;display:block}.calendar-key{justify-content:flex-start}}.content,.student-portal{font-size:15px}.page-wrap{max-width:none;padding:24px 28px 38px}.portal-wrap{max-width:1240px;padding:26px 24px 42px}.compact-portal{max-width:1120px}.welcome-row,.portal-title{margin-bottom:18px}.dashboard-grid,.student-grid,.student-home-grid,.student-home-main,.student-home-aside,.student-portal-aside,.settings-grid,.teacher-profile-grid{gap:14px}.students-strip{margin-top:14px;padding:18px 20px}.paper,.settings-card,.student-billing,.student-message,.home-history,.home-shortcut,.availability-list,.request-form,.note-editor,.teacher-history{padding:20px}.lede{font-size:18px}.sidebar nav button,.portal-header nav button{font-size:15px}.sidebar-owner strong,.portal-account strong{font-size:14px}.sidebar-owner small,.portal-account small,.sidebar-footer .sidebar-signout,.portal-account button{font-size:12px}.student-preview-button{border-radius:10px;padding:12px}.student-preview-button>span:first-child{font-size:19px}.student-preview-button strong{font-size:14px}.student-preview-button small{font-size:12px}.student-preview-button b{font-size:17px}.confirmed-status{padding:7px 11px;font-size:13px}.next-lesson-card p:not(.eyebrow),.home-request-card p:not(.eyebrow),.home-request-card>span,.home-history strong,.home-shortcut>span,.home-shortcut>p:not(.eyebrow),.recent-lessons article,.recent-lessons article>span,.recent-lessons article>button{font-size:14px}.home-history article{padding:13px 0}.home-request-card{padding:16px 20px}.calendar-hours,.calendar-key{font-size:13px}.calendar-key{flex-wrap:wrap;gap:16px}.calendar-key i{width:11px;height:11px}.student-week-calendar{margin-bottom:14px;padding:20px}.student-calendar-heading{margin-bottom:16px}.month-weekdays span{font-size:11px}.month-days button,.month-days i{min-height:60px}.month-days button span{font-size:17px}.month-days button small{font-size:11px}.student-request-status{padding:13px}.student-request-status strong{font-size:15px}.student-request-status span{font-size:13px}.day-availability-blocks button small,.student-calendar-grid>strong,.student-calendar-row time{font-size:12px}.student-calendar-cell .open,.student-calendar-cell .unavailable,.full-calendar .slot button{font-size:11px}.availability-list article button{font-size:13px}.theme-control button,.theme-control.compact button{padding:8px 11px;font-size:13px}.availability-rules article{padding:14px 0}.availability-rules article strong{font-size:16px}.availability-rules article span,.availability-rules article button{font-size:13px}.time-away-weekdays span{font-size:11px}.time-away-days button,.time-away-days i{min-height:38px;font-size:13px}.inbox>aside strong{font-size:15px}.inbox>aside small{font-size:13px}.simple-thread{gap:13px;margin:15px 0}.request-review p:not(.eyebrow),.request-status,.lesson-status,.invoice-status,.email-delivery-status,.email-delivery-list strong,.email-delivery-list small,.email-delivery-list time,.unbilled-groups article small,.invoice-row strong,.invoice-row small,.broadcast-audience span,.broadcast-audience small,.broadcast-warning,.message-composer>div span,.saved-status,.history-count,.note-entry strong,.note-entry p,.profile-heading p:last-child{font-size:13px}.settings-card{min-height:0}.email-settings-card>p:not(.eyebrow),.reminder-settings-card>p:not(.eyebrow){margin-bottom:16px}.reminder-settings-card .settings-toggle,.reminder-timing{margin-bottom:15px}@media (width<=680px){.page-wrap,.portal-wrap{padding:20px 16px 32px}.paper,.settings-card,.student-billing,.student-message,.home-history,.home-shortcut,.availability-list,.request-form,.note-editor,.teacher-history{padding:17px}.portal-header .theme-control button{width:34px;padding:7px 4px;font-size:0}.portal-header .theme-control button:first-letter{font-size:13px}.calendar-key{justify-content:flex-start}}.recent-lessons article,.recent-lessons article>span,.recent-lessons article>button,.home-history strong,.home-history article p,.home-shortcut>span,.home-shortcut>p:not(.eyebrow),.next-lesson-card p:not(.eyebrow),.request-review p:not(.eyebrow),.invoice-record small,.email-delivery-list small,.email-delivery-list time,.simple-thread article time,.simple-thread p{font-size:12px}.inbox>aside strong,.conversation h2,.student-message h2{font-size:15px}.inbox>aside small,.message-composer>div span{font-size:11px}.simple-thread p{padding:12px 14px;line-height:1.55}.conversation .simple-thread{max-height:520px}.message-composer textarea{min-height:112px}.next-lesson-card{padding:26px}.next-lesson-card .recurring-detail{color:var(--sage-dark);margin-top:9px}.day-times>strong{margin-bottom:10px;font-size:12px}.day-times>div.day-availability-blocks{border:1px solid var(--line);border-radius:8px;grid-template-columns:1fr;gap:0;max-height:360px;display:grid;overflow-y:auto}.day-availability-blocks button{border:0;border-bottom:1px solid var(--line);text-align:left;border-radius:0;justify-content:space-between;align-items:center;width:100%;min-height:37px;padding:8px 11px;font-size:12px;display:flex}.day-availability-blocks button:last-child{border-bottom:0}.day-availability-blocks button.open{color:var(--sage-dark);background:#e8efe4}.day-availability-blocks button.unavailable{background:var(--paper);color:var(--muted);opacity:.55}.day-availability-blocks button.selected{border:0;border-bottom:1px solid var(--line);background:var(--sage-dark);color:#fff;padding:8px 11px;box-shadow:inset 4px 0 #dce8d8}.simple-payment-record{grid-template-columns:minmax(220px,1fr) 120px 90px auto}.payment-stats,.income-history,.income-history+.ledger{width:min(880px,100%)}.income-history{margin-bottom:18px;padding:22px 24px}.payment-stats>.paper{flex-direction:column;justify-content:center;min-width:0;min-height:132px;display:flex}.income-history .section-title{align-items:flex-start}.income-history .section-title>p{max-width:330px;color:var(--muted);text-align:right;margin:3px 0 0;font-size:14px}.income-bars{border-bottom:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 39px,color-mix(in srgb,var(--line) 58%,transparent) 40px);grid-template-columns:repeat(6,1fr);align-items:end;gap:14px;min-height:190px;margin-top:16px;padding:8px 8px 0;display:grid}.income-month{text-align:center;grid-template-rows:25px 120px 24px;align-items:end;min-width:0;height:169px;display:grid}.income-month>strong{color:var(--sage-dark);text-overflow:ellipsis;white-space:nowrap;align-self:start;font-size:13px;overflow:hidden}.income-bar-track{justify-content:center;align-items:flex-end;height:120px;display:flex}.income-bar-track i{background:linear-gradient(180deg,var(--sage),var(--sage-dark));border-radius:7px 7px 2px 2px;width:min(54px,72%);min-height:0;display:block;box-shadow:0 5px 14px #405a4724}.income-month>span{color:var(--muted);align-self:center;font-size:13px;font-weight:750}html[data-theme=dark] .income-bar-track i{background:linear-gradient(#91ad95,#58745e)}@media (width<=680px){.income-history{padding:17px}.payment-stats,.income-history,.income-history+.ledger{width:100%}.income-history .section-title{display:block}.income-history .section-title>p{text-align:left;max-width:none;margin-top:7px}.income-bars{gap:7px;min-height:178px;padding-inline:2px}.income-month{grid-template-rows:24px 109px 24px;height:157px}.income-bar-track{height:109px}.income-month>strong{font-size:11px}.income-month>span{font-size:12px}}.student-profile{padding:28px}.student-profile h2{margin:0 0 20px;font:400 24px Georgia,serif}.student-profile label{margin-top:15px;display:block}.student-profile input{border:1px solid var(--line);background:#fff;border-radius:6px;width:100%;margin-top:7px;display:block}.student-profile input:disabled{color:var(--muted);background:#f1efe7}html[data-theme=dark] .day-availability-blocks button.open{color:#c7dfcb;background:#25362b}html[data-theme=dark] .day-availability-blocks button.unavailable,html[data-theme=dark] .student-profile input:disabled{background:#202622}.profile-heading{grid-template-columns:auto 52px 1fr;align-items:center;gap:16px;margin-bottom:28px;display:grid}.profile-heading .avatar{width:52px;height:52px}.profile-heading h1{margin:0;font:400 34px Georgia,serif}.profile-heading p:last-child{color:var(--muted);margin:5px 0 0;font-size:10px}.teacher-profile-grid{grid-template-columns:minmax(280px,.8fr) minmax(420px,1.5fr);gap:20px;display:grid}.note-editor,.teacher-history{padding:24px}.note-editor h2{margin:0 0 20px;font:400 21px Georgia,serif}.note-editor label{margin-top:13px;font-size:9px;font-weight:750;display:block}.note-editor input,.note-editor textarea{border:1px solid var(--line);width:100%;font:inherit;background:#fff;border-radius:6px;margin-top:6px;padding:10px;font-size:10px;display:block}.note-editor textarea{resize:vertical;min-height:120px}.note-editor .primary{margin-top:17px}.saved-status{color:var(--sage);margin-left:10px;font-size:10px;font-weight:700}.form-error{color:#b2553e;margin:10px 0 0;font-size:9px;line-height:1.45}.form-error.inline{margin-left:10px;display:inline-block}.auth-shell{background:radial-gradient(circle at 78% 8%,#fff8 0,transparent 32%),var(--cream);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{width:min(430px,100%);padding:34px}.auth-brand{align-items:center;gap:12px;margin-bottom:36px;display:flex}.auth-brand strong,.auth-brand small{display:block}.auth-brand strong{font:400 18px Georgia,serif}.auth-brand small{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-top:3px;font-size:9px}.auth-card h1{margin:0 0 10px;font:400 32px Georgia,serif}.auth-card>p:not(.eyebrow):not(.form-error):not(.auth-help){color:var(--muted);font-size:11px;line-height:1.6}.auth-card form{margin-top:24px}.auth-card label{font-size:10px;font-weight:750}.auth-card input{border:1px solid var(--line);background:var(--paper);border-radius:7px;width:100%;margin-top:7px;padding:12px;display:block}.auth-link{text-align:center;margin-top:10px;text-decoration:none;display:block}.auth-back{width:100%;margin-top:13px}.auth-help{border-top:1px solid var(--line);color:var(--muted);margin:25px 0 0;padding-top:18px;font-size:9px}.auth-card .auth-waiting{background:color-mix(in srgb,var(--sage) 12%,var(--paper));color:var(--sage-dark);border-radius:7px;margin:18px 0 0;padding:12px 14px;font-size:13px;font-weight:700}.loading-card{text-align:center}.loading-card .brand-mark{margin:auto}.loading-card h1{margin-top:18px;font-size:23px}html[data-theme=dark] .auth-shell{background:radial-gradient(circle at 78% 8%,#29352d88 0,transparent 32%),var(--cream)}.history-count{color:var(--muted);font-size:9px}.note-entry{border-bottom:1px solid var(--line);grid-template-columns:62px 1fr;gap:15px;padding:19px 0;display:grid}.note-entry time{color:var(--sage-dark);font:400 13px Georgia,serif}.note-entry strong{font-size:11px}.note-entry p{color:var(--muted);margin:6px 0 0;font-size:10px;line-height:1.55}@media (width<=680px){.invoice-record{grid-template-columns:1fr auto}.invoice-record>div:last-child{grid-column:1/-1;justify-content:flex-start}.email-delivery-list article{grid-template-columns:1fr auto}.email-delivery-status{grid-area:1/2}.unbilled-groups article{grid-template-columns:1fr auto}.unbilled-groups article button{grid-column:1/-1}.inbox{grid-template-columns:1fr;min-height:0}.inbox>aside{border-right:0;border-bottom:1px solid var(--line);display:flex;overflow-x:auto}.inbox>aside button{min-width:185px}.conversation{padding:16px}.portal-header{height:auto;padding:12px 16px}.portal-header nav,.portal-account>span:not(.avatar){display:none}.portal-account{border:0;margin-left:auto;padding:0}.portal-account button{margin-left:0}.portal-wrap{padding:26px 16px}.portal-title{display:block}.portal-title>.outline{margin-top:18px}.student-history{padding:4px 18px}.student-portal-layout,.student-schedule-grid,.student-month-layout{grid-template-columns:1fr}.day-request{border-left:0;border-top:1px solid var(--line);padding:20px 0 0}.student-home-grid{grid-template-columns:1fr}.next-lesson-card{grid-template-columns:1fr auto}.next-lesson-card>.outline{grid-column:1/-1}.student-week-calendar{overflow:hidden}.student-calendar-heading{align-items:flex-start;min-width:0}.student-calendar-controls{flex-direction:column;align-items:flex-end}.availability-list article{grid-template-columns:1fr}.portal-header nav{display:none}.request-review{flex-direction:column;align-items:flex-start}.message-actions{flex-wrap:wrap;margin-top:18px}.availability-settings{grid-template-columns:1fr;min-width:0}.student-note{grid-template-columns:1fr;gap:8px}.profile-heading{grid-template-columns:auto 46px 1fr}.profile-heading .avatar{width:46px;height:46px}.profile-heading h1{font-size:26px}.teacher-profile-grid{grid-template-columns:1fr}.profile-account-card{grid-column:auto}.profile-account-card form,.settings-grid{grid-template-columns:1fr}.export-card{grid-column:auto}.students-strip{display:block}.recent-lessons article{grid-template-columns:32px 1fr 60px}.recent-lessons article>span:nth-of-type(2),.recent-lessons article>button{display:none}.portal-header{gap:9px}.portal-header>.theme-control{margin-left:auto}.portal-header .portal-account .avatar{display:none}.portal-header .theme-control button{width:27px;padding:6px 4px;font-size:0;overflow:hidden}.portal-header .theme-control button:first-letter{font-size:9px}}.modal{max-height:calc(100vh - 40px);overflow-y:auto}.eyebrow{font-size:12px}.paper p:not(.eyebrow),.paper small,.paper time,.small-copy,.calendar-privacy,.availability-help,.broadcast-warning,.series-note,.modal-context,.form-error,.simple-thread p,.simple-thread article time,.invoice-record small,.home-history article p,.next-lesson-card p:not(.eyebrow){font-size:12px;line-height:1.55}.paper label,.modal label,.day-request label,.availability-form label,.profile-account-card label,.settings-card label{font-size:12px}.paper input,.paper select,.paper textarea,.modal input,.modal select,.modal textarea,.day-request select,.message-composer textarea{font-size:14px}.text-button,.outline,.primary,.eyebrow{font-size:13px}.paper p:not(.eyebrow),.paper small,.paper time,.small-copy,.calendar-privacy,.availability-help,.broadcast-warning,.series-note,.modal-context,.form-error,.invoice-record small,.home-history article p,.next-lesson-card p:not(.eyebrow),.settings-card>p:not(.eyebrow),.empty-lessons p,.empty-history,.archive-warning,.billing-notice,.email-tracking-note,.time-away-summary{font-size:14px;line-height:1.5}.paper label,.modal label,.day-request label,.request-form label,.availability-form label,.profile-account-card label,.settings-card label,.note-editor label,.availability-form legend{font-size:14px}.paper input,.paper select,.paper textarea,.modal input,.modal select,.modal textarea,.day-request select,.request-form select,.message-composer textarea,.availability-form select,.availability-form input[type=time],.availability-form input[type=date],.profile-account-card input,.profile-account-card select,.settings-card select,.policy-editor textarea,.note-editor input,.note-editor textarea{font-size:16px}.text-button,.outline,.primary,.recent-lessons article,.recent-lessons article>span,.recent-lessons article>button,.home-history strong,.home-shortcut>span,.home-shortcut>p:not(.eyebrow){font-size:14px}.profile-heading p:last-child,.saved-status,.history-count,.note-entry strong,.note-entry p{font-size:13px}.day-times>strong{font-size:14px}.day-availability-blocks button{min-height:42px;padding:9px 12px;font-size:14px}.day-availability-blocks button.selected{padding:9px 12px}.day-availability-blocks button small{font-size:12px}.simple-thread article.mine,.simple-thread article.theirs{background:0 0}.simple-thread article p{border-radius:17px;padding:12px 15px;font-size:15px;line-height:1.5}.simple-thread article.mine p{background:var(--sage-dark);color:#fff;border-bottom-right-radius:5px}.simple-thread article.theirs p{color:var(--ink);background:#eeeae1;border-bottom-left-radius:5px}.simple-thread article time{margin-top:6px;font-size:12px}html[data-theme=dark] .simple-thread article.theirs p{color:var(--ink);background:#303831}html[data-theme=dark] .slot .lesson-booking[class*=lesson-color-]{background:color-mix(in srgb,var(--lesson-accent) 28%,#202622);color:#f2f5f2}html[data-theme=dark] .slot .availability-booking.open{color:#c7dfcb;background:#26382a;border-color:#405744}html[data-theme=dark] .slot .availability-booking.blocked{color:#d0c8bd;background:#30332f;border-color:#4a4f49}.student-grid{grid-template-columns:repeat(auto-fill,minmax(250px,320px));align-items:start}.student-card{min-width:0;padding:17px 18px}.student-card-head{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.student-card-head h2{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:19px;overflow:hidden}.student-card-head .status{flex:none;font-size:11px;position:static}.student-card>p{margin:7px 0 0}.student-card .piece{min-width:0;margin:12px 0;padding:9px 10px}.student-card .piece strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:clamp(11px,1.05vw,14px);overflow:hidden}.student-card .card-footer{gap:14px}.student-card .card-footer button{font-size:12px}.message-composer{border:1px solid var(--line);background:color-mix(in srgb,var(--paper) 70%,var(--cream));border-radius:14px;padding:12px;transition:border-color .15s,box-shadow .15s}.message-composer:focus-within{border-color:var(--sage);box-shadow:0 0 0 3px color-mix(in srgb,var(--sage) 18%,transparent)}.message-composer textarea,.student-message .message-composer textarea{background:0 0;border:0;border-radius:0;outline:0;min-height:76px;max-height:180px;margin:0;padding:2px;line-height:1.5}.message-composer>div{margin-top:8px}.message-composer .primary{min-height:38px;box-shadow:none;border-radius:9px;padding:8px 15px}html[data-theme=dark] .message-composer{background:#252c27}.full-calendar .slot .empty-slot-button,.mobile-timeline-slot .empty-slot-button{z-index:0;width:auto;height:auto;color:var(--sage-dark);opacity:0;background:0 0;border:1px dashed #0000;border-radius:6px;font-size:17px;font-weight:700;position:absolute;inset:2px}.full-calendar .slot .empty-slot-button:hover,.full-calendar .slot .empty-slot-button:focus-visible,.mobile-timeline-slot .empty-slot-button:hover,.mobile-timeline-slot .empty-slot-button:focus-visible{border-color:color-mix(in srgb,var(--sage) 50%,transparent);background:color-mix(in srgb,var(--sage) 12%,transparent);opacity:1;outline:0}.slot-action-modal h2{margin-bottom:18px;font-size:23px}.slot-action-options{gap:10px;display:grid}.slot-action-options button{text-align:left;flex-direction:column;justify-content:center;align-items:flex-start;gap:4px;width:100%;min-height:74px;padding:14px 16px;display:flex}.slot-action-options button strong,.slot-action-options button span{display:block}.slot-action-options button strong{font-size:15px}.slot-action-options button span{opacity:.78;font-size:12px;font-weight:500}.slot-action-modal .availability-time-row input{margin-top:6px}html[data-theme=dark] .full-calendar .slot .empty-slot-button,html[data-theme=dark] .mobile-timeline-slot .empty-slot-button{color:#a8c8ad}@media (width<=680px){.page-wrap,.portal-wrap{padding:20px 16px 32px}.paper,.settings-card,.student-billing,.student-message,.home-history,.home-shortcut,.availability-list,.request-form,.note-editor,.teacher-history{padding:17px}.portal-header .theme-control button{width:34px;padding:7px 4px;font-size:0}.portal-header .theme-control button:first-letter{font-size:13px}.full-calendar{padding:17px;overflow:visible}.full-calendar .week-grid{display:none}.calendar-toolbar{flex-wrap:wrap;margin-bottom:16px}.calendar-toolbar h2{font-size:20px}.calendar-toolbar .outline{flex-basis:100%}.mobile-calendar-days{grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:18px;display:grid}.mobile-calendar-days button{border:1px solid var(--line);min-width:0;color:var(--muted);background:0 0;border-radius:8px;padding:8px 2px}.mobile-calendar-days span,.mobile-calendar-days strong{display:block}.mobile-calendar-days span{font-size:11px}.mobile-calendar-days strong{margin-top:4px;font:400 17px Georgia,serif}.mobile-calendar-days button.selected{border-color:var(--sage-dark);background:var(--sage-dark);color:#fff}.mobile-calendar-toggle{border:1px solid var(--line);background:color-mix(in srgb,var(--paper) 75%,transparent);border-radius:8px;width:max-content;margin:0 0 18px auto;padding:3px;display:flex}.mobile-calendar-toggle button{color:var(--muted);background:0 0;border:0;border-radius:6px;padding:7px 13px;font-size:12px;font-weight:750}.mobile-calendar-toggle button.active{background:var(--sage-dark);color:#fff}.mobile-day-timeline{display:block}.mobile-timeline-grid{border-bottom:1px solid var(--line);margin-top:14px}.mobile-timeline-row{grid-template-columns:58px minmax(0,1fr);min-height:34px;display:grid}.mobile-timeline-row>time{color:var(--muted);text-align:right;padding:4px 9px 0 0;font-size:11px}.mobile-timeline-slot{border-top:1px solid var(--line);border-left:1px solid var(--line);min-height:34px;position:relative}.mobile-timeline-slot .empty-slot-button{min-height:30px;color:var(--muted);opacity:.42;place-items:center;font-size:14px;display:grid;inset:1px 4px}.mobile-timeline-slot .availability-booking,.mobile-timeline-slot .lesson-booking{z-index:1;text-align:left;border-radius:7px;flex-direction:column;align-items:flex-start;gap:2px;width:calc(100% - 8px);padding:7px 10px;display:flex;position:absolute;inset:3px 4px auto;overflow:hidden}.mobile-timeline-slot .availability-booking{color:var(--sage-dark);border:1px solid #b8c9b3;border-left:4px solid var(--sage);background:#e8efe4}.mobile-timeline-slot .availability-booking.blocked{color:#716c64;background:#eeeae1;border-color:#d7d0c3 #d7d0c3 #d7d0c3 #a08f77}.mobile-timeline-slot .lesson-booking{z-index:2;background:var(--lesson-fill);color:#28372f;border:1px solid color-mix(in srgb,var(--lesson-accent) 45%,var(--line));border-left:5px solid var(--lesson-accent);box-shadow:0 3px 9px #34483a24}.mobile-timeline-slot .lesson-booking strong,.mobile-timeline-slot .lesson-booking span,.mobile-timeline-slot .lesson-booking small,.mobile-timeline-slot .availability-booking strong,.mobile-timeline-slot .availability-booking small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.mobile-timeline-slot .lesson-booking strong,.mobile-timeline-slot .availability-booking strong{font-size:13px}.mobile-timeline-slot .lesson-booking span{font-size:14px}.mobile-timeline-slot .lesson-booking small,.mobile-timeline-slot .availability-booking small{opacity:.8;font-size:11px}html[data-theme=dark] .mobile-timeline-slot .availability-booking.open{color:#c7dfcb;background:#26382a;border-color:#405744}html[data-theme=dark] .mobile-timeline-slot .availability-booking.blocked{color:#d0c8bd;background:#30332f;border-color:#4a4f49}html[data-theme=dark] .mobile-timeline-slot .lesson-booking{background:color-mix(in srgb,var(--lesson-accent) 28%,#202622);color:#f2f5f2}.mobile-day-agenda{display:block}.mobile-agenda-heading{margin-bottom:8px}.mobile-agenda-heading h2{margin:0;font:400 22px Georgia,serif}.agenda-lesson{border:1px solid color-mix(in srgb,var(--lesson-accent) 45%,var(--line));border-left:5px solid var(--lesson-accent);background:var(--lesson-fill);text-align:left;border-radius:8px;grid-template-columns:minmax(120px,.8fr) 1fr;align-items:center;gap:4px 12px;width:100%;margin-top:10px;padding:13px 14px;display:grid}.agenda-lesson:hover,.agenda-lesson:focus-visible{border-color:var(--sage-dark);box-shadow:0 0 0 2px color-mix(in srgb,var(--sage) 25%,transparent)}.agenda-lesson time{color:#3c4c43;grid-row:1/3;font-size:14px;font-weight:750}.agenda-lesson strong{font:400 17px Georgia,serif}.agenda-lesson span{color:#58645d;font-size:13px}html[data-theme=dark] .agenda-lesson{background:color-mix(in srgb,var(--lesson-accent) 28%,#202622)}html[data-theme=dark] .agenda-lesson time,html[data-theme=dark] .agenda-lesson span{color:#d9e1db}.message-composer{grid-template-columns:minmax(0,1fr);gap:8px;padding:11px;display:grid}.message-composer textarea,.student-message .message-composer textarea{width:100%;min-height:72px;max-height:150px;margin:0}.message-composer>div{justify-content:flex-end;width:100%;margin:0}.message-composer>div span{margin-right:auto}.message-composer .primary{width:auto;min-width:0;min-height:38px;padding:8px 15px}}:root{--font-interface:"Manrope Variable", "Segoe UI", sans-serif;--font-heading:"Lora Variable", Georgia, serif}body,button,input,select,textarea{font-family:var(--font-interface)}h1,h2,h3,.brand strong,.auth-brand strong,.sidebar-week-heading strong,.lesson-time strong,.stats strong,.payment-stats strong,.student-billing>strong,.home-shortcut>strong,.calendar-head strong,.month-picker-head strong,.time-away-head strong,.note-entry time{font-family:var(--font-heading)}h1,h2,h3{text-transform:capitalize}body{font-optical-sizing:auto;letter-spacing:-.006em;font-weight:450}h1,h2,h3{font-optical-sizing:auto;letter-spacing:-.025em}button,input,select,textarea{letter-spacing:normal}.eyebrow,.public-kicker{letter-spacing:.14em}
