/* Agenda dello studio */
:root{
  --ag-ora:64px;
  --ag-chiuso:#EDEFE8;
  --ag-riga:rgba(23,31,24,0.10); --ag-riga-mezza:rgba(23,31,24,0.05);
  --ag-verde-bg:#DCEFE3; --ag-verde-tx:#1F5A3C; --ag-verde-bd:#A9D3BA;
  --ag-blu-bg:#DDE8F6; --ag-blu-tx:#1E4E86; --ag-blu-bd:#A9C4E8;
  --ag-ambra-bg:#F5E7C6; --ag-ambra-tx:#71500F; --ag-ambra-bd:#DFC283;
  --ag-viola-bg:#E8E1F4; --ag-viola-tx:#4B3482; --ag-viola-bd:#C3B3E3;
  --ag-rosa-bg:#F6DFE6; --ag-rosa-tx:#862C4A; --ag-rosa-bd:#E2B0C0;
  --ag-grigio-bg:#E6E8E3; --ag-grigio-tx:#454D46; --ag-grigio-bd:#C4C9C1;
  --ag-wa:#1F8A4C;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ag-chiuso:#0A0D09;
    --ag-riga:rgba(255,255,255,0.09); --ag-riga-mezza:rgba(255,255,255,0.045);
    --ag-verde-bg:rgba(99,179,140,0.22); --ag-verde-tx:#A9DFC3; --ag-verde-bd:rgba(99,179,140,0.45);
    --ag-blu-bg:rgba(96,150,226,0.22); --ag-blu-tx:#B3CDF3; --ag-blu-bd:rgba(96,150,226,0.45);
    --ag-ambra-bg:rgba(224,172,77,0.22); --ag-ambra-tx:#EDCD8E; --ag-ambra-bd:rgba(224,172,77,0.45);
    --ag-viola-bg:rgba(160,132,226,0.24); --ag-viola-tx:#CFC0F1; --ag-viola-bd:rgba(160,132,226,0.48);
    --ag-rosa-bg:rgba(226,120,155,0.22); --ag-rosa-tx:#F1B8CA; --ag-rosa-bd:rgba(226,120,155,0.45);
    --ag-grigio-bg:rgba(255,255,255,0.09); --ag-grigio-tx:#C6CDC3; --ag-grigio-bd:rgba(255,255,255,0.20);
    --ag-wa:#5FCB8A;
  }
}
:root[data-theme="dark"]{
  --ag-chiuso:#0A0D09;
  --ag-riga:rgba(255,255,255,0.09); --ag-riga-mezza:rgba(255,255,255,0.045);
  --ag-verde-bg:rgba(99,179,140,0.22); --ag-verde-tx:#A9DFC3; --ag-verde-bd:rgba(99,179,140,0.45);
  --ag-blu-bg:rgba(96,150,226,0.22); --ag-blu-tx:#B3CDF3; --ag-blu-bd:rgba(96,150,226,0.45);
  --ag-ambra-bg:rgba(224,172,77,0.22); --ag-ambra-tx:#EDCD8E; --ag-ambra-bd:rgba(224,172,77,0.45);
  --ag-viola-bg:rgba(160,132,226,0.24); --ag-viola-tx:#CFC0F1; --ag-viola-bd:rgba(160,132,226,0.48);
  --ag-rosa-bg:rgba(226,120,155,0.22); --ag-rosa-tx:#F1B8CA; --ag-rosa-bd:rgba(226,120,155,0.45);
  --ag-grigio-bg:rgba(255,255,255,0.09); --ag-grigio-tx:#C6CDC3; --ag-grigio-bd:rgba(255,255,255,0.20);
  --ag-wa:#5FCB8A;
}

/* colori per tipo */
.ag-c-verde{--c-bg:var(--ag-verde-bg); --c-tx:var(--ag-verde-tx); --c-bd:var(--ag-verde-bd);}
.ag-c-blu{--c-bg:var(--ag-blu-bg); --c-tx:var(--ag-blu-tx); --c-bd:var(--ag-blu-bd);}
.ag-c-ambra{--c-bg:var(--ag-ambra-bg); --c-tx:var(--ag-ambra-tx); --c-bd:var(--ag-ambra-bd);}
.ag-c-viola{--c-bg:var(--ag-viola-bg); --c-tx:var(--ag-viola-tx); --c-bd:var(--ag-viola-bd);}
.ag-c-rosa{--c-bg:var(--ag-rosa-bg); --c-tx:var(--ag-rosa-tx); --c-bd:var(--ag-rosa-bd);}
.ag-c-grigio{--c-bg:var(--ag-grigio-bg); --c-tx:var(--ag-grigio-tx); --c-bd:var(--ag-grigio-bd);}
.ag-c-occupato{--c-bg:var(--surface-2); --c-tx:var(--text-muted); --c-bd:var(--border-strong);}
.ag-pallino{display:inline-block; width:10px; height:10px; border-radius:50%; background:var(--c-tx); flex:none;}

/* barra */
.ag-barra{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px;}
.ag-nav{display:flex; align-items:center; gap:6px; min-width:0;}
.ag-periodo{font-size:18px; margin-left:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0;}
.ag-comandi{display:flex; flex-wrap:wrap; align-items:center; gap:8px;}
.ag-comandi select{width:auto; padding:6px 10px; font-size:12.5px;}
.ag-disdetti{font-size:12.5px;}

/* griglia oraria */
.card.ag-griglia-card{padding:0; overflow:hidden;}
.ag-scorri{overflow-x:auto;}
.ag-griglia{display:grid; grid-template-columns:52px repeat(var(--ag-colonne), minmax(118px, 1fr));}
.ag-testa-vuota{border-bottom:1px solid var(--border);}
.ag-testa{display:flex; align-items:baseline; justify-content:center; gap:6px; padding:10px 6px; border:none; border-left:1px solid var(--border);
  border-bottom:1px solid var(--border); background:var(--surface); color:var(--text-2); font:inherit; font-size:12.5px; text-transform:capitalize;}
button.ag-testa:hover{background:var(--surface-hover);}
.ag-testa b{font-family:var(--font-display); font-size:18px; color:var(--text); font-weight:600;}
.ag-testa i{font-style:normal; font-size:11px; font-weight:600; color:var(--accent-strong); background:var(--accent-soft); border-radius:99px; padding:0 7px;}
.ag-testa.oggi b{color:var(--accent-contrast); background:var(--accent); border-radius:99px; padding:0 8px;}
.ag-testa-op{flex-direction:column; align-items:center; gap:0; text-transform:none;}
.ag-testa-op b{font-family:var(--font-body); font-size:13.5px;}
.ag-testa-op span{font-size:11.5px; color:var(--warn);}
.ag-orari{border-right:0;}
.ag-ora{position:relative; font-family:var(--font-mono); font-size:11px; color:var(--text-muted); text-align:right; padding-right:8px;}
.ag-ora span{position:relative; top:-8px;}
.ag-ora:first-child span{top:2px;}
.ag-col{position:relative; background:var(--ag-chiuso); border-left:1px solid var(--border); cursor:cell;}
.ag-aperto{position:absolute; left:0; right:0; background:var(--surface);}
.ag-righe{position:absolute; inset:0; pointer-events:none;
  background-image:
    repeating-linear-gradient(to bottom, var(--ag-riga) 0 1px, transparent 1px var(--ag-ora)),
    repeating-linear-gradient(to bottom, transparent 0 calc(var(--ag-ora) / 2), var(--ag-riga-mezza) calc(var(--ag-ora) / 2) calc(var(--ag-ora) / 2 + 1px), transparent calc(var(--ag-ora) / 2 + 1px) var(--ag-ora));}
.ag-col-oggi .ag-aperto{background:color-mix(in srgb, var(--accent-soft) 35%, var(--surface));}
.ag-adesso{position:absolute; left:0; right:0; height:2px; background:var(--danger); z-index:3; pointer-events:none;}
.ag-adesso::before{content:''; position:absolute; left:-4px; top:-3px; width:8px; height:8px; border-radius:50%; background:var(--danger);}

.ag-app{position:absolute; z-index:2; display:flex; flex-direction:column; align-items:flex-start; gap:0; overflow:hidden;
  padding:3px 7px; border-radius:7px; border:1px solid var(--c-bd); background:var(--c-bg); color:var(--c-tx);
  font:inherit; font-size:12px; line-height:1.25; text-align:left; cursor:pointer; transition:box-shadow .12s, transform .05s;}
.ag-app:hover{box-shadow:var(--shadow); z-index:4;}
.ag-app:focus-visible, .ag-riga:focus-visible, .ag-mini:focus-visible, .ag-testa:focus-visible{outline:2px solid var(--accent); outline-offset:1px;}
.ag-app-ora{font-family:var(--font-mono); font-size:11px; font-weight:500; opacity:.85; white-space:nowrap;}
.ag-app-nome{font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%;}
.ag-app-tipo{font-size:11.5px; opacity:.85; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%;}
.ag-breve{flex-direction:row; align-items:center; gap:6px; padding-top:1px; padding-bottom:1px;}
.ag-breve .ag-app-nome{min-width:0;}
.ag-op{font-style:normal; font-family:var(--font-body); font-size:10px; font-weight:700; border:1px solid currentColor; border-radius:4px; padding:0 3px; opacity:.8;}
.ag-segni{font-style:normal; letter-spacing:1px;}
.ag-c-occupato.ag-app{background:repeating-linear-gradient(135deg, var(--surface-2) 0 6px, transparent 6px 12px), var(--surface); cursor:default;}

/* stati */
.ag-s-previsto.ag-app, .ag-s-previsto.ag-mini{border-style:dashed;}
.ag-s-svolto.ag-app{opacity:.72;}
.ag-s-assente.ag-app, .ag-s-assente.ag-mini{border:1.5px dashed var(--danger);}
.ag-s-disdetto{opacity:.5;}
.ag-s-disdetto .ag-app-nome, .ag-s-disdetto .ag-riga-nome{text-decoration:line-through;}

/* mese */
.card.ag-mese-card{padding:0; overflow:hidden;}
.ag-mese{display:grid; grid-template-columns:repeat(7, minmax(100px, 1fr));}
.ag-mese-giorno{padding:8px 10px; font-size:11.5px; font-weight:700; color:var(--text-muted); text-transform:uppercase; letter-spacing:.05em; border-bottom:1px solid var(--border);}
.ag-cella{min-height:112px; padding:4px 6px 6px; border-right:1px solid var(--border); border-bottom:1px solid var(--border); display:flex; flex-direction:column; gap:3px; min-width:0;}
.ag-cella:nth-child(7n){border-right:none;}
.ag-cella.chiusa{background:var(--ag-chiuso);}
.ag-cella.fuori > *{opacity:.45;}
.ag-cella-num{align-self:flex-start; border:none; background:none; font:inherit; font-weight:700; font-size:13px; color:var(--text-2); padding:2px 6px; border-radius:99px;}
.ag-cella-num:hover{background:var(--surface-hover);}
.ag-cella.oggi .ag-cella-num{background:var(--accent); color:var(--accent-contrast);}
.ag-mini{display:block; width:100%; text-align:left; border:1px solid var(--c-bd); background:var(--c-bg); color:var(--c-tx); border-radius:5px;
  font:inherit; font-size:11.5px; padding:1px 5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.ag-mini b{font-family:var(--font-mono); font-weight:500; font-size:10.5px;}
.ag-altri{align-self:flex-start; font-size:11.5px;}

/* elenchi */
.ag-periodo::first-letter, .ag-giorno-card h3::first-letter{text-transform:uppercase;}
.ag-elenco{display:flex; flex-direction:column;}
.ag-riga{display:grid; grid-template-columns:auto auto 1fr auto; align-items:center; gap:12px; padding:10px 6px; border:none; border-bottom:1px solid var(--border);
  background:none; font:inherit; color:var(--text); text-align:left; border-radius:0;}
.ag-riga:last-child{border-bottom:none;}
.ag-riga:hover{background:var(--surface-hover);}
.ag-riga-ora{font-family:var(--font-mono); font-size:12.5px; color:var(--text-2); white-space:nowrap;}
.ag-riga-nome{font-weight:600; min-width:0;}
.ag-riga-nome small{display:block; font-weight:400; color:var(--text-2); font-size:12px;}
@media (max-width:560px){ .ag-riga{grid-template-columns:auto 1fr; } .ag-riga .ag-riga-ora{grid-column:2;} .ag-riga .ag-riga-nome{grid-column:2;} .ag-riga .pill{grid-column:2; justify-self:start;} .ag-riga .ag-pallino{grid-row:1 / span 3; align-self:start; margin-top:5px;} }

/* promemoria */
.ag-prom{display:flex; flex-direction:column;}
.ag-prom-riga{display:grid; grid-template-columns:minmax(180px, 1.4fr) 1fr 1fr auto; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--border);}
.ag-prom-riga:last-child{border-bottom:none;}
.ag-prom-chi{border:none; background:none; font:inherit; color:var(--text); text-align:left; padding:0; min-width:0;}
.ag-prom-chi small{display:block; color:var(--text-2); font-size:12px;}
.ag-prom-az{display:flex; gap:6px; justify-content:flex-end; flex-wrap:wrap;}
@media (max-width:760px){ .ag-prom-riga{grid-template-columns:1fr; gap:4px;} .ag-prom-az{justify-content:flex-start;} }
.ag-st{font-size:12px; display:inline-flex; align-items:center; gap:5px; color:var(--text-2);}
.ag-st::before{content:''; width:7px; height:7px; border-radius:50%; background:var(--text-muted); flex:none;}
.ag-st-ok{color:var(--good);} .ag-st-ok::before{background:var(--good);}
.ag-st-att{color:var(--warn);} .ag-st-att::before{background:var(--warn);}
.ag-st-err{color:var(--danger);} .ag-st-err::before{background:var(--danger);}
.ag-st-no{color:var(--text-muted);}
.btn.ag-btn-wa{border-color:var(--ag-wa); color:var(--ag-wa);}

/* modale */
.ag-det-testa{display:flex; align-items:center; gap:12px; margin-bottom:12px;}
.ag-det-testa h3{margin:0;}
.ag-det-testa .ag-pallino{width:14px; height:14px;}
.ag-det{display:grid; grid-template-columns:auto 1fr; gap:6px 16px; margin:0 0 14px; font-size:13.5px;}
.ag-det dt{color:var(--text-muted); font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; padding-top:2px;}
.ag-det dd{margin:0;}
.ag-det dd::first-letter{text-transform:uppercase;}
.ag-nota{white-space:pre-wrap;}
.ag-stati{display:flex; flex-wrap:wrap; gap:1px; background:var(--border); border:1px solid var(--border-strong); border-radius:9px; overflow:hidden; margin-bottom:12px;}
.ag-stati button{flex:1 1 90px; border:none; background:var(--bg-elev); color:var(--text-2); font:inherit; font-size:12.5px; font-weight:600; padding:7px 8px;}
.ag-stati button:hover{background:var(--surface-hover);}
.ag-stati button.active{background:var(--accent); color:var(--accent-contrast);}
.ag-det-prom{display:flex; flex-direction:column; gap:4px; padding:10px 12px; border-radius:10px; background:var(--surface-2);}
.ag-det-azioni{flex-wrap:wrap; align-items:center;}
.ag-cerca{position:relative;}
.ag-ris{display:flex; flex-direction:column; margin-top:4px; max-height:240px; overflow-y:auto;}
.ag-ris:empty{display:none;}
.ag-paz-ris{display:flex; justify-content:space-between; gap:10px; border:none; border-bottom:1px solid var(--border); background:none; font:inherit; color:var(--text); text-align:left; padding:8px 6px;}
.ag-paz-ris:hover{background:var(--surface-hover);}
.ag-paz-ris small{color:var(--text-2);}
.ag-paz-nuovo{color:var(--accent-strong); font-weight:600; border-bottom:none;}
.ag-paz-scelto{display:flex; align-items:baseline; gap:10px; padding:9px 12px; border:1px solid var(--border-strong); border-radius:9px; background:var(--surface-2);}
.ag-paz-scelto small{color:var(--text-2);}
.ag-paz-scelto .link-btn{margin-left:auto;}
.ag-np{border:1px solid var(--border-strong); border-radius:10px; padding:8px 12px 12px; margin:0 0 12px;}
.ag-np legend{font-weight:700; font-size:13px; padding:0 6px;}
.ag-avviso{font-size:12.5px; color:var(--warn); background:var(--warn-soft); border-radius:8px; padding:8px 10px; margin-top:6px;}
.ag-avviso-info{color:var(--text-2); background:var(--surface-2); margin:8px 0;}

/* scheda paziente */
.ag-consensi{display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px; font-size:13px; color:var(--text-2); margin-top:4px;}

/* impostazioni */
.ag-sez{font-size:15px; margin:22px 0 4px; padding-top:16px; border-top:1px solid var(--border);}
.ag-sez:first-of-type{border-top:none; padding-top:0; margin-top:6px;}
.ag-orari-imp{display:flex; flex-direction:column; gap:6px;}
.ag-orario{display:grid; grid-template-columns:130px auto auto 1fr; align-items:center; gap:10px;}
.ag-orario .inline-check{color:var(--text);}
.ag-fascia{display:inline-flex; align-items:center; gap:6px;}
.ag-fascia input{width:auto; padding:5px 8px;}
.ag-fascia i{font-style:normal; color:var(--text-muted);}
@media (max-width:560px){ .ag-orario{grid-template-columns:1fr; gap:4px;} }
.ag-tipi-imp{display:flex; flex-direction:column; gap:6px;}
.ag-tipo-riga{display:grid; grid-template-columns:minmax(150px, 2fr) 100px 150px 100px 32px; gap:8px; align-items:center;}
.ag-tipo-testa{font-size:11.5px; font-weight:700; color:var(--text-muted); text-transform:uppercase; letter-spacing:.04em;}
.ag-colore-sel{display:flex; align-items:center; gap:6px;}
.ag-tipi-imp .link-btn{align-self:flex-start;}
@media (max-width:640px){ .ag-tipo-riga{grid-template-columns:1fr 1fr;} .ag-tipo-testa{display:none;} }
.ag-testi{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media (max-width:860px){ .ag-testi{grid-template-columns:1fr;} }
.ag-anteprima{white-space:pre-wrap; font-size:12.5px; line-height:1.5; color:var(--text-2); background:var(--surface-2); border-radius:10px; padding:10px 12px; margin-top:8px;}
.ag-caselle{display:flex; flex-wrap:wrap; gap:6px; margin:10px 0;}
.ag-prova{align-items:flex-end; margin-top:10px;}
.ag-prova .field{max-width:320px;}
.ag-prova .btn{margin-bottom:12px;}
code{font-family:var(--font-mono); font-size:12px; background:var(--surface-2); border-radius:4px; padding:0 4px;}

@media (max-width:760px){
  .ag-barra{flex-direction:column; align-items:stretch;}
  .ag-comandi{justify-content:flex-start;}
  .ag-periodo{white-space:normal; font-size:16px;}
  .ag-viste{overflow-x:auto; max-width:100%;}
  .ag-griglia{grid-template-columns:44px repeat(var(--ag-colonne), minmax(140px, 1fr));}
}
@media (prefers-reduced-motion: reduce){ .ag-app{transition:none;} }
