:root{font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#111827;background-color:#f5f7fb;--text: #111827;--bg: #f5f7fb;--brand-strong: #1d4ed8;--brand-soft: #e0e9ff;--surface: #ffffff;--surface-alt: #f3f4f6;--text-muted: #64748b;--border: #e5e7eb;--shadow-sm: 0 6px 18px rgba(15, 23, 42, .08);--shadow-xs: 0 2px 8px rgba(15, 23, 42, .06);--radius-outer: 18px;--radius-card: 12px;--radius-control: 8px;--radius-badge: 6px}@media(prefers-color-scheme:dark){:root{color:#e2e8f0;background-color:#0b1120;--text: #e2e8f0;--bg: #0b1120;--brand-strong: #60a5fa;--brand-soft: rgba(96, 165, 250, .18);--surface: #111827;--surface-alt: #1e293b;--text-muted: #94a3b8;--border: #1e293b;--shadow-sm: 0 10px 24px rgba(3, 7, 18, .55);--shadow-xs: 0 4px 12px rgba(3, 7, 18, .35);--radius-outer: 18px;--radius-card: 12px;--radius-control: 8px;--radius-badge: 6px}}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;color:var(--text);background-color:var(--bg)}a{color:inherit;text-decoration:none}button,input,select{font-family:inherit}input,select{width:100%;padding:.6rem .75rem;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.85rem;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--brand-strong);box-shadow:0 0 0 3px var(--brand-soft);outline:none}label{display:grid;gap:.35rem;font-size:.9rem;color:var(--text-muted)}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid rgba(59,130,246,.3);outline-offset:2px}ul{margin:.5rem 0 0;padding-left:1.2rem;color:var(--text-muted)}body{overflow-x:clip;max-width:100vw}dd,.detail-value,[class*=text-right]{word-break:break-word;overflow-wrap:break-word}@media(max-width:480px){select{max-width:100%;text-overflow:ellipsis}}.scroll-hint-right{-webkit-mask-image:linear-gradient(to right,black 85%,transparent 100%);mask-image:linear-gradient(to right,black 85%,transparent 100%)}@supports (padding-bottom: env(safe-area-inset-bottom)){.safe-bottom{padding-bottom:env(safe-area-inset-bottom,0)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.focus-visible-skip:focus{position:fixed;top:8px;left:8px;z-index:10000;width:auto;height:auto;padding:.75rem 1.25rem;margin:0;clip:auto;overflow:visible;background:var(--bg-card, #fff);color:var(--text, #1e293b);border:2px solid var(--accent, #3b82f6);border-radius:8px;font-size:.9rem;font-weight:600;box-shadow:0 4px 16px #00000026;text-decoration:none}@keyframes contentEnter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(14px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes bottomSheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes cardFadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes badgePop{0%{transform:scale(.7);opacity:0}70%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes kpiEnter{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes unread-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.25)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes feedModalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes feedModalSlideUp{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pillActivate{0%{box-shadow:0 0 #1d4ed84d}to{box-shadow:0 1px 4px #00000029}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes statReveal{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes tabEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes tapFeedback{0%{background:transparent}50%{background:var(--surface-alt)}to{background:transparent}}@keyframes progressGrow{0%{width:0}}@keyframes achieveShine{0%{background-position:-200% center}to{background-position:200% center}}@keyframes subtleLift{0%{transform:translateY(0)}to{transform:translateY(-2px)}}@keyframes accordionOpen{0%{max-height:0;opacity:0}to{max-height:500px;opacity:1}}@keyframes toastSlide{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes starFill{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}@keyframes btnPress{0%{transform:scale(1)}50%{transform:scale(.97)}to{transform:scale(1)}}@keyframes colorShift{0%{filter:brightness(1)}50%{filter:brightness(1.02)}to{filter:brightness(1)}}@keyframes contentExit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(6px)}}@keyframes modalExit{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(12px) scale(.97)}}@keyframes overlayFadeOut{0%{opacity:1}to{opacity:0}}@keyframes cardExit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes slideDownExit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(16px)}}@keyframes toastDismiss{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100%)}}@keyframes panelSlideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes tabSlideLeft{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes tabSlideRight{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}@keyframes pageScaleEnter{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes dashCardStagger{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes sheetDismiss{to{transform:translateY(100%);opacity:0}}@keyframes refreshSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes iconBounce{0%{transform:translateY(0)}40%{transform:translateY(-3px)}70%{transform:translateY(1px)}to{transform:translateY(0)}}@keyframes loginSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes confettiPop{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.2);opacity:1}to{transform:scale(1);opacity:1}}@keyframes nowDotPulse{0%,to{box-shadow:0 0 #3b82f666}50%{box-shadow:0 0 6px 3px #3b82f626}}@keyframes gradeBarGrow{0%{width:0;opacity:.5}to{opacity:1}}@keyframes amountReveal{0%{opacity:0;filter:blur(4px);transform:translateY(3px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}@keyframes statShimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes navIndicatorSlide{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes shadowGrow{0%{box-shadow:0 1px 3px #0000000f}to{box-shadow:0 4px 12px #0000001a}}@keyframes headerShrink{0%{padding-top:14px;padding-bottom:14px}to{padding-top:8px;padding-bottom:8px}}@keyframes toastFromBottom{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes skeletonFadeOut{0%{opacity:1}to{opacity:0}}@keyframes emptyStateFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes quickLinkLift{0%{transform:translateY(0)}to{transform:translateY(-2px)}}@keyframes bellShake{0%,to{transform:rotate(0)}15%{transform:rotate(12deg)}30%{transform:rotate(-10deg)}45%{transform:rotate(8deg)}60%{transform:rotate(-6deg)}75%{transform:rotate(3deg)}}@keyframes breadcrumbSlide{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes swipeReveal{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes longPressRipple{0%{transform:scale(0);opacity:.3}to{transform:scale(2.5);opacity:0}}@keyframes countdownTick{0%,to{transform:none}50%{transform:scale(1.05)}}@keyframes badgeEarned{0%{transform:scale(0) rotate(-15deg);opacity:0}60%{transform:scale(1.1) rotate(3deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}@keyframes checkDraw{0%{stroke-dashoffset:24}to{stroke-dashoffset:0}}@keyframes errorShake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}@keyframes springBounceIn{0%{transform:scale(.9);opacity:0}60%{transform:scale(1.03);opacity:1}80%{transform:scale(.99)}to{transform:scale(1);opacity:1}}@keyframes numberChange{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes streakFire{0%,to{transform:scaleY(1) translateY(0);opacity:1}25%{transform:scaleY(1.05) translateY(-1px);opacity:.9}50%{transform:scaleY(.95) translateY(0);opacity:1}75%{transform:scaleY(1.02) translateY(-.5px);opacity:.95}}.anim-tab-left{animation:tabSlideLeft .22s ease-out both}.anim-tab-right{animation:tabSlideRight .22s ease-out both}.anim-page-enter{animation:pageScaleEnter .2s ease-out both}.anim-dash-card{animation:dashCardStagger .3s cubic-bezier(.2,.7,.2,1) backwards}.anim-icon-bounce{animation:tabEnter .22s ease-out both}.anim-confetti{animation:confettiPop .3s ease-out both}.anim-now-dot{animation:nowDotPulse 2s ease-in-out infinite}.anim-grade-bar{animation:gradeBarGrow .6s ease-out both}.anim-amount{animation:amountReveal .3s ease-out both}.anim-nav-indicator{animation:navIndicatorSlide .2s ease-out both}.anim-toast-bottom{animation:toastFromBottom .25s ease-out both}.anim-empty-float{animation:emptyStateFloat 3s ease-in-out infinite}.anim-bell-shake{animation:bellShake .5s ease-in-out both}.anim-spring-in{animation:slideUp .24s cubic-bezier(.2,.7,.2,1) both}.anim-number{animation:numberChange .25s ease-out both}.anim-streak-fire{animation:streakFire 1.5s ease-in-out infinite}.anim-badge-earned{animation:badgeEarned .4s ease-out both}.anim-error-shake{animation:errorShake .4s ease-in-out both}.anim-breadcrumb{animation:breadcrumbSlide .2s ease-out both}.anim-exit-content{animation:contentExit .18s ease-in forwards}.anim-exit-modal{animation:modalExit .2s ease-in forwards}.anim-exit-overlay{animation:overlayFadeOut .15s ease-in forwards}.anim-exit-card{animation:cardExit .15s ease-in forwards}.anim-exit-slide{animation:slideDownExit .2s ease-in forwards}.anim-exit-toast{animation:toastDismiss .2s ease-in forwards}.anim-exit-panel{animation:panelSlideOut .25s ease-in forwards}.modal-closing.modal-overlay,.modal-closing.feedback-modal-overlay,.modal-closing.feed-modal-overlay{animation:overlayFadeOut .22s ease-in forwards;pointer-events:none}.modal-closing .modal-card,.modal-closing .feedback-modal,.modal-closing .feed-modal{animation:slideDownExit .22s ease-in forwards}.dash-stagger-1{animation-delay:.03s}.dash-stagger-2{animation-delay:.06s}.dash-stagger-3{animation-delay:.09s}.dash-stagger-4{animation-delay:.12s}.dash-stagger-5{animation-delay:.15s}.dash-stagger-6{animation-delay:.18s}.card-lift-touch{transition:transform .15s ease-out,box-shadow .15s ease-out}.card-lift-touch:active{transform:scale(.98)}@media(hover:hover){.card-lift-touch:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}}.app-shell{display:flex;height:100dvh;overflow:hidden;background:var(--bg);color:var(--text)}.app-main{flex:1;display:flex;flex-direction:column;min-width:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.sidebar{display:none;flex-direction:column;width:220px;height:100dvh;max-height:100dvh;background:var(--surface);border-right:1px solid var(--border);position:sticky;top:0;z-index:20;transition:width .25s cubic-bezier(.2,.7,.2,1);overflow:hidden}.sidebar-collapsed .sidebar{width:60px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:14px 12px;border-bottom:1px solid var(--border)}.sidebar-brand{display:flex;align-items:center;gap:8px;overflow:hidden}.sidebar-logo{width:22px;height:22px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.sidebar-logo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}.sidebar-title{font-size:.9rem;font-weight:700;white-space:nowrap}.sidebar-toggle{background:var(--surface-alt);border:none;border-radius:6px;width:26px;height:26px;cursor:pointer;color:var(--text-muted);font-size:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,transform .15s}.sidebar-toggle:hover{background:var(--border)}.sidebar-toggle:active{transform:scale(.92)}.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:1px;padding:6px;overflow-y:auto;overscroll-behavior:contain}.sidebar-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border:none;border-radius:8px;background:transparent;cursor:pointer;color:var(--text-muted);font-size:.85rem;font-weight:500;transition:background .15s,color .15s,transform .12s;white-space:nowrap;text-align:left;-webkit-tap-highlight-color:transparent}.sidebar-item:hover{background:var(--surface-alt);color:var(--text)}.sidebar-item:active{transform:scale(.98)}.sidebar-item.active{background:var(--brand-strong);color:#fff;font-weight:600}.sidebar-divider{height:1px;background:var(--border);margin:8px 6px}.sidebar-link-external{text-decoration:none}.sidebar-icon{font-size:1.1rem;flex-shrink:0;display:flex;align-items:center;position:relative;display:inline-flex}.sidebar-icon svg{width:18px;height:18px}.sidebar-label{overflow:hidden;text-overflow:ellipsis}.sidebar-section-label{margin:2px 10px 6px;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.sidebar-continue-list{display:flex;flex-direction:column;gap:6px;padding:0 4px 2px}.sidebar-continue-item{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--surface-alt) 82%,transparent);color:var(--text);text-decoration:none;transition:border-color .15s,background .15s,transform .12s}.sidebar-continue-item:hover{border-color:color-mix(in srgb,var(--brand-strong) 35%,var(--border));background:color-mix(in srgb,var(--surface-alt) 64%,var(--brand-strong) 10%)}.sidebar-continue-item:active{transform:scale(.98)}.sidebar-continue-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px}.sidebar-continue-name{font-size:.82rem;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-continue-meta{font-size:.72rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-continue-deadline{font-size:.68rem;color:var(--brand-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-continue-arrow{flex-shrink:0;display:inline-flex;align-items:center;color:var(--text-muted)}.sidebar-continue-arrow svg{width:14px;height:14px}.sidebar-footer{padding:10px 12px;border-top:1px solid var(--border)}.sidebar-user{display:flex;align-items:center;gap:8px}.avatar-small{width:28px;height:28px;border-radius:50%;background:var(--brand-strong);color:#fff;font-size:.65rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-username{font-size:.8rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(min-width:1024px){.sidebar{display:flex}.bottom-nav{display:none!important}.has-nav .app-main{padding-bottom:0!important}}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;background:var(--surface);border-top:1px solid var(--border);z-index:100;padding:6px 4px calc(8px + env(safe-area-inset-bottom,0));box-shadow:0 -2px 12px #0000000f;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:color-mix(in srgb,var(--surface) 92%,transparent)}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:none;background:transparent;cursor:pointer;color:var(--text-muted);font-size:.65rem;padding:6px 4px 10px;border-radius:10px;-webkit-tap-highlight-color:transparent;min-height:48px;transition:color .15s,background .15s,transform .12s;position:relative}.bottom-nav-item:active{transform:scale(.92);background:var(--surface-alt)}.bottom-nav-item.active{color:var(--brand-strong);font-weight:700}.bottom-nav-icon{font-size:1.3rem;line-height:1;display:flex;align-items:center;justify-content:center}.bottom-nav-icon svg{width:22px;height:22px;transition:transform .15s}.bottom-nav-item.active .bottom-nav-icon svg{transform:scale(1.06)}.bottom-nav-label{font-size:.62rem;line-height:1;font-weight:500}.has-nav .app-main{padding-bottom:calc(64px + env(safe-area-inset-bottom,0))}@media(max-width:480px){.has-nav .app-main{padding-bottom:calc(60px + env(safe-area-inset-bottom,0))}.bottom-nav{padding:4px 2px calc(6px + env(safe-area-inset-bottom,0))}.bottom-nav-item{min-height:42px;padding:3px 2px}.bottom-nav-icon svg{width:20px;height:20px}}@media(min-width:481px)and (max-width:1023px){.has-nav .app-main{padding-bottom:calc(76px + env(safe-area-inset-bottom,0))}.bottom-nav-icon svg{width:24px;height:24px}.bottom-nav-label{font-size:.68rem}}.topbar{display:flex;justify-content:space-between;align-items:center;padding:10px 14px 6px;position:sticky;top:0;z-index:10;background:var(--bg);border-bottom:1px solid var(--border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:color-mix(in srgb,var(--bg) 90%,transparent);transition:background-color .2s ease,border-color .2s ease}.topbar h1{font-size:1.1rem;margin:0;font-weight:700}.topbar .eyebrow{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin:0 0 1px}.topbar-content{display:flex;align-items:center;gap:10px;flex:1}.topbar-logo{display:none;width:28px;aspect-ratio:1;border-radius:8px;object-fit:contain}@media(max-width:480px){.topbar-logo{display:block}.topbar{padding:8px 10px 6px}}.topbar-actions{display:flex;align-items:center;gap:8px}.avatar{width:32px;height:32px;border-radius:50%;aspect-ratio:1;min-height:32px;background:var(--brand-strong);color:#fff;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;line-height:1;padding:0;overflow:hidden;transition:transform .15s,box-shadow .15s}.avatar:active{transform:scale(.93)}.content{padding:12px 14px;display:grid;gap:12px;animation:contentEnter .25s cubic-bezier(.2,.7,.2,1)}@media(max-width:480px){.content{padding:8px 10px;gap:8px}}@media(min-width:1024px){.content{padding:16px 24px;gap:14px}}.hw-mobile-decktrack{display:flex;flex-direction:column;gap:12px}.hw-mobile-decktrack__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.hw-mobile-decktrack__header h2{display:inline-flex;align-items:center;gap:6px;margin-bottom:4px}.hw-mobile-decktrack__intro{margin:0}.hw-mobile-decktrack__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.hw-mobile-decktrack__stat{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:10px;background:var(--surface-alt);border:1px solid var(--border)}.hw-mobile-decktrack__stat strong{font-size:1rem;line-height:1.1}.hw-mobile-decktrack__section{display:flex;flex-direction:column;gap:6px}.hw-mobile-decktrack__section h3{margin-bottom:0}.hw-mobile-decktrack__row{align-items:flex-start}.hw-mobile-decktrack__copy{min-width:0;flex:1}.hw-mobile-decktrack__name,.hw-mobile-decktrack__meta,.hw-mobile-decktrack__deadline{margin:0}.hw-mobile-decktrack__name{font-weight:600;color:var(--text)}.hw-mobile-decktrack__meta,.hw-mobile-decktrack__deadline{font-size:.75rem;color:var(--text-muted);margin-top:3px}.hw-mobile-decktrack__deadline{color:var(--brand-strong)}.hw-mobile-decktrack__link{flex-shrink:0}.hw-mobile-decktrack__empty{margin:0}@media(min-width:1024px){.hw-mobile-decktrack{display:none}}@media(max-width:480px){.hw-mobile-decktrack__header{flex-direction:column}.hw-mobile-decktrack__header .btn-secondary{width:100%}.hw-mobile-decktrack__stats{grid-template-columns:1fr}.hw-mobile-decktrack__row{flex-direction:column}.hw-mobile-decktrack__link{width:100%;justify-content:center}}.grid-2,.grid-3,.grid-4{display:grid;grid-template-columns:1fr;gap:10px}@media(min-width:400px){.grid-4{grid-template-columns:repeat(2,1fr)}}@media(min-width:640px){.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px;animation:cardFadeUp .3s cubic-bezier(.2,.7,.2,1) backwards;transition:transform .15s ease-out,box-shadow .15s ease-out}.card:active{transform:scale(.985)}@media(hover:hover){.card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000012}}.card h2{margin:0 0 8px;font-size:.92rem;font-weight:700}.card h3{margin:0 0 6px;font-size:.85rem;font-weight:600}@media(max-width:480px){.card{padding:10px;border-radius:10px}.card h2{font-size:.88rem}}.card-header-row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}.card-header-row .btn-ghost{white-space:nowrap;flex-shrink:0}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px;animation:statReveal .3s cubic-bezier(.2,.7,.2,1) backwards;transition:transform .15s,box-shadow .15s}@media(hover:hover){.stat-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000000f}}.stat-label{margin:0;font-size:.7rem;color:var(--text-muted);font-weight:500}.stat-value{margin:2px 0 4px;font-size:1.3rem;font-weight:800;line-height:1.1;animation:kpiEnter .35s ease-out}.kpi{font-size:1.4rem;font-weight:800;margin:2px 0 4px;line-height:1.1;letter-spacing:-.02em;animation:kpiEnter .3s ease-out}.list{display:flex;flex-direction:column;gap:4px}.feed-posts-list{width:100%;max-width:860px;margin:0 auto;padding-right:2px}.list-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--surface-alt);transition:background .12s,transform .12s}.list-row.clickable{cursor:pointer}.list-row.clickable:hover{background:var(--border);transform:translateY(-1px)}.list-row.clickable:active{transform:translateY(0) scale(.99)}.list-row.clickable:focus-visible{outline:2px solid var(--brand-strong);outline-offset:2px;border-radius:8px}.list-row p{margin:0}.feed-page-card{width:100%;max-width:940px;margin:0 auto}.feed-page{width:100%;max-width:720px;margin:0 auto}.feed-page__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.feed-page__header h2{margin:0;font-size:1.1rem;font-weight:700;display:flex;align-items:center;gap:6px}.feed-page__title{display:flex;align-items:center;gap:6px}.feed-page__filters{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.feed-page__search{width:100%;padding:8px 14px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.85rem;transition:border-color .15s,box-shadow .15s}.feed-page__search:focus{border-color:var(--brand-strong);box-shadow:0 0 0 3px var(--brand-soft)}.feed-page__search::placeholder{color:var(--text-muted)}.feed-page__pills{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}.feed-page__pills::-webkit-scrollbar{display:none}@media(min-width:640px){.feed-page__pills{flex-wrap:wrap}}.feed-page__pills-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.feed-pill{padding:5px 14px;border:1px solid var(--border);border-radius:20px;background:var(--surface);color:var(--text-muted);font-size:.78rem;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0}.feed-pill:hover{background:var(--surface-alt);color:var(--text)}.feed-pill:active{transform:scale(.96)}.feed-pill--active{background:var(--brand-strong);color:#fff;border-color:var(--brand-strong);animation:pillActivate .2s ease-out}.feed-page__pinned-toggle{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0;padding:4px 10px;border-radius:18px;border:1px solid var(--border);background:var(--surface);transition:all .15s}.feed-page__pinned-toggle:hover{background:var(--surface-alt);color:var(--text)}.feed-page__pinned-toggle input[type=checkbox]{accent-color:#f59e0b}.feed-page__empty{text-align:center;padding:40px 20px;color:var(--text-muted);font-size:.9rem;animation:emptyStateFloat 3s ease-in-out infinite}.feed-page__empty p:first-child{font-size:2rem;margin-bottom:8px}.feed-page__grid{display:flex;flex-direction:column;gap:10px}.feed-notif-banner{margin-bottom:14px;border-radius:12px;border:1px solid var(--brand-strong);background:var(--surface);overflow:hidden;animation:cardFadeUp .3s ease-out}.feed-notif-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;background:none;border:none;color:var(--text);font-size:.88rem;font-weight:600;cursor:pointer;text-align:left;transition:background .12s}.feed-notif-toggle:hover{background:var(--surface-alt)}.feed-notif-bell{font-size:1.1rem}.feed-notif-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:#ef4444;color:#fff;font-size:.72rem;font-weight:700;line-height:1;animation:badgePop .3s ease-out}.feed-notif-chevron{margin-left:auto;font-size:.7rem;color:var(--text-muted);transition:transform .2s}.feed-notif-list{border-top:1px solid var(--border);padding:6px;animation:accordionOpen .25s ease-out;overflow:hidden}.feed-notif-item{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;border-radius:8px;transition:background .12s}.feed-notif-item:hover{background:var(--surface-alt)}.feed-notif-item__icon{font-size:1.2rem;flex-shrink:0;margin-top:1px}.feed-notif-item__body{flex:1;display:flex;flex-direction:column;gap:2px;font-size:.82rem;color:var(--text);line-height:1.35}.feed-notif-item__body strong{font-weight:600}.feed-notif-item__body span{color:var(--text-muted)}.feed-notif-item__dismiss{flex-shrink:0;padding:4px;background:none;border:none;cursor:pointer;color:var(--text-muted);border-radius:6px;transition:background .12s,transform .12s}.feed-notif-item__dismiss:hover{background:var(--surface-alt);color:var(--text)}.feed-notif-item__dismiss:active{transform:scale(.9)}.feed-notif-clear{display:block;width:100%;padding:8px;margin-top:4px;background:none;border:1px solid var(--border);border-radius:8px;color:var(--text-muted);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .12s}.feed-notif-clear:hover{background:var(--surface-alt);color:var(--text)}.feed-card{display:flex;border-radius:12px;border:1px solid var(--border);background:var(--surface);overflow:hidden;cursor:pointer;transition:transform .15s cubic-bezier(.2,.7,.2,1),box-shadow .15s,border-color .15s;animation:cardFadeUp .3s cubic-bezier(.2,.7,.2,1) backwards}.feed-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000012;border-color:var(--brand-strong)}.feed-card:active{transform:translateY(0) scale(.99)}.feed-card:focus-visible{outline:2px solid var(--brand-strong);outline-offset:2px}.feed-card--pinned{border-left:3px solid #f59e0b}.feed-card__accent{width:4px;flex-shrink:0;border-radius:4px 0 0 4px}.feed-card--pinned .feed-card__accent{display:none}.feed-card__body{flex:1;padding:12px 14px;min-width:0}.feed-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.feed-card__category{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.feed-card__date{font-size:.72rem;color:var(--text-muted);white-space:nowrap}.feed-card__title{margin:0 0 6px;font-size:.92rem;font-weight:700;line-height:1.3;overflow-wrap:anywhere}.feed-card__pin{margin-right:4px}.feed-card__preview{margin:0;font-size:.82rem;line-height:1.5;color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.feed-card__footer{margin-top:8px}.feed-card__link-hint{font-size:.72rem;color:var(--brand-strong);font-weight:600}.feed-modal-overlay{position:fixed;inset:0;background:#00000080;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:300;padding:16px;animation:feedModalFadeIn .2s ease}.feed-modal{background:var(--surface);border-radius:16px;max-width:560px;width:100%;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 12px 48px #0000002e;animation:feedModalSlideUp .25s ease-out;overflow:hidden}.feed-modal__accent{height:4px;width:100%;flex-shrink:0}.feed-modal__header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px 10px;flex-shrink:0}.feed-modal__meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.feed-modal__pinned-badge{display:inline-flex;align-items:center;font-size:.72rem;font-weight:700;color:#a16207;background:#fef3c7;padding:4px 10px;border-radius:999px;white-space:nowrap}.feed-modal__close{background:var(--surface-alt);border:none;border-radius:8px;width:32px;height:32px;font-size:18px;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .12s,transform .12s}.feed-modal__close:hover{background:var(--border)}.feed-modal__close:active{transform:scale(.9)}.feed-modal__title{margin:0;padding:6px 18px 0;font-size:1.25rem;font-weight:750;line-height:1.25;overflow-wrap:anywhere;flex-shrink:0}.feed-modal__byline{margin:8px 18px 16px;color:var(--text-muted);font-size:.84rem;line-height:1.4;flex-shrink:0}.feed-modal__content{flex:1;overflow-y:auto;padding:0 18px 20px;min-height:0;overscroll-behavior:contain}.feed-modal__text{font-size:.96rem;line-height:1.65;color:var(--text);white-space:normal;overflow-wrap:anywhere;word-break:break-word}.feed-modal__links{border-top:1px solid var(--border);padding:12px 18px 14px;flex-shrink:0;background:var(--surface)}.feed-modal__links-label{margin:0 0 8px;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.feed-modal__links-list{display:flex;flex-wrap:wrap;gap:8px}.feed-modal__link-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface-alt);color:var(--brand-strong);font-size:.82rem;font-weight:600;text-decoration:none;transition:background .12s,border-color .12s,transform .12s}.feed-modal__link-chip:hover{background:var(--border);border-color:var(--brand-strong)}.feed-modal__link-chip:active{transform:scale(.97)}.feed-modal__link-icon{font-size:.9rem}.feed-dash-list{display:flex;flex-direction:column;gap:6px}.feed-dash-item{padding:10px 12px;border-radius:10px;background:var(--surface-alt);cursor:pointer;transition:background .12s,transform .12s}.feed-dash-item:hover{background:var(--border);transform:translateY(-1px)}.feed-dash-item:active{transform:translateY(0)}.feed-dash-item p{margin:0}.feed-dash-preview{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:4px!important}@media(max-width:640px){.feed-modal{max-height:92vh;border-radius:14px 14px 0 0;position:fixed;bottom:0;left:0;right:0;max-width:none;animation:bottomSheetUp .3s cubic-bezier(.2,.7,.2,1)}.feed-modal-overlay{align-items:flex-end;padding:0}.feed-card__body{padding:10px 12px}.feed-card__title{font-size:.88rem}.feed-card__preview{font-size:.8rem}.feed-modal__title{font-size:1.2rem}.feed-modal__byline{margin-bottom:18px}.feed-page__pills{gap:4px}.feed-pill{padding:4px 10px;font-size:.72rem}}@media(prefers-color-scheme:dark){.feed-modal__pinned-badge{background:#f59e0b33}.feed-card:hover{box-shadow:0 4px 16px #00000040}}.lesson-card{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-card);padding:14px;cursor:pointer;transition:background .15s,transform .15s cubic-bezier(.2,.7,.2,1),box-shadow .15s;display:flex;flex-direction:column;gap:8px;animation:cardFadeUp .25s cubic-bezier(.2,.7,.2,1) backwards;overflow:visible;word-break:break-word;min-height:0;height:auto}.lesson-card:hover{background:var(--border);transform:translateY(-1px)}.lesson-card:focus-visible{outline:2px solid var(--brand-strong);outline-offset:2px}.lesson-card:active{transform:translateY(0) scale(.99)}.lesson-highlighted{border:1px solid color-mix(in srgb,#f59e0b 45%,var(--border));box-shadow:0 0 0 1px color-mix(in srgb,#f59e0b 20%,transparent)}.lesson-cancelled{opacity:.9}.cancelled-text{text-decoration:line-through;text-decoration-thickness:1.5px;text-decoration-color:color-mix(in srgb,var(--text-muted) 80%,transparent)}.lesson-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;min-width:0}.lesson-card-top p{margin:0;min-width:0;overflow-wrap:anywhere}.lesson-card-statuses{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;flex-shrink:0;max-width:45%}@media(max-width:400px){.lesson-card-statuses{max-width:100%;justify-content:flex-start}.lesson-card-top{flex-direction:column}}.lesson-card-badges{display:flex;gap:4px;row-gap:5px;flex-wrap:wrap}.lesson-highlight-note{color:#b45309;font-weight:600}@media(prefers-color-scheme:dark){.lesson-highlight-note{color:#fbbf24}}.lesson-location-row{overflow-wrap:anywhere}.lesson-link-chip{text-decoration:none;cursor:pointer}.lesson-rating{border-top:1px solid var(--border);padding-top:6px;margin-top:4px}.schedule-cards-wrap{width:100%;max-width:none;margin:0}.schedule-cards-wrap .lesson-card{width:100%;box-sizing:border-box}.schedule-kpis{gap:8px}.schedule-shell-card{padding:12px;border-radius:var(--radius-outer)}.schedule-shell-card .card-header-row{margin-bottom:6px}.week-agenda{margin:6px 0 14px;padding:10px;border:0;background:var(--surface-alt);border-radius:var(--radius-outer);overflow:hidden;box-sizing:border-box;max-width:100%;width:100%}.week-agenda-toolbar{display:inline-flex;align-items:center;justify-content:center;gap:4px;margin-bottom:10px;padding:3px;border-radius:calc(var(--radius-control) + 3px);background:var(--surface)}.week-nav-btn,.week-today-btn{min-height:38px;border:0;background:transparent;color:var(--text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border-radius:var(--radius-control)}.week-nav-btn{width:38px;padding:0}.week-today-btn{padding:0 14px;font-size:.75rem;font-weight:700}.week-nav-btn:hover,.week-today-btn:hover{background:var(--surface-alt)}.schedule-toolbar{display:grid;grid-template-columns:minmax(0,1.5fr) auto minmax(220px,.8fr);align-items:end;gap:10px}.schedule-control-group{display:grid;gap:6px;min-width:0}.schedule-control-label{color:var(--text-muted);font-size:.68rem;font-weight:800;text-transform:uppercase}.schedule-segmented,.schedule-filter-controls{display:flex;align-items:center;gap:6px;min-width:0}.schedule-tool-btn,.schedule-view-btn,.schedule-sort-option{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius-control);min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:.75rem;font-weight:700;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.schedule-tool-btn{min-width:40px;padding:0 10px}.schedule-tool-btn.active{background:color-mix(in srgb,var(--brand-strong) 10%,var(--surface));border-color:color-mix(in srgb,var(--brand-strong) 28%,var(--border));color:var(--text)}.schedule-view-btn{padding:0 12px}.schedule-view-btn.active,.schedule-sort-option.active{background:var(--brand-strong);border-color:var(--brand-strong);color:#fff}.schedule-filter-select{min-height:40px;width:auto;min-width:132px;border-radius:var(--radius-control);padding:0 32px 0 10px;font-size:.75rem}.schedule-sort-sheet{margin-top:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.schedule-sort-option{padding:0 12px}.week-chip-row{display:none;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;min-width:0}.week-chip{min-width:0;min-height:74px;padding:7px 5px;border:1px solid transparent;background:var(--surface);color:var(--text);border-radius:var(--radius-card);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer}.week-chip.active{border-color:color-mix(in srgb,var(--brand-strong) 30%,var(--border));background:color-mix(in srgb,var(--brand-strong) 10%,var(--surface));box-shadow:none}.week-chip.today .week-chip-day{color:var(--brand-strong)}.week-chip-label,.week-chip-meta{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-chip-label{font-size:.68rem;color:var(--text-muted)}.week-chip-day{font-size:1rem;font-weight:800}.week-chip-meta{font-size:.64rem;color:var(--text-muted)}.week-day-agenda{margin-top:8px;display:grid;gap:6px;min-width:0}.week-desktop-grid{margin-top:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.week-desktop-day{min-width:0;padding:8px;border:1px solid transparent;background:var(--surface);border-radius:var(--radius-card)}.week-desktop-day.today{border-color:color-mix(in srgb,var(--brand-strong) 24%,var(--border))}.week-desktop-day.selected{background:color-mix(in srgb,var(--brand-strong) 8%,var(--surface))}.week-desktop-day-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 6px;align-items:center;margin-bottom:8px}.week-desktop-day-label,.week-desktop-day-meta{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-size:.66rem}.week-desktop-day-number{color:var(--text);font-size:1rem;font-weight:800}.week-desktop-day-meta{grid-column:1 / -1}.week-desktop-items{display:grid;gap:6px}.week-desktop-item{grid-template-columns:1fr;gap:6px;padding:8px}.week-desktop-item .badge-sm{justify-self:start}.week-desktop-empty{margin:0;color:var(--text-muted);font-size:.72rem}.week-agenda-item{width:100%;min-width:0;padding:8px;border:1px solid color-mix(in srgb,var(--border) 80%,transparent);background:var(--surface);color:var(--text);border-radius:var(--radius-control);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;text-align:left;cursor:pointer}.lesson-summary-card{grid-template-columns:minmax(0,1fr);align-items:start;gap:6px}.lesson-summary-title,.lesson-card-title{min-width:0;margin:0;color:var(--text);font-size:.86rem;font-weight:800;line-height:1.25;overflow:hidden;text-overflow:ellipsis}.lesson-summary-title{white-space:nowrap}.lesson-teacher-line{display:inline-flex;align-items:center;gap:6px;min-width:0;color:var(--text-muted);font-size:.76rem;font-weight:700}.lesson-teacher-line span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-teacher-avatar{width:22px;height:22px;flex:0 0 22px;border-radius:50%;object-fit:cover;background:color-mix(in srgb,var(--brand-strong) 12%,var(--surface-alt));color:var(--brand-strong)}.lesson-teacher-avatar.initials{display:inline-flex;align-items:center;justify-content:center;font-size:.62rem;font-weight:800}.lesson-summary-time,.lesson-card-time{color:var(--text);font-size:.78rem;font-weight:800}.lesson-card-main{display:grid;gap:6px;min-width:0}.lesson-status-badge{display:inline-flex;align-items:center;gap:4px;width:fit-content}.week-agenda-kind{font-size:.64rem;font-weight:800;color:var(--text-muted);text-transform:uppercase}.week-agenda-main{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:700}@media(max-width:520px){.week-desktop-grid{display:none}.schedule-toolbar{align-items:stretch;grid-template-columns:1fr;flex-direction:column}.schedule-control-group,.schedule-filter-controls{width:100%}.schedule-segmented,.schedule-filter-controls{overflow-x:auto;scrollbar-width:none}.schedule-segmented::-webkit-scrollbar,.schedule-filter-controls::-webkit-scrollbar{display:none}.schedule-tool-btn,.schedule-view-btn{flex:1 1 0;width:auto;min-height:44px}.schedule-status-switch .schedule-tool-btn,.schedule-view-switch .schedule-view-btn,.schedule-sort-trigger{min-width:44px;padding-inline:8px}.schedule-status-switch .schedule-tool-btn span,.schedule-view-switch .schedule-view-btn span,.schedule-sort-trigger span{display:none}.schedule-status-switch .schedule-tool-btn,.schedule-view-switch .schedule-view-btn,.schedule-sort-trigger{gap:0}.schedule-sort-sheet{grid-template-columns:1fr}.week-chip-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;overflow:hidden;padding:2px 0 6px;margin:0;max-width:100%}.week-chip{min-height:62px;padding:6px 2px;border-radius:var(--radius-control)}.week-agenda-toolbar{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:8px;width:100%}.week-nav-btn{width:44px;min-height:44px;padding-bottom:2px}.week-today-btn{min-height:44px}.week-chip-meta{font-size:.58rem;white-space:normal;text-align:center}.week-agenda-item{grid-template-columns:minmax(0,1fr);align-items:start;padding:10px;border-radius:var(--radius-card)}.week-agenda-item .badge-sm{grid-column:2;justify-self:start}.week-agenda-main{white-space:normal;overflow:visible;text-overflow:clip}.lesson-summary-title,.lesson-teacher-line span:last-child{white-space:normal}}@media(max-width:520px){.grades-sub-tabs .pill-tab{min-width:44px;padding-inline:10px;gap:0}.grades-sub-tabs .pill-tab>span{display:none}}@media(min-width:521px){.week-mobile-day-agenda{display:none}}@media(max-width:380px){.week-chip-row{gap:3px}.week-chip{min-height:58px;border-radius:12px}.week-chip-label{font-size:.6rem}.week-chip-day{font-size:.9rem}.week-chip-meta{font-size:.52rem}}.badge-inline.uncountable{display:inline-flex;align-items:center;gap:4px;color:var(--text-muted);font-style:italic;margin:0}.badge{display:inline-flex;align-items:center;padding:2px 6px;border-radius:var(--radius-badge);font-size:.67rem;font-weight:600;white-space:nowrap;animation:badgePop .2s ease-out backwards}.badge.good{background:#dcfce7;color:#166534}.badge.bad{background:#fee2e2;color:#991b1b}.badge.warn{background:#fef3c7;color:#92400e}.badge.neutral{background:var(--surface-alt);color:var(--text-muted)}.badge.discussed{background:#f3e8ff;color:#7c3aed}.badge.rescheduled-tag{background:#ede9fe;color:#5b21b6;border:1px solid #c4b5fd}.rescheduled-detail span{font-size:.85rem}.rescheduled-detail strong{font-weight:700}.badge-sm{display:inline-flex;align-items:center;padding:1px 6px;border-radius:var(--radius-badge);font-size:.65rem;font-weight:600}.badge-sm.good{background:#dcfce7;color:#166534}.badge-sm.warn{background:#fef3c7;color:#92400e}.badge-sm.bad{background:#fee2e2;color:#991b1b}.badge-sm.neutral{background:var(--surface);color:var(--text-muted);border:1px solid var(--border)}.badge-sm.discussed{background:#f3e8ff;color:#7c3aed}.tz-hint{cursor:help;font-size:.75em;opacity:.7;vertical-align:middle}@media(prefers-color-scheme:dark){.badge.good{background:#064e3b;color:#6ee7b7}.badge.bad{background:#450a0a;color:#fca5a5}.badge.warn{background:#451a03;color:#fcd34d}.badge-sm.good{background:#064e3b;color:#6ee7b7}.badge-sm.warn{background:#451a03;color:#fcd34d}.badge-sm.bad{background:#450a0a;color:#fca5a5}.badge-sm.neutral{background:#0f172a;color:#94a3b8;border-color:#1f2937}.badge.discussed,.badge-sm.discussed{background:#7c3aed38;color:#d8b4fe}.badge.rescheduled-tag{background:#2e1065;color:#c4b5fd;border-color:#6d28d9}}.progress-track{background:var(--surface-alt);border-radius:6px;height:6px;overflow:hidden;width:100%}.progress-fill{height:100%;border-radius:6px;transition:width .4s cubic-bezier(.2,.7,.2,1);animation:progressGrow .5s cubic-bezier(.2,.7,.2,1)}.star-rating{display:flex;align-items:center;gap:2px}.star{appearance:none;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;background:transparent;color:var(--border);line-height:1;transition:color .15s,transform .15s}.star svg{width:22px;height:22px;display:block}.star.filled{color:#f59e0b;animation:starFill .25s ease-out}.star.interactive{cursor:pointer}.star.interactive:hover{color:#fbbf24;transform:scale(1.15)}.star.interactive:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:8px}.feedback-inline-banner{margin-bottom:12px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:color-mix(in srgb,var(--brand-soft) 55%,var(--surface) 45%);border:1px solid color-mix(in srgb,var(--brand-strong) 28%,var(--border) 72%);box-shadow:var(--shadow-xs)}.feedback-inline-banner__summary{flex:1 1 240px;min-width:0}.feedback-inline-banner__title{margin:0;color:var(--text);font-size:.96rem;font-weight:700}.feedback-inline-banner__meta{margin:4px 0 0;color:var(--text-muted);font-size:.84rem;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.feedback-inline-banner__meta strong{color:var(--text);font-weight:600}.feedback-inline-banner__dot{color:var(--text-muted);opacity:.8}.feedback-inline-banner__actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-left:auto}.feedback-inline-banner__skip{border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:.8rem;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--text-muted) 80%,transparent);text-underline-offset:2px;padding:4px 6px;border-radius:8px;transition:color .15s ease,background .15s ease}.feedback-inline-banner__skip:hover{color:var(--text);background:color-mix(in srgb,var(--surface-alt) 75%,transparent)}.feedback-inline-banner__skip:focus-visible{outline:2px solid var(--brand-strong);outline-offset:2px}@media(max-width:640px){.feedback-inline-banner{align-items:stretch}.feedback-inline-banner__actions{width:100%;justify-content:space-between;margin-left:0}}.filter-row{display:flex;gap:8px;align-items:center;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:4px 0}.filter-row::-webkit-scrollbar{display:none}.pill-tabs{display:flex;gap:4px;padding:4px;border-radius:10px;background:var(--surface-alt);border:1px solid var(--border);flex-shrink:0}.pill-tab{padding:5px 10px;border:none;background:transparent;cursor:pointer;font-size:.73rem;font-weight:600;color:var(--text-muted);transition:background .15s,color .15s,box-shadow .15s,transform .12s;white-space:nowrap;border-radius:8px;min-height:32px;display:flex;align-items:center;justify-content:center}.pill-tab:hover{background:var(--border)}.pill-tab:active{transform:scale(.96)}.pill-tab:focus-visible{outline:2px solid var(--brand-strong);outline-offset:1px}.pill-tab.active{background:var(--brand-strong);color:#fff;box-shadow:0 1px 4px #00000029;animation:pillActivate .2s ease-out}.select-sm{padding:5px 8px;border-radius:8px;border:1px solid var(--border);background:var(--surface);font-size:.75rem;font-weight:500;color:var(--text);transition:border-color .15s,box-shadow .15s;min-height:32px}.select-sm:focus{border-color:var(--brand-strong);box-shadow:0 0 0 2px var(--brand-soft);outline:none}.input-sm{padding:5px 8px;border-radius:8px;border:1px solid var(--border);background:var(--surface);font-size:.75rem;font-weight:500;color:var(--text);min-width:0;width:100%}@media(min-width:640px){.input-sm{min-width:180px;width:auto}}.btn-primary{background:var(--brand-strong);color:#fff;border:none;border-radius:10px;padding:8px 16px;font-size:.83rem;font-weight:700;cursor:pointer;transition:opacity .12s,transform .12s}.btn-primary:hover{opacity:.9}.btn-primary:active{transform:scale(.97);animation:btnPress .15s ease-out}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--surface-alt);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:6px 12px;font-size:.78rem;font-weight:600;cursor:pointer;transition:background .12s,transform .12s}.btn-secondary:hover{background:var(--border)}.btn-secondary:active{transform:scale(.97)}.btn-ghost{background:transparent;color:var(--brand-strong);border:none;padding:4px 8px;font-size:.75rem;font-weight:600;cursor:pointer;transition:opacity .12s}.btn-ghost:hover{text-decoration:underline}.collapsible-toggle{padding:2px 4px;font-size:.65rem;margin-top:2px}.collapsible-text{transition:max-height .2s ease-out;overflow:hidden}.btn-close{background:var(--surface-alt);border:none;border-radius:8px;width:32px;height:32px;cursor:pointer;font-size:18px;color:var(--text);display:flex;align-items:center;justify-content:center;transition:background .12s,transform .12s}.btn-close:hover{background:var(--border)}.btn-close:active{transform:scale(.9)}.auth-section{display:flex;justify-content:center;align-items:center;padding:20px 14px;min-height:60vh}.auth-section .auth-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px 20px;max-width:380px;width:100%;animation:slideUp .24s cubic-bezier(.2,.7,.2,1)}@media(max-width:480px){.auth-section .auth-card{padding:20px 16px;border-radius:14px}}.auth-section h2{margin:0 0 4px;font-size:1.2rem}.auth-form{display:flex;flex-direction:column;gap:10px;margin-top:14px}.auth-form label{font-size:.8rem;font-weight:600}.auth-secondary-actions{display:flex;gap:6px}.auth-secondary-actions .btn-secondary{flex:1;font-size:.75rem}.sync-banner{display:flex;justify-content:space-between;align-items:center;padding:5px 16px;background:var(--surface);border-bottom:1px solid var(--border);font-size:.78rem}@media(max-width:480px){.sync-banner{padding:4px 12px}}.sync-info{display:flex;align-items:center;gap:6px}.sync-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;transition:background .3s}.sync-dot.ok{background:#10b981;box-shadow:0 0 0 2px #10b98133}.sync-dot.error{background:#ef4444;box-shadow:0 0 0 2px #ef444433}.sync-dot.loading{background:#f59e0b;animation:pulse 1s infinite}.modal-overlay{position:fixed;inset:0;background:#00000073;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:200;padding:16px;animation:overlayFadeIn .2s ease}.modal-card{background:var(--surface);border-radius:16px;max-width:460px;width:100%;max-height:min(85vh,calc(100dvh - 32px));display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-sm);animation:slideUp .25s cubic-bezier(.2,.7,.2,1);overscroll-behavior:contain}@media(max-width:640px){.modal-overlay{align-items:flex-end;padding:max(8px,env(safe-area-inset-top,0)) 0 0}.modal-card{max-width:none;max-height:calc(100dvh - env(safe-area-inset-top,0));border-radius:16px 16px 0 0;animation:bottomSheetUp .3s cubic-bezier(.2,.7,.2,1)}.modal-card:before{content:"";display:block;width:36px;height:4px;background:var(--border);border-radius:2px;margin:8px auto 4px}}.modal-top{display:flex;justify-content:space-between;align-items:center;padding:14px 16px 10px}.modal-top h2{margin:0;font-size:1rem;font-weight:700}.modal-body{padding:8px 16px 18px;display:flex;flex-direction:column;gap:12px;flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:max(18px,calc(18px + env(safe-area-inset-bottom,0)))}.detail-list{display:flex;flex-direction:column;gap:5px}.detail-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 0;font-size:.84rem;flex-wrap:wrap}.detail-row .muted{font-size:.78rem;flex-shrink:0}@media(max-width:360px){.detail-row{flex-direction:column;align-items:flex-start;gap:2px}}.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;padding:12px 14px;background:var(--surface-alt);border-radius:10px}.detail-grid p{margin:0}.hw-modal-badges{grid-column:1 / -1;display:flex;gap:8px;flex-wrap:wrap;min-width:0}.hw-modal-badges .badge,.hw-submission-status-row .badge,.hw-submission-badge{white-space:normal;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.hw-submission-status-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.grade-block{padding:12px 14px;background:var(--surface-alt);border-radius:10px}.grade-block h3{margin:0 0 6px;font-size:.9rem}.grade-display{display:flex;align-items:center;gap:10px}.grade-big{font-size:1.2rem;font-weight:800}.rating-section{padding-top:8px;border-top:1px solid var(--border)}.teacher-rating .teacher-rating-display{display:flex;align-items:center}.uncountable-row{opacity:.7}.profile-header{display:flex;align-items:center;gap:14px;margin-bottom:14px;padding:4px 0}.profile-header-compact{margin-bottom:10px;gap:10px}@media(max-width:480px){.profile-header-compact .profile-avatar{width:40px;height:40px;font-size:.9rem}}.profile-avatar{width:48px;height:48px;border-radius:50%;aspect-ratio:1;background:var(--brand-strong);color:#fff;font-size:1rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1;overflow:hidden}.profile-header h2{margin:0;font-size:1.05rem}.grid-4-mobile{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.mini-stat{padding:8px;text-align:center}.mini-stat .muted{font-size:.6rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi-sm{font-size:1rem;font-weight:700;margin:2px 0 0}@media(max-width:480px){.grid-4-mobile{grid-template-columns:repeat(2,1fr);gap:4px}.mini-stat{padding:6px}.kpi-sm{font-size:.9rem}}.profile-edit-details{padding:0}.profile-edit-summary{padding:12px;cursor:pointer;font-weight:600;font-size:.85rem;list-style:none;display:flex;align-items:center;justify-content:space-between}.profile-edit-summary:after{content:"▸";transition:transform .2s}.profile-edit-details[open] .profile-edit-summary:after{transform:rotate(90deg)}.profile-edit-details[open] .profile-form{padding:0 12px 12px}.profile-form{display:flex;flex-direction:column;gap:10px}.profile-form label{font-size:.8rem;font-weight:600;margin-bottom:2px}.form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.preferred-days-field{display:flex;flex-direction:column;gap:6px}.preferred-days-label{font-size:.8rem;font-weight:600}.preferred-days-btns{display:flex;gap:6px;flex-wrap:wrap}.day-btn{padding:6px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:.75rem;font-weight:600;cursor:pointer;transition:all .15s;min-height:38px;min-width:38px;display:flex;align-items:center;justify-content:center}.day-btn:hover{background:var(--surface-alt)}.day-btn:active{transform:scale(.95)}.day-btn-active{background:var(--brand-strong);color:#fff;border-color:var(--brand-strong)}.day-btn-active:hover{background:var(--brand-strong);filter:brightness(.9)}.receipt-card{cursor:pointer;transition:transform .15s cubic-bezier(.2,.7,.2,1)}.receipt-card:hover{transform:translateY(-2px)}.receipt-card:active{transform:translateY(0) scale(.99)}.receipt-edge{height:12px;background:var(--surface-alt);position:relative;overflow:visible;width:100%;mask-image:repeating-linear-gradient(90deg,transparent 0px,transparent 6px,black 6px,black 12px);-webkit-mask-image:repeating-linear-gradient(90deg,transparent 0px,transparent 6px,black 6px,black 12px)}.receipt-edge.top{border-radius:8px 8px 0 0;background:linear-gradient(180deg,var(--surface-alt) 0%,var(--surface-alt) 70%,transparent 100%);box-shadow:inset 0 8px 0 -6px var(--surface-alt),0 2px 4px #0000000d}.receipt-edge.bottom{border-radius:0 0 8px 8px;background:linear-gradient(0deg,var(--surface-alt) 0%,var(--surface-alt) 70%,transparent 100%);box-shadow:inset 0 -8px 0 -6px var(--surface-alt),0 -2px 4px #0000000d}.receipt-body{background:var(--surface-alt);padding:14px}.receipt-header{display:flex;justify-content:space-between;align-items:center}.receipt-title{font-weight:700;font-size:.85rem}.receipt-id{font-family:monospace;font-size:.75rem;color:var(--text-muted)}.receipt-divider{border:none;border-top:1px dashed var(--border);margin:8px 0}.receipt-item{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;padding:4px 0}.receipt-detail{margin:2px 0;font-size:.75rem;color:var(--text-muted)}.receipt-footer{display:flex;justify-content:space-between;align-items:center}.receipt-total{font-size:1.1rem;font-weight:800}.invoice-section{margin-top:8px}.section-subtitle{font-size:.85rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:12px 0 8px}.invoice-card{background:var(--surface-alt);border-radius:12px;padding:14px;margin-bottom:8px;border:1px solid var(--border);transition:transform .12s,box-shadow .12s;animation:cardFadeUp .3s ease-out backwards}.invoice-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000000f}.invoice-card.highlight{border-left:3px solid #f59e0b;background:color-mix(in srgb,#f59e0b 5%,var(--surface-alt))}.invoice-card.paid{border-left:3px solid #10b981;opacity:.75}.invoice-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;flex-wrap:wrap}.invoice-items{margin-top:8px;padding-top:8px;border-top:1px dashed var(--border)}.invoice-highlight{background:color-mix(in srgb,#f59e0b 6%,var(--surface))!important}.hw-analytics{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.hw-analytics h4{font-size:.85rem;margin:0 0 8px;color:var(--text-muted)}.analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.analytics-item{display:flex;flex-direction:column;gap:3px;padding:6px 8px;border-radius:8px;background:var(--surface)}.analytics-item.highlight-good{background:#dcfce7;color:#166534;padding:8px 10px;border-radius:8px;font-weight:600}@media(prefers-color-scheme:dark){.analytics-item.highlight-good{background:#064e3b;color:#6ee7b7}}.bar-chart{display:flex;align-items:flex-end;gap:4px;height:120px;padding:8px 0}.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;position:relative;min-width:0}.bar-fill{width:100%;max-width:28px;border-radius:4px 4px 0 0;transition:height .4s cubic-bezier(.2,.7,.2,1);min-height:2px}.bar-lbl{font-size:.62rem;color:var(--text-muted);margin-top:3px}.bar-val{font-size:.6rem;font-weight:700;margin-bottom:2px}.fw-600{font-weight:600}.muted{color:var(--text-muted)}.small{font-size:.8rem}.text-right{text-align:right}.text-red{color:#dc2626;font-weight:600}.text-amber{color:#d97706;font-weight:600}.error-text{color:#dc2626;font-size:.8rem;margin:0}.link{color:var(--brand-strong);text-decoration:none;word-break:break-all;font-size:.8rem}.link:hover{text-decoration:underline}p{margin:0}textarea{width:100%;padding:.6rem .75rem;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:inherit;font-size:.85rem;resize:vertical;transition:border-color .15s,box-shadow .15s}textarea:focus{border-color:var(--brand-strong);box-shadow:0 0 0 3px var(--brand-soft);outline:none}svg.icon{vertical-align:-.125em;flex-shrink:0}@media(prefers-color-scheme:dark){.text-red{color:#f87171}.text-amber{color:#fbbf24}.error-text{color:#f87171}textarea,.select-sm,.input-sm{background:#0f172a;border-color:#1f2937;color:#e2e8f0}.invoice-card.highlight{background:color-mix(in srgb,#f59e0b 8%,#111827)}.invoice-highlight{background:color-mix(in srgb,#f59e0b 8%,#111827)!important}.bottom-nav{background:color-mix(in srgb,var(--surface) 94%,transparent)}.topbar{background:color-mix(in srgb,var(--bg) 92%,transparent)}}.quick-link-card{text-align:left;cursor:pointer;transition:background .15s,transform .12s,box-shadow .15s;border:1px solid var(--border)}.quick-link-card:hover{background:var(--surface-alt);transform:translateY(-1px);box-shadow:0 2px 8px #0000000f}.quick-link-card:active{transform:translateY(0) scale(.98)}.quick-link-anchor{text-decoration:none;color:inherit}.quick-link-content{display:flex;align-items:center;gap:10px}.quick-link-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:var(--surface-alt);flex-shrink:0}.quick-link-icon svg{width:18px;height:18px}.quick-link-content .muted{margin-left:auto}.mobile-home-links{display:none}@media(max-width:1023px){.mobile-home-links{display:grid;grid-template-columns:1fr}}.card.clickable{cursor:pointer}button,.list-row,.sidebar-item,.bottom-nav-item{min-height:44px}.pill-tab{min-height:36px}.app-main{scrollbar-gutter:stable}.sidebar-nav::-webkit-scrollbar,.modal-card::-webkit-scrollbar{width:3px}.sidebar-nav::-webkit-scrollbar-thumb,.modal-card::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--brand-strong);outline-offset:2px}@media print{.sidebar,.bottom-nav,.topbar,.sync-banner{display:none}.app-main{padding-bottom:0!important}.card{break-inside:avoid;border:1px solid #ccc}}button:hover{transform:none;box-shadow:none}.hw-progress-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}@media(max-width:400px){.hw-progress-grid{grid-template-columns:1fr;gap:6px}}.hw-stat-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 8px;text-align:center;animation:statReveal .3s ease-out backwards}.hw-stat-card .stat-value{font-size:1.3rem;font-weight:700}.hw-stat-card .stat-label{font-size:.7rem;color:var(--text-muted);margin-top:2px}.hw-stat-card .progress-mini{width:100%;height:5px;background:var(--border);border-radius:4px;margin-top:6px;overflow:hidden}.hw-stat-card .progress-mini-fill{height:100%;background:var(--brand-strong);border-radius:4px;transition:width .4s ease;animation:progressGrow .5s ease-out}.hw-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.hw-search-input{flex:1;min-width:170px}.hw-view-switch{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:10px;border:1px solid var(--border);background:var(--surface-alt)}.hw-view-btn{border:none;background:transparent;color:var(--text-muted);border-radius:8px;padding:7px 10px;font-size:.75rem;font-weight:600;min-height:34px;cursor:pointer;transition:background .12s,color .12s,transform .12s}.hw-view-btn:hover{background:var(--border);color:var(--text)}.hw-view-btn:active{transform:scale(.97)}.hw-view-btn.active{background:var(--brand-strong);color:#fff}.hw-results-count{margin:0 0 8px}.hw-filter-pills{display:flex;gap:6px;margin-bottom:12px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}.hw-filter-pills::-webkit-scrollbar{display:none}@media(min-width:640px){.hw-filter-pills{flex-wrap:wrap}}.hw-filter-pill{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:20px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap;flex-shrink:0}.hw-filter-pill:hover{background:var(--surface-alt);color:var(--text)}.hw-filter-pill:active{transform:scale(.96)}.hw-filter-pill.active{background:var(--brand-strong);color:#fff;border-color:var(--brand-strong)}.pill-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;border-radius:10px;font-size:.68rem;font-weight:700;padding:0 4px;background:#00000014}.hw-filter-pill.active .pill-count{background:#ffffff40;color:#fff}.hw-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px;cursor:pointer;transition:transform .15s cubic-bezier(.2,.7,.2,1),box-shadow .12s,border-color .12s;animation:cardFadeUp .25s ease-out backwards}.hw-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000000f;border-color:var(--brand-strong)}.hw-card:active{transform:translateY(0) scale(.99)}.hw-card.hw-overdue{border-left:3px solid #ef4444}.hw-card.hw-urgent{border-left:3px solid #f59e0b}.hw-card.hw-done{border-left:3px solid #22c55e;opacity:.9}.hw-card+.hw-card{margin-top:6px}.hw-card-compact{padding-top:10px;padding-bottom:10px}.hw-card-compact .hw-card-top{margin-bottom:2px}.hw-compact-meta{margin-top:6px;display:flex;gap:6px;flex-wrap:wrap}.hw-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:6px;min-width:0;flex-wrap:wrap}.hw-card-main{flex:1 1 auto;min-width:0}@media(min-width:641px){.hw-card-main{flex-basis:240px}}.hw-card-title,.hw-card-top strong{margin:0;font-size:.9rem;line-height:1.3;word-break:break-word;overflow-wrap:anywhere}.hw-card-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:4px;justify-content:flex-end;flex:0 1 auto;max-width:100%}@media(max-width:640px){.hw-card-top{flex-direction:column;align-items:stretch}.hw-card-main{flex-basis:auto}.hw-card-meta{justify-content:flex-start;margin-bottom:0}}.hw-card-meta .badge,.hw-card-meta .badge-sm{max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.hw-due-tag{display:inline-flex;align-items:center;gap:3px;font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:10px;white-space:nowrap}.hw-due-tag.overdue{background:#fef2f2;color:#dc2626}.hw-due-tag.today{background:#fffbeb;color:#d97706}.hw-due-tag.soon{background:#fefce8;color:#ca8a04}.hw-due-tag.ok{background:var(--surface-alt);color:var(--text-muted)}@media(prefers-color-scheme:dark){.hw-due-tag.overdue{background:#ef444426}.hw-due-tag.today{background:#f59e0b26}.hw-due-tag.soon{background:#ca8a0426}}.hw-description{font-size:.78rem;color:var(--text-muted);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:4px}.hw-feedback-preview{margin-top:6px;padding:6px 8px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);line-height:1.35}.hw-card-grade{display:inline-flex;align-items:center;gap:2px;font-size:.78rem;font-weight:700;color:var(--brand-strong);white-space:nowrap}.hw-description-block{margin:12px 0;padding:12px;background:var(--surface-alt);border-radius:10px;border:1px solid var(--border)}.hw-description-block h3{font-size:.85rem;font-weight:600;margin:0 0 6px}.hw-description-text{font-size:.84rem;line-height:1.6;color:var(--text);word-break:break-word;margin:0}.markdown-content{--markdown-block-gap: .75em;--markdown-heading-gap-before: 1.25em;--markdown-heading-gap-after: .5em;--markdown-cell-x: .875rem;--markdown-cell-y: .625rem;--markdown-table-border: color-mix(in srgb, var(--border) 84%, var(--text) 16%);--markdown-table-frame: color-mix(in srgb, var(--border) 88%, transparent);--markdown-table-header-bg: color-mix(in srgb, var(--brand, #2563eb) 9%, var(--surface));--markdown-table-stripe-bg: color-mix(in srgb, var(--text) 5%, transparent);--markdown-table-hover-bg: color-mix(in srgb, var(--brand, #2563eb) 8%, transparent);--markdown-table-shadow: rgba(15, 23, 42, .06);line-height:1.65;overflow-wrap:anywhere}.markdown-content>:first-child{margin-top:0}.markdown-content>:last-child{margin-bottom:0}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{line-height:1.25;font-weight:700;margin:var(--markdown-heading-gap-before) 0 var(--markdown-heading-gap-after)}.markdown-content h1{font-size:1.45em}.markdown-content h2{font-size:1.25em}.markdown-content h3{font-size:1.1em}.markdown-content p{margin:var(--markdown-block-gap) 0}.markdown-content ul,.markdown-content ol{margin:var(--markdown-block-gap) 0;padding-left:1.5em}.markdown-content ul{list-style:disc}.markdown-content ol{list-style:decimal}.markdown-content li>ul,.markdown-content li>ol{margin:.25em 0}.markdown-content input[type=checkbox]{margin-right:.45em;accent-color:var(--brand, #2563eb)}.markdown-content blockquote{margin:.85em 0;padding:.12em 0 .12em .95em;border-left:4px solid #60a5fa}.markdown-content code{padding:.12em .34em;border-radius:.3em;background:color-mix(in srgb,var(--text) 12%,transparent);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em;overflow-wrap:normal}.markdown-content pre{margin:.85em 0;overflow-x:auto;border-radius:.55em;padding:.8em;background:#0f172a;color:#e2e8f0}.markdown-content pre code{padding:0;background:transparent;color:inherit}.markdown-content a{color:var(--brand-strong, #2563eb);text-decoration:underline;text-underline-offset:.12em}.markdown-content img{display:block;max-width:100%;height:auto;margin:.85em 0;border-radius:.5em}.markdown-content__table-wrap{width:100%;overflow-x:auto;margin:1.1em 0 1.25em;border:1px solid var(--markdown-table-frame);border-radius:.65rem;background:color-mix(in srgb,var(--surface) 78%,transparent);box-shadow:0 10px 24px var(--markdown-table-shadow)}.markdown-content__table-wrap::-webkit-scrollbar{height:10px}.markdown-content__table-wrap::-webkit-scrollbar-thumb{border-radius:999px;background:color-mix(in srgb,var(--text) 28%,transparent)}.markdown-content table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:.94em}.markdown-content th,.markdown-content td{padding:var(--markdown-cell-y) var(--markdown-cell-x);border-right:1px solid var(--markdown-table-border);border-bottom:1px solid var(--markdown-table-border);text-align:left;vertical-align:top}.markdown-content th:last-child,.markdown-content td:last-child{border-right:0}.markdown-content tr:last-child td{border-bottom:0}.markdown-content thead th{background:var(--markdown-table-header-bg);font-weight:700;white-space:nowrap}.markdown-content tbody tr:nth-child(2n){background:var(--markdown-table-stripe-bg)}@media(hover:hover)and (pointer:fine){.markdown-content tbody tr:hover{background:var(--markdown-table-hover-bg)}}.markdown-content .markdown-alert{margin:.9em 0;padding:.65em .9em;border-left:4px solid #3b82f6;border-radius:0 .45em .45em 0;background:color-mix(in srgb,#3b82f6 10%,var(--surface-alt))}.markdown-content .markdown-alert-title{display:flex;align-items:center;gap:.45em;margin:0 0 .35em;font-size:.85em;font-weight:750;letter-spacing:.03em}.markdown-content .markdown-alert-title svg{flex:0 0 auto;fill:currentColor}.markdown-content .markdown-alert-tip{border-left-color:#16a34a}.markdown-content .markdown-alert-important{border-left-color:#8b5cf6}.markdown-content .markdown-alert-warning{border-left-color:#d97706}.markdown-content .markdown-alert-caution{border-left-color:#dc2626}@media(max-width:640px){.markdown-content{--markdown-cell-x: .7rem;--markdown-cell-y: .55rem}.markdown-content__table-wrap{margin:.95em 0 1.1em;border-radius:.55rem}.markdown-content table{font-size:.9em}}.hw-submitted-box{border:1px solid var(--border);background:var(--surface-alt);border-radius:10px;padding:10px}.hw-submitted-link{display:inline-block;margin-top:2px}.hw-submission-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}.hw-open-link-btn{text-decoration:none;display:inline-flex;align-items:center}.btn-danger-soft{display:inline-flex;align-items:center;gap:6px;border:1px solid color-mix(in srgb,#ef4444 45%,var(--border));background:color-mix(in srgb,#ef4444 7%,var(--surface));color:#b91c1c;border-radius:10px;padding:8px 12px;font-size:.8rem;font-weight:700;min-height:36px;cursor:pointer;transition:background .12s,transform .12s,border-color .12s}.btn-danger-soft:hover{background:color-mix(in srgb,#ef4444 14%,var(--surface));border-color:color-mix(in srgb,#ef4444 65%,var(--border))}.btn-danger-soft:active{transform:scale(.97)}.btn-danger-soft:disabled{opacity:.6;cursor:not-allowed}@media(prefers-color-scheme:dark){.btn-danger-soft{color:#fca5a5;background:color-mix(in srgb,#ef4444 15%,var(--surface));border-color:color-mix(in srgb,#ef4444 55%,var(--border))}.btn-danger-soft:hover{background:color-mix(in srgb,#ef4444 24%,var(--surface))}}.text-red{color:#ef4444;font-weight:600}.text-amber{color:#f59e0b;font-weight:600}.sidebar-user-btn{display:flex;align-items:center;gap:8px;width:100%;background:transparent;border:none;padding:4px 0;cursor:pointer;border-radius:8px;transition:background .15s;color:var(--text)}.sidebar-user-btn:hover{background:var(--surface-alt)}.price-updates-scroll{max-height:120px;overflow-y:auto;padding-right:4px;overscroll-behavior:contain}.feedback-modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:200;animation:fadeIn .2s ease}@media(max-width:640px){.feedback-modal-overlay{align-items:flex-end}.feedback-modal{border-radius:16px 16px 0 0!important;width:100%!important;max-width:none!important;animation:bottomSheetUp .3s cubic-bezier(.2,.7,.2,1)}}.feedback-modal{background:var(--surface);border-radius:16px;padding:24px;width:min(420px,90vw);box-shadow:var(--shadow-sm);text-align:center;animation:slideUp .25s ease-out}.feedback-modal h3{margin:0 0 4px;font-size:1.1rem}.feedback-modal .feedback-lesson-info{color:var(--text-muted);font-size:.85rem;margin:0 0 16px}.feedback-modal .feedback-question{color:var(--text);font-size:.9rem;margin:0 0 12px}.feedback-modal .star-rating{justify-content:center;margin-bottom:16px}.feedback-modal .feedback-actions{display:flex;gap:8px;justify-content:center}.feedback-modal .btn-skip{background:var(--surface-alt);border:1px solid var(--border);border-radius:8px;padding:6px 18px;color:var(--text-muted);font-size:.85rem;cursor:pointer;transition:background .12s}.feedback-modal .btn-skip:hover{background:var(--border)}.subject-report-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-top:8px}@media(max-width:400px){.subject-report-grid{grid-template-columns:1fr}}.subject-report-item{padding:10px 12px;background:var(--surface-alt);border-radius:10px;border:1px solid var(--border);animation:cardFadeUp .25s ease-out backwards}.subject-report-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.subject-report-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.subject-report-stats{display:flex;justify-content:space-between;margin-top:4px}.grade-dist-chart{display:flex;flex-direction:column;gap:8px;margin-top:8px}.dist-row{display:flex;align-items:center;gap:8px}.dist-label{width:55px;flex-shrink:0;text-align:right;font-size:.72rem}.dist-bar-track{flex:1;height:18px;background:var(--surface-alt);border-radius:9px;overflow:hidden}.dist-bar-fill{height:100%;border-radius:9px;transition:width .4s cubic-bezier(.2,.7,.2,1);min-width:2px;animation:progressGrow .5s ease-out}.dist-count{width:24px;flex-shrink:0;font-size:.78rem}.comparison-block{display:flex;flex-direction:column;gap:12px;margin-top:8px}.comparison-item{text-align:center}.comparison-item .kpi{font-size:1.4rem;margin:2px 0}.monthly-activity-chart{display:flex;gap:4px;align-items:flex-end;justify-content:center;height:160px;padding:12px 2px 0;overflow:hidden}.monthly-col{display:flex;flex-direction:column;align-items:center;flex:1;min-width:0;max-width:48px}.monthly-bars{display:flex;gap:2px;align-items:flex-end;height:100px;width:100%}.monthly-bar{flex:1;border-radius:3px 3px 0 0;min-height:4px;transition:height .4s cubic-bezier(.2,.7,.2,1)}.monthly-bar.lessons{background:#3b82f6}.monthly-bar.homework{background:#8b5cf6}.monthly-label{font-weight:600;margin-top:4px;font-size:.65rem}.monthly-counts{font-size:.6rem}.monthly-legend{display:flex;gap:16px;justify-content:center;margin-top:10px;font-size:.8rem}.monthly-legend-item{display:flex;align-items:center;gap:5px}.monthly-dot{width:10px;height:10px;border-radius:3px}.monthly-dot.lessons{background:#3b82f6}.monthly-dot.homework{background:#8b5cf6}.feed-pinned{border-left:3px solid #f59e0b}.unread-dot{position:absolute;top:-2px;right:-4px;width:8px;height:8px;border-radius:50%;background:#ef4444;border:2px solid var(--bg, #fff);box-shadow:0 0 0 1px #ef44444d;animation:unread-pulse 2s ease-in-out infinite}.bottom-nav-icon{position:relative;display:inline-flex}.unread-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;font-size:.65rem;font-weight:700;background:#ef4444;color:#fff;border-radius:9px;padding:0 5px;margin-left:6px;vertical-align:middle;line-height:1}.feed-md{line-height:1.7}.feed-md li>p{margin:0}.feed-md li>p+p{margin-top:.35em}.feed-md li+li{margin-top:.45em}.feed-md-h1{font-size:1.2rem;font-weight:700;margin:.75em 0 .35em}.feed-md-h2{font-size:1.05rem;font-weight:600;margin:.6em 0 .3em}.feed-md-h3{font-size:.95rem;font-weight:600;margin:.5em 0 .25em}.feed-md-p{margin:.35em 0;white-space:pre-wrap;word-break:break-word}.feed-md-ul,.feed-md-ol{margin:.3em 0;padding-left:1.4em}.feed-md-ul{list-style-type:disc}.feed-md-ol{list-style-type:decimal}.feed-md-ul li,.feed-md-ol li{margin:.15em 0}.feed-md-bq{margin:.4em 0;padding:.4em .8em;border-left:3px solid var(--brand-strong, #3b82f6);background:var(--bg-dim, rgba(0,0,0,.03));border-radius:0 6px 6px 0;color:var(--text-muted, #6b7280)}.feed-md-bq p{margin:.15em 0}.feed-md-code{font-family:Fira Code,Consolas,monospace;font-size:.88em;padding:.15em .4em;border-radius:4px;background:var(--bg-dim, rgba(0,0,0,.05))}.feed-md-link{color:var(--brand-strong, #3b82f6);text-decoration:underline;text-underline-offset:2px}.feed-md-link:hover{opacity:.8}.load-more-wrap{display:flex;justify-content:center;padding:14px 0 8px}.btn-load-more{display:inline-flex;align-items:center;gap:6px;padding:10px 24px;font-size:.85rem;font-weight:600;color:var(--brand-strong, #3b82f6);background:var(--bg-dim, rgba(59,130,246,.06));border:1px solid var(--brand-strong, #3b82f6);border-radius:10px;cursor:pointer;transition:all .15s ease}.btn-load-more:hover{background:var(--brand-strong, #3b82f6);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f633}.btn-load-more:active{transform:translateY(0) scale(.98)}.achievements-grid{display:flex;gap:8px;flex-wrap:wrap}.achievement-badge{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:10px;font-size:.75rem;font-weight:600;border:1px solid var(--border);transition:all .15s}.achievement-badge.earned{background:linear-gradient(135deg,#dcfce7,#d1fae5);color:#166534;border-color:#86efac;box-shadow:0 1px 3px #1665341a;animation:badgePop .3s ease-out backwards}@media(prefers-color-scheme:dark){.achievement-badge.earned{background:linear-gradient(135deg,#1665344d,#065f4640);color:#86efac;border-color:#86efac4d;box-shadow:0 1px 3px #0003}.achievement-badge.earned:hover{box-shadow:0 3px 8px #0000004d}}.achievement-badge.earned:hover{transform:translateY(-1px);box-shadow:0 3px 8px #16653426}.achievement-badge.locked{background:var(--surface-alt);color:var(--text-muted);opacity:.55;filter:grayscale(.5)}.achievements-locked-section{padding-top:6px;border-top:1px solid var(--border)}.achievement-icon{font-size:1rem}.level-timeline{position:relative;padding-left:20px}.level-timeline:before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:2px;background:var(--border)}.level-timeline-item{display:flex;align-items:flex-start;gap:12px;padding:8px 0;position:relative}.level-timeline-dot{width:12px;height:12px;border-radius:50%;background:var(--brand-strong);position:absolute;left:-17px;top:12px;border:2px solid var(--bg)}.level-timeline-dot.up{background:#10b981}.level-timeline-dot.down{background:#ef4444}.level-timeline-item{list-style:none}.level-timeline-item>summary{display:flex;align-items:flex-start;gap:12px;padding:8px 0;position:relative;cursor:pointer;list-style:none}.level-timeline-item>summary::-webkit-details-marker{display:none}.level-timeline-item>summary::marker{display:none;content:""}.level-timeline-details{padding-left:0;margin-top:0;padding-bottom:4px}.level-expand-hint{font-size:.65rem;color:var(--muted);margin-left:4px;transition:transform .2s;display:inline-block}details.level-timeline-item[open] .level-expand-hint{transform:rotate(180deg)}.level-transition{display:flex;align-items:center;gap:6px}.level-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:6px;font-size:.75rem;font-weight:600;border:1px solid var(--border)}.score-pills{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.score-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:.7rem;font-weight:500;background:var(--surface);border:1px solid var(--border)}.avg-score-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:.75rem;font-weight:700}.avg-score-badge.excellent{background:#d1fae5;color:#065f46}.avg-score-badge.good{background:#dbeafe;color:#1e40af}.avg-score-badge.fair{background:#fef3c7;color:#92400e}.avg-score-badge.poor{background:#fee2e2;color:#991b1b}@media(prefers-color-scheme:dark){.avg-score-badge.excellent{background:#064e3b;color:#6ee7b7}.avg-score-badge.good{background:#1e3a5f;color:#93c5fd}.avg-score-badge.fair{background:#78350f;color:#fcd34d}.avg-score-badge.poor{background:#7f1d1d;color:#fca5a5}}.radar-chart-container{position:relative;display:flex;justify-content:center;align-items:center;padding:16px 0}.radar-chart-container svg{max-width:100%;height:auto}.radar-label{font-size:12px;font-weight:700;fill:var(--text)}.radar-value-label{font-size:10px;font-weight:600;fill:var(--text);opacity:.78}.radar-grid{stroke:color-mix(in srgb,var(--border) 60%,var(--text) 18%);stroke-width:1.15;fill:none}.radar-axis{stroke:color-mix(in srgb,var(--border) 75%,var(--text) 20%);stroke-width:.85;opacity:.72}.radar-area{fill:#3b82f626;stroke:#3b82f6;stroke-width:2;transition:all .3s ease}.radar-area-prev{fill:#8b5cf61a;stroke:#8b5cf6;stroke-width:1.5}.radar-point{fill:#3b82f6;stroke:#fff;stroke-width:1.5}.radar-point.active{r:5.5}.radar-point-prev{fill:#8b5cf659;stroke:#8b5cf6e6;stroke-width:1.25}.radar-point-hit{fill:transparent;cursor:default}.radar-point-hit.interactive{cursor:pointer}.radar-tooltip{position:absolute;transform:translate(-50%,calc(-100% - 14px));display:grid;gap:2px;min-width:132px;padding:10px 12px;border-radius:12px;border:1px solid color-mix(in srgb,var(--border) 68%,#3b82f6 20%);background:color-mix(in srgb,var(--surface) 92%,#ffffff 8%);box-shadow:0 16px 32px #0f172a29;pointer-events:none;z-index:4;font-size:.78rem}.radar-tooltip strong{font-size:.8rem}.radar-legend-current{background:#3b82f61a;color:#3b82f6;border:1px solid #3b82f6}.radar-legend-previous{background:#8b5cf61a;color:#8b5cf6;border:1px solid #8b5cf6}.stats-radar-row{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.stats-radar-card{min-width:0}.stats-radar-card .radar-chart-container{padding:8px 0}.stats-radar-card .radar-chart-container svg{width:100%;height:auto;max-width:320px;margin:0 auto;display:block}@media(min-width:1200px){.stats-radar-row{grid-template-columns:repeat(4,1fr)}}@media(max-width:640px){.stats-radar-row{grid-template-columns:1fr}.stats-radar-row>:nth-child(1){order:1}.stats-radar-row>:nth-child(2){order:3}.stats-radar-row>:nth-child(3){order:2}.stats-radar-row>:nth-child(4){order:4}}@media(prefers-color-scheme:dark){.radar-area{fill:#60a5fa33;stroke:#60a5fa}.radar-area-prev{fill:#a78bfa29;stroke:#a78bfa}.radar-point{fill:#60a5fa;stroke:var(--bg)}.radar-point-prev{fill:#c4b5fd57;stroke:#c4b5fd}.radar-tooltip{background:color-mix(in srgb,var(--surface) 90%,#0f172a 10%);box-shadow:0 18px 34px #00000059}.radar-legend-current{background:#60a5fa33;color:#93c5fd;border-color:#60a5fa}.radar-legend-previous{background:#a78bfa33;color:#c4b5fd;border-color:#a78bfa}}.avg-by-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}@media(max-width:480px){.avg-by-type-grid{grid-template-columns:1fr}}html,body{overscroll-behavior-y:contain}@media(max-width:480px){.grade-block{padding:10px 12px}.grade-big{font-size:1.1rem}.kpi{font-size:1.3rem}.stat-value{font-size:1.2rem}}.lesson-card,.hw-card,.feed-card,.invoice-card,.receipt-body{word-break:break-word;overflow-wrap:anywhere}.skeleton{background:linear-gradient(90deg,var(--surface-alt) 25%,var(--border) 50%,var(--surface-alt) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite linear;border-radius:6px}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media(hover:none){.card:active{background:var(--surface-alt)}.list-row:active{background:var(--border)}.feed-card:active,.hw-card:active,.lesson-card:active{transform:scale(.99)}}@supports (padding: max(0px)){.bottom-nav{padding-bottom:max(8px,env(safe-area-inset-bottom))}.content{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}}.bottom-nav,.sidebar-nav,.pill-tabs,.hw-filter-pills,.feed-page__pills{-webkit-user-select:none;user-select:none}:focus-visible{outline:2px solid var(--brand-strong);outline-offset:2px;border-radius:4px}body,.app-shell,.sidebar,.bottom-nav,.topbar,.card,.modal-card,.feed-modal{transition:background-color .3s ease,color .2s ease,border-color .2s ease}body{overflow-x:clip}#root{overflow:hidden}.app-main,.content{min-height:0}.content,.modal-body,.feed-modal__body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.content,.list,.feed-page__grid{scrollbar-gutter:stable}@media(max-width:480px){.content{padding:12px 10px 90px}.section-card,.card{padding:12px;border-radius:12px}.section-title,h2{font-size:1rem;margin-bottom:8px}}@media(max-width:640px){table{font-size:.8125rem}th,td{padding:8px 10px}.table-wrapper,.schedule-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.table-wrapper::-webkit-scrollbar,.schedule-table-wrap::-webkit-scrollbar{display:none}}@media(max-width:480px){.modal-card{margin:0;border-radius:16px 16px 0 0;max-height:calc(100dvh - env(safe-area-inset-top,0));width:100%!important;max-width:100%!important;align-self:flex-end}.modal-overlay{align-items:flex-end}.modal-card .modal-header{padding:14px 16px}.modal-card .modal-body{padding:12px 16px max(28px,calc(28px + env(safe-area-inset-bottom,0)))}}@supports (-webkit-touch-callout: none){@media(max-width:640px){.modal-card{max-height:calc(100dvh - env(safe-area-inset-top,0))}.modal-body{padding-bottom:max(32px,calc(32px + env(safe-area-inset-bottom,0)))}}}@media(pointer:coarse){button:not(.avatar),a[role=button],.pill-tab,.hw-filter-pill,.feed-page__pill{min-height:44px}input,select,textarea{min-height:44px;font-size:16px}}@media(max-width:480px){.feed-post-card{border-radius:12px;padding:12px}.feed-post-card__header{gap:8px}.feed-post-card__avatar{width:32px;height:32px;font-size:.75rem}}.app-main{overscroll-behavior-y:contain}@media(hover:none){.card:active,.section-card:active,.feed-post-card:active{transform:scale(.985);transition:transform .1s ease}.btn-primary:active{transform:scale(.97);filter:brightness(.9)}}@media(max-height:500px)and (orientation:landscape){.topbar{padding:6px 12px 4px}.topbar h1{font-size:.95rem}.topbar .eyebrow{display:none}.bottom-nav{padding-bottom:2px}.bottom-nav-item{min-height:42px;padding:4px 2px 6px}.content{padding-bottom:60px}}@media(hover:none){.card-lift-touch:hover{transform:none!important;box-shadow:none!important}}@supports (padding: env(safe-area-inset-top)){.topbar{padding-top:max(12px,env(safe-area-inset-top))}@media(max-width:480px){.topbar{padding-top:max(10px,env(safe-area-inset-top))}}}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}*:focus-visible{outline:2px solid var(--brand-strong);outline-offset:2px}*:focus:not(:focus-visible){outline:none}button,[role=button],nav,.bottom-nav,.pill-tabs{-webkit-user-select:none;user-select:none}::placeholder{color:var(--text-muted);opacity:.7;font-style:normal}@media(min-width:640px){.content{gap:12px}}@media(prefers-color-scheme:dark){.card:hover,.stat-card:hover,.quick-link-card:hover,.invoice-card:hover{box-shadow:0 4px 16px #00000040}}.app-main::-webkit-scrollbar{width:6px}.app-main::-webkit-scrollbar-track{background:transparent}.app-main::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.app-main::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}input,select,textarea{transition:border-color .15s,box-shadow .15s}.stat-value{letter-spacing:-.02em}@media(hover:none){.lesson-card:active,.hw-card:active,.feed-card:active{transform:scale(.98);transition-duration:.08s}}.receipt-edge{height:6px;position:relative;overflow:hidden}.receipt-edge.top{border-radius:16px 16px 0 0}.receipt-edge.bottom{border-radius:0 0 16px 16px}.receipt-edge:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 5px,var(--border) 5px 6px,transparent 6px 11px)}.modal-body a,.card a{color:var(--brand-strong);text-decoration-thickness:1px;text-underline-offset:2px;transition:color .12s}.modal-body a:hover,.card a:hover{text-decoration:underline}.badge{transition:transform .12s,box-shadow .12s}.monthly-counts{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--border),transparent);pointer-events:none}.card>.muted:only-child{text-align:center;padding:16px 8px;font-style:italic}.card-header-row svg{width:16px;height:16px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}[title]{position:relative}.bottom-nav{gap:0}.auth-card{box-shadow:0 8px 32px #00000014}.grade-bar{min-height:6px}.star-rating button{min-width:36px;min-height:36px}.bell-bounce{animation:bellShake .4s cubic-bezier(.2,.7,.2,1)}@keyframes bellShake{0%,to{transform:rotate(0)}20%{transform:rotate(12deg)}40%{transform:rotate(-10deg)}60%{transform:rotate(6deg)}80%{transform:rotate(-3deg)}}.hw-filter-pills{gap:6px}.notif-badge{animation:badgePop .25s ease-out}.profile-card{margin-bottom:12px}.loading-center{display:flex;align-items:center;justify-content:center;min-height:120px}.card-divider{height:1px;background:var(--border);margin:10px 0}@media(prefers-color-scheme:dark){.lesson-highlighted{border-color:color-mix(in srgb,#f59e0b 55%,var(--border))}}.dt-summary-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}.dt-summary-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 6px;background:var(--surface);border:1px solid var(--border);border-radius:10px}.dt-summary-value{font-size:1.25rem;font-weight:700;color:var(--text)}.dt-summary-label{font-size:.7rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.dt-summary-due .dt-summary-value{color:var(--brand-strong)}.dt-summary-mastered .dt-summary-value{color:#10b981}.dt-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.dt-search{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:.85rem;outline:none;transition:border-color .15s}.dt-search:focus{border-color:var(--brand-strong)}.dt-search::placeholder{color:var(--text-muted)}.dt-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;color:var(--text-muted);text-align:center;font-size:.9rem}.dt-empty-icon{font-size:1.5rem;opacity:.5}.dt-empty.dt-error{color:var(--danger, #ef4444)}.dt-deck-list{display:flex;flex-direction:column;gap:10px}.dt-deck-card{display:flex;flex-direction:column;gap:8px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:12px;text-decoration:none;color:var(--text);transition:border-color .15s,transform .12s,box-shadow .15s;cursor:pointer}.dt-deck-card:hover{border-color:var(--brand-strong)}.dt-deck-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.dt-deck-info{flex:1;min-width:0}.dt-deck-name{font-size:.95rem;font-weight:600;line-height:1.3;display:block}.dt-deck-meta{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.dt-deck-arrow{flex-shrink:0;opacity:.4;margin-top:2px}.dt-deck-actions-top{display:flex;align-items:center;gap:8px}.dt-rename-btn{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:7px;padding:3px 8px;background:var(--surface-alt, rgba(255, 255, 255, .06));color:var(--text-muted);font-size:.72rem;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s,transform .12s}.dt-rename-btn:hover{border-color:var(--brand-strong);color:var(--text)}.dt-rename-btn:active{transform:scale(.97)}.dt-rename-btn svg{width:12px;height:12px}.dt-badge{display:inline-flex;align-items:center;font-size:.65rem;font-weight:600;padding:2px 6px;border-radius:4px;white-space:nowrap;text-transform:uppercase;letter-spacing:.03em}.dt-badge-cat{background:color-mix(in srgb,var(--brand-strong) 15%,transparent);color:var(--brand-strong)}.dt-badge-assigned{background:color-mix(in srgb,#3b82f6 15%,transparent);color:#3b82f6}.dt-badge-personal{background:color-mix(in srgb,#8b5cf6 15%,transparent);color:#8b5cf6}.dt-badge-sync{background:color-mix(in srgb,#10b981 15%,transparent);color:#10b981}.dt-deck-stats{display:flex;flex-wrap:wrap;gap:10px;font-size:.8rem;color:var(--text-muted)}.dt-stat strong{font-weight:700;color:var(--text);margin-right:2px}.dt-stat-new strong{color:var(--brand-strong)}.dt-stat-due strong{color:#f59e0b}.dt-stat-mastered strong{color:#10b981}.dt-progress-row{display:flex;align-items:center;gap:8px}.dt-progress-bar{flex:1;height:5px;background:var(--border);border-radius:3px;overflow:hidden}.dt-progress-fill{height:100%;background:linear-gradient(90deg,var(--brand-strong),#10b981);border-radius:3px;transition:width .4s ease-out}.dt-progress-pct{font-size:.75rem;font-weight:600;color:var(--text-muted);min-width:32px;text-align:right}.dt-deadline{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--text-muted);padding:4px 0 0}.dt-deadline svg{width:12px;height:12px}.dt-deadline-days{font-weight:500}.dt-deadline-overdue{color:var(--danger, #ef4444);font-weight:600}.dt-deadline-soon{color:#f59e0b;font-weight:600}.dt-open-app{display:flex;justify-content:center;margin-top:16px;padding-bottom:8px}.dt-open-app a{display:inline-flex;align-items:center;gap:6px;font-size:.85rem}@media(max-width:480px){.dt-summary-row{grid-template-columns:repeat(2,1fr)}}.sticky-filters{position:static;top:auto;z-index:auto;padding:0 0 8px;background:transparent;border:none;border-radius:0;box-shadow:none;transition:none}.sticky-filters.is-stuck{border-color:transparent;box-shadow:none}.sticky-filters-inner{position:relative;z-index:1;display:flex;flex-direction:column;gap:8px;overflow:hidden;max-height:300px;transition:max-height .3s cubic-bezier(.4,0,.2,1),opacity .2s ease}.sticky-filters-inner.collapsed{max-height:0;opacity:0;padding:0;margin:0}.sticky-filters-toggle{display:flex;align-items:center;justify-content:center;gap:4px;padding:4px 10px;margin:0 auto;border:1px solid var(--border);border-radius:8px;background:var(--surface-alt);color:var(--text-muted);font-size:.7rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s,transform .15s;white-space:nowrap}.sticky-filters-toggle:hover{background:var(--border);color:var(--text)}.sticky-filters-toggle:active{transform:scale(.95)}.sticky-filters-toggle svg,.sticky-filters-toggle .chevron{transition:transform .25s ease}.sticky-filters-toggle.expanded .chevron{transform:rotate(180deg)}.scroll-top-btn{position:fixed;bottom:80px;right:16px;z-index:45;width:40px;height:40px;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:opacity .25s ease,transform .25s ease;opacity:0;transform:translateY(12px) scale(.9);pointer-events:none}.scroll-top-btn.visible{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.scroll-top-btn:hover{box-shadow:0 4px 16px #0000001f;transform:translateY(-2px) scale(1.05)}.scroll-top-btn:active{transform:scale(.9)}.student-ai{position:fixed;z-index:180;right:16px;bottom:20px;display:flex;flex-direction:column;align-items:flex-end;gap:10px}.student-ai__trigger{border:0;border-radius:999px;padding:11px 15px;background:linear-gradient(135deg,#4f46e5,#2563eb);color:#fff;font:inherit;font-size:.85rem;font-weight:700;box-shadow:0 10px 28px #2563eb52;cursor:pointer}.student-ai__panel{width:min(390px,calc(100vw - 32px));height:min(540px,calc(100dvh - 110px));display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:18px;background:var(--surface);box-shadow:0 16px 42px #0f172a38}.student-ai__header{display:flex;justify-content:space-between;gap:12px;padding:14px 14px 10px;border-bottom:1px solid var(--border)}.student-ai__header p{margin:3px 0 0;color:var(--muted);font-size:.72rem;line-height:1.35}.student-ai__icon-button{border:0;background:transparent;color:var(--muted);font-size:1.3rem;cursor:pointer}.student-ai__conversation{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.student-ai__message{margin:0;max-width:88%;padding:9px 11px;border-radius:13px;white-space:pre-wrap;font-size:.85rem;line-height:1.45}.student-ai__message--user{align-self:flex-end;background:#2563eb;color:#fff;border-bottom-right-radius:4px}.student-ai__message--model{align-self:flex-start;background:var(--surface-alt);color:var(--text);border-bottom-left-radius:4px}.student-ai__loading{color:var(--muted);font-style:italic}.student-ai__starter{border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff;color:#1d4ed8;padding:10px;text-align:left;cursor:pointer;font:inherit;font-size:.82rem}.student-ai__error{margin:0;color:#dc2626;font-size:.78rem}.student-ai__attachment{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 12px 8px;padding:6px 8px;border-radius:8px;background:#eef2ff;color:#3730a3;font-size:.74rem}.student-ai__attachment button{border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;text-decoration:underline}.student-ai__form{display:flex;align-items:center;gap:7px;padding:10px;border-top:1px solid var(--border)}.student-ai__form input{min-width:0;flex:1;border:1px solid var(--border);border-radius:10px;padding:9px 10px;background:var(--surface);color:var(--text);font:inherit;font-size:.82rem}.student-ai__add-wrap{position:relative}.student-ai__add,.student-ai__send{border:0;border-radius:9px;cursor:pointer;font:inherit;font-weight:700}.student-ai__add{width:34px;height:34px;background:var(--surface-alt);color:var(--text);font-size:1.25rem}.student-ai__send{padding:9px 10px;background:#2563eb;color:#fff;font-size:.76rem}.student-ai__send:disabled{opacity:.45;cursor:not-allowed}.student-ai__add-menu{position:absolute;bottom:42px;left:0;width:205px;display:grid;overflow:hidden;border:1px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:var(--shadow-sm)}.student-ai__add-menu button{padding:9px 10px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer;font:inherit;font-size:.78rem}.student-ai__add-menu button:hover{background:var(--surface-alt)}@media(max-width:640px){.student-ai{bottom:calc(72px + env(safe-area-inset-bottom,0px));right:12px}.student-ai__panel{height:min(510px,calc(100dvh - 150px))}.student-ai__trigger{padding:10px 13px}}.sticky-filters-status{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap}@media(prefers-color-scheme:dark){.scroll-top-btn{box-shadow:0 4px 16px #0006}}@media(prefers-reduced-motion:reduce){.sticky-filters-inner{transition:none}.sticky-filters-toggle svg,.sticky-filters-toggle .chevron{transition:none}.scroll-top-btn{transition:none}}@media(max-width:480px){.sticky-filters-toggle{font-size:.65rem;padding:3px 8px}}.kpi-row-compact{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:4px}.kpi-cell{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px;min-width:0}.kpi-cell p{margin:0}.kpi-cell .kpi{font-size:1.2rem;margin:2px 0 4px}.kpi-cell .progress-track{margin-top:4px}.assessment-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.assessment-kpi-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kpi-cell.focus{border-color:#ef444440;box-shadow:0 8px 24px #ef444414}.kpi-cell.trend.up{border-color:#22c55e47;box-shadow:0 10px 26px #22c55e14}.kpi-cell.trend.down{border-color:#ef444447;box-shadow:0 10px 26px #ef44441a}.assessment-trend-context{margin-top:6px;font-weight:600}.assessment-inline-action{margin-top:8px;font-size:.72rem;padding:6px 10px}@media(max-width:480px){.kpi-row-compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.kpi-cell{padding:8px 6px}.kpi-cell .kpi{font-size:1rem}.kpi-cell .small{font-size:.65rem}}.assessment-sticky-summary{position:sticky;top:8px;z-index:6;display:flex;align-items:center;gap:10px;padding:10px 12px;margin:4px 0 12px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--surface) 92%,#ffffff 8%);box-shadow:0 12px 28px #0f172a14;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.assessment-mini-kpi{display:grid;gap:2px;min-width:0}.assessment-mini-kpi strong{font-size:.95rem}.assessment-workspace-card{padding:18px}.assessment-workspace-header,.assessment-bars-header,.assessment-timeline-head,.assessment-skill-row-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.assessment-workspace-header h3,.assessment-bars-header h3{margin:0}.assessment-legend-pills{justify-content:flex-end}.assessment-hero-grid{display:grid;grid-template-columns:minmax(260px,.95fr) minmax(320px,1.05fr);gap:18px;align-items:start;margin-top:14px}.assessment-radar-panel,.assessment-bars-panel{min-width:0}.assessment-radar-caption{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;margin-top:6px}.assessment-skill-list{display:flex;flex-direction:column;gap:12px;margin-top:10px}.assessment-skill-row{padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:var(--surface-alt)}.assessment-skill-row.priority{border-color:#ef444438;box-shadow:inset 0 0 0 1px #ef44440d}.assessment-skill-title-wrap,.assessment-skill-score-wrap{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.assessment-skill-name{font-size:.96rem;font-weight:700}.assessment-skill-delta{font-size:.78rem;font-weight:700}.assessment-skill-delta.up{color:#16a34a}.assessment-skill-delta.down{color:#ef4444}.assessment-skill-delta.flat{color:var(--text-muted)}.assessment-skill-track{height:12px;border-radius:999px;background:color-mix(in srgb,var(--border) 78%,var(--surface) 22%);overflow:hidden;margin-top:10px}.assessment-skill-fill{height:100%;border-radius:999px;animation:gradeBarGrow .55s ease-out both}.assessment-skill-meta{display:flex;justify-content:space-between;gap:10px;margin-top:8px;font-size:.76rem;color:var(--text-muted)}.assessment-row-action{margin-top:10px}.assessment-feedback-card,.assessment-timeline-card{margin-top:18px}.assessment-highlights-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.assessment-highlight-card{padding:12px 14px;border-radius:14px;border:1px solid var(--border);background:var(--surface-alt)}.assessment-highlight-card p{margin:6px 0 0;font-size:.88rem;line-height:1.55}.assessment-highlight-label{display:inline-block;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.assessment-feedback-links-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.assessment-feedback-content{margin-top:14px;padding:16px 18px;border-radius:16px;border:1px solid var(--border);background:var(--surface-alt)}.assessment-feedback-paragraph{margin:0 0 12px;line-height:1.72}.assessment-feedback-paragraph:last-child{margin-bottom:0}.assessment-feedback-link{display:inline-flex;align-items:center;gap:2px;padding:0;border:0;background:transparent;color:#2563eb;cursor:pointer;font:inherit}.assessment-feedback-link:hover{text-decoration:underline}.assessment-feedback-term{color:color-mix(in srgb,var(--text) 88%,#1d4ed8 12%)}.assessment-timeline-list{display:flex;flex-direction:column;gap:12px}.assessment-timeline-item{padding:12px 14px;border-radius:14px;border:1px solid var(--border);background:var(--surface-alt)}@media(max-width:760px){.assessment-sticky-summary{flex-wrap:wrap}.assessment-hero-grid,.assessment-highlights-grid{grid-template-columns:1fr}.assessment-workspace-header,.assessment-bars-header,.assessment-skill-row-head,.assessment-timeline-head{flex-direction:column;align-items:stretch}.assessment-legend-pills{justify-content:flex-start}.assessment-skill-meta{flex-direction:column}}@media(max-width:480px){.list-row{padding:8px 10px;gap:8px}.list-row .progress-track{height:4px;margin-top:3px}}.course-overview{max-width:1120px}.course-overview-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.course-overview-heading h2{margin:0 0 4px;font-size:clamp(1.5rem,2vw,1.85rem);letter-spacing:-.035em}.course-overview-heading p{margin:0}.course-view-switch{display:inline-flex;flex:0 0 auto;padding:3px;border:1px solid var(--border);border-radius:10px;background:var(--surface-alt)}.course-view-switch button{display:inline-grid;width:32px;height:28px;place-items:center;padding:0;border:0;border-radius:7px;color:var(--text-muted);background:transparent;cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.course-view-switch button:hover{color:var(--text)}.course-view-switch button.active{color:#fff;background:var(--brand-strong);box-shadow:0 2px 5px #2563eb38}.course-view-switch button:focus-visible,.course-browser-card:focus-visible,.course-browser-all:focus-visible{outline:3px solid var(--brand-soft);outline-offset:2px}.course-browser-all{width:100%;display:flex;align-items:center;gap:13px;margin:0 0 18px;padding:14px 16px;color:var(--text);text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:15px;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.course-browser-all:hover{border-color:color-mix(in srgb,var(--brand-strong) 35%,var(--border));background:color-mix(in srgb,var(--surface) 96%,var(--brand-strong));box-shadow:0 7px 20px #0f172a0d}.course-browser-all-icon{display:inline-grid;width:34px;height:34px;flex:0 0 auto;place-items:center;color:var(--brand-strong);background:var(--brand-soft);border-radius:10px}.course-browser-all-copy{display:grid;gap:2px;min-width:0}.course-browser-all-copy strong{font-size:.94rem}.course-browser-all-copy span{font-size:.8rem;color:var(--text-muted)}.course-browser-all .course-browser-arrow{margin-left:auto;color:var(--brand-strong)}.course-browser-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.course-browser-card{--course-accent: #8b5cf6;position:relative;min-height:168px;width:100%;display:flex;align-items:flex-start;gap:11px;padding:17px 14px 15px 17px;overflow:hidden;text-align:left;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:15px;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.course-browser-card:before{position:absolute;inset:0 auto 0 0;width:4px;background:var(--course-accent);content:""}.course-browser-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--course-accent) 50%,var(--border));box-shadow:0 10px 24px #0f172a14}.course-browser-marker{display:inline-grid;width:31px;height:31px;flex:0 0 auto;place-items:center;border-radius:9px;color:var(--course-accent);background:color-mix(in srgb,var(--course-accent) 12%,var(--surface));font-size:.8rem;font-weight:700}.course-browser-card-main{min-width:0;flex:1}.course-browser-card-main>p{overflow:hidden;margin:0;text-overflow:ellipsis;white-space:nowrap}.course-browser-card-main>.muted{margin-top:4px}.course-browser-stats{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0 10px;font-size:.76rem;color:var(--text-muted)}.course-browser-card-main .progress-track{margin:0}.course-browser-due{display:none}.course-browser-arrow{display:inline-flex;flex:0 0 auto;align-self:center;color:var(--course-accent)}.course-browser-grid.is-list{display:flex;flex-direction:column;gap:7px}.course-browser-grid.is-list .course-browser-card{min-height:76px;align-items:center;padding:12px 15px 12px 17px}.course-browser-grid.is-list .course-browser-card-main{display:grid;grid-template-columns:minmax(155px,.9fr) minmax(160px,1.1fr) minmax(110px,.5fr);align-items:center;gap:14px}.course-browser-grid.is-list .course-browser-card-main>.muted{margin:0}.course-browser-grid.is-list .course-browser-stats{margin:0;justify-content:flex-end}.course-browser-grid.is-list .course-browser-card-main .progress-track{display:none}.course-browser-grid.is-list .course-browser-due{display:grid;min-width:114px;gap:3px;color:var(--text-muted);font-size:.72rem;text-align:right}.course-browser-grid.is-list .course-browser-due strong{color:var(--text);font-size:.8rem;font-weight:650;white-space:nowrap}.course-back{display:inline-flex;align-items:center;gap:5px;padding:0;margin:0 0 8px;border:0;color:var(--text-muted);background:transparent;font:inherit;font-size:.82rem;cursor:pointer}.course-back:hover{color:var(--text)}.homework-kpi-pills{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.homework-kpi-pill{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:7px 11px;border-radius:11px;font-size:.78rem;background:var(--surface-alt);color:var(--text-muted)}.homework-kpi-pill strong{color:var(--text);font-size:.92rem}.homework-kpi-pill.progress{background:color-mix(in srgb,#8b5cf6 10%,var(--surface))}.homework-kpi-pill.active{background:color-mix(in srgb,#2563eb 10%,var(--surface))}.homework-kpi-pill.grade{background:color-mix(in srgb,#16a34a 10%,var(--surface))}.homework-kpi-pill .progress-track{width:56px;margin:0}@media(max-width:640px){.course-overview-heading{gap:12px;margin-bottom:14px}.course-view-switch{display:none}.course-browser-all{margin-bottom:12px;padding:12px 13px;border-radius:13px}.course-browser-grid,.course-browser-grid.is-list{display:flex;flex-direction:column;gap:7px}.course-browser-card,.course-browser-grid.is-list .course-browser-card{min-height:0;align-items:center;padding:12px 12px 12px 15px;border-radius:13px}.course-browser-card:hover{transform:none}.course-browser-card-main,.course-browser-grid.is-list .course-browser-card-main{display:block}.course-browser-card-main>.muted,.course-browser-grid.is-list .course-browser-card-main>.muted{margin-top:3px}.course-browser-card-main>.progress-track,.course-browser-grid.is-list .course-browser-card-main .progress-track{display:block;margin-top:8px}.course-browser-stats,.course-browser-grid.is-list .course-browser-stats{margin:7px 0 0;justify-content:flex-start}.course-browser-due,.course-browser-grid.is-list .course-browser-due{display:none}}
