:root{--ink:#111;--paper:#f7f9f8;--panel:#fff;--line:#bdc5c1;--muted:#68716d;--blue:#1268e8;--green:#087b43;--mint:#e1f6ea;--red:#c52835;--rose:#fff0f1;--shade:#eef1ef}
*{box-sizing:border-box}html,body{max-width:100%;overflow-x:hidden}body{margin:0;background:var(--paper);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:0}button,input{font:inherit;color:inherit}button,a{touch-action:manipulation}.topbar{height:62px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 24px;border-bottom:2px solid var(--ink);background:var(--panel);position:sticky;top:0;z-index:10}.brand{font:900 25px Georgia,serif;text-decoration:none;color:var(--ink)}.primary-nav{height:100%;display:flex}.primary-nav a{display:grid;place-items:center;min-width:126px;padding:0 18px;color:var(--ink);font-weight:900;text-decoration:none}.primary-nav a.on{box-shadow:inset 0 -5px var(--blue)}.asset-link{justify-self:end;text-decoration:none;color:var(--ink);font:700 14px ui-monospace,SFMono-Regular,Menlo,monospace}.asset-link span{color:var(--muted);font:500 11px ui-sans-serif,system-ui,sans-serif;display:block;text-align:right}.page{max-width:1180px;margin:auto;padding:28px 24px 46px}.heading{display:flex;justify-content:space-between;align-items:end;gap:18px}.heading h1{font-size:34px;line-height:1;margin:0}.heading-meta{margin-top:8px;color:var(--muted);font:600 12px ui-monospace,SFMono-Regular,Menlo,monospace}.segmented{display:flex;border:1px solid var(--ink);background:var(--panel)}.segmented button{min-height:44px;padding:0 18px;border:0;background:transparent;font-weight:900}.segmented button.on,.segmented button[aria-pressed="true"]{background:var(--ink);color:#fff}.scopebar,.amountbar{min-height:64px;display:flex;align-items:center;border:1px solid var(--ink);background:var(--panel);padding:10px 12px;gap:7px}.scopebar button,.amountbar button,.amountbar input{height:42px;border:1px solid var(--ink);background:#fff;font-weight:900}.scopebar button{padding:0 16px}.scopebar button.on,.scopebar button[aria-pressed="true"],.amountbar button.on,.amountbar button[aria-pressed="true"]{background:var(--ink);color:#fff}.amountbar>strong{margin-right:auto;padding-left:4px}.amountbar button{min-width:68px}.amountbar input{width:128px;padding:0 11px}.stack{display:grid;gap:16px;margin-top:16px}.fixture{border:1px solid var(--ink);background:var(--panel)}.fixture[hidden]{display:none}.fixture-head{min-height:58px;display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}.fixture-head strong{font-size:18px}.fixture-meta{color:var(--muted);font:600 12px ui-monospace,SFMono-Regular,Menlo,monospace}.score{display:flex;align-items:center;gap:11px}.live{padding:4px 8px;background:var(--red);color:#fff;font:700 11px ui-monospace,SFMono-Regular,Menlo,monospace}.score b{font:700 18px ui-monospace,SFMono-Regular,Menlo,monospace}.market{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.outcome{position:relative;min-width:0;min-height:238px;padding:17px;border-right:1px solid var(--line);display:grid;grid-template-rows:48px 1fr 50px;overflow:hidden}.outcome:last-child{border-right:0}.outcome-name{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start}.outcome-name strong{min-width:0;font-size:19px;line-height:1.2}.outcome-status{display:grid;justify-items:end;align-content:start;gap:2px;min-width:0;white-space:nowrap}.holding-tag{display:inline-block;margin-right:7px;font-size:11px;font-weight:900;color:var(--green)}.market-tick{display:flex;align-items:baseline;justify-content:flex-end;gap:5px;color:var(--blue);font:700 9px/1.15 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}.market-tick.sell{color:#59615d}.market-tick:nth-child(2){opacity:.58}.market-tick:nth-child(3){opacity:.34}.trade-age{color:var(--muted);font-weight:500;font-size:8px}.earnings{align-self:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.earnings span{display:block;color:var(--muted);font:600 12px ui-sans-serif,system-ui,sans-serif}.earnings strong{display:block;margin-top:3px;color:var(--green);font-size:27px;line-height:1}.holding{background:var(--mint);box-shadow:inset 5px 0 var(--green)}.holding.loss{background:var(--rose);box-shadow:inset 5px 0 var(--red)}.position{align-self:center}.position .pnl{font:700 29px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--green);line-height:1}.holding.loss .pnl,.holding.loss .holding-tag{color:var(--red)}.position small{display:block;margin-top:8px;color:#2d3330;font-size:12px}.actions{display:grid;grid-template-columns:1fr;gap:8px}.holding .actions{grid-template-columns:1fr 1fr}.actions button{min-height:48px;border:1px solid var(--ink);background:#fff;font-weight:900}.actions .buy{background:var(--blue);border-color:var(--blue);color:#fff}.actions .manage{border-color:var(--red);color:var(--red)}.empty{padding:42px 18px;text-align:center;border:1px solid var(--line);background:#fff;color:var(--muted)}.footnote{margin-top:12px;color:var(--muted);font-size:12px}.site-footer{border-top:2px solid var(--ink);padding:19px 24px;color:var(--muted);font:600 11px ui-monospace,SFMono-Regular,Menlo,monospace;display:flex;justify-content:space-between}.mobile-nav{display:none}.trade-status{min-height:0;color:var(--muted);font-size:12px}.trade-status.is-error{color:var(--red)}
.trade-toolbar{display:grid;grid-template-columns:auto auto auto minmax(410px,1fr);align-items:stretch;gap:10px}.trade-toolbar .heading{min-width:150px;flex-direction:column;align-items:flex-start;justify-content:center}.trade-toolbar .segmented,.trade-toolbar .scopebar,.trade-toolbar .amountbar{min-height:64px;margin:0}.trade-toolbar .segmented{padding:10px}.trade-toolbar .segmented button{min-height:42px;padding:0 13px}.trade-toolbar .scopebar{padding:10px}.trade-toolbar .scopebar button{padding:0 12px}.trade-toolbar .amountbar{padding:10px}.trade-toolbar .amountbar button{min-width:60px}.trade-toolbar .amountbar input{width:92px}.trade-toolbar+.trade-status+.stack{margin-top:16px}
.fixture-title,.outcome-name strong{display:inline-flex;align-items:center;gap:6px}.team-crest{width:18px;height:18px;flex:0 0 18px;object-fit:contain}.team-crest.is-missing{visibility:hidden}.outcome-status{justify-items:stretch;white-space:normal}.market-tick{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;color:var(--green)}.market-label{justify-self:start}.market-notional{justify-self:end}
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:30}.scrim[hidden]{display:none}.sheet{position:fixed;left:50%;bottom:50%;z-index:31;width:min(560px,100%);transform:translate(-50%,50%);border:2px solid var(--ink);background:#fff;padding:20px}.sheet[hidden]{display:none}.sheet-top{display:flex;align-items:start;justify-content:space-between;gap:14px}.sheet h2{margin:0;font-size:23px}.sheet-close{width:40px;height:40px;border:1px solid var(--ink);background:#fff;font-size:22px}.sheet p{color:var(--muted)}.sheet-details{display:grid;gap:7px;margin:18px 0;padding:13px;border:1px solid var(--line);font-size:13px}.sheet-actions{display:flex;justify-content:end;gap:10px;flex-wrap:wrap}.sheet-actions button{min-height:42px;border:1px solid var(--ink);background:#fff;padding:0 13px;font-weight:900}.sheet-actions .primary{background:var(--blue);border-color:var(--blue);color:#fff}.ratio-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:14px 0}.ratio-grid button{height:44px;border:1px solid var(--ink);background:#fff;font-weight:900}.ratio-grid button.on{background:var(--ink);color:#fff}
@media(prefers-reduced-motion:reduce){.market-tick.refresh{animation:none}}
.is-rise{color:var(--green)!important}.is-fall{color:var(--red)!important}@media(prefers-reduced-motion:no-preference){.profit-changed{animation:profit-flash .42s ease-out}}@keyframes profit-flash{from{opacity:.35}to{opacity:1}}
@media(max-width:760px){body{padding-bottom:66px}.topbar{height:54px;grid-template-columns:1fr auto;padding:0 14px}.brand{font-size:22px}.primary-nav{display:none}.asset-link{font-size:12px}.asset-link span{display:none}.page{padding:17px 13px 32px}.trade-toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.trade-toolbar>*{min-width:0}.trade-toolbar .heading{display:block;width:100%;min-width:0}.heading h1{font-size:27px}.heading-meta{margin-top:4px;font-size:10px}.trade-toolbar .segmented,.trade-toolbar .scopebar,.trade-toolbar .amountbar{grid-column:1;width:100%;min-width:0}.trade-toolbar .segmented{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-height:44px;padding:0}.trade-toolbar .segmented button{width:100%;min-width:0;min-height:42px;padding:0 5px;font-size:14px}.scopebar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.scopebar button{min-width:0;padding:0 8px}.amountbar{position:sticky;top:54px;z-index:8;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:8px}.amountbar>strong{grid-column:1/-1;padding-left:2px}.trade-toolbar .amountbar button,.trade-toolbar .amountbar input{width:100%;min-width:0}.amountbar input{grid-column:1/-1}.fixture-head{display:block}.fixture-head>.fixture-meta{display:block;margin-top:5px}.score{margin-top:5px;justify-content:space-between}.market{display:block}.outcome{min-height:168px;border-right:0;border-bottom:1px solid var(--line);padding:14px;grid-template-columns:minmax(0,1fr) minmax(96px,112px);grid-template-rows:48px 72px}.outcome:last-child{border-bottom:0}.outcome-name{grid-column:1;grid-row:1;gap:5px}.outcome-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:17px}.outcome-status{gap:2px}.holding-tag{font-size:9px}.market-tick{font-size:7px;gap:3px}.trade-age{font-size:7px}.earnings,.position{grid-column:1;grid-row:2}.earnings strong{font-size:23px}.position .pnl{font-size:25px}.actions{grid-column:2;grid-row:1/3;display:block;min-width:0}.actions button{width:100%;height:100%;min-height:0;padding:4px;font-size:12px}.holding .actions{display:grid;grid-template-columns:1fr;grid-template-rows:1fr 1fr}.holding .actions button{height:auto}.site-footer{display:none}.mobile-nav{position:fixed;display:grid;grid-template-columns:1fr 1fr;left:0;right:0;bottom:0;height:64px;z-index:20;border-top:2px solid var(--ink);background:#fff}.mobile-nav a{display:grid;place-items:center;color:var(--ink);text-decoration:none;font-weight:900}.mobile-nav a.on{background:var(--ink);color:#fff}.sheet{bottom:0;width:min(560px,100%);transform:translateX(-50%);border-bottom:0;padding:18px 15px}.sheet-actions{margin-top:16px}.ratio-grid{gap:5px}.ratio-grid button{height:42px}}
