/* Funding Lab purple theme: palette and shell matched to overview.css. */
:root{--bg:#0b0a0e;--panel:#111015;--surface:#18161d;--hover:#24202e;--line:#36313f;--line-soft:#26222d;--muted:#b2acbd;--text:#dedbe5;--accent:#c8b4ef;--green:#76dfcc;--red:#ff96a4;--amber:#ffd092;--radius:8px;--radius-control:9px;color:var(--text);background:var(--bg);font-family:'Segoe UI',Arial,sans-serif}
body{background:radial-gradient(ellipse 780px 600px at 0 0,#44315e66 0,transparent 75%),var(--bg);color:var(--text);font:400 14px/1.45 'Segoe UI',Arial,sans-serif}
a{color:var(--accent)}p,label,.blockhelp,.fieldhelp,.botmsg,.foot,.dialogfoot span,#connection{color:var(--muted)}
.appSidebar{position:fixed;inset:0 auto 0 0;width:216px;padding:18px 12px;display:flex;flex-direction:column;gap:20px;border-right:1px solid var(--line-soft);background:linear-gradient(160deg,#392a4e80,transparent 65%),#100e15;overflow-y:auto;z-index:5}
.appSidebar .brand{display:flex;align-items:center;gap:10px;padding:0 10px;font-size:26px;font-weight:600;color:var(--text)}.brand span{font-size:13px;letter-spacing:.4px}
.appSidebar nav{display:flex;flex-direction:column;gap:4px}.navGroup{color:var(--muted);font-size:12px;letter-spacing:.25px;padding:10px}.appSidebar nav a,.appSidebar nav button{padding:11px 12px;font-size:13px;border-radius:6px;border:1px solid transparent;color:var(--text);background:transparent;text-align:left;font-weight:400;min-height:42px}
.appSidebar nav a:hover,.appSidebar nav button:hover{background:#ffffff08;filter:none}.appSidebar nav .navCurrent{background:#8260b42b;border-color:#a17edb30;color:#f1e9ff}.sidebarNote{margin-top:auto;padding:12px 10px 0;border-top:1px solid var(--line-soft);font-size:12px;line-height:1.7}
.appTopbar{margin-left:216px;height:auto;min-height:52px;padding:10px 24px;display:flex;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--line-soft);background:#100e15aa;color:var(--muted);font-size:13px}.appTopbar>span{font-size:13px;letter-spacing:0}.appTopbar .local{margin-left:auto;border:1px solid var(--line);border-radius:999px;padding:4px 10px;background:var(--surface);font-size:12px}.appTopbar>a:last-child{margin-left:0;font-size:12px}
.navToggle,.navToggleLabel{display:none}.skipLink{position:absolute;left:228px;top:8px;z-index:20;padding:10px;background:var(--surface);transform:translateY(-180%)}.skipLink:focus{transform:none}
main{max-width:none;margin:0 0 0 216px;padding:24px;min-width:0}.intro{gap:24px;margin-bottom:24px}.intro>div:first-child{min-width:0}.intro p{max-width:700px}.eyebrow{color:var(--accent);letter-spacing:.5px;font-size:12px;font-weight:500}h1{font-size:28px;font-weight:700;letter-spacing:-.5px}.top-actions{gap:9px;justify-content:flex-end}.summary{padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:#15121bcc;color:var(--muted);font-size:12px}
button{border-radius:var(--radius-control);background:#ede8f5;color:#1b1525;border:1px solid #ede8f5;font-weight:600;transition:background-color 150ms ease,border-color 150ms ease;min-height:40px}button:hover:not(:disabled){background:#fff;border-color:#fff;filter:none}.secondary{background:#211b2b;border-color:#61516f;color:#eee8f6}.secondary:hover:not(:disabled){background:#30263d;border-color:#b29acc}button:disabled{opacity:.5;cursor:default}
input,select{min-height:44px;background:#211b2b;color:#eee8f6;border:1px solid #78648c;border-radius:var(--radius-control);font-size:14px;box-shadow:inset 0 1px 0 #ffffff0c}input::placeholder{color:#a59daf;opacity:1}select option{background:#211b2b;color:#eee8f6}select{appearance:none;padding-right:36px;background-image:linear-gradient(45deg,transparent 50%,#c8b4ef 50%),linear-gradient(135deg,#c8b4ef 50%,transparent 50%);background-position:calc(100% - 19px) 50%,calc(100% - 14px) 50%;background-size:5px 5px;background-repeat:no-repeat}
input:hover:not(:disabled),select:hover:not(:disabled){border-color:#b29acc;background-color:#282032}input:focus,select:focus,button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}input:disabled,select:disabled{color:var(--muted);border-color:#4c4356;background:#17141c}
.cards{gap:18px}.bot{background:var(--panel);border-left-color:var(--line);border-right-color:var(--line);border-bottom-color:var(--line);border-radius:10px;box-shadow:inset 0 1px 0 #ffffff03}.bothead,.botcontext,.bot-account{background:#1a1621}.bothead h2{color:#f6f0ff;font-weight:750}.botcontext{color:var(--muted)}.bot-symbol{background:#241c30;border-color:#554463;color:#eee5fa}.bot-account{border-color:var(--line-soft);color:var(--muted)}.bot-account span{color:#d7cce3}.exchange-logo{border-color:#61516f}.badge{border-color:#52465f;background:#241d2e;color:#cec0dd}.badge.running{background:#16332d;color:var(--green);border-color:#2e5c50}.badge.attention,.badge.recovery_required{background:#3a222d;border-color:#6b3949;color:var(--red)}
.botmetrics label{color:#a49bad}.botmetrics b{color:#f0e8f8;font-variant-numeric:tabular-nums}.botmode{background:#17131c;border-color:var(--line-soft);color:var(--muted)}.botmode.real{color:var(--amber)}.loghead{border-color:var(--line-soft);color:var(--muted)}.loghead a{color:var(--accent)}.log{background:#0e0c12;color:#c7bdd3}.log .error{color:var(--red)}.log .warning{color:var(--amber)}
dialog{background:#17131d;border-color:#61516f;box-shadow:0 24px 90px #0009;color:var(--text)}dialog::backdrop{background:#08060dbb}.dialogfoot{background:#17131d;border-color:#493b57}.settingsblock{border-color:var(--line)}.settingsblock h3{color:#f0e7f9}.timingblock{background:#221a2e;border:1px solid #6d5287}.modelNote{border-color:var(--accent);background:#21192b;padding:10px 12px}.settingsblock .fieldhelp{color:var(--muted)}details,.import{border-color:var(--line)}summary{color:var(--accent)}.notice{background:#2b231e;border-color:#66513d;color:var(--amber)}.login{background:#19131f;border-color:#544263}.empty{border-color:#61516f;background:#151119}#settingsError,#loginError{color:var(--red)}#apiManagerMessage,#apiProfileMessage{color:var(--accent)}
@media(max-width:1100px){.intro{align-items:flex-start;flex-direction:column}.top-actions{justify-content:flex-start}}
@media(max-width:760px){.appSidebar{position:relative;width:auto;inset:auto;padding:12px 16px;display:grid;grid-template-columns:1fr auto;gap:10px;overflow:visible;border-right:0;border-bottom:1px solid var(--line-soft)}.appSidebar .brand{padding:0}.navToggle{display:block;position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.navToggleLabel{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;margin:0;cursor:pointer}.navToggle:focus-visible+.navToggleLabel{outline:2px solid var(--accent);outline-offset:3px}.appSidebar nav{display:none;grid-column:1/-1}.navToggle:checked~nav{display:flex}.sidebarNote{display:none}.appTopbar{margin-left:0;padding:10px 16px}.appTopbar>span{display:inline}.appTopbar>a:last-child{display:none}main{margin-left:0;padding:20px 16px}.skipLink{left:16px}.top-actions{width:100%}h1{font-size:26px}button{min-height:44px}.fields{grid-template-columns:1fr 1fr}}
@media(max-width:400px){.fields{grid-template-columns:1fr}.top-actions #connection{width:100%}.appTopbar{gap:8px;font-size:11px}.appTopbar>span{font-size:11px}}
@media(forced-colors:active){select{appearance:auto;background-image:none}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

/* Compact cards; locally hosted variable fonts include Cyrillic glyphs. */
@font-face{font-family:'Manrope';src:url('fonts/manrope.ttf') format('truetype');font-style:normal;font-weight:200 800;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url('fonts/jetbrains-mono.ttf') format('truetype');font-style:normal;font-weight:100 800;font-display:swap}
:root{--font-ui:'Manrope','Segoe UI',sans-serif;--font-data:'JetBrains Mono',Consolas,monospace;font-family:var(--font-ui)}body{font-family:var(--font-ui)}button,input,select{font-family:var(--font-ui)}
main{padding:18px 20px}.intro{gap:16px;margin-bottom:16px}.intro p{font-size:12px;line-height:1.6;margin:6px 0;max-width:650px}.intro .eyebrow{font-size:10px;letter-spacing:.7px;margin-top:0}h1{font-size:25px;letter-spacing:-.6px;margin:4px 0 6px}.top-actions{gap:7px}.top-actions button{font-size:12px;min-height:34px;padding:8px 12px}.summary{gap:18px;font-size:11px;padding:9px 12px;margin-bottom:14px}.cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px;align-items:start}
.bot{border-radius:9px;border-top-width:2px}.bothead{padding:12px 12px 8px;gap:8px}.botidentity{gap:9px}.exchange-logo{width:34px;height:34px;flex-basis:34px;border-radius:8px}.exchange-name{font-size:10px;letter-spacing:1.2px;margin-bottom:3px;font-weight:800}.bothead h2{font-size:18px;line-height:1.3;letter-spacing:-.35px;font-weight:800}.bothead .badge{font-size:10px;line-height:1.3;padding:4px 7px;max-width:90px;margin-top:0}.botcontext{gap:10px;padding:0 12px 7px;font-size:11px}.bot-symbol{font:650 12px/1.5 var(--font-data);padding:2px 6px;border-radius:5px}.bot-account{font-size:10px;line-height:1.5;padding:0 12px 9px;margin-bottom:11px}.bot-account span{font-weight:600}
.botmetrics{gap:6px;padding:0 12px 9px}.botmetrics label{font-size:9px;letter-spacing:.25px;line-height:1.4;margin-bottom:4px}.botmetrics b{font:500 13px/1.45 var(--font-data);display:block;overflow-wrap:anywhere;letter-spacing:-.3px}.bot-timing{display:flex;gap:5px 12px;flex-wrap:wrap;padding:0 12px 9px;color:#ded3ec;font:500 10px/1.55 var(--font-ui)}.bot-timing span{white-space:nowrap}.bot-timing i{font-style:normal;color:#a69bb3;margin-right:3px;font-weight:400}
.botmode{font-size:10px;line-height:1.5;padding:7px 12px}.botactions{gap:6px;padding:9px 12px;display:flex;flex-wrap:wrap}.botactions button{font-size:11px;font-weight:650;line-height:1.3;min-height:30px;padding:6px 9px;border-radius:6px}.botactions [data-action="start"]{flex:1}.botactions [data-action="settings"]{border-color:#84709c;color:#eee5fb}.botmsg{font-size:10px;line-height:1.5;padding:0 12px 8px}.loghead{font-size:9px;line-height:1.5;padding:7px 12px}.loghead a{font-size:10px}.log{height:108px;padding:8px 12px;font:400 11px/1.6 var(--font-data);color:#d1c7dc;scrollbar-width:thin;scrollbar-color:#554464 #100c15}
.appSidebar .brand{font-family:var(--font-ui);font-weight:700}.appSidebar .brand span{font-size:12px;letter-spacing:.15px}.appSidebar nav a,.appSidebar nav button{font-size:12px}.sidebarNote{font-size:11px}.settingsTitle,.dialoghead h2{font-weight:750;letter-spacing:-.4px}.fields label{font-weight:500}.fieldhelp{font-weight:400}.settingsblock h3{font-weight:750}.dialogfoot span{font-size:11px}
@media(min-width:1101px){.intro{align-items:center}.top-actions{flex-shrink:0;max-width:390px}.intro>div:first-child{flex:1}}
@media(max-width:760px){main{padding:16px 12px}.cards{gap:12px}.botactions button{min-height:38px;padding:8px 10px}.log{height:120px;font-size:11px}.top-actions button{min-height:40px}.summary{gap:6px 14px}.bothead h2{font-size:18px}}
@media(max-width:400px){.bothead{padding:12px 12px 8px}.exchange-logo{width:34px;height:34px;flex-basis:34px}.botmetrics b{font-size:13px}}

/* Separate the trading values by meaning, with labels as well as colour. */
.botmetrics{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7px;padding:0 12px 9px}
.botmetrics .metric{padding:7px 9px;border:1px solid #51435f;border-radius:7px;background:linear-gradient(120deg,#241c30,#18141f);box-shadow:inset 0 1px 0 #ffffff05;min-width:0}
.botmetrics .metric label{display:block;color:#c1b6cf;font-size:9px;letter-spacing:.35px;margin-bottom:3px}
.botmetrics .metric b{font-size:14px;font-weight:600;line-height:1.4;letter-spacing:-.3px}
.botmetrics .metric b small{font-size:10px;font-weight:400;opacity:.8}
.botmetrics .metric-tp{border-color:#39665b;background:linear-gradient(120deg,#19332c,#141d1d)}
.botmetrics .metric-tp b{color:#8ee7ce}.botmetrics .metric-tp label{color:#b2d4c9}
.botmetrics .metric-risk{border-color:#704451;background:linear-gradient(120deg,#34212d,#20171f)}
.botmetrics .metric-risk b{color:#ffacb8}.botmetrics .metric-risk label{color:#d9b6c0}
.botmetrics .metric-entry{border-color:#725c8f}.botmetrics .metric-entry b{color:#ddc5ff}
.bot-symbol{border-color:#9171b6;background:#30213e;color:#f1e5ff;box-shadow:inset 0 1px 0 #ffffff0a}
.bot-timing{gap:5px;padding-bottom:9px}.bot-timing>span{border:1px solid #554361;border-radius:5px;padding:3px 6px;background:#201927;white-space:normal}.bot-timing i{color:#c1b0d0}
[data-field="funding_tp_pct"] input,[data-field="take_profit_pct"] input{border-color:#528d7c;background:#182a25;color:#a5efdb}
[data-field="funding_risk_pct"] input,[data-field="stop_loss_pct"] input{border-color:#9e6071;background:#30202a;color:#ffc0cb}
[data-field="target_delay_ms"] input,[data-field="funding_tp_delay_ms"] input,[data-field="original_tp_delay_ms"] input,[data-field="funding_close_after_sec"] input{border-color:#a086bd}

/* Live stages use text, borders and a steady marker, without flashing. */
.bot-progress{margin:0 12px 10px;padding:8px 9px;border:1px solid #443b50;border-radius:7px;background:#1b1721}
.progress-title{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:750;color:#c9bed6;line-height:1.5}
.stage-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0}
.countdown{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:6px;font-size:9px;color:#c5bacd;flex-wrap:wrap}
.countdown b{font:600 13px/1.4 var(--font-data);color:#f4e9ff;font-variant-numeric:tabular-nums}.countdown b.due{font:600 10px/1.5 var(--font-ui);color:var(--amber)}
.progress-hint{font-size:10px;margin:5px 0 0;line-height:1.5}
.bot[data-stage="waiting"],.bot[data-stage="entering"]{border-color:#9a78ca;box-shadow:0 0 0 1px #76599a40}
.bot[data-stage="waiting"] .bot-progress,.bot[data-stage="entering"] .bot-progress{background:#2a2039;border-color:#8364aa}
.bot[data-stage="waiting"] .progress-title,.bot[data-stage="entering"] .progress-title{color:#dec1ff}
.bot[data-stage="position"]{border-color:#63c6ab;box-shadow:0 0 0 1px #59bc9f50}
.bot[data-stage="position"] .bot-progress{background:#17362e;border-color:#478e76}.bot[data-stage="position"] .progress-title{color:#99f0ce}
.bot[data-stage="closing"] .bot-progress,.bot[data-stage="verifying"] .bot-progress{background:#33291c;border-color:#9c7844}
.bot[data-stage="closing"] .progress-title,.bot[data-stage="verifying"] .progress-title{color:#ffdb9f}
.bot[data-stage="completed"] .bot-progress{border-color:#517868;background:#1b2a24}.bot[data-stage="completed"] .progress-title{color:#9fceb8}
.bot[data-stage="attention"]{border-color:#c67388}.bot[data-stage="attention"] .progress-title{color:#ffb4c6}

.bot[data-stage="waiting"] .badge,.bot[data-stage="entering"] .badge{background:#30223f;border-color:#8563ac;color:#e2c7ff}
.bot[data-stage="closing"] .badge,.bot[data-stage="verifying"] .badge{background:#362b1d;border-color:#947243;color:#ffdb9f}
.bot[data-stage="completed"] .badge{background:#1e3128;border-color:#527662;color:#b6dfc5}
