/* AI Clinic Suite v20.42 — patient portal notifications + clinic chat */
#pp25-notif-btn,#pp25-chat-btn{position:relative;z-index:20;width:48px;height:48px;min-width:48px;border-radius:16px;border:1px solid rgba(148,163,184,.22);background:var(--pp-card,#fff);color:var(--pp-text,#0f172a);display:none;place-items:center;cursor:pointer;box-shadow:0 12px 24px rgba(15,23,42,.08);padding:0;font-size:18px;transition:.22s ease}
body.pp-portal-dashboard-active #pp25-notif-btn,body.pp-portal-dashboard-active #pp25-chat-btn{display:grid}
#pp25-notif-btn:hover,#pp25-chat-btn:hover{transform:translateY(-2px);border-color:rgba(37,99,235,.28);box-shadow:0 16px 30px rgba(15,23,42,.12)}
.pp-portal-chat-shell{display:flex!important;align-items:flex-end;gap:10px;position:fixed;left:16px;bottom:18px;z-index:8190}
.pp-portal-chat-shell #pp-portal-chat-fab,.pp-portal-chat-shell #pp25-chat-btn{width:58px!important;height:58px!important;min-width:58px!important;flex:0 0 58px!important;border-radius:18px!important;position:relative!important;inset:auto!important;margin:0!important}
.pp-portal-chat-shell #pp-portal-chat-fab{order:2}.pp-portal-chat-shell #pp25-chat-btn{order:1}
.pp-portal-chat-shell #pp-portal-chat-fab .pp-portal-chat-fab-label,.pp-portal-chat-shell #pp-portal-chat-fab span{display:none!important}
.pp25-badge{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;border-radius:10px;padding:0 4px;display:none;align-items:center;justify-content:center;background:#ef4444;color:#fff;font:800 9px/1 Arial;border:2px solid var(--pp-card,#fff);box-shadow:0 3px 8px rgba(239,68,68,.28)}.pp25-badge.show{display:flex}
.pp25-panel{position:fixed;width:min(380px,calc(100vw - 24px));max-height:72dvh;z-index:9001;border:1px solid var(--pp-border,#e2e8f0);background:var(--pp-card,#fff);color:var(--pp-text,#0f172a);border-radius:20px;box-shadow:0 24px 64px rgba(15,23,42,.22);display:flex;flex-direction:column;overflow:hidden;direction:rtl;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-8px) scale(.985);transition:opacity .18s ease,transform .22s cubic-bezier(.2,.85,.25,1),visibility .18s ease}
.pp25-panel.show{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1)}
.pp25-head{min-height:58px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--pp-border,#e2e8f0);background:linear-gradient(135deg,rgba(37,99,235,.08),rgba(14,165,233,.04));font-weight:900}
.pp25-head>button,.pp25-inline-close{border:1px solid var(--pp-border,#e2e8f0);background:var(--pp-card,#fff);color:var(--pp-text,#0f172a);border-radius:10px;width:32px;height:32px;display:grid;place-items:center;cursor:pointer}
.pp25-list{padding:10px;overflow:auto;display:grid;gap:8px}.pp25-notif{padding:10px 11px;border:1px solid var(--pp-border,#e2e8f0);background:rgba(148,163,184,.055);border-radius:13px}.pp25-notif.unread{border-color:rgba(59,130,246,.4);background:rgba(59,130,246,.08)}.pp25-notif-title{font-size:12px;font-weight:900}.pp25-notif-body{font-size:10.5px;line-height:1.7;color:var(--pp-muted,#64748b);margin-top:2px}.pp25-notif-time{font-size:8.5px;color:var(--pp-muted,#94a3b8);margin-top:4px}.pp25-empty{padding:30px;text-align:center;color:var(--pp-muted,#64748b);font-size:12px}
#pp25-chat-panel{width:min(390px,calc(100vw - 24px));height:min(560px,72dvh)}
.pp25-chat-head{display:grid;grid-template-columns:40px minmax(0,1fr) 32px;direction:ltr;text-align:right}.pp25-chat-logo{width:38px;height:38px;object-fit:contain;border-radius:11px;background:#fff;padding:3px;border:1px solid rgba(148,163,184,.2)}.pp25-chat-title{min-width:0;direction:rtl}.pp25-chat-title strong{display:block;font-size:12px}.pp25-chat-title span{display:block;margin-top:2px;color:var(--pp-muted,#64748b);font-size:9px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp25-chat-head>button{direction:rtl}
.pp25-chat-messages{flex:1;overflow:auto;padding:12px;background:linear-gradient(180deg,rgba(248,250,252,.9),rgba(241,245,249,.72));display:flex;flex-direction:column;gap:8px;scroll-behavior:smooth}.pp25-msg{max-width:82%;padding:8px 10px;border-radius:14px;font-size:11.5px;line-height:1.65;box-shadow:0 3px 10px rgba(15,23,42,.04)}.pp25-msg.patient{align-self:flex-end;background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff;border-bottom-right-radius:4px}.pp25-msg.clinic{align-self:flex-start;background:#fff;color:#0f172a;border:1px solid #e2e8f0;border-bottom-left-radius:4px}.pp25-msg small{display:block;opacity:.58;font-size:8px;margin-top:3px}.pp25-msg img,.pp25-msg video{max-width:100%;border-radius:9px;margin-top:5px}.pp25-msg audio{width:240px;max-width:100%}.pp25-msg a{color:inherit;font-weight:800}
.pp25-compose{display:flex;gap:6px;align-items:center;padding:9px;background:var(--pp-card,#fff);border-top:1px solid var(--pp-border,#e2e8f0)}.pp25-compose textarea{flex:1;height:40px;min-height:40px;max-height:40px;resize:none;border:1px solid var(--pp-border,#cbd5e1);background:rgba(248,250,252,.9);color:var(--pp-text,#0f172a);border-radius:12px;padding:7px 10px;font-family:inherit;line-height:24px}.pp25-compose button{width:40px;height:40px;min-width:40px;border-radius:12px;border:1px solid var(--pp-border,#cbd5e1);background:rgba(248,250,252,.9);color:#2563eb;display:grid;place-items:center;cursor:pointer}.pp25-compose .send{background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff;border-color:#2563eb}.pp25-compose button.recording{background:#7c3aed;color:#fff;border-color:#7c3aed}
.pp25-push-card{margin:8px 10px 10px;padding:10px 11px;border:1px solid rgba(34,211,238,.22);background:rgba(34,211,238,.08);border-radius:12px;font-size:10.5px;line-height:1.7}.pp25-push-card button{margin-top:7px;padding:6px 9px;border:0;border-radius:9px;background:#0891b2;color:#fff;font-family:inherit;font-weight:800;cursor:pointer}
body.pp-prefers-dark .pp25-panel{background:#111827;color:#e5e7eb;border-color:#334155;box-shadow:0 24px 70px rgba(0,0,0,.48)}body.pp-prefers-dark .pp25-head{background:linear-gradient(135deg,rgba(37,99,235,.18),rgba(15,23,42,.88));border-color:#334155}body.pp-prefers-dark .pp25-head>button,body.pp-prefers-dark .pp25-inline-close{background:#172033;color:#e5e7eb;border-color:#334155}body.pp-prefers-dark .pp25-chat-messages{background:linear-gradient(180deg,#0b1220,#111827)}body.pp-prefers-dark .pp25-msg.clinic{background:#1e293b;color:#e2e8f0;border-color:#334155}body.pp-prefers-dark .pp25-compose{background:#111827;border-color:#334155}body.pp-prefers-dark .pp25-compose textarea,body.pp-prefers-dark .pp25-compose button{background:#0b1425;color:#e2e8f0;border-color:#334155}body.pp-prefers-dark #pp25-notif-btn,body.pp-prefers-dark #pp25-chat-btn{background:#172033;color:#e2e8f0;border-color:#334155}body.pp-prefers-dark .pp25-notif{background:rgba(255,255,255,.04);border-color:#334155}body.pp-prefers-dark .pp25-notif.unread{background:rgba(37,99,235,.16)}
/* Same-card clinic chat */
.pp-contact-chat-card{position:relative;overflow:hidden;min-height:335px;perspective:1000px}.pp25-inline-chat-front,.pp25-inline-chat-face{transition:opacity .28s ease,transform .35s cubic-bezier(.2,.82,.24,1);backface-visibility:hidden}.pp25-inline-chat-front{display:flex;flex-direction:column;height:100%;min-height:295px}.pp25-inline-chat-front .pp-btn-platform-chat{margin-top:auto}.pp25-inline-chat-face{position:absolute;inset:0;display:flex;flex-direction:column;background:var(--pp-card,#fff);opacity:0;pointer-events:none;transform:translateX(-24px) scale(.985)}.pp-contact-chat-card.pp-contact-chat-open .pp25-inline-chat-front{opacity:0;pointer-events:none;transform:translateX(24px) scale(.985)}.pp-contact-chat-card.pp-contact-chat-open .pp25-inline-chat-face{opacity:1;pointer-events:auto;transform:translateX(0) scale(1)}
.pp25-inline-chat-head{min-height:58px;display:grid;grid-template-columns:38px minmax(0,1fr) 32px;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--pp-border,#e2e8f0);background:linear-gradient(135deg,rgba(37,99,235,.08),rgba(14,165,233,.04));direction:ltr}.pp25-inline-chat-title{direction:rtl;text-align:right;min-width:0}.pp25-inline-chat-title strong{display:block;font-size:12px}.pp25-inline-chat-title span{display:block;font-size:9px;color:var(--pp-muted,#64748b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp25-inline-chat-face .pp25-chat-messages{min-height:190px}.pp25-inline-compose{padding:8px}.pp-contact-icon-platform{background:linear-gradient(135deg,#2563eb,#0ea5e9)!important;color:#fff!important}.pp-btn-platform-chat{background:linear-gradient(135deg,#2563eb 0%,#0ea5e9 55%,#14b8a6 100%)!important;color:#fff!important;border:0!important;box-shadow:0 12px 24px rgba(37,99,235,.22)!important}.pp-btn-platform-chat:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(37,99,235,.3)!important}
body.pp-prefers-dark .pp25-inline-chat-face{background:#111827}body.pp-prefers-dark .pp25-inline-chat-head{border-color:#334155;background:linear-gradient(135deg,rgba(37,99,235,.18),rgba(15,23,42,.88))}
#pp25-mobile-notif-btn{display:none}
@media(max-width:768px){
 #pp25-mobile-notif-btn{display:grid;position:relative}
 .pp-portal-chat-shell{left:auto!important;right:10px!important;bottom:14px!important;align-items:center;flex-direction:column-reverse;gap:8px}
 .pp-portal-chat-shell #pp-portal-chat-fab,.pp-portal-chat-shell #pp25-chat-btn{width:52px!important;height:52px!important;min-width:52px!important;flex-basis:52px!important;border-radius:16px!important}
 #pp25-notif-btn{display:none!important}
 .pp25-panel,#pp25-chat-panel{max-height:calc(100dvh - 82px);height:auto;border-radius:16px}
 #pp25-chat-panel{height:min(520px,calc(100dvh - 96px))}
 .pp-contact-chat-card{min-height:330px}
}


/* v20.42 — opaque popovers, balanced contact card and mobile placement */
.pp25-panel{background:#fff!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
body.pp-prefers-dark .pp25-panel{background:#111827!important}
#pp25-chat-panel .pp25-chat-head,.pp25-inline-chat-head{background:linear-gradient(135deg,#0f4c81 0%,#0ea5e9 52%,#059669 100%)!important;color:#fff!important;border-bottom-color:rgba(255,255,255,.18)!important}
#pp25-chat-panel .pp25-chat-title span,.pp25-inline-chat-head .pp25-inline-chat-title span{color:rgba(255,255,255,.86)!important}
#pp25-chat-panel .pp25-chat-head>button,.pp25-inline-chat-head .pp25-inline-close{background:rgba(255,255,255,.14)!important;color:#fff!important;border-color:rgba(255,255,255,.28)!important}
.pp25-inline-chat-front{align-items:center!important;text-align:center!important;width:100%!important}
.pp25-inline-chat-front .pp-contact-icon{margin-inline:auto!important}
.pp25-inline-chat-front .pp-contact-meta{margin-top:auto!important}
.pp-contact-card .pp-btn{min-height:44px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
.pp-contact-chat-card .pp-btn-platform-chat{margin-top:0!important}
#pp25-mobile-notif-btn{place-items:center!important;align-items:center!important;justify-items:center!important;padding:0!important;line-height:1!important}
#pp25-mobile-notif-btn>i{display:block!important;margin:0!important;line-height:1!important;position:static!important;transform:none!important;font-size:18px!important}
@media(max-width:768px){
 .pp-portal-chat-shell{right:10px!important;left:auto!important}
 #pp-portal-chat-fab{position:fixed!important;left:10px!important;right:auto!important;bottom:14px!important;margin:0!important;z-index:8191!important}
}

/* v20.42 — precise mobile split + chat header sides */
.pp25-chat-head,.pp25-inline-chat-head{grid-template-columns:32px minmax(0,1fr) 40px!important;direction:ltr!important}
.pp25-chat-head>button,.pp25-inline-chat-head>.pp25-inline-close{grid-column:1!important;justify-self:start!important}
.pp25-chat-head>.pp25-chat-logo,.pp25-inline-chat-head>.pp25-chat-logo{grid-column:3!important;justify-self:end!important}
.pp25-chat-head>.pp25-chat-title,.pp25-inline-chat-head>.pp25-inline-chat-title{grid-column:2!important}
@media(max-width:768px){
 body .pp-portal-chat-shell{right:10px!important;left:auto!important;bottom:14px!important}
 body .pp-portal-chat-shell #pp-portal-chat-fab{position:fixed!important;left:10px!important;right:auto!important;bottom:14px!important;order:initial!important;z-index:8191!important}
 body .pp-portal-chat-shell #pp25-chat-btn{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important}
}


/* v20.42 — inline clinic chat adopts the compact popover header and real window controls. */
.pp-contact-chat-card.pp-contact-chat-open{min-height:335px!important}
.pp25-inline-chat-head{min-height:60px!important;height:60px!important;display:grid!important;grid-template-columns:92px minmax(0,1fr) 38px!important;gap:8px!important;align-items:center!important;padding:8px 10px!important;direction:ltr!important;border-radius:0!important}
.pp25-inline-window-controls{grid-column:1!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:5px!important;direction:ltr!important}
.pp25-inline-window-btn{width:25px!important;height:25px!important;min-width:25px!important;border-radius:7px!important;border:1px solid rgba(255,255,255,.28)!important;background:rgba(255,255,255,.14)!important;color:#fff!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0!important;cursor:pointer!important}
.pp25-inline-window-btn i{font-size:12px!important;line-height:1!important}
.pp25-inline-chat-head>.pp25-chat-logo{grid-column:3!important;width:34px!important;height:34px!important;justify-self:end!important;border-radius:10px!important;background:#fff!important;padding:3px!important;object-fit:contain!important}
.pp25-inline-chat-head>.pp25-inline-chat-title{grid-column:2!important;direction:rtl!important;text-align:right!important;align-self:center!important;min-width:0!important}
.pp25-inline-chat-head>.pp25-inline-chat-title strong{font-size:12px!important;line-height:1.45!important;color:#fff!important}
.pp25-inline-chat-head>.pp25-inline-chat-title span{font-size:9px!important;line-height:1.4!important;color:rgba(255,255,255,.86)!important}
.pp-contact-chat-card.pp25-inline-chat-minimized{min-height:60px!important;height:60px!important}
.pp-contact-chat-card.pp25-inline-chat-minimized .pp25-inline-chat-face{height:60px!important;min-height:60px!important}
.pp-contact-chat-card.pp25-inline-chat-minimized .pp25-chat-messages,.pp-contact-chat-card.pp25-inline-chat-minimized .pp25-compose{display:none!important}
.pp-contact-chat-card.pp25-inline-chat-maximized .pp25-inline-chat-face{position:fixed!important;inset:5vh 5vw!important;z-index:100500!important;border-radius:18px!important;overflow:hidden!important;box-shadow:0 28px 90px rgba(15,23,42,.42)!important;opacity:1!important;pointer-events:auto!important;transform:none!important}
body.pp-prefers-dark .pp-contact-note{color:#e2e8f0!important}
body.pp-prefers-dark .pp25-inline-window-btn{color:#fff!important}
@media(max-width:768px){
 .pp-contact-chat-card.pp25-inline-chat-maximized .pp25-inline-chat-face{inset:8px!important;border-radius:16px!important}
 body.pp-portal-dashboard-active #pp-portal-chat-fab,.pp-portal-chat-shell #pp-portal-chat-fab{position:fixed!important;left:12px!important;right:auto!important;bottom:14px!important;margin:0!important;transform:none!important;z-index:8192!important}
 .pp-portal-chat-shell{right:10px!important;left:auto!important}
}


/* v20.42 — mobile split is structural: clinic messaging stays right, AI assistant is a body-level FAB on the left. */
@media(max-width:768px){
 body.pp-portal-dashboard-active>#pp-portal-chat-fab.pp-assistant-left-v2042{
   display:flex!important;position:fixed!important;left:max(12px,env(safe-area-inset-left))!important;right:auto!important;
   bottom:max(14px,env(safe-area-inset-bottom))!important;top:auto!important;margin:0!important;transform:none!important;z-index:2147483600!important;
 }
 body.pp-login-active>#pp-portal-chat-fab{display:none!important}
 body.pp-portal-dashboard-active .pp-portal-chat-shell{right:max(10px,env(safe-area-inset-right))!important;left:auto!important}
}


/* v20.46 — notification preferences */
.pp25-head-title-wrap{display:flex;align-items:center;gap:7px;min-width:0}.pp25-settings-btn{width:30px!important;height:30px!important;border-radius:9px!important;font-size:14px!important;flex:0 0 30px;border:1px solid var(--pp-border,#e2e8f0)!important;background:var(--pp-card,#fff)!important;color:var(--pp-text,#475569)!important;display:grid!important;place-items:center!important;padding:0!important;cursor:pointer!important}.pp25-notif-settings{padding:10px 12px;border-bottom:1px solid var(--pp-border,#e2e8f0);background:rgba(248,250,252,.94);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;max-height:230px;overflow:auto}.pp25-notif-settings[hidden]{display:none!important}.pp25-pref-title{grid-column:1/-1;font-size:10.5px;font-weight:900;color:var(--pp-muted,#475569);margin-bottom:2px}.pp25-pref-row{display:flex;align-items:center;gap:7px;font-size:10.5px;font-weight:700;cursor:pointer;min-width:0}.pp25-pref-row input{width:15px;height:15px;accent-color:#2563eb;flex:0 0 auto}.pp25-pref-row span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.pp-prefers-dark .pp25-notif-settings{background:#0f172a;border-color:#334155}body.pp-prefers-dark .pp25-pref-title{color:#cbd5e1}
@media(max-width:420px){.pp25-notif-settings{grid-template-columns:1fr}}


/* v20.47 — patient attachment filters */
#tab-attachments .pp-attachments-filter-bar {
  display:grid;
  grid-template-columns:minmax(180px,1.6fr) repeat(3,minmax(120px,.8fr));
  gap:10px;
  align-items:end;
  margin:0 0 14px;
  padding:12px;
  border:1px solid var(--pp-border);
  border-radius:14px;
  background:rgba(248,250,252,.86);
}
#tab-attachments .pp-attachments-filter-bar .pp-records-filter-item { min-width:0; }
#tab-attachments .pp-attachments-filter-bar label { display:block; margin-bottom:5px; font-size:11px; font-weight:800; color:var(--pp-muted); }
#tab-attachments .pp-attachments-filter-bar .pp-edit-input { width:100%; min-width:0; }
body.pp-prefers-dark #tab-attachments .pp-attachments-filter-bar { background:rgba(15,23,42,.72); }
@media (max-width: 820px) {
  #tab-attachments .pp-attachments-filter-bar { grid-template-columns:1fr 1fr; }
  #tab-attachments .pp-attachments-search-item { grid-column:1 / -1; }
}
@media (max-width: 520px) {
  #tab-attachments .pp-attachments-filter-bar { grid-template-columns:1fr; }
  #tab-attachments .pp-attachments-search-item { grid-column:auto; }
}
