/* UCSD specialist-network SCHOLAR system (v2) shared styles.
   Brand tokens shared with the v1 specialist pages: navy #002A5C, teal #0047BA,
   surface #F7F9FB, Fraunces serif headings. */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Red Hat Text',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#002A5C;background:#F7F9FB;-webkit-font-smoothing:antialiased;line-height:1.55}
img,svg{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
.serif{font-family:'Red Hat Display',sans-serif}
.container{width:100%;max-width:1180px;margin:0 auto;padding:0 clamp(1.25rem,4vw,2rem)}

/* nav */
.nav{position:sticky;top:0;z-index:50;background:rgba(247,249,251,.92);backdrop-filter:saturate(160%) blur(10px);-webkit-backdrop-filter:saturate(160%) blur(10px);border-bottom:1px solid rgba(10,31,51,.06)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:.7rem;font-family:'Red Hat Display',sans-serif;font-weight:600;font-size:1.05rem;letter-spacing:-.01em}
.brand .mark{width:30px;height:30px;border-radius:50%;background:#002A5C;color:#fff;display:grid;place-items:center;font-size:.8rem;font-weight:600}
.nav-links{display:none;gap:1.6rem;font-size:.92rem;color:#3a4a5e}
.nav-links a:hover{color:#002A5C}
@media(min-width:780px){.nav-links{display:flex}}
.nav-cta{padding:.55rem 1rem;border:1px solid #002A5C;border-radius:999px;font-size:.85rem;font-weight:500;background:#002A5C;color:#fff;transition:all .15s ease}
.nav-cta:hover{background:#003B82;border-color:#003B82}

/* shared bits */
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#0047BA;margin-bottom:1.1rem}
.eyebrow::before{content:"";width:24px;height:1px;background:#0047BA}
.btn{display:inline-flex;align-items:center;gap:.55rem;padding:.95rem 1.55rem;border-radius:999px;font-weight:500;font-size:.95rem;border:1px solid transparent;transition:transform .12s ease,background .15s ease,border-color .15s ease;cursor:pointer;font-family:inherit}
.btn-primary{background:#002A5C;color:#fff}
.btn-primary:hover{background:#003B82;transform:translateY(-1px)}
.btn-ghost{background:transparent;color:#002A5C;border-color:rgba(10,31,51,.18)}
.btn-ghost:hover{border-color:#002A5C;background:rgba(10,31,51,.04)}
.btn .arrow{display:inline-block;transition:transform .15s ease}
.btn:hover .arrow{transform:translateX(3px)}
section.band{padding:clamp(3rem,6vw,5rem) 0;border-top:1px solid rgba(10,31,51,.06)}
.section-head{margin-bottom:clamp(1.75rem,4vw,2.5rem);max-width:42rem}
.section-eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#0047BA;margin-bottom:.85rem}
h2{font-family:'Red Hat Display',sans-serif;font-weight:500;font-size:clamp(1.7rem,3.4vw,2.3rem);line-height:1.15;letter-spacing:-.015em;color:#002A5C}
h2 em{font-style:italic;color:#0047BA;font-weight:400}
.section-sub{margin-top:.85rem;color:#3a4a5e;font-size:1.02rem;max-width:38rem}
.proposed{font-size:.74rem;color:#7a8a9e;text-align:center;padding:.7rem 1rem;background:rgba(10,31,51,.03);border-bottom:1px solid rgba(10,31,51,.06)}

/* Practical-fit panel (sourced human/practical factors) */
.pf-panel{background:#fff;border:1px solid rgba(10,31,51,.08);border-radius:16px;padding:1.4rem 1.6rem;box-shadow:0 18px 40px -22px rgba(10,31,51,.18)}
.pf-panel h4{font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#0047BA;margin-bottom:.8rem}
.pf-panel ul{list-style:none;margin:0}
.pf-panel li{display:flex;gap:1rem;justify-content:space-between;align-items:baseline;font-size:.9rem;padding:.5rem 0;border-bottom:1px solid rgba(10,31,51,.05);line-height:1.45}
.pf-panel li:last-child{border-bottom:none}
.pf-k{color:#7a8a9e;font-size:.74rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;flex:0 0 auto}
.pf-v{color:#27384b;text-align:right}
.pf-panel a{color:#0047BA;font-weight:500}

/* Patient-experience block (SAMPLE, illustrative) */
.exp-card{background:#fff;border:1px solid rgba(10,31,51,.08);border-radius:16px;padding:clamp(1.5rem,3vw,2rem);max-width:46rem;box-shadow:0 18px 40px -22px rgba(10,31,51,.18);position:relative}
.exp-rating{display:flex;align-items:baseline;gap:.6rem}
.exp-rating .stars{color:#E2A100;font-size:1.5rem;letter-spacing:.1em;line-height:1}
.exp-rating .exp-num{font-family:'Red Hat Display',sans-serif;font-size:1.9rem;font-weight:500;color:#002A5C}
.exp-rating .exp-sub{color:#7a8a9e;font-size:.9rem}
.exp-count{color:#5a6a7e;font-size:.86rem;margin-top:.35rem}
.exp-quotes{margin-top:1.2rem;display:grid;gap:.85rem}
.exp-quotes blockquote{margin:0;padding:.85rem 1.1rem;background:#F7F9FB;border-left:3px solid #0047BA;border-radius:8px;color:#3a4a5e;font-size:.95rem;line-height:1.5;font-style:italic}
.exp-note{margin-top:1.2rem;font-size:.74rem;color:#8a6d1c;background:#FBF4DE;border:1px solid #ECD9A0;border-radius:9px;padding:.7rem .9rem;line-height:1.5}
.exp-flag{display:inline-block;font-size:.64rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#8a6d1c;background:#FBF4DE;border:1px solid #ECD9A0;border-radius:999px;padding:.18rem .55rem;margin-bottom:.9rem}

/* directory */
.dir-grid{display:grid;gap:1.1rem;grid-template-columns:1fr}
@media(min-width:640px){.dir-grid{grid-template-columns:1fr 1fr}}
@media(min-width:980px){.dir-grid{grid-template-columns:1fr 1fr 1fr}}
.dir-card{background:#fff;border:1px solid rgba(10,31,51,.08);border-radius:16px;padding:1.4rem 1.5rem;display:flex;flex-direction:column;gap:.5rem;transition:transform .12s ease,box-shadow .15s ease,border-color .15s ease}
.dir-card:hover{transform:translateY(-2px);box-shadow:0 20px 44px -24px rgba(10,31,51,.28);border-color:rgba(42,111,126,.4)}
.dir-card .dlabel{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0047BA}
.dir-card .dname{font-family:'Red Hat Display',sans-serif;font-size:1.18rem;font-weight:500;color:#002A5C;line-height:1.2}
.dir-card .dtitle{font-size:.86rem;color:#4a5a6e;line-height:1.4;flex:1}
.dir-card .dgo{font-size:.84rem;font-weight:600;color:#0047BA;margin-top:.4rem}
.dir-card .dtag{align-self:flex-start;font-size:.68rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:.2rem .55rem;border-radius:999px;background:rgba(42,111,126,.1);color:#003B82}
.dir-card .dtag.lite{background:rgba(10,31,51,.05);color:#5a6a7e}

/* chat + voice panel */
.chat-launcher{position:fixed;bottom:1.25rem;right:1.25rem;z-index:80;background:#002A5C;color:#fff;padding:.85rem 1.25rem;border-radius:999px;font-weight:500;font-size:.9rem;box-shadow:0 10px 30px -8px rgba(10,31,51,.4);cursor:pointer;display:flex;align-items:center;gap:.6rem;border:none;font-family:inherit;transition:transform .15s ease}
.chat-launcher:hover{transform:translateY(-2px)}
.chat-launcher .pulse{width:8px;height:8px;border-radius:50%;background:#6BA8EA;box-shadow:0 0 0 0 rgba(123,184,194,.7);animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(123,184,194,.6)}70%{box-shadow:0 0 0 9px rgba(123,184,194,0)}100%{box-shadow:0 0 0 0 rgba(123,184,194,0)}}
.chat-panel{position:fixed;bottom:1.25rem;right:1.25rem;width:min(420px,calc(100vw - 2rem));height:min(640px,calc(100vh - 4rem));background:#fff;border-radius:20px;box-shadow:0 30px 80px -20px rgba(10,31,51,.4);display:none;flex-direction:column;overflow:hidden;z-index:90;border:1px solid rgba(10,31,51,.08)}
.chat-panel.open{display:flex}
.chat-header{padding:1.1rem 1.25rem;background:linear-gradient(135deg,#002A5C 0%,#003B82 100%);color:#fff;display:flex;align-items:center;justify-content:space-between}
.chat-header-text{display:flex;align-items:center;gap:.7rem}
.chat-header-text .av{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.14);display:grid;place-items:center;font-family:'Red Hat Display',sans-serif;font-size:.85rem;font-weight:500;color:#fff}
.chat-header-text .title{font-size:.92rem;font-weight:500;line-height:1.2}
.chat-header-text .sub{font-size:.74rem;color:rgba(255,255,255,.65);margin-top:.1rem}
.chat-close{background:transparent;border:none;color:rgba(255,255,255,.7);cursor:pointer;padding:.4rem;border-radius:6px;font-size:1.1rem;line-height:1}
.chat-close:hover{background:rgba(255,255,255,.1);color:#fff}
.chat-body{flex:1;overflow-y:auto;padding:1.25rem;background:#F7F9FB;display:flex;flex-direction:column;gap:.85rem}
.msg{max-width:85%;padding:.7rem .95rem;border-radius:14px;font-size:.9rem;line-height:1.5;white-space:pre-wrap}
.msg.bot{background:#fff;border:1px solid rgba(10,31,51,.08);color:#27384b;align-self:flex-start;border-bottom-left-radius:4px}
.msg.user{background:#002A5C;color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.msg.sys{align-self:center;background:rgba(42,111,126,.08);color:#003B82;font-size:.8rem;border:1px solid rgba(42,111,126,.18)}
.suggest-label{font-size:.78rem;color:#5a6a7e;margin-top:.2rem}
.suggest{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.3rem}
.suggest button{font:inherit;font-size:.8rem;color:#003B82;background:rgba(42,111,126,.08);border:1px solid rgba(42,111,126,.2);border-radius:999px;padding:.4rem .8rem;cursor:pointer}
.suggest button:hover{background:rgba(42,111,126,.16)}
.typing{align-self:flex-start;color:#7a8a9e;font-size:.85rem;font-style:italic}
.chat-input{padding:.85rem;border-top:1px solid rgba(10,31,51,.08);background:#fff;display:flex;gap:.5rem;align-items:flex-end}
.chat-input textarea{flex:1;border:1px solid rgba(10,31,51,.12);border-radius:12px;padding:.7rem .85rem;font:inherit;font-size:.9rem;resize:none;max-height:100px;line-height:1.4;color:#002A5C}
.chat-input textarea:focus{outline:none;border-color:#0047BA}
.icon-btn{border:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;cursor:pointer;flex-shrink:0;background:#002A5C;color:#fff;transition:background .15s ease}
.icon-btn:hover{background:#0047BA}
.icon-btn.mic.listening{background:#0047BA;animation:miclisten 1.4s infinite}
@keyframes miclisten{0%{box-shadow:0 0 0 0 rgba(204,32,39,.5)}70%{box-shadow:0 0 0 8px rgba(204,32,39,0)}100%{box-shadow:0 0 0 0 rgba(204,32,39,0)}}
.icon-btn.mic.speaking{background:#0047BA}
.chat-disclaimer{padding:.55rem 1rem;font-size:.68rem;color:#7a8a9e;text-align:center;background:#F7F9FB;border-top:1px solid rgba(10,31,51,.05)}
.voice-hint{padding:.5rem .85rem;background:#fff;text-align:center}
.voice-toggle{display:inline-flex;align-items:center;gap:.5rem;font:inherit;font-size:.78rem;color:#3a4a5e;background:#F7F9FB;border:1px solid rgba(10,31,51,.14);border-radius:999px;padding:.4rem .9rem;cursor:pointer;transition:all .15s ease;max-width:100%}
.voice-toggle:hover{border-color:#0047BA;color:#002A5C}
.voice-toggle .vt-ico{display:grid;place-items:center;color:#7a8a9e;flex:0 0 auto}
.voice-toggle.on{background:#002A5C;border-color:#002A5C;color:#fff}
.voice-toggle.on .vt-ico{color:#6BA8EA}
.voice-toggle #vt-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* balanced-text: no orphans/widows */
h1,h2,h3,.headline,.dname,.lede,.cred-line,.section-sub,.section-head,.note,.proposed,footer,.eyebrow,.section-eyebrow,.vname{text-wrap:balance}
p,.bio-p,.dtitle,.one,blockquote,.pub-list .pt,.form-note,.vdesc,.inprog,.exp-note{text-wrap:pretty}
