/* Molare — tema predefinito. Pensato prima per il telefono, poi allargato per tablet e computer. */
:root{
  --brand:#1f6feb; --bg:#f3f5f9; --card:#fff; --ink:#14202e; --muted:#5f6b7a; --line:#e2e7ee;
  --ok:#15803d; --warn:#b45309; --bad:#c62828; --radius:16px; --tap:48px; --nav:64px;
  --shadow:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.06);
  --font:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --fs:16px;
}
html[data-text=large]{--fs:18px}
@media (prefers-color-scheme:dark){html[data-mode=auto]{--bg:#0e141b;--card:#18212b;--ink:#eaf0f6;--muted:#9aa8b8;--line:#2a3643;--shadow:none}}
html[data-mode=dark]{--bg:#0e141b;--card:#18212b;--ink:#eaf0f6;--muted:#9aa8b8;--line:#2a3643;--shadow:none}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{font-size:var(--fs);-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);background:var(--bg);color:var(--ink);line-height:1.45;min-height:100dvh}
a{color:var(--brand)} h1{font-size:1.5rem;margin:.4rem 0 .8rem;line-height:1.2} h2{font-size:1.05rem;margin:1.4rem 0 .5rem} h3{margin:.2rem 0 .6rem}
h1.tight{margin:0;font-size:1.25rem} h1.big{margin:.5rem 0 .2rem;font-size:2rem}
.muted{color:var(--muted)} .small{font-size:.85rem} small{font-size:.82rem;display:block} .grow{flex:1;min-width:0} .right{text-align:right}
.clip{white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .warn-t{color:var(--warn)} .struck{opacity:.55;text-decoration:line-through}
.ic{width:22px;height:22px;flex:none} code{background:var(--line);padding:1px 5px;border-radius:6px;font-size:.85em}
.pad{padding:12px}

/* ----- struttura ----- */
.page{padding:12px 16px calc(var(--nav) + 96px);max-width:760px;margin:0 auto}
.top{display:none}
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:var(--nav);text-decoration:none;color:var(--muted);font-size:.72rem;font-weight:600}
.tabbar a.on{color:var(--brand)}
.fab{position:fixed;right:16px;bottom:calc(var(--nav) + 16px + env(safe-area-inset-bottom));z-index:25;display:flex;align-items:center;gap:8px;min-height:56px;padding:0 20px 0 16px;border-radius:28px;background:var(--brand);color:#fff;text-decoration:none;font-weight:700;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.fab .ic{width:24px;height:24px}
.back{display:inline-flex;align-items:center;gap:4px;min-height:40px;text-decoration:none;font-weight:600;margin-left:-4px}

/* ----- componenti ----- */
.card{background:var(--card);border-radius:var(--radius);padding:14px;margin:0 0 14px;box-shadow:var(--shadow)}
.card.slim{display:flex;align-items:center;gap:12px;padding:10px 12px}
.list{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-bottom:14px}
.item{display:flex;align-items:center;gap:12px;min-height:60px;padding:10px 14px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;position:relative;margin:0}
.item:last-child{border-bottom:0} a.item:active{background:var(--bg)}
.item.col{flex-direction:column;align-items:stretch;gap:2px}
.item.appt{border-left:5px solid var(--c,var(--brand))}
.item.appt.s-annullato,.item.appt.s-assente{opacity:.55}
.item.free{min-height:44px;background:transparent;border:1.5px dashed var(--line);border-radius:12px;margin:6px 8px;color:var(--muted)}
.item .time{display:flex;flex-direction:column;min-width:52px;font-variant-numeric:tabular-nums}
.item .time small{color:var(--muted)}
.item > .ic:last-child{color:var(--muted)}
.avatar{width:42px;height:42px;border-radius:50%;background:color-mix(in srgb,var(--brand) 16%,transparent);color:var(--brand);display:grid;place-items:center;font-weight:700;font-size:.9rem;flex:none}
.avatar.lg{width:52px;height:52px;font-size:1.05rem}
.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.74rem;font-weight:700;background:var(--line);color:var(--muted);white-space:nowrap}
.b-confermato,.q-sent{background:#dcfce7;color:#166534} .b-arrivato{background:#dbeafe;color:#1e40af} .b-completato{background:#e0e7ff;color:#3730a3}
.b-assente,.q-failed{background:#fee2e2;color:#991b1b} .b-annullato,.q-cancelled{background:#e5e7eb;color:#4b5563} .b-prenotato,.q-pending,.q-sending{background:#fef3c7;color:#92400e}
span.q-sent{color:var(--ok);background:none} span.q-failed{color:var(--bad);background:none}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%} .dot.lg{width:16px;height:16px}
.between{display:flex;justify-content:space-between;align-items:center;gap:10px}
.phead{display:flex;align-items:center;gap:12px}
.plink{display:inline-flex;align-items:center;gap:4px;font-size:1.15rem;font-weight:700;text-decoration:none}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:12px 0 0}.kv dt{color:var(--muted)}.kv dd{margin:0}
.empty{text-align:center;padding:36px 12px;color:var(--muted)}.empty h1,.empty h2{color:var(--ink)}
.flash{padding:12px 14px;border-radius:12px;margin:0 0 12px;font-weight:500}.flash.ok{background:#dcfce7;color:#14532d}.flash.err{background:#fee2e2;color:#7f1d1d}
@media (prefers-color-scheme:dark){html[data-mode=auto] .flash.ok{background:#12351f;color:#bbf7d0}html[data-mode=auto] .flash.err{background:#3b1414;color:#fecaca}}
html[data-mode=dark] .flash.ok{background:#12351f;color:#bbf7d0}html[data-mode=dark] .flash.err{background:#3b1414;color:#fecaca}

/* ----- pulsanti e campi: bersagli da almeno 48px, testo a 16px per non far zoomare iOS ----- */
.btn,button.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:0 16px;border-radius:14px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font:600 1rem var(--font);text-decoration:none;cursor:pointer;text-align:center}
.btn.pri{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}
.btn.sm{min-height:38px;padding:0 12px;font-size:.9rem;border-radius:12px}
.btn.wide{width:100%} .btn[disabled]{opacity:.5} .btn:active{transform:scale(.98)}
.linkbtn{background:none;border:0;color:var(--brand);font:inherit;font-weight:600;padding:8px 0;cursor:pointer;display:inline-flex;align-items:center;gap:8px}
.linkbtn.small{font-size:.85rem}
.icobtn{width:var(--tap);height:var(--tap);display:grid;place-items:center;border-radius:14px;background:var(--card);box-shadow:var(--shadow);color:var(--ink);text-decoration:none;flex:none}
.row2,.row3,.two{display:grid;gap:10px}.row2,.two{grid-template-columns:1fr 1fr}.row3{grid-template-columns:repeat(3,1fr)}.gap{margin:12px 0 0}
.row3 .btn{padding:0 6px;font-size:.92rem}
.statusgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.form{display:grid;gap:14px;margin-bottom:14px}.form.card{gap:12px}
label.f{display:grid;gap:6px;font-weight:600;font-size:.9rem}
label.f small{font-weight:400}
input:not([type=checkbox]):not([type=radio]):not([type=color]),select,textarea{width:100%;min-height:var(--tap);padding:10px 12px;border:1.5px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);font:400 1rem var(--font);appearance:none;-webkit-appearance:none}
select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%238a96a6' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}
textarea{resize:vertical;min-height:96px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:1px;border-color:transparent}
.colorbig{width:100%;height:var(--tap);border:1.5px solid var(--line);border-radius:12px;padding:3px;background:var(--card)}
.chk{display:flex;gap:12px;align-items:center;min-height:var(--tap);font-weight:500}
.chk input,input.big{width:24px;height:24px;flex:none;accent-color:var(--brand)}
.chk.warn{background:#fef3c7;color:#78350f;padding:8px 12px;border-radius:12px}
details>summary{cursor:pointer;list-style:none;min-height:var(--tap);display:flex;align-items:center}details>summary::-webkit-details-marker{display:none}
details.card>summary{justify-content:center}
.actionbar{position:sticky;bottom:calc(var(--nav) + env(safe-area-inset-bottom) + 8px);z-index:5;padding-top:6px}
fieldset.prov{border:0;margin:0;display:grid;gap:12px}fieldset[hidden]{display:none}
.searchbar{display:flex;align-items:center;gap:8px;background:var(--card);border:1.5px solid var(--line);border-radius:14px;padding:0 12px;margin-bottom:10px}
.searchbar .ic{color:var(--muted)}.searchbar input{border:0!important;background:none!important;min-height:50px;padding:0!important;outline:0!important}
.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px;margin:0 -16px;padding-left:16px;padding-right:16px;scrollbar-width:none;align-items:center}
.chips::-webkit-scrollbar{display:none}
.chips.sticky{position:sticky;top:0;z-index:10;background:var(--bg);padding-top:8px;margin-top:8px}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border-radius:999px;background:var(--card);border:1.5px solid var(--line);color:var(--ink);font-weight:600;font-size:.9rem;text-decoration:none;white-space:nowrap;flex:none}
.chip.on{background:var(--brand);border-color:var(--brand);color:#fff}
.pager{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}

/* ----- agenda: barra della data ----- */
.datebar{display:flex;gap:10px;align-items:stretch;margin-bottom:10px}
.datepick{flex:1;display:flex}
.datelabel{position:relative;flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;background:var(--card);border-radius:14px;box-shadow:var(--shadow);min-height:var(--tap);padding:6px 10px;text-align:center}
.datelabel b{font-size:1.02rem}.datelabel small{color:var(--muted)}
.datelabel input[type=date]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;min-height:0;padding:0;border:0}

/* ----- schede paziente ----- */
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.kpi{background:var(--card);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow)}.kpi small{color:var(--muted)}.kpi b{font-size:1.3rem;display:block;margin-top:2px}
.check{width:40px;height:40px;border-radius:50%;border:2px solid var(--line);background:none;color:transparent;display:grid;place-items:center;flex:none;cursor:pointer}
.check.on{background:var(--ok);border-color:var(--ok);color:#fff}
.odonto{display:grid;gap:10px}.quad{background:var(--card);border-radius:14px;padding:8px 8px 10px;box-shadow:var(--shadow)}
.teeth{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:3px;margin-top:4px}
.tooth{min-height:56px;border-radius:10px 10px 14px 14px;border:2px solid var(--line);background:#fff;color:#334155;font:700 .85rem var(--font);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;line-height:1;cursor:pointer;padding:2px 0;min-width:0}
.tooth small{font-size:.46rem;font-weight:600;letter-spacing:-.02em;opacity:.72;white-space:nowrap;display:block}
.t-sano{background:#fff} .t-carie{background:#fca5a5;border-color:#ef4444!important} .t-otturato{background:#93c5fd;border-color:#3b82f6!important}
.t-devitalizzato{background:#fcd34d;border-color:#d97706!important} .t-corona{background:#c4b5fd;border-color:#7c3aed!important} .t-impianto{background:#99f6e4;border-color:#0d9488!important}
.t-estrarre{background:#fdba74;border-color:#ea580c!important} .t-mancante{background:repeating-linear-gradient(45deg,#e5e7eb,#e5e7eb 4px,#f9fafb 4px,#f9fafb 8px);color:#9ca3af}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.8rem;color:var(--muted);margin:10px 0}.legend span{display:inline-flex;align-items:center;gap:6px}
.sw{display:inline-block;width:16px;height:16px;border-radius:5px;border:2px solid var(--line)}
.statelist{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.statelist .btn{justify-content:flex-start}

/* ----- messaggi ----- */
.bubbles{display:grid;gap:10px}.bubble{background:var(--brand);color:#fff;padding:10px 14px;border-radius:18px 18px 4px 18px;margin-left:12%;word-break:break-word}
.bubble small{opacity:.85;margin-top:4px}.bubble .q-sent,.bubble .q-failed{color:inherit}.bubble .warn-t{color:#fde68a}.bubble .linkbtn{color:#fff;text-decoration:underline}

/* ----- grafico ----- */
.bars{display:flex;align-items:flex-end;gap:2px;height:130px;background:var(--card);border-radius:var(--radius);padding:12px 10px 4px;box-shadow:var(--shadow);margin-bottom:14px}
.bar{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}.bar i{display:block;width:100%;background:var(--brand);border-radius:3px 3px 0 0;min-height:0}
.bar small{font-size:.6rem;color:var(--muted);height:14px}

/* ----- bottom sheet ----- */
.sheet{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.45);display:flex;align-items:flex-end;justify-content:center}.sheet[hidden]{display:none}
.sheetbody{width:100%;max-width:520px;background:var(--card);border-radius:22px 22px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom));animation:up .18s ease-out}
@keyframes up{from{transform:translateY(40px);opacity:0}}

/* ----- accesso ----- */
.login{max-width:420px;margin:0 auto;padding:max(40px,env(safe-area-inset-top)) 20px 40px;text-align:center}
.login .logo{width:72px;height:72px;margin:0 auto 10px;border-radius:20px;background:var(--brand);color:#fff;display:grid;place-items:center}.login .logo .ic{width:40px;height:40px}
.login form{text-align:left}.login .flash{text-align:left}

/* ----- schermi larghi: barra laterale al posto della barra in basso ----- */
@media (min-width:900px){
  body.app{padding-left:240px}
  .top{display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;width:240px;background:var(--card);border-right:1px solid var(--line);padding:18px 12px;gap:16px;z-index:40}
  .brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.1rem;color:var(--ink);text-decoration:none;padding:0 8px}.brand .ic{color:var(--brand);width:28px;height:28px}
  .side{display:flex;flex-direction:column;gap:2px}.side a,.side .linkbtn{display:flex;align-items:center;gap:12px;min-height:46px;padding:0 12px;border-radius:12px;color:var(--ink);text-decoration:none;font-weight:600;width:100%}
  .side a.on{background:color-mix(in srgb,var(--brand) 14%,transparent);color:var(--brand)}.side a:hover,.side .linkbtn:hover{background:var(--bg)}.side .linkbtn{color:var(--muted)}
  .tabbar{display:none}
  .page{max-width:880px;padding-bottom:120px}
  .fab{bottom:24px;right:28px}
  .actionbar{bottom:12px}
  .top .linkbtn{padding:0 12px}
}
@media (hover:hover){.btn:hover{border-color:var(--brand)}}
@media print{.tabbar,.top,.fab,.actionbar{display:none!important}body.app{padding:0}}

/* ----- agenda: calendario (giorno per medico, settimana) ----- */
.datebar .todaybtn{min-height:var(--tap);display:none}
.chips .sep{width:1px;align-self:stretch;background:var(--line);margin:4px 2px;flex:none}
.chip .ic{width:16px;height:16px}
.never{display:none}
.calview{display:block}
.calwrap{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:auto;max-height:calc(100dvh - 230px);min-height:360px;position:relative;border:1px solid var(--line)}
.cal{min-width:max-content;--g:56px}
.cal-head,.cal-body{display:grid;grid-template-columns:var(--g) repeat(var(--cols),minmax(150px,1fr))}
.cal-head{position:sticky;top:0;z-index:6;background:var(--card);border-bottom:1px solid var(--line)}
.corner{position:sticky;left:0;z-index:7;background:var(--card)}
.colhead{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:52px;padding:6px 8px;text-decoration:none;color:var(--ink);border-left:1px solid var(--line);text-align:center}
.colhead b{display:inline-flex;align-items:center;gap:6px;font-size:.95rem}.colhead small{color:var(--muted)}
.colhead:hover{background:var(--bg)}.colhead.today{color:var(--brand)}.colhead.today b{font-weight:800}
.cal-body{position:relative}
.gutter{position:sticky;left:0;z-index:4;background:var(--card);height:var(--colh);border-right:1px solid var(--line)}
.gutter span{position:absolute;right:8px;transform:translateY(-50%);font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums}
.gutter span:first-child{transform:translateY(2px)}
.col{position:relative;height:var(--colh);border-left:1px solid var(--line);background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(72px - 1px),var(--line) calc(72px - 1px),var(--line) 72px)}
.col.today{background-color:color-mix(in srgb,var(--brand) 5%,transparent)}
.slot{position:absolute;left:0;right:0;display:block;text-decoration:none;color:transparent;border-bottom:1px dashed transparent}
.slot:nth-child(even){border-bottom-color:color-mix(in srgb,var(--line) 55%,transparent)}
.slot span{display:none;position:absolute;left:6px;top:50%;transform:translateY(-50%);font-size:.75rem;font-weight:700;color:var(--brand)}
.slot:hover{background:color-mix(in srgb,var(--brand) 10%,transparent)}.slot:hover span{display:block}.slot:hover span::before{content:"+ "}
.ev{position:absolute;z-index:2;display:block;overflow:hidden;padding:3px 7px;border-radius:8px;text-decoration:none;color:var(--ink);font-size:.8rem;line-height:1.25;
  background:color-mix(in srgb,var(--c) 17%,var(--card));border:1px solid color-mix(in srgb,var(--c) 40%,transparent);border-left:4px solid var(--c)}
.ev:hover{z-index:3;box-shadow:0 4px 14px rgba(0,0,0,.2)}
.ev b{font-variant-numeric:tabular-nums}.ev .who{font-weight:700}.ev small{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev.tiny{padding-top:1px;padding-bottom:1px;white-space:nowrap}.ev.tiny small{display:none}
.ev.s-assente,.ev.s-completato{opacity:.7}.ev.s-assente .who{text-decoration:line-through}
.ev .stat{position:absolute;right:5px;top:4px;font-style:normal;font-size:.62rem;font-weight:700;padding:1px 6px;border-radius:999px}
.ev.tiny .stat{display:none}
.nowline{position:absolute;left:0;right:0;height:0;border-top:2px solid #ef4444;z-index:5;pointer-events:none}
.nowline::before{content:"";position:absolute;left:-5px;top:-6px;width:10px;height:10px;border-radius:50%;background:#ef4444}
.calhint{margin:8px 2px 0}
/* modalità automatica: calendario su schermo largo, elenco su telefono */
.auto-wide{display:none}
.chip.aw,.chip.an{}
@media (min-width:900px){
  .auto-wide{display:block}.auto-narrow{display:none}
  .chip.aw{background:var(--brand);border-color:var(--brand);color:#fff}
  .datebar .todaybtn{display:inline-flex}
  .page.wide{max-width:1320px}
  .calwrap{max-height:calc(100dvh - 210px)}
}
@media (max-width:899px){
  .chip.an{background:var(--brand);border-color:var(--brand);color:#fff}
  .cal{--g:44px}.cal-head,.cal-body{grid-template-columns:var(--g) repeat(var(--cols),minmax(130px,1fr))}
  .calview .calhint{display:none}
}

/* ===== Sito pubblico e area pazienti ===== */
body.pub{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
.pubtop{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;background:var(--card);border-bottom:1px solid var(--line)}
.pubtop .brand{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--brand);text-decoration:none;min-width:0}
.pubtop .brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pubtop nav{display:flex;align-items:center;gap:6px}
.pubtop nav a:not(.btn){display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border-radius:10px;color:var(--ink);text-decoration:none;font-weight:600;min-height:40px}
.pubtop nav a .ic{width:18px;height:18px}
@media(max-width:560px){.pubtop nav a:not(.btn) span{display:none}.hide-s{display:none!important}}
.pubpage{max-width:820px;margin:0 auto;padding:16px 16px 24px}
.hero{padding:28px 20px;border-radius:var(--radius);background:linear-gradient(135deg,var(--brand),color-mix(in srgb,var(--brand) 55%,#000));color:#fff;margin-bottom:18px}
.hero h1{margin:0 0 8px;font-size:1.7rem;line-height:1.2}
.hero p{margin:0 0 16px;opacity:.95}
.hero .btn{background:#fff;color:#14202e;border-color:#fff}
.hero .btn.pri{background:#fff;color:var(--brand)}
.svcgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-bottom:16px}
.svc{display:flex;flex-direction:column;gap:2px;margin:0}
.pubbar{position:fixed;left:0;right:0;bottom:0;z-index:25;display:flex;gap:10px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--card);border-top:1px solid var(--line)}
.pubbar .btn{flex:1}
.pubfoot{max-width:820px;margin:0 auto;padding:8px 16px 24px;color:var(--muted);font-size:.9rem}
.pubfoot .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:12px}
.pubfoot p{margin:4px 0}.pubfoot a{color:var(--muted)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.narrow{max-width:420px;margin:0 auto}
.center{text-align:center}
.bigok{width:64px;height:64px;margin:0 auto 8px;border-radius:50%;background:var(--ok);color:#fff;display:grid;place-items:center}
.bigok .ic{width:34px;height:34px}
.codein{font-size:1.8rem!important;letter-spacing:.5em;text-align:center;font-variant-numeric:tabular-nums}
.check-row{display:flex;gap:10px;align-items:flex-start;padding:6px 0;cursor:pointer}
.check-row input{width:22px;height:22px;flex:none;margin-top:2px}
.appt .big{font-size:1.15rem}
.appt details{margin-top:8px}
.req .row3{margin-top:8px}
.prose{line-height:1.6}
.badge.b-prenotato{background:#e8f0fe;color:#1a56c4}
@media(min-width:900px){body.pub{padding-bottom:0}.pubbar{display:none}.hero h1{font-size:2.2rem}.hero{padding:44px 36px}}
.nbadge{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--bad);color:#fff;font:700 .75rem/1 var(--font);font-style:normal;margin-left:auto}
.nbadge.dot{min-width:10px;width:10px;height:10px;padding:0;position:absolute;top:8px;margin-left:14px}
.tabbar a{position:relative}
.pubpage .actionbar{position:static;background:none;border:0;padding:0;margin-top:8px;box-shadow:none}

