:root{--bg: #f4f7f5;--bg-deep: #e8eeeb;--card: rgba(255, 255, 255, .86);--text: #16221e;--muted: #65736d;--faint: #8c9893;--border: rgba(30, 56, 47, .1);--accent: #275e4d;--shadow: 0 14px 38px rgba(31, 51, 44, .08);--shadow-hover: 0 22px 48px rgba(31, 51, 44, .14);--radius-lg: 24px;--radius-md: 18px;--space-page: clamp(20px, 5vw, 72px);--max-width: 1320px;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,SF Pro Display,PingFang SC,Microsoft YaHei,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{min-width:320px;background:var(--bg)}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at 88% 2%,rgba(77,130,111,.12),transparent 30%),var(--bg)}button,a{font:inherit}button{color:inherit}.app-shell{min-height:100vh;padding-bottom:80px}.site-header,.page-wrap{width:min(100%,var(--max-width));margin:0 auto;padding-inline:var(--space-page)}.site-header{padding-top:clamp(28px,5vw,64px)}.site-header--compact{padding-top:clamp(24px,3vw,42px)}.site-header__top{position:relative;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand-row{display:flex;align-items:center;gap:12px;color:var(--muted)}.brand-mark{display:grid;width:38px;height:38px;place-items:center;color:#f7fbf9;background:var(--accent);border-radius:12px;box-shadow:0 8px 20px #275e4d33}.wordmark{color:var(--text);font-size:.92rem;font-weight:750;letter-spacing:.13em}.brand-divider{width:1px;height:18px;margin-inline:2px;background:var(--border)}.brand-row p{margin:0;font-size:.9rem}.intro-copy{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.62fr);align-items:end;gap:48px;margin:clamp(64px,10vw,124px) 0 clamp(54px,7vw,84px)}.intro-copy h1{max-width:660px;margin:0;font-size:clamp(3.4rem,7.8vw,7rem);font-weight:620;letter-spacing:-.072em;line-height:.94}.intro-copy p{max-width:390px;margin:0 0 6px;color:var(--muted);font-size:clamp(1rem,1.6vw,1.18rem);line-height:1.75}.section-heading{margin-bottom:24px}.view-transition{animation:switch-view .26s ease both}.eyebrow{margin:0 0 10px;color:var(--faint);font-size:.74rem;font-weight:700;letter-spacing:.18em}.section-heading__row{display:flex;align-items:baseline;justify-content:space-between;gap:20px}.section-heading h2{margin:0;font-size:clamp(1.7rem,3vw,2.3rem);font-weight:620;letter-spacing:-.04em}.section-heading__row>span{color:var(--muted);font-size:.9rem}.subject-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.2vw,28px)}.subject-card{display:block;min-width:0;padding:0;overflow:hidden;text-align:left;background:var(--card);border:1px solid rgba(255,255,255,.74);border-radius:var(--radius-lg);box-shadow:var(--shadow);cursor:pointer;animation:enter-card .52s both;animation-delay:var(--enter-delay);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease}.subject-card:hover{transform:translateY(-4px);border-color:#275e4d24;box-shadow:var(--shadow-hover)}.subject-card:focus-visible{outline:3px solid rgba(39,94,77,.32);outline-offset:4px}.media{position:relative;display:block;height:0;padding-bottom:65%;overflow:hidden;isolation:isolate}.media img{position:absolute;z-index:2;width:100%;height:100%;object-fit:cover;top:0;right:0;bottom:0;left:0;transition:transform .32s ease}.subject-card:hover .media img,.subject-card:hover .media__art,.course-card:hover .media img,.course-card:hover .media__art{transform:scale(1.035)}.media__art{position:absolute;top:0;right:0;bottom:0;left:0;transition:transform .32s ease}.media__art:after{position:absolute;width:60%;height:60%;border:1px solid rgba(255,255,255,.42);border-radius:50%;content:"";right:-12%;top:-18%}.media__line{position:absolute;height:1px;background:#ffffff7a;transform:rotate(-18deg)}.media__line--one{width:70%;right:-8%;bottom:28%}.media__line--two{width:42%;right:8%;bottom:21%}.media__orb{position:absolute;width:28%;aspect-ratio:1;left:13%;bottom:14%;background:#ffffff29;border:1px solid rgba(255,255,255,.3);border-radius:42% 58% 59% 41%/48% 42% 58% 52%;box-shadow:inset 0 0 34px #ffffff2e}.placeholder--physiology{background:linear-gradient(145deg,#7a9e9f,#224b4b)}.placeholder--biochemistry{background:linear-gradient(145deg,#8e9d92,#394b4d)}.placeholder--genetics{background:linear-gradient(145deg,#aaa8bd,#454b67)}.placeholder--neuroscience{background:linear-gradient(145deg,#91a9a1,#344957)}.placeholder--anatomy{background:linear-gradient(145deg,#b7988a,#584842)}.placeholder--english{background:linear-gradient(145deg,#8196ad,#37485c)}.placeholder--luo{background:linear-gradient(145deg,#779f9a,#28504a)}.placeholder--chuanyong{background:linear-gradient(145deg,#8fa88f,#3f5b4d)}.placeholder--zhongbao{background:linear-gradient(145deg,#c0a379,#69533a)}.placeholder--mei{background:linear-gradient(145deg,#7da49b,#315a53)}.placeholder--buyan{background:linear-gradient(145deg,#bd9e74,#614c35)}.placeholder--zuoji{background:linear-gradient(145deg,#9b98b0,#4e5067)}.placeholder--shaoxiang{background:linear-gradient(145deg,#aa8f82,#594740)}.placeholder--shaozhuang{background:linear-gradient(145deg,#879a96,#3c4d4a)}.placeholder--koolearn{background:linear-gradient(145deg,#7f98b5,#354b66)}.placeholder--welearn{background:linear-gradient(145deg,#7597ae,#304c65)}.media__label{position:absolute;z-index:1;left:clamp(20px,2.4vw,30px);bottom:clamp(20px,2.4vw,30px);color:#fffffff0;font-size:clamp(1.5rem,3vw,2.15rem);font-weight:600;letter-spacing:-.04em}.subject-card__body{display:flex;min-height:162px;align-items:flex-start;justify-content:space-between;gap:16px;padding:clamp(20px,2.3vw,28px)}.subject-card__copy{display:flex;min-width:0;flex-direction:column}.subject-card strong{font-size:clamp(1.15rem,1.8vw,1.42rem);font-weight:620;letter-spacing:-.025em;line-height:1.35}.subject-card__english{margin-top:6px;overflow:hidden;color:var(--muted);font-size:.85rem;line-height:1.4;text-overflow:ellipsis}.subject-card__count{margin-top:22px;color:var(--faint);font-size:.82rem}.card-arrow{display:grid;width:36px;height:36px;flex:0 0 auto;place-items:center;color:var(--accent);background:#275e4d14;border-radius:50%;transition:transform .24s ease,background .24s ease}.subject-card:hover .card-arrow{background:#275e4d21;transform:translate(2px,-2px)}.page-wrap--detail{padding-top:clamp(58px,7vw,96px)}.back-button,.empty-state__back{display:inline-flex;align-items:center;gap:8px;padding:8px 0;color:var(--muted);background:transparent;border:0;border-radius:8px;cursor:pointer;transition:color .18s ease,transform .18s ease}.back-button:hover,.empty-state__back:hover{color:var(--text);transform:translate(-2px)}.back-button:focus-visible,.empty-state__back:focus-visible,.course-card:focus-visible{outline:3px solid rgba(39,94,77,.32);outline-offset:4px}.subject-hero{margin:clamp(56px,8vw,104px) 0 clamp(42px,6vw,70px)}.subject-hero .eyebrow{margin-bottom:18px}.subject-hero h1{margin:0;font-size:clamp(3.4rem,8vw,7.4rem);font-weight:610;letter-spacing:-.07em;line-height:.96}.subject-hero__english{margin:14px 0 0;color:var(--muted);font-size:clamp(1.05rem,2vw,1.3rem)}.subject-hero__description{margin:clamp(36px,5vw,62px) 0 0;color:var(--muted);font-size:1rem}.course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.2vw,28px)}.course-grid--1{grid-template-columns:minmax(0,420px)}.course-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.course-card{position:relative;display:block;min-width:0;overflow:hidden;color:inherit;text-decoration:none;background:var(--card);border:1px solid rgba(255,255,255,.74);border-radius:var(--radius-lg);box-shadow:var(--shadow);cursor:pointer;animation:enter-card .48s both;animation-delay:var(--enter-delay);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease}.course-card__surface-link{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;width:100%;padding:0;background:transparent;border:0;border-radius:inherit;cursor:pointer}.course-card__surface-link:focus-visible{outline:3px solid rgba(39,94,77,.32);outline-offset:-4px}.course-card:hover{transform:translateY(-4px);border-color:#275e4d24;box-shadow:var(--shadow-hover)}.course-card .media{padding-bottom:62%}.course-card__body{display:flex;min-height:430px;flex-direction:column;align-items:flex-start;padding:clamp(22px,2.4vw,30px)}.course-card__meta{display:flex;min-width:0;align-items:center;gap:10px;margin-bottom:22px}.course-role{padding:6px 10px;border-radius:999px;font-size:.77rem;font-weight:650;line-height:1}.course-role--primary{color:#365d78;background:#e5eff5}.course-role--support{color:#38654f;background:#e6f1e9}.course-role--advanced{color:#7b5c2e;background:#f5eddc}.course-role--language{color:#4e5976;background:#e9edf5}.course-type{overflow:hidden;color:var(--faint);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.course-card strong{font-size:clamp(1.2rem,1.9vw,1.5rem);font-weight:620;letter-spacing:-.035em;line-height:1.35}.course-platform{margin-top:8px;color:var(--muted);font-size:.86rem}.course-english{margin-top:7px;color:var(--muted);font-size:.82rem;line-height:1.45}.course-platform{margin-top:5px}.course-description{margin-top:26px;color:var(--text);font-size:.96rem;line-height:1.6}.button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:7px;padding:0 16px;color:var(--text);background:transparent;border:0;border-radius:12px;cursor:pointer;font-size:.86rem;font-weight:620;text-decoration:none;transition:color .18s ease,background .18s ease,transform .18s ease,opacity .18s ease}.button:hover{transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.52;transform:none}.button--primary{color:#f7fbf9;background:var(--accent);box-shadow:0 8px 18px #275e4d29}.button--primary:hover:not(:disabled){background:#1f5142}.button--quiet{color:var(--muted);background:#275e4d11}.button--quiet:hover:not(:disabled){color:var(--text);background:#275e4d1a}.button--danger{color:#813f3f;background:#f8eaea}.button--danger:hover{background:#f2dddd}.button:focus-visible,.icon-button:focus-visible,.text-button:focus-visible,.course-card__external:focus-visible,.recent-item:focus-visible,.recent-learning__all:focus-visible,.session-menu summary:focus-visible,.session-menu button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(39,94,77,.28);outline-offset:3px}.course-card--active{border-color:#275e4d47;box-shadow:0 20px 46px #1f4c3d24}.course-learning{width:100%;margin-top:24px;padding-top:20px;color:var(--muted);border-top:1px solid var(--border)}.course-learning__status{display:flex;align-items:center;gap:7px;font-size:.78rem;font-weight:650}.status-dot{width:7px;height:7px;flex:0 0 auto;background:#aab2ae;border-radius:50%}.status-dot--学习中,.status-dot--正在学习{background:#46836e}.status-dot--暂停{background:#ba8b48}.status-dot--已完成{background:#5875a1}.course-learning__primary{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:12px;color:var(--text);font-size:.9rem}.course-learning__primary strong{color:var(--accent);font-size:.82rem;letter-spacing:0}.progress-track{height:3px;margin-top:10px;overflow:hidden;background:#275e4d17;border-radius:999px}.progress-track span{display:block;height:100%;background:#739b8d;border-radius:inherit;transition:width .26s ease}.course-learning__facts{display:flex;flex-wrap:wrap;gap:7px 15px;margin-top:13px;font-size:.78rem}.course-learning p{margin:8px 0 0;overflow:hidden;color:var(--faint);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.course-card__detail-hint{display:inline-flex;margin-top:17px;color:var(--accent);font-size:.79rem;font-weight:630}.course-card__actions{position:relative;z-index:2;display:grid;width:100%;grid-template-columns:minmax(0,1fr) auto 38px;gap:8px;margin-top:auto;padding-top:26px}.course-card__continue{min-width:0}.course-card__external{display:grid;width:38px;height:44px;place-items:center;color:var(--muted);background:#275e4d0b;border-radius:12px;transition:color .18s ease,background .18s ease}.course-card__external:hover{color:var(--accent);background:#275e4d1a}.course-study-tip{margin-top:22px;padding-top:18px;color:var(--muted);font-size:.84rem;line-height:1.65;border-top:1px solid var(--border)}.course-study-tip>span{display:block;margin-bottom:5px;color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.08em}.course-link{display:inline-flex;align-items:center;gap:5px;margin-top:auto;padding-top:28px;color:var(--accent);font-size:.88rem;font-weight:620}.course-link svg{transition:transform .2s ease}.course-card:hover .course-link svg{transform:translate(2px,-2px)}.study-guide{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(260px,1fr) minmax(0,1.55fr);gap:clamp(28px,4vw,60px);margin-top:clamp(64px,8vw,112px);padding:clamp(28px,4vw,52px);background:#1f4237f5;border-radius:var(--radius-lg);box-shadow:0 22px 58px #1f332c29;color:#f5f8f6}.study-guide__heading{display:flex;align-items:flex-start;gap:14px}.study-guide__icon{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;color:#d7e5de;background:#ffffff17;border-radius:14px}.study-guide .eyebrow{margin:1px 0 8px;color:#e8f2ed8c}.study-guide h2{margin:0;font-size:clamp(1.35rem,2.2vw,1.8rem);font-weight:600;letter-spacing:-.035em}.study-guide__summary strong{display:block;font-size:clamp(1.1rem,1.8vw,1.35rem);font-weight:580;line-height:1.45}.study-guide__summary p,.study-guide__steps p{margin:12px 0 0;color:#edf5f1ad;line-height:1.7}.study-guide__steps{display:grid;gap:0;margin:0;padding:0;list-style:none}.study-guide__steps li{display:grid;grid-template-columns:34px minmax(0,1fr);gap:14px;padding:0 0 22px}.study-guide__steps li+li{padding-top:22px;border-top:1px solid rgba(255,255,255,.11)}.study-guide__steps li:last-child{padding-bottom:0}.study-guide__number{color:#e8f2ed7a;font-size:.76rem;font-weight:700;letter-spacing:.08em}.study-guide__steps strong{font-size:.94rem;font-weight:620}.study-guide__steps p{margin-top:6px;font-size:.88rem}.empty-state{display:flex;min-height:min(600px,66vh);flex-direction:column;align-items:center;justify-content:center;padding:80px 24px;text-align:center}.empty-state__icon{display:grid;width:68px;height:68px;margin-bottom:30px;place-items:center;color:var(--accent);background:#275e4d17;border-radius:22px}.empty-state .eyebrow{margin-bottom:16px}.empty-state h1{margin:0;font-size:clamp(2.6rem,6vw,5.2rem);font-weight:610;letter-spacing:-.065em}.empty-state>p:not(.eyebrow){margin:18px 0 38px;color:var(--muted);line-height:1.7}.empty-state__back{padding:10px 15px;color:var(--text);background:#ffffffb8;border:1px solid var(--border)}.recent-learning{margin-top:clamp(72px,9vw,124px);padding:clamp(26px,4vw,46px);background:#fff9;border:1px solid rgba(255,255,255,.82);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.home-stats{margin-top:clamp(68px,8vw,108px)}.home-stats__heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.home-stats__heading h2{margin:0;font-size:clamp(1.65rem,3vw,2.25rem);font-weight:620;letter-spacing:-.04em}.home-stats__heading>span{color:var(--muted);font-size:.8rem}.home-stats__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.home-stats__grid article{display:grid;min-height:150px;grid-template-columns:auto 1fr;align-items:start;gap:18px 10px;padding:24px;background:#ffffffb3;border:1px solid rgba(255,255,255,.86);border-radius:var(--radius-md);box-shadow:0 10px 26px #1f332c0e}.home-stats__grid svg{color:var(--accent)}.home-stats__grid span{color:var(--muted);font-size:.82rem}.home-stats__grid strong{grid-column:1 / -1;align-self:end;font-size:clamp(1.55rem,3vw,2.35rem);font-weight:610;letter-spacing:-.045em}.course-detail-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:clamp(30px,5vw,72px);margin:clamp(54px,8vw,96px) 0 clamp(34px,5vw,58px)}.course-detail-hero h1{max-width:800px;margin:0;font-size:clamp(2.5rem,6vw,5.6rem);font-weight:610;letter-spacing:-.065em;line-height:1}.course-detail-hero__english{margin:16px 0 0;color:var(--muted);font-size:1.02rem}.course-detail-hero__reference{margin:10px 0 0;color:var(--accent);font-family:ui-serif,Georgia,serif;font-size:clamp(.96rem,1.6vw,1.12rem);font-style:italic}.course-detail-hero__description{margin:24px 0 0;color:var(--muted)}.course-detail-hero__actions{display:grid;min-width:190px;gap:9px}.course-detail-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.course-detail-summary article{display:flex;min-height:142px;flex-direction:column;align-items:flex-start;padding:22px;background:#ffffffb8;border:1px solid rgba(255,255,255,.86);border-radius:var(--radius-md);box-shadow:0 10px 26px #1f332c0e}.course-detail-summary span{color:var(--faint);font-size:.76rem}.course-detail-summary strong{margin-top:auto;font-size:clamp(1rem,1.7vw,1.3rem);font-weight:610;line-height:1.4}.course-detail-summary small{margin-top:5px;color:var(--muted)}.chapter-section{margin-top:clamp(62px,8vw,104px)}.chapter-section__heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.chapter-section__heading h2{margin:0;font-size:clamp(1.7rem,3vw,2.35rem);font-weight:620;letter-spacing:-.04em}.chapter-section__heading>span{color:var(--muted);font-size:.8rem}.chapter-list{overflow:hidden;background:#ffffffa8;border:1px solid rgba(255,255,255,.86);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.chapter-row{display:grid;width:100%;min-height:82px;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:18px;padding:14px 22px;color:var(--text);text-align:left;background:transparent;border:0;border-bottom:1px solid var(--border);cursor:pointer;transition:background .18s ease,padding .18s ease}.chapter-row:last-child{border-bottom:0}.chapter-row:hover{padding-inline:27px 22px;background:#275e4d0b}.chapter-row:focus-visible{position:relative;z-index:1;outline:3px solid rgba(39,94,77,.28);outline-offset:-3px}.chapter-row__number{color:var(--faint);font-size:.8rem;font-variant-numeric:tabular-nums}.chapter-row__title{display:grid;min-width:0;gap:5px}.chapter-row__title strong{font-size:.96rem;font-weight:610}.chapter-row__title small{overflow:hidden;color:var(--muted);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.chapter-row__status{display:inline-flex;min-width:88px;align-items:center;justify-content:flex-start;gap:8px;color:var(--faint);font-size:.79rem}.chapter-row--learning .chapter-row__status{color:#9b7137}.chapter-row--completed .chapter-row__status{color:var(--accent)}.chapter-row--completed .chapter-row__title strong{color:var(--muted)}.chapter-empty{display:flex;align-items:flex-start;gap:16px;padding:clamp(26px,4vw,44px);color:var(--accent);background:#ffffffa3;border:1px solid rgba(255,255,255,.86);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.chapter-empty strong{color:var(--text);font-weight:620}.chapter-empty p{max-width:640px;margin:8px 0 0;color:var(--muted);font-size:.88rem;line-height:1.7}.recent-learning__heading,.history-section__heading,.records-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.recent-learning__heading h2,.history-section__heading h2{margin:0;font-size:clamp(1.65rem,3vw,2.25rem);font-weight:620;letter-spacing:-.04em}.week-total{display:grid;grid-template-columns:auto auto;align-items:center;gap:4px 9px;color:var(--muted);font-size:.78rem}.week-total svg{grid-row:1 / 3;color:var(--accent)}.week-total strong{color:var(--text);font-size:1.05rem;font-weight:620}.recent-list{margin-top:24px;border-top:1px solid var(--border)}.recent-item{display:grid;width:100%;grid-template-columns:80px minmax(150px,1.2fr) minmax(140px,1fr) auto auto;align-items:center;gap:18px;padding:18px 4px;color:var(--muted);text-align:left;background:transparent;border:0;border-bottom:1px solid var(--border);cursor:pointer;font-size:.86rem;transition:color .18s ease,padding .18s ease}.recent-item:hover{padding-inline:9px;color:var(--text)}.recent-item__date{color:var(--faint)}.recent-item__course{color:var(--text);font-weight:590}.recent-item__position{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-item>strong{color:var(--text);font-weight:620}.recent-empty,.history-empty{margin-top:24px;padding:32px;color:var(--muted);text-align:center;background:#275e4d09;border-radius:var(--radius-md);line-height:1.6}.history-empty p{margin:0;color:var(--text);font-weight:600}.history-empty span{display:block;margin-top:5px;font-size:.86rem}.recent-learning__all{display:inline-flex;align-items:center;gap:6px;margin-top:24px;padding:6px 0;color:var(--accent);background:transparent;border:0;cursor:pointer;font-size:.87rem;font-weight:620}.active-session{position:fixed;z-index:50;right:max(22px,calc((100vw - var(--max-width)) / 2 + var(--space-page)));bottom:22px;width:min(370px,calc(100vw - 40px));padding:18px;color:#f6faf8;background:#18362df5;border:1px solid rgba(255,255,255,.12);border-radius:18px;box-shadow:0 22px 52px #12292247;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);animation:active-enter .22s ease both}.active-session--notice{background:#3f3726f7}.active-session__topline{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:9px;color:#f3faf7ad;font-size:.76rem;font-weight:650;letter-spacing:.06em}.active-session__topline>span{display:flex;align-items:center;gap:7px}.active-session time{color:#fff;font-variant-numeric:tabular-nums;letter-spacing:.04em}.active-session>strong{display:block;font-size:1.04rem;font-weight:600}.active-session>p{margin:10px 0 0;color:#f3faf7b3;font-size:.82rem;line-height:1.55}.active-session__actions{display:flex;gap:8px;margin-top:15px}.active-session .button--quiet{color:#fffc;background:#ffffff17}.pulse-dot{width:7px;height:7px;background:#83c2aa;border-radius:50%;box-shadow:0 0 0 5px #83c2aa1a;animation:pulse 1.8s ease-in-out infinite}.modal-layer{position:fixed;z-index:100;display:grid;overflow-y:auto;padding:clamp(18px,4vw,44px);background:#141f1b75;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);top:0;right:0;bottom:0;left:0;place-items:center}.modal{width:min(100%,650px);max-height:calc(100vh - 40px);overflow-y:auto;padding:clamp(24px,4vw,38px);background:#fbfcfb;border:1px solid rgba(255,255,255,.8);border-radius:24px;box-shadow:0 30px 80px #10231d47;animation:modal-enter .22s ease both}.modal--compact{width:min(100%,500px)}.modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:28px}.modal__header .eyebrow{margin-bottom:8px}.modal__header h2{margin:0;font-size:clamp(1.65rem,4vw,2.15rem);font-weight:620;letter-spacing:-.045em}.icon-button{display:grid;width:40px;height:40px;flex:0 0 auto;padding:0;place-items:center;color:var(--muted);background:#275e4d0f;border:0;border-radius:12px;cursor:pointer}.session-form{display:grid;gap:20px}.duration-callout{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:5px 16px;padding:20px;background:#275e4d12;border-radius:16px}.duration-callout>span,.computed-field>span{color:var(--muted);font-size:.82rem}.duration-callout strong{grid-row:1 / 3;grid-column:2;font-size:1.65rem;font-weight:620;letter-spacing:-.04em}.duration-callout small,.computed-field small{color:var(--faint);font-size:.72rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field{display:grid;min-width:0;gap:8px}.field>span,.computed-field>span{color:var(--muted);font-size:.8rem;font-weight:590}.field input,.field select,.field textarea,.summary-card select{width:100%;min-height:48px;padding:0 14px;color:var(--text);background:#fff;border:1px solid rgba(30,56,47,.14);border-radius:12px;font:inherit}.field textarea{min-height:92px;padding-block:12px;resize:vertical}.input-suffix{position:relative}.input-suffix input{padding-right:48px}.input-suffix>span{position:absolute;right:14px;top:50%;color:var(--muted);font-size:.82rem;transform:translateY(-50%)}.computed-field{display:grid;align-content:end;gap:5px;padding:10px 14px;background:#275e4d0b;border-radius:12px}.computed-field strong{font-size:1.25rem;font-weight:620}.form-warning,.form-error,.recovery-warning{margin:0;padding:12px 14px;color:#76552e;background:#f8f0df;border-radius:11px;font-size:.8rem;line-height:1.55}.form-error{color:#863f3f;background:#f8e7e7}.modal__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}.recovery-card{padding:20px;background:#275e4d0e;border-radius:16px}.recovery-card>strong{display:block;margin-bottom:12px;font-size:1.08rem}.recovery-card p{margin:5px 0 0;color:var(--muted);font-size:.86rem}.recovery-warning{margin-top:14px}.recovery-actions{display:grid;gap:10px;margin-top:20px}.recovery-picker{display:grid;gap:18px;margin-top:20px}.text-button{min-height:42px;color:var(--muted);background:transparent;border:0;border-radius:10px;cursor:pointer;font:inherit;font-size:.83rem}.text-button--danger{color:#8a4a4a}.records-hero{margin:clamp(54px,8vw,96px) 0 clamp(34px,5vw,58px)}.records-hero h1{margin:0;font-size:clamp(2.5rem,6vw,5.6rem);font-weight:610;letter-spacing:-.065em;line-height:1}.records-hero p:not(.eyebrow){margin:14px 0 0;color:var(--muted)}.records-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.records-summary--compact{grid-template-columns:repeat(3,minmax(0,1fr))}.summary-card{display:flex;min-height:140px;flex-direction:column;align-items:flex-start;padding:22px;background:#ffffffb8;border:1px solid rgba(255,255,255,.86);border-radius:var(--radius-md);box-shadow:0 10px 26px #1f332c0e}.summary-card>span{color:var(--faint);font-size:.76rem}.summary-card>strong{margin-top:auto;font-size:clamp(1rem,1.6vw,1.25rem);font-weight:610;line-height:1.35}.summary-card>small{margin-top:5px;color:var(--muted)}.summary-card select{margin-top:auto;padding-right:32px;cursor:pointer;font-size:.9rem;font-weight:600}.history-section{margin-top:clamp(58px,8vw,100px)}.history-section__heading{margin-bottom:20px}.history-section__heading>span{color:var(--muted);font-size:.84rem}.session-list{border-top:1px solid var(--border)}.session-item{position:relative;display:grid;grid-template-columns:150px minmax(0,1fr) auto 36px;align-items:start;gap:24px;padding:24px 0;border-bottom:1px solid var(--border)}.session-item__date{display:grid;gap:6px}.session-item__date strong{font-size:.92rem;font-weight:610}.session-item__date span,.session-item__course{color:var(--faint);font-size:.78rem}.session-item__main{display:grid;gap:6px}.session-item__main>strong{font-size:.98rem;font-weight:610}.session-item__main>p{margin:0;color:var(--muted);font-size:.86rem}.session-item__main blockquote{margin:7px 0 0;padding-left:12px;color:var(--muted);border-left:2px solid rgba(39,94,77,.2);font-size:.82rem;line-height:1.55}.session-item__duration{color:var(--text);font-size:.9rem;font-weight:620;white-space:nowrap}.session-menu{position:relative}.session-menu summary{display:grid;width:34px;height:34px;place-items:center;color:var(--muted);background:transparent;border-radius:10px;cursor:pointer;list-style:none}.session-menu summary::-webkit-details-marker{display:none}.session-menu[open] summary{background:#275e4d12}.session-menu>div{position:absolute;z-index:5;top:38px;right:0;display:grid;width:110px;padding:6px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 30px #1f332c24}.session-menu button{padding:9px 10px;color:var(--text);text-align:left;background:transparent;border:0;border-radius:8px;cursor:pointer;font-size:.8rem}.session-menu button:hover{background:#275e4d0f}.session-menu button.danger{color:#8a4545}.confirm-copy{margin:0;color:var(--muted);line-height:1.7}.sync-pill{display:inline-flex;min-height:40px;align-items:center;gap:8px;padding:0 13px;color:var(--accent);background:#ffffffb8;border:1px solid rgba(39,94,77,.12);border-radius:999px;box-shadow:0 8px 24px #1f332c0f;cursor:pointer;font-size:.8rem;font-weight:620;white-space:nowrap;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.sync-pill:hover{background:#fffffff0}.sync-pill:focus-visible,.account-menu button:focus-visible,.auth-input:focus-within{outline:3px solid rgba(39,94,77,.22);outline-offset:2px}.sync-pill--quiet,.sync-pill--offline,.sync-pill--unconfigured{color:var(--muted)}.sync-pill--syncing svg{animation:sync-pulse 1.4s ease-in-out infinite}.sync-pill--error,.sync-pill--conflict{color:#8a5b3f;background:#fff8efe6;border-color:#9b654226}.sync-pill b{display:grid;min-width:19px;height:19px;place-items:center;padding:0 5px;color:#fff;background:var(--accent);border-radius:10px;font-size:.68rem}.account-control{position:relative;display:flex;flex:0 0 auto;align-items:center;gap:12px}.account-control__greeting{display:grid;min-width:0;gap:2px;text-align:right}.account-control__greeting span{color:var(--faint);font-size:.7rem}.account-control__greeting strong{max-width:150px;overflow:hidden;font-size:.82rem;font-weight:620;text-overflow:ellipsis;white-space:nowrap}.account-menu{position:absolute;z-index:30;top:calc(100% + 10px);right:0;display:grid;width:min(320px,calc(100vw - 32px));padding:10px;background:#fffffff7;border:1px solid rgba(31,51,44,.1);border-radius:18px;box-shadow:0 22px 58px #1f332c2b;animation:modal-enter .18s ease both;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.account-menu__identity{display:flex;min-width:0;align-items:center;gap:11px;padding:10px 10px 13px;border-bottom:1px solid var(--border)}.account-menu__identity>span{display:grid;width:36px;height:36px;flex:0 0 auto;place-items:center;color:var(--accent);background:#275e4d14;border-radius:12px}.account-menu__identity>div{display:grid;min-width:0;gap:2px}.account-menu__identity small,.account-menu__sync small{color:var(--faint);font-size:.74rem}.account-menu__identity strong{overflow:hidden;font-size:.84rem;font-weight:630;text-overflow:ellipsis}.account-menu__sync{display:grid;gap:4px;margin:9px 0 4px;padding:9px 10px;color:var(--muted);font-size:.8rem}.account-menu__error{color:#9a574c!important;line-height:1.45}.account-menu>button{display:flex;min-height:42px;align-items:center;gap:10px;padding:0 10px;color:var(--text);text-align:left;background:transparent;border:0;border-radius:10px;cursor:pointer;font-size:.82rem}.account-menu>button:hover{background:#275e4d0f}.account-menu>button:disabled{cursor:not-allowed;opacity:.45}.auth-intro,.migration-summary{display:flex;align-items:flex-start;gap:13px;margin-bottom:22px;color:var(--muted)}.auth-intro>span,.migration-summary>span{display:grid;width:40px;height:40px;flex:0 0 auto;place-items:center;color:var(--accent);background:#275e4d14;border-radius:13px}.auth-intro p,.migration-summary p,.conflict-copy{margin:0;color:var(--muted);font-size:.88rem;line-height:1.7}.auth-form{display:grid;gap:18px}.auth-input{display:flex;align-items:center;gap:10px;padding:0 13px;background:#f5f8f6f2;border:1px solid var(--border);border-radius:13px}.auth-input svg{color:var(--faint)}.auth-input input{min-width:0;padding-inline:0;background:transparent;border:0;outline:0}.auth-submit,.migration-submit{width:100%;min-height:48px}.auth-sent{padding:12px 14px;color:var(--muted);background:#275e4d0f;border-radius:12px;font-size:.82rem;line-height:1.5}.auth-sent strong{color:var(--text)}.auth-resend{justify-self:start;padding:2px 0;color:var(--accent);background:transparent;border:0;cursor:pointer;font-size:.82rem}.auth-resend:disabled{color:var(--faint);cursor:not-allowed}.auth-resend:focus-visible{outline:3px solid rgba(39,94,77,.2);outline-offset:4px;border-radius:4px}.otp-input{width:100%;text-align:center;font-size:1.55rem!important;font-variant-numeric:tabular-nums;letter-spacing:.34em}.modal__actions--spread{justify-content:space-between}.migration-counts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.migration-counts>div{display:grid;gap:3px;padding:16px;background:#275e4d0e;border-radius:14px}.migration-counts strong{font-size:1.5rem;font-weight:630}.migration-counts span{color:var(--muted);font-size:.78rem}.migration-active-note{margin:-6px 0 18px;color:var(--muted);font-size:.8rem;line-height:1.55}.conflict-copy{margin-bottom:18px}.conflict-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.conflict-options>div{display:grid;gap:8px;padding:16px;background:#275e4d0e;border:1px solid rgba(39,94,77,.06);border-radius:15px}.conflict-options span{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.78rem}.conflict-options strong{font-size:1rem;font-weight:630}.conflict-options small{color:var(--faint);font-size:.72rem}@keyframes sync-pulse{0%,to{opacity:.45}50%{opacity:1}}@keyframes modal-enter{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes active-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{box-shadow:0 0 0 4px #83c2aa1f}50%{box-shadow:0 0 0 7px #83c2aa08}}@keyframes switch-view{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes enter-card{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 920px){.intro-copy{grid-template-columns:1fr;gap:28px}.intro-copy h1{font-size:clamp(3.6rem,11vw,6.4rem)}.subject-grid,.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.course-grid--1{grid-template-columns:minmax(0,420px)}.study-guide{grid-template-columns:1fr 1fr}.study-guide__steps{grid-column:1 / -1}.records-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.course-detail-hero{grid-template-columns:1fr}.course-detail-hero__actions{display:flex;min-width:0;flex-wrap:wrap}.session-item{grid-template-columns:120px minmax(0,1fr) auto 36px;gap:16px}}@media (max-width: 600px){.app-shell{padding-bottom:52px}.brand-divider,.brand-row p{display:none}.site-header__top{align-items:flex-start;gap:10px}.brand-row{gap:8px}.brand-mark{width:36px;height:36px}.wordmark{font-size:.82rem}.sync-pill{min-height:36px;padding:0 11px}.sync-pill span{max-width:112px;overflow:hidden;text-overflow:ellipsis}.account-control{gap:7px}.account-control__greeting strong{max-width:78px}.account-menu{position:fixed;top:76px;right:14px;left:14px;width:auto}.conflict-options{grid-template-columns:1fr}.intro-copy{margin:64px 0 52px}.intro-copy h1{font-size:clamp(3rem,16vw,4.4rem)}.intro-copy p{font-size:1rem}.subject-grid,.course-grid,.course-grid--1{grid-template-columns:1fr}.home-stats__heading,.chapter-section__heading{align-items:flex-start;flex-direction:column;gap:8px}.home-stats__grid,.course-detail-summary{grid-template-columns:1fr}.home-stats__grid article{min-height:126px}.course-detail-hero{margin-top:52px}.course-detail-hero h1{font-size:clamp(2.35rem,13vw,3.8rem)}.course-detail-hero__actions{display:grid;grid-template-columns:1fr 1fr}.course-detail-hero__actions .button:first-child{grid-column:1 / -1}.chapter-row{min-height:78px;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;padding:13px 15px}.chapter-row:hover{padding-inline:15px}.chapter-row__status{min-width:0;gap:5px;font-size:.72rem}.study-guide{grid-template-columns:1fr}.study-guide__steps{grid-column:auto}.subject-card__body{min-height:150px}.subject-hero{margin-top:54px}.subject-hero h1{font-size:clamp(3.2rem,17vw,5rem)}.course-card__body{min-height:auto}.course-card__actions{margin-top:24px}.recent-learning__heading,.records-hero{align-items:flex-start;flex-direction:column}.recent-item{grid-template-columns:62px minmax(0,1fr) auto;gap:8px 12px}.recent-item__position{grid-row:2;grid-column:2 / 4}.recent-item>svg{display:none}.records-hero .button{width:100%}.records-summary,.records-summary--compact{grid-template-columns:1fr 1fr}.summary-card{min-height:126px;padding:18px}.session-item{grid-template-columns:1fr auto 34px;gap:12px}.session-item__date{grid-column:1 / 4;grid-template-columns:auto 1fr;align-items:baseline}.session-item__main{min-width:0}.active-session{right:12px;bottom:12px;width:calc(100vw - 24px)}.modal-layer{align-items:end;padding:10px}.modal{width:100%;max-height:calc(100vh - 20px);padding:24px 20px;border-radius:22px}.form-grid{grid-template-columns:1fr}.modal__actions .button{flex:1}}@media (max-width: 380px){.account-control__greeting{display:none}.course-detail-hero__actions{grid-template-columns:1fr}.course-detail-hero__actions .button:first-child{grid-column:auto}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
