:root{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",sans-serif;color:#1b2c43;background:#f3f5f8;font-size:14px;--accent:#203e63;--line:#dce3ec;--muted:#65748a}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;background:white;color:#253e60;border:1px solid #cbd5e2;border-radius:6px;padding:9px 14px;font-weight:600;white-space:nowrap}button:hover{background:#edf2f8}button:disabled{opacity:.5;cursor:wait}button.primary{background:var(--accent);color:white;border-color:var(--accent)}button.quiet{border-color:transparent;background:transparent}a{color:var(--accent)}header{height:74px;background:white;display:flex;justify-content:space-between;align-items:center;padding:0 32px;border-bottom:1px solid var(--line)}.brand{font-size:21px;font-weight:750;letter-spacing:.02em;text-decoration:none;color:#1c3658}.brand span{font-size:13px;margin-left:12px;font-weight:400;color:var(--muted)}.headerRight{display:flex;align-items:center;gap:18px}.layout{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:calc(100dvh - 74px)}aside{background:#fff;border-right:1px solid var(--line);padding:30px 16px}nav{display:grid;gap:8px}nav button{border:0;text-align:left;padding:13px 16px;color:#52647c;background:transparent}nav .selected{background:#e9eff7;color:#27466e}.asideNote{color:var(--muted);line-height:1.9;font-size:12px;margin:36px 16px}main{max-width:1500px;width:100%;padding:30px 36px}.toolbar{display:flex;gap:20px;justify-content:space-between;align-items:center;margin-bottom:18px}.eyebrow{font-size:12px;color:var(--muted);margin:0 0 10px}h1{font-size:26px;margin:0;letter-spacing:.02em}h2{font-size:18px;margin:0 0 16px}p{line-height:1.8}.controls{display:flex;align-items:end;gap:12px}label{display:block;font-size:12px;font-weight:650;color:#4b607c}input,select,textarea{display:block;width:100%;background:#fff;border:1px solid #bac8d9;border-radius:5px;padding:10px;color:#243b5a;margin-top:5px}input:focus,select:focus,textarea:focus,button:focus-visible{outline:3px solid #a5b9d5;outline-offset:2px}textarea{min-height:90px;resize:vertical}.muted{font-size:12px;color:var(--muted)}.panel{background:white;border:1px solid var(--line);border-radius:9px;padding:22px;margin-bottom:18px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px;align-items:end}.filters label{min-width:150px}.tableWrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;text-align:left}th{font-size:12px;color:#65738a;font-weight:600;padding:13px 12px;background:#f5f7fa;border-bottom:1px solid var(--line)}td{padding:14px 12px;border-bottom:1px solid #edf0f5;vertical-align:top}tbody tr:last-child td{border-bottom:0}.time{font-variant-numeric:tabular-nums;letter-spacing:.03em}.pill{display:inline-block;border-radius:4px;padding:3px 7px;font-size:11px;font-weight:600;background:#edf2f8;color:#3b5679}.pill.pending{background:#fff3da;color:#805714}.pill.cancelled{background:#f9e8e6;color:#943d34}.actions{display:flex;gap:7px;flex-wrap:wrap}.actions button{font-size:12px;padding:6px 9px}.subtitle{display:block;font-size:12px;color:var(--muted);margin-top:6px;white-space:normal;max-width:360px}.empty{padding:55px 20px;text-align:center;color:var(--muted)}.summary{display:flex;gap:32px;padding:20px 0;flex-wrap:wrap}.metric{font-size:27px;font-weight:700;font-variant-numeric:tabular-nums}.metric small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-bottom:7px}.warning{background:#fff7e7;border-left:3px solid #b58b3d;padding:12px 16px;color:#74511c;margin:12px 0;line-height:1.8}.success{background:#eef3fa;border-left:3px solid #486f9f;padding:12px 16px}.error{background:#fff0ef;border-left:3px solid #ac574f;padding:12px 16px;color:#86382e}.request{padding:20px 0;border-bottom:1px solid var(--line)}.request:last-child{border:0}.request p{white-space:pre-wrap}.teacherGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}.teacherGrid .panel{margin:0}dl{display:grid;grid-template-columns:95px 1fr;gap:12px;font-size:13px}dt{color:var(--muted)}dd{margin:0;overflow-wrap:anywhere}.auth{min-height:100dvh;display:grid;place-items:center;padding:30px}.login{width:min(450px,100%);background:white;border:1px solid var(--line);padding:36px;border-radius:10px}.login h1{margin-top:36px}.login form{display:grid;gap:22px;margin-top:24px}.login code{display:block;background:#f0f3f8;padding:16px;font-size:16px;overflow-wrap:anywhere;user-select:all;line-height:1.8}.login #authError,#formError{color:#a1382d}.login .brand span{display:block;margin:8px 0}dialog{border:1px solid var(--line);border-radius:10px;max-width:640px;width:calc(100% - 32px);padding:28px;color:#243b5a;max-height:90dvh}dialog::backdrop{background:#1c302b70}.dialogHead{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.dialogHead h2{margin:0}.formGrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}#fields>label,#fields>p{margin:18px 0}.dialogFoot{margin-top:24px;text-align:right}.check{display:flex;align-items:center;gap:8px}.check input{width:auto;margin:0}details{margin-top:15px}summary{cursor:pointer;color:var(--accent);padding:7px 0}.payTotal{text-align:right;font-weight:700}.noteText{white-space:pre-wrap;font-size:13px}.today{background:#edf3fb}
[hidden]{display:none!important}@media(max-width:850px){header{padding:0 16px}.brand span{display:none}.layout{display:block}aside{padding:10px;border-right:0;border-bottom:1px solid var(--line)}nav{display:flex;overflow:auto;gap:3px}nav button{padding:12px;font-size:12px}.asideNote{display:none}main{padding:22px 16px}.toolbar{align-items:start;flex-direction:column}.controls{width:100%}.panel{padding:15px}.formGrid{grid-template-columns:1fr}.headerRight{gap:4px;font-size:12px}h1{font-size:23px}.summary{gap:20px}.metric{font-size:23px}td,th{padding:12px 9px}}

#authError:not(:empty){background:#fff0ef;border:1px solid #e9b4ad;border-radius:6px;padding:12px 14px;line-height:1.8;}
.overviewHint{margin:12px 0 18px}.overviewScroll{overflow:auto;max-width:100%;border:1px solid #c8d3e2;border-radius:7px}.weekCalendar{min-width:1050px;table-layout:fixed;white-space:normal}.weekCalendar th:first-child{width:130px}.weekCalendar thead th{padding:11px 6px;text-align:center;border-right:1px solid #d6e0ed}.weekCalendar thead button{border:0;background:transparent;padding:4px;font-size:12px;white-space:normal;line-height:1.6}.weekCalendar thead small{display:block;color:#6b7c71;font-size:11px;font-weight:400}.weekCalendar tbody th{padding:18px 10px;font-size:13px;color:#253f62;background:#eef3fa;vertical-align:top;border-bottom:1px solid #d6e0ed;overflow-wrap:anywhere}.weekCalendar td{padding:7px;vertical-align:top;border-right:1px solid #e0e7f1;border-bottom:1px solid #d6e0ed}.currentDay{background:#eaf1fc!important}.compactLesson{border-left:3px solid #617fa7;border-radius:3px;background:#f1f4f9;padding:7px 7px;margin-bottom:6px;min-width:0;line-height:1.5}.compactLesson:last-child{margin-bottom:0}.compactTime{display:block;font-size:11px;font-weight:650;white-space:nowrap;font-variant-numeric:tabular-nums;color:#2b4568}.compactTeacher{display:block;font-size:11px;color:#61728a;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin:2px 0}.compactTitle{display:block;font-size:12px;font-weight:650;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.compactCancelled{border-left-color:#aab5c5;background:#f3f4f6;color:#7b8799}.compactCancelled .compactTitle{text-decoration:line-through}.compactTentative{border-left-color:#b69a60;background:#fcf7ed}.noLesson{display:block;text-align:center;font-size:11px;color:#8795a9;padding:18px 0}.monthCalendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:900px}.monthWeekday{text-align:center;padding:10px;background:#eef3fa;color:#526a8d;font-size:12px;border-right:1px solid #d6e0ed;border-bottom:1px solid #cbd7e6}.monthCell{min-height:145px;padding:7px;border-right:1px solid #dce4ef;border-bottom:1px solid #dce4ef;min-width:0}.monthCellHead{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.monthCellHead button{border:0;background:transparent;padding:4px 7px;font-size:14px}.monthCellHead span{font-size:10px;color:#69788d}.monthCell .compactLesson{padding:5px 6px;margin-bottom:5px}.monthCell .compactTitle{font-size:11px}.monthCell .compactTime{font-size:10px}.monthCell .compactTeacher{font-size:10px;margin:0}.outsideMonth{background:#f6f8fb}.moreLessons{border:0;padding:4px 2px;font-size:11px;background:transparent;color:#2b4c7b}.moreLessons:hover{background:#e9eff9}@media(max-width:850px){.overviewScroll{border-radius:5px}.weekCalendar{min-width:1000px}.monthCalendar{min-width:900px}.overviewHint{font-size:12px}}
.scheduleOverview{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:20px 0 8px}.scheduleOverview>div:first-child{display:grid;gap:7px}.groupControl{display:inline-flex;background:#f0f3f8;padding:4px;border:1px solid var(--line);border-radius:7px}.groupControl button{border-color:transparent;background:transparent;font-size:13px;padding:9px 15px;color:#52647c}.groupControl button[aria-pressed="true"]{background:#fff;border-color:#c0cee0;color:#203e63;box-shadow:0 1px 3px #18335510}.scheduleDay{margin-top:26px}.dayHeading{display:flex;align-items:center;gap:12px;margin-bottom:13px}.dayHeading h2{font-size:19px;margin:0}.dayHeading>.muted{margin-left:auto}.scheduleGroups{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:16px;align-items:start}.scheduleGroup{border:1px solid #becbdd;border-radius:8px;overflow:hidden;background:#fff}.scheduleGroupHead{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 16px;background:#edf2f8;border-bottom:1px solid #c8d5e5}.scheduleGroupHead h3{font-size:15px;margin:0;font-weight:750}.scheduleGroupHead>span{font-size:12px;color:#546c8d}.lessonItem{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;padding:17px 15px;border-bottom:1px solid #e1e7f0}.lessonItem:last-child{border-bottom:0}.lessonTime{font-variant-numeric:tabular-nums;display:flex;flex-direction:column;gap:5px;padding-top:1px}.lessonTime strong{font-size:19px;letter-spacing:.02em}.lessonTime>span{font-size:12px;color:#61738d}.lessonBody{min-width:0}.lessonTitle{display:block;line-height:1.7;overflow-wrap:anywhere;font-size:15px}.lessonBadges{display:flex;gap:5px;flex-wrap:wrap;margin:9px 0 11px}.lessonNote{font-size:12px;line-height:1.7;color:#6b7585;margin:8px 0 12px;white-space:pre-wrap}.lessonCancelled{background:#f7f8fa;color:#79869a}.lessonCancelled .lessonTitle{text-decoration:line-through}.lessonBody .actions button{background:#fff;padding:7px 11px}.lessonBody .subtitle{margin-top:4px}.scheduleGroup:only-child{max-width:760px;width:100%}@media(min-width:1500px){.scheduleGroups{grid-template-columns:repeat(auto-fit,minmax(310px,1fr))}}@media(max-width:600px){.scheduleOverview{align-items:start;flex-direction:column}.groupControl{width:100%}.groupControl button{flex:1}.scheduleGroups{grid-template-columns:1fr}.scheduleGroup:only-child{max-width:none}.lessonItem{grid-template-columns:75px minmax(0,1fr)}.dayHeading h2{font-size:18px}}

/* Navy theme shared by daily, weekly and monthly schedules. */
nav .selected{background:#203e63;color:#fff}nav .selected:hover{background:#294d79}.brand,h1,h2{color:#1a3456}.scheduleGroupHead{background:#203e63;border-color:#203e63;color:#fff}.scheduleGroupHead h3,.scheduleGroupHead>span{color:#fff}.groupControl button[aria-pressed="true"]{background:#203e63;color:#fff;border-color:#203e63}.monthWeekday{background:#203e63;color:#fff;border-color:#3b5578}.weekCalendar thead th{background:#203e63;color:#fff;border-color:#3b5578}.weekCalendar thead button,.weekCalendar thead small{color:#fff}.weekCalendar thead th.currentDay{background:#365b8b!important}.weekCalendar tbody th{border-left:3px solid #365b8b}.today{background:#edf3fb}
.accountForm{display:grid;gap:14px;max-width:480px;margin:20px 0 28px}.accountForm label{display:grid;gap:6px}.accountForm input{width:100%}.accountResult:empty{display:none}hr{border:0;border-top:1px solid var(--line);margin:28px 0}details summary{cursor:pointer;font-weight:650}details p{line-height:1.8}#recoveryForm{display:grid;gap:16px}#recoveryForm[hidden]{display:none}#recoveryForm label{display:grid;gap:8px}

.login .rememberChoice{display:flex;align-items:center;gap:9px;font-weight:500}.login .rememberChoice input{width:17px;height:17px;margin:0;flex:0 0 auto}
