:root{color:#111827;background:#f5f7fa;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.32}.app-shell{width:min(100%,720px);min-height:100vh;margin:0 auto;padding:18px 14px 26px}.topbar{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:12px}.topbar h1{margin:0;text-align:center;font-size:1.45rem;line-height:1.2}.eyebrow{margin:0 0 2px;text-align:center;color:#6b7280;font-size:.74rem;text-transform:uppercase}.icon-button,.add-button{display:inline-grid;width:44px;height:44px;place-items:center;border:1px solid #d8dde5;border-radius:8px;color:#111827;background:#fff}.market-switch,.range-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:18px 0;padding:4px;border:1px solid #d8dde5;border-radius:8px;background:#fff}.range-buttons{grid-template-columns:repeat(6,1fr)}.market-switch button,.range-buttons button{min-height:36px;border:0;border-radius:6px;color:#4b5563;background:transparent}.market-switch .active,.range-buttons .active{color:#fff;background:#101820}.screen{display:grid;gap:14px}.holdings-table{display:grid;gap:8px}.holding-row{display:grid;grid-template-columns:.8fr 1.2fr .9fr .7fr 34px;align-items:center;gap:8px;min-height:62px;width:100%;border:1px solid #d8dde5;border-radius:8px;padding:10px;text-align:left;color:#111827;background:#fff}.ticker-cell,.row-action{border:0;padding:0;text-align:left;color:inherit;background:transparent}.ticker-cell{min-width:0}.row-action{display:grid;width:34px;height:34px;place-items:center;border:1px solid #d8dde5;border-radius:8px;color:#374151}.holding-row input{min-width:0;height:40px;border:1px solid #d8dde5;border-radius:6px;padding:0 8px;color:#111827;background:#fff}.holding-row small,.company-summary small{display:block;margin-top:3px;color:#6b7280;font-size:.76rem}.positive{color:#116149}.negative{color:#b03a2e}.add-form{position:sticky;bottom:12px;display:grid;grid-template-columns:.9fr 1.25fr 1fr 44px;gap:8px;padding:10px;border:1px solid #d8dde5;border-radius:8px;background:#fff;box-shadow:0 12px 28px #1018201f}.add-form input{min-width:0;height:44px;border:1px solid #d8dde5;border-radius:6px;padding:0 9px;color:#111827;background:#fff}.chart-screen{padding-top:4px}.detail-nav{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:10px}.detail-nav div{min-height:44px;text-align:center}.detail-nav small{display:block;color:#6b7280;font-size:.78rem}.detail-nav strong{display:block;margin-top:2px;font-size:1.28rem}.performance-lines,.stock-chart{display:block;width:100%;height:auto;border:1px solid #d8dde5;border-radius:8px;background:#fff}.performance-lines{height:calc(100svh - 142px);min-height:520px;max-height:820px}.performance-hit{cursor:pointer}.performance-hit text{font-size:11px;font-weight:700;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}.zero-line,.subchart-line{stroke:#d8dde5;stroke-width:1}.buy-line{stroke:#26706d;stroke-width:1.5;stroke-dasharray:5 5}.current-line{stroke:#111827;stroke-width:1.5;stroke-dasharray:2 4}.peak-line{stroke:#b64b3b;stroke-width:1.5;stroke-dasharray:4 4}.ownership-line{stroke:#7c3aed;stroke-width:3.5;stroke-linecap:round;opacity:.95}.chart-note{font-size:10px;font-weight:700}.corner-percent{font-size:31px;font-weight:900;letter-spacing:0;paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round}.chart-range-note{fill:#6b7280;font-size:9.5px;font-weight:700}.buy-note{fill:#26706d}.peak-note{fill:#b64b3b}.return-positive{fill:#116149}.return-negative{fill:#b03a2e}.ohlc-up{stroke:#116149;stroke-width:1.6;stroke-linecap:square}.ohlc-down{stroke:#b03a2e;stroke-width:1.6;stroke-linecap:square}.ohlc-flat{stroke:#8b95a1;stroke-width:1.6;stroke-linecap:square}.volume-bar{fill:#b9c2ce;opacity:.72}.company-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.company-summary span{min-height:64px;border:1px solid #d8dde5;border-radius:8px;padding:12px;background:#fff}.company-summary strong{display:block;margin-top:2px;font-size:1.3rem}.recharts-wrapper{border:1px solid #d8dde5;border-radius:8px;background:#fff}@media(max-width:480px){.app-shell{padding-inline:10px}.holding-row{grid-template-columns:.8fr 1.1fr .78fr 34px;font-size:.82rem}.holding-row>.positive,.holding-row>.negative{display:none}.add-form{grid-template-columns:minmax(54px,.8fr) minmax(112px,1.25fr) minmax(72px,.95fr) 44px;gap:6px}.add-form input[type=date]{grid-column:auto}.add-form input{padding-inline:7px;font-size:.82rem}}
