*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f0f2f5;--surface: #ffffff;--border: #dfe3ea;--text-primary: #2c3e50;--text-secondary: #5a6d80;--text-muted: #94a3b8;--accent: #3b7dd8;--accent-hover: #2e6bc4;--accent-light: #edf3fc;--green: #22a06b;--red: #de350b;--orange: #ff9800;--row-alt: #f8f9fb;--header-bg: linear-gradient(135deg, #1e56a0 0%, #3b7dd8 100%);--header-bg-flat: #2968b8;--header-text: #ffffff;--metrics-bg: #f5f8ff;--metrics-header: #e8eef8}html,body,#root{height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text-primary);font-size:13px;line-height:1.4}.app{display:flex;flex-direction:column;height:100%}.blotter-header-count{color:#ffffffe6;background:#ffffff1f;border:1px solid rgba(255,255,255,.24);border-radius:999px;padding:8px 14px;font-size:12px;font-weight:600;line-height:1}.content{padding:12px 20px 6px;max-width:100%;flex:1;min-height:0;display:flex;flex-direction:column}.toolbar-row{display:flex;align-items:center;gap:16px;margin-bottom:8px;flex-shrink:0}.lp-toggle{display:inline-flex;align-items:center;gap:0}.lp-toggle-label{font-size:11px;font-weight:600;color:var(--text-muted);margin-right:6px;text-transform:uppercase;letter-spacing:.3px}.lp-toggle-btn{padding:5px 14px;font-size:11px;font-weight:600;border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all .15s}.lp-toggle-btn:first-of-type{border-radius:4px 0 0 4px}.lp-toggle-btn:last-of-type{border-radius:0 4px 4px 0}.lp-toggle-btn:not(:first-of-type){border-left:none}.lp-toggle-btn:hover:not(.lp-toggle-active){background:#f0f3ff;color:var(--accent)}.lp-toggle-active{background:var(--accent);color:#fff;border-color:var(--accent)}.lp-toggle-active+.lp-toggle-btn{border-left:1px solid var(--accent)}.filter-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 12px;margin-bottom:10px;flex-shrink:0;background:var(--surface);border:1px solid var(--border);border-radius:6px}.filter-bar-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-right:4px}.filter-chip{position:relative;display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:var(--accent-light);border:1px solid #c4d6ee;border-radius:4px;font-size:11px;cursor:pointer;transition:background .15s}.filter-chip:hover{background:#dce8f5}.filter-chip-field{font-weight:600;color:var(--accent)}.filter-chip-value{color:var(--text-primary);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-chip-remove{background:none;border:none;color:var(--text-muted);font-size:14px;line-height:1;cursor:pointer;padding:0 2px;margin-left:2px}.filter-chip-remove:hover{color:var(--red)}.add-filter-wrapper{position:relative}.add-filter-btn{padding:3px 10px;background:none;border:1px dashed var(--border);border-radius:4px;font-size:11px;color:var(--text-secondary);cursor:pointer;font-weight:500}.add-filter-btn:hover{border-color:var(--accent);color:var(--accent)}.add-filter-menu{position:absolute;top:calc(100% + 4px);left:0;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 16px #0000001f;z-index:60;min-width:140px;padding:4px 0}.add-filter-option{display:block;width:100%;text-align:left;padding:6px 12px;border:none;background:none;font-size:12px;cursor:pointer;color:var(--text-primary)}.add-filter-option:hover{background:var(--accent-light);color:var(--accent)}.filter-bar-count{margin-left:auto;font-size:11px;font-weight:600;color:var(--text-secondary);white-space:nowrap}.filter-clear-all{padding:3px 10px;background:none;border:none;font-size:11px;color:var(--text-muted);cursor:pointer;text-decoration:underline}.filter-clear-all:hover{color:var(--red)}.filter-export-btn{padding:4px 12px;background:var(--accent);border:1px solid var(--accent);border-radius:4px;color:#fff;font-size:11px;font-weight:600;cursor:pointer}.filter-export-btn:hover:not(:disabled){background:var(--accent-hover)}.filter-export-btn:disabled{background:#c0c8d8;border-color:#c0c8d8;cursor:not-allowed}.filter-export-btn-cancel{background:#fff;border-color:#fff;color:var(--accent)}.filter-export-btn-cancel:hover:not(:disabled){background:#f4f7fc;border-color:#f4f7fc;color:var(--accent-hover)}.error-banner{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;margin-bottom:10px;background:#fff0f0;border:1px solid #f5c6cb;border-radius:6px;color:var(--red);font-size:13px;font-weight:500}.error-retry{padding:4px 12px;background:var(--red);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:12px;font-weight:600}.error-retry:hover{opacity:.85}.table-wrapper{position:relative;overflow:auto;flex:1;min-height:0;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:0 1px 4px #0000000f}.blotter-table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:11px}.blotter-table thead{position:sticky;top:0;z-index:10}.blotter-table th{padding:0;background:#f0f4f8;color:#4a5e78;font-weight:700;font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;text-align:left;border-bottom:2px solid #d0d8e4;-webkit-user-select:none;user-select:none;position:relative}.col-header{cursor:pointer;transition:background .15s}.col-header:hover{background:#e4eaf2}.col-header-filtered{background:#dce6f5;color:var(--accent)}.col-header-content{display:flex;align-items:center;justify-content:center;gap:3px;padding:6px}.filter-arrow{font-size:8px;opacity:.4;transition:opacity .15s,color .15s}.filter-arrow-active{opacity:1;color:var(--accent)}.col-header:hover .filter-arrow{opacity:.8}.col-header-metrics{background:var(--metrics-header);color:#5a6d80;padding:6px;cursor:default}.metrics-first{border-left:2px solid var(--accent)!important;padding-left:8px!important}.blotter-table th:first-child{border-radius:8px 0 0}.blotter-table th:last-child{border-radius:0 8px 0 0}.blotter-table td{padding:4px 6px;border-bottom:1px solid var(--border);color:var(--text-primary)}.col-metric{background:#3b7dd805}.row-even{background:var(--surface)}.row-odd{background:var(--row-alt)}.row-odd .col-metric{background:#3b7dd80a}.group-even{background:var(--surface)}.group-odd{background:#f6f7fb}.group-odd .col-metric{background:#3b7dd808}.blotter-table tbody tr.group-banner{cursor:default}.blotter-table tbody tr.group-banner:hover{background:none!important}.group-banner-cell{padding:6px 8px!important;border-bottom:1px solid #d5dcf0!important;border-top:2px solid #b0c4e8!important;background:linear-gradient(90deg,#edf3fc 0%,#f5f8ff 50%,var(--surface) 100%)!important}.blotter-table tbody tr.group-banner:first-child .group-banner-cell{border-top:none!important}.group-banner-tid{display:inline-block;font-weight:700;font-size:11px;color:var(--accent);cursor:pointer;padding:1px 8px;background:var(--surface);border:1px solid #b5caeb;border-radius:4px;margin-right:10px;transition:all .15s}.group-banner-tid:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.group-banner-tid-none{color:var(--text-muted);border-color:var(--border);cursor:default}.group-banner-tid-none:hover{background:var(--surface);color:var(--text-muted);border-color:var(--border)}.group-banner-meta{font-size:11px;color:var(--text-muted);display:inline-flex;align-items:center;gap:8px}.group-banner-count{font-weight:500}.group-banner-net{display:inline-flex;align-items:center;gap:16px;margin-left:8px;padding:2px 12px;border-left:1px solid #c8d8f0;border-right:1px solid #c8d8f0;cursor:pointer;border-radius:4px;transition:background .15s}.group-banner-net:hover{background:var(--accent-light)}.group-banner-net-item{display:flex;flex-direction:column;align-items:center;gap:1px}.group-banner-net-label{font-size:9px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}.group-banner-net-value{font-size:11px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.group-dir-tag{display:inline-block;padding:1px 6px;border-radius:3px;font-size:10px;font-weight:600}.group-dir-buy{background:#1a9c5e1f;color:var(--green)}.group-dir-sell{background:#dc35451f;color:var(--red)}.group-deal-row td:first-child{border-left:3px solid #b0c4e8}.group-deal-last td{border-bottom:2px solid #c8cfe0!important}.blotter-table tbody tr{cursor:pointer;transition:background .1s}.blotter-table tbody tr:hover{background:#edf3fc!important}.blotter-table tbody tr:hover .col-metric{background:#3b7dd80f!important}.row-selected{background:#dce8f8!important;box-shadow:inset 3px 0 0 var(--accent)}.row-selected .col-metric{background:#3b7dd814!important}.row-num{color:var(--text-muted);font-size:10px;text-align:center;min-width:28px;padding:4px!important}.col-strike,.col-quantity,.col-premium_quantity,.col-unit_premium,.col-spot,.col-forward,.col-volatility,.col-risk_delta,.col-risk_vega,.col-deal,.col-trade_id{text-align:right;font-variant-numeric:tabular-nums}.loading-cell,.empty-cell{text-align:center;padding:40px 0!important;color:var(--text-muted);font-size:14px}.table-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#ffffffb3;font-size:14px;color:var(--text-secondary);font-weight:600;z-index:20}.filter-dropdown{min-width:220px;max-width:300px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #00000026;padding:0;color:var(--text-primary);text-transform:none;letter-spacing:normal;font-weight:400;font-size:13px}.filter-dropdown-narrow{min-width:180px;max-width:240px}.filter-dropdown-wildcard{min-width:300px;max-width:360px}.filter-wildcard-body{display:flex;flex-direction:column;gap:8px;padding:10px 12px 4px}.filter-wildcard-row{display:flex;align-items:center;gap:6px}.filter-wildcard-op{flex:0 0 108px;padding:6px 8px;border:1px solid var(--border);border-radius:4px;font-size:12px;background:#fafbfc;color:var(--text-primary);outline:none}.filter-wildcard-op:focus{border-color:var(--accent);box-shadow:0 0 0 2px #3b7dd826}.filter-wildcard-value{flex:1;min-width:0;padding:6px 8px;border:1px solid var(--border);border-radius:4px;font-size:12px;outline:none;background:#fafbfc}.filter-wildcard-value:focus{border-color:var(--accent);box-shadow:0 0 0 2px #3b7dd826}.filter-wildcard-remove{flex:0 0 24px;width:24px;height:24px;padding:0;border:none;border-radius:4px;background:transparent;color:var(--text-muted);font-size:16px;line-height:1;cursor:pointer}.filter-wildcard-remove:hover{background:#f0f1f3;color:var(--text-primary)}.filter-wildcard-add{display:inline-flex;align-items:center;gap:4px;align-self:flex-start;margin-top:2px;padding:4px 8px;border:none;border-radius:4px;background:transparent;color:var(--accent);font-size:12px;font-weight:600;cursor:pointer}.filter-wildcard-add:hover{background:var(--accent-light);color:var(--accent-hover)}.filter-wildcard-add-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:3px;background:var(--accent-light);font-size:14px;font-weight:700;line-height:1}.filter-dropdown-header{padding:10px 12px 6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--border)}.filter-search{display:block;width:calc(100% - 16px);margin:8px 8px 4px;padding:6px 8px;border:1px solid var(--border);border-radius:4px;font-size:12px;outline:none;background:#fafbfc}.filter-search:focus{border-color:var(--accent);box-shadow:0 0 0 2px #3b7dd826}.filter-select-actions{display:flex;gap:8px;padding:4px 12px}.filter-link-btn{background:none;border:none;font-size:11px;color:var(--accent);cursor:pointer;padding:0;text-decoration:underline}.filter-link-btn:hover{color:var(--accent-hover)}.filter-checkbox-list{max-height:240px;overflow-y:auto;padding:4px 0}.filter-checkbox-item{display:flex;align-items:center;gap:6px;padding:4px 12px;cursor:pointer;font-size:12px;transition:background .1s}.filter-checkbox-item:hover{background:var(--accent-light)}.filter-checkbox-item input[type=checkbox]{accent-color:var(--accent);margin:0}.filter-checkbox-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-checkbox-count{font-size:10px;color:var(--text-muted);min-width:28px;text-align:right}.filter-empty{padding:12px;text-align:center;color:var(--text-muted);font-size:12px}.filter-actions{display:flex;justify-content:flex-end;gap:6px;padding:8px 12px;border-top:1px solid var(--border)}.filter-btn{padding:5px 14px;border:none;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer}.filter-btn-apply{background:var(--accent);color:#fff}.filter-btn-apply:hover{background:var(--accent-hover)}.filter-btn-clear{background:#f0f1f3;color:var(--text-secondary)}.filter-btn-clear:hover{background:#e0e2e6}.filter-range-row{padding:4px 12px}.filter-range-label{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--text-muted);font-weight:600}.filter-range-input{padding:5px 8px;border:1px solid var(--border);border-radius:4px;font-size:12px;width:100%;outline:none}.filter-range-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #3b7dd826}.pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:6px;padding:5px 0;flex-shrink:0}.pagination .page-btn{padding:4px 14px;border-radius:5px}.pagination .page-info{font-size:12px;line-height:1.2}.page-btn{padding:7px 18px;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s;box-shadow:0 1px 3px #3b7dd833}.page-btn:hover:not(:disabled){background:var(--accent-hover)}.page-btn:disabled{background:#c0c8d8;cursor:not-allowed}.page-info{font-size:13px;color:var(--text-secondary)}.page-info strong{color:var(--text-primary)}.detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:200;animation:fadeIn .2s ease}.detail-panel{position:fixed;top:0;right:0;width:680px;max-width:90vw;height:100vh;background:var(--surface);box-shadow:-4px 0 24px #0000002e;z-index:210;display:flex;flex-direction:column;animation:slideIn .25s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.detail-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border);background:var(--header-bg);background:linear-gradient(135deg,#1e56a0,#3b7dd8);color:#fff;flex-shrink:0}.detail-title{font-size:18px;font-weight:700}.detail-subtitle{font-size:13px;opacity:.7;margin-top:2px}.detail-close{background:none;border:none;color:#ffffffb3;font-size:28px;line-height:1;cursor:pointer;padding:0 4px}.detail-close:hover{color:#fff}.detail-body{flex:1;overflow-y:auto;padding:16px 24px 32px}.detail-section{margin-bottom:20px}.detail-section-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--accent);margin-bottom:10px;padding-bottom:6px;border-bottom:2px solid var(--accent-light)}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 16px}.detail-field{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid #f0f1f3}.detail-field-highlight{flex-direction:column;padding:8px 10px;background:#fafbfc;border:1px solid var(--border);border-radius:6px;text-align:center}.detail-label{font-size:11px;color:var(--text-muted);font-weight:600}.detail-value{font-size:12px;font-weight:500;color:var(--text-primary);font-variant-numeric:tabular-nums}.detail-value-big{font-size:15px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums;margin-top:2px}.detail-loading{text-align:center;padding:20px;color:var(--text-muted);font-size:13px}.detail-error{text-align:center;padding:12px;color:var(--red);font-size:13px;background:#fff0f0;border-radius:6px;margin-bottom:12px}.detail-empty{text-align:center;padding:20px;color:var(--text-muted);font-size:13px}.ts-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.ts-summary-item{display:flex;flex-direction:column;padding:8px 10px;background:#fafbfc;border:1px solid var(--border);border-radius:6px;text-align:center}.ts-summary-label{font-size:10px;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.3px}.ts-summary-value{font-size:14px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums;margin-top:2px}.ts-summary-value.positive{color:var(--green)}.ts-summary-value.negative{color:var(--red)}.group-summary-status{margin:-4px 0 10px;font-size:12px;color:var(--text-muted)}.group-summary-status-elapsed{color:var(--text-secondary)}.ts-summary-value--skeleton{display:block;min-height:1.25rem;margin-top:2px;border-radius:4px;background:linear-gradient(90deg,#e4e8ee,#f2f4f7,#e4e8ee);background-size:200% 100%;animation:ts-summary-shimmer 1.4s ease-in-out infinite}@keyframes ts-summary-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.ts-summary-value--skeleton{animation:none;background:#e4e8ee}}.chart-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.chart-container{background:#fafbfc;border:1px solid var(--border);border-radius:8px;padding:12px}.chart-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:6px}.chart-container svg{display:block}.chart-clickable{cursor:pointer;transition:border-color .15s,box-shadow .15s}.chart-clickable:hover{border-color:var(--accent);box-shadow:0 2px 8px #3b7dd826}.chart-zoom-hint{float:right;font-size:9px;font-weight:500;text-transform:none;letter-spacing:0;color:var(--text-muted);opacity:0;transition:opacity .15s}.chart-clickable:hover .chart-zoom-hint{opacity:1;color:var(--accent)}.chart-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:500;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease}.chart-modal{width:92vw;max-width:1200px;background:var(--surface);border-radius:12px;box-shadow:0 16px 64px #00000059;overflow:hidden;animation:chartModalIn .2s ease}@keyframes chartModalIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.chart-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:linear-gradient(135deg,#1e56a0,#3b7dd8);color:#fff}.chart-modal-title{font-size:16px;font-weight:700;letter-spacing:.5px}.chart-modal-close{background:none;border:none;color:#ffffffb3;font-size:28px;line-height:1;cursor:pointer;padding:0 4px}.chart-modal-close:hover{color:#fff}.chart-modal-body{padding:24px;background:#fafbfc}.chart-modal-body svg{display:block;margin:0 auto}.trade-id-link{color:var(--accent);cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px;font-weight:600}.trade-id-link:hover{color:var(--accent-hover);text-decoration-style:solid}.group-panel{width:780px}.group-header{background:linear-gradient(135deg,#1e56a0,#3b7dd8)}.group-legs-table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:4px}.group-legs-table th{padding:7px 10px;background:#f0f3ff;color:var(--text-secondary);font-weight:700;font-size:10px;text-transform:uppercase;letter-spacing:.5px;text-align:left;border-bottom:2px solid var(--border)}.group-legs-table td{padding:7px 10px;border-bottom:1px solid var(--border)}.group-legs-table td.num{text-align:right;font-variant-numeric:tabular-nums}.group-legs-table th:nth-child(4),.group-legs-table th:nth-child(5),.group-legs-table th:nth-child(6){text-align:right}.leg-buy{background:#1a9c5e0a}.leg-sell{background:#dc35450a}.direction-badge{display:inline-block;padding:2px 8px;border-radius:3px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.badge-buy{background:#1a9c5e1f;color:var(--green)}.badge-sell{background:#dc35451f;color:var(--red)}.ts-progress-wrapper{padding:16px 0}.ts-progress-bar{height:4px;background:var(--border);border-radius:2px;overflow:hidden;margin-bottom:10px}.ts-progress-fill{height:100%;width:30%;background:linear-gradient(90deg,var(--accent),#6ba3e8);border-radius:2px;animation:progressSlide 1.5s ease-in-out infinite}@keyframes progressSlide{0%{transform:translate(-100%)}to{transform:translate(450%)}}.ts-progress-text{text-align:center;color:var(--text-muted);font-size:12px}.ts-progress-elapsed{font-weight:600;color:var(--text-secondary)}.group-individual-section{margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--border)}.group-individual-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.group-individual-label{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:8px}@media(max-width:900px){.blotter-header-count{display:none}.detail-panel{width:100vw;max-width:100vw}.chart-row{grid-template-columns:1fr}.ts-summary{grid-template-columns:repeat(2,1fr)}}.health-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:10px;flex-shrink:0}.health-ok{background:#22a06b;box-shadow:0 0 4px #22a06b80}.health-err{background:#de350b;box-shadow:0 0 4px #de350b80}.export-status-pill{display:inline-flex;align-items:center;gap:6px;max-width:360px;margin-right:10px;padding:5px 9px;border-radius:999px;color:#fff;font-size:11px;font-weight:600;line-height:1;white-space:nowrap}.export-status-running{background:#ffffff29;border:1px solid rgba(255,255,255,.28)}.export-status-success{background:#22a06be6}.export-status-error{background:#de350bf2}.export-status-spinner{width:10px;height:10px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:exportStatusSpin .8s linear infinite;flex-shrink:0}.export-status-text{overflow:hidden;text-overflow:ellipsis}.export-status-dismiss{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;padding:0;border:none;border-radius:50%;background:#ffffff38;color:#fff;font-size:10px;font-weight:700;line-height:1;cursor:pointer}.export-status-dismiss:hover{background:#ffffff57}.export-status-cancel{padding:2px 7px;border:1px solid rgba(255,255,255,.45);border-radius:999px;background:#ffffff24;color:#fff;font-size:10px;font-weight:700;line-height:1.2;cursor:pointer}.export-status-cancel:hover{background:#ffffff3d}@keyframes exportStatusSpin{to{transform:rotate(360deg)}}.signals-panel{width:920px;max-width:95vw}.group-banner-signals{display:inline-block;font-weight:600;font-size:10px;color:var(--orange);cursor:pointer;padding:1px 7px;background:var(--surface);border:1px solid #ffd180;border-radius:3px;margin-left:6px;text-transform:uppercase;letter-spacing:.3px}.group-banner-signals:hover{background:var(--orange);color:#fff;border-color:var(--orange)}.signals-controls{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);margin-bottom:12px;flex-wrap:wrap}.signals-control-item{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-secondary)}.signals-control-label{font-weight:600;font-size:11px;color:var(--text-muted)}.signals-date-input{font-size:12px;padding:3px 6px;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text-primary)}.signals-checkbox{gap:4px;cursor:pointer}.signals-checkbox input[type=checkbox]{cursor:pointer}.signals-recompute{margin-left:auto;font-size:11px;padding:4px 14px}.signals-tab-bar{display:flex;gap:2px;margin:14px 0 10px;border-bottom:2px solid var(--border);padding-bottom:0}.signals-tab{font-size:12px;font-weight:600;padding:6px 16px;border:none;background:none;color:var(--text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.signals-tab:hover{color:var(--text-primary)}.signals-tab-active{color:var(--accent);border-bottom-color:var(--accent)}.signals-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin:10px 0}.signals-date-window{font-size:11px;color:var(--text-muted);margin-bottom:8px}.signals-warning{background:#fff8e1;border:1px solid #ffcc02;border-radius:6px;margin:8px 0 12px;overflow:hidden}.signals-warning-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;cursor:pointer;font-size:12px;font-weight:600;color:#856404}.signals-warning-toggle{font-size:10px}.signals-warning-list{list-style:none;padding:0 12px 10px;font-size:11px;color:#856404}.signals-warning-list li{padding:3px 0;border-top:1px solid #ffe082}.signals-warning-meta{color:#a67c00;font-size:10px;margin-left:6px}.signals-unavailable{text-align:center;padding:40px 20px;color:var(--text-muted);font-size:14px}.signals-unavailable code{background:var(--row-alt);padding:2px 6px;border-radius:3px;font-size:12px}.signals-table-wrapper{overflow-x:auto;max-height:500px;overflow-y:auto;border:1px solid var(--border);border-radius:6px}.signals-table{font-size:11px}.signals-table th{position:sticky;top:0;z-index:1}.view-tab-bar{display:flex;align-items:flex-end;gap:0;padding:0 20px;background:var(--surface);border-bottom:2px solid var(--border);flex-shrink:0}.view-tab{padding:10px 22px;font-size:13px;font-weight:600;color:var(--text-secondary);border:none;border-bottom:3px solid transparent;background:none;cursor:pointer;margin-bottom:-2px;transition:color .15s,border-color .15s;letter-spacing:.1px}.view-tab:hover{color:var(--text-primary)}.view-tab-active{color:var(--accent);border-bottom-color:var(--accent)}.screener-wrapper{display:flex;flex-direction:column;flex:1;min-height:0}.screener-filter-bar{border-bottom:1px solid var(--border);background:var(--surface)}.screener-filter-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:6px 12px}.screener-section-divider{width:1px;height:20px;background:var(--border);margin:0 6px;flex-shrink:0}.screener-ccy-input{width:88px;padding:3px 7px;font-size:12px;border:1px solid var(--border);border-radius:4px;outline:none;background:var(--surface);color:var(--text-primary)}.screener-ccy-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #3b7dd826}.screener-filter-item{display:inline-flex;align-items:center;gap:6px}.screener-threshold-input{width:64px;padding:4px 8px;border:1px solid var(--border);border-radius:4px;font-size:12px;font-weight:600;color:var(--text-primary);background:var(--surface);outline:none}.screener-threshold-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #3b7dd826}.screener-apply-btn{padding:4px 14px;background:var(--accent);color:#fff;border:none;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s}.screener-apply-btn:hover:not(:disabled){background:var(--accent-hover)}.screener-apply-btn:disabled{background:#c0c8d8;cursor:not-allowed}.screener-refresh-btn{margin-left:auto;padding:4px 12px;background:none;border:1px solid var(--border);border-radius:4px;font-size:12px;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .15s}.screener-refresh-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.screener-refresh-btn:disabled{opacity:.4;cursor:not-allowed}.screener-num{text-align:right;font-variant-numeric:tabular-nums}.screener-ratio{font-weight:700;color:var(--accent)}.screener-signal-filter{gap:4px}.screener-signal-toggle{padding:3px 8px;font-size:11px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:all .15s}.screener-signal-toggle:hover{border-color:var(--accent);color:var(--accent)}.screener-signal-toggle-on{background:var(--accent);border-color:var(--accent);color:#fff}.screener-signal-toggle-on:hover{background:var(--accent-hover);color:#fff}.screener-ratio-metric{font-size:8.5px;font-weight:500;opacity:.75;margin-right:3px;text-transform:uppercase;letter-spacing:.3px}.screener-ratio-badge{display:inline-block;padding:1px 7px;border-radius:3px;font-size:11px;font-weight:700;background:#3b7dd81a;color:var(--accent);border:1px solid rgba(59,125,216,.25)}.screener-expand-btn{background:none;border:none;font-size:9px;color:var(--text-muted);cursor:pointer;padding:2px 4px;line-height:1;border-radius:3px;transition:color .15s,background .15s}.screener-expand-btn:hover{color:var(--accent);background:var(--accent-light)}.screener-deal-row td{text-align:center;cursor:pointer}.screener-metric-cell{cursor:pointer;text-align:center;font-variant-numeric:tabular-nums;padding:3px 6px!important;vertical-align:middle;transition:background .1s;white-space:nowrap}.screener-metric-cell:hover{background:var(--accent-light)!important;color:var(--accent)}.screener-metric-first{display:block;font-size:9.5px;color:var(--text-muted);line-height:1.3}.screener-metric-last{display:block;font-size:10.5px;font-weight:600;line-height:1.3}.screener-metric-up{color:var(--green)}.screener-metric-down{color:var(--red)}.screener-metric-flat{color:var(--text-primary)}.screener-metric-pct{display:block;font-size:9px;font-weight:600;line-height:1.2;opacity:.85}.screener-trade-date{font-size:11px;color:var(--text-secondary);white-space:nowrap}.net-stats-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:4px}.net-stat-card{background:var(--row-alt);border:1px solid var(--border);border-radius:6px;padding:8px 14px;min-width:90px;text-align:center}.net-stat-label{font-size:9.5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}.net-stat-value{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.net-stat-sub{font-size:9px;color:var(--text-muted);margin-top:2px}.net-stat-up{color:var(--green)}.net-stat-down{color:var(--red)}.net-stat-flat{color:var(--text-primary)}.period-summary{margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.period-summary-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:10px}.period-summary-grid{display:flex;gap:10px;flex-wrap:wrap}.period-card{flex:1;min-width:120px;background:var(--row-alt);border:1px solid var(--border);border-radius:6px;padding:10px 12px}.period-card-empty{opacity:.5}.period-card-label{font-size:10px;font-weight:600;color:var(--text-secondary);margin-bottom:8px;text-transform:uppercase;letter-spacing:.4px}.period-card-row{display:flex;justify-content:space-between;align-items:baseline;gap:6px}.period-card-sub{font-size:9px;color:var(--text-muted)}.period-card-val{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.period-card-arrow{font-size:10px;color:var(--text-muted);text-align:center;line-height:1.4}.period-card-stats{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px;padding-top:6px;border-top:1px solid var(--border)}.period-stat{font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.period-card-na{font-size:10px;color:var(--text-muted);font-style:italic}.period-val-up,.period-stat-up{color:var(--green)}.period-val-down,.period-stat-down{color:var(--red)}.period-val-flat,.period-stat-flat{color:var(--text-primary)}.book-picker-wrapper{position:relative;display:inline-flex;align-items:center}.book-picker-btn{padding:3px 10px;font-size:12px;border:1px dashed var(--border);border-radius:4px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:border-color .15s,color .15s}.book-picker-btn:hover{border-color:var(--accent);color:var(--accent)}.book-picker-dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:200;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 16px #0000001f;min-width:200px;overflow:hidden}.book-picker-search-wrap{padding:6px 8px;border-bottom:1px solid var(--border)}.book-picker-search{width:100%;padding:5px 8px;font-size:12px;border:1px solid var(--border);border-radius:4px;outline:none;background:var(--bg);color:var(--text-primary)}.book-picker-search:focus{border-color:var(--accent);box-shadow:0 0 0 2px #3b7dd826}.book-picker-list{max-height:220px;overflow-y:auto;padding:4px 0}.book-picker-option{display:block;width:100%;text-align:left;padding:7px 14px;font-size:12px;background:none;border:none;cursor:pointer;color:var(--text-primary)}.book-picker-option:hover{background:var(--accent-light);color:var(--accent)}.book-picker-empty{padding:8px 14px;font-size:11px;color:var(--text-muted)}.signals-chart-legend{display:flex;flex-wrap:wrap;gap:12px;padding:6px 0;margin-bottom:4px}.signals-legend-item{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-secondary)}.signals-legend-swatch{display:inline-block;width:12px;height:3px;border-radius:1px}
