@font-face{font-family:Montserrat;src:url('montserrat-variable.ttf') format('truetype');font-weight:100 900;font-display:swap}

:root{
  --color-accent:#174b6c;
  --color-accent-hover:#102f45;
  --color-accent-soft:#e8f0f5;
  --color-bg:#f7f8f9;
  --color-surface:#fff;
  --color-hover:#f1f3f5;
  --color-text:#142e40;
  --color-text-secondary:#566875;
  --color-border:#e4e8eb;
  --color-input-border:#8a99a4;
  --color-danger:#9d2828;
  --color-danger-soft:#fbeeee;
  --color-warning:#7d5200;
  --color-warning-soft:#fcf3e1;
  --color-success:#1e6b47;
  --color-success-soft:#e6f4ec;
  --stadio-inizio:#d93636;--stadio-inizio-soft:#fde4e4;--stadio-inizio-testo:#8f1f1f;
  --stadio-corso:#e8b90c;--stadio-corso-soft:#fdf0b3;--stadio-corso-testo:#5f4600;
  --stadio-fatto:#2a9d63;--stadio-fatto-soft:#d6f1e1;--stadio-fatto-testo:#17593a;
  --shadow-border:0 0 0 1px rgb(16 47 69 / .07),0 1px 2px -1px rgb(16 47 69 / .07),0 2px 4px 0 rgb(16 47 69 / .04);
  --shadow-panel:0 0 0 1px rgb(16 47 69 / .07),0 12px 40px rgb(16 47 69 / .18);
  --ease:cubic-bezier(.2,0,0,1);
  --text-xs:.75rem;--text-sm:.8125rem;--text-md:.875rem;--text-lg:1rem;--text-xl:1.375rem;
  --radius-sm:6px;--radius-md:8px;--radius-lg:12px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-block:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{margin:0;background:var(--color-bg);color:var(--color-text);font:500 var(--text-md)/1.5 Montserrat,system-ui,sans-serif;-webkit-tap-highlight-color:transparent}
h1,h2,h3,p,dl,dd{margin:0}
h1{font-size:var(--text-xl);font-weight:700;line-height:1.25;letter-spacing:-.015em;text-wrap:balance;outline:0}
h2{font-size:var(--text-md);font-weight:650;line-height:1.3}
h3{font-size:var(--text-lg);font-weight:650;line-height:1.3;text-wrap:balance}
a{color:var(--color-accent);text-underline-offset:2px}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
h1:focus-visible{outline:0}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.salta{position:fixed;inset-block-start:8px;inset-inline-start:8px;z-index:60;padding:8px 12px;border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-panel);transform:translateY(-500%)}
.salta:focus{transform:none}
.icona{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}

/* Struttura */
.guscio{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100dvh}
.lato{background:var(--color-bg);border-inline-end:1px solid var(--color-border);padding:16px 10px;display:flex;flex-direction:column;gap:20px;position:sticky;top:0;height:100dvh}
.marchio{display:flex;align-items:center;gap:10px;padding:0 8px;font-weight:700;font-size:var(--text-lg);letter-spacing:-.01em}
.marchio span{flex:none;width:30px;height:30px;border-radius:var(--radius-md);background:var(--color-accent-hover);display:grid;place-items:center}
.marchio img{height:20px;width:auto}
.nav{display:grid;gap:2px}
.nav a{display:flex;align-items:center;gap:10px;min-height:36px;padding:6px 8px;border-radius:var(--radius-sm);color:var(--color-text-secondary);text-decoration:none;font-weight:600;transition:background-color 120ms ease-out,color 120ms ease-out}
.nav a[aria-current=page]{background:var(--color-accent-soft);color:var(--color-accent)}
.nav .conta{margin-inline-start:auto}
.conta{min-width:20px;padding:0 6px;border-radius:99px;background:var(--color-danger);color:#fff;font-size:var(--text-xs);font-weight:650;line-height:20px;text-align:center;font-variant-numeric:tabular-nums}
.io{margin-top:auto;padding:0 8px;font-size:var(--text-sm);color:var(--color-text-secondary);display:grid;gap:8px}
.io strong{color:var(--color-text);font-weight:650;display:block}
.io label{font-size:var(--text-xs)}
.io select{min-height:36px;padding:4px 8px;font-size:var(--text-sm)}
.pagina{padding:32px clamp(16px,4vw,48px) 96px;max-width:960px;width:100%;margin:0 auto;display:grid;gap:24px;align-content:start}
.testa{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.testa p{color:var(--color-text-secondary)}
.sotto-nav,.fab{display:none}

/* Pulsanti */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:6px 12px;border:1px solid transparent;border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-border);color:var(--color-text);font-weight:600;font-size:var(--text-sm);line-height:1.3;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color 120ms ease-out,scale 150ms ease-out}
.btn.primario{background:var(--color-accent);box-shadow:none;color:#fff}
.btn.pericolo,.voce-menu.pericolo{color:var(--color-danger)}
.btn:disabled{opacity:.6;cursor:progress}
.btn-testo{border:0;background:none;color:var(--color-accent);font-weight:600;font-size:var(--text-sm);cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:2px}
.azioni{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.menu{position:relative}
.menu>summary{list-style:none}
.menu>summary::-webkit-details-marker{display:none}
.menu-voci{position:absolute;z-index:15;inset-block-start:calc(100% + 4px);inset-inline-start:0;min-width:200px;padding:4px;display:grid;gap:1px;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-panel)}
.voce-menu{min-height:36px;width:100%;padding:6px 10px;border:0;border-radius:var(--radius-sm);background:none;text-align:start;font-weight:600;font-size:var(--text-sm);cursor:pointer}

/* Liste */
.sezione{display:grid;gap:8px}
.sezione>h2 .numero-sez{color:var(--color-text-secondary);font-weight:500;font-variant-numeric:tabular-nums;margin-inline-start:4px}
.sezione>h2.urgente{color:var(--color-danger)}
.lista{container-type:inline-size;background:var(--color-surface);border:1px solid transparent;border-radius:var(--radius-lg);box-shadow:var(--shadow-border)}
.riga{position:relative;display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:2px 12px;padding:10px 14px;min-height:48px;border-top:1px solid var(--color-border);transition:background-color 120ms ease-out}
.riga:first-child{border-top:0;border-start-start-radius:var(--radius-lg);border-start-end-radius:var(--radius-lg)}
.riga:last-child{border-end-start-radius:var(--radius-lg);border-end-end-radius:var(--radius-lg)}
.riga-link{min-width:0;color:inherit;text-decoration:none;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 10px}
.riga-link::after{content:'';position:absolute;inset:0;border-radius:inherit}
.riga-link:focus-visible{outline:0}
.riga-link:focus-visible::after{outline:2px solid var(--color-accent);outline-offset:-2px}
.riga-titolo{font-weight:600;overflow-wrap:anywhere}
.riga-meta{color:var(--color-text-secondary);font-size:var(--text-sm);display:inline-flex;flex-wrap:wrap;gap:0 10px;min-width:0}
.riga-dx{font-size:var(--text-sm);text-align:end;white-space:nowrap;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}
.spunta{position:relative;z-index:1;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--color-input-border);background:var(--color-surface);cursor:pointer;padding:0;display:grid;place-items:center;color:transparent;transition:border-color 120ms ease-out,color 120ms ease-out,background-color 120ms ease-out}
.spunta::before{content:'';position:absolute;inset:-12px}
.spunta .icona{width:12px;height:12px;stroke-width:3}
.spunta.in-corso{border-color:var(--color-accent);background:linear-gradient(90deg,var(--color-accent) 50%,transparent 50%) content-box;background-clip:content-box;padding:2px}
.stato-icona{width:20px;height:20px;display:grid;place-items:center;color:var(--color-text-secondary)}
.stato-icona.ok{color:var(--color-success)}
.vuoto{padding:32px 16px;display:grid;gap:8px;justify-items:center;text-align:center;color:var(--color-text-secondary)}
.vuoto strong{color:var(--color-text);font-weight:650}
.segnale{font-size:var(--text-sm);font-weight:600;display:inline-flex;align-items:center;gap:4px}
.segnale.rosso{color:var(--color-danger)}
.segnale.ambra{color:var(--color-warning)}
.segnale.verde{color:var(--color-success)}
.segnale .icona{width:14px;height:14px}
.scad{font-weight:600;color:var(--color-text-secondary)}
.scad.ritardo{color:var(--color-danger)}
.scad.oggi{color:var(--color-warning)}
@container (max-width:560px){
  .riga{grid-template-columns:22px minmax(0,1fr);align-items:start}
  .riga-link{display:grid;gap:2px}
  .riga-dx{grid-column:2;text-align:start}
  .riga-pr{grid-template-columns:minmax(0,1fr)}
  .riga-pr .riga-dx{grid-column:1}
  .avanzamento{grid-column:1}
}

/* Aggiunta rapida */
.veloce{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,170px) 150px auto;gap:8px;align-items:center;padding:8px;background:var(--color-surface);border:1px solid transparent;border-radius:var(--radius-lg);box-shadow:var(--shadow-border)}
.veloce input,.veloce select{min-height:36px;font-size:var(--text-md);padding:6px 10px}
.colonne .veloce{grid-template-columns:minmax(0,1fr) 150px auto}
.colonne .veloce label:first-child{grid-column:1/-1}

/* Progetti */
.riga-pr{grid-template-columns:minmax(0,1fr) 112px auto}
.avanzamento{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;font-size:var(--text-xs);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}
.barra{height:4px;background:var(--color-border);border-radius:99px;overflow:hidden}
.barra i{display:block;height:100%;background:var(--color-accent)}
.filtri{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.chip{min-height:32px;padding:4px 12px;border:1px solid transparent;border-radius:99px;background:var(--color-surface);box-shadow:var(--shadow-border);font-weight:600;font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;transition:background-color 120ms ease-out}
.chip[aria-pressed=true]{background:var(--color-accent);box-shadow:none;color:#fff}
.filtri select{width:auto;min-height:32px;padding:2px 8px;font-size:var(--text-sm);border-color:var(--color-border)}
.colonne{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:32px;align-items:start}
.flusso{display:grid;gap:24px;min-width:0}
.scheda-dati{display:grid;gap:14px}
.scheda-dati dt{font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary)}
.scheda-dati dd{overflow-wrap:anywhere;white-space:pre-wrap;text-wrap:pretty}
.lato-progetto{display:grid;gap:16px}
.avviso-blocco{padding:10px 12px;border-radius:var(--radius-md);background:var(--color-danger-soft);color:var(--color-danger);font-weight:600;overflow-wrap:anywhere}
.sopra-titolo{display:flex;gap:8px;align-items:center;color:var(--color-text-secondary);font-size:var(--text-sm);margin-block-end:4px}

/* Panoramica */
.numeri{display:flex;flex-wrap:wrap;gap:12px 32px}
.numero{display:grid}
.numero b{font-size:var(--text-xl);font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}
.numero span{font-size:var(--text-sm);color:var(--color-text-secondary)}
.numero.allerta b{color:var(--color-danger)}

/* Persone e team */
.avatar{flex:none;width:30px;height:30px;border-radius:50%;background:var(--color-accent-soft);color:var(--color-accent);display:grid;place-items:center;font-size:var(--text-xs);font-weight:700}
details.persona{background:var(--color-surface);border:1px solid transparent;border-radius:var(--radius-lg);box-shadow:var(--shadow-border)}
details.persona summary{display:flex;align-items:center;gap:12px;padding:10px 14px;min-height:52px;cursor:pointer;list-style:none;border-radius:var(--radius-lg)}
details.persona summary::-webkit-details-marker{display:none}
details.persona .apri{margin-inline-start:auto;color:var(--color-text-secondary);transition:rotate 150ms ease-out}
details.persona[open] .apri{rotate:90deg}
.persona-nome{min-width:0;display:grid}
.persona-nome strong{font-weight:600;overflow-wrap:anywhere}
.piccolo{font-size:var(--text-sm);color:var(--color-text-secondary)}
details.persona .lista{box-shadow:none;border-top-color:var(--color-border);border-radius:0 0 var(--radius-lg) var(--radius-lg)}
.chiusa-team{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.riga-persona{grid-template-columns:30px minmax(0,1fr) auto;width:100%;border-inline:0;border-block-end:0;background:none;text-align:start;cursor:pointer;color:inherit;font-size:inherit}
.riga-persona:first-child{border-top-color:transparent}

/* Commenti e storico */
.commento{padding:10px 12px;background:var(--color-bg);border-radius:var(--radius-md);overflow-wrap:anywhere;white-space:pre-wrap}
.commento b{display:block;font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary)}
.nuovo-commento{gap:8px}
.nuovo-commento textarea{min-height:44px;field-sizing:content}
.storico{margin:0;padding:0;list-style:none;display:grid;gap:8px;font-size:var(--text-sm);color:var(--color-text-secondary)}
.storico b{color:var(--color-text);font-weight:600}
details.storia summary{cursor:pointer;font-weight:600;color:var(--color-accent);font-size:var(--text-sm);width:fit-content}
details.storia[open] summary{margin-block-end:10px}

/* Finestre */
dialog{border:0;border-radius:var(--radius-lg);padding:0;width:min(520px,calc(100% - 32px));max-height:calc(100dvh - 32px);color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-panel);overscroll-behavior:contain}
dialog::backdrop{background:rgb(16 47 69 / .32)}
#domanda{width:min(420px,calc(100% - 32px))}
#scheda.pannello{margin:0 0 0 auto;width:min(480px,100%);height:100dvh;max-height:100dvh;border-radius:0}
#scheda.pannello::backdrop{background:rgb(16 47 69 / .12)}
.finestra{padding:20px;display:grid;gap:16px}
.finestra-testa{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.chiudi{flex:none;width:32px;height:32px;margin:-4px -4px 0 0;border:0;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);cursor:pointer;display:grid;place-items:center;transition:background-color 120ms ease-out}
form{display:grid;gap:14px}
fieldset{border:0;margin:0;padding:0;min-width:0}
label{display:grid;gap:4px;font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary)}
label.spunta-riga{display:flex;align-items:center;gap:8px;min-height:32px;color:var(--color-text);font-weight:500}
input:not([type=checkbox]),select,textarea{width:100%;min-height:40px;padding:8px 10px;border:1px solid var(--color-input-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--text-md);font-weight:500}
input::placeholder,textarea::placeholder{color:var(--color-text-secondary);opacity:1}
textarea{min-height:80px;resize:vertical;line-height:1.45}
.due{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.rapide{display:flex;gap:6px;flex-wrap:wrap}
.rapide button{min-height:32px;padding:3px 10px;border:1px solid transparent;border-radius:99px;background:var(--color-bg);box-shadow:var(--shadow-border);font-size:var(--text-sm);font-weight:600;cursor:pointer}
.tipi{display:grid;gap:4px}
.tipo{display:block;width:100%;text-align:start;padding:10px 12px;border:0;border-radius:var(--radius-md);background:none;cursor:pointer;font-weight:600;transition:background-color 120ms ease-out}
.tipo span{display:block;font-weight:500;font-size:var(--text-sm);color:var(--color-text-secondary)}
.gruppo-spunte{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 8px;max-height:200px;overflow:auto;overscroll-behavior:contain}
.nota-link{padding:10px;background:var(--color-bg);border-radius:var(--radius-md);font-size:var(--text-sm);overflow-wrap:anywhere}
.errore-form{padding:10px 12px;border-radius:var(--radius-md);background:var(--color-danger-soft);color:var(--color-danger);font-weight:600}

/* Accesso */
.accesso{min-height:100dvh;display:grid;place-items:center;align-content:center;gap:20px;padding:16px;background:var(--color-accent-hover)}
.accesso img{height:44px;width:auto}
.accesso-carta{width:min(400px,100%);padding:24px;display:grid;gap:12px;border-radius:var(--radius-lg);background:var(--color-surface)}
.chi{display:grid;gap:2px;max-height:52dvh;overflow:auto;overscroll-behavior:contain;margin-inline:-8px}

/* Avviso */
#avviso{position:fixed;left:50%;bottom:24px;translate:-50% 0;display:none;align-items:center;gap:14px;padding:10px 14px;border-radius:var(--radius-md);background:var(--color-accent-hover);color:#fff;font-weight:600;font-size:var(--text-sm);z-index:50;width:max-content;max-width:calc(100% - 32px)}
#avviso.visibile{display:flex}
#avviso.errore{background:var(--color-danger)}
#avviso button{border:0;background:none;color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer;padding:2px 0;font-size:inherit}

.msg-slack{padding:12px 14px;border-top:1px solid var(--color-border);white-space:pre-wrap;overflow-wrap:anywhere}
.msg-slack:first-child{border-top:0}
.msg-slack .piccolo{display:block;margin-block-start:4px}

/* Stati solo per puntatori che fanno hover davvero */
@media (hover:hover){
  .nav a:not([aria-current=page]):hover,.voce-menu:hover,.tipo:hover,.chiudi:hover,.btn:not(.primario):hover,.riga:hover{background:var(--color-hover)}
  .btn.primario:hover,.chip[aria-pressed=true]:hover,.chip[aria-current=page]:hover{background:var(--color-accent-hover)}
  .chip:not([aria-pressed=true],[aria-current=page]):hover{background:var(--color-hover)}
  .spunta:not(.in-corso):hover{border-color:var(--color-success);color:var(--color-success)}
}

@media (prefers-reduced-motion:no-preference){
  .btn:not(:disabled):active{scale:.96}
  #scheda.pannello[open]{animation:entra-lato 220ms var(--ease)}
  dialog:not(.pannello)[open]{animation:entra-su 180ms var(--ease)}
  #avviso.visibile{animation:entra-avviso 180ms var(--ease)}
}
@media (prefers-reduced-motion:reduce){
  dialog[open],#avviso.visibile{animation:dissolvi 120ms ease-out}
  .nav a,.riga,.btn,.chip,.tipo,.chiudi,.spunta,.apri{transition:none}
}
@keyframes entra-lato{from{translate:24px 0;opacity:0}}
@keyframes entra-su{from{translate:0 8px;opacity:0}}
@keyframes entra-avviso{from{translate:-50% 8px;opacity:0}}
@keyframes dissolvi{from{opacity:0}}

@media (max-width:960px){
  .colonne{grid-template-columns:minmax(0,1fr)}
  .lato-progetto{order:0}
}
@media (max-width:760px){
  .guscio{display:block}
  .lato{display:none}
  .pagina{padding:20px 16px calc(96px + env(safe-area-inset-bottom));gap:20px}
  .sotto-nav{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;inset:auto 0 0;background:var(--color-surface);border-top:1px solid var(--color-border);padding-bottom:env(safe-area-inset-bottom);z-index:20}
  .sotto-nav a{display:grid;justify-items:center;gap:2px;padding:8px 2px 6px;min-height:52px;text-decoration:none;color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:600}
  .sotto-nav a[aria-current=page]{color:var(--color-accent)}
  .fab{display:flex;position:fixed;inset-inline-end:16px;bottom:calc(68px + env(safe-area-inset-bottom));width:52px;height:52px;border-radius:50%;border:0;background:var(--color-accent);color:#fff;align-items:center;justify-content:center;box-shadow:var(--shadow-panel);z-index:21;cursor:pointer}
  .veloce{display:none}
  #avviso{bottom:calc(72px + env(safe-area-inset-bottom))}
  input:not([type=checkbox]),select,textarea{font-size:16px;min-height:44px}
  .btn{min-height:44px;padding-inline:14px}
  .chiudi{width:44px;height:44px;margin:-10px -10px 0 0}
  .chip{min-height:36px}
  .filtri select{min-height:36px;font-size:16px}
  dialog,#domanda,#scheda.pannello{width:100%;max-width:100%;height:auto;margin:auto 0 0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:92dvh}
  .due{grid-template-columns:minmax(0,1fr)}
  .gruppo-spunte{grid-template-columns:minmax(0,1fr)}
  .menu-voci{inset-block:auto calc(100% + 4px)}
}

/* Calendario */
.viste{display:flex;gap:8px}
.viste .chip{display:inline-flex;align-items:center;text-decoration:none}
.chip[aria-current=page]{background:var(--color-accent);box-shadow:none;color:#fff}
.cal{container-type:inline-size;display:grid;gap:12px}
.cal-barra{display:flex;align-items:center;justify-content:space-between;gap:12px}
.cal-barra h2{font-size:var(--text-lg)}
.cal-comandi{display:flex;gap:6px}
.cal-freccia{padding-inline:10px}
.cal-freccia.indietro .icona{transform:scaleX(-1)}
.cal-avviso{justify-self:start;color:var(--color-danger);font-weight:600;font-size:var(--text-sm)}
.cal-griglia{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-border);overflow:hidden}
.cal-griglia th{padding:8px 4px;font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary)}
.cal-griglia abbr{text-decoration:none}
.cal-griglia td{position:relative;height:112px;padding:6px;vertical-align:top;border-block-start:1px solid var(--color-border);border-inline-start:1px solid var(--color-border)}
.cal-griglia td:first-child{border-inline-start:0}
.cal-griglia td.fuori{background:var(--color-bg)}
.cal-griglia td:has(.cal-num[aria-pressed=true]){background:var(--color-accent-soft)}
.cal-num{display:grid;place-items:center;width:26px;height:26px;padding:0;border:0;border-radius:99px;background:none;font-size:var(--text-sm);font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer}
.cal-num::after{content:'';position:absolute;inset:0}
.cal-num:focus-visible{outline:0}
.cal-num:focus-visible::after{outline:2px solid var(--color-accent);outline-offset:-2px}
td.fuori .cal-num{color:var(--color-text-secondary)}
td[aria-current=date] .cal-num{background:var(--color-accent);color:#fff}
.cal-voci{position:relative;display:grid;gap:2px;margin-block-start:4px;min-width:0;pointer-events:none}
.cal-voce{pointer-events:auto;display:flex;align-items:center;gap:4px;min-width:0;padding:1px 6px;border-radius:var(--radius-sm);background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--text-xs);font-weight:600;text-decoration:none}
.cal-voce span:last-child{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.cal-voce .icona{width:12px;height:12px}
.cal-voce.da_fare{background:var(--stadio-inizio-soft);color:var(--stadio-inizio-testo)}
.cal-voce.in_corso{background:var(--stadio-corso-soft);color:var(--stadio-corso-testo)}
.cal-voce.completata{background:var(--stadio-fatto-soft);color:var(--stadio-fatto-testo)}
.cal-voce.completata span:last-child{text-decoration:line-through}
.cal-punti{display:none}
.cal-punti i,.legenda i{display:inline-block;width:7px;height:7px;border-radius:50%}
i.da_fare{background:var(--stadio-inizio)}
i.in_corso{background:var(--stadio-corso)}
i.completata{background:var(--stadio-fatto)}
.legenda{display:flex;gap:16px;flex-wrap:wrap;font-size:var(--text-xs);color:var(--color-text-secondary)}
.legenda span{display:inline-flex;align-items:center;gap:6px}
.legenda i{width:9px;height:9px}
.cal-altre{padding-inline:6px;font-size:var(--text-xs);color:var(--color-text-secondary)}
.cal-giorno-testa{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-block-end:8px}
.cal-giorno-testa h2::first-letter{text-transform:uppercase}
@container (max-width:560px){
  .cal-griglia td{height:56px;padding:4px 0;text-align:center}
  .cal-num{margin-inline:auto;width:30px;height:30px}
  .cal-voci{display:none}
  .cal-punti{display:flex;justify-content:center;gap:2px;margin-block-start:2px}
}
@media (hover:hover){
  .cal-griglia td:hover{background:var(--color-hover)}
  .cal-griglia td:has(.cal-num[aria-pressed=true]):hover{background:var(--color-accent-soft)}
}

/* Pipeline */
.pipeline{container-type:inline-size;display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
.pipe-colonna{display:grid;gap:10px;padding:10px;border-radius:var(--radius-lg);border-block-start:4px solid;min-height:240px;align-content:start;transition:box-shadow 120ms ease-out}
.pipe-colonna h2{display:flex;align-items:center;gap:6px}
.pipe-colonna.da_fare{background:var(--stadio-inizio-soft);border-color:var(--stadio-inizio)}
.pipe-colonna.in_corso{background:var(--stadio-corso-soft);border-color:var(--stadio-corso)}
.pipe-colonna.completata{background:var(--stadio-fatto-soft);border-color:var(--stadio-fatto)}
.pipe-colonna.da_fare h2{color:var(--stadio-inizio-testo)}
.pipe-colonna.in_corso h2{color:var(--stadio-corso-testo)}
.pipe-colonna.completata h2{color:var(--stadio-fatto-testo)}
.pipe-colonna.bersaglio{box-shadow:0 0 0 2px var(--color-accent)}
.pipe-carte{display:grid;gap:8px}
.pipe-vuota{padding:8px 2px;color:var(--color-text)}
.pipe-carta{display:grid;gap:4px;padding:10px;border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-border);min-width:0}
.pipe-carta[draggable=true]{cursor:grab}
.pipe-carta.trascinata{opacity:.5}
.pipe-titolo{color:var(--color-text);font-weight:600;text-decoration:none;overflow-wrap:anywhere}
.pipe-titolo:hover{text-decoration:underline}
.pipe-piede{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;margin-block-start:4px}
.pipe-sposta{margin-inline-start:auto}
.pipe-sposta select{min-height:32px;padding:2px 6px;font-size:var(--text-xs);max-width:112px}
.cerca label{display:flex;align-items:center;gap:6px;padding-inline:8px;border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-border)}
.cerca input{flex:1;min-width:0;min-height:34px;padding:0;border:0;background:none;box-shadow:none;outline:0;font-size:var(--text-sm)}
.cerca label:focus-within{outline:2px solid var(--color-accent);outline-offset:1px}
@media (max-width:760px){
  .pipeline{grid-template-columns:minmax(0,1fr)}
  .pipe-colonna{min-height:0}
  .pipe-sposta select{min-height:40px;font-size:var(--text-md)}
  .cerca input{min-height:44px;font-size:1rem}
}
@media (prefers-reduced-motion:reduce){.pipe-colonna{transition:none}}

/* Archivio */
.riga-archivio{display:flex;align-items:center;gap:12px}
.riga-archivio .riga-link{flex:1;min-width:0}
.riga-archivio .riga-dx{flex:none;position:relative;z-index:1}
