:root{
  --bg-1:#f4f1ea;
  --bg-2:#e4ddd0;
  --surface:#fffdf8;
  --surface-strong:#ffffff;
  --surface-soft:#f8f4ec;
  --ink-1:#1e2b33;
  --ink-2:#55666f;
  --accent:#b39a66;
  --accent-deep:#8f7748;
  --sea:#7f99a3;
  --border:#ddd4c4;
  --shadow-lg:0 24px 48px rgba(31,43,51,.10),0 4px 12px rgba(31,43,51,.05);
  --shadow-md:0 12px 28px rgba(31,43,51,.08),0 2px 6px rgba(31,43,51,.05);
  --ring:0 0 0 3px rgba(179,154,102,.25);
  --r-xl:28px;
  --r-md:14px;
}

*{box-sizing:border-box}
[hidden]{display:none !important}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  color:var(--ink-1);
  background:linear-gradient(160deg,var(--bg-1),var(--bg-2));
  font:16px/1.55 "Aptos","Segoe UI",Tahoma,sans-serif;
}
h1,h2,h3,h4{
  margin:0;
  font-family:"Iowan Old Style","Palatino Linotype","Book Antiqua",serif;
  letter-spacing:.01em;
}
a{color:inherit}
button,input,textarea,select{font:inherit}

.page-backdrop{
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(1000px 360px at 8% -8%,rgba(179,154,102,.24),transparent 72%),
    radial-gradient(850px 340px at 102% 4%,rgba(127,153,163,.16),transparent 72%);
  z-index:-1;
}
.shell{max-width:1440px;margin:0 auto;padding:0 20px}
.site-header{padding:26px 0 14px}
.brand-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.eyebrow{
  margin:0 0 6px;
  color:var(--ink-2);
  font-size:12px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.lede{margin:10px 0 0;color:var(--ink-2);max-width:820px}
.header-status{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

.layout{display:grid;gap:16px;padding-bottom:30px}
.workspace{
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(320px,.9fr);
  gap:16px;
  align-items:start;
}
.main-column,.side-column,.flow-stack{display:grid;gap:16px}

.card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r-xl);
  box-shadow:var(--shadow-md);
}
.hero{
  padding:22px;
  box-shadow:var(--shadow-lg);
  background:
    linear-gradient(145deg,rgba(255,255,255,.98),rgba(253,249,241,.94)),
    linear-gradient(110deg,rgba(179,154,102,.08),rgba(127,153,163,.06));
}
.hero-topline{
  margin:0 0 8px;
  color:var(--ink-2);
  font-size:12px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.hero h2{max-width:1000px;font-size:34px;line-height:1.12}
.hero p{margin:12px 0 0;color:var(--ink-2);max-width:920px}
.hero-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}
.metric{
  padding:14px 16px;
  border:1px solid var(--border);
  border-radius:var(--r-md);
  background:rgba(255,255,255,.72);
}
.metric-label{
  display:block;
  margin-bottom:4px;
  font-size:12px;
  color:var(--ink-2);
  text-transform:uppercase;
  letter-spacing:.08em;
}
.metric-value{font-size:15px}

.panel,.side-panel{padding:20px}
.panel-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:14px;
}
.accordion-panel{padding:0}
.accordion-panel > *:not(summary){padding:0 20px 20px}
.accordion-summary{
  list-style:none;
  cursor:pointer;
  margin:0;
  padding:20px;
}
.accordion-summary::-webkit-details-marker{display:none}
.accordion-summary::after{
  content:"+";
  margin-left:auto;
  font-size:24px;
  line-height:1;
  color:var(--accent-deep);
}
.accordion-panel[open] > .accordion-summary{margin-bottom:0}
.accordion-panel[open] > .accordion-summary::after{content:"-"}
.panel-tag,.chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 12px;
  border-radius:999px;
  border:1px solid var(--border);
  background:var(--surface-strong);
  color:var(--ink-2);
  font-size:12px;
  font-weight:700;
}
.chip-soft{background:#eff5f6;color:#40616d;border-color:#cad8dc}
.status-text{font-size:13px;color:var(--ink-2)}
.small{font-size:13px}
.muted{color:var(--ink-2)}

.form-grid{display:grid;gap:14px}
.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}
.three-col{grid-template-columns:repeat(3,minmax(0,1fr))}
.span-2{grid-column:span 2}
.form-item{display:grid;gap:8px}
.q{font-size:13px;font-weight:700;color:var(--ink-2)}
.text{
  width:100%;
  min-height:48px;
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:16px;
  background:#fff;
  color:var(--ink-1);
}
.text:focus-visible{outline:none;border-color:#c8b07a;box-shadow:var(--ring)}
.affix-input{
  display:flex;
  align-items:center;
  min-height:48px;
  border:1px solid var(--border);
  border-radius:16px;
  background:#fff;
  overflow:hidden;
}
.affix-input-large{min-height:48px}
.affix-symbol{
  flex:0 0 auto;
  padding:0 12px;
  color:var(--ink-2);
  font-weight:700;
}
.affix-field{
  border:none;
  box-shadow:none;
  background:transparent;
  padding-left:0;
  padding-right:0;
  text-align:right;
}
.affix-field.text{
  min-height:46px;
  border:none;
  box-shadow:none;
}
.affix-field.table-input{
  border:none;
  box-shadow:none;
  padding-top:10px;
  padding-bottom:10px;
}
.affix-input:focus-within{
  border-color:#c8b07a;
  box-shadow:var(--ring);
}
.affix-field:focus-visible{outline:none;box-shadow:none}

.checkbox-line{
  display:flex;
  align-items:center;
  gap:10px;
  padding:4px 2px;
}
.toggle-card{
  display:flex;
  align-items:center;
  gap:10px;
  border:1px solid var(--border);
  border-radius:16px;
  background:#fff;
  padding:12px 14px;
  min-height:48px;
}

.analysis-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-bottom:14px;
}
.analysis-card{
  text-align:left;
  border:1px solid var(--border);
  border-radius:18px;
  background:linear-gradient(180deg,#fff,#fbf8f1);
  padding:14px;
  display:grid;
  gap:4px;
  min-height:100px;
}
.analysis-card strong{font-size:16px}
.analysis-card span{color:var(--ink-2);font-size:13px}
.analysis-card.is-active{
  border-color:#b89d69;
  box-shadow:0 0 0 3px rgba(179,154,102,.18);
}

.summary-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.summary-grid-wide{grid-template-columns:repeat(2,minmax(0,1fr))}
#balanceSummaryCards{margin-top:10px}
.summary-grid div{
  padding:14px;
  border-radius:16px;
  border:1px solid var(--border);
  background:var(--surface-soft);
}
.summary-label{
  display:block;
  margin-bottom:6px;
  font-size:12px;
  color:var(--ink-2);
  text-transform:uppercase;
  letter-spacing:.08em;
}
.summary-positive{color:#2f7d32}

.cta-stack{
  display:grid;
  gap:10px;
  margin-top:20px;
}
.primary,.ghost{
  min-height:48px;
  padding:10px 16px;
  border-radius:999px;
  font-weight:700;
  cursor:pointer;
  transition:all .18s ease;
}
.primary{
  border:1px solid transparent;
  background:var(--accent);
  color:#21190c;
  box-shadow:0 10px 18px rgba(179,154,102,.28);
}
.primary:hover{background:var(--accent-deep);transform:translateY(-1px)}
.ghost{border:1px solid var(--border);background:#fff;color:var(--ink-1)}
.ghost:hover{border-color:#cbb78d;background:#fbfaf5}
.ghost-small{min-height:auto;padding:8px 12px;font-size:13px}
.primary:focus-visible,.ghost:focus-visible,.analysis-card:focus-visible{
  outline:none;
  box-shadow:var(--ring);
}
.primary:disabled,.ghost:disabled{opacity:.6;cursor:not-allowed}

.sticky-panel{position:static}
.draft-list{display:grid;gap:10px}
.draft-item{
  text-align:left;
  display:grid;
  gap:4px;
  width:100%;
  padding:14px;
  border:1px solid var(--border);
  border-radius:18px;
  background:linear-gradient(180deg,#fff,#fcfaf4);
}
.draft-item span{color:var(--ink-2);font-size:13px}
.draft-item:hover{border-color:#ccb889}
.empty-state{
  padding:14px;
  border:1px dashed var(--border);
  border-radius:16px;
  color:var(--ink-2);
  background:rgba(255,255,255,.55);
}

.services-stack{display:grid;gap:12px}
.service-section{
  border:1px solid var(--border);
  border-radius:20px;
  background:linear-gradient(180deg,#fff,#fdfaf3);
  overflow:hidden;
}
.service-header{
  display:flex;
  align-items:center;
  gap:12px;
  width:100%;
  padding:14px 16px;
  background:rgba(237,232,220,.65);
  border:none;
  text-align:left;
  cursor:pointer;
}
.service-header h4{font-size:20px}
.service-header::after{
  content:"+";
  margin-left:auto;
  font-size:22px;
  line-height:1;
  color:var(--accent-deep);
}
.service-section[open] .service-header{
  border-bottom:1px solid var(--border);
}
.service-section[open] .service-header::after{content:"-"}
.service-header::-webkit-details-marker{display:none}
.table-wrap{overflow-x:auto}
.service-table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  min-width:1080px;
}
.service-table th,
.service-table td{
  border-bottom:1px solid #e6dece;
  padding:14px 12px;
  text-align:left;
  vertical-align:top;
  word-break:break-word;
}
.service-table thead th{
  background:#f6f1e7;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--ink-2);
}
.service-table th:nth-child(1),.service-table td:nth-child(1){width:26%}
.service-table th:nth-child(2),.service-table td:nth-child(2){width:11%}
.service-table th:nth-child(3),.service-table td:nth-child(3){width:12.5%}
.service-table th:nth-child(4),.service-table td:nth-child(4){width:12.5%}
.service-table th:nth-child(5),.service-table td:nth-child(5){width:13.5%}
.service-table th:nth-child(6),.service-table td:nth-child(6){width:11%}
.service-table th:nth-child(7),.service-table td:nth-child(7){width:13.5%}
.service-table.hide-current .current-col{display:none}
.service-label{font-weight:700}
.service-note{
  margin-top:8px;
  color:var(--ink-2);
  font-size:12px;
  line-height:1.45;
}
.table-input{
  width:100%;
  min-width:0;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:12px;
  background:#fff;
  text-align:right;
}
.table-input:focus-visible{outline:none;border-color:#c8b07a;box-shadow:var(--ring)}
.table-input-compact{margin-top:10px}
.table-input-compact.affix-input{margin-top:8px}
.calc-value{
  min-height:40px;
  display:flex;
  align-items:center;
  padding:10px 12px;
  border:1px solid #e6dece;
  border-radius:12px;
  background:#f8f4ec;
  font-weight:700;
}
.mini-toggle{
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:8px;
  font-size:12px;
  color:var(--ink-2);
}
.mini-field{
  display:grid;
  gap:6px;
  margin-top:8px;
}
.mini-field span{
  font-size:12px;
  color:var(--ink-2);
}
.is-readonly{
  background:#f8f4ec;
}

@media (max-width: 1100px){
  .workspace{grid-template-columns:1fr}
  .sticky-panel{position:static}
  .table-wrap{overflow-x:auto}
  .service-table{min-width:1080px}
}

@media (max-width: 860px){
  .brand-row{flex-direction:column}
  .hero h2{font-size:28px}
  .hero-metrics,.analysis-grid,.two-col,.three-col,.summary-grid,.summary-grid-wide{grid-template-columns:1fr}
  .span-2{grid-column:auto}
}
