/* ── Coverage detail modal (riders + premium funding) ───────────────────────── */
/* Navy-themed to match the portal chrome, using the portal's own theme tokens. */
.cv-overlay { position:fixed; inset:0; z-index:100050; background:rgba(4,8,20,.66);
  display:flex; align-items:flex-start; justify-content:center; padding:40px 16px; overflow-y:auto; }
.cv-panel { width:100%; max-width:760px; background:var(--navy-card,#18244A); color:var(--text,#F5F1E8);
  border:1px solid var(--border-bright,rgba(201,194,176,.26)); border-radius:8px; box-shadow:0 26px 64px rgba(0,0,0,.5);
  display:flex; flex-direction:column; }
.cv-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px;
  padding:18px 22px; background:var(--navy-mid,#0B1226); border-bottom:1px solid var(--border,rgba(201,194,176,.13));
  border-radius:8px 8px 0 0; }
.cv-eyebrow { font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gold,#D4A24A); }
.cv-title { font-size:18px; font-weight:700; margin-top:3px; color:var(--text,#F5F1E8); }
.cv-x { background:none; border:none; color:var(--text-dim,#93A0BC); font-size:18px; cursor:pointer; line-height:1; padding:2px 4px; }
.cv-x:hover { color:var(--text,#F5F1E8); }
.cv-body { padding:20px 22px; display:flex; flex-direction:column; gap:26px; }

.cv-sec-head { display:flex; align-items:baseline; gap:12px; margin-bottom:12px; flex-wrap:wrap; }
.cv-sec-head h3 { margin:0; font-size:14px; font-weight:700; color:var(--text,#F5F1E8); letter-spacing:.01em; }
.cv-count { display:inline-block; min-width:18px; padding:1px 7px; margin-left:4px; font-size:11px; font-weight:800;
  color:var(--gold,#D4A24A); background:rgba(212,162,74,.16); border-radius:999px; text-align:center; }
.cv-note { font-size:12px; color:var(--text-dim,#93A0BC); }
.cv-empty { font-size:13px; color:var(--text-muted,#C7CEDE); background:var(--navy-light,#1F2C54);
  border:1px dashed var(--border-bright,rgba(201,194,176,.26)); border-radius:3px; padding:12px 14px; }
.cv-empty b { color:var(--text,#F5F1E8); }

/* funding lines */
.cv-fund { border:1px solid var(--border-bright,rgba(201,194,176,.26)); border-radius:3px; overflow:hidden; }
.cv-fund-line { display:flex; align-items:center; gap:10px; padding:9px 12px; border-top:1px solid var(--border,rgba(201,194,176,.13)); }
.cv-fund-line:first-child { border-top:none; }
.cv-fund-line select { flex:0 0 130px; }
.cv-fund-total { display:flex; justify-content:space-between; align-items:center; padding:10px 14px;
  border-top:2px solid var(--gold-dark,#9B6F22); background:var(--navy-light,#1F2C54); font-size:13px; color:var(--text,#F5F1E8); }
.cv-fund-total b { font-variant-numeric:tabular-nums; color:var(--gold-light,#E2C281); }

/* riders */
.cv-riders { display:flex; flex-direction:column; gap:14px; }
.cv-rider { border:1px solid var(--border-bright,rgba(201,194,176,.26)); border-radius:4px; padding:14px 16px; background:var(--navy-light,#1F2C54); }
.cv-rider-top { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.cv-rider-name { flex:1; font-weight:700; font-size:14px; border:none; border-bottom:1px solid var(--border-bright,rgba(201,194,176,.26));
  background:transparent; padding:5px 2px; color:var(--text,#F5F1E8); }
.cv-rider-name:focus { outline:none; border-bottom-color:var(--gold,#D4A24A); }
.cv-grid { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:12px 14px; }
.cv-span2 { grid-column:span 2; }

.cv-fld { display:flex; flex-direction:column; gap:4px; min-width:0; }
.cv-fld label { font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text-dim,#93A0BC); }
.cv-overlay select, .cv-overlay .cv-in, .cv-amt input { font-family:inherit; font-size:13px; width:100%;
  background:var(--navy-mid,#0B1226); color:var(--text,#F5F1E8); border:1px solid var(--border-bright,rgba(201,194,176,.26));
  border-radius:2px; padding:8px 9px; box-sizing:border-box; }
.cv-overlay select option { background:var(--navy-card,#18244A); color:var(--text,#F5F1E8); }
.cv-overlay select:focus, .cv-overlay .cv-in:focus, .cv-amt input:focus, .cv-rider-name:focus {
  outline:none; border-color:var(--gold,#D4A24A); box-shadow:0 0 0 3px rgba(212,162,74,.18); }
.cv-amt { display:flex; align-items:stretch; }
.cv-amt span { display:flex; align-items:center; padding:0 9px; font-size:12px; font-weight:700; color:var(--gold,#D4A24A);
  background:var(--navy,#111A33); border:1px solid var(--border-bright,rgba(201,194,176,.26)); border-right:none; border-radius:2px 0 0 2px; }
.cv-amt input { border-radius:0 2px 2px 0; text-align:right; font-variant-numeric:tabular-nums; }

.cv-add { margin-top:12px; font-size:12.5px; font-weight:700; color:var(--gold,#D4A24A); background:none;
  border:1px dashed var(--border-bright,rgba(201,194,176,.26)); border-radius:2px; padding:8px 14px; cursor:pointer; }
.cv-add:hover { border-color:var(--gold,#D4A24A); color:var(--gold-light,#E2C281); }
.cv-x-sm { flex:none; background:none; border:none; color:var(--text-dim,#93A0BC); font-size:14px; cursor:pointer; padding:2px 5px; }
.cv-x-sm:hover { color:var(--gold,#D4A24A); }

.cv-static { font-size:13px; color:var(--text,#F5F1E8); padding:8px 9px; background:var(--navy,#111A33);
  border:1px solid var(--border-bright,rgba(201,194,176,.26)); border-radius:2px; }
.cv-split { margin-top:10px; font-size:11.5px; font-weight:700; color:var(--gold,#D4A24A); background:none; border:none;
  cursor:pointer; padding:0; text-decoration:underline; text-underline-offset:2px; }
.cv-split:hover { color:var(--gold-light,#E2C281); }
.cv-rider-fund { margin-top:12px; border:1px solid var(--border,rgba(201,194,176,.13)); border-radius:3px; padding:8px 10px; background:var(--navy-mid,#0B1226); }
.cv-rider-fund-lbl { font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text-dim,#93A0BC); margin-bottom:4px; }
.cv-rider-fund .cv-fund-line { padding:5px 2px; border-top:1px solid var(--border,rgba(201,194,176,.13)); }
.cv-rider-fund .cv-fund-line:first-of-type { border-top:none; }
.cv-rider-fund .cv-add { margin-top:6px; padding:6px 10px; font-size:11.5px; }

.cv-foot { padding:14px 22px; border-top:1px solid var(--border,rgba(201,194,176,.13)); display:flex; justify-content:flex-end; }
.cv-done { font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--navy,#111A33);
  background:var(--gold,#D4A24A); border:none; border-radius:4px; padding:10px 22px; cursor:pointer; }
.cv-done:hover { background:var(--gold-light,#E2C281); }

/* row trigger button in the tables */
.cv-trigger { font-size:11.5px; font-weight:700; color:var(--gold,#D4A24A); background:rgba(212,162,74,.14);
  border:1px solid rgba(212,162,74,.4); border-radius:999px; padding:4px 10px; cursor:pointer; white-space:nowrap; }
.cv-trigger:hover { background:rgba(212,162,74,.24); }
.cv-trigger .dot { color:var(--gold-light,#E2C281); }
/* Financing bubble — blue, to differentiate from the gold riders bubble. */
.fin-trigger { font-size:11.5px; font-weight:700; color:#7DA8C2; background:rgba(91,124,153,.16);
  border:1px solid rgba(91,124,153,.5); border-radius:999px; padding:4px 10px; cursor:pointer; white-space:nowrap; }
.fin-trigger:hover { background:rgba(91,124,153,.28); }
/* Per-card "Total Benefit — incl. riders" header strip (visually distinct, gold). */
.cv-benefit-slot:empty { display:none; }
.cv-benefit-hdr { display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; margin:0 0 12px;
  padding:8px 12px; background:linear-gradient(180deg, rgba(201,169,110,.15), rgba(201,169,110,.05));
  border:1px solid rgba(201,169,110,.38); border-radius:6px; }
.cv-benefit-title { font-size:10px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:var(--gold,#C9A96E); }
.cv-benefit-chips { display:flex; flex-wrap:wrap; gap:6px 8px; }
.cv-benefit-chip { display:inline-flex; align-items:baseline; gap:6px; padding:3px 10px;
  background:rgba(0,0,0,.20); border:1px solid rgba(201,169,110,.30); border-radius:999px; }
.cv-benefit-k { font-size:10px; font-weight:600; letter-spacing:.03em; text-transform:uppercase; color:var(--text-muted,#9b9484); }
.cv-benefit-v { font-size:12.5px; font-weight:700; color:var(--cream,#EDE3CE); font-variant-numeric:tabular-nums; white-space:nowrap; }

@media (max-width:640px){ .cv-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .cv-span2 { grid-column:span 2; } }
