@font-face{font-family:Besley Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/besley-latin-ext-wght-normal-Dt3OBXk7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Besley Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/besley-latin-wght-normal-IX-hlgPH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-cyrillic-ext-wght-normal-CWLBgZ7J.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-cyrillic-wght-normal-DXI_y_WF.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-latin-ext-wght-normal-CnNj8hVb.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-latin-wght-normal-CUIqqgP9.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#fff;--paper-shade:#f3f6f6;--grid:#dbe4e9;--grid-faint:#edf2f4;--grid-note:#e1e9ed;--rule:#e2e8ea;--rule-strong:#c7d0d5;--ink:#355c4b;--ink-deep:#274536;--ink-tint:#e4ede8;--ink-line:#a9c3b6;--graphite:#23292c;--graphite-soft:#5a656b;--graphite-faint:#687379;--red-pen:#b3263a;--red-pen-tint:#fbebed;--red-pen-line:#efc2c9;--amber:#7a5500;--highlighter:#fbe27a;--highlighter-tint:#fdf4c7;--highlighter-line:#ecd57a;--highlighter-ink:#4a3b00;--info-tint:#edf3f6;--info-line:#cfdfe7;--info-ink:#24465a;--font-text:"Onest Variable", "Segoe UI", "Helvetica Neue", Arial, "Cambria Math", sans-serif;--font-display:"Besley Variable", Georgia, "Times New Roman", serif;--radius-control:6px;--radius-panel:8px;--shadow-overlay:0 18px 48px #17211e33, 0 2px 6px #17211e14;--page-pad:16px;--topbar-h:60px;--sticky-top:0px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-text);color:var(--graphite);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.5}body.dialog-open{overflow:hidden}h1,h2,h3{margin:0;line-height:1.2}h1{font-family:var(--font-display);letter-spacing:-.005em;font-size:1.75rem;font-weight:760}h2{font-size:1.125rem;font-weight:650}a{color:var(--ink);text-underline-offset:3px}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}code{background:var(--paper-shade);font-family:var(--font-text);border-radius:4px;padding:1px 5px;font-size:.95em;font-weight:600}sup,sub{line-height:0}.muted{color:var(--graphite-soft)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.is-empty{color:var(--graphite-faint);font-weight:400}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app{flex-direction:column;min-height:100dvh;display:flex}.demo-banner{background:var(--highlighter-tint);border-bottom:1px solid var(--highlighter-line);color:var(--highlighter-ink);text-align:center;padding:6px 16px;font-size:.875rem}.topbar{height:var(--topbar-h);padding:0 var(--page-pad);background:var(--paper);border-bottom:1px solid var(--rule);align-items:center;gap:16px;display:flex}.brand{border-radius:var(--radius-control);flex-shrink:0;align-items:center;display:inline-flex}.logo{width:auto;height:38px;display:block}.topnav{align-self:stretch;gap:4px;margin-left:28px;display:none}.topnav-link{color:var(--graphite-soft);white-space:nowrap;align-items:center;padding:0 12px;font-weight:600;text-decoration:none;display:flex;position:relative}.topnav-link:hover{color:var(--graphite)}.topnav-link[aria-current=page]{color:var(--ink)}.topnav-link[aria-current=page]:after{content:"";background:var(--ink);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:-1px;left:12px;right:12px}.topbar-user{min-width:0;color:var(--graphite-soft);white-space:nowrap;text-overflow:ellipsis;margin-left:auto;font-size:.875rem;overflow:hidden}.logout-button{min-height:40px;margin-left:auto;padding:6px 12px}.topbar-user+.logout-button{margin-left:-8px}.draft-banner{background:var(--highlighter-tint);border-bottom:1px solid var(--highlighter-line);color:var(--highlighter-ink);flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 14px;padding:8px 16px;font-size:.9375rem;display:flex}.main{padding-bottom:calc(80px + env(safe-area-inset-bottom));flex:1}.bottomnav{z-index:30;padding-bottom:env(safe-area-inset-bottom);background:var(--paper);border-top:1px solid var(--rule);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottomnav-link{color:var(--graphite-soft);text-align:center;flex-direction:column;align-items:center;gap:3px;padding:9px 4px 10px;font-size:.75rem;font-weight:600;line-height:1.25;text-decoration:none;display:flex;position:relative}.bottomnav-link svg{stroke-width:1.75px}.bottomnav-link[aria-current=page]{color:var(--ink)}.bottomnav-link[aria-current=page]:before{content:"";background:var(--ink);border-radius:0 0 3px 3px;width:32px;height:3px;margin-left:-16px;position:absolute;top:-1px;left:50%}@media (width>=900px){:root{--page-pad:32px;--topbar-h:64px;--sticky-top:var(--topbar-h)}.topbar{z-index:30;position:sticky;top:0}.topnav{display:flex}.brand .logo{height:42px}.bottomnav{display:none}.main{padding-bottom:64px}}@media (width>=900px) and (width<=1099px){:root{--page-pad:24px}.topnav{margin-left:16px}.topnav-link{padding:0 10px}.topnav-link[aria-current=page]:after{left:10px;right:10px}.topbar-user{display:none}.topbar-user+.logout-button{margin-left:auto}}.splash{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:100dvh;padding:24px;display:flex}.splash .logo{height:60px}.page{max-width:760px;padding:28px var(--page-pad) 32px;margin:0 auto}.page-wide{max-width:1240px}.page-header{margin:0 0 24px}.page-header-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 16px;display:flex}.page-subtitle{color:var(--graphite-soft);margin:6px 0 0}.page-back{margin:-10px 0 14px}.back-button{min-height:36px;color:var(--ink);cursor:pointer;background:0 0;border:none;align-items:center;gap:2px;padding:4px 8px 4px 0;font-weight:600;text-decoration:none;display:inline-flex}.back-button:hover{text-decoration:underline}.back-button svg{width:18px;height:18px}.list-section{margin-top:40px}.page-header+.list-section{margin-top:0}.section-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.section-hint{max-width:62ch;color:var(--graphite-soft);margin:-4px 0 12px;font-size:.9375rem}.list-empty{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:0;padding:14px 0}.empty-state{border-top:1px solid var(--rule);padding:20px 0 24px}.empty-title{margin:0 0 4px;font-size:1.0625rem;font-weight:650}.empty-text{max-width:52ch;color:var(--graphite-soft);margin:0}.empty-action{margin-top:14px}.loading{color:var(--graphite-soft);align-items:center;gap:10px;padding:24px 0;display:flex}.spinner{border:2px solid var(--grid);border-top-color:var(--ink);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.button{border:1px solid var(--rule-strong);border-radius:var(--radius-control);background:var(--paper);min-height:44px;color:var(--graphite);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:9px 18px;font-weight:600;line-height:1.2;text-decoration:none;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.button:hover{background:var(--paper-shade);border-color:var(--graphite-faint)}.button:active{background:var(--grid-faint)}.button:disabled{opacity:.55;cursor:default}.button svg{flex-shrink:0}.button-primary{background:var(--ink);border-color:var(--ink);color:#fff}.button-primary:hover{background:var(--ink-deep);border-color:var(--ink-deep)}.button-primary:active{background:#1e372b}.button-warn{background:var(--amber);border-color:var(--amber);color:#fff}.button-warn:hover{background:#604300;border-color:#604300}.button-danger{background:var(--red-pen);border-color:var(--red-pen);color:#fff}.button-danger:hover{background:#93202f;border-color:#93202f}.button-subtle{color:var(--graphite-soft);background:0 0;border-color:#0000}.button-subtle:hover{background:var(--paper-shade);color:var(--graphite);border-color:#0000}.button-subtle-danger{color:var(--red-pen);background:0 0;border-color:#0000}.button-subtle-danger:hover{background:var(--red-pen-tint);border-color:#0000}.button-small{min-height:36px;padding:6px 12px;font-size:.9375rem}.button-block{width:100%}.button-row{flex-wrap:wrap;gap:8px;display:flex}.icon-button{border-radius:var(--radius-control);width:40px;height:40px;color:var(--graphite-soft);cursor:pointer;background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{background:var(--paper-shade);color:var(--graphite)}.link-button{color:var(--ink);font-size:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline;text-decoration-thickness:1px}.link-button:hover{text-decoration-thickness:2px}.form{flex-direction:column;gap:18px;display:flex}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>label,.field-label-row label{font-size:.9375rem;font-weight:600}.field-label-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;display:flex}.optional{color:var(--graphite-soft);margin-left:4px;font-size:.875rem;font-weight:400}.field-hint{color:var(--graphite-soft);font-size:.875rem}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.schedule-fields{flex-direction:column;gap:18px;display:flex}input[type=text],input[type=email],input[type=search],input[type=password],input[type=date],input[type=time],select,textarea{border:1px solid var(--rule-strong);border-radius:var(--radius-control);background:var(--paper);width:100%;min-height:44px;padding:10px 12px;font-size:16px}textarea{resize:none;line-height:1.5;display:block;overflow:hidden}input::placeholder,textarea::placeholder{color:var(--graphite-faint);opacity:1}input:hover,select:hover,textarea:hover{border-color:var(--graphite-faint)}input:focus,select:focus,textarea:focus{border-color:var(--ink);outline:none;box-shadow:0 0 0 3px #355c4b2e}.lesson-sections textarea,.lesson-sections input[type=text],.student-note textarea{background-color:var(--paper);background-image:linear-gradient(to bottom, var(--grid-note) 1px, transparent 1px), linear-gradient(to right, var(--grid-note) 1px, transparent 1px);background-position:0 0;background-size:12px 12px;background-attachment:local;padding:7px 12px 5px;line-height:24px}.lesson-sections input[type=text]{background-position:0 4px;height:48px;padding-top:0;padding-bottom:0}.checkbox-row{cursor:pointer;align-items:flex-start;gap:10px;margin-top:14px;display:flex}.checkbox-row input{width:20px;height:20px;accent-color:var(--ink);margin:2px 0 0}.search-field{margin-bottom:16px;position:relative}.search-field svg{color:var(--graphite-faint);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-field input{padding-left:40px}.notice{border-radius:var(--radius-panel);border:1px solid;align-items:flex-start;gap:10px;margin:14px 0;padding:12px 14px;font-size:.9375rem;display:flex}.notice p{margin:0 0 8px}.notice p:last-child{margin-bottom:0}.notice>svg{flex-shrink:0;margin-top:2px}.notice-warn,.notice-demo{background:var(--highlighter-tint);border-color:var(--highlighter-line);color:var(--highlighter-ink)}.notice-error{background:var(--red-pen-tint);border-color:var(--red-pen-line);color:#7a1b28}.notice-info{background:var(--info-tint);border-color:var(--info-line);color:var(--info-ink)}.notice-muted{background:var(--paper-shade);border-color:var(--rule);color:var(--graphite-soft)}.conflict-list{margin:4px 0 8px;padding-left:18px}.confirm-message p{margin:0 0 8px}.status{white-space:nowrap;font-size:.875rem;font-weight:650}.status-planned,.status-cancelled{color:var(--graphite-soft)}.status-completed{color:var(--ink)}.status-overdue{color:var(--red-pen)}.chip{color:var(--graphite-soft)}.chip-muted{color:var(--amber);font-weight:600}.tag{background:var(--highlighter);color:var(--highlighter-ink);border-radius:2px;padding:0 5px;font-size:.8125rem;font-weight:650;line-height:1.5;display:inline-block}.lesson-list{border-top:1px solid var(--rule);margin:0 -12px}.lesson-row{border-bottom:1px solid var(--rule);min-height:64px;color:inherit;align-items:flex-start;gap:16px;padding:13px 12px 14px;text-decoration:none;display:flex}.lesson-row:hover{background:var(--paper-shade)}.lesson-when{font-variant-numeric:tabular-nums;flex-direction:column;flex-shrink:0;min-width:58px;display:flex}.lesson-when:has(.lesson-date){min-width:84px}.lesson-date{color:var(--ink);white-space:nowrap;font-size:.8125rem;font-weight:650}.lesson-time{font-size:1.125rem;font-weight:700;line-height:1.3}.lesson-end{color:var(--graphite-soft);font-size:.875rem}.lesson-main{flex:1;min-width:0}.lesson-title{flex-wrap:wrap;align-items:baseline;gap:2px 10px;display:flex}.lesson-title strong{font-weight:650}.lesson-level{color:var(--graphite-soft);font-size:.9375rem}.lesson-topic{overflow-wrap:anywhere;margin-top:2px}.lesson-cancelled .lesson-time,.lesson-cancelled .lesson-title strong,.lesson-cancelled .lesson-topic{color:var(--graphite-soft);text-decoration:line-through}.lesson-notes{flex-direction:column;gap:4px;margin:8px 0 0;font-size:.9375rem;display:flex}.lesson-notes>div{gap:6px;display:flex}.lesson-notes dt{color:var(--graphite-soft);white-space:nowrap}.lesson-notes dt:after{content:":"}.lesson-notes dd{white-space:pre-wrap;overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.student-list{border-top:1px solid var(--rule);margin:0 -12px;padding:0;list-style:none}.student-list li{border-bottom:1px solid var(--rule)}.student-row{min-height:64px;color:inherit;justify-content:space-between;align-items:center;gap:4px 16px;padding:12px;text-decoration:none;display:flex}.student-row:hover{background:var(--paper-shade)}.student-row-main{flex-direction:column;min-width:0;display:flex}.student-row-main strong{font-size:1.0625rem;font-weight:650}.student-row-main .muted{text-overflow:ellipsis;white-space:nowrap;font-size:.9375rem;overflow:hidden}.student-row-side{font-variant-numeric:tabular-nums;text-align:right;flex-shrink:0;font-size:.9375rem}.archive-link{margin-top:20px;font-weight:600;display:inline-block}.student-header{padding-bottom:4px}.student-header-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.student-meta{flex-wrap:wrap;gap:4px 12px;margin:6px 0 0;display:flex}.student-facts{gap:12px;margin:20px 0 0;display:grid}.student-facts dd{overflow-wrap:anywhere}.student-facts dt{color:var(--graphite-soft);font-size:.875rem;font-weight:600}.student-facts dd{margin:2px 0 0}.student-note{margin-top:20px}.danger-zone{border-top:1px solid var(--rule);margin-top:48px;padding-top:16px}.danger-zone .button{margin-left:-12px}.danger-zone p{margin:4px 0 0;font-size:.875rem}.danger-action+.danger-action{margin-top:20px}@media (width<=560px){.student-row{flex-wrap:wrap}.student-row-side{text-align:left;width:100%}}.save-status{align-items:center;gap:6px;min-height:28px;font-size:.875rem;font-weight:600;display:inline-flex}.save-status-saving,.save-status-idle{color:var(--graphite-soft)}.save-status-idle{font-weight:400}.save-status-saved{color:var(--ink)}.save-status-error{color:var(--red-pen);flex-wrap:wrap}.save-status-hint{font-weight:400}.lesson-topbar{top:var(--sticky-top);z-index:10;margin:-28px calc(-1 * var(--page-pad)) 18px;padding:6px var(--page-pad);background:var(--paper);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky}.lesson-header{padding-bottom:4px}.lesson-student-line{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.lesson-student{color:var(--graphite);font-size:1.0625rem;font-weight:650;text-decoration:none}.lesson-student:hover{color:var(--ink);text-decoration:underline}.lesson-date-title{margin-top:6px;font-size:1.875rem}.lesson-meta{color:var(--graphite-soft);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:6px 0 0;display:flex}.lesson-actions{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}@media (width<=560px){.lesson-date-title{font-size:1.625rem}.lesson-actions .button{white-space:nowrap;flex:auto}.lesson-actions .button-primary{flex-basis:100%}}.ref-box{background:var(--paper-shade);border-radius:var(--radius-panel);margin:22px 0;padding:12px 16px;font-size:.9375rem}.ref-box-muted{color:var(--graphite-soft)}.ref-box summary{cursor:pointer;flex-wrap:wrap;align-items:baseline;gap:2px 10px;list-style:none;display:flex}.ref-box summary::-webkit-details-marker{display:none}.ref-box summary:before{content:"";border-top:4px solid #0000;border-bottom:4px solid #0000;border-left:6px solid var(--graphite-soft);align-self:center;width:0;height:0;transition:transform .15s}.ref-box[open] summary:before{transform:rotate(90deg)}.ref-title{color:var(--graphite);font-weight:650}.ref-meta{color:var(--graphite-soft)}.ref-list{gap:4px;margin:10px 0 0;display:grid}.ref-list dt{color:var(--graphite-soft);font-weight:600;display:inline}.ref-list dt:after{content:": "}.ref-list dd{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;display:inline}.ref-link{margin-top:10px;font-size:.875rem;font-weight:600;display:inline-block}.lesson-sections{gap:32px;margin-top:26px;display:grid}.note-section{flex-direction:column;gap:16px;display:flex}.note-section h2{border-bottom:1px solid var(--rule);padding-bottom:8px;font-size:1.1875rem}.field-conflict{background:var(--highlighter-tint);border:1px solid var(--highlighter-line);border-radius:var(--radius-control);color:var(--highlighter-ink);padding:10px 12px;font-size:.9375rem}.field-conflict p{margin:0}.field-conflict blockquote{background:var(--paper);color:var(--graphite);white-space:pre-wrap;border-radius:4px;margin:6px 0 10px;padding:8px 10px}@media (width>=1000px){.lesson-page{max-width:1120px}.lesson-sections{grid-template-columns:1fr 1fr;align-items:start;gap:40px}}.dialog-backdrop{z-index:50;background:#1c26236b;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{background:var(--paper);width:100%;max-width:560px;max-height:calc(100dvh - 32px);box-shadow:var(--shadow-overlay);border-radius:12px;outline:none;flex-direction:column;display:flex}.dialog-small{max-width:440px}.dialog-header{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:12px;padding:14px 12px 12px 22px;display:flex}.dialog-header h2{font-size:1.1875rem;font-weight:700}.dialog-body{flex:1;padding:18px 22px 22px;overflow-y:auto}.dialog-footer{border-top:1px solid var(--rule);flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:12px 22px;display:flex}.dialog .empty-state{border-top:0;padding-top:0}@media (width<=640px){.dialog-backdrop{align-items:stretch;padding:0}.dialog{border-radius:0;max-width:none;height:100%;max-height:none}.dialog-small{border-radius:12px;height:auto;max-height:calc(100dvh - 24px);margin:auto 12px}.dialog-header{padding-left:16px}.dialog-body{padding:16px}.dialog-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.dialog-footer .button{flex:1}}.toast-region{left:0;right:0;bottom:calc(84px + env(safe-area-inset-bottom));z-index:60;pointer-events:none;justify-content:center;padding:0 12px;display:flex;position:fixed}.toast{background:var(--graphite);border-radius:var(--radius-panel);max-width:560px;box-shadow:var(--shadow-overlay);color:#fff;pointer-events:auto;align-items:center;gap:12px;padding:10px 8px 10px 16px;animation:.18s ease-out toast-in;display:flex}.toast-error{background:#7a1b28}.toast-action{color:var(--highlighter);white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:6px 10px;font-weight:700}.toast-action:hover{background:#ffffff1a}.toast-close{color:#ffffffb3;cursor:pointer;background:0 0;border:none;padding:0 8px;font-size:1.3rem;line-height:1}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}}@media (width>=900px){.toast-region{bottom:24px}}.calendar-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin-bottom:14px;display:flex}.calendar-nav{align-items:center;gap:2px;display:flex}.calendar-label{font-variant-numeric:tabular-nums;margin-left:8px;font-size:1.0625rem;font-weight:650}.calendar-tools{align-items:center;gap:8px;margin-left:auto;display:flex}.segmented{border-bottom:1px solid var(--rule);gap:2px;display:inline-flex}.segmented button{min-height:38px;color:var(--graphite-soft);cursor:pointer;background:0 0;border:none;padding:6px 12px;font-weight:600}.segmented button:hover{color:var(--graphite)}.segmented button[aria-pressed=true]{color:var(--ink);box-shadow:inset 0 -3px 0 var(--ink)}.day-strip{border:1px solid var(--grid);border-radius:var(--radius-control);grid-template-columns:repeat(7,1fr);margin-bottom:18px;display:grid;overflow:hidden}.day-chip{border:0;border-left:1px solid var(--grid);background:var(--paper);min-height:64px;color:var(--graphite-soft);cursor:pointer;flex-direction:column;align-items:center;gap:1px;padding:7px 0 5px;font-size:.75rem;display:flex}.day-chip:first-child{border-left:0}.day-chip strong{color:var(--graphite);font-variant-numeric:tabular-nums;border-radius:2px;padding:0 4px;font-size:1.0625rem;line-height:1.3}.day-chip.is-today strong{background:var(--highlighter);color:var(--highlighter-ink)}.day-chip[aria-pressed=true]{background:var(--ink);color:#dfe9e4}.day-chip[aria-pressed=true]:not(.is-today) strong,.day-chip[aria-pressed=true] .day-dot{color:#fff}.day-dot{height:12px;color:var(--ink);letter-spacing:1px;line-height:12px}.week-list{flex-direction:column;gap:6px;display:flex}.week-list .lesson-list{margin-bottom:10px}.day-group-head{align-items:center;gap:8px;min-height:44px;display:flex}.day-group-head h2{flex:1;align-items:baseline;gap:10px;font-size:1rem;display:flex}.day-relative{color:var(--graphite-soft);font-size:.875rem;font-weight:500}.day-group.is-today .day-relative{background:var(--highlighter);color:var(--highlighter-ink);border-radius:2px;padding:0 5px;font-weight:650}.day-none{color:var(--graphite-faint);font-size:.875rem}.day-group:not(.is-today) .day-group-head:has(.day-none) h2{color:var(--graphite-soft);font-weight:600}.day-empty{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:0;padding:12px 0;font-size:.9375rem}.week-grid{background:var(--paper);border:1px solid var(--grid);border-radius:var(--radius-panel);overflow:clip}.week-grid-hint{border-bottom:1px solid var(--grid);margin:0;padding:8px 14px;font-size:.875rem}.wg-head,.wg-body{grid-template-columns:56px repeat(7,minmax(0,1fr));display:grid}.wg-head{top:var(--sticky-top);z-index:5;background:var(--paper);border-bottom:1px solid var(--grid);position:sticky}.wg-dayhead{border-left:1px solid var(--grid);color:var(--graphite-soft);justify-content:center;align-items:baseline;gap:6px;padding:9px 4px;font-size:.875rem;display:flex}.wg-dayhead strong{color:var(--graphite);font-variant-numeric:tabular-nums;border-radius:2px;padding:0 5px;font-size:1.0625rem}.wg-dayhead.is-today{color:var(--graphite)}.wg-dayhead.is-today strong{background:var(--highlighter);color:var(--highlighter-ink)}.wg-body,.wg-hours{position:relative}.wg-hours span{color:var(--graphite-soft);font-variant-numeric:tabular-nums;font-size:.75rem;position:absolute;right:8px;transform:translateY(-50%)}.wg-hours span:first-child{transform:none}.wg-day{border-left:1px solid var(--grid);background-color:var(--paper);background-image:linear-gradient(to bottom, var(--grid) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-faint) 1px, transparent 1px), linear-gradient(to right, var(--grid-faint) 1px, transparent 1px);cursor:pointer;background-size:100% 60px,15px 15px,15px 15px;position:relative;overflow:hidden}.wg-day:hover{background-color:#fafcfc}.wg-day.is-today{background-color:#fffcee}.wg-lesson{background:var(--ink-tint);border:1px solid var(--ink-line);color:var(--graphite);border-radius:4px;flex-direction:column;padding:2px 6px;font-size:13px;line-height:16px;text-decoration:none;display:flex;position:absolute;overflow:hidden}.wg-lesson:hover{z-index:2;border-color:var(--ink);box-shadow:0 4px 12px #17211e24}.wg-lesson.lesson-completed{background:var(--paper);border-color:var(--rule-strong);color:var(--graphite-soft)}.wg-lesson.lesson-completed .wg-time{color:var(--ink)}.wg-lesson.lesson-cancelled{background:repeating-linear-gradient(135deg, #f3f6f7 0 4px, var(--paper) 4px 8px);border-color:var(--rule);color:var(--graphite-faint);text-decoration:line-through}.wg-time{font-variant-numeric:tabular-nums;font-weight:700}.wg-name{text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;font-weight:600;overflow:hidden}.wg-topic{color:var(--graphite-soft);overflow-wrap:anywhere;-webkit-box-orient:vertical;flex-shrink:0;display:-webkit-box;overflow:hidden}.wg-now{background:var(--red-pen);pointer-events:none;height:2px;position:absolute;left:0;right:0}.wg-now:before{content:"";background:var(--red-pen);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-4px}.login-page{justify-content:center;align-items:center;min-height:100dvh;padding:32px 16px;display:flex}.login-card{width:100%;max-width:380px}.login-brand{margin-bottom:30px}.login-brand .logo{height:58px}.login-card h1{margin-bottom:18px;font-size:1.625rem}.email-kind{margin-bottom:16px}.email-month{flex-wrap:wrap;align-items:center;gap:2px 10px;margin:-4px 0 14px;display:flex}.email-month .icon-button:first-child{margin-left:-8px}.email-month-label{font-size:1.0625rem;font-weight:650}.email-recipients{border:0;margin:0 0 16px;padding:0}.email-recipients legend{padding:0;font-size:.9375rem;font-weight:600}.email-recipients .checkbox-row{overflow-wrap:anywhere;margin-top:8px}.email-recipient-label{font-weight:600}.email-missing{color:var(--amber);margin:6px 0 0;font-size:.9375rem}.email-preview{border:1px solid var(--rule);border-radius:var(--radius-panel)}.email-subject{border-bottom:1px solid var(--rule);flex-wrap:wrap;align-items:baseline;gap:2px 10px;padding:10px 14px;display:flex}.email-subject-label{color:var(--graphite-soft);font-size:.875rem;font-weight:600}.email-subject-text{flex:1;min-width:12ch;font-weight:600}.email-body{white-space:pre-wrap;overflow-wrap:anywhere;padding:12px 14px 14px;font-size:.9375rem}.email-signature{margin-top:16px}.email-signature summary{cursor:pointer;color:var(--graphite-soft);font-size:.9375rem}.email-signature summary:hover{color:var(--graphite)}.email-signature .field{margin-top:8px}.email-alt{color:var(--graphite-soft);margin:14px 0 0;font-size:.875rem}.mail-list{border-top:1px solid var(--rule);margin:0 -12px;padding:0;list-style:none}.mail-row{border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:12px;display:flex}.mail-row-main{gap:1px;min-width:0;display:grid}.mail-row-name{flex-wrap:wrap;align-items:baseline;gap:2px 10px;display:flex}.mail-row-name a{color:var(--graphite);font-size:1.0625rem;font-weight:650;text-decoration:none}.mail-row-name a:hover{color:var(--ink);text-decoration:underline}.mail-to{color:var(--graphite-soft);overflow-wrap:anywhere;font-size:.9375rem}.mail-to.is-missing{color:var(--amber)}.mail-count{font-variant-numeric:tabular-nums;font-size:.9375rem}.mail-row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mail-opened{color:var(--ink);font-size:.875rem;font-weight:600}.guide .page-header{margin-bottom:18px}.guide-search{max-width:560px}.guide-groups{max-width:100%;display:flex;overflow-x:auto}.guide-groups button{white-space:nowrap;flex:none}.guide-chips{flex-wrap:wrap;gap:6px;margin:14px 0 18px;display:flex}.guide-chip{border:1px solid var(--rule-strong);border-radius:var(--radius-control);background:var(--paper);cursor:pointer;min-height:36px;padding:6px 12px;font-size:.9375rem;font-weight:600}.guide-chip:hover{border-color:var(--graphite-faint)}.guide-chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.guide-info{margin:0 0 22px}.guide-badges{flex-wrap:wrap;align-items:center;gap:6px 18px;font-size:.9375rem;display:flex}.guide-program{align-items:center;gap:8px;font-weight:650;display:inline-flex}.guide-program:before{content:"";border:1.5px solid var(--ink);background:var(--ink);flex-shrink:0;width:10px;height:10px}.guide-program.is-previous:before{border-color:var(--graphite-soft);background:0 0}.guide-fact{color:var(--graphite-soft)}.guide-fact.is-prep{color:var(--amber);font-weight:600}.guide-fact.is-official{color:var(--ink);font-weight:600}.guide-label{color:var(--graphite-soft);margin:0;font-size:.875rem;font-weight:650}.guide-scope{background:var(--highlighter-tint);border:1px solid var(--highlighter-line);border-radius:var(--radius-control);color:var(--highlighter-ink);align-items:flex-start;gap:8px;margin:12px 0 0;padding:9px 12px;font-size:.9375rem;display:flex}.guide-scope svg{flex-shrink:0;margin-top:3px}.guide-short{color:var(--graphite-soft);margin:12px 0 0;font-size:.9375rem}.guide-short .guide-label{color:var(--graphite)}.guide-short p{max-width:72ch;margin:2px 0 0}.guide-short p+p{margin-top:6px}.guide-short summary{cursor:pointer;list-style:none}.guide-short summary::-webkit-details-marker{display:none}.guide-more{color:var(--ink);text-underline-offset:3px;white-space:nowrap;font-weight:600;text-decoration:underline}.guide-source{margin:12px 0 0}.guide-source-body{gap:14px;margin-top:12px;display:grid}.guide-source-body p{margin:0}.guide-source-title{font-weight:600}.guide-basis{margin-top:8px}.guide-basis blockquote{border-left:2px solid var(--grid);color:var(--graphite);margin:4px 0 0;padding-left:12px}.guide-list ul{margin:0;padding:0;list-style:none}.guide-list-heading{color:var(--graphite-soft);margin:0;padding:14px 0 6px;font-size:.8125rem;font-weight:650}.guide-item{border-radius:var(--radius-control);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:.9375rem;display:flex}.guide-item:hover{background:var(--paper-shade)}.guide-item[aria-current=true]{background:var(--ink-tint);color:var(--ink-deep)}.guide-item-text{flex-direction:column;flex:1;min-width:0;display:flex}.guide-item-code{color:var(--graphite-soft);font-variant-numeric:tabular-nums;font-size:.8125rem;font-weight:600}.guide-item[aria-current=true] .guide-item-code{color:var(--ink)}.guide-item-chevron{color:var(--graphite-faint);flex-shrink:0;transition:transform .15s}.guide-panes{border-top:1px solid var(--rule);grid-template-columns:minmax(240px,300px) minmax(0,1fr);align-items:start;display:grid}.guide-panes .guide-list{top:var(--sticky-top);max-height:calc(100vh - var(--sticky-top));scrollbar-color:var(--grid) transparent;scrollbar-width:thin;padding:6px 16px 16px 0;position:sticky;overflow-y:auto}.guide-panes .guide-item-chevron{display:none}.guide-pane{border-left:1px solid var(--rule);min-width:0;min-height:60vh;scroll-margin-top:calc(var(--sticky-top) + 12px);padding:22px 0 24px 32px}.guide-accordion .guide-list{border-top:1px solid var(--rule);margin:0 -12px}.guide-accordion .guide-list-heading{padding:16px 12px 6px}.guide-accordion li{border-bottom:1px solid var(--rule)}.guide-accordion .guide-item{border-radius:0;min-height:54px;padding:10px 12px;font-size:1rem}.guide-accordion li.is-open>.guide-item{background:var(--ink-tint);color:var(--ink-deep)}.guide-accordion li.is-open .guide-item-chevron{transform:rotate(90deg)}.guide-inline-detail{padding:14px 12px 20px}.guide-inline-detail .guide-detail-head h2{display:none}.guide-detail-head{gap:4px;margin-bottom:14px;display:grid}.guide-detail-head h2{font-size:1.375rem;font-weight:700;line-height:1.25}.guide-detail-meta{color:var(--graphite-soft);margin:0;font-size:.9375rem}.guide-code{color:var(--graphite-soft);font-variant-numeric:tabular-nums}.guide-page{white-space:nowrap;margin-left:6px;font-size:.875rem;font-weight:600}.guide-desc{max-width:72ch;margin:0 0 16px}.guide-block{margin:16px 0}.guide-bullets{margin:6px 0 0;padding-left:20px}.guide-keywords{max-width:80ch;margin:14px 0;font-size:.9375rem}.guide-keywords .guide-label{margin-right:4px;display:inline}.guide-exams{flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin:0 0 12px;display:flex}.guide-exam{border:1px solid var(--rule-strong);border-radius:4px;padding:0 7px;font-size:.8125rem;font-weight:650}.guide-outcomes-title{margin:26px 0 6px;font-size:1.0625rem}.guide-outcomes{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none}.guide-outcome{border-bottom:1px solid var(--rule);scroll-margin-top:calc(var(--sticky-top) + 16px);padding:14px 0 16px}.guide-outcome.is-focused{background:var(--highlighter-tint);margin:0 -12px;padding-left:12px;padding-right:12px}.guide-outcome-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.guide-outcome-head code{color:var(--ink);background:0 0;padding:0;font-weight:700}.guide-outcome-text{max-width:75ch;margin:6px 0 0;font-weight:550}.guide-sub,.guide-limits{margin-top:10px;font-size:.9375rem}.guide-limits{background:var(--info-tint);border-radius:var(--radius-control);color:var(--info-ink);padding:10px 12px}.guide-limits .guide-label{color:var(--info-ink)}.guide-plain{gap:3px;max-width:75ch;margin:3px 0 0;padding:0;list-style:none;display:grid}.guide-results-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.guide-results-head p{margin:0}.guide-result-list{border-top:1px solid var(--rule);margin:0 -12px;padding:0;list-style:none}.guide-result-list li{border-bottom:1px solid var(--rule)}.guide-result{text-align:left;cursor:pointer;background:0 0;border:0;gap:2px;width:100%;padding:12px;display:grid}.guide-result:hover{background:var(--paper-shade)}.guide-result-top{flex-wrap:wrap;align-items:baseline;gap:10px;font-size:.8125rem;display:flex}.guide-result-kind{color:var(--graphite-soft);font-weight:650}.guide-result-top code{color:var(--ink);background:0 0;padding:0;font-weight:700}.guide-result-text{max-width:80ch}.guide-result-detail,.guide-result-meta{color:var(--graphite-soft);font-size:.875rem}.guide-result-meta{flex-wrap:wrap;gap:2px 12px;display:flex}.guide-result-program{color:var(--graphite);font-weight:600}@media (width<=480px){.guide-groups button{padding:6px 10px;font-size:.9375rem}}
