:root{
  --bg:#fbf6ef;
  --card:#ffffff;
  --text:#1f1b1d;
  --muted:#6f6770;
  --line:#eadfd6;
  --line-strong:#dccabc;
  --accent:#4F0E18;
  --accent-strong:#651623;
  --accent-soft:#f7ede8;
  --primary:#4F0E18;
  --primary-hover:#651623;
  --primary-text:#ffffff;
  --secondary:#F5E8C8;
  --secondary-strong:#ead8ad;
  --warning:#f8edd9;
  --warning-line:#d6b977;
  --focus:rgba(79,14,24,.22);
  --shadow:0 12px 34px rgba(79, 14, 24, .08);
  --radius:18px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:linear-gradient(180deg,#fdf9f4 0%,#f7efe2 100%);
  color:var(--text);
}
.page{
  max-width:1180px;
  margin:0 auto;
  padding:28px 18px 56px;
}
.hero{
  display:flex;
  gap:20px;
  justify-content:space-between;
  align-items:flex-start;
  margin-bottom:20px;
}
.eyebrow{
  display:inline-flex;
  align-items:center;
  margin:0 0 10px;
  padding:7px 12px;
  color:var(--accent);
  background:var(--secondary);
  border:1px solid var(--secondary-strong);
  border-radius:999px;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
h1{
  margin:0;
  font-size:clamp(2rem,2vw + 1.2rem,3rem);
  line-height:1.02;
  color:var(--accent);
}
.subcopy{
  max-width:720px;
  margin:12px 0 0;
  color:var(--muted);
  line-height:1.5;
}
.hero-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
button{
  font:inherit;
  cursor:pointer;
  border:none;
}
.primary,.secondary,.ghost{
  border-radius:999px;
  padding:12px 18px;
  transition:.18s ease;
}
.primary{
  background:var(--primary);
  color:var(--primary-text);
  box-shadow:0 12px 26px rgba(79, 14, 24, .16);
}
.primary:hover{
  transform:translateY(-1px);
  background:var(--primary-hover);
}
.secondary{
  background:var(--secondary);
  color:var(--accent);
  border:1px solid var(--secondary-strong);
}
.secondary:hover{
  transform:translateY(-1px);
  background:#f3e2b8;
}
.ghost{
  background:rgba(255,255,255,.7);
  color:var(--accent);
  border:1px dashed var(--line-strong);
}
.ghost:hover{
  transform:translateY(-1px);
  background:#fff;
}
.planner-grid{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(300px,.95fr);
  gap:18px;
  align-items:start;
}
.side-stack{
  display:grid;
  gap:18px;
}
.card{
  background:var(--card);
  border:1px solid rgba(79,14,24,.08);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:18px;
}
.inputs-card,
.result-hero{
  border-top:4px solid var(--accent);
}
.card-head{
  margin-bottom:16px;
}
.card-head h2,.card-head h3{
  margin:0;
  font-size:1.1rem;
  color:var(--accent);
}
.card-head p{
  margin:6px 0 0;
  color:var(--muted);
  font-size:.95rem;
  line-height:1.45;
}
.form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
label, .inline-reveal{
  display:grid;
  gap:7px;
}
label span, .inline-reveal span, legend{
  font-size:.9rem;
  font-weight:600;
}
input,select{
  width:100%;
  border:1px solid var(--line-strong);
  border-radius:14px;
  min-height:46px;
  padding:11px 13px;
  font:inherit;
  background:#fff;
  color:var(--text);
}
input:focus,select:focus,button:focus{
  outline:2px solid var(--focus);
  outline-offset:2px;
}
.mode-fieldset{
  grid-column:1 / -1;
  margin:0;
  padding:0;
  border:none;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:flex-start;
}
.mode-fieldset legend{
  width:100%;
  margin-bottom:2px;
}
.radio-pill{
  display:inline-flex;
  flex:0 0 auto;
}
.radio-pill input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.radio-pill span{
  width:auto;
  max-width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  border:1px solid var(--line-strong);
  border-radius:14px;
  padding:12px 16px;
  background:#fff;
  font-weight:500;
  line-height:1.25;
  min-height:46px;
}
.radio-pill input:checked + span{
  border-color:var(--accent);
  background:var(--accent);
  color:#fff;
}
.desktop-calc{margin-top:18px}
.mobile-calc{display:none;margin-top:16px;width:100%}
.text-toggle{
  margin-top:14px;
  padding:0;
  background:none;
  color:var(--accent);
  font-weight:700;
  text-align:left;
}
.advanced-panel{margin-top:14px}
.hidden{display:none !important}

.inline-switch-row{
  grid-column:1 / -1;
  display:flex;
  gap:14px;
  align-items:end;
  flex-wrap:wrap;
}
.switch-wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-height:46px;
  border:1px solid var(--line-strong);
  border-radius:14px;
  padding:10px 13px;
  background:#fff;
  flex:1 1 340px;
}
.switch-wrap span{
  font-size:.9rem;
  font-weight:600;
}
.ios-switch{
  position:relative;
  width:54px;
  height:32px;
  display:inline-block;
}
.ios-switch input{
  opacity:0;
  width:0;
  height:0;
  position:absolute;
}
.slider{
  position:absolute;
  inset:0;
  border-radius:999px;
  background:#d8d0ca;
  transition:.2s ease;
}
.slider::before{
  content:"";
  position:absolute;
  width:26px;
  height:26px;
  left:3px;
  top:3px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 2px 6px rgba(0,0,0,.15);
  transition:.2s ease;
}
.ios-switch input:checked + .slider{
  background:var(--accent);
}
.ios-switch input:checked + .slider::before{
  transform:translateX(22px);
}
.inline-reveal{
  flex:0 0 180px;
}
.lump-row{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:14px;
  align-items:end;
}

.results-section{
  margin-top:22px;
  display:grid;
  gap:18px;
}
.section-head h2{
  margin:0;
  color:var(--accent);
}
.section-head p{
  margin:6px 0 0;
  color:var(--muted);
}
.mode-notice{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:14px 16px;
  border:1px solid var(--warning-line);
  background:var(--warning);
  border-radius:16px;
}
.mode-notice strong{
  color:var(--accent);
}
.mode-notice p{
  margin:6px 0 0;
  color:#6b5321;
}
.notice-close{
  background:transparent;
  color:var(--accent);
  font-size:24px;
  line-height:1;
  padding:0;
}
.result-hero{
  display:grid;
  gap:16px;
}
.result-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.hero-stat{
  border:1px solid var(--line);
  border-radius:16px;
  padding:16px;
  background:linear-gradient(180deg,#fffdfa 0%, #fbf4eb 100%);
}
.stat-label{
  display:block;
  color:var(--muted);
  font-size:.9rem;
  margin-bottom:8px;
}
.stat-value{
  display:block;
  font-size:1.6rem;
  line-height:1.15;
  color:var(--accent);
}
.summary-block{
  line-height:1.6;
  color:#41373c;
  border-top:1px solid var(--line);
  padding-top:14px;
}
.summary-block strong{
  color:var(--accent);
}
.cards-2{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.kv-list,.budget-list{
  display:grid;
  gap:8px;
}
.kv-row,.budget-row{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:10px 0;
  border-bottom:1px solid var(--line);
}
.kv-row:last-child,.budget-row:last-child{border-bottom:none}
.kv-row .cell-label,.kv-row .cell-value{font-weight:400}
.kv-row.bold .cell-label,.kv-row.bold .cell-value,
.budget-row.bold{
  color:var(--accent);
}
.kv-row.bold .cell-label,.kv-row.bold .cell-value{font-weight:800}
.kv-row strong,.budget-row strong{white-space:nowrap}
.kv-row.bold,.budget-row.bold{
  font-weight:800;
}
.scenario-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.scenario-card{
  border:1px solid var(--line);
  border-top:3px solid var(--accent);
  border-radius:16px;
  padding:14px;
  background:#fff;
}
.scenario-card h4{
  margin:0 0 8px;
  font-size:1rem;
  color:var(--accent);
}
.scenario-card dl{
  margin:0;
  display:grid;
  gap:8px;
}
.scenario-card div{
  display:flex;
  justify-content:space-between;
  gap:10px;
}
.scenario-card dt{
  color:var(--muted);
}
.no-fit{
  background:#fbefee;
  border:1px solid #ebc9c8;
  color:var(--accent);
  padding:14px 16px;
  border-radius:16px;
}

@media (max-width: 980px){
  .planner-grid{
    grid-template-columns:1fr;
  }
  .side-stack{
    grid-template-columns:1fr 1fr;
  }
}
@media (max-width: 760px){
  .page{padding:18px 14px 42px}
  .hero{
    flex-direction:column;
    align-items:stretch;
  }
  .planner-grid,.side-stack,.cards-2,.result-grid,.scenario-grid,.form-grid,.lump-row{
    grid-template-columns:1fr;
  }
  .mode-fieldset{
    gap:8px;
  }
  .radio-pill{
    width:100%;
  }
  .radio-pill span{
    width:100%;
    justify-content:flex-start;
  }
  .desktop-calc{display:none}
  .mobile-calc{display:block}
  .inline-switch-row{
    align-items:stretch;
  }
  .switch-wrap{
    flex:1 1 auto;
  }
  .inline-reveal{
    flex:1 1 auto;
  }
  .scenario-grid{
    gap:12px;
  }
  .scenario-card div{
    display:grid;
    grid-template-columns:1fr auto;
    align-items:start;
    gap:4px 10px;
  }
  .stat-value{
    font-size:1.35rem;
  }
}
