:root{
  --bg:#f7f4ec; --surface:#ffffff; --surface-2:#efeadd; --line:#ddd6c3;
  --ink:#1d1b15; --ink-dim:#6b6555; --ink-faint:#9a927c;
  --pos:#b8791e; --neg:#2a5f8f;
  --accent:#2a5f8f; --accent-soft:#e7eef4;
  --font-mono:'IBM Plex Mono',ui-monospace,'SF Mono',Consolas,monospace;
  --font-sans:'IBM Plex Sans',system-ui,-apple-system,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#131109; --surface:#1c1911; --surface-2:#241f14; --line:#3a331f;
    --ink:#f2eee2; --ink-dim:#a89e86; --ink-faint:#756c58;
    --pos:#dba13c; --neg:#6fa3d8;
    --accent:#6fa3d8; --accent-soft:#1b2a36;
  }
}

*{box-sizing:border-box}
.visually-hidden{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font-sans); line-height:1.55;
}
input, button, select{font-family:inherit}
p, li{text-align:justify; text-justify:inter-word}
.wrap{max-width:1080px; margin:0 auto; padding:0 1.5rem 4rem}

/* Header */
.site-header{padding:3rem 0 2.2rem}
.brand{display:flex; align-items:baseline; gap:.6rem}
.brand-mark{
  font-family:var(--font-mono); font-weight:700; font-size:1.4rem;
  background:var(--accent); color:var(--surface);
  width:2.1rem; height:2.1rem; border-radius:6px;
  display:inline-flex; align-items:center; justify-content:center;
}
.brand-name{
  font-family:var(--font-mono); font-weight:700; font-size:1.7rem;
  letter-spacing:-.01em;
}
.brand-dot{color:var(--ink-faint); font-weight:500}
.tagline{color:var(--ink-dim); font-size:1rem; max-width:56ch; margin:.8rem 0 0}

.tab-nav{display:flex; align-items:flex-end; gap:.4rem; margin-top:1.6rem; border-bottom:1px solid var(--line)}
.tab-nav a{
  font-family:var(--font-mono); font-size:.85rem; font-weight:600; color:var(--ink-dim);
  text-decoration:none; padding:.6rem 1rem; border-bottom:2px solid transparent;
  margin-bottom:-1px;
}
.tab-nav a:hover{color:var(--ink)}
.tab-nav a.active{color:var(--accent); border-bottom-color:var(--accent)}

/* Feedback page (/feedback, feedback.html) */
.feedback-form{max-width:480px}
.feedback-form .field{margin-bottom:1rem}

/* Work With Me page (/work-with-me, work_with_me.html) -- reuses .feedback-form
   for its own form section, plus these for the intro/services/CTA parts. */
.work-with-me-intro{margin-bottom:1.6rem}
.work-with-me-services{margin:1rem 0 0; padding:0; list-style:none}
.work-with-me-services li{
  padding:.7rem 0; border-top:1px solid var(--line); font-size:.92rem; color:var(--ink-dim);
}
.work-with-me-fallback{margin-top:1rem}
/* Honeypot: off-screen, not display:none on the input itself, so basic bot
   scripts that skip display:none fields still fill it in and get caught. */
.hp-field{position:absolute; left:-9999px; top:-9999px; width:1px; height:1px; overflow:hidden}

/* Home page CTA banner -- bridges the free-tool credibility content to the
   consulting offer. Deliberately not a third .feature-card (that grid is
   hardcoded to 2 columns and mixing a paid-service CTA in with the two
   free-tool links would dilute both). */
.cta-banner{
  background:var(--accent-soft); border:1px solid var(--line); border-radius:10px;
  padding:1.4rem 1.6rem; margin-bottom:1.6rem;
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
}
.cta-banner p{margin:0; font-size:.95rem}
.cta-banner .calc-btn{width:auto; display:inline-block; white-space:nowrap; padding:.7rem 1.3rem}
@media (max-width:700px){
  .cta-banner{flex-direction:column; align-items:stretch; text-align:center}
  .cta-banner .calc-btn{width:100%}
}

/* Calc page pre-calculation empty-state CTA */
.results-empty-cta{margin-top:.7rem !important; font-size:.82rem !important; color:var(--ink-faint) !important}

/* Admin dashboard (/admin/leads, admin_leads.html) -- not linked from the
   public nav; reachable only by URL + HTTP Basic Auth. */
.admin-stat-strip{grid-template-columns:repeat(auto-fit, minmax(140px, 1fr))}
.admin-panel{margin-bottom:1.6rem}
.admin-panel h2{font-family:var(--font-mono); font-size:1rem; font-weight:700; margin:0 0 .8rem}
.admin-table-wrap{overflow-x:auto}
.admin-delete-form{margin:0}
.admin-delete-btn{
  padding:.3rem .6rem; background:none; color:var(--pos);
  border:1.5px solid var(--pos); border-radius:6px;
  font-family:var(--font-mono); font-size:.72rem; font-weight:600; cursor:pointer;
  white-space:nowrap;
}
.admin-delete-btn:hover{background:var(--pos); color:var(--surface)}

/* Layout */
.layout{display:grid; grid-template-columns:1.1fr 1fr; gap:1.5rem; align-items:start}
@media (max-width:860px){ .layout{grid-template-columns:1fr} }

.panel{
  background:var(--surface); border:1px solid var(--line); border-radius:10px;
  padding:1.6rem;
}
.panel.results{position:sticky; top:1.5rem}
@media (max-width:860px){ .panel.results{position:static} }

.field-group{margin-bottom:1.8rem}
.field-group:last-of-type{margin-bottom:1.4rem}
.field-group h2{
  font-family:var(--font-mono); font-size:.82rem; letter-spacing:.06em;
  text-transform:uppercase; color:var(--ink-dim); margin:0 0 .9rem;
  padding-bottom:.5rem; border-bottom:1px solid var(--line);
}
.group-note{font-size:.85rem; color:var(--ink-dim); margin:0 0 .9rem}

.cod-columns{display:grid; grid-template-columns:1fr 1fr; gap:1.4rem}
@media (max-width:600px){ .cod-columns{grid-template-columns:1fr} }
.cod-column-label{
  font-size:.78rem; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.04em;
  margin:0 0 .6rem;
}

.field{display:block; margin-bottom:.9rem}
.field:last-child{margin-bottom:0}
.field-label{display:block; font-size:.85rem; color:var(--ink-dim); margin-bottom:.35rem}
.optional{color:var(--ink-faint); font-size:.78rem}
.field input[type="text"], .field input[type="number"], .field input[type="url"], .field select, .field textarea{
  width:100%; padding:.6rem .7rem; border:1px solid var(--line); border-radius:6px;
  background:var(--surface); color:var(--ink); font-size:.95rem;
  font-variant-numeric:tabular-nums; font-family:inherit;
}
.field textarea{resize:vertical; line-height:1.5}
.field input:focus, .field select:focus, .field textarea:focus{outline:2px solid var(--accent); outline-offset:1px}
.field-note{display:block; color:var(--ink-faint); font-size:.78rem; margin-top:.35rem}

.hint-btn{
  display:block; margin-top:.4rem; background:none; border:none; padding:0;
  color:var(--accent); font-size:.8rem; cursor:pointer; text-align:left;
  text-decoration:underline; text-underline-offset:2px;
}
.hint-btn:hover{opacity:.8}
.hint-btn:disabled{opacity:.5; cursor:default}

.comps-field{margin-top:-.3rem}
.comps-timer{
  display:block; margin-top:.5rem; font-size:.78rem; color:var(--accent);
  font-variant-numeric:tabular-nums;
}
.comps-timer[hidden]{display:none}

.diff-badge{
  display:inline-block; font-family:var(--font-mono); font-size:.68rem; font-weight:600;
  letter-spacing:.03em; text-transform:uppercase; color:var(--accent);
  background:var(--accent-soft); border-radius:5px; padding:.25rem .5rem;
  margin-bottom:.5rem;
}

.comps-section{margin-top:1.6rem; padding-top:1.4rem; border-top:1px solid var(--line)}
.comps-heading{
  font-family:var(--font-mono); font-size:.82rem; letter-spacing:.06em;
  text-transform:uppercase; color:var(--ink-dim); margin:0 0 .8rem;
}
.comps-results{
  font-size:.85rem; color:var(--ink-dim);
}
.comps-results:empty{display:none}
.comps-industries{margin:0 0 .6rem; font-size:.78rem; color:var(--ink-faint)}
.comps-warning{margin:0 0 .6rem; font-size:.78rem; color:var(--ink-dim); font-style:italic}
.comps-note{margin:.6rem 0 0; font-size:.75rem; color:var(--ink-faint)}
.comps-table{
  width:100%; border-collapse:collapse; font-size:.82rem;
  font-variant-numeric:tabular-nums;
}
.comps-table th, .comps-table td{
  text-align:left; padding:.4rem .5rem; border-bottom:1px solid var(--line);
}
.comps-table th{color:var(--ink-faint); font-weight:600; font-size:.75rem; text-transform:uppercase; letter-spacing:.04em}
.comps-table tbody tr:hover{background:var(--surface-alt, rgba(128,128,128,.06))}

.calc-btn{
  width:100%; padding:.85rem; margin-top:.4rem;
  background:var(--accent); color:var(--surface); border:none; border-radius:8px;
  font-size:1rem; font-weight:600; cursor:pointer;
  font-family:var(--font-mono);
}
.calc-btn:hover{opacity:.92}
.calc-btn:active{transform:translateY(1px)}

.pdf-download-row{margin:0 0 1.4rem; padding:1rem 1.1rem; background:var(--surface-2); border-radius:8px}
.pdf-download-row .field{margin-bottom:.7rem}
.pdf-form-heading{
  font-family:var(--font-mono); font-size:.78rem; letter-spacing:.04em;
  text-transform:uppercase; color:var(--ink-dim); margin:0 0 .8rem;
}
.pdf-form-grid{display:grid; grid-template-columns:1fr 1fr; gap:.8rem}
@media (max-width:600px){ .pdf-form-grid{grid-template-columns:1fr} }
.pdf-form-error{color:var(--pos); font-size:.82rem; margin:.6rem 0 0}
.pdf-form-error[hidden]{display:none}
.pdf-form-success{color:var(--accent); font-size:.82rem; margin:.6rem 0 0}
.pdf-form-success[hidden]{display:none}
.pdf-btn-row{text-align:right; margin-top:.9rem}
.pdf-btn{
  padding:.55rem 1rem; background:none; color:var(--accent);
  border:1.5px solid var(--accent); border-radius:7px;
  font-family:var(--font-mono); font-size:.82rem; font-weight:600; cursor:pointer;
}
.pdf-btn:hover{background:var(--accent); color:var(--surface)}
.pdf-btn:disabled{opacity:.5; cursor:default; background:none; color:var(--accent)}

/* Results */
.results-empty{
  display:flex; align-items:center; justify-content:center; min-height:280px;
  color:var(--ink-faint); font-size:.92rem; text-align:center; padding:2rem;
}
.results-empty[hidden]{display:none}
.wacc-hero{
  text-align:center; padding:1rem 0 1.6rem; border-bottom:1px solid var(--line); margin-bottom:1.4rem;
}
.wacc-label{
  display:block; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-dim); margin-bottom:.5rem;
}
.wacc-value{
  display:block; font-family:var(--font-mono); font-weight:700; font-size:3rem;
  color:var(--accent); letter-spacing:-.02em; font-variant-numeric:tabular-nums;
}
.wacc-asof{
  display:block; font-family:var(--font-mono); font-size:.78rem;
  color:var(--ink-faint); margin-top:.4rem;
}
.wacc-asof a{color:inherit; text-decoration:underline; text-underline-offset:2px}
.wacc-business-description{
  font-size:.82rem; color:var(--ink-dim); max-width:44ch; margin:.7rem auto 0;
  line-height:1.5;
}

.build-rows{display:flex; flex-direction:column; gap:1.1rem}
.build-row{padding-bottom:1.1rem; border-bottom:1px solid var(--line)}
.build-row:last-child{border-bottom:none; padding-bottom:0}
.build-row-head{display:flex; justify-content:space-between; align-items:baseline; gap:1rem}
.build-row-title{font-size:.88rem; color:var(--ink-dim)}
.build-row-value{
  font-family:var(--font-mono); font-weight:600; font-size:1.05rem;
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.build-row-detail{font-size:.8rem; color:var(--ink-faint); margin-top:.3rem; line-height:1.5}
.build-row-detail code{
  font-family:var(--font-mono); background:var(--surface-2); padding:.05rem .3rem; border-radius:3px;
}

/* Methodology */
.methodology{padding:3rem 0; border-top:1px solid var(--line); margin-top:2.5rem}
.methodology h2{
  font-family:var(--font-mono); font-size:1rem; font-weight:600; margin:0 0 1.4rem;
}
.method-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem}
@media (max-width:860px){ .method-grid{grid-template-columns:1fr} }
.method-grid h3{font-size:.92rem; margin:0 0 .5rem}
.method-grid p{font-size:.88rem; margin:.3rem 0}
.method-grid p:not(.method-note){
  font-family:var(--font-mono); background:var(--surface-2); border:1px solid var(--line);
  border-radius:6px; padding:.6rem .8rem; font-size:.82rem;
}
.method-note{color:var(--ink-dim); font-size:.82rem !important; background:none !important; border:none !important; padding:0 !important}
.method-source{color:var(--ink-faint); font-size:.8rem; margin-top:1.6rem; max-width:80ch}

.site-footer{padding:1.5rem 0; color:var(--ink-faint); font-size:.8rem; text-align:center}

/* Home page */
.home-intro, .home-why{margin-bottom:1.6rem}
.home-intro h1{
  font-family:var(--font-mono); font-size:1.3rem; font-weight:700; margin:0 0 1rem;
  letter-spacing:-.01em;
}
.home-hero-cta{width:auto; display:inline-block; padding:.85rem 1.6rem; margin:0 0 1.2rem}
.home-intro p, .home-why p{font-size:.95rem; color:var(--ink-dim); margin:0 0 .9rem}
.home-intro p:last-child, .home-why p:last-child{margin-bottom:0}
.home-why h2{
  font-family:var(--font-mono); font-size:.82rem; letter-spacing:.06em;
  text-transform:uppercase; color:var(--ink-dim); margin:0 0 1rem;
  padding-bottom:.5rem; border-bottom:1px solid var(--line);
}
.home-disclaimer{color:var(--ink-faint) !important; font-size:.82rem !important; font-style:italic}
.home-lead{font-size:1.02rem !important; color:var(--ink) !important; font-weight:500}

.stat-strip{display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-bottom:1.6rem}
@media (max-width:860px){ .stat-strip{grid-template-columns:1fr 1fr} }
.stat{
  background:var(--surface); border:1px solid var(--line); border-radius:10px;
  padding:1.1rem 1rem; text-align:center;
}
.stat-value{
  display:block; font-family:var(--font-mono); font-weight:700; font-size:1.5rem;
  color:var(--accent); letter-spacing:-.01em; font-variant-numeric:tabular-nums;
}
.stat-label{display:block; font-size:.76rem; color:var(--ink-dim); margin-top:.35rem; line-height:1.4}

.compare-panel{margin-bottom:1.6rem}
.compare-panel h2{
  font-family:var(--font-mono); font-size:1.05rem; font-weight:700; margin:0 0 .6rem;
}
.compare-intro{font-size:.9rem; color:var(--ink-dim); margin:0 0 1.2rem}
.compare-table-wrap{overflow-x:auto}
.compare-table{width:100%; border-collapse:collapse; font-size:.85rem}
.compare-table th, .compare-table td{
  text-align:left; padding:.7rem .9rem; border-bottom:1px solid var(--line); vertical-align:top;
}
.compare-table thead th{
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.04em; text-transform:uppercase;
  color:var(--ink-faint); font-weight:600;
}
.compare-aspect{font-family:var(--font-mono); font-weight:600; font-size:.82rem; color:var(--ink); white-space:nowrap}
.compare-table td:not(.compare-aspect){color:var(--ink-dim); line-height:1.5}
.compare-us-col{background:var(--accent-soft); color:var(--ink) !important}
.compare-table thead .compare-us-col{background:var(--accent-soft); color:var(--accent) !important}
.compare-table tbody tr:last-child td{border-bottom:none}

.feature-cards{display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-bottom:1.6rem}
@media (max-width:860px){ .feature-cards{grid-template-columns:1fr} }
.feature-card{
  display:block; background:var(--surface); border:1px solid var(--line); border-radius:10px;
  padding:1.6rem; text-decoration:none; color:inherit;
}
.feature-card:hover{border-color:var(--accent)}
.feature-card h2{
  font-family:var(--font-mono); font-size:1.05rem; font-weight:700; margin:0 0 .6rem; color:var(--ink);
}
.feature-card p{font-size:.88rem; color:var(--ink-dim); margin:0 0 1rem; line-height:1.55}
.feature-card-cta{
  font-family:var(--font-mono); font-size:.82rem; font-weight:600; color:var(--accent);
}

/* NYSE decile size-premium page */
.page-intro{color:var(--ink-dim); font-size:.95rem; max-width:72ch; margin:0 0 2rem}

.subtab-nav{display:flex; gap:.5rem; margin:0 0 1.6rem}
.subtab-nav button{
  font-family:var(--font-mono); font-size:.85rem; font-weight:600;
  padding:.55rem 1.2rem; border-radius:8px; border:1.5px solid var(--line);
  background:var(--surface); color:var(--ink-dim); cursor:pointer;
}
.subtab-nav button:hover{border-color:var(--accent); color:var(--ink)}
.subtab-nav button.active{background:var(--accent); border-color:var(--accent); color:var(--surface)}

.chart-panel{margin-bottom:2rem}
.chart-panel h2{
  font-family:var(--font-mono); font-size:.82rem; letter-spacing:.06em;
  text-transform:uppercase; color:var(--ink-dim); margin:0 0 1.2rem;
  padding-bottom:.5rem; border-bottom:1px solid var(--line);
}
.bar-chart{width:100%; height:auto; overflow:visible}
.bar-chart .gridline{stroke:var(--line); stroke-width:1}
.bar-chart .axis-label{
  font-family:var(--font-mono); font-size:11px; fill:var(--ink-faint);
}
.bar-chart .bar{fill:var(--accent)}
.bar-chart .bar.negative{fill:var(--pos)}
.bar-chart .zero-line{stroke:var(--ink-faint); stroke-width:1}
.bar-chart .bar-value{
  font-family:var(--font-mono); font-size:11px; font-weight:600; fill:var(--ink);
  text-anchor:middle;
}
.bar-chart .bar-label{
  font-family:var(--font-mono); font-size:11px; fill:var(--ink-dim);
  text-anchor:middle;
}

.decile-table{width:100%; border-collapse:collapse; font-size:.85rem; margin-top:1rem}
.decile-table th, .decile-table td{
  padding:.55rem .7rem; text-align:right; border-bottom:1px solid var(--line);
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.decile-table th{
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.04em;
  text-transform:uppercase; color:var(--ink-dim); font-weight:600;
}
.decile-table td:first-child, .decile-table th:first-child{text-align:left}
.decile-table tbody tr:hover{background:var(--surface-2)}

.info-section{margin-bottom:2rem}
.info-section h2{
  font-family:var(--font-mono); font-size:.82rem; letter-spacing:.06em;
  text-transform:uppercase; color:var(--ink-dim); margin:0 0 1rem;
  padding-bottom:.5rem; border-bottom:1px solid var(--line);
}
.info-section ul{margin:0; padding-left:1.2rem}
.info-section li{font-size:.9rem; margin-bottom:.7rem; line-height:1.55}
.info-section li:last-child{margin-bottom:0}
.info-section code{
  font-family:var(--font-mono); background:var(--surface-2); padding:.05rem .3rem; border-radius:3px;
  font-size:.85em;
}
.limitations li::marker{color:var(--pos)}
