*{box-sizing:border-box}:root,:root[data-theme=dark]{--bg:#0e0f13;--bg-elevated:#16171d;--bg-sunken:#14151a;--bg-hover:#1c1e24;--border:#23252b;--border-soft:#2a2c33;--fg:#e6e6e6;--fg-strong:#fff;--fg-soft:#cfd2d8;--muted:#9aa0ac;--accent:#5b8def;--accent-rgb:91,141,239;--accent-fg:#fff;--accent2:#e0a458;--accent2-rgb:224,164,88;--earnings-1w:#ff7a45;--earnings-1w-rgb:255,122,69;--earnings-2w:#a78bfa;--earnings-2w-rgb:167,139,250;--pos:#4caf82;--neg:#ef5350;--hidden-row-rgb:154,160,172;--overlay-bg:rgba(14,15,19,.72);--shadow:rgba(0,0,0,.35)}:root[data-theme=light]{--bg:#f5f6f8;--bg-elevated:#fff;--bg-sunken:#eef0f4;--bg-hover:#eef0f4;--border:#e1e3e8;--border-soft:#ececf0;--fg:#1b1d23;--fg-strong:#05060a;--fg-soft:#3f4450;--muted:#6b7280;--accent:#3763d1;--accent-rgb:55,99,209;--accent-fg:#fff;--accent2:#b5791a;--accent2-rgb:181,121,26;--earnings-1w:#d9540e;--earnings-1w-rgb:217,84,14;--earnings-2w:#7c5cdb;--earnings-2w-rgb:124,92,219;--pos:#1d8a5c;--neg:#d4423b;--hidden-row-rgb:107,114,128;--overlay-bg:hsla(0,0%,100%,.78);--shadow:rgba(15,23,42,.08)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--fg);transition:background-color .25s ease,color .25s ease}main{padding:24px 16px 64px}.site-nav,main{max-width:1100px;margin:0 auto}.site-nav{align-items:center;justify-content:space-between;padding:16px 16px 0}.site-nav,.site-nav-links{display:flex;gap:20px}.site-nav-link{color:var(--muted);text-decoration:none;font-size:.95rem;padding-bottom:4px;border-bottom:2px solid transparent}.site-nav-link.active{color:var(--fg-strong);border-bottom-color:var(--accent)}.site-nav-user{position:relative;display:flex;align-items:center;gap:4px}.theme-toggle{background:none;border:none;cursor:pointer;font-size:1.05rem;line-height:1;padding:6px 8px;border-radius:6px}.theme-toggle:hover{background:var(--bg-hover)}.sign-in-btn,.user-menu-trigger{display:flex;align-items:center;gap:8px;background:none;border:none;color:var(--fg-soft);font-size:.85rem;cursor:pointer;padding:4px 8px;border-radius:6px}.sign-in-btn:hover,.user-menu-trigger:hover{background:var(--bg-hover)}.user-menu-dropdown{position:absolute;right:0;top:100%;margin-top:6px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;min-width:120px;overflow:hidden;z-index:10;box-shadow:0 4px 16px var(--shadow)}.user-menu-item{display:block;width:100%;text-align:left;background:none;border:none;color:var(--fg-soft);font-size:.85rem;padding:10px 14px;cursor:pointer}.user-menu-item:hover{background:var(--bg-hover)}.last-refreshed{color:var(--muted);font-size:.8rem;margin:-8px 0 16px}.about-layout{display:flex;gap:32px;align-items:flex-start;flex-wrap:wrap}.about-text{flex:1 1;min-width:240px;line-height:1.6;color:var(--fg-soft)}.about-photo{width:180px;height:180px;flex-shrink:0;border-radius:50%;object-fit:cover}.about-disclaimer{font-size:.82rem;color:var(--muted)}.about-socials{display:flex;gap:14px;margin-top:16px}.social-icon{color:var(--muted);display:inline-flex}.social-icon:hover{color:var(--fg-strong)}h1{font-size:1.3rem;margin-bottom:16px}h2{font-size:1rem;color:var(--fg-soft);margin:40px 0 16px}table{width:100%;border-collapse:collapse;font-size:.85rem}td,th{text-align:left;padding:6px 10px;border-bottom:1px solid var(--border);white-space:nowrap}th{color:var(--muted);font-weight:500}.pos{color:var(--pos)}.neg{color:var(--neg)}.pnl-cards{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:24px}.pnl-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:16px 20px;min-width:160px;box-shadow:0 1px 2px var(--shadow)}.pnl-card .label{color:var(--muted);font-size:.8rem;margin-bottom:4px}.pnl-card .value{font-size:1.4rem;font-weight:600}th.sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}th.sortable:hover{color:var(--fg)}.date-group-header td{background:rgba(var(--accent2-rgb),.12);color:var(--accent2);font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:6px 10px;border-bottom:1px solid var(--border-soft)}.chain-row{cursor:pointer}.chain-row:hover{background:var(--bg-elevated)}.chain-row-hidden{background:rgba(var(--hidden-row-rgb),.14)}.chain-row-hidden:hover{background:rgba(var(--hidden-row-rgb),.22)}.chain-row-hidden-swatch{border-radius:2px;margin-left:14px;margin-right:2px;background:rgba(var(--hidden-row-rgb),.6)}.chain-row-hidden-swatch,.earnings-dot{display:inline-block;width:9px;height:9px;vertical-align:middle}.earnings-dot{border-radius:50%;margin-left:7px}.earnings-dot-1w{background:var(--earnings-1w)}.earnings-dot-2w{background:var(--earnings-2w)}.earnings-legend{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--muted);font-size:.82rem;margin:0 0 10px}.earnings-legend .earnings-dot{margin-left:14px;margin-right:2px}.earnings-legend .earnings-dot:first-child{margin-left:0}.chain-detail{background:var(--bg-sunken);padding:8px 10px 12px 28px!important;white-space:normal}.chain-detail table{font-size:.8rem}.chain-detail-total td{font-weight:700;border-top:1px solid var(--border-soft)}.chain-detail td,.chain-detail th{border-bottom:1px solid var(--border-soft);padding:4px 8px}.unmatched-badge{margin-left:6px;color:var(--neg);cursor:help}.unmatched-note{margin:8px 0 0;font-size:.8rem;color:var(--neg)}.table-wrap{overflow-x:auto}.empty{color:var(--muted);padding:24px 0}.user-avatar{width:28px;height:28px;border-radius:50%;vertical-align:middle;display:block}.locked-block{position:relative;margin-top:4px;border-radius:8px;overflow:hidden}.locked-block table{filter:blur(5px);-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.locked-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px 16px;text-align:center;background:var(--overlay-bg)}.locked-overlay p{margin:0;color:var(--fg-soft);font-size:.9rem;max-width:340px}.locked-signin{background:var(--bg-elevated);border:1px solid var(--border)}.home-hero{padding:40px 0 32px}.home-eyebrow{color:var(--accent);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin:0 0 10px}.home-title{font-size:2.1rem;line-height:1.2;margin:0 0 14px;color:var(--fg-strong)}.home-tagline{color:var(--fg-soft);font-size:1.05rem;line-height:1.6;max-width:620px;margin:0 0 28px}.home-cta{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:40px}.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border-radius:8px;font-size:.9rem;font-weight:500;text-decoration:none;border:1px solid transparent;cursor:pointer}.btn-primary{background:var(--accent);color:var(--accent-fg)}.btn-primary:hover{opacity:.9}.btn-secondary{background:var(--bg-elevated);color:var(--fg);border-color:var(--border)}.btn-secondary:hover{background:var(--bg-hover)}.stat-strip{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:48px}.stat{display:block;background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;padding:16px 20px;min-width:150px;box-shadow:0 1px 2px var(--shadow);text-decoration:none}a.stat:hover{border-color:var(--accent)}.stat-value{font-size:1.5rem;font-weight:700;color:var(--fg-strong)}.stat-value.pos{color:var(--pos)}.stat-value.neg{color:var(--neg)}select{background:var(--bg-elevated);color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:6px 10px;font-size:.85rem}.pnl-range-controls{display:flex;align-items:center;gap:10px;margin-bottom:20px;flex-wrap:wrap}.range-date-text{color:var(--accent);font-size:.82rem;flex-basis:100%;margin-top:2px}.pnl-range-note{color:var(--accent);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin:24px 0 4px}.pill-tabs{display:flex;justify-content:center;gap:8px;margin:16px 0 24px}.pill-tab{padding:8px 22px;border-radius:8px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--muted);font-size:.9rem;cursor:pointer}.pill-tab.active,.pill-tab:hover{background:var(--bg-hover)}.pill-tab.active{color:var(--fg-strong);border-color:var(--accent);font-weight:600}.admin-setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;padding:16px 20px;margin-bottom:24px;max-width:560px}.admin-setting-label{font-weight:600;margin-bottom:2px}.admin-setting-desc{color:var(--muted);font-size:.82rem;max-width:400px}.about-editor{max-width:640px}.about-editor-row{margin-bottom:24px}.about-editor-row input[type=url],.about-editor-row textarea{width:100%;background:var(--bg-elevated);color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:8px 10px;font-size:.85rem;font-family:inherit;margin-top:6px}.about-editor-preview{display:block;margin:10px 0;width:120px;height:120px}.about-editor-photo-controls{display:flex;align-items:center;gap:12px}.about-editor-socials{display:grid;grid-template-columns:90px 1fr;grid-gap:8px 10px;gap:8px 10px;align-items:center;margin-top:6px}.about-editor-socials label{font-size:.82rem;color:var(--muted)}.csv-upload-row{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:28px}.csv-upload-slot{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;padding:20px 24px;min-width:320px;display:flex;flex-direction:column;align-items:flex-start;gap:12px}.csv-upload-slot input[type=file]{font-size:.8rem;color:var(--fg-soft)}.csv-account-row{flex-wrap:wrap}.csv-account-row,.watchlist-add-form{display:flex;align-items:center;gap:10px}.watchlist-add-form{margin-bottom:20px}.watchlist-add-form input[type=text]{background:var(--bg-elevated);color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:7px 10px;font-size:.85rem;width:160px}.watchlist-open-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-left:8px;vertical-align:middle}.earnings-hour-icon{margin-left:6px;vertical-align:-2px}svg.earnings-hour-icon[aria-label="Before market open"]{color:var(--earnings-1w)}svg.earnings-hour-icon[aria-label="After market close"]{color:var(--muted)}.watchlist-editable{cursor:pointer}.watchlist-editable:hover{background:var(--bg-hover)}.csv-summary{font-size:.8rem;color:var(--muted)}.csv-summary.csv-error{color:var(--neg)}.btn-link{background:none;border:none;padding:0;color:var(--accent2,var(--accent));cursor:pointer;font-size:inherit;text-decoration:underline}.csv-pair-list{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.csv-pair-card{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--bg-elevated);border:1px solid var(--accent);border-radius:8px;padding:12px 16px;font-size:.85rem}.toggle-switch{position:relative;width:44px;height:24px;border-radius:999px;border:none;background:var(--border);cursor:pointer;flex-shrink:0;padding:0}.toggle-switch.on{background:var(--accent)}.toggle-switch:disabled{cursor:not-allowed;opacity:.6}.toggle-knob{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .15s ease}.toggle-switch.on .toggle-knob{transform:translateX(20px)}.pnl-range-controls label{color:var(--muted);font-size:.85rem}.comment-cell{color:var(--fg);font-size:.85rem;max-width:240px;white-space:pre-wrap;word-break:break-word}.comment-cell.editable{cursor:pointer}.comment-cell.editable:hover{background:var(--bg-hover)}.comment-placeholder{color:var(--muted);font-size:.8rem}.contract-line{display:block}.payoff-chart{max-width:460px;margin:16px 0 4px;padding:16px 18px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;cursor:default}.payoff-context-note{color:var(--muted);font-size:.75rem;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border)}.payoff-pnl-label{color:var(--muted);font-size:.8rem;display:flex;align-items:center;gap:4px}.payoff-pnl-value{font-size:1.4rem;font-weight:700;margin:2px 0 14px}.payoff-price-readout{text-align:center;margin-bottom:6px}.payoff-price-sub{color:var(--muted);font-size:.78rem}.payoff-price-main{font-weight:700;font-size:.95rem}.payoff-price-pct{font-weight:500;color:var(--muted)}.payoff-svg{width:100%;height:auto;touch-action:none;cursor:crosshair;-webkit-user-select:none;-moz-user-select:none;user-select:none}.payoff-border{stroke:var(--border-soft);stroke-width:1;stroke-dasharray:2 3}.payoff-zero-line{stroke:var(--fg-soft);stroke-width:1}.payoff-area-loss{fill:var(--neg);opacity:.15}.payoff-area-profit{fill:var(--pos);opacity:.15}.payoff-curve-loss{fill:none;stroke:var(--neg);stroke-width:2}.payoff-curve-profit{fill:none;stroke:var(--pos);stroke-width:2}.payoff-current-line{stroke:var(--muted);stroke-width:1}.payoff-cursor-line{stroke:var(--fg-strong);stroke-width:1.5}.payoff-dot-breakeven{fill:var(--fg-strong)}.payoff-dot-maxprofit{fill:var(--pos)}.payoff-dot-maxloss{fill:var(--neg)}.payoff-axis-label{fill:var(--muted);font-size:12px}.payoff-stats{margin-top:14px;padding-top:12px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.payoff-stat-row{display:flex;align-items:center;justify-content:space-between;font-size:.85rem}.payoff-dot-swatch{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.payoff-dot-swatch.profit{background:var(--pos)}.payoff-dot-swatch.loss{background:var(--neg)}.payoff-dot-swatch.breakeven{background:var(--fg-strong)}.comment-cell.editing textarea{width:100%;min-width:200px;background:var(--bg-elevated);color:var(--fg);border:1px solid var(--accent);border-radius:6px;padding:4px 8px;font-size:.85rem;font-family:inherit;resize:vertical}.stat-label{color:var(--muted);font-size:.78rem;margin-top:2px}.stat-sub{color:var(--muted);font-size:.68rem;margin-top:4px}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:16px;gap:16px;margin-bottom:40px}.feature-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:20px;box-shadow:0 1px 2px var(--shadow)}.feature-icon{width:32px;height:32px;color:var(--accent);margin-bottom:12px}.feature-card h3{margin:0 0 8px;font-size:1rem;color:var(--fg-strong)}.feature-card p{margin:0;color:var(--fg-soft);font-size:.88rem;line-height:1.55}.home-footnote{color:var(--muted);font-size:.85rem}@media (max-width:640px){main{padding:16px 12px 48px}.site-nav{flex-wrap:wrap;gap:8px;padding:12px 12px 0}.site-nav-links{order:2;width:100%;flex-wrap:nowrap;overflow-x:auto;gap:16px;padding-bottom:10px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.site-nav-links::-webkit-scrollbar{display:none}.site-nav-link{flex-shrink:0}.site-nav-user{order:1;margin-left:auto}.home-hero{padding:24px 0 20px}.home-title{font-size:1.6rem}.home-tagline{font-size:.95rem}.home-cta .btn{flex:1 1 auto;justify-content:center}.stat-strip{gap:10px;margin-bottom:32px}.stat{min-width:0;flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 10px);padding:12px 14px}.pnl-cards{gap:10px}.pnl-card{min-width:0;flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 10px);padding:12px 14px}table{font-size:.78rem}td,th{padding:5px 7px}.chain-detail{padding:8px 8px 10px 14px!important}.payoff-chart{max-width:100%;padding:12px 14px}.pill-tab{padding:7px 14px;font-size:.85rem}.admin-setting-row{align-items:flex-start;gap:12px}.about-layout,.admin-setting-row{flex-direction:column}.about-photo{width:140px;height:140px}}@media (max-width:400px){.stat{flex:1 1 100%}}