:root { --bg:#0b0d12; --panel:#151821; --panel2:#202532; --line:#303746; --text:#edf1f7; --muted:#8992a8; --blue:#5ca9ff; --green:#35c98b; --red:#f06b75; --gold:#f4c95d; --purple:#b58cff; --brand:#ff3226; --brand2:#ffd21a; --chart-bg:#151821; --chart-grid:#252b39; } body[data-theme="playful"] { --bg:#f3f1e9; --panel:#fffdf7; --panel2:#e9e6d9; --line:#d2d0c3; --text:#11140f; --muted:#77796f; --blue:#79a900; --green:#64a900; --red:#e65d33; --gold:#ff7418; --purple:#db6b16; --brand:#a4e51d; --brand2:#ff7418; --chart-bg:#fffdf7; --chart-grid:#dfddd0; }
    * { box-sizing:border-box; }
    body { margin:0; min-height:100vh; background:radial-gradient(circle at top,#1d2436 0,#0b0d12 48%); color:var(--text); font:14px Inter,Segoe UI,system-ui,sans-serif; transition:background .35s,color .35s; } body[data-theme="playful"] { background:radial-gradient(circle at top,#fffdf7 0,#f3f1e9 55%); }
    button,input,select { font:inherit; }
    .app { max-width:1500px; margin:auto; padding:18px; }
    .topbar { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-bottom:14px; }
    .brand { margin-right:auto; font-size:20px; font-weight:800; letter-spacing:-.7px; } .brand::before { content:"M"; display:inline-grid; place-items:center; width:32px; height:32px; margin-right:9px; border-radius:10px 10px 4px 10px; background:var(--text); color:var(--brand); box-shadow:3px 3px 0 var(--brand2); transform:rotate(-4deg); font-size:17px; }
    .brand span { color:var(--brand); } .theme-picker { display:flex; gap:4px; padding:4px; border:1px solid var(--line); background:var(--panel); border-radius:999px; } .theme-picker button { border:0; padding:7px 10px; border-radius:999px; font-size:11px; background:transparent; color:var(--muted); } .theme-picker button.active { background:var(--brand); color:#111; font-weight:800; } body[data-theme="aggressive"] .theme-picker button.active { color:#fff; }
    .control { display:flex; gap:7px; align-items:center; padding:5px; border:1px solid var(--line); background:rgba(27,30,42,.9); border-radius:10px; }
    .control input { width:210px; border:0; outline:0; color:var(--text); background:transparent; padding:8px 10px; }
    button,select { border:1px solid var(--line); background:var(--panel2); color:var(--text); border-radius:8px; padding:8px 12px; cursor:pointer; }
    button:hover,select:hover { border-color:var(--blue); }
    button.active { background:var(--brand); border-color:var(--brand); color:#10120d; font-weight:800; box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 22%,transparent),0 5px 14px color-mix(in srgb,var(--brand) 28%,transparent); } body[data-theme="aggressive"] button.active { color:#fff; } button:focus-visible { outline:2px solid var(--brand2); outline-offset:2px; } .tf { transition:background .18s,border-color .18s,transform .18s; } .tf:hover { transform:translateY(-1px); }
    .layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:14px; align-items:start; }
    .panel { background:color-mix(in srgb,var(--panel) 94%,transparent); border:1px solid color-mix(in srgb,var(--line) 75%,transparent); border-radius:14px; box-shadow:0 12px 30px rgba(0,0,0,.16); transition:background .35s,border-radius .35s; } body[data-theme="playful"] .panel { border-radius:22px; box-shadow:0 15px 35px rgba(39,45,14,.09); }
    .chart-panel { overflow:hidden; position:relative; }
    .chart-expand { position:absolute; right:10px; bottom:34px; z-index:4; width:30px; height:30px; padding:0; display:grid; place-items:center; border:1px solid var(--line); background:rgba(17,21,31,.86); color:var(--muted); font-size:17px; line-height:1; }
    .chart-expand:hover { color:var(--text); border-color:var(--brand); background:rgba(255,50,38,.18); }
    .chart-head { display:flex; align-items:center; gap:10px; padding:12px 14px; border-bottom:1px solid var(--line); }
    .chart-title { font-weight:700; margin-right:auto; }
    .monstr-legend { display:none; align-items:center; gap:7px; flex-wrap:wrap; color:var(--muted); font-size:10px; }
    .monstr-legend.visible { display:flex; }
    .monstr-legend span { display:inline-flex; align-items:center; gap:4px; }
    .monstr-legend i { width:16px; height:3px; display:inline-block; border-radius:4px; }
    .monstr-legend .trend { background:#35c98b; }.monstr-legend .level { background:#b58cff; }.monstr-legend .zone { background:#f4c95d; }
    .monstr-chart-badge { position:absolute; z-index:3; top:12px; left:12px; display:none; min-width:210px; padding:9px 11px; border:1px solid var(--line); border-left:4px solid var(--green); border-radius:10px; background:rgba(12,15,23,.9); box-shadow:0 8px 22px rgba(0,0,0,.28); pointer-events:none; }
    .monstr-chart-badge.visible { display:block; }.monstr-chart-badge.down { border-left-color:var(--red); }.monstr-chart-badge.range { border-left-color:var(--gold); }
    /* Не перекрываем заголовок графика служебной плашкой Monstr AI. */
    .monstr-chart-badge { display:none !important; }
    .monstr-chart-badge strong { display:block; color:var(--text); font-size:13px; }.monstr-chart-badge small { display:block; margin-top:3px; color:var(--muted); font-size:10px; }
    .tf { padding:6px 9px; font-size:12px; }
    #chart { height:clamp(320px,42vh,450px); min-height:320px; }
    .chart-loading { height:100%; display:grid; place-items:center; align-content:center; gap:10px; color:var(--muted); font-size:13px; background:color-mix(in srgb,var(--chart-bg) 92%,var(--panel)); }
    .chart-loading img { width:56px; height:56px; object-fit:contain; border-radius:14px; filter:drop-shadow(0 5px 10px rgba(0,0,0,.18)); animation:chartLoadingPulse 1.15s ease-in-out infinite; }
    @keyframes chartLoadingPulse { 0%,100% { transform:translateY(0) rotate(-4deg) scale(1); opacity:.82; } 50% { transform:translateY(-5px) rotate(2deg) scale(1.06); opacity:1; } }
    .status { min-height:25px; padding:6px 14px; color:var(--muted); font-size:12px; }
    .status.error { color:var(--red); }
    .progress-overlay { position:absolute; inset:0; z-index:5; display:grid; place-items:center; background:rgba(10,11,16,.78); backdrop-filter:blur(4px); }
    .progress-overlay[hidden] { display:none; }
    .progress-card { width:min(430px,calc(100% - 36px)); padding:22px; border:1px solid rgba(255,50,38,.46); border-radius:16px; background:linear-gradient(145deg,#202436,#11131c 70%); box-shadow:0 18px 55px rgba(0,0,0,.55),0 0 35px rgba(255,50,38,.12); }
    .loading-brand { display:flex; align-items:center; gap:10px; margin-bottom:20px; overflow:hidden; }
.loading-mark,.trade-mascot { position:relative; width:38px; height:38px; display:grid; place-items:center; flex:0 0 38px; border-radius:45% 45% 42% 42%; background:linear-gradient(145deg,#ff4035,#b90e17); border:2px solid #ffb1a8; box-shadow:4px 4px 0 #ffd21a,0 0 24px rgba(255,50,38,.65); animation:markPulse 1.1s ease-in-out infinite; }
.trade-mascot { display:none !important; }
    .loading-mark::before,.trade-mascot::before { content:""; position:absolute; top:-7px; left:4px; width:9px; height:9px; border:2px solid #ffd21a; border-radius:2px 9px 2px 9px; transform:rotate(-24deg); box-shadow:17px -1px 0 -1px #ffd21a; }
    .face-eye { position:absolute; top:13px; width:4px; height:6px; border-radius:50%; background:#fff; }.face-eye.left { left:10px; }.face-eye.right { right:10px; }.face-mouth { position:absolute; left:11px; top:23px; width:13px; height:7px; border-bottom:3px solid #fff; border-radius:0 0 14px 14px; transition:.25s; }
    .loading-mark .face-mouth { animation:smileBounce 1.1s ease-in-out infinite; }
    .loading-logo { position:relative; width:58px; height:58px; flex:0 0 58px; display:grid; place-items:center; overflow:visible; border:0; border-radius:0; background:transparent; box-shadow:none; animation:loaderLogo 1.8s ease-in-out infinite; }
    .loading-logo img { width:58px; height:58px; display:block; object-fit:contain; background:transparent; }
    .loading-logo::after { display:none; }
    .trade-mascot { width:32px; height:32px; flex-basis:32px; animation:none; box-shadow:3px 3px 0 #ffd21a,0 0 18px rgba(255,50,38,.45); }.trade-mascot::before { top:-6px; transform:scale(.85) rotate(-24deg); }.trade-mascot .face-eye { top:11px; }.trade-mascot .face-mouth { top:19px; transform:scale(.85); }.trade-mascot.profit .face-mouth { height:8px; border-bottom-width:3px; }.trade-mascot.loss .face-mouth { top:23px; border-bottom:0; border-top:3px solid #fff; border-radius:14px 14px 0 0; }.trade-mascot.neutral .face-mouth { height:0; border-bottom:3px solid #fff; border-radius:0; }
    .loading-word { color:#fff; font-size:18px; font-weight:950; letter-spacing:-.8px; text-transform:uppercase; animation:wordSlide .8s ease both; }.loading-word i { color:#ff4035; font-style:normal; }
    .progress-top { display:flex; align-items:center; gap:11px; margin-bottom:15px; }
    .progress-orb { width:30px; height:30px; flex:0 0 30px; border:3px solid rgba(255,50,38,.2); border-top-color:#ff4035; border-right-color:#ffd21a; border-radius:50%; animation:spin .9s linear infinite; }
    .progress-title { font-weight:750; font-size:15px; }.progress-subtitle { color:var(--muted); font-size:12px; margin-top:3px; }
    .progress-track { height:8px; overflow:hidden; border-radius:99px; background:#0c0e14; border:1px solid rgba(255,255,255,.09); }
    .progress-fill { height:100%; width:0%; border-radius:inherit; background:linear-gradient(90deg,#b90e17,#ff4035,#ffd21a); box-shadow:0 0 18px rgba(255,50,38,.55); transition:width .35s ease; position:relative; }
    .progress-fill::after { content:""; position:absolute; inset:0; background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.38) 50%,transparent 80%); transform:translateX(-100%); animation:shine 1.25s infinite; }
    .progress-meta { display:flex; justify-content:space-between; margin-top:9px; color:var(--muted); font-size:11px; }.progress-percent { color:var(--text); font-weight:700; }
    @keyframes spin { to { transform:rotate(360deg); } } @keyframes shine { to { transform:translateX(100%); } } @keyframes markPulse { 0%,100% { transform:skew(-8deg) rotate(-4deg) scale(1); } 50% { transform:skew(-8deg) rotate(-4deg) scale(1.08); } } @keyframes smileBounce { 0%,100% { transform:scaleX(.9) translateY(0); } 50% { transform:scaleX(1.12) translateY(-1px); } } @keyframes loaderLogo { 0%,100% { transform:translateY(0) rotate(-1deg) scale(1); filter:saturate(1); } 35% { transform:translateY(-4px) rotate(1deg) scale(1.035); filter:saturate(1.25); } 70% { transform:translateY(1px) rotate(-1deg) scale(.99); filter:saturate(1.05); } } @keyframes logoSheen { 0%,35% { transform:translateX(-70%) rotate(8deg); opacity:0; } 55% { opacity:1; } 90%,100% { transform:translateX(70%) rotate(8deg); opacity:0; } } @keyframes wordSlide { from { opacity:0; transform:translateX(-18px); } to { opacity:1; transform:translateX(0); } }
    .side { padding:16px; }
    .side h2 { margin:0 0 14px; font-size:16px; }
    .signal { padding:13px; border-radius:11px; text-align:center; font-size:23px; font-weight:800; letter-spacing:1px; background:#34384a; }
    .signal.LONG { background:color-mix(in srgb,var(--green) 18%,transparent); color:var(--green); }
    .signal.SHORT { background:rgba(240,107,117,.16); color:var(--red); }
    .signal.WAIT { background:rgba(244,201,93,.14); color:var(--gold); }
    .source { color:var(--muted); text-align:center; margin:8px 0 16px; font-size:12px; }
    .strategy-badge { margin:-8px 0 14px; padding:7px 9px; border:1px solid color-mix(in srgb,var(--purple) 38%,var(--line)); border-radius:8px; color:var(--purple); font-size:11px; text-align:center; }
    .signal-source { margin:-8px 0 12px; color:var(--muted); text-align:center; font-size:10px; }
    .cabinet-risk { display:grid; grid-template-columns:1fr 1fr auto; gap:8px; align-items:end; }
    .cabinet-risk label { display:grid; gap:4px; color:var(--muted); font-size:11px; }
    .cabinet-risk input { width:100%; padding:8px; border:1px solid var(--line); border-radius:8px; background:var(--panel2); color:var(--text); }
    .cabinet-signal-row { display:grid; grid-template-columns:1fr auto auto; gap:10px; padding:8px 0; border-bottom:1px solid var(--line); font-size:12px; }
    .cabinet-signal-row span { color:var(--muted); }
    @media (max-width:640px) { .cabinet-risk { grid-template-columns:1fr 1fr; } .cabinet-risk button { grid-column:1 / -1; } }
    .metrics { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
    .metric { padding:10px; border-radius:9px; background:color-mix(in srgb,var(--panel2) 58%,var(--bg)); }
    .metric small { display:block; color:var(--muted); font-size:11px; margin-bottom:4px; }
    .metric strong { font-size:15px; }
    .entry strong { color:var(--blue); }.tp strong { color:var(--green); }.sl strong { color:var(--red); }.current strong { color:var(--gold); }.volume strong { color:var(--purple); }
    .rr { margin:12px 0; padding:10px; border-radius:9px; background:color-mix(in srgb,var(--panel2) 58%,var(--bg)); text-align:center; color:var(--purple); font-size:19px; font-weight:800; }
    .confidence { margin-top:14px; }.confidence-head { display:flex; justify-content:space-between; color:var(--muted); font-size:12px; margin-bottom:6px; }
    .bar { height:8px; overflow:hidden; border-radius:99px; background:#30364a; }.bar i { display:block; height:100%; width:0; background:var(--blue); transition:width .25s; }
    .comment { margin-top:14px; padding:11px; min-height:75px; color:var(--text); background:color-mix(in srgb,var(--panel2) 58%,var(--bg)); border-radius:9px; line-height:1.45; white-space:pre-wrap; }
    .deal-action { width:100%; margin-top:12px; background:linear-gradient(100deg,var(--green),#1e9e71); border-color:var(--green); color:#07130f; font-weight:800; transition:background .2s,border-color .2s,transform .2s; }
    .deal-action.waiting { background:linear-gradient(100deg,#f4c95d,#c9962f); border-color:#f4c95d; color:#1d1605; cursor:default; }
    .deal-action.opened { background:linear-gradient(100deg,#5ca9ff,#357ac4); border-color:#5ca9ff; color:#07111d; cursor:default; }
    .deal-action[hidden] { display:none; }.deal-action:disabled { opacity:.45; cursor:not-allowed; }
    .deals { margin-top:14px; padding:14px; }.deals h3 { margin:0 0 10px; font-size:14px; }.deal-list { display:grid; gap:8px; }.deal-card { padding:10px; border:1px solid var(--line); border-radius:10px; background:color-mix(in srgb,var(--panel2) 58%,var(--bg)); }.deal-card:hover { border-color:var(--brand); box-shadow:0 0 16px rgba(255,50,38,.12); }.deal-row { display:flex; justify-content:space-between; gap:8px; font-size:12px; }.deal-row + .deal-row { margin-top:5px; }.deal-long { color:var(--green); font-weight:800; }.deal-short { color:var(--red); font-weight:800; }.deal-open { color:var(--gold); }.deal-close { margin-top:8px; width:100%; padding:6px 7px; font-size:11px; background:linear-gradient(100deg,#ff4035,#b90e17); border-color:#ff4035; color:#fff; font-weight:800; text-transform:uppercase; letter-spacing:.3px; }.deal-close:hover { box-shadow:0 0 16px rgba(255,50,38,.42); transform:translateY(-1px); }.deal-empty { color:var(--muted); font-size:12px; }
    .deal-details-btn { margin-top:8px; width:100%; padding:6px 7px; font-size:11px; background:var(--panel2); border-color:var(--blue); color:var(--blue); font-weight:700; }.deal-details-btn:hover { background:color-mix(in srgb,var(--blue) 14%,var(--panel2)); }
    .deal-details { margin-top:8px; padding:9px; border-radius:8px; border:1px solid var(--line); background:rgba(8,11,17,.5); font-size:11px; line-height:1.45; }.deal-details[hidden] { display:none; }.deal-details-grid { display:grid; grid-template-columns:1fr 1fr; gap:5px 10px; margin-bottom:8px; }.deal-details-grid span { color:var(--muted); }.deal-details-comment { color:var(--text); white-space:pre-wrap; }
    .trade-dashboard { margin-top:14px; padding:16px; }.trade-dashboard-head { display:flex; align-items:center; gap:10px; margin-bottom:14px; }.trade-dashboard-head h2 { margin:0; font-size:17px; }.trade-dashboard-head span { margin-left:auto; color:var(--muted); font-size:11px; }.trade-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }.trade-stat { position:relative; overflow:hidden; padding:14px; border:1px solid var(--line); background:linear-gradient(145deg,color-mix(in srgb,var(--panel2) 76%,var(--bg)),var(--panel)); }.trade-stat::after { content:""; position:absolute; right:-22px; bottom:-30px; width:80px; height:80px; border-radius:50%; background:var(--brand); opacity:.12; filter:blur(2px); }.trade-stat small { display:block; color:var(--muted); font-size:11px; margin-bottom:7px; }.trade-stat strong { font-size:23px; }.trade-stat.active strong { color:var(--gold); }.trade-stat.profit strong { color:var(--green); }.trade-stat.loss strong { color:var(--red); }.trade-stat.pnl strong { color:var(--purple); }.trade-table { display:grid; gap:7px; margin-top:14px; }.trade-item { display:grid; grid-template-columns:1.4fr .7fr .8fr .8fr .8fr auto; gap:10px; align-items:center; padding:10px 12px; border:1px solid var(--line); background:rgba(16,19,28,.72); font-size:12px; }.trade-item-head { color:var(--muted); text-transform:uppercase; font-size:10px; letter-spacing:.5px; }.trade-pnl-positive { color:var(--green); font-weight:800; }.trade-pnl-negative { color:var(--red); font-weight:800; }.trade-status { color:var(--gold); }.trade-status.closed { color:var(--muted); }
    .tickers { margin-top:14px; padding:13px 14px; }.tickers-head { display:flex; justify-content:space-between; color:var(--muted); font-size:12px; margin-bottom:9px; }.ticker-list { display:flex; gap:7px; flex-wrap:wrap; }.ticker { padding:6px 9px; font-size:12px; }
    .activity { margin-top:14px; padding:14px; }.activity-head { display:flex; align-items:center; margin-bottom:10px; }.activity-head strong { font-size:13px; }.activity-head span { margin-left:auto; color:var(--muted); font-size:11px; }.activity-log { height:150px; overflow:auto; padding:9px 10px; border-radius:9px; background:#11151f; font:12px Consolas,monospace; }.log-row { display:grid; grid-template-columns:70px 54px 1fr; gap:9px; padding:4px 0; border-bottom:1px solid rgba(255,255,255,.035); }.log-time { color:#667188; }.log-level { font-weight:700; }.log-info { color:var(--blue); }.log-success { color:var(--green); }.log-warn { color:var(--gold); }.log-error { color:var(--red); }.log-message { color:#cbd2df; white-space:pre-wrap; word-break:break-word; }
    .empty { display:grid; place-items:center; height:100%; color:var(--muted); }
    .account-btn { border-color:var(--brand); color:var(--text); background:color-mix(in srgb,var(--brand) 12%,var(--panel)); }
    .account-btn.authenticated { background:var(--brand); color:#111; font-weight:800; }
    .modal { position:fixed; inset:0; z-index:20; display:grid; place-items:center; padding:20px; background:rgba(3,5,9,.7); backdrop-filter:blur(10px); }
    .modal[hidden] { display:none; }
    .modal-card { width:min(540px,100%); padding:26px; border:1px solid var(--line); border-radius:22px; background:var(--panel); box-shadow:0 24px 80px rgba(0,0,0,.35); }
    .chart-modal { padding:14px; width:min(1500px,96vw); height:min(900px,92vh); display:flex; flex-direction:column; }
    .chart-modal-head { display:flex; align-items:center; gap:10px; padding:4px 4px 12px; }.chart-modal-head strong { font-size:15px; }.chart-modal-head span { margin-left:auto; color:var(--muted); font-size:11px; }
    .expanded-tfs { display:flex; gap:5px; margin-left:10px; }.expanded-tfs button { padding:5px 8px; font-size:10px; }.expanded-tfs button.active { background:var(--brand); border-color:var(--brand); color:#fff; }
    .chart-modal-body { min-height:0; flex:1; border:1px solid var(--line); border-radius:12px; overflow:hidden; background:var(--chart-bg); }
    #expanded-chart { width:100%; height:100%; }
    .modal-head { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-bottom:20px; }
    .modal-head h2 { margin:0; font-size:22px; }
    .close-btn { border:0; background:transparent; color:var(--muted); font-size:22px; padding:4px 8px; }
    .cabinet-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:18px 0; }
    .cabinet-stat { padding:13px; border-radius:12px; background:color-mix(in srgb,var(--panel2) 65%,var(--bg)); }
    .cabinet-stat small { display:block; color:var(--muted); margin-bottom:7px; }
    .cabinet-stat strong { font-size:20px; }
    .cabinet-section { margin-top:18px; padding-top:16px; border-top:1px solid var(--line); }
    .cabinet-section h3 { margin:0 0 10px; font-size:14px; }
    .cabinet-empty { color:var(--muted); padding:14px; border-radius:10px; background:color-mix(in srgb,var(--panel2) 45%,var(--bg)); }
    .login-note { color:var(--muted); line-height:1.5; margin:0 0 18px; }
    .telegram-widget { min-height:44px; display:flex; align-items:center; }
    .telegram-login-fallback { display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:9px 16px; border:1px solid #229ed9; border-radius:9px; background:#229ed9; color:#fff; font-weight:700; text-decoration:none; }
    .telegram-login-fallback[hidden] { display:none; }
    .telegram-login-fallback:hover { background:#168ac1; border-color:#168ac1; }
    .telegram-fallback { color:var(--gold); font-size:13px; }
    @media (max-width:900px) { .layout { grid-template-columns:1fr; } #chart { height:430px; } .brand { width:100%; } .control { flex:1; } .control input { width:100%; } }
    @media (max-width:900px) { .trade-stats { grid-template-columns:repeat(2,1fr); }.trade-item { grid-template-columns:1fr 1fr; } .trade-item-head { display:none; } }
    @media (max-width:600px) { .cabinet-grid { grid-template-columns:1fr; } .trade-stats { grid-template-columns:1fr 1fr; } }
    @media (max-width:900px) { .monstr-signal { grid-template-columns:repeat(2,1fr); }.monstr-loss-plan { grid-template-columns:repeat(2,1fr); }.monstr-summary { max-width:48%; text-align:right; } }
    @media (max-width:600px) { .monstr-signal { grid-template-columns:1fr 1fr; }.monstr-loss-plan { grid-template-columns:1fr; }.monstr-head { align-items:flex-start; }.monstr-summary { font-size:10px; } }
    .trade-dashboard { padding:14px; }.trade-stat { padding:12px; }.trade-stat small { margin-bottom:5px; }.trade-stat strong { font-size:21px; }.trade-table { margin-top:12px; }.trade-item { padding:9px 12px; }
    .trade-item { grid-template-columns:repeat(7,minmax(0,1fr)) !important; }
    .trade-item > * { min-width:0; overflow:hidden; }
    .trade-item:not(.trade-item-head) > * { text-align:center; }
    .trade-item-head > span { text-align:center; }
    .trade-item-head span { cursor:pointer; user-select:none; transition:color .15s; }.trade-item-head span:hover { color:var(--brand2); }
    .monstr-panel { margin-top:14px; padding:16px; background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 96%,transparent),color-mix(in srgb,var(--panel2) 38%,var(--panel))); }.monstr-panel[hidden] { display:none; }.monstr-head { display:flex; align-items:flex-start; gap:10px; margin-bottom:12px; }.monstr-head h2 { margin:0; font-size:16px; letter-spacing:-.2px; }.monstr-intro { margin:4px 0 0; color:var(--muted); font-size:11px; }.monstr-summary { margin-left:auto; color:var(--gold); font-size:11px; text-align:right; }.monstr-details { margin-top:12px; }.monstr-details summary { cursor:pointer; color:var(--muted); font-size:11px; }.monstr-details summary:hover { color:var(--text); }.monstr-table { display:grid; gap:6px; overflow:auto; margin-top:9px; }.monstr-row { display:grid; grid-template-columns:.55fr .7fr .8fr .8fr 1fr 1fr .75fr .9fr; gap:8px; align-items:center; min-width:820px; padding:8px 10px; border:1px solid var(--line); background:rgba(16,19,28,.72); font-size:11px; }.monstr-row.head { color:var(--muted); text-transform:uppercase; font-size:10px; letter-spacing:.4px; }.monstr-up { color:var(--green); font-weight:800; }.monstr-down { color:var(--red); font-weight:800; }.monstr-range { color:var(--gold); font-weight:800; }.monstr-strong { color:var(--green); }.monstr-medium { color:var(--gold); }.monstr-weak { color:var(--muted); }
    /* Временно оставляем главный график сверху, а дополнительную Monstr-визуализацию скрываем. */
    .monstr-visual { display:none !important; }
    .monstr-signal { display:grid; grid-template-columns:1.1fr .8fr 1fr 1fr 1fr; gap:8px; margin-bottom:10px; }.monstr-signal-card { padding:10px; border:1px solid var(--line); border-radius:9px; background:color-mix(in srgb,var(--panel2) 60%,var(--bg)); }.monstr-signal-card small { display:block; color:var(--muted); font-size:10px; margin-bottom:4px; }.monstr-signal-card strong { font-size:15px; }.monstr-signal-card.signal-long strong { color:var(--green); }.monstr-signal-card.signal-short strong { color:var(--red); }.monstr-signal-card.signal-wait strong { color:var(--gold); }.monstr-factor-list { grid-column:1/-1; display:flex; gap:6px; flex-wrap:wrap; }.monstr-factor { padding:4px 7px; border-radius:999px; background:rgba(240,107,117,.12); color:var(--muted); font-size:10px; }.monstr-factor.ok { background:rgba(53,201,139,.14); color:var(--green); }.monstr-loss-plan { grid-column:1/-1; display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }.monstr-loss-plan div { padding:7px; border-left:2px solid var(--gold); background:rgba(244,201,93,.06); color:var(--muted); font-size:10px; line-height:1.3; }.monstr-loss-plan b { display:block; color:var(--gold); margin-bottom:3px; }
    .monstr-signal-card:first-child { background:linear-gradient(135deg,rgba(53,201,139,.14),rgba(17,21,31,.35)); }.monstr-factor-list { padding-top:2px; }.monstr-factor-title { width:100%; color:var(--muted); font-size:10px; }.monstr-loss-plan div { border-radius:7px; }
    .monstr-zones { margin:10px 0 12px; }.monstr-zones-head { display:flex; align-items:center; gap:8px; margin-bottom:7px; }.monstr-zones-head strong { font-size:12px; }.monstr-zones-head span { color:var(--muted); font-size:10px; }.monstr-zone-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }.monstr-zone { padding:9px; border:1px solid var(--line); border-left:3px solid var(--gold); border-radius:8px; background:rgba(16,19,28,.7); }.monstr-zone.high { border-left-color:var(--green); }.monstr-zone.low { border-left-color:var(--muted); }.monstr-zone-top { display:flex; justify-content:space-between; gap:7px; font-size:11px; }.monstr-zone-top strong { color:var(--text); }.monstr-zone-priority { color:var(--gold); font-size:10px; font-weight:800; }.monstr-zone.high .monstr-zone-priority { color:var(--green); }.monstr-zone small { display:block; margin-top:5px; color:var(--muted); line-height:1.35; }.monstr-zone-levels { display:grid; grid-template-columns:1fr 1fr 1fr; gap:5px; margin-top:7px; font-size:10px; }.monstr-zone-levels b { display:block; color:var(--text); margin-top:2px; }.monstr-zone-levels span { color:var(--muted); }
    body[data-theme="playful"] .monstr-panel { border-color:#d7d9c8; background:linear-gradient(145deg,#fffdf7,#f1f4df); box-shadow:0 18px 40px rgba(73,88,35,.12); }
    body[data-theme="playful"] .monstr-signal-card { border-color:#d6dac2; background:rgba(255,255,250,.78); box-shadow:0 5px 14px rgba(73,88,35,.06); }
    body[data-theme="playful"] .monstr-signal-card:first-child { background:linear-gradient(135deg,#e8f8c8,#fffdf7); }
    body[data-theme="playful"] .monstr-zone { border-color:#d6dac2; border-left-color:#ff9b45; background:rgba(255,255,250,.82); box-shadow:0 5px 14px rgba(73,88,35,.06); }
    body[data-theme="playful"] .monstr-zone.high { border-left-color:#64a900; }.monstr-zone b { font-weight:750; }
    /* Дашборд сделок: спокойная иерархия и читаемые состояния */
    .trade-dashboard { margin-top:16px; padding:18px; background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 98%,transparent),color-mix(in srgb,var(--panel2) 32%,var(--panel))); }
    .trade-dashboard-head { padding-bottom:13px; border-bottom:1px solid var(--line); }.trade-dashboard-head h2 { font-size:18px; letter-spacing:-.3px; }.trade-dashboard-head span { font-size:10px; }
    .trade-stats { gap:9px; margin-top:14px; }.trade-stat { min-height:78px; padding:13px 14px; border-radius:12px; border-color:color-mix(in srgb,var(--line) 85%,transparent); background:rgba(20,24,35,.62); transition:transform .18s,border-color .18s,background .18s; }.trade-stat::after { width:66px; height:66px; right:-18px; bottom:-24px; }.trade-stat small { position:relative; z-index:1; font-size:10px; text-transform:uppercase; letter-spacing:.45px; }.trade-stat strong { position:relative; z-index:1; font-size:24px; }.trade-stat.clickable:hover,.trade-stat.clickable.selected { background:color-mix(in srgb,var(--brand) 8%,var(--panel)); }
    .trade-controls { margin-top:14px; padding:8px 10px; border:1px solid var(--line); border-radius:10px; background:rgba(12,15,23,.38); }.trade-controls label { font-size:10px; text-transform:uppercase; letter-spacing:.4px; }.trade-controls select { min-width:130px; border-radius:7px; background:var(--panel); }
    .trade-table { gap:5px; margin-top:12px; overflow-x:auto; }.trade-item { min-width:760px; min-height:44px; border-radius:8px; border-color:color-mix(in srgb,var(--line) 85%,transparent); background:rgba(13,16,24,.48); }.trade-item:not(.trade-item-head):hover { border-color:var(--blue); background:color-mix(in srgb,var(--blue) 5%,var(--panel)); }.trade-item-head { min-height:30px; padding:4px 12px; border:0; background:transparent; font-size:9px; }.trade-item-head span { color:var(--muted); }.trade-item strong { font-size:12px; }.trade-status { display:inline-flex; align-items:center; padding:2px 5px; border-radius:999px; background:rgba(244,201,93,.1); font-size:9px; }.trade-status.closed { background:rgba(137,146,168,.1); }.deal-close { border-radius:6px; }
    body[data-theme="playful"] .trade-dashboard { border-color:#d5d8c6; background:linear-gradient(145deg,#fffdf7,#f2f4e4); box-shadow:0 18px 40px rgba(73,88,35,.1); }
    body[data-theme="playful"] .trade-stat { border-color:#d6dac2; background:rgba(255,255,250,.75); } body[data-theme="playful"] .trade-controls { background:rgba(255,255,250,.65); }
    body[data-theme="playful"] .trade-item { color:#20251b; border-color:#d7dac8; background:#fffefa; box-shadow:0 3px 9px rgba(73,88,35,.055); }
    body[data-theme="playful"] .trade-item:not(.trade-item-head):hover { background:#f7fbdc; border-color:#a4e51d; }
    body[data-theme="playful"] .trade-item-head { color:#77796f; background:transparent; box-shadow:none; }
    body[data-theme="playful"] .trade-status { color:#b36a00; background:#fff1c7; }
    body[data-theme="playful"] .trade-status.closed { color:#77796f; background:#eceee3; }
    body[data-theme="playful"] .trade-pnl-positive { color:#579000; } body[data-theme="playful"] .trade-pnl-negative { color:#d8542d; }
    body[data-theme="playful"] .deal-action.opened { background:#dcefc1; border-color:#b9d78b; color:#5b7c27; }
    .trade-item:not(.trade-item-head) > span:nth-child(2) .trade-status { display:none; }
    /* Playful 2.0 — мягкая, воздушная и дружелюбная тема */
    body[data-theme="playful"] { background:radial-gradient(circle at 8% 0%,#fffef4 0,#f4f6e9 42%,#e8eedc 100%); color:#252b20; }
    body[data-theme="playful"] .app { max-width:1440px; padding:22px; }
    body[data-theme="playful"] .topbar { padding:10px 12px; border:1px solid #d9ddc7; border-radius:22px; background:rgba(255,255,249,.72); box-shadow:0 12px 28px rgba(92,108,49,.1); }
    body[data-theme="playful"] .brand { color:#28321d; font-size:22px; } body[data-theme="playful"] .brand span { color:#ff7418; }
    body[data-theme="playful"] .theme-picker { border-color:#d6dac2; background:#f9fbe9; } body[data-theme="playful"] .theme-picker button.active { color:#fff; }
    body[data-theme="playful"] .control { border-color:#d6dac2; background:#fffffa; border-radius:14px; } body[data-theme="playful"] .control input { color:#28321d; }
    body[data-theme="playful"] button, body[data-theme="playful"] select { border-color:#d0d6b8; background:#fbfdec; color:#3b432d; border-radius:11px; }
    body[data-theme="playful"] button:hover, body[data-theme="playful"] select:hover { border-color:#9fce21; background:#f4fbd6; }
    body[data-theme="playful"] button.active { background:#a4e51d; border-color:#8fca14; color:#25310d; box-shadow:0 5px 14px rgba(124,166,22,.24); }
    body[data-theme="playful"] .panel { border-color:#d8ddc8; background:rgba(255,255,249,.76); box-shadow:0 14px 32px rgba(83,100,43,.08); }
    body[data-theme="playful"] .chart-head { border-color:#dfe3d2; } body[data-theme="playful"] .chart-title { color:#303a24; }
    body[data-theme="playful"] .status { color:#7a806f; } body[data-theme="playful"] .tickers-head,body[data-theme="playful"] .activity-head { color:#7a806f; }
    body[data-theme="playful"] .ticker { background:#f8fbe7; border-color:#d6dfb8; color:#53631d; } body[data-theme="playful"] .ticker:hover { background:#eaf7bc; }
    body[data-theme="playful"] .side { background:rgba(255,255,249,.84); } body[data-theme="playful"] .signal { border-radius:15px; } body[data-theme="playful"] .metric,body[data-theme="playful"] .rr,body[data-theme="playful"] .comment { background:#f8faee; border:1px solid #e0e4d1; }
    body[data-theme="playful"] .activity-log { background:#303928; color:#f3f6df; border:1px solid #515d3c; } body[data-theme="playful"] .log-message { color:#eff4d7; }
    body[data-theme="playful"] .trade-dashboard-head h2 { color:#303a24; } body[data-theme="playful"] .trade-stat strong { color:#445b20; } body[data-theme="playful"] .trade-stat.active strong { color:#d47700; }
    body[data-theme="playful"] .monstr-intro, body[data-theme="playful"] .monstr-summary { color:#788161; }
    @media (max-width:900px) { .trade-dashboard { padding:13px; }.trade-stats { grid-template-columns:repeat(2,1fr); }.trade-controls { flex-wrap:wrap; }.trade-controls select { flex:1; min-width:120px; } }
    .trade-stat.clickable { cursor:pointer; text-align:left; transition:transform .18s,border-color .18s,box-shadow .18s; }.trade-stat.clickable:hover,.trade-stat.clickable.selected { transform:translateY(-2px); border-color:var(--brand); box-shadow:0 0 18px rgba(255,50,38,.2); }.trade-controls { display:flex; align-items:center; gap:8px; margin-top:12px; }.trade-controls label { color:var(--muted); font-size:11px; }.trade-controls select { padding:6px 8px; font-size:11px; }
    aside .deals { display:none; }
    .trade-status.wait { color:var(--gold); font-weight:800; }
    .monstr-row:not(.head) > * { min-width:0; padding:5px 7px; border-left:1px solid color-mix(in srgb,var(--line) 65%,transparent); white-space:nowrap; }
    .monstr-row:not(.head) > :first-child { border-left:0; }
    .monstr-row.head > * { padding:0 7px; }
    .monstr-row:not(.head):hover { border-color:var(--brand); background:color-mix(in srgb,var(--panel2) 70%,var(--bg)); }
    .monstr-visual { position:relative; margin:0 0 14px; padding:12px; border:1px solid var(--line); border-radius:11px; background:linear-gradient(145deg,rgba(24,29,42,.95),rgba(13,16,24,.9)); }
    .monstr-visual-head { display:flex; align-items:center; gap:10px; margin-bottom:8px; }.monstr-visual-head strong { font-size:13px; }.monstr-visual-head span { margin-left:auto; color:var(--muted); font-size:11px; }
    .monstr-map { display:block; width:100%; height:210px; border-radius:8px; background:rgba(7,10,16,.55); }.monstr-map text { font-family:Inter,Segoe UI,sans-serif; }
    .monstr-native-expand { position:absolute; right:20px; bottom:20px; z-index:3; width:30px; height:30px; padding:0; display:grid; place-items:center; background:rgba(17,21,31,.9); font-size:16px; }
    .monstr-native-chart { width:100%; height:clamp(360px,48vh,560px); }
    .monstr-native-wrap { position:relative; margin-top:8px; border:1px solid color-mix(in srgb,var(--line) 80%,transparent); border-radius:10px; overflow:hidden; background:var(--chart-bg); }
    .monstr-native-toolbar { display:flex; align-items:center; gap:8px; padding:8px 10px; border-bottom:1px solid var(--line); color:var(--muted); font-size:11px; }
    .monstr-native-toolbar strong { color:var(--text); }.monstr-native-toolbar span { margin-left:auto; }
    .monstr-native-expand:hover { border-color:var(--brand); color:var(--text); }
    .monstr-map-grid { stroke:rgba(137,146,168,.16); stroke-width:1; }.monstr-map-price { fill:none; stroke:#5ca9ff; stroke-width:2.5; stroke-linejoin:round; stroke-linecap:round; }.monstr-map-trend { fill:none; stroke:#35c98b; stroke-width:2; stroke-dasharray:7 5; opacity:.9; }
    .monstr-map-down { stroke:#f06b75; }.monstr-map-level { stroke:#b58cff; stroke-width:1.2; stroke-dasharray:4 4; }.monstr-map-entry { stroke:#f4c95d; stroke-width:1.8; }.monstr-map-correction { fill:#f4c95d; }.monstr-map-impulse { fill:#35c98b; }.monstr-map-entry-dot { fill:#f4c95d; stroke:#151821; stroke-width:2; }.monstr-map-label { fill:#aeb8ca; font-size:10px; }.monstr-map-label.level { fill:#b58cff; }.monstr-map-label.entry { fill:#f4c95d; }.monstr-map-label.title { fill:#edf1f7; font-size:12px; font-weight:700; }.monstr-map-candle-up { fill:#35c98b; stroke:#35c98b; }.monstr-map-candle-down { fill:#f06b75; stroke:#f06b75; }.monstr-map-wick { stroke-width:1; }.monstr-map-candle-correction { opacity:.48; }.monstr-map-candle-impulse { opacity:.9; }.monstr-map-live { fill:#f4c95d; stroke:#fff; stroke-width:2; animation:monstrPulse 1.45s ease-in-out infinite; }.monstr-map-target { stroke-width:1.4; stroke-dasharray:2 5; opacity:.8; }.monstr-map-target.tp { stroke:#35c98b; }.monstr-map-target.sl { stroke:#f06b75; }.monstr-map-label.target { fill:#35c98b; }.monstr-map-label.sl { fill:#f06b75; } @keyframes monstrPulse { 0%,100% { r:4; opacity:.7; } 50% { r:8; opacity:1; } }
    .monstr-visual-legend { display:flex; gap:12px; flex-wrap:wrap; margin-top:8px; color:var(--muted); font-size:10px; }.monstr-visual-legend i { display:inline-block; width:12px; height:3px; margin-right:4px; vertical-align:middle; border-radius:4px; }.monstr-visual-legend .i-trend { background:#35c98b; }.monstr-visual-legend .i-correction { background:#f4c95d; }.monstr-visual-legend .i-entry { background:#f4c95d; }.monstr-visual-legend .i-level { background:#b58cff; }
    .monstr-plan { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; margin-top:9px; }.monstr-plan span { display:block; color:var(--muted); font-size:10px; }.monstr-plan strong { display:block; margin-top:2px; color:var(--text); font-size:12px; }.monstr-plan .entry strong { color:var(--blue); }.monstr-plan .stop strong { color:var(--red); }.monstr-plan .target strong { color:var(--green); }.monstr-plan .average strong { color:var(--gold); }
    /* Money Monstr guideline: warm ivory + soft lime + orange, with restrained status colors. */
    body[data-theme="playful"] {
      --bg:#f5f7ed; --panel:#fffef8; --panel2:#eef3d8; --line:#d7dfc2;
      --text:#202a16; --muted:#7c836d; --blue:#9a712b; --green:#719900;
      --red:#e55e35; --gold:#ff8d1f; --purple:#a97731; --brand:#b8e52d;
      --brand2:#ff941f; --chart-bg:#fffef8; --chart-grid:#e2e7d4;
    }
    body[data-theme="playful"] .control { background:#fffef8; border-color:#d7dfc2; }
    body[data-theme="playful"] .control input { color:#202a16; }
    body[data-theme="playful"] .panel,
    body[data-theme="playful"] .trade-dashboard { background:#fffef8; border-color:#d7dfc2; }
    body[data-theme="playful"] .trade-stat { background:#fbfdea; border-color:#d7dfc2; }
    body[data-theme="playful"] .trade-stat.active { border-color:#b8e52d; background:#f4f9d9; }
    body[data-theme="playful"] .trade-stat.profit strong { color:#719900; }
    body[data-theme="playful"] .trade-stat.loss strong { color:#e55e35; }
    body[data-theme="playful"] .trade-stat.pnl strong { color:#596b22; }
    body[data-theme="playful"] .trade-controls { background:#fbfdea; border-color:#d7dfc2; }
    body[data-theme="playful"] .trade-controls select,
    body[data-theme="playful"] .deal-details-btn { background:#fffef8; border-color:#d7dfc2; color:#53631d; }
    body[data-theme="playful"] .trade-item { background:#fffef8; border-color:#d7dfc2; color:#202a16; }
    body[data-theme="playful"] .trade-item:not(.trade-item-head):hover { background:#f3f8d6; border-color:#b8e52d; }
    body[data-theme="playful"] .deal-details { background:#f8faec; border-color:#d7dfc2; color:#354126; }
    body[data-theme="playful"] .deal-close { background:#ff941f; border-color:#ff941f; color:#fff; }
    body[data-theme="playful"] .trade-pnl-positive { color:#719900; }
    body[data-theme="playful"] .trade-pnl-negative { color:#e55e35; }
    body[data-theme="playful"] .activity-log { background:#3b4630; border-color:#586747; color:#f6f9e7; }
    body[data-theme="playful"] .progress-overlay { background:rgba(245,247,237,.82); }
    body[data-theme="playful"] .progress-card { background:#fffef8; border-color:#b8e52d; box-shadow:0 18px 55px rgba(75,95,28,.18); }
    body[data-theme="playful"] .progress-title,
    body[data-theme="playful"] .progress-percent { color:#202a16; }
    body[data-theme="playful"] .progress-track { background:#e9efcf; border-color:#d7dfc2; }
    body[data-theme="playful"] .progress-fill { background:linear-gradient(90deg,#b8e52d,#ff941f); box-shadow:0 0 18px rgba(184,229,45,.4); }
    body[data-theme="playful"] .loading-word { color:#202a16; }
    body[data-theme="playful"] .loading-word i { color:#ff941f; }
    .trade-ticker-link { cursor:pointer; }
    .trade-ticker-link > strong { text-decoration:underline; text-decoration-color:color-mix(in srgb,var(--brand) 55%,transparent); text-underline-offset:3px; }
    .deal-refresh { margin-left:4px; padding:4px 8px; border-radius:8px; font-size:16px; line-height:1; color:var(--brand2); background:color-mix(in srgb,var(--brand) 8%,var(--panel)); }
    .deal-refresh:hover { color:var(--text); border-color:var(--brand); transform:rotate(25deg); }
    .deal-refresh.loading { animation:dealRefreshSpin .8s linear infinite; pointer-events:none; }
    @keyframes dealRefreshSpin { to { transform:rotate(360deg); } }

.theme-picker { display: none; }
    .theme-picker button[data-theme-choice="aggressive"] { display: none; }
    .metric.volume, .monstr-signal-card:nth-child(5) { display: none; }

    /* Mobile layout: one-column controls, readable cards, no page-wide overflow. */
    @media (max-width: 700px) {
      html, body { max-width:100%; overflow-x:hidden; }
      body { font-size:13px; }
      .app { width:100%; padding:8px; }
      .topbar { gap:8px; margin-bottom:9px; padding:8px !important; border-radius:16px !important; }
      .brand { width:auto !important; margin:0 auto 2px 0; font-size:18px !important; }
      .brand::before { width:28px; height:28px; margin-right:6px; font-size:15px; }
      .control { width:100%; min-width:0; display:grid; grid-template-columns:minmax(0,1fr) auto auto auto auto; gap:5px; padding:4px; }
      .control input { min-width:0; width:100%; padding:9px 8px; }
      .control button, .control select { min-height:40px; padding:8px 9px; }
      #strategy-select { grid-column:1/-1; width:100%; }
      .layout { display:block; }
      .chart-panel, .side, .tickers, .trade-dashboard, .activity, .monstr-panel { border-radius:16px !important; }
      .chart-head { flex-wrap:wrap; gap:6px; padding:10px; }
      .chart-title { width:100%; flex:1 0 100%; font-size:12px; }
      .chart-head .tf { flex:1 1 auto; min-width:42px; min-height:36px; padding:7px 4px; }
      #chart { height:clamp(280px,58vh,380px); min-height:280px; }
      .chart-expand { right:8px; bottom:32px; }
      .status { padding:6px 10px; font-size:10px; }
      .side { margin-top:9px; padding:12px; }
      .side h2 { margin-bottom:10px; }
      .signal { font-size:20px; padding:11px; }
      .metrics { gap:7px; }
      .metric { min-width:0; padding:9px; }
      .metric small { font-size:10px; white-space:nowrap; }
      .metric strong { display:block; overflow:hidden; text-overflow:ellipsis; font-size:14px; }
      .comment { min-height:60px; font-size:12px; }
      .tickers { margin-top:9px; padding:11px; }
      .ticker-list { gap:5px; max-height:92px; overflow:auto; }
      .ticker { padding:8px 9px; }
      .monstr-panel { margin-top:9px; padding:12px; }
      .monstr-head { gap:6px; }
      .monstr-head h2 { font-size:14px; }
      .monstr-summary { max-width:42%; font-size:10px; }
      .monstr-signal { grid-template-columns:1fr 1fr !important; gap:6px; }
      .monstr-signal-card { min-width:0; padding:8px; }
      .monstr-signal-card strong { font-size:13px; }
      .monstr-zone-grid { grid-template-columns:1fr; }
      .monstr-row { min-width:700px; }
      .trade-dashboard { margin-top:9px; padding:12px; }
      .trade-dashboard-head { flex-wrap:wrap; gap:7px; margin-bottom:10px; }
      .trade-dashboard-head h2 { font-size:15px; }
      .trade-dashboard-head span { order:3; width:100%; margin-left:0; font-size:10px; }
      .trade-stats { gap:6px; }
      .trade-stat { min-height:66px; padding:10px; }
      .trade-stat strong { font-size:19px; }
      .trade-controls { align-items:stretch; flex-wrap:wrap; gap:6px; padding:8px; }
      .trade-controls label { width:auto; align-self:center; }
      .trade-controls select { min-width:0; flex:1 1 130px; min-height:38px; }
      .trade-table { overflow:visible; }
      .trade-item { min-width:0 !important; grid-template-columns:1fr 1fr !important; gap:6px 10px; padding:10px; font-size:11px; }
      .trade-item-head { display:none; }
      .trade-item:not(.trade-item-head) > * { min-width:0; padding:0; text-align:left; white-space:normal; overflow:visible; }
      .trade-item:not(.trade-item-head) > *::before { display:block; margin-bottom:2px; color:var(--muted); font-size:9px; text-transform:uppercase; }
      .trade-item:not(.trade-item-head) > :nth-child(1)::before { content:'Тикер'; }
      .trade-item:not(.trade-item-head) > :nth-child(2)::before { content:'Направление'; }
      .trade-item:not(.trade-item-head) > :nth-child(3)::before { content:'Время'; }
      .trade-item:not(.trade-item-head) > :nth-child(4)::before { content:'Вход'; }
      .trade-item:not(.trade-item-head) > :nth-child(5)::before { content:'Текущая'; }
      .trade-item:not(.trade-item-head) > :nth-child(6)::before { content:'P&L'; }
      .trade-item:not(.trade-item-head) > :nth-child(7) { grid-column:1/-1; }
      .trade-item:not(.trade-item-head) > :nth-child(7)::before { content:''; }
      .deal-close, .deal-details-btn { min-height:38px; }
      .activity { margin-top:9px; padding:11px; }
      .activity-log { height:125px; font-size:10px; }
      .log-row { grid-template-columns:48px 42px 1fr; gap:5px; }
      .modal { padding:8px; }
      .modal-card { max-height:calc(100vh - 16px); overflow:auto; padding:16px; border-radius:16px; }
      .modal-head h2 { font-size:19px; }
      .chart-modal { width:100%; height:calc(100vh - 16px); padding:8px; }
      .chart-modal-head { flex-wrap:wrap; gap:6px; }
      .chart-modal-head strong { max-width:70%; font-size:12px; }
      .chart-modal-head span { width:100%; order:3; margin-left:0; font-size:9px; }
      .expanded-tfs { order:4; width:100%; margin:0; overflow:auto; }
      .expanded-tfs button { flex:1 0 42px; min-height:34px; }
    }

    @media (max-width:380px) {
      .control { grid-template-columns:minmax(0,1fr) auto auto; }
      .control #refresh, .control .account-btn { grid-row:2; }
      .control #refresh { grid-column:2; }
      .control .account-btn { grid-column:3; }
      .chart-head .tf { min-width:38px; font-size:11px; }
      .trade-stats { grid-template-columns:1fr 1fr; }
    }

    /* Keep every mobile header action aligned, including Monstr ИИ. */
    @media (max-width:700px) {
      .control { display:grid; grid-template-columns:1.15fr 1.15fr 1.35fr .72fr 1fr; align-items:stretch; }
      .control input { grid-column:1/-1; grid-row:1; width:100%; min-width:0; }
      .control #analyze { grid-column:1; grid-row:2; }
      .control #strategy { grid-column:2; grid-row:2; }
      .control #monstr { grid-column:3; grid-row:2; }
      .control #refresh { grid-column:4; grid-row:2; }
      .control .account-btn { grid-column:5; grid-row:2; }
      .control button { min-width:0; width:100%; padding:8px 4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
      .control #strategy-select { grid-column:1/-1; grid-row:3; width:100%; }
    }

    @media (max-width:380px) {
      .control { grid-template-columns:1.1fr 1.1fr 1.25fr .7fr .95fr; gap:4px; }
      .control button { font-size:10px; padding-left:2px; padding-right:2px; }
    }

    /* On phones the brand and the control bar must use separate full-width rows. */
    @media (max-width:700px) {
      .topbar { display:grid; grid-template-columns:1fr; align-items:stretch; }
      .brand { width:100% !important; margin:0 !important; }
      .topbar .control { width:100%; }
      .control button { font-size:12px; padding-left:6px; padding-right:6px; }
    }

    @media (max-width:380px) {
      .control button { font-size:11px; }
    }

    /* Mobile header: username on top, all analysis controls below it. */
    @media (max-width:700px) {
      .control { grid-template-columns:repeat(4,minmax(0,1fr)); }
      .control input { display:none; }
      .control .account-btn { grid-column:1/-1; grid-row:1; justify-self:end; width:auto; min-width:132px; padding-left:12px; padding-right:12px; }
      .control #analyze { grid-column:1; grid-row:2; }
      .control #strategy { grid-column:2; grid-row:2; }
      .control #monstr { grid-column:3; grid-row:2; }
      .control #refresh { grid-column:4; grid-row:2; }
      .control #strategy-select { grid-column:1/-1; grid-row:3; }
    }

    @media (max-width:380px) {
      .control .account-btn { min-width:118px; }
      .control button { font-size:11px; }
    }

    /* Mobile header final order: refresh + username on top, analysis actions below. */
    @media (max-width:700px) {
      .control #refresh { grid-column:1; grid-row:1; width:100%; }
      .control .account-btn { grid-column:2/-1; grid-row:1; justify-self:start; width:100%; min-width:0; }
      .control #analyze { grid-column:1; grid-row:2; }
      .control #strategy { grid-column:2; grid-row:2; }
      .control #monstr { grid-column:3/5; grid-row:2; }
    }

    /* Calculation details: use the same palette as the active theme in every UI version. */
    .monstr-details { color:var(--text); }
    .monstr-details summary { color:var(--muted); }
    .monstr-row { color:var(--text); background:var(--panel2); border-color:var(--line); }
    .monstr-row.head { color:var(--muted); background:color-mix(in srgb,var(--panel2) 82%,var(--bg)); }
    body[data-theme="aggressive"] .monstr-row { background:#151821; border-color:#303746; color:#edf1f7; }
    body[data-theme="aggressive"] .monstr-row.head { background:#202532; color:#8992a8; }
    body[data-theme="playful"] .monstr-row { background:#fffef8; border-color:#d7dfc2; color:#202a16; box-shadow:0 3px 9px rgba(73,88,35,.055); }
    body[data-theme="playful"] .monstr-row.head { background:#eef3d8; color:#7c836d; box-shadow:none; }
    body[data-theme="playful"] .monstr-row:not(.head) > * { border-left-color:#e3e8d3; }

    .trade-stat:has(#dash-profit-factor), .cabinet-stat:has(#cab-profit-factor) { display:none !important; }


/* Profi UI Lab: спокойная шкала от понятного старта до компактного терминала. */
.profi-design-picker{display:flex;align-items:center;gap:8px;max-width:440px;padding:6px 9px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--muted);font-size:11px}.profi-design-picker label{font-weight:800;color:var(--text);white-space:nowrap}.profi-design-picker select{padding:6px 8px;border-radius:8px;font-size:11px;min-width:170px}.profi-design-picker span{max-width:190px;line-height:1.25}
body[data-profi="profi-01"]{--panel:#ffffff;--panel2:#f1f5f2;--line:#d7e1dc;--text:#18342d;--muted:#6c8178;--brand:#2d9c78;--brand2:#9ed8bd;--blue:#4c8dff;--chart-bg:#fbfdfc;--chart-grid:#e4ece8}.profi-01 .panel{}
body[data-profi="profi-02"]{--panel:#fbfaf6;--panel2:#f3f0e8;--line:#ddd8cb;--text:#26352f;--muted:#7a817c;--brand:#6c9e89;--brand2:#c8d9cd;--chart-bg:#fffefa;--chart-grid:#e8e4da}
body[data-profi="profi-03"]{--panel:#f9fbff;--panel2:#eef3f8;--line:#d4e0eb;--text:#1e3347;--muted:#6f8191;--brand:#527da7;--brand2:#b8cde0;--chart-bg:#fbfdff;--chart-grid:#e0e8f0}
body[data-profi="profi-04"]{--panel:#fcfcff;--panel2:#f0f1f7;--line:#d9dbe7;--text:#252a3b;--muted:#73778a;--brand:#7166b5;--brand2:#c8c4e8;--chart-bg:#fcfcff;--chart-grid:#e5e5ef}
body[data-profi="profi-05"]{--panel:#f8fcfa;--panel2:#eaf4ef;--line:#cfe2d6;--text:#20382d;--muted:#708278;--brand:#3f8d69;--brand2:#b5d7c3;--chart-bg:#fbfefa;--chart-grid:#deebe2}
body[data-profi="profi-06"]{--panel:#f8fbfc;--panel2:#edf3f5;--line:#d1e0e4;--text:#20363d;--muted:#70848b;--brand:#438b9a;--brand2:#afd4d9;--chart-bg:#fcffff;--chart-grid:#dfebed}
body[data-profi="profi-07"]{--panel:#eef2f3;--panel2:#dfe7e8;--line:#c1ced0;--text:#223237;--muted:#68777b;--brand:#547b80;--brand2:#a8c1c0;--chart-bg:#f7faf9;--chart-grid:#d6e1e0}.profi-07 .panel{border-radius:10px}.profi-07 .app{max-width:1600px}
body[data-profi="profi-08"]{--panel:#f3f5f6;--panel2:#e4e9ec;--line:#c7d0d5;--text:#26343d;--muted:#6d7c84;--brand:#516f91;--brand2:#b4c7d8;--chart-bg:#fafcfd;--chart-grid:#dce4e8}.profi-08 .layout{grid-template-columns:minmax(0,1fr) 380px}.profi-08 .panel{border-radius:8px}
body[data-profi="profi-09"]{--panel:#f4f6f7;--panel2:#e8edf0;--line:#cbd5da;--text:#1e2d35;--muted:#66777f;--brand:#3e728a;--brand2:#acc7d1;--chart-bg:#fbfcfd;--chart-grid:#dce5e9}.profi-09 .panel{border-radius:6px;box-shadow:0 4px 14px rgba(30,45,53,.06)}.profi-09 .app{max-width:1700px}
body[data-profi="profi-10"]{--panel:#e9eef0;--panel2:#dbe4e7;--line:#b9c9ce;--text:#17313a;--muted:#61777e;--brand:#347d8d;--brand2:#a1c5ca;--chart-bg:#f5f9fa;--chart-grid:#d2e0e3}.profi-10 .panel{border-radius:5px;box-shadow:none}.profi-10 .app{max-width:1800px}.profi-10 .chart-head,.profi-10 .trade-item-head{font-size:12px;letter-spacing:.04em;text-transform:uppercase}
body[data-profi^="profi-"] .control{background:var(--panel)} body[data-profi^="profi-"] button.active{color:var(--text);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 16%,transparent)} body[data-profi^="profi-"] .brand span{color:var(--brand)}
@media(max-width:850px){.profi-design-picker{width:100%;max-width:none}.profi-design-picker span{display:none}}
