/* ============================================================================
   Küchenalarm - game.css. Heller El-Camino-Rahmen, dunkles Fliesenfeld 12×18.
   Zahlen farblich UND per Form/Strichstärke unterscheidbar. Hochformat, ab 320px.
   ============================================================================ */
:root{
  --bg:#f6eeda; --bg2:#efe3c6; --panel:#fffdf7; --ink:#291317; --ink-soft:#6d4a44;
  --wine:#7c2230; --wine-deep:#5a1822; --wine-bright:#9a2e3c;
  --gold:#b0812f; --gold-soft:#c7a35c; --line:#e3cfa2; --screen:#241018;
  --tile:#d8c39a; --tile2:#cbb488; --open:#efe6d0; --open2:#e6d9bd;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  background:radial-gradient(1000px 420px at 50% -120px,#fff7e6 0%,transparent 70%),
             linear-gradient(180deg,#f7efdc 0%,var(--bg) 42%,#f2e8cf 100%);
  color:var(--ink); font-family:system-ui,Segoe UI,Arial,sans-serif;
  min-height:100vh; min-height:100dvh; overflow-x:hidden;
}
.ka-shell{max-width:460px;margin:0 auto;padding:8px 10px calc(14px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:9px}

/* Kopf */
.ka-top{display:flex;align-items:center;gap:8px}
.ka-brand{font-weight:800;color:var(--wine);line-height:1;font-size:1.05rem}
.ka-brand small{display:block;font-weight:600;color:var(--ink-soft);font-size:.62rem;letter-spacing:.04em}
.ka-icon{margin-left:auto;width:40px;height:40px;flex:0 0 auto;font-size:1.15rem;border:1px solid var(--line);background:var(--panel);border-radius:10px;cursor:pointer;color:var(--wine)}
.ka-icon:last-of-type{margin-left:0}
.ka-back{font-size:.82rem;font-weight:700;color:var(--wine);text-decoration:none;border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:8px 12px;white-space:nowrap}

/* HUD */
.ka-hud{display:flex;gap:6px;justify-content:space-between}
.ka-stat{flex:1;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:6px 4px;text-align:center;min-width:0}
.ka-stat small{display:block;font-size:.58rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}
.ka-stat b{font-size:1.0rem;color:var(--wine-deep);font-variant-numeric:tabular-nums}
.ka-statusrow{display:flex;justify-content:center}
.ka-status{font-size:.74rem;font-weight:800;letter-spacing:.03em;padding:4px 14px;border-radius:999px;border:1px solid transparent}
.ka-status.rated{background:#e9f6e7;color:#2f7a2f;border-color:#bfe0ba}
.ka-status.unrated{background:#fdefe0;color:#b0621f;border-color:#f0cfa8}

/* Fliesenfeld */
.ka-boardwrap{position:relative;width:100%;background:linear-gradient(180deg,#2c1620,var(--screen));border:3px solid var(--gold-soft);border-radius:12px;overflow:hidden;box-shadow:0 8px 24px -12px rgba(41,19,23,.5);aspect-ratio:12/18;padding:5px}
.ka-board{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(18,1fr);gap:2px;width:100%;height:100%;touch-action:manipulation}

/* Zellen — FESTE Rasterzelle (min-height:0 + overflow verhindert, dass Zahlen/Flaggen die Zeile aufblähen) */
.ka-cell{
  position:relative;padding:0;border:0;cursor:pointer;min-width:0;min-height:0;overflow:hidden;font-weight:900;
  font-size:min(3.6vw,15px);line-height:1;display:flex;align-items:center;justify-content:center;
  border-radius:3px;font-variant-numeric:tabular-nums;
}
.ka-cell.hidden{background:linear-gradient(155deg,var(--tile),var(--tile2));box-shadow:inset 1px 1px 0 rgba(255,255,255,.5),inset -1px -1px 0 rgba(90,60,30,.35)}
.ka-cell.hidden:active{filter:brightness(.94)}
.ka-cell.open{background:linear-gradient(155deg,var(--open),var(--open2));box-shadow:inset 0 0 0 1px rgba(120,90,50,.18);cursor:default;color:var(--ink)}
.ka-cell.hazard{background:radial-gradient(circle,#f0c9a0,#e0632a)}
.ka-cell.flag{background:linear-gradient(155deg,#e7d3a6,#dcc38a)}
.ka-cell .ka-ico{width:74%;height:74%;display:block}
.ka-cell.n1{color:#2b5fd4}.ka-cell.n2{color:#2f8a2f}.ka-cell.n3{color:#c1392b}.ka-cell.n4{color:#5a3ea8}
.ka-cell.n5{color:#a8582f}.ka-cell.n6{color:#1f8a8a}.ka-cell.n7{color:#3a2a1a}.ka-cell.n8{color:#7a7a7a}
/* Form-Zusatz (nicht nur Farbe): dünner Unterstrich je Zahl unterscheidet zusätzlich */
.ka-cell.n3,.ka-cell.n5,.ka-cell.n7{text-decoration:underline;text-underline-offset:1px}
.ka-cell.reveal-anim{animation:kaReveal .18s ease}
.ka-cell.boom{animation:kaBoom .5s ease}
.ka-cell.safe-mark{outline:2px solid #4caf50;outline-offset:-2px}
@keyframes kaReveal{from{transform:scale(.82);opacity:.4}to{transform:scale(1);opacity:1}}
@keyframes kaBoom{0%,100%{transform:scale(1)}30%{transform:scale(1.25)}60%{transform:scale(.9)}}
.ka-cell:focus-visible{outline:3px solid var(--gold);outline-offset:-1px;z-index:2}

/* Countdown */
.ka-countdown{position:absolute;inset:0;display:none;align-items:center;justify-content:center;z-index:12;font:900 5rem system-ui;color:#fff5e9;text-shadow:0 4px 24px rgba(0,0,0,.6);background:rgba(23,11,14,.5);pointer-events:none}
.ka-countdown.show{display:flex;animation:kaPop .5s ease}
@keyframes kaPop{0%{transform:scale(.5);opacity:0}40%{transform:scale(1.1);opacity:1}100%{transform:scale(1);opacity:1}}

/* Overlays */
.ka-ov{position:absolute;inset:0;display:none;align-items:center;justify-content:center;padding:14px;background:rgba(23,11,14,.85);z-index:14;overflow:auto}
.ka-ov.show{display:flex}
.ka-dlg{max-width:340px;width:100%;background:var(--panel);border:2px solid var(--gold-soft);border-radius:16px;padding:18px 16px;text-align:center;color:var(--ink);box-shadow:0 12px 40px rgba(0,0,0,.4)}
.ka-dlg h1{margin:0 0 2px;color:var(--wine);font-size:1.6rem}
.ka-dlg h2{margin:0 0 8px;color:var(--wine);font-size:1.3rem}
.ka-dlg .sub{margin:0 0 10px;color:var(--gold);font-style:italic;font-size:.92rem}
.ka-dlg p{margin:.5em 0;line-height:1.5;font-size:.9rem;color:var(--ink-soft)}
.ka-dlg .hint{font-size:.76rem;opacity:.85}
.ka-dlg .warn{font-size:.78rem;color:var(--wine-bright);font-weight:600}
.ka-entry{margin:8px 0;padding:10px;background:var(--bg2);border-radius:10px}
.ka-alabel{display:block;margin:.2em 0 .3em;font-size:.85rem;font-weight:700;color:var(--wine)}
.ka-aliasin{width:100%;text-align:center;font:800 1.5rem ui-monospace,monospace;letter-spacing:.3em;padding:10px;border:2px solid var(--gold-soft);border-radius:10px;background:#fff;color:var(--ink);text-transform:uppercase}
.ka-aliaserr{color:var(--wine-bright);min-height:1.1em;font-size:.85rem}
.ka-btn{display:inline-block;margin:8px 0 0;font:700 1rem system-ui;padding:12px 22px;border-radius:12px;border:0;background:var(--wine);color:#fff5e9;cursor:pointer;box-shadow:0 8px 20px -10px var(--wine)}
.ka-row{display:flex;gap:10px;justify-content:center;margin-top:10px}
.ka-stats{display:flex;flex-direction:column;gap:4px;margin:10px 0}
.statrow{display:flex;justify-content:space-between;padding:6px 10px;background:var(--bg2);border-radius:8px}
.statrow b{color:var(--wine-deep);font-variant-numeric:tabular-nums}

/* Modus-Umschalter (groß, ≥44px) */
.ka-mode{width:100%;min-height:48px;font:800 1.05rem system-ui;border-radius:12px;cursor:pointer;border:2px solid var(--gold-soft)}
.ka-mode.reveal{background:linear-gradient(180deg,#fff7e6,#f0e2c2);color:var(--wine)}
.ka-mode.flag{background:linear-gradient(180deg,#7c2230,#5a1822);color:#fff5e9;border-color:var(--wine-deep)}
.ka-modehint{text-align:center;font-size:.72rem;color:var(--ink-soft);margin:0}

/* Bestenliste */
.ka-hs{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.ka-hshead{font-weight:800;color:var(--wine);margin-bottom:6px;font-size:.95rem}
.ka-hslist{list-style:none;margin:0;padding:0;counter-reset:hs}
.ka-hslist li{display:flex;justify-content:space-between;padding:5px 4px;border-bottom:1px dashed var(--line);font-size:.92rem}
.ka-hslist li:last-child{border-bottom:0}
.ka-hslist li::before{counter-increment:hs;content:counter(hs) ".";color:var(--gold);font-weight:700;margin-right:8px;min-width:1.4em}
.ka-hslist li span{flex:1;font-family:ui-monospace,monospace}
.ka-hslist li b{color:var(--wine-deep);font-variant-numeric:tabular-nums}

.ka-footer{text-align:center;font-size:.74rem;color:var(--ink-soft);padding:4px 0}
.ka-footer a{color:var(--wine);text-decoration:none}
.ka-btn:focus-visible,.ka-icon:focus-visible,.ka-back:focus-visible,.ka-mode:focus-visible{outline:3px solid var(--gold);outline-offset:2px}

@media (prefers-reduced-motion: reduce){ .ka-cell.reveal-anim,.ka-cell.boom,.ka-countdown.show{animation:none} }
@media (max-width:360px){ .ka-brand{font-size:.95rem} .ka-stat b{font-size:.9rem} .ka-stat small{font-size:.54rem} .ka-back{padding:7px 9px;font-size:.76rem} .ka-cell{font-size:min(4vw,13px)} .ka-countdown{font-size:4rem} }
