.am-dialog{border:0;border-radius:18px;padding:0;width:min(1100px,96vw);max-height:94vh;background:#f5f8fc;color:#183448;box-shadow:0 20px 80px #102f4550;font-family:inherit}.am-dialog::backdrop{background:#10253799}.am-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:white;border-bottom:1px solid #dbe4ea;gap:16px;position:sticky;top:0;z-index:2}.am-head h2{margin:0;font-size:22px}.am-head p{margin:6px 0 0;color:#596f7f}.am-body{padding:22px}.am-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:18px}.am-dialog button{font:inherit;cursor:pointer}.am-dialog button:disabled{cursor:wait;opacity:.6}.am-dialog input,.am-dialog select,.am-dialog textarea{font:inherit;border:1px solid #b9cbd8;border-radius:8px;padding:10px;background:white;min-width:0;max-width:100%}.am-dialog label{display:grid;gap:6px;color:#3d5869}.am-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.am-card{border:1px solid #dbe5ec;border-radius:12px;padding:16px;background:white;color:#193e55;text-align:left}.am-card b,.am-card small{display:block}.am-card small{margin-top:6px;color:#607381}.am-day{background:white;border:1px solid #d8e4ec;border-radius:12px;margin-bottom:12px;padding:14px}.am-day-title{border:0;background:none;font-weight:700;color:#195574;padding:5px 0;margin:0 0 8px;text-align:left}.am-slots{display:flex;flex-wrap:wrap;gap:8px}.am-slot{border:1px solid #9ac9b2;background:#eaf7f0;color:#176345;border-radius:9px;padding:10px;min-width:85px;text-align:left;text-decoration:none!important}.am-slot.am-occupied{background:#edf0f3;border-color:#cad2d9;color:#3f4a53}.am-slot small{display:block;font-size:11px;margin-top:5px}.am-slot.am-selected{outline:3px solid #448cbc}.am-vertical{display:grid;gap:10px}.am-row{display:grid;grid-template-columns:80px 1fr auto;gap:16px;align-items:center;padding:15px;border-radius:10px;border:1px solid #d3dce3;background:#edf0f3}.am-row small{display:block;margin-top:5px;color:#567080}.am-row.am-free{background:#edf8f1;border-color:#abd2bb}.am-drop{outline:3px dashed #2077a1;outline-offset:2px}.am-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.am-form{display:grid;grid-template-columns:1fr 1fr;gap:15px}.am-full{grid-column:1/-1}.am-note{padding:12px 15px;border-radius:8px;background:#e5eff7;color:#275473;margin:12px 0}.am-error{background:#fff0eb;color:#962d21}.am-muted{color:#637886}.am-legacy-day{border:0;background:none;color:#195574;font:inherit;font-weight:700;cursor:pointer;padding:0}.am-dialog h3{margin-top:22px}.am-dialog [hidden]{display:none!important}@media(max-width:600px){.am-body{padding:14px}.am-head{padding:14px}.am-form{grid-template-columns:1fr}.am-row{grid-template-columns:65px 1fr;gap:10px}.am-row>button{grid-column:2}.am-dialog{max-height:96vh;width:98vw}}
.am-dialog .am-head h2{color:#183448;display:block;visibility:visible}.am-dialog .am-head p{color:#596f7f}.am-dialog button.primary{color:white}
.am-day-summary{margin:0 0 12px;color:#526a7a;font-size:14px}.am-slot[data-blocked]{display:inline-block;cursor:default}
/* Stati leggibili a colpo d’occhio, uguali in calendario e nella giornata. */
.am-slot.am-pending,.am-row.am-pending,.am-legend .am-pending{background:#ffe0e0;border-color:#df7777;color:#842727}
.am-slot.am-sent,.am-row.am-sent,.am-legend .am-sent{background:#fff0a6;border-color:#cfaf38;color:#624b00}
.am-slot.am-confirmed,.am-row.am-confirmed,.am-legend .am-confirmed{background:#d7e9ff;border-color:#699bd5;color:#164983}
.am-slot.am-past,.am-row.am-past,.am-legend .am-past{background:#e5e7eb;border-color:#b7bec6;color:#505a65}
.am-slot:not(.am-occupied),.am-row.am-free,.am-legend .am-free{background:#d8f3e4;border-color:#6bb58c;color:#155b36}
.am-legend{display:flex;flex-wrap:wrap;gap:7px 16px;margin:8px 0 12px;font-size:12px;color:#40586a}.am-legend>span{display:inline-flex;align-items:center;gap:6px}.am-legend i{width:13px;height:13px;border:1px solid;border-radius:4px;display:inline-block}
.am-body{padding:14px 18px}.am-head{padding:14px 18px}.am-head h2{font-size:20px}.am-tools{gap:8px;margin-bottom:10px}.am-tools label{display:flex;align-items:center;gap:8px;font-size:13px}.am-tools input{padding:7px}.am-month-nav{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 14px}.am-month-nav .bt{text-transform:capitalize;font-size:13px;padding:6px 12px}.am-month{margin:0 0 16px;scroll-margin-top:95px}.am-dialog .am-month>h3{background:#dce8f2;color:#183e59;border-left:4px solid #2b688f;border-radius:5px;margin:0 0 7px;padding:8px 12px;font-size:16px;text-transform:capitalize}
.am-day{display:grid;grid-template-columns:145px minmax(0,1fr);gap:10px;padding:8px;margin-bottom:6px;border-radius:8px;align-items:start}.am-day-title{font-size:13px;line-height:1.35;margin:0 0 4px;padding:2px 0}.am-day-summary{font-size:11px;line-height:1.4;margin:0}.am-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:5px}.am-slot{min-width:0;padding:6px 8px;min-height:48px;border-radius:6px;font-size:12px;line-height:1.25}.am-slot b{font-size:13px}.am-slot .am-patient{display:block;font-size:11px;font-weight:600;line-height:1.3;margin-top:2px;overflow-wrap:anywhere}.am-slot .am-outcome{font-size:10px;margin-top:3px}.am-row{padding:8px 10px;gap:10px;grid-template-columns:60px minmax(0,1fr) auto;border-radius:7px;font-size:13px}.am-row small{font-size:11px;color:inherit;margin-top:2px}.am-vertical{gap:5px}.am-slot:focus-visible,.am-row:focus-visible{outline:3px solid #183448;outline-offset:2px}
#newFreeSlots.am-legacy .giornate-slot{display:block}#newFreeSlots.am-legacy .giornata-slot{display:grid;grid-template-columns:145px minmax(0,1fr);gap:4px 10px;margin-bottom:6px;padding:8px}#newFreeSlots.am-legacy .giornata-slot>.am-legacy-day{grid-column:1;grid-row:1;text-align:left;font-size:13px}#newFreeSlots.am-legacy .giornata-slot>small{grid-column:1;grid-row:2}#newFreeSlots.am-legacy .slot-riga{grid-column:2;grid-row:1 / span 2;display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:5px}#newFreeSlots.am-legacy .slot.libero{background:#d8f3e4;border-color:#6bb58c;color:#155b36;border-radius:6px}#newFreeSlots.am-legacy .mese-titolo{background:#dce8f2;border-left:4px solid #2b688f;padding:8px 12px;margin:12px 0 7px;border-radius:5px;color:#183e59}
@media(max-width:600px){.am-body{padding:10px}.am-head{padding:12px}.am-tools label{flex-wrap:wrap}.am-day{grid-template-columns:1fr;gap:6px}.am-day-info{display:flex;justify-content:space-between;gap:10px;align-items:center}.am-day-title{margin:0}.am-day-summary{text-align:right;max-width:45%}.am-slots{grid-template-columns:repeat(auto-fill,minmax(115px,1fr))}.am-legend{gap:5px 10px;font-size:11px}.am-row{grid-template-columns:50px minmax(0,1fr)}#newFreeSlots.am-legacy .giornata-slot{display:block}#newFreeSlots.am-legacy .slot-riga{grid-template-columns:repeat(auto-fill,minmax(115px,1fr))}.am-row>.bt{grid-column:2;padding:5px 10px}}
/* Testata fissa su una riga; scorre soltanto l’elenco delle giornate. */
.am-dialog{overflow:hidden;display:flex;flex-direction:column}.am-dialog:not([open]){display:none}.am-dialog>.am-head{flex:none;position:relative;display:flex;flex-wrap:nowrap;gap:8px;padding:10px 14px;overflow-x:auto;min-height:65px}.am-dialog>.am-head>div:not(.am-tools){flex:1;min-width:130px}.am-dialog>.am-head h2{font-size:16px;white-space:nowrap}.am-dialog>.am-head p{display:none}.am-dialog>.am-head>.am-tools{order:1;flex:none;flex-wrap:nowrap;margin:0;gap:6px}.am-dialog>.am-head>button{order:2;flex:none}.am-dialog>.am-head .am-tools label{font-size:0;display:flex;flex-wrap:nowrap}.am-dialog>.am-head .am-tools input{font-size:12px;width:130px;cursor:pointer}.am-dialog>.am-head .bt{white-space:nowrap;padding:7px 10px;font-size:12px}.am-dialog>.am-body{overflow:auto;min-height:0}.am-date-dialog{border:0;border-radius:14px;width:min(340px,90vw);padding:16px;color:#183448;box-shadow:0 15px 60px #10253766}.am-date-dialog::backdrop{background:#10253788}.am-date-dialog header,.am-date-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.am-date-dialog footer{margin-top:14px}.am-date-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-top:12px;text-align:center}.am-date-dialog button{border:1px solid #b4c8d8;background:#e2f1ea;color:#174f39;padding:8px;border-radius:6px;cursor:pointer;font:inherit}.am-date-dialog button:disabled{border-color:transparent;background:#f3f5f7;color:#b0b6bd;cursor:default}.am-date-grid small{font-size:12px;color:#607381}.am-date-dialog input[data-medico-picker]{cursor:pointer}

.am-dialog textarea{resize:vertical;min-height:80px;box-sizing:border-box;width:100%}

/* 🪟 task673 — l'agenda dello specialista sta sopra la pagina senza bloccarla */
.am-dialog.am-libera{position:fixed;top:56px;left:50%;transform:translateX(-50%);margin:0;
  max-height:88vh;z-index:80;box-shadow:0 14px 50px #102f4555}
.am-dialog.am-libera>.am-head{cursor:grab}
.am-dialog.am-libera>.am-head:active{cursor:grabbing}
.am-presa{opacity:.45;font-size:18px;user-select:none;align-self:center}
.am-dialog .am-piega{min-width:44px;min-height:44px}
.am-dialog.am-piegata{max-height:none;width:min(520px,94vw)}
.am-dialog.am-piegata>.am-body{display:none}
@media(max-width:760px){.am-dialog.am-libera{left:6px;right:6px;top:52px;transform:none;width:auto}}

/* 🖼 task674 — la testata con la faccia del professionista, e la fascia piccola da richiusa */
.am-dialog.am-libera>.am-head{align-items:center;gap:10px;min-height:60px;
  font-family:"IBM Plex Sans",system-ui,"Segoe UI",Roboto,sans-serif}
.am-faccia{width:38px;height:38px;border-radius:50%;object-fit:cover;flex:none;
  background:#dce8f2;color:#183e59;display:inline-flex;align-items:center;justify-content:center;
  font-weight:600;font-size:14px;border:1px solid #c3d4e6}
.am-dialog.am-libera>.am-head h2{font-size:15.5px;font-weight:600;letter-spacing:0}
.am-dialog.am-libera>.am-head p.am-mestiere{display:block;margin:2px 0 0;
  font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:9.5px;
  letter-spacing:.08em;text-transform:uppercase;color:#64748b;white-space:nowrap}
.am-piegata-nome{display:none}
/* richiusa: una fascia stretta con faccia, nome e i due comandi */
.am-dialog.am-piegata{width:auto;max-width:min(420px,92vw);border-radius:999px;overflow:hidden}
.am-dialog.am-piegata>.am-head{min-height:52px;padding:6px 8px 6px 6px;overflow:hidden;border-bottom:0}
.am-dialog.am-piegata>.am-head>div:not(.am-tools){min-width:0;overflow:hidden}
.am-dialog.am-piegata>.am-head h2{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.am-dialog.am-piegata>.am-head p,.am-dialog.am-piegata .am-presa,
.am-dialog.am-piegata>.am-head>.am-tools{display:none}
.am-dialog.am-piegata .am-faccia{width:40px;height:40px}

/* 🎨 task676, 18/09/2026, ordine di Pietro: «nell'agenda del medico applica le regole
   grafiche». Standard: comune/docs/DESIGN_STANDARD.md v2. Qui dentro, e solo qui: i nomi
   dello standard, i due caratteri IBM Plex, gli stati con i loro colori — che restano sempre
   accompagnati dalla parola, mai il colore da solo. */
.am-dialog{
  --navy:#062c74; --navy-2:#16468f; --bg:#f4f8fc; --card:#fff; --sunken:#eef4fa;
  --ink:#173052; --ink-2:#2b4467; --mut:#64748b; --line:#dbe6f1;
  --ok:#166534; --ok-bg:#e8f5ec; --amb:#8a5a06; --amb-bg:#fdf3e2;
  --red:#a3231b; --red-bg:#fbeceb; --teal:#0f6f7f; --teal-bg:#e7f5f7;
  --sans:"IBM Plex Sans",ui-sans-serif,system-ui,"Segoe UI",Roboto,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  font-family:var(--sans); background:var(--bg); color:var(--ink);
  border:1px solid var(--line); border-radius:12px;
}
.am-dialog .am-head{background:var(--card);border-bottom:1px solid var(--line)}
.am-dialog .am-body{background:var(--bg)}
/* i mesi e i giorni: si dividono con l'aria e un titolo, non con altri bordi */
.am-dialog .am-month>h3{background:transparent;border-left:0;border-bottom:1px solid var(--line);
  border-radius:0;color:var(--mut);font-family:var(--mono);font-size:11px;letter-spacing:.09em;
  text-transform:uppercase;padding:0 0 6px;margin:22px 0 10px}
.am-dialog .am-month:first-child>h3{margin-top:4px}
.am-dialog .am-day{background:var(--card);border:1px solid var(--line);border-radius:12px}
.am-dialog .am-day-title{color:var(--ink);font-weight:600;font-size:13.5px}
.am-dialog .am-day-summary{color:var(--mut);font-family:var(--mono);font-size:11px}
/* orari: numeri in mono, tap da 44 px, e la parola accanto al colore */
.am-dialog .am-slot,.am-dialog .am-row{font-family:var(--sans);border-radius:8px;min-height:44px}
.am-dialog .am-slot b,.am-dialog .am-row b{font-family:var(--mono);font-variant-numeric:tabular-nums;
  font-size:13px;font-weight:600}
.am-dialog .am-slot small,.am-dialog .am-row small{color:inherit;opacity:.85}
.am-dialog .am-slot:not(.am-occupied),.am-dialog .am-row.am-free,.am-dialog .am-legend .am-free{
  background:var(--ok-bg);border-color:var(--ok);color:var(--ok)}
.am-dialog .am-slot.am-pending,.am-dialog .am-row.am-pending,.am-dialog .am-legend .am-pending{
  background:var(--red-bg);border-color:var(--red);color:var(--red)}
.am-dialog .am-slot.am-sent,.am-dialog .am-row.am-sent,.am-dialog .am-legend .am-sent{
  background:var(--amb-bg);border-color:var(--amb);color:var(--amb)}
.am-dialog .am-slot.am-confirmed,.am-dialog .am-row.am-confirmed,.am-dialog .am-legend .am-confirmed{
  background:var(--teal-bg);border-color:var(--teal);color:var(--teal)}
.am-dialog .am-slot.am-past,.am-dialog .am-row.am-past,.am-dialog .am-legend .am-past{
  background:var(--sunken);border-color:var(--line);color:var(--mut)}
.am-dialog .am-legend{color:var(--mut);font-family:var(--mono);font-size:10.5px;letter-spacing:.04em}
/* comandi: uno solo pieno, gli altri col bordo, tutti da 44 px */
.am-dialog .bt{font-family:var(--sans);border:1px solid var(--line);border-radius:8px;
  background:var(--card);color:var(--ink);min-height:44px;padding:8px 14px}
.am-dialog .bt:hover{border-color:var(--navy-2);color:var(--navy-2)}
.am-dialog .bt.primary{background:var(--navy-2);border-color:var(--navy-2);color:#fff;font-weight:500}
.am-dialog .bt.danger,.am-dialog .bt.forte{border-color:var(--red);color:var(--red);background:var(--card)}
.am-dialog input,.am-dialog select,.am-dialog textarea{border:1px solid var(--line);border-radius:8px;
  min-height:44px;background:var(--card);color:var(--ink)}
.am-dialog :where(button,input,select,textarea,a):focus-visible{outline:2px solid var(--navy-2);outline-offset:1px}
.am-dialog .am-note{background:var(--sunken);color:var(--ink-2);border-left:3px solid var(--navy-2);border-radius:8px}
.am-dialog .am-error{background:var(--red-bg);color:var(--red);border-left-color:var(--red)}

/* 🧱 task680 — l'agenda del medico come nel mockup (proposta A): colonna dei numeri a
   sinistra, giorni a carte con mattino e pomeriggio, orari a piastrelle. */
.am-dialog .am-scrivania{display:grid;grid-template-columns:230px minmax(0,1fr);gap:0;align-items:start}
.am-dialog .am-rail{background:var(--sunken);border:1px solid var(--line);border-radius:12px;padding:12px;
  position:sticky;top:0}
.am-dialog .am-rail h3{margin:0 0 8px;font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--mut)}
.am-dialog .am-nums{display:grid;gap:10px;margin-bottom:16px}
.am-dialog .am-num b{display:block;font-family:var(--mono);font-size:26px;font-weight:600;line-height:1;color:var(--ink)}
.am-dialog .am-num span{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.am-dialog .am-mesi{display:grid;gap:6px}
.am-dialog .am-mese{display:flex;justify-content:space-between;gap:8px;align-items:baseline;font:inherit;
  font-size:13px;text-align:left;border:1px solid transparent;background:transparent;border-radius:8px;
  padding:8px 10px;min-height:40px;color:var(--ink-2);cursor:pointer;text-transform:capitalize}
.am-dialog .am-mese:hover{background:var(--card);border-color:var(--line)}
.am-dialog .am-mese small{font-family:var(--mono);color:var(--mut);text-transform:none}
.am-dialog .am-corpo{padding:0 0 0 14px;min-width:0}
.am-dialog .am-day{display:block;padding:0;overflow:hidden;margin-bottom:10px}
.am-dialog .am-day-testa{display:flex;align-items:baseline;gap:10px;padding:10px 12px;background:var(--chip);
  border-bottom:1px solid var(--line)}
.am-dialog .am-day-testa .am-day-title{font-size:14px;text-transform:capitalize;margin:0}
.am-dialog .am-day-testa .am-day-summary{margin-left:auto;text-align:right;max-width:none}
.am-dialog .am-fasce{padding:10px 12px}
.am-dialog .am-fascia-eti{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--mut);margin:6px 0}
.am-dialog .am-fasce .am-slots{grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:8px;margin-bottom:6px}
.am-dialog .am-slot{min-height:56px;border-radius:10px;padding:8px 10px}
@media(max-width:860px){.am-dialog .am-scrivania{grid-template-columns:1fr}
  .am-dialog .am-rail{position:static;margin-bottom:12px}
  .am-dialog .am-corpo{padding:0}
  .am-dialog .am-mesi{grid-auto-flow:column;grid-auto-columns:minmax(120px,1fr);overflow-x:auto}}

/* 🎨 task681 — i colori e i bordi degli stati, come nel mockup: ogni orario porta la sua
   striscia a sinistra E la parola. Più l'interruttore fra le due viste e la vista a colonna. */
.am-dialog .am-slot.am-occupied,.am-dialog .am-row:not(.am-free){border-left-width:4px;border-left-style:solid}
.am-dialog .am-slot.am-confirmed,.am-dialog .am-row.am-confirmed{border-left-color:var(--teal);background:var(--card);color:var(--ink)}
.am-dialog .am-slot.am-sent,.am-dialog .am-row.am-sent{border-left-color:var(--amb);background:var(--card);color:var(--ink)}
.am-dialog .am-slot.am-pending,.am-dialog .am-row.am-pending{border-left-color:var(--red);background:var(--card);color:var(--ink)}
.am-dialog .am-slot.am-past,.am-dialog .am-row.am-past{border-left-color:var(--mut);background:var(--sunken);color:var(--mut)}
.am-dialog .am-slot.am-occupied b{color:var(--ink)}
.am-dialog .am-slot.am-past b{color:var(--mut)}
.am-dialog .am-stato{display:inline-flex;align-items:center;gap:6px;font-size:11px;margin-top:3px;color:var(--mut)}
.am-spia{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none;background:var(--mut)}
.am-spia.am-confirmed{background:var(--teal)} .am-spia.am-sent{background:var(--amb)}
.am-spia.am-pending{background:var(--red)} .am-spia.am-past{background:var(--mut)}
.am-dialog .am-slot:not(.am-occupied){border-left:4px solid var(--ok)}
/* l'interruttore fra le due viste */
.am-vista-scelta{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;flex:none}
.am-vista-scelta .am-vista{font:inherit;font-size:12px;border:0;background:var(--card);color:var(--ink-2);
  padding:6px 12px;min-height:40px;cursor:pointer;white-space:nowrap}
.am-vista-scelta .am-vista.on{background:var(--navy-2);color:#fff;font-weight:500}
/* la vista a colonna */
.am-dialog .am-colonna{display:grid;grid-template-columns:62px minmax(0,1fr);gap:6px 12px;padding:10px 12px;
  align-items:stretch}
.am-dialog .am-ora{font-family:var(--mono);font-size:11.5px;color:var(--mut);text-align:right;
  border-right:1px solid var(--line);padding:14px 10px 0 0}
.am-dialog .am-colonna>.am-row,.am-dialog .am-colonna>.am-slot{margin:0}
.am-dialog .am-day-colonna .am-row{min-height:50px;background:var(--card)}
.am-dialog .am-day-colonna .am-row.am-free{background:var(--ok-bg);border-color:var(--ok);border-left:4px solid var(--ok);color:var(--ok)}
@media(max-width:760px){.am-dialog .am-colonna{grid-template-columns:52px minmax(0,1fr)}}
/* nella vista a colonna l'ora sta già nella riga a sinistra: dentro la riga sarebbe scritta due volte */
.am-dialog .am-day-colonna .am-row>b{display:none}
.am-dialog .am-day-colonna .am-row{grid-template-columns:minmax(0,1fr) auto}
