:root{
  --paper:#FBF7F2; --surface:#FFFFFF; --surface-2:#F3ECE4; --border:#E8DED3;
  --ink:#1F1C18; --muted:#857C70; --faint:#B5AB9E;
  --primary:#3F3A6B; --primary-ink:#FFFFFF; --primary-tint:#E9E7F5;
  --sun:#E0913A; --sun-tint:#FCEBD6; --night:#2E2A55; --night-2:#4A4482;
  --work:#8A6752; --work-tint:#F3E7DF;
  --u-bassa:#6F8F7A; --u-bassa-tint:#E5EEE7;
  --u-media:#3B6EA5; --u-media-tint:#E4ECF6;
  --u-alta:#D07A2B; --u-alta-tint:#FBEBDB;
  --u-critica:#C1443C; --u-critica-tint:#FBE4E2;
  --radius-s:10px; --radius-m:16px; --radius-l:24px; --radius-full:999px;
  --shadow:0 1px 2px rgba(31,28,24,.05), 0 12px 28px -16px rgba(31,28,24,.35);
  --font-display:'Literata', Georgia, serif; --font-ui:'Plus Jakarta Sans', system-ui, sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#14131A; --surface:#1D1C25; --surface-2:#26242F; --border:#363341;
    --ink:#F2EFE9; --muted:#A29C93; --faint:#6E6977;
    --primary:#B9B3F0; --primary-ink:#1B1838; --primary-tint:rgba(185,179,240,.15);
    --sun:#F0A75A; --sun-tint:rgba(240,167,90,.16); --night:#24213F; --night-2:#3A3570;
    --work:#E5CDBF; --work-tint:rgba(229,205,191,.14);
    --u-bassa:#93B79F; --u-bassa-tint:rgba(147,183,159,.16);
    --u-media:#7FADE0; --u-media-tint:rgba(127,173,224,.16);
    --u-alta:#EFA35E; --u-alta-tint:rgba(239,163,94,.16);
    --u-critica:#EC877E; --u-critica-tint:rgba(236,135,126,.18);
    color-scheme:dark;
  }
}
/* modalità scura scelta a mano (Impostazioni → Aspetto): stessi colori */
:root[data-theme="dark"]{
    --paper:#14131A; --surface:#1D1C25; --surface-2:#26242F; --border:#363341;
    --ink:#F2EFE9; --muted:#A29C93; --faint:#6E6977;
    --primary:#B9B3F0; --primary-ink:#1B1838; --primary-tint:rgba(185,179,240,.15);
    --sun:#F0A75A; --sun-tint:rgba(240,167,90,.16); --night:#24213F; --night-2:#3A3570;
    --work:#E5CDBF; --work-tint:rgba(229,205,191,.14);
    --u-bassa:#93B79F; --u-bassa-tint:rgba(147,183,159,.16);
    --u-media:#7FADE0; --u-media-tint:rgba(127,173,224,.16);
    --u-alta:#EFA35E; --u-alta-tint:rgba(239,163,94,.16);
    --u-critica:#EC877E; --u-critica-tint:rgba(236,135,126,.18);
    color-scheme:dark;
  }
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
/* stessa altezza delle minuscole con qualsiasi carattere: niente salti di misura cambiando font */
body,input,select,textarea,button{font-size-adjust:0.5;}
h1,h2,h3,.sleep .big,.fontopt .big{font-size-adjust:0.48;}
body{background:var(--paper);color:var(--ink);font-family:var(--font-ui);font-size:15px;line-height:1.45;
  min-height:100dvh;padding-bottom:calc(84px + env(safe-area-inset-bottom));}
button,input,select,textarea{font:inherit;color:inherit;}
button{cursor:pointer;}
[hidden]{display:none!important;}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px;}
h1,h2,h3{font-family:var(--font-display);font-weight:600;margin:0;text-wrap:balance;}
.wrap{max-width:600px;margin:0 auto;padding:0 16px;}
.muted{color:var(--muted);}
.small{font-size:13px;}

/* ---------- login ---------- */
.login{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px;}
.login-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);
  padding:28px 22px;box-shadow:var(--shadow);}
.logo{width:56px;height:56px;border-radius:16px;display:block;margin-bottom:16px;}
.login-card h1{font-size:26px;margin-bottom:4px;}
.login-card p{margin:0 0 18px;}

/* ---------- campi ---------- */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;}
.field > span{font-size:12.5px;font-weight:700;color:var(--muted);}
.input,select.input,textarea.input{width:100%;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-s);
  padding:11px 12px;font-size:16px;min-height:44px;}
textarea.input{min-height:72px;resize:vertical;}
.row{display:flex;gap:10px;align-items:center;}
.row > .field{flex:1;min-width:0;}
.btn{border:none;border-radius:var(--radius-full);padding:12px 18px;font-weight:700;font-size:15px;min-height:44px;
  background:var(--surface-2);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:8px;}
.btn.primary{background:var(--primary);color:var(--primary-ink);}
.btn.danger{background:var(--u-critica-tint);color:var(--u-critica);}
.btn.ghost{background:transparent;color:var(--muted);}
.btn.block{width:100%;}
.btn:disabled{opacity:.55;}
.link{background:none;border:none;color:var(--primary);font-weight:700;padding:8px 0;}
.error{color:var(--u-critica);font-size:13.5px;min-height:20px;margin:4px 0;}
.ok{color:var(--u-bassa);}

/* ---------- header ---------- */
.top{padding:calc(14px + env(safe-area-inset-top)) 0 8px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.claudebtn{display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-weight:800;font-size:13.5px;color:#C15F3C;
  background:color-mix(in srgb,#D97757 14%,var(--surface));border:1px solid color-mix(in srgb,#D97757 35%,transparent);
  border-radius:var(--radius-full);padding:8px 13px;margin-top:4px;flex-shrink:0;}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .claudebtn{color:#F0A487;} }
:root[data-theme="dark"] .claudebtn{color:#F0A487;}
.note{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);padding:12px 14px;cursor:pointer;}
.note .t{font-weight:800;}
.note .m{font-size:12px;color:var(--muted);margin-top:2px;display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.note .p{font-size:13.5px;color:var(--muted);margin-top:6px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line;}
.notebody{white-space:pre-wrap;font-size:15px;line-height:1.55;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);padding:14px;margin:8px 0;overflow-wrap:anywhere;}
.daynote{display:flex;gap:8px;align-items:center;font-size:13.5px;padding:8px 12px;border-radius:12px;background:var(--primary-tint);color:var(--ink);margin-top:6px;cursor:pointer;}
.top .date{font-size:13px;font-weight:700;color:var(--muted);text-transform:capitalize;letter-spacing:.02em;}
.top > div{min-width:0;flex:1;}
.top h1{font-size:clamp(22px,6.6vw,28px);line-height:1.15;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* ---------- card sonno ---------- */
.sleep{border-radius:var(--radius-l);padding:18px;margin:10px 0 18px;position:relative;overflow:hidden;
  background:linear-gradient(135deg,var(--night) 0%,var(--night-2) 100%);color:#F4F1FF;}
.sleep.day{background:linear-gradient(135deg,var(--day-1,#F6C982) 0%,var(--day-2,#E8915A) 100%);color:var(--day-ink,#3A2410);}
.sleep .lbl{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;opacity:.8;}
.sleep .big{font-family:var(--font-display);font-size:34px;font-weight:600;line-height:1.1;margin:4px 0 2px;}
.sleep .why{font-size:13.5px;opacity:.9;min-height:2.9em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.sleep .warn{margin-top:8px;font-size:13px;background:rgba(255,255,255,.16);border-radius:10px;padding:7px 10px;}
.sleep .actions{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap;}
.sleep .btn{background:rgba(255,255,255,.95);color:var(--night);}
.sleep.day .btn{color:var(--day-ink,#7A3F12);}
.sleep .btn.soft{background:rgba(255,255,255,.18);color:inherit;}
.sleep .orb{position:absolute;right:-30px;top:-30px;width:130px;height:130px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%,rgba(255,255,255,.55),rgba(255,255,255,0) 70%);pointer-events:none;}
.sleep .stats{display:flex;gap:16px;margin-top:12px;font-size:12.5px;opacity:.9;}
.sleep .stats b{display:block;font-size:16px;}

/* ---------- sezioni e liste ---------- */
.sec{margin:20px 0 8px;display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
.sec h2{font-size:19px;}
.sec .count{font-size:12.5px;color:var(--muted);font-weight:700;}
.list{display:flex;flex-direction:column;gap:8px;}
.empty{border:1.5px dashed var(--border);border-radius:var(--radius-m);padding:16px;text-align:center;color:var(--muted);font-size:14px;}

.item{display:flex;gap:12px;align-items:stretch;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius-m);padding:12px 12px 12px 0;position:relative;}
.item .bar{width:4px;border-radius:0 4px 4px 0;background:var(--u-media);flex-shrink:0;}
.item.u-bassa .bar{background:var(--u-bassa);} .item.u-alta .bar{background:var(--u-alta);} .item.u-critica .bar{background:var(--u-critica);}
.item.work .bar{background:var(--work);}
.item .time{width:3.6em;flex-shrink:0;font-weight:800;font-size:14px;font-variant-numeric:tabular-nums;}
.item .time small{display:block;font-weight:600;color:var(--muted);font-size:12px;}
.item .body{flex:1;min-width:0;cursor:pointer;}
.item .title{font-weight:700;overflow-wrap:anywhere;}
.item .meta{font-size:12.5px;color:var(--muted);display:flex;gap:6px;flex-wrap:wrap;margin-top:2px;align-items:center;}
.item.done .title{text-decoration:line-through;color:var(--muted);}
.item.past{opacity:.6;}
.check{width:30px;height:30px;border-radius:50%;border:2px solid var(--border);background:transparent;flex-shrink:0;align-self:center;
  display:flex;align-items:center;justify-content:center;color:transparent;}
.check:hover{border-color:var(--u-bassa);}
.item.done .check{background:var(--u-bassa);border-color:var(--u-bassa);color:#fff;}
.chip{display:inline-flex;align-items:center;gap:4px;border-radius:var(--radius-full);padding:2px 8px;font-size:11.5px;font-weight:800;
  background:var(--surface-2);color:var(--muted);}
.chip.u-bassa{background:var(--u-bassa-tint);color:var(--u-bassa);} .chip.u-media{background:var(--u-media-tint);color:var(--u-media);}
.chip.u-alta{background:var(--u-alta-tint);color:var(--u-alta);} .chip.u-critica{background:var(--u-critica-tint);color:var(--u-critica);}
.chip.work{background:var(--work-tint);color:var(--work);}
.chip.late{background:var(--u-critica);color:#fff;}

.next{background:var(--primary-tint);border-radius:var(--radius-m);padding:14px 16px;margin-bottom:6px;}
.next .lbl{font-size:12px;font-weight:800;color:var(--primary);text-transform:uppercase;letter-spacing:.06em;}
.next .t{font-weight:800;font-size:17px;margin-top:2px;}
.next .w{font-size:13.5px;color:var(--muted);}

/* ---------- agenda ---------- */
.seg{display:flex;background:var(--surface-2);border-radius:var(--radius-full);padding:3px;gap:2px;}
.seg button{flex:1;border:none;background:transparent;border-radius:var(--radius-full);padding:8px 12px;font-weight:700;font-size:13.5px;color:var(--muted);}
.seg button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.1);}
.navrow{display:flex;align-items:center;justify-content:space-between;margin:14px 0 10px;}
.navrow h2{font-size:18px;text-transform:capitalize;}
.iconbtn{width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;}
.week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:14px;}
.week button,.month button{border:none;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:6px 0 7px;display:flex;flex-direction:column;align-items:center;gap:1px;min-height:58px;}
.week button .d{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;}
.week button .n{font-size:17px;font-weight:800;}
.week button.today .n,.month button.today .n{color:var(--primary);}
.week button.sel,.month button.sel{background:var(--primary);border-color:var(--primary);color:var(--primary-ink);}
.week button.sel .d{color:inherit;opacity:.8;}
.dots{display:flex;gap:2px;height:6px;}
.dots i{width:5px;height:5px;border-radius:50%;background:var(--u-media);}
.dots i.work{background:var(--work);} .dots i.u-critica{background:var(--u-critica);} .dots i.u-alta{background:var(--u-alta);} .dots i.u-bassa{background:var(--u-bassa);}
.sel .dots i{background:currentColor!important;}
.month{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:14px;}
.month .h{font-size:11px;font-weight:800;color:var(--muted);text-align:center;text-transform:uppercase;padding-bottom:2px;}
.month button{min-height:46px;padding:5px 0;}
.month button .n{font-size:14px;font-weight:700;}
.month button.out{opacity:.35;}
.daygroup{margin-bottom:16px;}
.daygroup h3{font-family:var(--font-ui);font-size:13px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 8px;}

/* ---------- scadenze ---------- */
.countdown{font-weight:800;font-size:13px;text-align:right;flex-shrink:0;align-self:center;min-width:60px;}
.countdown small{display:block;font-weight:600;color:var(--muted);font-size:11.5px;}
.countdown.late{color:var(--u-critica);}
/* vista Scadenze: titolo a tutta larghezza; sotto, conto alla rovescia a sinistra e pulsanti a destra */
.item.dl{display:grid;grid-template-columns:4px minmax(0,1fr);column-gap:12px;row-gap:10px;}
.item.dl .bar{grid-row:1 / span 2;}
.item.dl .body{grid-column:2;}
.dlfoot{grid-column:2;display:flex;align-items:center;gap:8px;padding-top:10px;border-top:1px solid var(--border);}
.dlfoot .countdown{margin-right:auto;min-width:0;text-align:left;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:6px;}
.dlfoot .countdown small{display:inline;}
.dlfoot .check{width:34px;height:34px;}
.item.dl.done .dlfoot .countdown{color:var(--muted);}

/* ---------- impostazioni ---------- */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);padding:16px;margin-bottom:14px;}
.card h3{font-size:17px;margin-bottom:4px;}
.card > p,.acc-body > p{margin:0 0 12px;font-size:13.5px;color:var(--muted);}
.switch{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;}
.switch input{width:44px;height:26px;appearance:none;background:var(--border);border-radius:99px;position:relative;flex-shrink:0;transition:background .2s;}
.switch input::after{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background:#fff;top:3px;left:3px;transition:transform .2s;box-shadow:0 1px 2px rgba(0,0,0,.2);}
.switch input:checked{background:var(--primary);}
.switch input:checked::after{transform:translateX(18px);}
.urgrow{border-top:1px solid var(--border);padding:12px 0;}
.urgrow:first-of-type{border-top:none;}
.urgrow .head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;}
.offs{display:flex;flex-wrap:wrap;gap:6px;}
.off{border:1px solid var(--border);background:var(--surface-2);border-radius:var(--radius-full);padding:5px 10px;font-size:12.5px;font-weight:700;display:inline-flex;gap:6px;align-items:center;}
.off button{border:none;background:none;padding:0;color:var(--muted);font-size:14px;line-height:1;}
.off.add{border-style:dashed;background:transparent;color:var(--primary);}

/* ---------- barra in basso ---------- */
.nav{position:fixed;left:0;right:0;bottom:0;z-index:30;background:color-mix(in srgb,var(--surface) 92%,transparent);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);}
.nav .in{max-width:600px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr 76px 1fr 1fr;align-items:center;height:68px;}
.nav .tab{border:none;background:none;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;font-weight:700;color:var(--muted);padding:6px 0;}
.nav .tab svg{width:22px;height:22px;}
.nav .tab.on{color:var(--primary);}
.mic{width:62px;height:62px;border-radius:50%;border:none;background:var(--primary);color:var(--primary-ink);justify-self:center;margin-top:-26px;
  box-shadow:0 10px 24px -8px rgba(63,58,107,.6),0 0 0 5px var(--paper);display:flex;align-items:center;justify-content:center;}
.mic svg{width:28px;height:28px;}
.fab{position:fixed;right:16px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:25;width:52px;height:52px;border-radius:18px;border:none;
  background:var(--surface);color:var(--primary);box-shadow:var(--shadow);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;}
@media (min-width:640px){ .fab{right:calc(50% - 300px + 16px);} }

/* ---------- foglio (modale dal basso) ---------- */
.backdrop{position:fixed;inset:0;background:rgba(15,13,25,.45);z-index:50;display:flex;align-items:flex-end;justify-content:center;animation:fade .18s ease;}
.sheet{background:var(--paper);width:100%;max-width:600px;max-height:92dvh;overflow:auto;border-radius:24px 24px 0 0;
  padding:10px 16px calc(20px + env(safe-area-inset-bottom));animation:up .22s cubic-bezier(.2,.8,.2,1);}
.sheet{position:relative;}
.sheet-x{position:sticky;top:0;float:right;margin:-2px -4px 0 0;z-index:3;width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--muted);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.08);}
.sheet .grab{width:40px;height:5px;border-radius:5px;background:var(--border);margin:0 auto 12px;}
.sheet h2{font-size:21px;margin-bottom:14px;}
.sheet .foot{display:flex;gap:10px;margin-top:16px;}
.sheet .foot .btn{flex:1;white-space:nowrap;padding-inline:12px;}
.pills{display:flex;gap:6px;flex-wrap:wrap;}
.pill{border:1.5px solid var(--border);background:var(--surface);border-radius:var(--radius-full);padding:8px 13px;font-weight:700;font-size:13.5px;}
.pill.on{border-color:var(--primary);background:var(--primary-tint);color:var(--primary);}
.pill.u-bassa.on{border-color:var(--u-bassa);background:var(--u-bassa-tint);color:var(--u-bassa);}
.pill.u-media.on{border-color:var(--u-media);background:var(--u-media-tint);color:var(--u-media);}
.pill.u-alta.on{border-color:var(--u-alta);background:var(--u-alta-tint);color:var(--u-alta);}
.pill.u-critica.on{border-color:var(--u-critica);background:var(--u-critica-tint);color:var(--u-critica);}
.hint{font-size:12.5px;color:var(--muted);margin-top:6px;}

/* ---------- voce ---------- */
.voice{text-align:center;padding:6px 0 4px;}
.voice .ring{width:96px;height:96px;border-radius:50%;margin:8px auto 14px;background:var(--primary);color:var(--primary-ink);
  display:flex;align-items:center;justify-content:center;border:none;position:relative;}
.voice .ring svg{width:40px;height:40px;}
.voice .ring.live::before,.voice .ring.live::after{content:"";position:absolute;inset:-10px;border-radius:50%;border:3px solid var(--primary);opacity:.5;animation:pulse 1.4s ease-out infinite;}
.voice .ring.live::after{animation-delay:.7s;}
.voice .said{font-family:var(--font-display);font-size:20px;min-height:30px;margin:4px 0 10px;}
.voice .examples{font-size:13px;color:var(--muted);line-height:1.6;}
.preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);padding:14px;text-align:left;margin-top:12px;}
.preview .t{font-weight:800;font-size:17px;}
.preview dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:10px 0 0;font-size:14px;}
.preview dt{color:var(--muted);font-weight:700;}
.preview dd{margin:0;}
.match{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--border);}
.match:first-child{border-top:none;}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:80;
  background:var(--ink);color:var(--paper);padding:11px 16px;border-radius:14px;font-weight:600;font-size:14px;max-width:calc(100% - 32px);
  box-shadow:var(--shadow);animation:toastIn .22s ease both;}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,10px);}to{opacity:1;transform:translate(-50%,0);}}
.banner{background:var(--sun-tint);border:1px solid color-mix(in srgb,var(--sun) 40%,transparent);border-radius:var(--radius-m);padding:12px 14px;
  font-size:13.5px;display:flex;gap:10px;align-items:center;justify-content:space-between;margin:8px 0;}
.banner .btn{padding:8px 14px;min-height:36px;font-size:13.5px;background:var(--sun);color:#fff;}

@keyframes up{from{transform:translateY(24px);opacity:0;}to{transform:none;opacity:1;}}
@keyframes fade{from{opacity:0;}to{opacity:1;}}
@keyframes pulse{from{transform:scale(.9);opacity:.6;}to{transform:scale(1.35);opacity:0;}}
@media (prefers-reduced-motion: reduce){ *{animation:none!important;transition:none!important;} }

/* ---------- consigli ---------- */
.advice{background:var(--sun-tint);border:1px solid color-mix(in srgb,var(--sun) 35%,transparent);border-radius:var(--radius-m);padding:10px 12px;margin:10px 0;text-align:left;}
.advice .lbl{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--sun);margin-bottom:4px;}
.adv{display:flex;gap:8px;font-size:13.5px;padding:4px 0;line-height:1.4;}
details.adv{display:block;}
details.adv summary{cursor:pointer;list-style:none;}
details.adv summary::-webkit-details-marker{display:none;}

/* ---------- aspetto (scelta colori e font) ---------- */
.swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;}
.swatch{min-width:0;overflow-wrap:anywhere;hyphens:auto;border:2px solid var(--border);border-radius:14px;padding:8px 6px;background:var(--surface);display:flex;flex-direction:column;align-items:center;gap:5px;font-size:10.5px;font-weight:700;color:var(--muted);line-height:1.15;text-align:center;}
.swatch.on{border-color:var(--primary);color:var(--ink);}
.swatch .dots3{display:flex;}
.swatch .dots3 i{width:16px;height:16px;border-radius:50%;margin-left:-4px;border:2px solid var(--surface);}
.swatch .dots3 i:first-child{margin-left:0;}
.fontlist{display:flex;flex-direction:column;gap:6px;}
.fontopt{border:2px solid var(--border);border-radius:14px;background:var(--surface);padding:9px 12px;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:10px;}
.fontopt.on{border-color:var(--primary);}
.fontopt .big{font-size:19px;line-height:1.2;}
.fontopt .sm{font-size:12px;color:var(--muted);}

/* ---------- animazioni ---------- */
@keyframes rise{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
@keyframes pop{0%{transform:scale(1);}40%{transform:scale(1.28);}100%{transform:scale(1);}}
@keyframes float{0%,100%{transform:translate(0,0);}50%{transform:translate(-10px,8px);}}
@keyframes breathe{0%,100%{box-shadow:0 10px 24px -8px rgba(0,0,0,.35),0 0 0 5px var(--paper),0 0 0 5px color-mix(in srgb,var(--primary) 0%,transparent);}
  50%{box-shadow:0 10px 24px -8px rgba(0,0,0,.35),0 0 0 5px var(--paper),0 0 0 11px color-mix(in srgb,var(--primary) 18%,transparent);}}
@keyframes sunrise{from{transform:translateY(26px) scale(.8);opacity:0;}to{transform:none;opacity:1;}}
@keyframes twinkle{0%,100%{opacity:.25;}50%{opacity:1;}}
/* barrato: la linea compare su ogni riga del titolo (anche se va a capo) */
@keyframes strike{from{text-decoration-color:transparent;}}
@keyframes bump{0%{transform:translateY(0);}35%{transform:translateY(-4px);}100%{transform:translateY(0);}}
/* cambio scheda: una sola dissolvenza breve di tutta la vista (opacità e pochi px), niente cascata */
.view.enter{animation:viewIn .18s ease-out both;}
@keyframes viewIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
.item.pop .check{animation:pop .45s cubic-bezier(.2,.8,.2,1);}
.item.pop .title{animation:strike .45s ease-out;}
.sleep .orb{animation:float 9s ease-in-out infinite;}
.sleep:not(.day)::after{content:"✦  ·  ✧    ·   ✦";position:absolute;right:22px;bottom:16px;font-size:11px;letter-spacing:6px;color:#fff;opacity:.5;animation:twinkle 3.5s ease-in-out infinite;pointer-events:none;}
.mic{animation:breathe 4s ease-in-out infinite;}
.mic:active,.fab:active,.btn:active,.check:active{transform:scale(.94);}
.btn,.fab,.mic,.check,.pill,.swatch,.fontopt{transition:transform .12s ease,background-color .2s ease,border-color .2s ease;}
.nav .tab.on svg{animation:bump .35s ease;}
.sunup{display:inline-block;animation:sunrise .7s cubic-bezier(.2,.8,.2,1) both;}
.item,.note,.card{transition:background-color .2s ease,border-color .2s ease;}

@media (max-width:380px){
  .claudebtn{padding:8px 10px;font-size:0;gap:0;}
  .claudebtn svg{width:20px;height:20px;}
}

/* ---------- impostazioni a tendina ---------- */
details.acc{padding:0;overflow:hidden;}
details.acc > summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:15px 16px;min-height:56px;user-select:none;}
details.acc > summary::-webkit-details-marker{display:none;}
.acc-ic{width:34px;height:34px;border-radius:11px;background:var(--primary-tint);display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0;}
.acc-t{flex:1;font-family:var(--font-display);font-weight:600;font-size:17px;}
.acc-chev{color:var(--muted);transition:transform .25s cubic-bezier(.2,.8,.2,1);flex-shrink:0;}
details.acc[open] .acc-chev{transform:rotate(180deg);}
.acc-body{padding:0 16px 16px;}
details.acc[open] .acc-body{animation:rise .3s cubic-bezier(.2,.8,.2,1);}
.acc-body > p:first-child{margin-top:0;}

/* ---------- risposte a voce ---------- */
.answer{background:var(--primary-tint);border-radius:var(--radius-m);padding:14px 16px;text-align:left;margin-top:12px;animation:rise .3s cubic-bezier(.2,.8,.2,1);}
.answer .lbl{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--primary);margin-bottom:4px;}
.answer .a{font-family:var(--font-display);font-size:19px;line-height:1.35;}

/* ---------- note in markdown ---------- */
.notebody.md{white-space:normal;}
.md p{margin:0 0 8px;} .md ul{margin:0 0 8px;padding-left:20px;} .md li{margin:2px 0;}
.md .md-h{font-family:var(--font-display);font-weight:700;margin:12px 0 6px;}
.md .md-h1{font-size:20px;margin-top:0;} .md .md-h2{font-size:17px;} .md .md-h3{font-size:15.5px;}
.md .md-q{color:var(--muted);font-size:13.5px;border-left:3px solid var(--border);padding-left:10px;margin:0 0 8px;}
.md a{color:var(--primary);word-break:break-all;} .md code{background:var(--surface-2);border-radius:5px;padding:1px 5px;font-size:.92em;}

.check.appt{font-size:15px;color:inherit;border-color:var(--border);}

.answer .src{margin-top:8px;font-size:12px;color:var(--muted);cursor:pointer;}
.answer.noinfo{background:var(--surface-2);}
.answer.noinfo .lbl{color:var(--muted);}

.answer .fb{display:flex;align-items:center;gap:8px;margin-top:10px;}
.fbb{width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:var(--surface);font-size:18px;display:flex;align-items:center;justify-content:center;}
.fbb.on{background:var(--primary-tint);border-color:var(--primary);}
.fbb:disabled{opacity:.35;}
/* Claudia intelligente */
.answer.ai .a{font-size:17.5px;white-space:pre-line;}
.answer .acts{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:4px;font-size:13.5px;}
.answer .acts li{background:var(--surface);border-radius:10px;padding:6px 10px;color:var(--u-bassa);font-weight:600;}
.answer .aiinfo{margin-top:8px;font-size:11.5px;}
.answer.thinking .dots{display:inline-flex;gap:6px;padding:6px 0;}
.answer.thinking .dots i{width:8px;height:8px;border-radius:50%;background:var(--primary);opacity:.3;animation:aidot 1s infinite;}
.answer.thinking .dots i:nth-child(2){animation-delay:.15s}.answer.thinking .dots i:nth-child(3){animation-delay:.3s}
@keyframes aidot{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
@media (prefers-reduced-motion:reduce){.answer.thinking .dots i{animation:none;opacity:.6}}
/* microfono con Claude attivo: icona di Claude, che ruota piano mentre ascolta */
.mic.ai svg,.voice .ring.ai svg{animation:pop .35s cubic-bezier(.2,.8,.2,1);}
.voice .ring.ai.live svg{animation:aispin 6s linear infinite;}
@keyframes aispin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.voice .ring.ai.live svg{animation:none}}
/* modalità Claude del microfono: sempre arancione, qualunque sia il tema */
:root{--claude:#D97757;--claude-ink:#fff;}
.mic,.voice .ring{touch-action:pan-y;user-select:none;-webkit-user-select:none;}
.mic.ai,.voice .ring.ai{background:var(--claude)!important;color:var(--claude-ink)!important;}
.mic.ai{animation:breatheAi 4s ease-in-out infinite;}
.voice .ring.ai.live::before,.voice .ring.ai.live::after{border-color:var(--claude);}
@keyframes breatheAi{0%,100%{box-shadow:0 10px 24px -8px rgba(0,0,0,.35),0 0 0 5px var(--paper),0 0 0 5px rgba(217,119,87,0);}
  50%{box-shadow:0 10px 24px -8px rgba(0,0,0,.35),0 0 0 5px var(--paper),0 0 0 11px rgba(217,119,87,.25);}}
.mic.flip,.voice .ring.flip{animation:micflip .32s cubic-bezier(.2,.8,.2,1);}
@keyframes micflip{0%{transform:rotateY(0)}50%{transform:rotateY(90deg) scale(.9)}100%{transform:rotateY(0)}}

/* ============ BILANCIO ============ */
.topgear{border:1px solid var(--border);background:var(--surface);color:var(--muted);width:38px;height:38px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;margin-top:4px;flex-shrink:0;padding:0;}
.topgear.on{color:var(--primary);border-color:var(--primary);background:var(--primary-tint);}
.top{align-items:flex-start;}
.top .claudebtn{margin-left:-4px;}
.bal{border-radius:var(--radius-l);padding:18px;margin:10px 0 18px;position:relative;overflow:hidden;
  background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 88%,#000) 0%,var(--primary) 100%);color:var(--primary-ink);}
.bal.neg{background:linear-gradient(135deg,#8E2F28 0%,var(--u-critica) 100%);color:#fff;}
.bal .lbl{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;opacity:.85;}
.bal .big{font-family:var(--font-display);font-size:36px;font-weight:600;line-height:1.1;margin:4px 0 2px;font-variant-numeric:tabular-nums;}
.bal .why{font-size:13px;opacity:.9;}
.bal .warn{margin-top:8px;font-size:13px;background:rgba(255,255,255,.16);border-radius:10px;padding:7px 10px;}
.bal .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:10px;margin-top:14px;font-size:12px;opacity:.95;}
.bal .stats b{display:block;font-size:16px;font-variant-numeric:tabular-nums;}
.bal .actions{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap;}
.bal .btn{background:rgba(255,255,255,.95);color:color-mix(in srgb,var(--primary) 80%,#000);min-height:40px;padding:9px 16px;}
.bal .btn.soft{background:rgba(255,255,255,.18);color:inherit;}
.balmini{display:grid;grid-template-columns:1fr auto;gap:2px 10px;width:100%;text-align:left;border:1px solid var(--border);background:var(--surface);
  border-radius:var(--radius-m);padding:12px 14px;margin:-6px 0 14px;}
.balmini .lbl{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;}
.balmini .v{grid-row:span 2;align-self:center;font-family:var(--font-display);font-weight:700;font-size:20px;font-variant-numeric:tabular-nums;}
.balmini .sub{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0 4px;}
.tiles > div{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);padding:10px 12px;min-width:0;}
.tiles span{display:block;font-size:12px;font-weight:700;color:var(--muted);}
.tiles b{display:block;font-size:16px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.in{color:var(--u-bassa);} .neg{color:var(--u-critica);}
.bbars{display:flex;align-items:flex-end;height:118px;gap:4px;margin:4px 0 6px;}
.bb{border:none;background:none;padding:0;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:3px;border-radius:10px;}
.bb .cols{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px;padding:4px 0 0;}
.bb .cols i{display:block;width:34%;max-width:16px;border-radius:5px 5px 2px 2px;background:var(--primary);opacity:.35;}
.bb .cols i.e{background:var(--u-bassa);opacity:.45;}
.bb.sel .cols i{opacity:1;} .bb.sel .cols i.e{opacity:.9;}
.bb .d{font-size:11px;font-weight:800;color:var(--muted);}
.bb .v{font-size:10.5px;color:var(--muted);min-height:13px;font-variant-numeric:tabular-nums;}
.bb.sel .d{color:var(--primary);}
.mbars{display:flex;align-items:flex-end;gap:2px;height:64px;margin-top:12px;}
.mbars i{flex:1;background:var(--primary);opacity:.7;border-radius:3px 3px 1px 1px;cursor:pointer;min-height:2px;}
.mbars i.z{opacity:.15;}
.mrow{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);padding:10px 12px;}
.mrow .ic{width:36px;height:36px;border-radius:12px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;border:none;padding:0;}
.mrow .body{flex:1;min-width:0;display:flex;flex-direction:column;border:none;background:none;padding:0;text-align:left;}
.mrow .t{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mrow .meta{font-size:12.5px;color:var(--muted);display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:1px;}
.mrow .amt{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap;}
.mrow .amt.in{color:var(--u-bassa);}
.prow.paid{opacity:.6;} .prow.paid .t{text-decoration:line-through;}
.prow.late{border-color:var(--u-critica);} .prow.late .meta span:nth-child(2){color:var(--u-critica);font-weight:700;}
.check.pay{margin-left:2px;}
.chip.ok{background:var(--u-bassa-tint);color:var(--u-bassa);}
.dayhead{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;font-weight:800;color:var(--muted);margin:10px 2px 0;text-transform:capitalize;}
.dayhead span:last-child{text-transform:none;font-variant-numeric:tabular-nums;}
.dayhead.mh{font-size:14px;color:var(--ink);margin:16px 2px 8px;}
.dayhead.mh span:last-child{color:var(--muted);font-weight:700;}
.cats{display:flex;flex-direction:column;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);padding:14px;}
.crow{display:grid;grid-template-columns:1fr auto;gap:4px 10px;font-size:14px;}
.crow .n{font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.crow .v{font-weight:800;font-variant-numeric:tabular-nums;}
.crow .v small{font-weight:700;color:var(--muted);margin-left:6px;}
.crow .b{grid-column:1 / -1;height:6px;border-radius:6px;background:var(--surface-2);overflow:hidden;}
.crow .b i{display:block;height:100%;background:var(--primary);border-radius:6px;}
.pline{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);padding:10px 8px 24px;}
.pline svg{display:block;width:100%;height:130px;overflow:visible;}
.pline .ln{fill:none;stroke:var(--primary);stroke-width:2.5;vector-effect:non-scaling-stroke;stroke-linejoin:round;}
.pline .area{fill:var(--primary-tint);}
.pline .zero{stroke:var(--u-critica);stroke-dasharray:4 4;stroke-width:1.2;vector-effect:non-scaling-stroke;}
.pline circle{fill:var(--surface);stroke:var(--primary);stroke-width:2;vector-effect:non-scaling-stroke;}
.pline circle.neg{stroke:var(--u-critica);}
.pline .xl{position:absolute;left:8px;right:8px;bottom:6px;height:14px;}
.pline .xl span{position:absolute;transform:translateX(-50%);font-size:10.5px;font-weight:700;color:var(--muted);white-space:nowrap;}
.input.big{font-size:24px;font-weight:800;font-variant-numeric:tabular-nums;}
.storico{display:flex;flex-wrap:wrap;gap:6px;}
.storico .off{padding:2px 4px 2px 2px;}
.storico .off .input{width:92px;min-height:34px;padding:4px 8px;font-size:15px;border:none;background:transparent;}
.avg{margin-top:8px;font-size:14px;}
.cpills .pill{padding:7px 11px;font-size:13px;}
.banklist{display:flex;flex-direction:column;gap:6px;max-height:330px;overflow:auto;margin-bottom:8px;}
.bankopt{display:flex;align-items:center;gap:10px;border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:8px 10px;text-align:left;font-weight:700;}
.bankopt img,.bankopt > span:first-child{width:28px;height:28px;object-fit:contain;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.bank .row{flex-wrap:wrap;}
/* giorno selezionato che è anche oggi: il numero resta leggibile sul colore pieno */
.week button.sel .n,.month button.sel .n,.week button.sel.today .n,.month button.sel.today .n{color:var(--primary-ink);}
.week button.sel .dots i,.month button.sel .dots i{box-shadow:0 0 0 1.5px var(--primary-ink);}
/* saldo nascosto */
.bal .eye{position:absolute;top:12px;right:12px;width:38px;height:38px;border-radius:50%;border:none;background:rgba(255,255,255,.16);color:inherit;display:flex;align-items:center;justify-content:center;z-index:1;}
.hiddenchart{position:relative;}
.hiddenchart .pline{filter:blur(7px);pointer-events:none;}
.hiddenchart > span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--muted);}
/* turno coperto da un tuo impegno (priorità più bassa) */
.item.work.covered{opacity:.7;border-style:dashed;}
/* ---------- sveglia ---------- */
.sveglia-set{border-top:1px solid var(--border);margin-top:10px;}
.comodino{position:fixed;inset:0;z-index:80;background:#07060B;color:#E9E4F7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;text-align:center;}
.comodino .cm-time{font-family:var(--font-display);font-size:min(28vw,150px);font-weight:600;line-height:1;opacity:.55;font-variant-numeric:tabular-nums;}
.comodino .cm-msg{font-size:20px;font-weight:800;opacity:.8;}
.comodino .cm-sub{font-size:13.5px;opacity:.45;}
.comodino .cm-actions{display:flex;flex-direction:column;gap:12px;margin-top:26px;width:100%;max-width:320px;}
.comodino .btn.soft{background:rgba(255,255,255,.08);color:#E9E4F7;}
.comodino .btn.big{min-height:64px;font-size:20px;}
.comodino .cm-audio{background:rgba(255,255,255,.12);color:#fff;margin-top:14px;}
/* ---------- statistiche ---------- */
.seg button{padding-inline:6px;}
.evlist{display:flex;flex-direction:column;gap:10px;}
.evcard{display:flex;flex-direction:column;gap:4px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);padding:12px 14px;}
.evcard .h{display:flex;justify-content:space-between;gap:10px;font-weight:800;font-size:15.5px;}
.evcard .h b{font-variant-numeric:tabular-nums;}
.evcard .s{font-size:12.5px;color:var(--muted);}
.evbars{display:flex;gap:6px;height:56px;align-items:flex-end;margin-top:6px;}
.evbars span{flex:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:2px;}
.evbars i{display:block;width:100%;max-width:26px;border-radius:4px 4px 2px 2px;background:var(--primary);opacity:.3;}
.evbars i.now{opacity:1;}
.evbars small{font-size:10px;font-weight:800;color:var(--muted);}
.evmini{display:flex;gap:8px;overflow-x:auto;margin:10px 0 2px;padding-bottom:2px;}
.evmini button{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:7px 12px;font-size:12.5px;color:var(--muted);font-weight:700;}
.evmini b{color:var(--ink);font-size:15px;font-variant-numeric:tabular-nums;}
.m6{display:flex;gap:6px;height:150px;align-items:stretch;}
.m6 button{flex:1;border:none;background:none;padding:0;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;}
.m6 .cols{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px;}
.m6 .cols i{display:block;width:40%;max-width:18px;border-radius:5px 5px 2px 2px;}
.m6 i.e,.legend i.e{background:var(--u-bassa);} .m6 i.u,.legend i.u{background:var(--primary);}
.m6 small{font-size:11px;font-weight:800;color:var(--muted);}
.m6 small.n{font-size:10.5px;font-variant-numeric:tabular-nums;}
.m6 small.n.in{color:var(--u-bassa);} .m6 small.n.neg{color:var(--u-critica);}
.legend{display:flex;gap:12px;flex-wrap:wrap;margin:6px 0 4px;}
.legend span{display:inline-flex;align-items:center;gap:5px;}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;}
/* ---------- contanti, bilancio totale, spese nuove ---------- */
.bal .wallets{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;}
.bal .wl{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;text-align:left;border:none;border-radius:14px;padding:9px 12px;background:rgba(255,255,255,.14);color:inherit;}
.bal .wl .k{font-size:12px;font-weight:800;opacity:.85;}
.bal .wl b{font-size:18px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.bal .wl small{font-size:11.5px;opacity:.8;line-height:1.3;}
.seg.mini{margin:8px 0 2px;padding:2px;}
.seg.mini button{padding:6px 8px;font-size:12.5px;}
.tiles small{display:block;font-size:11px;font-weight:700;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px;}
/* parte in contanti: a righe sopra il colore della barra */
b.cash{display:block;width:100%;margin-top:auto;border-radius:inherit;
  background:repeating-linear-gradient(135deg,transparent 0 3px,var(--surface) 3px 5.5px);}
.bb .cols i,.m6 .cols i{display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;}
.mbars i{display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;}
.crow .b i{display:flex;justify-content:flex-end;overflow:hidden;}
.crow .b i b.cash{width:auto;height:100%;margin:0;}
.crow .cs{grid-column:1 / -1;font-size:11.5px;color:var(--muted);font-weight:700;margin-top:-2px;}
.legend i.hatch{background:var(--primary);background-image:repeating-linear-gradient(135deg,transparent 0 2px,var(--surface) 2px 4px);}
.chip.cash{background:var(--sun-tint);color:var(--sun);}
.chip.new{background:var(--primary-tint);color:var(--primary);}
.mrow.giro{border-style:dashed;}
.clbanner{display:flex;align-items:center;gap:12px;width:100%;text-align:left;margin:-6px 0 14px;padding:12px 14px;border-radius:var(--radius-m);
  border:1px solid color-mix(in srgb,var(--primary) 35%,transparent);background:var(--primary-tint);color:var(--ink);}
.clbanner > span:first-child{font-size:22px;}
.clbanner > span:nth-child(2){flex:1;min-width:0;}
.clbanner small{display:block;font-size:12.5px;color:var(--muted);}
.clbanner > span:last-child{font-size:22px;color:var(--primary);font-weight:800;}
.clg{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);padding:12px;margin-bottom:10px;}
.clg .h{display:flex;justify-content:space-between;gap:10px;font-size:15.5px;}
.clg .h b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.clg .h span{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap;}
.clg .pills{margin-top:8px;}
.pill.sug{border-style:dashed;border-color:var(--primary);color:var(--primary);}

/* ============================================================
   ANIMAZIONI (js/motion.js)
   ============================================================ */
:root{--spring:cubic-bezier(.2,1.25,.35,1);--out:cubic-bezier(.16,1,.3,1);}
/* cambio scheda: niente View Transitions (pesanti sui telefoni), basta la dissolvenza di .view.enter */

/* barra in basso: pillola dietro l'icona della scheda attiva */
.nav .tab{position:relative;isolation:isolate;}
.nav .tab::before{content:"";position:absolute;top:2px;left:50%;width:52px;height:30px;margin-left:-26px;border-radius:15px;background:var(--primary-tint);
  transform:scaleX(.3);opacity:0;transition:transform .38s var(--spring),opacity .2s ease;z-index:-1;}
.nav .tab.on::before{transform:none;opacity:1;}
.nav .tab svg{transition:transform .3s var(--spring);}
.nav .tab:active svg{transform:scale(.85);}

/* fogli dal basso: entrata a molla, sfondo sfocato, uscita, trascinamento */
.backdrop{backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:bdIn .3s ease both;transition:background-color .15s;}
.sheet{animation:sheetUp .5s var(--spring) both;will-change:transform;}
.sheet.dragging{animation:none;transition:none;}
.sheet:not(.dragging){transition:transform .35s var(--spring);}
.sheet > *:not(.sheet-x):not(.grab){animation:rise .42s var(--out) both;}
.sheet > *:nth-child(3){animation-delay:.04s;} .sheet > *:nth-child(4){animation-delay:.07s;} .sheet > *:nth-child(5){animation-delay:.1s;}
.sheet > *:nth-child(6){animation-delay:.13s;} .sheet > *:nth-child(n+7){animation-delay:.16s;}
.backdrop.ghost{pointer-events:none;animation:bdOut .28s ease both;z-index:49;}
.backdrop.ghost .sheet{animation:sheetDown .28s cubic-bezier(.4,0,.7,.2) both;}
.backdrop.ghost .sheet > *{animation:none;}
@keyframes bdIn{from{opacity:0;backdrop-filter:blur(0);}to{opacity:1;}}
@keyframes bdOut{to{opacity:0;}}
@keyframes sheetUp{from{transform:translateY(100%);}to{transform:none;}}
@keyframes sheetDown{from{transform:var(--from,none);}to{transform:translateY(105%);}}

/* selettori: la pillola bianca scivola sotto la voce scelta */
.seg.slide{position:relative;isolation:isolate;}
.seg.slide::before{content:"";position:absolute;z-index:-1;top:3px;bottom:3px;left:3px;width:calc((100% - 6px - (var(--n) - 1) * 2px) / var(--n));
  border-radius:var(--radius-full);background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.12);
  transform:translateX(calc(var(--i) * (100% + 2px)));transition:transform .42s var(--spring);}
.seg.mini.slide::before{top:2px;bottom:2px;left:2px;width:calc((100% - 4px - (var(--n) - 1) * 2px) / var(--n));}
.seg.slide.noanim::before{transition:none;}
.seg.slide button.on{background:transparent;box-shadow:none;}
.seg button{transition:color .25s ease;}

/* toast a molla, con uscita */
.toast{animation:toastPop .45s var(--spring) both;}
.toast.out{animation:toastOut .25s ease-in both;}
@keyframes toastPop{from{opacity:0;transform:translate(-50%,24px) scale(.88);}to{opacity:1;transform:translate(-50%,0) scale(1);}}
@keyframes toastOut{to{opacity:0;transform:translate(-50%,14px) scale(.94);filter:blur(2px);}}

/* coriandoli */
.burst{position:fixed;z-index:90;width:0;height:0;pointer-events:none;}
.burst i{position:absolute;left:-4px;top:-3px;width:8px;height:6px;border-radius:2px;opacity:0;animation:confetti .85s var(--out) both;}
@keyframes confetti{0%{opacity:1;transform:translate(0,0) rotate(0) scale(.6);}
  70%{opacity:1;}100%{opacity:0;transform:translate(var(--dx),calc(var(--dy) + 30px)) rotate(var(--rot)) scale(1);}}

/* tocchi: tutto risponde con una piccola molla */
.mrow,.item,.evcard,.clbanner,.balmini,.bal .wl,.clg .pill,.tiles > div{transition:transform .25s var(--spring),background-color .2s ease,border-color .2s ease,opacity .2s;}
.mrow:active,.item .body:active,.evcard:active,.clbanner:active,.balmini:active,.bal .wl:active{transform:scale(.975);}
.pill:active{transform:scale(.93);}
.pill.on{animation:pillOn .4s var(--spring);}
@keyframes pillOn{0%{transform:scale(.9);}60%{transform:scale(1.06);}100%{transform:none;}}
.check{transition:transform .25s var(--spring),background-color .25s ease,border-color .25s ease;}

/* card del bilancio: luce che si muove piano e cifre che contano */
.bal{isolation:isolate;}
.bal::before{content:"";position:absolute;z-index:-1;width:120%;height:140%;left:-10%;top:-20%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(255,255,255,.16),transparent 70%) 0 0/55% 60% no-repeat,
             radial-gradient(closest-side,color-mix(in srgb,var(--sun) 30%,transparent),transparent 70%) 100% 100%/50% 55% no-repeat;
  animation:glow 14s ease-in-out infinite alternate;}
@keyframes glow{0%{transform:translate(0,0) rotate(0);}50%{transform:translate(8%,6%) rotate(4deg);}100%{transform:translate(-6%,10%) rotate(-3deg);}}
.bal .big,.bal .wl b,.tiles b{font-variant-numeric:tabular-nums;}
.clbanner > span:first-child{display:inline-block;animation:wiggle 2.6s ease-in-out infinite;transform-origin:50% 80%;}
@keyframes wiggle{0%,82%,100%{transform:rotate(0);}86%{transform:rotate(-12deg);}90%{transform:rotate(10deg);}94%{transform:rotate(-6deg);}}

/* grafici che crescono (entrando nella scheda o cambiando Giorno/Mese/filtro) */
.view.enter .bb .cols i,.view.anim .bb .cols i,.view.enter .m6 .cols i,.view.anim .m6 .cols i,
.view.enter .mbars i,.view.anim .mbars i,.view.enter .evbars i,.view.anim .evbars i{
  transform-origin:50% 100%;animation:growY .7s var(--spring) both;animation-delay:calc(var(--i,0) * 28ms + 60ms);}
.view.enter .crow .b i,.view.anim .crow .b i{transform-origin:0 50%;animation:growX .8s var(--out) both;animation-delay:calc(var(--i,0) * 50ms + 80ms);}
.view.enter .pline svg,.view.anim .pline svg{animation:wipe 1.1s var(--out) both .1s;}
.view.anim > *{animation:rise .35s var(--out) both;}
.view.anim > .bal,.view.anim > .seg,.view.anim > .clbanner,.view.anim > .advice{animation:none;}
@keyframes growY{from{transform:scaleY(0);}to{transform:none;}}
@keyframes growX{from{transform:scaleX(0);}to{transform:none;}}
@keyframes wipe{from{clip-path:inset(0 100% 0 0);}to{clip-path:inset(0 0 0 0);}}

/* spese nuove: la card classificata vola via */
.clg{transition:transform .35s var(--out),opacity .3s ease,max-height .35s ease .1s,margin .35s ease .1s,padding .35s ease .1s;max-height:800px;}
.clg.out{transform:translateX(40%) scale(.92);opacity:0;max-height:0;margin:0;padding-top:0;padding-bottom:0;overflow:hidden;}
.clg .h b::after{content:"";}

@media (prefers-reduced-motion: reduce){
  .bal::before{display:none;}
}
.sheet > .clg.out{animation:none;}

/* ============ DOCUMENTI ============ */
.top .topgear + .topgear{margin-left:-4px;}
.docsearch{margin:10px 0 10px;}
.docpills{flex-wrap:nowrap;overflow-x:auto;margin:0 -16px 4px;padding:2px 16px 6px;scrollbar-width:none;}
.docpills::-webkit-scrollbar{display:none;}
.docpills .pill{white-space:nowrap;flex-shrink:0;}
.doc{display:flex;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);padding:10px 12px;cursor:pointer;}
.doc .ft{width:42px;height:50px;border-radius:9px;flex-shrink:0;display:flex;align-items:flex-end;justify-content:center;padding-bottom:7px;
  font-size:10.5px;font-weight:800;letter-spacing:.04em;position:relative;background:var(--surface-2);color:var(--muted);}
.doc .ft::before{content:"";position:absolute;top:0;right:0;width:12px;height:12px;border-bottom-left-radius:6px;background:var(--border);}
.doc .ft-pdf{background:var(--u-critica-tint);color:var(--u-critica);}
.doc .ft-img{background:var(--u-bassa-tint);color:var(--u-bassa);}
.doc .ft-doc{background:var(--u-media-tint);color:var(--u-media);}
.doc .ft-xls{background:var(--sun-tint);color:var(--sun);}
.doc .body{flex:1;min-width:0;}
.doc .t{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.doc .t .star{font-size:13px;}
.doc .m{font-size:12px;color:var(--muted);margin-top:3px;display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.check.dl{color:var(--primary);border-color:var(--primary-tint);background:var(--primary-tint);width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;}
.docfoot{text-align:center;margin:18px 72px 8px;}
.docempty{text-align:center;border:1.5px dashed var(--border);border-radius:var(--radius-l);padding:28px 18px;margin-top:8px;}
.docempty .big{font-size:42px;line-height:1;margin-bottom:8px;}
.docempty h3{font-size:18px;margin-bottom:6px;}
.docempty p{margin:0 0 10px;font-size:14px;}
.docempty .btn{margin-top:6px;}
.docpick{display:flex;gap:10px;}
.docpick .btn{flex:1;cursor:pointer;}
.docchosen{margin:8px 2px 12px;overflow-wrap:anywhere;}
.docprog{display:flex;align-items:center;gap:10px;margin:6px 0;font-size:13px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;}
.docprog .bar{flex:1;height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden;}
.docprog .bar i{display:block;height:100%;width:0;background:var(--primary);border-radius:99px;transition:width .2s;}
.docimg{display:block;width:100%;max-height:260px;object-fit:contain;border-radius:var(--radius-m);background:var(--surface-2);margin-bottom:12px;cursor:zoom-in;}
.docimg.full{max-height:none;cursor:default;}
.docinfo{display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);padding:12px 14px;}
.docinfo > div{display:flex;justify-content:space-between;gap:12px;font-size:14px;}
.docinfo span{color:var(--muted);flex-shrink:0;}
.docinfo b{text-align:right;overflow-wrap:anywhere;font-weight:700;}
.sheet .foot + .foot{margin-top:10px;}

/* ---------------- mani libere ("Ehi Claudia" ad app aperta) ---------------- */
.hf-pill{position:fixed;top:calc(8px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:70;
  border:none;border-radius:999px;padding:6px 14px;font:inherit;font-size:12.5px;font-weight:700;
  background:var(--primary-tint);color:var(--primary);box-shadow:0 2px 10px rgba(0,0,0,.08);cursor:pointer;}
.hf-pill.live{background:var(--primary);color:var(--primary-ink);animation:hfPulse 1.2s ease-in-out infinite;}
@keyframes hfPulse{0%,100%{box-shadow:0 0 0 0 rgba(63,58,107,.35);}50%{box-shadow:0 0 0 8px rgba(63,58,107,0);}}
@media (prefers-reduced-motion: reduce){.hf-pill.live{animation:none;}}
/* Impostazioni → In arrivo: una riga per funzione, con il link alla pagina di benvenuto */
.presto-voce{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--border);}
.presto-voce:first-child{border-top:0;padding-top:0;}
.presto-voce>div{min-width:0;} .presto-voce p{margin:4px 0 0;} .presto-voce .btn{flex:none;}
/* Note con la spunta «fatta» (Agenda → Note, sezione Completate) */
.note.conspunta{display:flex;gap:10px;align-items:flex-start;}
.note.conspunta .nbody{flex:1;min-width:0;}
.note.conspunta .check{align-self:center;}
.note.fatta .t{text-decoration:line-through;color:var(--muted);}
.note.fatta .check{background:var(--u-bassa);border-color:var(--u-bassa);color:#fff;}
