:root{
  --bg:#f5f7f8;
  --card:#ffffff;
  --text:#182126;
  --muted:#65727a;
  --line:#dfe5e8;
  --accent:#193e33;
  --accent2:#e8f0ed;
  --warn:#fff4d8;
  --error:#fde7e7;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.topbar{height:64px;padding:0 28px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px}
.brand{font-size:21px;font-weight:800;color:var(--text);text-decoration:none}
.badge{font-size:12px;color:var(--muted);background:#f0f3f4;border-radius:999px;padding:5px 9px}
.container{max-width:1120px;margin:0 auto;padding:42px 22px 80px}
.hero{margin-bottom:32px}
.hero h1,.page-head h1{font-size:40px;line-height:1.05;margin:0 0 10px}
.hero p{font-size:18px;color:var(--muted)}
.grid.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:0 4px 18px rgba(20,40,35,.04)}
.form{display:grid;gap:15px}
label{font-weight:650;display:grid;gap:7px}
input{width:100%;border:1px solid #cfd7da;border-radius:10px;padding:12px 13px;font:inherit;background:#fff}
button,.button{border:0;border-radius:10px;padding:12px 15px;background:var(--accent);color:#fff;font-weight:750;text-decoration:none;display:inline-block;cursor:pointer}
.button.secondary{background:var(--accent2);color:var(--accent)}
.list{display:grid;gap:10px}
.list-item{display:flex;justify-content:space-between;gap:16px;padding:14px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--text)}
.list-item span,.muted{color:var(--muted)}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}
.facts{display:grid;grid-template-columns:1fr auto;gap:10px 18px}
.facts dt{color:var(--muted)}
.facts dd{margin:0;font-weight:700}
.issues{display:grid;gap:14px}
.issue{border-top:1px solid var(--line);padding-top:16px}
.issue:first-child{border-top:0;padding-top:0}
.issue-head{display:flex;justify-content:space-between;align-items:center}
.pill{font-size:12px;border-radius:999px;padding:5px 9px;background:#edf1f2}
.pill.high{background:#fde7e7}
.pill.medium{background:#fff4d8}
.pill.low{background:#e8f4ec}
.pill.unknown{background:#eef0f2}
.alert{padding:12px 14px;border-radius:10px;margin-top:15px}
.alert.warn{background:var(--warn)}
.alert.error{background:var(--error)}
.winner{margin-bottom:22px;background:linear-gradient(140deg,#fff,#edf5f1)}
.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:800;color:var(--accent)}
.big-score{font-size:54px;font-weight:900;letter-spacing:-.04em}
.big-score.small{font-size:38px}
.comparison{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.rank{font-size:13px;font-weight:800;color:var(--muted)}
details{background:#f7f9fa;border-radius:10px;padding:10px 12px}
summary{cursor:pointer;font-weight:700}
@media(max-width:850px){
  .grid.two,.comparison{grid-template-columns:1fr}
  .hero h1,.page-head h1{font-size:32px}
  .page-head{align-items:flex-start;flex-direction:column}
}

.actions{display:flex;gap:10px;flex-wrap:wrap}
.scenario-tabs{display:flex;gap:8px;margin-bottom:18px}
.scenario-tabs a{padding:10px 13px;border-radius:999px;text-decoration:none;color:var(--text);background:#fff;border:1px solid var(--line)}
.scenario-tabs a.active{background:var(--accent);color:#fff}
.break-even{background:#f7faf8;border:1px solid var(--line);border-radius:12px;padding:13px;margin:14px 0;display:grid;gap:4px}
.break-even strong{font-size:24px}
.break-even small{color:var(--muted)}
.disagreement{margin-bottom:18px}
.weights-form{grid-template-columns:repeat(2,minmax(0,1fr))}
.weights-form button{grid-column:1/-1}
@media(max-width:700px){.weights-form{grid-template-columns:1fr}}


.buyer-summary { border-width: 2px; }
.summary-text { font-size: 1.08rem; line-height: 1.65; }
.summary-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
  margin: 1.25rem 0;
}
.summary-stats > div {
  border: 1px solid var(--border, #ddd);
  border-radius: 12px;
  padding: .9rem;
  display: flex;
  flex-direction: column;
  gap: .2rem;
}
.summary-stats strong { font-size: 1.4rem; }
.summary-stats span { font-size: .85rem; opacity: .72; }
.issue-type {
  display: block;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: .7rem;
  opacity: .65;
  margin-bottom: .2rem;
}
.cost-box {
  display: flex;
  flex-direction: column;
  gap: .2rem;
  padding: .8rem 1rem;
  margin: .8rem 0;
  border: 1px solid var(--border, #ddd);
  border-radius: 10px;
}
.cost-box span { font-size: 1.05rem; font-weight: 700; }
.cost-box small { opacity: .68; }
.buyer-questions li { margin: .45rem 0; }
@media (max-width: 760px) {
  .summary-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}


.decision-card { padding: 1.4rem; }
.decision-top {
  display:flex;
  justify-content:space-between;
  gap:1.25rem;
  align-items:center;
}
.eyebrow {
  text-transform:uppercase;
  letter-spacing:.09em;
  font-size:.72rem;
  opacity:.6;
  margin-bottom:.3rem;
}
.score-ring {
  min-width:112px;
  height:112px;
  border:2px solid var(--border, #ddd);
  border-radius:999px;
  display:flex;
  justify-content:center;
  align-items:baseline;
  padding-top:30px;
  box-sizing:border-box;
}
.score-number { font-size:2rem; font-weight:800; }
.score-max { opacity:.55; margin-left:.15rem; }

.subscores {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.75rem;
  margin:1.2rem 0 1.4rem;
}
.subscores > div {
  border:1px solid var(--border,#ddd);
  border-radius:12px;
  padding:.85rem;
  display:flex;
  justify-content:space-between;
  gap:.5rem;
}
.subscores span { opacity:.7; font-size:.85rem; }
.subscores strong { font-size:1.1rem; }

.decision-buckets {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.8rem;
}
.decision-bucket {
  border:1px solid var(--border,#ddd);
  border-radius:12px;
  padding:1rem;
}
.decision-bucket h3 { margin-top:0; font-size:1rem; }
.decision-bucket ul { margin:.4rem 0 0; padding-left:1.15rem; }
.decision-bucket li { margin:.35rem 0; }

.score-disclaimer {
  margin:.9rem 0 0;
  font-size:.82rem;
  opacity:.58;
}
@media (max-width: 800px) {
  .subscores { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .decision-buckets { grid-template-columns:1fr; }
  .decision-top { align-items:flex-start; }
}


.subscore-card {
  border:1px solid var(--border,#ddd);
  border-radius:12px;
  padding:.75rem .9rem;
}
.subscore-card summary {
  display:flex;
  justify-content:space-between;
  gap:.6rem;
  cursor:pointer;
  list-style:none;
}
.subscore-card summary::-webkit-details-marker { display:none; }
.score-reasons {
  margin:.7rem 0 0;
  padding-left:1.1rem;
}
.score-reasons li {
  margin:.3rem 0;
  display:flex;
  justify-content:space-between;
  gap:.6rem;
}
.score-reasons li span { opacity:.6; white-space:nowrap; }
.compact { margin:.6rem 0 0; }

.known-costs {
  margin-top:1rem;
  border-top:1px solid var(--border,#ddd);
  padding-top:1rem;
}
.known-costs h3 { margin:.1rem 0 .7rem; font-size:1rem; }
.known-cost-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.65rem;
}
.known-cost-grid > div {
  border:1px solid var(--border,#ddd);
  border-radius:10px;
  padding:.75rem;
  display:flex;
  justify-content:space-between;
  gap:.6rem;
}
.known-cost-grid span { opacity:.72; }
@media (max-width: 700px) {
  .known-cost-grid { grid-template-columns:1fr; }
}

.issue-details { margin:.45rem 0; }
.issue-details summary { cursor:pointer; font-weight:600; }

.document-list { display:flex; flex-direction:column; gap:.5rem; }
.document-row {
  display:flex; align-items:center; justify-content:space-between; gap:.75rem;
  border:1px solid var(--border,#ddd); border-radius:10px; padding:.65rem .75rem;
}
.document-row span { overflow-wrap:anywhere; }
.btn-secondary {
  background:transparent; color:inherit; border:1px solid var(--border,#ccc);
}
.btn-small { padding:.4rem .65rem; font-size:.82rem; }
.small-note { font-size:.8rem; margin:.55rem 0 0; }

.money-input { font-variant-numeric: tabular-nums; }
.decision-explanation { margin:.45rem 0 0; line-height:1.5; max-width:65rem; }
.score-why {
  margin-top:.55rem; font-size:.68rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.04em; opacity:.55;
}
.scope-badge {
  display:inline-flex; align-items:center; width:max-content;
  border-radius:999px; padding:.15rem .42rem; font-size:.64rem;
  font-weight:700; line-height:1.2; margin-left:.35rem;
  border:1px solid var(--border,#ddd); white-space:nowrap;
}
.scope-home { background:rgba(60,120,210,.08); }
.scope-shared { background:rgba(130,90,190,.08); }
.scope-area { background:rgba(210,140,40,.10); }
.scope-economy { background:rgba(40,150,90,.09); }
.scope-legal { background:rgba(110,110,110,.08); }
.money-fact { display:grid !important; grid-template-columns:minmax(0,1fr) auto; gap:.5rem; align-items:center; }

.analysis-basis {
  margin-top:1rem;
  padding:.9rem 1rem;
  border:1px solid var(--border,#ddd);
  border-radius:14px;
  background:rgba(0,0,0,.018);
}
.analysis-basis strong { display:block; margin-bottom:.2rem; }
.analysis-basis p { margin:.25rem 0 .55rem; line-height:1.45; }
.analysis-basis small { display:block; margin-top:.4rem; opacity:.65; }
.doc-progress {
  height:7px;
  width:100%;
  overflow:hidden;
  border-radius:999px;
  background:rgba(0,0,0,.08);
}
.doc-progress-fill {
  height:100%;
  border-radius:inherit;
  background:currentColor;
  opacity:.55;
}
.quick-conclusion {
  margin:1.05rem 0;
  padding:1rem;
  border:1px solid var(--border,#ddd);
  border-radius:16px;
  background:rgba(0,0,0,.015);
}
.quick-conclusion h3 { margin:0 0 .75rem; }
.quick-conclusion-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.65rem;
}
.quick-line {
  padding:.75rem;
  border-radius:12px;
  border:1px solid var(--border,#ddd);
  display:flex;
  flex-direction:column;
  gap:.15rem;
}
.quick-line strong { font-size:1.3rem; }
.quick-line span { font-size:.78rem; line-height:1.3; opacity:.75; }
.quick-line.red { background:rgba(210,50,65,.045); }
.quick-line.yellow { background:rgba(220,165,30,.055); }
.quick-line.green { background:rgba(50,170,85,.045); }
.quick-line.neutral { background:rgba(90,100,120,.045); }
.analysis-warning {
  margin:.75rem 0 0;
  padding:.65rem .75rem;
  border-radius:10px;
  background:rgba(220,165,30,.07);
  font-size:.84rem;
}
.score-direction {
  margin:.5rem 0 1rem;
  font-size:.78rem;
  line-height:1.4;
  opacity:.68;
}
.pill { white-space:nowrap; }
@media (max-width: 760px) {
  .quick-conclusion-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

.scenario-help{margin:-8px 0 20px;color:var(--muted);font-size:.86rem;max-width:720px}
.comparison-winner{border:1px solid #d8e8df}
.winner-score-row{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.score-note{color:var(--muted);font-size:.8rem;line-height:1.45;margin:.4rem 0}
.score-gap{padding:.75rem 1rem;border:1px solid var(--line);border-radius:12px;text-align:right;font-weight:800;white-space:nowrap}
.score-gap small{font-weight:500;color:var(--muted)}
.winner-reason{font-size:1.02rem;line-height:1.6;max-width:850px}
.why-winner{margin-top:1rem;padding:1rem;border-radius:12px;background:#f7faf8;border:1px solid var(--line)}
.why-winner h3{margin:.1rem 0 .55rem}
.why-winner ul{margin:.2rem 0;padding-left:1.2rem}
.why-winner li{margin:.35rem 0}
.match-label{margin:.15rem 0 1rem}
.dealbreaker-alert{background:#fff1f1;border:1px solid #f2caca;border-radius:12px;padding:.85rem;margin:.8rem 0 1rem}
.dealbreaker-alert ul{margin:.45rem 0 0;padding-left:1.2rem}
.comparison-facts dt{display:flex;align-items:center;gap:.35rem}
.info-dot{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:999px;border:1px solid var(--line);font-size:11px;color:var(--muted);cursor:help}
.technical-cost{display:grid;gap:.25rem;padding:.85rem;margin:1rem 0;border:1px solid var(--line);border-radius:12px;background:#fafbfb}
.technical-cost span{font-size:.82rem;color:var(--muted)}
.technical-cost strong{font-size:1.35rem}
.technical-cost small{color:var(--muted);line-height:1.4}
.break-even p{font-size:.82rem;line-height:1.45;color:var(--muted);margin:.35rem 0}
.comparison-summary{margin-top:22px}
.comparison-summary p{font-size:1rem;line-height:1.65;max-width:900px}
@media(max-width:700px){
  .winner-score-row{flex-direction:column}
  .score-gap{text-align:left}
}

.priority-intro{margin:-.25rem 0 1rem;color:var(--muted);line-height:1.45}
.priority-range{width:100%;margin:.45rem 0 .15rem}
.priority-reading{display:flex;align-items:baseline;gap:.15rem;min-height:1.35rem;margin-bottom:.55rem}
.priority-reading .priority-value{font-size:.9rem}
.priority-reading .priority-label{font-size:.86rem;color:var(--muted);font-weight:600}
.priority-scale-legend{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.45rem;margin:1rem 0 .45rem;padding:.75rem;border:1px solid var(--line);border-radius:12px;background:#fafbfb}
.priority-scale-legend span{font-size:.72rem;line-height:1.3;color:var(--muted)}
.priority-scale-legend b{display:block;color:var(--text);font-size:.78rem}
.priority-help{font-size:.8rem;color:var(--muted);line-height:1.45;margin:.35rem 0 1rem}
@media(max-width:700px){
  .priority-scale-legend{grid-template-columns:repeat(2,minmax(0,1fr))}
}

.decision-hero{border:1px solid #d8e8df;margin-bottom:20px}
.decision-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:24px;align-items:start}
.decision-hero h2{font-size:2rem;margin:.35rem 0 .55rem}
.hero-explainer{font-size:1rem;line-height:1.6;max-width:760px}
.hero-score{display:flex;flex-direction:column;gap:.15rem;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:16px;text-align:center}
.hero-score strong{font-size:2.15rem}
.hero-score span{font-weight:700}
.hero-score small{margin-top:.3rem;color:var(--muted);line-height:1.35}
.small-copy{font-size:.82rem}
.difference-list{display:grid;gap:.45rem;margin-top:.65rem}
.difference-row{padding:.65rem .75rem;background:#fff;border:1px solid var(--line);border-radius:10px;font-weight:650}
.dealbreaker-alert.compact{margin-top:.9rem}
.direct-comparison{margin-bottom:20px}
.comparison-table-wrap{overflow-x:auto;margin-top:.9rem}
.comparison-table{width:100%;border-collapse:collapse;min-width:620px}
.comparison-table th,.comparison-table td{padding:.75rem;border-bottom:1px solid var(--line);text-align:left}
.comparison-table th{font-size:.82rem;color:var(--muted)}
.comparison-table .total-row td{background:#fafbfb;font-size:1rem}
.comparison-table td:not(:first-child),.comparison-table th:not(:first-child){text-align:right}
@media(max-width:700px){
  .decision-hero-grid{grid-template-columns:1fr}
  .hero-score{text-align:left}
  .decision-hero h2{font-size:1.65rem}
}

.analysis-loading-overlay{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(244,247,246,.88);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}
.analysis-loading-overlay.show{display:flex}
body.analysis-loading-active{overflow:hidden}
.analysis-loading-card{
  width:min(560px,100%);
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:0 18px 60px rgba(20,40,35,.16);
  padding:28px;
}
.analysis-loading-card h2{margin:.45rem 0 .5rem;font-size:1.45rem}
.analysis-loading-card p{line-height:1.55}
.analysis-spinner{
  width:42px;
  height:42px;
  border-radius:50%;
  border:4px solid #dfe9e5;
  border-top-color:#4f8178;
  animation:analysis-spin .85s linear infinite;
  margin-bottom:14px;
}
@keyframes analysis-spin{to{transform:rotate(360deg)}}
.analysis-progress{
  height:8px;
  background:#edf2f0;
  border-radius:999px;
  overflow:hidden;
  margin:18px 0;
}
.analysis-progress-bar{
  width:35%;
  height:100%;
  border-radius:999px;
  background:#4f8178;
  animation:analysis-progress 1.8s ease-in-out infinite;
}
@keyframes analysis-progress{
  0%{transform:translateX(-120%)}
  50%{transform:translateX(130%)}
  100%{transform:translateX(320%)}
}
.analysis-steps{
  display:grid;
  gap:10px;
  margin:16px 0;
}
.analysis-step{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  color:var(--muted);
  background:#fafbfb;
  transition:.2s ease;
}
.analysis-step span{
  width:18px;
  flex:0 0 18px;
  font-weight:800;
}
.analysis-step.active{
  color:var(--text);
  border-color:#a9cbc2;
  background:#f3f8f6;
}
.analysis-step.done{
  color:#356b5e;
  background:#f6faf8;
}
.analysis-time-note{
  margin:.75rem 0 0;
  color:var(--muted);
  font-size:.82rem;
}
button.is-loading{cursor:wait;opacity:.8}
@media(max-width:700px){
  .analysis-loading-card{padding:22px 18px;border-radius:16px}
  .analysis-loading-card h2{font-size:1.25rem}
}

.analysis-step-dot{
  width:12px;
  height:12px;
  flex:0 0 12px;
  border-radius:50%;
  border:2px solid #9aa6a2;
  background:transparent;
  margin-top:3px;
  position:relative;
}
.analysis-step-dot.active{
  border-color:#26322f;
  background:#26322f;
}
.analysis-step-dot.done{
  border-color:#4f8178;
  background:#4f8178;
}
.analysis-step-dot.done::after{
  content:"✓";
  position:absolute;
  left:50%;
  top:48%;
  transform:translate(-50%,-50%);
  font-size:8px;
  line-height:1;
  color:white;
  font-weight:800;
}
.analysis-progress-bar{
  transition:width .35s ease;
}

/* v0.8.3 loading layout fixes */
.analysis-loading-card{
  width:min(680px, calc(100vw - 40px));
  max-height:calc(100vh - 40px);
  overflow:auto;
}
.analysis-step{
  align-items:center;
  min-height:52px;
}
.analysis-step > span:not(.analysis-step-dot){
  width:auto !important;
  flex:1 1 auto !important;
  min-width:0;
  font-weight:600;
  line-height:1.35;
}
.analysis-step-dot{
  width:12px !important;
  height:12px !important;
  flex:0 0 12px !important;
}
.analysis-progress-bar{
  animation:none !important;
  width:25%;
}
@media(max-width:700px){
  .analysis-loading-overlay{padding:12px}
  .analysis-loading-card{
    width:100%;
    max-height:calc(100vh - 24px);
    padding:20px 16px;
  }
  .analysis-step{padding:11px 12px}
}

/* v0.8.4 comparison consistency */
.comparison-subhead{
  margin:1.4rem 0 .35rem;
  font-size:1rem;
}
.direct-comparison .comparison-table strong{
  font-weight:800;
}

/* v0.8.5 documentary-cost policy */
.documented-costs .documented-cost-item{
  margin-top:.7rem;
  padding:.75rem;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fafbfb;
}
.documented-costs .documented-cost-item p{
  margin:.3rem 0 0;
  line-height:1.45;
}
