:root { color-scheme:light; --paper:#fff; --ink:#202124; --muted:#5f6368; --line:#dadce0; --soft:#f8f9fa; --blue:#1a73e8; --green:#188038; --red:#b3261e; --pink:#b23a72; --visual-bg:#fef7e0; --visual-ink:#714900; --visual-line:#e7b93d; }
:root[data-theme="dark"] { color-scheme:dark; --paper:#202124; --ink:#e8eaed; --muted:#bdc1c6; --line:#5f6368; --soft:#292a2d; --blue:#8ab4f8; --green:#81c995; --red:#f28b82; --pink:#ff9ec3; --visual-bg:#453512; --visual-ink:#ffe7a3; --visual-line:#aa8529; }
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 Arial,Helvetica,sans-serif}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit}button{cursor:pointer}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.topbar{min-height:56px;padding:0 24px;display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--line)}.topbar a{color:var(--ink)}.home-link{font-weight:700;font-size:18px;letter-spacing:-.02em}.topbar-spacer{flex:1}.credit-balance{font-size:14px;color:var(--muted);white-space:nowrap}.theme-toggle{border:0;color:var(--ink);background:transparent;padding:8px}
.generation-progress{position:fixed;right:24px;bottom:24px;z-index:10;display:flex;align-items:center;gap:9px;max-width:min(360px,calc(100vw - 48px));padding:10px 13px;border:1px solid var(--line);border-radius:4px;background:var(--paper);box-shadow:0 3px 12px rgb(0 0 0 / .14);font-size:14px}.generation-spinner{width:14px;height:14px;flex:0 0 auto;border:2px solid var(--line);border-top-color:var(--blue);border-radius:50%;animation:generation-spin .8s linear infinite}@keyframes generation-spin{to{transform:rotate(1turn)}}
#app{max-width:1120px;margin:0 auto;padding:36px 24px 72px}.home-actions{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:40px}h1,h2,h3,p{margin-top:0}h1{font-size:32px;letter-spacing:-.035em;line-height:1.15}h2{font-size:19px;margin-bottom:14px}.primary{background:var(--blue);color:#fff;border:1px solid var(--blue);border-radius:4px;padding:10px 14px;font-weight:600}.secondary{background:transparent;color:var(--blue);border:1px solid var(--line);border-radius:4px;padding:9px 12px}.danger{color:var(--red)}.quiet{color:var(--muted);font-size:14px}.create-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.empty-state .create-actions{justify-content:center}
.activity{min-width:360px;text-align:right}.activity strong{display:block}.day-strip{display:flex;justify-content:flex-end;gap:4px;margin-top:8px}.day{width:11px;height:11px;border:1px solid var(--line);border-radius:2px;background:var(--soft)}.day.active{background:var(--green);border-color:var(--green)}
.section{margin-top:42px}.library-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px}.library-list summary{font-size:19px;font-weight:700;cursor:pointer;border-bottom:1px solid var(--line);padding-bottom:8px}.library-controls{display:flex;gap:10px;margin:14px 0}.library-controls input,.library-controls select{min-width:0;border:1px solid var(--line);border-radius:4px;padding:7px;background:var(--paper);color:var(--ink)}.library-controls input{flex:1}.item{display:block;padding:14px 0;border-bottom:1px solid var(--line);color:var(--ink)}.item:hover{text-decoration:none;background:var(--soft);margin:0 -8px;padding:14px 8px}.item-title{display:block;font-weight:600}.item-meta{display:block;font-size:14px;color:var(--muted)}.status{color:var(--muted);text-transform:capitalize}.status.completed{color:var(--green)}.empty{color:var(--muted)}
.empty-state{max-width:520px;margin:80px auto;text-align:center}.empty-state p{color:var(--muted);margin-bottom:24px}
.home-about{margin-top:56px;text-align:center}.home-about a{color:var(--muted)}
.page-top{display:flex;gap:12px;align-items:center;margin-bottom:26px}.back{color:var(--muted)}.reader{max-width:730px;margin:0 auto}.reader h1{margin-bottom:6px}.reader h2{margin-top:34px}.reader p,.reader li{max-width:68ch}.reader p{margin-left:auto;margin-right:auto}.lesson-section{padding-bottom:22px;border-bottom:1px solid var(--line)}.lesson-section.key-takeaways{border-bottom:0}.section-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:18px 0 0}.section-tools .secondary{padding:6px 9px;font-size:14px}.section-form{margin-top:16px}.section-material{margin-top:14px}.workspace-item.note-item{margin:8px 0;padding:10px 12px;background:var(--visual-bg);border:1px solid var(--visual-line);border-left-width:4px;border-radius:4px;color:var(--ink)}.note-item>.quiet{color:var(--visual-ink);font-weight:600}.section-note{flex:1;min-width:0}.section-note summary{cursor:pointer;overflow-wrap:anywhere}.section-note[open] summary{font-weight:600}.section-note .markdown-body{margin-top:8px}.section-note .markdown-body>:first-child{margin-top:0}.section-note .markdown-body>:last-child{margin-bottom:0}.lesson-actions{display:flex;gap:10px;flex-wrap:wrap;margin:26px 0}.visual-searches{display:inline-flex;flex-wrap:wrap;gap:6px}.visual-search{display:inline-grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid var(--visual-line);border-radius:999px;background:var(--visual-bg);box-shadow:0 1px 2px rgb(0 0 0 / .12);color:var(--visual-ink);line-height:0;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}.visual-search:hover{box-shadow:0 4px 10px rgb(0 0 0 / .16);text-decoration:none;transform:translateY(-1px)}.visual-search:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.markdown-body{overflow-wrap:anywhere}.markdown-body strong{color:var(--pink)}.markdown-body h3,.markdown-body h4{margin-top:28px}.markdown-body pre{overflow:auto;padding:14px;background:var(--soft);border:1px solid var(--line);border-radius:4px}.markdown-body code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.markdown-body :not(pre)>code{padding:2px 4px;background:var(--soft);border-radius:3px}.markdown-body blockquote{margin:18px 0;padding-left:14px;border-left:3px solid var(--line);color:var(--muted)}.markdown-body table{display:block;max-width:100%;overflow:auto;border-collapse:collapse;margin:18px 0}.markdown-body th,.markdown-body td{padding:7px 10px;border:1px solid var(--line);text-align:left}.markdown-body th{background:var(--soft)}.markdown-body .task-list-item{list-style:none}.markdown-body .task-list-item input{margin-right:7px}.module-list{max-width:760px}.module-row{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);color:var(--ink)}.module-row.locked{color:var(--muted)}.module-index{color:var(--muted);min-width:25px}.module-row:hover{text-decoration:none}
.title-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.title-row h1{margin-bottom:6px}.title-edit{font-size:14px;white-space:nowrap}.title-form{display:flex;gap:8px;align-items:center;width:100%;margin-bottom:6px}.title-form input{min-width:0;flex:1;padding:8px;border:1px solid var(--line);border-radius:4px;color:var(--ink);background:var(--paper)}.design-context{margin:22px 0;color:var(--muted)}.design-context summary{cursor:pointer;color:var(--ink)}.design-context p{margin:12px 0}.design-context .workspace-list{color:var(--ink)}
.lesson-markdown-editor textarea{min-height:60vh;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;line-height:1.55;tab-size:2}
.module-metadata{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:18px 0;color:var(--muted);font-size:14px}.module-metadata dt{font-weight:600;color:var(--ink)}.module-metadata dd{margin:0}.module-metadata-edit{margin:18px 0}.module-metadata-edit summary{cursor:pointer;color:var(--muted)}#proposal-form .field input[name="title"]{width:100%;max-width:680px}
.planner{max-width:680px}.planner-thread{margin:24px 0}.planner-message{margin:12px 0;padding:12px 14px;background:var(--soft);border-radius:4px}.planner-message>p:last-child{margin-bottom:0}.planner-message.user{background:transparent;border:1px solid var(--line);white-space:pre-wrap}.planner-choices{display:grid;gap:8px;margin-top:14px}.planner-choice{text-align:left;color:var(--ink);background:var(--paper)}.planner-choice.selected,.planner-choice.selected:disabled{color:var(--ink);border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue);font-weight:600;opacity:1;cursor:default}.planner-custom-answer{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.planner-custom-answer label{display:block;font-size:14px;color:var(--muted)}.planner-custom-answer textarea{min-height:70px;margin:5px 0 0}.planner-custom-answer .secondary{margin-top:8px}.planner-custom-response{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line)}.reply-actions{display:flex;gap:10px;margin-top:10px}.plan-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:32px;padding-top:20px;border-top:1px solid var(--line)}.create-plan{max-width:760px}.plan-question{padding:22px 0;border-top:1px solid var(--line)}.plan-question:first-of-type{border-top:0;padding-top:4px}.plan-question h2{margin-bottom:4px}.choice-grid{display:grid;gap:10px;margin-top:14px}.choice-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.choice-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-card{display:block;cursor:pointer;border:1px solid var(--line);border-radius:4px;padding:12px;background:var(--paper)}.choice-card:has(input:checked){border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.choice-card input{position:absolute;opacity:0}.choice-card strong,.choice-card small{display:block}.choice-card small{margin-top:3px;color:var(--muted);font-size:13px;line-height:1.35}.source-input{display:block;margin-top:14px}.source-tools{display:flex;gap:8px;margin-bottom:10px}.source-tools input[type="url"]{min-width:0;flex:1;padding:8px;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink)}.source-file input{position:absolute;opacity:0;width:1px;height:1px}.source-status{min-height:1.55em;margin:6px 0 0}.plan-optional{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.plan-optional summary{cursor:pointer;color:var(--ink)}.proposal-lessons{padding-left:22px}.proposal-lessons li{padding:12px 0;border-bottom:1px solid var(--line)}.proposal-lessons label,.proposal-lessons input{display:block;width:100%}.proposal-lessons input{margin:5px 0 3px}.proposal-lessons .quiet{display:block}textarea{width:100%;min-height:110px;padding:10px;border:1px solid var(--line);border-radius:4px;color:var(--ink);background:var(--paper)}.form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.notice{padding:12px 14px;background:var(--soft);border-left:3px solid var(--blue)}.account{max-width:650px}.account-section,.account-danger{margin-top:34px;padding-top:20px;border-top:1px solid var(--line)}.account-danger .danger{border-color:var(--red)}.field{display:block;margin:20px 0}.field select,.field input{display:block;margin-top:6px;padding:8px;background:var(--paper);color:var(--ink);border:1px solid var(--line)}
.workspace{margin-top:44px;padding-top:24px;border-top:1px solid var(--line)}.workspace-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.workspace-list{border-top:1px solid var(--line)}.workspace-item{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.study-material{margin:18px 0;padding:18px;border:1px solid var(--line);border-radius:4px}.study-material h3{margin-bottom:12px}.study-material h3:not(:first-child){margin-top:22px}.study-material details{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.study-material summary{cursor:pointer;font-weight:600}.study-material ol{padding-left:24px}.study-material li{margin:8px 0}
@media(max-width:720px){.topbar{padding:0 16px;gap:13px}#app{padding:28px 16px 48px}.home-actions{display:block}.activity{min-width:0;margin-top:30px;text-align:left}.day-strip{justify-content:flex-start}.library-grid{grid-template-columns:1fr;gap:26px}.library-grid .modules{order:-1}.choice-grid.two,.choice-grid.three,.choice-grid.four{grid-template-columns:1fr}.source-tools{flex-wrap:wrap}.source-tools input[type="url"]{min-width:100%}}

/* The original Herschel reading-room palette and typography. */
:root { color-scheme:light; --paper:#f3ecdd; --paper-2:#ece2cd; --paper-3:#e6dabf; --ink:#241d14; --ink-soft:#6d6150; --ink-faint:#9a8d77; --rule:#d6c9ac; --accent:#b14223; --accent-2:#8a3418; --gold:#a9802b; --good:#4f7a3f; --bad:#b14223; --mark:#f6e0a8; --shadow:0 1px 0 rgb(36 29 20 / .04),0 18px 40px -28px rgb(36 29 20 / .45); --serif:"Newsreader",Georgia,serif; --display:"Fraunces",Georgia,serif; --mono:"IBM Plex Mono",ui-monospace,monospace; --muted:var(--ink-soft); --line:var(--rule); --soft:var(--paper-2); --blue:var(--accent); --green:var(--good); --red:var(--bad); --pink:var(--accent-2); --visual-bg:#f3e6c6; --visual-ink:#745116; --visual-line:#caa55b; --grain-blend:multiply; }
:root[data-theme="dark"] { color-scheme:dark; --paper:#201b14; --paper-2:#29231a; --paper-3:#342c20; --ink:#ece3d2; --ink-soft:#b6a88f; --ink-faint:#877b64; --rule:#453c2d; --accent:#d9744f; --accent-2:#e58a63; --gold:#d7a747; --good:#7fab60; --bad:#d9744f; --mark:#5a4a1f; --shadow:0 1px 0 rgb(0 0 0 / .2),0 18px 40px -28px rgb(0 0 0 / .75); --visual-bg:#433419; --visual-ink:#f0cf82; --visual-line:#8d6c2f; --grain-blend:screen; }
html { scroll-behavior:smooth; }
body { background:var(--paper); color:var(--ink); font-family:var(--serif); font-size:19px; line-height:1.66; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
.grain { position:fixed; inset:0; z-index:9999; pointer-events:none; opacity:.5; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.045'/%3E%3C/svg%3E"); mix-blend-mode:var(--grain-blend); }
:root[data-theme="dark"] .grain { opacity:.28; }
::selection { background:var(--mark); }
.topbar { position:sticky; top:0; z-index:50; min-height:0; padding:.85rem clamp(1rem,4vw,2.4rem); gap:1rem; background:color-mix(in srgb,var(--paper) 86%,transparent); border-bottom:1px solid var(--rule); backdrop-filter:blur(8px); }
.topbar-icon { width:2.25rem; height:2.25rem; display:grid; place-items:center; padding:0; border:1px solid var(--rule); border-radius:999px; color:var(--ink-soft) !important; font-family:var(--mono); font-size:.78rem; line-height:1; text-decoration:none; transition:.15s ease; }
.topbar-icon:hover { color:var(--accent) !important; border-color:var(--accent); background:var(--paper-2); text-decoration:none; }
.home-link { color:var(--accent) !important; font-family:var(--display); font-size:1.2rem; font-weight:650; }
.account-link { font-size:1.2rem; }
.credit-balance { padding:.3rem .65rem; border:1px solid var(--rule); border-radius:999px; background:var(--paper-2); color:var(--ink-soft); font-family:var(--mono); font-size:.64rem; letter-spacing:.04em; }
.theme-toggle { border:1px solid var(--rule); border-radius:999px; color:var(--ink-soft); background:transparent; padding:.35rem .55rem; font-family:var(--mono); font-size:.9rem; }
.theme-toggle:hover { color:var(--accent); border-color:var(--accent); background:var(--paper-2); }
#app { max-width:calc(42rem + 12vw); padding:clamp(2rem,6vw,4.5rem) clamp(1rem,4vw,2.4rem) 6rem; }
h1,h2,h3 { font-family:var(--display); color:var(--ink); }
h1 { font-size:clamp(2rem,4vw,3.1rem); font-weight:560; letter-spacing:-.035em; }
h2 { font-size:1.55rem; font-weight:560; }
h3 { font-size:1.2rem; }
a { color:var(--accent-2); }
.quiet,.item-meta,.status,.module-metadata,.design-context { color:var(--ink-soft); }
.primary,.send-btn { background:var(--accent); border-color:var(--accent); color:var(--paper); border-radius:4px; font-family:var(--mono); font-size:.7rem; letter-spacing:.07em; text-transform:uppercase; }
.primary:hover,.send-btn:hover { background:var(--accent-2); border-color:var(--accent-2); text-decoration:none; }
.secondary { color:var(--ink); background:var(--paper-2); border-color:var(--rule); border-radius:4px; font-family:var(--mono); font-size:.68rem; letter-spacing:.05em; text-transform:uppercase; }
.secondary:hover { color:var(--accent); border-color:var(--accent); background:var(--paper-3); text-decoration:none; }
.reader { max-width:42rem; }
.reader h1 { margin-bottom:.6rem; }
.reader h2 { margin-top:3rem; }
.lesson-section { padding-bottom:2rem; border-bottom:1px solid var(--rule); }
.lesson-review { margin:0 0 2rem; padding:0; border:0; }
.lesson-review h2 { margin-top:2rem; }
.lesson-review p { color:var(--ink-soft); }
.lesson-intro { font-family:var(--display); font-size:1.35rem; line-height:1.48; color:var(--ink); }
.markdown-body strong { color:var(--accent-2); }
.markdown-body mark {
  background:transparent;
  color:inherit;
  font-weight:650;
  text-decoration-line:underline;
  text-decoration-color:color-mix(in srgb,var(--gold) 72%,transparent);
  text-decoration-thickness:.14em;
  text-decoration-skip-ink:none;
  text-underline-offset:.16em;
}
.markdown-body pre,.markdown-body :not(pre)>code { background:var(--paper-2); border-color:var(--rule); }
.markdown-body blockquote { border-left-color:var(--accent); color:var(--ink-soft); }
.markdown-body th { background:var(--paper-2); }
.markdown-body table { overflow-x:auto; }
.markdown-body th,.markdown-body td { white-space:nowrap; }
.page-top { margin-bottom:2rem; }
.back { font-family:var(--mono); font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); }
.section-tools { gap:.45rem; margin-top:1.25rem; }
.section-tools .secondary { padding:.45rem .65rem; }
.section-tools .section-tool { display:inline-grid; place-items:center; padding:.45rem; line-height:0; }
.section-tools .visual-searches { margin-left:auto; }
.workspace { border-top-color:var(--rule); }
.workspace-list { border-top-color:var(--rule); }
.workspace-item,.item,.module-row,.proposal-lessons li { border-bottom-color:var(--rule); }
.item:hover { background:var(--paper-2); }
.modules-home { max-width:48rem; }
.home-actions { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:1.5rem 3rem; margin-bottom:3rem; }
.home-greeting h1 { margin:0; }
.home-actions .create-actions { grid-column:1 / -1; justify-content:center; gap:.8rem; margin:0; }
.home-actions .create-actions .primary,.home-actions .create-actions .secondary { display:inline-grid; place-items:center; min-width:11.5rem; min-height:3.8rem; padding:.9rem 1.75rem; font-size:.78rem; }
.activity { min-width:0; }
.day-strip { display:grid; grid-template-columns:repeat(7, .85rem); gap:.4rem; justify-content:end; margin-top:.75rem; }
.day { width:.85rem; height:.85rem; }
.home-section > summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:0 0 .7rem; border-bottom:1px solid var(--rule); cursor:pointer; list-style:none; }
.home-section > summary::-webkit-details-marker { display:none; }
.home-section > summary h2 { margin:0; }
.section-toggle { display:grid; place-items:center; width:1.45rem; height:1.45rem; border:1px solid var(--rule); border-radius:999px; color:var(--ink-soft); flex:0 0 auto; }
.section-toggle::before { content:'+'; font-family:var(--mono); font-size:.85rem; line-height:1; }
.home-section[open] .section-toggle::before { content:'−'; }
.home-section > summary:hover .section-toggle { color:var(--accent); border-color:var(--accent); background:var(--paper-2); }
.home-section > summary:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
.home-section .section-content { padding-top:1rem; }
.review-item { display:flex; align-items:center; gap:1rem; }
.review-item > a { min-width:0; flex:1; color:var(--ink); }
.review-item > a:hover { color:var(--accent); text-decoration:none; }
.review-item .secondary { flex:0 0 auto; }
.module-card-list { display:grid; gap:.7rem; }
.module-card { border:1px solid var(--rule); border-radius:6px; background:var(--paper-2); padding:0 1rem; }
.module-card summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 0; cursor:pointer; list-style:none; }
.module-card summary::-webkit-details-marker { display:none; }
.module-card summary strong { display:block; font-family:var(--display); font-size:1.15rem; font-weight:560; }
.module-card summary .quiet { font-family:var(--mono); font-size:.6rem; letter-spacing:.05em; text-transform:uppercase; white-space:nowrap; }
.module-card > p { margin:.1rem 0 1rem; color:var(--ink-soft); font-size:.92rem; }
.module-card-lessons { border-top:1px solid var(--rule); }
.module-card-lesson { display:flex; justify-content:space-between; gap:1rem; padding:.65rem 0; border-bottom:1px solid var(--rule); color:var(--ink); font-size:.92rem; }
.module-card-lesson:hover { color:var(--accent); text-decoration:none; }
.module-card-lesson > :last-child { color:var(--ink-faint); font-family:var(--mono); font-size:.6rem; letter-spacing:.04em; text-transform:uppercase; white-space:nowrap; }
.module-card-lesson.locked { color:var(--ink-faint); }
.module-card-actions,.module-actions { display:flex; gap:.6rem; flex-wrap:wrap; margin:1rem 0; }
.choice-card,.field select,.field input,.title-form input,.source-tools input[type="url"],textarea { background:var(--paper); border-color:var(--rule); color:var(--ink); border-radius:5px; }
.choice-card:has(input:checked) { border-color:var(--accent); box-shadow:inset 0 0 0 1px var(--accent); }
.notice { background:color-mix(in srgb,var(--accent) 7%,var(--paper)); border-left-color:var(--accent); }
.generation-progress { position:fixed; right:50%; bottom:max(1.5rem,env(safe-area-inset-bottom)); z-index:110; display:flex; align-items:center; gap:1rem; width:min(34rem,calc(100vw - 2rem)); padding:1rem 1.2rem; border:1px solid var(--accent); border-radius:8px; background:var(--ink); color:var(--paper); box-shadow:0 .9rem 2.6rem -.8rem rgb(36 29 20 / .62); font-family:var(--mono); font-size:.72rem; line-height:1.45; transform:translateX(50%); animation:generation-arrive .22s ease-out; }
.generation-progress::before { content:''; position:absolute; inset:-.35rem; z-index:-1; border:1px solid color-mix(in srgb,var(--accent) 68%,transparent); border-radius:11px; animation:generation-pulse 1.8s ease-out infinite; }
.generation-spinner { display:grid; place-items:center; width:2.35rem; height:2.35rem; flex:0 0 auto; border:3px solid color-mix(in srgb,var(--paper) 35%,transparent); border-top-color:var(--accent); border-radius:50%; animation:generation-spin .8s linear infinite; }
.generation-progress-copy { display:grid; min-width:0; gap:.12rem; }
.generation-progress-copy strong { color:var(--paper); font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; }
.generation-progress-copy > span { overflow:hidden; color:color-mix(in srgb,var(--paper) 76%,transparent); text-overflow:ellipsis; white-space:nowrap; }
.generation-progress-count { color:var(--accent) !important; font-size:.62rem; letter-spacing:.04em; text-transform:uppercase; }
@keyframes generation-arrive { from { opacity:0; transform:translate(50%,.75rem); } to { opacity:1; transform:translate(50%,0); } }
@keyframes generation-pulse { 0%,100% { opacity:.7; transform:scale(1); } 50% { opacity:0; transform:scale(1.035); } }
@media (prefers-reduced-motion:reduce) { .generation-progress,.generation-progress::before,.generation-spinner { animation:none; } }
.lesson-context-row { display:flex; align-items:center; justify-content:space-between; gap:.8rem; margin:.35rem 0 1.6rem; }
.lesson-title-actions { display:flex; align-items:center; gap:.35rem; flex:0 0 auto; }
.title-edit { border:0; background:transparent; color:var(--ink-faint); padding:.2rem .3rem; font-family:var(--mono); font-size:.58rem; letter-spacing:.05em; text-transform:uppercase; cursor:pointer; text-decoration:none; }
.title-edit:hover { color:var(--accent); }
.title-edit.danger-action:hover { color:var(--bad); }
.lesson-practice { margin:3.5rem 0 1.5rem; padding:clamp(1.4rem,4vw,2rem); border:1px solid var(--rule); border-radius:10px; background:linear-gradient(135deg,var(--paper-2),color-mix(in srgb,var(--paper-2) 74%,var(--mark))); box-shadow:var(--shadow); }
.lesson-completion-action { justify-content:center; margin:2.5rem 0 1rem; }
.completion-confirmation { flex:0 0 100%; max-width:34rem; margin:.2rem auto 0; padding:1rem 1.1rem; border:1px solid var(--rule); border-radius:6px; background:var(--paper-2); box-shadow:var(--shadow); }
.completion-confirmation p { max-width:none; margin:0; color:var(--ink-soft); font-size:.92rem; line-height:1.5; }
.completion-review-choice { display:flex; gap:.55rem; align-items:flex-start; margin-top:1rem; color:var(--ink); font-size:.92rem; font-weight:600; }
.completion-review-choice input { margin-top:.2rem; flex:0 0 auto; }
.completion-confirmation-actions { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1rem; }
.completion-confirmation-status { min-height:1.5em; margin-top:.8rem !important; }
.practice-heading { max-width:32rem; }
.practice-eyebrow,.practice-card-kicker { margin:0 0:.25rem; color:var(--accent); font-family:var(--mono); font-size:.6rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }
.lesson-practice h2 { margin:.05rem 0 .35rem; }
.lesson-practice .practice-heading > p:last-child { margin:0; color:var(--ink-soft); font-size:.96rem; line-height:1.5; }
.practice-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; margin-top:1.35rem; }
.practice-card { position:relative; display:flex; min-height:14rem; gap:.8rem; padding:1.1rem; border:1px solid var(--rule); border-radius:7px; background:var(--paper); color:var(--ink); box-shadow:0 1px 0 rgb(36 29 20 / .04); text-decoration:none; transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease; }
.practice-card:hover { border-color:var(--accent); box-shadow:0 .65rem 1.4rem -1rem rgb(36 29 20 / .62); color:var(--ink); text-decoration:none; transform:translateY(-2px); }
.practice-card:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.practice-card-pending { background:color-mix(in srgb,var(--paper) 65%,var(--paper-2)); }
.practice-card-challenge { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.practice-card-challenge:hover { border-color:var(--accent); color:var(--paper); }
.practice-card-icon { display:grid; flex:0 0 auto; place-items:center; width:2rem; height:2rem; border:1px solid var(--rule); border-radius:999px; color:var(--accent); font-family:var(--mono); font-size:.95rem; line-height:1; }
.practice-card-challenge .practice-card-icon { border-color:color-mix(in srgb,var(--paper) 34%,transparent); color:var(--mark); }
.practice-card-content { display:flex; flex:1; flex-direction:column; min-width:0; }
.practice-card-kicker { display:block; color:var(--ink-faint); }
.practice-card-challenge .practice-card-kicker { color:var(--mark); }
.practice-card-title { display:block; margin-bottom:.35rem; font-family:var(--display); font-size:1.35rem; font-weight:560; line-height:1.15; }
.practice-card-copy { display:block; color:var(--ink-soft); font-size:.88rem; line-height:1.45; }
.practice-card-challenge .practice-card-copy { color:color-mix(in srgb,var(--paper) 73%,transparent); }
.practice-card-arrow { align-self:flex-start; color:var(--accent); font-size:1.2rem; line-height:1; }
.practice-card-challenge .practice-card-arrow { color:var(--mark); }
.practice-card-status { margin:auto 0 0; padding-top:.8rem; color:var(--ink-faint); font-family:var(--mono); font-size:.58rem; letter-spacing:.04em; text-transform:uppercase; }
.practice-card-challenge .practice-card-status { color:color-mix(in srgb,var(--paper) 64%,transparent); }
.practice-card-result { display:grid; grid-template-columns:1fr auto; align-items:baseline; gap:.1rem .6rem; margin-top:auto; padding-top:.8rem; border-top:1px solid var(--rule); font-family:var(--mono); font-size:.58rem; letter-spacing:.04em; text-transform:uppercase; }
.practice-card-result > span:first-child { color:var(--ink-faint); }
.practice-card-result strong { color:var(--ink); font-size:.62rem; font-weight:600; }
.practice-card-result .practice-grade { grid-column:1 / -1; }
.practice-card-challenge .practice-card-result { border-color:color-mix(in srgb,var(--paper) 22%,transparent); }
.practice-card-challenge .practice-card-result > span:first-child { color:color-mix(in srgb,var(--paper) 58%,transparent); }
.practice-card-challenge .practice-card-result strong { color:var(--paper); }
.practice-grade { font-family:var(--mono); font-size:.6rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.practice-grade.needs-work { color:var(--bad); }.practice-grade.pass { color:var(--accent); }.practice-grade.strong { color:var(--good); }
.practice-card-challenge .practice-grade.pass { color:var(--mark); }.practice-card-challenge .practice-grade.strong { color:#a8d28e; }
.practice-retake { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1.1rem; padding-top:1.1rem; border-top:1px solid var(--rule); }
.practice-retake p { margin:0; color:var(--ink-soft); font-size:.88rem; line-height:1.4; }
.practice-retake .secondary { flex:0 0 auto; }
.practice-history { margin-top:1rem; color:var(--ink-soft); font-size:.82rem; }
.practice-history summary { cursor:pointer; font-family:var(--mono); font-size:.6rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.practice-history ul { display:grid; gap:.35rem; margin:.65rem 0 0; padding:0; list-style:none; }
.practice-history li { display:flex; justify-content:space-between; gap:1rem; padding-top:.35rem; border-top:1px solid color-mix(in srgb,var(--rule) 72%,transparent); }
@media(max-width:560px) { .practice-retake { align-items:flex-start; flex-direction:column; }.practice-history li { align-items:flex-start; flex-direction:column; gap:.05rem; } }
@media(max-width:560px) { .practice-actions { grid-template-columns:1fr; }.practice-card { min-height:0; }.practice-card-result,.practice-card-status { margin-top:1.1rem; } }
@media(max-width:560px) { .completion-confirmation-actions > button { width:100%; } }
@media(max-width:720px) { .home-actions { grid-template-columns:1fr; gap:1.75rem; margin-bottom:2.5rem; }.activity { text-align:left; }.day-strip { justify-content:start; }.home-actions .create-actions { grid-column:auto; justify-content:stretch; }.home-actions .create-actions .primary,.home-actions .create-actions .secondary { width:100%; } }
.worksheet-view { padding-top:1.5rem; }
.worksheet-tabs { display:flex; gap:.35rem; margin:1.75rem 0 1.25rem; border-bottom:1px solid var(--rule); }
.worksheet-tab { margin-bottom:-1px; padding:.6rem .9rem; border:1px solid transparent; border-bottom:0; background:transparent; color:var(--ink-faint); font-family:var(--mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; }
.worksheet-tab:hover,.worksheet-tab.active { border-color:var(--rule); background:var(--paper-2); color:var(--ink); }
.worksheet-pane { min-height:18rem; }
.practice-form { display:grid; gap:1.25rem; }
.practice-question { margin:0; padding:1rem; border:1px solid var(--rule); border-radius:6px; }
.practice-question.correct { border-color:var(--good); }
.practice-question.incorrect { border-color:var(--bad); }
.practice-question legend { padding:0 .25rem; font-weight:600; }
.practice-option { display:block; margin:.65rem 0 0; cursor:pointer; }
.practice-option input { margin-right:.55rem; }
.practice-explanation { margin:.9rem 0 0; color:var(--ink-soft); }
.practice-result { margin:1.3rem 0; padding:1rem 1.1rem; border:1px solid var(--rule); border-left:4px solid var(--accent); background:var(--paper-2); }
.practice-result h2 { margin:.1rem 0; }
.practice-result.needs-work { border-left-color:var(--bad); }
.practice-result.pass { border-left-color:var(--accent); }
.practice-result.strong { border-left-color:var(--good); }
.practice-grade { font-family:var(--mono); font-size:.65rem; letter-spacing:.06em; text-transform:uppercase; }
.practice-grade.needs-work { color:var(--bad); }.practice-grade.pass { color:var(--accent); }.practice-grade.strong { color:var(--good); }
.challenge-thread { display:grid; gap:.8rem; margin:1.5rem 0; }
.challenge-message { padding:1rem; border:1px solid var(--rule); border-radius:6px; background:var(--paper-2); }
.challenge-message.you { background:var(--paper); }
.challenge-message > :last-child { margin-bottom:0; }
.planning-context-view { max-width:36rem; }
.planning-context-view h1 { margin-bottom:1.5rem; }
.planning-transcript { display:grid; gap:.8rem; font-size:.92rem; line-height:1.55; }
.planning-transcript-message { padding:.7rem .85rem; border:1px solid var(--rule); border-radius:5px; background:var(--paper-2); }
.planning-transcript-message.user { background:var(--paper); }
.planning-transcript-who { margin-bottom:.25rem; color:var(--ink-faint); font-family:var(--mono); font-size:.58rem; letter-spacing:.1em; text-transform:uppercase; }

/* A compact floating discussion leaves room to read and scroll the unchanged lesson behind it. */
.chat-panel { position:fixed; right:clamp(1rem,2vw,1.5rem); bottom:clamp(1rem,2vw,1.5rem); z-index:200; display:flex; flex-direction:column; width:min(28rem,calc(100vw - 2rem)); height:min(34rem,68dvh); background:var(--paper-2); border:1px solid var(--rule); border-radius:12px; box-shadow:0 24px 60px -32px rgb(36 29 20 / .65); transform:translateX(110%); transition:transform .28s cubic-bezier(.4,.1,.2,1); }
.chat-panel.open { transform:translateX(0); }
.chat-panel.wide { top:50%; right:auto; bottom:auto; left:50%; width:min(44rem,92vw); height:min(82dvh,46rem); border:1px solid var(--rule); border-radius:12px; box-shadow:0 50px 100px -35px rgb(36 29 20 / .65); transform:translate(-50%,-48%) scale(.97); }
.chat-panel.wide.open { transform:translate(-50%,-50%) scale(1); }
.chat-panel-head { display:flex; align-items:flex-start; justify-content:space-between; padding:1.2rem 1.2rem .8rem; border-bottom:1px solid var(--rule); }
.chat-panel-actions { display:flex; gap:.2rem; }
.panel-icon-button { width:2rem; height:2rem; border:1px solid var(--rule); border-radius:999px; background:transparent; color:var(--ink-soft); font-family:var(--mono); cursor:pointer; }
.panel-icon-button:hover { color:var(--accent); border-color:var(--accent); background:var(--paper-3); }
.chat-kicker { color:var(--accent); font-family:var(--mono); font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; }
.chat-title { margin-top:.15rem; font-family:var(--display); font-size:1.25rem; font-weight:560; line-height:1.15; }
.chat-thread { flex:1; overflow-y:auto; padding:1.1rem 1.2rem; display:flex; flex-direction:column; gap:.9rem; }
.chat-thread .empty { color:var(--ink-faint); font-style:italic; }
.chat-message .who { margin-bottom:.2rem; color:var(--ink-faint); font-family:var(--mono); font-size:.58rem; letter-spacing:.14em; text-transform:uppercase; }
.chat-message.you { text-align:right; }
.chat-message.you .who { color:var(--accent); }
.chat-message .body { display:inline-block; max-width:92%; padding:.6rem .8rem; border:1px solid var(--rule); border-radius:7px; background:var(--paper); font-size:.98rem; line-height:1.5; text-align:left; white-space:pre-wrap; }
.chat-message .chat-body { white-space:normal; }
.chat-message.you .body { border-color:var(--ink); background:var(--ink); color:var(--paper); }
.chat-message .challenge-body { display:block; max-width:none; white-space:normal; }
.chat-message.you .markdown-body strong { color:inherit; }
.chat-composer { display:flex; align-items:flex-end; gap:.5rem; padding:.9rem 1.2rem 1.2rem; border-top:1px solid var(--rule); }
.chat-composer textarea { flex:1; min-height:0; resize:none; padding:.55rem .7rem; font-family:var(--serif); font-size:.98rem; line-height:1.45; background:var(--paper); border-color:var(--rule); }
.chat-composer textarea:focus { outline:none; border-color:var(--accent); }
.scrim { position:fixed; inset:0; z-index:150; background:rgb(36 29 20 / .4); opacity:0; pointer-events:none; transition:opacity .3s; }
.scrim.show { opacity:1; pointer-events:auto; }
.chat-chip-row { display:flex; flex-wrap:wrap; gap:.5rem; margin:.75rem 0 0; }
.chat-chip { display:inline-flex; align-items:center; gap:.45rem; min-height:2.15rem; padding:.35rem .8rem .35rem .45rem; border:1px solid var(--visual-line); border-radius:999px; background:var(--visual-bg); color:var(--visual-ink); font-family:var(--serif); font-size:.88rem; font-weight:650; box-shadow:0 1px 2px rgb(0 0 0 / .12); cursor:pointer; transition:transform .15s ease,box-shadow .15s ease; }
.chat-chip-item { display:inline-flex; align-items:stretch; }
.chat-chip:hover { border-color:var(--visual-ink); box-shadow:0 4px 10px rgb(0 0 0 / .16); color:var(--visual-ink); transform:translateY(-1px); }
.chat-chip:focus-visible { outline:3px solid var(--accent); outline-offset:2px; }
.chat-chip-icon { display:grid; place-items:center; width:1.2rem; height:1.2rem; border:1px solid var(--visual-line); border-radius:50%; background:var(--paper); font-size:.72rem; line-height:1; }
.chat-chip-count { padding:0 .32rem; border:1px solid var(--visual-line); border-radius:999px; color:var(--visual-ink); font-family:var(--mono); font-size:.58rem; }
.chat-chip-rename,.chat-chip-delete { width:1.8rem; margin-left:.25rem; border:1px solid var(--rule); border-radius:999px; background:var(--paper-2); color:var(--ink-faint); cursor:pointer; font-family:var(--mono); font-size:.85rem; line-height:1; }
.chat-chip-rename:hover { color:var(--accent); border-color:var(--accent); background:var(--paper-3); }
.chat-chip-delete:hover { color:var(--bad); border-color:var(--bad); }
.chat-title-form { display:flex; align-items:center; gap:.35rem; min-width:min(100%,22rem); }
.chat-title-form input { min-width:0; flex:1; padding:.35rem .55rem; border:1px solid var(--visual-line); border-radius:999px; background:var(--paper); color:var(--ink); font-family:var(--serif); font-size:.88rem; }
.chat-title-form .secondary { padding:.38rem .55rem; font-size:.58rem; }
@media (max-width:720px) { body { font-size:18px; } .chat-panel { right:0; bottom:0; width:100%; height:min(62dvh,38rem); border:1px solid var(--rule); border-bottom:0; border-radius:12px 12px 0 0; transform:translateY(105%); } .chat-panel.open { transform:translateY(0); } .chat-panel.wide { top:50%; bottom:auto; height:min(82dvh,46rem); border:1px solid var(--rule); border-radius:12px; transform:translate(-50%,-48%) scale(.97); } .chat-panel.wide.open { transform:translate(-50%,-50%) scale(1); } }

/* Learner-added lesson images stay visible in the reader and can be examined in place. */
.section-image-input { display:flex; align-items:center; gap:.65rem; flex-wrap:wrap; }
.section-image-input input[type="file"] { max-width:100%; }
.section-image-upload-status { min-height:1.55em; margin:.45rem 0; }
.lesson-image-form-target:empty { display:none; }
.lesson-image-form-target { margin:0 0 1.5rem; }
.lesson-image-area { margin:1.25rem 0 2.25rem; padding:1rem 0 1.25rem; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.lesson-image-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.lesson-image-head h2 { margin:0; font-size:1.12rem; }
.lesson-image-head .secondary { padding:.4rem .6rem; font-size:.62rem; }
.lesson-images { margin-bottom:0; }
.section-images { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr)); gap:1rem; margin:1.15rem 0; }
.section-image { margin:0; }
.section-image-button { display:block; width:100%; padding:0; overflow:hidden; border:1px solid var(--rule); border-radius:7px; background:var(--paper-2); box-shadow:var(--shadow); }
.section-image-button:hover { border-color:var(--accent); }
.section-image-button:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.section-image-button img { display:block; width:100%; height:clamp(12rem,45vw,25rem); object-fit:contain; }
.section-image figcaption { margin-top:.35rem; color:var(--ink-soft); font-size:.86rem; line-height:1.35; }
.image-viewer { width:min(72rem,94vw); max-width:none; max-height:90dvh; padding:0; overflow:hidden; border:1px solid var(--rule); border-radius:12px; background:var(--paper-2); color:var(--ink); box-shadow:0 28px 75px rgb(0 0 0 / .4); }
.image-viewer::backdrop { background:rgb(20 15 10 / .7); backdrop-filter:blur(3px); }
.image-viewer-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1rem 1.15rem .75rem; border-bottom:1px solid var(--rule); }
.image-viewer-kicker { margin:0; color:var(--accent); font-family:var(--mono); font-size:.6rem; letter-spacing:.13em; text-transform:uppercase; }
.image-viewer-head h2 { margin:.1rem 0 0; font-size:1.25rem; line-height:1.25; }
.image-viewer-actions { display:flex; align-items:center; gap:.35rem; flex-wrap:wrap; justify-content:flex-end; }
.image-viewer-actions .secondary { padding:.3rem .55rem; font-size:.6rem; }
.image-viewer-actions .panel-icon-button { width:1.85rem; height:1.85rem; }
.image-viewer-stage { display:grid; place-items:start center; max-height:min(68dvh,48rem); min-height:14rem; overflow:auto; padding:1rem; background:var(--paper); }
.image-viewer-stage img { display:block; max-width:none; height:auto; box-shadow:0 1px 4px rgb(0 0 0 / .2); }
.image-viewer-zoom { margin:.45rem 1.15rem .75rem; color:var(--ink-soft); font-family:var(--mono); font-size:.62rem; text-align:right; }
@media (max-width:720px) { .lesson-image-head { align-items:flex-start; } .section-images { grid-template-columns:1fr; } .section-image-button img { max-height:20rem; } .image-viewer { width:calc(100vw - 1rem); } .image-viewer-head { padding:.8rem; } .image-viewer-stage { max-height:65dvh; padding:.5rem; } .image-viewer-zoom { margin:.35rem .8rem .6rem; } }

.policy-acceptance { max-width:650px; }
.policy-links { margin:24px 0; }
.policy-check { display:flex; gap:10px; align-items:flex-start; margin:18px 0; }
.policy-check input { margin-top:8px; flex:0 0 auto; }
.policy-acceptance > form:last-child { margin-top:36px; }

.account-save-status { min-height:1.55em; margin:10px 0 0; }

.planner-message .markdown-body > :first-child,.proposal-recommendation .markdown-body > :first-child,.proposal-purpose .markdown-body > :first-child,.proposal-lesson-purpose .markdown-body > :first-child { margin-top:0; }
.planner-message .markdown-body > :last-child,.proposal-recommendation .markdown-body > :last-child,.proposal-purpose .markdown-body > :last-child,.proposal-lesson-purpose .markdown-body > :last-child { margin-bottom:0; }

/* Daily takeaway review: plain, readable, and quiet enough to listen to. */
.review-introduction { margin:1.2rem 0 2rem; }
.review-introduction ul { padding-left:1.2rem; }
.review-lesson { margin-top:2.4rem; }
.review-lesson h2 { margin:0 0 .3rem; }
.review-lesson .markdown-body li { margin:.4rem 0; }
.review-lesson-link { margin-top:.6rem; font-size:.9rem; }
.review-complete { margin-top:3rem; }
.review-regenerate { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem 1rem; margin:0 0 1.5rem; }
.review-regenerate .quiet { margin:0; }
.review-status { min-height:1.55em; margin:12px 0 0; }
.review-page .review-lesson > p { margin-left:0; }
.review-preparing { margin-top:1.5rem; }
.review-sources { margin-top:2.5rem; border-top:1px solid var(--line); padding-top:1rem; }
.review-sources summary { cursor:pointer; color:var(--ink-soft); }
.review-sources .review-lesson { margin-top:1.6rem; }
.review-audio { margin:1rem 0 1.75rem; }
.review-audio-player { padding:1rem; border:1px solid var(--rule); border-radius:8px; background:var(--paper-2); }
.review-audio-player audio { display:none; }
.review-audio-controls { display:flex; align-items:center; gap:.9rem; }
.review-audio-play { display:inline-flex; align-items:center; justify-content:center; gap:.45rem; min-width:5.5rem; min-height:3.25rem; padding:.75rem 1rem; border:1px solid var(--accent); border-radius:999px; background:var(--accent); color:var(--paper); font-family:var(--mono); font-size:.72rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; }
.review-audio-play:hover { background:var(--accent-2); border-color:var(--accent-2); }
.review-audio-play:focus-visible,.review-audio-timeline input:focus-visible,.review-audio-speed select:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.review-audio-timeline { flex:1; min-width:6rem; }
.review-audio-timeline input { display:block; width:100%; accent-color:var(--accent); cursor:pointer; }
.review-audio-time { display:flex; justify-content:space-between; margin-top:.15rem; color:var(--ink-soft); font-family:var(--mono); font-size:.6rem; }
.review-audio-speed { display:flex; flex:0 0 auto; flex-direction:column; gap:.15rem; color:var(--ink-soft); font-family:var(--mono); font-size:.58rem; letter-spacing:.05em; text-transform:uppercase; }
.review-audio-speed select { min-height:2.15rem; padding:.2rem .35rem; border:1px solid var(--rule); border-radius:4px; background:var(--paper); color:var(--ink); font:inherit; }
.review-audio-status { margin:0 0 .5rem; }
.review-playlist-footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.6rem 1rem; margin-top:.6rem; }
.review-playlist-footer .quiet { margin:0; }
.review-playlist-footer .secondary { flex:0 0 auto; padding:.45rem .7rem; }
.review-stack { display:grid; gap:.75rem; margin-top:2rem; }
.review-card { overflow:hidden; border:1px solid var(--rule); border-radius:.65rem; background:var(--paper-2); box-shadow:var(--shadow); }
.review-card.expanded { background:var(--paper); }
.review-card-toggle { display:flex; align-items:center; justify-content:space-between; width:100%; gap:1.25rem; padding:1.3rem 1.45rem; border:0; background:transparent; color:var(--ink); text-align:left; }
.review-card-toggle:hover { background:color-mix(in srgb,var(--paper-3) 56%,transparent); }
.review-card-toggle:focus-visible { outline:3px solid var(--accent); outline-offset:-3px; }
.review-card-heading { display:grid; gap:.25rem; min-width:0; }
.review-card-date { font-family:var(--display); font-size:1.45rem; font-weight:600; line-height:1.15; }
.review-card-meta { color:var(--ink-soft); font-family:var(--mono); font-size:.67rem; line-height:1.5; }
.review-card-indicator { display:grid; flex:0 0 auto; place-items:center; width:1.75rem; height:1.75rem; border:1px solid var(--rule); border-radius:999px; color:var(--accent); font-family:var(--mono); font-size:1.2rem; line-height:1; }
.review-card-content { padding:0 1.45rem 2rem; }
.review-card-content > :first-child { margin-top:.3rem; }
.review-card-content .review-audio { margin-top:.7rem; }
.review-card-content .review-sources { margin-top:2.5rem; }
.review-card-content .review-complete { margin-top:2.5rem; }
.review-card-loading { color:var(--ink-soft); }
@media (max-width:560px) { .review-card-toggle { padding:1.05rem; } .review-card-content { padding:0 1.05rem 1.5rem; } .review-card-date { font-size:1.3rem; } }
@media (max-width:560px) { .review-audio-controls { align-items:stretch; flex-wrap:wrap; } .review-audio-play { min-width:6.2rem; } .review-audio-timeline { flex-basis:100%; order:3; } .review-audio-speed { flex:1; } .review-audio-speed select { width:100%; } }
.topbar { flex-wrap:wrap; }
.connection-banner { flex:1 0 100%; order:10; margin:0; padding:.6rem .9rem; border:1px solid var(--accent); border-radius:6px; background:color-mix(in srgb,var(--accent) 12%,var(--paper)); color:var(--ink); font-size:.9rem; line-height:1.4; }
.connection-banner[data-state="restored"] { border-color:var(--rule); background:var(--paper); }
.connection-banner a { color:inherit; font-weight:600; text-decoration:underline; }
.update-banner { flex:1 0 100%; order:11; margin:0; padding:.6rem .9rem; border:1px solid var(--rule); border-radius:6px; background:var(--paper); color:var(--ink); font-size:.9rem; line-height:1.4; }
.update-banner button { font:inherit; font-weight:600; color:inherit; background:none; border:0; padding:0; text-decoration:underline; cursor:pointer; }
.draft-restored { margin:.3rem 0 0; font-size:.85rem; }
