:root {
  --panel: #edf1f1;
  --line: #8f999b;
  --soft-line: #c7ced0;
  --chrome: #d7e1e4;
  --title-start: #e9f6fa;
  --title-end: #b4c9d1;
  --text: #17191a;
  --screen: #030404;
  --green: #00a632;
  --red: #c50911;
  --gold: #e6a315;
  --ui-font: Tahoma, Arial, sans-serif;
  --mono: "Lucida Console", "Courier New", monospace;
}

* { box-sizing: border-box; }
html, body { min-width: 950px; min-height: 680px; height: 100%; margin: 0; overflow: hidden; background: #252a2b; color: var(--text); font-family: var(--ui-font); font-size: 12px; }
button, input, select { font: inherit; }
button { cursor: pointer; }

.terminal-shell { display: grid; grid-template-rows: 35px 36px 39px 43px minmax(255px, 1fr) 135px; width: min(1225px, calc(100vw - 36px)); height: min(790px, calc(100vh - 34px)); min-height: 610px; margin: 17px auto; background: var(--panel); border: 1px solid #596568; box-shadow: 0 7px 22px rgba(0,0,0,.55); }
.titlebar { display: flex; align-items: center; min-width: 0; padding: 0 8px; background: linear-gradient(to bottom, var(--title-start), var(--title-end)); border-bottom: 1px solid #a4b5ba; color: #3c4c51; white-space: nowrap; }
.brand-mark { color: #e39a22; font-size: 25px; line-height: 1; text-shadow: 1px 1px #a44b23; margin-right: 5px; }
.app-title { font-weight: 700; font-size: 14px; color: #526267; }.app-title span { font-size: 11px; font-weight: 400; }
.title-context { overflow: hidden; text-overflow: ellipsis; flex: 1; margin-left: 6px; color: #4b5354; }.window-controls { display: flex; gap: 5px; margin-left: 10px; font-weight: 700; font-size: 18px; }.window-controls span { display: inline-grid; place-items: center; height: 23px; min-width: 23px; border: 1px solid #aab8bd; background: linear-gradient(#fff,#d5e0e4); }
.menu-bar { display: flex; align-items: center; gap: 2px; padding: 0 8px; background: #eff2f3; border-bottom: 1px solid #aeb7b9; }.menu-bar button { padding: 3px 8px; border: 1px solid transparent; background: transparent; color: #222; }.menu-bar button:hover { background: #d7e8ee; border-color: #9fb9c4; }.menu-logo { color: #cf7a20 !important; font-size: 16px; }.menu-spacer { flex: 1; }.compact-button { padding: 2px 4px !important; font-size: 15px; }.menu-bar #terminal-clock { margin: 0 7px; font-family: var(--mono); font-size: 11px; }
.index-strip { display: flex; align-items: center; gap: 13px; padding: 0 14px; background: #e9eeee; border-bottom: 1px solid #abb3b5; }.index-strip div:not(.connection-status) { display: flex; align-items: baseline; gap: 8px; }.index-strip strong { font-size: 15px; }.index-strip em { font-style: normal; font-size: 14px; font-weight: 700; }.positive { color: #c50b12; }.negative { color: #15852b; }.index-strip i { height: 19px; border-left: 1px solid #929a9b; }.connection-status { display: flex; align-items: center; gap: 5px; margin-left: auto; color: #5b6567; font-size: 11px; }.connection-status b { width: 8px; height: 8px; border-radius: 50%; background: #e9a412; box-shadow: 0 0 0 1px #8c8c8c; }.connection-status.live b { background: #0f9c31; }.connection-status.error b { background: #cc1b22; }
.watch-toolbar { display: flex; align-items: center; gap: 7px; padding: 6px 12px; background: #f4f6f6; border-bottom: 1px solid #8f9899; }.watch-toolbar label { font-weight: 600; }.watch-toolbar label span { padding-left: 3px; font-size: 14px; }.watch-toolbar select, .watch-toolbar input { height: 26px; border: 1px solid #808b8d; background: white; padding: 3px 6px; box-shadow: inset 0 1px 1px #ddd; }.watch-toolbar select { width: 99px; }.watch-toolbar input { width: 170px; }.native-button { height: 26px; min-width: 48px; border: 1px solid #7e8789; background: linear-gradient(#fff,#d6dddd); box-shadow: inset 0 1px white; }.analysis-button { display: flex; align-items: center; gap: 5px; margin-left: 6px; border: 0; background: transparent; color: #202324; font-weight: 700; }.analysis-button:first-letter { color: #c9890f; font-size: 20px; }.toolbar-spacer { flex: 1; }.connect-button { border: 1px solid #7c999e; border-radius: 2px; background: linear-gradient(#eef9fb,#c6dee3); color: #174852; font-weight: 700; padding: 5px 10px; }.connect-button.connected { color: #0c7726; border-color: #66a26f; }
.watch-stage { display: grid; grid-template-rows: 1fr 35px; min-height: 0; background: #bcc2c2; }.table-wrap { overflow: auto; background: var(--screen); border-left: 1px solid #919b9c; border-right: 1px solid #919b9c; }.market-table { width: 100%; min-width: 1130px; border-collapse: collapse; table-layout: fixed; font-family: var(--ui-font); font-size: 11px; color: #f0f3f3; }.market-table th { position: sticky; top: 0; z-index: 1; height: 21px; padding: 2px 4px; color: #202526; font-weight: 700; text-align: left; white-space: nowrap; background: linear-gradient(#f7fafa,#cfd7d8); border: 1px solid #7d8789; }.market-table td { height: 18px; padding: 1px 5px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; border-right: 1px solid #454b4c; border-bottom: 1px solid #171919; text-align: right; }.market-table th:nth-child(1),.market-table th:nth-child(2),.market-table th:nth-child(3),.market-table th:nth-child(4),.market-table th:nth-child(5),.market-table td:nth-child(1),.market-table td:nth-child(2),.market-table td:nth-child(3),.market-table td:nth-child(4),.market-table td:nth-child(5) { width: 27px; text-align:center; }.market-table th:nth-child(6), .market-table td:nth-child(6) { width: 145px; text-align:left; }.market-table th:nth-child(7),.market-table th:nth-child(8),.market-table th:nth-child(9),.market-table th:nth-child(10),.market-table th:nth-child(11),.market-table th:nth-child(12),.market-table th:nth-child(13),.market-table th:nth-child(14),.market-table th:nth-child(15),.market-table th:nth-child(16),.market-table th:nth-child(17),.market-table td:nth-child(n+7) { width: 75px; }.market-table th:nth-child(18),.market-table td:nth-child(18) { width: 34px; text-align:center; }.market-table tbody tr:hover td { background-color: #1d282b; }.market-table .symbol { font-weight: 700; text-align: left; }.market-table .up-arrow { color: #32d061; }.market-table .down-arrow { color: #ff4750; }.market-table .rate-up { background: #049c2f; color: #fff; font-weight:700; }.market-table .rate-down { background: #b4070f; color: #fff; font-weight:700; }.market-table .positive-text { color:#62db7f; }.market-table .negative-text { color:#ff6b71; }.market-table .plain-rate { background:#282d2e; }.find-cell { color: #d3dedf; font-size: 14px; }
.watch-actions { display: flex; align-items: center; gap: 5px; padding: 4px 13px; background: linear-gradient(#f5f7f7,#dce4e5); border-top: 1px solid #a2aaac; }.watch-actions button { min-width: 22px; height: 24px; padding: 1px 4px; color: #52666a; border: 1px solid #bdc8c9; background: linear-gradient(#fff,#dce5e6); font-weight: 700; }.watch-actions .buy-button { min-width: 43px; color: #006d10; border-color: #7ac47d; background: linear-gradient(#dcffe1,#9ce7a6); }.watch-actions .sell-button { min-width: 43px; color: #99010b; border-color: #d07179; background: linear-gradient(#ffe4e5,#efa1a7); }.action-divider { height: 20px; border-left: 1px solid #bac3c5; margin: 0 2px; }.details-label { color: #697173; margin-left: 7px; }.watch-actions-spacer { flex: 1; }
.bottom-dock { display: grid; grid-template-columns: 41.5% 58.5%; gap: 7px; padding: 7px 5px 4px; background: #d1d8d9; border-top: 1px solid #899394; }.dock-panel { display: grid; grid-template-rows: 25px 1fr; min-width: 0; overflow: hidden; border: 1px solid #868f91; background: #fafafa; }.dock-panel header { display: flex; align-items: center; justify-content: space-between; padding: 0 7px; background: linear-gradient(#f2f2e8,#dbded3); border-bottom: 1px solid #aaa; font-weight: 700; color: #5a5f5b; }.news-panel header { background: linear-gradient(#fed26a,#eaa619); color: #59400d; }.dock-panel header button { background: transparent; border: 0; color: #566162; font-size: 11px; }.calls-panel header button { color: #1c6675; font-size: 10px; text-decoration: underline; }.news-list, .calls-list { overflow: auto; font-size: 11px; }.news-row { display: grid; grid-template-columns: 35px 70px 1fr; gap: 4px; padding: 3px 7px; white-space: nowrap; border-bottom: 1px solid #ececec; }.news-row .source { color: #236b7a; font-weight:700; }.news-row time { font-family: var(--mono); }.call-row { display: grid; grid-template-columns: 75px 52px 1fr; gap: 5px; padding: 3px 8px; border-bottom: 1px solid #ececec; white-space: nowrap; }.call-row .call-side { font-weight: 700; }.call-row .call-side.buy { color:#158133; }.call-row .call-side.sell { color:#c10b14; }.call-row .call-note { overflow:hidden; text-overflow:ellipsis; }
.analysis-window { position: fixed; z-index: 4; top: 50%; left: 50%; display: grid; grid-template-rows: 31px 31px 30px minmax(220px, 1fr) 28px; width: min(760px, calc(100vw - 80px)); height: min(395px, calc(100vh - 130px)); transform: translate(-50%, -50%); border: 2px solid #758083; background: #f0f2f1; box-shadow: 0 14px 42px rgba(0,0,0,.68); }.analysis-window.is-hidden { display:none; }.analysis-titlebar { display: flex; align-items:center; justify-content:space-between; padding-left:8px; background: linear-gradient(#f4f8f9,#bdced2); border-bottom:1px solid #899699; color:#263033; }.analysis-titlebar strong { font-size:11px; }.analysis-titlebar strong span { font-weight:400; }.analysis-titlebar button { width:26px; height:22px; margin-right:4px; border:1px solid #8c999c; background:linear-gradient(#fff,#d4e0e2); font-size:17px; }.analysis-tabs { display:flex; align-items:end; padding: 4px 5px 0; gap:3px; background:#e1e5e5; border-bottom:1px solid #9ba4a5; overflow:hidden; }.analysis-tabs button { align-self:stretch; padding:0 10px; border:1px solid #b0b7b9; border-bottom:0; background:linear-gradient(#f9fafa,#d4dada); color:#313738; white-space:nowrap; font-size:10px; }.analysis-tabs button.active { position:relative; bottom:-1px; background:#fff; font-weight:700; }.analysis-tabs .tab-scroll { margin-left:auto; padding:0 4px; border-bottom:1px solid #b0b7b9; }.analysis-filters { display:flex; align-items:center; gap:8px; padding:0 8px; border-bottom:1px solid #c1c8c9; background:#f7f7f7; font-size:10px; }.analysis-filters label { display:flex; align-items:center; gap:2px; }.analysis-filters input { margin:0; accent-color:#6f8589; }.analysis-filters span { flex:1; }.analysis-table-wrap { overflow:auto; background:white; }.analysis-table { width:100%; border-collapse:collapse; font-size:10px; }.analysis-table th { position:sticky; top:0; padding:3px 5px; text-align:left; background:#b4010b; color:#fff; border-right:1px solid #e3a1a4; }.analysis-table td { height:19px; padding:2px 5px; border-right:1px solid #d2d5d5; border-bottom:1px solid #d5d9da; }.analysis-table td:nth-child(1),.analysis-table td:nth-child(2) { color:#148530; width:32px; }.analysis-table .analysis-rate { text-align:right; }.analysis-table .new-high { color:#149339; font-weight:700; }.analysis-table .new-low { color:#bf1019; font-weight:700; }.analysis-footer { display:flex; align-items:center; justify-content:space-between; padding:0 7px; background:#d6dddd; border-top:1px solid #9aa4a6; font-size:10px; }.analysis-footer button { padding:2px 9px; border:1px solid #899597; background:linear-gradient(#fff,#d5dfdf); }
.toast { position:fixed; left:50%; bottom:25px; z-index:5; transform:translate(-50%, 15px); opacity:0; padding:7px 10px; border-radius:3px; background:#1e2829; color:#fff; box-shadow:0 2px 10px rgba(0,0,0,.35); transition:opacity .16s, transform .16s; pointer-events:none; }.toast.show { opacity:1; transform:translate(-50%,0); }
@media (max-height: 720px) { .terminal-shell { margin:8px auto; height:calc(100vh - 16px); }.bottom-dock { padding-top:4px; }.watch-toolbar { padding-top:4px; padding-bottom:4px; } }
