:root{
  --bg: #090e17; /* Deeper, richer background */
  --card: #141b2d; /* Slightly lighter card for depth */
  --card2: #1e293b;
  --line: rgba(255,255,255,0.08); /* More subtle borders */
  --text: #f1f5f9;
  --muted: #94a3b8;
  --primary: #3b82f6;
  --primary-hover: #60a5fa;
  --danger: #ef4444;
  --warn: #f59e0b;
  --good: #10b981;
}
*{box-sizing:border-box; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;}
html,body{height:100%}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text); line-height: 1.5;}
.app{min-height:100%;display:flex;flex-direction:column}
.top{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-bottom:1px solid var(--line);background:rgba(9, 14, 23, 0.85);backdrop-filter:blur(12px);position:sticky;top:0;z-index:100}
.left{display:flex;align-items:center;gap:16px}
.logo{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg, rgba(59,130,246,0.2), rgba(59,130,246,0.05));border:1px solid rgba(59,130,246,.25); box-shadow: 0 4px 12px rgba(0,0,0,0.2);}
.logoImg{width:28px;height:28px;display:block;object-fit:contain;image-rendering:auto;}
.h1{font-weight:600; font-size: 16px; letter-spacing: -0.01em;}
.sub{font-size:12px;color:var(--muted); margin-top:2px;}
.right{display:flex;align-items:center;gap:12px}
.pill{font-size:11px;font-weight: 500; text-transform: uppercase; letter-spacing: 0.05em; padding:4px 10px;border-radius:6px;border:1px solid var(--line);background:rgba(255,255,255,0.03)}
.sync{font-size:12px;color:var(--muted)}
.main{width:100%;max-width:900px;margin:0 auto;padding:32px 20px 60px}
.content.hidden{display:none}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:0 12px 40px rgba(0,0,0,.35)}
.muted{color:var(--muted)}
.btnrow{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.btn{padding:10px 18px;border-radius:8px;border:1px solid rgba(255,255,255,0.12);background:rgba(255,255,255,0.05);color:var(--text);cursor:pointer;font-weight:500; font-size:14px; transition: all 0.2s ease;}
.btn:hover{background:rgba(255,255,255,0.1); border-color:rgba(255,255,255,0.2);}
.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none;}
.btn.primary{background:var(--primary);color:#fff;border:none;box-shadow: 0 4px 12px rgba(59,130,246,0.3);}
.btn.primary:hover{background:var(--primary-hover); transform:translateY(-1px); box-shadow: 0 6px 16px rgba(59,130,246,0.4);}
.btn.ghost{background:transparent; border-color:transparent;}
.btn.ghost:hover{background:rgba(255,255,255,0.05);}
.btn.tiny{padding: 6px 12px; font-size: 12px;}

/* Button reliability on mobile/touch (prevents "dead" feeling) */
button,.btn{-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none;}
button, a{
  min-height:44px;
  min-width:44px;
}
button:active:not(:disabled),.btn:active:not(:disabled){transform:translateY(1px); box-shadow:none;}
.callout{margin-top:20px;border:1px solid rgba(59,130,246,.3);background:rgba(59,130,246,.05);padding:16px;border-radius:12px}
.calloutTitle{font-weight:600;margin-bottom:8px; color: #60a5fa;}
.scrollbox{height:300px;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:16px;background:rgba(0,0,0,.2)}
.checkbox{display:flex;gap:12px;align-items:center;margin:16px 0;color:var(--muted); font-size:14px;}
.toprow{display:flex;justify-content:space-between;align-items:center;gap:16px; margin-bottom: 24px;}
.tag{font-size:11px;font-weight:600; text-transform:uppercase; letter-spacing:0.05em; padding:4px 8px;border-radius:6px;background:rgba(16, 185, 129, 0.15);border:1px solid rgba(16, 185, 129, 0.3); color: #34d399;}
.progress{display:flex;align-items:center;gap:12px;min-width:260px}
.bar{flex:1;height:6px;border-radius:999px;background:rgba(255,255,255,0.06);overflow:hidden;}
.fill{height:100%;width:0;background:var(--primary); transition: width 0.3s ease;}
.pct{font-size:12px;color:var(--muted);min-width:32px;text-align:right}
.q{font-size: 18px; font-weight: 500; margin:0 0 12px; line-height: 1.4;}
.note{font-size:14px;color:var(--muted);margin:0 0 20px; line-height:1.5;}
.opts{display:grid;gap:12px}
.opt{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);background:rgba(255,255,255,.02);padding:14px 16px;border-radius:12px;cursor:pointer; transition: all 0.2s ease;}
.opt:hover{background:rgba(255,255,255,.05); border-color:rgba(255,255,255,0.15);}
.opt input{margin-top:4px; transform: scale(1.1); cursor:pointer;}
.opt .txt{color:var(--text); font-size: 15px;}
.custom-select{width:100%;padding:12px 16px;border-radius:8px;border:1px solid var(--line);background:rgba(0,0,0,.2);color:var(--text); font-size:15px; outline:none; transition:border-color 0.2s ease;}
.custom-select:focus{border-color:var(--primary);}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:860px){.grid2{grid-template-columns:1fr}}
.scoregrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}
@media (max-width:860px){.scoregrid{grid-template-columns:1fr}}
.scorecard{border:1px solid var(--line);background:rgba(15,23,42,.6);padding:12px;border-radius:14px}
.scorecard h3{margin:0 0 6px;font-size:12px;color:var(--muted);letter-spacing:.4px}
.scorecard .n{font-size:22px;font-weight:800}
.panels{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
@media (max-width:860px){.panels{grid-template-columns:1fr}}
.panel{border:1px solid var(--line);background:rgba(15,23,42,.6);padding:12px;border-radius:14px}
.panel h4{margin:0 0 8px;font-size:12px;color:var(--muted);letter-spacing:.4px}
.warn{border:1px solid rgba(245,158,11,.35);background:rgba(245,158,11,.08);padding:8px;border-radius:12px;margin-bottom:8px}
.bad{border:1px solid rgba(239,68,68,.35);background:rgba(239,68,68,.08);padding:8px;border-radius:12px;margin-bottom:8px}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.tab{font-size:12px;padding:8px 10px;border-radius:999px;border:1px solid var(--line);background:rgba(15,23,42,.6);cursor:pointer;color:var(--muted)}
.tab.active{color:var(--text);border-color:rgba(59,130,246,.55);background:rgba(59,130,246,.18)}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;white-space:pre-wrap;line-height:1.35;color:#cbd5e1}
.comp-table{width:100%;border-collapse:collapse;margin-top:10px;font-size:13px}
.comp-table th,.comp-table td{border-bottom:1px solid var(--line);padding:10px;text-align:left}
.val-good{color:var(--good)}
.val-bad{color:var(--danger)}
.footerRow{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:12px}
.small{font-size:12px;color:var(--muted)}
.modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.55);padding:18px;z-index:1000}
.modalCard{width:min(720px,100%);background:rgba(17,24,39,.95);border:1px solid var(--line);border-radius:18px;padding:14px}
textarea{width:100%;min-height:240px;border-radius:14px;border:1px solid var(--line);background:rgba(15,23,42,.85);color:var(--text);padding:12px}

/* --- Completeness fixes / shared utility classes --- */
.hidden{display:none}

.row{display:flex;justify-content:space-between;align-items:center;gap:10px}
.stack{display:grid;gap:12px}

.split{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
@media (max-width:860px){.split{grid-template-columns:1fr}}

.box{border:1px solid var(--line);background:rgba(15,23,42,.6);padding:12px;border-radius:14px;max-height:240px;overflow:auto}
.warnbox{border:1px solid var(--line);background:rgba(15,23,42,.45);padding:12px;border-radius:14px;max-height:200px;overflow:auto}

.trace{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:14px;padding:12px;background:rgba(15,23,42,.6);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;white-space:pre-wrap;line-height:1.35;color:#cbd5e1}
.audit{height:240px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;white-space:pre;line-height:1.35;color:#cbd5e1}

.btn.tiny{padding:6px 8px;font-size:12px;border-radius:10px}

.planCurrent{border:1px solid var(--line);border-radius:14px;background:rgba(59,130,246,.08);padding:12px;margin:10px 0}
.planGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (max-width:760px){.planGrid{grid-template-columns:1fr}}
.planCard{display:grid;gap:6px;text-align:left;border:1px solid var(--line);border-radius:14px;background:rgba(15,23,42,.7);color:var(--text);padding:12px;cursor:pointer}
.planCard.active{border-color:rgba(59,130,246,.75);background:rgba(59,130,246,.16)}
.planName{font-weight:800}
.planPrice{font-size:18px;font-weight:800}
.planText{font-size:12px;color:var(--muted);line-height:1.35}
.reportProductGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px;max-height:56vh;overflow:auto;padding-right:4px}
@media (max-width:760px){.reportProductGrid{grid-template-columns:1fr}}
.reportProductCard{display:grid;gap:8px;text-align:left;border:1px solid var(--line);border-radius:14px;background:rgba(15,23,42,.7);color:var(--text);padding:12px}
.reportPreview{width:min(980px,100%);max-height:92vh;overflow:auto}
.reportPreviewBody{background:#fff;color:#111827;border-radius:12px;padding:18px;max-height:68vh;overflow:auto}
.printReport{font-family:Georgia, 'Times New Roman', serif;color:#111827;background:#fff;line-height:1.45}
.reportPage{background:#fff;color:#111827;padding:24px;page-break-after:always}
.reportHeader{border-bottom:2px solid #111827;margin-bottom:16px;padding-bottom:10px}
.reportHeader h2{font-size:28px;margin:0 0 6px;color:#111827}
.reportKicker{font:700 11px/1.2 Inter,system-ui,sans-serif;text-transform:uppercase;letter-spacing:.08em;margin:0 0 6px;color:#334155}
.reportSection{margin:18px 0}
.reportSection h3{font:800 16px/1.25 Inter,system-ui,sans-serif;color:#111827;margin:0 0 8px}
.reportSection p,.reportSection li{font-size:14px}
.reportTable{width:100%;border-collapse:collapse;margin:8px 0 12px;font-size:13px}
.reportTable th,.reportTable td{border:1px solid #cbd5e1;padding:8px;text-align:left;vertical-align:top}
.reportScriptBox{border:2px solid #111827;padding:12px;background:#f8fafc}
.reportDisclaimer{border-top:1px solid #94a3b8;margin-top:18px;padding-top:10px;font-size:11px;color:#334155}
.printOnly{display:none}

.proReport{margin-top:12px;border:1px solid var(--line);border-radius:14px;background:rgba(15,23,42,.45);padding:12px}
.proReport summary{cursor:pointer;font-weight:700}
.proSubhead{margin:12px 0 8px;font-size:12px;font-weight:800;letter-spacing:.4px;color:var(--text)}
.proGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (max-width:720px){.proGrid{grid-template-columns:1fr}}
.proGrid label,.proNotesLabel{display:grid;gap:6px;font-size:12px;color:var(--muted)}
.proGrid input,.proGrid select,.proNotesLabel textarea{width:100%;border:1px solid var(--line);border-radius:12px;background:rgba(15,23,42,.85);color:var(--text);padding:10px}
.proNotesLabel{margin-top:10px}

.foot{margin-top:auto;border-top:1px solid var(--line);padding:12px 16px;background:rgba(15,23,42,.6)}
.foot a{color:var(--text);text-decoration:none;opacity:.9}
.foot a:hover{text-decoration:underline}

@media print {
  body{background:#fff !important;color:#000 !important}
  body.printing-report .top,
  body.printing-report .foot,
  body.printing-report .main,
  body.printing-report .noPrint,
  body.printing-report .modal:not(#reportPreviewModal){
    display:none !important;
  }
  body.printing-report #reportPreviewModal{
    position:static !important;
    display:block !important;
    padding:0 !important;
    background:#fff !important;
  }
  body.printing-report #reportPreviewModal .modalCard{
    width:100% !important;
    max-height:none !important;
    overflow:visible !important;
    border:none !important;
    padding:0 !important;
    background:#fff !important;
  }
  body.printing-report .reportPreviewBody{
    max-height:none !important;
    overflow:visible !important;
    padding:0 !important;
  }
  .printOnly{display:block}
  .reportPage{page-break-after:always;padding:0.35in}
}



/* --- Glossary UI --- */
.glossaryTop{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0}
.gField{flex:1;min-width:240px}
.gField label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}
.gField input,.gField select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:rgba(15,23,42,.6);color:var(--text)}
.glossaryGrid{display:grid;grid-template-columns:1fr 1.35fr;gap:12px;align-items:stretch}
@media (max-width:860px){.glossaryGrid{grid-template-columns:1fr}}
.glossaryList{border:1px solid var(--line);background:rgba(15,23,42,.6);border-radius:14px;overflow:auto;max-height:55vh}
.glossaryItem{padding:10px 12px;border-bottom:1px solid var(--line);cursor:pointer;display:flex;justify-content:space-between;gap:10px}
.glossaryItem:last-child{border-bottom:none}
.glossaryItem:hover{background:rgba(255,255,255,.04)}
.glossaryItem.active{background:rgba(255,255,255,.06);outline:2px solid rgba(255,255,255,.10)}
.glossaryTerm{font-weight:700}
.glossaryDef{font-size:12px;line-height:1.25;color:rgba(255,255,255,.75);margin-top:4px;max-width:38ch;}
.glossaryCat{font-size:12px;color:var(--muted)}
.glossaryDetail{border:1px solid var(--line);background:rgba(15,23,42,.6);border-radius:14px;padding:14px;overflow:auto;max-height:55vh}
.glossaryDetail h4{margin:0 0 8px 0}
.pillRow{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.kpill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;font-size:12px;cursor:pointer;background:rgba(17,24,39,.25);color:var(--text)}
.kpill:hover{background:rgba(255,255,255,.06)}
.kpill .mini{font-size:11px;color:var(--muted)}
.glossMeta{margin-top:12px}
.glossMetaBody{margin-top:10px;display:grid;gap:12px}


/* ===== Premium decision-packet interface ===== */
:root{
  --ink:#07111f;
  --ink2:#0d1b2d;
  --surface:rgba(18,29,48,.86);
  --surface2:rgba(25,41,66,.9);
  --surface3:rgba(255,255,255,.07);
  --line-strong:rgba(173,203,235,.22);
  --text-strong:#f8fbff;
  --muted-strong:#c8d5e7;
  --teal:#22c7b8;
  --gold:#f3c969;
  --blue:#6aa7ff;
}
body{
  font-size:17px;
  line-height:1.6;
  background:
    radial-gradient(circle at 12% 0%, rgba(34,199,184,.18), transparent 34%),
    radial-gradient(circle at 90% 12%, rgba(243,201,105,.12), transparent 28%),
    linear-gradient(135deg,#06101d 0%,#0c1728 48%,#101928 100%);
}
.skip-link:focus{
  position:fixed !important;
  left:16px !important;
  top:16px !important;
  width:auto !important;
  height:auto !important;
  z-index:2000;
  padding:12px 16px;
  border-radius:10px;
  background:#fff;
  color:#07111f;
}
.top{
  align-items:flex-start;
  gap:18px;
  padding:16px 22px;
  background:rgba(7,17,31,.82);
  border-bottom:1px solid var(--line-strong);
  box-shadow:0 12px 34px rgba(0,0,0,.24);
}
.left{gap:14px;min-width:260px}
.logo{width:48px;height:48px;border-radius:14px;background:linear-gradient(145deg,rgba(106,167,255,.28),rgba(34,199,184,.16));border-color:rgba(170,211,255,.32)}
.logoImg{width:34px;height:34px}
.h1{font-size:20px;font-weight:800;letter-spacing:0}
.sub{font-size:14px;color:var(--muted-strong);max-width:420px}
.right{justify-content:flex-end;flex-wrap:wrap;gap:10px}
.pill,.sync{
  min-height:36px;
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  color:var(--text-strong);
}
.sync{padding:6px 12px;border:1px solid rgba(34,199,184,.32);background:rgba(34,199,184,.12)}
.pill{font-size:12px;background:rgba(243,201,105,.13);border-color:rgba(243,201,105,.34);color:#ffe5a3}
.main{max-width:1180px;padding:34px 22px 72px}
.content{animation:screenIn 220ms ease both}
.card,.heroPanel{
  background:linear-gradient(180deg,rgba(22,35,57,.92),rgba(14,25,43,.9));
  border:1px solid var(--line-strong);
  box-shadow:0 22px 60px rgba(0,0,0,.34);
}
.card h1,.card h2,.heroPanel h1,.heroPanel h2{font-size:clamp(2rem,4vw,3.8rem);line-height:1.05;letter-spacing:0;margin:0 0 16px}
.card h3{font-size:1.25rem;line-height:1.25;letter-spacing:0}
.muted{color:var(--muted-strong)}
.eyebrow{color:#9ee9df;font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}
.heroPanel{border-radius:22px;padding:34px;overflow:hidden;position:relative}
.heroPanel:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(106,167,255,.12),transparent 44%,rgba(243,201,105,.08));pointer-events:none}
.heroContent,.heroPreview{position:relative}
.heroPanel{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.65fr);gap:28px;align-items:center}
.heroLead{font-size:1.18rem;line-height:1.55;color:#eaf2ff;max-width:760px}
.trustChips,.resultChips,.reportTags{display:flex;gap:10px;flex-wrap:wrap}
.trustChips span,.resultChips span,.reportTags span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:6px 12px;
  border-radius:999px;
  border:1px solid rgba(202,221,244,.2);
  background:rgba(255,255,255,.07);
  color:#edf6ff;
  font-size:14px;
  font-weight:700;
}
.heroActions{margin-top:26px}
.btn{
  min-height:46px;
  padding:12px 18px;
  border-radius:12px;
  font-size:16px;
  font-weight:800;
  color:#f8fbff;
  border-color:rgba(207,224,246,.22);
  background:rgba(255,255,255,.08);
}
.btn.large{min-height:52px;padding:14px 22px;font-size:17px}
.btn.primary{background:linear-gradient(135deg,#2f7df0,#1aa89d);box-shadow:0 14px 28px rgba(33,130,212,.28)}
.btn.ghost{border-color:rgba(207,224,246,.16)}
.btn.tiny{min-height:40px;font-size:14px;padding:9px 12px}
.paperMini{background:#fff;color:#0f172a;border-radius:10px;padding:24px;box-shadow:0 24px 58px rgba(0,0,0,.32);transform:rotate(1.5deg)}
.paperLine{height:11px;border-radius:999px;background:#cbd5e1;margin:12px 0}
.paperLine.strong{height:16px;background:#0f172a;width:80%}
.paperLine.short{width:62%}
.paperCheck{margin-top:20px;border:1px solid #d6b04d;background:#fff8df;color:#2f2611;border-radius:8px;padding:12px;font-weight:800;font-size:15px}
.miniCaption{font-size:15px;color:var(--muted-strong);margin-top:18px}
.helpGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px}
.infoTile{border:1px solid var(--line-strong);border-radius:16px;background:rgba(255,255,255,.055);padding:18px}
.infoTile h2,.infoTile h3{font-size:1.05rem;margin:0 0 8px}
.infoTile p{margin:0;color:var(--muted-strong)}
.reportStrip{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.reportStrip span{border:1px solid rgba(243,201,105,.3);background:rgba(243,201,105,.1);border-radius:12px;padding:10px 12px;font-weight:800}
.privacyBanner{margin-top:18px;border:1px solid rgba(34,199,184,.32);background:rgba(34,199,184,.1);padding:16px;border-radius:14px;color:#e8fffb}
.disclosureSummary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}
.disclosureSummary div{border:1px solid var(--line-strong);background:rgba(255,255,255,.055);border-radius:14px;padding:14px}
.disclosureSummary strong{display:block;color:#fff;font-size:16px;margin-bottom:6px}
.disclosureSummary span{display:block;color:var(--muted-strong);font-size:15px}
.scrollbox{height:360px;font-size:17px;background:rgba(4,10,19,.34);border-color:var(--line-strong)}
.consentStatus{margin-top:14px;border-radius:12px;padding:12px 14px;background:rgba(243,201,105,.1);border:1px solid rgba(243,201,105,.28);color:#ffe8a8;font-weight:800}
.checkbox{font-size:17px;color:#f3f7ff;align-items:flex-start}
.checkbox input{width:22px;height:22px;margin-top:2px}
.quizCard{max-width:880px;margin:0 auto}
.sectionName{font-size:1.15rem;font-weight:800;color:#fff;margin-top:4px}
.progress{min-width:300px}
.bar{height:11px;background:rgba(255,255,255,.1)}
.fill{background:linear-gradient(90deg,var(--teal),var(--blue));transition:width 360ms ease}
.pct{font-size:15px;min-width:108px;color:#edf6ff;font-weight:800}
#qText{font-size:clamp(1.65rem,3vw,2.5rem);line-height:1.18;margin-bottom:12px}
.note{font-size:17px;color:#d5e2f3}
.assessmentTip{margin-top:16px;color:#e6f4ff;background:rgba(106,167,255,.09);border:1px solid rgba(106,167,255,.24);padding:12px 14px;border-radius:12px}
.opts{gap:14px}
.opt{min-height:58px;padding:17px 18px;border-radius:14px;border-color:rgba(207,224,246,.18);background:rgba(255,255,255,.055)}
.opt .txt{font-size:17px;line-height:1.4}
.opt input{width:22px;height:22px;accent-color:var(--teal)}
.opt.selected{border-color:rgba(34,199,184,.75);background:rgba(34,199,184,.15);box-shadow:0 0 0 3px rgba(34,199,184,.08)}
.opt.selected:after{content:"Selected";margin-left:auto;color:#9ee9df;font-size:13px;font-weight:900}
.custom-select,.proGrid input,.proGrid select,.proNotesLabel textarea,textarea{min-height:48px;font-size:16px}
.resultHero{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:16px;background:linear-gradient(135deg,rgba(22,47,78,.96),rgba(18,47,57,.92))}
.resultHero h1,.resultHero h2{font-size:clamp(2rem,4vw,3.4rem)}
.confidenceBadge{flex:0 0 auto;border:1px solid rgba(243,201,105,.42);background:rgba(243,201,105,.12);color:#ffe7a0;border-radius:18px;padding:18px 20px;font-size:1.15rem;font-weight:900}
.resultChips{margin-bottom:16px}
.scorecard{border-color:var(--line-strong);background:rgba(255,255,255,.055);padding:16px}
.scorecard.winner{border-color:rgba(34,199,184,.7);background:rgba(34,199,184,.13)}
.scorecard h3{font-size:15px;color:#dceafe}
.scorecard .n{font-size:2rem}
.scoreLabel{margin-top:4px;color:#9ee9df;font-size:13px;font-weight:900}
.box,.warnbox{max-height:none;font-size:16px;border-color:var(--line-strong)}
.warn,.bad{display:grid;gap:4px;padding:12px 14px}
.warn strong,.bad strong{text-transform:uppercase;font-size:13px;letter-spacing:.05em}
.warn span,.bad span{font-size:16px}
#reportCtaBox{background:linear-gradient(135deg,rgba(34,199,184,.17),rgba(106,167,255,.13));border-color:rgba(34,199,184,.45);padding:22px}
#reportCtaBox h3{font-size:1.55rem;margin:0 0 8px}
.advancedCard{background:rgba(11,20,35,.72)}
.modal{background:rgba(2,7,14,.72);backdrop-filter:blur(10px);align-items:flex-start;overflow:auto}
.modalCard{width:min(980px,100%);margin:32px auto;border-radius:20px;padding:22px;background:linear-gradient(180deg,rgba(18,29,48,.98),rgba(11,20,35,.98));box-shadow:0 24px 80px rgba(0,0,0,.5)}
.reportProductGrid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none;overflow:visible}
.reportProductCard{position:relative;border-color:var(--line-strong);background:rgba(255,255,255,.06);padding:18px;border-radius:16px}
.reportProductCard.featured{border-color:rgba(243,201,105,.45);background:linear-gradient(180deg,rgba(243,201,105,.11),rgba(255,255,255,.055))}
.reportIcon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:rgba(34,199,184,.14);border:1px solid rgba(34,199,184,.35);font-size:22px;font-weight:900;color:#9ee9df}
.reportProductCard .row{align-items:flex-start;justify-content:flex-start}
.planName{font-size:1.08rem}
.planPrice{margin-left:auto;color:#ffe7a0;font-size:1.45rem}
.planText{font-size:16px;color:#d7e4f5}
.reportTags{margin-top:2px}
.reportTags span{font-size:13px;min-height:30px}
.reportEmptyState{grid-column:1/-1;border:1px dashed rgba(202,221,244,.32);border-radius:16px;padding:20px;background:rgba(106,167,255,.08)}
.reportEmptyState h4{font-size:1.25rem;margin:0 0 8px}
.reportPreview{width:min(1120px,100%)}
.reportActionBar{position:sticky;top:0;z-index:2;background:rgba(12,22,38,.96);padding-bottom:12px;border-bottom:1px solid var(--line-strong)}
.reportActions{margin-top:0;justify-content:flex-end}
.reportPreviewBody{max-height:none;width:min(850px,100%);margin:18px auto;background:#f8fafc;color:#0f172a;padding:28px;border-radius:10px;box-shadow:0 28px 70px rgba(0,0,0,.42)}
.printReport{font-size:17px;line-height:1.55}
.reportPage{padding:34px;background:#fff;color:#111827;border:1px solid #dbe3ef;box-shadow:0 12px 36px rgba(15,23,42,.12)}
.reportHeader h2{font-size:34px;line-height:1.1}
.reportSection h3{font-size:21px;margin-top:22px}
.reportSection p,.reportSection li{font-size:17px;line-height:1.55}
.reportTable{font-size:16px}
.reportScriptBox{font-size:19px;line-height:1.6}
.reportDisclaimer{font-size:13px}
.tabs{gap:10px}
.tab{min-height:42px;font-size:15px;border-radius:12px;color:#d8e5f6}
.legalPane .mono{font-size:15px;line-height:1.55;color:#e6edf7}
.glossaryTop{gap:14px}
.gField label{font-size:15px;color:#e7f1ff}
.gField input,.gField select{min-height:50px;font-size:16px;border-color:var(--line-strong)}
.glossaryItem{padding:14px}
.glossaryTerm{font-size:17px}
.glossaryDef,.glossaryCat{font-size:14px}
.glossaryDetail{font-size:17px}
.kpill{min-height:38px;font-size:15px}
.foot{font-size:15px;color:var(--muted-strong)}
@keyframes screenIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none !important;transition:none !important;scroll-behavior:auto !important}
}
@media (max-width:900px){
  .top{flex-direction:column}
  .right{justify-content:flex-start}
  .heroPanel{grid-template-columns:1fr;padding:24px}
  .helpGrid,.disclosureSummary{grid-template-columns:1fr 1fr}
  .resultHero{display:grid}
  .confidenceBadge{width:max-content}
  .reportProductGrid{grid-template-columns:1fr}
}
@media (max-width:620px){
  body{font-size:16px}
  .main{padding:22px 14px 54px}
  .card{padding:20px;border-radius:14px}
  .left{min-width:0}
  .right .btn{flex:1 1 46%;justify-content:center}
  .helpGrid,.disclosureSummary{grid-template-columns:1fr}
  .btnrow{display:grid;grid-template-columns:1fr}
  .progress{min-width:0;width:100%;display:grid}
  .toprow{display:grid}
  .grid2,.split{grid-template-columns:1fr}
  .modal{padding:10px}
  .modalCard{margin:12px auto;padding:16px}
  .reportActionBar{display:grid}
  .reportActions{display:grid;grid-template-columns:1fr}
  .reportPreviewBody{padding:14px}
}

@media print {
  @page{margin:.55in}
  .printReport{font-size:14pt;line-height:1.5;color:#000;background:#fff}
  .reportPage{box-shadow:none;border:none;padding:0;break-after:page;page-break-after:always}
  .reportSection{break-inside:avoid;page-break-inside:avoid}
  .reportHeader h2{font-size:25pt}
  .reportSection h3{font-size:16pt;color:#000}
  .reportSection p,.reportSection li,.reportTable{font-size:12.5pt;color:#000}
  .reportScriptBox{font-size:15pt;border:2px solid #000;background:#fff}
}

/* ===== Premium printable packet overrides ===== */
.reportPreview{
  width:min(1120px,100%);
  max-height:92vh;
  overflow:auto;
}

.reportPreviewBody{
  width:min(860px,100%);
  margin:18px auto 6px;
  background:#faf7f2;
  color:#111827;
  border-radius:18px;
  padding:30px;
  box-shadow:0 32px 84px rgba(15,23,42,.34);
}

.reportPreviewMeta{
  margin:8px auto 14px;
  width:min(860px,100%);
}

.reportPreviewStatus{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:6px 12px;
  border-radius:999px;
  border:1px solid rgba(17,24,39,.14);
  background:rgba(255,255,255,.65);
  color:#0f172a;
  font-size:13px;
  font-weight:800;
}

.reportPreviewBadge{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:6px 12px;
  border-radius:999px;
  border:1px solid rgba(17,24,39,.12);
  background:rgba(255,255,255,.75);
  color:#0f172a;
  font-size:13px;
  font-weight:800;
  margin:4px 0 0;
}

.reportDocument{
  color:#111827;
  font-family: "Georgia", "Times New Roman", serif;
  font-size:17px;
  line-height:1.65;
}

.reportPage{
  background:#fff;
  color:#111827;
  border:1px solid #d7dfe8;
  border-radius:20px;
  padding:30px;
  box-shadow:0 16px 48px rgba(15,23,42,.12);
}

.reportPage + .reportPage{
  margin-top:18px;
}

.reportPageBreak{
  break-after:page;
  page-break-after:always;
}

.reportHeader{
  border-bottom:2px solid #0f172a;
  padding-bottom:14px;
  margin-bottom:16px;
}

.reportKicker{
  margin:0 0 8px;
  font:800 11px/1.2 "Inter", system-ui, sans-serif;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:#475569;
}

.reportHeader h2{
  margin:0 0 8px;
  font:800 34px/1.06 "Inter", system-ui, sans-serif;
  color:#0f172a;
}

.reportSubtitle{
  margin:0;
  font-size:16px;
  color:#334155;
}

.reportMetaGrid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-top:16px;
}

.reportMetaGrid div,
.reportResultBand > div{
  border:1px solid #d9e1ea;
  background:#f8fafc;
  border-radius:14px;
  padding:12px 14px;
}

.reportMetaGrid span,
.reportResultLabel{
  display:block;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#64748b;
  margin-bottom:4px;
  font-weight:800;
}

.reportMetaGrid strong,
.reportResultBand strong{
  display:block;
  font-size:15px;
  color:#0f172a;
}

.reportReadinessBanner{
  margin:16px 0 12px;
  border-radius:16px;
  padding:14px 16px;
  border:1px solid #d7dfe8;
  background:#f8fafc;
  color:#0f172a;
}

.reportReadinessBanner strong{
  display:block;
  font:800 15px/1.3 "Inter", system-ui, sans-serif;
  margin-bottom:6px;
}

.reportReadinessBanner span{
  display:block;
  font-size:14px;
  line-height:1.5;
}

.reportGenerationLine{
  margin:10px 0 0;
  font:700 13px/1.4 "Inter", system-ui, sans-serif;
  color:#475569;
}

.reportReadinessBanner--complete{
  border-color:#cbd5e1;
  background:#eff6ff;
}

.reportReadinessBanner--preliminary,
.reportReadinessBanner--in-progress,
.reportReadinessBanner--not-started{
  border-color:#d6b04d;
  background:#fff8df;
}

.reportResultBand{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:14px 0 4px;
}

.reportSection{
  margin:18px 0 0;
  break-inside:avoid;
  page-break-inside:avoid;
}

.reportSection h3{
  margin:0 0 10px;
  font:800 18px/1.25 "Inter", system-ui, sans-serif;
  color:#0f172a;
}

.reportSectionEmphasis{
  margin:-4px 0 10px;
  font-size:14px;
  color:#475569;
}

.reportChecklist{
  margin:0;
  padding-left:20px;
  font-size:16px;
  line-height:1.55;
}

.reportChecklist li{
  margin:0 0 8px;
}

.reportScript{
  border:2px solid #0f172a;
  background:#fff;
  border-radius:18px;
  padding:16px 18px;
  font-size:18px;
  line-height:1.65;
}

.reportScript p{
  margin:0 0 12px;
}

.reportScript p:last-child{
  margin-bottom:0;
}

.reportTable{
  width:100%;
  border-collapse:collapse;
  margin:8px 0 0;
  font-size:15px;
}

.reportTable th,
.reportTable td{
  border:1px solid #cbd5e1;
  padding:10px 12px;
  text-align:left;
  vertical-align:top;
}

.reportTable th{
  background:#eef2f7;
  font-weight:800;
}

.reportTableSection .reportTable{
  margin-top:0;
}

.reportWarningBox,
.reportNoteBox{
  border-radius:16px;
  padding:14px 16px;
  margin:8px 0 0;
}

.reportWarningBox{
  background:#fff7ed;
  border:1px solid #fdba74;
}

.reportNoteBox{
  background:#f8fafc;
  border:1px solid #d7dfe8;
}

.reportSignatureTable td:first-child{
  width:32%;
  font-weight:700;
}

.reportFooter{
  margin-top:20px;
  padding-top:14px;
  border-top:1px solid #cbd5e1;
  color:#475569;
  font-size:12px;
  line-height:1.5;
}

.reportFooter p{
  margin:0 0 8px;
}

.pdfActionHint{
  font-size:13px;
  color:#475569;
}

.reportPage--compact .reportScript{
  font-size:19px;
}

.reportPage--compact .reportSection{
  margin-top:16px;
}

body.printing-report{
  background:#fff !important;
  color:#000 !important;
}

body.printing-report .top,
body.printing-report .foot,
body.printing-report .main,
body.printing-report #reportsModal,
body.printing-report #exportModal,
body.printing-report #helpModal,
body.printing-report .reportActionBar,
body.printing-report .noPrint:not(.reportPreviewBody){
  display:none !important;
}

body.printing-report #reportPreviewModal{
  position:static !important;
  inset:auto !important;
  display:block !important;
  padding:0 !important;
  background:#fff !important;
}

body.printing-report #reportPreviewModal .modalCard{
  width:100% !important;
  max-height:none !important;
  overflow:visible !important;
  margin:0 !important;
  border:none !important;
  border-radius:0 !important;
  padding:0 !important;
  background:#fff !important;
  box-shadow:none !important;
}

body.printing-report .reportPreviewBody{
  width:100% !important;
  max-height:none !important;
  overflow:visible !important;
  margin:0 !important;
  padding:0 !important;
  background:#fff !important;
  box-shadow:none !important;
  border-radius:0 !important;
}

body.printing-report .reportDocument,
body.printing-report .reportPage,
body.printing-report .reportSection,
body.printing-report .reportTable,
body.printing-report .reportScript,
body.printing-report .reportFooter{
  box-shadow:none !important;
}

body.printing-report .reportPage{
  break-after:page;
  page-break-after:always;
  border:none !important;
  padding:0 !important;
}

body.printing-report .reportPage:last-child{
  break-after:auto;
  page-break-after:auto;
}

body.printing-report .reportPreviewStatus,
body.printing-report .reportPreviewBadge{
  background:#fff !important;
}

@media print {
  @page{margin:.58in}
  body{background:#fff !important;color:#000 !important}
  body *{box-shadow:none !important;text-shadow:none !important}
  body.printing-report .reportHeader h2,
  body.printing-report .reportSection h3,
  body.printing-report .reportMetaGrid strong,
  body.printing-report .reportResultBand strong{color:#000 !important}
  body.printing-report .reportScript{font-size:16pt !important}
  body.printing-report .reportChecklist,
  body.printing-report .reportTable,
  body.printing-report .reportFooter{font-size:12.5pt !important}
  body.printing-report .reportTable th,
  body.printing-report .reportTable td{padding:8pt !important}
  body.printing-report .reportPage{break-after:page;page-break-after:always}
  body.printing-report .reportPage:last-child{break-after:auto;page-break-after:auto}
  body.printing-report .reportPreviewBody{padding:0 !important}
  body.printing-report .noPrint{display:none !important}
}

/* Current UI guards only. */
.reportIcon{display:grid !important}

.reportReadinessBanner--enrollment-review{
  border-color:#9fd7d2;
  background:#ecfffd;
}
