
/* Wallet performance stays within the shared blue-grey / soft-green design. */
.hpf-performance{font:11px/1.65 var(--font);color:var(--text);min-width:0;margin:18px 0}.hpf-performance *{box-sizing:border-box}.hpf-performance h2,.hpf-performance p{margin:0}.hpf-performance h2{font:600 13px/1.5 var(--font)}.hpf-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px}.hpf-toolbar p,.hpf-head p{font-size:9px;color:var(--faint);line-height:1.75;margin-top:4px}.hpf-toolbar label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:10px;min-width:0}.hpf-toolbar select{font:11px var(--font);color:var(--text);border:1px solid var(--line);border-radius:5px;background:var(--surface);min-height:32px;padding:5px 28px 5px 10px;max-width:210px}.hpf-panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden;min-width:0}.hpf-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;border-bottom:1px solid var(--line)}.hpf-head>div{min-width:0}.hpf-head>strong{font:500 17px var(--mono);white-space:nowrap}.hpf-gain{color:var(--green)!important}.hpf-loss{color:var(--red)!important}.hpf-flat{color:var(--muted)!important}.hpf-performance .hpf-periods{display:flex;align-items:center;gap:3px;padding:3px;background:var(--bg);border:1px solid var(--line);border-radius:5px;flex:none}.hpf-performance .hpf-periods button{min-height:27px;padding:4px 10px;font:10px/1.5 var(--font);background:none;border:0;border-radius:3px;color:var(--muted);cursor:pointer}.hpf-performance .hpf-periods .is-active{color:var(--accent);background:var(--accent-bg)}.hpf-performance button:focus-visible,.hpf-performance select:focus-visible,.hpf-chart-wrap canvas:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hpf-chart-readout{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 18px 0;min-height:40px}.hpf-chart-readout>span{font:9px var(--mono);color:var(--faint)}.hpf-chart-readout>strong{font:500 18px var(--mono)}.hpf-chart-wrap{height:210px;padding:3px 12px 0}.hpf-chart-wrap canvas{display:block;width:100%;height:100%;touch-action:pan-y;cursor:crosshair;border-radius:3px}.hpf-performance .hpf-note{font-size:9px;color:var(--faint);line-height:1.8;padding:11px 18px 14px}.hpf-empty{min-height:185px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:30px 20px;text-align:center;color:var(--muted);font-size:11px}.hpf-empty strong{font:550 13px var(--font)}.hpf-empty p{font-size:10px;line-height:1.9;color:var(--faint);max-width:510px}.hpf-calendar-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin-top:18px}.hpf-day-stats{display:flex;align-items:center;gap:25px;padding:13px 18px 9px}.hpf-day-stats>div{display:flex;flex-direction:column;gap:4px;min-width:0}.hpf-day-stats span{color:var(--faint);font-size:9px}.hpf-day-stats strong{font:500 12px var(--mono)}.hpf-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;padding:0 18px}.hpf-weekday{text-align:center;color:var(--faint);font-size:9px;padding:4px 0 6px}.hpf-performance .hpf-day{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:0;min-height:46px;margin:0;padding:3px;border:1px solid var(--line);border-radius:3px;background:var(--surface2);color:var(--muted);font:9px var(--mono);cursor:pointer;position:relative}.hpf-performance .hpf-day-calendar>span{align-self:flex-start;font:8px/1 var(--mono);color:var(--muted);opacity:.9;position:absolute;left:4px;top:4px}.hpf-performance .hpf-day-calendar sup{margin-left:2px;color:var(--amber);font-size:8px}.hpf-performance .hpf-day-calendar>strong{font:400 9px var(--mono);white-space:nowrap;margin-top:8px;max-width:100%;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.hpf-performance .hpf-day-ready.hpf-gain{background:color-mix(in srgb,var(--green) var(--hpf-heat,15%),var(--surface));border-color:color-mix(in srgb,var(--green) 25%,var(--line))}.hpf-performance .hpf-day-ready.hpf-loss{background:color-mix(in srgb,var(--red) var(--hpf-heat,15%),var(--surface));border-color:color-mix(in srgb,var(--red) 25%,var(--line))}.hpf-performance .hpf-day-ready.hpf-flat{background:color-mix(in srgb,var(--muted) 12%,var(--surface));border-color:var(--muted)}.hpf-performance .hpf-day-empty{background:transparent;border-color:var(--line)}.hpf-performance .hpf-day-empty strong{color:var(--faint)}.hpf-performance .hpf-day-unavailable{border-style:dashed;background:repeating-linear-gradient(135deg,transparent 0,transparent 5px,color-mix(in srgb,var(--muted) 8%,transparent) 5px,color-mix(in srgb,var(--muted) 8%,transparent) 8px)}.hpf-performance .hpf-day.is-selected{outline:2px solid var(--accent);outline-offset:-2px}.hpf-performance .hpf-day:hover{filter:brightness(1.18)}.hpf-day-blank{min-height:0}.hpf-asset-analysis{min-width:0}.hpf-asset-analysis>.wa-panel,.hpf-asset-analysis>.hpf-panel{margin:0;height:100%}.hpf-day-detail{border-top:1px solid var(--line);padding:13px 18px 14px;margin-top:0;min-height:69px;color:var(--faint);font-size:10px}.hpf-day-detail>div{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px}.hpf-day-detail time{font:9px var(--mono);color:var(--muted)}.hpf-day-detail strong{font:500 13px var(--mono)}.hpf-performance .hpf-day-detail p{font-size:8px;color:var(--faint);line-height:1.8}.hpf-calendar>.hpf-empty{min-height:120px}
.hpf-curve-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.hpf-performance .hpf-periods button:disabled{opacity:.4;cursor:not-allowed}.hpf-performance .hpf-filter-note{font-size:9px;line-height:1.7;color:var(--faint);padding:10px 18px 0}.hpf-head>.hpf-curve-controls{flex:none;max-width:70%}
@media(max-width:1100px){.hpf-calendar-pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.hpf-head{padding:13px 14px}.hpf-head>strong{font-size:15px}.hpf-calendar-grid{padding:0 12px;gap:2px}.hpf-day-stats{padding:12px 14px 9px;gap:20px}.hpf-performance .hpf-day-calendar>strong{font-size:8px}.hpf-performance .hpf-note{padding-left:14px;padding-right:14px}}
@media(max-width:760px){.hpf-performance{margin:14px 0}.hpf-toolbar{gap:10px;align-items:flex-start}.hpf-toolbar h2{font-size:12px}.hpf-toolbar p{font-size:8px;max-width:230px}.hpf-toolbar label{gap:5px;font-size:9px;flex:none}.hpf-toolbar select{font-size:10px;padding:4px 21px 4px 7px;max-width:120px;min-height:30px}.hpf-head{padding:13px 14px;gap:8px}.hpf-head h2{font-size:12px}.hpf-head p{font-size:8px}.hpf-head>strong{font-size:13px}.hpf-performance .hpf-periods button{font-size:9px;padding:4px 8px}.hpf-chart-readout{padding:12px 14px 0;gap:8px;align-items:flex-start}.hpf-chart-readout>span{font-size:8px;line-height:1.6;max-width:56%}.hpf-chart-readout>strong{font-size:15px}.hpf-chart-wrap{height:190px;padding:3px 8px 0}.hpf-performance .hpf-note{font-size:8px;line-height:1.8}.hpf-calendar-pair{grid-template-columns:minmax(0,1fr);gap:14px;margin-top:14px}.hpf-day-stats{gap:0;justify-content:space-between}.hpf-day-stats span{font-size:8px}.hpf-day-stats strong{font-size:11px}.hpf-calendar-grid{padding:0 10px;gap:2px}.hpf-performance .hpf-day-calendar{min-height:45px;padding:2px}.hpf-performance .hpf-day-calendar>strong{font-size:7.5px;letter-spacing:-.3px}.hpf-performance .hpf-day-calendar>span{font-size:7px;left:3px;top:3px}.hpf-performance .hpf-day-calendar sup{font-size:7px;margin-left:1px}.hpf-day-detail{min-height:60px;padding:12px 14px}.hpf-empty{min-height:180px}.hpf-weekday{font-size:8px}}
@media(max-width:500px){.hpf-curve-panel>.hpf-head{align-items:flex-start;flex-wrap:wrap}.hpf-head>.hpf-curve-controls{max-width:100%;width:100%;justify-content:space-between}.hpf-curve-controls{gap:6px}.hpf-performance .hpf-filter-note{font-size:8px;padding:9px 14px 0}}

/* Keep the asset label on one line beside the selector. */
.hpf-toolbar label>span{white-space:nowrap;flex-shrink:0}.hpf-toolbar select{min-width:0}

.hpf-calendar-pair{align-items:start}

/* Selected timestamps stay attached to the horizontal time axis. */
.hpf-chart-wrap{position:relative}
.hpf-axis-time{position:absolute;bottom:4px;z-index:2;pointer-events:none;white-space:nowrap;padding:3px 6px;border:1px solid var(--line);border-radius:3px;background:var(--surface2);color:var(--text);font:9px/14px var(--mono)}
.hpf-chart-wrap .hpf-axis-time[hidden]{display:none}
.hpf-axis-zone{position:absolute;right:12px;bottom:7px;pointer-events:none;color:var(--faint);font:8px/1.5 var(--mono)}
@media(max-width:760px){.hpf-axis-zone{right:8px}.hpf-axis-time{font-size:8px;padding:2px 5px}}

/* Calendar values are readable summaries; the selected day retains exact cents. */
.hpf-calendar{container-type:inline-size}.hpf-calendar .hpf-calendar-head{display:block;padding:15px 16px 13px}.hpf-calendar-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.hpf-calendar-title>h2{font-size:14px}.hpf-calendar-title>strong{font:500 18px/1.5 var(--mono);white-space:nowrap}.hpf-calendar-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:11px;flex-wrap:wrap}.hpf-calendar-controls>p{font:9px/1.7 var(--mono);color:var(--muted);margin:0}.hpf-calendar .hpf-calendar-controls .hpf-periods button{min-height:29px;padding:5px 10px;font-size:10px}.hpf-calendar .hpf-day-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:14px 16px 11px}.hpf-calendar .hpf-day-stats span{font-size:10px;color:var(--muted)}.hpf-calendar .hpf-day-stats strong{font-size:14px}.hpf-calendar .hpf-calendar-grid{padding:0 12px;gap:5px}.hpf-calendar .hpf-weekday{padding:6px 0 8px;font-size:11px;font-weight:500;color:var(--muted)}.hpf-performance .hpf-calendar .hpf-day-calendar{min-height:62px;padding:7px 4px 8px;justify-content:space-between;align-items:flex-start;gap:8px;border-radius:5px}.hpf-performance .hpf-calendar .hpf-day-calendar>.hpf-day-date{position:static;align-self:auto;color:var(--text);font:500 clamp(12px,3.5cqw,15px)/1.1 var(--mono);opacity:1}.hpf-performance .hpf-calendar .hpf-day-calendar>.hpf-day-overview{margin:0;max-width:100%;font:500 clamp(9px,2.7cqw,12px)/1.35 var(--mono);letter-spacing:-.2px;color:var(--text)}.hpf-performance .hpf-calendar .hpf-day-calendar sup{font-size:9px;color:var(--amber);margin-left:2px}.hpf-performance .hpf-calendar .hpf-day-empty>.hpf-day-overview,.hpf-performance .hpf-calendar .hpf-day-unavailable>.hpf-day-overview{font-family:var(--font);font-size:clamp(8px,2.5cqw,10px);font-weight:400;letter-spacing:0;color:var(--muted)}.hpf-performance .hpf-calendar .hpf-day-empty{background:color-mix(in srgb,var(--surface2) 35%,var(--surface))}.hpf-performance .hpf-calendar .hpf-day.is-selected{outline:2px solid var(--accent);outline-offset:-2px;box-shadow:inset 0 0 0 1px var(--accent)}.hpf-performance .hpf-calendar-note{font-size:9px;line-height:1.8;padding:12px 16px}.hpf-calendar .hpf-day-detail{min-height:0;margin:0;padding:14px 16px 15px;background:var(--surface2)}.hpf-calendar .hpf-day-detail-head{margin-bottom:12px;align-items:center}.hpf-calendar .hpf-day-detail-head time{font:500 12px var(--mono);color:var(--text)}.hpf-day-coverage{display:inline-flex;align-items:center;padding:3px 6px;font:9px/1.4 var(--font);color:var(--muted);border:1px solid var(--line);border-radius:3px}.hpf-day-coverage.is-partial{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 35%,var(--line))}.hpf-calendar .hpf-day-exact{margin:0 0 13px;align-items:center}.hpf-day-exact>span{font-size:10px;color:var(--muted)}.hpf-calendar .hpf-day-exact>strong{font:500 20px/1.4 var(--mono);overflow-wrap:anywhere;text-align:right}.hpf-day-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}.hpf-day-facts>div{display:flex;flex-direction:column;gap:5px;min-width:0}.hpf-day-facts dt{font-size:9px;color:var(--muted)}.hpf-day-facts dd{margin:0;font:11px/1.5 var(--mono);color:var(--text);overflow-wrap:anywhere}.hpf-performance .hpf-day-detail .hpf-day-window{font:9px/1.8 var(--mono);color:var(--muted);margin:12px 0 4px}.hpf-calendar .hpf-day-detail>p:last-child{font-size:9px;line-height:1.8;color:var(--muted)}
@media(max-width:760px){.hpf-calendar .hpf-calendar-head{padding:14px 12px 12px}.hpf-calendar-title>h2{font-size:13px}.hpf-calendar-title>strong{font-size:17px}.hpf-calendar-controls{margin-top:9px;gap:8px}.hpf-calendar-controls>p{font-size:8px}.hpf-calendar .hpf-calendar-controls .hpf-periods button{padding:4px 8px;font-size:10px;min-height:28px}.hpf-calendar .hpf-day-stats{padding:13px 12px 10px;gap:8px}.hpf-calendar .hpf-day-stats span{font-size:9px}.hpf-calendar .hpf-day-stats strong{font-size:13px}.hpf-calendar .hpf-calendar-grid{padding:0 10px;gap:4px}.hpf-calendar .hpf-weekday{font-size:10px;padding:5px 0 7px}.hpf-performance .hpf-calendar .hpf-day-calendar{min-height:58px;padding:7px 3px;gap:8px}.hpf-performance .hpf-calendar-note{padding:11px 12px;font-size:9px}.hpf-calendar .hpf-day-detail{padding:14px 12px}.hpf-calendar .hpf-day-exact>strong{font-size:19px}.hpf-day-exact>span{font-size:10px}.hpf-day-facts{gap:9px}.hpf-day-facts dd{font-size:11px}.hpf-performance .hpf-day-detail .hpf-day-window{font-size:8px}}

/* Date details float above the page and never reserve calendar height. */
.hpf-day-popover{position:fixed;z-index:1800;display:block;box-sizing:border-box;width:292px;min-height:0;max-width:calc(100vw - 20px);margin:0;padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--surface2);color:var(--text);box-shadow:0 12px 40px #0005;font:11px/1.7 var(--font);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.hpf-day-popover[hidden]{display:none!important}.hpf-day-popover *{box-sizing:border-box}.hpf-day-popover p,.hpf-day-popover dl,.hpf-day-popover dd{margin:0}.hpf-day-popover>[data-hpf-day-content]{display:block;margin:0}.hpf-day-popover .hpf-day-detail-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-right:25px;margin-bottom:14px}.hpf-day-popover .hpf-day-detail-head time{font:500 12px/1.6 var(--mono);color:var(--text);white-space:nowrap}.hpf-day-popover .hpf-day-exact{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 10px;margin:0 0 15px}.hpf-day-popover .hpf-day-exact>span{font-size:10px;color:var(--muted)}.hpf-day-popover .hpf-day-exact>strong{font:500 20px/1.4 var(--mono);overflow-wrap:anywhere}.hpf-day-popover .hpf-day-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.hpf-day-popover .hpf-day-facts dt{font-size:10px;color:var(--muted)}.hpf-day-popover .hpf-day-facts dd{font:11px/1.7 var(--mono);color:var(--text);overflow-wrap:anywhere}.hpf-day-popover .hpf-day-facts .hpf-gain,.hpf-day-popover .hpf-gain{color:var(--green)!important}.hpf-day-popover .hpf-day-facts .hpf-loss,.hpf-day-popover .hpf-loss{color:var(--red)!important}.hpf-day-popover .hpf-flat{color:var(--muted)!important}.hpf-day-popover .hpf-day-window{font:9px/1.8 var(--mono);color:var(--muted);margin:13px 0 5px}.hpf-day-popover [data-hpf-day-content]>p:last-child{font-size:10px;line-height:1.8;color:var(--muted)}.hpf-day-popover-close{position:absolute;right:8px;top:8px;width:25px;height:25px;padding:0;border:1px solid transparent;border-radius:4px;color:var(--muted);background:none;font:18px/23px var(--font);cursor:pointer}.hpf-day-popover-close:hover{border-color:var(--line);background:var(--surface);color:var(--text)}.hpf-day-popover-close:focus-visible{outline:2px solid var(--accent);outline-offset:1px}

/* Keep the two desktop analysis panels level without reserving detail space. */
@media(min-width:761px){
  .hpf-calendar-pair{align-items:stretch}
  .hpf-calendar-pair>.hpf-calendar{display:flex;flex-direction:column}
  .hpf-calendar-pair>.hpf-calendar>.hpf-calendar-note{margin-top:auto}
  .hpf-calendar-pair>.hpf-asset-analysis{display:flex;min-height:0}
  .hpf-calendar-pair>.hpf-asset-analysis>.wa-panel{display:flex;flex-direction:column;width:100%;height:100%}
  .hpf-calendar-pair>.hpf-asset-analysis>.wa-panel>.wa-map{height:auto;min-height:198px;flex:1 0 198px}
  .hpf-calendar-pair>.hpf-asset-analysis>.wa-panel>.wa-footer{margin-top:auto}
}

