:root{color-scheme:dark;--paper:#0A1020;--paper-deep:#141F3A;--card:#0F1A31;--ink:#E9E4D4;--ink-soft:#C0BCAD;--ink-mute:#8B8FA0;--line:#263250;--line-soft:#16203A;--green:#D0A63C;--green-bright:#E8C468;--gain:#7cffa0;--red:#D0603F;--bg:var(--paper);--text:var(--ink);--muted:var(--ink-mute);--accent:var(--green);--bad:var(--red);--good:var(--gain);--radius:14px;--serif:"Fraunces","Iowan Old Style",Georgia,serif;--sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--mono:"IBM Plex Mono","SF Mono",Menlo,monospace;--s-hunt:#2fa866;--s-spy:#5b8fe0;--s-goal:#b58a2a;--warn:#e0a84a}*{box-sizing:border-box}body,html{margin:0;padding:0;background-color:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.45}::selection{background:var(--green);color:var(--paper)}a{color:var(--green)}.wrap{max-width:980px;margin:0 auto;padding:16px 14px 48px}.hdr{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:baseline;justify-content:space-between;margin-bottom:16px}h1{font-family:var(--serif);font-size:1.7rem;font-weight:560;margin:0;letter-spacing:-.015em;color:var(--ink)}.disc{color:var(--ink-mute);font-size:.8rem;font-family:var(--mono);letter-spacing:.04em}.cards{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:10px;gap:10px;margin-bottom:16px}@media (min-width:640px){.cards{grid-template-columns:repeat(4,1fr)}}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}.card .k{color:var(--green);font-family:var(--mono);font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em}.card .v{font-size:1.15rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:4px;color:var(--ink)}.card .pair{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin-top:6px}.card .k2{color:var(--ink-mute);font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}.card>.k2{margin-top:4px}.card .pair .v{margin-top:2px;font-size:1.05rem}.pos{color:var(--gain)}.neg{color:var(--red)}.table-wrap{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);padding-bottom:4px}table{width:100%;border-collapse:collapse;font-size:.85rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}td,th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}th{color:var(--ink-mute);font-family:var(--mono);font-weight:500;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}th .th-sort{background:none;border:0;padding:0;margin:0;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;border-radius:0}th .th-sort:hover{background:none;color:var(--green)}th .th-sort.active{color:var(--ink)}tr:last-child td{border-bottom:0}.chart{display:block;cursor:crosshair}.chart-tip{margin-top:8px;font-family:var(--mono);font-size:.75rem;color:var(--ink-soft);display:flex;flex-wrap:wrap;gap:10px 16px}.chart-tip .v{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink)}form{display:grid;grid-gap:8px;gap:8px}button,input,textarea{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px}textarea{min-height:160px;width:100%}button,textarea{font-family:var(--mono);font-size:.8rem}button{font-weight:500;letter-spacing:.08em;text-transform:uppercase;background:var(--ink);color:var(--paper);cursor:pointer;border:1px solid var(--ink)}button:hover{background:var(--green);border-color:var(--green);color:var(--paper)}button.ghost{background:transparent;color:var(--ink-soft);border:1px solid var(--line)}button.ghost:hover{color:var(--green);border-color:var(--green);background:transparent}.row{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.field-label{display:flex;flex-direction:column;gap:4px;font-size:.75rem;color:var(--muted,#8B8FA0)}.field-label input{width:100%}.field-label span{font-family:var(--mono);letter-spacing:.02em}.err{color:var(--red)}.err,.ok{font-size:.85rem}.ok{color:var(--gain)}.hist{margin-top:10px}.fills{font-size:.8rem;color:var(--ink-mute);font-family:var(--mono)}h2{font-family:var(--serif);font-size:1.15rem;font-weight:600;margin:22px 0 8px;color:var(--ink)}.hist-title{margin:0 0 4px}.hist-meta{margin-bottom:8px}.hist-stats{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-bottom:10px}.hist .table-wrap{margin-top:10px}.side-buy{color:var(--gain);font-weight:700}.side-sell{color:var(--red);font-weight:700}.site-nav{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin:6px 0 4px;font-family:var(--mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.site-nav a{color:var(--ink-soft);text-decoration:none}.site-nav a.active{color:var(--ink)}.site-nav a:hover{color:var(--green)}.site-nav .sep{color:var(--line)}.inline-link{font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;margin-left:8px}.ticker-tip{position:relative;display:inline-block}.ticker-tip .tip-btn{background:none;border:0;padding:0;margin:0;color:inherit;font:inherit;font-weight:650;cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-underline-offset:3px;border-radius:0;text-transform:none;letter-spacing:0}.ticker-tip .tip-btn:hover{background:none;color:var(--green)}.ticker-tip .tip{display:none;position:absolute;left:-10px;right:auto;top:calc(100% + 6px);bottom:auto;z-index:50;width:340px;max-width:calc(100vw - 40px);background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;color:var(--ink);font-family:var(--sans);font-size:.8rem;font-weight:400;line-height:1.45;letter-spacing:0;text-transform:none;white-space:normal;box-shadow:0 12px 28px rgba(0,0,0,.35);pointer-events:none}.ticker-tip:focus-within .tip,.ticker-tip:hover .tip{display:block}.book-tag{display:inline-block;margin-left:8px;font-family:var(--mono);font-size:.68rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--green);border:1px solid var(--line);border-radius:8px;padding:1px 7px;vertical-align:2px}.hdr{margin-bottom:4px}.hdr-actions{display:flex;align-items:center;gap:8px}.sub{margin-bottom:14px}.muted{color:var(--ink-mute)}.banner{border:1px solid var(--warn);color:var(--warn);border-radius:10px;padding:8px 12px;margin-bottom:12px;font-size:.85rem}.banner-err{border-color:var(--red);color:var(--red)}.ok{margin-bottom:10px}.fig-k{color:var(--ink-mute);font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}.fig-v{font-size:1.5rem;font-weight:600;margin-top:2px}.fig-sub{color:var(--ink-mute);font-size:.8rem;margin-top:2px}.fig-sub.pos{color:var(--gain)}.fig-sub.neg{color:var(--red)}.hero{font-size:2.2rem;font-weight:600;letter-spacing:-.01em;margin-top:4px;line-height:1.1}.hero-sm{font-size:1.8rem}.today{margin-bottom:10px;border-color:var(--green)}.today-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px}.today-figs{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.today .fig-v{font-size:2rem}@media (max-width:480px){.today .fig-v{font-size:1.45rem}}.headline{display:grid;grid-template-columns:1fr;grid-gap:10px;gap:10px;margin-bottom:10px}@media (min-width:760px){.headline{grid-template-columns:1fr 1.3fr 1.2fr}}.trio{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;margin-top:8px}.trio .fig-v{font-size:1.25rem}.goal-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.meter{position:relative;height:8px;border-radius:4px;background:var(--line-soft);border:1px solid var(--line);margin:10px 0 6px}.meter-fill{height:100%;border-radius:4px;background:var(--s-goal);min-width:2px}.meter-mark{position:absolute;top:-4px;width:2px;height:14px;background:var(--ink);transform:translateX(-1px)}.stats{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:10px 16px;gap:10px 16px;margin:0 0 16px}@media (min-width:640px){.stats{grid-template-columns:repeat(4,1fr)}}@media (min-width:900px){.stats{grid-template-columns:repeat(7,auto);justify-content:space-between}}.stat dt{color:var(--green);font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase}.stat dd{margin:2px 0 0;font-size:.95rem}.chart-card{margin-bottom:8px}.chart-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.chart-box{width:100%;overflow:hidden}.chart .grid{stroke:var(--line);stroke-width:1}.chart .grid-base{stroke:var(--ink-mute);stroke-dasharray:3 3}.chart .axis{fill:var(--ink-mute);font-size:10px;font-family:var(--mono)}.chart .crosshair{stroke:var(--ink);stroke-opacity:.35}.chart .dot{stroke:var(--card);stroke-width:2}.chart-tip .swatch{vertical-align:0;margin-right:2px}.swatch-dash{background:transparent!important;border:0;border-top:2px dashed;border-radius:0;height:0;width:12px}.chart-note{margin-top:6px;font-size:.7rem}.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}.seg button{border:0;border-radius:0;background:transparent;color:var(--ink-soft);padding:5px 10px;font-size:.7rem}.seg button+button{border-left:1px solid var(--line)}.seg button.active{background:var(--ink);color:var(--paper)}.seg button:hover:not(.active){background:var(--line-soft);color:var(--green)}td.num,th.num,th.num .th-sort{text-align:right}.holdings .sticky-a,.holdings .sticky-b{position:-webkit-sticky;position:sticky;background:var(--card);z-index:1}.holdings .sticky-a{left:0;min-width:34px}.holdings .sticky-b{left:34px;box-shadow:1px 0 0 var(--line)}.holdings td.sticky-b{overflow:visible}.drift{color:var(--ink-mute)}.drift-mid{color:var(--ink);font-weight:600}.drift-hi{font-weight:600}.badge,.drift-hi{color:var(--warn)}.badge{margin-left:6px;font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--warn);border-radius:6px;padding:0 5px}.table-note{margin:6px 0 0;font-size:.7rem}.warn-line{color:var(--warn);margin-bottom:6px}.chip{font-family:var(--mono);font-size:.68rem;font-weight:500;letter-spacing:.06em;border-radius:6px;padding:1px 6px;border:1px solid}.chip-buy{color:var(--gain);border-color:color-mix(in srgb,var(--gain) 45%,transparent)}.chip-sell{color:var(--red);border-color:color-mix(in srgb,var(--red) 45%,transparent)}.sectors{display:grid;grid-gap:12px;gap:12px}.sector-top{display:flex;justify-content:space-between;gap:8px;font-size:.85rem;margin-bottom:5px}.sector-top .swatch{margin-right:8px;vertical-align:0}.sector-t{font-size:.75rem}.bar{position:relative;height:10px;background:var(--line-soft)}.bar,.bar-fill{border-radius:4px}.bar-fill{height:100%}.bar-mark{position:absolute;top:-3px;width:2px;height:16px;background:var(--ink);transform:translateX(-1px)}.swatch{border:0}details.card{margin-top:10px}details>summary{cursor:pointer;list-style:none}details>summary::-webkit-details-marker{display:none}details>summary:before{content:"▸";color:var(--ink-mute);margin-right:8px;display:inline-block;transition:transform .15s}details[open]>summary:before{transform:rotate(90deg)}details[open]>summary{margin-bottom:10px}.import{margin-top:22px}.import>summary{font-family:var(--serif);font-size:1.1rem;font-weight:600}.import-opts{display:flex;flex-direction:column;gap:8px;justify-content:flex-end}.check{display:flex;align-items:center;gap:6px}.preview{border-top:1px solid var(--line);padding-top:10px;margin-top:4px;display:grid;grid-gap:8px;gap:8px}.hist .hist-title{font-family:var(--serif);font-weight:600;font-size:1rem}.hist>summary .disc{margin:4px 0 0 20px}.event-sum{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@media (max-width:480px){.row{grid-template-columns:1fr}.hero{font-size:1.9rem}}.site-nav a+a:before{content:"|";color:var(--line);margin-right:8px;display:inline-block;text-decoration:none}.site-nav a.active{text-decoration:underline;-webkit-text-decoration-color:var(--green);text-decoration-color:var(--green);text-underline-offset:5px}.pending-card{margin-bottom:10px;border-style:dashed;border-color:var(--green);display:grid;grid-gap:6px;gap:6px}.pending-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.pending-head button{padding:6px 12px}.pending-targets{font-size:.75rem;line-height:1.6}