/* PrimeMed v0.15.6 — shared portal UX/safety helpers. */
.pm-skip-link{position:fixed;left:12px;top:10px;z-index:10000;transform:translateY(-180%);padding:9px 12px;border-radius:9px;background:#111827;color:#fff;text-decoration:none;font:600 13px/1.2 system-ui;box-shadow:0 8px 28px rgba(0,0,0,.22)}
.pm-skip-link:focus{transform:translateY(0)}
.pm-network-banner{position:fixed;z-index:9998;left:50%;top:max(10px,env(safe-area-inset-top));transform:translateX(-50%);max-width:min(92vw,640px);padding:10px 14px;border-radius:12px;background:#7f1d1d;color:#fff;box-shadow:0 12px 35px rgba(15,23,42,.20);font:650 13px/1.35 system-ui;text-align:center}
.pm-network-banner[data-state="online"]{background:#166534}
.pm-network-banner[hidden]{display:none!important}
.pm-submitting button[type="submit"],.pm-submitting input[type="submit"],.pm-submitting .btn[type="submit"]{cursor:progress}
.pm-submit-busy{opacity:.72}
.pm-submit-busy::after{content:" · …"}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid color-mix(in srgb,var(--primary,#2563eb) 55%,#fff);outline-offset:2px}
.mobile-menu-btn{touch-action:manipulation}
@media(max-width:760px){
  .content input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),.content select,.content textarea{font-size:16px}
  .content button,.content .btn{min-height:40px;touch-action:manipulation}
  .content .table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
@media print{.pm-skip-link,.pm-network-banner,.mobile-nav-head,.mobile-nav-backdrop,.sidebar,.patient-bottom-nav{display:none!important}.main{margin:0!important;width:100%!important}.content{padding:0!important}}


/* v0.15.5 — dashboard and appointment-flow polish. */
.pm-dashboard-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:20px 22px;margin-bottom:16px;border:1px solid color-mix(in srgb,var(--primary,#2563eb) 18%,transparent);border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--primary,#2563eb) 8%,#fff),#fff);box-shadow:0 8px 28px rgba(15,23,42,.05)}
.pm-dashboard-hero h2{margin:0 0 6px;font-size:clamp(20px,2.5vw,28px);line-height:1.15}.pm-dashboard-hero p{margin:0;color:var(--muted,#64748b)}
.pm-dashboard-hero__aside{text-align:right;min-width:190px}.pm-dashboard-hero__aside strong{display:block;font-size:16px;margin-bottom:3px}.pm-dashboard-hero__aside .form-hint{display:block}
.pm-quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 18px}
.pm-quick-action{display:flex;align-items:center;gap:10px;min-height:64px;padding:12px 14px;border:1px solid var(--border,#e5e7eb);border-radius:14px;background:var(--card,#fff);color:inherit;text-decoration:none;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.pm-quick-action:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary,#2563eb) 35%,var(--border,#e5e7eb));box-shadow:0 8px 22px rgba(15,23,42,.06)}
.pm-quick-action__icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:11px;background:color-mix(in srgb,var(--primary,#2563eb) 10%,#fff);font-size:19px}.pm-quick-action__text{min-width:0}.pm-quick-action__text strong{display:block;font-size:14px;line-height:1.2}.pm-quick-action__text span{display:block;margin-top:2px;color:var(--muted,#64748b);font-size:12px;line-height:1.25}
.pm-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.pm-section-head h2{margin:0}.pm-section-head a{white-space:nowrap}
.pm-appointment-cards{display:grid;gap:10px}.pm-appointment-card{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:14px;align-items:center;padding:13px 14px;border:1px solid var(--border,#e5e7eb);border-radius:14px;background:var(--card,#fff)}
.pm-appointment-time strong,.pm-appointment-main strong{display:block}.pm-appointment-time span,.pm-appointment-main span{display:block;margin-top:3px;color:var(--muted,#64748b);font-size:12px}.pm-appointment-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.pm-status-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:12px;font-weight:650;white-space:nowrap}.pm-status-chip.is-good{background:#ecfdf5;color:#166534}.pm-status-chip.is-warn{background:#fff7ed;color:#9a3412}
.pm-content-note{padding:11px 13px;border-radius:12px;background:#f8fafc;color:#475569;font-size:13px;line-height:1.45}
.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-scroll>table{min-width:680px}
.pm-submitting[aria-busy="true"]{cursor:progress}
@media(max-width:980px){.pm-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.pm-dashboard-hero{grid-template-columns:1fr;padding:16px;border-radius:15px}.pm-dashboard-hero__aside{text-align:left;min-width:0;padding-top:12px;border-top:1px solid var(--border,#e5e7eb)}.pm-quick-grid{grid-template-columns:1fr 1fr;gap:8px}.pm-quick-action{min-height:58px;padding:10px}.pm-quick-action__icon{width:34px;height:34px;flex-basis:34px}.pm-quick-action__text span{display:none}.pm-appointment-card{grid-template-columns:1fr;gap:8px}.pm-appointment-actions{justify-content:flex-start}.pm-appointment-time{display:flex;gap:8px;align-items:baseline}.pm-appointment-time span{margin:0}.desktop-health-home .pm-dashboard-hero{display:grid}}
@media(max-width:430px){.pm-quick-grid{grid-template-columns:1fr}.pm-quick-action__text span{display:block}}


/* v0.15.6 — search, catalog and appointment filters. */
.pm-filter-bar{margin-top:14px}.pm-filter-bar input[type="search"]{min-width:min(300px,100%)}.pm-filter-summary{margin-top:8px;color:var(--muted,#64748b);font-size:12px}
.pm-booking-selectors{display:flex;gap:10px;margin-bottom:10px;flex-wrap:wrap}.pm-booking-selectors select{min-width:min(320px,100%);flex:1}.pm-booking-selectors input[type="date"]{min-width:170px}
.pm-date-picker{display:flex;gap:7px;overflow-x:auto;padding:2px 1px 10px;scrollbar-width:thin}.pm-date-chip{display:inline-flex;align-items:center;justify-content:center;min-width:72px;padding:7px 10px;border:1px solid var(--border,#e5e7eb);border-radius:999px;background:var(--card,#fff);color:inherit;text-decoration:none;font-size:12px;font-weight:650;white-space:nowrap}.pm-date-chip:hover,.pm-date-chip.active{border-color:var(--primary,#2563eb);background:color-mix(in srgb,var(--primary,#2563eb) 9%,#fff);color:var(--primary,#2563eb)}
.pm-booking-note{margin:0 0 14px}.pm-status-tabs{margin-bottom:4px}.pm-doctor-count{display:inline-flex;padding:6px 10px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:12px;font-weight:700;white-space:nowrap}
.pm-doctor-catalog-filter{position:sticky;top:8px;z-index:4;box-shadow:0 10px 30px rgba(15,23,42,.06)}
@media(max-width:760px){.pm-booking-selectors{display:grid;grid-template-columns:1fr}.pm-booking-selectors select,.pm-booking-selectors input[type="date"]{width:100%;min-width:0}.pm-date-chip{min-width:68px}.pm-doctor-catalog-filter{position:static}.pm-status-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.pm-status-tabs .btn{white-space:nowrap}}


/* v0.15.7 — notification center and daily workflow. */
.pm-notification-menu{position:relative;display:inline-flex;vertical-align:middle;margin-right:6px}.pm-notification-menu>summary{list-style:none}.pm-notification-menu>summary::-webkit-details-marker{display:none}.pm-notification-trigger{position:relative;width:36px;height:36px;border:1px solid var(--border,#e5e7eb);border-radius:11px;background:var(--panel,#fff);display:grid;place-items:center;cursor:pointer;font-size:16px;user-select:none}.pm-notification-trigger:hover{background:#f8fafc}.pm-notification-count{position:absolute;right:-6px;top:-6px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:#dc2626;color:#fff;font-size:10px;line-height:18px;text-align:center;font-weight:800;box-shadow:0 0 0 2px var(--panel,#fff)}
.pm-notification-popover{position:absolute;right:0;top:calc(100% + 9px);z-index:100;width:min(380px,calc(100vw - 28px));border:1px solid var(--border,#e5e7eb);border-radius:15px;background:var(--panel,#fff);box-shadow:0 20px 55px rgba(15,23,42,.18);overflow:hidden;text-align:left;white-space:normal}.pm-notification-popover__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border,#e5e7eb)}.pm-notification-popover__head span{font-size:11px;color:var(--muted,#64748b)}.pm-notification-preview{display:grid;grid-template-columns:8px minmax(0,1fr);gap:10px;padding:11px 14px;border-bottom:1px solid var(--border,#e5e7eb);text-decoration:none!important;color:inherit!important;margin:0!important}.pm-notification-preview:hover{background:#f8fafc}.pm-notification-preview__dot{width:7px;height:7px;border-radius:50%;margin-top:5px;background:#cbd5e1}.pm-notification-preview.is-unread .pm-notification-preview__dot{background:var(--primary,#2563eb)}.pm-notification-preview strong{display:block;font-size:12px;line-height:1.35}.pm-notification-preview small{display:block;margin-top:3px;color:var(--muted,#64748b);font-size:10px;line-height:1.35}.pm-notification-all{display:block!important;padding:11px 14px;text-decoration:none!important;margin:0!important;font-size:12px;font-weight:700;color:var(--primary,#2563eb)!important}.pm-notification-empty{padding:18px 14px;color:var(--muted,#64748b);font-size:12px}.pm-mobile-bell{position:relative;display:inline-grid!important;place-items:center!important;font-size:18px!important}.pm-mobile-bell>span{position:absolute;right:-3px;top:-5px;min-width:16px;height:16px;padding:0 3px;border-radius:999px;background:#dc2626;color:#fff;font:800 9px/16px system-ui;text-align:center}
.notification-unread{border-left:3px solid var(--primary,#2563eb);padding-left:12px;background:color-mix(in srgb,var(--primary,#2563eb) 4%,transparent)}
@media(max-width:980px){.topbar .pm-notification-menu{display:none}.mobile-nav-head{gap:10px}.mobile-nav-head .pm-mobile-bell{margin-left:auto;color:inherit;text-decoration:none}.pm-notification-popover{position:fixed;left:14px;right:14px;top:58px;width:auto}}

/* v0.15.8 — appointment workflow, conclusion and mobile-app-ready UX. */
.pm-check-row{display:grid;grid-template-columns:1fr minmax(150px,auto) auto;gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid #e5edf8}.pm-device-check,.pm-conclusion-builder,.pm-dictation{max-width:760px;margin:0 auto}.pm-device-check>[data-run-all],.pm-conclusion-builder>[data-generate]{width:100%;margin-top:22px}.pm-dictation{text-align:center}.pm-dictation textarea,.pm-conclusion-builder textarea{text-align:left;width:100%}.pm-mic{width:96px;height:96px;border-radius:50%;display:grid;place-items:center;margin:18px auto;background:#e7f2ff;font-size:42px}@media(max-width:640px){.pm-check-row{grid-template-columns:1fr auto}.pm-check-row [data-status]{grid-column:1/-1;grid-row:2}.pm-device-check,.pm-conclusion-builder,.pm-dictation{border:0;box-shadow:none}}
.pm-workflow-strip{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:10px 0 14px}.pm-workflow-step{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:12px;font-weight:700}.pm-workflow-step::before{content:"○"}.pm-workflow-step.is-done{background:#ecfdf5;color:#166534}.pm-workflow-step.is-done::before{content:"✓"}.pm-workflow-step.is-current{background:#fff7ed;color:#9a3412}.pm-workflow-step.is-current::before{content:"●"}.pm-workflow-step.is-stopped{background:#f8fafc;color:#94a3b8;text-decoration:line-through}
.pm-next-action{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;margin:10px 0;border-radius:12px;background:color-mix(in srgb,var(--primary,#2563eb) 7%,#fff);border:1px solid color-mix(in srgb,var(--primary,#2563eb) 18%,var(--border,#e5e7eb))}.pm-next-action strong{font-size:13px}.pm-next-action span{color:var(--muted,#64748b);font-size:12px;text-align:right}.pm-workflow-mini{margin-top:5px;color:var(--muted,#64748b);font-size:11px;line-height:1.3}
.pm-conclusion-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.pm-conclusion-list{display:grid;gap:8px}.pm-conclusion-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;padding:11px 12px;border:1px solid var(--border,#e5e7eb);border-radius:12px;color:inherit;text-decoration:none;background:var(--card,#fff)}.pm-conclusion-item:hover{border-color:color-mix(in srgb,var(--primary,#2563eb) 35%,var(--border,#e5e7eb));background:#f8fafc}.pm-conclusion-item span{color:var(--muted,#64748b);font-size:11px}.pm-conclusion-item small{grid-column:1/-1;color:#475569;line-height:1.35}
@media(max-width:760px){.pm-next-action{align-items:flex-start;flex-direction:column}.pm-next-action span{text-align:left}.pm-workflow-strip{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.pm-workflow-step{white-space:nowrap}.pm-conclusion-item{grid-template-columns:1fr}.pm-conclusion-item small{grid-column:auto}.pm-conclusion-actions .btn{flex:1 1 auto;text-align:center}}
