.engagement-score{display:flex;gap:18px;flex-wrap:wrap;align-items:center}.streak-banner{display:flex;align-items:center;gap:20px}.streak-banner>span{font-size:42px}.streak-banner h2,.streak-banner p{margin:4px 0}.streak-warm h2{color:#a13823}.streak-high{background:linear-gradient(115deg,#dbeafe,#fff0d7)}.daily-action{border:2px solid #0b5d4b}.engagement-ranking{padding:0;list-style:none}.engagement-ranking li{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid #dce5df}.engagement-links{display:flex;gap:10px;flex-wrap:wrap}.prediction-calendar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:22px 0}.prediction-calendar>b{text-align:center;font-size:12px}.prediction-calendar .day{min-height:62px;border:1px solid #dce5df;border-radius:10px;display:flex;align-items:center;justify-content:space-around;background:#edf0ed;color:#46554f}.day.correct{background:#d7f1e2;color:#12523b}.day.incorrect{background:#ffe5e1;color:#962f2f}.day.pending{background:#fff0bc;color:#745100}.day.mixed{background:linear-gradient(130deg,#d7f1e2 50%,#ffe5e1 50%)}.day.closed{opacity:.45}.calendar-detail{border-top:1px solid #dce5df;padding-top:20px}.calendar-detail article{padding:12px 0;border-bottom:1px solid #dce5df}.card progress{width:100%;height:12px;accent-color:#0b5d4b}.reasoning-input{width:100%;min-height:75px;padding:10px;border:1px solid #dce5df;border-radius:8px;font:inherit}.reasoning-label{display:grid;gap:5px;font-size:12px;margin-top:12px}.public-choice{display:flex;align-items:center;gap:8px;font-size:11px;margin-top:10px}.public-choice input{width:auto}.engagement-score .pill{margin-left:auto}@media(max-width:400px){.prediction-calendar{gap:4px}.prediction-calendar .day{min-height:48px;font-size:11px}.engagement-score{gap:8px;font-size:12px}.engagement-score .pill{margin-left:0}.streak-banner>span{font-size:30px}}
/* Audit UX 2026-09-18: full monetary values and compact mobile controls. */
.virtual-page,.virtual-page .card,.virtual-page .grid>*{min-width:0}.virtual-page input,.virtual-page select,.virtual-page textarea{max-width:100%;min-width:0;width:100%;box-sizing:border-box}.virtual-page strong,.investor-stats strong{font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.virtual-stats strong{font-size:clamp(18px,2vw,26px);display:block}.virtual-estimate{display:grid;gap:10px;padding:18px;background:#eff7f3;border-radius:12px;border:1px solid #cadfd3}.virtual-selected{overflow-wrap:anywhere}.virtual-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-left:24px;line-height:1.7}.virtual-window{border-left:4px solid #087451}.virtual-capital summary{cursor:pointer;font-weight:700;padding:10px 0}.virtual-chart{width:100%;height:auto;display:block}.allocation-line progress{width:100%;height:12px;accent-color:#087451}.i-table-wrap{overflow-x:auto;max-width:100%}.i-table td{font-variant-numeric:tabular-nums;text-overflow:clip;max-width:none;overflow:visible}.market-quote{margin-right:22px;text-decoration:none;color:inherit;min-height:44px}.market-quote:focus-visible{outline:3px solid #e6b64a;outline-offset:-3px}.market-ribbon:focus-within .market-ribbon-track{animation-play-state:paused}#pwa-update{position:relative;display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0;border-radius:0;padding:16px}#pwa-update button{min-height:44px}
@media(max-width:700px){.virtual-steps{grid-template-columns:1fr;gap:12px}.virtual-page .grid{grid-template-columns:1fr}.holdings-table{white-space:normal}.holdings-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.holdings-table tbody,.holdings-table tr{display:block}.holdings-table tr{border:1px solid var(--line);border-radius:12px;padding:8px;margin:12px 0}.holdings-table td{display:block;text-align:right!important;padding:10px 6px;min-height:22px;white-space:normal;overflow-wrap:anywhere}.holdings-table td:before{content:attr(data-label);float:left;font-weight:600;color:var(--muted);padding-right:14px}.holdings-table td small{clear:both}.virtual-page .transaction-row{flex-wrap:wrap;gap:12px}.virtual-page h1{font-size:30px}}
