:root { --ink:#203b36; --muted:#61716a; --primary:#255d49; --paper:#fffdf6; --line:#d8d6c7; --teal-light:#e8eedc; color-scheme:light; font:16px/1.4 system-ui,sans-serif; color:var(--ink); background:#f5f2e8; }
* { box-sizing:border-box; }
body { margin:0; }
[hidden] { display:none!important; }
button,input,select,textarea { font:inherit; color:inherit; }
button,select,textarea { border:1px solid var(--line); border-radius:10px; background:var(--paper); }
button { cursor:pointer; min-height:44px; padding:8px 12px; }
button:disabled { opacity:.45; cursor:default; }
button:focus-visible,a:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid #8fa86f; outline-offset:3px; }
a { color:var(--primary); }
.guide-app { width:min(100%,560px); min-height:100svh; margin:auto; display:flex; flex-direction:column; padding:0 14px; }
.app-header { min-height:44px; display:flex; align-items:center; gap:8px; font-size:.8rem; border-bottom:1px solid var(--line); }
.app-header a { text-decoration:none; background:var(--primary); color:white; font:bold 24px Georgia,serif; border-radius:13px 13px 13px 3px; width:29px; height:30px; text-align:center; }
.app-header small { margin-left:auto; color:var(--muted); font-size:.65rem; }
main { flex:1; padding:12px 0 8px; }
h1 { font:normal 25px/1.12 Georgia,serif; margin:0 0 12px; }
h1:focus { outline:none; }
h2 { font:normal 23px/1.16 Georgia,serif; margin:6px 0 10px; overflow-wrap:anywhere; }
p { margin:8px 0; font-size:.85rem; }
.intro { color:var(--muted); margin:0 0 12px; }
.stack { display:flex; flex-direction:column; gap:7px; }
label { font-size:.8rem; font-weight:600; }
select { min-height:44px; width:100%; padding:8px; margin-bottom:5px; }
textarea { width:100%; min-height:62px; padding:8px; resize:vertical; }
.primary { background:var(--primary); color:white; border-color:var(--primary); font-weight:600; width:100%; margin-top:5px; }
.text-button { background:none; border:none; color:var(--primary); text-decoration:underline; text-underline-offset:3px; padding:7px 2px; font-size:.78rem; }
.card { background:var(--paper); border:1px solid var(--line); border-radius:18px 18px 7px 18px; padding:14px; }
.move-card { background:#edf1da; }
.eyebrow { font-size:.7rem; color:var(--primary); font-weight:650; margin:0 0 6px; }
.support { font-size:.76rem; color:var(--muted); }
.muted { color:var(--muted); font-size:.7rem; }
.review { font-size:.72rem; color:#8a4817; }
.review:empty { display:none; }
.related-links,.row { display:flex; justify-content:space-between; gap:12px; }
.pager { display:flex; align-items:center; justify-content:space-between; margin-top:10px; font-size:.8rem; }
.pager button { width:48px; }
footer { margin-top:auto; padding-bottom:env(safe-area-inset-bottom,0); background:#f5f2e8; }
#app-status { font-size:.68rem; color:var(--muted); min-height:16px; margin:3px 0 5px; }
#app-status.error { color:#9b351d; }
nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--line); }
nav button { border:none; border-radius:0; background:none; font-size:.7rem; padding:8px 0; }
nav button[aria-pressed=true] { color:var(--primary); background:var(--teal-light); box-shadow:inset 0 -3px var(--primary); font-weight:650; }
dialog { width:min(94vw,580px); max-height:90svh; padding:0; border:1px solid var(--line); border-radius:18px; background:var(--paper); color:var(--ink); }
dialog::backdrop { background:#203b3680; }
dialog header { position:sticky; top:0; background:var(--paper); padding:12px 16px; display:flex; align-items:center; gap:12px; justify-content:space-between; border-bottom:1px solid var(--line); }
dialog header h2 { margin:0; font-size:20px; }
#detail-body { padding:4px 16px 18px; overflow-wrap:anywhere; }
.source-entry { border-top:1px solid var(--line); margin-top:16px; padding-top:10px; }
.source-entry h3 { font-size:.95rem; }
@media(min-width:600px) { .guide-app { padding:0 24px; } main { padding-top:25px; } h1 { font-size:32px; } h2 { font-size:28px; } .card { padding:22px; } }
@media(max-height:540px) and (max-width:599px) { main { padding-top:8px; } h1 { font-size:23px; margin-bottom:9px; } .card { padding:11px; } h2 { font-size:22px; } p { margin:6px 0; } .intro { margin-bottom:9px; } .stack { gap:5px; } }
@media(prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; } }

/* Local help and fictional evidence specifications. */
.document-page { max-width:880px; margin:auto; padding:25px 22px 55px; line-height:1.7; }
.document-back { font-size:.85rem; }
.document-nav { display:flex; flex-direction:row; flex-wrap:wrap; gap:8px 18px; margin:20px 0 30px; padding-bottom:16px; border-bottom:1px solid var(--line); }
.document-nav a { font-size:.8rem; }
.document-nav a[aria-current="page"] { color:var(--ink); font-weight:650; text-decoration:none; }
.document-page h1 { font-size:clamp(1.8rem,5vw,2.6rem); margin:0 0 20px; }
.document-page h2 { font-family:Georgia,serif; font-weight:400; font-size:1.5rem; margin:32px 0 12px; padding-top:8px; border-top:1px solid var(--line); }
.document-page h3 { margin:24px 0 10px; font-size:1.05rem; }
.document-page p,.document-page ul,.document-page ol { margin:12px 0; }
.document-page li { margin:7px 0; }
.document-page :target { scroll-margin-top:20px; }
.document-page pre { padding:16px; background:var(--paper); border:1px solid var(--line); border-radius:8px; overflow-x:auto; white-space:pre-wrap; overflow-wrap:anywhere; font-size:.8rem; }
.document-page code { font-family:Consolas,monospace; font-size:.87em; }
.document-page table { width:100%; min-width:500px; border-collapse:collapse; font-size:.85rem; background:var(--paper); }
.document-page th,.document-page td { border:1px solid var(--line); padding:10px; text-align:left; vertical-align:top; }
.document-page th { background:var(--teal-light); }
.document-page footer { margin-top:32px; padding-top:16px; border-top:1px solid var(--line); font-size:.75rem; }
.document-illustration { margin:20px 0; }
.document-illustration img { display:block; width:100%; height:auto; }
.visual-guide article > ol:first-of-type { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:0; list-style-position:inside; }
.visual-guide article > ol:first-of-type > li { margin:0; padding:18px; border:1px solid var(--line); border-radius:16px; background:var(--teal-light); font-size:.87rem; }
.visual-guide article > ol:first-of-type > li::marker { color:var(--primary); font-weight:700; }
.visual-guide table { min-width:0; table-layout:fixed; }
.visual-guide td,.visual-guide th { overflow-wrap:anywhere; }

.table-scroll {overflow-x:auto;}
.document-illustration img {max-width:100%;height:auto;}
@media(max-width:700px){.visual-guide article > ol:first-of-type{grid-template-columns:1fr;}}

.related-links {display:none;}

.row .primary {width:auto;flex:1;}
