/* Chess Journal: an optional paper/ink treatment over the shared app layout.
   All board geometry, board colours, move notation and view state stay owned by
   their existing components. The saved choice is applied before first paint. */
@font-face{font-family:'Kalam';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/kalam-latin.woff2') format('woff2')}
html[data-interface="classic"][data-app-design="journal"] {
  --bg:#ddd9cf;--panel:#f6f1e5;--panel2:#e9e7dc;
  --text:#343c3e;--muted:#5b655d;--line:#c4c7b8;
  --accent:#374d49;--accent-deep:#293d39;--accent-soft:#e0e5da;--accent-text:#374d49;
  --surface-inset:#eae6d9;--surface-hover:#e5e8dc;
  --control-bg:#ece9dc;--control-hover:#e0e5d7;--control-border:#a4afa1;
  --control-disabled:#e2e2d7;--on-accent:#fffdf4;
  --green:#3e6344;--orange:#80521e;--red:#98483f;
  --warning-surface:#eee5d2;--error-surface:#efe0d7;
  --journal-grid:linear-gradient(#6f715e0f 1px,transparent 1px),linear-gradient(90deg,#6f715e0f 1px,transparent 1px);
  --journal-hand:'Kalam',cursive;
}
/* Paper is quiet and continuous; controls and dense tables have opaque surfaces. */
html[data-interface="classic"][data-app-design="journal"] body .app,
html[data-interface="classic"][data-app-design="journal"] :is(.landing,.boot-splash) {
  background-color:var(--panel);background-image:var(--journal-grid);background-size:25px 25px;
}
html[data-interface="classic"][data-app-design="journal"] body:not(.landing-active) .nav,
html[data-interface="classic"][data-app-design="journal"] body:not(.landing-active) .app > header { background:var(--bg);border-color:var(--line); }
html[data-interface="classic"][data-app-design="journal"] body:not(.landing-active) .nav nav button { color:var(--muted); }
html[data-interface="classic"][data-app-design="journal"] body:not(.landing-active) .nav nav button:before,
html[data-interface="classic"][data-app-design="journal"] body .brand-lettering em { color:var(--accent); }
html[data-interface="classic"][data-app-design="journal"] body:not(.landing-active) .nav nav button.active[data-view] { color:var(--accent);background:var(--accent-soft);box-shadow:inset 3px 0 var(--accent); }
html[data-interface="classic"][data-app-design="journal"] body :is(.appearance-dialog,.rep-add-dialog,.modal-content,.rep-import-card) {
  background-color:var(--panel);background-image:var(--journal-grid);background-size:25px 25px;border-color:var(--line);box-shadow:0 16px 48px #374d4929;
}
html[data-interface="classic"][data-app-design="journal"] body :is(.appearance-dialog,.promotion-dialog)::backdrop { background:#293d3977; }
html[data-interface="classic"][data-app-design="journal"] body .rep-import-modal { background:#293d3977; }
html[data-interface="classic"][data-app-design="journal"] body .rep-dashboard-card:hover:not(:disabled) { background:var(--surface-hover); }
/* Headings and short editorial prompts take Kalam. Reading text remains DM Sans. */
html[data-interface="classic"][data-app-design="journal"] body :is(h1,h2,h3),
html[data-interface="classic"][data-app-design="journal"] body :is(.daily-training-head b,.classic-welcome-art strong,.classic-move-brief h2,.rep-card-copy > b,.rep-import-head b,.blunder-choice-head,.learning-overview-head b,.practice-main-prompt b,.discovery-choice-card h2,.repertoire-home-head b,.blunder-choice-box .choice-head b,.discovery-hero > div > b,.learning-head > b,.flow-head h2) {
  font-family:var(--journal-hand);font-weight:400;font-synthesis:none;letter-spacing:-.015em;line-height:1.35;color:var(--accent);
}
html[data-interface="classic"][data-app-design="journal"] .landing h1 { font-size:clamp(34px,4vw,49px);max-width:700px;line-height:1.28; }
html[data-interface="classic"][data-app-design="journal"] body.games-active .daily-training-head b { font-size:clamp(28px,3vw,36px); }
html[data-interface="classic"][data-app-design="journal"] body :is(.daily-mission-copy > span,.classic-training-action > div > b,.discovery-choice-head b,.discovery-path-head b) { font-family:var(--journal-hand);font-weight:400;font-size:24px;line-height:1.4;color:var(--accent); }
html[data-interface="classic"][data-app-design="journal"] body .classic-welcome-copy { font:400 22px/1.5 var(--journal-hand);color:var(--accent); }
html[data-interface="classic"][data-app-design="journal"] body .navnote { font:400 19px/1.55 var(--journal-hand);color:var(--muted); }
html[data-interface="classic"][data-app-design="journal"] body :is(h1,h2,h3) { font-family:var(--journal-hand)!important;font-weight:400!important; }
/* Ratings and engine values must never inherit handwritten display numerals. */
html[data-interface="classic"][data-app-design="journal"] body :is(.daily-mission-copy b,.trend-head strong,.overview-stats b,.classic-progress-snapshot b,.repertoire-summary-strip b,.discovery-stat-strip b,.trainer-stats b,.summary-grid b,.score b,.big,#evalNumber,.candidate-moves button[data-uci] b,.trainer-line-move,.move-row,.move) {
  font-family:'DM Sans',system-ui,sans-serif;font-variant-numeric:tabular-nums;
}
/* An understated notebook edge, without adding wrappers or shrinking boards. */
html[data-interface="classic"][data-app-design="journal"] body.games-active :is(.daily-training-card,.player-overview),
html[data-interface="classic"][data-app-design="journal"] body :is(.repertoire-home-card,.discovery-home-head,.learning-overview) { border-color:var(--line); }
html[data-interface="classic"][data-app-design="journal"] body.games-active :is(.classic-training-action,.daily-mission) { background:var(--panel);border-color:var(--line); }
html[data-interface="classic"][data-app-design="journal"] body.games-active .classic-training-action { box-shadow:3px 3px 0 #d8dbcdb3; }
html[data-interface="classic"][data-app-design="journal"] body .rep-dashboard-card.white { border-top-color:#8b917a; }
html[data-interface="classic"][data-app-design="journal"] body .rep-card-badge,
html[data-interface="classic"][data-app-design="journal"] body .appearance-option { border-color:var(--control-border); }
html[data-interface="classic"][data-app-design="journal"] body :is(button,a,input,textarea,select,summary):focus-visible { outline-color:#54766b; }
html[data-interface="classic"][data-app-design="journal"] body.games-active .rating-spark :is(polyline,.spark-goal-line) { stroke:var(--accent); }
html[data-interface="classic"][data-app-design="journal"] body.games-active .rating-spark .spark-area,
html[data-interface="classic"][data-app-design="journal"] body.analysis-active .eval-svg .curve-fill { fill:#374d4915!important; }
html[data-interface="classic"][data-app-design="journal"] body.analysis-active .eval-current::before { background:#374d4912; }
html[data-interface="classic"][data-app-design="journal"] body.analysis-active .eval-playhead { box-shadow:0 0 0 2px #374d4925; }
@media(max-width:700px){
  html[data-interface="classic"][data-app-design="journal"] .landing h1 { font-size:34px; }
  html[data-interface="classic"][data-app-design="journal"] body :is(.daily-mission-copy > span,.classic-training-action > div > b) { font-size:22px; }
}

/* Keep queued-position previews inside their cards on narrow notebook pages. */
html[data-interface="classic"][data-app-design="journal"] body .mistake-insights { grid-template-columns:minmax(0,1fr); }
html[data-interface="classic"][data-app-design="journal"] body .mistake-preview { min-width:0; }
html[data-interface="classic"][data-app-design="journal"] body .mistake-preview .mini-board { width:100%;height:auto;aspect-ratio:1;border-radius:3px; }
html[data-interface="classic"][data-app-design="journal"] body .mistake-preview small em { color:var(--red); }
html[data-interface="classic"][data-app-design="journal"] body .mistake-preview-loss { background:var(--line); }
html[data-interface="classic"][data-app-design="journal"] body .mistake-preview-loss i { background:var(--red); }
@media(max-width:700px){
  html[data-interface="classic"][data-app-design="journal"] body .mistake-preview { width:calc(50% - 5px);max-width:180px; }
}
