/* Avenshore Care — visual refinement v1.1
   Responsive design, accessible type hierarchy and completed public-page system.
   No externally hosted fonts: the browser uses the best available local display
   face and an intentionally legible system UI fallback. Future licensed font
   self-hosting must be vetted before medical-production deployment. */
:root {
  --bg: #f5f8f6;
  --white: #ffffff;
  --ink: #193d39;
  --heading: #123f3a;
  --muted: #4c6761;
  --line: #dce7e1;
  --green: #126b62;
  --green-2: #0b554d;
  --mint: #e7f3ed;
  --mint-light: #eef7f2;
  --gold: #d6b77b;
  --gold-dark: #866329;
  --font-ui: 'Cabin', 'Avenir Next', 'Trebuchet MS', 'Segoe UI', sans-serif;
  --font-display: 'GFS Didot', 'Iowan Old Style', 'Palatino Linotype', Georgia, serif;
  --text-sm: 0.9375rem;
  --text-base: 1.0625rem;
  --text-lg: 1.1875rem;
  --shadow: 0 20px 55px rgba(13, 62, 54, .07);
  font-family: var(--font-ui);
  font-size: 16px;
  line-height: 1.58;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
}
body { overflow-x: hidden; }
button, input, textarea { font-family: var(--font-ui); }
button { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 3px solid #ae792a;
  outline-offset: 3px;
}
button:not(:disabled):active { transform: translateY(1px); }
p { overflow-wrap: break-word; }
.btn { min-height: 51px; padding: 13px 21px; border-radius: 12px; font-size: 16px; font-weight: 650; letter-spacing: .005em; }
.btn-primary { background: #0e665e; color: #fff; }
.btn-primary:hover { background: #094e48; }
.btn-outline { border: 1px solid #bfd5cb; background: #fff; color: #0e665e; }
.btn-outline:hover { background: #eff6f1; }
.btn-gold { background: var(--gold); color: #183e37; border: 1px solid #e7ca90; box-shadow: 0 7px 19px rgba(68,47,10,.09); }
.btn-gold:hover { background: #e4c78e; }
.btn-translucent { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.42); color: #fff; }
.btn-translucent:hover { background: rgba(255,255,255,.22); }
.full { width: 100%; justify-content: center; }
.eyebrow { color: #14685f; font-size: 13px; font-weight: 700; letter-spacing: .13em; }
.eyebrow-gold { color: #d8bd84; }
.small-muted { font-size: 15px; color: var(--muted); line-height: 1.56; }
.hint { font-size: 14px; color: var(--muted); }
.footer-note { color: #516e66; font-size: 13px; line-height: 1.55; }
.banner, .safety { font-size: 15px; line-height: 1.55; }

/* Core identity: prevent the name and tagline colliding in sidebar/header. */
.brand, .brand-plain {
  appearance: none; border: 0; background: transparent; padding: 0;
  display: inline-flex; align-items: center; gap: 11px;
  text-align: left; color: var(--heading); min-width: 0;
  cursor: pointer;
}
.brand-logo { width: 49px; height: 49px; border-radius: 15px; background: #eff5ef; display:grid; place-items:center; flex:none; }
.brand-logo img { width: 43px; height: 43px; object-fit:contain; }
.brand > span:last-child { display:flex; flex-direction:column; min-width:0; }
.brand-name { display:block; font-size: 19px; letter-spacing: -.035em; font-weight: 700; line-height: 1.13; white-space: nowrap; }
.brand-care { font-weight: 500; }
.brand-slogan { display:block; font-size: 10px; letter-spacing: .1em; color: #547169; font-weight: 650; white-space:nowrap; line-height:1.45; margin-top:4px; }
.sidebar { padding: 29px 22px; gap: 37px; background: #fcfdfb; }
.shell { grid-template-columns: 266px minmax(0,1fr); }
.sidebar .brand { margin-inline: 0; }
.nav-caption { font-size: 12px; letter-spacing:.12em; color:#5a7169; font-weight:700; }
.nav-button { font-size: 16px; font-weight: 600; min-height: 50px; }
.sidebar-bottom { padding: 20px 16px; }
.help-title { font-size: 16px; font-weight: 700; }
.mini-link { font-size: 15px; font-weight: 650; }
.main { padding: 0 38px 65px; }
.topbar { height: 100px; }
.topbar-loc { color:#516f67; font-size: 15px; }
.status-pill { font-size: 14px; font-weight: 650; }
.avatar { font-size: 16px; font-weight: 700; }

/* Patient/administrator readable hierarchy. */
.welcome h1 { font-size: clamp(34px,3.2vw,48px); font-weight: 700; letter-spacing:-.043em; line-height:1.16; }
.welcome p { font-size: 18px; color: var(--muted); }
.hero { border-radius: 26px; }
.hero h2 { font-size: clamp(32px,3.5vw,48px); letter-spacing: -.04em; font-weight:700; line-height:1.1; }
.hero p { font-size: 17px; line-height:1.56; }
.section-head h2 { font-size: 24px; font-weight:700; letter-spacing:-.025em; }
.quick { min-height: 161px; padding: 22px 19px; gap: 8px; }
.quick strong { font-size: 18px; line-height:1.33; font-weight: 700; }
.quick span:last-child { color: #526f67; font-size: 15px; line-height:1.4; }
.quick-icon { margin-bottom: 7px; }
.panel { padding: 25px; }
.panel h3 { font-size: 21px; font-weight:700; }
.panel p { font-size: 16px; line-height:1.6; }
.health-note p { color:#42695f; font-size: 15px; }
.page-title { font-size: clamp(32px,3vw,45px); font-weight: 700; letter-spacing: -.04em; }
.page-intro { font-size: 17px; }
.list-head h3 { font-size: 20px; }
.list-head .small-muted, .conversation-head small { font-size: 14px; }
.conv-text strong { font-size: 16px; }
.conv-text small { font-size: 14px; color:#4d6962; }
.bubble { font-size: 16px; line-height:1.5; }
.bubble small { font-size: 13px; color:#516d63; }
.composer textarea { font-size: 16px; min-height: 53px; }
.calling-card h2 { font-size: clamp(27px,2.5vw,35px); }
.calling-card p, .queue p, .conversation p { font-size: 16px; }
.form-field { font-weight: 600; font-size:16px; }
.form-field input, .form-field textarea { font-size:16px; min-height:54px; padding:13px 15px; }
.metric strong { font-size: 37px; font-weight: 700; }
.metric span { font-size: 15px; }
.switcher, .switcher button { font-size: 14px; }
.empty-state { font-size: 16px; }
.footer-note { padding-top:30px; }

/* Public marketing page — previously missing all key layout rules. */
.public-header { background:#fcfdfb; border-bottom:1px solid #e6eee8; position:relative; z-index: 3; }
.public-header-inner { max-width: 1280px; margin:0 auto; padding:20px 35px; min-height:96px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.public-header .brand-logo { background:#e8f2ec; }
.public-header .brand-name { font-size:23px; }
.public-header .brand-slogan { font-size:10px; }
.public-nav { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap: 9px; }
.public-nav > button:not(.btn) { border:0; background:transparent; color:#284f48; padding:11px 15px; min-height:48px; font-size:16px; font-weight:600; border-radius:11px; }
.public-nav > button:not(.btn):hover { background:#eaf5ee; }
.public-nav .btn { min-height:48px; padding:11px 19px; }
.public-main { background: linear-gradient(165deg,#f7faf7 0%,#f2f7f4 40%,#fff 100%); }
.public-hero { max-width:1280px; margin:auto; padding:84px 35px 88px; min-height:640px; display:grid; grid-template-columns:minmax(0,1.07fr) minmax(380px,.93fr); gap:50px; align-items:center; }
.public-copy { min-width:0; }
.public-copy .eyebrow { color:#90713e; }
.public-copy h1 { font-family:var(--font-display); color:#123f3a; font-size: clamp(58px,5.6vw,86px); line-height:1.05; letter-spacing:-.037em; font-weight:500; margin:19px 0 23px; }
.public-copy h1 em { font-weight:400; font-style:italic; color:#16776a; }
.public-copy > p:not(.eyebrow) { color:#45625b; font-size:20px; line-height:1.68; max-width:615px; margin:0 0 28px; }
.public-copy .card-actions { gap:14px; }
.public-copy .btn { min-height:56px; font-size:16px; }
.public-copy .btn-translucent { background:#fff; border:1px solid #cdded4; color:#175d55; }
.public-copy .btn-translucent:hover { background:#f1f8f3; }
.hero-foot { color:#4b6c61; display:flex; align-items:center; gap:10px; font-size:15px; margin-top:27px; }
.hero-foot svg { color:#148576; flex:none; }
.public-graphic { position:relative; min-height:500px; border-radius:38px; overflow:hidden; isolation:isolate; display:grid; place-items:center; background:radial-gradient(circle at 77% 13%,#378e80 0%,#176b62 43%,#0b4d48 100%); box-shadow: 0 28px 62px rgba(13,77,66,.16); }
.public-graphic::before { content:""; position:absolute; width:70%; height:140%; left:-28%; top:-20%; border:1px solid rgba(255,255,255,.22); border-radius:50%; transform:rotate(-21deg); }
.public-graphic::after { content:""; position:absolute; width:400px; height:400px; right:-210px; bottom:-235px; border:90px solid rgba(215,183,123,.13); border-radius:50%; }
.orb { position:absolute; border-radius:50%; pointer-events:none; }
.orb-a { width:190px; height:190px; left:4%; top:9%; background:radial-gradient(circle,#77ba9e50,transparent 70%); }
.orb-b { width:250px; height:250px; bottom:-140px; left:-130px; border:34px solid rgba(255,255,255,.07); }
.graphic-card { width:min(78%,345px); min-height:325px; padding:36px 28px; border-radius:27px; background:linear-gradient(135deg,rgba(255,255,255,.97),rgba(249,251,245,.92)); border:1px solid rgba(255,255,255,.75); box-shadow:0 30px 60px rgba(0,43,37,.22); text-align:center; position:relative; z-index:1; display:flex; flex-direction:column; justify-content:center; align-items:center; }
.graphic-symbol { width:100px; height:100px; border-radius:28px; background:#eaf5ef; display:grid; place-items:center; margin-bottom:18px; }
.graphic-symbol img { width:77px; height:77px; }
.graphic-card p { color:#16443e; font-size:25px; letter-spacing:-.02em; font-weight:700; line-height:1.2; margin:3px 0 5px; }
.graphic-card > span { color:#60746d; font-family:var(--font-display); font-size:20px; font-style:italic; }
.graphic-action { margin-top:23px; display:flex; align-items:center; gap:9px; padding:10px 13px; border-radius:30px; background:#e9f3ec; color:#176b5e; font-size:13px; font-weight:700; }
.feature-section { max-width:1280px; margin:auto; padding:77px 35px 102px; }
.feature-section > .eyebrow { margin:0 0 15px; }
.feature-section h2 { font-family:var(--font-display); color:#153f38; font-weight:500; line-height:1.13; letter-spacing:-.025em; font-size:clamp(39px,3.8vw,56px); margin:0 0 35px; max-width:730px; }
.feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:19px; }
.feature { background:#fff; border:1px solid #e1e9e3; border-radius:24px; padding:35px 29px 34px; box-shadow:0 16px 35px rgba(17,60,51,.045); min-height:270px; }
.feature-icon { width:58px; height:58px; background:#e7f4ed; color:#12685d; border-radius:17px; display:grid; place-items:center; margin-bottom:25px; }
.feature:nth-child(2) .feature-icon { background:#f6ecda; color:#7b6135; }
.feature h3 { color:#183f39; font-size:22px; line-height:1.23; font-weight:700; margin:0 0 13px; }
.feature p { color:#4a6960; font-size:16px; line-height:1.65; margin:0; }
.feature-link { width:100%; border:1px solid #e1e9e3; color:inherit; font:inherit; text-align:left; cursor:pointer; transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
.feature-link:hover,.feature-link:focus-visible { transform:translateY(-2px); border-color:#72b9a7; box-shadow:0 18px 38px rgba(17,60,51,.1); outline:none; }
.feature-link:focus-visible { outline:3px solid #087c70; outline-offset:3px; }
.feature-link .feature-title { display:block; color:#183f39; font-size:22px; line-height:1.23; font-weight:700; margin:0 0 13px; }
.feature-link .feature-description { display:block; color:#4a6960; font-size:16px; line-height:1.65; }
.feature-link-label { display:flex; align-items:center; gap:7px; color:#006d65; font-weight:750; font-size:14px; margin-top:17px; }
.public-cta { max-width:1210px; margin:0 auto 64px; padding:46px 52px; background:#123f3a; color:#fff; border-radius:29px; display:flex; align-items:center; justify-content:space-between; gap:40px; }
.public-cta .eyebrow { margin:0 0 9px; }
.public-cta h2 { font-family:var(--font-display); font-size:clamp(37px,3.4vw,50px); font-weight:500; line-height:1.14; letter-spacing:-.02em; margin:0 0 10px; color:#fff; }
.public-cta p:not(.eyebrow) { color:#e4efe9; font-size:17px; margin:0; }
.public-cta .btn { flex:none; }
.public-main > .safety { max-width:1210px; margin:0 auto; }
.public-footer { padding:29px 20px 34px; text-align:center; background:#fff; color:#506c63; font-size:14px; line-height:1.5; }

/* Public registration and help pages need their own composition. */
.auth-wrap { max-width:1190px; margin:0 auto; padding:74px 35px 95px; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(375px,.95fr); align-items:center; gap:74px; }
.auth-intro h1, .help-content h1 { color:#153f38; font:500 clamp(47px,4.8vw,69px)/1.11 var(--font-display); letter-spacing:-.025em; margin:15px 0 25px; }
.auth-intro > p:not(.eyebrow), .help-content > p:not(.eyebrow) { color:#4d6b62; font-size:19px; line-height:1.65; max-width:520px; }
.intro-proof { margin-top:35px; display:flex; align-items:center; gap:12px; color:#17675e; font-weight:650; font-size:16px; }
.auth-card { border:1px solid #e1e9e3; border-radius:28px; padding:40px; background:#fff; box-shadow:0 24px 60px rgba(9,58,48,.08); }
.auth-card-mark { width:76px; height:76px; display:grid; place-items:center; background:#e9f4ed; border-radius:20px; margin-bottom:20px; }
.auth-card h2 { margin:0 0 7px; font-size:30px; line-height:1.18; letter-spacing:-.03em; color:#153d38; }
.auth-card > p { color:#516d64; font-size:16px; }
.auth-card form { margin-top:24px; }
.auth-swap { margin:20px 0 12px; text-align:center; }
.auth-swap button { background:transparent; border:0; padding:7px 3px; color:#11675c; font-weight:700; font-size:16px; }
.help-wrap { padding:82px 25px; max-width:890px; margin:auto; }
.help-content .panel { margin-top:29px; }
.help-content .panel h2 { font-size:24px; }
body > .safety { max-width:1100px; margin:10px auto 24px; }

@media (max-width: 1100px) {
 .shell { grid-template-columns:236px minmax(0,1fr); }
 .sidebar { padding:25px 17px; }
 .sidebar .brand-name { font-size:16px; }
 .sidebar .brand-slogan { font-size:9px; letter-spacing:.045em; }
 .sidebar .brand-logo { width:42px;height:42px; }
 .sidebar .brand-logo img { width:38px;height:38px; }
 .main { padding:0 25px 60px; }
 .public-hero { gap:28px; padding-top:65px; grid-template-columns:minmax(0,1fr) minmax(345px,.85fr); }
 .public-copy h1 { font-size:62px; }
 .public-graphic { min-height:460px; }
 .public-header-inner { padding:18px 25px; }
 .public-cta { margin-inline:25px; }
 .public-main > .safety { margin-inline:25px; }
}
@media (max-width: 760px) {
 .shell { display:block; }
 .sidebar { display:none; }
 .main { padding:0 18px 112px; }
 .topbar { height:81px; }
 .topbar-loc { font-size:14px; }
 .welcome { margin:12px 0 24px; }
 .welcome h1 { font-size:35px; line-height:1.13; letter-spacing:-.04em; }
 .welcome p { font-size:17px; }
 .hero h2 { font-size:35px; }
 .hero p { font-size:16px; }
 .hero-copy { padding:31px 25px; }
 .section-head h2 { font-size:22px; }
 .quick { min-height:159px; padding:19px 16px; }
 .quick strong { font-size:17px; }
 .quick span:last-child { font-size:14px; }
 .bottom-nav { padding:8px 8px calc(11px + env(safe-area-inset-bottom)); }
 .bottom-nav button { min-height:62px; font-size:13px; color:#526c64; font-weight:650; gap:5px; }
 .bottom-nav button svg { width:23px; height:23px; }
 .page-title { font-size:32px; }
 .chat-list { max-height:240px; }
 .conversation { min-height:510px; }
 .conversation-row { min-height:65px; }
 .metric span { font-size:14px; }
 .metric strong { font-size:30px; }
 .switcher, .switcher button { font-size:13px; }
 .bubble small { font-size:13px; }
 .public-header-inner { padding:14px 18px; min-height:78px; }
 .public-header .brand-name { font-size:20px; }
 .public-nav { gap:6px; }
 .public-nav > button:not(.btn), .public-nav .btn-primary { display:none; }
 .public-nav .btn-outline { display:inline-flex; min-height:44px; font-size:14px; padding:10px 15px; }
 .public-hero { display:flex; flex-direction:column; align-items:stretch; gap:35px; min-height:0; padding:58px 20px 63px; }
 .public-copy h1 { font-size:clamp(47px,10vw,66px); line-height:1.06; margin:14px 0 19px; }
 .public-copy > p:not(.eyebrow) { font-size:18px; line-height:1.6; }
 .public-graphic { min-height:355px; border-radius:27px; }
 .graphic-card { min-height:260px; width:min(78%,315px); padding:20px 21px; }
 .graphic-symbol { width:82px; height:82px; margin-bottom:10px; border-radius:21px; }
 .graphic-symbol img { width:67px; height:67px; }
 .graphic-card p { font-size:23px; }
 .feature-section { padding:65px 20px 72px; }
 .feature-section h2 { font-size:clamp(37px,8vw,50px); }
 .feature-grid { grid-template-columns:1fr; gap:14px; }
 .feature { min-height:0; padding:28px; }
 .feature-icon { margin-bottom:17px; }
 .feature p { font-size:16px; }
 .public-cta { flex-direction:column; align-items:flex-start; margin:0 20px 30px; padding:35px 27px; gap:24px; }
 .public-cta h2 { font-size:42px; }
 .public-main > .safety { margin-inline:20px; }
 .auth-wrap { display:flex; flex-direction:column; gap:31px; padding:47px 20px 65px; align-items:stretch; }
 .auth-intro h1 { font-size:48px; }
 .auth-intro > p:not(.eyebrow) { font-size:17px; }
 .intro-proof { margin-top:20px; }
 .auth-card { padding:28px 24px; }
 .help-wrap { padding:52px 20px; }
 .help-content h1 { font-size:46px; }
 body > .safety { margin-inline:20px; }
}
@media (max-width: 385px) {
 .main { padding-inline:14px; }
 .public-header-inner { padding-inline:12px; }
 .public-header .brand-name { font-size:17px; }
 .public-header .brand-logo { width:42px;height:42px; }
 .public-header .brand-logo img { width:38px;height:38px; }
 .public-header .brand-slogan { font-size:8px; letter-spacing:.06em; }
 .public-nav .btn-outline { font-size:14px; padding-inline:10px; }
 .public-copy h1 { font-size:46px; }
 .public-copy .card-actions .btn { width:100%; justify-content:center; }
 .graphic-card { width:84%; }
 .quick-grid { gap:10px; }
 .quick { padding:15px 13px; }
 .quick strong { font-size:16px; }
 .quick span:last-child { font-size:14px; }
 .metric-grid { gap:6px; }
 .metric { padding:13px 9px; }
 .metric span { font-size:13px; }
 .auth-card { padding:26px 20px; }
}
/* Final readability pass: gold-on-light eyebrow labels are text, not decoration. */
.eyebrow-gold, .public-copy .eyebrow { color:#80602c; }
.public-cta .eyebrow { color:#dec58e; }

/* Private account thumbnails and accessible account photo editor. */
.avatar{position:relative;overflow:hidden;flex-shrink:0}
.avatar-initial{display:grid;place-items:center;width:100%;height:100%}
.profile-avatar-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.profile-photo-settings{margin:24px 0;padding:24px 0;border-block:1px solid #dce7e3}
.profile-photo-settings h3{font-size:1.2rem;margin:0 0 10px;color:#173f3a}
.profile-photo-settings>p{line-height:1.6;color:#416259}
.profile-photo-editor{display:flex;align-items:center;gap:20px;margin:20px 0;flex-wrap:wrap}
.profile-photo-preview{width:96px;height:96px;font-size:32px;border:2px solid #d0e6dd}
.profile-photo-editor .hint{margin:10px 0 0;line-height:1.6}
.profile-photo-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
.message-sender{display:flex;align-items:center;gap:7px}
.message-profile-avatar{width:24px!important;height:24px!important;font-size:11px!important;display:inline-flex!important}
@media(max-width:420px){.profile-photo-editor{gap:14px}.profile-photo-preview{width:80px;height:80px}.profile-photo-actions>.btn{flex:1}.profile-photo-settings{padding:20px 0}}
/* Plain, live password guidance for accessible account creation and reset. */
.password-rules{list-style:none;margin:4px 0 16px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px;color:#697975;font-size:13px}
.password-rules li{display:flex;align-items:center;gap:8px;line-height:1.35}
.password-rules li span{display:inline-grid;place-items:center;flex:none;width:19px;height:19px;border:1px solid #9aa9a2;border-radius:50%;font-size:11px;color:#687973}
.password-rules li.is-met{color:#176247;font-weight:700}
.password-rules li.is-met span{background:#176247;border-color:#176247;color:#fff}
@media(max-width:420px){.password-rules{grid-template-columns:1fr}}
