@font-face{font-family:Anton;src:url(/fonts/anton.woff2) format('woff2');font-display:swap}
@font-face{font-family:Archivo;src:url(/fonts/archivo.woff2) format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:Caveat;src:url(/fonts/caveat.woff2) format('woff2');font-weight:400 700;font-display:swap}
:root{
  --ferro:#15181c;--ferro2:#1d2126;--ferro3:#262b31;--linea:#33383f;
  --gesso:#e9e7e2;--gesso2:#b9b6af;--gesso3:#8b8880;
  --fenice:#d4a35d;--fenice2:#e6bd7f;--penna:#24357a;--carta:#f3efe6;--inchiostro:#1c2a66;
  --rosso:#d0705f;
  --r:14px;--safe-b:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;background:var(--ferro)}
body{background:var(--ferro);color:var(--gesso);font:16px/1.5 Archivo,system-ui,sans-serif;min-height:100dvh;-webkit-font-smoothing:antialiased}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none}
a{color:var(--fenice)}
:focus-visible{outline:2px solid var(--fenice);outline-offset:2px;border-radius:6px}
.hide{display:none!important}
.wrap{max-width:560px;margin:0 auto;padding:0 18px}

/* barra in alto */
.top{position:sticky;top:0;z-index:20;background:rgba(21,24,28,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--linea)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:56px}
.logo{font-family:Anton;font-size:20px;letter-spacing:.02em;text-decoration:none;color:var(--gesso);display:flex;align-items:center;gap:10px}
.logo i{display:grid;grid-template-columns:repeat(2,7px);gap:2px}
.logo i b{width:7px;height:4px;background:var(--fenice);border-radius:1px}
.logo i b:nth-child(2){opacity:.55}
.hello{font-family:Caveat;font-size:22px;color:var(--fenice2)}

main.wrap{padding-top:24px;padding-bottom:calc(96px + var(--safe-b))}
main.wrap.auth{padding-top:40px;padding-bottom:calc(30px + var(--safe-b))}
.h1{font-family:Anton;font-weight:400;font-size:clamp(38px,11vw,56px);line-height:.98;letter-spacing:.005em;text-transform:uppercase}
.h2{font-family:Anton;font-weight:400;font-size:26px;line-height:1.05;text-transform:uppercase}
.muted{color:var(--gesso2)}
.small{font-size:14px;color:var(--gesso3)}
.hand{font-family:Caveat;font-size:24px;line-height:1.1;color:var(--fenice2)}
.date{font-size:15px;color:var(--gesso2);margin-bottom:12px}

/* bottoni */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 22px;border-radius:999px;font-weight:650;font-size:16px;text-decoration:none;transition:transform .12s,background .2s}
.btn:active{transform:scale(.98)}
.btn--gold{background:var(--fenice);color:#1a1409}
.btn--ghost{border:1.5px solid var(--linea);color:var(--gesso)}
.btn--wide{width:100%}
.btn--danger{border:1.5px solid rgba(208,112,95,.5);color:var(--rosso)}
.link{color:var(--fenice);text-decoration:underline;text-underline-offset:3px;font-weight:550}

/* card */
.card{background:var(--ferro2);border:1px solid var(--linea);border-radius:var(--r);padding:20px}
.stack>*+*{margin-top:16px}
.lbl{font-size:14px;color:var(--gesso3);margin-bottom:6px;display:block}

/* sfida */
.sfida{position:relative;overflow:hidden;padding:24px 20px 20px}
.sfida .h1{font-size:clamp(34px,9.6vw,48px);margin:6px 0 12px}
.sfida p{color:var(--gesso2);font-size:17px;max-width:30em}
.sfida .btn{margin-top:20px}
.sfida.done{border-color:rgba(212,163,93,.55);background:linear-gradient(180deg,rgba(212,163,93,.10),rgba(212,163,93,0) 70%),var(--ferro2)}
.sfida.done .btn--gold{background:transparent;color:var(--fenice);border:1.5px solid var(--fenice)}
.stamp{position:absolute;right:16px;top:16px;font-family:Caveat;font-size:26px;color:var(--fenice);transform:rotate(-6deg);opacity:0;transition:opacity .3s}
.sfida.done .stamp{opacity:1}

/* muro della serie */
.serie{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:14px}
.serie b{font-family:Anton;font-weight:400;font-size:44px;line-height:.9;color:var(--fenice)}
.wall{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.wall span{aspect-ratio:2.2/1;border-radius:3px;background:var(--ferro3);border:1px solid transparent}
.wall span.on{background:var(--fenice)}
.wall span.today{border-color:var(--fenice);background:transparent}
.wall span.today.on{background:var(--fenice)}
.wall span.future{opacity:.25}
.wk{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:6px}
.wk em{font-style:normal;font-size:11px;color:var(--gesso3);text-align:center}

/* nota: foglio a righe */
.sheet{background:var(--carta);color:var(--inchiostro);border-radius:var(--r);padding:18px 18px 12px;background-image:repeating-linear-gradient(transparent 0 33px,rgba(36,53,122,.16) 33px 34px);background-position:0 46px}
.sheet label{font-family:Anton;font-size:20px;text-transform:uppercase;color:var(--ferro);display:block;height:34px}
.sheet textarea{width:100%;border:0;background:transparent;resize:none;font-family:Caveat;font-size:26px;line-height:34px;color:var(--inchiostro);min-height:136px;outline:none}
.sheet textarea::placeholder{color:rgba(28,42,102,.4)}
.saved{font-size:13px;color:#5b6170;text-align:right;height:18px}

/* calorie */
.daynav{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.daynav button{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--linea);font-size:20px;line-height:1}
.daynav button:disabled{opacity:.3}
.daynav strong{font-weight:650}
.tot{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.tot b{font-family:Anton;font-weight:400;font-size:56px;line-height:1}
.bar{height:10px;border-radius:99px;background:var(--ferro3);margin-top:14px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--fenice);border-radius:99px;transition:width .4s}
.meal{padding:16px 0;border-top:1px solid var(--linea)}
.meal:first-child{border-top:0}
.meal__hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.meal__hd h3{font-size:17px;font-weight:700;text-transform:capitalize}
.meal__hd span{color:var(--gesso2);font-size:15px}
.item{display:grid;grid-template-columns:1fr auto 40px;align-items:center;gap:8px;padding:8px 0;border-bottom:1px dashed rgba(255,255,255,.07)}
.item div{min-width:0}
.item b{font-weight:550;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.item small{color:var(--gesso3);font-size:13px}
.item .k{font-weight:650}
.item button{width:40px;height:40px;border-radius:50%;color:var(--gesso3);font-size:20px}
.add{color:var(--fenice);font-weight:650;padding:10px 0;display:inline-flex;align-items:center;gap:6px;min-height:44px}

/* foglio in basso (aggiungi cibo) */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:40;display:flex;align-items:flex-end;justify-content:center}
.pane{background:var(--ferro2);width:100%;max-width:600px;max-height:92dvh;overflow:auto;border-radius:20px 20px 0 0;padding:10px 18px calc(24px + var(--safe-b));border-top:1px solid var(--linea);animation:up .22s ease-out}
@keyframes up{from{transform:translateY(40px);opacity:0}}
.grab{width:42px;height:5px;border-radius:9px;background:var(--linea);margin:4px auto 14px}
.pane__hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.x{width:44px;height:44px;border-radius:50%;font-size:24px;color:var(--gesso2)}
.tabs{display:grid;grid-template-columns:repeat(3,1fr);background:var(--ferro);border-radius:12px;padding:4px;margin-bottom:14px}
.tabs button{min-height:42px;border-radius:9px;font-weight:600;font-size:15px;color:var(--gesso2)}
.tabs button[aria-selected=true]{background:var(--ferro3);color:var(--gesso)}
.field{display:block;margin-bottom:14px}
.inp{width:100%;min-height:52px;padding:12px 14px;border-radius:12px;border:1.5px solid var(--linea);background:var(--ferro);font-size:17px}
.inp:focus{border-color:var(--fenice);outline:none}
.res{list-style:none}
.res li button{width:100%;text-align:left;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:12px 4px;border-bottom:1px solid var(--linea);min-height:56px}
.res li b{font-weight:550;display:block}
.res li small{color:var(--gesso3);font-size:13px}
.res li span{color:var(--gesso2);font-size:14px;white-space:nowrap}
.res h4{font-size:13px;color:var(--gesso3);font-weight:500;margin:12px 0 2px}
.cam{position:relative;border-radius:14px;overflow:hidden;background:#000;aspect-ratio:4/3;margin-bottom:14px}
.cam video{width:100%;height:100%;object-fit:cover}
.cam i{position:absolute;left:12%;right:12%;top:40%;height:20%;border:2px solid var(--fenice);border-radius:10px;box-shadow:0 0 0 999px rgba(0,0,0,.35)}
.pick{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.calc{font-family:Anton;font-size:40px;line-height:1;color:var(--fenice);margin:4px 0 16px}
.seg{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:16px}
.seg button{min-height:44px;border-radius:10px;border:1.5px solid var(--linea);font-size:14px;font-weight:600;text-transform:capitalize}
.seg button[aria-pressed=true]{border-color:var(--fenice);color:var(--fenice);background:rgba(212,163,93,.08)}

/* diario */
.entry{display:grid;grid-template-columns:20px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid var(--linea)}
.entry i{width:20px;height:10px;border-radius:2px;background:var(--ferro3);margin-top:7px}
.entry i.on{background:var(--fenice)}
.entry small{color:var(--gesso3);font-size:13px}
.entry p{font-family:Caveat;font-size:24px;line-height:1.15;color:var(--gesso);white-space:pre-wrap;word-break:break-word}
.empty{text-align:center;padding:40px 10px;color:var(--gesso2)}

/* moduli accesso */
.auth{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding-top:40px;padding-bottom:calc(30px + var(--safe-b))}
.auth .h1{font-size:clamp(46px,14vw,72px)}
.auth .lead{color:var(--gesso2);font-size:18px;margin:16px 0 30px;max-width:26em}
.bricks{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;width:180px;margin-bottom:28px}
.bricks b{height:12px;border-radius:2px;background:var(--fenice)}
.bricks b.off{background:var(--ferro3)}
.check{display:grid;grid-template-columns:26px 1fr;gap:10px;align-items:start;font-size:15px;color:var(--gesso2);margin-bottom:14px;cursor:pointer}
.check input{width:22px;height:22px;accent-color:var(--fenice);margin-top:1px}
.msg{min-height:22px;color:var(--rosso);font-size:15px;margin:4px 0 12px}
.code{font-family:ui-monospace,Menlo,monospace;font-size:26px;letter-spacing:.08em;background:var(--carta);color:var(--inchiostro);padding:18px;border-radius:12px;text-align:center;margin:18px 0 10px;user-select:all;font-weight:700}
.back{display:inline-flex;align-items:center;gap:6px;color:var(--gesso2);min-height:44px;margin-bottom:10px}

/* navigazione in basso */
.nav{position:fixed;left:0;right:0;bottom:0;z-index:30;background:rgba(21,24,28,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--linea);padding-bottom:var(--safe-b)}
.nav .wrap{display:grid;grid-template-columns:repeat(4,1fr);padding:0 6px}
.nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:62px;font-size:12px;font-weight:600;color:var(--gesso3)}
.nav svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav button[aria-current=page]{color:var(--fenice)}

/* profilo */
.row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--linea);text-decoration:none;color:var(--gesso);min-height:52px}
.row span{color:var(--gesso3)}
.note{background:rgba(212,163,93,.08);border:1px solid rgba(212,163,93,.28);border-radius:12px;padding:12px 14px;font-size:14px;color:var(--gesso2)}
.toast{position:fixed;left:50%;bottom:calc(84px + var(--safe-b));transform:translateX(-50%);background:var(--gesso);color:var(--ferro);padding:12px 18px;border-radius:999px;font-weight:600;font-size:15px;z-index:60;box-shadow:0 8px 30px rgba(0,0,0,.4);max-width:90vw;text-align:center}
.offline{background:var(--rosso);color:#1b0d0a;text-align:center;font-size:14px;font-weight:600;padding:6px}
@media (min-width:700px){main.wrap{padding-top:36px}.pane{border-radius:20px;margin-bottom:5vh}.overlay{align-items:center}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
