/* Nobat Yar 1.0.3 field-QA UI/UX hardening. Loaded after theme/plugin styles. */

/* Use the website's own typography instead of forcing bundled font names. */
.np-app.np-booking-shell,
.np-app.np-booking-shell *,
.np-admin-portal-page .np-portal,
.np-admin-portal-page .np-portal *,
.np-admin-portal-page .np-admin-wrap,
.np-admin-portal-page .np-admin-wrap *{
  --np-font-family:inherit!important;
  font-family:inherit!important;
}

/* Booking surface: quieter, clearer hierarchy and stronger interactive states. */
.np-app.np-booking-shell{
  background:linear-gradient(180deg,#f7fbfb 0%,#eef6f7 100%)!important;
}
.np-app.np-booking-shell .np-booking-card{
  border:1px solid rgba(13,107,120,.13)!important;
  box-shadow:0 24px 70px rgba(18,57,66,.11)!important;
}
.np-app.np-booking-shell .np-booking-hero{
  background:linear-gradient(135deg,rgba(13,107,120,.11),rgba(37,184,154,.055) 58%,#fff 100%)!important;
}
.np-app.np-booking-shell .np-step span{
  transition:background .16s ease,color .16s ease,transform .16s ease!important;
}
.np-app.np-booking-shell .np-step.is-active span{transform:scale(1.03)!important}

/* Theme collision fix: date numbers/labels never disappear on hover/focus. */
.np-app.np-booking-shell .np-date-card,
.np-app.np-booking-shell .np-date-card:hover,
.np-app.np-booking-shell .np-date-card:focus,
.np-app.np-booking-shell .np-date-card:active{
  text-decoration:none!important;
}
.np-app.np-booking-shell .np-date-card:not(.is-selected):not(.is-status-leave):not(.is-status-closed):not(.is-status-stopped):not(.is-status-blocked):not(.is-status-capacity_full):not(.is-status-fully_booked),
.np-app.np-booking-shell .np-date-card:not(.is-selected):not(.is-status-leave):not(.is-status-closed):not(.is-status-stopped):not(.is-status-blocked):not(.is-status-capacity_full):not(.is-status-fully_booked):hover,
.np-app.np-booking-shell .np-date-card:not(.is-selected):not(.is-status-leave):not(.is-status-closed):not(.is-status-stopped):not(.is-status-blocked):not(.is-status-capacity_full):not(.is-status-fully_booked):focus{
  color:#263f47!important;
  background:linear-gradient(180deg,#fff,#f9fcfc)!important;
}
.np-app.np-booking-shell .np-date-card strong,
.np-app.np-booking-shell .np-date-card span,
.np-app.np-booking-shell .np-date-card small,
.np-app.np-booking-shell .np-date-card:hover strong,
.np-app.np-booking-shell .np-date-card:hover span,
.np-app.np-booking-shell .np-date-card:hover small,
.np-app.np-booking-shell .np-date-card:focus strong,
.np-app.np-booking-shell .np-date-card:focus span,
.np-app.np-booking-shell .np-date-card:focus small{color:inherit!important}
.np-app.np-booking-shell .np-date-card.is-selected,
.np-app.np-booking-shell .np-date-card.is-selected:hover,
.np-app.np-booking-shell .np-date-card.is-selected:focus{
  color:#fff!important;
  border-color:var(--np-primary)!important;
  background:linear-gradient(145deg,var(--np-primary),#16808d)!important;
  box-shadow:0 12px 28px rgba(13,107,120,.22)!important;
}

/* Closed, leave, capacity-full and break days stay visible but look fully booked. */
.np-app.np-booking-shell .np-date-card.is-status-leave,
.np-app.np-booking-shell .np-date-card.is-status-closed,
.np-app.np-booking-shell .np-date-card.is-status-stopped,
.np-app.np-booking-shell .np-date-card.is-status-blocked,
.np-app.np-booking-shell .np-date-card.is-status-no_availability,
.np-app.np-booking-shell .np-date-card.is-status-capacity_full,
.np-app.np-booking-shell .np-date-card.is-status-fully_booked,
.np-app.np-booking-shell .np-calendar-day.is-status-leave,
.np-app.np-booking-shell .np-calendar-day.is-status-closed,
.np-app.np-booking-shell .np-calendar-day.is-status-stopped,
.np-app.np-booking-shell .np-calendar-day.is-status-blocked,
.np-app.np-booking-shell .np-calendar-day.is-status-no_availability,
.np-app.np-booking-shell .np-calendar-day.is-status-capacity_full,
.np-app.np-booking-shell .np-calendar-day.is-status-fully_booked{
  opacity:1!important;
  filter:none!important;
  color:#a91f32!important;
  border-color:#efb9c1!important;
  background:linear-gradient(180deg,#fff4f5,#ffedef)!important;
  box-shadow:none!important;
}

/* Selected appointment time is fully filled instead of border-only. */
.np-app.np-booking-shell .np-slot.is-selected,
.np-app.np-booking-shell .np-slot.is-selected:hover,
.np-app.np-booking-shell .np-slot[aria-pressed="true"]{
  color:#fff!important;
  border-color:var(--np-primary)!important;
  background:linear-gradient(145deg,var(--np-primary),#178795)!important;
  box-shadow:0 10px 24px rgba(13,107,120,.24)!important;
  transform:translateY(-1px)!important;
}
.np-app.np-booking-shell .np-slot.is-selected span,
.np-app.np-booking-shell .np-slot.is-selected small,
.np-app.np-booking-shell .np-slot[aria-pressed="true"] span,
.np-app.np-booking-shell .np-slot[aria-pressed="true"] small{color:#fff!important}

/* Previous/next day buttons remain visible after click, hover and keyboard focus. */
.np-app.np-booking-shell .np-day-pager .np-link-button,
.np-app.np-booking-shell .np-day-pager .np-link-button:visited,
.np-app.np-booking-shell .np-day-pager .np-link-button:hover,
.np-app.np-booking-shell .np-day-pager .np-link-button:focus,
.np-app.np-booking-shell .np-day-pager .np-link-button:active{
  color:var(--np-primary)!important;
  border:1px solid #cfe0e3!important;
  background:#f7fbfb!important;
  box-shadow:none!important;
  outline:none!important;
}
.np-app.np-booking-shell .np-day-pager .np-link-button:hover,
.np-app.np-booking-shell .np-day-pager .np-link-button:focus-visible{
  color:#fff!important;
  border-color:var(--np-primary)!important;
  background:var(--np-primary)!important;
}
.np-app.np-booking-shell .np-day-pager .np-link-button:disabled{
  opacity:.48!important;
  color:#60757c!important;
  border-color:#dbe6e8!important;
  background:#eef3f4!important;
}

.np-app.np-booking-shell button:focus-visible,
.np-admin-portal-page .np-portal button:focus-visible,
.np-admin-portal-page .np-portal a:focus-visible{
  outline:3px solid rgba(37,184,154,.28)!important;
  outline-offset:2px!important;
}

/* Upload recovery is explicit and non-alarming. */
.np-upload-fallback{
  display:grid!important;
  gap:7px!important;
  margin-top:12px!important;
  padding:14px 15px!important;
  border:1px solid #efd19a!important;
  border-radius:15px!important;
  background:#fffaf0!important;
}
.np-upload-fallback[hidden]{display:none!important}
.np-upload-fallback strong{color:#725015!important;font-size:12px!important}
.np-upload-fallback p{margin:0!important;color:#7a6846!important;font-size:10.5px!important;line-height:1.8!important}
.np-upload-fallback.is-accepted{border-color:#bfe3d7!important;background:#effaf6!important}
.np-upload-fallback.is-accepted strong,.np-upload-fallback.is-accepted p{color:#286b5c!important}

/* Compact mobile flow: active form starts much closer to top. */
@media(max-width:700px){
  .np-app.np-booking-shell .np-booking-hero{grid-template-columns:42px minmax(0,1fr)!important;gap:9px!important;padding:11px 12px!important}
  .np-app.np-booking-shell .np-brand-mark{width:42px!important;height:42px!important;border-radius:14px 6px 14px 14px!important}
  .np-app.np-booking-shell .np-hero-copy p{display:none!important}
  .np-app.np-booking-shell .np-doctor-specialty{margin-top:2px!important}
  .np-app.np-booking-shell .np-hero-side{grid-column:1/-1!important;gap:7px!important}
  .np-app.np-booking-shell .np-hero-side .np-doctor-photo{width:52px!important;height:52px!important;flex-basis:52px!important}
  .np-app.np-booking-shell .np-hero-side .np-price-chip{min-height:52px!important;padding:7px 10px!important}
  .np-app.np-booking-shell .np-trust-strip{display:none!important}
  .np-app.np-booking-shell.np-step-engaged .np-booking-hero{display:grid!important}
  .np-app.np-booking-shell.np-step-engaged .np-stepper{padding-top:6px!important}
  .np-app.np-booking-shell .np-panel{padding-top:14px!important;scroll-margin-top:8px!important}
}

/* Admin portal polish and calendar hardening. */
.np-admin-portal-page .np-portal-content .np-admin-card,
.np-admin-portal-page .np-portal-content .np-admin-header{
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease!important;
}
.np-admin-portal-page .np-portal-content .np-page-tab,
.np-admin-portal-page .np-portal-content .button,
.np-admin-portal-page .np-portal-content button{
  -webkit-tap-highlight-color:transparent!important;
}
.np-admin-portal-page .np-jalali-picker{z-index:100000!important}
.np-admin-portal-page .np-jalali-picker-card{border:1px solid rgba(13,107,120,.13)!important;box-shadow:0 28px 90px rgba(5,30,36,.30)!important}
.np-admin-portal-page .np-jalali-picker-head button,
.np-admin-portal-page .np-jalali-picker-head button:hover,
.np-admin-portal-page .np-jalali-picker-head button:focus,
.np-admin-portal-page .np-jalali-picker-head button:active{
  color:var(--np-primary)!important;
  background:#f5faf9!important;
  border-color:#d7e5e6!important;
}
.np-admin-portal-page .np-cal-day,
.np-admin-portal-page .np-cal-day:hover,
.np-admin-portal-page .np-cal-day:focus,
.np-admin-portal-page .np-cal-day:active{
  color:#233e46!important;
  background:#fff!important;
}
.np-admin-portal-page .np-cal-day:hover,
.np-admin-portal-page .np-cal-day:focus-visible{border-color:var(--np-primary)!important;background:#edf9f6!important;color:var(--np-primary)!important}
.np-admin-portal-page .np-cal-day.is-selected,
.np-admin-portal-page .np-cal-day.is-selected:hover{border-color:var(--np-primary)!important;background:var(--np-primary)!important;color:#fff!important}
.np-jalali-picker-x{
  position:absolute!important;top:10px!important;left:10px!important;z-index:2!important;
  width:34px!important;height:34px!important;padding:0!important;border:1px solid #e0e8ea!important;border-radius:10px!important;
  background:#fff!important;color:#576d74!important;font-size:21px!important;line-height:1!important;cursor:pointer!important;
}

/* Patient note appears directly under the patient's identity. */
.np-patient-note-preview{
  display:grid!important;gap:3px!important;margin-top:8px!important;padding:8px 10px!important;
  border:1px solid #d8e9e5!important;border-radius:11px!important;background:#f2faf7!important;
}
.np-patient-note-preview b{color:#176b5b!important;font-size:9px!important}
.np-patient-note-preview span{color:#405d56!important;font-size:9px!important;line-height:1.75!important;white-space:pre-wrap!important;overflow-wrap:anywhere!important}

/* Diagnostics panel, injected into the Health/Settings page. */
.np-diagnostics-panel{
  margin-top:16px!important;padding:20px!important;border:1px solid rgba(13,107,120,.15)!important;border-radius:20px!important;
  background:linear-gradient(145deg,#fff,#f5fbfa)!important;box-shadow:0 12px 34px rgba(20,58,66,.06)!important;
}
.np-diagnostics-head{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:14px!important;flex-wrap:wrap!important}
.np-diagnostics-head h2{margin:2px 0 0!important;font-size:18px!important}
.np-diagnostics-head p{max-width:760px!important;margin:5px 0 0!important;color:#657a80!important;font-size:10.5px!important;line-height:1.9!important}
.np-diagnostics-status{display:flex!important;align-items:center!important;gap:8px!important;padding:8px 11px!important;border-radius:999px!important;background:#eef4f5!important;color:#60747b!important;font-size:9px!important;font-weight:850!important}
.np-diagnostics-status i{width:8px!important;height:8px!important;border-radius:50%!important;background:#98a8ad!important}
.np-diagnostics-status.is-active{background:#eaf8f3!important;color:#1c6d5c!important}.np-diagnostics-status.is-active i{background:#24a884!important;box-shadow:0 0 0 5px rgba(36,168,132,.10)!important}
.np-diagnostics-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:9px!important;margin:16px 0!important}
.np-diagnostics-grid article{padding:12px!important;border:1px solid #e0e9eb!important;border-radius:13px!important;background:#fff!important}
.np-diagnostics-grid strong,.np-diagnostics-grid span{display:block!important}.np-diagnostics-grid strong{font-size:10px!important}.np-diagnostics-grid span{margin-top:3px!important;color:#71838a!important;font-size:8.5px!important;line-height:1.7!important}
.np-diagnostics-actions{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important;margin-top:12px!important}.np-diagnostics-actions form{margin:0!important}
.np-diagnostics-note{margin-top:12px!important;padding:10px 12px!important;border-radius:12px!important;background:#f7f9fa!important;color:#687b82!important;font-size:9px!important;line-height:1.8!important}
@media(max-width:760px){.np-diagnostics-grid{grid-template-columns:1fr!important}.np-diagnostics-panel{padding:15px 12px!important}.np-diagnostics-actions,.np-diagnostics-actions form,.np-diagnostics-actions button{width:100%!important}}
