.dash-shell{--tw-green:#4f8ef7;--tw-text-blue:#2f6fdc;--tw-text-green:#2f6fdc;--tw-text-yellow:#a86b00;--tw-text-coral:#d64545;--tw-soft:color-mix(in srgb, var(--pe-blue) 4%, var(--sd-card))}:root[data-theme=dark] .dash-shell{--tw-text-blue:#8fb6ff;--tw-text-green:#8fb6ff;--tw-text-yellow:#fcd34d;--tw-text-coral:#ff8f8f;--tw-soft:#ffffff08}.tw{gap:20px;width:100%;max-width:1240px;margin-inline:auto;display:grid}.tw-muted{color:var(--muted)}.tw-small{font-size:.8125rem}.tw-body{color:var(--pe-navy);margin:0;line-height:1.6}.tw-text--blue{color:var(--tw-text-blue)}.tw-text--green{color:var(--tw-text-green)}.tw-text--yellow{color:var(--tw-text-yellow)}.tw-text--coral{color:var(--tw-text-coral)}.tw-text--muted{color:var(--muted)}.tw-btn{cursor:pointer;font:inherit;white-space:nowrap;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:7px;min-height:40px;padding:0 16px;font-size:.875rem;font-weight:700;text-decoration:none;transition:background .15s,border-color .15s,transform .15s;display:inline-flex}.tw-btn:active{transform:translateY(1px)}.tw-btn:disabled{cursor:not-allowed;opacity:.55}.tw-btn--primary{background:var(--pe-blue);color:#fff}.tw-btn--primary:hover:not(:disabled){background:#3d7de8}.tw-btn--ghost{background:var(--sd-card);border-color:var(--sd-line);color:var(--pe-navy)}.tw-btn--ghost:hover:not(:disabled){border-color:color-mix(in srgb, var(--pe-blue) 45%, var(--sd-line));color:var(--tw-text-blue)}.tw-btn--sm{border-radius:8px;min-height:32px;padding:0 12px;font-size:.8125rem}.tw-btn--block{width:100%}.tw-btn:focus-visible,.tw-link:focus-visible,.tw-plain:focus-visible,.tw-icon-btn:focus-visible{outline:3px solid color-mix(in srgb, var(--pe-blue) 45%, transparent);outline-offset:2px}.tw-link,.tw-plain{color:var(--tw-text-blue);cursor:pointer;font:inherit;white-space:nowrap;background:0 0;border:0;align-items:center;gap:4px;padding:0;font-size:.8125rem;font-weight:700;display:inline-flex}.tw-plain{color:var(--pe-navy);font-size:inherit}.tw-plain:hover{color:var(--tw-text-blue)}.tw-link--danger{color:var(--tw-text-coral)}.tw-icon-btn{border:1px solid var(--sd-line);color:var(--pe-navy);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;font-size:1.125rem;display:inline-flex}.tw-icon-btn:hover{background:var(--tw-soft)}.tw-page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px;display:flex}.tw-page-head h1,.tw-profile-head h1{color:var(--pe-navy);letter-spacing:-.01em;margin:0 0 4px;font-size:clamp(1.4rem,2.6vw,1.85rem);font-weight:800}.tw-page-head p,.tw-profile-head p{color:var(--muted);margin:0}.tw-page-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tw-back{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;margin-bottom:6px;padding:0;font-size:.8125rem;font-weight:700}.tw-back:hover{color:var(--tw-text-blue)}.tw-grid{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);align-items:start;gap:18px;display:grid}.tw-grid--even{grid-template-columns:repeat(2,minmax(0,1fr))}.tw-col,.tw-stack{gap:18px;min-width:0;display:grid}.tw-card{background:var(--sd-card);border:1px solid var(--sd-line);box-shadow:var(--sd-soft);border-radius:16px;gap:14px;min-width:0;padding:clamp(16px,1.8vw,20px);display:grid}.tw-card-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.tw-card-head h2{color:var(--pe-navy);margin:0;font-size:1.125rem;font-weight:800}.tw-eyebrow{color:var(--muted);margin:0 0 2px;font-size:.8125rem;font-weight:700}.tw-card-foot{border-top:1px solid var(--sd-line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding-top:12px;display:flex}.tw-empty{color:var(--muted);text-align:center;place-items:center;gap:4px;padding:22px 12px;font-size:.875rem;display:grid}.tw-empty strong{color:var(--pe-navy)}.tw-empty-icon{background:var(--tw-soft);color:var(--muted);border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:4px;display:inline-flex}.tw-progress{gap:6px;min-width:0;display:grid}.tw-progress-label{color:var(--muted);justify-content:space-between;align-items:baseline;font-size:.8125rem;font-weight:600;display:flex}.tw-progress-label strong{color:var(--pe-navy);font-size:.8125rem}.tw-progress-track{background:color-mix(in srgb, var(--pe-navy) 8%, transparent);border-radius:999px;height:8px;overflow:hidden}.tw-progress--sm .tw-progress-track{height:6px}.tw-progress-fill{border-radius:inherit;height:100%;transition:width .4s;display:block}.tw-progress-fill--blue{background:var(--pe-blue)}.tw-progress-fill--green{background:var(--tw-green)}.tw-progress-fill--yellow{background:var(--pe-yellow)}.tw-progress-fill--coral{background:var(--pe-coral)}.tw-progress-fill--muted{background:var(--muted)}.tw-pill{text-transform:capitalize;white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:.75rem;font-weight:700;display:inline-flex}.tw-pill--on-track,.tw-pill--green{background:color-mix(in srgb, var(--tw-green) 14%, var(--sd-card));color:var(--tw-text-green)}.tw-pill--attention,.tw-pill--yellow{background:color-mix(in srgb, var(--pe-yellow) 22%, var(--sd-card));color:var(--tw-text-yellow)}.tw-pill--behind,.tw-pill--coral{background:color-mix(in srgb, var(--pe-coral) 14%, var(--sd-card));color:var(--tw-text-coral)}.tw-pill--on-track,.tw-pill--attention,.tw-pill--behind{text-transform:none}.tw-pill--blue{background:color-mix(in srgb, var(--pe-blue) 13%, var(--sd-card));color:var(--tw-text-blue)}.tw-pill--muted{background:color-mix(in srgb, var(--pe-navy) 7%, var(--sd-card));color:var(--muted)}.tw-avatar{background:color-mix(in srgb, var(--pe-blue) 14%, var(--sd-card));color:var(--tw-text-blue);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.8125rem;font-weight:800;display:inline-flex}.tw-avatar--sm{width:28px;height:28px;font-size:.6875rem}.tw-avatar--lg{width:60px;height:60px;font-size:1.25rem}.tw-tabs{border-bottom:1px solid var(--sd-line);scrollbar-width:none;gap:4px;display:flex;overflow-x:auto}.tw-tabs::-webkit-scrollbar{display:none}.tw-tabs button{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;border-bottom:2px solid #0000;flex-shrink:0;align-items:center;gap:6px;margin-bottom:-1px;padding:10px 12px;font-size:.875rem;font-weight:700;display:inline-flex}.tw-tabs button:hover{color:var(--pe-navy)}.tw-tabs button.is-active{border-bottom-color:var(--pe-blue);color:var(--pe-navy)}.tw-tab-count{background:color-mix(in srgb, var(--pe-navy) 8%, transparent);color:var(--muted);border-radius:999px;padding:1px 7px;font-size:.75rem}.tw-tabs button.is-active .tw-tab-count{background:color-mix(in srgb, var(--pe-blue) 15%, transparent);color:var(--tw-text-blue)}.tw-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.tw-metrics--card{background:var(--sd-card);border:1px solid var(--sd-line);border-radius:16px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));padding:14px 18px}.tw-metric{gap:2px;display:grid}.tw-metric span{color:var(--muted);font-size:.75rem;font-weight:600}.tw-metric strong{color:var(--pe-navy);font-size:1.25rem;font-weight:800}.tw-metric strong.tw-text--green{color:var(--tw-text-green)}.tw-metric strong.tw-text--yellow{color:var(--tw-text-yellow)}.tw-metric strong.tw-text--coral{color:var(--tw-text-coral)}.tw-metric strong.tw-text--blue{color:var(--tw-text-blue)}.tw-session-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.tw-session{border:1px solid var(--sd-line);border-radius:16px;grid-template-columns:78px minmax(0,1fr) auto;align-items:start;gap:16px;padding:14px 16px;display:grid}.tw-session--live{background:color-mix(in srgb, var(--tw-green) 5%, var(--sd-card));border-color:color-mix(in srgb, var(--tw-green) 45%, var(--sd-line))}.tw-session--done{opacity:.65}.tw-session-time{border-right:1px solid var(--sd-line);gap:2px;padding-right:12px;display:grid}.tw-session-time strong{color:var(--pe-navy);font-size:1rem}.tw-session-time span{color:var(--muted);font-size:.75rem}.tw-session-body{gap:6px;min-width:0;display:grid}.tw-session-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tw-session-title h3{color:var(--pe-navy);margin:0;font-size:1rem;font-weight:800}.tw-session-meta{color:var(--muted);margin:0;font-size:.8125rem}.tw-session-topic{color:var(--pe-navy);margin:0;font-size:.875rem;font-weight:700}.tw-session-topic span{color:var(--muted);margin-right:4px;font-weight:600}.tw-session-topic small{color:var(--muted);font-weight:500}.tw-session-cta{text-align:center;place-items:stretch stretch;gap:6px;min-width:132px;display:grid}.tw-session-cta small{justify-content:center;align-items:center;gap:3px;font-size:.75rem;display:inline-flex}.tw-tag{border-radius:999px;padding:2px 8px;font-size:.6875rem;font-weight:800}.tw-tag--live{background:color-mix(in srgb, var(--tw-green) 16%, var(--sd-card));color:var(--tw-text-green)}.tw-tag--upcoming{background:color-mix(in srgb, var(--pe-blue) 12%, var(--sd-card));color:var(--tw-text-blue)}.tw-tag--done{background:color-mix(in srgb, var(--pe-navy) 7%, var(--sd-card));color:var(--muted)}.tw-mini-students,.tw-item-list,.tw-student-list,.tw-perf-list,.tw-subs,.tw-register,.tw-att-history,.tw-att-list,.tw-activity,.tw-notes{margin:0;padding:0;list-style:none;display:grid}.tw-mini-students li+li{border-top:1px solid var(--sd-line)}.tw-mini-students button{color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:10px 0;display:flex}.tw-mini-students button>span:first-child{gap:2px;min-width:0;display:grid}.tw-mini-students strong{color:var(--pe-navy);font-size:.875rem}.tw-mini-students small{color:var(--muted);font-size:.8125rem}.tw-mini-students button:hover strong{color:var(--tw-text-blue)}.tw-tree{gap:8px;margin:0;padding:0;list-style:none;display:grid}.tw-tree-module{border:1px solid var(--sd-line);border-radius:12px}.tw-tree-module.is-current{border-color:color-mix(in srgb, var(--pe-blue) 45%, var(--sd-line))}.tw-tree-head{color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:12px 14px;display:grid}.tw-tree-num{background:color-mix(in srgb, var(--pe-navy) 7%, var(--sd-card));color:var(--pe-navy);border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;font-size:.8125rem;font-weight:800;display:inline-flex}.is-completed>.tw-tree-head .tw-tree-num{background:color-mix(in srgb, var(--tw-green) 16%, var(--sd-card));color:var(--tw-text-green)}.is-current>.tw-tree-head .tw-tree-num{background:var(--pe-blue);color:#fff}.tw-tree-title{gap:2px;display:grid}.tw-tree-title strong{color:var(--pe-navy);font-size:.875rem}.tw-tree-title small{color:var(--muted);font-size:.75rem}.tw-chevron{color:var(--muted);transition:transform .18s}.tw-chevron.is-open{transform:rotate(180deg)}.tw-tree-topics{margin:0;padding:2px 14px 12px 15px;list-style:none;display:grid}.tw-tree-topics li{grid-template-columns:26px minmax(0,1fr);align-items:start;column-gap:14px;padding:7px 0;display:grid;position:relative}.tw-tree-topics li:before{background:color-mix(in srgb, var(--pe-navy) 14%, var(--sd-line));content:"";width:2px;position:absolute;top:33px;bottom:-7px;left:12px}.tw-tree-topics li:last-child:before{display:none}.tw-tree-topics li.is-completed:before{background:color-mix(in srgb, var(--tw-green) 55%, var(--sd-line))}.tw-tree-dot{background:var(--sd-card);border:2px solid color-mix(in srgb, var(--pe-navy) 22%, var(--sd-line));color:var(--muted);font-variant-numeric:tabular-nums;z-index:1;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:.75rem;font-weight:800;display:inline-flex;position:relative}.tw-tree-topics li.is-completed .tw-tree-dot{background:var(--tw-green);border-color:var(--tw-green);color:#fff}.tw-tree-topics li.is-current .tw-tree-dot,.tw-tree-topics li.has-class .tw-tree-dot{background:var(--pe-blue);border-color:var(--pe-blue);box-shadow:0 0 0 4px color-mix(in srgb, var(--pe-blue) 20%, transparent);color:#fff}.tw-tree-topic{color:var(--pe-navy);flex-wrap:wrap;align-items:center;gap:8px;padding-top:3px;font-size:.875rem;display:flex}.tw-tree-topics li.is-completed .tw-tree-topic{color:var(--muted)}.tw-tree-topics li.is-current .tw-tree-topic{font-weight:800}.tw-tree-flag{background:color-mix(in srgb, var(--pe-yellow) 22%, var(--sd-card));color:var(--tw-text-yellow);border-radius:999px;padding:1px 8px;font-size:.6875rem;font-style:normal;font-weight:800}.tw-tree-flag--now{background:color-mix(in srgb, var(--pe-blue) 13%, var(--sd-card));color:var(--tw-text-blue)}.tw-tree-work{color:var(--muted);grid-column:2;font-size:.75rem}.tw-toolbar{flex-wrap:wrap;gap:10px;display:flex}.tw-search{background:var(--sd-card);border:1px solid var(--sd-line);color:var(--muted);border-radius:12px;flex:240px;align-items:center;gap:8px;padding:0 12px;display:flex}.tw-search input{color:var(--pe-navy);font:inherit;background:0 0;border:0;outline:none;flex:1;min-height:40px}.tw-search:focus-within{border-color:var(--pe-blue)}.tw-toolbar select,.tw-select{background:var(--sd-card);border:1px solid var(--sd-line);color:var(--pe-navy);font:inherit;border-radius:12px;min-height:40px;padding:0 10px;font-size:.875rem}.tw-student-list{background:var(--sd-card);border:1px solid var(--sd-line);border-radius:16px;overflow:hidden}.tw-card .tw-student-list{border:0;border-radius:0}.tw-student-row+.tw-student-row{border-top:1px solid var(--sd-line)}.tw-student-row>button{color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;grid-template-columns:minmax(170px,1.1fr) minmax(0,2.4fr) minmax(130px,.9fr);align-items:center;gap:18px;width:100%;padding:12px 16px;display:grid}.tw-card .tw-student-row>button{padding-inline:0}.tw-student-row>button:hover{background:var(--tw-soft)}.tw-student-id{color:var(--pe-navy);align-items:center;gap:10px;min-width:0;display:flex}.tw-student-id>span{gap:1px;min-width:0;display:grid}.tw-student-id strong{color:var(--pe-navy);font-size:.875rem}.tw-student-id small{color:var(--muted);font-size:.75rem}.tw-student-metrics{grid-template-columns:minmax(90px,1.3fr) repeat(3,minmax(64px,auto));align-items:center;gap:14px;display:grid}.tw-stat-chip{gap:1px;display:grid}.tw-stat-chip small{color:var(--muted);font-size:.75rem}.tw-stat-chip strong{font-size:.875rem}.tw-student-status{justify-items:start;gap:3px;display:grid}.tw-student-status small{color:var(--muted);font-size:.75rem;line-height:1.3}.tw-profile-head{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.tw-profile-head>div:nth-child(2){flex:1;min-width:200px}.tw-profile-head>div:nth-child(2)>small{margin-top:4px;font-size:.75rem;display:block}.tw-profile-status{justify-items:end;gap:4px;display:grid}.tw-profile-status small{color:var(--muted);font-size:.8125rem}.tw-journey{gap:0;margin:4px 0 0;padding:0;list-style:none;display:grid}.tw-journey li{grid-template-columns:auto minmax(0,1fr);gap:12px;padding-bottom:14px;display:grid;position:relative}.tw-journey li:not(:last-child):before{background:var(--sd-line);content:"";width:2px;position:absolute;top:30px;bottom:0;left:13px}.tw-journey li>div{gap:4px;padding-top:3px;display:grid}.tw-journey strong{color:var(--pe-navy);font-size:.875rem}.tw-journey small{color:var(--muted);font-size:.8125rem}.tw-journey-dot{background:color-mix(in srgb, var(--pe-navy) 7%, var(--sd-card));color:var(--muted);z-index:1;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:.75rem;font-weight:800;display:inline-flex;position:relative}.tw-journey li.is-completed .tw-journey-dot{background:var(--tw-green);color:#fff}.tw-journey li.is-current .tw-journey-dot{background:var(--pe-blue);color:#fff}.tw-att-list li,.tw-activity li{border-bottom:1px solid var(--sd-line);justify-content:space-between;align-items:center;gap:12px;padding:9px 0;display:flex}.tw-att-list li:last-child,.tw-activity li:last-child{border-bottom:0}.tw-att-list span{color:var(--pe-navy);font-size:.875rem}.tw-activity li{justify-content:flex-start}.tw-activity li>span:nth-child(2){flex:1;gap:1px;display:grid}.tw-activity strong{color:var(--pe-navy);font-size:.875rem}.tw-activity small{color:var(--muted);font-size:.75rem}.tw-activity time{color:var(--muted);white-space:nowrap;font-size:.75rem}.tw-activity-icon{background:var(--tw-soft);color:var(--muted);border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.tw-note-form{justify-items:end;gap:8px;display:grid}.tw-note-form textarea,.tw-field input,.tw-field select,.tw-field textarea{background:var(--sd-card);border:1px solid var(--sd-line);color:var(--pe-navy);font:inherit;resize:vertical;border-radius:12px;width:100%;padding:9px 11px;font-size:.875rem}.tw-note-form textarea:focus,.tw-field input:focus,.tw-field select:focus,.tw-field textarea:focus{border-color:var(--pe-blue);outline:3px solid color-mix(in srgb, var(--pe-blue) 18%, transparent)}.tw-notes{gap:10px}.tw-notes li{background:color-mix(in srgb, var(--pe-yellow) 8%, var(--sd-card));border:1px solid color-mix(in srgb, var(--pe-yellow) 30%, var(--sd-line));border-radius:12px;padding:12px 14px}.tw-notes p{color:var(--pe-navy);margin:0 0 8px;font-size:.875rem;line-height:1.5}.tw-notes div{justify-content:space-between;align-items:center;display:flex}.tw-notes time{color:var(--muted);font-size:.75rem}.tw-item-list--card{background:var(--sd-card);border:1px solid var(--sd-line);border-radius:16px;overflow:hidden}.tw-item-row+.tw-item-row{border-top:1px solid var(--sd-line)}.tw-item-row>button,.tw-item-row>.tw-item-static{color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:12px 0;display:grid}.tw-item-list--card .tw-item-row>button{padding:13px 16px}.tw-item-row>button:hover{background:var(--tw-soft)}.tw-item-icon{background:color-mix(in srgb, var(--pe-blue) 11%, var(--sd-card));color:var(--tw-text-blue);border-radius:12px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.tw-item-icon--quiz{background:color-mix(in srgb, var(--pe-yellow) 20%, var(--sd-card));color:var(--tw-text-yellow)}.tw-item-main{gap:2px;min-width:0;display:grid}.tw-item-main strong{color:var(--pe-navy);font-size:.875rem}.tw-item-main small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;overflow:hidden}.tw-item-side{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;font-size:.8125rem;display:flex}.tw-subs li+li{border-top:1px solid var(--sd-line)}.tw-sub-row{grid-template-columns:minmax(150px,1.3fr) auto minmax(80px,1fr) auto;align-items:center;gap:12px;padding:10px 0;display:grid}.tw-sub-meta{color:var(--muted);align-items:baseline;gap:8px;font-size:.8125rem;display:flex}.tw-sub-meta strong{color:var(--pe-navy)}.tw-sub-feedback{color:var(--muted);margin:-4px 0 10px 38px;font-size:.8125rem;font-style:italic}.tw-subs li.is-open{background:var(--tw-soft);border-radius:12px;margin:4px -10px;padding:0 10px 12px}.tw-review{gap:10px;display:grid}.tw-answer{background:var(--tw-soft);border-left:3px solid var(--pe-blue);color:var(--pe-navy);white-space:pre-wrap;border-radius:8px;margin:0;padding:10px 12px;font-size:.875rem;font-weight:500}.tw-answer small{color:var(--muted);margin-bottom:4px;font-size:.75rem;font-weight:700;display:block}.tw-review-actions{justify-content:flex-end;gap:8px;display:flex}.tw-perf-bars{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 28px;display:grid}.tw-perf-list li+li{border-top:1px solid var(--sd-line)}.tw-perf-list button{color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;grid-template-columns:minmax(0,1.2fr) minmax(70px,1fr) 54px;align-items:center;gap:14px;width:100%;padding:10px 0;display:grid}.tw-perf-list button>span{gap:1px;min-width:0;display:grid}.tw-perf-list button>span strong{color:var(--pe-navy);font-size:.875rem}.tw-perf-list small{color:var(--muted);font-size:.75rem}.tw-perf-list button>strong{text-align:right;font-size:.875rem}.tw-table-wrap{overflow-x:auto}.tw-table{border-collapse:collapse;width:100%;font-size:.875rem}.tw-table th{border-bottom:1px solid var(--sd-line);color:var(--muted);text-align:left;white-space:nowrap;padding:8px 10px;font-size:.75rem;font-weight:700}.tw-table td{border-bottom:1px solid var(--sd-line);color:var(--pe-navy);vertical-align:middle;padding:10px}.tw-table tr:last-child td{border-bottom:0}.tw-table td small{color:var(--muted);font-size:.75rem;display:block}.tw-table td.tw-muted{color:var(--muted)}.tw-table td.tw-text--green{color:var(--tw-text-green);font-weight:700}.tw-table td.tw-text--yellow{color:var(--tw-text-yellow);font-weight:700}.tw-table td.tw-text--coral{color:var(--tw-text-coral);font-weight:700}.tw-register li{border-bottom:1px solid var(--sd-line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;display:flex}.tw-register li:last-child{border-bottom:0}.tw-register strong{color:var(--pe-navy);font-size:.875rem}.tw-segmented{background:var(--tw-soft);border:1px solid var(--sd-line);border-radius:12px;padding:3px;display:inline-flex}.tw-segmented button{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:8px;padding:5px 12px;font-size:.8125rem;font-weight:700}.tw-segmented button.is-active{background:var(--sd-card);box-shadow:0 1px 3px #0f1b2b1f}.tw-segmented button.is-present{color:var(--tw-text-green)}.tw-segmented button.is-late{color:var(--tw-text-yellow)}.tw-segmented button.is-absent{color:var(--tw-text-coral)}.tw-att-history li{border-bottom:1px solid var(--sd-line);grid-template-columns:minmax(120px,1fr) minmax(0,1.6fr) auto;align-items:center;gap:14px;padding:9px 0;display:grid}.tw-att-history li:last-child{border-bottom:0}.tw-att-name{color:var(--pe-navy);text-align:left;font-size:.875rem}.tw-att-dots{gap:5px;display:flex}.tw-att-dot{border-radius:4px;width:14px;height:14px;display:inline-block}.tw-att-dot.is-present{background:var(--tw-green)}.tw-att-dot.is-late{background:var(--pe-yellow)}.tw-att-dot.is-absent{background:var(--pe-coral)}.tw-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0;font-size:.75rem;display:flex}.tw-legend .tw-att-dot{width:10px;height:10px;margin-right:-6px}.tw-course-switch{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.tw-course-switch button{background:var(--sd-card);border:1px solid var(--sd-line);color:inherit;cursor:pointer;font:inherit;text-align:left;border-radius:16px;align-items:center;gap:12px;padding:12px 14px;display:flex}.tw-course-switch button>span:last-child{gap:2px;display:grid}.tw-course-switch strong{color:var(--pe-navy);font-size:.875rem}.tw-course-switch small{color:var(--muted);font-size:.75rem}.tw-course-switch button.is-active{border-color:var(--pe-blue);box-shadow:0 0 0 1px var(--pe-blue)}.tw-course-icon{background:color-mix(in srgb, var(--pe-blue) 12%, var(--sd-card));color:var(--tw-text-blue);border-radius:12px;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex}.tw-courses{gap:16px}.tw-courses .tw-page-head p{max-width:72ch;font-size:.8125rem}.tw-courses .tw-course-switch{grid-template-columns:repeat(auto-fill,minmax(260px,320px))}.tw-courses .tw-course-switch button{gap:14px;padding:14px 16px;transition:border-color .15s,background .15s,box-shadow .15s}.tw-courses .tw-course-switch button:hover{border-color:color-mix(in srgb, var(--pe-blue) 45%, var(--sd-line))}.tw-courses .tw-course-switch button.is-active{background:color-mix(in srgb, var(--pe-blue) 6%, var(--sd-card));border-color:var(--pe-blue);box-shadow:0 0 0 1px var(--pe-blue)}.tw-courses .tw-course-switch button:focus-visible{outline:2px solid var(--pe-blue);outline-offset:2px}.tw-courses .tw-course-icon{width:40px;height:40px}.tw-courses .tw-course-switch button:not(.is-active) .tw-course-icon{background:color-mix(in srgb, var(--pe-navy) 6%, var(--sd-card));color:var(--muted)}.tw-course-plan{flex:1;gap:1px;min-width:0;display:grid}.tw-courses .tw-course-plan small{color:var(--muted);letter-spacing:.07em;text-transform:uppercase;font-size:.6875rem;font-weight:800}.tw-courses .tw-course-plan strong{color:var(--pe-navy);font-size:1rem;font-weight:800}.tw-course-plan>span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8125rem}.tw-course-side{flex-direction:column;justify-content:space-between;align-self:stretch;align-items:flex-end;gap:8px;display:flex}.tw-course-side em{color:var(--muted);white-space:nowrap;margin-top:auto;font-size:.75rem;font-style:normal;font-weight:700}.tw-course-switch button.is-active .tw-course-side em{color:var(--tw-text-blue)}.tw-course-check{background:var(--pe-blue);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex}.tw-courses-grid{grid-template-columns:minmax(0,7fr) minmax(280px,3fr);align-items:start;gap:20px;display:grid}.tw-curriculum{gap:12px}.tw-curriculum-head{gap:2px;display:grid}.tw-curriculum-head .tw-eyebrow,.tw-teaching .tw-eyebrow{letter-spacing:.07em;text-transform:uppercase;font-size:.6875rem;font-weight:800}.tw-curriculum-head h2{color:var(--pe-navy);margin:0;font-size:1.25rem;font-weight:800}.tw-curriculum-meta{color:var(--muted);font-variant-numeric:tabular-nums;margin:0;font-size:.8125rem}.tw-courses .tw-tree{gap:0}.tw-courses .tw-tree-module{border:0;border-top:1px solid var(--sd-line);border-radius:0}.tw-courses .tw-tree-head{border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto auto;gap:14px;padding:14px 8px;transition:background .15s}.tw-courses .tw-tree-head:hover{background:color-mix(in srgb, var(--pe-navy) 3%, transparent)}.tw-courses .tw-tree-head:focus-visible{outline:2px solid var(--pe-blue);outline-offset:-2px}.tw-courses .tw-tree-num{border-radius:8px;width:32px;height:32px;font-size:.8125rem}.tw-courses .is-teaching>.tw-tree-head .tw-tree-num{background:color-mix(in srgb, var(--pe-blue) 14%, var(--sd-card));color:var(--tw-text-blue)}.tw-courses .tw-tree-title strong{font-size:1rem;font-weight:800}.tw-courses .tw-tree-title small{font-variant-numeric:tabular-nums;font-size:.8125rem}.tw-tree-teaching{background:color-mix(in srgb, var(--pe-blue) 11%, transparent);color:var(--tw-text-blue);white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:.75rem;font-weight:700}.tw-courses .tw-tree-topics{padding:2px 8px 14px 11px}.tw-courses .tw-tree-topic{gap:6px 10px}.tw-tree-name{color:inherit;font-size:.875rem;font-weight:600}.tw-courses .tw-tree-topics li.has-class .tw-tree-name{font-weight:800}.tw-courses .tw-tree-flag{padding:2px 8px;font-size:.6875rem}.tw-tree-work{flex-wrap:wrap;margin-top:2px;display:flex}.tw-tree-work span{white-space:nowrap}.tw-tree-work span:not(:last-child):after{content:"·";opacity:.7;margin:0 6px}.tw-courses .tw-tree-work{font-size:.75rem;font-weight:600}.tw-teaching{gap:10px;position:sticky;top:20px}.tw-teaching-list{margin:0 -8px;padding:0;list-style:none;display:grid}.tw-teaching-list li+li{border-top:1px solid var(--sd-line)}.tw-teaching-list button{color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:12px;gap:6px;width:100%;padding:12px 8px;transition:background .15s;display:grid}.tw-teaching-list button:hover{background:color-mix(in srgb, var(--pe-blue) 6%, transparent)}.tw-teaching-list button:focus-visible{outline:2px solid var(--pe-blue);outline-offset:-2px}.tw-teaching-name{color:var(--muted);align-items:center;gap:8px;display:flex}.tw-teaching-name strong{color:var(--pe-navy);flex:1;min-width:0;font-size:1rem;font-weight:800}.tw-teaching-name>svg:last-child{opacity:0;transition:opacity .15s}.tw-teaching-list button:hover .tw-teaching-name>svg:last-child{color:var(--tw-text-blue);opacity:1}.tw-teaching-count{align-items:center;gap:10px;display:flex}.tw-teaching-count>span:first-child{color:var(--pe-navy);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.8125rem;font-weight:700}.tw-teaching-count small{color:var(--muted);font-size:.8125rem;font-weight:600}.tw-teaching-bar{background:color-mix(in srgb, var(--pe-blue) 12%, var(--sd-line));border-radius:999px;flex:1;height:4px;overflow:hidden}.tw-teaching-bar span{background:var(--pe-blue);border-radius:inherit;height:100%;display:block}.tw-teaching-next{color:var(--pe-navy);font-size:.8125rem;font-weight:600;line-height:1.4}.tw-teaching-next small{color:var(--muted);letter-spacing:.07em;text-transform:uppercase;margin-right:4px;font-size:.6875rem;font-weight:800}.tw-teaching-next span{color:var(--muted);font-weight:500}@media (max-width:1100px){.tw-courses-grid{grid-template-columns:minmax(0,1fr)}.tw-teaching{order:-1;position:static}}@media (max-width:720px){.tw-courses .tw-course-switch{grid-template-columns:minmax(0,1fr)}.tw-courses .tw-tree-head{grid-template-columns:auto minmax(0,1fr) auto}.tw-courses .tw-tree-teaching{grid-area:2/2;justify-self:start}}.tw-cal-bar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.tw-cal-bar .tw-tabs{border-bottom:0}.tw-cal-nav{align-items:center;gap:8px;display:flex}.tw-cal-nav strong{color:var(--pe-navy);margin-left:6px;font-size:1rem}.tw-cal-legend{color:var(--muted);flex-wrap:wrap;gap:6px 14px;font-size:.75rem;display:flex}.tw-cal-legend span{align-items:center;gap:6px;display:inline-flex}.tw-swatch{border-radius:4px;width:10px;height:10px;display:inline-block;padding:0!important}.tw-chip{background:var(--tw-soft);border:0;border-left:3px solid var(--muted);color:var(--pe-navy);cursor:default;font:inherit;text-align:left;border-radius:8px;gap:1px;width:100%;padding:5px 7px;font-size:.75rem;display:grid}button.tw-chip{cursor:pointer}button.tw-chip:hover{filter:brightness(.97)}.tw-chip-time{color:var(--muted);font-size:.6875rem;font-weight:700}.tw-chip-title{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.tw-chip small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.6875rem;overflow:hidden}.tw-chip--class{background:color-mix(in srgb, var(--pe-blue) 11%, var(--sd-card));border-left-color:var(--pe-blue)}.tw-chip--slot{background:color-mix(in srgb, var(--pe-blue) 6%, var(--sd-card));border-left-color:color-mix(in srgb, var(--pe-blue) 55%, var(--sd-card))}.tw-chip--assignment{background:color-mix(in srgb, var(--pe-yellow) 14%, var(--sd-card));border-left-color:var(--pe-yellow)}.tw-chip--quiz{background:color-mix(in srgb, #243b53 8%, var(--sd-card));border-left-color:#243b53}.tw-chip--deadline{background:color-mix(in srgb, var(--pe-coral) 11%, var(--sd-card));border-left-color:var(--pe-coral)}.tw-chip--event{background:color-mix(in srgb, var(--tw-green) 11%, var(--sd-card));border-left-color:var(--tw-green)}.tw-swatch.tw-chip--class{background:var(--pe-blue)}.tw-swatch.tw-chip--slot{background:color-mix(in srgb, var(--pe-blue) 55%, var(--sd-card))}.tw-swatch.tw-chip--assignment{background:var(--pe-yellow)}.tw-swatch.tw-chip--quiz{background:#243b53}.tw-swatch.tw-chip--deadline{background:var(--pe-coral)}.tw-swatch.tw-chip--event{background:var(--tw-green)}.tw-chip-stack{gap:6px;display:grid}.tw-month{background:var(--sd-line);border:1px solid var(--sd-line);border-radius:16px;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.tw-month-head{background:var(--sd-card);color:var(--muted);text-align:center;padding:8px;font-size:.75rem;font-weight:700}.tw-month-cell{background:var(--sd-card);align-content:start;gap:3px;min-width:0;min-height:108px;padding:6px;display:grid}.tw-month-cell.is-outside{background:var(--tw-soft)}.tw-month-cell.is-outside .tw-month-date{color:var(--muted);opacity:.6}.tw-month-date{color:var(--pe-navy);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:50%;justify-self:start;width:24px;height:24px;font-size:.8125rem;font-weight:700}.tw-month-cell.is-today .tw-month-date{background:var(--pe-blue);color:#fff}.tw-more{color:var(--tw-text-blue);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;padding:0 2px;font-size:.75rem;font-weight:700}.tw-week{grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;display:grid}.tw-week-col{background:var(--sd-card);border:1px solid var(--sd-line);border-radius:12px;align-content:start;gap:6px;min-width:0;min-height:220px;padding:8px;display:grid}.tw-week-col.is-today{border-color:var(--pe-blue);box-shadow:0 0 0 1px var(--pe-blue)}.tw-week-head{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;align-items:baseline;gap:6px;padding:2px 2px 6px;font-size:.75rem;font-weight:700;display:flex}.tw-week-head strong{color:var(--pe-navy);font-size:1rem}.tw-week-col.is-today .tw-week-head strong{color:var(--tw-text-blue)}.tw-week-empty{color:var(--muted);padding:2px;font-size:.8125rem}.tw-modal-backdrop{z-index:80;background:#0a121e73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.tw-modal{background:var(--sd-card);border:1px solid var(--sd-line);border-radius:16px;grid-template-rows:auto minmax(0,1fr) auto;width:100%;max-width:560px;max-height:calc(100vh - 32px);display:grid;box-shadow:0 24px 60px -20px #0a121e73}.tw-modal--wide{max-width:760px}.tw-modal-head{border-bottom:1px solid var(--sd-line);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.tw-modal-head h2{color:var(--pe-navy);margin:0;font-size:1.125rem;font-weight:800}.tw-modal-body{gap:14px;padding:18px 20px;display:grid;overflow-y:auto}.tw-modal-foot{border-top:1px solid var(--sd-line);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;padding:14px 20px;display:flex}.tw-form-error{color:var(--tw-text-coral);margin:0 auto 0 0;font-size:.8125rem}.tw-field{gap:6px;min-width:0;display:grid}.tw-field>span{color:var(--pe-navy);font-size:.8125rem;font-weight:700}.tw-field small{color:var(--muted);font-size:.75rem}.tw-form-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.tw-check{color:var(--pe-navy);align-items:center;gap:8px;font-size:.875rem;display:flex}.tw-check input{accent-color:var(--pe-blue);width:16px;height:16px;min-height:0;margin:0;padding:0}.tw-check-group{border:1px solid var(--sd-line);border-radius:12px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px 16px;margin:0;padding:10px 14px 12px;display:grid}.tw-check-group legend{color:var(--pe-navy);padding:0 4px;font-size:.8125rem;font-weight:700}.tw-check-group legend small{color:var(--muted);font-weight:500}.tw-switch{background:color-mix(in srgb, var(--pe-navy) 18%, var(--sd-card));cursor:pointer;border:0;border-radius:999px;flex-shrink:0;width:42px;height:24px;transition:background .15s;position:relative}.tw-switch span{background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.tw-switch.is-on{background:var(--pe-blue)}.tw-switch.is-on span{transform:translate(18px)}@media (max-width:1180px){.tw-student-row>button{grid-template-columns:minmax(160px,1fr) minmax(0,2fr)}.tw-student-status{grid-column:1/-1;grid-auto-flow:column;justify-content:start;align-items:center;gap:8px}}@media (max-width:1024px){.tw-grid,.tw-grid--even{grid-template-columns:minmax(0,1fr)}.tw-week{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:720px){.tw{gap:16px}.tw-page-actions{width:100%}.tw-session{grid-template-columns:minmax(0,1fr);gap:10px}.tw-session-time{border-right:0;gap:8px;padding-right:0;display:flex}.tw-session-cta{grid-template-columns:1fr 1fr;grid-auto-flow:column;min-width:0}.tw-session-cta small{grid-area:2/1/auto/-1}.tw-metrics--card{grid-template-columns:repeat(2,minmax(0,1fr))}.tw-perf-bars{grid-template-columns:minmax(0,1fr)}.tw-student-row>button{grid-template-columns:minmax(0,1fr);gap:10px}.tw-student-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.tw-student-metrics .tw-progress{grid-column:1/-1}.tw-item-row>button,.tw-item-row>.tw-item-static{grid-template-columns:auto minmax(0,1fr)}.tw-item-side{grid-column:2;justify-content:flex-start}.tw-sub-row{grid-template-columns:minmax(0,1fr) auto}.tw-sub-row>:nth-child(3){grid-column:1}.tw-att-history li{grid-template-columns:minmax(0,1fr) auto}.tw-att-history li>:nth-child(2){grid-area:2/1/auto/-1}.tw-profile-status{justify-items:start}.tw-week{grid-template-columns:minmax(0,1fr)}.tw-week-col{min-height:0}.tw-month-cell{min-height:64px}.tw-month-cell .tw-chip{display:none}.tw-month-cell:has(.tw-chip):after{background:var(--pe-blue);content:"";border-radius:50%;justify-self:center;width:6px;height:6px}.tw-month-cell .tw-more{display:none}.tw-cal-nav{width:100%}.tw-modal-backdrop{align-items:flex-end;padding:0}.tw-modal{border-radius:16px 16px 0 0;max-height:92vh}}.tw-page-head .tw-back{align-items:center;gap:4px;margin-bottom:8px;display:inline-flex}.tw-page-head p{font-size:.875rem}.tw-page-head--compact h1{font-size:clamp(1.3rem,2.2vw,1.6rem)}.tw-meta-line{flex-wrap:wrap;gap:4px 16px;display:flex}.tw-meta-line>span{align-items:center;gap:6px;display:inline-flex}.tw-meta-line svg{color:var(--muted);opacity:.85;flex-shrink:0}.tw-tabs{gap:8px}.tw-tabs button{padding:10px 14px}.tw-tab-count{background:color-mix(in srgb, var(--pe-blue) 8%, transparent)}.tw-link--quiet{color:var(--muted)}.tw-link--quiet:hover{color:var(--tw-text-blue)}.tw-status{color:var(--muted);white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;font-size:.75rem;font-weight:700;display:inline-flex}.tw-status-dot{background:var(--muted);border-radius:50%;width:7px;height:7px}.tw-status--green{color:var(--tw-text-green)}.tw-status--green .tw-status-dot{background:var(--tw-green);box-shadow:0 0 0 3px color-mix(in srgb, var(--tw-green) 18%, transparent)}.tw-status--blue{color:var(--tw-text-blue)}.tw-status--blue .tw-status-dot{background:var(--pe-blue)}.tw-status--yellow{color:var(--tw-text-yellow)}.tw-status--yellow .tw-status-dot{background:var(--pe-yellow)}.tw-status--coral{color:var(--tw-text-coral)}.tw-status--coral .tw-status-dot{background:var(--pe-coral)}.tw-thin-bar{background:color-mix(in srgb, var(--pe-blue) 12%, var(--sd-line));border-radius:999px;width:100%;height:4px;display:block;overflow:hidden}.tw-thin-bar>span{background:var(--pe-blue);border-radius:inherit;height:100%;display:block}.tw-strip{background:var(--sd-card);border:1px solid var(--sd-line);border-radius:12px;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;margin:0;display:grid}.tw-strip-item{grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;padding:12px 16px;display:grid}.tw-strip-item+.tw-strip-item{border-left:1px solid var(--sd-line)}.tw-strip-icon{background:color-mix(in srgb, var(--pe-navy) 5%, transparent);color:var(--muted);border-radius:8px;grid-row:span 2;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.tw-strip dt{color:var(--muted);font-size:.75rem;font-weight:600}.tw-strip dd{color:var(--pe-navy);font-variant-numeric:tabular-nums;margin:0;font-size:1rem;font-weight:800}.tw-strip-item.is-emphasis{background:color-mix(in srgb, var(--pe-blue) 6%, transparent)}.tw-strip-item.is-emphasis .tw-strip-icon{background:color-mix(in srgb, var(--pe-blue) 14%, transparent);color:var(--tw-text-blue)}.tw-strip-item:first-child{border-radius:12px 0 0 12px}.tw-strip-item:last-child{border-radius:0 12px 12px 0}.tw-strip-title{color:var(--muted);margin:0 0 8px;font-size:.75rem;font-weight:700}.tw-section{gap:10px;min-width:0;display:grid}.tw-section-head{border-bottom:1px solid var(--sd-line);justify-content:space-between;align-items:center;gap:12px;padding-bottom:10px;display:flex}.tw-section-title{align-items:center;gap:10px;min-width:0;display:flex}.tw-section-title h2{color:var(--pe-navy);margin:0;font-size:1rem;font-weight:800}.tw-section-title .tw-eyebrow{margin:0;font-size:.75rem}.tw-section-icon{background:color-mix(in srgb, var(--pe-blue) 10%, transparent);color:var(--tw-text-blue);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.tw-count-badge{background:color-mix(in srgb, var(--pe-blue) 12%, transparent);color:var(--tw-text-blue);white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:.75rem;font-weight:800}.tw-positive{color:var(--tw-text-green);align-items:center;gap:8px;margin:4px 0;font-size:.875rem;font-weight:700;display:flex}.tw-classes{gap:12px;width:100%;max-width:1180px;margin:0 auto}.tw-classes .tw-page-head p{max-width:62ch;font-size:.8125rem}.tw-classes-summary{color:var(--muted);flex-wrap:wrap;margin:-4px 0 0;font-size:.8125rem;font-weight:600;display:flex}.tw-classes-summary span{white-space:nowrap}.tw-classes-summary span:not(:last-child):after{content:"·";opacity:.7;margin:0 7px}.tw-classes .tw-tabs button{color:color-mix(in srgb, var(--muted) 85%, transparent);font-weight:600;transition:color .15s}.tw-classes .tw-tabs button:hover{color:var(--pe-navy)}.tw-classes .tw-tabs button.is-active{color:var(--pe-navy);border-bottom-width:2.5px;font-weight:800}.tw-classes .tw-tabs button.is-active .tw-tab-count{background:var(--pe-blue);color:#fff}.tw-class-list{background:var(--sd-card);border:1px solid var(--sd-line);border-radius:16px;margin:4px 0 0;padding:0;list-style:none;overflow:hidden}.tw-class-row{cursor:pointer;grid-template-columns:minmax(240px,1.35fr) minmax(150px,1fr) minmax(150px,.9fr) 150px;align-items:center;gap:12px 24px;padding:16px 20px;transition:background .15s;display:grid}.tw-class-row+.tw-class-row{border-top:1px solid color-mix(in srgb, var(--sd-line) 75%, transparent)}.tw-class-row:hover{background:color-mix(in srgb, var(--pe-navy) 2.5%, var(--sd-card))}.tw-class-row.is-next{background:color-mix(in srgb, var(--pe-blue) 6%, var(--sd-card));box-shadow:inset 3px 0 0 var(--pe-blue)}.tw-class-row.is-next:hover{background:color-mix(in srgb, var(--pe-blue) 9%, var(--sd-card))}.tw-class-row.is-live{box-shadow:inset 3px 0 0 var(--tw-green)}.tw-class-main{gap:5px;min-width:0;display:grid}.tw-class-name{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.tw-class-name strong{color:var(--pe-navy);font-size:1rem;font-weight:800}.tw-class-name .tw-status{font-size:.75rem}.tw-class-meta{color:var(--muted);flex-wrap:wrap;align-items:center;row-gap:3px;font-size:.8125rem;line-height:1.4;display:flex}.tw-class-meta>span{white-space:nowrap}.tw-class-meta>span:not(:last-child):not(.tw-class-type):after{content:"·";opacity:.7;margin:0 6px}.tw-class-type{background:color-mix(in srgb, var(--pe-navy) 6%, var(--sd-card));color:var(--pe-navy);border-radius:8px;align-items:center;gap:4px;margin-right:8px;padding:2px 7px;font-size:.6875rem;font-weight:700;display:inline-flex}.tw-class-progress{align-items:center;gap:10px;margin-top:2px;display:flex}.tw-class-progress .tw-thin-bar{flex:0 0 96px;height:4px}.tw-class-progress small{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.75rem}.tw-class-fact{gap:1px;min-width:0;display:grid}.tw-class-fact small{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.6875rem;font-weight:800}.tw-class-fact strong{color:var(--pe-navy);font-size:1rem;font-weight:800}.tw-class-fact>span{color:var(--muted);font-size:.75rem}.tw-class-when strong{font-variant-numeric:tabular-nums;font-weight:700}.tw-class-row.is-next .tw-class-when strong{color:var(--tw-text-blue);font-size:1rem;font-weight:800}.tw-next-badge{background:var(--pe-blue);color:#fff;border-radius:999px;padding:2px 8px;font-size:.6875rem;font-style:normal}.tw-class-action{place-items:stretch center;gap:5px;display:grid}.tw-class-action .tw-btn{justify-content:center;width:100%;min-height:40px}.tw-class-open{background:color-mix(in srgb, var(--pe-blue) 10%, var(--sd-card));color:var(--tw-text-blue);border:0;font-weight:700;transition:background .15s}.tw-class-row:hover .tw-class-open,.tw-class-open:hover{background:color-mix(in srgb, var(--pe-blue) 17%, var(--sd-card))}.tw-class-open.is-primary{background:var(--pe-blue);color:#fff}.tw-class-row:hover .tw-class-open.is-primary,.tw-class-open.is-primary:hover{background:color-mix(in srgb, var(--pe-blue) 88%, #000)}.tw-class-join{color:#fff;background:#243b53;border:0;gap:7px;font-weight:800;transition:background .15s}.tw-class-join:hover{background:#1b2e42}:root[data-theme=dark] .tw-class-join{box-shadow:inset 0 0 0 1px #ffffff38}.tw-class-sub{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;font-size:.75rem;font-weight:700}.tw-class-sub:hover{color:var(--tw-text-blue)}.tw-class-sub.is-note{cursor:default;font-weight:600}.tw-class-sub.is-note:hover{color:var(--muted)}.tw-class-row .tw-btn:focus-visible,.tw-class-sub:focus-visible{outline:2px solid var(--pe-blue);outline-offset:2px}.tw-students{gap:14px}.tw-students .tw-page-head p{max-width:72ch;font-size:.8125rem}.tw-students .tw-toolbar{flex-wrap:nowrap;gap:8px}.tw-students .tw-search{flex:0 380px;min-width:220px}.tw-students .tw-toolbar select{cursor:pointer;flex:none;width:auto;min-width:160px;transition:border-color .15s}.tw-students .tw-toolbar select:hover{border-color:color-mix(in srgb, var(--pe-blue) 40%, var(--sd-line))}.tw-students .tw-toolbar select:focus{border-color:var(--pe-blue);outline:none}.tw-students-bar{border-bottom:1px solid var(--sd-line);justify-content:space-between;align-items:flex-end;gap:4px 20px;min-width:0;display:flex}.tw-students-bar .tw-tabs{border-bottom:0;min-width:0}.tw-students-bar .tw-tabs button{color:color-mix(in srgb, var(--muted) 85%, transparent);margin-bottom:0;font-weight:600;transition:color .15s,border-color .15s}.tw-students-bar .tw-tabs button:hover{color:var(--pe-navy)}.tw-students-bar .tw-tabs button.is-active{color:var(--pe-navy);border-bottom-width:2.5px;font-weight:800}.tw-students-bar .tw-tab-count{font-variant-numeric:tabular-nums;text-align:center;min-width:20px;padding:1px 6px;font-size:.6875rem;font-weight:700}.tw-students-bar .tw-tabs button.is-active .tw-tab-count{background:var(--pe-blue);color:#fff}.tw-students .tw-student-list{border-color:color-mix(in srgb, var(--sd-line) 80%, transparent);border-radius:16px;margin-top:2px}.tw-students .tw-student-row+.tw-student-row{border-top-color:color-mix(in srgb, var(--sd-line) 70%, transparent)}.tw-students .tw-student-row>button{grid-template-columns:minmax(200px,1.1fr) minmax(0,3.3fr);gap:10px 24px;padding:14px 18px;transition:background .15s}.tw-students .tw-student-row>button:hover{background:color-mix(in srgb, var(--pe-blue) 5%, var(--sd-card))}.tw-students .tw-student-row>button:focus-visible{outline:2px solid var(--pe-blue);outline-offset:-2px}.tw-students .tw-student-id strong{font-size:1rem;font-weight:800}.tw-students .tw-student-id small{font-size:.8125rem}.tw-students .tw-student-metrics{gap:20px}.tw-students .tw-progress-label{font-size:.75rem}.tw-students .tw-progress-label strong{font-variant-numeric:tabular-nums;font-size:.875rem}.tw-students .tw-stat-chip small{font-size:.6875rem}.tw-students .tw-stat-chip strong{font-variant-numeric:tabular-nums;font-size:.875rem;font-weight:800}.tw-students .tw-student-status{gap:4px}.tw-students .tw-student-status .tw-pill{padding:3px 10px;font-size:.75rem}.tw-student-review{color:var(--tw-text-blue);white-space:nowrap;align-items:center;gap:4px;font-size:.75rem;font-weight:700;display:inline-flex}.tw-students .tw-student-status small{font-size:.75rem}@media (max-width:1180px){.tw-students .tw-student-row>button{grid-template-columns:minmax(180px,1fr) minmax(0,2fr)}.tw-students .tw-student-status{flex-wrap:wrap;align-items:center;gap:6px 12px;display:flex}.tw-students-bar{flex-direction:column;align-items:stretch;gap:0}}@media (max-width:720px){.tw-students .tw-toolbar{flex-wrap:wrap}.tw-students .tw-search{flex-basis:100%;max-width:none}.tw-students .tw-toolbar select{flex:1 1 0;min-width:0}.tw-students .tw-student-row>button{grid-template-columns:minmax(0,1fr);padding:14px}}.tw-class-overview{gap:24px;display:grid}.tw-lesson{background:var(--sd-card);border:1px solid var(--sd-line);border-radius:16px;grid-template-columns:minmax(0,1.4fr) minmax(240px,1fr);display:grid;overflow:hidden}.tw-lesson-main{justify-items:start;gap:6px;padding:22px 24px;display:grid}.tw-lesson-eyebrow{color:var(--tw-text-blue);align-items:center;gap:6px;margin:0;font-size:.75rem;font-weight:800;display:inline-flex}.tw-lesson-main h2{color:var(--pe-navy);margin:2px 0 0;font-size:1.25rem;font-weight:800}.tw-lesson-main>.tw-muted{margin:0;font-size:.875rem}.tw-lesson-progress{align-items:center;gap:12px;width:100%;margin-top:10px;display:flex}.tw-lesson-progress strong{color:var(--pe-navy);font-size:.875rem}.tw-lesson-main small{margin-bottom:6px;font-size:.8125rem}.tw-lesson-side{background:var(--tw-soft);border-left:1px solid var(--sd-line);align-content:center;gap:18px;padding:22px 24px;display:grid}.tw-lesson-fact{align-items:flex-start;gap:12px;display:flex}.tw-lesson-fact>span:last-child{gap:2px;min-width:0;display:grid}.tw-lesson-fact small{color:var(--muted);font-size:.75rem;font-weight:700}.tw-lesson-fact strong{color:var(--pe-navy);font-size:1rem}.tw-lesson-fact .tw-muted{align-items:center;gap:5px;font-size:.8125rem;display:inline-flex}.tw-lesson-fact-icon{background:var(--sd-card);border:1px solid var(--sd-line);color:var(--tw-text-blue);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.tw-overview-cols{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:32px;display:grid}.tw-person-list{margin:0;padding:0;list-style:none}.tw-person-list li+li{border-top:1px solid var(--sd-line)}.tw-person-list button{cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:12px;width:100%;padding:10px 0;display:flex}.tw-person-text{flex:1;gap:1px;min-width:0;display:grid}.tw-person-text strong{color:var(--pe-navy);font-size:.875rem}.tw-person-text small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;overflow:hidden}.tw-person-list button:hover strong{color:var(--tw-text-blue)}.tw-section .tw-item-list{border:0}.tw-sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tw-qchart{margin:0}.tw-qchart-plot{height:200px;margin:10px 0 0 40px;position:relative}.tw-qchart-grid{pointer-events:none;position:absolute;inset:0 0 22px}.tw-qchart-grid span{border-top:1px solid var(--sd-line);position:absolute;left:0;right:0}.tw-qchart-grid em{color:var(--muted);text-align:right;width:34px;font-size:.6875rem;font-style:normal;position:absolute;top:-8px;left:-40px}.tw-qchart-grid span.is-pass{border-top:1.5px dashed color-mix(in srgb, var(--pe-navy) 45%, transparent)}.tw-qchart-grid span.is-pass em{color:var(--pe-navy);font-weight:700}.tw-qchart-bars{gap:10px;display:flex;position:absolute;inset:0}.tw-qchart-group{flex-direction:column;flex-basis:0;min-width:0;display:flex}.tw-qchart-group ol{flex:1;align-items:flex-end;gap:2px;margin:0;padding:0;list-style:none;display:flex}.tw-qchart-group li{cursor:default;outline:none;flex:1;justify-content:center;align-items:flex-end;min-width:3px;height:100%;display:flex}.tw-qchart-bar{background:var(--pe-blue);border-radius:4px 4px 0 0;width:100%;max-width:22px;transition:opacity .12s;display:block}.tw-qchart-bars:hover .tw-qchart-bar{opacity:.6}.tw-qchart-group li.is-hover .tw-qchart-bar,.tw-qchart-group li:focus-visible .tw-qchart-bar{opacity:1}.tw-qchart-group li:focus-visible{box-shadow:inset 0 0 0 2px var(--pe-blue);border-radius:4px}.tw-qchart-mark{color:var(--tw-text-coral);padding-bottom:2px;font-size:.8125rem;font-weight:800;line-height:1}.tw-qchart-group li.is-open .tw-qchart-mark{color:var(--muted)}.tw-qchart-module{border-top:1px solid var(--sd-line);color:var(--muted);text-align:center;height:22px;font-size:.6875rem;font-weight:700;line-height:22px;overflow:hidden}.tw-qchart-tip{background:var(--pe-navy);color:var(--sd-card);pointer-events:none;white-space:nowrap;border-radius:8px;max-width:90%;margin:0;padding:6px 10px;font-size:.75rem;font-weight:600;position:absolute;top:-6px;left:50%;transform:translate(-50%,-100%)}.tw-qchart-caption{color:var(--muted);margin-top:10px;font-size:.75rem}@media (max-width:720px){.tw-qchart-plot{height:160px}.tw-qchart-bars{gap:6px}.tw-qchart-tip{white-space:normal}}.tw-modal-titles{gap:4px;min-width:0;display:grid}.tw-modal-subtitle{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:.8125rem;display:flex}.cc-modal{max-width:720px}.cc-modal .tw-modal-head{align-items:flex-start;padding:18px 22px 16px}.cc-modal .tw-modal-body{gap:0;padding:0}.cc-modal .tw-modal-foot{padding:14px 22px}.cc-modal .tw-modal-foot .tw-form-error{margin-right:auto}.cc-modal .tw-modal-foot .tw-btn{min-height:42px}.cc-class-pill{background:color-mix(in srgb, var(--pe-blue) 12%, transparent);color:var(--tw-text-blue);border-radius:999px;padding:3px 10px;font-size:.75rem;font-weight:800}.cc-section{gap:14px;padding:18px 22px 20px;display:grid}.cc-section--students{background:var(--tw-soft);border-top:1px solid var(--sd-line);gap:0}.cc-section-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.6875rem;font-weight:800}.cc-topic{align-items:center;gap:12px;display:flex}.cc-topic-icon{background:color-mix(in srgb, var(--pe-blue) 10%, transparent);color:var(--tw-text-blue);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.cc-topic>div{gap:1px;min-width:0;display:grid}.cc-topic small{color:var(--muted);font-size:.75rem;font-weight:700}.cc-topic strong{color:var(--pe-navy);font-size:1rem;font-weight:800}.cc-topic span{color:var(--muted);font-size:.8125rem}.cc-coverage{--cc-color:var(--pe-blue);gap:6px;display:grid}.cc-coverage.is-complete{--cc-color:var(--tw-green)}.cc-coverage-head{justify-content:space-between;align-items:baseline;gap:12px;max-width:460px;display:flex}.cc-coverage-head label{color:var(--pe-navy);font-size:.875rem;font-weight:700}.cc-coverage-head strong{color:var(--tw-text-blue);font-variant-numeric:tabular-nums;align-items:center;gap:4px;font-size:1.25rem;font-weight:800;display:inline-flex}.cc-coverage.is-complete .cc-coverage-head strong{color:var(--tw-text-green)}.cc-track{max-width:460px}.cc-coverage input[type=range]{appearance:none;background:linear-gradient(to right, var(--cc-color) var(--cc-fill), color-mix(in srgb, var(--pe-navy) 10%, var(--sd-line)) var(--cc-fill));cursor:pointer;border:0;border-radius:999px;width:100%;height:6px;min-height:0;margin:10px 0 0;padding:0;display:block}.cc-coverage input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:3px solid var(--cc-color);background:#fff;border-radius:50%;width:18px;height:18px;box-shadow:0 1px 4px #0f1b2b33}.cc-coverage input[type=range]::-moz-range-thumb{border:3px solid var(--cc-color);background:#fff;border-radius:50%;width:14px;height:14px}.cc-coverage input[type=range]:focus-visible{outline:3px solid color-mix(in srgb, var(--cc-color) 30%, transparent);outline-offset:6px}.cc-stops{height:26px;position:relative}.cc-stops button{color:var(--muted);cursor:pointer;font:inherit;font-variant-numeric:tabular-nums;left:calc(9px + (100% - 18px) * var(--at));background:0 0;border:0;border-radius:8px;padding:4px 2px;font-size:.75rem;font-weight:700;position:absolute;top:2px;transform:translate(-50%)}.cc-stops button:before{background:color-mix(in srgb, var(--pe-navy) 22%, transparent);content:"";border-radius:4px;width:1px;height:4px;position:absolute;top:-1px;left:50%}.cc-stops button.is-active{color:var(--pe-navy)}.cc-stops button:disabled{cursor:not-allowed;opacity:.35}.cc-outcome{color:var(--tw-text-yellow);align-items:flex-start;gap:8px;margin:4px 0 0;font-size:.8125rem;line-height:1.5;display:flex}.cc-outcome span{color:var(--pe-navy)}.cc-outcome svg{flex-shrink:0;margin-top:2px}.cc-outcome.is-done{color:var(--tw-text-green)}.cc-section--students h3{color:var(--pe-navy);margin:6px 0 4px;font-size:1rem;font-weight:800}.cc-student{gap:10px;padding:14px 0;display:grid}.cc-student+.cc-student{border-top:1px solid var(--sd-line)}.cc-student:last-child{padding-bottom:0}.cc-student-head{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.cc-student-head>strong{color:var(--pe-navy);flex:1;font-size:.875rem}.cc-stars{align-items:center;gap:10px;display:inline-flex}.cc-stars-row{display:inline-flex}.cc-stars button{color:color-mix(in srgb, var(--pe-navy) 18%, transparent);cursor:pointer;background:0 0;border:0;border-radius:8px;width:34px;height:36px;padding:0;font-size:1.5rem;line-height:1;transition:color .12s,transform .12s}.cc-stars button.is-on{color:var(--pe-yellow)}.cc-stars button:hover{transform:scale(1.12)}.cc-stars button:focus-visible{outline:2px solid var(--pe-blue);outline-offset:-2px}.cc-stars small{color:var(--muted);min-width:86px;font-size:.75rem;font-weight:700}.cc-stars small.is-set{color:var(--pe-navy)}.cc-feedback{gap:6px;display:grid}.cc-feedback span{color:var(--muted);font-size:.75rem;font-weight:700}.cc-feedback textarea{background:var(--sd-card);border:1px solid var(--sd-line);color:var(--pe-navy);font:inherit;resize:vertical;border-radius:12px;width:100%;min-height:64px;padding:10px 12px;font-size:.875rem;line-height:1.5;transition:border-color .15s,box-shadow .15s}.cc-feedback textarea:hover{border-color:color-mix(in srgb, var(--pe-blue) 35%, var(--sd-line))}.cc-feedback textarea:focus{border-color:var(--pe-blue);box-shadow:0 0 0 3px color-mix(in srgb, var(--pe-blue) 16%, transparent);outline:none}@media (max-width:720px){.cc-modal .tw-modal-head,.cc-section,.cc-modal .tw-modal-foot{padding-inline:16px}.cc-modal .tw-modal-foot .tw-btn{flex:1 1 0}.cc-student-head .cc-stars{width:100%}}.tw-coverage-note{color:var(--tw-text-yellow);margin:2px 0 0;font-size:.8125rem;font-weight:700}.th-done-note{color:var(--tw-text-green);white-space:nowrap;flex-wrap:wrap;align-items:center;gap:5px 8px;font-size:.8125rem;font-weight:700;display:inline-flex}.th-coverage{border:1px solid color-mix(in srgb, var(--pe-yellow) 60%, transparent);color:var(--tw-text-yellow);border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:.75rem;font-weight:700;display:inline-flex}.tw-feedback-list{margin:0;padding:0;list-style:none}.tw-feedback-list li{gap:3px;padding:12px 0;display:grid}.tw-feedback-list li+li{border-top:1px solid var(--sd-line)}.tw-feedback-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.tw-feedback-head strong{color:var(--pe-navy);font-size:.875rem}.tw-feedback-stars{color:var(--pe-yellow);letter-spacing:1px;white-space:nowrap;font-size:1rem}.tw-feedback-stars em{color:color-mix(in srgb, var(--pe-navy) 18%, transparent);font-style:normal}.tw-feedback-list small{color:var(--muted);font-size:.75rem}.tw-feedback-list p{color:var(--pe-navy);margin:2px 0 0;font-size:.875rem;line-height:1.55}.tw-summary-strip{gap:12px;display:grid}.tw-completion{align-items:center;gap:12px;display:flex}.tw-completion>span:first-child{color:var(--muted);white-space:nowrap;font-size:.75rem;font-weight:700}.tw-completion strong{color:var(--pe-navy);text-align:right;min-width:36px;font-size:.8125rem}.tw-reading{color:var(--pe-navy);max-width:72ch;margin:4px 0 0;font-size:1rem;line-height:1.75}.tw-review-row{grid-template-columns:auto minmax(0,1fr) auto minmax(110px,auto);align-items:center;gap:12px;padding:12px 0;display:grid}.tw-review-name{color:var(--pe-navy);justify-self:start;font-size:.875rem;font-weight:700}.tw-review-meta{align-items:center;gap:14px;display:flex}.tw-review-meta strong{color:var(--pe-navy);font-size:.8125rem}.tw-review-meta small{color:var(--muted);white-space:nowrap;font-size:.75rem}.tw-review-action{justify-content:flex-end;display:flex}.tw-section .tw-subs li.is-open{margin:4px -14px;padding:0 14px 14px}.tw-item-static{cursor:default!important}.tw-work-main{gap:2px;min-width:0;display:grid}.tw-work-main strong{color:var(--pe-navy);font-size:.875rem}.tw-work-main small{color:var(--muted);font-size:.8125rem}.tw-work-review{gap:12px;display:grid}.tw-work-brief{border-left:3px solid var(--sd-line);color:var(--pe-navy);margin:0;padding:2px 0 2px 12px;font-size:.875rem;line-height:1.6}.tw-work-brief small{color:var(--muted);font-size:.75rem;font-weight:700;display:block}.tw-card .tw-subs li.is-open{margin:4px -10px;padding:0 10px 14px}@media (max-width:1180px){.tw-class-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 150px}.tw-class-main{grid-area:1/1/auto/3}.tw-class-action{grid-area:1/3/span 2}.tw-class-fact{grid-row:2}}@media (max-width:900px){.tw-lesson{grid-template-columns:minmax(0,1fr)}.tw-lesson-side{border-left:0;border-top:1px solid var(--sd-line);grid-template-columns:repeat(2,minmax(0,1fr))}.tw-overview-cols{grid-template-columns:minmax(0,1fr)}.tw-strip{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row}.tw-strip-item+.tw-strip-item{border-left:0}.tw-strip-item:nth-child(2n){border-left:1px solid var(--sd-line)}.tw-strip-item:nth-child(n+3){border-top:1px solid var(--sd-line)}.tw-strip-item:first-child,.tw-strip-item:last-child{border-radius:0}}@media (max-width:720px){.tw-class-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 16px;padding:14px 16px}.tw-class-main{grid-area:auto/1/auto/-1}.tw-class-fact{grid-row:auto}.tw-class-action{grid-area:auto/1/auto/-1}.tw-lesson-main,.tw-lesson-side{padding:18px}.tw-lesson-side{grid-template-columns:minmax(0,1fr)}.tw-review-row{grid-template-columns:auto minmax(0,1fr) auto}.tw-review-meta{grid-area:2/2/auto/-1}.tw-review-action{grid-area:1/3}}.th{gap:20px}.th-card{background:var(--sd-card);border:1px solid var(--sd-line);border-radius:16px;gap:14px;min-width:0;padding:20px;display:grid}.th-layout{grid-template-columns:minmax(0,1fr) minmax(290px,340px);align-items:start;gap:20px;display:grid}.th-main,.th-side{gap:20px;min-width:0;display:grid}@media (min-width:1201px){.th-side{scrollbar-width:thin;max-height:calc(100dvh - 170px);position:sticky;top:0;overflow-y:auto}}.th-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.th-card h2{color:var(--pe-navy);margin:0;font-size:1.125rem;font-weight:800}.th-card-head p{color:var(--muted);margin:2px 0 0;font-size:.875rem}.th-card-error{color:var(--muted);margin:0;font-size:.8125rem}.th-pill-link{background:color-mix(in srgb, var(--pe-blue) 10%, var(--sd-card));color:var(--tw-text-blue);cursor:pointer;font:inherit;border:0;border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:5px 12px;font-size:.75rem;font-weight:700;transition:background .15s;display:inline-flex}.th-pill-link:hover{background:color-mix(in srgb, var(--pe-blue) 16%, var(--sd-card))}.th-link{color:var(--tw-text-blue);cursor:pointer;font:inherit;white-space:nowrap;background:0 0;border:0;align-items:center;gap:4px;padding:2px 0;font-size:.8125rem;font-weight:700;display:inline-flex}.th-link:hover{text-underline-offset:3px;text-decoration:underline}.th-btn-soft{background:color-mix(in srgb, var(--pe-blue) 11%, var(--sd-card));color:var(--tw-text-blue);border:0;font-weight:700}.th-btn-soft:hover{background:color-mix(in srgb, var(--pe-blue) 18%, var(--sd-card))}.th-btn-complete{background:var(--pe-coral);color:#fff;border:0;font-weight:700}.th-btn-complete:hover{background:color-mix(in srgb, var(--pe-coral) 88%, #000)}.th-link:focus-visible,.th-pill-link:focus-visible,.th-stats button:focus-visible,.th-follow button:focus-visible{outline:2px solid var(--pe-blue);outline-offset:2px}.th-today{gap:8px;padding-bottom:10px}.th-today-head{align-items:flex-start;padding-bottom:6px}.th-today-count{color:var(--muted);font-variant-numeric:tabular-nums;margin:4px 0 0;font-size:.8125rem}.th-daynav{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.th-daynav-today{background:var(--sd-card);border:1px solid var(--sd-line);color:var(--pe-navy);cursor:pointer;font:inherit;border-radius:12px;min-height:34px;padding:0 14px;font-size:.8125rem;font-weight:700;transition:background .15s,border-color .15s,color .15s}.th-daynav-today:hover{border-color:color-mix(in srgb, var(--pe-blue) 45%, var(--sd-line))}.th-daynav-today.is-on{background:color-mix(in srgb, var(--pe-blue) 12%, var(--sd-card));border-color:color-mix(in srgb, var(--pe-blue) 45%, var(--sd-line));color:var(--tw-text-blue)}.th-daynav-today:focus-visible{outline:2px solid var(--pe-blue);outline-offset:2px}.th-btn-mark{background:color-mix(in srgb, var(--pe-blue) 11%, var(--sd-card));color:var(--tw-text-blue);border:0;border-radius:12px;justify-content:center;gap:6px;min-height:42px;padding:0 16px;font-size:.8125rem;font-weight:700}.th-btn-mark:hover{background:color-mix(in srgb, var(--pe-blue) 18%, var(--sd-card))}.th-btn-mark.is-due{background:var(--pe-coral);color:#fff}.th-btn-mark.is-due:hover{background:color-mix(in srgb, var(--pe-coral) 88%, #000)}.th-view{color:var(--muted);cursor:pointer;font:inherit;white-space:nowrap;background:0 0;border:0;border-radius:8px;align-items:center;gap:4px;padding:4px 2px;font-size:.8125rem;font-weight:700;transition:color .15s;display:inline-flex}.th-view:hover{color:var(--tw-text-blue)}.th-view:focus-visible{outline:2px solid var(--pe-blue);outline-offset:2px}.th-pulse{background:var(--tw-green);border-radius:50%;width:7px;height:7px;animation:1.6s ease-out infinite th-pulse}@keyframes th-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--tw-green) 55%, transparent)}to{box-shadow:0 0 0 7px #0000}}.th-coverage{border:1px solid color-mix(in srgb, var(--pe-yellow) 60%, transparent);color:var(--tw-text-yellow);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.th-coverage:before{background:conic-gradient(currentColor var(--cov,50%), transparent 0);content:"";border:1.5px solid;border-radius:50%;width:9px;height:9px}.th-coverage.is-full{border-color:color-mix(in srgb, var(--tw-green) 50%, transparent);color:var(--tw-text-green)}.th-empty{color:var(--muted);align-items:center;gap:14px;padding:8px 0 14px;display:flex}.th-empty div{gap:2px;display:grid}.th-empty strong{color:var(--pe-navy);font-size:1rem}.th-empty span{font-size:.875rem}.th-quiet{color:var(--tw-text-green);align-items:center;gap:6px;margin:0;font-size:.875rem;font-weight:700;display:flex}.th-attention{gap:8px}.th-attention .th-card-head{align-items:center}.th-count{background:var(--pe-coral);color:#fff;font-variant-numeric:tabular-nums;text-align:center;border-radius:999px;min-width:22px;padding:3px 8px;font-size:.75rem;font-weight:800}.th-tasks{gap:8px;margin:0 -8px;padding:0;list-style:none;display:grid}.th-tasks button{color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;width:100%;padding:10px 8px;transition:background .15s;display:flex}.th-tasks button:hover{background:color-mix(in srgb, var(--pe-blue) 7%, transparent)}.th-tasks button:focus-visible{outline:2px solid var(--pe-blue);outline-offset:-2px}.th-task-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.th-tasks button.is-coral .th-task-icon{background:color-mix(in srgb, var(--pe-coral) 15%, var(--sd-card));color:var(--tw-text-coral)}.th-tasks button.is-yellow .th-task-icon{background:color-mix(in srgb, var(--pe-yellow) 26%, var(--sd-card));color:var(--tw-text-yellow)}.th-tasks button.is-blue .th-task-icon{background:color-mix(in srgb, var(--pe-blue) 13%, var(--sd-card));color:var(--tw-text-blue)}.th-task-text{flex:1;gap:2px;min-width:0;display:grid}.th-task-text strong{color:var(--pe-navy);font-size:.875rem;font-weight:600;line-height:1.3}.th-task-text strong span{font-weight:800}.th-task-text small{color:var(--muted);align-items:center;gap:3px;font-size:.75rem;font-weight:700;transition:color .15s;display:inline-flex}.th-tasks button:hover .th-task-text small{color:var(--tw-text-blue)}.th-tasks button.is-quiet .th-task-icon{background:color-mix(in srgb, var(--pe-navy) 6%, var(--sd-card));color:var(--muted)}.th-tasks button.is-quiet .th-task-text strong{color:var(--muted)}.th-tasks button.is-quiet .th-task-text small{color:var(--tw-text-blue)}.th-followup{gap:6px}.th-follow{margin:0 -10px;padding:0;list-style:none;display:grid}.th-follow li+li{border-top:1px solid color-mix(in srgb, var(--sd-line) 70%, transparent)}.th-follow button{cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:12px;grid-template-columns:28px minmax(110px,170px) minmax(0,1fr) 124px 14px;align-items:center;gap:12px;width:100%;padding:11px 10px;transition:background .15s;display:grid}.th-follow button:hover{background:color-mix(in srgb, var(--pe-blue) 6%, transparent)}.th-follow button:focus-visible{outline:2px solid var(--pe-blue);outline-offset:-2px}.th-follow-text{gap:1px;min-width:0;display:grid}.th-follow-text strong{color:var(--pe-navy);font-size:.875rem}.th-follow-text small{color:var(--muted);font-size:.75rem}.th-follow-reason{color:var(--pe-navy);min-width:0;font-size:.8125rem;line-height:1.35}.th-follow-status{white-space:nowrap;border-radius:999px;flex-shrink:0;justify-self:end;padding:3px 9px;font-size:.6875rem;font-weight:700}.th-follow-status.is-coral{background:color-mix(in srgb, var(--pe-coral) 14%, var(--sd-card));color:var(--tw-text-coral)}.th-follow-status.is-yellow{background:color-mix(in srgb, var(--pe-yellow) 24%, var(--sd-card));color:var(--tw-text-yellow)}.th-follow-arrow{color:var(--muted);flex-shrink:0;transition:color .15s}.th-follow button:hover .th-follow-arrow{color:var(--tw-text-blue)}.th-today .th-card-head h2{font-size:1.25rem}.th-loop summary{cursor:pointer;justify-content:space-between;align-items:center;list-style:none;display:flex}.th-loop summary::-webkit-details-marker{display:none}.th-loop summary svg{color:var(--muted);transition:transform .16s}.th-loop[open] summary svg{transform:rotate(180deg)}.th-loop summary:focus-visible{outline:2px solid var(--pe-blue);outline-offset:4px;border-radius:8px}.th-loop[open] ol{margin-top:12px}.th-loop ol{gap:10px;margin:0;padding:0;list-style:none;display:grid}.th-loop li{color:var(--pe-navy);align-items:flex-start;gap:12px;font-size:.875rem;line-height:1.4;display:flex}.th-loop li>span{background:color-mix(in srgb, var(--pe-blue) 12%, var(--sd-card));color:var(--tw-text-blue);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-top:-2px;font-size:.75rem;font-weight:800;display:inline-flex}@media (prefers-reduced-motion:reduce){.th-pulse,.tl .th-pulse,.tl--live .tl-node span{animation:none}}@media (max-width:1200px){.th-layout{grid-template-columns:minmax(0,1fr)}.th-main,.th-side{display:contents}.th-today{order:1}.th-attention{order:2}.th-followup{order:4}.th-loop{order:5}}@media (max-width:720px){.th{gap:16px}.th-card{padding:16px}.th-follow button{grid-template-columns:auto minmax(0,1fr) auto;row-gap:4px}.th-follow-reason{white-space:normal;grid-area:2/2/auto/-1}.th-follow-arrow{display:none}}.av{--av-night:#243b53;--av-day:#ffc83d;--av-evening:#ff6b6b;--av-on:var(--pe-blue);--av-class:#243b53;--av-once:#ff6b6b;--av-demo:#ffc83d;--av-empty:color-mix(in srgb, var(--pe-navy) 4%, var(--sd-card));gap:28px}:root[data-theme=dark] .av{--av-class:#5b7a99;--av-night:#8fa6c0}.av-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 24px;display:flex}.av-head h1{color:var(--pe-navy);letter-spacing:-.01em;margin:0;font-size:clamp(1.45rem,2.4vw,1.75rem);font-weight:800}.av-head p{color:var(--muted);margin:6px 0 0;font-size:.875rem}.av-save{align-items:center;gap:12px;display:flex}.av-unsaved{color:var(--tw-text-yellow);align-items:center;gap:6px;font-size:.8125rem;font-weight:700;display:inline-flex}.av-unsaved:before{background:var(--pe-yellow);content:"";border-radius:50%;width:7px;height:7px}.av-overview{background:var(--sd-card);border:1px solid var(--sd-line);border-radius:16px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:24px 40px;padding:22px 26px;display:grid}.av-total strong{color:var(--pe-navy);font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:3rem;font-weight:800;line-height:1;display:block}.av-total strong span{color:var(--muted);margin-left:2px;font-size:1.5rem;font-weight:700}.av-total p{color:var(--muted);margin:6px 0 12px;font-size:.875rem}.av-zone{background:var(--av-empty);color:var(--pe-navy);border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.av-map{gap:5px;min-width:0;display:grid}.av-map-row,.av-map-axis{grid-template-columns:34px repeat(3,minmax(0,1fr));align-items:center;gap:4px;display:grid}.av-map-day{color:var(--muted);font-size:.75rem;font-weight:700}.av-map-row.is-today .av-map-day{color:var(--tw-text-blue)}.av-map-shift{cursor:pointer;background:0 0;border:0;border-radius:8px;grid-template-columns:repeat(8,minmax(0,1fr));gap:2px;padding:2px;transition:background .15s;display:grid}.av-map-shift.is-active{background:color-mix(in srgb, var(--pe-blue) 14%, transparent)}.av-map-shift:not(.is-active):hover{background:color-mix(in srgb, var(--pe-navy) 6%, transparent)}.av-map-shift i{background:var(--av-empty);border-radius:4px;height:12px;display:block}.av-map-shift i.is-on{background:var(--av-on)}.av-map-shift i.is-class{background:var(--av-class)}.av-map-shift i.is-class-off{background:color-mix(in srgb, var(--av-class) 35%, transparent)}.av-map-axis{margin-top:2px;padding-inline:2px}.av-map-axis span{color:var(--muted);font-size:.6875rem;font-weight:600}.av-map-axis span:nth-child(n+2){grid-row:1}.av-map-axis span:nth-child(2){grid-column:2}.av-map-axis span:nth-child(3){grid-column:3}.av-map-axis span:nth-child(4){grid-column:4}.av-map-axis span:nth-child(5){grid-column:4;justify-self:end}.av-editor{gap:16px;display:grid}.av-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.av-shifts{background:var(--av-empty);border-radius:16px;flex:100%;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:4px;display:grid}.av-shift{color:var(--muted);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;gap:10px;padding:9px 12px;transition:background .15s,box-shadow .15s,color .15s;display:flex;position:relative}.av-shift:hover{color:var(--pe-navy)}.av-shift.is-active{background:var(--sd-card);color:var(--pe-navy);box-shadow:0 1px 2px #0f1b2b0f,0 4px 14px -6px #0f1b2b2e}.av-shift:focus-visible{outline:2px solid var(--pe-blue);outline-offset:2px}.av-shift-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.av-shift--night .av-shift-icon{background:color-mix(in srgb, var(--av-night) 14%, transparent);color:var(--av-night)}.av-shift--day .av-shift-icon{background:color-mix(in srgb, var(--av-day) 18%, transparent);color:color-mix(in srgb, var(--av-day) 75%, var(--pe-navy))}.av-shift--evening .av-shift-icon{background:color-mix(in srgb, var(--av-evening) 15%, transparent);color:var(--av-evening)}.av-shift--all .av-shift-icon{background:color-mix(in srgb, var(--pe-blue) 13%, transparent);color:var(--tw-text-blue)}.av-shift-text{flex:1;gap:1px;min-width:0;display:grid}.av-shift-text strong{font-size:.875rem;font-weight:800}.av-shift-text small{opacity:.85;white-space:nowrap;font-size:.75rem;font-weight:600}.av-shift-count{background:color-mix(in srgb, var(--pe-blue) 12%, transparent);color:var(--tw-text-blue);font-variant-numeric:tabular-nums;border-radius:999px;padding:3px 8px;font-size:.75rem;font-weight:800}.av-shift-count.is-zero{color:var(--muted);background:0 0}.av-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-left:auto;display:flex}.av-actions .tw-btn{min-height:40px}.av-menu{position:relative}.av-menu-trigger{background:var(--sd-card);border:1px solid var(--sd-line);color:var(--pe-navy);cursor:pointer;font:inherit;border-radius:12px;align-items:center;gap:6px;min-height:40px;padding:0 14px;font-size:.875rem;font-weight:700;display:inline-flex}.av-menu-trigger:hover{border-color:var(--pe-blue)}.av-menu-list{background:var(--sd-card);border:1px solid var(--sd-line);z-index:20;border-radius:12px;min-width:250px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px -12px #0f1b2b47}.av-menu-label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:6px 10px 4px;font-size:.6875rem;font-weight:700}.av-menu-list button{color:var(--pe-navy);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:8px;padding:9px 10px;font-size:.875rem;font-weight:600}.av-menu-list button:hover,.av-menu-list button:focus-visible{background:color-mix(in srgb, var(--pe-blue) 9%, transparent);outline:none}.av-menu-list button.is-danger{color:var(--tw-text-coral)}.av-menu-list hr{border:0;border-top:1px solid var(--sd-line);margin:4px 6px}.av-grid{background:var(--sd-card);border:1px solid var(--sd-line);-webkit-user-select:none;user-select:none;border-radius:16px;grid-template-columns:64px repeat(7,minmax(0,1fr));padding:10px 14px 14px 6px;display:grid}.av-row{display:contents}.av-corner{border-bottom:1px solid var(--sd-line)}.av-day{border:0;border-bottom:1px solid var(--sd-line);cursor:pointer;font:inherit;background:0 0;justify-items:center;gap:1px;margin-bottom:6px;padding:4px 0 10px;display:grid}.av-day strong{color:var(--pe-navy);font-size:.8125rem;font-weight:800}.av-day small{color:var(--muted);font-size:.75rem;font-weight:600}.av-day.is-today strong,.av-day:hover strong{color:var(--tw-text-blue)}.av-hour{color:var(--muted);cursor:pointer;font:inherit;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;background:0 0;border:0;padding:0 10px 0 0;font-size:.75rem;font-weight:700}.av-hour:hover{color:var(--tw-text-blue)}.av-cell{background:var(--av-empty);cursor:pointer;border:0;border-radius:8px;justify-content:space-between;align-items:flex-start;min-height:34px;margin:3px 4px;padding:6px 8px;transition:background .12s,box-shadow .12s;display:flex;position:relative}.av-cell:hover{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--pe-blue) 55%, transparent)}.av-cell.is-on{background:var(--av-on)}.av-cell.is-on:hover{box-shadow:inset 0 0 0 2px #ffffff73}.av-cell.join-top{border-top-left-radius:0;border-top-right-radius:0;margin-top:0;padding-top:9px}.av-cell.join-bottom{border-bottom-right-radius:0;border-bottom-left-radius:0;margin-bottom:0}.av-cell-range{color:#fff;pointer-events:none;text-align:left;font-size:.6875rem;font-weight:700;line-height:1.2}.av-cell-class{color:var(--av-class);pointer-events:none;flex-shrink:0;margin-left:auto}.av-cell.has-class{background:color-mix(in srgb, var(--av-class) 14%, var(--sd-card))}.av-cell.is-on.has-class{background:var(--av-class)}.av-cell.is-on .av-cell-class,.av-cell.is-once .av-cell-class{color:#fff}.av-cell:focus-visible{outline:2px solid var(--pe-blue);outline-offset:1px;z-index:1}.av-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;display:flex}.av-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 18px;margin:0;font-size:.75rem;display:flex}.av-legend span{align-items:center;gap:6px;display:inline-flex}.av-key{background:var(--av-empty);border-radius:4px;width:12px;height:12px;display:inline-block}.av-key.is-on{background:var(--av-on)}.av-key.is-class{background:var(--av-class)}.av-hint{color:var(--muted);margin:0;font-size:.75rem}.av-off-intro{color:var(--muted);margin:0;font-size:.875rem}.av-off-empty{color:var(--muted);text-align:center;margin:0;padding:8px 0;font-size:.875rem}.av-off-count{background:var(--pe-blue);color:#fff;border-radius:999px;min-width:18px;padding:3px 6px;font-size:.6875rem;font-weight:800;line-height:1}.av-off-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:10px 12px;display:grid}.av-off-form .av-off-note{grid-column:1/-1}.av-off-form>.tw-btn{justify-self:start}.av-off-form label{gap:5px;display:grid}.av-off-form label span{color:var(--muted);font-size:.75rem;font-weight:700}.av-off-form input{background:var(--sd-card);border:1px solid var(--sd-line);color:var(--pe-navy);font:inherit;border-radius:12px;width:100%;min-height:42px;padding:0 12px;font-size:.875rem}.av-off-form input:focus{border-color:var(--pe-blue);outline:3px solid color-mix(in srgb, var(--pe-blue) 18%, transparent)}.av-off-form .tw-btn{min-height:42px;padding:0 22px}.av-off-form .tw-form-error{grid-column:1/-1;margin:0}.av-off-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.av-off-list li{background:var(--sd-card);border:1px solid var(--sd-line);border-radius:16px;align-items:center;gap:14px;padding:10px 12px 10px 10px;display:flex}.av-off-list li.is-past{opacity:.55}.av-date-tile{background:color-mix(in srgb, var(--pe-blue) 9%, transparent);border-radius:12px;flex-shrink:0;place-items:center;width:48px;height:48px;padding:7px 0;line-height:1;display:grid}.av-date-tile small{color:var(--tw-text-blue);text-transform:uppercase;font-size:.6875rem;font-weight:800}.av-date-tile strong{color:var(--pe-navy);font-size:1.125rem;font-weight:800}.av-off-text{flex:1;gap:2px;min-width:0;display:grid}.av-off-text strong{color:var(--pe-navy);font-size:.875rem}.av-off-text small{color:var(--muted);font-size:.8125rem}.av-off-impact{color:var(--muted);white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:.75rem;font-weight:700}.av-off-impact.is-warn{background:color-mix(in srgb, var(--pe-yellow) 22%, transparent);color:var(--tw-text-yellow)}.av-off-impact.is-ok{background:color-mix(in srgb, var(--tw-green) 13%, transparent);color:var(--tw-text-green)}:root[data-theme=dark] .av-shift.is-active{background:color-mix(in srgb, #fff 9%, var(--sd-card));box-shadow:none}@media (max-width:900px){.av-overview{grid-template-columns:minmax(0,1fr);padding:18px}.av-total{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.av-total strong{font-size:2rem}.av-total p{margin:0}.av-shifts{flex-basis:100%;max-width:none}}@media (max-width:720px){.av-save{justify-content:space-between;width:100%}.av-shift{text-align:center;flex-direction:column;gap:4px;padding:10px 6px}.av-shifts{grid-template-columns:repeat(2,minmax(0,1fr))}.av-shift-icon{width:30px;height:30px}.av-shift-text small{font-size:.6875rem}.av-shift-count{padding:2px 6px;font-size:.6875rem}.av-actions{flex-wrap:wrap;width:100%}.av-actions .av-unsaved{justify-content:flex-end;width:100%}.av-actions .av-menu{flex:1}.av-actions .av-menu-trigger{justify-content:center;width:100%}.av-actions>.tw-btn{flex:1}.av-grid{grid-template-columns:44px repeat(7,minmax(0,1fr));padding:8px 8px 10px 2px}.av-hour{padding-right:4px;font-size:.6875rem}.av-day small{font-size:.6875rem}.av-cell{min-height:34px;margin:2px;padding:4px}.av-cell.join-top{padding-top:6px}.av-cell-range{display:none}.av-cell-class{margin:auto}.av-hint{display:none}.av-off-list li{flex-wrap:wrap}.av-off-impact{margin-left:62px}}.cc-class-pill--demo{background:color-mix(in srgb, var(--pe-yellow) 28%, transparent);color:var(--tw-text-yellow)}.df-choice{flex-wrap:wrap;gap:10px;display:flex}.df-choice button{background:var(--sd-card);border:1.5px solid var(--sd-line);color:var(--pe-navy);cursor:pointer;font:inherit;border-radius:12px;min-height:42px;padding:0 18px;font-size:.875rem;font-weight:700;transition:border-color .15s,background .15s}.df-choice button:hover{border-color:color-mix(in srgb, var(--pe-blue) 50%, var(--sd-line))}.df-choice button.is-on{background:color-mix(in srgb, var(--pe-blue) 10%, var(--sd-card));border-color:var(--pe-blue);color:var(--tw-text-blue)}.df-choice button:focus-visible{outline:2px solid var(--pe-blue);outline-offset:2px}.pay{gap:18px}.pay .tw-page-head p{max-width:70ch;font-size:.875rem}.pay-summary{grid-template-columns:minmax(240px,1fr) minmax(0,1.3fr);align-items:stretch;gap:20px;display:grid}.pay-total{background:linear-gradient(150deg, #243b53, color-mix(in srgb, #243b53 80%, var(--pe-blue)));color:#fff;border-radius:16px;gap:4px;padding:22px 24px;display:grid}.pay-total-icon{color:var(--pe-yellow);background:#ffffff1f;border-radius:12px;justify-content:center;align-items:center;width:38px;height:38px;margin-bottom:6px;display:inline-flex}.pay-total p{color:#ffffffbf;margin:0;font-size:.8125rem;font-weight:600}.pay-total strong{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:clamp(2rem,4vw,2.6rem);font-weight:800;line-height:1.1}.pay-total small{color:#ffffffb3;font-size:.8125rem}.pay-breakdown{background:var(--sd-card);border:1px solid var(--sd-line);border-radius:16px;margin:0;padding:8px 22px;display:grid}.pay-breakdown>div{justify-content:space-between;align-items:center;gap:12px;padding:14px 0;display:flex}.pay-breakdown>div+div{border-top:1px solid var(--sd-line)}.pay-breakdown dt{color:var(--pe-navy);align-items:center;gap:10px;font-size:.875rem;font-weight:600;display:inline-flex}.pay-breakdown dd{color:var(--pe-navy);font-variant-numeric:tabular-nums;margin:0;font-size:1.125rem;font-weight:800}.pay-kind{letter-spacing:.04em;text-transform:uppercase;border-radius:8px;padding:3px 8px;font-size:.6875rem;font-weight:800}.pay-kind--regular{background:color-mix(in srgb, var(--pe-blue) 13%, var(--sd-card));color:var(--tw-text-blue)}.pay-kind--demo{background:color-mix(in srgb, var(--pe-yellow) 30%, var(--sd-card));color:var(--tw-text-yellow)}.pay-days{background:var(--sd-card);border:1px solid var(--sd-line);border-radius:16px;gap:8px;padding:20px;display:grid}.pay-days-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.pay-days-head h2{color:var(--pe-navy);margin:0;font-size:1.125rem;font-weight:800}.pay-days-head p{color:var(--muted);margin:2px 0 0;font-size:.8125rem}.pay-empty{color:var(--muted);margin:6px 0;font-size:.875rem}.pay-day-list{margin:0 -20px;padding:0;list-style:none;display:grid}.pay-day-list>li{border-top:1px solid color-mix(in srgb, var(--sd-line) 75%, transparent)}.pay-day-list>li.is-open{background:color-mix(in srgb, var(--pe-navy) 2%, transparent)}.pay-day{color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;grid-template-columns:120px minmax(0,1fr) auto 18px;align-items:center;gap:14px;width:100%;padding:14px 20px;transition:background .15s;display:grid}.pay-day:hover{background:color-mix(in srgb, var(--pe-blue) 5%, transparent)}.pay-day:focus-visible{outline:2px solid var(--pe-blue);outline-offset:-2px}.pay-day-date{color:var(--pe-navy);font-size:.875rem;font-weight:800}.pay-day-count{color:var(--pe-navy);flex-wrap:wrap;align-items:baseline;gap:2px 10px;font-size:.875rem;display:flex}.pay-day-count small{color:var(--muted);font-size:.75rem}.pay-day-amount{color:var(--pe-navy);font-variant-numeric:tabular-nums;font-size:1rem;font-weight:800}.pay-entries{margin:0;padding:0 20px 12px 154px;list-style:none;display:grid}.pay-entries li{border-top:1px dashed color-mix(in srgb, var(--sd-line) 80%, transparent);grid-template-columns:72px minmax(0,1fr) auto 70px;align-items:center;gap:12px;padding:9px 0;display:grid}.pay-entry-time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8125rem}.pay-entry-text{gap:1px;min-width:0;display:grid}.pay-entry-text strong{color:var(--pe-navy);font-size:.875rem}.pay-entry-text small{color:var(--muted);font-size:.75rem}.pay-entry-amount{color:var(--pe-navy);font-variant-numeric:tabular-nums;text-align:right;font-size:.875rem;font-weight:700}.pay-foot{border-top:2px solid var(--sd-line);justify-content:space-between;align-items:baseline;margin:0 -20px -20px;padding:14px 20px;display:flex}.pay-foot span{color:var(--muted);font-size:.875rem;font-weight:700}.pay-foot strong{color:var(--pe-navy);font-variant-numeric:tabular-nums;font-size:1.125rem;font-weight:800}@media (max-width:860px){.pay-summary{grid-template-columns:minmax(0,1fr)}}@media (max-width:600px){.pay-day{grid-template-columns:minmax(0,1fr) auto 18px}.pay-day-count{grid-area:2/1}.pay-day-amount{grid-row:1/span 2}.pay-days{padding:16px}.pay-day-list{margin:0 -16px}.pay-day{padding:12px 16px}.pay-entries{padding:0 16px 10px}.pay-entries li{grid-template-columns:60px minmax(0,1fr) auto}.pay-entries .pay-kind{display:none}.pay-foot{margin:0 -16px -16px;padding:12px 16px}}.adm{gap:16px}.adm .tw-page-head p{max-width:72ch;font-size:.875rem}.adm-note{background:color-mix(in srgb, var(--pe-yellow) 18%, var(--sd-card));color:var(--tw-text-yellow);border-radius:12px;margin:0;padding:8px 12px;font-size:.8125rem;font-weight:600}.adm-empty{color:var(--muted);margin:6px 0;font-size:.875rem}.adm-list{background:var(--sd-card);border:1px solid var(--sd-line);border-radius:16px;margin:0;padding:0;list-style:none;display:grid}.adm-row{grid-template-columns:minmax(160px,.8fr) minmax(0,1.6fr) auto;align-items:center;gap:10px 20px;padding:14px 18px;display:grid}.adm-row+.adm-row{border-top:1px solid color-mix(in srgb, var(--sd-line) 75%, transparent)}.adm-who{gap:1px;display:grid}.adm-who strong{color:var(--pe-navy);font-size:1rem}.adm-who small{color:var(--muted);font-size:.8125rem}.adm-detail{gap:2px;min-width:0;display:grid}.adm-detail small{color:var(--muted);font-size:.75rem;font-weight:700}.adm-detail span{color:var(--pe-navy);font-size:.875rem}.adm-detail .adm-ppt{color:var(--muted);font-size:.8125rem}.adm-feedback small{color:var(--tw-text-yellow)}.adm-actions{justify-content:flex-end;align-items:center;gap:12px;display:flex}.adm-done{color:var(--tw-text-green);white-space:nowrap;align-items:center;gap:5px;font-size:.8125rem;font-weight:700;display:inline-flex}.adm-teachers{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}.adm-teachers legend{color:var(--pe-navy);margin-bottom:6px;padding:0;font-size:.8125rem;font-weight:700}.adm-teacher{border:1.5px solid var(--sd-line);cursor:pointer;border-radius:12px;align-items:center;gap:12px;padding:10px 12px;transition:border-color .15s,background .15s;display:flex}.adm-teacher:hover{border-color:color-mix(in srgb, var(--pe-blue) 45%, var(--sd-line))}.adm-teacher.is-on{background:color-mix(in srgb, var(--pe-blue) 7%, var(--sd-card));border-color:var(--pe-blue)}.adm-teacher.is-busy .adm-teacher-text{opacity:.6}.adm-teacher input[type=radio]{accent-color:var(--pe-blue);flex:0 0 18px;width:18px;height:18px;min-height:0;margin:0;padding:0}.adm-teacher-text{flex:1;gap:1px;min-width:0;display:grid}.adm-teacher-text strong{color:var(--pe-navy);font-size:.875rem}.adm-teacher-text small{color:var(--muted);font-size:.75rem}.adm-free{white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:.6875rem;font-weight:700}.adm-free.is-ok{background:color-mix(in srgb, var(--tw-green) 14%, var(--sd-card));color:var(--tw-text-green)}.adm-free.is-no{background:color-mix(in srgb, var(--pe-coral) 13%, var(--sd-card));color:var(--tw-text-coral)}.adm-card{background:var(--sd-card);border:1px solid var(--sd-line);border-radius:16px;gap:14px;max-width:640px;padding:20px;display:grid}.adm-example{background:color-mix(in srgb, var(--pe-blue) 7%, var(--sd-card));color:var(--pe-navy);border-radius:12px;margin:0;padding:10px 12px;font-size:.8125rem}.adm-form-foot{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px 14px;display:flex}.adm-form-foot .tw-form-error{margin:0 auto 0 0}.adm-saved{color:var(--tw-text-green);align-items:center;gap:5px;margin-right:auto;font-size:.8125rem;font-weight:700;display:inline-flex}@media (max-width:760px){.adm-row{grid-template-columns:minmax(0,1fr)}.adm-actions{justify-content:flex-start}}.tc-week{background:var(--sd-card);border:1px solid var(--sd-line);border-radius:16px;grid-template-columns:auto minmax(0,1fr);align-items:stretch;gap:16px 24px;padding:14px 18px;display:grid}.tc-week-total{border-right:1px solid var(--sd-line);align-content:center;gap:1px;padding-right:24px;display:grid}.tc-week-total strong{color:var(--pe-navy);font-variant-numeric:tabular-nums;font-size:2rem;font-weight:800;line-height:1}.tc-week-total span{color:var(--pe-navy);font-size:.875rem;font-weight:700}.tc-week-total small{color:var(--muted);white-space:nowrap;font-size:.75rem}.tc-week-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.tc-week-days li{background:color-mix(in srgb, var(--pe-blue) 7%, var(--sd-card));border-radius:12px;align-content:center;justify-items:center;gap:2px;padding:8px 4px;display:grid}.tc-week-days small{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.6875rem;font-weight:800}.tc-week-days strong{color:var(--tw-text-blue);font-variant-numeric:tabular-nums;font-size:1rem;font-weight:800}.tc-week-days li.is-free{background:color-mix(in srgb, var(--pe-navy) 3%, var(--sd-card))}.tc-week-days li.is-free strong{color:var(--muted);font-weight:600}.tc-week-days li.is-today{box-shadow:inset 0 0 0 2px var(--pe-blue)}.tc-week-days li.is-today small{color:var(--tw-text-blue)}.tw-class-week{font-weight:600;color:var(--pe-navy)!important}.tw-requests{background:var(--sd-card);border:1px solid var(--sd-line);border-radius:16px;gap:8px;margin-top:6px;padding:16px 20px;scroll-margin-top:16px;display:grid}.tw-requests h2{color:var(--pe-navy);margin:0;font-size:1rem;font-weight:800}@media (max-width:720px){.tc-week{grid-template-columns:minmax(0,1fr);padding:14px}.tc-week-total{border-right:0;border-bottom:1px solid var(--sd-line);grid-template-columns:auto 1fr;column-gap:10px;padding:0 0 12px}.tc-week-total strong{grid-row:1/span 2}.tc-week-days{gap:4px}.tc-week-days li{padding:6px 2px}}.tw-overview-cols--split{gap:24px}.tw-qchart--compact .tw-qchart-plot{height:130px;margin:6px 0 0 30px}.tw-qchart--compact .tw-qchart-grid em{width:26px;font-size:.6875rem;top:-7px;left:-30px}.tw-qchart--compact .tw-qchart-bars{gap:6px}.tw-qchart--compact .tw-qchart-group ol{gap:1px}.tw-qchart--compact .tw-qchart-bar{max-width:14px}.tw-qchart--compact .tw-qchart-module{font-size:.6875rem}.tw-qchart--compact .tw-qchart-caption{margin-top:8px;font-size:.6875rem}.tw-qchart--compact .tw-qchart-tip{white-space:normal;width:max-content;max-width:100%;font-size:.75rem}.tw-qchart--compact .tw-qchart-grid span:nth-child(2) em{display:none}.tt-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 20px;display:flex}.tt-nav{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tt-nav strong{color:var(--pe-navy);text-align:center;min-width:170px;font-size:1rem;font-weight:800}.tt-nav .tw-icon-btn{font-size:1.25rem;line-height:1}.tt-total{color:var(--muted);margin:0;font-size:.875rem}.tt-total strong{color:var(--pe-navy);font-size:1.125rem;font-weight:800}.tt-empty{background:var(--sd-card);border:1px dashed var(--sd-line);color:var(--muted);text-align:center;border-radius:16px;margin:0;padding:28px}.tt-scroll{background:var(--sd-card);border:1px solid var(--sd-line);border-radius:16px;overflow-x:auto}.tt{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;min-width:820px}.tt th,.tt td{border-bottom:1px solid color-mix(in srgb, var(--sd-line) 70%, transparent);border-left:1px solid color-mix(in srgb, var(--sd-line) 70%, transparent);vertical-align:top;padding:6px}.tt tr>:first-child{border-left:0}.tt tbody tr:last-child>*{border-bottom:0}.tt thead th{background:color-mix(in srgb, var(--pe-navy) 3%, var(--sd-card));text-align:center;padding:10px 6px}.tt thead th span{color:var(--muted);letter-spacing:.07em;text-transform:uppercase;font-size:.6875rem;font-weight:800;display:block}.tt thead th strong{color:var(--pe-navy);font-size:1rem;font-weight:800;display:block}.tt thead th.is-today{background:color-mix(in srgb, var(--pe-blue) 10%, var(--sd-card))}.tt thead th.is-today span,.tt thead th.is-today strong{color:var(--tw-text-blue)}.tt td.is-today{background:color-mix(in srgb, var(--pe-blue) 3%, var(--sd-card))}.tt-corner{width:64px}.tt-hour{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;width:64px;font-size:.75rem;font-weight:700;padding-top:12px!important}.tt-class{background:color-mix(in srgb, var(--pe-blue) 9%, var(--sd-card));border:0;border-left:3px solid var(--pe-blue);color:inherit;font:inherit;text-align:left;border-radius:8px;gap:1px;width:100%;min-height:52px;margin-bottom:4px;padding:7px 8px;display:grid}.tt-class:last-child{margin-bottom:0}button.tt-class{cursor:pointer;transition:background .15s,box-shadow .15s}button.tt-class:hover{background:color-mix(in srgb, var(--pe-blue) 16%, var(--sd-card))}button.tt-class:focus-visible{outline:2px solid var(--pe-blue);outline-offset:1px}.tt-class strong{color:var(--pe-navy);overflow-wrap:anywhere;font-size:.8125rem;font-weight:800;line-height:1.25}.tt-class span{color:var(--muted);font-size:.6875rem;line-height:1.3}.tt-class small{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.6875rem;font-weight:700}.tt-class--group{background:color-mix(in srgb, var(--pe-navy) 7%, var(--sd-card));border-left-color:var(--pe-navy)}button.tt-class--group:hover{background:color-mix(in srgb, var(--pe-navy) 12%, var(--sd-card))}.tt-class--demo{background:color-mix(in srgb, var(--pe-yellow) 20%, var(--sd-card));border-left-color:var(--pe-yellow)}.tt-class.is-done{opacity:.55}.tt-class.is-next{box-shadow:0 0 0 2px var(--pe-blue);opacity:1}.tt-class.is-live{box-shadow:0 0 0 2px var(--tw-green);opacity:1}.tt-legend{flex-wrap:wrap;gap:6px 16px;margin:-4px 0 0;padding:0;list-style:none;display:flex}.tt-key{color:var(--muted);align-items:center;gap:6px;font-size:.75rem;font-weight:600;display:inline-flex}.tt-key:before{content:"";border-radius:4px;width:12px;height:12px}.tt-key--one:before{background:color-mix(in srgb, var(--pe-blue) 25%, var(--sd-card));border-left:3px solid var(--pe-blue)}.tt-key--group:before{background:color-mix(in srgb, var(--pe-navy) 12%, var(--sd-card));border-left:3px solid var(--pe-navy)}.tt-key--demo:before{background:color-mix(in srgb, var(--pe-yellow) 35%, var(--sd-card));border-left:3px solid var(--pe-yellow)}.av-modebar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;display:flex}.av-mode{background:var(--av-empty);border-radius:12px;gap:4px;padding:4px;display:inline-flex}.av-mode button{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:9px 14px;font-size:.875rem;font-weight:800;transition:background .15s,color .15s,box-shadow .15s;display:inline-flex}.av-mode button small{opacity:.8;font-size:.75rem;font-weight:600}.av-mode button.is-on{background:var(--sd-card);color:var(--pe-navy);box-shadow:0 1px 2px #0f1b2b14,0 4px 12px -6px #0f1b2b33}.av-mode button.is-on.is-weekly{box-shadow:inset 0 0 0 2px var(--av-on)}.av-mode button.is-on.is-once{box-shadow:inset 0 0 0 2px var(--av-once)}.av-mode button:focus-visible{outline:2px solid var(--pe-blue);outline-offset:2px}.av-weeknav{align-items:center;gap:8px;display:flex}.av-weeknav strong{color:var(--pe-navy);text-align:center;min-width:160px;font-size:1rem;font-weight:800}.av-weeknav .tw-icon-btn{font-size:1.25rem;line-height:1}.av-adder{background:var(--sd-card);border:1px solid var(--sd-line);border-radius:16px;flex-wrap:wrap;align-items:flex-end;gap:10px 12px;padding:12px 14px;display:flex}.av-adder-label{color:var(--pe-navy);align-self:center;margin-right:4px;font-size:.875rem;font-weight:800}.av-adder label{gap:3px;display:grid}.av-adder label span{color:var(--muted);font-size:.6875rem;font-weight:700}.av-adder input{background:var(--sd-card);border:1px solid var(--sd-line);width:auto;color:var(--pe-navy);font:inherit;border-radius:8px;flex:none;min-height:36px;padding:0 10px;font-size:.875rem}.av-adder .tw-btn{min-height:36px}.av-adder .tw-form-error{flex-basis:100%;margin:0}.av-adder-days{flex-wrap:wrap;gap:4px;display:flex}.av-adder-days button{background:var(--av-empty);color:var(--muted);cursor:pointer;font:inherit;border:1.5px solid #0000;border-radius:8px;min-width:44px;min-height:36px;padding:0 8px;font-size:.75rem;font-weight:800}.av-adder-days button.is-on{background:color-mix(in srgb, var(--av-on) 14%, var(--sd-card));border-color:var(--av-on);color:var(--tw-text-blue)}.av-key.is-once{background:var(--av-once)}.av-key.is-demo{background:var(--av-demo)}.av-cell.is-once{background:var(--av-once)}.av-cell.is-once:hover{box-shadow:inset 0 0 0 2px #ffffff73}.av-cell.has-demo{background:color-mix(in srgb, var(--av-demo) 30%, var(--sd-card))}.av-cell.is-on.has-demo,.av-cell.is-once.has-demo{background:var(--av-demo)}.av-cell.has-demo .av-cell-class{color:#8a6100}.av-cell.has-demo .av-cell-range{color:#243b53}.av-cell.is-once.has-class{background:var(--av-class)}.av-cell.is-locked{cursor:not-allowed}.av-cell.is-locked:hover{box-shadow:none}.av-cell.is-past:not(.is-on):not(.is-once){opacity:.55}@media (max-width:720px){.av-mode{width:100%}.av-mode button{flex-direction:column;flex:1;justify-content:center;gap:2px}.av-weeknav{justify-content:space-between;width:100%}.av-adder-days button{min-width:38px}}.av-showing{color:var(--muted);align-items:center;gap:6px;margin:0;font-size:.875rem;display:inline-flex}.av-showing strong{color:var(--pe-navy)}.av-menu-list button{align-items:center;gap:8px;display:flex}.av-menu-list button small{color:var(--muted);margin-left:auto;padding-left:12px;font-size:.75rem}.av-menu-list button.is-current{background:color-mix(in srgb, var(--pe-blue) 10%, transparent);color:var(--tw-text-blue);font-weight:800}.av-mode button{padding:11px 16px;font-size:.875rem}.av-sum{background:var(--sd-card);border:1px solid var(--sd-line);border-radius:16px;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:16px 22px;display:flex}.av-sum-item{gap:1px;min-width:110px;display:grid}.av-sum-item small{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:6px;font-size:.75rem;font-weight:800;display:inline-flex}.av-sum-item strong{color:var(--pe-navy);font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:800;line-height:1.15}.av-sum-item span{color:var(--muted);font-size:.75rem}.av-sum-op{color:color-mix(in srgb, var(--muted) 70%, transparent);font-size:1.25rem;font-weight:800}.av-sum-item.is-total{background:color-mix(in srgb, var(--pe-blue) 8%, var(--sd-card));border-radius:12px;margin-left:auto;padding:8px 16px}.av-sum-item.is-total strong{color:var(--tw-text-blue)}@media (max-width:720px){.av-sum{gap:8px 12px;padding:14px}.av-sum-item{min-width:0}.av-sum-item strong{font-size:1.25rem}.av-sum-item.is-total{flex-basis:100%;margin-left:0}}.tt-scroll--day{overflow:clip}.tt-scroll--day thead th{z-index:2;position:sticky;top:calc(-1*clamp(18px,3vw,36px))}@media (max-width:900px){.tt-scroll--day{max-height:min(640px,75vh);overflow:auto}.tt-scroll--day thead th{top:0}}.tt-scroll--day thead th.is-today{background:color-mix(in srgb, var(--pe-blue) 10%, var(--sd-card))}.tt tbody tr.is-free>*{height:40px}.tt tbody tr.is-free .tt-hour{color:color-mix(in srgb, var(--muted) 60%, transparent)}.dash-shell--flat{grid-template-columns:308px 1fr}.dash-shell--flat .dash-sidebar{gap:22px;padding:24px 20px}.dash-shell--flat .dash-nav{gap:6px}.dash-shell--flat .dash-nav button{border-radius:12px;gap:14px;padding:12px 16px;font-size:1rem;font-weight:500}@media (max-width:860px){.dash-shell--flat{grid-template-columns:1fr}.dash-shell--flat .dash-sidebar{width:min(308px,86vw)}}.tw-class-progress{gap:8px;min-width:0;display:grid}.tw-class-progress strong{color:var(--pe-navy);font-variant-numeric:tabular-nums;font-size:.875rem;font-weight:700}.tw-class-progress .tw-progress-track{max-width:160px}@media (max-width:720px){.tw-student-metrics .tw-class-progress{grid-column:1/-1}}.th-today{container-type:inline-size}.tl{--tl-time:72px;--tl-node:18px;--tl-gap:12px;--tl-row:14px;gap:var(--tl-row);margin:6px 0 0;padding:0;list-style:none;display:grid;position:relative}.tl-step{align-items:start;gap:0 var(--tl-gap);grid-template-columns:var(--tl-time) var(--tl-node) minmax(0, 1fr);display:grid}.tl-time{text-align:right;gap:2px;padding-top:14px;display:grid}.tl-time strong{color:var(--pe-navy);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:1rem;font-weight:800}.tl-time small{color:var(--muted);font-size:.75rem;font-weight:600}.tl-node{justify-content:center;align-self:stretch;padding-top:17px;display:flex;position:relative}.tl-node:before{background:color-mix(in srgb, var(--pe-navy) 14%, transparent);bottom:calc(-1 * var(--tl-row));content:"";width:2px;position:absolute;top:0;left:50%;transform:translate(-50%)}.tl-step:first-child .tl-node:before{top:24px}.tl-step:last-child .tl-node:before{height:24px;bottom:auto}.tl-step:only-child .tl-node:before{display:none}.tl-node span{z-index:1;background:var(--sd-card);border:2px solid color-mix(in srgb, var(--pe-navy) 22%, var(--sd-line));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;display:inline-flex;position:relative}.tl--done .tl-node span{background:color-mix(in srgb, var(--pe-navy) 45%, var(--sd-card));border-color:#0000}.tl--pending .tl-node span{background:var(--pe-yellow);border-color:var(--pe-yellow)}.tl--next .tl-node span,.tl--soon .tl-node span{background:var(--pe-blue);border-color:var(--pe-blue);box-shadow:0 0 0 4px color-mix(in srgb, var(--pe-blue) 20%, transparent)}.tl--live .tl-node span{background:var(--pe-coral);border-color:var(--pe-coral);width:16px;height:16px;animation:1.6s ease-out infinite tl-pulse}.tl-event{background:var(--sd-card);border:1px solid var(--sd-line);border-radius:16px;gap:4px;min-width:0;padding:14px 18px 16px;transition:background .16s,border-color .16s;display:grid}.tl-event.is-clickable{cursor:pointer}.tl-event:hover{background:color-mix(in srgb, var(--pe-navy) 2%, var(--sd-card));border-color:color-mix(in srgb, var(--pe-navy) 20%, var(--sd-line))}.tl--live .tl-event{background:color-mix(in srgb, var(--pe-coral) 5%, var(--sd-card));border-color:color-mix(in srgb, var(--pe-coral) 40%, var(--sd-line));box-shadow:inset 3px 0 0 var(--pe-coral)}.tl--live .tl-event:hover{background:color-mix(in srgb, var(--pe-coral) 8%, var(--sd-card))}.tl--next .tl-event,.tl--soon .tl-event{background:color-mix(in srgb, var(--pe-blue) 7%, var(--sd-card));border-color:color-mix(in srgb, var(--pe-blue) 40%, var(--sd-line));box-shadow:inset 3px 0 0 var(--pe-blue)}.tl--pending .tl-event{border-color:color-mix(in srgb, var(--pe-yellow) 55%, var(--sd-line));box-shadow:inset 3px 0 0 var(--pe-yellow)}.tl--next .tl-event:hover,.tl--soon .tl-event:hover{background:color-mix(in srgb, var(--pe-blue) 8%, var(--sd-card))}.tl--live .tl-time strong{color:var(--tw-text-coral);font-size:1.125rem}.tl--next .tl-time strong,.tl--soon .tl-time strong{color:var(--tw-text-blue)}.tl-head{justify-content:space-between;align-items:center;gap:8px 12px;display:flex}.tl-course{color:var(--muted);flex-wrap:wrap;align-items:center;gap:7px;margin:0;font-size:.8125rem;font-weight:700;display:inline-flex}.tl--live .tl-course{color:var(--tw-text-coral)}.tl--next .tl-course,.tl--soon .tl-course{color:var(--tw-text-blue)}.tl-glyph{flex-shrink:0}.tl-glyph--dot{background:var(--pe-blue);border-radius:50%;width:8px;height:8px}.tl-glyph--ring{border:1.5px solid color-mix(in srgb, var(--pe-navy) 35%, var(--sd-line));border-radius:50%;width:8px;height:8px}.tl-glyph--done{color:var(--pe-navy)}.tl .th-pulse{background:var(--pe-coral);animation:1.6s ease-out infinite tl-pulse}@keyframes tl-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--pe-coral) 55%, transparent)}to{box-shadow:0 0 0 7px #0000}}.tl-status{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;font-size:.6875rem;font-weight:800}.tl-badge{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;gap:5px;padding:4px 9px;font-size:.6875rem;font-weight:800;line-height:1;display:inline-flex}.tl-badge--live{background:var(--pe-coral);color:#fff}.tl-badge--next{background:color-mix(in srgb, var(--pe-blue) 14%, var(--sd-card));color:var(--tw-text-blue)}.tl-badge--done{background:color-mix(in srgb, var(--pe-navy) 8%, var(--sd-card));color:var(--pe-navy)}.tl-badge--pending{background:color-mix(in srgb, var(--pe-yellow) 26%, var(--sd-card));color:var(--tw-text-yellow)}.tl-badge--demo{background:color-mix(in srgb, var(--pe-yellow) 30%, var(--sd-card));color:var(--tw-text-yellow);letter-spacing:.04em;padding:3px 7px}.tl-who{color:var(--pe-navy);margin:2px 0 0;font-size:.875rem}.tl-topic{color:var(--muted);margin:0;font-size:.875rem}.tl-topic strong{color:var(--pe-navy);font-size:1rem;font-weight:800}.tl-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:6px;font-size:.75rem;display:flex}.tl-meta-ok{color:var(--pe-navy);align-items:center;gap:5px;font-weight:700;display:inline-flex}.tl-meta-ok svg{color:var(--pe-blue)}.tl .th-coverage.is-full{border-color:color-mix(in srgb, var(--pe-blue) 45%, transparent);color:var(--tw-text-blue)}.tl--demo .tl-meta>span:first-child{font-style:italic}.tl-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.tl-view{margin-left:auto}.tl-event:hover .tl-view{color:var(--tw-text-blue)}.tl-actions .th-btn-mark{border-radius:12px;min-height:40px}.tl .th-btn-mark.is-due{background:var(--pe-yellow);color:var(--pe-navy)}.tl .th-btn-mark.is-due:hover{background:color-mix(in srgb, var(--pe-yellow) 85%, #000)}.tl-join{background:var(--sd-card);border:1.5px solid var(--pe-blue);color:var(--tw-text-blue);border-radius:12px;justify-content:center;gap:8px;min-height:40px;padding:0 18px;font-size:.875rem;font-weight:800;transition:background .15s,box-shadow .15s}.tl-join:hover{background:color-mix(in srgb, var(--pe-blue) 10%, var(--sd-card))}.tl-join:focus-visible{outline:2px solid var(--pe-blue);outline-offset:2px}.tl--soon .tl-join:not(.is-live){background:var(--pe-blue);color:#fff}.tl--soon .tl-join:not(.is-live):hover{background:color-mix(in srgb, var(--pe-blue) 88%, #000)}.tl-join.is-disabled{cursor:not-allowed;opacity:.45}.tl-join.is-disabled:hover{background:var(--sd-card)}.tl-join.is-live{background:var(--pe-coral);border-color:var(--pe-coral);color:#fff;min-width:160px;min-height:44px;font-size:.875rem}.tl-join.is-live:hover{background:color-mix(in srgb, var(--pe-coral) 88%, #000);box-shadow:0 8px 18px -10px color-mix(in srgb, var(--pe-coral) 80%, transparent)}.tl--done .tl-who,.tl--done .tl-topic strong{color:color-mix(in srgb, var(--pe-navy) 70%, var(--sd-card))}.tl--done .tl-time strong{color:var(--muted)}@container (max-width:620px){.tl{--tl-node:14px;--tl-gap:12px;--tl-row:18px}.tl-step{grid-template-columns:var(--tl-node) minmax(0, 1fr);row-gap:6px}.tl-node{grid-area:1/1/span 2;padding-top:3px}.tl-step:first-child .tl-node:before{top:10px}.tl-step:last-child .tl-node:before{height:10px}.tl-time{text-align:left;grid-area:1/2;align-items:baseline;gap:8px;padding-top:0;display:flex}.tl-event{grid-area:2/2;padding:12px 14px 14px}.tl-head{align-items:flex-start}.tl-actions .tl-join,.tl-actions .th-btn-mark{flex:140px}}.lv-length{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:14px;display:grid}.lv-field{gap:6px;margin-bottom:14px;display:grid}.lv-field span{color:var(--pe-navy);font-size:.8125rem;font-weight:700}.lv-field input{background:var(--sd-card);border:1px solid var(--sd-line);color:var(--pe-navy);font:inherit;border-radius:12px;min-height:40px;padding:0 12px}.lv-field input:focus-visible{border-color:var(--pe-blue);outline:2px solid color-mix(in srgb, var(--pe-blue) 30%, transparent)}.lv-range{color:var(--pe-navy);flex-wrap:wrap;align-items:baseline;gap:8px;margin:-4px 0 10px;font-size:1rem;font-weight:800;display:flex}.lv-range small{color:var(--muted);font-size:.75rem;font-weight:600}.lv-impact{background:color-mix(in srgb, var(--pe-blue) 6%, var(--sd-card));border:1px solid color-mix(in srgb, var(--pe-blue) 22%, var(--sd-line));color:var(--pe-navy);border-radius:12px;margin-bottom:16px;padding:12px 14px;font-size:.8125rem;line-height:1.45}.lv-impact.has-classes{background:color-mix(in srgb, var(--pe-yellow) 12%, var(--sd-card));border-color:color-mix(in srgb, var(--pe-yellow) 45%, var(--sd-line))}.lv-impact p{margin:0}.lv-impact ul{gap:4px;margin:10px 0 0;padding:0;list-style:none;display:grid}.lv-impact li{color:var(--pe-navy);font-size:.8125rem}.lv-impact li span{color:var(--muted);font-variant-numeric:tabular-nums;min-width:150px;margin-right:8px;display:inline-block}.lv-impact .lv-more{color:var(--muted)}.lv-applied{border-top:1px solid var(--sd-line);margin-top:4px;padding-top:12px}.lv-applied-title{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin:0 0 8px;font-size:.75rem;font-weight:800}.lv-applied ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.lv-applied li{background:var(--tw-soft);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:6px 6px 6px 12px;display:flex}.lv-applied li span{gap:1px;display:grid}.lv-applied li strong{color:var(--pe-navy);font-size:.8125rem}.lv-applied li small{color:var(--muted);font-size:.75rem}.av-day,.av-corner{background:var(--sd-card);z-index:3;box-shadow:0 6px 0 var(--sd-card);position:sticky;top:calc(-1*clamp(18px,3vw,36px))}.tw-students .tw-student-metrics{grid-template-columns:minmax(150px,1.3fr) repeat(3,minmax(80px,1fr))}.tw-students .tw-class-progress .tw-progress-track{max-width:220px}@media (max-width:1100px){.tw-students .tw-student-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.tw-students .tw-student-metrics .tw-class-progress{grid-column:1/-1}}.tw-btn,.sd-btn,.set-btn,.th-btn-mark,.tl-join,.av-menu-trigger{border-radius:12px;gap:8px;min-height:40px;padding:0 16px;font-size:.875rem;font-weight:700}.tw-btn--sm,.th-daynav-today{border-radius:8px;min-height:32px;padding:0 12px;font-size:.8125rem}.set-btn,.av-menu-trigger,.th-daynav-today,.th-btn-mark,.tl-join{background:var(--sd-card);border:1px solid var(--sd-line)}.th-btn-mark{color:var(--pe-navy)}.set-btn:hover,.av-menu-trigger:hover,.th-btn-mark:not(.is-due):hover,.tl-join:not(.is-live):not(.is-disabled):hover{background:var(--sd-card);border-color:color-mix(in srgb, var(--pe-blue) 45%, var(--sd-line))}.th-btn-mark.is-due,.tl-join.is-live{border-color:#0000}.tl--soon .tl-join:not(.is-live){border-color:var(--pe-blue)}.tl-join.is-live{min-width:0;min-height:40px}.tl--soon .tl-join:not(.is-live):hover{background:color-mix(in srgb, var(--pe-blue) 88%, #000);border-color:#0000}.dash-shell--flat .dash-nav-group+.dash-nav-group{margin-top:14px}.th-leave-list{margin:0 -10px;padding:0;list-style:none;display:grid}.th-leave-list li{border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;display:grid}.th-leave-list li+li{border-top:1px solid color-mix(in srgb, var(--sd-line) 70%, transparent)}.th-leave-text{gap:2px;min-width:0;display:grid}.th-leave-text strong{color:var(--pe-navy);font-size:.875rem}.th-leave-text small{color:var(--muted);font-size:.75rem}.th-leave-text .th-leave-reason{text-overflow:ellipsis;white-space:nowrap;font-style:italic;overflow:hidden}:root[data-theme=dark] .th-leave-text strong{color:inherit}.tl--cancelled .tl-event{background:color-mix(in srgb, var(--pe-navy) 3%, var(--sd-card));border-style:dashed}.tl--cancelled .tl-time strong{color:var(--muted);text-decoration:line-through}.tl--cancelled .tl-who{color:var(--muted)}.tl-badge--off{background:color-mix(in srgb, var(--pe-coral) 14%, var(--sd-card));color:var(--tw-text-coral)}.tt-class.is-off{opacity:.6}.tt-class.is-off strong{text-decoration:line-through}.tt-off{color:var(--tw-text-coral);font-size:.6875rem;font-style:normal;font-weight:800}
