/* Flow monitor: dense observation surface, never a simulated market feed. */
body.flow-mode{--bg:#101318;--panel:#1b222b;--ink:#e8edf5;--muted:#a9b5c5;--line:#394555;--mint:#283548;--green:#92b8ea;background:var(--bg);color:var(--ink)}
body.flow-mode #app-view{height:100dvh;overflow:hidden}
body.flow-mode main{height:100dvh;min-width:0;display:flex;flex-direction:column;overflow:hidden}
body.flow-mode .workspace{flex:1;min-height:0;width:100%;max-width:none;margin:0;padding:0;overflow:hidden;display:flex;flex-direction:column}
body.flow-mode #research-view{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.flow-monitor,.flow-monitor *{box-sizing:border-box}
.flow-monitor{height:100%;min-height:0;display:flex;flex-direction:column;gap:10px;padding:18px 20px;overflow:hidden;color:var(--ink);font-variant-numeric:tabular-nums}
.flow-monitor button,.flow-monitor input,.flow-monitor select{font:inherit}
.flow-heading{display:flex;justify-content:space-between;align-items:end;gap:16px;flex:0 0 auto;border-bottom:1px solid var(--line);padding:0 0 12px}
.flow-heading .eyebrow{margin:0 0 4px;color:var(--green);font-size:10px;font-weight:800;letter-spacing:.14em}
.flow-heading h1{font-size:24px;line-height:1.05;letter-spacing:-.03em;margin:0 0 4px}
.flow-heading p:not(.eyebrow){font-size:12px;color:var(--muted);margin:0;line-height:1.35}
.flow-source{display:flex;flex-direction:column;align-items:flex-end;gap:4px;max-width:270px;text-align:right}
.flow-source strong{color:#e9bf78;border:1px solid #785736;background:#30271f;padding:6px 9px;border-radius:5px;font-size:10px;letter-spacing:.08em}
.flow-source span{font-size:10px;line-height:1.3;color:var(--muted)}
.flow-tabs{display:flex;gap:5px;flex:0 0 auto;border-bottom:1px solid var(--line)}
.flow-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);min-height:40px;min-width:90px;padding:8px 15px;cursor:pointer;font-weight:700}
.flow-tabs button[aria-selected="true"]{color:var(--ink);border-color:var(--green)}
.flow-tabs button span{font-size:9px;color:#e9bf78;margin-left:3px}
.flow-tabs button:focus-visible,.flow-monitor :is(input,select,button,a):focus-visible{outline:2px solid var(--green);outline-offset:2px}
#flow-alerts-panel{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;gap:10px}
#flow-alerts-panel[hidden],#flow-gex-panel[hidden]{display:none!important}
.flow-toolbar{display:flex;gap:8px;align-items:center;justify-content:space-between;flex:0 0 auto;min-width:0}
.flow-symbols{display:flex;flex-wrap:wrap;gap:4px}
.flow-symbols button,#flow-filters-toggle{border:1px solid var(--line);background:#17222d;color:var(--muted);border-radius:5px;min-height:34px;min-width:42px;padding:5px 8px;cursor:pointer;font-size:11px;font-weight:700}
.flow-symbols button[aria-pressed="true"]{color:var(--green);border-color:#617fa5;background:#283548}
#flow-filters-toggle{display:none;border:1px solid var(--line);background:#17222d;color:var(--ink);border-radius:5px;min-height:34px;min-width:76px;padding:5px 8px;cursor:pointer;font-size:11px;font-weight:700}
.flow-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;flex:0 0 auto;min-width:0}
.flow-filters label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:10px;min-width:0}
.flow-filters input,.flow-filters select{width:100%;min-width:0;min-height:35px;border:1px solid var(--line);border-radius:5px;color:var(--ink);background:#0e1721;padding:5px 8px;font-size:11px}
.flow-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:6px;overflow:hidden;flex:0 0 auto}
.flow-metrics>div{background:var(--panel);padding:8px 11px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.flow-metrics span{font-size:10px;color:var(--muted)}
.flow-metrics strong{font-size:18px;font-weight:700}
.flow-metrics p{grid-column:1/-1;background:#17212b;color:#d7ad79;margin:0;padding:5px 10px;font-size:10px}
.flow-table-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex:0 0 auto;font-size:12px}
.flow-table-head span{font-size:10px;color:#d7ad79;text-align:right}
.flow-table-wrap{min-height:130px;flex:1;overflow:auto;border:1px solid var(--line);border-radius:6px;background:var(--panel);scrollbar-color:#47616c transparent}
.flow-table-wrap table{border-collapse:collapse;width:100%;min-width:1080px;font-size:10px;table-layout:auto}
.flow-table-wrap th,.flow-table-wrap td{text-align:left;border-bottom:1px solid #263541;padding:9px 8px;white-space:nowrap}
.flow-table-wrap th{position:sticky;top:0;z-index:1;background:#1b2934;color:#a9bac5;font-size:9px;letter-spacing:.07em;text-transform:uppercase}
#flow-empty{position:sticky;left:0;width:min(470px,calc(100vw - 300px));min-width:260px;padding:22px 12px;white-space:normal;color:var(--ink)}
#flow-empty p{font-size:11px;line-height:1.5;color:var(--muted);margin:8px 0 0}
#flow-empty a{color:var(--green)}
#flow-gex-panel{flex:1;min-height:0;overflow:auto;display:flex;align-items:flex-start}
.flow-gex-state{max-width:680px;border:1px solid var(--line);background:var(--panel);border-radius:7px;padding:24px}
.flow-gex-state .eyebrow{color:#e9bf78;font-size:10px;letter-spacing:.12em}
.flow-gex-state h2{font-size:19px;margin:4px 0 12px}
.flow-gex-state p,.flow-gex-state li{font-size:12px;line-height:1.5;color:var(--muted)}
.flow-gex-state ul{margin:14px 0;padding-left:18px}
.flow-footer{flex:0 0 auto;color:var(--muted);border-top:1px solid var(--line);padding-top:7px;font-size:10px;line-height:1.3}
@media(max-width:850px){body.flow-mode main{height:calc(100dvh - 64px)}.flow-monitor{padding:10px;gap:7px}.flow-heading h1{font-size:18px}.flow-heading p:not(.eyebrow){max-width:240px}.flow-source{max-width:145px}.flow-source span{display:none}#flow-filters-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:44px}.flow-filters{position:absolute;top:48px;left:0;right:0;z-index:25;grid-template-columns:repeat(2,minmax(0,1fr));max-height:min(40vh,240px);overflow:auto;padding:10px;background:var(--panel);border:1px solid var(--line);border-radius:6px;box-shadow:0 12px 25px #0008}.flow-filters:not(.open){display:none}.flow-symbols button:nth-of-type(n+5){display:none}.flow-symbols button{min-width:39px;min-height:44px}.flow-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.flow-metrics>div{padding:6px}.flow-metrics strong{font-size:15px}#flow-empty{width:300px;padding:8px 6px}#flow-empty p{font-size:10px;line-height:1.3;margin:4px 0 0}.flow-gex-state{padding:16px}}
@media(max-width:500px){body.flow-mode main{height:calc(100dvh - 103px)}.flow-heading{align-items:start}.flow-heading p:not(.eyebrow){font-size:10px}.flow-source strong{font-size:8px;padding:4px}.flow-tabs button{min-height:44px}.flow-filters{max-height:180px;overflow:auto}.flow-footer{font-size:9px}}

/* Exchange-desk vocabulary, without claiming NYSE provenance or market direction. */
body.flow-mode{--tape-call:#67d4a7;--tape-put:#ef858d;--tape-blue:#87b5ed;--tape-amber:#edbd73}
.flow-monitor{gap:7px;padding:12px 16px;font-family:'Segoe UI',Arial,sans-serif}
.flow-heading{align-items:center;padding-bottom:8px;border-color:#344253}
.flow-heading .eyebrow{color:var(--tape-blue);font-family:Consolas,'Courier New',monospace;font-size:10px;letter-spacing:.16em}
.flow-heading h1{font-size:23px;font-weight:750;letter-spacing:-.025em}
.flow-heading p:not(.eyebrow){font-size:11px}
.flow-source strong{background:#17283b;border-color:#385979;border-radius:2px;color:#a8d0fa;font-family:Consolas,'Courier New',monospace;font-size:10px}
.flow-tape{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:28px;padding:4px 10px;background:#151d28;border:1px solid #2e3c4d;border-left:3px solid #638ebd;color:#a9bbcd;font:10px/1.2 Consolas,'Courier New',monospace;letter-spacing:.04em;white-space:nowrap;overflow:hidden;flex:0 0 auto}
.flow-tape-label{color:#e2edf7;font-weight:700}.flow-tape strong{color:#e2edf7;font-weight:700}
.flow-tabs{gap:0}.flow-tabs button{min-height:34px;border-bottom-width:2px;font:700 11px Consolas,'Courier New',monospace;text-transform:uppercase;letter-spacing:.07em}
.flow-tabs button[aria-selected="true"]{border-color:var(--tape-blue);color:#e6f0fc}
.flow-tabs button span{color:var(--tape-amber);text-transform:none;letter-spacing:0}
#flow-alerts-panel{gap:7px}
.flow-symbols button,#flow-filters-toggle{border-radius:2px;background:#1b2633;font-family:Consolas,'Courier New',monospace}
.flow-symbols button[aria-pressed="true"]{background:#2a4058;border-color:#658db6;color:#c7e0fb}
.flow-filters input,.flow-filters select{border-radius:2px;background:#151d27}
.flow-metrics{border-radius:2px}.flow-metrics>div{padding:7px 10px}.flow-metrics span{font-family:Consolas,'Courier New',monospace;text-transform:uppercase;letter-spacing:.04em}
.flow-metrics strong{font:700 17px Consolas,'Courier New',monospace}.flow-metrics #flow-call-premium{color:var(--tape-call)}.flow-metrics #flow-put-premium{color:var(--tape-put)}
.flow-metrics p{background:#1b2531;color:#e1ba83;font-family:Consolas,'Courier New',monospace}
.flow-table-head{font-family:Consolas,'Courier New',monospace;text-transform:uppercase;letter-spacing:.04em}
.flow-table-wrap{border-radius:2px;background:#151b23;scrollbar-color:#4b6076 #151b23}
.flow-table-wrap table{font:11px/1.25 Consolas,'Courier New',monospace}
.flow-table-wrap th,.flow-table-wrap td{padding:8px 8px;border-bottom:1px solid #2a3542}
.flow-table-wrap th{background:#243142;color:#b7cbe0;font-size:9px;letter-spacing:.09em}
.flow-table-wrap tbody tr:nth-child(even){background:#1b232d}.flow-table-wrap tbody tr:hover{background:#25354a}
.flow-table-wrap td:nth-child(2){color:#dfeefe;font-weight:700}.flow-row-call td:nth-child(3){color:var(--tape-call);font-weight:700}.flow-row-put td:nth-child(3){color:var(--tape-put);font-weight:700}
.flow-row-call td:nth-child(10){color:#8ce1bc}.flow-row-put td:nth-child(10){color:#f3a2a7}
.flow-gex-state{border-radius:2px;border-top:2px solid #658db6;background:#1b222b}
@media(max-width:850px){.flow-monitor{padding:8px;gap:5px}.flow-tape{font-size:9px;padding:4px 6px;min-height:25px}.flow-tape span:nth-child(2){display:none}.flow-tabs button{min-height:40px}.flow-metrics>div{padding:5px 7px}.flow-metrics strong{font-size:14px}.flow-filters{top:48px}.flow-table-wrap table{font-size:10px}}
@media(max-width:500px){.flow-tape{font-size:8px}.flow-tape-label{font-size:0}.flow-tape-label::after{content:'ALERT TAPE';font-size:8px}.flow-heading h1{font-size:17px}.flow-heading p:not(.eyebrow){font-size:9px}.flow-source strong{font-size:8px}.flow-footer{font-size:9px}}

/* OI level board: as-of observations, not dealer-position assertions. */
.flow-gex-state{width:100%;max-width:850px;padding:18px;min-height:0}
.flow-gex-header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.flow-gex-header h2{margin:2px 0 4px}
.flow-gex-header .eyebrow{margin:0;color:var(--tape-blue)}
.flow-gex-badge{white-space:nowrap;font:700 10px Consolas,monospace;color:#e8bd77;border:1px solid #806446;background:#302a24;padding:7px}
.flow-gex-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border:1px solid var(--line);background:var(--line);margin:14px 0 8px}
.flow-gex-grid>div{display:flex;flex-direction:column;gap:8px;min-width:0;padding:14px;background:#151d28}
.flow-gex-grid span{text-transform:uppercase;letter-spacing:.05em;font:10px Consolas,monospace;color:#aebed1}
.flow-gex-grid strong{font:700 clamp(18px,2vw,27px) Consolas,monospace;color:#ebf3fb;overflow-wrap:anywhere}
.flow-gex-grid>div:first-child strong{color:var(--tape-call)}
.flow-gex-grid>div:nth-child(2) strong{color:var(--tape-put)}
.flow-gex-state #flow-gex-source,.flow-gex-state #flow-gex-nearby{margin:7px 0;color:#d0dff0;font:11px/1.4 Consolas,monospace}
.flow-gex-state .flow-gex-notice{margin:10px 0 0;font-size:11px;line-height:1.45}
.flow-gex-notice strong{color:#edc587}
@media(max-width:600px){.flow-gex-state{padding:11px}.flow-gex-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin:8px 0}.flow-gex-grid>div{padding:9px;gap:3px}.flow-gex-grid strong{font-size:21px}.flow-gex-state .flow-gex-notice{font-size:10px;margin-top:7px}.flow-gex-header h2{font-size:17px}}
.flow-gex-header>div:first-child{min-width:0}
.flow-gex-toolbar{min-width:0}
.flow-gex-toolbar label{display:flex;align-items:center;gap:5px;color:var(--muted);font:10px Consolas,monospace}
.flow-gex-toolbar select,.flow-gex-toolbar input,.flow-gex-toolbar button{min-height:34px;border:1px solid #4c6886;background:#152335;color:#eaf2fb;border-radius:2px;font:11px Consolas,monospace}
.flow-gex-toolbar select{width:105px;padding:3px}
.flow-gex-toolbar form{display:flex;align-items:center;gap:3px}
.flow-gex-toolbar form[hidden]{display:none!important}
.flow-gex-toolbar input{width:80px;padding:3px 6px}
.flow-gex-toolbar button{min-width:32px;padding:3px 5px;cursor:pointer}
.flow-gex-toolbar:has(form:not([hidden])) label{display:none}
.flow-gex-header:has(form:not([hidden])) .flow-gex-badge{display:none}
@media(max-width:600px){.flow-gex-header{gap:4px}.flow-gex-header .eyebrow{font-size:9px;letter-spacing:.05em}.flow-gex-header h2{font-size:16px}.flow-gex-toolbar label{font-size:0}.flow-gex-toolbar select{width:82px;min-height:44px;font-size:10px}.flow-gex-badge{font-size:9px;padding:5px 4px}.flow-gex-state #flow-gex-source,.flow-gex-state #flow-gex-nearby{margin:4px 0}.flow-gex-grid{margin:6px 0 5px}.flow-gex-state .flow-gex-notice{margin-top:4px}}
