.tsched-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3) var(--space-4);margin:var(--space-3) 0 var(--space-4)}.tsched-field{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-sm);color:var(--text-muted)}.tsched-teachers{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);margin:0;padding:var(--space-2) var(--space-3);border:1px solid var(--border-rule);border-radius:var(--radius-sm)}.tsched-teachers legend{padding:0 var(--space-1);font-size:var(--text-sm);color:var(--text-muted)}.tsched-teacher{min-height:44px}.tsched-filter-actions{display:flex;align-items:center;gap:var(--space-4)}.tsched-weeknav{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-2) var(--space-5);margin-bottom:var(--space-4)}.tsched{display:flex;flex-direction:column;gap:var(--space-6)}.tsched-sheet{min-width:0}.tsched-sheet-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-1) var(--space-4);padding-bottom:var(--space-2);margin-bottom:var(--space-3);border-bottom:1px solid var(--border-rule)}.tsched-sheet-title{margin:0;font-family:var(--font-display);font-size:var(--text-lg);text-transform:uppercase}.tsched-sheet-sub{margin:0;color:var(--text-muted);font-size:var(--text-sm)}.tsched-sheet-actions{margin-left:auto;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);font-size:var(--text-sm)}.tsched-muted{color:var(--text-muted);font-weight:400}.tsched-ov-block,.tsched-wk-block{background:var(--telra-blue-050);border:1px solid var(--telra-blue);color:var(--text-strong)}.tsched-ov-block--cpcc,.tsched-wk-block--cpcc{background:var(--telra-orange-050);border-color:var(--telra-orange)}.tsched-ov-block--other,.tsched-wk-block--other{background:var(--surface-panel);border-color:var(--border-strong)}.tsched-ov-block--conflict,.tsched-wk-block--conflict{outline:2px solid var(--telra-orange-700);outline-offset:-2px}.tsched-ov-scroll{overflow-x:auto;--tsched-name-col:9rem}.tsched-ov{min-width:60rem;font-size:var(--text-2xs)}.tsched-ov--day{min-width:44rem;font-size:var(--text-sm)}.tsched-ov--day+.tsched-ov--day{margin-top:var(--space-3)}.tsched-ov-row{display:grid;border-bottom:1px solid var(--border-rule)}.tsched-ov-row--head{border-bottom:1px solid var(--border-strong)}.tsched-ov-name{display:flex;align-items:center;padding:var(--space-1) var(--space-2) var(--space-1) 0;font-size:var(--text-sm);min-width:0}.tsched-ov-row--head .tsched-ov-name{font-weight:var(--weight-semibold);color:var(--text-muted)}.tsched-ov-day{position:relative;height:2.25rem;border-left:2px solid var(--text-strong)}.tsched-ov-day--head{height:2.5rem;display:flex;flex-direction:column}.tsched-ov--day .tsched-ov-day--head{height:1.5rem}.tsched-ov--day .tsched-ov-day{border-left-width:1px}.tsched-ov-dayname{text-align:center;font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-label);padding-top:2px}.tsched-ov-ticks{position:relative;flex:1 1}.tsched-ov-tick{position:absolute;bottom:2px;padding-left:2px;color:var(--text-muted)}.tsched-ov-line{position:absolute;top:0;bottom:0;border-left:1px dotted var(--border-rule)}.tsched-ov-block{padding:0 3px;border-radius:var(--radius-xs);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.1}.tsched-ov-block,.tsched-ov-closed{position:absolute;display:flex;align-items:center}.tsched-ov-closed{inset:0;justify-content:center;color:var(--text-muted);font-style:italic}.tsched-legend{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-2);margin:var(--space-2) 0 0;font-size:var(--text-2xs);color:var(--text-muted)}.tsched-key{display:inline-block;width:12px;height:12px;margin-left:var(--space-2);border-radius:2px;border:1px solid var(--telra-blue);background:var(--telra-blue-050)}.tsched-key--cpcc{background:var(--telra-orange-050);border-color:var(--telra-orange)}.tsched-key--other{background:var(--surface-panel);border-color:var(--border-strong)}.tsched-key--conflict{background:transparent;border:2px solid var(--telra-orange-700)}.tsched-wk-scroll{overflow-x:auto}.tsched-wk{min-width:44rem}.tsched-wk-body,.tsched-wk-head{display:grid;grid-template-columns:3.5rem repeat(5,minmax(0,1fr))}.tsched-wk-dayname{padding:0 var(--space-2) var(--space-1);font-weight:var(--weight-bold);text-transform:uppercase;font-size:var(--text-sm)}.tsched-wk-body{height:34rem}.tsched-wk-day,.tsched-wk-hours{position:relative}.tsched-wk-day{border-left:1px solid var(--border-rule)}.tsched-wk-day:nth-child(odd){background:var(--surface-panel)}.tsched-wk-hour{position:absolute;right:var(--space-2);transform:translateY(-50%);font-size:var(--text-2xs);color:var(--text-muted);white-space:nowrap}.tsched-wk-line{position:absolute;left:0;right:0;border-top:1px solid var(--border-rule)}.tsched-wk-closed{top:var(--space-1);left:var(--space-2);right:var(--space-2);color:var(--text-muted);font-style:italic}.tsched-wk-block,.tsched-wk-closed{position:absolute;font-size:var(--text-2xs)}.tsched-wk-block{left:3px;right:3px;display:flex;flex-direction:column;gap:1px;padding:2px var(--space-1);border-radius:var(--radius-xs);overflow:hidden;text-decoration:none;line-height:1.2}.tsched-wk-block:hover{border-color:var(--telra-blue-700)}.tsched-wk-time{color:var(--text-muted)}.tsched-wk-label{font-weight:var(--weight-semibold);color:var(--telra-blue-700);font-size:var(--text-sm)}.tsched-wk-where{color:var(--text-muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@page tsched{size:letter landscape;margin:0}@media print{.tsched{display:block}.tsched-sheet{page:tsched}.tsched-sheet--teacher{page-break-inside:avoid;break-inside:avoid}.tsched-sheet+.tsched-sheet{page-break-before:always;break-before:page}.tsched-ov-scroll,.tsched-wk-scroll{overflow:visible}.tsched-ov,.tsched-wk{min-width:0}.tsched-sheet-title{font-size:18pt}.tsched-ov-scroll{--tsched-name-col:1.3in}.tsched-ov-name{display:block;align-self:center;font-size:9pt;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tsched-ov-name a{color:inherit;text-decoration:none}.tsched-ov-day{height:.42in}.tsched-ov-block{font-size:6.5pt}.tsched-ov--day{page-break-inside:avoid;break-inside:avoid;font-size:8pt}.tsched-ov--day+.tsched-ov--day{margin-top:.08in}.tsched-ov--day .tsched-ov-day,.tsched-ov--day .tsched-ov-day--head{height:.2in}.tsched-ov--day .tsched-ov-name{padding-top:0;padding-bottom:0}.tsched-ov--day .tsched-ov-block{font-size:7pt}.tsched-wk-body{height:6.4in}.tsched-wk-block{font-size:7pt}.tsched-wk-label{font-size:8.5pt;color:var(--text-strong)}html[data-tsched-print=one] .tsched-sheet:not(.tsched-print-target),html[data-tsched-print=overview] .tsched-sheet--teacher{display:none}html[data-tsched-print=one] .tsched-print-target{page-break-before:auto;break-before:auto}}:root{--text-muted:#5F6770;--action-primary:var(--telra-orange-700);--action-primary-hover:#A94F14;--action-primary-press:#8F420F;--telra-orange-100:#FBE1C9;--surface-muted:var(--telra-cream-deep);--text-base:var(--text-md)}body{background:var(--surface-page);color:var(--telra-ink);font-family:var(--font-sans);margin:0}:root{--schedule-telra-line:var(--telra-blue);--schedule-telra-fill:var(--telra-blue-050);--schedule-cpcc-line:#9AA22B;--schedule-cpcc-fill:#F5F7DC;--schedule-transit-line:var(--telra-orange-700);--schedule-transit-fill:var(--telra-orange-200);--schedule-other-line:var(--border-strong);--schedule-other-fill:var(--surface-panel);--schedule-tryon-line:var(--telra-ink-soft);--schedule-tryon-fill:var(--telra-cream-raised);--font-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace}input[type=checkbox],input[type=radio]{accent-color:var(--telra-blue)}main a:not([class]):not(:has(>span,>div)){color:var(--text-link);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}@media print{.no-print,header:not(.doc-head){display:none!important}body{background:#fff}main{padding:.4in!important}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{size:letter portrait;margin:0}.cal-print-header.print-only{display:flex!important;align-items:center;justify-content:space-between;gap:12pt;flex-wrap:wrap;margin-bottom:4pt}.cal-months{max-width:none!important;grid-template-columns:repeat(3,1fr)!important;gap:10pt 14pt!important}.cal-month-name{font-size:9.5pt!important;margin:0 0 2pt!important}.cal-weekday{font-size:6.5pt!important;padding-bottom:0!important}.cal-day{aspect-ratio:auto!important;height:17pt!important;font-size:7.5pt!important}.cal-legend{gap:8pt!important;font-size:6pt!important;margin:0!important;flex:0 1 auto;justify-content:flex-end}.cal-legend span[aria-hidden=true]{width:9pt!important;height:9pt!important;font-size:5.5pt!important}.cal-print-title{font-size:12pt;line-height:1.15;white-space:nowrap}.cal-print-subtitle{display:block;font-size:9pt;color:#4a535a}.cal-print-columns{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:4pt 16pt;gap:4pt 16pt;font-size:6.5pt;align-items:start;margin-top:14pt}.cal-print-head{font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:6pt;border-bottom:.5pt solid #d9ccb5;padding-bottom:1pt;margin-bottom:2pt}.cal-print-row{display:flex;gap:6pt;line-height:1.35}.cal-print-when{flex:0 0 6.4em;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700}.cal-day-codes{left:2pt!important;font-size:5.5pt!important}.cal-print-head-gap{margin-top:6pt}.cal-print-footer{margin-top:6pt;padding-top:3pt;border-top:.5pt solid #d9ccb5;font-size:6.5pt;line-height:1.35;white-space:pre-line}.print-keep-together{page-break-inside:avoid;break-inside:avoid}.print-only{display:block!important}}.hub-nav-checkbox{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.hub-nav-toggle{display:none}@media (max-width:767.98px){.hub-header{flex-wrap:wrap}.hub-nav-toggle{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) 0;cursor:pointer;font:700 var(--text-sm) var(--font-sans);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-strong);min-height:44px}.hub-nav-drawer{flex-basis:100%;order:3}.hub-nav-content{display:none;flex-direction:column;align-items:stretch;gap:var(--space-1);padding:var(--space-2) 0 var(--space-3);border-top:1px solid var(--border-rule);margin-top:var(--space-2)}.hub-nav-checkbox:checked~.hub-nav-drawer .hub-nav-content{display:flex}.hub-nav-content nav{flex-direction:column!important;align-items:stretch!important;flex-wrap:nowrap!important;gap:0!important}.hub-nav-content nav a{min-height:44px;display:flex;align-items:center}}@media (min-width:768px){.hub-nav-content,.hub-nav-drawer{display:flex;flex:1 1;align-items:center;min-width:0}.hub-nav-content{gap:var(--space-6)}}.login-screen{position:relative;min-height:100dvh;display:flex;overflow:hidden}.login-lattice{position:absolute;inset:0;width:100%;height:100%;display:block}.login-frame{position:absolute;inset:clamp(16px,2.4vmin,30px);border:1px solid var(--border-strong);pointer-events:none;z-index:1}.login-tick{position:absolute;width:13px;height:13px;border:0 solid var(--border-strong)}.login-tick.tl{top:-1px;left:-1px;border-top-width:2px;border-left-width:2px}.login-tick.tr{top:-1px;right:-1px;border-top-width:2px;border-right-width:2px}.login-tick.bl{bottom:-1px;left:-1px;border-bottom-width:2px;border-left-width:2px}.login-tick.br{bottom:-1px;right:-1px;border-bottom-width:2px;border-right-width:2px}.login-zones{position:absolute;display:flex;font-family:var(--font-mono);font-size:9px;font-weight:var(--weight-medium);letter-spacing:.1em;color:var(--text-muted)}.login-zones span{flex:1 1;text-align:center;position:relative}.login-zones.top{top:-15px;left:0;right:0}.login-zones.bottom{bottom:-15px;left:0;right:0}.login-zones.left,.login-zones.right{top:0;bottom:0;flex-direction:column;width:12px}.login-zones.left{left:-17px}.login-zones.right{right:-17px}.login-zones.left span,.login-zones.right span{display:flex;align-items:center;justify-content:center}.login-zones.bottom span:after,.login-zones.top span:after{content:"";position:absolute;left:0;width:1px;height:6px;background:var(--border-rule)}.login-zones.top span:after{bottom:-9px}.login-zones.bottom span:after{top:-9px}.login-zones.left span:after,.login-zones.right span:after{content:"";position:absolute;top:0;height:1px;width:6px;background:var(--border-rule)}.login-zones.left span:after{right:-11px}.login-zones.right span:after{left:-11px}.login-zones span:first-child:after{display:none}.login-titleblock{position:absolute;right:0;bottom:0;display:grid;grid-template-columns:repeat(3,minmax(84px,auto));border-left:1px solid var(--border-strong);border-top:1px solid var(--border-strong);background:var(--surface-page);font-family:var(--font-mono)}.login-tb{padding:7px 13px 8px;border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:3px}.login-tb:last-child{border-right:none}.login-tb-span2{grid-column:span 2}.login-tb-k{font-size:8.5px;font-weight:var(--weight-medium);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-muted)}.login-tb-v{font-size:11px;letter-spacing:.06em;color:var(--text-strong);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.login-tb-accent{color:var(--telra-orange-700)}.login-stamp{position:absolute;left:0;bottom:0;padding:8px 14px;border-right:1px solid var(--border-strong);border-top:1px solid var(--border-strong);background:var(--surface-page);font-family:var(--font-mono);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--text-muted)}.login-copy{position:relative;z-index:2;margin:auto 0;padding:clamp(48px,8vh,104px) clamp(30px,6vw,92px);width:min(max(660px,50vw),780px,100%);display:flex;flex-direction:column;gap:clamp(16px,2.6vh,34px)}.login-eyebrow{margin:0;display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:10.5px;font-weight:var(--weight-medium);letter-spacing:.18em;text-transform:uppercase;color:var(--telra-blue-700)}.login-eyebrow:after{content:"";flex:1 1;max-width:120px;height:1px;background:var(--border-rule)}.login-beta{display:flex;align-items:baseline;gap:var(--space-2);flex-wrap:wrap;margin:0;padding:var(--space-2) var(--space-3);border:1px solid var(--border-rule);border-left:3px solid var(--telra-blue-700);background:var(--surface-card);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text-body)}.login-beta-tag{font-family:var(--font-mono);font-size:9.5px;font-weight:var(--weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--telra-blue-700)}.login-headline{margin:0;font-family:var(--font-display);font-weight:var(--weight-bold);font-size:clamp(34px,min(4.4vw,6.6vh),62px);line-height:.98;letter-spacing:-.006em;color:var(--text-strong);text-wrap:balance;max-width:24ch}.login-accent{color:var(--telra-blue-700)}.login-actions{display:flex;flex-direction:column;gap:var(--space-3);align-items:flex-start}.login-button-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;padding:var(--space-3) var(--space-6);background:var(--action-primary);color:var(--text-on-color);font-family:var(--font-sans);font-weight:var(--weight-semibold);font-size:var(--text-md);border:none;cursor:pointer;transition:background .14s ease,transform .14s ease}.login-button-primary:hover:not(:disabled){background:var(--action-primary-hover);transform:translateY(-1px)}.login-button-primary:active:not(:disabled){transform:translateY(0)}.login-button-primary:disabled{opacity:.7;cursor:default}.login-button-primary svg{display:block}.login-button-quiet,.login-button-secondary{min-height:44px;padding:var(--space-2) var(--space-4);background:var(--surface-card);color:var(--text-strong);border:1px solid var(--border-strong);font-family:var(--font-sans);font-size:var(--text-sm);cursor:pointer}.login-button-quiet:hover,.login-button-secondary:hover:not(:disabled){border-color:var(--telra-blue)}.login-button-secondary:disabled{opacity:.7;cursor:default}.login-button-quiet{margin-top:var(--space-2);align-self:flex-start}.login-alt{margin:0;font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text-body)}.login-link{background:none;border:none;padding:0;font:inherit;color:var(--text-link);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.login-link:hover{text-decoration-thickness:2px}.login-tour{margin-top:calc(var(--space-2) * -1)}.login-parent{gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border-rule);width:100%;max-width:26rem}.login-parent,.login-parent-form{display:flex;flex-direction:column}.login-parent-form{gap:var(--space-1)}.login-parent-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.login-field-label{font-family:var(--font-mono);font-size:9.5px;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-muted)}.login-input{flex:1 1 12rem;min-width:0;min-height:44px;padding:var(--space-2) var(--space-3);background:var(--surface-card);border:1px solid var(--border-strong);font-family:var(--font-sans);font-size:var(--text-md);color:var(--text-strong)}.login-input:disabled{opacity:.7}.login-notice{border:1px solid var(--telra-orange-400);border-left-width:3px;background:var(--surface-card);padding:var(--space-3);max-width:30rem}.login-notice-label{margin:0 0 var(--space-1);font-family:var(--font-mono);font-size:9.5px;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--telra-orange-700)}.login-notice-body{margin:0;font-family:var(--font-sans);color:var(--text-strong)}.login-notice-detail{margin:var(--space-1) 0 0;color:var(--text-body)}.login-error,.login-notice-detail{font-family:var(--font-sans);font-size:var(--text-sm)}.login-error{margin:0;color:var(--telra-orange-700)}@media (max-width:860px){.login-zones.bottom,.login-zones.right{display:none}}@media (max-width:760px){.login-screen{align-items:flex-end}.login-copy{margin:0;padding-top:26vh;padding-bottom:84px;width:100%}.login-headline{max-width:22ch}.login-button-primary{width:100%}.login-zones{display:none}.login-titleblock{grid-template-columns:1.6fr repeat(3,1fr);left:0;right:0}.login-tb{padding:6px 10px 7px}.login-tb-span2{grid-column:auto}.login-tb:last-child{display:none}.login-tb:nth-last-child(2){border-right:none}.login-stamp{display:none}.login-parent{max-width:none}}@media (max-height:620px){.login-stamp,.login-titleblock{display:none}}