/* samuilife — base: Reset, Tokens, Typo, Theme-Variablen (+data-theme-Override)
   Aus samuilife_app.html verschoben (Teil 2 §0). Kein Build-Step, file://-fähig. */
/* theme-invariante Deck-Tokens (S12) + Schriftfamilien (Teil-6-Abnahme KRIT A:
   die vier Font-Tokens gingen im Teil-5-CSS-Pass verloren — die App fiel
   unbemerkt auf Times New Roman; Namen matchen vendor/fonts/fonts.css) */
:root{--sans:'Source Sans 3','Noto Sans',system-ui,-apple-system,'Segoe UI',Roboto,'Noto Sans Thai',sans-serif;
  --disp:var(--sans);
  --cond:'Roboto Condensed','Arial Narrow',var(--sans);
  --mono:'IBM Plex Mono',ui-monospace,'SFMono-Regular',Menlo,monospace;--on-acc:#FFFFFF;--on-acc-dim:rgba(255,255,255,.75);--on-acc-line:rgba(255,255,255,.32);--on-acc-bg:rgba(255,255,255,.22);--scrim:rgba(0,0,0,.85);--scrim-deep:rgba(0,0,0,.94);--scrim-lite:rgba(0,0,0,.62);--line-fixed:rgba(14,16,21,.18);
  /* feste Farben (theme-invariant): vorher hartcodierte Hex, jetzt Tokens (§13/§16-29) */
  --pure-white:#FFFFFF;--pure-black:#111111;--ink-fixed:#0E1015;--hi-fixed:#04060B;--dim-fixed:#646C7E;

  --ink:#0E1015;--paper:#F7F9FB;--paper2:#ECEFF3;--line:rgba(14,16,21,.13);
  --dim:#646C7E;--sub:#39435A;--hi:#04060B;
  --go:#FF3B14;--net:#4A3AFF;--ok:#00875A;--on-ok:#FFFFFF;--warn:#C97A00;--warn-text:#8A5800;--go-text:#B33000;--ok-text:#006B47;--sh-card:0 3px 12px rgba(0,0,0,.10);--sh-overlay:0 12px 40px rgba(0,0,0,.28);--sh-sheet:0 24px 80px rgba(0,0,0,.35);--sh-ring:0 0 0 3px var(--ink);--sh-fade:-14px 0 18px 10px var(--paper);--sh-netglow:0 0 0 1px color-mix(in srgb,var(--net) 55%,transparent),0 3px 16px color-mix(in srgb,var(--net) 30%,transparent);--sh-pulse:0 0 0 6px color-mix(in srgb,var(--go) 25%,transparent);--danger:#C4001D;--on-danger:#FFFFFF;--danger-text:#A80019;--tabh:50px;
  --mapshell:#DDE2EB}
@media (prefers-color-scheme:dark){
  :root{--ink:#E9ECF3;--paper:#0A0C11;--paper2:#151922;--line:rgba(233,236,243,.14);
    --dim:#8A93A6;--sub:#BAC3D4;--hi:#FFFFFF;--go:#FF4E2B;--net:#7A6BFF;--ok:#00C775;--on-ok:#06301F;--warn:#FFB020;--warn-text:#FFB020;--go-text:#FF4E2B;--ok-text:#00C775;--sh-card:0 3px 14px rgba(0,0,0,.40);--sh-overlay:0 12px 40px rgba(0,0,0,.55);--sh-sheet:0 24px 80px rgba(0,0,0,.60);--sh-ring:0 0 0 3px var(--ink);--sh-fade:-14px 0 18px 10px var(--paper);--sh-netglow:0 0 0 1px color-mix(in srgb,var(--net) 55%,transparent),0 3px 16px color-mix(in srgb,var(--net) 30%,transparent);--sh-pulse:0 0 0 6px color-mix(in srgb,var(--go) 25%,transparent);--danger:#FF4D6A;--on-danger:#2B0410;--danger-text:#FF7A8E;--tabh:50px;
    --mapshell:#0C0F15}
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
/* every focusable thing shows where it is */
:focus-visible{outline:2px solid var(--go);outline-offset:2px;border-radius:8px}
.row:focus-visible,.tile:focus-visible,.th:focus-visible{outline-offset:-2px}
#skip{position:absolute;left:-9999px;top:0;z-index:9999;background:var(--go);color:var(--pure-white);
  padding:12px 16px;border-radius:0 0 8px 0;font-family:var(--cond);font-weight:600}
#skip:focus{left:0}
html,body{overflow-x:clip;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.42;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
#shell{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr);min-height:100dvh;min-width:0}
@media(min-width:900px){#shell{grid-template-columns:minmax(0,540px) minmax(0,1fr)}}
#col{display:flex;flex-direction:column;min-height:100dvh;padding:0 16px 64px;min-width:0;max-width:100%}


/* ── THEME-OVERRIDE (System/Hell/Dunkel, Teil 2 §13): data-theme schlägt Media Query ── */
:root[data-theme="light"]{--ink:#0E1015;--paper:#F7F9FB;--paper2:#ECEFF3;--line:rgba(14,16,21,.13);
  --dim:#646C7E;--sub:#39435A;--hi:#04060B;--go:#FF3B14;--net:#4A3AFF;--ok:#00875A;--on-ok:#FFFFFF;--warn:#C97A00;--warn-text:#8A5800;--go-text:#B33000;--ok-text:#006B47;--sh-card:0 3px 12px rgba(0,0,0,.10);--sh-overlay:0 12px 40px rgba(0,0,0,.28);--sh-sheet:0 24px 80px rgba(0,0,0,.35);--sh-ring:0 0 0 3px var(--ink);--sh-fade:-14px 0 18px 10px var(--paper);--sh-netglow:0 0 0 1px color-mix(in srgb,var(--net) 55%,transparent),0 3px 16px color-mix(in srgb,var(--net) 30%,transparent);--sh-pulse:0 0 0 6px color-mix(in srgb,var(--go) 25%,transparent);--danger:#C4001D;--on-danger:#FFFFFF;--danger-text:#A80019;--tabh:50px;
  --mapshell:#DDE2EB}
:root[data-theme="dark"]{--ink:#E9ECF3;--paper:#0A0C11;--paper2:#151922;--line:rgba(233,236,243,.14);
  --dim:#8A93A6;--sub:#BAC3D4;--hi:#FFFFFF;--go:#FF4E2B;--net:#7A6BFF;--ok:#00C775;--on-ok:#06301F;--warn:#FFB020;--warn-text:#FFB020;--go-text:#FF4E2B;--ok-text:#00C775;--sh-card:0 3px 14px rgba(0,0,0,.40);--sh-overlay:0 12px 40px rgba(0,0,0,.55);--sh-sheet:0 24px 80px rgba(0,0,0,.60);--sh-ring:0 0 0 3px var(--ink);--sh-fade:-14px 0 18px 10px var(--paper);--sh-netglow:0 0 0 1px color-mix(in srgb,var(--net) 55%,transparent),0 3px 16px color-mix(in srgb,var(--net) 30%,transparent);--sh-pulse:0 0 0 6px color-mix(in srgb,var(--go) 25%,transparent);--danger:#FF4D6A;--on-danger:#2B0410;--danger-text:#FF7A8E;--tabh:50px;
  --mapshell:#0C0F15}
:root[data-theme="dark"] .heroimg,:root[data-theme="dark"] .pimg,
:root[data-theme="dark"] .mimg,:root[data-theme="dark"] .lbimg{filter:brightness(.92)}
html{transition:background-color .18s,color .18s}
@media(prefers-reduced-motion:reduce){html{transition:none}}

