:root {
    color-scheme: dark;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background: #0b0e14;
    --workspace-top-height: 39px;
    --workspace-bottom-height: 37px;
    --host-bg: #0b0e14;
    --bar-bg: #101722;
    --bar-border: #263345;
    --tab-bg: #17202d;
    --tab-hover: #202c3b;
    --tab-active: #eef3f8;
    --tab-active-text: #0d1724;
    --tab-text: #cad4e1;
    --accent: #19d39a;
    --muted: #8fa0b5;
}

* { box-sizing: border-box; }
html, body { width:100%; height:100%; min-height:100%; margin:0; overflow:hidden; }
body { background:var(--host-bg); }
button, input, select { font:inherit; }
button { -webkit-tap-highlight-color: transparent; }
[hidden] { display:none !important; }

#app-shell {
    position:fixed;
    inset:0;
    display:grid;
    grid-template-rows: var(--workspace-top-height) minmax(0, 1fr) var(--workspace-bottom-height);
    background:var(--host-bg);
    color:#e9eef5;
}

#app-shell.workspace-disabled { display:block; }
#app-shell.workspace-disabled #chart-stage,
#app-shell.workspace-disabled #tradingview_chart { width:100%; height:100%; }

#chart-stage { position:relative; min-width:0; min-height:0; overflow:hidden; background:var(--host-bg); }
#tradingview_chart { position:absolute; inset:0; width:100%; height:100%; }

.workspace-bar {
    z-index:1100;
    min-width:0;
    display:grid;
    grid-template-columns: 28px minmax(0,1fr) 34px 28px;
    align-items:stretch;
    background:linear-gradient(180deg, #152131, var(--bar-bg));
    border-color:var(--bar-border);
    user-select:none;
}
.workspace-bar--top { border-bottom:1px solid var(--bar-border); }
.workspace-bar--bottom { border-top:1px solid var(--bar-border); }

.workspace-tabs {
    min-width:0;
    display:flex;
    align-items:stretch;
    gap:2px;
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:none;
    overscroll-behavior-x:contain;
}
.workspace-tabs::-webkit-scrollbar { display:none; }
.workspace-tabs--sheets { padding-top:2px; }

.workspace-tab {
    flex:0 0 auto;
    display:flex;
    align-items:stretch;
    min-width:112px;
    max-width:230px;
    margin-top:3px;
    border:1px solid transparent;
    border-bottom:0;
    border-radius:7px 7px 0 0;
    background:var(--tab-bg);
    color:var(--tab-text);
    overflow:hidden;
    transition:background .14s ease, color .14s ease, border-color .14s ease;
}
.workspace-bar--bottom .workspace-tab {
    margin-top:0;
    margin-bottom:3px;
    border-top:0;
    border-bottom:1px solid transparent;
    border-radius:0 0 7px 7px;
}
.workspace-tab:hover { background:var(--tab-hover); }
.workspace-tab.is-active {
    background:var(--tab-active);
    color:var(--tab-active-text);
    border-color:#9aa8b9;
    box-shadow:inset 0 3px 0 var(--accent);
}
.workspace-bar--bottom .workspace-tab.is-active { box-shadow:inset 0 -3px 0 var(--accent); }
.workspace-tab--sheet[data-profile="custom"] .workspace-tab__main::after {
    content:"PINE";
    margin-left:7px;
    padding:1px 5px;
    border-radius:999px;
    background:#f2bd30;
    color:#10151c;
    font-size:8px;
    font-weight:900;
    letter-spacing:.06em;
}

.workspace-tab__main,
.workspace-tab__close,
.workspace-icon-button,
.workspace-add-button {
    border:0;
    background:transparent;
    color:inherit;
    cursor:pointer;
}
.workspace-tab__main {
    min-width:0;
    flex:1 1 auto;
    padding:0 7px 0 11px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:12px;
    font-weight:700;
    letter-spacing:.01em;
}
.workspace-tab__close {
    flex:0 0 24px;
    padding:0;
    opacity:.58;
    font-size:16px;
    line-height:1;
}
.workspace-tab__close:hover { opacity:1; background:rgba(244,63,94,.16); color:#ff6b84; }
.workspace-tab__close:disabled { visibility:hidden; }
.workspace-icon-button,
.workspace-add-button {
    display:grid;
    place-items:center;
    color:var(--muted);
    font-weight:800;
}
.workspace-icon-button { font-size:19px; }
.workspace-add-button { font-size:21px; border-left:1px solid rgba(140,160,184,.16); border-right:1px solid rgba(140,160,184,.16); }
.workspace-icon-button:hover,
.workspace-add-button:hover { background:rgba(255,255,255,.07); color:#fff; }

#app-shell.is-workspace-busy .workspace-bar { cursor:progress; }
#app-shell.is-workspace-busy .workspace-tab__main,
#app-shell.is-workspace-busy .workspace-add-button { pointer-events:none; opacity:.72; }

.signal-overlay {
    position:absolute;
    z-index:1000;
    top:max(12px, env(safe-area-inset-top));
    right:max(12px, env(safe-area-inset-right));
    width:min(280px, calc(100vw - 24px));
    padding:14px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:14px;
    background:rgba(12,16,24,.92);
    color:#f4f6fa;
    box-shadow:0 18px 48px rgba(0,0,0,.34);
    backdrop-filter:blur(14px);
}
.signal-overlay__header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.signal-overlay__header button { width:28px; height:28px; border:0; border-radius:8px; background:rgba(255,255,255,.08); color:#fff; font-size:20px; line-height:1; cursor:pointer; }
.signal-badge { display:inline-flex; align-items:center; min-height:28px; padding:4px 10px; border-radius:999px; background:#2e3542; font-size:12px; font-weight:800; letter-spacing:.08em; }
.signal-badge.buy { background:rgba(18,183,106,.22); color:#46e29a; }
.signal-badge.sell { background:rgba(244,63,94,.22); color:#ff768f; }
.signal-symbol { margin:12px 0 10px; font-size:18px; font-weight:750; overflow-wrap:anywhere; }
.signal-levels { display:grid; grid-template-columns:1fr auto; gap:7px 12px; margin:0; font-size:13px; }
.signal-levels dt { color:#9ca7b8; }
.signal-levels dd { margin:0; font-variant-numeric:tabular-nums; font-weight:650; }

.workspace-toast {
    position:absolute;
    z-index:2200;
    left:50%;
    bottom:16px;
    transform:translateX(-50%);
    max-width:min(520px, calc(100vw - 28px));
    padding:10px 14px;
    border:1px solid rgba(255,255,255,.14);
    border-radius:10px;
    background:rgba(15,22,33,.95);
    color:#eef3f8;
    box-shadow:0 14px 42px rgba(0,0,0,.38);
    font-size:12px;
    font-weight:650;
    text-align:center;
}
.workspace-toast[data-kind="error"] { border-color:rgba(244,63,94,.5); color:#ff899c; }

.chart-error {
    position:absolute;
    z-index:2000;
    left:50%; top:50%; width:min(420px, calc(100vw - 32px));
    transform:translate(-50%, -50%);
    padding:20px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:14px;
    background:#151a23;
    color:#f5f7fa;
    text-align:center;
    box-shadow:0 20px 60px rgba(0,0,0,.45);
}
.chart-error span { display:block; margin-top:8px; color:#aeb8c7; }

.workspace-modal { position:fixed; inset:0; z-index:5000; display:grid; place-items:center; padding:18px; }
.workspace-modal__backdrop { position:absolute; inset:0; background:rgba(1,5,11,.72); backdrop-filter:blur(7px); }
.workspace-modal__card {
    position:relative;
    width:min(520px, 100%);
    max-height:min(680px, calc(100vh - 36px));
    overflow:auto;
    border:1px solid #34445a;
    border-radius:16px;
    background:#111a27;
    color:#edf3f9;
    box-shadow:0 28px 90px rgba(0,0,0,.58);
}
.workspace-modal__header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:18px 20px 14px; border-bottom:1px solid #28374a; }
.workspace-modal__eyebrow { color:#27d7a2; font-size:10px; font-weight:850; letter-spacing:.12em; }
.workspace-modal__header h2 { margin:4px 0 0; font-size:19px; }
.workspace-modal__close { width:32px; height:32px; border:0; border-radius:9px; background:#1d2938; color:#d9e3ef; cursor:pointer; font-size:21px; }
#workspace-form { padding:18px 20px 20px; }
.workspace-form-fields { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.workspace-field { display:grid; gap:7px; }
.workspace-field--wide, .workspace-form-note { grid-column:1 / -1; }
.workspace-field > span { color:#9fb0c3; font-size:11px; font-weight:750; text-transform:uppercase; letter-spacing:.06em; }
.workspace-field input,
.workspace-field select {
    width:100%;
    min-height:42px;
    padding:8px 11px;
    border:1px solid #34455b;
    border-radius:9px;
    outline:0;
    background:#0b121d;
    color:#eef4fa;
}
.workspace-field input:focus,
.workspace-field select:focus { border-color:#22d6a1; box-shadow:0 0 0 3px rgba(34,214,161,.12); }
.workspace-form-note { margin:0; padding:10px 12px; border-radius:9px; background:rgba(242,189,48,.08); color:#d9c37f; font-size:12px; line-height:1.45; }
.workspace-form-error { margin-top:14px; padding:9px 11px; border-radius:8px; background:rgba(244,63,94,.12); color:#ff8497; font-size:12px; }
.workspace-modal__actions { display:flex; justify-content:flex-end; gap:10px; margin-top:18px; }
.workspace-primary-button,
.workspace-secondary-button { min-height:39px; padding:0 16px; border-radius:9px; cursor:pointer; font-weight:750; }
.workspace-secondary-button { border:1px solid #3a4a5e; background:#182332; color:#d8e2ed; }
.workspace-primary-button { border:1px solid #18bf90; background:#18bf90; color:#04120e; }

#app-shell[data-chart-theme="light"] {
    --host-bg:#f4f6f9;
    --bar-bg:#e7ebf0;
    --bar-border:#c2cbd6;
    --tab-bg:#d8dee6;
    --tab-hover:#ccd4de;
    --tab-active:#ffffff;
    --tab-active-text:#142033;
    --tab-text:#334155;
    --muted:#64748b;
    color:#142033;
}
#app-shell[data-chart-theme="light"] .workspace-bar { background:linear-gradient(180deg, #f3f5f8, var(--bar-bg)); }
#app-shell[data-chart-theme="light"] .workspace-modal__card { background:#fff; color:#172033; }
#app-shell[data-chart-theme="light"] .workspace-field input,
#app-shell[data-chart-theme="light"] .workspace-field select { background:#f7f9fc; color:#172033; }

@media (max-width:700px) {
    :root { --workspace-top-height:36px; --workspace-bottom-height:35px; }
    .workspace-bar { grid-template-columns:24px minmax(0,1fr) 30px 24px; }
    .workspace-tab { min-width:96px; max-width:180px; }
    .workspace-tab__main { padding-left:8px; font-size:11px; }
    .workspace-tab__close { flex-basis:21px; }
    .signal-overlay { top:auto; right:10px; bottom:10px; left:10px; width:auto; }
    .workspace-form-fields { grid-template-columns:1fr; }
    .workspace-field--wide, .workspace-form-note { grid-column:auto; }
}


/* v3.2 converted AFL chart-sheet accents */
.workspace-tab--sheet[data-profile="demand-supply"] { --accent:#00c889; }
.workspace-tab--sheet[data-profile="morning-ai"] { --accent:#f5c518; }
.workspace-tab--sheet[data-profile="tsi"] { --accent:#00bfe8; }
.workspace-tab--sheet[data-profile="demand-supply-tsi"] { --accent:#32d7b1; }
.workspace-tab--sheet[data-profile="morning-ai-tsi"] { --accent:#f2bd30; }
.workspace-tab--sheet[data-profile="afl-full-combo"] { --accent:#8b7cff; }
