/* Aree riservate: stesso carattere del sito (osteria) ma più sobrio e leggibile per lavorare */
:root{--carta:#fff7e8;--carta2:#f7e9cf;--ink:#2b2118;--mut:#6b5a48;--line:#e3d2b3;--terra:#c2410c;--senape:#e0a92f;--salvia:#5b6b4f;--card:#fff;--rosso:#b91c1c;
  --f-d:'Fraunces',Georgia,serif;--f-b:'Inter',system-ui,sans-serif;--f-h:'Caveat',cursive}
*{box-sizing:border-box}
body{margin:0;background:var(--carta);color:var(--ink);font:16px/1.55 var(--f-b);-webkit-font-smoothing:antialiased}
a{color:var(--terra)}
::selection{background:var(--senape)}
.strip{height:14px;background:repeating-linear-gradient(90deg,var(--terra) 0 28px,#fff 28px 56px)}
.wrap{max-width:1080px;margin:0 auto;padding:0 18px}
.appbar{display:flex;align-items:center;gap:14px;padding:16px 0;flex-wrap:wrap}
.logo{font:900 1.3rem/1 var(--f-d);text-decoration:none;color:var(--carta);background:var(--ink);padding:8px 14px;border-radius:3px;transform:rotate(-1.5deg);display:inline-block}
.logo i{color:var(--senape)}
.who{margin-left:auto;color:var(--mut);font-size:.9rem}
.lnk{background:none;border:0;color:var(--terra);font:inherit;cursor:pointer;text-decoration:underline;padding:4px}
h1{font:900 clamp(1.8rem,1.3rem + 2vw,2.6rem)/1.05 var(--f-d);margin:8px 0 6px;font-variation-settings:"SOFT" 100}
h2{font:800 1.4rem/1.2 var(--f-d);margin:0 0 10px;font-variation-settings:"SOFT" 100}
h3{font:800 1.1rem/1.2 var(--f-d);margin:0 0 6px}
.sub{color:var(--mut);margin:0 0 18px}
.hand{font:700 1.5rem/1 var(--f-h);color:var(--terra)}

.tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:2.5px solid var(--ink);margin:18px 0 20px}
.tabs button{font:700 .95rem var(--f-b);background:none;border:2.5px solid transparent;border-bottom:0;padding:10px 16px;cursor:pointer;color:var(--mut);border-radius:10px 10px 0 0;position:relative;top:2.5px}
.tabs button[aria-selected=true]{background:var(--card);border-color:var(--ink);color:var(--ink)}
.tabs button:focus-visible,.btn:focus-visible,.lnk:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--senape);outline-offset:2px}
.cnt:not(:empty){margin-left:6px;background:var(--terra);color:#fff;border-radius:999px;padding:1px 8px;font-size:.78rem}

.card{background:var(--card);border:2.5px solid var(--ink);border-radius:12px;padding:18px;box-shadow:4px 4px 0 var(--ink);margin-bottom:18px}
.card.soft{box-shadow:4px 4px 0 var(--line)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:18px}
.kpi{background:var(--card);border:2.5px solid var(--ink);border-radius:12px;padding:14px 16px}
.kpi b{display:block;font:900 1.7rem/1.1 var(--f-d)}
.kpi span{color:var(--mut);font-size:.85rem}
.kpi.hl{background:var(--senape)}.kpi.hl span{color:var(--ink)}
.banner{border:2.5px solid var(--ink);border-radius:12px;padding:12px 16px;margin:0 0 18px;background:var(--senape);font-weight:500}
.banner.ok{background:#dfe8d6}.banner.err{background:#f6d6d2}
.banner ul{margin:6px 0 0;padding-left:20px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;background:var(--terra);color:#fff;font:800 .95rem var(--f-b);border:2.5px solid var(--ink);border-radius:999px;cursor:pointer;box-shadow:0 3px 0 var(--ink);text-decoration:none}
.btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}
.btn.ghost{background:var(--card);color:var(--ink)}
.btn.sm{min-height:34px;padding:0 12px;font-size:.85rem}
.btn.red{background:var(--rosso)}
.btn:disabled{opacity:.55;cursor:wait}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.f{display:grid;gap:4px;margin-bottom:12px}
.f .l{font:700 1.3rem/1 var(--f-h)}
.f small{color:var(--mut)}
input,select,textarea{font:inherit;width:100%;padding:11px 12px;border:2px solid var(--ink);border-radius:10px;background:var(--carta);color:var(--ink)}
input[type=checkbox]{width:auto;accent-color:var(--terra)}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0 16px}
.chk{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;color:var(--mut);margin:10px 0}

.tw{overflow-x:auto}
table.t{width:100%;border-collapse:collapse;font-size:.95rem}
.t th{font:700 .78rem var(--f-b);text-transform:uppercase;letter-spacing:.06em;color:var(--mut);text-align:left;padding:8px 10px;border-bottom:2.5px solid var(--ink)}
.t td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}
.t .num{text-align:right;font-variant-numeric:tabular-nums}
.empty{color:var(--mut);font-style:italic}
.badge{display:inline-block;font:700 .75rem var(--f-b);padding:2px 9px;border-radius:999px;border:2px solid var(--ink);background:var(--card);white-space:nowrap}
.badge.go{background:#dfe8d6}.badge.wait{background:var(--senape)}.badge.no{background:#f6d6d2}.badge.dim{background:var(--carta2)}

.bk{display:grid;grid-template-columns:auto 1fr auto;gap:6px 16px;align-items:center;padding:14px;border:2.5px solid var(--ink);border-radius:12px;background:var(--card);margin-bottom:10px}
.bk .when{font:900 1.1rem/1.1 var(--f-d);text-align:center;min-width:76px}
.bk .when small{display:block;font:600 .8rem var(--f-b);color:var(--mut)}
.bk .who2 b{display:block}
.bk .who2 span{color:var(--mut);font-size:.9rem}
.bk .acts{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.bk .acts input{width:70px;padding:7px}
@media (max-width:640px){.bk{grid-template-columns:1fr}.bk .when{text-align:left}.bk .acts{justify-content:flex-start}}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.chip{border:2px solid var(--ink);background:var(--card);border-radius:999px;padding:6px 14px;font:700 .85rem var(--f-b);cursor:pointer}
.chip[aria-pressed=true]{background:var(--ink);color:var(--carta)}

.bars{display:flex;align-items:flex-end;gap:8px;height:130px;margin-top:10px}
.bar{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;min-width:0}
.bar i{display:block;width:100%;background:var(--terra);border:2px solid var(--ink);border-radius:6px 6px 0 0;min-height:3px}
.bar small{font-size:.7rem;color:var(--mut)}
pre.code{font:.82rem/1.55 'DM Mono',ui-monospace,monospace;background:var(--ink);color:#f6eddd;padding:14px 16px;overflow:auto;border-radius:8px;margin:10px 0}
.key{font:600 .95rem 'DM Mono',ui-monospace,monospace;background:var(--carta2);padding:6px 10px;border-radius:6px;word-break:break-all}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.plan{border:2.5px solid var(--ink);border-radius:12px;padding:16px;background:var(--card)}
.plan.cur{background:#dfe8d6}
.plan .pr{font:900 1.6rem/1.1 var(--f-d)}

dialog.modal{border:2.5px solid var(--ink);border-radius:12px;padding:0;max-width:760px;width:calc(100% - 32px);background:var(--carta);color:var(--ink)}
dialog.modal::backdrop{background:rgba(43,33,24,.55)}
.mh{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:2.5px solid var(--ink);background:var(--carta2)}
dialog.modal>div:last-child{padding:16px 18px}
.tot{font:800 1.2rem var(--f-d);text-align:right}.tot small{font:400 .8rem var(--f-b);color:var(--mut);display:block}
#toasts{position:fixed;right:16px;bottom:16px;display:grid;gap:8px;z-index:50}
.toast{background:var(--ink);color:var(--carta);padding:10px 16px;border-radius:10px;font-weight:600;max-width:340px}
.toast.err{background:var(--rosso)}
.auth{max-width:520px;margin:18px auto 60px}
.auth .card{padding:24px}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}
.seg button{border:2.5px solid var(--ink);background:var(--card);border-radius:12px;padding:12px;font:800 1rem var(--f-b);cursor:pointer}
.seg button[aria-pressed=true]{background:var(--terra);color:#fff;box-shadow:0 3px 0 var(--ink)}
footer.app{padding:30px 0 50px;color:var(--mut);font-size:.85rem}
.row select{width:auto;min-width:160px;padding:9px 12px}
