
/* Layout: an actuarial report made friendly — editorial serif headlines over a quiet sans, figures in mono; the middle of the page is the working product (rating tool left, Advisor docked right). Committed white theme. */
:root{
  --bg:#FFFFFF; --soft:#F6F8FB; --ink:#0F1E3A; --ink-2:#3A4862; --ink-3:#56627A;
  --line:#DDE3EC; --field:#B9C3D4; --accent:#BA953D; --accent-dark:#8C702E; --accent-soft:#F8F4EC;
  --buy:#14653A; --buy-bg:#DDF5E6; --con:#8A4A0C; --con-bg:#FDF0D5; --skip:#9B1C1C; --skip-bg:#FCE4E4;
  --shadow:0 1px 2px rgba(15,30,58,.06),0 8px 24px rgba(15,30,58,.07);
  --display:'Newsreader',Georgia,'Times New Roman',serif;
  --body:'Public Sans','Segoe UI',system-ui,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
  color-scheme:light;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.55;margin:0}
a{color:var(--accent)} a:hover{color:var(--accent-dark)}
.wrap{max-width:1200px;margin:0 auto;padding-inline:20px}
.band{background:var(--soft);border-block:1px solid #E4E8F0}
section{padding-block:32px}
h1,h2,h3{text-wrap:balance}
h1{font-family:var(--display);font-weight:500;font-size:clamp(40px,6.4vw,68px);line-height:1.02;letter-spacing:-.015em;margin:0 0 22px}
h1 em{font-style:italic;color:var(--accent)}
h2{font-family:var(--display);font-weight:500;font-size:clamp(30px,4.2vw,46px);line-height:1.08;letter-spacing:-.01em;margin:0 0 14px}
h3{margin:0;font-size:18px;font-weight:600}
.eyebrow{margin:0 0 14px;font-size:14px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.lede{margin:0;color:var(--ink-2);max-width:62ch;font-size:19px}
.intro{margin:0 0 28px;color:var(--ink-2)}
.muted{color:var(--ink-3);font-size:14px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 22px;border-radius:8px;font:inherit;font-weight:600;text-decoration:none;cursor:pointer;border:1.5px solid transparent}
.btn-primary{background:var(--accent);color:#FFFFFF} .btn-primary:hover{background:var(--accent-dark);color:#FFFFFF}
.btn-dark{background:var(--ink);color:#FFFFFF} .btn-dark:hover{background:#0B1426;color:#FFFFFF}
.btn-ghost{background:var(--bg);color:var(--ink);border-color:var(--ink)}
.btn[disabled]{opacity:.55;cursor:default}
:focus-visible{outline:3px solid #93B4FF;outline-offset:2px}

/* header */
.site-head{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:rgba(255,255,255,.96);border-bottom:1px solid #EEF1F6}
.site-head .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding-block:14px}
.logo{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink)}
.logo-text{display:flex;flex-direction:column;line-height:1.1}
.logo-text span{font-family:var(--display);font-weight:600;font-size:20px}
.logo-text small{font-size:12px;color:var(--ink-3);letter-spacing:.04em}
.nav{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:15px;font-weight:500}
.nav a{color:var(--ink);text-decoration:none} .nav a:hover{color:var(--accent)}
.site-head .btn{min-height:44px;padding:10px 18px;font-size:15px}

/* hero */
.hero-sec{padding-block:28px 32px}
.hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:56px;align-items:center}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.trust{margin-top:28px;font-size:14px;color:var(--ink-3);display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.trust b{color:var(--ink-2);font-weight:600}
.stage{position:relative;padding:28px;border-radius:24px;background-color:var(--soft);
  background-image:radial-gradient(#D3DBE8 1px,transparent 1px);background-size:18px 18px}
.report{background:var(--bg);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.report-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}
.report-head b{font-family:var(--display);font-size:20px;font-weight:600}
.report-head span{font-size:13px;color:var(--ink-3)}
.row{display:grid;grid-template-columns:52px 1fr auto;gap:14px;align-items:center;padding:14px 20px}
.row+.row{border-top:1px solid #EEF1F6}
.row .t{font-weight:600;font-size:15px}
.row .s{font-size:13px;color:var(--ink-3)}
.report-foot{white-space:normal;padding:12px 20px;background:var(--soft);font-size:12px;color:var(--ink-3)}
.ring{display:block}
.ring text{font-family:var(--mono);font-size:15px;font-weight:500;fill:var(--ink)}

/* stats */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:28px;padding-block:24px}
.stat{border-left:2px solid var(--accent);padding-left:16px}
.stat b{display:block;font-family:var(--display);font-weight:500;font-size:40px;line-height:1.1;font-variant-numeric:tabular-nums}
.stat span{color:var(--ink-2);font-size:15px}

/* how we rate */
.factors4{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:22px}
.factor{border-top:3px solid var(--ink);padding-top:14px}
.factor p{margin:0}
.factor .pts{font-family:var(--mono);font-size:14px;color:var(--ink-3)}
.factor h3{margin:4px 0 6px;font-size:19px}
.factor .d{color:var(--ink-2);font-size:15px}
.legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;align-items:center;font-size:15px}
.pill{font-size:13px;font-weight:700;padding:4px 12px;border-radius:999px;white-space:nowrap}
.pill.Buy{background:var(--buy-bg);color:var(--buy)}
.pill.Consider{background:var(--con-bg);color:var(--con)}
.pill.Skip{background:var(--skip-bg);color:var(--skip)}

/* advisor */
.advisor{display:flex;flex-wrap:wrap;gap:28px;align-items:flex-start}
.tool{flex:999 1 600px;min-width:0;display:flex;flex-direction:column;gap:20px}
.chat{flex:1 1 340px;min-width:0;position:sticky;top:96px;border:1px solid var(--line);border-radius:16px;display:flex;flex-direction:column;max-height:calc(100vh - 120px);min-height:520px;background:var(--bg)}
.panel{border:1px solid var(--line);border-radius:14px;padding:20px;background:var(--bg)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{background:var(--bg);border:1.5px solid var(--field);color:var(--ink);font:inherit;font-weight:500;font-size:15px;border-radius:999px;padding:9px 16px;min-height:44px;cursor:pointer}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#FFFFFF;font-weight:600}
form.profile{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:14px 16px;align-items:end;margin-top:16px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
label{font-size:13px;font-weight:600;color:var(--ink-2)}
input,select,textarea{font:inherit;font-size:16px;color:var(--ink);background:var(--bg);border:1px solid var(--field);border-radius:8px;padding:10px 12px;width:100%}
.tabs{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--line);padding-bottom:12px}
.tab{background:none;border:0;border-bottom:3px solid transparent;font:inherit;font-weight:600;color:var(--ink-3);padding:8px 4px;margin-right:16px;min-height:44px;cursor:pointer}
.tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.basis{margin:0;font-size:15px;color:var(--ink-2)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px}
.card{border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:12px;min-width:0;background:var(--bg);transition:box-shadow .2s, transform .2s}
.card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}
.card.top{border:2px solid var(--accent);box-shadow:var(--shadow)}
.card.top::before{content:'Top rated';align-self:flex-start;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);padding:3px 8px;border-radius:6px}
.scorebox{display:flex;align-items:center;gap:12px}
.scorebox .lbl{font-size:12px;color:var(--ink-3);line-height:1.3}
@media (prefers-reduced-motion:reduce){.card{transition:none}.card:hover{transform:none}}
.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.sub{font-size:13px;color:var(--ink-3);margin-top:2px}
.nums{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px}
.score{font-family:var(--display);font-size:34px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.score small{font-size:15px;color:var(--ink-3);font-weight:500}
.cost{font-family:var(--mono);font-size:16px;text-align:right;font-variant-numeric:tabular-nums}
.cost small{display:block;font-family:var(--body);font-size:12px;color:var(--ink-3)}
.fbars{display:grid;gap:6px;font-size:13px}
.f{display:grid;grid-template-columns:92px 1fr 38px;align-items:center;gap:8px}
.f span:last-child{text-align:right;color:var(--ink-2);font-variant-numeric:tabular-nums}
.track{height:7px;border-radius:4px;background:#E4E8F0;overflow:hidden}
.track i{display:block;height:100%;background:var(--accent)}
.pm{font-size:14px;display:grid;gap:2px}
.pm .p{color:var(--buy)} .pm .m{color:var(--skip)}
.why{font-size:12px;color:var(--ink-3)}
.card a{font-size:13px}
.summary{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:14px;color:var(--ink-2)}
.summary b{color:var(--ink)}

/* chat */
.chat-head{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}
.chat-head .dot{width:10px;height:10px;border-radius:50%;background:#16A34A;flex:none}
.chat-head h3{font-family:var(--display);font-size:18px}
.chat-head p{margin:0;font-size:13px;color:var(--ink-3)}
.log{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;min-height:200px}
.msg{max-width:92%;padding:10px 13px;border-radius:12px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px}
.msg.user{align-self:flex-end;background:var(--ink);color:#FFFFFF}
.msg.bot{align-self:flex-start;background:var(--soft);border:1px solid var(--line)}
.msg.note{align-self:center;color:var(--ink-3);font-size:13px;padding:2px;text-align:center}
.suggest{padding:0 16px 10px;display:flex;flex-wrap:wrap;gap:6px}
.suggest .chip{font-size:13px;padding:6px 12px;min-height:36px}
.composer{border-top:1px solid var(--line);padding:12px;display:flex;gap:8px;align-items:flex-end}
.composer textarea{flex:1;min-height:46px;max-height:140px;resize:vertical;font-size:15px}
.composer .btn{min-height:46px;padding:10px 16px}

/* index + tables */
.table-box{overflow-x:auto;background:var(--bg);border:1px solid var(--line);border-radius:14px}
table{width:100%;min-width:640px;border-collapse:collapse;font-variant-numeric:tabular-nums}
th,td{padding:13px 18px;text-align:left}
thead tr{border-bottom:1px solid var(--line)}
tbody tr+tr{border-top:1px solid #EEF1F6}
td.na{color:var(--ink-3)}
td.v{min-width:150px}
.cell{display:flex;flex-direction:column;gap:5px;font-family:var(--mono);font-size:15px}
.cell .bar{height:6px;border-radius:3px;background:#C9D3E3}
td.best .cell{color:var(--buy);font-weight:600}
td.best .bar{background:#2E9A5C}
th{font-size:14px;font-weight:600;color:var(--ink-2)}

/* products / who / contact */
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:22px}
.prod{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:26px}
.prod .eyebrow{font-size:13px;margin-bottom:8px}
.prod h3{font-family:var(--display);font-size:23px;margin-bottom:10px}
.prod p{margin:0;color:var(--ink-2)}
.contact{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:44px;align-items:start}
.lead-form{display:flex;flex-direction:column;gap:12px;border:1px solid var(--line);border-radius:14px;padding:26px;background:var(--bg)}
.lead-form .ok{color:var(--buy);font-weight:600;margin:0}
.lead-form .err{color:var(--skip);margin:0}

/* footer */
footer{border-top:1px solid #E4E8F0;padding-block:24px;font-size:14px;color:var(--ink-3)}
footer .cols{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px}
footer ul{margin:6px 0 0;padding-left:18px}

/* floating launcher */
.launcher{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:30;box-shadow:0 6px 20px rgba(20,33,61,.25);border-radius:999px}

/* ===== multi-page components ===== */
.nav a[aria-current="page"]{color:var(--accent);font-weight:600}
.page-hero{padding-block:28px 20px;border-bottom:1px solid #EEF1F6}
.page-hero .lede{margin-top:4px}
.crumbs{font-size:14px;color:var(--ink-3);margin:0 0 16px}
.crumbs a{color:var(--ink-3)}
.prose{max-width:72ch}
.prose p,.prose li{color:var(--ink-2)}
.prose h2{margin-top:36px}
.prose h3{margin:28px 0 8px;font-size:20px}
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:40px;align-items:start}
.solution{padding-block:32px;border-bottom:1px solid #EEF1F6}
.solution:last-child{border-bottom:0}
.solution .who{font-family:var(--mono);font-size:13px;color:var(--accent);margin:0 0 10px;letter-spacing:.02em}
.outcomes{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:12px}
.outcomes li{display:grid;grid-template-columns:22px 1fr;gap:10px;color:var(--ink-2)}
.outcomes li::before{content:'';width:18px;height:18px;margin-top:3px;border-radius:50%;background:var(--accent-soft);box-shadow:inset 0 0 0 5px var(--accent)}
.box{border:1px solid var(--line);border-radius:16px;padding:24px;background:var(--bg);box-shadow:var(--shadow)}
.box h3{font-family:var(--display);font-size:22px;font-weight:600;margin-bottom:10px}
.box dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:15px}
.box dt{color:var(--ink-3)} .box dd{margin:0;font-weight:500}
.steps{counter-reset:s;list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:24px}
.steps li{counter-increment:s;border-top:1px solid var(--line);padding-top:16px;color:var(--ink-2)}
.steps li::before{content:counter(s,decimal-leading-zero);display:block;font-family:var(--mono);color:var(--accent);font-size:14px;margin-bottom:6px}
.steps b{display:block;color:var(--ink);font-size:18px;margin-bottom:4px}
.tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:22px;align-items:stretch}
.tier{border:1px solid var(--line);border-radius:16px;padding:28px;display:flex;flex-direction:column;gap:14px;background:var(--bg)}
.tier.featured{border:2px solid var(--accent);box-shadow:var(--shadow)}
.tier .for{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:0}
.tier h3{font-family:var(--display);font-size:26px;font-weight:600}
.tier .price{font-family:var(--display);font-size:40px;line-height:1;margin:0}
.tier .price small{font-family:var(--body);font-size:15px;color:var(--ink-3)}
.tier ul{margin:0;padding-left:20px;color:var(--ink-2);display:grid;gap:6px;flex:1;align-content:start}
.faq{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:10px 16px;align-items:start}
.faq details{border:1px solid var(--line);border-radius:12px;padding:16px 20px;background:var(--bg)}
.faq summary{cursor:pointer;font-weight:600;font-size:17px}
.faq details p{margin:10px 0 0;color:var(--ink-2)}
.cta-band{background:var(--ink);color:#FFFFFF;border-radius:20px;padding:44px;display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between}
.cta-band h2{color:#FFFFFF;margin:0 0 6px}
.cta-band p{margin:0;color:#C9D3E6;max-width:56ch}
.cta-band .btn-primary{background:#FFFFFF;color:var(--ink)} .cta-band .btn-primary:hover{background:#E6ECF7;color:var(--ink)}
.principles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:22px}
.principles div{border-top:3px solid var(--ink);padding-top:14px}
.principles b{display:block;font-size:18px;margin-bottom:6px}
.principles p{margin:0;color:var(--ink-2);font-size:15px}
.contact-list{display:grid;gap:14px;margin-top:24px}
.contact-list div{display:grid;gap:2px}
.contact-list span{font-size:13px;color:var(--ink-3)}
.foot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:28px}
.foot-grid h4{margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2)}
.foot-grid ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.foot-grid a{color:var(--ink-2);text-decoration:none} .foot-grid a:hover{color:var(--accent)}
.foot-base{margin-top:32px;padding-top:20px;border-top:1px solid #EEF1F6;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px}
.menu-toggle{display:none}
#dis-body td.best{background:var(--buy-bg);color:var(--buy);font-weight:700}
#dis-body td{font-family:var(--mono);font-size:15px}
@media (max-width:720px){
  .site-head{position:static}
  .site-head .actions-row{width:100%;gap:8px}
  .site-head .actions-row .btn{flex:1;min-height:40px;padding:8px 12px;font-size:14px}
  .nav{gap:4px 16px;font-size:14px;width:100%}
  .chat{position:static;max-height:none;min-height:460px}
  section{padding-block:24px}
  .hero-sec{padding-block:20px 24px}
  .stage{padding:14px}
  .cta-band{padding:28px}
}
.pill.Pending{background:#EEF1F6;color:var(--ink-2)}
table.rep td{vertical-align:top;font-size:15px}
table.rep{min-width:900px}

/* ===== portal: sign-up, customer app, CRM ===== */
.helper{display:flex;flex-direction:column;gap:6px}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px 16px}
.form-msg{margin:0;font-size:15px}
.form-msg.err{color:var(--skip)} .form-msg.ok{color:var(--buy)}
.auth{max-width:520px;margin:48px auto;padding-inline:20px}
.auth .box{display:flex;flex-direction:column;gap:12px}
.auth h1{font-size:clamp(30px,4vw,40px);margin-bottom:6px}
.plan-pick{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:10px}
.plan-pick label{display:flex;flex-direction:column;gap:2px;border:1.5px solid var(--line);border-radius:12px;padding:14px;cursor:pointer;font-size:15px;color:var(--ink)}
.plan-pick label{position:relative}
.plan-pick input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;margin:0}
.plan-pick label:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset;background:var(--accent-soft)}
.plan-pick label:has(input:focus-visible){outline:3px solid #93B4FF;outline-offset:2px}
.plan-pick b{font-size:16px} .plan-pick span{color:var(--ink-3);font-size:13px}
.check-row{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--ink-2);font-weight:400}
.check-row input{width:auto;margin-top:4px}
.portal-head{border-bottom:1px solid var(--line);background:var(--bg)}
.portal-head .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding-block:12px}
.portal-nav{display:flex;flex-wrap:wrap;gap:4px}
.portal-nav a{padding:8px 12px;border-radius:8px;text-decoration:none;color:var(--ink-2);font-weight:600;font-size:15px}
.portal-nav a[aria-current="page"],.portal-nav a:hover{background:var(--soft);color:var(--ink)}
.portal-main{padding-block:20px 32px;display:flex;flex-direction:column;gap:24px}
.banner{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:14px 18px;border-radius:12px;background:var(--accent-soft);border:1px solid #C9D7FB}
.banner.warn{background:var(--con-bg);border-color:#F2D9A6}
.banner.bad{background:var(--skip-bg);border-color:#F3C2C2}
.banner.good{background:var(--buy-bg);border-color:#B9E5C9}
.banner p{margin:0}
.steps-done{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}
.steps-done li{border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;gap:10px;align-items:flex-start;font-size:15px}
.steps-done .dot{flex:none;width:22px;height:22px;border-radius:50%;border:2px solid var(--field);display:grid;place-items:center;font-size:12px;font-weight:700;margin-top:1px}
.steps-done li.done .dot{background:var(--buy);border-color:var(--buy);color:#FFFFFF}
.steps-done li.done{color:var(--ink-3)}
.data{width:100%;border-collapse:collapse;min-width:640px;font-size:15px}
.data th{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:600;background:var(--soft)}
.data td,.data th{padding:11px 14px;text-align:left;border-bottom:1px solid #EEF1F6;vertical-align:middle}
.data tr.clickable{cursor:pointer} .data tr.clickable:hover td{background:#F8FAFD}
.data tr.sel td{background:var(--accent-soft)}
.btn-sm{min-height:36px;padding:6px 12px;font-size:14px}
.btn-link{background:none;border:0;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;padding:6px 4px;min-height:36px}
.btn-danger{color:var(--skip)}
.stage{display:inline-block;font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px;white-space:nowrap;background:#EEF1F6;color:var(--ink-2)}
.stage.New{background:var(--accent-soft);color:var(--accent-dark)}
.stage.Contacted,.stage.Demo{background:#EDE9FE;color:#5B21B6}
.stage.Trial{background:var(--con-bg);color:var(--con)}
.stage.Upgrade{background:#FFE8CC;color:#9A3412}
.stage.Paid{background:var(--buy-bg);color:var(--buy)}
.stage.Expired,.stage.Cancelled,.stage.Lost{background:var(--skip-bg);color:var(--skip)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:12px}
@media (min-width:1100px){.kpis-5{grid-template-columns:repeat(5,minmax(0,1fr))}}
.kpi{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--bg)}
.kpi span{display:block;font-size:13px;color:var(--ink-3)}
.kpi b{display:block;font-family:var(--display);font-weight:500;font-size:32px;line-height:1.15;font-variant-numeric:tabular-nums}
.kpi.hi{background:linear-gradient(135deg,var(--buy-bg),#F3FBF6);border-color:#9FD9B5;box-shadow:0 2px 10px rgba(20,101,58,.10)}
.kpi.hi span{color:var(--buy);font-weight:600}
.kpi.hi b{color:var(--buy);font-weight:700;font-size:38px;letter-spacing:-.5px}
.kpi.hi small{display:block;margin-top:2px;font-size:13px;color:var(--buy)}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.filters{display:flex;flex-wrap:wrap;gap:6px}
.filters .chip{font-size:14px;min-height:38px;padding:6px 12px}
.search{max-width:260px}
.crm-layout.open table th:nth-child(2),.crm-layout.open table td:nth-child(2),.crm-layout.open table th:nth-child(3),.crm-layout.open table td:nth-child(3),.crm-layout.open table th:nth-child(4),.crm-layout.open table td:nth-child(4),.crm-layout.open table th:nth-child(5),.crm-layout.open table td:nth-child(5),.crm-layout.open table th:nth-child(9),.crm-layout.open table td:nth-child(9){display:none}
.crm-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}
@media (min-width:1100px){.crm-layout.open{grid-template-columns:minmax(0,1fr) 420px}}
.drawer{border:1px solid var(--line);border-radius:14px;padding:20px;background:var(--bg);display:flex;flex-direction:column;gap:14px;position:sticky;top:16px}
.drawer h3{font-family:var(--display);font-size:24px;font-weight:600}
.drawer dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:14px}
.drawer dt{color:var(--ink-3)} .drawer dd{margin:0;overflow-wrap:anywhere}
.drawer .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.actions-row{display:flex;flex-wrap:wrap;gap:8px}
.timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;max-height:320px;overflow-y:auto}
.timeline li{border-left:2px solid var(--line);padding:2px 0 2px 12px;font-size:14px}
.timeline small{display:block;color:var(--ink-3);font-size:12px}
.next{background:var(--soft);border-radius:10px;padding:10px 12px;font-size:14px}
.next b{color:var(--ink)}
.modal-bg{position:fixed;inset:0;background:rgba(15,30,58,.35);display:grid;place-items:center;padding:16px;z-index:90}
.modal{background:var(--bg);border-radius:16px;padding:24px;width:min(560px,100%);max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow)}
.modal h3{font-family:var(--display);font-size:24px;font-weight:600}
.report{border:1px solid var(--line);border-radius:16px;padding:28px;background:var(--bg)}
.report-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;border-bottom:3px solid var(--brand,#BA953D);padding-bottom:16px;margin-bottom:20px}
.report-top h2{margin:0;font-size:30px}
.report-top .firm{font-weight:700;color:var(--brand,#BA953D);font-size:18px}
.report h3.prodhead{font-family:var(--display);font-weight:600;font-size:22px;margin:22px 0 10px}
.code{font-family:var(--mono);font-size:13px;background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:12px;white-space:pre-wrap;overflow-wrap:anywhere}
.empty{border:1.5px dashed var(--line);border-radius:14px;padding:28px;text-align:center;color:var(--ink-2)}
@media print{
  .portal-head,.no-print,.banner,.launcher{display:none!important}
  body{font-size:12pt}
  .report{border:0;padding:0}
  .card{break-inside:avoid;box-shadow:none!important}
  .card:hover{transform:none}
}
.data td:nth-child(7){min-width:190px}
.data td .stage{white-space:nowrap}

/* ===== catalog-driven tool, snapshots and portals (2026-10) ===== */
.memberships{gap:6px}
.mem{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--field);border-radius:999px;padding:6px 12px;font-size:14px;cursor:pointer;background:var(--bg)}
.mem:has(input:checked){background:color-mix(in srgb,var(--accent) 12%,var(--bg));color:var(--ink);border-color:var(--accent);font-weight:600}
.mem{max-width:100%;text-align:left}
.mem:has(span:not(:empty)){border-radius:12px}
.mem span{line-height:1.3;min-width:0}
.mem input{margin:0;accent-color:var(--accent);width:auto;flex:none}
.card.locked{opacity:.75;background:var(--soft)}
.pill.Locked{background:#E4E8F0;color:var(--ink-3)}
.card-links{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:13px}
.verified{font-size:12px;color:var(--ink-3)}
.verified.stale{color:var(--con)}
.quote-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between}
.quote-row p{margin:0;max-width:60ch}
.findings{margin:8px 0 0;padding-left:22px;display:grid;gap:6px;color:var(--ink-2)}
.findings.big{gap:10px;font-size:16px}
.facts{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:14px}
.facts dt{color:var(--ink-3)} .facts dd{margin:0}
.stage.Requested,.stage.Open{background:var(--con-bg);color:var(--con)}
.stage.Customer,.stage.Paid,.stage.Won,.stage.Accepted{background:var(--buy-bg);color:var(--buy)}
.stage.Overdue,.stage.Suspended,.stage.Lost,.stage.Void{background:var(--skip-bg);color:var(--skip)}
.stage.Invoiced,.stage.Snapshot,.stage.Review{background:var(--accent-soft);color:var(--accent)}
.rep-page{background:var(--soft)}
.rep{background:var(--bg);margin-block:24px;padding:36px;border:1px solid var(--line);border-radius:16px;display:grid;grid-template-columns:minmax(0,1fr);gap:26px}
@media (max-width:560px){.rep{padding:20px 16px}}
.rep-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px 28px;border-bottom:1px solid var(--line);padding-bottom:18px}
.rep-head h1{font-size:clamp(28px,4vw,40px);margin:0 0 6px}
.rep-meta{font-size:13px;color:var(--ink-3);text-align:right;display:grid;gap:3px;justify-self:end;max-width:300px;padding:2px 0 2px 16px;border-left:2px solid var(--accent-soft)}
@media (max-width:640px){.rep-head{grid-template-columns:minmax(0,1fr)}.rep-meta{justify-self:start;text-align:left;max-width:none}}
.rep-meta .stale{color:var(--con);font-weight:600}
.rep section h2{font-size:22px;margin:0 0 8px}
.rep .asks{background:var(--soft);border-radius:12px;padding:20px}
.rep .fine{font-size:12px;overflow-wrap:anywhere}
.best-row td{background:var(--buy-bg)}
@media print{.no-print{display:none!important}.rep-page{background:#fff}.rep{border:0;margin:0;padding:0}.site-head,footer{display:none}}

/* sort and filter bar */
.sortbar{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0 4px}
.sortfield{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:var(--ink-2,#3b4660);min-width:200px;flex:1 1 200px;max-width:320px}
.sortfield select{font:inherit;font-weight:500;padding:9px 10px;border:1px solid var(--line,#d6dbe6);border-radius:10px;background:var(--bg,#fff);color:inherit}
.peerctl{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0 12px}
@media print{.sortbar,.peerctl select{display:none}}

.print-only{display:none}
@media print{.print-only{display:block}}

.mem-search{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.mem-search input{font:inherit;padding:10px 12px;border:1px solid var(--line,#d6dbe6);border-radius:10px;max-width:520px;background:var(--bg,#fff);color:inherit}
.mem-results{display:flex;flex-wrap:wrap;gap:6px}
.more-note{grid-column:1/-1;margin:4px 0}
.table-box{overflow-x:auto}

/* Price Index facts and sources */
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:18px}
.fact{border:1px solid var(--line);border-radius:14px;padding:22px 22px 18px;background:#fff;box-shadow:var(--shadow)}
.fact-big{font-family:var(--display);font-size:46px;line-height:1;color:var(--accent)}
.fact-label{margin-top:6px;font-weight:600;font-size:15px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}
.fact-note{margin:10px 0 0;color:var(--ink-3);font-size:15px}
.src-top{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-end;justify-content:space-between;margin-bottom:22px}
.src-top .intro{margin:0;color:var(--ink-2)}
.src-tools{display:flex;flex-wrap:wrap;gap:12px}
.src-field{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}
.src-field input,.src-field select{font:inherit;font-size:15px;text-transform:none;letter-spacing:0;color:var(--ink);border:1px solid var(--field);border-radius:10px;padding:9px 12px;background:#fff;min-width:180px}
.src-field input{min-width:260px}
.src-field select{max-width:280px}
.src-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.src-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 18px 14px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow)}
.src-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.src-head h3{font-size:18px;font-family:var(--display);font-weight:500;line-height:1.2}
.src-admin{margin:2px 0 0;font-size:14px;color:var(--ink-3)}
.src-tags{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.src-tag{font-size:12px;font-weight:600;padding:3px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent-dark);white-space:nowrap}
.src-tag.dis{background:var(--con-bg);color:var(--con)} .src-tag.dental{background:var(--buy-bg);color:var(--buy)}
.src-count{margin:0;font-size:14px;font-weight:600;color:var(--ink-2)}
.src-chips{display:flex;flex-wrap:wrap;gap:6px}
.src-chip{display:inline-flex;gap:6px;align-items:baseline;max-width:100%;font-size:13px;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:4px 9px;background:var(--soft)}
.src-chip span{color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:190px}
.src-chip:hover{border-color:var(--accent);color:var(--accent-dark)}
.src-chip.due{border-color:#F0C98A}
.src-toggle{font:inherit;font-size:13px;font-weight:600;color:var(--accent);background:none;border:0;padding:4px 6px;cursor:pointer}
.src-date{margin:auto 0 0;font-size:13px;color:var(--buy)} .src-date.due{color:var(--con)}
.src-more{text-align:center;margin-top:20px}
.src-foot{margin-top:20px;font-size:14px}
@media (max-width:560px){.src-field input,.src-field select{min-width:0;width:100%}.src-tools,.src-field{width:100%}.src-grid{grid-template-columns:1fr}}

/* Page heroes: headline left, a useful card right, so wide screens have no empty half */
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,380px);gap:48px;align-items:center}
.hero-main{min-width:0}
.hero-card{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:20px 22px;min-width:0}
.hero-card-title{margin:0 0 12px;font-size:13px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--accent)}
.hero-card-foot{margin:12px 0 0;font-size:13px;color:var(--ink-3)}
.hero-facts{margin:0;display:grid;gap:12px}
.hero-facts div{display:grid;grid-template-columns:132px 1fr;gap:12px;align-items:baseline}
.hero-facts dt{font-family:var(--display);font-size:18px;line-height:1.2;color:var(--ink)}
.hero-facts dd{margin:0;font-size:15px;color:var(--ink-2)}
.toc{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.toc a{display:block;padding:7px 10px;border-radius:8px;text-decoration:none;color:var(--ink);font-size:15px}
.toc a:hover{background:var(--accent-soft);color:var(--accent-dark)}
.scorebars{display:grid;gap:10px}
.sb{display:grid;grid-template-columns:130px 1fr 34px;gap:10px;align-items:center;font-size:14px;color:var(--ink-2)}
.sb i{display:block;height:10px;border-radius:5px;background:linear-gradient(90deg,var(--accent) var(--w),var(--line) var(--w))}
.sb b{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink)}
/* Long text pages: reading column plus a sticky side panel */
.prose-grid{display:grid;grid-template-columns:minmax(0,72ch) minmax(240px,320px);gap:56px;justify-content:space-between;align-items:start}
.prose-side{position:sticky;top:96px;display:grid;gap:14px}
.side-card{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:18px 20px}
.side-card p{margin:0 0 12px;font-size:15px;color:var(--ink-2)} .side-card p:last-child{margin-bottom:0}
.side-card .hero-card-title{margin-bottom:10px}
@media (max-width:900px){.hero-grid,.prose-grid{grid-template-columns:1fr;gap:24px}.prose-side{position:static}}

/* pricing: compact cards, 2 per row on tablets and computers, 1 per row on phones */
.tiers{grid-template-columns:1fr;gap:16px}
@media (min-width:700px){.tiers{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tiers .tier{padding:20px 22px;gap:10px}
.tiers .tier h3{font-size:22px;margin:0}
.tiers .tier .price{font-size:32px}
.tiers .tier .price small{font-size:14px}
.tiers .tier ul{font-size:15px;gap:4px}
.tiers .tier .btn{align-self:flex-start}
.tiers > .tier:last-child:nth-child(odd){grid-column:1/-1}

/* Portal tools: bulk members and negotiation */
.bulk-controls{margin-top:18px}
.bulk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:20px;align-items:start}
.bulk-mode{border:0;padding:0;margin:0;display:grid;gap:8px}
.bulk-mode legend{font-weight:600;font-size:15px;margin-bottom:6px;padding:0}
.mode-opt{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer;background:var(--bg)}
.mode-opt:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.mode-opt span{display:grid;gap:2px} .mode-opt small{color:var(--ink-3);font-size:13px}
.bulk-mode .mode-opt{display:flex;width:auto;font-weight:400;margin:0}
.mode-opt input{margin-top:4px;accent-color:var(--accent);width:auto;flex:0 0 auto}
td.num,th.num{font-variant-numeric:tabular-nums;white-space:nowrap}
td.bad{color:var(--skip);font-weight:600} td.good{color:var(--buy);font-weight:600}
tr.own-row td{background:var(--accent-soft)}
.bulk-detail{margin-top:22px}
.member-report h4{margin:18px 0 8px;font-size:16px}
.rep-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-top:16px}
.rep-sum div{background:var(--soft);border-radius:10px;padding:12px 14px;display:grid;gap:4px}
.rep-sum span{font-size:13px;color:var(--ink-3)} .rep-sum b{font-size:16px}
.neg-uses{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:18px}
ol.asks{margin:0;padding-left:22px;display:grid;gap:12px}
ol.asks li{padding-left:6px} ol.asks li p{margin:4px 0 0;color:var(--ink-2);font-size:15px}
ol.neg-time{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
ol.neg-time li{border-top:3px solid var(--accent);padding-top:10px;display:grid;gap:4px}
ol.neg-time span{color:var(--ink-2);font-size:14px}
.print-reports{display:none}
@media print{body.printing-reports > *:not(.print-reports){display:none!important}body.printing-reports .print-reports{display:block}.print-reports .member-report{break-after:page;border:0;box-shadow:none}}

/* CRM reservations */
.lock{display:inline-block;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap}
.lock.mine{background:var(--buy-bg);color:var(--buy)} .lock.reserved{background:var(--skip-bg);color:var(--skip)} .lock.open{background:var(--accent-soft);color:var(--accent-dark)}
tr.locked td{color:var(--ink-3)} tr.locked td b{color:var(--ink-3)}
.claimbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:10px;font-size:14px}
.claimbar.open{background:var(--accent-soft)} .claimbar.mine{background:var(--buy-bg)}
.callbox{display:grid;gap:10px;border:1px solid var(--line);border-radius:12px;padding:14px}

.drawer .dial{display:inline-flex;align-self:flex-start;font-weight:700;font-size:18px;color:var(--brand,#BA953D);text-decoration:none;font-variant-numeric:tabular-nums}
.drawer .dial:hover{text-decoration:underline}
/* carrier scorecards */
.rsec-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px;margin-bottom:18px}
.rep-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,520px),1fr));gap:16px}
.rep-card details{align-self:end}
.rep-card{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:18px 20px;display:grid;gap:14px;min-width:0}
.rep-card header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.rep-card h3{margin:0;font-size:20px;line-height:1.25}
.rep-rank{margin:0 0 2px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}
.rep-score{display:grid;justify-items:end;gap:6px;flex:none}
.rep-score b{font-family:var(--mono);font-size:34px;line-height:1;font-weight:500;color:var(--ink)}
.rep-card .sb{grid-template-columns:170px 1fr 28px}
.rep-card .sb small{grid-column:1/-1;margin-top:-6px;font-size:12px;color:var(--ink-3)}
.rep-facts{display:grid;grid-template-columns:96px 1fr;gap:6px 12px;margin:0;font-size:14px}
.rep-facts dt{color:var(--ink-3)} .rep-facts dd{margin:0;color:var(--ink-2);min-width:0}
.rep-reg{display:block}
.rep-ref{color:var(--accent);text-decoration:underline}
.rep-card details summary{cursor:pointer;font-size:14px;font-weight:600;color:var(--accent)}
.rep-card details .table-box{margin-top:10px}
.rep-tbl{font-size:13px} .rep-tbl td,.rep-tbl th{padding:6px 8px}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}

#rep-summary .sb a{color:var(--ink-2);text-decoration:none} #rep-summary .sb a:hover{color:var(--accent)}
ul.rules{margin:0;padding-left:18px;display:grid;gap:8px;color:var(--ink-2);font-size:15px}
@media (max-width:560px){.rep-card .sb{grid-template-columns:120px 1fr 28px}.rep-facts{grid-template-columns:1fr}.rep-card header{flex-direction:column}.rep-score{justify-items:start}}
.rules-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:12px}
.rules-grid div{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:14px 16px;font-size:14px;color:var(--ink-2)}
.rules-grid b{color:var(--ink);display:block;margin-bottom:2px}
/* partner avatars */
.avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:50%;object-fit:cover;color:#FFFFFF;font-weight:700;line-height:1;vertical-align:middle;box-shadow:0 0 0 2px var(--bg)}
.lock{display:inline-flex;align-items:center;gap:6px}
.holder{display:flex;align-items:center;gap:10px}
.claimbar .holder{flex:1 1 auto}
.call-li{display:flex;gap:10px;align-items:flex-start}
.photo-box{display:flex;gap:18px;align-items:center}
.team-strip{border:1px solid var(--line);border-radius:14px;background:var(--bg);padding:14px 16px}
.team-strip-title{margin:0 0 10px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:700}
.team-strip-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
/* Pipeline: "Who is calling" sits to the right of the list on iPad and desktop, below it on phones. */
.pipe-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
@media (min-width:768px){.pipe-grid{grid-template-columns:minmax(0,1fr) 230px}.pipe-grid .team-strip{position:sticky;top:90px}.pipe-grid .team-strip-row{grid-template-columns:1fr}}
@media (min-width:1280px){.pipe-grid{grid-template-columns:minmax(0,1fr) 260px}}
.tm{display:flex;gap:10px;align-items:center;min-width:0}
.tm.me b{color:var(--accent)}
.tm-body{display:grid;gap:4px;flex:1;min-width:0}
.tm-body b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-body i{display:block;height:8px;border-radius:4px;background:linear-gradient(90deg,var(--accent) var(--w),var(--line) var(--w))}
.tm-body small{font-size:12px;color:var(--ink-3)}
.lock.secured{box-shadow:inset 0 0 0 1.5px currentColor}
.claimbar .btn+.btn{margin-left:6px}
.rep > *,.rep section *{min-width:0}
main p,main li,main dd{overflow-wrap:break-word}
.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;color:#FFFFFF;font-weight:700;font-size:17px;flex:none}
.brand-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:center}
.brand-preview{border:1px dashed var(--field);border-radius:14px;padding:18px;display:grid;gap:14px;justify-items:start}
@media (max-width:760px){.brand-grid{grid-template-columns:1fr}}
.report-brand{display:flex;align-items:center;gap:16px;padding-bottom:14px;margin-bottom:4px;border-bottom:3px solid var(--accent)}
.report-brand img{max-height:64px;max-width:240px;object-fit:contain}
.report-brand b{display:block;font-size:18px;color:var(--ink)} .report-brand small{color:var(--ink-3);font-size:13px}
.powered{margin:14px 0 0;font-size:12px;color:var(--ink-3);border-top:1px solid var(--line);padding-top:10px}
.org-logo{max-height:40px;max-width:160px;object-fit:contain;flex:none}
.logo-panel{display:flex;gap:20px;align-items:center;flex-direction:row}
.logo-slot{width:200px;height:90px;flex:none;border:1px dashed var(--field);border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:8px}
.logo-slot img{max-width:100%;max-height:100%;object-fit:contain}
@media (max-width:600px){.logo-panel{flex-direction:column;align-items:flex-start}}
.portal-head .logo .org-logo{max-width:96px;max-height:34px}
/* Advisory: purchase or renewal asks */
.rep .asks.advisory{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:0;overflow:hidden}
.adv-band{display:flex;align-items:center;gap:14px;padding:14px 20px;background:var(--accent);color:#fff}
.adv-band h2{color:#fff;margin:0!important;font-size:20px}
.adv-tag{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);padding:4px 9px;border-radius:999px}
.adv-title{margin:0;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;opacity:.85}
.adv-cards{list-style:none;margin:0;padding:14px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px}
.adv-cards li{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;background:var(--soft)}
.adv-num{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:14px;background:var(--accent);color:#fff}
.adv-head{display:block;font-size:16px;color:var(--ink);margin-bottom:4px}
.adv-ask{margin:0;font-size:14px;line-height:1.5;color:var(--ink-2)}
.adv-ask b{color:var(--accent);font-weight:700}
.advisory > .muted{margin:0;padding:0 20px 14px}
@media print{.adv-band,.adv-num{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* Assistant face: launcher, chat header and bot messages */
.asst-avatar{position:relative;flex:none;display:inline-block;width:40px;height:40px}
.asst-avatar img{width:100%;height:100%;border-radius:50%;display:block;box-shadow:0 0 0 2px #fff,0 1px 4px rgba(20,33,61,.25)}
.asst-avatar .online{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;background:#22A06B;box-shadow:0 0 0 2px #fff}
.asst-avatar.sm{width:30px;height:30px;margin:-6px 10px -6px -8px}
.asst-avatar.sm .online{width:9px;height:9px}
.launcher{display:inline-flex;align-items:center}
.online-txt{color:#1E8A5C;font-weight:600}
.msg.bot{position:relative;margin-left:38px}
.msg.bot::before{content:'';position:absolute;left:-38px;top:0;width:28px;height:28px;border-radius:50%;background:var(--asst-photo,url(../img/assistant-photo.jpg)) center/cover;box-shadow:0 1px 3px rgba(20,33,61,.2)}
.ai-tag{display:inline-block;vertical-align:middle;margin-left:6px;padding:2px 7px;border-radius:999px;font-family:var(--sans,inherit);font-size:11px;font-weight:700;letter-spacing:.04em;line-height:1.4;background:var(--accent-soft);color:var(--accent)}
.launcher .ai-tag{background:rgba(255,255,255,.18);color:#fff}
/* About: independence pledge */
.pledge h3{margin:0 0 12px}
.pledge-list{list-style:none;margin:0;padding:0;display:grid;gap:10px;counter-reset:pl}
.pledge-list li{counter-increment:pl;display:grid;grid-template-columns:28px 1fr;column-gap:12px;align-items:start}
.pledge-list li::before{content:counter(pl);grid-row:span 2;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:14px;background:var(--accent);color:#fff}
.pledge-list b{font-size:15px;color:var(--ink)}
.pledge-list span{font-size:14px;color:var(--ink-2);line-height:1.45}

/* ===== association portal: program page, tabs, locked previews (2026-10-09) ===== */
:root{--mv-navy:#0F1E3A;--mv-blue:#3D63D6;--mv-blue-2:#7C9BF2;--mv-green:#16C172;--t-good:#0E8A4F;--t-good-bg:#E3F8EE;--t-warn:#9A5B07;--t-warn-bg:#FFF3DC;--t-bad:#B42318;--t-bad-bg:#FDE8E6}
.ico{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.prog-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;padding:26px 28px;border-radius:18px;color:#fff;background:linear-gradient(120deg,var(--mv-navy) 0%,#1B3170 60%,var(--mv-blue) 100%);box-shadow:0 10px 30px rgba(15,30,58,.18)}
.prog-hero .eyebrow{color:var(--mv-blue-2);margin:0 0 6px;letter-spacing:.06em;text-transform:uppercase;font-size:13px;font-weight:700}
.prog-hero h1{margin:0;font-size:clamp(24px,3.2vw,36px);line-height:1.15;color:#fff;max-width:28ch}
.prog-hero .prog-meta{margin:10px 0 0;color:#D6E0FA;font-size:15px}
.prog-hero-side{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.22);border-radius:16px;padding:16px 18px;min-width:280px;max-width:480px;display:flex;align-items:center;backdrop-filter:blur(4px)}
.prog-hero-side:empty{display:none}
.prog-hero-side>div{display:flex;flex-direction:row;align-items:center;gap:14px}
.prog-hero-side .muted{color:#C7D3F5;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;line-height:1}
.prog-hero-side .verdict-badge{max-width:none;flex:1;text-align:center;line-height:1.35;font-size:16.5px;padding:10px 20px}
@media (max-width:760px){.prog-hero{grid-template-columns:1fr}.prog-hero-side{max-width:none}}
.portal-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}
@media (max-width:980px){.portal-grid{grid-template-columns:1fr}}
.portal-side{display:flex;flex-direction:column;gap:16px}
.side-card{border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--bg);display:flex;flex-direction:column;gap:10px}
.side-card h2{font-size:19px;margin:0}
.side-price{margin:0;display:flex;align-items:baseline;gap:8px}.side-price b{font-size:28px;font-family:var(--display);color:var(--mv-navy)}.side-price span{color:var(--ink-3);font-size:14px}
.tool-links{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.tool-links a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;text-decoration:none;color:var(--ink);font-weight:600;font-size:15px}
.tool-links a:hover{background:var(--soft)} .tool-links .ico{color:var(--mv-blue)}
.tool-links em{margin-left:auto;font-style:normal;font-size:12px;font-weight:700;padding:2px 9px;border-radius:999px;background:var(--soft);color:var(--ink-3)}
.tool-links em.on{background:var(--t-good-bg);color:var(--t-good)}
.snap-panel{gap:14px}.snap-title{font-size:21px;margin:0;color:var(--mv-navy)}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,185px),1fr));gap:12px}
.stat-card{border-radius:14px;padding:14px 16px;border:1px solid var(--line);background:var(--bg);display:flex;flex-direction:column;gap:4px;border-top-width:4px}
.stat-card .stat-top{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--ink-2)}
.stat-card b{font-family:var(--display);font-size:30px;line-height:1.15;font-weight:600;font-variant-numeric:tabular-nums}
.stat-card small{color:var(--ink-3);font-size:13px}
.stat-card.t-good{background:var(--t-good-bg);border-color:#A9E3C4;border-top-color:var(--mv-green)} .stat-card.t-good b,.stat-card.t-good .ico{color:var(--t-good)}
.stat-card.t-warn{background:var(--t-warn-bg);border-color:#F3D497;border-top-color:#E8A317} .stat-card.t-warn b,.stat-card.t-warn .ico{color:var(--t-warn)}
.stat-card.t-bad{background:var(--t-bad-bg);border-color:#F4B9B2;border-top-color:#E0442F} .stat-card.t-bad b,.stat-card.t-bad .ico{color:var(--t-bad)}
.stat-card.t-neutral{border-top-color:var(--mv-blue)} .stat-card.t-neutral .ico{color:var(--mv-blue)} .stat-card.t-neutral b{color:var(--mv-navy)}
.stat-card[role=button]:hover{box-shadow:0 4px 14px rgba(15,30,58,.12)}
.verdict-badge{display:inline-block;font-weight:700;font-size:14px;padding:7px 14px;border-radius:999px;max-width:32ch;text-align:center}
.verdict-badge.t-good{background:var(--mv-green);color:#fff}.verdict-badge.t-warn{background:#F6B73C;color:#3B2400}.verdict-badge.t-bad{background:#E0442F;color:#fff}
.rank-chip{font-weight:700;font-size:13px;padding:3px 10px;border-radius:999px;white-space:nowrap}
.rank-chip.t-good{background:var(--t-good-bg);color:var(--t-good)}.rank-chip.t-warn{background:var(--t-warn-bg);color:var(--t-warn)}.rank-chip.t-bad{background:var(--t-bad-bg);color:var(--t-bad)}
.bands-x{border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:var(--soft)}
.bands-x summary{cursor:pointer;font-weight:700;color:var(--mv-blue)}
.status-row{display:flex;justify-content:center;align-items:center;width:100%;min-height:46px}
.status-pill{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;font-weight:600;font-size:14px;text-align:center}
.status-pill.t-warn{background:var(--t-warn-bg);color:var(--t-warn);border:1px solid #F3D497}.status-pill.t-good{background:var(--t-good-bg);color:var(--t-good);border:1px solid #A9E3C4}
.lock-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center}
.side-card .lock-actions{justify-content:flex-start}
.portal-col{display:flex;flex-direction:column;gap:20px;min-width:0}
.change-prog summary{cursor:pointer;font-weight:600;font-size:15px;color:var(--ink-2);margin-bottom:12px}.change-prog:not([open]) summary{margin-bottom:0}
.lock-wrap{position:relative;border-radius:16px;overflow:hidden;min-height:420px}
.locked-preview{filter:blur(6px) saturate(.8);opacity:.55;pointer-events:none;user-select:none;max-height:640px;overflow:hidden}
.lock-card{position:absolute;top:40px;left:50%;transform:translateX(-50%);width:min(520px,calc(100% - 32px));background:#fff;border-radius:18px;padding:26px;text-align:center;box-shadow:0 18px 50px rgba(15,30,58,.22);border:1px solid var(--line);display:flex;flex-direction:column;gap:12px;align-items:center}
.lock-card h2{margin:0;font-size:22px;color:var(--mv-navy)}.lock-card p{margin:0;color:var(--ink-2)}
.lock-ico{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--mv-navy),var(--mv-blue));color:#fff}.lock-ico .ico{width:22px;height:22px}
.lock-price b{font-size:30px;font-family:var(--display);color:var(--mv-navy)}
.lock-tiers{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.tier-chip{border:1.5px solid var(--line);border-radius:12px;padding:8px 12px;display:flex;flex-direction:column;min-width:120px}
.tier-chip b{font-size:20px;color:var(--mv-navy)}.tier-chip span{font-size:12px;color:var(--ink-3)}
.tier-chip.on{border-color:var(--mv-blue);background:#EEF3FF}
.mon{display:flex;flex-direction:column;gap:16px}.mon .panel h2,.chart-panel h2{font-size:20px;margin:0 0 10px}
.rank-chart{width:100%;height:auto;max-height:240px}
.rank-chart .grid{stroke:var(--line);stroke-width:1}.rank-chart .axis{font-size:11px;fill:var(--ink-3)}
.rank-chart .line{fill:none;stroke:var(--mv-blue);stroke-width:3;stroke-linejoin:round}
.rank-chart .dot{fill:#fff;stroke:var(--mv-blue);stroke-width:3}.rank-chart .label{font-size:13px;font-weight:700;fill:var(--mv-navy)}
.band-chips{margin-bottom:10px}.band-chips .chip{min-height:36px;padding:5px 12px;font-size:14px}
tr.own-row td{background:#EEF3FF;font-weight:700}
.renew-head{display:flex;gap:12px;align-items:center;padding:14px 18px;border-radius:14px;background:#EEF3FF;color:var(--mv-navy);margin-bottom:14px}.renew-head .ico{width:26px;height:26px;color:var(--mv-blue)}.renew-head div{display:flex;flex-direction:column}
.num-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:14px}
.num-card{border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;gap:14px;align-items:flex-start;background:var(--bg)}
.num-card h3{margin:0;font-size:17px}.num-card p{margin:4px 0 0;color:var(--ink-2);font-size:15px}.num-card .when{color:var(--mv-blue);font-weight:700;font-size:13px}
.num-badge{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--mv-navy),var(--mv-blue))}
.score-card{display:flex;flex-wrap:wrap;gap:22px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:20px;margin-bottom:14px}
.score-card h2{margin:0;font-size:22px}.score-card>div:last-child{flex:1 1 300px}
.score-ring{width:120px;height:120px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:10px solid}
.score-ring b{font-size:36px;font-family:var(--display);line-height:1}.score-ring span{font-size:12px;color:var(--ink-3)}
.score-ring.t-good{border-color:var(--mv-green)}.score-ring.t-warn{border-color:#F6B73C}.score-ring.t-bad{border-color:#E0442F}
.sbar{display:grid;grid-template-columns:170px 1fr 34px;gap:10px;align-items:center;font-size:14px;margin-top:8px}
.sbar i{height:10px;border-radius:999px;background:linear-gradient(90deg,var(--mv-blue) var(--w),var(--soft) var(--w))}.sbar b{text-align:right}

.stat-card[data-size=text] b{font-family:var(--body);font-size:19px;font-weight:700;line-height:1.3}
.portal-nav a{padding:7px 8px;font-size:14px}
@media (min-width:900px){.portal-head .wrap{flex-wrap:wrap;row-gap:6px}.portal-head .logo{margin-right:100%}.portal-head .portal-nav{flex:1 1 auto;flex-wrap:nowrap;justify-content:flex-start;gap:2px;overflow-x:auto;scrollbar-width:none;margin-left:-8px}.portal-head .portal-nav a{white-space:nowrap}.portal-head .wrap>.btn{flex-shrink:0}}
.bands-x table th:nth-child(2),.bands-x table td:nth-child(2),.bands-x table th:nth-child(4),.bands-x table td:nth-child(4){text-align:right}
.bands-x table th:nth-child(3),.bands-x table td:nth-child(3){text-align:center}
.bands-x table th:first-child,.bands-x table td:first-child{text-align:left}
.picker-row{align-items:center}.picker-row .picker-note{display:inline-flex;align-items:center;min-height:38px;margin-top:2px;line-height:1.3}
.pay-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
/* Phones: logo and Log out share the top line; the menu is one swipeable row under them. */
@media (max-width:899px){
  .portal-head .wrap{flex-wrap:wrap;row-gap:8px}
  .portal-head .logo{flex:1 1 100%;min-width:0}
  .portal-head .wrap>.btn{order:2;flex-shrink:0}
  .portal-head .portal-nav{order:3;width:100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin-inline:-8px;padding-bottom:2px}
  .portal-head .portal-nav::-webkit-scrollbar{display:none}
  .portal-head .portal-nav a{white-space:nowrap;flex-shrink:0}
}
/* Phones: the price verdict pod stacks its label over a full-width badge. */
@media (max-width:760px){
  .prog-hero-side>div{flex-direction:column;align-items:stretch;text-align:center;gap:10px}
  .prog-hero-side .verdict-badge{font-size:15.5px}
}

/* four steps: 2x2 on mid screens, 4 across on wide ones, never 3 + 1 */
@media (min-width:640px){.steps-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1080px){.steps-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.steps-4 li{overflow-wrap:anywhere;min-width:0}

/* price index: one row per plan, one column per age band; fits the page, header stays visible while scrolling */
html{scroll-padding-top:96px}
.table-box.pi-box{overflow:visible}
table.pi-table{width:100%;table-layout:fixed}
table.pi-table th,table.pi-table td{padding:9px 8px}
table.pi-table th.prog,table.pi-table td.prog{width:28%}
table.pi-table td.prog .prog-name{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
table.pi-table thead th{position:sticky;top:74px;z-index:5;background:var(--bg);box-shadow:0 1px 0 var(--line);vertical-align:bottom}
table.pi-table button.sort{all:unset;cursor:pointer;font-weight:700;font-size:13px;white-space:nowrap}
table.pi-table button.sort:hover{color:var(--accent)}
table.pi-table .cell{font-size:14px}
table.pi-table td.na{text-align:center}
/* phones and small tablets: one card per program, age bands as label/price pairs */
@media (max-width:820px){
  .table-box.pi-box{border:0;background:none}
  table.pi-table,table.pi-table tbody{display:block;width:100%;min-width:0;table-layout:auto}
  table.pi-table th.prog,table.pi-table td.prog,table.pi-table td{width:auto;min-width:0}
  table.pi-table thead{display:none}
  table.pi-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 16px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:0 0 10px;background:var(--bg)}
  table.pi-table td{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:5px 0;border:0;min-height:32px}
  table.pi-table td::before{content:attr(data-label);color:var(--ink-3);font-size:13px;font-family:var(--body)}
  table.pi-table td.prog{grid-column:1/-1;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:4px}
  table.pi-table td.prog::before{content:none}
  table.pi-table td.prog .prog-name{white-space:normal}
  table.pi-table td.na{text-align:right}
  table.pi-table .cell .bar{display:none}
  table.pi-table td.best{background:var(--buy-bg);border-radius:6px;padding-inline:6px}
}

/* home hero picture: the CRM's ".stage" pill style must not leak into it (it made the report text overflow on phones) */
.hero > .stage{display:block;white-space:normal;font-size:inherit;font-weight:inherit;color:inherit;position:relative;padding:28px;border-radius:24px;background-color:var(--soft);
  background-image:radial-gradient(#D3DBE8 1px,transparent 1px);background-size:18px 18px}
.hero > .stage .report{max-width:100%}
.hero > .stage .row>div{min-width:0}
/* phones: menu button instead of a wrapped link list (works without JavaScript) */
.nav-check{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
@media (max-width:720px){
  .hero > .stage{padding:14px}
  .menu-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-left:auto;border:1px solid var(--line);border-radius:10px;cursor:pointer;font-size:22px;color:var(--ink);background:var(--bg)}
  .site-head .nav{display:none;flex-direction:column;align-items:stretch;gap:0;width:100%}
  .site-head .nav a{padding:12px 4px;min-height:44px;display:flex;align-items:center;border-bottom:1px solid #EEF1F6;font-size:16px}
  .nav-check:checked ~ .nav{display:flex}
  .nav-check:focus-visible ~ .menu-toggle{outline:2px solid var(--accent)}
}
/* reputation cards: an opened "Complaint records" table stays inside its card */
.rep-card>*{min-width:0}
.rep-card details{width:100%;min-width:0}
.rep-card details .table-box{max-width:100%;overflow-x:visible}
.rep-card .rep-tbl{width:100%;min-width:0;table-layout:fixed}
.rep-tbl td,.rep-tbl th{white-space:normal;overflow-wrap:anywhere;word-break:normal}
.rep-card .rep-tbl th{overflow-wrap:normal;font-size:12px}
.rep-tbl th:nth-child(1){width:12%}.rep-tbl th:nth-child(2){width:26%}.rep-tbl th:nth-child(3){width:20%}.rep-tbl th:nth-child(4){width:12%}.rep-tbl th:nth-child(5){width:15%}.rep-tbl th:nth-child(6){width:15%}
/* numbers line up: Index, Expected and Count headers right-aligned over right-aligned figures */
.rep-card .rep-tbl th:nth-child(n+4),.rep-card .rep-tbl td:nth-child(n+4){text-align:right;font-variant-numeric:tabular-nums}
.rep-card .rep-tbl th:nth-child(-n+3),.rep-card .rep-tbl td:nth-child(-n+3){text-align:left}
@media (max-width:560px){
  .rep-card .rep-tbl thead{display:none}
  .rep-card .rep-tbl,.rep-card .rep-tbl tbody{display:block}
  .rep-card .rep-tbl tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 10px;padding:8px 10px;border-bottom:1px solid var(--line)}
  .rep-card .rep-tbl td{display:flex;flex-direction:column;padding:2px 0;border:0;text-align:left;overflow-wrap:normal}
  .rep-card .rep-tbl td::before{content:attr(data-label);font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}
}
/* "How the score works": give "Based on" room so it doesn't wrap into a narrow column */
table.method-tbl th:nth-child(1){width:15%}table.method-tbl th:nth-child(2){width:8%}table.method-tbl th:nth-child(3){width:32%}
/* nicer line breaks: avoid a lone word or a sentence start dangling at a line end */
p,li,dd{text-wrap:pretty}
/* design pass 2026-10-10 */
/* members-only cards: the eligibility note reads left to right under the price */
.card.locked .cost small{display:block;text-align:left;margin-top:6px}
.cost small{display:block}
/* home hero report: title on one line */
.report-head b{white-space:nowrap}
.report-head{flex-wrap:wrap}
/* trust block: the program count as one clean stat line, carriers on the next */
.trust{display:block;margin-top:28px}
.trust p{margin:0}
.trust-stat{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;padding-left:14px;border-left:3px solid var(--accent)}
.trust-stat b{font-family:var(--display);font-size:32px;line-height:1.1;font-weight:500;color:var(--ink);letter-spacing:-.01em}
.trust-stat span{font-size:15px;color:var(--ink-2);font-weight:500}
.trust-carriers{margin-top:10px !important;font-size:14px;color:var(--ink-3);line-height:1.6}
.trust-carriers b{color:var(--ink-2);font-weight:600;white-space:nowrap}
@media (max-width:600px){.trust-stat b{font-size:26px}.trust-stat span{font-size:14px}}
/* call-to-action band: text uses the width, button sits on the right (below it on phones) */
.cta-band > div{flex:1 1 480px;min-width:0}
.cta-band h2,.cta-band p{max-width:none}
.cta-band > .btn{flex:none}
/* number facts (About "at a glance"): short number column so the label reads on one line */
.hero-facts.num-facts div{grid-template-columns:72px 1fr}
/* contact form: two fields per row on wider screens */
.lead-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
.lead-grid .fld{display:flex;flex-direction:column;gap:6px;min-width:0}
.lead-grid .fld.wide{grid-column:1/-1}
.lead-grid .fld.wide .btn{align-self:flex-start;min-width:180px}
@media (max-width:640px){.lead-grid{grid-template-columns:1fr}}
/* Price Index program cards: each card is as tall as its content (no half-empty cards) */
#src-grid{align-items:start}
/* Price Index: disability plan names in the body font like term life; wider search box */
#dis-body td.prog,#dis-body td.prog .prog-name{font-family:var(--body)}
.src-field input{min-width:340px}
@media (max-width:560px){.src-field input{min-width:0}}
/* snapshot number cards colored by value, like the portal */
.kpi.t-good{background:var(--t-good-bg);border-color:#A9E3C4}.kpi.t-good b{color:var(--t-good)}
.kpi.t-warn{background:var(--t-warn-bg);border-color:#F3D497}.kpi.t-warn b{color:var(--t-warn)}
.kpi.t-bad{background:var(--t-bad-bg);border-color:#F4B9B2}.kpi.t-bad b{color:var(--t-bad)}
.kpi small{display:block;color:var(--ink-3);font-size:12px;margin-top:2px}
/* portal header: organization name and tagline each on one line */
@media (min-width:900px){.portal-head .logo{flex:none}.portal-head .logo-text span,.portal-head .logo-text small{white-space:nowrap}}
@media (min-width:900px){h1.one-line{white-space:nowrap}}
/* Price Index: clear lowest-price highlight instead of tiny bars; carrier under the program name */
table.pi-table td.prog .prog-carrier{display:block;font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:400}
table.pi-table td.v.best .cell span{display:inline-block;background:var(--t-good-bg);color:var(--t-good);font-weight:700;border-radius:6px;padding:2px 6px}
.pi-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;color:var(--ink-3);margin:0 0 12px}
.pi-key{font-family:var(--mono);font-size:13px;border-radius:6px;padding:2px 6px;background:var(--soft);color:var(--ink)}
.pi-key.best{background:var(--t-good-bg);color:var(--t-good);font-weight:700}
/* Term life table: about 10 rows visible, the rest scroll inside the box; header stays on top */
@media (min-width:821px){.table-box.pi-box.pi-scroll{max-height:560px;overflow-y:auto}.pi-scroll table.pi-table thead th{top:0}}
@media (min-width:721px){.site-head .actions-row{margin-left:auto}}
/* header buttons on tablets and phones: small, on the logo row, right side */
.nav-login{display:none}
@media (max-width:1100px){.site-head .actions-row{gap:8px}.site-head .actions-row .btn{min-height:36px;padding:6px 14px;font-size:14px;border-radius:9px}}
@media (max-width:720px){
  .site-head .wrap{flex-wrap:wrap;row-gap:8px;column-gap:8px}
  .site-head .logo{order:1;margin-right:auto}
  .site-head .actions-row{order:2;width:auto;flex:none;margin-left:0}
  .site-head .actions-row .btn{flex:none}
  .menu-toggle{order:3;margin-left:0;width:40px;height:40px}
  .site-head .nav{order:4}
}
@media (max-width:480px){
  .site-head .actions-row .btn-ghost{display:none}
  .site-head .nav .nav-login{display:flex}
  .site-head .logo-text small{display:none}
}
@media (max-width:480px){.site-head .logo{gap:8px}.site-head .logo svg{width:30px;height:30px}.site-head .logo-text span{font-size:18px}.site-head .actions-row .btn{padding:6px 10px;font-size:13px}.site-head .wrap{column-gap:6px}}
@media (min-width:721px) and (max-width:1100px){.site-head .wrap{row-gap:6px}.site-head .logo{order:1;margin-right:auto}.site-head .actions-row{order:2}.site-head .nav{order:3;width:100%;justify-content:flex-start;gap:4px 18px}}
/* tablets and phones: Log in / Create account become icon buttons on the same line as the logo and menu */
.ab-ico{display:none;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:720px){
  .site-head .actions-row .btn{width:40px;height:40px;min-height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center}
  .site-head .actions-row .ab-ico{display:block}
  .site-head .actions-row .ab-txt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
}
@media (max-width:480px){.site-head .actions-row .btn-ghost{display:inline-flex}.site-head .nav .nav-login{display:none}}
@media (max-width:560px){.rep-card .rep-tbl td,.rep-card .rep-tbl td:nth-child(n+4){text-align:left;align-items:flex-start}}
@media (min-width:721px) and (max-width:1100px){.site-head .nav{justify-content:center}}
@media (min-width:721px) and (max-width:1100px){.site-head .nav{padding-top:10px;padding-bottom:2px}}
/* "How the score works" on phones: one card per measure */
@media (max-width:640px){
  table.method-tbl{min-width:0;width:100%}
  table.method-tbl thead{display:none}
  table.method-tbl,table.method-tbl tbody,table.method-tbl tr,table.method-tbl td{display:block;width:auto}
  table.method-tbl tr{padding:14px 16px;border-bottom:1px solid var(--line)}
  table.method-tbl td{padding:0;border:0}
  table.method-tbl td:nth-child(1){display:inline;font-size:18px}
  table.method-tbl td:nth-child(2){display:inline;margin-left:8px;font-weight:700;color:var(--accent)}
  table.method-tbl td:nth-child(3),table.method-tbl td:nth-child(4){margin-top:10px;font-size:15px;line-height:1.5}
  table.method-tbl td:nth-child(3)::before{content:"Based on";display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin-bottom:2px}
  table.method-tbl td:nth-child(4)::before{content:"How it is read";display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin-bottom:2px}
}
@media (max-width:640px){
  table.admin-tbl{min-width:0;width:100%}
  table.admin-tbl thead{display:none}
  table.admin-tbl,table.admin-tbl tbody,table.admin-tbl tr{display:block}
  table.admin-tbl tr{padding:12px 16px;border-bottom:1px solid var(--line)}
  table.admin-tbl td{display:inline;padding:0;border:0;font-size:14px;color:var(--ink-2)}
  table.admin-tbl td:nth-child(1){display:block;font-size:16px;margin-bottom:2px;color:var(--ink)}
  table.admin-tbl td:nth-child(2)::after{content:" programs · "}
}
/* page heroes: title starts at the top, next to the side card (not vertically centered) */
.page-hero .hero-grid{align-items:start}
/* Partners pipeline: compact fixed-content columns; Next action keeps a readable width (the box scrolls sideways if the window is too narrow) */
.data.pipe td:nth-child(7){min-width:0}
.data.pipe th,.data.pipe td:nth-child(3),.data.pipe td:nth-child(4),.data.pipe td:nth-child(6),.data.pipe td:nth-child(7),.data.pipe td:nth-child(9){white-space:nowrap}
.data.pipe td:nth-child(8){min-width:240px}
.data.pipe td:nth-child(5){min-width:110px}
#crm .wrap{max-width:1600px}
/* Phones: portal and Partners tables become stacked cards (labels come from ui.js) */
@media (max-width:640px){
  .table-box:has(> table.stack){overflow:visible;border:0;background:none;border-radius:0}
  table.stack,table.stack tbody{display:block;width:100%!important;min-width:0!important}
  table.stack thead{display:none}
  table.stack tr{display:block;border:1px solid var(--line);border-radius:12px;padding:8px 14px;margin:0 0 10px;background:var(--bg)}
  table.stack td{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:7px 0;border:0;border-bottom:1px solid #EEF1F6;text-align:right;min-width:0!important;white-space:normal!important;overflow-wrap:anywhere}
  table.stack td:last-child{border-bottom:0}
  table.stack td::before{content:attr(data-label);flex:0 0 auto;max-width:42%;text-align:left;color:var(--ink-3);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding-top:2px}
  table.stack td[data-label=""]{justify-content:flex-start;text-align:left}
  table.stack td[data-label=""]::before{display:none}
  table.stack td > *{max-width:100%;min-width:0}
  table.stack tr,table.stack td{width:auto!important}
  table.stack tfoot{display:block}
}.kpi.t-info{background:#EEF3FF;border-color:#BFD0FA}.kpi.t-info b{color:#1F4FD8}
@media (max-width:640px){
  table.stack td:first-child{display:block;text-align:left;padding-top:4px}
  table.stack td:first-child::before{display:none}
  table.stack .holder,table.stack .holder > div{min-width:0;max-width:100%}
  table.stack select{max-width:100%;width:100%!important}
}/* Partners header on phones and small tablets: logo row, then the three small buttons, then the scrolling tabs */
@media (max-width:899px){
  #crm .portal-head .logo{flex:1 1 100%}
  #crm .portal-head .actions-row{order:2;width:100%;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}
  #crm .portal-head .actions-row .btn{flex:1 1 auto;justify-content:center}
}@media (max-width:640px){#crm .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}#crm .kpi{padding:12px}#crm .kpi b{font-size:26px}#crm .kpi.hi b{font-size:28px}#crm .kpi small{display:none}}
/* Prospect / customer record: centered popup, full screen on phones */
body.modal-open{overflow:hidden}
.rec-bg{position:fixed;inset:0;z-index:80;background:rgba(15,30,58,.48);display:flex;align-items:center;justify-content:center;padding:24px}
.rec-modal{width:min(760px,100%);max-height:calc(100vh - 48px);overflow-y:auto;overscroll-behavior:contain;border-radius:18px;background:var(--bg);box-shadow:0 24px 70px rgba(15,30,58,.30)}
.rec-modal .drawer{position:static;border:0;border-radius:0;padding:22px 26px 26px;background:none}
.rec-modal .drawer > .toolbar{position:sticky;top:-22px;z-index:2;background:var(--bg);margin:-22px -26px 0;padding:14px 26px 10px;border-bottom:1px solid var(--line)}
.rec-x{margin-left:auto;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--bg);font-size:24px;line-height:1;color:var(--ink-2);cursor:pointer}
.rec-x:hover{background:var(--soft);color:var(--ink)}
@media (max-width:640px){.rec-bg{padding:0}.rec-modal{width:100%;height:100%;max-height:none;border-radius:0}.rec-modal .drawer{padding:18px 16px 28px}.rec-modal .drawer > .toolbar{margin:-18px -16px 0;padding:12px 16px 10px;top:-18px}.rec-modal .drawer .row2{grid-template-columns:1fr}}
/* List pagination (Partners) */
.pager{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;justify-content:space-between;margin-top:10px;font-size:14px;color:var(--ink-3)}
.pg-nums{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.pg{min-width:34px;height:34px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font:inherit;cursor:pointer}
.pg:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.pg.cur{background:var(--accent);border-color:var(--accent);color:#fff;cursor:default}
.pg:disabled:not(.cur){opacity:.4;cursor:default}
.pg-gap{padding:0 2px}
.pg-size{display:flex;align-items:center;gap:6px;margin:0;font-size:14px;font-weight:400;color:var(--ink-3)}
.pg-size select{width:auto;padding:4px 8px;font-size:14px}

/* Pipeline menus: search row, "Show" chips, "Filter by" dropdowns */
.pipe-search{display:flex;gap:10px;align-items:center}
.pipe-search .search{flex:1;min-width:0;max-width:none}
.pipe-filters{display:flex;gap:8px 12px;align-items:center;flex-wrap:wrap}
.pf-label{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:700;min-width:72px}
.pf-selects{display:flex;gap:8px 12px;flex-wrap:wrap;align-items:center}
.pf-pick{display:flex;align-items:center;gap:6px;margin:0;font-size:13px;font-weight:600;color:var(--ink-2)}
.pf-pick select{width:auto;max-width:260px;font-size:14px;padding:6px 10px}
@media (max-width:600px){.pf-label{min-width:0;width:100%}.pf-pick,.pf-pick select{width:100%;max-width:none}.pf-pick span{min-width:64px}}

/* Partners: icons on action buttons */
.has-icon{display:inline-flex;align-items:center;gap:6px}
.has-icon .bi{flex:none}

/* Portal and Partners: "Account" menu sits in the menu bar, after the last tab */
.portal-nav .nav-acct{color:var(--ink-3)}
.portal-nav .nav-acct:hover,.portal-nav .nav-acct[aria-expanded="true"]{color:var(--ink);background:var(--soft)}
.acct-menu{position:fixed;z-index:95;min-width:200px;background:var(--bg);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(15,30,58,.14);padding:6px;display:flex;flex-direction:column}
.acct-menu a,.acct-menu button{display:block;text-align:left;padding:9px 12px;border-radius:8px;font:inherit;font-size:15px;font-weight:600;color:var(--ink-2);text-decoration:none;background:none;border:0;cursor:pointer}
.acct-menu a:hover,.acct-menu button:hover,.acct-menu a:focus-visible,.acct-menu button:focus-visible{background:var(--soft);color:var(--ink)}

/* A KPI you can click (e.g. Open invoices opens Sales) */
.kpi-link{text-decoration:none;color:inherit;cursor:pointer}
.kpi-link:hover{border-color:var(--accent)}

/* Partners header: who is logged in (photo, name, role) at the top left opens the account menu; tabs centered */
.who-btn{display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:var(--ink);border-radius:10px;padding:4px 8px 4px 4px;margin-left:-4px}
.who-btn:hover,.who-btn[aria-expanded="true"]{background:var(--soft)}
.who{display:inline-flex;align-items:center;gap:10px}
.who .avatar{flex:none}
.who-text{display:flex;flex-direction:column;line-height:1.2}
.who-text b{font-size:16px;text-transform:capitalize}
.who-text small{font-size:12px;color:var(--ink-3)}
.acct-caret{font-size:12px;color:var(--ink-3)}
.portal-head .wrap{flex-wrap:wrap;row-gap:8px}
.portal-head .logo{flex:1 1 0!important;min-width:0;margin-right:0!important}
.portal-head .who-btn{order:2;flex:none;margin-left:auto;margin-right:-8px}
.portal-head .portal-nav{order:3;flex:1 1 100%!important;width:100%}
@media (min-width:900px){.portal-head .portal-nav{justify-content:center!important;margin-left:0!important}}
@media (max-width:600px){.portal-head .who-text small{display:none}.portal-head .who-text b{font-size:14px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
/* Centered tabs never cut off the first or last tab when the row is too narrow: auto margins center, then shrink to 0 */
.portal-head .portal-nav{justify-content:flex-start!important}
.portal-head .portal-nav>:first-child{margin-left:auto}
.portal-head .portal-nav>:last-child{margin-right:auto}
/* Partners on very wide screens: tabs sit on the same line as the logo and the person menu, centered between them
   (the owner has ten tabs, so below 1500px they get their own row) */
@media (min-width:1500px){
  #crm .portal-head .wrap{flex-wrap:nowrap}
  #crm .portal-head .logo{flex:0 0 auto!important}
  #crm .portal-head .portal-nav{order:2;flex:1 1 0!important;width:auto;min-width:0;justify-content:center!important;margin:0 8px!important}
  #crm .portal-head .who-btn{order:3;margin-left:0}
}
/* Administrator program picker: a tidy, scrollable, searchable grid. */
.pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px;max-height:420px;overflow:auto;padding:4px;border:1px solid var(--line,#E3E8F0);border-radius:12px}
.pick-row{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;font-size:15px;font-weight:400;color:var(--ink);border-radius:8px;cursor:pointer;line-height:1.3}
.pick-row:hover{background:var(--soft)}
.pick-row input{width:16px;height:16px;padding:0;margin:2px 0 0;accent-color:var(--accent);flex:none}
.pick-row span{display:flex;flex-direction:column;min-width:0}
.pick-row small{color:var(--ink-3);font-size:13px}
.pick-row:has(input:checked){background:var(--accent-soft,#EAF0FF)}
/* Working overlay (UI.busy / any save) */
.busy-bg{position:fixed;inset:0;z-index:100;background:rgba(15,30,58,.28);display:grid;place-items:center;cursor:progress}
.busy-box{display:flex;align-items:center;gap:12px;background:var(--bg);color:var(--ink);padding:16px 22px;border-radius:14px;box-shadow:0 12px 32px rgba(15,30,58,.2);font-weight:600}
.spinner{width:22px;height:22px;border-radius:50%;border:3px solid var(--accent-soft);border-top-color:var(--accent);animation:spin .8s linear infinite;flex:none}
@keyframes spin{to{transform:rotate(360deg)}}


/* Partners log in, forgot password and reset: a different look from the customer log in (dark navy page, teal accents). */
body.partner-auth{background:#0B1830}
.auth-partner{margin-top:64px}
.auth-partner .partner-badge{display:inline-block;margin:0 0 12px;padding:6px 12px;border-radius:999px;background:#0E9F8E;color:#fff;font-weight:700;font-size:13px;letter-spacing:.04em}
.auth-partner .box{border:0;border-top:6px solid #0E9F8E;background:#fff;box-shadow:0 18px 50px rgba(0,0,0,.35)}
.auth-partner .eyebrow{color:#0B7A6E}
.auth-partner .btn-primary{background:#0E9F8E;border-color:#0E9F8E;color:#fff}
.auth-partner .btn-primary:hover{background:#0B7A6E;border-color:#0B7A6E}
.auth-partner a{color:#0B7A6E}
.auth-partner input:focus{outline-color:#0E9F8E;border-color:#0E9F8E}
.auth-partner .partner-note{color:#C9D3E6;font-size:14px;margin:14px 2px 0}
.auth-partner .partner-note a{color:#5EE0CF}
/* Partners CRM after log in: the same navy and teal as the partner log in, so the staff side never looks like the customer portal. */
#crm{--accent:#0E9F8E;--accent-dark:#0B7A6E;--accent-soft:#E3F6F3}
#crm .portal-head{background:#0B1830;border-bottom:3px solid #0E9F8E}
#crm .portal-head .logo-text span,#crm .portal-head .who-text b{color:#FFFFFF}
#crm .portal-head .logo-text small,#crm .portal-head .who-text small{color:#9FB0CC}
#crm .portal-head .portal-nav a{color:#C9D3E6}
#crm .portal-head .portal-nav a:hover{background:rgba(255,255,255,.08);color:#FFFFFF}
#crm .portal-head .portal-nav a[aria-current="page"]{background:#0E9F8E;color:#FFFFFF}
#crm .portal-head .who-btn{color:#FFFFFF}
#crm .portal-head .who-btn:hover,#crm .portal-head .who-btn[aria-expanded="true"]{background:rgba(255,255,255,.08)}
#crm .btn-primary{background:#0E9F8E;border-color:#0E9F8E;color:#FFFFFF}
#crm .btn-primary:hover{background:#0B7A6E;border-color:#0B7A6E;color:#FFFFFF}
#crm .chip[aria-pressed="true"]{background:#0B1830;border-color:#0B1830}
#crm main a:not(.btn):not(.kpi){color:#0B7A6E}
#crm .portal-head a.logo{color:#FFFFFF}
#crm .portal-head .logo img{background:#FFFFFF;border-radius:9px;padding:2px}
