:root{--bg: #0f1117;--surface: #171a23;--surface-alt: #1f2330;--border: #262a35;--text: #e6e6e6;--text-secondary: #9a9a9a;--text-muted: #777;--text-header: #c4c9d4;--link: #6fa8ff;--link-disabled: #555;--btn-bg: #2f6feb;--btn-disabled-bg: #555;--error-bg: #4a1f1f;--error-text: #ffb4b4;--gainer-bg: #123a23;--gainer-text: #5be08a;--loser-bg: #3a1212;--loser-text: #ff7373;--track: #3a3f52;--toggle-hover: #2a3045;--settings-shadow: 0 4px 20px rgba(0,0,0,.5)}[data-theme=light]{--bg: #f0f2f5;--surface: #ffffff;--surface-alt: #e8eaed;--border: #d1d5db;--text: #111827;--text-secondary: #6b7280;--text-muted: #9ca3af;--text-header: #374151;--link: #1d4ed8;--link-disabled: #9ca3af;--btn-bg: #1d4ed8;--btn-disabled-bg: #9ca3af;--error-bg: #fef2f2;--error-text: #b91c1c;--gainer-bg: #dcfce7;--gainer-text: #15803d;--loser-bg: #fee2e2;--loser-text: #b91c1c;--track: #d1d5db;--toggle-hover: #f3f4f6;--settings-shadow: 0 4px 20px rgba(0,0,0,.15)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);transition:background .2s,color .2s}.app{max-width:1400px;margin:0 auto;padding:24px}.app-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.app-header h1{font-size:1.4rem;margin:0;display:flex;align-items:baseline;gap:10px}.grand-total-link{background:none;border:none;padding:0;font-size:1rem;font-weight:400;color:var(--link);cursor:pointer;text-decoration:underline}.grand-total-link:hover{color:#a0c4ff}.header-actions{display:flex;align-items:center;gap:12px}.as-of{font-size:.85rem;color:var(--text-secondary)}button{background:var(--btn-bg);color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:.9rem}button:disabled{background:var(--btn-disabled-bg);cursor:default}.settings-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;padding:4px;color:var(--text-secondary);cursor:pointer;line-height:0;border-radius:50%;text-decoration:none;transition:color .15s,background .15s}.settings-btn:hover{color:var(--text);background:var(--surface-alt)}.settings-btn svg{display:block}.settings-anchor{position:relative}.settings-popover{position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px;min-width:200px;box-shadow:var(--settings-shadow);z-index:100}.settings-popover h3{margin:0 0 14px;font-size:.85rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-row label{font-size:.9rem;color:var(--text)}.theme-toggle{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--text-secondary)}.toggle-track{position:relative;width:40px;height:22px;background:var(--surface-alt);border:1px solid var(--border);border-radius:11px;cursor:pointer;transition:background .2s}.toggle-track.on{background:var(--btn-bg);border-color:var(--btn-bg)}.toggle-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px #0000004d}.toggle-track.on .toggle-thumb{transform:translate(18px)}.settings-page{max-width:640px;margin:0 auto;padding:24px 16px 48px}.settings-section{margin-bottom:36px}.settings-section h2{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid var(--border)}.settings-hint{font-size:.85rem;color:var(--text-secondary);margin:0 0 16px;line-height:1.5}.settings-row-page{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0}.settings-row-page label{font-size:.9rem;color:var(--text)}.provider-list{display:flex;flex-direction:column;gap:10px}.provider-option{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s}.provider-option:hover,.provider-option.selected{border-color:var(--link);background:var(--surface-alt)}.provider-option input[type=radio]{margin-top:3px;flex-shrink:0;accent-color:var(--link)}.provider-option-body{flex:1;min-width:0}.provider-option-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.provider-name{font-size:.9rem;font-weight:600;color:var(--text)}.provider-badge{font-size:.7rem;font-weight:700;padding:1px 7px;border-radius:20px;text-transform:uppercase;letter-spacing:.05em}.provider-badge.free{background:#22c55e26;color:#22c55e;border:1px solid rgba(34,197,94,.4)}.provider-badge.free-star{background:#fbbf2426;color:#f59e0b;border:1px solid rgba(251,191,36,.4)}.provider-badge.paid{background:#8b5cf626;color:#8b5cf6;border:1px solid rgba(139,92,246,.4)}.provider-warning{font-size:.75rem;color:var(--loser-text)}.provider-desc{font-size:.82rem;color:var(--text-secondary);margin:0 0 4px;line-height:1.5}.provider-config-note{font-size:.78rem;color:var(--text-secondary);margin:4px 0 0}.provider-config-note code{background:var(--surface-alt);border:1px solid var(--border);border-radius:3px;padding:0 4px;font-family:monospace;font-size:.78rem}.saved-banner{background:#22c55e1f;color:#22c55e;border:1px solid rgba(34,197,94,.3);padding:10px 14px;border-radius:6px;margin-bottom:16px;font-size:.85rem}.error-banner{background:var(--error-bg);color:var(--error-text);padding:10px 14px;border-radius:6px;margin-bottom:16px}.portfolio-link,.back-link{color:var(--link);text-decoration:none;font-size:.9rem}.portfolio-link:hover,.back-link:hover{text-decoration:underline}.portfolio-link.disabled{color:var(--link-disabled);cursor:not-allowed;pointer-events:none}.account-section,.watchlist-group{margin-bottom:32px}.range-td{padding:6px 12px!important;overflow:visible!important}.range-cell{display:flex;flex-direction:column;gap:2px;min-width:160px}.range-pin-row{display:flex;align-items:flex-end;height:14px}.range-pin-spacer{flex-shrink:0}.range-pin{width:10px;height:10px;border-radius:50%;background:var(--btn-bg);margin-left:-5px;flex-shrink:0}.range-track{height:4px;background:var(--track);border-radius:2px;overflow:visible}.range-fill{height:100%;background:var(--btn-bg);border-radius:2px;min-width:4px}.range-labels{display:flex;justify-content:space-between;font-size:.72rem;color:var(--text-secondary)}.group-toggle{display:flex;align-items:center;gap:8px;background:var(--surface-alt);color:var(--text);border:none;padding:8px 14px;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:600;margin-bottom:10px;width:100%;text-align:left}.group-toggle:hover{background:var(--toggle-hover)}.group-arrow{font-size:.75rem;color:var(--text-secondary)}.account-heading{display:flex;align-items:center;justify-content:space-between;text-decoration:underline;font-size:1rem;font-weight:600;margin:0 0 10px;color:var(--text)}.account-heading-left{text-align:left}.account-heading-total{text-decoration:none;font-size:.88rem;font-weight:600;color:var(--text-secondary);white-space:nowrap;margin-left:16px}.account-total-btn{background:none;border:none;padding:0;cursor:pointer;font:inherit;font-size:.88rem;font-weight:600;color:var(--text-secondary);white-space:nowrap;margin-left:16px}.account-total-btn:hover{color:var(--text);text-decoration:underline}.account-total-breakdown{position:absolute;right:0;top:calc(100% + 6px);background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 16px #00000059;padding:36px 36px 10px 14px;z-index:200;min-width:220px}.account-total-breakdown table{border-collapse:collapse;width:100%;font-size:.82rem}.account-total-breakdown td{padding:4px 0;color:var(--text-secondary)}.account-total-breakdown td.num{text-align:right;font-variant-numeric:tabular-nums;padding-left:24px}.account-total-breakdown-total td{border-top:1px solid var(--border);padding-top:6px;font-weight:600;color:var(--text)}.cash-highlight{color:#ff8c00;font-weight:700}.account-total-breakdown-close{position:absolute;top:7px;right:8px;width:20px;height:20px;border-radius:50%;border:1px solid var(--border);background:var(--surface-alt);color:var(--text-secondary);font-size:.65rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.account-total-breakdown-close:hover{background:var(--border);color:var(--text)}.cash-reconcile-btn{background:none;border:none;padding:0;font:inherit;font-weight:700;color:inherit;cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}.cash-reconcile-btn:hover{opacity:.75}.portfolio-table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:8px;overflow:hidden}.portfolio-table th,.portfolio-table td{padding:8px 12px;text-align:right;border-bottom:1px solid var(--border);font-size:.85rem;white-space:nowrap}.portfolio-table th:first-child,.portfolio-table td:first-child{text-align:left}.portfolio-table thead th{background:var(--surface-alt);color:var(--text-header)}.computed-value{font-style:italic;color:var(--text-secondary)}.portfolio-totals-row td{border-top:2px solid var(--border);border-bottom:none;font-weight:600;background:var(--surface-alt)}.movers-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px}.movers-table-scroll{overflow-x:auto}.movers-table-scroll:first-child .movers-table{border-radius:8px 0 0 8px}.movers-table-scroll:last-child .movers-table{border-radius:0 8px 8px 0;border-left:1px solid var(--border)}.movers-table{width:100%;min-width:320px;border-collapse:collapse;background:var(--surface);border-radius:8px;overflow:hidden}.movers-table th,.movers-table td{padding:8px 12px;text-align:right;border-bottom:1px solid var(--border);font-size:.85rem}.movers-table th:first-child,.movers-table td:first-child{text-align:left}.column-title{text-align:center!important;font-size:1rem;padding:12px}.column-title.up{background:var(--gainer-bg);color:var(--gainer-text)}.column-title.down{background:var(--loser-bg);color:var(--loser-text)}.group-title{text-align:center!important;background:var(--surface-alt);color:var(--text-header)}.drag-handle-th{width:18px;padding:0!important}.drag-handle-cell{width:18px;padding:0 6px!important;text-align:center!important;cursor:grab;color:var(--text-muted);-webkit-user-select:none;user-select:none;font-size:1rem}tr[draggable=true]:hover .drag-handle-cell{color:var(--text-secondary)}tr[draggable=true].dragging{opacity:.35}tr[draggable=true].drag-over td{background:var(--toggle-hover)}tr[draggable=true].drag-over td:first-child{border-left:3px solid var(--btn-bg)}.group-drag-handle{cursor:grab;color:var(--text-muted);font-size:1rem;padding:0 6px;-webkit-user-select:none;user-select:none;line-height:1}.group-drag-handle:hover{color:var(--text-secondary)}.watchlist-group.group-dragging{opacity:.35}.watchlist-group.group-drag-over{outline:2px solid var(--btn-bg);outline-offset:-2px;border-radius:6px}.symbol-cell{display:flex;flex-direction:column}.symbol{font-weight:600}.mover-name{font-size:.78rem;color:var(--text-secondary);white-space:nowrap}.portfolio-symbol,.mover-match{font-size:1.3em;font-weight:800;animation:portfolio-blink 1s step-start infinite}.mover-match.up{color:var(--gainer-text)}.mover-match.down{color:var(--loser-text)}@keyframes portfolio-blink{50%{opacity:0}}.name{font-size:.75rem;color:var(--text-secondary)}.change-cell.up{color:var(--gainer-text)}.change-cell.down{color:var(--loser-text)}.price-arrow{font-size:.7em;margin-right:3px;vertical-align:middle}.price-arrow.up{color:var(--gainer-text)}.price-arrow.down{color:var(--loser-text)}.symbol-with-toggle{display:flex;align-items:center;gap:4px}.row-expand-btn{background:none;border:none;padding:0 2px;font-size:.65rem;color:var(--text-secondary);cursor:pointer;line-height:1;flex-shrink:0}.row-expand-btn:hover:not(.disabled){color:var(--text)}.row-expand-btn.disabled{color:var(--text-muted);cursor:default;opacity:.4}.exit-plan-row>td{padding:0!important;border-bottom:2px solid var(--border)!important}.exit-plan-row>td.exit-plan-cell{padding:6px 16px 12px 110px!important}.exit-plan-table{border-collapse:collapse;font-size:.82rem;background:var(--surface-alt);border-radius:6px;overflow:hidden;width:auto}.exit-plan-table th,.exit-plan-table td{padding:6px 18px;text-align:right;border-bottom:1px solid var(--border);white-space:nowrap;min-width:80px}.exit-plan-table th:first-child,.exit-plan-table td:first-child{text-align:left;min-width:80px}.exit-plan-table thead th{background:var(--surface);color:var(--text-secondary);font-weight:600;text-transform:uppercase;font-size:.72rem;letter-spacing:.05em}.exit-plan-table tbody tr:last-child td{border-bottom:none}.exit-plan-id{font-weight:700;color:var(--text-secondary);letter-spacing:.02em}.exit-plan-actions-th,.exit-plan-actions-td{width:64px;min-width:64px;text-align:center!important;padding:4px 6px!important;white-space:nowrap}.ep-icon-btn{background:none;border:none;padding:2px 4px;cursor:pointer;font-size:.85rem;opacity:.6;transition:opacity .15s,transform .1s;line-height:1}.ep-icon-btn:hover{opacity:1;transform:scale(1.2)}.exit-alert.limit{color:var(--gainer-text);font-weight:700;font-size:1.1em}.exit-alert.stop-loss{color:var(--loser-text);font-weight:700;font-size:1.1em}.action-th{text-align:center!important;width:70px;min-width:70px;padding-left:60px!important}.action-cell{text-align:center!important;padding:4px 8px 4px 60px!important}.action-link{background:none;border:1px solid var(--link);color:var(--link);padding:2px 10px;border-radius:4px;font-size:.78rem;cursor:pointer;font-weight:500;transition:background .15s,color .15s}.action-link:hover{background:var(--link);color:var(--bg)}.action-link.remove-holding-btn{border-color:var(--loser-text);color:var(--loser-text)}.action-link.remove-holding-btn:hover:not(:disabled){background:var(--loser-text);color:var(--bg)}.row-expand-btn.partial-sold{color:#ff8c00}.partial-sold-flag{font-size:.65rem;margin-right:1px}.action-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:200}.action-dialog{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px 28px;min-width:340px;max-width:420px;width:100%;box-shadow:var(--settings-shadow);max-height:90vh;overflow-y:auto}.action-dialog-wide{max-width:680px}.asset-transfer-wrap{margin-top:10px;border:1px solid var(--border);border-radius:6px;overflow:auto;max-height:240px}.asset-transfer-table{width:100%;border-collapse:collapse;font-size:.82rem}.asset-transfer-table th{background:var(--surface-alt);color:var(--text-header);font-weight:600;padding:6px 10px;text-align:left;position:sticky;top:0;white-space:nowrap}.asset-transfer-table td{padding:5px 10px;border-top:1px solid var(--border);color:var(--text);vertical-align:middle}.asset-check-th,.asset-check-td{width:32px;text-align:center}.asset-check-td input[type=checkbox]{width:14px;height:14px;cursor:pointer;accent-color:var(--btn-bg)}.asset-desc{white-space:nowrap}.asset-date{white-space:nowrap;color:var(--text-secondary)}.asset-qty-td{width:110px}.asset-qty-input{width:90px;background:var(--surface-alt);border:1px solid var(--border);border-radius:4px;padding:3px 6px;color:var(--text);font-size:.82rem}.asset-qty-input:disabled{opacity:.35}.asset-row-selected td{background:#2f6feb14}.asset-empty{text-align:center;color:var(--text-secondary);padding:12px}.dialog-title{margin:0 0 18px;font-size:1rem;font-weight:600;color:var(--text)}.dialog-field{display:flex;align-items:center;gap:8px;margin-bottom:12px}.dialog-field label{width:110px;flex-shrink:0;font-size:.85rem;color:var(--text-secondary);text-align:right}.dialog-field input,.dialog-field select{flex:1;background:var(--surface-alt);border:1px solid var(--border);border-radius:6px;padding:6px 10px;color:var(--text);font-size:.85rem;min-width:0}.dialog-field input:focus,.dialog-field select:focus{outline:none;border-color:var(--link)}.dialog-unit{font-size:.78rem;color:var(--text-secondary);white-space:nowrap}.fx-equiv-row{opacity:.85}.fx-equiv-text{font-size:.8rem;color:var(--text-secondary);font-style:italic}.cash-balance-foreign{font-size:.85rem;color:var(--text-secondary);font-variant-numeric:tabular-nums}.dialog-static{font-size:.85rem;color:var(--text);white-space:nowrap}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.btn-secondary{background:var(--surface-alt);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--toggle-hover)}.btn-danger{background:transparent;border:1px solid var(--border);color:var(--text-muted);cursor:pointer;transition:border-color .15s,color .15s}.btn-danger:hover:not(:disabled){border-color:var(--loser-text);color:var(--loser-text)}.dialog-confirm-text{margin:4px 0 12px;color:var(--text-secondary);font-size:.9rem}.restore-normal-field{margin-top:8px;margin-bottom:12px;border-top:1px solid var(--border);padding-top:12px;display:flex;align-items:flex-start}.restore-normal-label{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:.88rem;color:var(--text-secondary);-webkit-user-select:none;user-select:none;line-height:1.4}.restore-normal-label input[type=checkbox]{-moz-appearance:auto;appearance:auto;-webkit-appearance:checkbox;width:16px;height:16px;min-width:16px;cursor:pointer;accent-color:var(--btn-bg);flex-shrink:0;margin:0}.summary-popup{width:640px;max-width:92vw;max-height:85vh;display:flex;flex-direction:column}.summary-sections-wrap{overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:4px}.summary-section{border:1px solid var(--border);border-radius:6px;overflow:hidden}.summary-section-header{width:100%;background:var(--surface-alt);border:none;padding:8px 12px;text-align:left;font-size:.9rem;font-weight:600;color:var(--text-header);cursor:pointer;display:flex;align-items:center;gap:8px}.summary-section-header:hover{background:var(--toggle-hover)}.summary-section-arrow{font-size:.65rem;color:var(--text-secondary)}.summary-table-wrap{overflow-x:auto;margin-bottom:0}.summary-table{border-collapse:collapse;font-size:.85rem;width:100%;min-width:560px}.summary-table th,.summary-table td{padding:7px 14px;border:1px solid var(--border);white-space:nowrap}.summary-table th{background:var(--surface-alt);color:var(--text-header);font-weight:600;text-align:center}.summary-table th:first-child{text-align:left}.summary-label{font-weight:600;color:var(--text)}.summary-num{text-align:right;color:var(--text);font-variant-numeric:tabular-nums}.summary-grand-total td{background:var(--surface);font-weight:700;border-top:2px solid var(--border);font-size:.9rem}.perf-account-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.perf-tab{background:var(--surface-alt);color:var(--text-secondary);border:1px solid var(--border);padding:6px 14px;border-radius:20px;font-size:.82rem;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.perf-tab:hover{background:var(--toggle-hover);color:var(--text)}.perf-tab.active{background:var(--btn-bg);color:#fff;border-color:var(--btn-bg)}.perf-tables{display:flex;flex-direction:column;gap:32px}.perf-section-title{font-size:1rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 10px}.perf-table-wrap{overflow-x:auto}.perf-table{width:100%;border-collapse:collapse;font-size:.85rem}.perf-table th{text-align:left;padding:7px 12px;background:var(--surface-alt);color:var(--text-secondary);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);white-space:nowrap}.perf-table th.num,.perf-table td.num{text-align:right}.perf-table td{padding:7px 12px;border-bottom:1px solid var(--border);color:var(--text);white-space:nowrap}.perf-table tbody tr:hover td{background:var(--surface-alt)}.tx-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.75rem;font-weight:600;white-space:nowrap}.tx-bought{background:#5be08a26;color:var(--gainer-text)}.tx-sold{background:#ff737326;color:var(--loser-text)}.tx-withdrawal{background:#ffb45026;color:#c87800}.tx-out{background:#ff73731f;color:var(--loser-text)}.tx-in{background:#5be08a1f;color:var(--gainer-text)}.tx-symbol{font-weight:600;font-family:monospace}.tx-gain{color:var(--gainer-text)}.tx-loss{color:var(--loser-text)}.btn-reconcile{font-size:.7rem;padding:2px 8px;border:1px solid var(--btn-bg);border-radius:4px;background:transparent;color:var(--btn-bg);cursor:pointer;white-space:nowrap}.btn-reconcile:hover{background:var(--btn-bg);color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-dialog{background:var(--surface);border:1px solid var(--border);border-radius:10px;width:360px;max-width:95vw;box-shadow:0 8px 32px #00000040}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--border)}.modal-header h3{margin:0;font-size:1rem}.modal-close{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:1rem;padding:2px 6px}.modal-close:hover{color:var(--text)}.modal-body{padding:16px 20px;display:flex;flex-direction:column;gap:12px}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}.modal-actions .btn-delete-tx{margin-right:auto}.modal-error{color:var(--loser-text);font-size:.85rem;margin:0}.delete-confirm-box{border:1px solid var(--loser-text);border-radius:6px;padding:12px;margin-top:8px}.delete-confirm-text{font-size:.85rem;color:var(--loser-text);margin:0 0 12px;line-height:1.4}.btn-primary{padding:6px 16px;border-radius:6px;border:none;cursor:pointer;background:var(--btn-bg);color:#fff;font-weight:600}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-primary:hover:not(:disabled){filter:brightness(1.1)}.perf-empty{color:var(--text-muted);font-size:.88rem;padding:12px 0}.tx-search-panel{margin-bottom:20px}.tx-search-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.tx-search-toggle{background:var(--surface-alt);border:1px solid var(--border);color:var(--text-secondary);border-radius:6px;padding:5px 12px;font-size:.82rem;cursor:pointer;transition:background .15s,color .15s}.tx-search-toggle:hover{background:var(--toggle-hover);color:var(--text)}.tx-search-toggle.tx-search-active{background:var(--btn-bg);color:#fff;border-color:var(--btn-bg)}.tx-search-clear{background:none;border:none;color:var(--text-secondary);font-size:.8rem;cursor:pointer;text-decoration:underline;padding:0}.tx-search-clear:hover{color:var(--loser-text)}.tx-filter-list{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:var(--surface-alt);border:1px solid var(--border);border-radius:8px}.tx-filter-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tx-filter-select{background:var(--surface);border:1px solid var(--border);border-radius:5px;color:var(--text);font-size:.82rem;padding:4px 6px;cursor:pointer}.tx-filter-select.tx-filter-op{min-width:80px}.tx-filter-value{background:var(--surface);border:1px solid var(--border);border-radius:5px;color:var(--text);font-size:.82rem;padding:4px 8px;min-width:140px;flex:1;max-width:220px}.tx-filter-value:focus{outline:2px solid var(--btn-bg);outline-offset:-1px}.tx-filter-icon-btn{background:none;border:1px solid var(--border);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:1rem;line-height:1;cursor:pointer;color:var(--text-secondary);padding:0;flex-shrink:0;transition:color .12s,border-color .12s}.tx-filter-icon-btn:hover{color:var(--text);border-color:var(--text-secondary)}.tx-filter-icon-btn.tx-filter-remove:hover{color:var(--loser-text);border-color:var(--loser-text)}.tx-filter-add-first{background:none;border:none;color:var(--text-secondary);font-size:.82rem;cursor:pointer;padding:2px 0;text-align:left}.tx-filter-add-first:hover{color:var(--text)}.tx-filter-global-label{display:flex;align-items:center;gap:6px;font-size:.82rem;color:var(--text-secondary);cursor:pointer;margin-top:4px;padding-top:8px;border-top:1px solid var(--border)}.tx-filter-global-label input[type=checkbox]{cursor:pointer;accent-color:var(--btn-bg)}.tx-filter-global-label:hover{color:var(--text)}.perf-account-block{margin-bottom:40px}.perf-account-name{font-size:1rem;font-weight:700;color:var(--text);margin:0 0 12px;display:flex;align-items:baseline;gap:10px}.perf-match-count{font-size:.78rem;font-weight:400;color:var(--text-secondary)}.perf-tab-dimmed{opacity:.45}.perf-sum-row td{padding:7px 12px;border-top:2px solid var(--border);font-size:.85rem;font-weight:600;background:var(--surface-alt);white-space:nowrap}.perf-sum-label{color:var(--text-secondary);text-align:right}.export-btn{font-size:.8rem;padding:4px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface-alt);color:var(--text-secondary);cursor:pointer;white-space:nowrap}.export-btn:hover{background:var(--surface-hover, var(--border));color:var(--text)}.export-btn.tx-search-active{background:var(--accent, #2563eb);color:#fff;border-color:transparent}.tx-search-clear-inline{font-size:.75rem;padding:4px 7px}@media print{.app-header,.perf-account-tabs,.tx-search-panel,.export-btn,.back-link,.header-actions,.perf-account-name .perf-match-count,.reconcile-btn{display:none!important}body{background:#fff!important;color:#000!important}.perf-tables{display:block!important}.perf-table-wrap{overflow:visible!important}table{border-collapse:collapse;width:100%;font-size:10pt}th,td{border:1px solid #ccc!important;padding:4px 8px!important}}.empty{text-align:center;color:var(--text-muted)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:40px 36px;width:100%;max-width:380px;box-shadow:var(--settings-shadow)}.login-title{font-size:1.5rem;font-weight:700;margin:0 0 4px;color:var(--text)}.login-subtitle{font-size:.88rem;color:var(--text-muted);margin:0 0 28px}.login-form{display:flex;flex-direction:column;gap:16px}.login-field{display:flex;flex-direction:column;gap:6px}.login-field label{font-size:.82rem;font-weight:600;color:var(--text-secondary)}.login-field input{padding:9px 12px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.92rem}.login-field input:focus{outline:none;border-color:var(--btn-bg)}.login-error{font-size:.82rem;color:var(--loser-text);margin:0}.login-btn{margin-top:4px;padding:10px;font-size:.92rem;font-weight:600;border-radius:6px}.app-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:1rem}.portfolio-switcher{padding:5px 8px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.82rem;cursor:pointer}.portfolio-name{font-size:.82rem;color:var(--text-secondary);padding:4px 2px}.signout-btn{padding:5px 10px;font-size:.8rem;border-radius:6px;background:transparent;border:1px solid var(--border);color:var(--text-muted);cursor:pointer;transition:border-color .15s,color .15s}.signout-btn:hover{border-color:var(--loser-text);color:var(--loser-text)}.portfolio-page-name{display:block;font-size:.78rem;font-weight:400;color:var(--text-muted);margin-top:2px}.portfolio-page-title{display:flex;flex-direction:column;gap:2px}.portfolio-page-title-row{display:flex;align-items:baseline;gap:10px}.portfolio-group{margin-bottom:24px}.portfolio-group-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;margin-bottom:12px;flex-wrap:wrap}.portfolio-group-left{display:flex;align-items:center;gap:10px;font-size:1.05rem;font-weight:600}.portfolio-group-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.grand-total-display{font-size:1rem;font-weight:400;color:var(--text-secondary)}.portfolio-loading{color:var(--text-muted);padding:8px 14px;font-size:.88rem}.collapse-btn{background:none;border:none;color:var(--text-muted);font-size:.8rem;cursor:pointer;padding:2px 6px}.mgmt-btn{padding:5px 10px;font-size:.8rem}.btn-danger{background:transparent;border:1px solid var(--border);color:var(--text-muted);border-radius:6px;cursor:pointer;transition:border-color .15s,color .15s}.btn-danger:hover:not(.disabled):not(:disabled){border-color:var(--loser-text);color:var(--loser-text)}.btn-danger.disabled,.btn-danger:disabled{opacity:.35;cursor:not-allowed}.inline-edit-trigger{background:none;border:none;color:inherit;font:inherit;cursor:pointer;padding:1px 4px;border-radius:4px;border:1px solid transparent;transition:border-color .15s}.inline-edit-trigger:hover{border-color:var(--border)}.inline-edit-wrap{display:inline-flex;align-items:center;gap:4px}.inline-edit-input{font:inherit;font-size:.9rem;padding:2px 6px;border:1px solid var(--btn-bg);border-radius:4px;background:var(--bg);color:var(--text);min-width:160px}.inline-edit-save,.inline-edit-cancel{background:none;border:none;cursor:pointer;font-size:.85rem;padding:2px 5px;border-radius:4px}.inline-edit-save{color:var(--gainer-text)}.inline-edit-cancel{color:var(--loser-text)}.inline-edit-error{font-size:.78rem;color:var(--loser-text)}.new-portfolio-form,.new-account-form{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:8px;margin-bottom:12px;flex-wrap:wrap}.new-portfolio-input{padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:.88rem;min-width:220px}.new-portfolio-input:focus{outline:none;border-color:var(--btn-bg)}.account-heading-right{display:flex;align-items:center;gap:12px}.account-delete-btn{padding:3px 8px;font-size:.75rem;background:var(--surface-alt);color:var(--loser-text);border:1px solid var(--border)}.account-delete-btn:hover{background:var(--toggle-hover)}.error-dismiss{background:none;border:none;color:inherit;cursor:pointer;margin-left:8px;font-size:.85rem;opacity:.7}.buy-plans-section{margin-top:16px;margin-left:32px;margin-right:32px}.bp-toggle-btn{background:none;border:none;cursor:pointer;font-size:1rem;color:var(--text-secondary);padding:0 6px 0 0;line-height:1;vertical-align:middle}.bp-toggle-btn:hover{color:var(--text)}.buy-plans-heading{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin:0 0 6px}.buy-plans-table th:nth-child(2),.buy-plans-table td:nth-child(2){text-align:left}.bp-symbol{font-weight:600}.bp-gain{color:var(--gainer-text)}.bp-loss{color:var(--loser-text)}.dialog-subtitle{font-size:.82rem;color:var(--text-secondary);margin:-8px 0 12px}.rollster-nav-link{position:relative}.rollster-badge{position:absolute;top:-3px;right:-6px;width:8px;height:8px;border-radius:50%;background:#e84040;border:2px solid var(--bg);display:inline-block}.rollster-detecting,.rollster-empty{padding:32px 24px;color:var(--text-secondary);font-style:italic}.rollster-snapshots{padding:0 16px 32px}.rollster-snapshot{margin-bottom:32px}.rollster-snapshot-date{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 10px;display:flex;align-items:center;gap:10px}.rollster-snapshot-count{font-size:.78rem;font-weight:400;color:var(--text-secondary)}.rollster-table{width:100%;border-collapse:collapse;font-size:.85rem}.rollster-table th{text-align:left;padding:6px 10px;border-bottom:1px solid var(--border);color:var(--text-secondary);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.rollster-table th.num,.rollster-table td.num{text-align:right}.rollster-table td{padding:7px 10px;border-bottom:1px solid color-mix(in srgb,var(--border) 50%,transparent);vertical-align:middle}.rollster-table tr:last-child td{border-bottom:none}.rollster-table tr.rollster-rise{background:color-mix(in srgb,var(--gainer-bg, #0d2a1a) 35%,transparent)}.rollster-table tr.rollster-drop{background:color-mix(in srgb,var(--loser-bg, #2a0d0d) 35%,transparent)}.rollster-symbol{font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.04em}.rollster-source{display:inline-block;padding:2px 7px;border-radius:4px;font-size:.72rem;font-weight:600;letter-spacing:.03em}.rollster-source-portfolio{background:color-mix(in srgb,#4a7fb5 20%,transparent);color:#7ab4f0}.rollster-source-watchlist{background:color-mix(in srgb,#7b5fbf 20%,transparent);color:#b399f5}.rollster-source-buyplan{background:color-mix(in srgb,#bf8c30 20%,transparent);color:#e0b85a}.rollster-change{font-weight:700;font-variant-numeric:tabular-nums}
