:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;font-size:16px;color:#192955;background:#f7f8fa;font-synthesis:none;--navy:#192955;--gold:#eed36a;--muted:#616c7c;--line:#e0e4ea}
*{box-sizing:border-box}body{margin:0}a{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}[hidden]{display:none!important}
.page{max-width:760px;margin:0 auto;min-height:100svh;display:flex;flex-direction:column;background:#fff;border-inline:1px solid var(--line)}
header{background:var(--navy);color:white;padding:28px 36px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:3px solid var(--gold)}
.brand{color:inherit;text-decoration:none;font-size:.8125rem;line-height:1.5;letter-spacing:.2px}.brand strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:1.85rem;font-weight:400;letter-spacing:.3px;line-height:1.2}.badge{font-size:.75rem;color:#d4dbee;text-align:right;line-height:1.5}
main{padding:0 36px;flex:1}.welcome{padding:40px 0 30px}h1{font-size:1.875rem;font-weight:650;line-height:1.2;letter-spacing:-.7px;margin:0 0 10px}.welcome p,.schedule-heading p{font-size:.9375rem;line-height:1.6;color:var(--muted);margin:0}
.actions{border-top:1px solid var(--navy)}.card{display:flex;align-items:center;gap:20px;min-height:106px;padding:23px 4px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--navy);background:#fff;transition:background .15s;cursor:pointer}.card:hover{background:#f6f8fb}.card:active{background:#eef1f6}.card-copy{flex:1;min-width:0}.card-title{display:block;font-size:1.125rem;font-weight:600;line-height:1.35;margin-bottom:6px}.card-copy>span:last-child{display:block;color:var(--muted);font-size:.875rem;line-height:1.5}.end{font-size:1.6rem;color:#64718c;width:26px;text-align:center;flex-shrink:0}.primary .end{color:var(--navy)}
.note{margin:26px 0 40px;padding-left:12px;border-left:2px solid var(--gold);max-width:440px}.note p{font-size:.8125rem;color:var(--muted);line-height:1.6;margin:0}
footer{margin:20px 36px 0;border-top:1px solid var(--line);padding:22px 0 26px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 20px;font-size:.75rem;color:var(--muted);line-height:1.5}
.full-view{padding:18px 0 30px}.back{display:inline-flex;align-items:center;min-height:44px;color:var(--muted);font-size:.875rem;text-decoration:none}.back:hover{color:var(--navy);text-decoration:underline}.schedule-heading{padding:24px 0}.eyebrow{display:block;font-size:.75rem;font-weight:600;line-height:1.5;letter-spacing:1px;color:var(--muted);margin-bottom:12px}.schedule-heading h1{margin-bottom:10px}
.day-label{font-size:.875rem;font-weight:500;margin:8px 0 12px}.day-picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-bottom:1px solid var(--line);margin-bottom:28px;gap:0}.day-picker button{font:inherit;font-size:.9375rem;font-weight:500;min-height:48px;background:white;color:var(--muted);border:0;border-bottom:3px solid transparent;padding:10px 3px;cursor:pointer}.day-picker button[aria-pressed=true]{color:var(--navy);font-weight:700;border-bottom-color:var(--gold);background:#f4f6fa}.day-picker button:hover{background:#f4f6fa}
.day-content h2{font-size:1.375rem;font-weight:600;margin:0 0 18px;letter-spacing:-.3px}.table-labels,.lesson{display:grid;grid-template-columns:66px minmax(0,1fr);gap:16px;padding:17px 12px;align-items:start}.table-labels{font-size:.75rem;font-weight:650;letter-spacing:1px;padding:11px 12px;background:var(--navy);color:white}.lesson{border-bottom:1px solid var(--line);font-size:1rem;line-height:1.55;font-weight:500;overflow-wrap:anywhere}.lesson time{font-size:1rem;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}.lesson.break{background:#f4f6f9;color:var(--muted);font-size:.875rem;padding-block:11px;font-weight:400}.lesson.break time{font-size:.875rem;font-weight:500}.schedule-note{font-size:.75rem;line-height:1.5;color:var(--muted);margin:20px 0 0}
.empty-state{border-block:1px solid var(--line);padding:28px 0 32px;margin-top:8px}.empty-state h2{font-size:1rem;font-weight:600;margin:0 0 10px}.empty-state p{font-size:.9375rem;line-height:1.6;color:var(--muted);margin:0}
a:focus-visible,button:focus-visible{outline:3px solid #b28a00;outline-offset:3px}h1:focus{outline:none}
@media(max-width:540px){.page{border:0}header{padding:24px}.badge{max-width:76px}main{padding:0 24px}.welcome{padding:32px 0 26px}h1{font-size:1.75rem}.card{min-height:104px}.brand strong{font-size:1.75rem}footer{margin-inline:24px;flex-direction:column;padding-bottom:24px}.table-labels,.lesson{grid-template-columns:58px minmax(0,1fr);gap:12px;padding-inline:10px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.brand{display:flex;align-items:center;gap:14px}.school-logo{width:62px;height:62px;object-fit:contain;background:white;border-radius:3px;flex-shrink:0}footer .teacher-link{font-size:.8125rem;color:var(--muted);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}footer .teacher-link:hover{text-decoration:underline}.published-notice+ .published-notice{border-top:1px solid var(--line);margin-top:24px;padding-top:24px}.published-notice p{white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:400px){header{gap:8px}.school-logo{width:48px;height:48px}.brand{gap:10px}.brand strong{font-size:1.45rem}.badge{display:none}}
.room-select-label{display:block;font-size:1rem;font-weight:600;margin:0 0 24px}.room-select-label select{display:block;width:100%;min-width:0;max-width:100%;font:inherit;font-size:16px;font-weight:400;background:white;color:var(--navy);padding:14px 10px;margin-top:10px;border:1px solid #b4becc;border-radius:4px}select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #b28a00;outline-offset:2px}
