/* Smart Nutrition v8.74 — Appuntamenti integrati
   Layer isolato: card prossimo appuntamento + agenda admin.
*/

.sn874-next-card,
.sn874-admin-next,
.sn874-admin-agenda,
.sn874-global-agenda{
  --sn874-navy:#102845;
  --sn874-blue:#1769e0;
  --sn874-blue-dark:#0c4ca4;
  --sn874-line:#cbd9e8;
  --sn874-soft:#f5f9fd;
  --sn874-muted:#526b84;
  --sn874-focus:#005fcc;
}

.sn874-next-card{
  position:relative;
  margin:18px 0 22px;
  padding:24px;
  border-radius:24px;
  color:#fff;
  background:
    radial-gradient(circle at 92% 8%,rgba(117,190,255,.28),transparent 34%),
    linear-gradient(135deg,#0a2d55 0%,#0f477e 56%,#1261a6 100%);
  border:1px solid rgba(255,255,255,.23);
  box-shadow:0 20px 46px rgba(16,40,69,.22);
  overflow:hidden;
}

.sn874-next-head,
.sn874-admin-next,
.sn874-agenda-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}

.sn874-next-title,
.sn874-admin-next-main{
  display:flex;
  align-items:center;
  gap:15px;
  min-width:0;
}

.sn874-next-icon,
.sn874-admin-next-icon{
  width:52px;
  height:52px;
  flex:0 0 52px;
  border-radius:17px;
  display:grid;
  place-items:center;
  font-size:25px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.26);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16);
}

.sn874-kicker{
  display:block;
  margin-bottom:5px;
  color:inherit;
  opacity:.82;
  font-size:11px;
  line-height:1.2;
  letter-spacing:.105em;
  font-weight:900;
}

.sn874-next-card h2,
.sn874-admin-next h2,
.sn874-agenda-heading h3{
  margin:0;
  color:inherit;
  letter-spacing:-.025em;
}

.sn874-next-card h2{font-size:clamp(21px,3vw,29px);line-height:1.12}

.sn874-next-details{
  display:grid;
  grid-template-columns:minmax(190px,1.45fr) repeat(3,minmax(105px,.7fr));
  gap:10px;
  margin-top:22px;
}

.sn874-next-details>div{
  min-width:0;
  padding:14px 15px;
  border-radius:16px;
  background:rgba(255,255,255,.105);
  border:1px solid rgba(255,255,255,.17);
}

.sn874-next-details span,
.sn874-next-details strong{
  display:block;
}

.sn874-next-details span{
  margin-bottom:5px;
  color:#d6eaff;
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.sn874-next-details strong{
  color:#fff;
  font-size:15px;
  line-height:1.35;
  overflow-wrap:anywhere;
}

.sn874-relative{
  margin-top:13px;
  padding:12px 14px;
  border-radius:14px;
  background:#fff;
  color:#12375e;
  font-weight:850;
  line-height:1.4;
  box-shadow:0 7px 18px rgba(0,0,0,.10);
}
.sn874-relative.is-reschedule{background:#fff2d5;color:#704400;border:1px solid #e6b950}

.sn874-next-card-empty{
  display:flex;
  align-items:center;
  gap:16px;
  background:linear-gradient(135deg,#13314f,#244d70);
}
.sn874-next-card-empty .sn874-next-icon{background:rgba(255,255,255,.12)}
.sn874-next-empty-copy h2{font-size:21px;margin:0 0 5px}
.sn874-next-empty-copy p{margin:0;color:#e2eef8;line-height:1.5;font-weight:600}

.sn874-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:31px;
  padding:6px 11px;
  border-radius:999px;
  font-size:12px;
  line-height:1.1;
  font-weight:900;
  white-space:nowrap;
  border:1px solid transparent;
}
.sn874-status.is-scheduled{background:#e7f0ff;color:#123f73;border-color:#a9c7ef}
.sn874-status.is-confirmed{background:#dff8eb;color:#0b5d36;border-color:#97d5b5}
.sn874-status.is-reschedule{background:#fff2d5;color:#704400;border-color:#e6b950}
.sn874-status.is-cancelled{background:#ffe7ea;color:#8a1730;border-color:#eeb1be}

/* Area professionista — card alta sintetica */
.sn874-admin-next{
  margin:0 0 18px;
  padding:19px 21px;
  border:1px solid #c5d7e8;
  border-left:5px solid #1769e0;
  border-radius:20px;
  background:#fff;
  color:#102845;
  box-shadow:0 12px 34px rgba(20,55,90,.08);
}
.sn874-admin-next .sn874-admin-next-icon{
  background:#e9f3ff;
  color:#123f73;
  border-color:#b8d2ef;
}
.sn874-admin-next .sn874-kicker{color:#345b80;opacity:1}
.sn874-admin-next h2{font-size:20px;line-height:1.2}
.sn874-admin-next p{margin:6px 0 0;color:#405a73;line-height:1.45}
.sn874-admin-next p strong{color:#102845}

/* Agenda */
.sn874-agenda-groups{
  display:grid;
  gap:20px;
}
.sn874-agenda-group{
  padding:18px;
  border:1px solid #cfdeec;
  border-radius:18px;
  background:#f8fbfe;
}
.sn874-agenda-history{background:#fbfcfd}
.sn874-agenda-heading{
  align-items:center;
  padding-bottom:13px;
  border-bottom:1px solid #d6e2ee;
}
.sn874-agenda-heading .sn874-kicker{color:#52708d;opacity:1}
.sn874-agenda-heading h3{color:#102845;font-size:18px}
.sn874-count{
  display:grid;
  min-width:32px;
  height:32px;
  padding:0 8px;
  place-items:center;
  border-radius:999px;
  background:#e5f0fb;
  color:#103f70;
  border:1px solid #bdd3e9;
  font-weight:900;
}
.sn874-agenda-list{display:grid;gap:10px;margin-top:13px}
.sn874-agenda-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:14px;
  border-radius:15px;
  border:1px solid #d3e0ec;
  background:#fff;
  color:#102845;
  box-shadow:0 4px 12px rgba(16,40,69,.035);
}
.sn874-agenda-row.is-cancelled{background:#fff9fa;border-color:#edc8d0}
.sn874-agenda-row.is-reschedule{background:#fffaf0;border-color:#ead5a3}
.sn874-agenda-row-main{display:grid;gap:3px;min-width:0}
.sn874-agenda-row-main>strong{font-size:15px;color:#102845;overflow-wrap:anywhere}
.sn874-agenda-patient{color:#0e58a1!important;font-size:13px!important;text-transform:uppercase;letter-spacing:.035em}
.sn874-agenda-row-main>span{color:#304f6d;font-size:14px;font-weight:700;line-height:1.4}
.sn874-agenda-row-main>small{color:#5b7187;font-size:12px;line-height:1.4}
.sn874-empty{margin:0;padding:14px;border-radius:13px;background:#fff;color:#526b84;border:1px dashed #c5d7e8;font-weight:650}
.sn874-global-history{margin-top:20px}
.sn874-global-agenda .agenda-actions{grid-column:1/-1;margin-top:3px}
.sn874-global-agenda .cancel-visit-btn{
  min-height:38px;
  background:#fff;
  color:#8a1730;
  border:1px solid #dca8b4;
}
.sn874-global-agenda .cancel-visit-btn:hover{background:#fff0f3;color:#701128;border-color:#c88293}
.sn874-global-agenda .cancel-visit-btn:focus-visible{outline:3px solid #1769e0;outline-offset:2px}
.sn874-global-agenda .cancel-visit-btn:disabled{background:#edf1f5;color:#52616f;border-color:#ccd4dc;cursor:not-allowed;opacity:1}

.sn874-admin-agenda>[data-agenda-admin]{margin-top:18px}
.sn874-admin-agenda>[data-agenda-admin]:focus-visible{outline:3px solid #1769e0;outline-offset:3px}

/* Focus ad alto contrasto per elementi interattivi della nuova UI */
.sn874-next-card button:focus-visible,
.sn874-admin-next button:focus-visible,
.sn874-admin-agenda button:focus-visible,
.sn874-global-agenda button:focus-visible{
  outline:3px solid #005fcc;
  outline-offset:3px;
}

@media (max-width:900px){
  .sn874-next-details{grid-template-columns:1fr 1fr}
  .sn874-global-agenda .agenda-grid{grid-template-columns:1fr!important}
}

@media (max-width:600px){
  .sn874-next-card{padding:18px;border-radius:20px;margin:14px 0 18px}
  .sn874-next-head{align-items:flex-start;flex-direction:column}
  .sn874-next-title{width:100%}
  .sn874-next-icon{width:46px;height:46px;flex-basis:46px;border-radius:14px;font-size:22px}
  .sn874-next-card .sn874-status{align-self:flex-start}
  .sn874-next-details{grid-template-columns:1fr 1fr;margin-top:16px}
  .sn874-next-details>div{padding:12px}
  .sn874-next-card-empty{align-items:flex-start}
  .sn874-admin-next{align-items:flex-start;flex-direction:column;padding:17px}
  .sn874-admin-next .sn874-status{align-self:flex-start}
  .sn874-agenda-group{padding:14px}
  .sn874-agenda-row{grid-template-columns:1fr;align-items:start}
  .sn874-agenda-row .sn874-status{justify-self:start}
}

@media (max-width:360px){
  .sn874-next-card{padding:15px;border-radius:18px}
  .sn874-next-title{gap:11px}
  .sn874-next-card h2{font-size:19px}
  .sn874-next-details{grid-template-columns:1fr}
  .sn874-next-details>div{padding:11px 12px}
  .sn874-relative{font-size:13px;padding:11px 12px}
  .sn874-admin-next-main{align-items:flex-start}
  .sn874-admin-next h2{font-size:18px}
  .sn874-agenda-heading{align-items:flex-start}
}
