.lesson-handout-shell{gap:16px;margin-bottom:24px;display:grid}.lesson-handout-entry{background:#f5faf7;border:1px solid #cbded4;border-radius:18px;justify-content:space-between;align-items:center;gap:18px;padding:20px;display:flex}.lesson-handout-entry h3{margin:2px 0 8px;font-size:22px}.lesson-handout-entry p:last-child{color:var(--muted);margin:0;line-height:1.65}.lesson-handout-actions{color:#fff;background:#173f34;border-radius:14px;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex}.lesson-handout-actions span{font-size:14px;font-weight:750}.lesson-handout-actions button{color:#173f34;background:#fff}.lesson-handout-print{color:#111;background:#fff;border:1px solid #d9dedb;border-radius:16px;max-width:820px;margin:0 auto;padding:clamp(28px,5vw,52px);box-shadow:0 10px 32px #2230290f}.lesson-handout-cover{border-bottom:2px solid #222;padding:12px 0 26px}.lesson-handout-cover>p:first-child{letter-spacing:.14em;margin:0 0 18px;font-size:12px;font-weight:850}.lesson-handout-cover>span{color:#555;margin-bottom:8px;font-size:13px;display:block}.lesson-handout-cover h1{color:#111;letter-spacing:-.035em;margin:0;font-size:clamp(30px,5vw,46px);line-height:1.18}.lesson-handout-goal{color:#333;margin:20px 0 0;font-size:17px;line-height:1.75}.lesson-handout-print section{margin-top:30px}.lesson-handout-print h2{color:#111;letter-spacing:-.02em;margin:0 0 12px;font-size:22px}.lesson-handout-print h3{color:#222;margin:0 0 8px;font-size:17px}.lesson-handout-print p,.lesson-handout-print li{color:#252525;font-size:15px;line-height:1.8}.lesson-handout-reading,.lesson-handout-seminar ol{gap:12px;padding-left:22px;display:grid}.lesson-handout-reading li{background:#fafafa;border:1px solid #ddd;border-radius:10px;padding:14px 16px}.lesson-handout-reading li>div{gap:4px;display:grid}.lesson-handout-reading strong{color:#111}.lesson-handout-reading span,.lesson-handout-reading a{font-size:12px;line-height:1.55}.lesson-handout-reading a{word-break:break-all}.lesson-handout-section.is-worked_example,.lesson-handout-section.is-checkpoint{background:#f6f6f6;border:1px solid #b9b9b9;border-radius:10px;padding:18px 20px}.lesson-handout-footer{border-top:2px solid #222;margin-top:34px;padding-top:20px}.lesson-handout-footer strong{font-size:18px}.lesson-handout-footer small{color:#555;margin-top:10px;line-height:1.6;display:block}.lesson-guided-progress.is-preview~.lesson-classroom-section[aria-label=步骤\ 2：原始教材][hidden]{display:block}.lesson-guided-progress.is-preview~.lesson-classroom-section[aria-label=步骤\ 2：原始教材][hidden]>:not(.lesson-handout-shell){display:none!important}@media (width<=720px){.lesson-handout-entry,.lesson-handout-actions{flex-direction:column;align-items:stretch}.lesson-handout-entry button,.lesson-handout-actions button{width:100%}.lesson-handout-print{padding:24px 18px}}@media print{@page{size:A4;margin:16mm}body *{visibility:hidden!important}.lesson-handout-print,.lesson-handout-print *{visibility:visible!important}.lesson-handout-print{width:100%;max-width:none;box-shadow:none;background:#fff;border:0;border-radius:0;margin:0;padding:0;position:absolute;inset:0 auto auto 0}.lesson-handout-print a{color:#111;text-decoration:none}.lesson-handout-print section,.lesson-handout-reading li,.lesson-handout-section.is-worked_example,.lesson-handout-section.is-checkpoint,.lesson-handout-footer{break-inside:avoid}.lesson-handout-cover{break-after:avoid}}.learning-center-shell{width:min(100%,1120px)}.learning-classroom{gap:22px;display:grid}.lesson-guided-progress{background:#fff;border:1px solid #d1dad5eb;border-radius:20px;gap:16px;padding:clamp(18px,3vw,26px);display:grid}.lesson-guided-current{align-items:baseline;gap:10px;display:flex}.lesson-guided-current span{color:var(--accent);font-weight:850}.lesson-guided-current strong{color:var(--ink);font-size:20px}.lesson-guided-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.lesson-guided-steps button{width:100%;min-height:50px;color:var(--ink);text-align:left;background:#f8faf9;border:1px solid #d7e3dd;border-radius:12px;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:8px;padding:9px 10px;display:grid}.lesson-guided-steps button>span{background:#e8eeeb;border-radius:50%;place-items:center;width:28px;height:28px;font-size:13px;display:grid}.lesson-guided-steps button>strong{min-width:0;font-size:13px;line-height:1.35}.lesson-guided-steps .is-current button{border-color:var(--accent);background:#eaf5ef}.lesson-guided-steps .is-current button>span{background:var(--accent);color:#fff}.lesson-guided-steps .is-completed button{background:#f3f9f5;border-color:#bcd8ca}.lesson-guided-steps .is-completed button>span{color:#245c3d;background:#d8ecdf}.lesson-guided-steps .is-locked button{opacity:.58}.lesson-guided-preview-note{color:var(--muted);margin:0;font-size:14px}.lesson-guided-actions{justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 0 4px;display:flex}.lesson-guided-actions>div{justify-items:end;gap:7px;display:grid}.lesson-guided-actions p{max-width:520px;color:var(--muted);text-align:right;margin:0;font-size:13px}.lesson-notes-skip{margin-top:18px}.lesson-flow-finished{color:#245c3d;background:#e8f7ee;border-radius:12px;margin-top:20px;padding:16px;font-weight:750}.placement-entry,.placement-panel{background:#f4faf6;border:1px solid #cbded4;border-radius:22px;margin-bottom:22px;padding:clamp(22px,4vw,34px)}.placement-entry{grid-template-columns:1fr auto;align-items:center;gap:18px;display:grid}.placement-entry h2,.placement-panel h2{margin:3px 0 10px}.placement-entry p,.placement-panel p{line-height:1.65}.placement-assessment-list{gap:12px;margin:22px 0;padding:0;list-style:none;display:grid}.placement-assessment-list li{background:#fff;border:1px solid #d7e3dd;border-radius:15px;justify-content:space-between;align-items:center;gap:16px;padding:17px;display:flex}.placement-assessment-list li>div{gap:5px;min-width:0;display:grid}.placement-assessment-list span,.placement-assessment-list small{color:var(--muted)}.placement-status{background:#edf1ef;border-radius:999px;width:fit-content;padding:3px 8px;font-size:12px;font-weight:750}.placement-status.is-placement_verified{color:#245c3d;background:#e4f4ea}.placement-status.is-review_required{color:#765719;background:#fff2d7}.placement-status.is-start_here{color:#813737;background:#f8e8e8}.placement-questions{gap:16px;margin:20px 0;display:grid}.placement-questions fieldset{background:#fff;border:1px solid #d7e3dd;border-radius:14px;gap:9px;margin:0;padding:17px;display:grid}.placement-questions legend{padding:0 5px;font-weight:700;line-height:1.6}.placement-questions label{border-radius:9px;padding:9px;line-height:1.5}.placement-questions label:has(input:checked){background:#e8f4ed}.placement-result>strong{color:var(--accent);margin-top:12px;font-size:20px;display:block}.placement-panel progress{width:100%;height:10px;accent-color:var(--accent);margin:12px 0}.placement-domain-progress{flex-wrap:wrap;gap:8px;margin:14px 0 20px;display:flex}.placement-domain-progress span{color:var(--muted);background:#edf1ef;border-radius:999px;padding:5px 9px;font-size:12px}.placement-domain-progress span.is-touched{color:#245c3d;background:#e4f4ea}.placement-domain-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0;display:grid}.placement-domain-card{background:#fff;border:1px solid #d7e3dd;border-radius:15px;gap:8px;min-width:0;padding:17px;display:grid}.placement-domain-card>span,.placement-domain-card>small{color:var(--muted)}.placement-domain-card button{width:fit-content}.placement-route-details{gap:10px;margin:18px 0;display:grid}.placement-route-details details{background:#fff;border:1px solid #d7e3dd;border-radius:12px;padding:12px 14px}.placement-route-details summary{cursor:pointer;font-weight:700}.placement-route-details ul{gap:8px;padding-left:20px;display:grid}.lesson-hero,.lesson-classroom-section{background:#ffffffeb;border:1px solid #d1dad5eb;border-radius:22px;box-shadow:0 12px 40px #2230290e}.lesson-hero{color:#f7fbf8;background:#173f34;padding:clamp(28px,5vw,52px)}.lesson-back-link{color:#d9ece3;width:fit-content;font:inherit;background:0 0;border:0;margin:0 0 18px;padding:0;font-size:14px;font-weight:750;line-height:1.5;text-decoration:none}.lesson-back-link:hover,.lesson-back-link:focus-visible{color:#fff;text-underline-offset:4px;text-decoration:underline}.lesson-hero .eyebrow,.lesson-hero .supporting-text,.lesson-hero dt,.lesson-hero dd{color:#e5f2ec}.lesson-hero h1,.lesson-hero h2,.lesson-hero strong,.lesson-hero .lesson-goal{color:#fff}.lesson-hero .lesson-goal{letter-spacing:-.02em;max-width:820px;margin:18px 0 0;font-size:clamp(20px,2.6vw,30px);font-weight:650;line-height:1.45}.lesson-hero .today-metrics{margin-top:28px}.lesson-hero .today-metrics>div{background:#ffffff1f;border-color:#ffffff2e}.lesson-hero .today-metrics dt,.lesson-hero .today-metrics dd{opacity:1}.lesson-classroom-section{padding:clamp(24px,4vw,38px)}.lesson-classroom-section .panel-header{margin-bottom:22px}.lesson-classroom-section h2{letter-spacing:-.03em;margin:0;font-size:clamp(26px,3.5vw,38px)}.lesson-flow-note{color:var(--muted);margin:8px 0 0;font-size:14px;line-height:1.65}.tutor-section{background:#fffefa}.tutor-stack{gap:16px;display:grid}.tutor-block{background:#fff;border:1px solid #dfe5e1;border-radius:18px;padding:22px}.tutor-block h3{letter-spacing:-.02em;margin:0 0 10px;font-size:21px}.tutor-block p{color:#34413b;margin:0;font-size:16px;line-height:1.8}.worked-example{background:#eef6f1;border-radius:14px;grid-template-columns:auto 1fr;gap:12px;margin-top:14px;padding:14px 16px;display:grid}.worked-example strong{color:var(--accent);font-size:13px}.worked-example span{color:#34413b;line-height:1.7}.interactive-tutor-card{background:#f5fbf7;border:1px solid #bcd8ca;border-radius:20px;margin-top:22px;padding:clamp(20px,4vw,28px)}.interactive-tutor-head{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.interactive-tutor-head h3{margin:0;font-size:24px}.interactive-tutor-head>span{color:var(--accent);flex:none;font-weight:800}.interactive-tutor-question{color:#26352f;margin:18px 0;font-size:18px;font-weight:650;line-height:1.7}.interactive-tutor-options{gap:10px;display:grid}.interactive-option{width:100%;min-height:58px;color:var(--ink);text-align:left;background:#fff;border:1px solid #d4dfd9;border-radius:14px;grid-template-columns:32px 1fr;align-items:center;gap:10px;padding:12px 15px;display:grid}.interactive-option:hover:not(:disabled),.interactive-option.selected{background:#edf6f1;border-color:#6f9c88}.interactive-option strong{color:var(--accent)}.interactive-option span{line-height:1.55}.interactive-check-button{width:100%;margin-top:16px}.interactive-feedback{border-radius:16px;margin-top:16px;padding:18px}.interactive-feedback.correct{background:#edf8f1;border:1px solid #b8d8c7}.interactive-feedback.retry{background:#fff9e9;border:1px solid #eadcb5}.interactive-feedback strong{margin-bottom:8px;font-size:17px;display:block}.interactive-feedback p{color:#34413b;margin:0;line-height:1.7}.interactive-feedback button{width:100%;margin-top:14px}.interactive-feedback .secondary-button{margin-top:14px}.interactive-boundary-note{color:var(--muted);margin:14px 0 0;font-size:12px;line-height:1.55}.interactive-tutor-done h3{margin:0 0 8px}.interactive-tutor-done p{margin:0;line-height:1.7}.learning-tutor-free-answer{background:#f7fbf8;border:1px solid #cddfd6;border-radius:18px;margin-top:22px;padding:22px}.learning-tutor-free-answer h3{margin:0 0 10px}.learning-tutor-free-answer form{gap:12px;display:grid}.learning-tutor-free-answer textarea{box-sizing:border-box;resize:vertical;width:100%;font:inherit;border:1px solid #c7d4cd;border-radius:12px;padding:14px;line-height:1.6}.learning-tutor-result{gap:10px;margin-top:18px;display:grid}.learning-tutor-result>div{background:#fff;border-radius:12px;padding:12px 14px}.learning-tutor-result p{margin:5px 0 0;line-height:1.65}.learning-tutor-error{color:#8b2f2f}.learning-tutor-turn{background:#fff;border-radius:14px;gap:8px;margin:16px 0;padding:16px;display:grid}.learning-tutor-turn>div p{margin:4px 0 0;line-height:1.65}.feynman-check{background:#fbfdfc;border:1px solid #dce8e1;border-radius:12px;margin:6px 0;padding:12px}.feynman-check h4{margin:0 0 10px;font-size:15px}.feynman-check-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.feynman-check-item{background:#f2f5f3;border-left:3px solid #9eaaa4;border-radius:9px;justify-content:space-between;align-items:center;gap:8px;min-width:0;padding:9px 10px;display:flex}.feynman-check-item span{color:#405149;min-width:0}.feynman-check-item strong{flex:none;font-size:14px}.feynman-check-item.is-pass{color:#245c3d;background:#edf7f1;border-left-color:#4f8b68}.feynman-check-item.is-needs-work{color:#765719;background:#fff6e6;border-left-color:#c1842f}.feynman-check-item.is-not-applicable{color:#59645f;background:#f2f4f3;border-left-color:#98a29d}.learning-tutor-finished{color:#245c3d;background:#e8f7ee;border-radius:12px;padding:14px;font-weight:750}.learning-tutor-finished.is-paused{color:#765719;background:#fff6df}.interactive-tutor-flow.is-active~.concept-map,.interactive-tutor-flow.is-active~.misconception-card,.interactive-tutor-flow.is-active~.project-connection{display:none}.concept-map,.misconception-card,.project-connection{border-radius:18px;margin-top:18px;padding:20px}.concept-map{background:#f3f8f5;border:1px solid #d5e2da}.concept-map>strong,.misconception-card>strong,.project-connection>strong{margin-bottom:10px;font-size:18px;display:block}.concept-map ul{margin:0;padding-left:22px}.concept-map li{margin:8px 0;line-height:1.65}.misconception-card{background:#fff9e9;border:1px solid #eadcb5}.project-connection{background:#f4f8fd;border:1px solid #cfe0f2}.misconception-card p,.project-connection p{color:#3d4641;margin:0;line-height:1.75}.lesson-source-list,.lesson-evidence-list,.lesson-review-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.lesson-source-card,.lesson-evidence-card,.lesson-review-card{border:1px solid var(--line);background:#fbfcfa;border-radius:16px;padding:18px}.lesson-source-card strong,.lesson-evidence-card strong,.lesson-review-card strong{color:var(--ink);margin-bottom:6px;font-size:17px;display:block}.lesson-source-card span,.lesson-evidence-card span,.lesson-review-card span{color:var(--muted);line-height:1.6}.lesson-source-card a{margin-top:10px;font-weight:700;display:inline-flex}.lesson-practice-stack{gap:22px;display:grid}.lesson-practice-block{border:1px solid var(--line);background:#fbfcfa;border-radius:18px;padding:22px}.lesson-practice-block>strong{margin-bottom:4px;font-size:20px;display:block}.lesson-practice-block>span{color:var(--muted);margin-bottom:14px;display:block}.lesson-progress-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px;display:grid}.lesson-progress-strip>div{border:1px solid var(--line);background:#fbfcfa;border-radius:14px;padding:16px}.lesson-progress-strip span{color:var(--muted);font-size:12px;display:block}.lesson-progress-strip strong{color:var(--ink);margin-top:5px;font-size:18px;display:block}@media (width<=760px){.placement-entry{grid-template-columns:1fr}.placement-entry>button,.placement-assessment-list button{width:100%}.placement-assessment-list li{flex-direction:column;align-items:stretch}.placement-domain-grid,.feynman-check-grid,.lesson-progress-strip,.lesson-hero .today-metrics,.worked-example{grid-template-columns:1fr}.interactive-tutor-head{flex-direction:column}.lesson-guided-steps{grid-template-columns:1fr}.lesson-guided-actions{flex-direction:column-reverse;align-items:stretch}.lesson-guided-actions>div{justify-items:stretch}.lesson-guided-actions button{width:100%}.lesson-guided-actions p{text-align:left}}:root{color:#17211d;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#17211d;--muted:#65706a;--line:#dce2de;--surface:#ffffffeb;--accent:#174d3e;--accent-hover:#0f3b2f;--soft:#e8f0eb;--danger:#9f2f2f;background:#f4f5f1;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{min-width:320px;min-height:100%}body{background:radial-gradient(circle at 12% 8%,#cbddd2b3,#0000 32rem),radial-gradient(circle at 88% 88%,#e1d7be8c,#0000 34rem),#f4f5f1;min-width:320px;min-height:100dvh;margin:0}button,input,textarea{font:inherit}button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:12px;min-height:48px;padding:0 20px;font-weight:700;transition:background .16s,transform .16s}button:hover:not(:disabled){background:var(--accent-hover)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:wait;opacity:.65}button:focus-visible,input:focus-visible,textarea:focus-visible{outline-offset:3px;outline:3px solid #3a7b6459}.shell{min-height:100dvh;padding:max(24px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));place-items:center;display:grid}.card{background:var(--surface);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid #d6ded9e6;border-radius:24px;width:min(100%,520px);padding:clamp(28px,6vw,48px);box-shadow:0 24px 80px #2230291a}.brand-mark{background:var(--ink);color:#fff;border-radius:13px;place-items:center;width:42px;height:42px;margin-bottom:24px;font-family:Georgia,serif;font-size:22px;display:grid}.eyebrow{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin:0 0 10px;font-size:12px;font-weight:800}h1{letter-spacing:-.04em;margin:0;font-size:clamp(30px,7vw,42px);line-height:1.12}.supporting-text{color:var(--muted);margin:16px 0 0;font-size:15px;line-height:1.7}form{margin-top:32px}label{margin-bottom:9px;font-size:14px;font-weight:700;display:block}input{width:100%;min-height:52px;color:var(--ink);background:#fff;border:1px solid #cdd5d0;border-radius:12px;padding:0 15px;font-size:16px}input::placeholder{color:#929b96}form button{width:100%;margin-top:14px}.feedback{border-radius:10px;margin:18px 0 0;padding:12px 14px;font-size:14px;line-height:1.55}.feedback.success{color:#23593d;background:#e5f2e9}.feedback.info{background:var(--surface-soft);color:var(--muted)}.feedback.error{color:var(--danger);background:#fae9e7}.privacy-note{border-top:1px solid var(--line);color:#7a847f;margin:28px 0 0;padding-top:20px;font-size:12px;line-height:1.6}.status-card{text-align:center}.status-card .brand-mark{margin-left:auto;margin-right:auto}.status-card button{margin-top:24px}.loader{border:3px solid #d6ded9;border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;margin:24px auto 0;animation:.8s linear infinite spin;display:block}@keyframes spin{to{transform:rotate(360deg)}}.signed-in-card{width:min(100%,680px)}.signed-in-header{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.status-pill{background:var(--soft);color:var(--accent);border-radius:999px;flex:none;padding:7px 10px;font-size:12px;font-weight:800}.account-row{border:1px solid var(--line);background:#fafbf9;border-radius:14px;justify-content:space-between;align-items:center;gap:20px;margin-top:32px;padding:18px;font-size:14px;display:flex}.account-row span{color:var(--muted)}.account-row strong{overflow-wrap:anywhere;text-align:right}.secondary-button{width:100%;color:var(--ink);background:0 0;border:1px solid #cbd4cf;margin-top:24px}.secondary-button:hover:not(:disabled){background:#f0f3f1}@media (width<=520px){.shell{place-items:stretch stretch;padding:0}.card{min-height:100dvh;box-shadow:none;border:0;border-radius:0;flex-direction:column;justify-content:center;display:flex}.signed-in-header,.account-row{flex-direction:column;align-items:flex-start}.account-row strong{text-align:left}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}.loader{animation-duration:1.6s}}.dashboard-shell{width:min(100%,1240px);min-height:100dvh;margin:0 auto;padding:28px clamp(20px,4vw,52px) 36px}.dashboard-topbar{border-bottom:1px solid #c5cfc9cc;justify-content:space-between;align-items:center;gap:32px;padding-bottom:24px;display:flex}.dashboard-brand,.identity-block{align-items:center;gap:14px;display:flex}.dashboard-brand .brand-mark{margin:0}.dashboard-brand .eyebrow{margin-bottom:4px}.dashboard-brand span,.identity-block span{color:var(--muted);font-size:12px}.identity-block{text-align:right}.identity-block div{gap:3px;display:grid}.identity-block strong{overflow-wrap:anywhere;max-width:260px;font-size:13px}.quiet-button,.text-button{min-height:38px;color:var(--ink);background:#fff9;border:1px solid #cbd4cf;padding:0 14px;font-size:13px}.quiet-button:hover:not(:disabled),.text-button:hover:not(:disabled){background:#fff}.dashboard-intro{padding:clamp(48px,8vw,86px) 0 40px}.dashboard-intro>p:first-child{color:var(--accent);margin:0 0 14px;font-size:14px;font-weight:700}.dashboard-intro h1{max-width:820px;font-size:clamp(38px,6vw,72px)}.dashboard-intro .supporting-text{max-width:720px}.write-control-bar{background:#ffffff9e;border:1px solid #d1dad5eb;border-radius:16px;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;padding:18px 20px;display:flex}.write-control-bar div{gap:4px;display:grid}.write-control-bar strong{font-size:14px}.write-control-bar span{color:var(--muted);font-size:12px}.write-control-bar button{min-height:40px}.write-control{background:#fffffff0;border:1px solid #cbd8d1;border-radius:20px;margin-bottom:18px;padding:clamp(22px,4vw,34px);box-shadow:0 16px 50px #22302914}.write-control-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:26px;display:flex}.write-control-heading h2{letter-spacing:-.025em;margin:0;font-size:26px}.daily-state-form{margin-top:0}.daily-state-form label{margin-top:20px}textarea{resize:vertical;width:100%;min-height:92px;color:var(--ink);background:#fff;border:1px solid #cdd5d0;border-radius:12px;padding:14px 15px;font-size:16px;line-height:1.55}.write-meta{background:#f4f7f4;border-radius:12px;grid-template-columns:auto 1fr auto 1fr;gap:8px 16px;padding:14px 16px;font-size:12px;display:grid}.write-meta span{color:var(--muted)}.write-actions{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.write-actions .secondary-button{white-space:nowrap;width:auto;margin-top:0}.write-warning{color:#6d5215;background:#fff7df;border-radius:12px;margin:0 0 20px;padding:14px 16px;font-size:13px;line-height:1.65}.payload-review{gap:0;margin:0;display:grid}.payload-review div{border-bottom:1px solid var(--line);grid-template-columns:150px 1fr;gap:18px;padding:13px 0;display:grid}.payload-review dt{color:var(--muted);font-size:12px}.payload-review dd{overflow-wrap:anywhere;margin:0;font-size:14px;font-weight:650;line-height:1.55}.dashboard-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:18px;display:grid}.dashboard-panel{background:#ffffffc7;border:1px solid #d1dad5eb;border-radius:20px;grid-column:span 6;min-height:240px;padding:26px;box-shadow:0 12px 40px #2230290e}.today-panel{grid-column:span 7}.focus-panel{color:#fff;background:#173f34;grid-column:span 5}.focus-panel .eyebrow{color:#acd0c0}.system-panel,.ai-panel{grid-column:1/-1}.ai-interaction-form{margin:0}.xiaoyu-companion{margin-bottom:16px}.speech-output{flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0;display:flex}.speech-output button{width:auto;margin:0}.speech-output span{color:var(--muted);font-size:12px}.xiaoyu-companion .xiaoyu-toggle{width:auto;min-height:36px;color:var(--muted);box-shadow:none;background:0 0;border:1px solid #0000;border-radius:8px;margin:0 0 0 auto;padding:6px 10px;font-size:12px;font-weight:500;display:block}.xiaoyu-companion .xiaoyu-toggle:hover:not(:disabled){color:var(--accent);background:#6fb19a14}.xiaoyu-companion .xiaoyu-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.xiaoyu-stage{pointer-events:none;background:0 0;flex-direction:column;align-items:center;padding:0 12px 8px;display:flex}.xiaoyu-stage[hidden]{display:none}.xiaoyu-status{min-height:1.5em;color:var(--muted);text-align:center;font-size:12px}.xiaoyu-robot{width:min(500px,100%);height:auto;display:block;overflow:visible}.xiaoyu-pose{transform-origin:120px 140px;filter:drop-shadow(2px 6px 5px #265f5621);transform:rotate(-5deg)}.xiaoyu-float{transform-origin:120px 145px;animation:5.6s ease-in-out infinite xiaoyu-idle}.xiaoyu-aura{transform-origin:120px 135px;animation:5.6s ease-in-out infinite xiaoyu-breathe}.xiaoyu-eyes,.xiaoyu-side-modules{filter:drop-shadow(0 0 2px #68ead4)}.xiaoyu-eyes{transform-box:fill-box;transform-origin:50%}.xiaoyu-stage[data-pose=IDLE] .xiaoyu-eyes{animation:6.8s ease-in-out infinite xiaoyu-blink}.xiaoyu-stage[data-pose=APPEARING] .xiaoyu-robot{animation:.48s ease-out both xiaoyu-appear}.xiaoyu-stage[data-pose=APPEARING] .xiaoyu-aura{animation:.48s ease-out both xiaoyu-arrival-glow}.xiaoyu-stage[data-pose=LISTENING] .xiaoyu-side-modules{animation:1.4s ease-in-out infinite xiaoyu-listen}.xiaoyu-stage[data-pose=THINKING] .xiaoyu-eyes{animation:1.8s ease-in-out infinite xiaoyu-think}.xiaoyu-speaking-mouth{transform-origin:120px 124px;display:none}.xiaoyu-stage[data-pose=SPEAKING] .xiaoyu-mouth{display:none}.xiaoyu-stage[data-pose=SPEAKING] .xiaoyu-speaking-mouth{filter:drop-shadow(0 0 2px #78f4dc);animation:1.1s ease-in-out infinite xiaoyu-speak;display:inline}.xiaoyu-speaking-expression,.xiaoyu-speaking-hand,.xiaoyu-speaking-waves{display:none}.xiaoyu-stage[data-pose=SPEAKING] .xiaoyu-pose{transform:translateY(-3px)rotate(3deg)scale(1.04)}.xiaoyu-stage[data-pose=SPEAKING] .xiaoyu-eyes,.xiaoyu-stage[data-pose=SPEAKING] .xiaoyu-hand{display:none}.xiaoyu-stage[data-pose=SPEAKING] .xiaoyu-speaking-expression{transform-box:fill-box;transform-origin:50%;filter:drop-shadow(0 0 4px #78f4dc);animation:2.6s ease-in-out infinite xiaoyu-speaking-eyes;display:inline}.xiaoyu-stage[data-pose=SPEAKING] .xiaoyu-speaking-hand{transform-origin:162px 176px;animation:1.8s ease-in-out infinite xiaoyu-speaking-hand;display:inline;transform:rotate(-8deg)}.xiaoyu-speaking-waves{pointer-events:none;opacity:.85}.xiaoyu-stage[data-pose=SPEAKING] .xiaoyu-speaking-waves{filter:drop-shadow(0 0 3px #8af6dc);display:inline}.xiaoyu-stage[data-pose=SPEAKING] .xiaoyu-speaking-waves path{animation:1.6s ease-in-out infinite xiaoyu-speaking-wave}.xiaoyu-stage[data-pose=SPEAKING] .xiaoyu-speaking-waves path:nth-child(2){animation-delay:.16s}.xiaoyu-stage[data-pose=SPEAKING] .xiaoyu-speaking-waves path:nth-child(3){animation-delay:.32s}.xiaoyu-stage[data-pose=SPEAKING] .xiaoyu-float{animation:2.4s ease-in-out infinite xiaoyu-speaking-float}.xiaoyu-stage[data-pose=SPEAKING] .xiaoyu-side-modules,.xiaoyu-stage[data-pose=SPEAKING] .xiaoyu-badge{filter:drop-shadow(0 0 7px #78f4dc);animation:1.6s ease-in-out infinite xiaoyu-speaking-glow}.xiaoyu-stage[data-pose=SPEAKING] .xiaoyu-status{color:var(--accent);font-size:14px;font-weight:650}.xiaoyu-stage[data-pose=DONE] .xiaoyu-hand{transform-origin:171px 166px;animation:.9s ease-in-out xiaoyu-done}@keyframes xiaoyu-idle{50%{transform:translateY(-3px)rotate(1deg)scale(1.008)}}@keyframes xiaoyu-breathe{50%{opacity:.7;transform:scale(.97)}}@keyframes xiaoyu-blink{0%,43%,47%,to{transform:scaleY(1)}45%{transform:scaleY(.12)}}@keyframes xiaoyu-appear{0%{opacity:0;transform:translateY(18px)scale(.9)}75%{opacity:1;transform:translateY(-2px)scale(1.01)}to{opacity:1;transform:none}}@keyframes xiaoyu-arrival-glow{0%{opacity:0;transform:scale(.65)}65%{opacity:1;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes xiaoyu-listen{50%{opacity:.55}}@keyframes xiaoyu-think{50%{transform:translate(3px)scaleY(.65)}}@keyframes xiaoyu-speak{0%,to{transform:scale(.95,.7)}15%,56%{transform:scale(1)}30%,72%{transform:scale(.82,.18)}43%{transform:scale(.78,.8)}87%{transform:scale(.9,.45)}}@keyframes xiaoyu-speaking-eyes{0%,to{transform:scaleY(.92)}30%,58%,68%{transform:scaleY(1)}63%{transform:scaleY(.18)}}@keyframes xiaoyu-speaking-float{35%{transform:translateY(-2px)rotate(.6deg)}65%{transform:translateY(-1px)rotate(-.4deg)}}@keyframes xiaoyu-speaking-glow{50%{opacity:.76}}@keyframes xiaoyu-speaking-hand{0%,to{transform:rotate(-8deg)}40%{transform:rotate(-19deg)}70%{transform:rotate(-5deg)}}@keyframes xiaoyu-speaking-wave{0%,to{opacity:.45}45%{opacity:1}}@keyframes xiaoyu-done{30%,70%{transform:rotate(-24deg)}50%{transform:rotate(-8deg)}}@media (width<=560px){.xiaoyu-robot{width:min(340px,100%)}.xiaoyu-stage{padding:4px 8px 12px}}@media (prefers-reduced-motion:reduce){.xiaoyu-companion .xiaoyu-robot,.xiaoyu-companion .xiaoyu-robot *{transition:none!important;animation:none!important}.xiaoyu-stage[data-pose=SPEAKING] .xiaoyu-speaking-mouth{transform:scaleY(.85)}}.ai-input-row{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:12px;display:grid}.ai-input-row textarea{resize:vertical;min-height:92px}.ai-input-row button{min-width:112px;margin:0}.voice-input-control{border:1px solid var(--line);background:var(--surface-soft);border-radius:14px;gap:10px;margin-top:14px;padding:14px;display:grid}.voice-input-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.voice-input-heading>div{gap:3px;display:grid}.voice-input-heading span,.voice-boundary-note,.voice-message,.voice-interim,.voice-transcript-label span{color:var(--muted);font-size:12px;line-height:1.55}.voice-input-heading strong{font-size:14px}.voice-timer{font-variant-numeric:tabular-nums;flex:none}.voice-message,.voice-boundary-note,.voice-interim{overflow-wrap:anywhere;margin:0}.voice-accepted{color:var(--accent);overflow-wrap:anywhere;background:#edf7f2;border:1px solid #b8d6c8;border-radius:10px;margin:0;padding:10px 12px;font-size:13px;font-weight:700;line-height:1.55}.voice-transcript-label{gap:7px;display:grid}.voice-transcript-label textarea{resize:vertical;min-height:84px}.voice-actions{flex-wrap:wrap;gap:10px;display:flex}.voice-actions button{width:auto;min-height:44px;margin:0}.ai-boundary-note{color:var(--muted);margin:12px 0 0;font-size:12px;line-height:1.6}.ai-diagnostic{overflow-wrap:anywhere;opacity:.78;margin:5px 0 0;font-size:11px;line-height:1.5}.ai-outcome-title{margin-bottom:6px;display:block}.ai-outcome-title+p{margin:0}.ai-interaction-result{border-top:1px solid var(--line);gap:16px;margin-top:20px;padding-top:20px;display:grid}.ai-intent-row,.ai-proposal-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.ai-intent-row span,.ai-proposal-heading span{color:var(--muted);font-size:12px}.ai-response{background:var(--surface-soft);border-radius:14px;margin:0;padding:16px;line-height:1.7}.ai-proposal{border:1px solid var(--line);background:var(--surface-soft);border-radius:16px;gap:16px;padding:18px;display:grid}.ai-proposal-heading>div{gap:5px;display:grid}.ai-proposal-details{gap:0;margin:0;display:grid}.ai-proposal-details div{border-bottom:1px solid var(--line);grid-template-columns:120px minmax(0,1fr);gap:14px;padding:11px 0;display:grid}.ai-proposal-details dt{color:var(--muted);font-size:12px}.ai-proposal-details dd{overflow-wrap:anywhere;white-space:pre-wrap;margin:0;font-size:13px}.ai-technical-id{color:var(--muted);margin-top:4px;font-size:11px;font-weight:500;line-height:1.5;display:block}.ai-proposal .write-warning{margin:0}.ai-review-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.ai-review-actions .secondary-button{width:auto;margin:0}.ai-confirm-unavailable{color:var(--danger);margin:0;font-size:13px;line-height:1.6}.panel-header{margin-bottom:28px}.panel-header .eyebrow{margin-bottom:7px}.panel-header h2{letter-spacing:-.025em;margin:0;font-size:24px}.panel-header-with-action{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.panel-action{white-space:nowrap;width:auto;margin:0;padding:9px 13px;font-size:12px}.empty-state{max-width:460px;color:var(--muted);margin:0;font-size:14px;line-height:1.75}.focus-panel .empty-state{color:#c3d3cc}.focus-action{margin:0;font-size:clamp(22px,3vw,32px);font-weight:650;line-height:1.35}.today-metrics,.system-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;display:grid}.today-metrics div,.system-summary div{background:#f4f7f4;border-radius:14px;padding:16px}.today-metrics dt,.system-summary span{color:var(--muted);font-size:12px}.today-metrics dd{margin:8px 0 0;font-size:15px;font-weight:750}.butler-brief-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.butler-brief-metrics dd{overflow-wrap:anywhere;line-height:1.55}.system-summary strong{margin-top:7px;font-size:22px;display:block}.timeline-list,.state-list,.compact-list{margin:0;padding:0;list-style:none}.timeline-list{gap:18px;display:grid}.timeline-list li{grid-template-columns:92px 1fr;gap:14px;display:grid}.timeline-list time{color:var(--muted);font-size:12px}.timeline-list div,.state-list div{gap:4px;display:grid}.timeline-list strong,.state-list strong{font-size:14px}.timeline-list span,.state-list span{color:var(--muted);font-size:12px}.timeline-write-control{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.timeline-form{gap:10px;display:grid}.timeline-form input,.timeline-form textarea{margin:0 0 4px}.learning-write-control{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.learning-form{gap:10px;display:grid}.learning-form input,.learning-form textarea{margin:0 0 4px}.learning-form select{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);font:inherit;border-radius:12px;margin:0 0 4px;padding:12px 14px}.item-actions,.timeline-list .item-actions,.state-list .item-actions{flex-wrap:wrap;gap:12px;margin-top:4px;display:flex}.item-actions .text-button{min-height:auto;padding:0}.inline-confirmation,.learning-update-control{border:1px solid var(--line);background:var(--surface-soft);border-radius:14px;margin-top:10px;padding:14px}.inline-confirmation p{color:var(--text);margin:0 0 10px;font-size:13px}.learning-item-content{flex:1;min-width:0}.learning-assets{gap:10px;margin-top:12px;display:grid}.learning-assets>section{border-top:1px solid var(--line);min-width:0;padding-top:10px}.asset-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.asset-heading .text-button{min-height:32px;padding:0}.asset-panel{min-width:0;margin-top:12px}.asset-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.asset-list li{border:1px solid var(--line);background:var(--surface);border-radius:13px;gap:6px;min-width:0;padding:12px;display:grid}.asset-list li div{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.asset-list span,.asset-list a{overflow-wrap:anywhere;color:var(--muted);font-size:12px}.asset-list a{color:var(--accent)}.asset-list p{overflow-wrap:anywhere;color:var(--text);margin:0;font-size:13px;line-height:1.55}.asset-write-control{border:1px solid var(--line);background:var(--surface-soft);border-radius:14px;margin:0 0 12px;padding:14px}.source-picker{border:1px solid var(--line);border-radius:12px;gap:8px;margin:8px 0;padding:12px;display:grid}.source-picker legend{color:var(--muted);padding:0 5px;font-size:12px}.source-picker label{align-items:center;gap:8px;margin:0;font-size:13px;display:flex}.source-picker input{width:auto;margin:0}.mastery-review{border:1px solid var(--line);border-radius:12px;margin-top:14px;padding:12px}.mastery-review p{margin:0 0 8px;font-size:13px}.mastery-review ul{gap:6px;margin:0;padding-left:18px;display:grid}.mastery-review li{gap:2px;font-size:12px;display:grid}.state-list{gap:12px;display:grid}.state-list li,.compact-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.status-chip{background:var(--soft);border-radius:999px;padding:6px 9px;font-weight:750;color:var(--accent)!important}.compact-list{margin-top:20px}.compact-list span{color:var(--muted);font-size:13px}.compact-list strong{font-size:13px}.dashboard-footer{color:var(--muted);justify-content:space-between;align-items:center;gap:20px;padding:28px 0 0;font-size:12px;display:flex}.text-button{min-height:34px}.dashboard-feedback{margin:20px 0 0}.panel-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.previous-day-reference{border:1px solid var(--line);background:var(--surface);border-radius:16px;margin-top:16px;padding:18px 20px}.history-toggle{width:auto;color:var(--accent);background:0 0;border:0;padding:0;font-weight:750}.history-panel{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}.history-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.history-item{border:1px solid var(--line);background:var(--surface-soft);border-radius:14px;min-width:0;padding:14px}.history-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px!important;display:flex!important}.history-heading span,.history-meta{color:var(--muted);font-size:12px}.history-details{gap:10px;margin:14px 0 0;display:grid}.history-details div{gap:4px;display:grid}.history-details dt{color:var(--muted);font-size:12px}.history-details dd{overflow-wrap:anywhere;margin:0;font-size:13px}.history-meta{flex-wrap:wrap;gap:8px 14px;margin-top:8px;display:flex}.history-item p{overflow-wrap:anywhere;color:var(--muted);margin:8px 0 0;font-size:13px}.dashboard-loading,.dashboard-error{text-align:center;place-content:center;width:min(100%,560px);min-height:70vh;margin:0 auto;display:grid}.dashboard-loading .loader{margin-top:0}.dashboard-loading p,.dashboard-error>p:not(.eyebrow){color:var(--muted);line-height:1.7}.dashboard-error h1{font-size:40px}.dashboard-error button{margin:18px auto 0}@media (width<=820px){.dashboard-panel,.today-panel,.focus-panel,.system-panel,.ai-panel{grid-column:1/-1}.identity-block div{display:none}}@media (width<=560px){.dashboard-shell{padding:20px 16px 28px}.dashboard-topbar{align-items:flex-start;gap:12px}.dashboard-brand span{display:none}.dashboard-intro{padding:44px 4px 30px}.dashboard-intro h1{font-size:42px}.dashboard-panel{border-radius:17px;min-height:auto;padding:22px 20px}.today-metrics,.system-summary,.butler-brief-metrics{grid-template-columns:1fr}.timeline-list li{grid-template-columns:76px 1fr}.dashboard-footer,.write-control-bar,.write-control-heading{flex-direction:column;align-items:flex-start}.write-control-bar button{width:100%}.write-meta{grid-template-columns:1fr 1fr}.payload-review div{grid-template-columns:1fr;gap:5px}.write-actions{flex-direction:column-reverse}.write-actions button,.write-actions .secondary-button{width:100%}.state-list li,.asset-heading{align-items:flex-start}.ai-input-row{grid-template-columns:1fr}.ai-input-row button{width:100%}.ai-proposal-heading{flex-direction:column;align-items:flex-start}.ai-proposal-details div{grid-template-columns:1fr;gap:4px}.ai-review-actions{flex-direction:column-reverse}.ai-review-actions button,.ai-review-actions .secondary-button{width:100%}}
