@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap');

:root{--paper:#f4f0e6;--panel:#fffdf8;--ink:#17201d;--muted:#6c736e;--line:#d7d3c8;--green:#087a58;--green-soft:#dceee5;--red:#c8483a;--red-soft:#f5ded9;--yellow:#f0c94b;--navy:#192b33;--shadow:0 14px 45px rgba(22,32,29,.09);font-family:Manrope,system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--paper)}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(8,122,88,.32);outline-offset:2px}[hidden]{display:none!important}.eyebrow{margin:0 0 5px;font:500 10px/1.2 DM Mono,monospace;letter-spacing:.13em;color:var(--muted)}
.button{border:1px solid var(--ink);border-radius:9px;padding:11px 16px;font-weight:800;background:var(--panel);box-shadow:2px 2px 0 var(--ink);transition:transform .15s,box-shadow .15s}.button:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--ink)}.button:active{transform:translate(1px,1px);box-shadow:none}.button.primary{background:var(--green);color:white;border-color:#075b44}.button.secondary{background:var(--panel)}.button.dark{background:var(--navy);color:#fff;border-color:var(--navy);box-shadow:none}.text-button,.icon-button{border:0;background:transparent;font-weight:700}.danger-text{color:var(--red)}

.start-screen{min-height:100vh;display:grid;place-items:center;padding:36px 18px 72px;position:relative;overflow:hidden;background:radial-gradient(circle at 15% 15%,#fff9d9 0 4%,transparent 23%),linear-gradient(115deg,transparent 0 70%,rgba(8,122,88,.06) 70%)}.start-screen:after{content:"";position:absolute;width:280px;height:280px;border:2px solid var(--ink);border-radius:50%;right:-150px;top:-100px;box-shadow:0 0 0 24px var(--yellow),0 0 0 26px var(--ink)}.start-card{width:min(760px,100%);position:relative;z-index:1}.start-card h1{font-size:clamp(64px,12vw,120px);line-height:.84;letter-spacing:-.085em;margin:10px 0 26px;font-weight:800}.logo-arrow{font-size:.52em;color:var(--green);vertical-align:top;margin-left:12px}.start-pitch{font-size:clamp(18px,3vw,25px);line-height:1.4;max-width:620px;margin:0 0 40px}.start-form{display:grid;gap:28px}.start-form fieldset{border:0;padding:0;margin:0}.start-form legend{font-weight:800;font-size:14px;margin-bottom:12px}.choice-row{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.choice input{position:absolute;opacity:0}.choice span{min-height:68px;border:1px solid var(--line);border-radius:10px;background:rgba(255,253,248,.75);display:grid;place-items:center;padding:10px;font-weight:800;text-align:center;transition:.15s}.choice small{display:block;color:var(--muted);font:400 10px DM Mono}.choice input:checked+span{border:2px solid var(--green);background:var(--green-soft);color:var(--green);box-shadow:0 3px 0 var(--green)}.custom-years{margin-top:12px}.field input,.seed-field input{background:var(--panel);border:1px solid var(--ink);border-radius:9px;padding:12px}.seed-field{display:grid;grid-template-columns:1fr auto;gap:9px}.seed-field input{font:500 16px DM Mono;text-transform:uppercase}.field-hint,.disclaimer{font-size:12px;color:var(--muted)}.open-market{font-size:18px;padding:16px 22px;justify-self:start}.resume-button{margin-top:14px;background:var(--yellow)}.start-tape{position:absolute;bottom:0;left:-2%;width:104%;background:var(--ink);color:white;display:flex;justify-content:space-around;padding:12px;font:500 12px DM Mono;transform:rotate(-1deg)}

.topbar{min-height:70px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:10px 22px;background:var(--panel);position:sticky;top:0;z-index:10}.brand-block{display:flex;align-items:center;gap:14px}.brand{border:0;background:transparent;padding:0;font-size:24px;font-weight:800;letter-spacing:-.06em}.brand span{color:var(--green)}.brand-block strong,.brand-block small{display:block}.brand-block small{font:400 9px DM Mono;color:var(--muted);margin-top:2px}.market-clock{display:flex;align-items:center;gap:10px;text-align:center}.market-clock small,.market-clock strong{display:block}.market-clock small{font:400 8px DM Mono;color:var(--muted)}.market-clock strong{font-size:13px}.icon-button{width:36px;height:36px;border:1px solid var(--line);border-radius:50%;background:var(--paper)}.speed-controls{display:flex;padding:3px;border:1px solid var(--line);border-radius:8px}.speed-controls button{border:0;background:transparent;border-radius:5px;padding:5px 7px;font:500 10px DM Mono}.speed-controls button.active{background:var(--ink);color:white}.top-actions{display:flex;justify-content:flex-end;gap:14px}.text-button{font-size:12px}.news-tape{height:36px;background:var(--navy);color:#f8f2de;display:flex;align-items:center;padding:0 22px;gap:9px;font:400 11px DM Mono;overflow:hidden}.live-dot{width:7px;height:7px;border-radius:50%;background:#ef6a56;box-shadow:0 0 0 4px rgba(239,106,86,.16)}.ticker-window{overflow:hidden;flex:1;white-space:nowrap}.ticker-window p{margin:0;animation:ticker-in .3s ease}.dashboard{padding:18px;max-width:1700px;margin:auto}.wealth-strip{display:grid;grid-template-columns:1.7fr repeat(3,1fr) 1.4fr;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);margin-bottom:14px;overflow:hidden}.wealth-strip>div{padding:15px 18px;border-right:1px solid var(--line)}.wealth-strip>div:last-child{border:0}.wealth-strip small,.wealth-strip strong{display:block}.wealth-strip small{font:500 9px DM Mono;color:var(--muted);margin-bottom:5px}.wealth-strip strong{font-size:17px}.wealth-main strong{display:inline;font-size:27px;letter-spacing:-.04em}.wealth-main .change{margin-left:9px}.change{font:500 12px DM Mono}.positive{color:var(--green)}.negative{color:var(--red)}.flat{color:var(--muted)}.progress-block{display:grid!important;grid-template-columns:1fr auto;align-items:center;gap:5px}.progress-block small{grid-column:1/-1}.progress-track{height:7px;background:#e4e0d7;border-radius:9px;overflow:hidden}.progress-track i{display:block;height:100%;width:0;background:var(--green);border-radius:9px}.progress-block strong{font:500 11px DM Mono}.event-banner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;border:1px solid var(--ink);border-radius:12px;background:var(--yellow);padding:12px 14px;margin-bottom:14px;box-shadow:4px 4px 0 var(--ink)}.event-banner>div{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--ink);color:white;font-weight:800}.event-banner p{margin:0}.event-banner small,.event-banner strong,.event-banner span{display:block}.event-banner small{font:500 9px DM Mono}.event-banner strong{font-size:15px}.event-banner p span{font-size:12px;margin-top:2px}

.market-grid{display:grid;grid-template-columns:minmax(310px,.95fr) minmax(390px,1.3fr) minmax(280px,.8fr);gap:14px;align-items:start}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 5px 20px rgba(22,32,29,.05);overflow:hidden}.panel-heading{display:flex;justify-content:space-between;align-items:center;padding:16px 16px 12px}.panel-heading h2{font-size:22px;line-height:1;margin:0;letter-spacing:-.04em}.panel-heading.compact{border-bottom:1px solid var(--line)}.search{display:flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:8px;padding:8px;background:var(--paper)}.search input{width:140px;border:0;outline:0;background:transparent;font-size:11px}.filter-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 16px 12px}.filter-row select{min-width:0;border:1px solid var(--line);border-radius:7px;background:white;padding:7px;font-size:11px}.table-wrap{height:650px;overflow:auto;border-top:1px solid var(--line)}.stock-table{border-collapse:collapse;width:100%;font-size:12px}.stock-table th{position:sticky;top:0;z-index:1;background:var(--paper);font:500 9px DM Mono;color:var(--muted);text-align:right;padding:9px 11px}.stock-table th:first-child{text-align:left}.stock-table td{padding:11px;border-top:1px solid #ebe8df;text-align:right}.stock-table tr{cursor:pointer}.stock-table tbody tr:hover{background:#f8f5ec}.stock-table tr.selected{background:var(--green-soft);box-shadow:inset 3px 0 var(--green)}.company-cell{text-align:left!important}.company-cell strong,.company-cell span{display:block}.company-cell strong{font-size:12px}.company-cell span{color:var(--muted);font:400 9px DM Mono;margin-top:2px}.price-cell{font:500 11px DM Mono}.table-foot{margin:0;padding:10px 16px;color:var(--muted);font-size:10px;border-top:1px solid var(--line)}
.company-panel{padding-bottom:14px}.company-header{padding:18px;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--line)}.company-title{display:flex;gap:12px}.ticker-tile{width:48px;height:48px;border:1px solid var(--ink);border-radius:9px;background:var(--yellow);display:grid;place-items:center;font:500 11px DM Mono;box-shadow:2px 2px 0 var(--ink)}.company-title h2{margin:1px 0 3px;font-size:20px;letter-spacing:-.035em}.company-title p{margin:0;color:var(--muted);font-size:11px}.badge{display:inline-block;padding:4px 7px;background:var(--paper);border:1px solid var(--line);border-radius:99px;font:500 8px DM Mono;text-transform:uppercase;margin:5px 3px 0 0}.owned-pill{padding:7px 9px;border-radius:7px;background:var(--green-soft);color:var(--green);font:500 9px DM Mono}.chart-card{margin:14px 14px 0;border:1px solid var(--line);border-radius:10px;padding:13px;background:#fdfcf7}.chart-meta{display:flex;justify-content:space-between;align-items:end}.chart-meta small,.chart-meta strong{display:block}.chart-meta small{font:500 8px DM Mono;color:var(--muted)}.chart-meta strong{font:700 24px DM Mono}.chart-card canvas{width:100%;height:180px;display:block}.chart-axis{display:flex;justify-content:space-between;color:var(--muted);font:400 8px DM Mono}.company-facts{display:grid;grid-template-columns:repeat(3,1fr);margin:12px 14px;border:1px solid var(--line);border-radius:9px}.fact{padding:10px;border-right:1px solid var(--line)}.fact:last-child{border:0}.fact small,.fact strong{display:block}.fact small{font:400 8px DM Mono;color:var(--muted)}.fact strong{font-size:12px;margin-top:3px}.trade-card{margin:0 14px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.trade-tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--paper)}.trade-tabs button{border:0;border-bottom:1px solid var(--line);background:transparent;padding:10px;font-weight:800}.trade-tabs button.active{background:var(--panel);border-bottom-color:var(--panel);color:var(--green)}.trade-body{padding:13px}.amount-line{display:flex;justify-content:space-between;align-items:center}.amount-line label{font-weight:800;font-size:12px}.amount-line div{border:1px solid var(--line);border-radius:8px;padding:7px}.amount-line input{width:110px;border:0;outline:0;background:transparent;text-align:right;font:500 14px DM Mono}.preset-row,.mini-presets{display:flex;gap:6px;margin-top:9px}.preset-row button,.mini-presets button{flex:1;border:1px solid var(--line);border-radius:6px;padding:6px;background:var(--paper);font:500 9px DM Mono}.trade-preview{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin:10px 0}.trade-button{width:100%}.trade-message{min-height:15px;text-align:center;margin:7px 0 0;font-size:10px;color:var(--red)}.auto-sell{border-top:1px dashed var(--line);padding:12px 13px;background:#fffaf0}.auto-sell>div:first-child{display:flex;justify-content:space-between;gap:10px}.auto-sell small{color:var(--muted)}.auto-sell-controls{display:flex;align-items:center;gap:5px;margin-top:8px}.auto-sell-controls input{min-width:0;flex:1;padding:8px;border:1px solid var(--line);border-radius:7px}.auto-sell-controls .button{padding:7px 10px;box-shadow:none}.side-stack{display:grid;gap:14px}.count-badge{display:grid;place-items:center;min-width:25px;height:25px;border-radius:50%;background:var(--ink);color:white;font:500 10px DM Mono}.holdings-list{max-height:315px;overflow:auto}.holding{display:grid;grid-template-columns:1fr auto;gap:3px;padding:12px 15px;border-bottom:1px solid #ebe8df;cursor:pointer}.holding:hover{background:var(--paper)}.holding strong{font-size:11px}.holding small{font:400 9px DM Mono;color:var(--muted)}.holding-value{text-align:right}.holding-value strong,.holding-value small{display:block}.empty-state{padding:24px;text-align:center;color:var(--muted);font-size:12px}.news-list{max-height:390px;overflow:auto}.news-item{padding:13px 15px;border-bottom:1px solid #ebe8df}.news-item header{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font:400 8px DM Mono;text-transform:uppercase}.news-item h3{font-size:12px;line-height:1.35;margin:6px 0 3px}.news-item p{font-size:10px;line-height:1.4;color:var(--muted);margin:0}.news-item.rumour{border-left:3px solid var(--yellow)}.news-item.major{border-left:3px solid var(--red)}
dialog{width:min(520px,calc(100% - 28px));border:1px solid var(--ink);border-radius:14px;padding:28px;background:var(--panel);color:var(--ink);box-shadow:8px 8px 0 var(--ink)}dialog::backdrop{background:rgba(12,20,18,.64);backdrop-filter:blur(3px)}dialog h2{font-size:32px;margin:6px 0 20px;letter-spacing:-.05em}.dialog-close{position:absolute;right:15px;top:12px;border:0;background:none;font-size:25px}.how-list{list-style:none;padding:0;counter-reset:how}.how-list li{counter-increment:how;display:grid;grid-template-columns:34px 1fr;padding:11px 0;border-top:1px solid var(--line)}.how-list li:before{content:counter(how);grid-row:1/3;width:24px;height:24px;background:var(--yellow);border-radius:50%;display:grid;place-items:center;font:500 10px DM Mono}.how-list b,.how-list span{font-size:12px}.how-list span{color:var(--muted)}.dialog-note{font-size:11px;background:var(--paper);padding:12px;border-radius:8px}.results-dialog{text-align:center}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:9px;margin:20px 0}.result-stats div{padding:12px;border-right:1px solid var(--line)}.result-stats div:last-child{border:0}.result-stats small,.result-stats strong{display:block}.result-stats small{font:400 8px DM Mono;color:var(--muted)}.dialog-actions{display:flex;justify-content:center;gap:10px}.toast-region{position:fixed;right:18px;bottom:18px;z-index:30;display:grid;gap:8px}.toast{max-width:320px;background:var(--ink);color:#fff;padding:11px 14px;border-radius:8px;box-shadow:var(--shadow);font-size:11px;animation:toast-in .25s ease}.toast strong{display:block;color:var(--yellow);font:500 9px DM Mono;margin-bottom:3px}
@keyframes toast-in{from{opacity:0;transform:translateY(8px)}}@keyframes ticker-in{from{opacity:0;transform:translateY(5px)}}
@media(max-width:1050px){.market-grid{grid-template-columns:minmax(300px,.9fr) minmax(390px,1.2fr)}.side-stack{grid-column:1/-1;grid-template-columns:1fr 1fr}.topbar{grid-template-columns:1fr auto}.top-actions{display:none}.wealth-strip{grid-template-columns:1.5fr repeat(2,1fr)}.wealth-strip>div:nth-child(4),.wealth-strip>div:nth-child(5){display:none}.table-wrap{height:620px}}
@media(max-width:720px){.topbar{padding:9px 12px;position:static}.brand-block>div{display:none}.market-clock{justify-self:end}.market-clock>div:first-child{display:none}.news-tape{padding:0 12px}.dashboard{padding:9px}.wealth-strip{grid-template-columns:1.4fr 1fr}.wealth-strip>div{padding:12px}.wealth-strip>div:nth-child(3){display:none}.wealth-main strong{font-size:20px}.market-grid{display:flex;flex-direction:column}.market-panel,.company-panel,.side-stack{width:100%}.market-panel{order:2}.company-panel{order:1}.side-stack{order:3;display:grid;grid-template-columns:1fr}.table-wrap{height:420px}.company-facts{grid-template-columns:repeat(3,1fr)}.event-banner{grid-template-columns:auto 1fr}.event-banner button{grid-column:1/-1}.choice-row{grid-template-columns:repeat(2,1fr)}.choice:last-child{grid-column:1/-1}.start-card h1{font-size:68px}.start-pitch{font-size:17px;margin-bottom:28px}.start-screen{align-items:start;padding-top:55px}.seed-field{grid-template-columns:1fr}.seed-field .button{box-shadow:none}.market-grid .panel{box-shadow:none}.chart-card canvas{height:150px}}
/* Intrinsic-width guardrails keep long prices and company names inside small screens. */
html,body{width:100%;max-width:100%;overflow-x:hidden}
.panel,.market-grid>*,.wealth-strip>div,.company-title,.company-title>div,.chart-card,.trade-card{min-width:0;max-width:100%}
.company-title h2{overflow-wrap:anywhere}.ticker-tile{flex:0 0 48px}.chart-card canvas{max-width:100%}
.wealth-main canvas{display:block;width:100%;height:25px;margin-top:5px}
@media(max-width:720px){
  .topbar{grid-template-columns:minmax(0,1fr) auto}
  .speed-controls{order:-1}.market-clock{min-width:0;gap:5px}
  .wealth-strip{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
  .wealth-strip>.progress-block{grid-column:1/-1}
  .wealth-strip strong{overflow-wrap:anywhere}.company-header{gap:8px;padding:14px}
  .amount-line{gap:8px}.amount-line>div{min-width:0}.amount-line input{width:82px}
  .preset-row{overflow-x:auto;padding-bottom:2px}.preset-row button{flex:0 0 68px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
