/* Koda «Ember Bento» — layout delle schermate. Fatte: Oggi (home), Calendario. Le altre seguono una alla volta. */

/* ---- Oggi ---- */
.view.home{gap:var(--sp-4)}
/* hero: la lock screen con Koda, più profonda delle schede */
.view.home>.lock{border-radius:var(--r-xl);box-shadow:var(--sh-3);border:1px solid var(--hair)}
.lock-time{font:var(--t-display);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.lock-date{font:500 15px/1.2 var(--f-disp);opacity:.92}
.lock-n{border-radius:18px;box-shadow:0 1px 2px rgb(0 0 0 / .12),0 12px 28px -10px rgb(0 0 0 / .35)}
.lock-n .btn.small{box-shadow:none}
/* lock screen tutta per Koda: quadrata come la scena (con «cover» su un riquadro alto Koda finiva tagliato ai lati), sopra solo l'ora */
.view.home>.lock{min-height:0;aspect-ratio:1/1;grid-template-rows:auto 1fr}
.lock-notes>.lock-mood{justify-self:start;background:var(--s-subtle);color:var(--text);border:1px solid var(--hair);backdrop-filter:none;-webkit-backdrop-filter:none;max-width:100%}
.lock-notes>.lock-mood small{color:var(--muted);opacity:1}
/* notifiche: scheda sotto la lock, righe su superficie incassata (non più vetro bianco sopra lo sfondo) */
.lock-notes .lock-feed{gap:6px}
.lock-notes .lock-n{background:var(--s-subtle);color:var(--text);border:1px solid var(--hair);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:inset 0 1px 0 var(--spec)}
.lock-notes .lock-n.lock-tip{background:color-mix(in srgb,var(--ember-500) 8%,var(--s-subtle));border-color:color-mix(in srgb,var(--ember-500) 22%,transparent)}
.lock-notes .lock-n p{color:var(--muted)}
.lock-notes .lock-app svg{color:var(--accent)}
.lock-notes .lock-feed.stacked .lock-n:nth-child(n+2){background:color-mix(in srgb,var(--text) 7%,var(--s-subtle));border-top:0}
.lock-notes .lock-feed.stacked .lock-n:nth-child(3){background:color-mix(in srgb,var(--text) 4%,var(--s-subtle))}
.lock-notes .lock-more{background:var(--s-subtle);color:var(--text);border:1px solid var(--hair);backdrop-filter:none;-webkit-backdrop-filter:none}
.lock-notes .lock-more:hover,.lock-notes .lock-more:focus-visible{background:var(--s-card)}
.lock-notes .lock-empty{color:var(--muted);text-shadow:none}

/* briefing: tre mini-statistiche in riga, poi testo e giornata */
.briefing .lock-widgets{gap:var(--sp-2)}
.briefing .lock-w{display:grid;gap:6px;padding:12px;border-radius:var(--r-md);background:var(--s-subtle);border:1px solid var(--hair);box-shadow:inset 0 1px 0 var(--spec)}
.briefing .lock-w b{font:600 20px/1.05 var(--f-disp);letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--text);white-space:normal}
.briefing .lock-w small{color:var(--muted)}
.lock-wi{--wc:var(--royal);display:grid;place-items:center;width:28px;height:28px;border-radius:9px;color:var(--wc);background:color-mix(in srgb,var(--wc) 14%,transparent)}
.briefing .lock-w:nth-child(2) .lock-wi{--wc:var(--emerald)}
.briefing .lock-w:nth-child(3) .lock-wi{--wc:var(--amber)}
.brief-text{font-size:15px;color:var(--text)}
.ds-track{fill:var(--s-subtle);stroke:var(--hair)}.ds-tick{stroke:var(--hair)}.ds-lbl{fill:var(--muted);font:500 12px var(--f-mono)}
.ds-now{stroke:var(--ember-500);stroke-width:4;stroke-linecap:round;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--ember-500) 60%,transparent))}
.dayline::before{background:var(--hair);width:2px}
.dayline li::before{box-shadow:0 0 0 4px var(--s-card)}
.dayline li b{font:600 16px/1.25 var(--f-disp);letter-spacing:-.01em}
.dayline time{font:500 13px var(--f-mono)}
.dayline li.now::before{background:linear-gradient(90deg,var(--ember-500),color-mix(in srgb,var(--ember-500) 0%,transparent));height:2px}
.dayline li.now time{color:var(--on-ember)}

/* bento: una colonna su telefono, due su tablet, quattro asimmetriche su computer */
.bento{display:grid;gap:var(--sp-4);grid-template-columns:minmax(0,1fr);align-items:start}
.b-stack{display:grid;gap:var(--sp-2);align-content:start;min-width:0}
.b-stack>.actions{padding:0 4px}
@media (min-width:640px){
  .bento{grid-template-columns:repeat(2,minmax(0,1fr))}
  .b-wide{grid-column:1/-1}
}
@media (min-width:1000px){
  .view.home{grid-template-columns:minmax(420px,520px) minmax(0,1fr);align-items:start}
  .view.home>.lock{grid-column:1;grid-row:1}
  .view.home>.briefing{grid-column:2;grid-row:1/span 2;align-self:stretch}
  .view.home>.lock-notes{grid-column:1;grid-row:2;align-self:start}
  .view.home>.bento,.view.home>.home-controls{grid-column:1/-1}
  /* due colonne asimmetriche: task alti a sinistra, le altre schede impilate a destra (niente buchi con poche schede) */
  .bento{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-auto-flow:row dense}
  .b-tasks{grid-column:1;grid-row:span 3}
  .bento>:not(.b-tasks){grid-column:2}
}

/* priorità e task: gruppi compatti, righe separate da un filo */
.home-prio .tasks{gap:0}
.home-prio .task{padding:4px 0;border-top:1px solid var(--hair);border-radius:0}
.home-prio .task:first-child{border-top:0}
.prio-h{font:600 13px/1 var(--f-disp);color:var(--muted);text-transform:none;letter-spacing:0;display:flex;align-items:center;gap:8px;margin:6px 0 2px}
.prio-h::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--emerald)}
.prio-h.p0::before{background:var(--red)}.prio-h.p1::before{background:var(--amber)}
.quick-add{display:grid;grid-template-columns:1fr auto auto;gap:8px;margin-top:4px}

/* nutrizione: numero grande tabulare + barre */
.stat{display:grid;gap:2px}
.stat b{font:var(--t-num);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.stat span{font:var(--t-meta);color:var(--muted)}

/* comandi JARVIS: tessere con icona in un riquadro tinto */
.qbar{gap:var(--sp-2);-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent);padding:2px 32px 6px 2px}
.qbar .qcmd{--q:var(--royal);min-width:112px;min-height:84px;padding:12px;display:grid;align-content:space-between;justify-items:start;gap:10px;text-align:left;
  border:1px solid var(--hair);border-radius:var(--r-md);background:var(--s-subtle);color:var(--text);font:600 14px/1.15 var(--f-disp);box-shadow:inset 0 1px 0 var(--spec)}
.qbar .qcmd .qi{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;color:var(--q);background:color-mix(in srgb,var(--q) 14%,transparent)}
.qbar .qcmd:nth-child(1){--q:var(--ember-500)}.qbar .qcmd:nth-child(2){--q:var(--amber)}.qbar .qcmd:nth-child(3){--q:var(--violet)}
.qbar .qcmd:nth-child(4){--q:var(--emerald)}.qbar .qcmd:nth-child(5){--q:var(--royal)}.qbar .qcmd:nth-child(6){--q:var(--rose)}.qbar .qcmd:nth-child(7){--q:var(--violet)}

/* abitudini */
.streak{font:600 14px var(--f-disp);font-variant-numeric:tabular-nums;color:var(--on-amber)}.streak svg{color:var(--amber)}
.cal.mini i{border:0;background:color-mix(in srgb,var(--text) 9%,transparent)}.cal.mini i.on{background:var(--rose)}

/* Koda fuori dall'app: riga di comandi su superficie secondaria */
.home-controls{background:var(--s-subtle);box-shadow:none}

/* ---- Calendario ---- */
.view.calendar{gap:var(--sp-4)}
.calendar .card .sk-card{background:none;border:0;box-shadow:none;padding:var(--sp-2) 0} /* skeleton dentro la scheda: niente scheda doppia */
.calendar .calhead h2{font:var(--t-title);letter-spacing:var(--track-tight);text-transform:none}
.calendar .calhead h2::first-letter{text-transform:uppercase}
.calendar .split .calhead h2{font:var(--t-h2)}
/* controllo a segmenti: binario incassato, il segmento scelto è una piccola scheda in rilievo */
.seg{background:var(--s-subtle);border:1px solid var(--hair);border-radius:var(--r-sm);padding:3px;gap:2px}
.seg button{min-height:36px;border-radius:9px;font:600 14px/1 var(--f-disp);letter-spacing:-.01em;color:var(--muted);
  transition:background-color var(--d-fast) var(--ease-out),color var(--d-fast) var(--ease-out),box-shadow var(--d-fast) var(--ease-out)}
.seg button[aria-selected=true]{background:var(--s-card);color:var(--text);box-shadow:inset 0 1px 0 var(--spec),var(--sh-1)}
.calnav{gap:var(--sp-2);align-items:center}
.calnav .btn.small.ghost{min-width:40px}

/* superfici delle griglie: incassate nella scheda */
.wscroll,.dscroll{border:1px solid var(--hair);border-radius:var(--r-md);background:var(--s-subtle);overscroll-behavior:contain}
.whead{background:color-mix(in srgb,var(--s-card) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--hair)}
.wday{padding:6px 2px;gap:2px}.wday small{font:600 11px/1 var(--f-disp);color:var(--muted);text-transform:capitalize}
.wday b{font:600 15px/28px var(--f-disp);font-variant-numeric:tabular-nums;min-width:28px;height:28px}
.wday.today small{color:var(--on-ember)}
.wday.today b{box-shadow:var(--sh-cta)}
.whours span{font:500 11px/1 var(--f-mono);color:var(--muted);padding:0 6px 0 0;transform:translateY(-5px)}
.wcol{border-left:1px solid var(--hair)}
.wcol.today{background:color-mix(in srgb,var(--ember-500) 5%,transparent)}
.wline{border-top:1px solid var(--hair)}

/* eventi: fondo tinto della categoria, barretta interna a sinistra, testo pieno (niente bordi spessi) */
.wev,.dev,.calendar .ev-chip,.sd-list li,.agd-ev{border:0;background:color-mix(in srgb,var(--c) 15%,var(--s-card));color:var(--text);box-shadow:inset 3px 0 0 var(--c)}
.wev{border-radius:8px;padding:4px 5px 4px 7px;gap:1px;font:500 11px/1.25 var(--f-body);overflow:hidden;
  transition:transform var(--d-fast) var(--spring),box-shadow var(--d-fast) var(--ease-out)}
.wev b{font:600 11px/1.2 var(--f-disp);font-variant-numeric:tabular-nums;color:color-mix(in srgb,var(--c) 55%,var(--text))}
.wev b svg{color:var(--c)}
.wev span{overflow:hidden;overflow-wrap:anywhere}
.wev:active,.dev:active{transform:scale(.98)}
@media (hover:hover){.wev:hover,.dev:hover{box-shadow:inset 3px 0 0 var(--c),var(--sh-2)}}
/* linea dell'ora attuale: arancio Koda con un punto luminoso */
.wnow{height:2px;background:var(--ember-500);box-shadow:0 0 6px color-mix(in srgb,var(--ember-500) 60%,transparent)}
.wnow::before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--ember-500)}
/* telefono: tutta la settimana in vista (7 colonne strette, come i calendari nativi) invece dello scorrimento laterale */
@media (max-width:640px){
  .wgrid{min-width:0}
  .whead,.wbody{grid-template-columns:38px repeat(7,minmax(0,1fr))}
  .wev{padding:3px 2px 3px 4px;font-size:10px;border-radius:6px}
  .wev b{font-size:9.5px;letter-spacing:-.03em;white-space:nowrap}.wev b svg{display:none}
  .whours span{padding-right:4px;font-size:10px}
}

/* giorno: timeline con Koda */
.dhour{border-top:1px solid var(--hair)}.dhour span{font:500 11px/1 var(--f-mono);color:var(--muted);top:-6px}
.dev{border-radius:var(--r-sm);padding:8px 10px 8px 14px;gap:10px;box-shadow:inset 3px 0 0 var(--c),var(--sh-1);overflow:hidden;
  transition:transform var(--d-fast) var(--spring),box-shadow var(--d-fast) var(--ease-out)}
.dev-main{gap:2px;min-width:0}
.dev-main b{font:600 15px/1.2 var(--f-disp);letter-spacing:-.01em}.dev-main b svg{color:var(--c)}
.dev-main>span:not(.rem){font:500 13px/1.3 var(--f-disp);font-variant-numeric:tabular-nums}
.dev-main small{color:var(--muted)}
.rem{margin-top:4px}.rem i{font:600 11px/1 var(--f-disp);padding:4px 7px;border-radius:999px;background:color-mix(in srgb,var(--c) 18%,transparent);color:var(--text)}
.dpose{background:color-mix(in srgb,var(--c) 12%,var(--s-subtle));border-radius:10px;box-shadow:inset 0 0 0 1px var(--hair)}
/* buchi liberi: tratteggio leggero, azioni compatte in riga */
.dfree{border:1.5px dashed color-mix(in srgb,var(--emerald) 35%,var(--hair));background:color-mix(in srgb,var(--emerald) 5%,transparent);border-radius:var(--r-sm);padding:8px 12px;gap:4px;align-content:start}
.dfree b{font:600 14px/1.25 var(--f-disp);color:var(--on-emerald)}
.dfree>.muted{font:500 12px/1.2 var(--f-mono)}
.dfree .actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.dfree .btn.small{min-height:32px;font-size:13px;padding:0 10px;border-radius:9px}
.dnow i{background:var(--ember-500);box-shadow:0 0 6px color-mix(in srgb,var(--ember-500) 60%,transparent)}

/* mese: celle incassate, oggi con disco arancio, selezione ad anello */
.calendar .mgrid{gap:4px}
.calendar .mgrid .dow{font:600 11px/1 var(--f-disp);color:var(--muted);padding:4px 0 6px}
.calendar .mcell{background:var(--s-subtle);border:1px solid transparent;border-radius:var(--r-sm);padding:5px;min-height:84px;
  transition:background-color var(--d-fast) var(--ease-out),box-shadow var(--d-fast) var(--ease-out),transform var(--d-fast) var(--spring)}
.calendar .mcell:active{transform:scale(.97)}
.calendar .mcell.dim{opacity:.4}
.calendar .mcell.today{background:color-mix(in srgb,var(--ember-500) 9%,var(--s-subtle))}
.calendar .mcell .mnum{font:600 13px/24px var(--f-disp);font-variant-numeric:tabular-nums;min-width:24px;height:24px;text-align:center}
.calendar .mcell.today .mnum{border-radius:12px;background:var(--accent);color:var(--ink);box-shadow:var(--sh-cta)}
.calendar .mcell[aria-pressed=true]{background:var(--s-card);border-color:color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}
.calendar .ev-chip{border-radius:5px;padding:2px 4px 2px 6px;font:500 11px/1.3 var(--f-body)}
.calendar .ev-chip b{font:600 10px/1.3 var(--f-disp);font-variant-numeric:tabular-nums}
.calendar .ev-more{font:600 11px/1 var(--f-disp);color:var(--muted);padding-left:4px}
@media (max-width:640px){.calendar .mcell{min-height:72px;padding:3px}.calendar .ev-chip{padding:1px 2px 1px 4px}.calendar .ev-chip b{font-size:9px}}

/* liste: dettaglio del giorno e agenda */
.sd-list,.calendar .agenda{gap:6px}
.sd-list li,.agd-ev{border-radius:var(--r-sm);padding:10px 8px 10px 14px}
.sd-list li>b,.agd-ev>b{font:600 15px/1 var(--f-disp);font-variant-numeric:tabular-nums}
.sd-list .t-title svg{color:var(--c)}
.sd-list .icon-btn,.agd-ev .icon-btn{background:transparent;border-color:transparent}
.agd{gap:var(--sp-5)}
.agd-day h3{font:var(--t-h2);letter-spacing:var(--track-tight);margin:0 0 8px;text-transform:none}
.agd-day h3::first-letter{text-transform:uppercase}
.calendar .agenda li:not(.agd-ev){border-top:0;padding:8px 2px;color:var(--text)}
.calendar .agenda li:not(.agd-ev)>svg{color:var(--amber)}
.badge.cd{--b:var(--royal);--bt:var(--on-royal)}
.tpl{gap:6px}
.tpl-btn,.card .tpl-btn{border-color:color-mix(in srgb,var(--c) 30%,var(--hair));background:color-mix(in srgb,var(--c) 8%,var(--s-subtle))}
.tpl-btn svg{color:var(--c)}

/* editor dell'impegno (nel foglio) */
.ev-form .ev-title{font:600 22px/1.2 var(--f-disp);letter-spacing:var(--track-tight);border-bottom:1.5px solid var(--hair);background:transparent;box-shadow:none}
.ev-form .ev-title:focus{border-bottom-color:var(--accent);box-shadow:none;background:transparent}
.ev-group{border:1px solid var(--hair);border-radius:var(--r-md);background:var(--s-subtle);box-shadow:inset 0 1px 0 var(--spec)}
.ev-row{border-bottom:1px solid var(--hair)}
.ev-row input,.ev-row input:focus{background:transparent;border:0;box-shadow:none;font:500 16px var(--f-disp);font-variant-numeric:tabular-nums}
.ev-row input:focus-visible{color:var(--on-ember)}
.cat-btn{border:1px solid var(--hair);background:var(--s-card);font:600 13px/1 var(--f-disp);color:var(--text);
  transition:background-color var(--d-fast) var(--ease-out),border-color var(--d-fast) var(--ease-out),transform var(--d-fast) var(--spring)}
.cat-btn svg{color:var(--c)}
.cat-btn:active{transform:scale(.97)}
.cat-btn[aria-pressed=true]{border-color:color-mix(in srgb,var(--c) 55%,transparent);background:color-mix(in srgb,var(--c) 16%,var(--s-card));box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 14%,transparent)}
@media (prefers-reduced-motion:reduce){.seg button,.wev,.dev,.calendar .mcell,.cat-btn{transition:none}}

/* Scheda di Koda: carta del pet con palco a sinistra e identità a destra (impilati su telefono) */
.scheda-hero{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-4);align-items:center}
.scheda-stage{display:grid;place-items:center;min-width:220px}
.scheda-id h1{margin:0;font:var(--t-display)}
.scheda-id .kpis{margin-top:var(--sp-3)}
.chip[aria-current=true]{background:color-mix(in srgb,var(--accent) 14%,var(--s-card));border-color:color-mix(in srgb,var(--accent) 32%,transparent);color:var(--on-ember)}
@media (max-width:640px){.scheda-hero{grid-template-columns:1fr;text-align:center}}
.fslot-c{margin-left:auto;font:var(--t-meta);color:var(--muted);font-variant-numeric:tabular-nums} /* carboidrati del pasto, a destra del titolo */
