/* One coherent asset/debt/retirement time axis. Fonts follow the user's text size. */
.journey-card{min-width:0}
.journey-card .card-heading h3{font:550 clamp(1.18rem,1.65vw,1.65rem)/1.25 Georgia,serif;margin:2px 0 5px}
.journey-subtitle{font-size:.78rem;color:var(--muted);margin:0}
.journey-card .card-heading .toggle{flex-shrink:0}
.journey-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:18px 0}
.journey-summary>div{padding:14px 15px;background:var(--soft);border-radius:9px;min-width:0}
.journey-summary span{font-size:.74rem;color:var(--muted);display:block;margin-bottom:8px}
.journey-summary strong{font-size:clamp(.99rem,1.35vw,1.35rem);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.journey-summary .journey-networth-total{background:var(--surface);border:1px solid var(--gold)}
.journey-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap;justify-content:space-between;margin:14px 0 11px}
.journey-frequency{display:flex;align-items:center;gap:2px;padding:3px;background:var(--soft);border-radius:8px}
.journey-frequency button{font-size:.79rem;border:0;min-height:38px;background:transparent;color:var(--text);padding:7px 14px;border-radius:6px}
.journey-frequency button[aria-pressed=true]{background:var(--surface);border:1px solid var(--line);box-shadow:var(--panel-shadow)}
.journey-controls label{display:grid;gap:4px;color:var(--muted);font-size:.72rem}
.journey-controls select{font-size:.82rem;min-height:39px;border:1px solid var(--control-line);border-radius:7px;background:var(--surface);color:var(--text);padding:6px 12px;max-width:100%}
.journey-legend{margin-top:16px;gap:12px;font-size:.74rem}
.journey-legend .key-worth{background:var(--chart-before);height:4px}
.journey-legend .key-assets{background:var(--chart-after)}
.journey-legend .key-debt{background:light-dark(#bb6848,#e4a27a)}
.journey-legend .key-retirement{background:light-dark(#688a74,#a3d5b6)}
.journey-projection-zone{fill:var(--chart-zone)}
.journey-now-marker{stroke:var(--gold-dark);stroke-dasharray:2 3;stroke-width:1}
.journey-line{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}
.journey-worth{stroke:var(--chart-before);stroke-width:3}
.journey-assets{stroke:var(--chart-after)}
.journey-debt{stroke:light-dark(#bb6848,#e4a27a)}
.journey-retirement{stroke:light-dark(#688a74,#a3d5b6)}
.journey-forecast{stroke-dasharray:6 4}
.journey-recorded{stroke-dasharray:none}
.journey-observation{fill:var(--chart-before);stroke:var(--surface);stroke-width:1.5}
.journey-inspection{display:grid;grid-template-columns:1fr;gap:12px}
.journey-inspection-values{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.journey-inspection-values>span{display:grid;gap:3px;color:var(--muted);font-size:.69rem}
.journey-inspection-values strong{font-size:clamp(.78rem,1.06vw,1.1rem);color:var(--text);font-weight:600;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.journey-flow{font-size:.7rem;color:var(--muted);margin:9px 0 0}
.journey-record{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:12px 0 0}
.journey-record button{min-height:36px;font-size:.77rem}
.journey-record>span{color:var(--muted);font-size:.69rem;flex:1 1 240px}
.rail-debts-nav{display:flex;width:100%;font-size:.81rem;background:transparent;border:0;text-align:left;color:var(--nav-text);justify-content:space-between;padding:12px 11px;border-radius:7px}
.rail-debts-nav:hover,.rail-debts-nav:focus-visible{background:var(--nav-hover)}
.rail-networth{border-top:1px solid var(--nav-line);padding-top:9px;margin-top:7px}
.rail-networth strong{font-size:.94rem;max-width:100%;overflow-wrap:anywhere}
.liability-workspace,.liability-history{margin-bottom:18px;padding:clamp(18px,3vw,28px);border-radius:10px}
.liability-workspace h2,.liability-history h2{font:500 clamp(1.35rem,2.4vw,2rem)/1.2 Georgia,serif;margin:0 0 5px}
.liability-workspace .section-heading,.liability-history .section-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.liability-workspace .section-heading p,.liability-history .section-heading p{font-size:.82rem}
.liability-workspace .section-heading button,.liability-history .section-heading button{min-height:42px}
.liability-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0}
.liability-summary>div{padding:16px;background:var(--soft);border-radius:8px}
.liability-summary span{font-size:.76rem;color:var(--muted);display:block;margin-bottom:6px}
.liability-summary strong{font-size:1.16rem;overflow-wrap:anywhere}
.liability-card{border:1px solid var(--line);border-radius:11px;padding:clamp(15px,2vw,22px);margin:18px 0;background:var(--surface)}
.liability-card .liability-card-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:12px}
.liability-card h3{font:500 1.25rem Georgia,serif;margin:0}
.liability-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.liability-fields label,.liability-payment-add label{display:grid;gap:6px;font-size:.79rem;color:var(--muted)}
.liability-fields input,.liability-fields select,.liability-payment-add input{box-sizing:border-box;width:100%;border:1px solid var(--control-line);border-radius:7px;background:var(--surface);color:var(--text);padding:10px;font-size:.91rem;min-height:43px}
.liability-fields label:focus-within{color:var(--text)}
.liability-card .liability-check{display:flex;gap:10px;align-items:start;font-size:.8rem;color:var(--text);line-height:1.5}
.liability-check input{width:18px;height:18px;min-height:0;accent-color:var(--accent);flex:none}
.liability-card .loan-outcome{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:14px 0}
.loan-outcome div{background:var(--soft);border-radius:7px;padding:11px}
.loan-outcome span{font-size:.72rem;color:var(--muted);display:block;margin-bottom:5px}
.loan-outcome strong{font-size:.96rem}
.loan-note{font-size:.77rem;color:var(--muted);line-height:1.6}
.loan-payment-history{border-top:1px solid var(--line);margin-top:16px;padding-top:13px}
.loan-payment-history summary{font-size:.82rem;cursor:pointer;font-weight:600}
.liability-payment-add{display:flex;align-items:end;flex-wrap:wrap;gap:9px;margin-top:12px}
.liability-payment-add label{flex:1 1 125px}
.liability-payment-add button{min-height:42px}
.loan-payment-list{display:grid;gap:7px;margin-top:10px}
.loan-payment-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.78rem;background:var(--soft);padding:9px 12px;border-radius:7px}
.loan-payment-row span{flex:1}
.loan-payment-row button,.liability-valuation-row button{padding:6px 10px;min-height:32px}
.valuation-list{display:grid;gap:8px;margin-top:14px}
.liability-valuation-row{display:grid;grid-template-columns:minmax(110px,1fr) repeat(3,minmax(0,1.2fr)) auto;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:12px 0;font-size:.81rem;font-variant-numeric:tabular-nums}
.liability-valuation-row strong{font-weight:600}
.liability-history .hint{font-size:.76rem}
@media(max-width:850px){.liability-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){
.journey-summary,.liability-summary{grid-template-columns:1fr;gap:6px}
.journey-summary>div,.liability-summary>div{padding:10px 12px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.journey-summary span,.liability-summary span{margin:0}
.journey-inspection-values{grid-template-columns:repeat(2,minmax(0,1fr))}
.journey-controls>label{flex:1}
.journey-controls select{width:100%}
.liability-fields{grid-template-columns:minmax(0,1fr)}
.liability-card .loan-outcome{grid-template-columns:1fr}
.liability-valuation-row{grid-template-columns:1fr 1fr;row-gap:7px}
.liability-valuation-row button{grid-column:1/-1}
}

.journey-stage-marker{stroke:var(--gold);stroke-width:1;stroke-dasharray:2 6;opacity:.7}
.journey-stage-dot{fill:var(--gold);stroke:var(--surface);stroke-width:1}
.journey-retirement-marker{stroke:var(--chart-after);stroke-width:1.5;stroke-dasharray:5 4}
.journey-stages{color:var(--gold-dark);font-size:.74rem;font-weight:550;line-height:1.55;margin:4px 0 0}
.journey-stages:empty{display:none}
.liability-confirmation{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:12px 0 4px;padding:13px 15px;background:var(--soft);border-radius:9px}
.liability-confirmation p{margin:0;flex:1 1 260px}


/* Native currency labels and large balances must reflow with the text-size setting. */
.liability-fields>label,.liability-payment-add>label,.loan-outcome>div,.liability-summary>div,.liability-valuation-row>*{min-width:0}
.loan-outcome strong,.liability-valuation-row,.loan-payment-row,.journey-flow{overflow-wrap:anywhere}
