.progress-line{z-index:70;pointer-events:none;opacity:0;height:3px;transition:opacity .2s var(--ease) 60ms;position:fixed;top:0;left:0;right:0}.progress-line>span{transform-origin:0;background:var(--accent);width:100%;height:100%;box-shadow:0 0 10px color-mix(in srgb, var(--accent) 60%, transparent), 0 0 4px color-mix(in srgb, var(--accent) 50%, transparent);transition:transform .22s var(--ease);display:block}.progress-line.is-running{opacity:1;transition:none}.progress-line.is-finishing{opacity:0}.progress-line.is-idle>span{transition:none}@media (prefers-reduced-motion:reduce){.progress-line>span{transition:none}}@media print{.progress-line{display:none!important}}.btn,.nav-link,.tabbar a,.lesson-row a,.panel-list a,.menu a,.menu button,.back-link,.part,.credential,.card-link,.outline-toggle,.drawer-close,.choice,.module-card>summary,.side-module>summary,.program-card h3 a,.player-side-head a,.account-menu>summary,.dropzone{-webkit-tap-highlight-color:transparent}.btn:active{background:var(--primary-dark);transition-duration:0s;transform:translateY(1px)scale(.985)}.btn-secondary:active{background:var(--primary-tint);border-color:var(--primary)}.btn-light:active{background:color-mix(in srgb, var(--on-primary) 86%, var(--primary))}.btn-ghost-light:active{background:color-mix(in srgb, var(--on-primary) 18%, transparent)}.btn-quiet:active{background:var(--primary-tint)}.btn[disabled]:active,.btn[aria-disabled=true]:active{transform:none}.nav-link:active,.tabbar a:active{background:var(--primary-tint);color:var(--primary);transition-duration:0s}.tabbar a:active svg{transform:scale(.92)}.tabbar a svg{transition:transform var(--fast) var(--ease)}.lesson-row a:active,.panel-list a:active,.menu a:active,.menu button:active,.module-card>summary:active,.side-module>summary:active{background:var(--primary-tint);transition-duration:0s}.lesson-row a:active .lesson-icon{transform:scale(.94)}.lesson-icon{transition:transform var(--fast) var(--ease)}.part:active,.credential:active,.card-link:active{transition-duration:0s;transform:scale(.99)}.outline-toggle{transition:background var(--fast) var(--ease), transform var(--fast) var(--ease)}.outline-toggle:active{background:var(--primary-wash);transition-duration:0s;transform:scale(.995)}.drawer-close{transition:background var(--fast) var(--ease)}.drawer-close:active{background:var(--primary-tint);transition-duration:0s}.choice:active{border-color:var(--primary);background:var(--primary-wash);transition-duration:0s}.back-link:active,.player-side-head a:active,.program-card h3 a:active{color:var(--primary)}.account-menu>summary:active .avatar{box-shadow:0 0 0 2px var(--page), 0 0 0 3.5px var(--accent);transform:scale(.96)}.dropzone:active{border-color:var(--primary);background:var(--primary-wash)}a:active{text-decoration-thickness:2px}@media (prefers-reduced-motion:reduce){.btn:active,.part:active,.credential:active,.card-link:active,.outline-toggle:active,.tabbar a:active svg,.lesson-row a:active .lesson-icon,.account-menu>summary:active .avatar{transform:none}}.btn[aria-busy=true]{cursor:progress;background:var(--primary-dark)}.btn-secondary[aria-busy=true]{background:var(--primary-tint)}.btn[aria-busy=true] .arrow{animation:speed-nudge .9s var(--ease) infinite}@keyframes speed-nudge{0%,to{transform:translate(0)}50%{transform:translate(4px)}}@media (prefers-reduced-motion:reduce){.btn[aria-busy=true] .arrow{animation:none}}.lesson-help{max-width:var(--measure);text-align:center;color:var(--muted);margin:14px auto 0}.lesson-help a{color:var(--muted);font-weight:400}.lesson-help a:hover{color:var(--primary)}@media print{.lesson-help{display:none}}.nav-skeleton{z-index:39;background:var(--page);animation:fade-in var(--fast) var(--ease);position:fixed;bottom:0;left:0;right:0;overflow:hidden}@media print{.nav-skeleton{display:none}}.sk{background:color-mix(in srgb, var(--page-shade) 70%, var(--line));border-radius:8px;display:block;position:relative;overflow:hidden}.sk:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--surface) 70%, transparent), transparent);animation:sk-sheen 1.3s .25s var(--ease) infinite;position:absolute;inset:0;transform:translate(-100%)}@keyframes sk-sheen{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.sk:after{animation:none;display:none}}.sk-line{height:12px;margin:10px 0}.sk-line.is-lg{height:16px}.sk-title{border-radius:10px;width:62%;height:30px;margin:10px 0 12px}.sk-eyebrow{border-radius:6px;width:120px;height:10px}.sk-pill{border-radius:999px;width:110px;height:28px;margin:0 8px 8px 0;display:inline-block}.sk-btn{border-radius:999px;width:168px;height:46px;margin-right:10px;display:inline-block}.sk-circle{border-radius:50%;flex:none}.sk-on-dark{background:color-mix(in srgb, var(--on-primary) 14%, transparent)}.sk-on-dark:after{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--on-primary) 14%, transparent), transparent)}.sk-hero{min-height:212px}.sk-hero .sk-title{width:70%}.sk-row{align-items:center;gap:12px;padding:10px 12px;display:flex}.sk-row .sk-line{flex:1;margin:0}.sk-card-lines{padding:4px 0}.sk-sheet{min-height:60vh}.sk-sheet .sk-line:nth-child(4n){width:82%}.sk-sheet .sk-line:nth-child(7n){width:64%}.sk-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px;display:grid}.sk-tile{text-align:center;place-items:center;min-height:230px;display:grid}@media (max-width:760px){.sk-title{width:86%;height:26px}.sk-btn{width:100%;margin:0 0 10px}.sk-hero{min-height:230px}}.today .today-section h2{align-items:center;gap:10px;margin:0;font-size:1.1rem;display:flex}.today .today-section>p{margin:6px 0 12px}.today-count{min-width:28px;height:24px;font:700 .8rem/1 var(--font-body);background:var(--primary-tint);color:var(--primary);border-radius:999px;place-items:center;padding:0 8px;display:inline-grid}.today-empty{background:var(--page);border-radius:12px;margin:0;padding:14px 16px}.today-next{margin-top:4px;font-size:.8rem}.today-table td .pill{margin-top:4px}.today-stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.today-stat{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1);color:var(--ink);padding:14px 14px 12px;text-decoration:none;display:block}.today-stat:hover{border-color:var(--line-strong)}.today-stat:active{background:var(--primary-tint)}.today-stat strong{font:600 1.6rem/1.1 var(--font-display);font-variant-numeric:tabular-nums;display:block}.today-stat span{color:var(--muted);margin-top:4px;font-size:.78rem;display:block}.today-messages{gap:12px;margin:0;padding:0;list-style:none;display:grid}.today-message{border:1px solid var(--line);background:color-mix(in srgb, var(--page) 40%, var(--surface));border-radius:12px;padding:14px 16px}.today-message-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.today-message-actions{gap:8px}.today-message-actions form{margin:0}.today-message-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0 8px;font-size:.95rem}@media (max-width:900px){.today-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:760px){.today-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.today-table thead{display:none}.today-table,.today-table tbody,.today-table tr,.today-table td{width:100%;display:block}.today-table tr{border-bottom:1px solid var(--line);padding:10px 0}.today-table tbody tr:hover td{background:0 0}.today-table td{border:0;grid-template-columns:112px minmax(0,1fr);gap:10px;padding:4px 0;display:grid}.today-table td:before{content:attr(data-label);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-top:2px;font-size:.7rem;font-weight:700}.today-message-actions{width:100%}.today-message-actions .btn{flex:1}.today-message-actions form{flex:1;display:flex}}
