/* Static, accessible natural palette shared by the public, account and workspaces. */
:root { --paper:#f5f5f0; --surface:#fffefa; --ink:#253b32; --muted:#66736b; --green:#40664f; --green-dark:#2e4d3b; --sage:#e8ede3; --line:#dce2d8; --sand:#eee5d4; font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif; color:var(--ink); background:var(--paper); color-scheme:light; }
* { box-sizing:border-box; }
body { margin:0; line-height:1.75; font-size:15px; }
[hidden] { display:none !important; }
a { color:var(--green); text-decoration:none; text-underline-offset:4px; }
a:hover { text-decoration:underline; }
button,input,select,textarea { font:inherit; }
button,.primary-link,.welcome-start { border:1px solid var(--green); background:var(--green); color:#fff; border-radius:10px; padding:10px 18px; min-height:44px; cursor:pointer; font-weight:600; display:inline-flex; align-items:center; justify-content:center; gap:8px; }
button:hover,.primary-link:hover,.welcome-start:hover { background:var(--green-dark); color:#fff; text-decoration:none; }
button:disabled { opacity:.6; cursor:not-allowed; }
:focus-visible { outline:3px solid #658653; outline-offset:4px; }
input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select,textarea { width:100%; max-width:100%; min-height:46px; padding:11px 12px; border:1px solid #bac8bb; background:#fff; border-radius:9px; color:var(--ink); }
input[type=checkbox],input[type=radio] { accent-color:var(--green); width:17px; height:17px; vertical-align:middle; flex-shrink:0; }
textarea { min-height:150px; resize:vertical; }
input::placeholder,textarea::placeholder { color:#788278; }
label { color:var(--ink); font-weight:500; }
form p>label:first-child { display:block; margin-bottom:7px; }
form p { margin:0 0 20px; }
form p:last-child { margin-bottom:0; }
.helptext,.form-hint { display:block; color:var(--muted); font-size:12px; line-height:1.7; margin-top:8px; }
.helptext ul { padding-left:20px; margin:7px 0; }
.errorlist { color:#9b3d30; padding-left:20px; font-size:13px; }
.errorlist li { margin-bottom:4px; }
h1,h2,h3 { color:var(--ink); line-height:1.4; letter-spacing:.01em; }
h1 { font-size:32px; margin:8px 0 18px; font-weight:650; }
h2 { font-size:20px; margin:8px 0 12px; }
h3 { font-size:17px; margin:20px 0 10px; }
p { overflow-wrap:anywhere; }
code { font-size:.95em; overflow-wrap:anywhere; }
pre { white-space:pre-wrap; overflow-wrap:anywhere; padding:18px; border-radius:12px; background:var(--sage); }
fieldset { min-width:0; border:1px solid var(--line); background:var(--surface); border-radius:12px; margin:24px 0; padding:22px; }
legend { padding:0 8px; font-weight:600; }
summary { cursor:pointer; color:var(--green); }
.icon { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.5; flex-shrink:0; vertical-align:middle; }
.icon-definitions { position:absolute; width:0; height:0; overflow:hidden; }
.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; }
.skip-link { position:absolute; top:-80px; left:16px; padding:10px; background:white; z-index:20; }
.skip-link:focus { top:5px; }
.site-header { min-height:84px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:17px 36px; border-bottom:1px solid var(--line); background:var(--surface); }
.brand { display:inline-flex; align-items:center; gap:11px; color:var(--ink); font-size:19px; font-weight:650; flex-shrink:0; line-height:1.3; }
.brand:hover { text-decoration:none; }
.brand small { display:block; margin-top:5px; color:var(--muted); font-size:10px; font-weight:400; letter-spacing:.1em; }
.brand-mark { display:grid; place-items:center; width:40px; height:40px; background:var(--sage); color:var(--green); border-radius:13px; }
.brand-mark svg { width:25px; height:25px; }
.account-links { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:16px; min-width:0; }
.account-email { max-width:240px; font-size:12px; color:var(--muted); overflow-wrap:anywhere; }
.account-links button { min-height:36px; padding:4px 12px; background:transparent; color:var(--green); border-color:var(--line); font-weight:400; }
.header-login { padding:8px 16px; border:1px solid #c7d2c4; border-radius:20px; white-space:nowrap; font-size:13px; }
.header-login span { margin-left:12px; }
.inline-form { display:inline; margin:0; padding:0; border:0; }
.eyebrow,.welcome-kicker,.nav-label { color:var(--muted); font-size:11px; letter-spacing:.12em; }
.page-heading { margin-bottom:24px; padding-bottom:20px; border-bottom:1px solid var(--line); }
.page-heading h1 { margin-bottom:0; }
.auth-shell { display:grid; grid-template-columns:minmax(0,330px) minmax(0,460px); align-items:start; justify-content:center; gap:70px; padding:72px 32px; }
.auth-story { padding:38px 0; }
.auth-story h2 { font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:44px; line-height:1.5; font-weight:500; margin:22px 0; letter-spacing:.07em; }
.auth-story>p { color:var(--muted); line-height:2; font-size:15px; }
.story-note { margin-top:56px; border-left:2px solid #c7d2bc; padding-left:18px; display:flex; flex-direction:column; gap:14px; color:var(--muted); font-size:12px; }
.auth-content { min-width:0; padding:32px 36px; background:var(--surface); border:1px solid var(--line); border-radius:20px; box-shadow:0 12px 40px #324b3610; }
.auth-content .account-form>button { width:100%; }
.auth-content>p { color:var(--muted); }
.auth-content form { margin-top:24px; }
.auth-footer { padding-top:14px; border-top:1px solid var(--line); }
.password-field { display:flex; align-items:center; gap:8px; max-width:100%; }
.password-field input { flex:1; min-width:0; }
.password-toggle { min-height:44px; padding:10px 12px; white-space:nowrap; flex-shrink:0; background:var(--sage); color:var(--green); border-color:var(--line); font-size:12px; }
.verification-code { font-size:22px; font-variant-numeric:tabular-nums; letter-spacing:.15em; }
.verification-code::placeholder { font-size:12px; letter-spacing:0; }
.verification-steps { display:flex; gap:10px; justify-content:space-between; flex-wrap:wrap; padding:12px 0; margin-bottom:22px; font-size:10px; color:var(--muted); }
.verification-steps strong { color:var(--green); }
.mail-notice,.success-notice,.error-notice { padding:14px 16px; border:1px solid #dbca9f; background:#f7f0df; color:#6d582a; border-radius:10px; font-size:12px; line-height:1.8; }
.success-notice { border-color:#c7d7c0; background:#edf3e8; color:#37583c; }
.error-notice { border-color:#e2c0b3; background:#faf0e9; color:#883c2c; }
.error-notice p { margin:6px 0 0; }
.resend-area { display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin:22px 0; font-size:12px; color:var(--muted); }
.resend-area form { margin:0; }
.resend-area button { background:transparent; color:var(--green); border-color:var(--line); font-size:12px; padding:6px 12px; min-height:36px; }
.verification-help { border-top:1px solid var(--line); padding-top:16px; font-size:12px; color:var(--muted); }
.sidebar { position:fixed; top:106px; bottom:24px; left:24px; width:202px; overflow-y:auto; padding:0 12px 20px 0; scrollbar-width:thin; }
.sidebar>.nav-label { display:block; padding:6px 12px 12px; }
.sidebar nav { display:flex; flex-direction:column; gap:4px; }
.sidebar nav a { display:flex; align-items:center; gap:12px; padding:10px 13px; min-height:43px; border-radius:9px; color:var(--muted); font-size:13px; }
.sidebar nav a:hover { text-decoration:none; background:#eef0e7; color:var(--green); }
.sidebar nav a[aria-current=page] { background:#e3eadc; color:#2f4e38; font-weight:600; box-shadow:inset 3px 0 #54724c; }
.nav-symbol { width:19px; text-align:center; color:#70856c; font-size:17px; }
.sidebar nav .nav-label { padding:24px 12px 10px; }
.nav-disclosure>summary { display:none; }
.main-content,.workspace-main { margin:40px 44px 60px 260px; max-width:1140px; min-height:70vh; min-width:0; }
.workspace-shell { display:flow-root; }
.workspace-main>form:not(.inline-form),.workspace-main #focus-active { background:var(--surface); border:1px solid var(--line); border-radius:15px; padding:24px; margin:24px 0; }
.workspace-main form[method=get] { display:flex; flex-wrap:wrap; gap:14px; align-items:end; }
.workspace-main form[method=get] label { flex:1 1 150px; min-width:0; }
.workspace-main form[method=get] label:has(input[type=checkbox]) { flex:0 1 auto; align-self:center; }
.workspace-main form[method=get] label input,.workspace-main form[method=get] label select { margin-top:6px; }
.workspace-main form[method=get] button { align-self:end; }
.workspace-main>form:not([method=get]) { max-width:800px; }
.workspace-main .record form { display:inline-block; margin:8px 8px 8px 0; }
.hero-description,.module-card p,.empty-state p,.welcome-description,.welcome-hint { color:var(--muted); }
.home-heading { background:#e9eddf; border:1px solid #d9e0d0; padding:30px 34px; border-radius:18px; }
.home-heading h1 { margin:6px 0 12px; font-size:36px; }
.day-caption { color:#65785e; font-size:12px; }
.home-modules { margin-top:32px; }
.section-heading,.card-top,.card-bottom { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.section-heading { margin-bottom:14px; flex-wrap:wrap; }
.cards-grid,.management-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.module-card,.customize-panel,.empty-state,.record { padding:26px; background:var(--surface); border:1px solid var(--line); border-radius:15px; min-width:0; }
.module-card { box-shadow:0 4px 18px #243c2a05; }
.module-card h3 { margin:24px 0 10px; }
.plan-tasks { margin:20px 0 0; }
.plan-tasks>summary { list-style:none; }
.plan-tasks>summary::-webkit-details-marker { display:none; }
.plan-tasks>summary h4 { display:inline; margin:0; font-size:15px; color:var(--ink); }
.plan-tasks[open]>summary { margin-bottom:6px; }
.card-label { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--muted); }
.card-bottom { margin-top:24px; flex-wrap:wrap; padding-top:18px; border-top:1px solid var(--line); font-size:13px; }
.move-controls { display:flex; gap:5px; }
.move-controls button,.drag-handle,.text-button { background:transparent; color:var(--green); border-color:var(--line); font-weight:400; }
.move-controls button,.drag-handle { padding:5px 9px; min-height:34px; }
.drag-handle { cursor:grab; }
.dragging { opacity:.5; }
.drop-target { outline:2px dashed var(--green); }
.customize-panel { margin-bottom:20px; }
.module-options { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:12px; }
.module-options label { display:flex; gap:6px; align-items:center; }
.reset-layout { display:block; margin-top:15px; }
.home-links { display:flex; flex-wrap:wrap; gap:24px; margin:28px 0; }
.empty-state { margin-top:24px; }
.empty-icon { display:none; }
.record { margin:18px 0; }
.record h2 { margin-top:0; }
.record p { color:var(--muted); }
.record a { display:inline-block; }
.source-text { white-space:pre-wrap; overflow-wrap:anywhere; }
.source-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; overflow-wrap:anywhere; }
.source-columns>section { min-width:0; }
.timer-display { font-size:clamp(48px,8vw,76px); font-variant-numeric:tabular-nums; letter-spacing:.03em; line-height:1.5; color:var(--green); }
#focus-active button { margin:6px 6px 6px 0; }
.management-grid .module-card>a { display:block; margin-top:12px; }
.management-grid .eyebrow { font-size:10px; }
.welcome-content { max-width:1220px; margin:0 auto; padding:68px 40px 40px; }
.welcome-intro { text-align:left; }
.welcome-kicker { display:inline-block; padding:6px 16px; border:1px solid #d8dfcf; background:var(--sage); border-radius:30px; }
.welcome-intro h1 { font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:clamp(36px,4.6vw,62px); font-weight:500; line-height:1.35; letter-spacing:.02em; margin:24px 0; }
.welcome-intro h1 em { font-style:normal; color:#56734f; }
.welcome-description { max-width:440px; margin:0 0 28px; font-size:16px; line-height:1.9; }
.welcome-start { padding:13px 34px; border-radius:30px; }
.welcome-hint { font-size:12px; margin-top:18px; }
.welcome-features { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin-top:28px; text-align:left; }
.welcome-features article { padding:26px; border:1px solid var(--line); background:var(--surface); border-radius:16px; }
.welcome-features article:nth-child(2) { background:#ecf0e5; }
.welcome-features article:nth-child(3) { background:#f3eee4; }
.feature-number { color:#52664b; font-family:inherit; font-size:12px; line-height:1; }
.welcome-features h2 { font-size:18px; margin-top:22px; }
.welcome-features p { color:var(--muted); font-size:13px; }
.welcome-features a { display:inline-block; margin-top:18px; font-size:12px; }
.noscript-note { margin:20px; }

/* Learner-facing overview and shared content hierarchy. */
.muted { color:var(--muted); }
.secondary-link,.light-link { display:inline-flex; align-items:center; gap:18px; padding:10px 18px; border:1px solid var(--line); border-radius:10px; min-height:44px; font-weight:500; background:var(--surface); }
.secondary-link:hover,.light-link:hover { text-decoration:none; background:var(--sage); }
.badge { display:inline-block; padding:4px 10px; border-radius:6px; background:var(--sage); color:#466049; font-size:11px; font-weight:500; }
.badge-warm { color:#795427; background:#f4ecdc; }
.badge-done { color:#375b43; background:#e6efe7; }
.dashboard-heading { display:flex; align-items:center; justify-content:space-between; gap:22px; margin:0 0 28px; }
.dashboard-heading h1 { font-size:30px; margin:6px 0 10px; letter-spacing:-.03em; }
.dashboard-heading p { margin:0 0 8px; }
.dashboard-heading>.secondary-link { flex-shrink:0; font-size:12px; }
.dashboard-intro { display:grid; grid-template-columns:1.12fr 1fr; gap:22px; margin-bottom:28px; }
.focus-invitation { position:relative; overflow:hidden; padding:28px 30px; background:#304f3f; color:#eef3e9; border-radius:18px; min-width:0; }
.focus-invitation .eyebrow { color:#c3d2b9; }
.focus-invitation h2 { color:#fffef4; font-size:24px; margin:14px 0 8px; max-width:85%; overflow-wrap:anywhere; }
.focus-invitation p { color:#d0dbcc; font-size:12px; margin-bottom:22px; }
.focus-invitation .light-link { background:#ecf1df; color:#304b32; border:0; position:relative; z-index:1; font-size:12px; }
.focus-leaf { position:absolute; right:10px; bottom:-60px; font:220px Georgia,serif; color:#789277; opacity:.22; pointer-events:none; }
.daily-numbers { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid var(--line); background:var(--surface); border-radius:18px; padding:28px 12px; align-items:center; }
.daily-numbers>a { padding:10px 14px; border-right:1px solid var(--line); min-width:0; }
.daily-numbers>a:last-child { border:0; }
.daily-numbers>a:hover { text-decoration:none; background:var(--paper); border-radius:8px; }
.daily-numbers span { display:block; font-size:11px; color:var(--muted); }
.daily-numbers strong { display:block; margin:12px 0; font-size:34px; line-height:1.25; font-weight:500; font-variant-numeric:tabular-nums; }
.daily-numbers small { font-size:12px; white-space:nowrap; color:var(--muted); }
.dashboard-columns { display:grid; grid-template-columns:1.5fr 1fr; gap:22px; }
.surface-panel { border:1px solid var(--line); border-radius:16px; background:var(--surface); padding:24px; min-width:0; }
.surface-panel h2,.goals-overview h2 { font-size:18px; margin:0; }
.surface-panel .section-heading>a,.goals-overview .section-heading>a { font-size:12px; }
.task-row,.date-row,.resource-row { display:flex; align-items:center; gap:14px; padding:18px 0; border-bottom:1px solid var(--line); color:var(--ink); }
.task-row:hover,.date-row:hover,.resource-row:hover { text-decoration:none; background:#f4f6ef; }
.row-copy { flex:1; min-width:0; overflow-wrap:anywhere; }
.row-copy strong { font-weight:500; font-size:14px; display:block; }
.row-copy small { display:block; color:var(--muted); font-size:11px; margin-top:5px; }
.task-marker { color:#6a8261; font-size:25px; }
.duration { font-size:11px; color:var(--muted); flex-shrink:0; }
.duration>span { padding-left:8px; }
.overdue-note { background:#f4eee1; color:#80623b; border-radius:8px; padding:10px 12px; display:block; font-size:12px; }
.panel-footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; margin:18px 0 0; font-size:12px; }
.quiet-empty { padding:20px 6px; color:var(--muted); }
.quiet-empty h3 { margin:10px 0 6px; font-size:15px; }
.quiet-empty p { font-size:13px; margin:0 0 12px; }
.quiet-empty>a { font-size:12px; }
.empty-glyph { display:grid; place-items:center; width:42px; height:42px; border:1px solid var(--line); background:var(--sage); color:#5d7954; border-radius:13px; font-size:21px; }
.date-tile { text-align:center; border-radius:10px; background:#eee8d9; color:#77613c; padding:8px; min-width:52px; }
.date-tile small { display:block; font-size:10px; }
.date-tile strong { display:block; font:25px Georgia,serif; }
.date-panel { background:#fbf9f2; }
.goals-overview { margin:30px 0; }
.goals-overview .eyebrow { display:block; margin-bottom:6px; }
.goal-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.goal-tile { min-width:0; border:1px solid var(--line); background:var(--surface); padding:24px; border-radius:14px; }
.goal-tile h3 { font-size:18px; margin:18px 0 12px; overflow-wrap:anywhere; }
.goal-tile p { font-size:12px; color:var(--muted); }
.progress-caption { display:flex; gap:12px; justify-content:space-between; color:var(--muted); font-size:11px; margin-top:24px; }
progress { display:block; width:100%; height:6px; border:0; border-radius:8px; overflow:hidden; background:#e7ebe1; color:#648055; accent-color:#648055; margin:10px 0 18px; }
progress::-webkit-progress-bar { background:#e7ebe1; }
progress::-webkit-progress-value { background:#648055; border-radius:8px; }
progress::-moz-progress-bar { background:#648055; }
.tile-action { display:flex; justify-content:space-between; border-top:1px solid var(--line); padding-top:16px; margin-top:18px; font-size:12px; }
.recent-resources { margin:26px 0; }
.resource-row:last-child { border:0; padding-bottom:0; }
.resource-symbol { display:grid; place-items:center; width:38px; height:44px; background:var(--sage); border-radius:8px; color:#5b7350; }
.getting-started { padding:26px; margin:24px 0; border:1px solid #d1dcc5; background:#edf1e4; border-radius:16px; }
.getting-started h2 { font-size:20px; }
.getting-started p { color:var(--muted); font-size:13px; }
.start-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; list-style:none; padding:0; margin:24px 0; }
.start-steps li { display:flex; gap:14px; }
.start-steps b { color:#849478; font:24px Georgia,serif; }
.start-steps strong { font-size:14px; font-weight:500; display:block; }
.start-steps small { display:block; font-size:11px; color:var(--muted); margin-top:5px; }
.page-intro { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 0 26px; }
.page-intro p { color:var(--muted); max-width:620px; margin:0; }
.page-intro>a { flex-shrink:0; font-size:12px; }
.filter-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:24px 0; border-bottom:1px solid var(--line); padding-bottom:14px; }
.filter-tabs a { padding:7px 16px; border-radius:8px; color:var(--muted); font-size:13px; }
.filter-tabs a[aria-current=page] { background:var(--green); color:white; }
.list-summary,.record-heading,.record-footer { display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; }
.list-summary { margin:24px 0 12px; }
.list-summary p { margin:0; font-size:13px; }
.list-summary small,.record-footer small { color:var(--muted); font-size:11px; }
.record-heading { font-size:12px; margin-bottom:14px; }
.record-footer { border-top:1px solid var(--line); padding-top:16px; margin-top:20px; font-size:12px; }
.task-meta { display:flex; flex-wrap:wrap; gap:8px 20px; font-size:12px; color:var(--muted); }
.task-record h2 { font-size:20px; }
.task-record>p { max-width:760px; font-size:14px; }
.content-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.content-grid>.record { margin:0; }
.goal-detail-grid { display:grid; grid-template-columns:1.5fr 1fr; gap:24px; margin:24px 0; align-items:start; }
.goal-detail-grid>section { min-width:0; }
.detail-section { padding:24px; background:var(--surface); border:1px solid var(--line); border-radius:15px; margin-bottom:22px; }
.detail-section h2 { font-size:18px; }
.detail-section .record { padding:18px; box-shadow:none; }
.welcome-hero { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:76px; }
.welcome-preview { position:relative; min-width:0; background:var(--surface); padding:28px; border:1px solid #d3ddce; border-radius:20px; box-shadow:12px 16px 0 #e6eadf,0 18px 50px #344b3110; }
.preview-top,.preview-bottom { display:flex; align-items:center; gap:10px; font-size:12px; }
.preview-top { justify-content:space-between; border-bottom:1px solid var(--line); padding-bottom:18px; }
.preview-heading { margin:24px 0; }
.preview-heading h2 { margin:10px 0; font-size:23px; }
.preview-heading p { font-size:12px; color:var(--muted); }
.preview-task { display:flex; align-items:center; gap:12px; border-top:1px solid var(--line); padding:18px 0; font-size:11px; }
.preview-task>span:nth-child(2) { flex:1; min-width:0; }
.preview-task strong { font-size:13px; font-weight:500; display:block; }
.preview-task small { display:block; color:var(--muted); margin-top:3px; font-size:10px; }
.preview-check { display:grid; place-items:center; flex-shrink:0; width:24px; height:24px; background:#54744d; color:white; border-radius:50%; }
.preview-check.open { background:var(--sage); color:var(--green); }
.preview-note { background:#f2eddf; border-radius:12px; padding:20px; margin:16px 0 22px; }
.preview-note p { font-family:"Songti SC","SimSun",serif; font-size:18px; line-height:1.9; margin:12px 0; }
.note-rule { display:block; border-top:1px solid #d9d0bc; width:70%; }
.preview-bottom { color:var(--muted); font-size:11px; }
.tiny-dot { width:7px; height:7px; border-radius:50%; background:#7c925b; }
.welcome-section-heading { margin:90px 0 0; text-align:center; }
.welcome-section-heading h2 { margin:14px 0; font-size:28px; }
.welcome-section-heading p { color:var(--muted); font-size:14px; }
.welcome-closing { display:flex; justify-content:space-between; gap:24px; border-top:1px solid var(--line); margin:44px 0 0; padding:28px 0 0; font-size:13px; color:var(--muted); }

@media (min-width:1680px) { .main-content,.workspace-main { margin-left:calc(260px + (100vw - 1680px)/2); } }
@media (max-width:1000px) {
 .auth-shell { grid-template-columns:minmax(0,260px) minmax(0,430px); gap:32px; padding:48px 24px; }
 .auth-story h2 { font-size:38px; }
 .sidebar { width:175px; left:16px; }
 .main-content,.workspace-main { margin-left:210px; margin-right:24px; }
}
@media (max-width:780px) {
 .site-header { padding:14px 20px; min-height:74px; gap:12px; }
 .brand { font-size:17px; }
 .account-email { display:none; }
 .account-links { gap:10px; font-size:12px; }
 .auth-shell { display:block; padding:32px 20px; }
 .auth-story { max-width:520px; margin:0 auto 28px; padding:0; }
 .auth-story h2 { font-size:28px; margin:12px 0; }
 .auth-story h2 br { display:none; }
 .auth-story>p,.story-note { display:none; }
 .auth-content { max-width:520px; margin:auto; padding:26px; }
 .sidebar { position:static; width:auto; margin:16px 20px 0; padding:0; overflow:visible; }
 .sidebar>.nav-label,.sidebar nav .nav-label { display:none; }
 #workspace-navigation { border:1px solid var(--line); border-radius:14px; background:var(--surface); }
 #workspace-navigation>summary { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:48px; padding:12px 14px; list-style:none; }
 #workspace-navigation>summary::-webkit-details-marker { display:none; }
 #workspace-navigation[open]>summary { border-bottom:1px solid var(--line); }
 #workspace-navigation>summary::after { content:"展开导航"; color:var(--green); font-size:12px; flex-shrink:0; }
 #workspace-navigation[open]>summary::after { content:"收起导航"; }
 .nav-current { font-size:14px; font-weight:600; color:var(--ink); }
 .nav-current::before { content:"当前位置 · "; color:var(--muted); font-weight:400; font-size:11px; letter-spacing:.08em; }
 #workspace-navigation nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; padding:10px 12px 14px; }
 #workspace-navigation nav a { min-height:44px; white-space:normal; background:transparent; border:1px solid var(--line); padding:10px 12px; font-size:12px; }
 #workspace-navigation nav a[aria-current=page] { box-shadow:none; }
 .nav-symbol { display:none; }
 .main-content,.workspace-main { margin:24px 20px 44px; }
 .cards-grid,.management-grid,.source-columns { grid-template-columns:1fr; }
 .welcome-content { padding:48px 24px 32px; }
 .welcome-features { grid-template-columns:1fr; margin-top:42px; }
 .welcome-features article { padding:22px; }
 .welcome-features article h2 { margin-top:12px; }
 .welcome-features article a { margin-top:8px; }
 .plan-tasks>summary { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:44px; padding:4px 0; }
 .plan-tasks>summary::after { content:"展开"; color:var(--green); font-size:12px; }
 .plan-tasks[open]>summary::after { content:"收起"; }
}
@media (max-width:420px) {
 .site-header { padding:12px 16px; }
 .brand small { display:none; }
 .brand-mark { width:32px; height:32px; border-radius:10px; }
 .brand { gap:8px; font-size:16px; }
 .header-login { padding:7px 10px; font-size:11px; }
 .header-login span { margin-left:5px; }
 .auth-shell { padding:24px 16px; }
 .auth-content { padding:22px 18px; }
 h1 { font-size:27px; }
 .main-content,.workspace-main { margin:20px 16px 36px; }
 .sidebar { margin-left:16px; margin-right:16px; }
 .module-card,.empty-state,.customize-panel,.record { padding:20px; }
 .home-heading { padding:24px; }
 .workspace-main>form:not(.inline-form) { padding:18px; }
 .welcome-content { padding:38px 16px 30px; }
}

/* Manual learning actions */
.manual-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin: 1rem 0; }
.manual-actions a { max-width: 100%; overflow-wrap: anywhere; }

@media (max-width:1150px) {
 .dashboard-intro { grid-template-columns:1fr; }
 .daily-numbers { padding:12px; }
 .daily-numbers>a { padding:10px 20px; }
 .goal-grid { grid-template-columns:1fr; }
 .welcome-hero { gap:36px; }
}
@media (max-width:780px) {
 .dashboard-heading { align-items:flex-start; }
 .dashboard-heading h1 { font-size:26px; }
 .dashboard-heading>.secondary-link { padding:8px 12px; }
 .dashboard-columns,.goal-detail-grid,.content-grid { grid-template-columns:1fr; }
 .welcome-hero { grid-template-columns:1fr; gap:32px; }
 .welcome-copy { max-width:540px; }
 .welcome-preview { max-width:540px; margin-right:12px; }
 .welcome-section-heading { margin-top:64px; text-align:left; }
 .welcome-section-heading h2 { font-size:25px; }
 .start-steps { grid-template-columns:1fr; }
 .page-intro { align-items:flex-start; flex-direction:column; gap:16px; }
 .welcome-closing { flex-direction:column; gap:12px; }
}
@media (max-width:480px) {
 .dashboard-heading { flex-direction:column; gap:8px; }
 .dashboard-heading h1 { font-size:25px; }
 .dashboard-heading>.secondary-link { font-size:11px; }
 .daily-numbers { padding:8px 0; }
 .daily-numbers>a { padding:8px 10px; }
 .daily-numbers strong { font-size:27px; }
 .daily-numbers strong small { display:block; margin-top:5px; }
 .daily-numbers span { font-size:10px; }
 .daily-numbers>a>span:last-child { display:none; }
 .focus-invitation,.surface-panel,.detail-section { padding:20px; }
 .focus-invitation h2 { font-size:21px; }
 .task-row { gap:10px; }
 .duration { font-size:10px; }
 .duration>span { display:none; }
 .welcome-preview { padding:20px; }
 .preview-task { gap:8px; }
 .preview-heading h2 { font-size:21px; }
 .filter-tabs { gap:4px; }
 .filter-tabs a { padding:7px 11px; font-size:12px; }
}

/* Action-first home, practice laboratory and outcomes review. */
.action-reason { display:inline-block; margin-right:10px; padding:2px 10px; border-radius:20px; background:#ecf1df; color:#3a5a40; font-size:11px; }
.focus-invitation.is-live { background:#254636; }
.focus-invitation.is-live .eyebrow { color:#cfdcbf; }
.practice-strip { display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; margin:0 0 28px; padding:24px 28px; border:1px solid #d3ddc8; border-radius:16px; background:linear-gradient(180deg,#f3f5ea,#e9efe2); }
.practice-strip h2 { margin:8px 0 6px; font-size:19px; }
.practice-strip p { margin:0; max-width:560px; color:var(--muted); font-size:13px; }
.strip-actions { display:flex; flex-wrap:wrap; gap:10px; }
.strip-actions a { font-size:12px; }
.practice-hero { margin:0 0 26px; padding:32px 34px 28px; border:1px solid #d3ddc8; border-radius:20px; background:linear-gradient(180deg,#f4f6ec,#e9efe2); }
.practice-hero h2 { margin:10px 0; font-size:28px; }
.practice-lead { max-width:700px; margin:0 0 22px; color:var(--muted); font-size:14px; }
.practice-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:0; padding:0; list-style:none; }
.practice-steps li { display:flex; flex-direction:column; gap:3px; padding:16px 18px; border:1px solid #dce3d2; border-radius:14px; background:var(--surface); }
.practice-steps b { color:#8ca17e; font:19px Georgia,"Songti SC",serif; }
.practice-steps strong { font-size:14px; }
.practice-steps span { color:var(--muted); font-size:12px; line-height:1.7; }
.practice-note { margin:14px 0 0; padding:12px 16px; border-left:3px solid #b9c9a8; border-radius:0 10px 10px 0; background:#f3f5ec; color:#5a6b52; font-size:12px; }
.challenge-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin:26px 0; }
.challenge-card { display:flex; flex-direction:column; min-width:0; padding:26px; border:1px solid var(--line); border-radius:18px; background:var(--surface); box-shadow:0 6px 24px #243c2a08; }
.challenge-card:nth-child(4n+2),.challenge-card:nth-child(4n+3) { background:#faf9f1; }
.challenge-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.challenge-number { font:30px Georgia,"Songti SC",serif; line-height:1; color:#8ca17e; }
.challenge-card h2 { margin:16px 0 10px; font-size:21px; overflow-wrap:anywhere; }
.challenge-card>p { margin:0 0 16px; color:var(--muted); font-size:13px; }
.challenge-fact { margin:0 0 14px; }
.fact-label { display:block; margin-bottom:5px; color:#728264; font-size:11px; letter-spacing:.08em; }
.challenge-fact p { margin:0; font-size:13px; }
.fact-list { margin:0; padding-left:18px; font-size:13px; }
.fact-list li { margin-bottom:4px; }
.challenge-meta { color:var(--muted); font-size:11px; }
.challenge-days { margin:4px 0 18px; padding-top:12px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; }
.challenge-days ol { margin:12px 0 4px; padding-left:20px; }
.challenge-days li { margin-bottom:10px; }
.challenge-days strong { display:block; color:var(--ink); font-size:13px; font-weight:500; }
.challenge-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:auto; padding-top:6px; }
.challenge-actions a { max-width:100%; font-size:12px; }
.challenge-prefill { border-left:3px solid #b9c9a8; }
.practice-outro { margin:26px 0; padding:24px 26px; border:1px solid var(--line); border-radius:16px; background:var(--surface); }
.practice-outro h2 { margin-top:0; font-size:17px; }
.practice-outro p { margin:0; color:var(--muted); font-size:13px; }
.practice-start-layout { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:24px; align-items:start; }
.practice-form-panel { min-width:0; padding:26px; border:1px solid var(--line); border-radius:18px; background:var(--surface); }
.practice-form-panel h2 { margin-top:0; }
.practice-form-panel>p { color:var(--muted); font-size:13px; }
.practice-summary .challenge-days li span { display:block; margin-top:3px; }
.outcome-record h2 { font-size:19px; }
.outcome-record>p { max-width:760px; }
.welcome-practice { display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap; margin-top:40px; padding:28px 30px; border:1px solid #d3ddc8; border-radius:18px; background:#eff2e6; }
.welcome-practice h2 { margin:10px 0 8px; font-size:22px; }
.welcome-practice p { margin:0; max-width:640px; color:var(--muted); font-size:13px; }
@media (prefers-reduced-motion:no-preference) {
 .challenge-card { transition:box-shadow .18s ease,transform .18s ease; }
 .challenge-card:hover { transform:translateY(-2px); box-shadow:0 12px 30px #243c2a14; }
}
@media (max-width:1000px) {
 .practice-start-layout { grid-template-columns:1fr; }
}
@media (max-width:780px) {
 .challenge-grid { grid-template-columns:1fr; }
 .practice-steps { grid-template-columns:1fr; }
 .practice-strip,.welcome-practice { flex-direction:column; align-items:flex-start; }
}
@media (max-width:480px) {
 .challenge-card,.practice-form-panel,.practice-outro,.practice-strip,.practice-hero,.welcome-practice { padding:20px; }
}
