/* Filo OS · stile di base, dal prototipo v4 (mockup/index.html): stessi colori, raggi e font. */
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(/font/inter.woff2) format('woff2')}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:500 700;font-display:swap;src:url(/font/playfair.woff2) format('woff2')}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:500;font-display:swap;src:url(/font/playfair-corsivo.woff2) format('woff2')}
:root{
  --r-card:14px; --r-blk:8px; --r-box:4px; --r-sheet:22px; --r-pill:999px;
  --crema:#FAF6EE; --carta:#FFFDF8; --inchiostro:#0F1117; --testo:#1A1D26;
  --muto:#636773; --filo:rgba(15,17,23,.14); --filo-forte:rgba(15,17,23,.26);
  --corallo:#E25822; --corallo-testo:#B8431A; --corallo-fondo:#FBE6DB; --ambra:#8A5A10; --ambra-fondo:#F6ECD8;
  --serif:'Playfair Display',Georgia,serif;
  --sans:'Inter',-apple-system,system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;background:var(--crema)}
body{background:var(--crema);color:var(--testo);font:15px/1.45 var(--sans);min-height:100dvh}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
a{color:inherit}
:focus-visible{outline:2px solid var(--corallo);outline-offset:2px}
.tasto{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:44px;padding:0 20px;border-radius:var(--r-pill);font-size:15px;font-weight:600;white-space:nowrap;text-decoration:none}
.tasto.pieno{background:var(--inchiostro);color:#F6F1E7}
.tasto.pieno:hover{background:#262A35}
.tasto.vuoto{border:1px solid var(--filo-forte);color:var(--inchiostro);height:36px;padding:0 15px;font-size:14px}
.tasto.vuoto:hover{border-color:var(--inchiostro)}
.marchio{font:700 1.15rem/1 var(--serif);color:var(--inchiostro);letter-spacing:-.005em}
.marchio em{font-style:italic;font-weight:500;color:var(--corallo-testo)}

/* ---------- accesso ---------- */
.accesso{min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto;padding:28px clamp(22px,6vw,72px) 26px;max-width:1120px;margin:0 auto}
.accesso main{align-self:center;max-width:460px;padding:48px 0}
.accesso h1{font:700 clamp(2.3rem,7vw,3.4rem)/1.04 var(--serif);color:var(--inchiostro);letter-spacing:-.015em}
.accesso h1 em{font-style:italic;font-weight:500;color:var(--corallo-testo)}
.accesso .sotto{margin:16px 0 30px;color:var(--muto);font-size:16px;max-width:38ch}
.accesso .g{width:18px;height:18px;flex:none}
.avviso{margin-top:18px;font-size:14px;line-height:1.4;color:var(--corallo-testo);background:var(--corallo-fondo);border-radius:var(--r-card);padding:10px 14px;max-width:420px}
.accesso footer{font-size:13px;color:var(--muto);border-top:1px solid var(--filo);padding-top:14px}

/* ---------- app (giro 1: solo l'ossatura) ---------- */
.app{max-width:1120px;margin:0 auto;padding:max(18px,env(safe-area-inset-top)) clamp(18px,4vw,40px) 40px}
.app-testa{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--filo)}
.app-testa .chi{font-size:13px;color:var(--muto);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app-testa .dx{display:flex;align-items:center;gap:12px;min-width:0}
.cantiere{margin:28px 0 30px;max-width:560px}
.cantiere h1{font:700 clamp(1.7rem,4.6vw,2.3rem)/1.1 var(--serif);color:var(--inchiostro)}
.cantiere p{margin-top:8px;color:var(--muto)}
.sez-tit{display:flex;align-items:baseline;gap:8px;font-size:13px;font-weight:600;color:var(--muto);margin:0 2px 10px}
.sez-tit b{font:700 20px/1 var(--serif);color:var(--inchiostro)}
.aree{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.area{background:var(--carta);border:1px solid var(--filo);border-radius:var(--r-card);padding:11px 13px;min-width:0}
.area .n{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--inchiostro)}
.area .n i{width:10px;height:10px;border-radius:50%;flex:none;background:var(--c)}
.area .n small{margin-left:auto;font-size:12px;font-weight:600;color:var(--muto);background:rgba(15,17,23,.05);border-radius:var(--r-pill);padding:2px 8px}
.area .al{margin-top:4px;font-size:12.5px;color:var(--muto);overflow-wrap:anywhere}
.stato-msg{font-size:14px;color:var(--muto);padding:10px 2px}
