/* Shared identity, with paper surfaces for writing and oxblood after dark. */
:root {
  --bg:#F3EEE3; --surface:#EAE2D3; --surface-2:#E0D5C2;
  --ink:#382129; --ink-2:#49363C; --muted:#6C5960; --faint:#725E62;
  --accent:#71773E; --accent-deep:#535B29; --accent-soft:#E3E5CE;
  --field:#382129; --field-deep:#1B0C0E; --field-ink:#F3EEE3;
  --border:#CEC2AD; --line:#DED4C2;
  --serif:'Newsreader',Georgia,serif; --sans:'DM Sans',system-ui,sans-serif;
  --mono:'DM Sans',system-ui,sans-serif;
  --r-card:8px; --r-md:6px; --r-sm:4px;
}
:root[data-theme='dark'] {
  --bg:#1B0C0E; --surface:#2E181D; --surface-2:#3B2228;
  --ink:#F3EEE3; --ink-2:#E0D4CC; --muted:#C4B5AD; --faint:#B4A19B;
  --accent:#CFC18F; --accent-deep:#E0D4A5; --accent-soft:#3A3425;
  --field:#382129; --field-deep:#1B0C0E; --field-ink:#F3EEE3;
  --border:#594047; --line:#40272D;
}
.brand { font-weight:400; letter-spacing:-.055em; text-transform:lowercase; gap:9px; }
.brand-mark { width:34px; height:34px; color:var(--accent); }
:root button.primary, :root .hero button.primary, :root .review-banner button.primary { background:#E6B451; border-color:#E6B451; color:#27150E; border-radius:4px; }
:root button.primary:hover, :root .hero button.primary:hover, :root .review-banner button.primary:hover { background:#F1C66D; border-color:#F1C66D; color:#27150E; }
:root button.primary:disabled { background:var(--surface-2); border-color:var(--border); color:var(--faint); }
.secondary { background:transparent; }
.stat-num { font-family:var(--serif); font-weight:400; font-variant-numeric:lining-nums; }
.goal-text,.gs-text { font-size:22px; font-weight:400; line-height:1.25; }
.signal-card { background:transparent; border-radius:0; }
.goal-cat { background:transparent; border-radius:0; }
.mood-row { align-items:center; gap:18px; }
.mood-emoji { font:400 55px/1 var(--serif); letter-spacing:-.04em; color:var(--ink); min-width:100px; width:auto; height:auto; background:none; border:0; border-radius:0; }
.mood-emoji small,.score-reading small { font:400 15px var(--sans); letter-spacing:0; color:var(--muted); }
.mood-scale { gap:5px; min-width:220px; }
.mood-dot { position:relative; border:0; background:transparent; border-radius:0; min-height:44px; padding:6px 0 14px; font:12px var(--sans); color:var(--muted); }
.mood-dot::after { content:''; position:absolute; bottom:4px; left:0; right:0; height:4px; background:var(--border); }
.mood-dot.filled::after { background:var(--accent); }
.mood-dot.active { background:transparent; color:var(--ink); box-shadow:none; transform:none; font-weight:700; }
.mood-dot.active::after { height:6px; }
:root[data-theme='dark'] .mood-dot.active { color:var(--ink); }
.login-brand { text-transform:lowercase; font-weight:400; letter-spacing:-.055em; }
.login-brand svg { width:34px; height:34px; }
.goal-completion { width:150px; flex-shrink:0; }
.goal-completion > span { display:block; font:400 46px/1 var(--serif); color:var(--accent); margin-bottom:16px; }
.goal-completion small { font:14px var(--sans); margin-left:3px; }
.completion-track { height:1px; background:var(--border); }
.completion-track i { display:block; position:relative; height:1px; background:var(--accent); }
.completion-track i::after { content:''; position:absolute; right:-3px; top:-2.5px; width:6px; height:6px; border-radius:50%; background:var(--accent); }
.thread-frequency { display:flex; flex-wrap:wrap; gap:9px; padding:4px 0 24px; margin-bottom:22px; border-bottom:1px solid var(--border); }
.thread-frequency i { width:6px; height:6px; border-radius:50%; background:var(--border); }
.thread-frequency i.filled { background:var(--accent); }
.mood-dot:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.mood-label { flex-basis:100%; text-align:left; margin-top:0; }
.score-reading { display:flex; gap:28px; align-items:center; border-bottom:1px solid var(--border); padding:4px 0 25px; margin-bottom:28px; }
.score-reading-number { font:400 58px/1 var(--serif); white-space:nowrap; letter-spacing:-.04em; }
.score-reading-ticks { display:flex; flex:1; gap:5px; max-width:340px; }
.score-reading-ticks i { height:5px; flex:1; background:var(--border); }
.score-reading-ticks i.filled { background:var(--accent); }
.entry-mood { font-family:var(--serif); font-size:21px; background:transparent; border:0; color:var(--accent); }
.book-mood { font-family:var(--serif); font-size:18px; color:var(--accent); }
@media(max-width:600px) {
  .brand-mark { width:28px; height:28px; }
  .mood-scale { flex-basis:100%; }
  .mood-emoji { font-size:50px; }
  .goal-text,.gs-text { font-size:21px; }
}
