:root{font-family:IBM Plex Sans,Segoe UI,sans-serif;background:radial-gradient(circle at 15% 15%,#dbeafe,#eef2ff 35%,#f8fafc 75%);color:#0f172a}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;min-width:320px}.page{min-height:100vh;padding:1rem}.toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;background:#ffffffdb;border:1px solid #dbeafe;border-radius:16px;padding:1rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.toolbar h1{margin:0;font-size:1.25rem}.toolbar p{margin:.25rem 0 0;color:#475569}.controls{display:flex;align-items:end;flex-wrap:wrap;gap:.6rem}.controls label{display:flex;flex-direction:column;gap:.2rem;font-size:.82rem;color:#334155}.controls select,.controls button{border:1px solid #cbd5e1;border-radius:10px;padding:.45rem .6rem;background:#fff;color:#0f172a}.controls button{background:linear-gradient(135deg,#0ea5e9,#2563eb);color:#fff;border:0;cursor:pointer}.controls button:disabled{opacity:.6;cursor:not-allowed}.chart-card{margin-top:1rem;background:#ffffffe0;border-radius:16px;border:1px solid #dbeafe;overflow:hidden}.chart{width:100%;height:560px}.pair-dashboard-page{height:100vh;min-height:100vh;padding:.45rem;display:flex;flex-direction:column;gap:.45rem;overflow:hidden}.pair-dashboard-page.dashboard-header-hidden{padding:0}.pair-dashboard-header{padding:0 .35rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.pair-dashboard-header h1{margin:0;font-size:1.02rem;font-weight:600;color:#334155}.logout-btn{border:1px solid #cbd5e1;border-radius:8px;padding:.3rem .6rem;background:#fff;color:#0f172a;font-size:.75rem;cursor:pointer}.dashboard-header-controls{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.cut-hint{font-size:.75rem;color:#1d4ed8;font-weight:600}.cut-label{font-size:.75rem;color:#b91c1c;font-weight:700}.header-select{display:flex;align-items:center;gap:.3rem;font-size:.75rem;color:#334155}.header-select select{border:1px solid #cbd5e1;border-radius:8px;padding:.25rem .4rem;font-size:.75rem}.header-checkbox{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:#334155}.pair-dashboard-grid{flex:1;min-height:0;display:grid;grid-template-columns:1fr;grid-template-rows:1fr;gap:.45rem}.pair-dashboard-grid.layout-1{grid-template-columns:1fr;grid-template-rows:1fr}.pair-dashboard-grid.layout-2{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:1fr}.pair-dashboard-grid.layout-3{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:1fr}.pair-dashboard-grid.layout-4{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.hidden-charts-bar{margin:0 .35rem;display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.hidden-charts-label{font-size:.72rem;color:#475569;font-weight:600}.hidden-chart-chip{border:1px solid #cbd5e1;border-radius:999px;padding:.2rem .55rem;background:#fff;color:#0f172a;font-size:.72rem;cursor:pointer}.hidden-chart-chip:disabled{opacity:.6;cursor:not-allowed}.panel{min-height:0;display:flex;flex-direction:column;background:#ffffffeb;border:1px solid #dbeafe;border-radius:12px;box-shadow:0 4px 20px #0f172a14;overflow:hidden}.panel-fullscreen{grid-column:1 / -1;grid-row:1 / -1}.panel-is-dimmed{display:none}.panel-is-fullscreen{position:fixed;inset:0;z-index:2600;border-radius:0;border:0;box-shadow:none}.panel-is-fullscreen .panel-header{display:none}.panel-header{position:relative;z-index:40;overflow:visible;padding:.45rem .5rem;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.panel-title{font-size:.84rem;font-weight:700;white-space:nowrap}.panel-title-wrap{display:inline-flex;align-items:center;gap:.25rem}.panel-header-toggle-btn{border:1px solid #cbd5e1;border-radius:6px;padding:.05rem .22rem;background:#fff;color:#0f172a;font-size:.73rem;line-height:1;cursor:pointer}.panel-controls{display:flex;align-items:center;gap:.2rem;flex-wrap:nowrap;overflow:visible;scrollbar-width:thin}.panel-controls label{display:flex;align-items:center;gap:.2rem;font-size:.7rem;color:#475569;flex:0 0 auto}.panel-controls select,.panel-controls button{border:1px solid #cbd5e1;border-radius:6px;padding:.18rem .3rem;background:#fff;color:#0f172a;font-size:13px;white-space:nowrap;flex:0 0 auto}.panel-controls button{cursor:pointer;min-width:0}.panel-controls button:disabled{opacity:.6;cursor:not-allowed}.marks-filter-wrap{position:relative;flex:0 0 auto}.marks-filter-btn{border:1px solid #cbd5e1;border-radius:6px;padding:.18rem .3rem;background:#fff;color:#0f172a;font-size:.71rem;cursor:pointer;white-space:nowrap}.marks-filter-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:80;min-width:220px;background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 12px 28px #0f172a2e;padding:.35rem}.marks-filter-row{display:flex;align-items:center;gap:.45rem;padding:.22rem .28rem;font-size:.75rem;color:#1f2937;border-radius:6px}.marks-filter-row:hover{background:#f8fafc}.marks-filter-row.disabled{opacity:.5}.marks-filter-hint{margin-top:.2rem;padding:.22rem .28rem;font-size:.71rem;color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:6px}.panel-body{z-index:1;flex:1;min-height:0;overflow:hidden;position:relative}.panel-body.pen-enabled{-webkit-user-select:none;user-select:none}.panel-fullscreen-strip{position:absolute;left:0;right:0;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top,0px) + .42rem) .6rem .4rem;background:linear-gradient(to bottom,rgba(15,23,42,.88),rgba(15,23,42,.4),transparent);pointer-events:none}.panel-fullscreen-title{color:#f8fafc;font-size:.8rem;font-weight:700;letter-spacing:.01em;text-shadow:0 1px 1px rgba(0,0,0,.45)}.panel-fullscreen-actions{display:inline-flex;align-items:center;gap:.35rem;pointer-events:auto}.panel-fullscreen-exit-btn{pointer-events:auto;border:1px solid rgba(148,163,184,.6);border-radius:8px;background:#0f172aeb;color:#f8fafc;font-size:.78rem;padding:.32rem .55rem;min-width:3.8rem;cursor:pointer}.panel-fullscreen-exit-btn.active{background:#0f172a;border-color:#f8fafce6}.panel-chart{width:100%;height:100%}.ruler-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:14}.pen-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:13;touch-action:none;cursor:default}.pen-overlay.enabled{pointer-events:auto;cursor:default}.pen-tip-dot{position:absolute;width:8px;height:8px;margin-left:-4px;margin-top:-4px;border-radius:999px;background:#0f172ae6;border:1px solid rgba(255,255,255,.9);pointer-events:none;z-index:27;display:none}.ruler-tooltip{position:absolute;z-index:15;display:none;min-width:140px;background:#020617eb;color:#e2e8f0;border:1px solid #334155;border-radius:8px;padding:.3rem .4rem;font-size:.72rem;line-height:1.35;pointer-events:none}.event-tooltip{position:absolute;z-index:20;min-width:220px;max-width:320px;background:#0f172af2;color:#f8fafc;border-radius:8px;padding:.4rem .5rem;pointer-events:none;font-size:.72rem}.event-tooltip-title{font-weight:700;margin-bottom:.2rem}.event-tooltip-line{line-height:1.3;color:#cbd5e1}.boundary-tooltip{max-width:360px}.boundary-tooltip-actions{margin-top:.35rem;display:flex;gap:.35rem}.boundary-tooltip-actions button{border:1px solid rgba(148,163,184,.6);border-radius:6px;background:#0f172ae6;color:#e2e8f0;padding:.2rem .4rem;font-size:.68rem;cursor:pointer}.boundary-label-layer{position:absolute;inset:0;pointer-events:none;z-index:16}.boundary-label-chip{position:absolute;right:6px;transform:translateY(-50%);border:1px solid;border-radius:999px;background:#0f172ad1;padding:.08rem .35rem;font-size:.62rem;font-weight:700;letter-spacing:.01em;white-space:nowrap}.chart-context-menu{position:absolute;z-index:26;min-width:170px;background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 8px 20px #0f172a33;padding:.22rem}.chart-context-menu button{width:100%;border:0;background:transparent;text-align:left;padding:.45rem .55rem;border-radius:6px;color:#0f172a;font-size:.78rem;cursor:pointer}.chart-context-menu button:hover{background:#eff6ff}.chart-context-menu-input{width:100%;margin-top:.2rem;border:1px solid #cbd5e1;border-radius:6px;padding:.34rem .42rem;font-size:.76rem;color:#0f172a;background:#f8fafc}.pen-btn.active{background:#0f172a;color:#f8fafc;border-color:#0f172a}.pen-menu-wrap{position:relative;flex:0 0 auto}.pen-menu-btn{border:1px solid #cbd5e1;border-radius:8px;padding:.26rem .42rem;background:#fff;color:#0f172a;font-size:.75rem;cursor:pointer;min-width:4.8rem}.pen-menu-btn.active{background:#0f172a;color:#f8fafc;border-color:#0f172a}.pen-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:95;min-width:180px;background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 12px 28px #0f172a2e;padding:.35rem;display:flex;flex-direction:column;gap:.3rem}.pen-menu-fullscreen{right:0;top:calc(100% + 4px)}.pen-menu-row{display:flex;align-items:center;justify-content:space-between;gap:.35rem;font-size:.72rem;color:#334155}.pen-menu-row input[type=checkbox]{margin-right:.35rem}.pen-menu-row select{border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a;font-size:.72rem;padding:.18rem .28rem}.pen-menu-action{border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#334155;font-size:.72rem;padding:.2rem .35rem;cursor:pointer;text-align:left}.pen-menu-action.danger{color:#b91c1c}.pen-menu-action:disabled{opacity:.55;cursor:not-allowed}.pen-tools-inline{display:inline-flex;align-items:center;gap:.28rem}.pen-tools-group{display:inline-flex;align-items:center;gap:.16rem}.pen-tools-sep{color:#94a3b8;font-size:.75rem;margin:0 .05rem}.pen-icon-btn{border:1px solid #cbd5e1;border-radius:6px;min-width:1.35rem;width:1.35rem;height:1.35rem;padding:0;background:#fff;color:#0f172a;font-size:.7rem;line-height:1;cursor:pointer}.pen-icon-btn.active{background:#0f172a;color:#f8fafc;border-color:#0f172a}.panel-maximize-btn{position:absolute;right:max(.5rem,calc(env(safe-area-inset-right,0px) + .25rem));bottom:max(.5rem,calc(env(safe-area-inset-bottom,0px) + .25rem));z-index:28;width:2.25rem;height:2.25rem;border:1px solid #cbd5e1;border-radius:999px;background:#fffffff0;color:#0f172a;font-size:1rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 18px #0f172a33}.panel-is-fullscreen .panel-maximize-btn{background:#0f172aeb;color:#f8fafc;border-color:#94a3b899}body.is-chart-maximized{overflow:hidden}.pair-dashboard-page.chart-fullscreen-active{padding:0;gap:0}.fullscreen-quick-controls{position:fixed;top:.55rem;left:.75rem;z-index:1600;display:flex;gap:.35rem}.cut-panel-hint{position:absolute;left:.5rem;top:.5rem;z-index:12;font-size:.7rem;font-weight:700;color:#1d4ed8;background:#ffffffeb;border:1px solid #bfdbfe;border-radius:6px;padding:.18rem .35rem;pointer-events:none}.zone-pressure-btn.active{border-color:#0284c7;background:#e0f2fe;color:#0c4a6e}.zone-pressure-panel{position:absolute;top:.5rem;bottom:.5rem;right:.5rem;z-index:22;width:min(72vw,900px);height:calc(100% - 1rem);max-height:none;overflow:auto;border:1px solid #94a3b8;border-radius:8px;background:#fffffff2;box-shadow:0 8px 24px #0f172a33;padding:.45rem .5rem;pointer-events:auto;overflow:hidden;display:flex;flex-direction:column}.zone-pressure-panel.zp-track-panel{width:min(84vw,930px)}.zone-pressure-panel.minimized{bottom:auto;height:auto;width:fit-content;min-width:18rem;max-width:min(92vw,28rem);overflow:visible;padding-bottom:.35rem}.zone-pressure-content{flex:1 1 auto;min-height:0;overflow:auto;padding-bottom:2.1rem}.zone-pressure-panel.align-left{left:.5rem;right:auto}.zone-pressure-panel.align-center{left:50%;right:auto;transform:translate(-50%)}.zone-pressure-panel.align-right{left:auto;right:.5rem}.zone-pressure-header{display:flex;align-items:center;justify-content:space-between;gap:.4rem}.zone-pressure-title{font-size:.89rem;font-weight:700;color:#0f172a}.zone-pressure-controls{display:inline-flex;align-items:center;gap:.7rem}.zone-pressure-control-group{display:inline-flex;align-items:center;gap:.2rem}.zone-pressure-select-label{display:inline-flex;align-items:center;gap:.28rem;font-size:.74rem;color:#334155}.zone-pressure-select{border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#0f172a;min-width:3.2rem;font-size:.74rem;line-height:1;padding:.12rem .22rem}.zone-pressure-control-group-position{margin-left:.25rem}.zone-pressure-controls button{border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#0f172a;min-width:1.8rem;font-size:.8rem;line-height:1;padding:.16rem .22rem;cursor:pointer}.zone-pressure-controls button.active{border-color:#0284c7;background:#e0f2fe;color:#0c4a6e}.zone-pressure-minimize{font-weight:700;min-width:1.8rem;font-size:.92rem;line-height:1}.zone-pressure-close{font-weight:700;min-width:1.8rem}.zone-pressure-subtitle{margin-top:.15rem;font-size:.8rem;color:#334155}.zone-pressure-total-pill{display:inline-block;min-width:1.8rem;text-align:center;border-radius:6px;border:1px solid transparent;padding:.02rem .3rem;font-weight:700}.zone-pressure-total-pill-ok{background:#dbeafe;border-color:#93c5fd;color:#1e3a8a}.zone-pressure-total-pill-warn{background:#ffedd5;border-color:#fdba74;color:#9a3412}.zone-pressure-total-pill-bad{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.zone-pressure-state{margin-top:.25rem;font-size:.82rem;color:#0f172a}.zone-pressure-loading-float{position:absolute;right:.7rem;bottom:.7rem;z-index:4;display:inline-flex;align-items:center;gap:.35rem;border:1px solid #93c5fd;border-radius:999px;background:#eff6fff5;color:#0f172a;font-size:.78rem;font-weight:600;padding:.2rem .55rem;box-shadow:0 2px 10px #0f172a24;pointer-events:none}.zone-pressure-loading-spinner{width:.72rem;height:.72rem;border-radius:999px;border:2px solid #93c5fd;border-top-color:#0284c7;animation:zone-pressure-spin .9s linear infinite}@keyframes zone-pressure-spin{to{transform:rotate(360deg)}}.zone-pressure-signal-line{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;white-space:pre;font-size:.8rem}.zone-pressure-state.error{color:#991b1b}.zone-pressure-meta{margin-top:.25rem;font-size:.8rem;color:#334155}.zone-pressure-time-row{margin-top:.32rem;display:flex;flex-wrap:wrap;gap:.24rem}.zone-pressure-time-btn{border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#334155;font-size:.72rem;line-height:1;padding:.2rem .46rem;cursor:pointer}.zone-pressure-time-btn.active{border-color:#0284c7;background:#e0f2fe;color:#0c4a6e;font-weight:700}.zone-pressure-grid{margin-top:.3rem;display:grid;grid-template-columns:1fr;gap:.4rem}.ml-struct-results-block{border:1px solid #6366f1;border-radius:6px;background:#1e1b4b;padding:.6rem .75rem;margin-bottom:.4rem;color:#e0e7ff;font-size:.78rem}.ml-struct-results-title{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#818cf8;margin-bottom:.45rem}.ml-struct-state{color:#94a3b8;font-style:italic;font-size:.77rem}.ml-struct-error{color:#f87171;font-style:normal}.ml-struct-signal{display:flex;flex-direction:column;gap:.2rem}.ml-struct-row{display:flex;align-items:center;gap:.5rem}.ml-struct-label{color:#94a3b8;min-width:90px;font-size:.74rem}.ml-struct-value{font-weight:600;font-size:.77rem}.ml-struct-dir-long{color:#4ade80}.ml-struct-dir-short{color:#f87171}.ml-struct-dir-neutral{color:#facc15}.ml-struct-conv-strong{color:#4ade80;font-weight:700}.ml-struct-conv-moderate{color:#facc15}.ml-struct-conv-weak{color:#94a3b8}.ml-struct-actionable-yes{color:#4ade80;font-weight:700}.ml-struct-actionable-no{color:#f87171}.ml-struct-summary{margin-top:.35rem;color:#c7d2fe;font-size:.74rem;line-height:1.4;border-top:1px solid #312e81;padding-top:.3rem}.zone-pressure-table-wrap{border:1px solid #cbd5e1;border-radius:6px;background:#f8fafc;overflow:auto}.zone-pressure-table-title{position:sticky;top:0;z-index:1;background:#e2e8f0;border-bottom:1px solid #cbd5e1;padding:.2rem .35rem;font-size:.8rem;font-weight:700;color:#0f172a}.zone-pressure-json-block{margin:0;padding:.45rem .55rem;font-size:.74rem;line-height:1.35;color:#0f172a;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.zone-pressure-report-block{margin:0;padding:.45rem .55rem;font-size:13px;line-height:1.32;color:#0f172a;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.zone-pressure-report-clickable{white-space:pre-wrap}.zone-pressure-report-line{white-space:pre}.zone-pressure-report-line-clickable{cursor:pointer}.zone-pressure-report-line-clickable.active{background:#3b82f629}.zone-pressure-report-line-clickable.tracking{background:#7c3aed29;box-shadow:inset 3px 0 #7c3aed}.zone-pressure-report-line-clickable.tracking.active{background:#6366f13d;box-shadow:inset 3px 0 #4f46e5}.zone-pressure-inline-time-btn{border:0;background:transparent;color:#0369a1;cursor:pointer;padding:0;margin:0;font:inherit;font-weight:700;line-height:inherit}.zone-pressure-inline-time-btn:hover{color:#0c4a6e;text-decoration:underline}.zone-pressure-inline-time-btn.active{color:#1e3a8a;text-decoration:underline}.zone-pressure-inline-time-btn.tracking{color:#6d28d9;text-decoration:underline;font-weight:800}.zone-pressure-report-details{border-top:1px solid #dbe3ed;padding:.35rem .35rem .45rem}.zone-pressure-report-toggle{border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#0f172a;font-size:.72rem;line-height:1;padding:.22rem .42rem;cursor:pointer}.zone-pressure-path-wrap{padding:.45rem .55rem .6rem}.zone-pressure-path-image{display:block;width:100%;max-width:100%;height:auto;border:1px solid #dbe3ed;border-radius:8px;background:#f8fafc}.zone-pressure-path-steps{margin-top:.35rem;font-size:.76rem;color:#334155;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.zone-pressure-table{width:100%;border-collapse:collapse;font-size:.76rem}.zone-pressure-table th,.zone-pressure-table td{border:1px solid #dbe3ed;padding:.15rem .22rem;white-space:nowrap}.zone-pressure-table th{background:#eff6ff;color:#0f172a;position:sticky;top:20px;z-index:1}.zone-pressure-legend-backdrop{position:fixed;inset:0;background:#0f172a59;display:grid;place-items:center;z-index:2100}.zone-pressure-legend-modal{width:min(760px,96vw);max-height:min(76vh,680px);overflow:auto;background:#fff;border-radius:10px;border:1px solid #cbd5e1;box-shadow:0 24px 48px #0f172a40;padding:.8rem .95rem}.zone-pressure-legend-title{font-size:2rem;font-weight:700;color:#111827;margin-bottom:.6rem}.zone-pressure-legend-table{width:100%;border-collapse:collapse;font-size:1.05rem;line-height:1.35;color:#111827}.zone-pressure-legend-table th,.zone-pressure-legend-table td{text-align:left;vertical-align:top;border-bottom:1px solid #d1d5db;padding:.55rem 0}.zone-pressure-legend-table th{font-weight:700}.zone-pressure-legend-table td:first-child{width:30%;font-weight:700;padding-right:.9rem}.legend-backdrop{position:fixed;inset:0;background:#0f172a59;display:grid;place-items:center;z-index:2000}.legend-modal{width:min(380px,92vw);background:#fff;border-radius:12px;border:1px solid #cbd5e1;padding:.8rem;display:flex;flex-direction:column;gap:.35rem}.legend-title{font-weight:700;color:#0f172a}.legend-row{font-size:.82rem;color:#334155}.legend-dot{display:inline-block;width:42px;font-weight:700}.legend-att{color:#f59e0b}.legend-conf{color:#16a34a}.legend-wconf{color:#0f766e}.legend-inv{color:#dc2626}.legend-swt{color:#0ea5e9}.event-details-panel{position:fixed;top:0;bottom:0;width:min(380px,95vw);background:#fff;z-index:1900;display:flex;flex-direction:column}.event-details-panel.right{right:0;border-left:1px solid #cbd5e1;box-shadow:-8px 0 20px #0f172a24}.event-details-panel.left{left:0;border-right:1px solid #cbd5e1;box-shadow:8px 0 20px #0f172a24}.breakout-list-panel{position:fixed;top:0;bottom:0;width:min(760px,98vw);background:#fff;border-left:1px solid #cbd5e1;box-shadow:-8px 0 20px #0f172a24;z-index:1950;display:flex;flex-direction:column}.bts-list-panel{position:fixed;top:0;bottom:0;width:min(880px,98vw);background:#fff;border-left:1px solid #cbd5e1;box-shadow:-8px 0 20px #0f172a24;z-index:1950;display:flex;flex-direction:column}.breakout-list-panel.right{right:0}.breakout-list-panel.left{left:0}.bts-list-panel.right{right:0}.bts-list-panel.left{left:0}.breakout-list-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e2e8f0;padding:.6rem .7rem}.breakout-list-title{font-size:.95rem;font-weight:700;color:#0f172a}.breakout-list-toolbar{display:flex;align-items:center;gap:.4rem}.breakout-list-side-switch,.breakout-list-tf-filters,.bts-top-strategies,.bts-type-filters{display:flex;align-items:center;gap:.2rem}.bts-strategy-select-label{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;color:#334155}.bts-strategy-select{border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#334155;font-size:.72rem;padding:.2rem .35rem}.breakout-list-side-switch button,.breakout-list-tf-filters button,.bts-top-strategies button,.bts-type-filters button{border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#334155;font-size:.72rem;padding:.22rem .4rem;cursor:pointer}.breakout-list-side-switch button.active,.breakout-list-tf-filters button.active,.bts-top-strategies button.active,.bts-type-filters button.active{background:#ecfeff;border-color:#67e8f9;color:#0f172a;font-weight:700}.bts-summary-wrap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;padding:.55rem .7rem;border-bottom:1px solid #e2e8f0;background:#f8fafc}.bts-summary-card{border:1px solid #cbd5e1;border-radius:10px;padding:.45rem .55rem;font-size:.74rem;color:#334155;background:#fff;display:flex;flex-direction:column;gap:.2rem}.bts-summary-btn{cursor:pointer;text-align:left}.bts-summary-title{font-size:.78rem;font-weight:700;color:#0f172a}.bts-inline-link{border:0;background:transparent;color:#0f172a;text-decoration:underline;font-size:.72rem;padding:0;cursor:pointer}.bts-summary-loading{grid-column:1 / -1;font-size:.75rem;color:#334155}.bts-active-title{display:inline-flex;align-items:center;gap:.4rem}.bts-active-spinner{width:.78rem;height:.78rem;border:2px solid #cbd5e1;border-top-color:#0ea5e9;border-radius:999px;display:inline-block;animation:bts-spin .75s linear infinite}@keyframes bts-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.bts-overall-table-wrap{padding:.5rem;border-bottom:1px solid #e2e8f0;background:#f8fafc}.bts-overall-title{font-size:.78rem;font-weight:700;color:#0f172a;margin-bottom:.35rem}.bts-overall-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.35rem}.bts-overall-toggle{border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#334155;font-size:.72rem;padding:.22rem .4rem;cursor:pointer}.bts-rules-backdrop{position:fixed;inset:0;background:#0f172a85;display:flex;align-items:center;justify-content:center;z-index:90}.bts-rules-modal{width:min(840px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow:auto;background:#fff;border-radius:12px;border:1px solid #cbd5e1;box-shadow:0 24px 60px #0f172a47;padding:.9rem;display:flex;flex-direction:column;gap:.6rem}.bts-rules-title{font-size:.95rem;font-weight:700;color:#0f172a}.bts-rules-body{display:flex;flex-direction:column;gap:.35rem;font-size:.78rem;color:#334155}.breakout-list-table-wrap{padding:.5rem;overflow:auto}.breakout-list-table{width:100%;border-collapse:collapse;font-size:.75rem;color:#334155}.breakout-list-table th,.breakout-list-table td{border-bottom:1px solid #e2e8f0;text-align:left;padding:.35rem .3rem;white-space:nowrap}.breakout-list-table th{position:sticky;top:0;background:#f8fafc;z-index:1}.breakout-list-table th button{border:0;background:transparent;color:#334155;font-size:.75rem;cursor:pointer;padding:0}.breakout-list-table tbody tr{cursor:pointer}.breakout-list-table tbody tr:hover{background:#f8fafc}.breakout-list-table tbody tr.active{background:#ecfeff}.breakout-list-table tbody tr.oth-selected{background:#dbeafe;box-shadow:inset 4px 0 #2563eb}.breakout-list-table tbody tr.win{background:#e0f2fe}.breakout-list-table tbody tr.loss{background:#fff1f2}.oth-cr-chip{display:inline-flex;align-items:center;gap:.18rem;min-width:2.9rem;padding:.1rem .3rem;border-radius:999px;font-size:.68rem;line-height:1.2;text-align:center;font-weight:700;border:1px solid #cbd5e1;background:#f8fafc;color:#334155}.oth-cr-arrow{font-size:.7rem;line-height:1}.oth-cr-chip.up{background:#dcfce7;border-color:#86efac;color:#166534}.oth-cr-chip.down{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.oth-cr-chip.neutral{background:#fef3c7;border-color:#fcd34d;color:#92400e}.oth-cr-chip.pending{background:#f8fafc;border-color:#cbd5e1;color:#64748b}.event-details-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e2e8f0;padding:.6rem .7rem}.event-details-title{font-size:.9rem;font-weight:700;color:#0f172a}.event-details-toolbar,.event-details-side-switch{display:flex;align-items:center}.event-details-toolbar{gap:.35rem}.event-details-side-switch{gap:.2rem}.event-details-side-switch button{border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#334155;font-size:.72rem;padding:.22rem .4rem;cursor:pointer}.event-details-side-switch button.active{background:#ecfeff;border-color:#67e8f9;color:#0f172a;font-weight:700}.event-details-body{padding:.65rem .7rem;display:flex;flex-direction:column;gap:.35rem;font-size:.78rem;color:#334155;overflow:auto}.event-list-row{padding:.35rem .2rem;border-bottom:1px solid #f1f5f9;border:0;background:transparent;color:#334155;text-align:left;font-size:.78rem;cursor:pointer}.event-list-row.active{background:#ecfeff;color:#0f172a;font-weight:600}.event-details-inline{margin-top:.5rem;border-top:1px solid #e2e8f0;padding-top:.45rem;display:flex;flex-direction:column;gap:.3rem}.event-details-card{display:flex;flex-direction:column;gap:.25rem}.bo-score{display:flex;align-items:center;gap:.35rem;font-weight:700;color:#0f172a}.bo-score-loading{color:#334155}.bo-score-details{border:1px solid #e2e8f0;border-radius:8px;padding:.3rem .4rem;background:#f8fafc}.bo-score-details summary{cursor:pointer;list-style:none}.bo-score-details summary::-webkit-details-marker{display:none}.bo-score-breakdown{margin-top:.3rem;display:flex;flex-direction:column;gap:.2rem;font-size:.74rem;color:#334155}.bo-score-badge{border-radius:999px;padding:.1rem .45rem;font-size:.68rem;font-weight:700;border:1px solid transparent}.bo-score-badge.weak{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.bo-score-badge.mixed{background:#fef3c7;border-color:#fcd34d;color:#92400e}.bo-score-badge.strong{background:#dcfce7;border-color:#86efac;color:#166534}.bo-risk-badge{border-radius:999px;padding:.1rem .45rem;font-size:.68rem;font-weight:700;border:1px solid #fca5a5;background:#fee2e2;color:#991b1b}.bo-side-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.1rem .45rem;font-size:.68rem;font-weight:700;border:1px solid transparent;white-space:nowrap;line-height:1}.bo-side-badge.up{background:#dcfce7;border-color:#86efac;color:#166534}.bo-side-badge.down{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.bo-result-badge{border-radius:999px;padding:.1rem .45rem;font-size:.68rem;font-weight:700;border:1px solid transparent}.bo-result-badge.continuation{background:#dcfce7;border-color:#86efac;color:#166534}.bo-result-badge.no_followthrough{background:#fef3c7;border-color:#fcd34d;color:#92400e}.bo-result-badge.failed_reversal{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.heatmap-controls{margin-top:.45rem;display:flex;flex-direction:column;gap:.35rem}.heatmap-controls-row{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center}.heatmap-controls-row input[type=range]{width:120px}.heatmap-error{color:#b91c1c;font-size:.75rem}.heatmap-backdrop{position:fixed;inset:0;z-index:2100;background:#0f172a73;display:grid;place-items:center}.heatmap-modal{width:min(980px,96vw);max-height:92vh;overflow:auto;border-radius:12px;border:1px solid #334155;background:#0b1220;padding:.6rem;display:flex;flex-direction:column;gap:.45rem}.heatmap-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.heatmap-title{font-size:.9rem;font-weight:700;color:#e2e8f0}.heatmap-switch-loading{font-size:.74rem;color:#93c5fd;font-weight:600}.heatmap-tabs{display:flex;flex-wrap:wrap;gap:.3rem}.heatmap-tab{border:1px solid #334155;background:#0f172a;color:#cbd5e1;border-radius:8px;font-size:.74rem;padding:.24rem .5rem;cursor:pointer}.heatmap-tab:hover:not(:disabled){border-color:#475569}.heatmap-tab.active,.heatmap-tab:disabled{background:#1e3a8a;color:#eff6ff;border-color:#3b82f6;cursor:default}.heatmap-meta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.75rem;color:#cbd5e1}.result-pill{border-radius:999px;padding:.12rem .45rem;font-weight:700;border:1px solid transparent}.result-pill.continuation{background:#14532d;border-color:#22c55e;color:#dcfce7}.result-pill.no_followthrough{background:#78350f;border-color:#f59e0b;color:#fef3c7}.result-pill.failed_reversal{background:#7f1d1d;border-color:#ef4444;color:#fee2e2}.heatmap-side-pill{display:inline-flex;align-items:center;border-radius:999px;padding:.12rem .5rem;font-weight:700;border:1px solid transparent;white-space:nowrap;line-height:1}.heatmap-side-pill.up{background:#14532d;border-color:#22c55e;color:#dcfce7}.heatmap-side-pill.down{background:#7f1d1d;border-color:#ef4444;color:#fee2e2}.heatmap-grid{display:flex;flex-direction:column;gap:.35rem}.heatmap-block{display:flex;flex-direction:column;gap:.2rem}.heatmap-block-title{font-size:.78rem;font-weight:700;color:#cbd5e1}.heatmap-grid canvas{width:100%;height:auto;border:1px solid #1e293b;border-radius:6px;background:#0f172a}.heatmap-canvas-wrap{position:relative}.heatmap-empty{position:absolute;inset:0;display:grid;place-items:center;color:#cbd5e1;font-size:.8rem;text-align:center;background:#0206178c;border-radius:6px;padding:.6rem}.heatmap-legend{display:flex;gap:.5rem;align-items:center;font-size:.75rem}.legend-bar{height:10px;width:200px;border-radius:999px;border:1px solid #334155}.legend-seq{background:linear-gradient(90deg,#0f172a,#10b981)}.legend-div{background:linear-gradient(90deg,#ef4444,#9ca3af,#22c55e)}.heatmap-legend .neg{color:#ef4444}.heatmap-legend .zero{color:#64748b}.heatmap-legend .pos{color:#10b981}.login-page{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:min(420px,100%);background:#ffffffed;border:1px solid #dbeafe;border-radius:14px;padding:1rem;display:flex;flex-direction:column;gap:.7rem}.login-card h1{margin:0;font-size:1.15rem}.login-card label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:#334155}.login-card input{border:1px solid #cbd5e1;border-radius:10px;padding:.5rem .6rem;font-size:.9rem}.login-card button{border:0;border-radius:10px;padding:.55rem .75rem;background:linear-gradient(135deg,#0ea5e9,#2563eb);color:#fff;cursor:pointer}.login-error{margin:0;color:#b91c1c;font-size:.85rem}@media(max-width:900px){.toolbar{flex-direction:column;align-items:stretch}.controls{align-items:stretch}.controls label,.controls select,.controls button{width:100%}.chart{height:460px}.pair-dashboard-page{padding:.35rem}.pair-dashboard-grid.layout-2,.pair-dashboard-grid.layout-3,.pair-dashboard-grid.layout-4{grid-template-columns:1fr}.pair-dashboard-grid.layout-2{grid-template-rows:repeat(2,minmax(0,1fr))}.pair-dashboard-grid.layout-3{grid-template-rows:repeat(3,minmax(0,1fr))}.pair-dashboard-grid.layout-4{grid-template-rows:repeat(4,minmax(0,1fr))}.panel-header{align-items:flex-start;flex-direction:column}.panel-controls{width:100%;flex-wrap:wrap;gap:.16rem}.panel-controls label{gap:.15rem;font-size:.66rem}.panel-controls select,.panel-controls button,.marks-filter-btn{padding:.14rem .24rem;font-size:13px}.pen-tools-inline{gap:.22rem}.pen-icon-btn{min-width:1.25rem;width:1.25rem;height:1.25rem;font-size:.66rem}.panel-maximize-btn{width:2.6rem;height:2.6rem;font-size:1.08rem}}.ml-signals-btn-active{background:#1a3a5c!important;border-color:#4a9eff!important;color:#4a9eff!important}.ml-signals-panel .breakout-list-table-wrap{flex:1 1 auto;min-height:0;max-height:none}.ml-signals-panel.minimized{bottom:auto;width:min(460px,96vw)}.ml-signals-panel.minimized .breakout-list-header{border-bottom:0}.ml-signals-table th,.ml-signals-table td{font-size:11px;padding:3px 5px;white-space:nowrap}.ml-signals-table tbody tr{cursor:pointer}.ml-signals-table tbody tr:hover{background:#ffffff0f}.ml-signals-table tbody tr.active.ml-selected{background:#4a9eff2e;outline:1px solid #4a9eff}.ml-row-buy td:first-child{border-left:3px solid #26a69a}.ml-row-sell td:first-child{border-left:3px solid #ef5350}.ml-dir-buy{color:#26a69a;font-weight:700}.ml-dir-sell{color:#ef5350;font-weight:700}.ml-strong{color:#f9a825;font-weight:700}.ml-tf-align{font-size:10px;color:#aaa}.ml-cat-large{color:#26a69a;font-weight:600}.ml-cat-medium{color:#8bc34a}.ml-cat-small{color:#aaa}.ml-cat-high{color:#ef5350;font-weight:600}.ml-exec-yes{color:#6fdc8c;font-weight:700}.ml-exec-late{color:#1d4ed8;font-weight:700}.ml-exec-no{color:#7a7a7a;font-weight:700}.ml-exec-no-solid{color:#6b7280;font-weight:700}.ml-exec-icon{display:inline-block;min-width:10px;text-align:center}.ml-tech90-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#22c55e;margin-left:5px;vertical-align:middle}.ml-empty{text-align:center;color:#666;padding:1.5rem 0;font-size:12px}.ml-signal-detail{padding:8px 12px 10px;border-bottom:1px solid #2a2a2a;background:#0e1117;font-size:12px}.ml-detail-header-row{display:flex;align-items:center;gap:6px;margin-bottom:7px;flex-wrap:wrap}.ml-detail-collapse-btn{border:1px solid #334155;background:#0b1220;color:#cbd5e1;border-radius:4px;font-size:10px;padding:2px 7px;cursor:pointer;margin-left:auto}.ml-detail-collapse-btn:hover{border-color:#4a9eff;color:#e2efff}.ml-detail-time{color:#888;font-size:11px;flex:1}.ml-detail-model{font-size:10px;font-weight:700;color:#4a9eff;background:#1a2a3a;border-radius:3px;padding:1px 5px;letter-spacing:.05em}.ml-badge{font-size:10px;font-weight:700;border-radius:3px;padding:1px 6px;letter-spacing:.05em;text-transform:uppercase}.ml-badge-actionable{background:#1a3a2a;color:#26a69a;border:1px solid #26a69a44}.ml-badge-watch{background:#2a2a1a;color:#aaa;border:1px solid #44440044}.ml-badge-risk{background:#3a1a1a;color:#ef5350;border:1px solid #ef535044}.ml-badge-small{font-size:10px;font-weight:700;border-radius:2px;padding:0 4px}.ml-trading-rules{background:#141a1f;border-left:3px solid #4a9eff;border-radius:2px;padding:7px 10px;margin-bottom:8px}.ml-tr-action{font-size:12px;font-weight:700;color:#e0e0e0;margin-bottom:5px}.ml-tr-grid{display:grid;grid-template-columns:36px 1fr;gap:2px 8px;font-size:11px}.ml-tr-grid>span:nth-child(odd){color:#666;font-size:10px;text-transform:uppercase;padding-top:1px}.ml-tr-grid>span:nth-child(2n){color:#ccc}.ml-risk-warn{color:#ef5350;font-weight:600}.ml-risk-ok{color:#888}.ml-detail-grid{display:grid;grid-template-columns:72px 1fr;gap:3px 8px;color:#ccc;margin-bottom:6px}.ml-detail-grid>span:nth-child(odd){color:#666;font-size:11px}.ml-detail-prices{background:#111820;border-radius:3px;padding:6px 10px;margin-bottom:6px}.ml-price-row{display:flex;gap:6px;align-items:baseline;margin-bottom:4px}.ml-price-label{font-size:10px;color:#666;text-transform:uppercase;width:28px}.ml-price-val{font-size:13px;font-weight:700;color:#e0e0e0;min-width:60px}.ml-tf-context{background:#111820;border-radius:3px;padding:6px 10px}.ml-tf-context-title{font-size:10px;color:#555;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.ml-tf-context-grid{display:grid;grid-template-columns:110px minmax(0,1fr);gap:2px 8px;font-size:11px;align-items:start}.ml-tf-context-grid>span:nth-child(odd){color:#555;font-size:10px;white-space:nowrap}.ml-tf-context-grid>span:nth-child(2n){color:#ccc;min-width:0;overflow-wrap:anywhere}.ml-eval-split{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ml-eval-col{min-width:0}@media(max-width:900px){.ml-eval-split{grid-template-columns:1fr}}.ml-tf-contested{color:#aaa}.ml-probable{color:#aaa;font-style:italic}.ml-probable-note{font-size:11px;color:#666;font-style:italic;padding:4px 0}.ml-detail-summary{margin-top:8px;padding:6px 8px;background:#1a1a2e;border-left:3px solid #4a9eff;color:#ccc;font-size:11px;line-height:1.5;border-radius:2px}
