:root{color-scheme:dark;--font-ui: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;--font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--color-page: #080808;--color-surface: #0b0b0b;--color-surface-deep: #07090c;--color-table-head: #080a0e;--color-brief-head: #0d1017;--color-surface-raised: #161622;--color-border: #12121c;--color-border-subtle: #111120;--color-border-strong: #1a1a2e;--color-text: #bfbfbf;--color-soft: #b3b3b3;--color-muted: #888888;--color-faint: #555555;--color-muted-fill: rgba(113, 122, 150, .06);--color-grid-line: rgba(113, 122, 150, .14);--color-accent: #2a3060;--color-accent-strong: #2a5acc;--color-positive: #14bc60;--color-negative: #f26666;--color-warning: #b67b24;--color-impact-high: #ff5f7d;--color-impact-med: #facc15;--color-impact-low: #d1d5db;--space-1: 4px;--space-2: 6px;--space-3: 8px;--space-4: 12px;--space-5: 16px;--space-6: 20px;--space-7: 24px;--radius-card: 10px;--radius-control: 5px;--page-pad-x: 10px;--page-pad-y: 8px;--page-pad-top: 32px;--header-pad-x: 4px;--header-pad-y: 0px;--header-gap-to-content: 8px;--section-gap: 22px;--card-pad-x: 20px;--card-pad-y: 12px;--card-gap: 12px;--chart-axis-pad-top: 6px;--chart-card-height: 70vh;--compact-chart-card-height: 318px;--calendar-height: 80vh;--macro-card-height: calc(100vh - 104px) ;--sentiment-table-height: calc(82vh - 120px) ;--control-h: 27px;--control-pad-x: 12px;--control-gap: 6px;--table-head-h: 36px;--table-row-h: 38px;--shadow-card: 0 0 0 1px rgba(255, 255, 255, .02), 0 12px 34px rgba(0, 0, 0, .18)}:root[data-theme=light]{color-scheme:light;--color-page: #f4f6fa;--color-surface: #ffffff;--color-surface-deep: #ffffff;--color-table-head: #eef1f7;--color-brief-head: #e8eaf0;--color-surface-raised: #eef1f7;--color-border: #dbe1ec;--color-border-subtle: #e7ebf2;--color-border-strong: #c5cfdf;--color-text: #111827;--color-soft: #273244;--color-muted: #4b5565;--color-faint: #8a94a6;--color-muted-fill: rgba(138, 148, 166, .1);--color-grid-line: rgba(138, 148, 166, .18);--color-accent: #3157d6;--color-accent-strong: #3157d6;--color-positive: #059669;--color-negative: #dc2626;--color-warning: #b7791f;--color-impact-high: #dc2626;--color-impact-med: #ca8a04;--color-impact-low: #64748b;--shadow-card: 0 0 0 1px rgba(17, 24, 39, .02), 0 12px 28px rgba(17, 24, 39, .08)}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;margin:0}body{background:var(--color-page);color:var(--color-text);font-family:var(--font-ui);font-size:13px;overflow:hidden}html.theme-switching :where(body,.app,.top-nav,.chart-card,.chart-surface,.control-btn,.topbar-icon-btn,.nav-tab,.terminal-table th,.terminal-table td){transition:background-color .14s ease,border-color .14s ease,color .14s ease,stroke .14s ease}button,input,select{font:inherit}button{cursor:pointer}.app{width:100vw;height:100vh;display:flex;flex-direction:column;background:var(--color-page)}.app-main{flex:1;min-height:0;padding:var(--page-pad-top) var(--page-pad-x) var(--page-pad-y);overflow:hidden}.page{width:100%;height:100%;min-height:0;display:flex;flex-direction:column}.page-stack{gap:14px;padding-right:2px}.scroll-y{overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(130,143,180,.35) transparent}.muted{color:var(--color-muted)}.top-nav{height:52px;flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 10px;padding:0 12px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface)}.top-nav-right{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.nav-tabs{display:flex;align-items:center;gap:8px;min-width:0}.nav-tab{position:relative;height:36px;border:0;background:transparent;color:var(--color-faint);font-size:12px;padding:0 10px;font-weight:700;line-height:1;letter-spacing:.3px}.tab-btn-inner{display:inline-flex;align-items:center;gap:8px;transition:transform .12s ease}.nav-tab:active .tab-btn-inner{transform:scale(.97)}.nav-tab svg{width:16px;height:16px;flex:0 0 16px;opacity:1}.nav-tab:after{content:"";position:absolute;left:10px;right:10px;bottom:1px;height:1.5px;border-radius:2px;background:var(--color-accent-strong);opacity:0;transform:scaleX(.6);transition:opacity .18s ease,transform .18s ease}.nav-tab.is-active:after{opacity:1;transform:scaleX(1)}.nav-tab.is-active{color:var(--color-text)}.nav-tab:hover{color:var(--color-soft)}.topbar-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.topbar-icon-btn{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius-control);background:transparent;color:var(--color-faint);padding:0}.topbar-icon-btn:hover{border-color:var(--color-border-strong);color:var(--color-soft)}.topbar-icon-btn.is-active{background:var(--color-accent);color:#fff}.topbar-icon-btn:disabled{opacity:.38;cursor:default}.topbar-icon-btn:active{transform:scale(.93)}.topbar-icon-btn svg{width:18px;height:18px}.control-btn{height:var(--control-h);min-width:42px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:transparent;color:var(--color-muted);font-size:12px;padding:0 var(--control-pad-x);font-weight:700;line-height:1}.control-btn.is-active{background:var(--color-accent);color:#fff;border-color:var(--color-border)}.control-btn:hover{color:var(--color-soft);border-color:var(--color-border-strong)}.icon-control-btn{width:27px;min-width:27px;padding:0}.icon-control-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.select-control{height:var(--control-h);min-width:120px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-deep);color:var(--color-muted);font-size:12px;padding:0 12px;font-weight:700}.select-control:focus{outline:1px solid var(--color-accent-strong);outline-offset:2px}.modal-overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:24px;background:#0000009e}.modal-panel{width:min(600px,100%);max-height:min(760px,calc(100vh - 48px));display:flex;flex-direction:column;gap:14px;padding:20px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card)}.modal-panel-wide{width:min(1180px,100%)}.modal-panel-fullscreen{width:calc(100vw - 32px);height:calc(100vh - 32px);max-height:calc(100vh - 32px)}.modal-header,.modal-footer,.pair-modal-actions{display:flex;align-items:center;gap:8px}.modal-header{justify-content:space-between}.modal-header h2{margin:0;color:var(--color-text);font-size:20px;line-height:1}.modal-close-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius-control);background:transparent;color:var(--color-muted);padding:0}.modal-close-btn svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.modal-body{min-height:0;display:flex;flex-direction:column;gap:14px}.modal-footer{justify-content:flex-end}.modal-action-btn{min-width:110px}.pair-modal-actions{flex-wrap:wrap}.pair-grid{min-height:0;max-height:min(440px,calc(100vh - 250px));display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;overflow:auto;padding-right:2px}.pair-chip{height:30px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-deep);color:var(--color-muted);padding:0 10px;font-size:12px;font-weight:900;text-align:left}.pair-chip:hover{border-color:var(--color-border-strong);color:var(--color-soft)}.pair-chip.is-active{border-color:var(--color-accent-strong);background:var(--color-accent);color:#fff}.pair-chip-dot{width:7px;height:7px;border-radius:999px;background:currentColor;opacity:.75}.page-header{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:var(--header-pad-y) var(--header-pad-x);margin-bottom:var(--header-gap-to-content);background:transparent;border:0}.page-title-row{min-width:0;display:flex;align-items:center;gap:12px}.page-title{margin:0;color:var(--color-text);font-size:20px;line-height:1;letter-spacing:0;font-weight:700}.status-text{color:var(--color-faint);font-size:12px;font-weight:700;white-space:nowrap}.toolbar{display:flex;align-items:center;justify-content:flex-end;gap:var(--control-gap);min-width:0}.chart-card,.panel{min-height:0;display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);overflow:hidden}.chart-card{padding:var(--card-pad-y) var(--card-pad-x);gap:var(--card-gap);min-height:var(--chart-card-height)}.chart-card.is-compact{height:var(--compact-chart-card-height);min-height:var(--compact-chart-card-height)}.chart-card.is-axis{gap:calc(var(--card-gap) - var(--chart-axis-pad-top))}.card-header{display:grid;grid-template-columns:minmax(260px,1fr) auto;align-items:center;gap:16px;flex:0 0 auto}.card-title{margin:0;color:var(--color-text);font-size:20px;line-height:1.18;letter-spacing:0;font-weight:700}.card-body{flex:1;min-height:0}.chart-surface{position:relative;width:100%;height:100%;min-height:0;border:1px solid var(--color-border);background:var(--color-surface-deep);overflow:hidden}.multi-line-chart{display:block;width:100%;height:100%}.multi-line-chart path{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.candlestick-chart{display:block;width:100%;height:100%}.candle-wick,.candle-body{vector-effect:non-scaling-stroke}.candle-shape.is-up{color:var(--color-muted)}.candle-shape.is-down{color:var(--color-negative)}.candle-wick{stroke:currentColor;stroke-width:1}.candle-body{fill:var(--color-surface-deep);stroke:currentColor;stroke-width:1}.candle-shape.is-down .candle-body{fill:var(--color-negative)}.chart-grid-line{stroke:var(--color-grid-line);stroke-width:1;vector-effect:non-scaling-stroke}.chart-grid-line.is-mid{stroke-dasharray:5 5}.chart-axis-label{fill:var(--color-faint);font-size:9px;font-weight:800;text-anchor:end;dominant-baseline:middle;letter-spacing:0;pointer-events:none;paint-order:stroke;stroke:var(--color-surface-deep);stroke-width:2px}.chart-x-axis-label{fill:var(--color-faint);font-size:9px;font-weight:800;dominant-baseline:text-after-edge;letter-spacing:0;pointer-events:none;paint-order:stroke;stroke:var(--color-surface-deep);stroke-width:2px}.chart-window-controls{position:absolute;left:10px;bottom:10px;z-index:5;display:inline-flex;align-items:center;gap:5px;padding:4px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:#090a0eb8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto}.chart-window-btn{height:23px;min-width:23px;border:1px solid transparent;border-radius:var(--radius-control);background:transparent;color:var(--color-faint);display:inline-flex;align-items:center;justify-content:center;padding:0 7px;font:inherit;font-size:10px;font-weight:900;cursor:pointer}.chart-window-btn svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.chart-window-btn:hover,.chart-window-btn.is-active{color:var(--color-text);background:#717a9624;border-color:var(--color-border)}.chart-window-range{color:var(--color-faint);font-size:10px;font-weight:900;padding:0 5px;white-space:nowrap}.chart-hover-line{stroke:var(--color-muted);stroke-width:1;stroke-dasharray:4 4;opacity:.38;pointer-events:none;vector-effect:non-scaling-stroke}.chart-end-label{pointer-events:none}.chart-end-label-leader{stroke-width:1;opacity:.72;vector-effect:non-scaling-stroke}.chart-end-label-dot{stroke:var(--color-surface-deep);stroke-width:1.5;vector-effect:non-scaling-stroke}.chart-end-label-bg{opacity:.95}.chart-end-label-text{fill:var(--color-chart-label-text);font-size:9px;font-weight:900;text-anchor:middle;dominant-baseline:middle;paint-order:stroke;stroke:#0000002e;stroke-width:.6px;letter-spacing:0}.chart-tooltip{position:absolute;top:42px;z-index:4;min-width:132px;max-width:190px;transform:translate(8px);border:1px solid var(--color-border-strong);border-radius:var(--radius-card);background:#0e0f15f0;box-shadow:var(--shadow-card);color:var(--color-muted);padding:8px 9px;font-size:10px;line-height:1.25;pointer-events:none}.chart-tooltip.align-right{transform:translate(calc(-100% - 8px))}.chart-tooltip-time{color:var(--color-faint);font-weight:900;margin-bottom:6px;white-space:nowrap}.chart-tooltip-row{display:flex;align-items:center;justify-content:space-between;gap:12px;white-space:nowrap}.chart-tooltip-name{display:inline-flex;align-items:center;gap:6px;min-width:0;overflow:hidden;text-overflow:ellipsis}.chart-tooltip-dot{width:7px;height:7px;border-radius:999px;flex:0 0 auto}.chart-tooltip-dot.is-long-dot{background:var(--color-positive)}.chart-tooltip-dot.is-short-dot{background:var(--color-negative)}.chart-tooltip-row strong{color:var(--color-text);font-weight:900}.chart-empty{height:100%;display:grid;place-items:center;color:var(--color-faint);font-weight:900}.legend-row{display:flex;align-items:center;justify-content:flex-start;gap:16px;flex-wrap:wrap}.chart-overlay-legend{position:absolute;top:12px;left:20px;z-index:2;pointer-events:none}.legend-item{display:inline-flex;align-items:center;gap:6px;color:var(--color-muted);font-weight:900}.legend-dot{width:10px;height:10px;border-radius:999px;background:var(--color-muted)}.legend-dot.is-EUR{background:#2586c7}.legend-dot.is-USD{background:#c94e67}.legend-dot.is-GBP{background:#2f9133}.legend-dot.is-AUD{background:#8d3747}.legend-dot.is-CHF{background:#a76e19}.legend-dot.is-JPY{background:#858585}.legend-dot.is-CAD{background:#1d6f9d}.legend-dot.is-NZD{background:#1f641f}.legend-dot.is-long{background:var(--color-positive)}.legend-dot.is-short{background:var(--color-negative)}.bar-long{fill:#2fa66ad1}.bar-short{fill:#c94e67d1}.table-link-btn{border:0;background:transparent;color:var(--color-soft);font:inherit;font-weight:900;padding:0;cursor:pointer}.table-link-btn:hover{color:var(--color-accent-strong)}.table-pie{width:24px;height:24px;display:inline-block;border-radius:999px;background:radial-gradient(circle at center,var(--color-surface) 0 42%,transparent 43%),conic-gradient(var(--color-positive) 0 var(--table-pie-long-pct),var(--color-negative) var(--table-pie-long-pct) 100%);border:1px solid var(--color-border-strong);box-shadow:inset 0 0 0 1px #ffffff08;vertical-align:middle}.table-sparkline{width:92px;height:26px;display:block;margin:0 auto}.table-sparkline line{stroke:#ffffff14}.table-sparkline path{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.dashboard-grid{display:grid;grid-template-columns:minmax(360px,.8fr) minmax(520px,1.2fr);gap:14px}.sentiment-table-card{height:var(--sentiment-table-height);max-height:var(--sentiment-table-height);min-height:0;padding:0;gap:0}.sentiment-table-card .table-section .terminal-table{min-width:1340px}.sent-history-shell{margin-top:calc(var(--section-gap) - 14px);display:flex;flex-direction:column;min-height:0}.sent-history-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--section-gap);align-items:stretch}.sent-history-main{grid-column:1 / -1}.cot-table-card{height:var(--compact-chart-card-height);min-height:var(--compact-chart-card-height);padding:0;gap:0}.cot-table-card .table-section .terminal-table{min-width:1160px}.calendar-table-card{height:var(--calendar-height);min-height:var(--calendar-height);flex:0 0 auto;padding:0;gap:0}.calendar-table-card .table-section .terminal-table{min-width:980px}.calendar-impact-high{color:var(--color-impact-high)}.calendar-impact-med{color:var(--color-impact-med)}.calendar-impact-low{color:var(--color-impact-low)}.calendar-event-link{max-width:100%;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-detail-modal{gap:16px}.calendar-detail-grid{min-height:0;display:grid;grid-template-columns:minmax(320px,.9fr) minmax(460px,1.1fr);gap:var(--section-gap)}.calendar-detail-main,.calendar-detail-chart-card,.calendar-history-table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-deep)}.calendar-detail-main{display:flex;flex-direction:column;gap:14px;padding:16px}.calendar-detail-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.calendar-detail-title-row h3{margin:0;color:var(--color-soft);font-size:18px;line-height:1.25}.calendar-detail-title-row p{margin:5px 0 0;color:var(--color-muted);font-size:12px;font-weight:800}.calendar-impact-badge{min-width:46px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-control);border:1px solid var(--color-border);background:var(--color-surface);font-size:11px;font-weight:900}.calendar-impact-badge.is-high{color:var(--color-impact-high)}.calendar-impact-badge.is-med{color:var(--color-impact-med)}.calendar-impact-badge.is-low{color:var(--color-impact-low)}.calendar-detail-meta,.calendar-detail-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.calendar-detail-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-detail-stat{min-height:58px;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface)}.calendar-detail-stat span{color:var(--color-muted);font-size:10px;font-weight:900;text-transform:uppercase}.calendar-detail-stat strong{color:var(--color-soft);font-size:13px;line-height:1.2}.calendar-detail-stat strong.is-positive{color:var(--color-positive)}.calendar-detail-stat strong.is-negative{color:var(--color-negative)}.calendar-detail-link{color:var(--color-accent-strong);font-size:12px;font-weight:900;text-decoration:none}.calendar-detail-chart-card{min-height:330px;padding:12px}.calendar-detail-empty{height:100%;min-height:280px;display:grid;place-items:center;color:var(--color-muted);font-size:12px;font-weight:900;text-align:center}.calendar-history-table-wrap{min-height:0;max-height:260px;overflow:auto}.calendar-history-table{min-width:620px}.ratio-pill{width:86px;height:8px;display:inline-flex;overflow:hidden;border-radius:999px;background:var(--color-grid-line);vertical-align:middle}.ratio-fill{height:100%;display:block}.ratio-long{background:#2fa66adb}.ratio-short{background:#c94e67db}.ratio-bar{display:flex;overflow:hidden}.ratio-bar-fill{min-width:0;display:block}.ratio-pill.ratio-bar{display:inline-flex}.overview-summary{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);gap:14px}.summary-panel{min-height:230px;display:flex;flex-direction:column;justify-content:space-between;gap:16px;padding:18px 20px;border:1px solid var(--color-border);background:var(--color-surface)}.summary-eyebrow{display:flex;align-items:center;gap:8px;color:var(--color-faint);font-size:11px;font-weight:900;text-transform:uppercase}.summary-dot{width:7px;height:7px;border-radius:999px;background:var(--color-accent-strong)}.summary-headline{color:var(--color-text);font-size:28px;line-height:1.2;font-weight:900}.summary-sub{max-width:840px;color:var(--color-muted);line-height:1.55;font-weight:700}.risk-sentiment-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px;color:var(--color-muted);font-weight:800}.risk-badge{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-muted)}.risk-badge.is-positive{color:var(--color-positive)}.risk-badge.is-negative{color:var(--color-negative)}.summary-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding-top:14px;border-top:1px solid var(--color-border)}.summary-stat{display:grid;gap:5px}.summary-stat span{color:var(--color-faint);font-size:10px;font-weight:900;text-transform:uppercase}.summary-stat strong{color:var(--color-text);font-size:16px}.session-list{display:flex;flex-direction:column;gap:10px}.session-row{display:grid;grid-template-columns:38px 78px minmax(0,1fr) 64px;align-items:center;gap:10px;color:var(--color-muted);font-weight:900}.session-code{color:var(--color-faint);font-size:10px}.session-track{height:4px;background:#717a9629}.session-fill{width:0%;height:100%;background:var(--color-accent-strong)}.session-fill.session-p-1{width:10%}.session-fill.session-p-2{width:20%}.session-fill.session-p-3{width:30%}.session-fill.session-p-4{width:40%}.session-fill.session-p-5{width:50%}.session-fill.session-p-6{width:60%}.session-fill.session-p-7{width:70%}.session-fill.session-p-8{width:80%}.session-fill.session-p-9{width:90%}.session-fill.session-p-10{width:100%}.session-state{color:var(--color-faint);font-size:10px;text-align:right}.session-row.is-open .session-state{color:var(--color-positive)}.overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;min-height:430px}.overview-card{min-height:205px;display:grid;align-content:space-between;gap:12px;padding:16px;border:1px solid var(--color-border);background:var(--color-surface-deep);color:inherit;text-align:left;overflow:hidden;cursor:pointer;transition:border-color .14s ease,background .14s ease}.overview-card:hover,.overview-card:focus-visible{border-color:var(--color-border-strong);background:var(--color-surface)}.overview-card:focus-visible{outline:1px solid var(--color-accent-strong);outline-offset:2px}.overview-card-title{color:var(--color-text);font-size:18px;font-weight:900;text-transform:uppercase}.overview-card-head,.overview-card-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.overview-card-badge{min-width:42px;height:20px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-faint);font-size:10px;font-weight:900}.overview-card-value{color:var(--metric-color, var(--color-text));font-size:42px;line-height:1;font-weight:900;font-variant-numeric:tabular-nums}.overview-card-meta{color:var(--color-muted);line-height:1.45;font-weight:700}.overview-gauge{position:relative;height:5px;background:#717a9629;overflow:hidden}.overview-gauge-mid{position:absolute;top:-2px;bottom:-2px;left:50%;width:1px;background:#ffffff38}.overview-gauge-fill{position:absolute;top:0;bottom:0;background:var(--metric-color, var(--color-muted))}.overview-gauge-fill.is-right{left:50%}.overview-gauge-fill.is-left{right:50%}.overview-card-foot{color:var(--color-faint);font-weight:800}.overview-card-foot strong{color:var(--metric-color, var(--color-muted))}.overview-card.is-positive{--metric-color: var(--color-positive)}.overview-card.is-negative{--metric-color: var(--color-negative)}.overview-focus-modal{display:flex;flex-direction:column;gap:14px}.overview-focus-grid,.overview-focus-columns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.overview-focus-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-focus-metric{min-height:74px;display:grid;align-content:space-between;gap:8px;padding:12px;border:1px solid var(--color-border);background:var(--color-surface-deep)}.overview-focus-metric span,.overview-focus-section h3{color:var(--color-muted);font-size:11px;font-weight:900;text-transform:uppercase}.overview-focus-metric strong{color:var(--metric-color, var(--color-text));font-size:24px;line-height:1;font-weight:900;font-variant-numeric:tabular-nums}.overview-focus-metric.is-positive{--metric-color: var(--color-positive)}.overview-focus-metric.is-negative{--metric-color: var(--color-negative)}.overview-focus-chart,.overview-focus-section{min-height:0;border:1px solid var(--color-border);background:var(--color-surface-deep)}.overview-focus-chart{height:260px}.overview-focus-section{overflow:hidden}.overview-focus-section h3{min-height:36px;display:flex;align-items:center;margin:0;padding:0 12px;border-bottom:1px solid var(--color-border)}.overview-focus-section .table-shell{max-height:250px;overflow:auto}.overview-signal-list{display:grid;gap:8px;padding:12px}.overview-signal-row{display:grid;grid-template-columns:minmax(0,1fr) 54px 44px;align-items:center;gap:10px;min-height:28px;color:var(--color-muted);font-size:12px}.overview-signal-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overview-signal-row strong,.overview-signal-row em{color:var(--color-text);font-style:normal;font-weight:900;font-variant-numeric:tabular-nums;text-align:right}.overview-signal-row em{color:var(--color-faint)}.overview-weights-panel{display:grid;gap:14px}.overview-weights-total{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:0 12px;border:1px solid var(--color-border);background:var(--color-surface-deep);color:var(--color-muted);font-size:12px;font-weight:900;text-transform:uppercase}.overview-weights-total strong{color:var(--color-negative);font-size:18px;font-variant-numeric:tabular-nums}.overview-weights-total.is-valid strong{color:var(--color-positive)}.overview-weight-row{display:grid;gap:8px}.overview-weight-row span{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--color-muted);font-size:12px}.overview-weight-row strong{color:var(--color-muted);font-weight:800}.overview-weight-row em{color:var(--color-text);font-style:normal;font-weight:900;font-variant-numeric:tabular-nums}.overview-weight-row input{width:100%;accent-color:var(--color-accent)}.overview-widget-shell{display:flex;flex-direction:column;gap:var(--header-gap-to-content)}.overview-widget-head{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:var(--header-pad-y) var(--header-pad-x)}.overview-widget-title{margin:0;color:var(--color-text);font-size:20px;line-height:1.18;font-weight:700}.overview-widget-actions{position:relative}.overview-add-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:10;min-width:230px;display:grid;gap:4px;padding:6px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-deep);box-shadow:var(--shadow-card)}.overview-add-option{min-height:34px;border:0;border-radius:var(--radius-control);background:transparent;color:var(--color-muted);padding:0 10px;text-align:left;font-weight:900}.overview-add-option:hover{background:#717a961f;color:var(--color-text)}.overview-widget-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:74px;gap:14px;align-items:stretch}.overview-widget{position:relative;grid-column:span var(--widget-w, 4);grid-row:span var(--widget-h, 3);min-height:0;display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);overflow:hidden}.overview-widget-shell.editing .overview-widget{border-color:var(--color-border-strong)}.overview-widget.is-moving{opacity:.72;cursor:grabbing}.overview-widget-body{flex:1;min-height:0;padding:12px}.overview-widget[data-widget-type=economicCalendar] .overview-widget-body{padding:0}.overview-widget-tools{position:absolute;top:8px;right:8px;z-index:3}.overview-widget-tool{width:24px;height:24px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-deep);color:var(--color-muted);font-weight:900;line-height:1}.overview-widget-tool svg,.overview-widget-move svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.overview-widget-move{position:absolute;left:8px;top:8px;z-index:3;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-deep);color:var(--color-muted);padding:0;cursor:grab}.overview-widget-resize{position:absolute;right:0;bottom:0;z-index:3;width:18px;height:18px;cursor:nwse-resize}.overview-widget-resize:after{content:"";position:absolute;right:4px;bottom:4px;width:8px;height:8px;border-right:1px solid var(--color-muted);border-bottom:1px solid var(--color-muted)}.overview-widget-empty{height:100%;display:grid;place-items:center;color:var(--color-faint);font-weight:900}.ov-widget-title{color:var(--color-text);font-size:13px;font-weight:900;white-space:nowrap}.ov-widget-toolbar{min-height:27px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;flex:0 0 auto}.ov-widget-toolbar .toolbar{gap:4px;flex-wrap:wrap}.ov-widget-toolbar .control-btn{height:24px;min-width:36px;font-size:10px;padding:0 8px}.ov-widget-toolbar .icon-control-btn{width:24px;min-width:24px;padding:0}.ov-widget-bars{height:100%;min-height:0;display:flex;flex-direction:column;gap:7px;overflow:auto}.ov-widget-bar-row{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:10px}.ov-widget-bar-label{color:var(--color-muted);font-weight:900}.ov-widget-bar-track{height:18px;display:flex;overflow:hidden;background:var(--color-grid-line)}.ov-widget-bar-short,.ov-widget-bar-long{min-width:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:10px;font-weight:900;overflow:hidden}.ov-widget-bar-short{background:#c94e67e0}.ov-widget-bar-long{background:#2fa66ae0}.ov-widget-chart,.ov-widget-heatmap{height:100%;min-height:0;display:flex;flex-direction:column;gap:8px}.ov-widget-chart .chart-surface,.ov-widget-heatmap .heatmap-shell{flex:1}.ov-widget-chart .chart-overlay-legend{top:8px;left:12px;gap:9px}.ov-widget-chart .legend-item{font-size:10px}.ov-widget-performance-row{display:flex;align-items:center;gap:8px;overflow:hidden;color:var(--color-muted);font-size:10px;font-weight:900;white-space:nowrap}.ov-widget-calendar{height:100%;min-height:0}.ov-widget-calendar .table-shell{height:100%;border-radius:0}.ov-widget-calendar .terminal-table{min-width:760px}.ov-widget-calendar tbody{display:block;height:calc(100% - var(--table-head-h));overflow:auto}.ov-widget-calendar thead,.ov-widget-calendar tbody tr{display:table;width:100%;table-layout:fixed}.overview-widget-option{min-height:120px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-muted);font-weight:900;text-align:left;padding:16px}.overview-widget-option:hover{border-color:var(--color-border-strong);color:var(--color-text)}.table-shell{width:100%;min-height:0;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);overflow:hidden}.table-section{flex:1;min-height:0}.table-section .table-shell{height:100%}.table-section .terminal-table{min-width:980px}.table-section tbody{display:block;height:calc(100% - var(--table-head-h));overflow:auto}.table-section thead,.table-section tbody tr{display:table;width:100%;table-layout:fixed}.terminal-table{width:100%;border-collapse:collapse;table-layout:fixed}.terminal-table th{height:var(--table-head-h);background:var(--color-table-head);color:var(--color-muted);border-bottom:1px solid var(--color-border);font-size:11px;text-align:center;font-weight:900}.terminal-table td{height:var(--table-row-h);padding:0 12px;border-bottom:1px solid var(--color-border);color:var(--color-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;font-weight:700}.terminal-table th.text-left,.terminal-table td.text-left{text-align:left}.metric-positive{color:var(--color-positive)}.metric-negative{color:var(--color-negative)}.metric-muted{color:var(--color-faint)}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.metric-tile{min-height:112px;display:flex;flex-direction:column;justify-content:center;gap:8px;padding:12px;border:1px solid var(--color-border);background:var(--color-surface-deep)}.metric-tile-value{color:var(--metric-color, var(--color-muted));font-size:26px;line-height:1;font-weight:900}.metric-tile-label{display:flex;align-items:baseline;justify-content:space-between;gap:8px;color:var(--color-muted);font-weight:900}.metric-tile-label span{color:var(--color-faint);font-size:11px}.metric-tile.is-positive{--metric-color: var(--color-positive)}.metric-tile.is-negative{--metric-color: var(--color-negative)}.macro-analyst-card{height:var(--macro-card-height);min-height:var(--macro-card-height)}.macro-brief-panel{height:100%;min-height:0}.macro-brief-viewer{height:100%;min-height:0;display:flex;flex-direction:column;gap:10px}.macro-brief-actions{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 2px}.macro-brief-actions .toolbar{gap:5px}.macro-brief-meta{min-width:0;color:var(--color-faint);font-size:11px;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.macro-brief-copy-error{border:1px solid rgba(201,78,103,.5);border-radius:var(--radius-control);background:#c94e6714;color:var(--color-negative);padding:7px 10px;font-size:11px;font-weight:900}.macro-settings-head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--color-muted);font-weight:900}.macro-settings-head span{color:var(--color-faint);font-size:11px}.macro-history-only{height:100%;min-height:0;overflow:auto}.source-list,.history-list{display:flex;flex-direction:column;gap:8px;min-height:0;overflow:auto}.macro-source-list{max-height:min(460px,calc(100vh - 280px))}.macro-custom-source{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.macro-custom-input{min-width:0;height:var(--control-h);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-deep);color:var(--color-muted);padding:0 10px;font-size:12px;font-weight:700}.macro-custom-input:focus{outline:1px solid var(--color-accent-strong);outline-offset:2px}.macro-custom-input.is-invalid{border-color:var(--color-negative);color:var(--color-negative)}.macro-settings-help-text{color:var(--color-faint);font-size:11px;font-weight:800}.source-item,.history-item{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--color-border);background:var(--color-surface-deep);color:var(--color-muted);text-align:left;font-weight:800}.history-item{grid-template-columns:minmax(0,1fr) auto;align-items:center}.history-select{min-width:0;display:grid;gap:4px;border:0;background:transparent;color:inherit;padding:0;text-align:left;font-weight:inherit}.source-item{grid-template-columns:auto 1fr;align-items:center}.source-item input{width:16px;height:16px}.source-copy{display:grid;gap:3px}.source-copy span,.history-item span{color:var(--color-faint);font-size:11px}.history-item.is-active{border-color:var(--color-border-strong);color:var(--color-text)}.brief-content{flex:1;min-height:0;overflow:auto;padding:22px 26px;border:1px solid var(--color-border);background:var(--color-surface-deep);color:var(--color-muted);line-height:1.72}.macro-brief-viewer.is-light .brief-content{border-color:#d3d3d3;background:#f5f5f0;color:#333}.macro-brief-viewer.is-light .brief-content h1{border-color:#bbb;background:#e8eaf0;color:#000}.macro-brief-viewer.is-light .brief-content h2{color:#1f2d48}.macro-brief-viewer.is-light .brief-content h3,.macro-brief-viewer.is-light .brief-content p,.macro-brief-viewer.is-light .brief-content li{color:#333}.macro-brief-viewer.is-light .brief-content strong{color:#000}.brief-content h1{margin:0 0 20px;padding:12px 14px;border:1px solid var(--color-border);background:var(--color-brief-head);color:var(--color-text);font-size:20px;line-height:1.25}.brief-content h2{margin:24px 0 10px;color:var(--color-text);font-size:16px}.brief-content h3{margin:16px 0 6px;color:var(--color-muted);font-size:14px}.brief-content p{margin:0 0 10px}.brief-content ul{margin:0 0 12px;padding:0;list-style:none}.brief-content li{position:relative;margin:0 0 7px;padding-left:18px}.brief-content li:before{content:">";position:absolute;left:0;color:var(--color-accent-strong)}.brief-content strong{color:var(--color-text)}.heatmap-shell{width:100%;height:100%;min-height:0;overflow:auto;border:1px solid var(--color-border);background:var(--color-surface-deep)}.heatmap-table{width:100%;min-width:620px;border-collapse:collapse;table-layout:fixed}.heatmap-table th,.heatmap-table td{height:38px;border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);text-align:center;font-weight:900}.heatmap-table th{color:var(--color-muted);background:var(--color-table-head)}.heatmap-table td{color:var(--color-muted);background:transparent}.heatmap-table td.is-muted{color:var(--color-faint);background:var(--color-muted-fill)}.ci-mini-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.ci-mini-card{min-height:150px;display:flex;flex-direction:column;gap:10px;padding:14px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);color:var(--color-muted);text-align:left}.ci-mini-card:hover,.ci-mini-card:focus-visible{border-color:var(--color-border-strong)}.ci-mini-head,.ci-mini-foot{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-weight:900}.ci-mini-head strong{color:var(--ci-color, var(--color-text));font-size:18px}.ci-mini-head span,.ci-mini-foot span{color:var(--color-faint);font-size:11px}.ci-mini-foot strong{color:var(--color-muted);font-size:13px}.ci-mini-card.is-positive .ci-mini-foot strong{color:var(--color-positive)}.ci-mini-card.is-negative .ci-mini-foot strong{color:var(--color-negative)}.ci-mini-sparkline{width:100%;height:72px;display:block;border:1px solid var(--color-border);background:var(--color-surface-deep)}.ci-mini-sparkline line{stroke:var(--color-grid-line);stroke-dasharray:4 4}.ci-mini-sparkline path{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ci-detail-currency-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--control-gap)}.ci-detail-body{flex:1;gap:10px}.ci-modal-header{min-height:var(--control-h);display:flex;align-items:center;position:relative;gap:12px;flex:0 0 auto}.ci-modal-title-row{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.ci-modal-title{margin:0;color:var(--color-text);font-size:20px;line-height:1;font-weight:900}.ci-modal-controls-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;position:relative;z-index:1}.ci-modal-controls{display:flex;align-items:center;gap:var(--control-gap);flex-wrap:wrap}.ci-modal-multi-wrap{position:relative;display:inline-flex}.ci-modal-multi-dropdown{position:absolute;top:calc(100% + 6px);left:0;z-index:5;width:150px;max-height:260px;overflow:auto;display:flex;flex-direction:column;gap:4px;padding:8px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card)}.ci-modal-multi-option{min-height:30px;display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;border-radius:var(--radius-control);background:transparent;color:var(--color-muted);padding:0 8px;font:inherit;font-weight:900;cursor:pointer}.ci-modal-multi-option:hover,.ci-modal-multi-option.is-active{background:#717a961f;color:var(--color-text)}.ci-modal-multi-label{display:inline-flex;align-items:center;gap:8px}.ci-modal-multi-dot{width:9px;height:9px}.ci-modal-multi-check{width:12px;color:var(--color-accent-strong);text-align:right}.ci-detail-chart{flex:1;min-height:0;border:1px solid var(--color-border);background:var(--color-surface-deep);overflow:hidden}.ci-detail-chart.multi{display:grid;gap:1px;border:0;background:var(--color-border)}.ci-detail-chart.multi.count-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ci-detail-chart.multi.count-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ci-detail-chart.multi.count-4{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.ci-detail-chart.multi.count-5,.ci-detail-chart.multi.count-6,.ci-detail-chart.multi.count-7,.ci-detail-chart.multi.count-8{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.ci-detail-pane{position:relative;min-width:0;min-height:0;background:var(--color-surface-deep);overflow:hidden}.ci-detail-pane-title{position:absolute;top:9px;left:10px;z-index:2;color:var(--color-muted);font-size:13px;font-weight:900;pointer-events:none}.ci-detail-pane .chart-surface,.ci-detail-pane .chart-empty{height:100%}.ci-detail-chart>.chart-surface,.ci-detail-pane .chart-surface{border:0}@media(max-width:1000px){.ci-modal-header{align-items:stretch;flex-direction:column}.ci-modal-title-row{position:static;pointer-events:auto}.ci-modal-controls-row{align-items:flex-start}.ci-detail-chart.multi,.ci-detail-chart.multi.count-2,.ci-detail-chart.multi.count-3,.ci-detail-chart.multi.count-4,.ci-detail-chart.multi.count-5,.ci-detail-chart.multi.count-6,.ci-detail-chart.multi.count-7,.ci-detail-chart.multi.count-8{grid-template-columns:1fr;grid-template-rows:none}}.heatmap-table td.heat-pos-1{color:var(--color-positive);background:#2fa66a2e}.heatmap-table td.heat-pos-2{color:var(--color-positive);background:#2fa66a47}.heatmap-table td.heat-pos-3{color:var(--color-positive);background:#2fa66a61}.heatmap-table td.heat-pos-4{color:var(--color-positive);background:#2fa66a80}.heatmap-table td.heat-pos-5{color:var(--color-positive);background:#2fa66a9e}.heatmap-table td.heat-neg-1{color:var(--color-negative);background:#c94e672e}.heatmap-table td.heat-neg-2{color:var(--color-negative);background:#c94e6747}.heatmap-table td.heat-neg-3{color:var(--color-negative);background:#c94e6761}.heatmap-table td.heat-neg-4{color:var(--color-negative);background:#c94e6780}.heatmap-table td.heat-neg-5{color:var(--color-negative);background:#c94e679e}.placeholder-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.placeholder-panel{min-height:180px;padding:20px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface)}@media(max-width:900px){body{overflow:auto}.app{min-height:100vh;height:auto}.top-nav{height:auto;align-items:flex-start;flex-direction:column}.top-nav-right{width:100%;align-items:flex-start;flex-direction:column}.nav-tabs{width:100%;overflow-x:auto}.page-title,.card-title{font-size:20px}.page-header,.card-header{grid-template-columns:1fr;align-items:start}.placeholder-grid,.dashboard-grid,.overview-summary,.overview-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.brief-layout{grid-template-columns:1fr}}
