:root{
  --primary:#1e5fbf; --primary-dark:#164a99; --primary-light:#e8f0fb;
  --accent:#f39234; --accent-dark:#d97a1c;
  --bg:#f7f9fc; --surface:#ffffff; --text:#0f172a; --text-muted:#5b6b80;
  --border:#e2e8f0; --success:#0f9d58; --danger:#c62828; --warning:#f39234;
  --radius:12px; --radius-sm:8px; --shadow:0 4px 12px rgba(15,23,42,.06);
  --shadow-lg:0 12px 32px rgba(15,23,42,.10);
  --container:1200px;
  --font: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--font);color:var(--text);background:var(--bg);line-height:1.55}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:var(--container);margin:0 auto;padding:0 1.25rem}
.muted{color:var(--text-muted);font-size:.9rem}
.skip{position:absolute;left:-9999px;top:-9999px}
.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem 1rem;z-index:100}

/* Header */
.site-header{background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.25rem}
.brand{display:flex;align-items:center;gap:.6rem;color:var(--text)}
.brand:hover{text-decoration:none}
.brand-logo{width:36px;height:36px;object-fit:contain}
.brand-text{font-weight:700;font-size:1.15rem;letter-spacing:.3px}
.main-nav{display:flex;gap:1.25rem}
.main-nav a{color:var(--text);font-weight:500;font-size:.95rem}
.header-actions{display:flex;align-items:center;gap:.6rem}
.lang-switch{display:flex;gap:.15rem;background:#f0f4fa;padding:.2rem;border-radius:8px;margin-right:.4rem}
.lang{font-size:.75rem;padding:.25rem .5rem;border-radius:6px;color:var(--text-muted);font-weight:600}
.lang.active{background:#fff;color:var(--primary);box-shadow:var(--shadow)}
.lang:hover{text-decoration:none}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem 1.1rem;
  border-radius:var(--radius-sm);font-weight:600;font-size:.9rem;border:1px solid transparent;cursor:pointer;
  transition:all .15s;text-decoration:none}
.btn:hover{text-decoration:none;transform:translateY(-1px)}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-dark);color:#fff}
.btn-accent{background:var(--accent);color:#fff}
.btn-accent:hover{background:var(--accent-dark);color:#fff}
.btn-outline{background:transparent;color:var(--primary);border-color:var(--primary)}
.btn-outline:hover{background:var(--primary-light)}
.btn-ghost{background:transparent;color:var(--text)}
.btn-ghost:hover{background:#f0f4fa}
.btn-danger{background:transparent;color:var(--danger);border-color:var(--danger)}
.btn-danger:hover{background:var(--danger);color:#fff}
.btn-block{display:flex;width:100%}
.btn-lg{padding:.9rem 1.6rem;font-size:1rem}

/* Hero */
.hero{padding:5rem 0 4rem;background:linear-gradient(135deg,#eaf2fc 0%,#f7f9fc 100%)}
.hero-inner{display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:center}
.hero h1{font-size:clamp(1.8rem,3.2vw,2.9rem);line-height:1.15;margin:0 0 1rem;color:var(--text)}
.hero p{font-size:1.15rem;color:var(--text-muted);margin:0 0 1.75rem;max-width:56ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem}
.hero-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:2rem;text-align:center}
.hero-card img{width:120px;height:120px;object-fit:contain;margin-bottom:1rem}
.hero-card h3{margin:0 0 .5rem}

/* Sections */
.section{padding:4rem 0}
.section-alt{background:#fff}
.section h2{text-align:center;font-size:clamp(1.5rem,2.5vw,2.1rem);margin:0 0 .5rem}
.section .subtitle{text-align:center;color:var(--text-muted);max-width:60ch;margin:0 auto 2.5rem}

/* Features grid */
.grid{display:grid;gap:1.25rem}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;
  box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.card .icon{width:48px;height:48px;border-radius:12px;background:var(--primary-light);color:var(--primary);
  display:flex;align-items:center;justify-content:center;font-size:1.6rem;margin-bottom:1rem;font-weight:700}
.card h3{margin:0 0 .4rem;font-size:1.15rem}
.card p{margin:0;color:var(--text-muted);font-size:.95rem}

/* CTA */
.cta{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;
  padding:3.5rem 0;text-align:center}
.cta h2{color:#fff;margin:0 0 .5rem}
.cta p{color:#dfeafc;margin:0 0 1.5rem}

/* Auth */
.auth-wrap{min-height:calc(100vh - 200px);display:flex;align-items:center;justify-content:center;padding:2rem 1rem}
.auth-card{background:#fff;padding:2.5rem;border-radius:var(--radius);box-shadow:var(--shadow-lg);
  max-width:440px;width:100%}
.auth-card h1{margin:0 0 1.5rem;text-align:center;font-size:1.5rem}
.auth-card .footer-note{text-align:center;margin-top:1.25rem;color:var(--text-muted);font-size:.9rem}

/* Forms */
.form-group{margin-bottom:1rem}
.form-group label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.35rem}
.form-control{width:100%;padding:.65rem .8rem;border:1px solid var(--border);border-radius:var(--radius-sm);
  font-size:.95rem;font-family:inherit;background:#fff;color:var(--text)}
.form-control:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}
textarea.form-control{min-height:100px;resize:vertical}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.alert{padding:.75rem 1rem;border-radius:var(--radius-sm);margin-bottom:1rem;font-size:.9rem}
.alert-error{background:#fdecea;color:var(--danger);border:1px solid #f5c6c2}
.alert-success{background:#e6f6ee;color:var(--success);border:1px solid #b6e2c9}
.alert-info{background:var(--primary-light);color:var(--primary-dark);border:1px solid #cfe0f7}

/* Dashboard */
.dash{padding:2rem 0}
.dash h1{margin:0 0 .3rem;font-size:1.75rem}
.dash .lead{color:var(--text-muted);margin:0 0 1.75rem}
.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:1.5rem}
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}
.stat{background:#fff;padding:1.5rem;border-radius:var(--radius);border:1px solid var(--border)}
.stat .num{font-size:2rem;font-weight:700;color:var(--primary);margin:0}
.stat .lbl{color:var(--text-muted);font-size:.9rem;margin:.25rem 0 0}
.quick-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1.5rem}

/* Tables */
.table-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.table-card .head{padding:1rem 1.25rem;border-bottom:1px solid var(--border);display:flex;
  justify-content:space-between;align-items:center}
.table-card .head h2{margin:0;font-size:1.1rem}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:.75rem 1.25rem;text-align:left;border-bottom:1px solid var(--border);font-size:.92rem}
.table th{background:#f7f9fc;font-weight:600;color:var(--text-muted);font-size:.8rem;
  text-transform:uppercase;letter-spacing:.5px}
.table tr:last-child td{border-bottom:none}
.empty{padding:2.5rem;text-align:center;color:var(--text-muted)}
.badge{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600}
.badge-pending{background:#fff4e0;color:#a86000}
.badge-confirmed{background:#e6f6ee;color:var(--success)}
.badge-completed{background:var(--primary-light);color:var(--primary-dark)}
.badge-cancelled{background:#f0f2f5;color:var(--text-muted)}

/* Footer */
.site-footer{background:#0f172a;color:#dbe1eb;margin-top:4rem;padding:3rem 0 1rem}
.footer-inner{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem}
.site-footer h4{margin:0 0 .75rem;color:#fff;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}
.site-footer a{display:block;color:#dbe1eb;padding:.2rem 0;font-size:.9rem}
.site-footer .brand-text{color:#fff}
.site-footer .muted{color:#8b98ab}
.footer-bottom{border-top:1px solid #1e293b;margin-top:2rem;padding-top:1rem;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem}

/* Error */
.err-page{min-height:60vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:3rem 1rem}
.err-page .num{font-size:5rem;color:var(--primary);margin:0;font-weight:700;line-height:1}

@media (max-width:900px){
  .hero-inner,.dash-grid,.grid-3,.grid-2,.footer-inner,.stat-grid,.form-row{grid-template-columns:1fr}
  .main-nav{display:none}
  .hero{padding:3rem 0}
  .header-inner{flex-wrap:wrap}
}

/* ============ v2 additions ============ */
.tag{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.78rem;font-weight:600;background:#eef2f7;color:#334155}
.tag.ok{background:#dcfce7;color:#166534}
.tag.warn{background:#fef3c7;color:#92400e}
.tag.danger{background:#fee2e2;color:#991b1b}
.msg-list{list-style:none;padding:0;margin:0}
.msg-list li{border-bottom:1px solid #eef;padding:.6rem 0}
.msg-list a{text-decoration:none;color:inherit;display:block}
.msg-list small{display:block;color:#64748b;font-size:.75rem;margin-top:.15rem}
.chat{display:flex;flex-direction:column;gap:.65rem;margin:1rem 0;max-height:60vh;overflow:auto;padding:.5rem;background:#f8fafc;border-radius:.5rem}
.chat-msg{background:#fff;border:1px solid #e2e8f0;padding:.65rem .85rem;border-radius:.6rem;max-width:80%}
.chat-msg.mine{align-self:flex-end;background:#e0ecff;border-color:#c7ddfc}
.chat-meta{font-size:.75rem;color:#64748b;margin-bottom:.2rem}
.qr-box{display:flex;gap:1rem;align-items:center;padding:1rem;background:#f8fafc;border-radius:.6rem;margin:1rem 0}
.qr-box img{border:1px solid #e2e8f0;border-radius:.4rem;background:#fff}
.emergency-card{max-width:640px;margin:2rem auto;border:2px solid #dc2626}
.emergency-card .emg-header{display:flex;gap:1rem;align-items:center;border-bottom:2px solid #fee2e2;padding-bottom:1rem;margin-bottom:1rem}
.emergency-card .emg-symbol{font-size:2.5rem;color:#dc2626;font-weight:800}
.emergency-card .emg-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0}
.emergency-card .emg-value{font-size:1.1rem;font-weight:600;margin-top:.25rem}
.emergency-card .emg-value.big{font-size:2rem;color:#dc2626}
.emergency-card .emg-block{padding:.75rem 0;border-top:1px solid #fee2e2}
.emergency-card .warning{margin-top:1rem;padding:.75rem;background:#fef3c7;border-left:4px solid #f59e0b;font-size:.85rem}
.notif-list{list-style:none;padding:0;margin:0}
.notif-list li{padding:.75rem;border-left:3px solid transparent;background:#f8fafc;margin-bottom:.5rem;border-radius:.4rem}
.notif-list li.unread{border-left-color:#0057B7;background:#eff6ff}
.notif-list small{color:#64748b;display:block;margin-top:.35rem}
.form-inline{display:flex;gap:.5rem;margin:1rem 0}
.form-inline input{flex:1}
details.collapsible summary{cursor:pointer;list-style:none}
details.collapsible summary::-webkit-details-marker{display:none}
.found-presc{margin-top:1rem;padding:1rem;background:#f0f9ff;border:1px solid #bae6fd;border-radius:.5rem}

/* === Refreshed homepage v2 === */
.hero{position:relative;overflow:hidden;padding:6rem 0 5rem;
  background:radial-gradient(1200px 500px at 15% -10%,#dfeaff 0%,transparent 60%),
             radial-gradient(900px 400px at 100% 0%,#ffe5cc 0%,transparent 55%),
             linear-gradient(180deg,#f4f8ff 0%,#f7f9fc 100%)}
.hero-inner{grid-template-columns:1.2fr .9fr}
.hero-copy .pill{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .8rem;border-radius:999px;
  background:#fff;color:var(--primary);font-weight:600;font-size:.8rem;
  border:1px solid #dbe6f7;box-shadow:0 1px 2px rgba(15,23,42,.04);margin-bottom:1.25rem}
.hero h1{font-size:clamp(2rem,3.6vw,3.25rem);letter-spacing:-.5px;font-weight:800}
.hero h1::after{content:'';display:block;width:64px;height:4px;border-radius:2px;
  background:linear-gradient(90deg,var(--primary),var(--accent));margin-top:1rem}
.hero-trust{margin-top:2.25rem;display:flex;gap:2rem;flex-wrap:wrap}
.hero-trust>div{display:flex;flex-direction:column}
.hero-trust strong{font-size:1.4rem;color:var(--text);font-weight:700}
.hero-trust span{font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}

.hero-visual{position:relative}
.hero-card{position:relative;z-index:2;background:#fff;border-radius:20px;
  box-shadow:0 20px 60px -20px rgba(30,95,191,.35),0 2px 6px rgba(15,23,42,.06);
  padding:2.5rem 2rem;text-align:center;border:1px solid #eaf0fa}
.hero-card img{width:110px;height:110px}
.hero-card h3{font-size:1.4rem;margin:.25rem 0}
.hero-card-badges{margin-top:1.25rem;display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}
.hero-card-badges span{background:var(--primary-light);color:var(--primary);
  padding:.35rem .7rem;border-radius:999px;font-size:.78rem;font-weight:600}
.hero-glow{position:absolute;inset:auto -10% -20% -10%;height:80%;z-index:1;
  background:radial-gradient(ellipse at center,rgba(243,146,52,.28) 0%,transparent 70%);filter:blur(30px)}

.feature-card{border-radius:16px;padding:1.75rem 1.5rem;position:relative}
.feature-card::before{content:'';position:absolute;inset:0;border-radius:16px;padding:1px;
  background:linear-gradient(140deg,rgba(30,95,191,.25),transparent 60%);
  -webkit-mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);
  -webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:0}
.feature-card:hover::before{opacity:1}
.feature-card .icon{width:52px;height:52px;font-size:1.7rem;
  background:linear-gradient(135deg,var(--primary-light),#fff);border:1px solid #dbe6f7}

.cta{background:linear-gradient(135deg,var(--primary) 0%,#0d3d84 100%);color:#fff;padding:4rem 0;margin-top:2rem}
.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.cta h2{color:#fff;text-align:left;margin:0 0 .35rem}
.cta p{color:rgba(255,255,255,.85);margin:0;max-width:52ch}

@media (max-width: 900px){
  .hero{padding:3.5rem 0 2.5rem}
  .hero-inner{grid-template-columns:1fr;gap:2rem}
  .hero-visual{order:-1;max-width:340px;margin:0 auto}
  .grid-3{grid-template-columns:1fr}
  .cta-inner{flex-direction:column;text-align:center}
  .cta h2{text-align:center}
  .main-nav{display:none}
}

/* ============ v3: nav + mobile drawer ============ */
.header-inner{gap:.75rem;padding:.75rem 1.25rem}
.brand{flex-shrink:0}
.brand-logo{width:32px;height:32px}
.brand-text{font-size:1.05rem}

/* Main nav (desktop) */
.main-nav{display:flex;flex:1;align-items:center;gap:.15rem;flex-wrap:wrap;justify-content:flex-start;margin-left:.5rem}
.nav-link{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .7rem;border-radius:10px;
  color:var(--text-muted);font-weight:600;font-size:.88rem;text-decoration:none;line-height:1;
  background:transparent;border:0;cursor:pointer;font-family:inherit;transition:background .15s,color .15s;white-space:nowrap}
.nav-link:hover{background:var(--primary-light);color:var(--primary);text-decoration:none}
.nav-link.is-active{background:var(--primary-light);color:var(--primary)}
.nav-ico{display:inline-flex;width:18px;height:18px}
.nav-ico svg{width:100%;height:100%;display:block}

/* Desktop dropdown "More" */
.nav-more{position:relative}
.nav-more-panel{display:none;position:absolute;top:calc(100% + .35rem);right:0;min-width:520px;
  background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 50px -12px rgba(15,23,42,.18);
  padding:1rem;z-index:60;grid-template-columns:1fr 1fr;gap:1rem}
.nav-more.is-open .nav-more-panel{display:grid}
.nav-more-group{min-width:0}
.nav-more-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);
  margin:0 .5rem .3rem;font-weight:700}
.nav-more .nav-link{display:flex;padding:.55rem .5rem;border-radius:8px}

/* Header actions */
.header-actions{display:flex;align-items:center;gap:.4rem;flex-shrink:0}
.btn-user{padding:.35rem .5rem .35rem .35rem;gap:.5rem}
.btn-user .user-name{font-size:.85rem;font-weight:600;color:var(--text);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-avatar{width:30px;height:30px;border-radius:50%;background:var(--primary);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;flex-shrink:0}
.user-avatar.lg{width:44px;height:44px;font-size:1.1rem}
.btn-icon-only{padding:.5rem;width:38px;height:38px}
.btn-icon-only svg{width:18px;height:18px}

/* Lang switch */
.lang-switch{display:inline-flex;gap:.1rem;background:#f0f4fa;padding:.2rem;border-radius:8px}
.lang{font-size:.72rem;padding:.3rem .55rem;border-radius:6px;color:var(--text-muted);font-weight:700;letter-spacing:.5px}
.lang.active{background:#fff;color:var(--primary);box-shadow:0 1px 2px rgba(15,23,42,.08)}
.lang-switch.full{width:100%;justify-content:space-between;margin-bottom:.75rem}
.lang-switch.full .lang{flex:1;text-align:center;padding:.55rem 0;font-size:.85rem}

/* Hamburger */
.nav-toggle{display:none;background:transparent;border:1px solid var(--border);border-radius:10px;
  width:42px;height:42px;padding:0;color:var(--text);cursor:pointer;align-items:center;justify-content:center}
.nav-toggle svg{width:22px;height:22px}
.nav-toggle:hover{background:var(--primary-light);color:var(--primary);border-color:transparent}

/* Drawer */
.drawer{position:fixed;inset:0;z-index:100}
.drawer[hidden]{display:none}
.drawer-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.55);opacity:0;transition:opacity .2s}
.drawer.is-open .drawer-backdrop{opacity:1}
.drawer-panel{position:absolute;top:0;right:0;bottom:0;width:min(360px,88vw);background:#fff;
  display:flex;flex-direction:column;transform:translateX(100%);transition:transform .22s ease;
  box-shadow:-20px 0 50px -10px rgba(15,23,42,.25)}
.drawer.is-open .drawer-panel{transform:translateX(0)}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;border-bottom:1px solid var(--border);flex-shrink:0}
.drawer-close{background:transparent;border:0;width:40px;height:40px;border-radius:8px;color:var(--text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.drawer-close:hover{background:#f0f4fa}
.drawer-close svg{width:22px;height:22px}
.drawer-user{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--primary-light);flex-shrink:0}
.drawer-user-name{font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.drawer-user-role{font-size:.8rem;color:var(--primary);font-weight:600}
.drawer-nav{flex:1;overflow-y:auto;padding:.75rem .5rem;-webkit-overflow-scrolling:touch}
.drawer-group{margin-bottom:1rem}
.drawer-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.7px;color:var(--text-muted);
  font-weight:700;padding:.4rem .75rem .25rem}
.drawer-nav .nav-link{display:flex;padding:.75rem;border-radius:10px;font-size:.95rem;gap:.7rem;min-height:44px}
.drawer-nav .nav-ico{width:20px;height:20px}
.drawer-foot{border-top:1px solid var(--border);padding:1rem;flex-shrink:0}
.min-w-0{min-width:0}

/* Responsive breakpoints for header */
@media (max-width:1023px){
  .main-nav{display:none}
  .header-actions .btn-user .user-name,
  .header-actions .btn-user{display:none}
  .header-actions .btn-icon-only,
  .header-actions .btn:not(.btn-icon-only){display:none}
  .nav-toggle{display:inline-flex}
  .header-inner{justify-content:space-between}
  .header-inner{gap:.5rem}
  .header-actions{margin-left:auto}
  /* Keep compact language switch visible next to burger */
  .header-actions{display:flex;gap:.35rem;align-items:center}
  .header-actions .lang-switch{display:inline-flex;gap:.05rem;padding:.15rem;background:#f0f4fa;border-radius:8px;margin:0}
  .header-actions .lang-switch .lang{padding:.35rem .5rem;font-size:.72rem;font-weight:700;color:#475569;border-radius:6px;text-decoration:none;line-height:1}
  .header-actions .lang-switch .lang.active{background:#fff;color:#1e5fbf;box-shadow:0 1px 3px rgba(15,23,42,.08)}
}
@media (min-width:1024px){
  .nav-toggle{display:none!important}
  .drawer{display:none!important}
}
@media (max-width:1200px){
  .btn-user .user-name{max-width:80px}
}

/* Ensure sticky header spacing works with drawer */
body{min-height:100vh}

/* ============ v4: CRM shell ============ */
:root{
  --side-w:264px;
  --topbar-h:60px;
  --grad-soft:linear-gradient(180deg,#f7faff 0%,#eef4fd 100%);
  --grad-accent:linear-gradient(135deg,#2b6cb0 0%,#1e5fbf 60%,#164a99 100%);
  --grad-side:linear-gradient(180deg,#ffffff 0%,#f4f7fc 100%);
  --ring:0 0 0 3px rgba(30,95,191,.12);
}
body.has-crm{background:var(--grad-soft);min-height:100vh}
body.has-crm .site-header,body.has-crm .site-footer{display:none}

.crm{display:grid;grid-template-columns:var(--side-w) 1fr;min-height:100vh}
.crm-side{position:sticky;top:0;height:100vh;background:var(--grad-side);
  border-right:1px solid rgba(226,232,240,.7);display:flex;flex-direction:column;
  backdrop-filter:saturate(140%) blur(6px)}
.crm-side-head{display:flex;align-items:center;justify-content:space-between;
  padding:1rem 1.1rem;border-bottom:1px solid rgba(226,232,240,.7)}
.crm-side-head .brand-logo{width:32px;height:32px}
.crm-side-head .brand-text{font-size:1.05rem;font-weight:800;letter-spacing:.3px;
  background:var(--grad-accent);-webkit-background-clip:text;background-clip:text;color:transparent}
.crm-side-close{display:none;background:transparent;border:0;width:36px;height:36px;
  border-radius:8px;color:var(--text);cursor:pointer;align-items:center;justify-content:center}
.crm-side-close svg{width:22px;height:22px}

.crm-side-user{display:flex;gap:.75rem;align-items:center;margin:.9rem 1rem;padding:.8rem;
  border-radius:14px;background:linear-gradient(135deg,rgba(30,95,191,.08),rgba(243,146,52,.06));
  border:1px solid rgba(30,95,191,.10)}
.crm-user-name{font-weight:700;font-size:.92rem;color:var(--text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}
.crm-user-role{font-size:.72rem;color:var(--primary);font-weight:700;text-transform:uppercase;letter-spacing:.5px}

.crm-nav{flex:1;overflow-y:auto;padding:.4rem .6rem 1rem;scrollbar-width:thin}
.crm-nav::-webkit-scrollbar{width:6px}
.crm-nav::-webkit-scrollbar-thumb{background:rgba(15,23,42,.12);border-radius:3px}
.crm-group{margin-bottom:.9rem}
.crm-group-title{font-size:.68rem;text-transform:uppercase;letter-spacing:.9px;
  color:var(--text-muted);font-weight:700;padding:.45rem .8rem .25rem;opacity:.85}
.crm-nav .nav-link{display:flex;gap:.7rem;align-items:center;padding:.6rem .75rem;
  border-radius:10px;font-size:.9rem;font-weight:600;color:#3a4a63;
  transition:background .15s,color .15s,transform .1s;position:relative}
.crm-nav .nav-link:hover{background:rgba(30,95,191,.06);color:var(--primary);text-decoration:none}
.crm-nav .nav-link.is-active{color:var(--primary);
  background:linear-gradient(90deg,rgba(30,95,191,.13) 0%,rgba(30,95,191,.03) 100%)}
.crm-nav .nav-link.is-active::before{content:'';position:absolute;left:-6px;top:8px;bottom:8px;
  width:3px;border-radius:3px;background:var(--grad-accent)}
.crm-nav .nav-ico{width:18px;height:18px;flex-shrink:0}

.crm-side-foot{border-top:1px solid rgba(226,232,240,.7);padding:.6rem}
.crm-side-foot .nav-link{display:flex;gap:.6rem;padding:.6rem .75rem;border-radius:10px;
  color:var(--text-muted);font-weight:600;font-size:.9rem}
.crm-side-foot .nav-link:hover{background:#fdecea;color:var(--danger)}

.crm-side-backdrop{display:none;position:fixed;inset:0;background:rgba(15,23,42,.5);z-index:90}

/* Main column */
.crm-main{min-width:0;display:flex;flex-direction:column}
.crm-topbar{position:sticky;top:0;z-index:40;height:var(--topbar-h);
  display:flex;align-items:center;gap:1rem;padding:0 1.5rem;
  background:rgba(255,255,255,.78);backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid rgba(226,232,240,.7)}
.crm-burger{display:none;background:transparent;border:1px solid var(--border);
  border-radius:10px;width:40px;height:40px;color:var(--text);cursor:pointer;
  align-items:center;justify-content:center}
.crm-burger svg{width:22px;height:22px}
.crm-crumbs{flex:1;min-width:0;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crm-crumbs strong{color:var(--text);font-weight:700}
.crm-crumb-sep{margin:0 .5rem;color:var(--text-muted);opacity:.6}
.crm-topbar-actions{display:flex;align-items:center;gap:.6rem}
.crm-user-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.3rem .7rem .3rem .35rem;
  border-radius:999px;background:#fff;border:1px solid var(--border);color:var(--text);font-weight:600;font-size:.85rem}
.crm-user-chip:hover{text-decoration:none;box-shadow:var(--shadow)}
.crm-user-chip .user-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.crm-content{padding:1.75rem 1.75rem 3rem;max-width:1280px;width:100%;margin:0 auto}

/* Softer, more elegant components inside CRM */
body.has-crm .card,body.has-crm .stat,body.has-crm .table-card,body.has-crm .auth-card{
  border-radius:14px;border:1px solid rgba(226,232,240,.85);
  box-shadow:0 1px 2px rgba(15,23,42,.04),0 8px 24px -12px rgba(15,23,42,.06)}
body.has-crm .stat .num{background:var(--grad-accent);-webkit-background-clip:text;background-clip:text;color:transparent}
body.has-crm .btn-primary{background:var(--grad-accent);border:0;box-shadow:0 6px 16px -6px rgba(30,95,191,.5)}
body.has-crm .btn-primary:hover{filter:brightness(1.05)}
body.has-crm h1{font-size:1.6rem;letter-spacing:-.3px}
body.has-crm .table th{background:#f6f9fd}

/* Responsive: collapse sidebar under 1024 */
@media (max-width:1023px){
  .crm{grid-template-columns:1fr}
  .crm-side{position:fixed;top:0;left:0;bottom:0;width:min(300px,86vw);z-index:100;
    transform:translateX(-100%);transition:transform .22s ease;
    box-shadow:20px 0 50px -10px rgba(15,23,42,.25)}
  body.side-open .crm-side{transform:translateX(0)}
  body.side-open .crm-side-backdrop{display:block}
  .crm-side-close{display:inline-flex}
  .crm-burger{display:inline-flex}
  .crm-content{padding:1.25rem 1rem 2.5rem}
  .crm-topbar{padding:0 1rem}
  .crm-user-chip .user-name{display:none}
}
@media (max-width:640px){
  .crm-topbar-actions .lang-switch{display:none}
}

/* Patient context banner (pinned open patient) */
.patient-ctx-bar{display:flex;align-items:center;gap:.85rem;padding:.7rem 1rem;margin:0 0 1rem;background:linear-gradient(135deg,#eff6ff,#e0f2fe);border:1px solid #bae6fd;border-radius:12px;box-shadow:0 1px 3px rgba(15,23,42,.05);position:sticky;top:0;z-index:20}
.patient-ctx-bar .pcx-avatar{width:40px;height:40px;border-radius:50%;background:#1e40af;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}
.patient-ctx-bar .pcx-body{flex:1;min-width:0}
.patient-ctx-bar .pcx-label{font-size:.72rem;font-weight:600;color:#0369a1;text-transform:uppercase;letter-spacing:.04em}
.patient-ctx-bar .pcx-name{font-weight:600;color:#0f172a}
.patient-ctx-bar .pcx-name a{color:#0f172a;text-decoration:none}
.patient-ctx-bar .pcx-name a:hover{text-decoration:underline}
.patient-ctx-bar .pcx-pn{color:#64748b;font-weight:500;font-size:.85rem;margin-left:.25rem}
.patient-ctx-bar .pcx-close-form{margin:0}
.patient-ctx-bar .pcx-close{padding:.4rem .75rem;font-size:.85rem}

/* ============ v5: Hero + Booking widget ============ */
.hero-v2{position:relative;overflow:hidden;padding:4rem 0 5rem;background:linear-gradient(180deg,#f6f8fc 0%,#eef3fb 100%)}
.hero-v2 .hero-bg{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.hero-v2 .blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55}
.hero-v2 .blob-a{width:520px;height:520px;left:-140px;top:-160px;background:radial-gradient(circle,#4f7cff 0%,transparent 70%)}
.hero-v2 .blob-b{width:460px;height:460px;right:-120px;top:40px;background:radial-gradient(circle,#ff9a5a 0%,transparent 70%)}
.hero-grid-overlay{position:absolute;inset:0;background-image:linear-gradient(rgba(15,23,42,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(15,23,42,.05) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(circle at 60% 30%,#000 40%,transparent 75%)}
.hero-v2 .hero-inner{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:2.5rem;align-items:center}
.hero-v2 .hero-copy{max-width:640px}
.pill-glass{display:inline-flex;gap:.4rem;align-items:center;padding:.4rem .8rem;border-radius:999px;background:rgba(255,255,255,.7);backdrop-filter:blur(10px);border:1px solid rgba(15,23,42,.08);font-weight:600;font-size:.85rem;color:#0f172a}
.hero-title{font-size:clamp(2rem,4.6vw,3.4rem);line-height:1.05;letter-spacing:-.02em;font-weight:800;margin:1rem 0 .8rem;background:linear-gradient(135deg,#0f172a 0%,#1e40af 55%,#f97316 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-sub{font-size:1.1rem;color:#475569;margin-bottom:1.4rem;line-height:1.55}
.hero-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1.6rem}
.hero-trust{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;max-width:520px}
.hero-trust>div{background:rgba(255,255,255,.7);backdrop-filter:blur(8px);border:1px solid rgba(15,23,42,.06);border-radius:.9rem;padding:.7rem .8rem;text-align:center}
.hero-trust strong{display:block;font-size:1.15rem;color:#0f172a;font-weight:800}
.hero-trust span{font-size:.78rem;color:#64748b}

/* Booking widget */
.booking-v2{background:#fff;border-radius:1.4rem;padding:1.25rem;box-shadow:0 30px 60px -30px rgba(15,23,42,.35),0 10px 30px -20px rgba(15,23,42,.25);border:1px solid rgba(15,23,42,.06);position:relative}
.booking-v2::before{content:"";position:absolute;inset:-1px;border-radius:1.4rem;background:linear-gradient(135deg,rgba(79,124,255,.35),rgba(255,154,90,.35));z-index:-1;filter:blur(20px);opacity:.5}
.bk-head{display:flex;gap:.75rem;align-items:center;margin-bottom:1rem}
.bk-icon{width:44px;height:44px;border-radius:.8rem;background:linear-gradient(135deg,#4f7cff,#6ea8ff);color:#fff;display:grid;place-items:center;font-size:1.3rem;box-shadow:0 8px 20px -8px rgba(79,124,255,.6)}
.bk-title{font-weight:800;font-size:1.05rem;color:#0f172a}
.bk-sub{font-size:.82rem;color:#64748b}
.bk-chips{display:flex;gap:.4rem;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.4rem;margin:0 -.25rem .8rem;scrollbar-width:none}
.bk-chips::-webkit-scrollbar{display:none}
.bk-chip{flex:0 0 auto;border:1px solid #e2e8f0;background:#fff;color:#475569;padding:.5rem .85rem;border-radius:999px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s}
.bk-chip:hover{border-color:#94a3b8;color:#0f172a}
.bk-chip.is-active{background:#0f172a;color:#fff;border-color:#0f172a;box-shadow:0 6px 16px -8px rgba(15,23,42,.4)}
.bk-field{position:relative;display:block;margin-bottom:.7rem}
.bk-label{display:block;font-size:.78rem;color:#64748b;font-weight:600;margin-bottom:.3rem}
.bk-search{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:.9rem;padding:.15rem .1rem .15rem .8rem;display:flex;align-items:center;gap:.5rem;transition:all .15s}
.bk-search:focus-within{border-color:#4f7cff;background:#fff;box-shadow:0 0 0 4px rgba(79,124,255,.12)}
.bk-lead{color:#64748b;font-size:1.05rem}
.bk-input{border:0;outline:0;background:transparent;flex:1;padding:.85rem .2rem;font-size:1rem;color:#0f172a;min-width:0;width:100%}
.bk-input.plain{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:.9rem;padding:.75rem .85rem;font-size:.95rem}
.bk-input.plain{width:100%;max-width:100%;box-sizing:border-box;min-width:0;-webkit-appearance:none;appearance:none;font-family:inherit}
input.bk-input[type="datetime-local"]{width:100%;max-width:100%;box-sizing:border-box;min-width:0}
input.bk-input[type="datetime-local"]::-webkit-date-and-time-value{text-align:left;min-width:0}
.bk-field{max-width:100%;box-sizing:border-box}
.bk-input.plain:focus{border-color:#4f7cff;background:#fff;box-shadow:0 0 0 4px rgba(79,124,255,.12)}
.bk-clear{border:0;background:transparent;color:#94a3b8;font-size:1.1rem;padding:.3rem .6rem;cursor:pointer;border-radius:.5rem}
.bk-clear:hover{background:#f1f5f9;color:#0f172a}
.bk-input.shake{animation:bkshake .35s}
@keyframes bkshake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.bk-results{position:absolute;left:0;right:0;top:calc(100% + .35rem);background:#fff;border:1px solid #e2e8f0;border-radius:.9rem;max-height:300px;overflow:auto;z-index:30;box-shadow:0 20px 40px -20px rgba(15,23,42,.35);padding:.25rem}
.bk-result{width:100%;display:flex;gap:.7rem;align-items:center;padding:.6rem .7rem;border:0;background:transparent;text-align:left;border-radius:.7rem;cursor:pointer;transition:background .12s}
.bk-result:hover,.bk-result.is-active{background:#f1f5f9}
.bk-result-ic{width:34px;height:34px;border-radius:.6rem;background:#eff6ff;display:grid;place-items:center;font-size:1rem;flex:0 0 34px}
.bk-result-tx{display:flex;flex-direction:column;min-width:0;flex:1}
.bk-result-tx strong{color:#0f172a;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-result-tx small{color:#64748b;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-empty{padding:1rem;text-align:center;color:#64748b;font-size:.9rem}
.bk-selected{display:flex;align-items:center;gap:.7rem;padding:.6rem .8rem;background:linear-gradient(135deg,#ecfdf5,#f0fdf4);border:1.5px solid #86efac;border-radius:.9rem}
.bk-selected .dot{width:10px;height:10px;border-radius:50%;background:#10b981;box-shadow:0 0 0 4px rgba(16,185,129,.2)}
.bk-selected-txt{flex:1;min-width:0;display:flex;flex-direction:column}
.bk-selected-txt strong{color:#065f46;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-selected-txt small{color:#047857;font-size:.78rem}
.bk-selected-reset{background:#fff;border:1px solid #86efac;color:#065f46;font-weight:600;font-size:.8rem;padding:.35rem .7rem;border-radius:.5rem;cursor:pointer}
.bk-days{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.3rem;margin-bottom:.6rem;scrollbar-width:none}
.bk-days::-webkit-scrollbar{display:none}
.bk-day{flex:0 0 auto;min-width:76px;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:.8rem;padding:.5rem .6rem;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.15rem;transition:all .15s}
.bk-day span{font-size:.7rem;color:#64748b;font-weight:600}
.bk-day strong{font-size:.9rem;color:#0f172a}
.bk-day:hover{border-color:#94a3b8}
.bk-day.is-active{background:#0f172a;border-color:#0f172a}
.bk-day.is-active span,.bk-day.is-active strong{color:#fff}
.bk-grid2{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.bk-hours{display:flex;gap:.4rem;flex-wrap:wrap;margin:.6rem 0 1rem}
.bk-hour{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:.6rem;padding:.4rem .7rem;font-size:.85rem;font-weight:600;color:#475569;cursor:pointer;transition:all .12s}
.bk-hour:hover{border-color:#4f7cff;color:#0f172a}
.bk-hour.is-active{background:#4f7cff;border-color:#4f7cff;color:#fff;box-shadow:0 6px 14px -6px rgba(79,124,255,.6)}
.bk-cta{width:100%;background:linear-gradient(135deg,#4f7cff 0%,#3b5eeb 100%);color:#fff;border:0;padding:1rem 1.2rem;border-radius:.9rem;font-size:1.02rem;font-weight:700;cursor:pointer;display:flex;justify-content:center;gap:.6rem;align-items:center;box-shadow:0 14px 30px -12px rgba(79,124,255,.65);transition:all .15s}
.bk-cta:hover{transform:translateY(-1px);box-shadow:0 18px 36px -12px rgba(79,124,255,.75)}
.bk-cta:active{transform:translateY(0)}
.bk-hint{margin:.6rem 0 0;font-size:.78rem;color:#64748b;text-align:center}

/* Mobile */
@media (max-width:900px){
  .hero-v2{padding:2.5rem 0 3rem}
  .hero-v2 .hero-inner{grid-template-columns:1fr;gap:1.5rem}
  .hero-title{font-size:2rem}
  .hero-sub{font-size:1rem}
  .hero-trust{grid-template-columns:repeat(3,1fr);gap:.5rem}
  .hero-trust strong{font-size:1rem}
  .booking-v2{padding:1rem;border-radius:1.15rem;max-width:100%;box-sizing:border-box}
  .bk-grid2{grid-template-columns:1fr}
  .bk-cta{padding:.9rem 1rem;font-size:1rem}
}
@media (max-width:420px){
  .hero-trust span{font-size:.7rem}
  .bk-chip{padding:.45rem .7rem;font-size:.8rem}
  .bk-day{min-width:70px}
  .header-actions .lang-switch .lang{padding:.3rem .35rem;font-size:.68rem}
  .container{padding:0 1rem}
  .hero-v2{padding:2rem 0 2.5rem}
  .hero-title{font-size:1.6rem;line-height:1.15}
  .hero-sub{font-size:.95rem}
  .hero-actions{flex-direction:column;align-items:stretch}
  .hero-actions .btn{width:100%;text-align:center}
  .booking-v2{padding:.85rem;border-radius:1rem}
  .booking-v2::before{display:none}
  .bk-head{gap:.6rem;margin-bottom:.75rem}
  .bk-icon{width:38px;height:38px;font-size:1.1rem}
  .bk-title{font-size:.98rem}
  .bk-sub{font-size:.75rem}
  .bk-input{font-size:16px;padding:.75rem .2rem}
  .bk-input.plain{font-size:16px;padding:.7rem .75rem}
  .bk-hour{padding:.45rem .65rem;font-size:.8rem}
  .bk-cta{padding:.85rem 1rem;font-size:.98rem}
  .bk-hint{font-size:.72rem}
  .bk-results{max-height:240px}
  .bk-selected{padding:.55rem .65rem}
  .bk-selected-txt strong{font-size:.88rem}
  .pill-glass{font-size:.75rem}
}
/* Prevent horizontal overflow on any small viewport */
html,body{overflow-x:hidden;max-width:100%}
.booking-v2, .booking-v2 *{min-width:0}
@media (max-width:640px){
  .container{padding:0 .85rem}
  .hero-v2 .hero-inner{gap:1.25rem}
  .booking-v2{width:100%;max-width:100%;padding:.9rem;border-radius:1rem}
  .booking-v2 input,.booking-v2 select,.booking-v2 textarea{max-width:100%}
  .bk-chips,.bk-days{margin-left:-.15rem;margin-right:-.15rem;padding-left:.15rem;padding-right:.15rem}
  .bk-grid2{grid-template-columns:1fr;gap:.55rem}
}

/* ============ v6: Tap cards + prescription list ============ */
.tap-card{display:block;text-decoration:none;color:inherit;border-radius:1rem;border:1px solid rgba(15,23,42,.06);background:#fff;transition:transform .12s ease, box-shadow .18s ease, border-color .18s ease;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}
.tap-card:hover{transform:translateY(-2px);box-shadow:0 18px 34px -18px rgba(15,23,42,.28);border-color:rgba(79,124,255,.35)}
.tap-card:active{transform:translateY(0);box-shadow:0 6px 14px -8px rgba(15,23,42,.25)}
.tap-card::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(79,124,255,.06),rgba(249,115,22,.06));opacity:0;transition:opacity .2s;pointer-events:none}
.tap-card:hover::after{opacity:1}
.gradient-primary{background:linear-gradient(135deg,#4f7cff 0%,#3b5eeb 55%,#f97316 140%);color:#fff;border:0}
.gradient-primary::after{display:none}
.gradient-soft-blue{background:linear-gradient(135deg,#eff6ff,#e0e7ff)}
.gradient-soft-green{background:linear-gradient(135deg,#ecfdf5,#dcfce7)}
.gradient-soft-amber{background:linear-gradient(135deg,#fffbeb,#fef3c7)}
.gradient-soft-rose{background:linear-gradient(135deg,#fff1f2,#ffe4e6)}
.gradient-soft-violet{background:linear-gradient(135deg,#f5f3ff,#ede9fe)}

/* Latest prescription hero */
.rx-latest{padding:1.1rem 1.15rem;margin-bottom:1rem;box-shadow:0 22px 44px -24px rgba(59,94,235,.55);position:relative}
.rx-latest::before{content:"℞";position:absolute;right:-10px;top:-20px;font-size:170px;color:rgba(255,255,255,.12);font-weight:900;line-height:1;pointer-events:none}
.rx-latest-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;position:relative}
.rx-latest-badge{background:rgba(255,255,255,.22);padding:.28rem .65rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.3px;backdrop-filter:blur(6px)}
.rx-latest-date{font-size:.78rem;opacity:.9}
.rx-latest-title{font-size:1.35rem;font-weight:800;line-height:1.15;margin:.15rem 0 .5rem;position:relative}
.rx-more{background:rgba(255,255,255,.25);padding:.1rem .5rem;border-radius:.5rem;font-size:.75rem;vertical-align:middle;margin-left:.25rem}
.rx-latest-meta{display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:.82rem;opacity:.95;margin-bottom:.75rem;position:relative}
.rx-latest-cta{display:flex;justify-content:space-between;align-items:center;padding-top:.6rem;border-top:1px solid rgba(255,255,255,.2);position:relative}
.rx-latest-cta .tag{background:rgba(255,255,255,.2);color:#fff;padding:.2rem .55rem;border-radius:.4rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.4px}
.rx-latest-cta .tag.ok{background:rgba(16,185,129,.35)}
.rx-latest-open{font-weight:700;font-size:.85rem}

.rx-history-head{display:flex;justify-content:space-between;align-items:baseline;margin:1.2rem .25rem .5rem}
.rx-history-head h3{margin:0;font-size:.95rem;color:#0f172a;letter-spacing:.2px;text-transform:uppercase}
.rx-list{display:flex;flex-direction:column;gap:.55rem}
.rx-item{display:flex;align-items:center;gap:.85rem;padding:.85rem 1rem;background:linear-gradient(135deg,#ffffff,#f8fafc)}
.rx-item-ic{width:42px;height:42px;border-radius:.75rem;background:linear-gradient(135deg,#eff6ff,#dbeafe);color:#1e40af;display:grid;place-items:center;font-size:1.35rem;font-weight:800;flex:0 0 42px;box-shadow:inset 0 0 0 1px rgba(30,64,175,.1)}
.rx-item-body{flex:1;min-width:0}
.rx-item-top{display:flex;justify-content:space-between;gap:.5rem;align-items:baseline}
.rx-item-top strong{color:#0f172a;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}
.rx-item-sub{margin-top:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rx-item-arrow{color:#94a3b8;font-size:1.4rem;line-height:1;flex:0 0 auto}

@media (max-width:640px){
  .rx-latest{padding:1rem;border-radius:1.15rem}
  .rx-latest-title{font-size:1.2rem}
  .rx-latest::before{font-size:130px}
  .rx-item{padding:.75rem .85rem;border-radius:.9rem}
  .rx-item-ic{width:38px;height:38px;flex:0 0 38px;font-size:1.2rem}
}

/* ============ SHNET Global Modal ============ */
.shnet-modal-root{position:fixed;inset:0;z-index:2000;display:none;align-items:center;justify-content:center;padding:1rem}
.shnet-modal-root.is-open{display:flex}
.shnet-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.55);backdrop-filter:blur(3px)}
.shnet-modal-panel{position:relative;background:#fff;border-radius:16px;width:100%;max-width:760px;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 30px 60px -20px rgba(15,23,42,.4);animation:shnetIn .2s ease}
.shnet-modal-root.is-iframe .shnet-modal-panel{max-width:960px}
.shnet-modal-root.is-iframe .shnet-modal-body{padding:.4rem;background:#f1f5f9}
@keyframes shnetIn{from{transform:translateY(14px);opacity:0}to{transform:none;opacity:1}}
.shnet-modal-head{display:flex;align-items:center;gap:.75rem;padding:.9rem 1.1rem;border-bottom:1px solid #e2e8f0;background:linear-gradient(135deg,#eff6ff,#dbeafe)}
.shnet-modal-head h2{margin:0;font-size:1.05rem;color:#0f172a;font-weight:700;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.shnet-modal-x{width:34px;height:34px;border-radius:50%;background:#fff;border:1px solid #cbd5e1;font-size:1.2rem;cursor:pointer;color:#334155;flex-shrink:0}
.shnet-modal-x:hover{background:#f1f5f9}
.shnet-modal-body{padding:1rem 1.2rem;overflow:auto;-webkit-overflow-scrolling:touch}
.shnet-modal-body .card{border:0;padding:0;background:transparent;margin:0 0 1rem;box-shadow:none}
.shnet-modal-body .card+.card{margin-top:1rem;padding-top:1rem;border-top:1px solid #f1f5f9}
.shnet-modal-body h1{font-size:1.1rem;margin:0 0 .75rem}
.shnet-modal-body .patient-banner{margin-bottom:1rem}
.shnet-modal-body .rx-modal{position:absolute}
@media(max-width:640px){
  .shnet-modal-root{padding:0}
  .shnet-modal-panel{max-width:100%;max-height:100vh;height:100%;border-radius:0}
}

/* ============ Mobile safety: never let anything exceed screen ============ */
html,body{overflow-x:hidden;max-width:100%}
.crm-content,main#main{max-width:100%;overflow-x:hidden}
.crm-content img,.crm-content video,.crm-content iframe,main img{max-width:100%;height:auto}
.crm-content table,main table{max-width:100%;display:block;overflow-x:auto}
.crm-content pre,.crm-content code{white-space:pre-wrap;word-break:break-word}
.crm-content .card,main .card{max-width:100%;overflow-x:auto}

/* Doctor info popup card */
.doc-info{display:flex;flex-direction:column;gap:.6rem}
.doc-info .doc-head{display:flex;align-items:center;gap:.9rem}
.doc-info .doc-avatar{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#1e5fbf,#22c1c3);color:#fff;display:grid;place-items:center;font-size:1.5rem;font-weight:700;flex-shrink:0}
.doc-info h3{margin:0;font-size:1.15rem}
.doc-info .muted{color:#64748b;font-size:.85rem}
.doc-info .doc-tag{display:inline-block;background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe;padding:.15rem .55rem;border-radius:999px;font-size:.75rem;margin:.15rem .25rem 0 0}
.doc-info .doc-block{padding:.7rem .85rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:.6rem;font-size:.9rem}
.doc-info .doc-block strong{display:block;color:#334155;margin-bottom:.15rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px}

/* ============ Global modal overlay + doctor info card + mobile safety ============ */
html,body{max-width:100%;overflow-x:hidden}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
img,video,canvas,svg{max-width:100%;height:auto}

.shnet-modal-root{position:fixed;inset:0;z-index:9999;display:none;align-items:flex-start;justify-content:center;padding:2vh 1rem}
.shnet-modal-root.is-open{display:flex}
.shnet-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.55);backdrop-filter:blur(4px)}
.shnet-modal-panel{position:relative;background:#fff;border-radius:16px;box-shadow:0 30px 60px -20px rgba(0,0,0,.35);width:min(720px,100%);max-height:96vh;display:flex;flex-direction:column;animation:shnetPop .18s ease-out}
@keyframes shnetPop{from{transform:translateY(8px) scale(.98);opacity:0}to{transform:none;opacity:1}}
.shnet-modal-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid #e2e8f0}
.shnet-modal-head h2{margin:0;font-size:1.05rem;font-weight:700;color:#0f172a;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.shnet-modal-x{background:transparent;border:0;font-size:1.5rem;line-height:1;color:#64748b;cursor:pointer;padding:.25rem .5rem;border-radius:8px}
.shnet-modal-x:hover{background:#f1f5f9;color:#0f172a}
.shnet-modal-body{padding:1.25rem;overflow-y:auto;flex:1}
.shnet-modal-body .card{box-shadow:none;border:0;padding:0;margin:0;background:transparent}
.shnet-modal-body h1{font-size:1.15rem;margin-top:0}
@media (max-width:640px){
  .shnet-modal-root{padding:0}
  .shnet-modal-panel{border-radius:14px 14px 0 0;max-height:100vh;height:100vh;width:100%}
}

.doc-info{display:flex;flex-direction:column;gap:1rem}
.doc-info .doc-head{display:flex;align-items:center;gap:.9rem}
.doc-info .doc-avatar{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#1e5fbf,#38bdf8);color:#fff;display:grid;place-items:center;font-weight:700;font-size:1.4rem;flex-shrink:0}
.doc-info h3{margin:0;font-size:1.1rem;color:#0f172a}
.doc-info .doc-block{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:.75rem .9rem;font-size:.92rem;color:#334155}
.doc-info .doc-block strong{display:block;color:#0f172a;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.4rem}
.doc-info .doc-tag{display:inline-block;background:#e0f2fe;color:#075985;border-radius:999px;padding:.15rem .6rem;font-size:.82rem;margin:.15rem .3rem .15rem 0}

/* ============ Polished modal content (forms, cards, tables) ============ */
.shnet-modal-body .alert{margin-bottom:1rem;border-radius:10px;padding:.7rem .9rem;font-size:.9rem}
.shnet-modal-body .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1rem}
.shnet-modal-body .form-grid label{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;font-weight:600;color:#334155;min-width:0}
.shnet-modal-body .form-grid label.full{grid-column:1/-1}
.shnet-modal-body .form-grid input,
.shnet-modal-body .form-grid select,
.shnet-modal-body .form-grid textarea,
.shnet-modal-body input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]):not([type=button]),
.shnet-modal-body select,
.shnet-modal-body textarea{
  width:100%;padding:.55rem .7rem;border:1px solid #cbd5e1;border-radius:.55rem;font:inherit;font-weight:400;color:#0f172a;background:#fff;transition:border-color .15s,box-shadow .15s
}
.shnet-modal-body .form-grid textarea,
.shnet-modal-body textarea{min-height:80px;resize:vertical}
.shnet-modal-body input:focus,
.shnet-modal-body select:focus,
.shnet-modal-body textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.18)}
.shnet-modal-body .btn{margin-top:.5rem}
.shnet-modal-body .form-grid button[type=submit],
.shnet-modal-body form>button[type=submit]{grid-column:1/-1;justify-self:start}
.shnet-modal-body .patient-banner,
.shnet-modal-body .card[style*="eff6ff"]{background:linear-gradient(135deg,#eff6ff,#dbeafe)!important;border:1px solid #bfdbfe!important;border-radius:10px;padding:.7rem .9rem!important;margin:0 0 1rem!important;font-size:.9rem;color:#0f172a}
.shnet-modal-body table.data{width:100%;border-collapse:collapse;font-size:.88rem;margin-top:.5rem}
.shnet-modal-body table.data th,.shnet-modal-body table.data td{padding:.5rem .6rem;border-bottom:1px solid #e2e8f0;text-align:left}
.shnet-modal-body table.data th{background:#f8fafc;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;color:#475569}
.shnet-modal-body h1,.shnet-modal-body h2{color:#0f172a;font-weight:700;margin:0 0 .75rem}
.shnet-modal-body h2{font-size:1rem;padding-top:.5rem;border-top:1px solid #f1f5f9;margin-top:1rem}
.shnet-modal-body .form-inline{display:flex;gap:.6rem;flex-wrap:wrap;align-items:flex-end}
.shnet-modal-body .form-inline select,.shnet-modal-body .form-inline input{flex:1;min-width:180px}
@media(max-width:640px){
  .shnet-modal-body .form-grid{grid-template-columns:1fr}
}
