/* Shared visual language. Geometry and market signal colours remain in their modules. */
:root {
 --bg:#0c121a; --surface:#111923; --surface-raised:#17222e; --line:#293746;
 --muted:#8193a6; --text:#cbd8e3; --cyan:#65c4ce; --green:#32c6a3; --red:#ee716f;
 --control:#17222e; --control-hover:#21313f; --control-border:#354859; --focus:#65c4ce;
 --ui-radius:6px; --ui-shadow:0 12px 36px #0006;
}
body {font-family:'Segoe UI',sans-serif; -webkit-font-smoothing:antialiased;}
.analysis-symbol-list,.instrument-options,.timeframe-menu,.analysis-indicator-menu,dialog {scrollbar-width:thin; scrollbar-color:#445969 transparent;}
button,input,select {font:inherit; font-size:12px; border-color:var(--line); border-radius:var(--ui-radius);}
button {color:var(--text); background:var(--control);}
button:hover:not(:disabled) {background:var(--control-hover); border-color:var(--control-border);}
button:focus-visible,input:focus-visible,select:focus-visible {outline:2px solid var(--focus); outline-offset:2px;}
button.primary {background:#286570; border-color:#397d87; color:#f1fbfc;}
button.primary:hover:not(:disabled) {background:#337884; border-color:#65a7af;}
input[type=checkbox] {accent-color:var(--cyan); width:14px; height:14px; min-height:14px; flex:none; margin:0; padding:0;}
.ui-icon {display:block; width:16px; height:16px; flex:none; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round;}
button.ui-icon-button {display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; min-height:28px; padding:0; flex:none; line-height:1; color:var(--muted);}
button.ui-icon-button:hover {color:var(--text);}
button.ui-icon-button .ui-icon {width:16px; height:16px;}
header {background:var(--bg); border-bottom-color:var(--line);}
header .brand {color:var(--muted); font-size:11px; letter-spacing:1.7px;}
header .analysis-tabs {align-self:stretch; align-items:stretch; gap:0; padding:0; border-radius:0; background:transparent; margin:0 0 -1px -8px;}
header .analysis-tabs button {position:relative; min-width:124px; height:auto; min-height:36px; padding:0 20px; border:1px solid transparent; border-top:2px solid transparent; border-radius:5px 5px 0 0; background:transparent; color:var(--muted); font-weight:500; white-space:nowrap;}
header .analysis-tabs button+button::before {content:''; position:absolute; left:-1px; top:12px; bottom:12px; width:1px; background:var(--line);}
header .analysis-tabs button:hover {background:var(--control-hover); border-color:transparent; color:var(--text);}
header .analysis-tabs button[aria-selected=true] {color:var(--text); background:var(--surface); border-color:var(--line); border-top-color:var(--cyan); border-bottom-color:var(--surface);}
header .analysis-tabs button[aria-selected=true]::before,header .analysis-tabs button[aria-selected=true]+button::before {display:none;}
header .analysis-tabs button:focus-visible {outline-offset:-4px;}
header .layout-control{order:1}header #global-settings-button{order:2}
header .layout-control>button,header #global-settings-button {width:28px; height:28px; min-height:28px; padding:0;}
header .layout-control>button.ui-layout-button {display:flex; align-items:center; gap:6px; width:auto; padding:0 8px; white-space:nowrap; font-size:11px;}
.market-panel {border-color:var(--line); border-radius:8px;}
.market-panel .panel-head {background:var(--surface); gap:3px;}
.market-panel .panel-head .instrument {color:var(--text); font-weight:600;}
.market-panel .panel-head .ghost {width:26px; height:28px; min-height:28px; background:transparent; border:1px solid transparent;}
.market-panel .panel-head .ghost:hover {background:var(--control-hover);}
.market-panel .panel-head .remove:hover {color:#f3a4a2; background:#ee716f14;}
.market-panel.panel-collapsed .collapse-panel {width:22px; height:22px; min-height:22px;}
.column-headings,.column-labels {color:var(--muted);}
.timeframe-button,.chart-tf-button {height:26px; min-height:26px; border-radius:4px; border-color:var(--control-border); background:var(--control); color:var(--text); font:12px Consolas,monospace; padding:2px 7px;}
.timeframe-button:hover,.chart-tf-button:hover {background:var(--control-hover);}
.timeframe-menu,.chart-options,.analysis-indicator-menu,.layout-menu {background:var(--surface-raised); border:1px solid var(--control-border); border-radius:6px; box-shadow:var(--ui-shadow); padding:5px;}
.timeframe-menu button {min-height:28px; color:var(--muted); border-radius:3px; padding:4px 10px;}
.timeframe-menu button:hover,.timeframe-menu button.active {background:var(--control-hover); border-color:transparent; color:var(--text);}
.chart-options,.analysis-indicator-menu {min-width:252px;}
.chart-options label,.analysis-indicator-menu label,.ui-check-row {display:flex; flex-direction:row; align-items:center; gap:9px; min-height:34px; padding:7px 9px; margin:0; font-size:12px; color:var(--text); border-radius:4px; cursor:pointer;}
.chart-options label:hover,.analysis-indicator-menu label:hover {background:var(--control-hover);}
.analysis-indicator-menu-row {gap:2px;}
.analysis-indicator-menu-row .ui-icon-button {margin:0 3px 0 0;}
.chart-settings-control .chart-settings-button {border-color:transparent; background:var(--control);}
.chart-latest,.analysis-pane>.analysis-latest-button {background:var(--control); color:var(--text); border-radius:6px; box-shadow:0 2px 8px #0005;}
dialog.ui-dialog,dialog.instrument-picker {background:var(--surface); color:var(--text); border:1px solid var(--control-border); border-radius:10px; padding:24px; box-shadow:0 24px 90px #0009; max-height:85dvh;}
dialog::backdrop {background:#050a10b3; backdrop-filter:blur(3px);}
dialog.ui-dialog h2,.picker-head h2 {font-size:16px; line-height:24px; font-weight:600; margin:0 32px 22px 0;}
.ui-dialog-close,.analysis-dialog-close {position:absolute; top:18px; right:18px; border:0; background:transparent;}
dialog label {color:var(--muted); font-size:12px;}
dialog input:not([type=checkbox]),dialog select {min-height:34px; color:var(--text); background:#0e1720; border:1px solid var(--control-border);}
.analysis-dialog {width:min(520px,92vw);}
.analysis-dialog form {gap:16px;}
.analysis-dialog .primary {align-self:flex-end; min-width:96px;}
.analysis-dialog .analysis-symbol-search {font-size:14px; padding:8px 10px;}
.analysis-symbol-list {gap:3px;}
.analysis-symbol-list button,.instrument-options button {min-height:38px; border:1px solid transparent; border-radius:5px; background:var(--control); padding:9px 11px; font-size:12px;}
.analysis-symbol-list button:hover,.instrument-options button:hover {background:var(--control-hover); border-color:var(--control-border);}
.analysis-symbol-list button {gap:12px;}
.analysis-symbol-list span {overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; color:var(--muted);}
.analysis-external-badge {background:var(--control); color:var(--text); border:0; font-size:10px;}
.analysis-dialog fieldset {border:1px solid var(--line); border-radius:6px; padding:8px;}
.analysis-dialog legend {color:var(--muted); padding:0 6px;}
.analysis-toolbar {background:var(--surface); min-height:44px; padding:7px 12px; gap:8px;}
.analysis-chart-chips {gap:6px;}
.analysis-chart-chip {border-radius:6px; border-color:var(--control-border); background:var(--control); align-items:center;}
.analysis-chart-chip button {height:28px; min-height:28px; padding:3px 10px; font-size:12px;}
.analysis-chart-chip button.ui-icon-button {width:26px; padding:0; background:transparent;}
.analysis-add-chart {border-style:dashed;}
.analysis-pane-title {font-size:11px; color:var(--text);}
.analysis-splitter {background:var(--line);}
.analysis-splitter:hover {background:var(--cyan);}
.analysis-tip {background:#17222ef5; border-color:var(--control-border); box-shadow:var(--ui-shadow); font-size:12px; border-radius:6px;}
.panel-foot .counts {display:none;}
.panel-foot {height:auto; min-height:0; padding:0; border:0;}
.panel-foot .quality:empty {display:none;}
.panel-foot:has(.quality:not(:empty)) {padding:4px 10px; border-top:1px solid var(--line);}
.bottom-controls {background:#0c141ded; border-color:var(--line);}
.bottom-controls .step-button {background:var(--control); border-color:var(--control-border);}
.bottom-controls #realtime {background:var(--control); border-color:var(--control-border); color:var(--text);}
.bottom-controls #realtime[aria-pressed=true] {background:#773d46; border-color:#d7858d; color:#ffe3e5;}
@media(max-width:760px) {header .analysis-tabs button {min-width:0; padding-inline:12px;} .analysis-toolbar {gap:6px;} dialog.ui-dialog {padding:20px;}}
@media(prefers-reduced-motion:reduce) {button,.chart-toolbar {transition:none;}}

/* Interface labels stay neutral; direction/series colours belong to market data. */
.analysis-chart-chip button:not(.ui-icon-button),.analysis-pane-title {color:var(--text);}
.book-scale,.panel-settings .lot-value-setting button,.column-headings,.column-labels,.chart-info,#clock,#time {color:var(--text);}
.boundary-toggle,.chart-latest,.profile-latest,.analysis-latest-button {color:var(--text);}
.ladder-wrap .boundary-toggle {color:var(--text); background:var(--control); border-color:var(--control-border);}
.ladder-wrap .boundary-toggle:hover {color:var(--text); background:var(--control-hover);}
.bottom-controls .timeline #clock,.timeline #time {color:var(--text);}

.ui-instrument-heading{grid-column:1/-1;color:var(--muted);font-size:11px;font-weight:600;padding:10px 2px 4px;flex-shrink:0}.ui-instrument-divider{width:100%;grid-column:1/-1;border:0;border-top:1px solid var(--line);margin:8px 0;flex-shrink:0}

.instrument-search {display:block; width:100%; box-sizing:border-box; margin:0 0 16px; padding:8px 10px; font:inherit;}
.instrument-search-empty {grid-column:1/-1; color:var(--muted); padding:18px 4px; font-size:13px;}

header:has(.workspace-tabs) .brand {position:static;transform:none;order:-2;flex:none;margin-right:16px;}
header .workspace-tabs {flex:1;min-width:0;margin-right:12px;overflow:hidden;align-items:stretch;}
.workspace-tab-strip {display:flex;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;}
.workspace-tab-strip::-webkit-scrollbar {display:none;}
.workspace-tab {display:flex;align-items:stretch;flex:none;border:1px solid transparent;border-top:2px solid transparent;border-radius:5px 5px 0 0;}
.workspace-tab.active {background:var(--surface);border-color:var(--line);border-top-color:var(--cyan);border-bottom-color:var(--surface);}
header .workspace-tabs .workspace-tab-label {min-width:100px;max-width:230px;padding:0 12px;overflow:hidden;text-overflow:ellipsis;border:0;border-radius:0;background:transparent;}
header .workspace-tabs .workspace-tab-label[aria-selected=true] {border:0;background:transparent;}
header .workspace-tabs .workspace-tab-close,header .workspace-tabs .workspace-tab-add {min-width:28px;width:28px;padding:0;border:0;border-radius:3px;background:transparent;}
header .workspace-tabs .workspace-tab-close {opacity:0;color:var(--muted);}
.workspace-tab:hover .workspace-tab-close,.workspace-tab:focus-within .workspace-tab-close,.workspace-tab.active .workspace-tab-close {opacity:1!important;}
header .workspace-tabs button::before {display:none;}
header .workspace-tabs .workspace-tab-close .ui-icon {width:12px;height:12px;}
header .workspace-tabs .workspace-tab-add {flex:none;margin-left:5px;}
.workspace-menu {position:fixed;z-index:200;min-width:220px;padding:5px;background:var(--surface);border:1px solid var(--control-border);border-radius:6px;box-shadow:0 8px 24px #0006;}
.workspace-menu[hidden] {display:none;}
.workspace-menu button {display:block;width:100%;text-align:left;border:0;background:transparent;padding:10px;color:var(--text);}
.workspace-menu button:hover,.workspace-menu button:focus-visible {background:var(--control-hover);}
.workspace-rename {width:min(400px,90vw);}
.workspace-rename form {display:flex;flex-direction:column;gap:16px;}
.workspace-rename label {display:flex;flex-direction:column;gap:8px;}
@media(max-width:900px){header:has(.workspace-tabs) .brand{display:none;}header .workspace-tabs .workspace-tab-label{min-width:80px;max-width:170px;}}

.workspace-view-active #panels,.workspace-hide-timeline .bottom-controls {display:none!important;}
.workspace-view-active header>.layout-control:not(.robot-dashboard-layout) {display:none;}

/* Shared compact settings surface across books, charts and workspace tabs. */
dialog.settings-surface{box-sizing:border-box;width:min(680px,94vw);max-height:90dvh;padding:18px 20px;background:var(--surface-raised,#111a24);border:1px solid var(--control-border,#405469);border-radius:8px;overflow:auto}
.settings-surface h2{font-size:16px;line-height:24px;margin:0 36px 14px 0}
.settings-surface form{gap:10px}
.settings-surface>form:not(.robot-settings-form){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}
.settings-surface form>h2,.settings-surface form>fieldset,.settings-surface .settings-actions,.settings-surface .lot-value-setting{grid-column:1/-1}
.settings-surface label{font-size:12px;gap:4px;margin:0;min-width:0}
.settings-surface input:not([type=checkbox]):not([type=color]),.settings-surface select{box-sizing:border-box;width:100%;min-width:0;height:30px;padding:4px 7px;font-size:12px}
.settings-surface input[type=checkbox]{width:14px;height:14px;flex:none}
.settings-surface fieldset{display:block;box-sizing:border-box;max-height:none;margin:0;padding:10px 12px;border:1px solid var(--control-border,#34485c);border-radius:5px;min-width:0}
.settings-surface fieldset[hidden]{display:none!important}
.settings-surface legend{font-size:12px;font-weight:600;padding:0 5px;color:var(--text,#d5e2ed)}
.settings-surface .settings-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}
.settings-surface .settings-fields>label{display:flex;flex-direction:column}
.settings-surface .settings-checks{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center}
.settings-surface .settings-checks label{display:flex;flex-direction:row;align-items:center;gap:6px;padding:0;white-space:nowrap}
.settings-surface .settings-actions{display:flex;justify-content:flex-end;gap:8px;position:sticky;bottom:-18px;padding:10px 0 0;margin:0;background:var(--surface-raised,#111a24);z-index:5}
.settings-surface .settings-actions button{min-height:30px;padding:5px 12px}
.robot-settings form.robot-settings-form{display:flex;flex-direction:column;gap:10px}
.robot-settings .robot-instrument-select{height:30px;width:100%;text-align:left;margin-bottom:8px}
.settings-instrument-table{width:100%;border-collapse:collapse;font-size:12px;table-layout:fixed}
.settings-instrument-table th,.settings-instrument-table td{padding:5px 6px;text-align:left;border-bottom:1px solid var(--control-border,#304154)}
.settings-instrument-table th:first-child{width:42%;font-weight:500}
.settings-instrument-table td label{font-size:0;display:block}
.settings-instrument-table tbody tr:first-child{background:#43ccdf0b}
.analysis-bundle-heading{flex:0 0 27px;font-size:12px;font-weight:600;padding:5px 10px;box-sizing:border-box;border-bottom:1px solid #304154}
.analysis-bundle-panes{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.analysis-robot-bundle>.analysis-move-tools{top:0;right:8px;opacity:1;pointer-events:auto}
.analysis-robot-bundle>.analysis-move-tools button{width:25px;height:25px;padding:4px;border:0;background:transparent}
@media(max-width:560px){.settings-surface .settings-fields,.settings-surface>form:not(.robot-settings-form){grid-template-columns:1fr}.settings-surface .settings-checks{gap:8px}.settings-instrument-table th:first-child{width:35%}}

.robot-settings.settings-surface fieldset{padding:7px 10px}.robot-settings.settings-surface input:not([type=checkbox]),.robot-settings.settings-surface select{height:27px}.robot-settings.settings-surface .settings-instrument-table td,.robot-settings.settings-surface .settings-instrument-table th{padding:3px 5px}.settings-hint{display:block;font-size:11px;color:var(--muted,#91a3b7);margin-top:6px}.robot-settings form.robot-settings-form{gap:8px}
