/* base/core.css — reset, body ground and script-aware typography for the app-family pages (trainer, planner, guide, admin). The landing page deliberately does NOT load this (it never loaded style.css).
   Split from the pre-#149 monolith — rule ORDER preserved; see docs/architecture.md
   ("CSS layers") for the load-order contract each page's <head> follows. */
*,*::before,*::after{box-sizing:border-box}
/* Tokens live in tokens.css (decision 0008) — every page loads it first.
   Nothing below defines a palette; a hardcoded color here is a bug. */
html,body{margin:0;height:100%}
body{
  background:var(--bg); color:var(--ink); display:flex; flex-direction:column;
  /* --font-body is set on <html> by I18N from the locale's own stack, so a
     Devanagari reader gets a Devanagari face rather than whatever the Latin
     stack happens to fall back to. The literal is the fallback, not the rule. */
  font:15px/1.55 var(--font-body,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif);
}

/* Script-aware typography. I18N sets these on <html> from the active locale;
   Devanagari needs more leading than Latin. */
body{line-height:var(--lh-body,1.55)}
:root[lang="hi"] .lede,:root[lang="hi"] p,:root[lang="hi"] .l,:root[lang="hi"] .sc2-v{
  line-height:var(--lh-body,1.85);
}

/* ---- Hindi-only content surfaces --------------------------------------
   These have no English counterpart by design. The contrast panel answers a
   question only a Hindi speaker has, so showing it to everyone would be noise;
   it appears exactly where authored content supplies a `contrast`.

   Devanagari sits taller than Latin — matras hang above the shirorekha and
   below the baseline — so these blocks buy line-height rather than font-size,
   which keeps them from shouting over the Japanese they annotate. */
.dev{
  font:500 20px/1.7 var(--font-body,inherit);
  color:var(--accent2);letter-spacing:.02em;margin-top:2px;
}
.hi-cue{
  font-size:13px;line-height:1.75;color:var(--dim);
  margin-top:8px;max-width:60ch;
}
.hi-cue.block{
  background:var(--panel2);border-radius:8px;padding:9px 12px;
  margin-top:10px;color:var(--ink);
}
.hi-cue b{color:var(--ink);font-weight:620}

.contrast{
  margin:12px 0;padding:11px 14px;
  border-left:3px solid var(--accent);border-radius:0 8px 8px 0;
  background:color-mix(in srgb,var(--accent) 7%,transparent);
}
.contrast-h{
  font-size:11px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;
  color:var(--accent);margin-bottom:5px;
}
.contrast-b{font-size:13.5px;line-height:1.8;color:var(--ink)}
.contrast-b b{font-weight:650}

/* Visible to a reviewer scanning for unchecked text, ignorable to a learner. */
.draft{
  display:inline-block;margin-left:7px;padding:1px 6px;border-radius:4px;
  background:var(--panel2);border:1px solid var(--line);
  font-size:10.5px;font-weight:600;line-height:1.5;color:var(--dim);
  vertical-align:middle;letter-spacing:.02em;white-space:nowrap;
}

