/* ============================================================================
   MIIN ML, jednolitá appka. Styly, dávka D1 (PP-109).
   Bez pomlček v UI textech.

   PÍSMO (PP-031, publikum 35 az 65 let), platí od prvního řádku:
     tělo minimálně 16 px, chat 17 az 18 px, NIC pod 13 px, vysoký kontrast.
   Proto je --fs-xs rovno 13 px a menší velikost se v souboru nesmí objevit.

   KRIZE (Ústava čl. VII):
     Nad SOS není nic. Hlavička má vyšší vrstvu než menu, takže menu SOS nikdy nezakryje.
     Krizová tlačítka jsou v pevném pásu dole, nikdy nepodléhají rolování,
     ani na krátké obrazovce, ani při otevřené klávesnici (proto dvh, ne vh).
   ============================================================================ */

:root{
  --bg:#141414;
  --card:#1c1c1c;
  --card2:#232323;
  --line:#2c2c2c;
  --mint:#9EE6C4;
  --mint2:#b9e3c8;
  --mint-ink:#10231B;
  --txt:#F2F2F2;          /* vyšší kontrast než v skeletu (bylo EDEDED) */
  --mut:#A6A6A6;          /* vyšší kontrast než v skeletu (bylo 8f8f8f) */
  --peach:#F2B79B;
  --app-w:420px;

  /* Písmová stupnice. Nic pod 13 px. */
  --fs-xs:13px;           /* absolutní minimum, jen popisky lišty a drobné hinty */
  --fs-sm:14px;
  --fs-body:16px;         /* tělo textu, minimum dle PP-031 */
  --fs-chat:17px;         /* chat, PP-031 chce 17 az 18 */
  --fs-lead:18px;
  --fs-h:24px;
  --fs-hero:28px;

  /* Vrstvy. SOS je nejvýš, menu pod hlavičkou. */
  --z-nav:40;
  --z-menu:50;
  --z-header:60;
  --z-sos:100;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;max-width:100vw;overflow-x:hidden}
body{
  background:var(--bg);
  color:var(--txt);
  font-family:'Nunito',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  font-size:var(--fs-body);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
button,input,select,textarea{font-family:inherit;font-size:var(--fs-body)}

/* ---------------------------------------------------------------------------
   Rám appky. Pružná výška, žádné mrtvé plochy na vysokých displejích.
   dvh drží i při otevřené klávesnici, kdy se vh nemění a obsah uteče pod ohyb.
   --------------------------------------------------------------------------- */
.miin-app{
  display:flex;
  flex-direction:column;
  min-height:100vh;
  min-height:100dvh;
  height:100dvh;
  background:var(--bg);
  position:relative;
  overflow:hidden;
}
@media(min-width:760px){
  body{background:#0d0d0d;display:flex;align-items:center;justify-content:center;min-height:100vh}
  .miin-app{
    width:var(--app-w);
    max-width:var(--app-w);
    height:min(880px,94vh);
    border:10px solid #000;
    border-radius:40px;
    box-shadow:0 26px 70px rgba(0,0,0,.55);
    overflow:hidden;
  }
}

/* ---------------------------------------------------------------------------
   Hlavička. Vyšší vrstva než menu, aby SOS nikdy nešlo zakrýt.
   --------------------------------------------------------------------------- */
.app-top{
  flex:0 0 auto;
  position:relative;
  z-index:var(--z-header);
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  padding:calc(12px + env(safe-area-inset-top)) 16px 12px;
  background:var(--bg);
  border-bottom:1px solid var(--line);
}
.sos{
  justify-self:start;
  background:transparent;
  color:var(--peach);
  border:1.5px solid var(--peach);
  border-radius:999px;
  padding:8px 16px;
  font-size:var(--fs-sm);
  font-weight:800;
  letter-spacing:1.5px;
  cursor:pointer;
  min-height:40px;      /* dotyková plocha */
}
.sos:active{transform:scale(.96)}
.brand{justify-self:center;font-size:var(--fs-lead);font-weight:800;letter-spacing:2px}
.brand-i{color:var(--mint)}
.burger{
  justify-self:end;background:transparent;border:none;cursor:pointer;
  width:44px;height:44px;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:0 4px;
}
.burger span{display:block;height:2px;background:var(--txt);border-radius:2px}

/* ---------------------------------------------------------------------------
   Views. Pružné, rolují jen ony, ne celá appka.
   --------------------------------------------------------------------------- */
.views{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;min-height:0}
.view[hidden]{display:none}
.view-pad{padding:20px 18px 24px;display:flex;flex-direction:column;gap:14px}
.view-h{font-size:var(--fs-h);font-weight:800;margin:0}
.lead{font-size:var(--fs-lead);line-height:1.5;margin:0}
.muted{color:var(--mut);font-size:var(--fs-body);margin:0}
.hint{color:var(--mut);font-size:var(--fs-xs);margin:0}
.mascot-holder{display:flex;justify-content:center;padding:8px 0}
.greet{font-size:var(--fs-h);font-weight:800;text-align:center;margin:0}

/* ---------------------------------------------------------------------------
   Spodní lišta. D6 ji přestaví na home button, teď drží skelet.
   --------------------------------------------------------------------------- */
.navbar{
  flex:0 0 auto;
  position:relative;
  z-index:var(--z-nav);
  display:grid;grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);
  background:var(--bg);
  padding-bottom:env(safe-area-inset-bottom);
}
/* POZOR: atribut hidden sám o sobě nestačí, když má prvek v CSS vlastní display.
   Bez tohohle řádku lišta zůstala viset i na přihlašovacích obrazovkách (nález PP-111). */
.navbar[hidden]{display:none}
.navbtn{
  background:transparent;border:none;color:var(--mut);cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 4px 12px;min-height:56px;
}
.navbtn.on{color:var(--mint)}
.nav-lbl{font-size:var(--fs-xs);font-weight:700}
.nav-ico{height:20px;display:flex;align-items:center;justify-content:center}
.l3sq{width:17px;height:17px;border:2.4px solid currentColor;border-radius:5px;display:block}
.l3pt{width:13px;height:13px;background:currentColor;border-radius:50%;display:block}
.l3solo{width:7px;height:19px;background:currentColor;border-radius:4px;display:block}

/* ---------------------------------------------------------------------------
   Menu. Vrstva POD hlavičkou, takže SOS zůstává vidět i klikatelné.
   --------------------------------------------------------------------------- */
.sheet{position:absolute;inset:0;z-index:var(--z-menu);background:rgba(0,0,0,.55);display:flex}
.sheet[hidden]{display:none}
.sheet-card{
  margin-top:72px;   /* začíná pod hlavičkou, aby SOS zůstalo odkryté */
  width:100%;background:var(--card);border-top:1px solid var(--line);
  padding:16px 18px calc(20px + env(safe-area-inset-bottom));
  display:flex;flex-direction:column;gap:2px;align-self:flex-start;max-height:calc(100% - 72px);overflow-y:auto;
}
.sheet-title{font-size:var(--fs-sm);font-weight:800;color:var(--mut);letter-spacing:1.5px;margin-bottom:8px}
.sheet-close{position:absolute;right:16px;top:80px;background:transparent;border:none;color:var(--txt);font-size:var(--fs-h);cursor:pointer;width:44px;height:44px}
.mitem{
  background:transparent;border:none;border-bottom:1px solid var(--line);color:var(--txt);
  text-align:left;padding:16px 2px;font-size:var(--fs-body);font-weight:700;cursor:pointer;min-height:52px;
}
.mitem:last-child{border-bottom:none}

/* ---------------------------------------------------------------------------
   SOS. Nejvyšší vrstva v celé appce. Nad ním není nic.
   Karta je sloupec: text roluje, KRIZOVÁ TLAČÍTKA JSOU PEVNÁ DOLE.
   Tím nemůže krizová cesta spadnout pod ohyb ani na krátkém displeji.
   --------------------------------------------------------------------------- */
.sos-overlay{
  position:fixed;inset:0;z-index:var(--z-sos);
  /* PLNÁ, neprůhledná plocha. Průsvit sem nepatří: v krizi nemá nikdo číst
     přes text formuláře pod tím. Klid a jedna věc na obrazovce. */
  background:#0E0E0E;
  display:flex;flex-direction:column;
  height:100dvh;
}
@media(min-width:760px){ .sos-overlay{position:absolute;height:100%} }
.sos-overlay[hidden]{display:none}
.sos-card{
  flex:1 1 auto;display:flex;flex-direction:column;min-height:0;
  padding:calc(18px + env(safe-area-inset-top)) 18px calc(16px + env(safe-area-inset-bottom));
  gap:12px;
}
.sos-scroll{flex:1 1 auto;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:12px;justify-content:center}
.sos-actions{flex:0 0 auto;display:flex;flex-direction:column;gap:10px;padding-top:6px}
.sos-h{font-size:var(--fs-hero);font-weight:800;line-height:1.25}
.sos-p{font-size:var(--fs-chat);line-height:1.5;margin:0}
.sos-line{
  display:block;text-align:center;background:var(--peach);color:#1a0f08;
  border-radius:14px;padding:16px;font-size:var(--fs-lead);font-weight:800;text-decoration:none;min-height:56px;
}
.sos-note{color:var(--mut);font-size:var(--fs-xs);margin:0}
.sos-close{
  background:transparent;color:var(--txt);border:1px solid var(--line);
  border-radius:14px;padding:15px;font-size:var(--fs-body);font-weight:700;cursor:pointer;min-height:52px;
}

/* ---------------------------------------------------------------------------
   Auth (D1). Konstrukce psaná znovu, obsah a texty předloha z MS.
   Stejná pružná kostra jako SOS: střed roluje, tlačítka drží dole.
   --------------------------------------------------------------------------- */
.auth{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;padding:18px;gap:14px}
.auth-top{flex:0 0 auto}
.auth-mid{flex:1 1 auto;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:12px;justify-content:center}
.auth-bot{flex:0 0 auto;display:flex;flex-direction:column;gap:10px}
.auth-ttl{font-size:var(--fs-hero);font-weight:800;margin:0 0 4px}
.auth-sub{font-size:var(--fs-body);color:var(--mut);margin:0}
.lbl{font-size:var(--fs-sm);color:var(--mut);font-weight:700;margin:2px 0 -6px 4px;display:block}
.f{
  background:#0c0c0c;border:1px solid #333;border-radius:13px;
  padding:15px 16px;font-size:var(--fs-body);color:var(--txt);width:100%;outline:none;min-height:52px;
}
.f:focus{border-color:var(--mint)}
.f::placeholder{color:#6E6E6E}
.btn{
  border:none;border-radius:14px;padding:16px;font-size:var(--fs-lead);font-weight:800;
  text-align:center;cursor:pointer;width:100%;min-height:56px;
}
.btn.p{background:var(--mint);color:var(--mint-ink)}
.btn.g{background:transparent;color:var(--mint2);border:1px solid #333}
.btn:disabled{opacity:.45}
.link{font-size:var(--fs-body);color:var(--mint2);text-align:center;padding:10px;cursor:pointer;background:none;border:none;min-height:44px}
.err{font-size:var(--fs-sm);color:var(--peach);min-height:20px;margin:0}
.anon{font-size:var(--fs-body);color:var(--mint2);line-height:1.5;margin:0}
.keybox{background:#0c0c0c;border:2px dashed var(--mint);border-radius:16px;padding:22px 12px;text-align:center}
.key{font-size:var(--fs-hero);font-weight:800;letter-spacing:4px;color:#C6F2DD;word-break:break-all}
.copy{margin-top:14px;display:inline-block;font-size:var(--fs-sm);color:var(--mint-ink);background:var(--mint);border-radius:10px;padding:11px 20px;font-weight:800;cursor:pointer;border:none;min-height:44px}
.segs{display:flex;gap:8px}
.seg{flex:1;font-size:var(--fs-sm);font-weight:800;padding:13px 8px;border-radius:12px;border:1px solid #333;background:transparent;color:var(--mut);cursor:pointer;min-height:48px}
.seg.on{background:var(--mint);color:var(--mint-ink);border-color:var(--mint)}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:10px}
.card-h{font-size:var(--fs-lead);font-weight:800}

/* ---------------------------------------------------------------------------
   Figurka, dech
   --------------------------------------------------------------------------- */
.mblmas .crtb{transform-origin:240px 300px;animation:dech 4.2s ease-in-out infinite}
.mblmas .sway{transform-origin:240px 320px;animation:sway 9s ease-in-out infinite}
@keyframes dech{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.035)}}
@keyframes sway{0%,100%{transform:rotate(-1.1deg)}50%{transform:rotate(1.1deg)}}
@media(prefers-reduced-motion:reduce){
  .mblmas .crtb,.mblmas .sway{animation:none}
}
