.hv-planning{max-width:1400px;margin:0 auto;padding:34px clamp(18px,5vw,68px) 90px}
.hv-plan-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.hv-print{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 15px;font-weight:600;cursor:pointer}
.hv-print:hover{border-color:#cfcac2}
.hv-plan-top{display:flex;justify-content:space-between;align-items:flex-end;gap:20px 32px;flex-wrap:wrap;margin-bottom:20px}
.hv-plan-total small{display:block;color:var(--muted);font-size:13px}
.hv-plan-total strong{display:block;font-size:clamp(32px,4vw,44px);font-weight:600;letter-spacing:-.035em;line-height:1.1}
.hv-unpriced{display:inline-flex;align-items:center;gap:7px;margin-top:6px;font-size:13px;color:var(--muted)}
.hv-plan-controls{display:flex;align-items:center;gap:14px 20px;flex-wrap:wrap}
.hv-horizon{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--muted)}
.hv-horizon input[type=range]{width:min(280px,52vw);accent-color:var(--ink)}
.hv-horizon-value{display:inline-flex;align-items:center;gap:4px;color:var(--ink);white-space:nowrap}
.hv-horizon-value input{width:54px;padding:6px 6px;border:1px solid var(--line);border-radius:8px;background:#fff;text-align:right}
.hv-scenario{margin:0}
.hv-planning-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(250px,.6fr);gap:20px;align-items:start}
.hv-planning-grid>aside{display:grid;gap:16px;align-content:start}
.hv-tl{padding:6px 20px 14px}
.hv-tl ol{list-style:none;margin:0;padding:0}
.hv-tl li,.hv-tl-head{display:grid;grid-template-columns:minmax(150px,.9fr) minmax(0,1.6fr);gap:16px;align-items:center}
.hv-tl li{padding:10px 0;border-bottom:1px solid #f1f0ec}
.hv-tl li:last-child{border-bottom:0}
.hv-tl-label strong{display:block;font-size:14px;font-weight:600;line-height:1.3}
.hv-tl-label small{display:block;font-size:12px;color:var(--muted)}
.hv-tl-lane{position:relative;display:block;height:22px}
.hv-tl-lane::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,20,20,.04) var(--h),transparent var(--h))}
.hv-tl-lane::after{content:"";position:absolute;top:-10px;bottom:-11px;left:var(--h);width:2px;margin-left:-1px;background:var(--pink)}
.hv-tl-lane i{position:absolute;top:5px;height:12px;border-radius:6px;background:var(--ink)}
.hv-tl li.is-partial .hv-tl-lane i{background:repeating-linear-gradient(135deg,#141414 0 5px,#8f8b84 5px 9px)}
.hv-tl li.is-out .hv-tl-lane i{background:#d9d6cf}
.hv-tl li.is-out .hv-tl-label{opacity:.55}
.hv-tl-head{padding:6px 0 4px}
.hv-tl-ticks{height:18px}
.hv-tl-ticks::before{display:none}
.hv-tl-ticks::after{display:none}
.hv-tl-ticks span{position:absolute;top:0;font-size:11px;color:#9a968e;transform:translateX(-50%)}
.hv-tl-sources .hv-source-link{text-align:left}
.hv-tl-sources{display:flex;flex-wrap:wrap;gap:6px 14px;padding:12px 20px 16px;border-top:1px solid #efeeea;font-size:13px;color:var(--muted)}
.hv-report,.hv-providers{border:1px solid var(--line);border-radius:16px;background:#fff;padding:16px 20px}
.hv-report h2,.hv-providers h2{font-size:17px;font-weight:600;letter-spacing:-.01em;margin-bottom:8px}
.hv-report ul{list-style:none;margin:0;padding:0}
.hv-report li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:baseline;padding:8px 0;border-bottom:1px solid #f1f0ec}
.hv-report li:last-child{border-bottom:0}
.hv-report strong{display:block;font-size:14px;font-weight:600}
.hv-report small{display:block;font-size:13px;color:var(--muted)}
.hv-providers label{display:flex;gap:10px;align-items:flex-start;padding:7px 0;cursor:pointer}
.hv-providers label input{margin-top:4px;accent-color:var(--ink)}
.hv-providers strong{display:block;font-size:14px;font-weight:600}
.hv-providers small{display:block;font-size:12px;color:var(--muted)}
.hv-providers button{margin-top:10px;width:100%;border:0;background:var(--ink);color:#fff;border-radius:999px;padding:10px 14px;font-weight:600;cursor:pointer}
.hv-draft-note{margin:10px 0 0;font-size:13px;color:#17613f}
@media(max-width:1180px){.hv-planning-grid{grid-template-columns:1fr}}
@media(max-width:600px){
  .hv-planning{padding-left:14px;padding-right:14px}
  .hv-tl{padding:6px 14px 12px}
  .hv-tl li,.hv-tl-head{grid-template-columns:1fr;gap:6px}
  .hv-tl-head .hv-tl-label{display:none}
  .hv-horizon{width:100%}
  .hv-horizon input[type=range]{flex:1;width:auto;min-width:0}
  .hv-plan-controls{width:100%}
}
@media print{.hv-print,.hv-plan-controls,.hv-back,.hv-providers,.app-header,.app-nav{display:none!important}.hv-planning-grid{grid-template-columns:1fr}}

.hv-tl-label{display:flex!important;align-items:flex-start;gap:10px}.hv-tl-label .pp-icon{margin-top:2px}
.hv-source-icon{border:0;background:none;padding:0 0 0 4px;cursor:pointer;color:var(--muted);vertical-align:-3px}.hv-source-icon:hover{color:var(--ink)}
.hv-tl-foot{padding:8px 20px 14px;font-size:12.5px;color:var(--muted)}

.hv-cc{padding:22px 24px 16px;margin-bottom:16px}
.hv-cc ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;align-items:end;height:190px}
.hv-cc li{display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.hv-cc b{font-size:13px;font-weight:600;white-space:nowrap}
.hv-cc-bar{display:flex;align-items:flex-end;width:100%;max-width:56px;height:130px}
.hv-cc-bar i{display:block;width:100%;border-radius:6px 6px 2px 2px;background:var(--ink);transition:height .35s}
.hv-cc li.is-out .hv-cc-bar i{background:#d9d7d1}.hv-cc li.is-out b{color:var(--muted);font-weight:500}
.hv-cc small{font-size:12.5px;color:var(--muted)}
@media(max-width:430px){.hv-cc ol{gap:6px}.hv-cc b{font-size:11px}}
@media(max-width:430px){.hv-cc b{font-size:9.5px;letter-spacing:-.02em;white-space:normal;text-align:center;line-height:1.1}}

/* Planning duration is a cost horizon, not a subscription or payment term. */
.hv-horizon-control{max-width:390px;min-width:0}.hv-horizon-title{display:block;font-size:14px;font-weight:600;color:var(--ink);margin-bottom:10px}.hv-horizon-help{font-size:12px;color:var(--muted);line-height:1.5;margin:9px 0 0}.hv-horizon{gap:14px}.hv-horizon input[type=range]{flex:1;min-width:0;width:230px}.hv-horizon-value{font-size:13px}.hv-plan-period{display:block;font-size:13px;line-height:1.5;color:var(--muted);margin-top:9px}.hv-plan-total small{margin-bottom:8px}.hv-plan-controls{align-items:flex-start}.hv-plan-controls .hv-scenario{margin-top:26px}
@media(max-width:600px){.hv-horizon-control{width:100%;max-width:none}.hv-plan-controls .hv-scenario{margin-top:0}}
