/* Minimal styles for M2a; the full design system lands with page templates in M3. */
:root { --fg: #1a1a1a; --bg: #fff; --muted: #555; --warn-bg: #fff4d6; --warn-border: #b36b00;
        --stop-bg: #fde8e8; --stop-border: #b00020; --accent: #0b5cad; }
body { font: 17px/1.5 system-ui, -apple-system, "Segoe UI", sans-serif; color: var(--fg); background: var(--bg);
       margin: 0; }
main { max-width: 44rem; margin: 0 auto; padding: 1rem; }
.notice { background: #eef4fb; border-left: 4px solid var(--accent); padding: .5rem .75rem; margin: .5rem 0; }
.warning { background: var(--warn-bg); border: 2px solid var(--warn-border); padding: .75rem; margin: .75rem 0; }
.warning.severity-stop, .stop { background: var(--stop-bg); border: 2px solid var(--stop-border); padding: 1rem; }
.warning h3, .stop h2 { margin: 0 0 .25rem; font-size: 1.05rem; }
fieldset { border: 1px solid #ccc; padding: .75rem; }
label.choice { display: block; padding: .35rem 0; }
button { font: inherit; padding: .5rem 1rem; background: var(--accent); color: #fff; border: 0; border-radius: 4px; }
.causes li { margin-bottom: .5rem; }
.muted, .disclaimer { color: var(--muted); font-size: .9rem; }
.route { border: 2px solid var(--accent); padding: .75rem; margin: 1rem 0; }
.site-header, .site-footer { max-width: 44rem; margin: 0 auto; padding: .75rem 1rem; }
.site-footer { font-size: .85rem; color: var(--muted); border-top: 1px solid #ddd; }
.brand { font-weight: 700; text-decoration: none; color: var(--fg); display: inline-block; line-height: 0; }
.brand img { height: 40px; width: auto; }
.crumbs { font-size: .85rem; color: var(--muted); }
.summary { font-size: 1.1rem; }
.safety-box { background: var(--warn-bg); border: 2px solid var(--warn-border); padding: .75rem 1rem; margin: 1rem 0; }
.diagnostic-entry { border: 2px solid var(--accent); padding: .75rem 1rem; margin: 1rem 0; }
.compact { columns: 2; }
.sources { font-size: .9rem; }
/* Reserved ad slots (AC-M6): fixed height so a loaded ad never shifts content. */
/* Space is reserved (CLS) only where an ad unit renders; an unapproved slot is an empty, zero-height marker. */
.ad-slot { contain: layout; }
.ad-slot--live { min-height: 280px; margin: 1.5rem 0; background: #fafafa; }
.adsbygoogle { display: block; }
/* Hubs and home (navigation pages): readable guide lists with one fact-backed sentence per guide. */
.guides { padding-left: 1.1rem; }
.guides li { margin-bottom: .6rem; }
.guides a { font-weight: 600; }
.hub.two-col { columns: 2; column-gap: 2rem; padding-left: 1.1rem; }
.hub.two-col li { break-inside: avoid; margin-bottom: .35rem; }
.categories li { margin-bottom: .35rem; }
.lede { margin-top: -.5rem; }
h3 { font-size: 1.05rem; margin-bottom: .25rem; }
@media (max-width: 40rem) { .hub.two-col, .compact { columns: 1; } }
.toc { font-size: .95rem; border-left: 3px solid var(--accent); padding: .25rem 1rem; margin: 1rem 0; }
.toc-h { font-size: 1rem; margin: .25rem 0; }
.toc ol { margin: .25rem 0; padding-left: 1.25rem; }
.procedure h3 { font-size: 1.05rem; margin: 1rem 0 .25rem; }
.procedure ol { margin-top: .25rem; }
.feedback { border-top: 1px solid #ddd; margin-top: 1.5rem; padding-top: .5rem; }
.feedback textarea { width: 100%; font: inherit; margin: .25rem 0 .5rem; }
.reader-comments { font-style: italic; }
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.badge { display: inline-block; font-size: .8rem; font-weight: 600; color: #0b6b2e; background: #e6f4ea; padding: 0 .4rem; border-radius: 3px; }
.reader-comments li, .testimonials li { margin: .5rem 0; }
.comment-vote { display: inline; margin-left: .25rem; }
.link-button { background: none; color: var(--accent); padding: 0; text-decoration: underline; font-size: .9rem; }
.feedback-stats { font-weight: 600; }
.badge-critical { color: #7a4b00; background: #fff4d6; }
