/* Shared styling for the public calculator pages. Builds on marketing.css. */
.calc-head{background:linear-gradient(180deg,#f6f9fc 0%,#fff 78%);border-bottom:1px solid var(--border)}
.calc-head .wrap{padding:38px 22px 30px;max-width:1080px}
.calc-head h1{font-size:clamp(25px,3.6vw,34px);letter-spacing:-.02em;margin:8px 0 0}
.calc-head .lede{color:var(--text-2);font-size:16.5px;line-height:1.6;max-width:62ch;margin:12px 0 0}

.calc-wrap{max-width:1080px;margin:0 auto;padding:28px 22px 60px;display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:26px;align-items:start}
/* A bare 1fr track grows to its widest child, so one wide row inside the form pushed the
   whole page sideways on a phone. minmax(0,1fr) lets the column shrink instead. */
@media (max-width:900px){.calc-wrap{grid-template-columns:minmax(0,1fr);gap:20px}}
.calc-wrap > *{min-width:0}
.panel{min-width:0}
.fields{min-width:0}
.f{min-width:0}

.panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px}
.panel + .panel{margin-top:18px}
.panel h2{font-size:17px;margin:0 0 4px}
.panel .hint{color:var(--muted);font-size:13px;line-height:1.5;margin:0 0 16px}

.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}
.fields.one{grid-template-columns:1fr}
.f label{display:block;font-size:12.5px;font-weight:600;color:var(--text-2);margin-bottom:5px}
.f .sub{display:block;font-weight:400;color:var(--muted);font-size:11.5px;margin-top:2px;line-height:1.4}
.f input,.f select{width:100%;border:1px solid var(--border-2);border-radius:9px;padding:9px 11px;
  font:inherit;font-size:15px;background:#fff;color:var(--text);font-variant-numeric:tabular-nums}
.f input:focus,.f select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}

.tier-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end;margin-bottom:10px}
@media (max-width:460px){
  .tier-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .tier-row .rm{grid-column:1 / -1;height:34px}
}
.tier-row .rm{border:1px solid var(--border-2);background:#fff;border-radius:8px;padding:8px 10px;
  font:inherit;cursor:pointer;color:var(--muted);height:38px}
.tier-row .rm:hover{color:var(--bad,#b4443a);border-color:#e0b4ae}

/* results rail */
.rail{position:sticky;top:78px}
@media (max-width:900px){.rail{position:static}}
.headline{background:var(--brand);color:#fff;border-radius:14px;padding:22px}
.headline .lab{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:#a9c0d8;margin-bottom:6px}
.headline .val{font-size:34px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}
.headline .note{color:#c3d4e5;font-size:13px;line-height:1.5;margin-top:10px}

.kv{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--border);font-size:14px;min-width:0}
.kv span{min-width:0;overflow-wrap:break-word}
.kv:last-child{border-bottom:none}
.kv span{color:var(--text-2)}
.kv b{font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}
.kv b.good{color:var(--accent)}
.kv b.bad{color:#b4443a}
.kv b.warn{color:var(--gold)}

.tbl{overflow-x:auto;margin-top:6px}
.tbl table{border-collapse:collapse;width:100%;font-size:13.5px;min-width:420px}
.tbl th{text-align:left;font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);
  font-weight:600;padding:9px 10px;border-bottom:1px solid var(--border);white-space:nowrap}
.tbl td{padding:9px 10px;border-bottom:1px solid var(--border);vertical-align:top;font-variant-numeric:tabular-nums}
.tbl tr:last-child td{border-bottom:none}
.tbl td.n{text-align:right;white-space:nowrap}
.tbl tfoot td{font-weight:650;border-top:2px solid var(--border-2)}

.msg-err{background:#fdeceb;border:1px solid #f0c3bd;color:#8c2f26;border-radius:10px;
  padding:11px 14px;font-size:13.5px;margin-bottom:16px}

.upsell{border:1px solid var(--accent);background:#f2faf7;border-radius:14px;padding:20px;margin-top:18px}
.upsell h3{font-size:15.5px;margin:0 0 6px}
.upsell p{color:var(--text-2);font-size:13.5px;line-height:1.6;margin:0 0 14px}
.upsell .btn{width:100%}
.upsell .fine{color:var(--muted);font-size:12px;margin:10px 0 0;text-align:center}

.explain{max-width:1080px;margin:0 auto;padding:0 22px 64px}
.explain .panel h2{font-size:19px;margin-bottom:10px}
.explain p,.explain li{color:var(--text-2);font-size:15px;line-height:1.68;max-width:70ch}
.explain p{margin:0 0 12px}
.explain ul{margin:0 0 12px;padding-left:22px}
.explain li{margin:5px 0}
.explain h3{font-size:15.5px;margin:20px 0 6px}
.explain code{background:var(--bg-2);border:1px solid var(--border);border-radius:5px;padding:1px 5px;font-size:13.5px}

.calc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;margin-top:8px}
.calc-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);
  border-radius:14px;padding:22px;text-decoration:none;color:inherit;transition:border-color .15s,transform .15s}
.calc-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.calc-card h3{font-size:16.5px;margin:0 0 6px;color:var(--brand)}
.calc-card p{color:var(--text-2);font-size:13.5px;line-height:1.55;margin:0 0 12px;flex:1}
.calc-card .go{color:var(--accent);font-size:13.5px;font-weight:650}
.calc-card .flag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--accent);background:#e8f5f0;border-radius:99px;padding:3px 9px;margin-bottom:9px}

.crumb{font-size:13px;color:var(--muted)}
.crumb a{color:var(--muted)}
.crumb a:hover{color:var(--brand-2)}

@media print{
  .site-head,.site-foot,.upsell,.calc-print-hide,.explain{display:none!important}
  .calc-wrap{display:block;padding:0}
  .panel{border:none;padding:0;page-break-inside:avoid}
  .headline{background:#fff;color:#000;border:1px solid #999}
  .headline .lab,.headline .note{color:#444}
}

/* Long labels and figures wrap rather than widening the page. */
.f label{overflow-wrap:break-word}
.explain code{overflow-wrap:anywhere}
