/* ===================================================================
   AGENDA PRENOTAZIONI MICHELETTI — stile
   Impianto grafico "agenda": schede raggruppate per giorno, barra di
   stato a sinistra. Palette del sito (crema/ink/olive).
   Mobile-first; su schermi grandi il contenuto resta centrato.
   =================================================================== */

:root{
  --bg:#f6f5f1;
  --card:#ffffff;
  --line:#e7e4db;
  --line-2:#d8d4c8;
  --ink:#2C2A20;
  --muted:#8b8878;
  --olive:#63663A;
  --olive-dark:#565737;
  --amber:#b5872b;
  --amber-bg:#f6ecd7;
  --amber-ink:#8a6516;
  --olive-bg:#e8ecdd;
  --olive-ink:#4c5030;
  --red:#9c3b2b;
  --red-line:#e6d0cb;
  --radius:14px;
  --safe-t:env(safe-area-inset-top,0px);
  --safe-b:env(safe-area-inset-bottom,0px);
}

*{box-sizing:border-box}
/* Deve battere i display: flex/block dichiarati sotto, altrimenti gli
   elementi con attributo `hidden` (gate, toast, pulsanti) restano visibili */
[hidden]{display:none !important}
html,body{margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  overscroll-behavior-y:contain;
}
body.busy{cursor:progress}
body.busy main{opacity:.5;pointer-events:none}

.wrap{max-width:720px;margin:0 auto;padding-left:20px;padding-right:20px}

/* ---------------- Schermata di accesso ---------------- */
.gate{
  min-height:100vh;min-height:100dvh;
  display:flex;align-items:center;justify-content:center;
  background:var(--ink);padding:28px 20px;
  padding-top:calc(28px + var(--safe-t));padding-bottom:calc(28px + var(--safe-b));
}
.gatebox{width:100%;max-width:340px;text-align:center}
.gatelogo{width:78px;height:78px;border-radius:20px;display:block;margin:0 auto 22px}
.gatetitle{color:#F5F1E6;font-size:22px;font-weight:700;margin:0 0 6px}
.gatesub{color:rgba(245,241,230,.55);font-size:14px;margin:0 0 26px}
#gateform{display:flex;flex-direction:column;gap:12px}
#pin{
  font:inherit;font-size:16px;text-align:center;letter-spacing:.06em;
  padding:15px 16px;border-radius:11px;border:1px solid rgba(245,241,230,.28);
  background:rgba(245,241,230,.06);color:#F5F1E6;
}
#pin::placeholder{color:rgba(245,241,230,.4);letter-spacing:normal}
#pin:focus{outline:none;border-color:rgba(245,241,230,.7)}
.gateerr{color:#e8a396;font-size:14px;margin:16px 0 0}

.btn{font:inherit;font-size:15px;font-weight:700;padding:15px 18px;border-radius:11px;border:1px solid transparent;cursor:pointer}
.btn.primary{background:#F5F1E6;color:var(--ink)}
.btn.primary:active{transform:translateY(1px)}
.btn[disabled]{opacity:.6;cursor:wait}

/* ---------------- Header ---------------- */
header{
  position:sticky;top:0;z-index:20;background:var(--bg);
  border-bottom:1px solid var(--line);
  padding-top:calc(16px + var(--safe-t));
}
.eyebrow{font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:700}
.titlerow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:5px}
h1{margin:0;font-size:24px;font-weight:700;letter-spacing:-.01em}
.hbtns{display:flex;gap:8px;flex:none}
.iconbtn{
  width:42px;height:42px;flex:none;border-radius:50%;border:1px solid var(--line);
  background:#fff;cursor:pointer;font-size:19px;line-height:1;color:var(--ink);
}
.iconbtn:active{background:#f0eee8}

.tabs{display:flex;gap:6px;margin:14px 0 0;padding-bottom:12px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.tab{
  font:inherit;font-size:13.5px;font-weight:600;white-space:nowrap;
  padding:8px 14px;border-radius:99px;border:1px solid var(--line);
  background:#fff;color:var(--muted);cursor:pointer;
}
.tab.is-active{background:var(--ink);border-color:var(--ink);color:#F5F1E6}

/* ---------------- Elenco ---------------- */
main{padding-top:4px;padding-bottom:24px;min-height:50vh}

.dayhead{display:flex;align-items:baseline;gap:9px;margin:24px 0 10px 3px}
.daynum{font-size:29px;font-weight:700;line-height:1}
.dayname{font-size:15px;font-weight:700;color:#6d6b60;text-transform:capitalize}
.daymon{font-size:14px;color:var(--muted)}
.dayhead.today .daynum{color:var(--olive)}
.badge-today{
  font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;
  background:var(--olive);color:#fff;padding:3px 8px;border-radius:99px;
}

.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:14px 16px;margin-bottom:11px;display:flex;gap:14px;
  cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.04);
}
.card:hover{border-color:var(--line-2)}
.card.past{opacity:.6}
.bar{width:5px;flex:none;border-radius:99px;background:var(--amber);align-self:stretch}
.card.ok .bar{background:var(--olive)}
.cbody{flex:1;min-width:0}
.top{display:flex;gap:14px;align-items:flex-start}
.when{min-width:82px;flex:none}
.time{font-size:17px;font-weight:700;line-height:1.2}
.sub{font-size:13px;color:var(--muted);margin-top:3px}
.who{flex:1;min-width:0;font-size:17px;font-weight:700;line-height:1.25;word-break:break-word}
.pax{font-size:13px;font-weight:500;color:var(--muted);margin-top:3px}
.chip{
  display:inline-block;margin-top:7px;font-size:10.5px;font-weight:700;
  text-transform:uppercase;letter-spacing:.09em;padding:3px 9px;border-radius:99px;
}
.chip.wait{background:var(--amber-bg);color:var(--amber-ink)}
.chip.ok{background:var(--olive-bg);color:var(--olive-ink)}

/* ---------------- Dettaglio espanso ---------------- */
.details{display:none;margin-top:13px;border-top:1px solid var(--line);padding-top:12px}
.card.open .details{display:block}
.row{display:flex;gap:10px;font-size:14px;margin-bottom:7px;line-height:1.45}
.row .k{color:var(--muted);min-width:92px;flex:none}
.row .v{word-break:break-word}
.row a{color:var(--olive);text-decoration:none}
.row a:hover{text-decoration:underline}
.note{background:#faf9f5;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:10px 0 0;font-size:14px;line-height:1.5}

.actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-top:14px}
.tlab{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:8px}
input[type=time]{
  font:inherit;font-size:16px;padding:9px 11px;border:1px solid var(--line);
  border-radius:10px;background:#fff;color:var(--ink);min-width:120px;
}
.act{font:inherit;font-size:14px;font-weight:700;padding:11px 17px;border-radius:10px;border:1px solid transparent;cursor:pointer}
.confirm{background:var(--olive);color:#fff}
.confirm:active{background:var(--olive-dark)}
.cancel{background:#fff;color:var(--red);border-color:var(--red-line)}
.cancel:active{background:#fdf7f6}

/* ---------------- Vari ---------------- */
.empty{text-align:center;color:var(--muted);padding:56px 20px;font-size:15px;line-height:1.6}
footer{text-align:center;color:var(--muted);font-size:13px;padding:0 20px calc(30px + var(--safe-b))}

.toast{
  position:fixed;left:50%;transform:translateX(-50%);
  bottom:calc(22px + var(--safe-b));z-index:50;
  background:var(--ink);color:#F5F1E6;font-size:14px;font-weight:600;
  padding:12px 18px;border-radius:99px;box-shadow:0 6px 20px rgba(0,0,0,.22);
  max-width:calc(100% - 40px);text-align:center;
}

.iosbanner{
  background:#fff;border:1px solid var(--line);border-radius:12px;
  padding:12px 14px;margin:14px 0 0;font-size:13.5px;color:#5f5d54;line-height:1.5;
}
.iosbanner b{color:var(--ink)}
.iosbanner button{
  float:right;background:none;border:none;color:var(--muted);
  font:inherit;font-size:18px;cursor:pointer;line-height:1;padding:0 0 0 10px;
}

/* Schermi larghi: schede un filo più arieggiate */
@media (min-width:700px){
  h1{font-size:27px}
  .card{padding:16px 18px}
  .when{min-width:92px}
}
