/* Smart Nutrition 8.78 — Agenda operativa. Solo UX/UI: riusa la logica appuntamenti esistente. */
.sn878-agenda-shell{background:#fff;border:1px solid #e3e8ed;border-radius:14px;overflow:hidden;box-shadow:0 1px 2px rgba(15,23,42,.035)}
.sn878-agenda-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid #e7ebef;background:#fff}.sn878-agenda-toolbar h2{margin:2px 0 0;text-transform:capitalize;font-size:24px;letter-spacing:-.025em;color:#1f2937}.sn878-kicker{font-size:10px;letter-spacing:.11em;font-weight:800;color:#7a8794}.sn878-toolbar-actions,.sn878-nav-group,.sn878-view-switch{display:flex;align-items:center;gap:7px}.sn878-view-switch{padding:3px;background:#f3f5f7;border:1px solid #e4e9ed;border-radius:9px}.sn878-view-switch button{border:0;background:transparent;color:#66727f;border-radius:7px;padding:7px 11px;font-weight:700;cursor:pointer}.sn878-view-switch button.is-active{background:#fff;color:#18865c;box-shadow:0 1px 3px rgba(15,23,42,.08)}.sn878-agenda-note{padding:9px 20px;background:#f7fbf9;color:#587066;border-bottom:1px solid #e1ebe6;font-size:12px}.sn878-agenda-body{min-height:620px;background:#fff}.sn878-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:#fafbfc;border-bottom:1px solid #e6eaee}.sn878-weekdays>div{padding:9px 10px;text-align:center;color:#6b7580;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;border-right:1px solid #edf0f2}.sn878-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(6,minmax(105px,1fr))}.sn878-month-day{position:relative;min-width:0;padding:7px;border-right:1px solid #e8ecef;border-bottom:1px solid #e8ecef;background:#fff}.sn878-month-day.is-outside{background:#fafbfc;color:#a0a8b0}.sn878-month-day.is-today{background:#fffef0}.sn878-day-number{width:28px;height:28px;border:0;border-radius:50%;background:transparent;color:#44505c;font-size:12px;font-weight:800;cursor:pointer}.sn878-month-day.is-today .sn878-day-number{background:#2ca678;color:#fff}.sn878-day-events{display:grid;gap:3px;margin-top:3px}.sn878-event{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 5px;width:100%;min-width:0;padding:5px 7px;border:0;border-left:3px solid #29a979;border-radius:5px;background:#e8faf2;color:#225444;text-align:left;cursor:pointer;overflow:hidden}.sn878-event:hover{background:#dbf6ea}.sn878-event strong{font-size:10px;grid-row:1/3}.sn878-event span,.sn878-event small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sn878-event span{font-size:10px;font-weight:800}.sn878-event small{font-size:9px;color:#557469}.sn878-more{border:0;background:transparent;color:#2d8666;font-size:10px;font-weight:800;text-align:left;cursor:pointer}.sn878-time-view{overflow:auto}.sn878-time-head,.sn878-time-row{display:grid;grid-template-columns:64px repeat(7,minmax(130px,1fr))}.sn878-time-view.is-day .sn878-time-head,.sn878-time-view.is-day .sn878-time-row{grid-template-columns:64px minmax(0,1fr)}.sn878-time-head{position:sticky;top:0;z-index:3;background:#fff;border-bottom:1px solid #e4e9ed}.sn878-time-head>div{padding:10px;border-right:1px solid #edf0f2;text-align:center}.sn878-time-head strong,.sn878-time-head span{display:block}.sn878-time-head strong{text-transform:capitalize;font-size:12px}.sn878-time-head span{font-size:11px;color:#77828d;margin-top:2px}.sn878-time-head .is-today{background:#f0faf6;color:#18865c}.sn878-time-row{min-height:58px;border-bottom:1px solid #edf0f2}.sn878-time-label{padding:8px 8px;text-align:right;color:#7b8792;font-size:10px;border-right:1px solid #e8ecef;background:#fafbfc}.sn878-time-cell{position:relative;padding:3px;border-right:1px solid #edf0f2;cursor:pointer;outline:none}.sn878-time-cell:hover,.sn878-time-cell:focus-visible{background:#f7fbf9;box-shadow:inset 0 0 0 2px #a7dfc9}.sn878-time-cell .sn878-event{margin-bottom:3px}.sn878-modal[hidden]{display:none!important}.sn878-modal{position:fixed;inset:0;z-index:10050;display:grid;place-items:center;padding:18px}.sn878-modal-backdrop{position:absolute;inset:0;background:rgba(16,24,40,.35);backdrop-filter:blur(2px)}.sn878-modal-panel{position:relative;z-index:1;width:min(620px,100%);max-height:92vh;overflow:auto;background:#fff;border:1px solid #dfe5e9;border-radius:14px;box-shadow:0 24px 70px rgba(15,23,42,.18);padding:20px}.sn878-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.sn878-modal-head h3,.sn878-event-detail h3{margin:3px 0 0;font-size:21px;color:#202b36}.sn878-icon-btn{width:34px;height:34px;border:1px solid #e1e6ea;border-radius:8px;background:#fff;color:#68747f;font-size:20px;cursor:pointer}.sn878-appointment-form{display:grid;gap:13px}.sn878-appointment-form label{display:grid;gap:5px;color:#46515c;font-size:12px;font-weight:700}.sn878-appointment-form input,.sn878-appointment-form select,.sn878-appointment-form textarea{width:100%;min-height:40px;border:1px solid #dce2e7;border-radius:8px;background:#fff;padding:8px 10px;color:#1f2937}.sn878-appointment-form textarea{min-height:84px;resize:vertical}.sn878-appointment-form .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sn878-check{grid-template-columns:auto 1fr!important;align-items:center}.sn878-check input{width:16px;min-height:16px}.sn878-form-actions,.sn878-event-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.sn878-event-panel{width:min(480px,100%)}.sn878-event-x{position:absolute;right:16px;top:16px}.sn878-event-patient{font-weight:800;color:#247b5d;margin:8px 0 16px}.sn878-event-detail dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}.sn878-event-detail dl>div{padding:10px;border:1px solid #e7ebee;border-radius:9px;background:#fafbfc}.sn878-event-detail dt{font-size:10px;color:#7b8792;text-transform:uppercase;font-weight:800}.sn878-event-detail dd{margin:4px 0 0;font-size:13px;font-weight:750;color:#28333d}.sn878-event-notes{margin:12px 0 0;padding:10px;border-radius:9px;background:#f7f9fa;color:#56616c}.sn878-event-actions{margin-top:18px}.sn878-event-actions .danger{color:#a33a4d;border-color:#e3b9c1}.sn878-modal-open{overflow:hidden}
@media(max-width:900px){.sn878-agenda-toolbar{align-items:flex-start;flex-direction:column}.sn878-toolbar-actions{width:100%;flex-wrap:wrap}.sn878-view-switch{order:2}.sn878-agenda-toolbar .primary{margin-left:auto}.sn878-month-grid{grid-template-rows:repeat(6,minmax(82px,1fr))}.sn878-month-day{padding:4px}.sn878-event{padding:4px}.sn878-event small{display:none}.sn878-time-head,.sn878-time-row{grid-template-columns:52px repeat(7,minmax(110px,1fr))}.sn878-agenda-body{min-height:520px}}
@media(max-width:640px){.sn878-view-switch [data-agenda-view="month"]{display:none}.sn878-appointment-form .row2{grid-template-columns:1fr}.sn878-agenda-note{padding:8px 12px}.sn878-time-view.is-week .sn878-time-head,.sn878-time-view.is-week .sn878-time-row{grid-template-columns:48px repeat(7,minmax(108px,1fr))}.sn878-modal{padding:8px}.sn878-modal-panel{border-radius:12px;padding:16px}}

/* v8.79 - registrazione rapida paziente dall'agenda */
.sn879-new-patient-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-2px 0 10px}
.sn879-new-patient-row small{color:#7a8798;font-size:12px}
.sn879-add-patient{border:0;background:transparent;color:#2e9d72;font-weight:700;padding:4px 0;cursor:pointer}
.sn879-add-patient:hover{text-decoration:underline}
.sn879-quick-patient{margin:4px 0 16px;padding:16px;border:1px solid #dfe7e3;border-radius:12px;background:#fbfdfc}
.sn879-quick-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}
.sn879-quick-head>div{display:flex;flex-direction:column;gap:2px}
.sn879-quick-head strong{font-size:15px;color:#1f2937}
.sn879-quick-head small{font-size:12px;color:#7a8798}
.sn879-quick-head button{border:0;background:transparent;color:#7a8798;font-size:22px;line-height:1;cursor:pointer}
.sn879-quick-form{display:grid;gap:12px}
.sn879-quick-form label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#526173}
.sn879-quick-form input,.sn879-quick-form select,.sn879-quick-form textarea{width:100%;box-sizing:border-box;border:1px solid #d6dee8;border-radius:8px;background:#fff;padding:10px 11px;font:inherit;color:#182231;outline:none}
.sn879-quick-form input:focus,.sn879-quick-form select:focus,.sn879-quick-form textarea:focus{border-color:#43b58a;box-shadow:0 0 0 3px rgba(67,181,138,.12)}
.sn879-field-note{font-weight:500!important;color:#8a96a6!important;font-size:11px!important}
.sn879-duplicate-box{border:1px solid #f2c66d;background:#fff9ed;border-radius:10px;padding:10px;display:grid;gap:7px}
.sn879-duplicate-box>strong{font-size:13px;color:#7b5714}.sn879-duplicate-box>small{font-size:11px;color:#8a6a2d}
.sn879-duplicate-box button{display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;border:1px solid #ead8ad;background:#fff;border-radius:8px;padding:9px 10px;cursor:pointer}
.sn879-duplicate-box button span{display:grid;gap:2px}.sn879-duplicate-box button small{font-size:11px;color:#7a8798}.sn879-duplicate-box button em{font-style:normal;color:#2e9d72;font-size:12px;font-weight:700;white-space:nowrap}
.sn879-quick-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:2px}
@media(max-width:760px){.sn879-quick-patient{padding:12px}.sn879-quick-form .row2{grid-template-columns:1fr}.sn879-duplicate-box button{align-items:flex-start;flex-direction:column}.sn879-quick-actions{flex-direction:column-reverse}.sn879-quick-actions button{width:100%}}

/* v8.79.3 — CONTRAST HOTFIX AGENDA / NUOVO PAZIENTE
   Scoped only to agenda modal to avoid changing business logic or unrelated UI. */
#sn878AppointmentModal .sn878-kicker,
#sn878AppointmentModal .sn879-new-patient-row small,
#sn878AppointmentModal .sn879-quick-head small,
#sn878AppointmentModal .sn879-field-note{
  color:#475569!important;
}
#sn878AppointmentModal .sn878-modal-head h3,
#sn878AppointmentModal .sn879-quick-head strong{
  color:#111827!important;
}
#sn878AppointmentModal .sn878-appointment-form label,
#sn878AppointmentModal .sn879-quick-form label,
#sn878AppointmentModal .sn878-check,
#sn878AppointmentModal .sn878-check span{
  color:#334155!important;
}
#sn878AppointmentModal .sn878-appointment-form input,
#sn878AppointmentModal .sn878-appointment-form select,
#sn878AppointmentModal .sn878-appointment-form textarea,
#sn878AppointmentModal .sn879-quick-form input,
#sn878AppointmentModal .sn879-quick-form select,
#sn878AppointmentModal .sn879-quick-form textarea{
  color:#111827!important;
  background:#ffffff!important;
  border-color:#cbd5e1!important;
  -webkit-text-fill-color:#111827!important;
  opacity:1!important;
}
#sn878AppointmentModal .sn878-appointment-form input::placeholder,
#sn878AppointmentModal .sn878-appointment-form textarea::placeholder,
#sn878AppointmentModal .sn879-quick-form input::placeholder,
#sn878AppointmentModal .sn879-quick-form textarea::placeholder{
  color:#64748b!important;
  opacity:1!important;
}
#sn878AppointmentModal .sn878-appointment-form input:focus,
#sn878AppointmentModal .sn878-appointment-form select:focus,
#sn878AppointmentModal .sn878-appointment-form textarea:focus,
#sn878AppointmentModal .sn879-quick-form input:focus,
#sn878AppointmentModal .sn879-quick-form select:focus,
#sn878AppointmentModal .sn879-quick-form textarea:focus{
  border-color:#278a67!important;
  box-shadow:0 0 0 3px rgba(39,138,103,.18)!important;
  outline:none!important;
}
#sn878AppointmentModal .sn878-appointment-form input:disabled,
#sn878AppointmentModal .sn878-appointment-form select:disabled,
#sn878AppointmentModal .sn879-quick-form input:disabled,
#sn878AppointmentModal .sn879-quick-form select:disabled{
  color:#64748b!important;
  -webkit-text-fill-color:#64748b!important;
  background:#f1f5f9!important;
  border-color:#cbd5e1!important;
  opacity:1!important;
}
#sn878AppointmentModal .sn879-add-patient{
  color:#187553!important;
}
#sn878AppointmentModal .sn879-add-patient:hover,
#sn878AppointmentModal .sn879-add-patient:focus-visible{
  color:#0f5e41!important;
}
#sn878AppointmentModal .sn879-quick-head button,
#sn878AppointmentModal .sn878-icon-btn{
  color:#475569!important;
}
#sn878AppointmentModal .sn879-duplicate-box>strong{color:#6b4b12!important}
#sn878AppointmentModal .sn879-duplicate-box>small,
#sn878AppointmentModal .sn879-duplicate-box button small{color:#665936!important}
#sn878AppointmentModal .sn879-duplicate-box button em{color:#166b4a!important}
#sn878AppointmentModal .secondary{color:#475569!important;background:#fff!important;border-color:#cbd5e1!important}
#sn878AppointmentModal .primary{color:#fff!important;background:#2ca678!important;border-color:#2ca678!important}
#sn878AppointmentModal .primary:hover{background:#238a64!important;border-color:#238a64!important}
