/* ── Components — UI elements — extracted from app.html in R_11a ── */

/* ── Card ────────────────────────────────────────────────── */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px;position:relative;overflow:hidden}
.card-title{font-size:12px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;display:flex;align-items:center;gap:6px}

/* ── Chips ───────────────────────────────────────────────── */
.chip{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:11px;padding:3px 8px;border-radius:99px;font-weight:500;white-space:nowrap}
.chip.up{background:var(--up-soft);color:var(--up)}
.chip.dn{background:var(--dn-soft);color:var(--dn)}
.chip.blue{background:var(--blue-soft);color:var(--blue)}
.chip.amber{background:var(--amber-soft);color:var(--amber)}
.chip.dim{background:rgba(255,255,255,0.05);color:var(--muted)}

/* ── Market chips ────────────────────────────────────────── */
.market-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.market-chip{display:inline-flex;align-items:center;padding:5px 9px;background:var(--surface-2);border-radius:14px;font-size:11px;font-family:var(--mono);font-weight:600;color:var(--muted);white-space:nowrap}
.link-btn{background:none;border:none;color:var(--blue);font-size:11px;cursor:pointer;padding:0;margin-left:auto;opacity:.8}
.link-btn:active{opacity:1}

/* ── Buttons ─────────────────────────────────────────────── */
.btn{display:flex;align-items:center;justify-content:center;gap:8px;border-radius:10px;font-size:16px;font-weight:500;padding:0 16px;height:44px;transition:opacity .15s,transform .1s;user-select:none}
.btn:active{transform:scale(.97);opacity:.85}
.btn-primary{background:linear-gradient(135deg,var(--blue),#4070e8);color:#fff;box-shadow:0 4px 20px rgba(91,141,255,0.3);width:100%}
.btn-secondary{background:var(--elevated);color:var(--text);border:1px solid var(--border-s);width:100%}
.btn-danger{background:var(--dn-soft);color:var(--dn);border:1px solid rgba(255,107,129,0.2);width:100%}
.btn-up{background:var(--up-soft);color:var(--up);border:1px solid rgba(61,220,151,0.2);width:100%}
.btn-sm{height:34px;font-size:14px;padding:0 12px;width:auto}

/* ══════════════════════════════════════════════════════════
   SCREEN 1 — DASHBOARD
══════════════════════════════════════════════════════════ */
.eth-card{background:linear-gradient(135deg,#131d2e,#0e1a2a);border:1px solid rgba(91,141,255,0.2)}
.eth-price{font-family:var(--mono);line-height:1;display:flex;align-items:baseline;gap:0;overflow:hidden}
.price-wrap{display:flex;align-items:baseline;gap:0;transition:none}
.price-dollar{font-size:18px !important;color:rgba(255,255,255,0.28);font-weight:400;margin-right:6px;align-self:flex-end;padding-bottom:3px}
.price-int{font-size:36px !important;font-weight:700;color:#fff;letter-spacing:-0.03em}
.price-dot{font-size:24px !important;color:var(--dim);font-weight:400}
.price-dec{font-size:24px !important;color:var(--dim);font-weight:400}
@keyframes priceOut{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-16px)}}
@keyframes priceIn {0%{opacity:0;transform:translateY(16px)}100%{opacity:1;transform:translateY(0)}}
.price-exit{animation:priceOut .22s ease forwards}
.price-enter{animation:priceIn .28s ease forwards;opacity:0}
.coin-dots{display:flex;gap:5px;align-items:center;margin-top:6px}
.coin-dot{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,0.18);transition:background .3s,transform .3s}
.coin-dot.active{background:var(--blue);transform:scale(1.4)}
.eth-change{display:flex;align-items:center;gap:8px;margin-top:8px}
.eth-live-dot{width:6px;height:6px;border-radius:50%;background:var(--up);animation:pulse 2s ease-in-out infinite;flex-shrink:0}

.stats-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.stat-box{background:var(--inset);border-radius:10px;padding:10px 8px;text-align:center}
.stat-val{font-family:var(--mono);font-size:19px;font-weight:600;display:block;margin-bottom:2px}
.stat-label{font-size:11px;color:var(--muted);font-weight:500}

.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.quick-grid-4{grid-template-columns:1fr 1fr;gap:10px}
.quick-grid-4 .quick-btn{padding:14px 10px}
.quick-btn{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 12px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;cursor:pointer;transition:background .15s}
.quick-btn:active{background:var(--elevated)}
.quick-btn-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center}
.quick-btn-label{font-size:14px;font-weight:500}
.quick-btn-sub{font-size:12px;color:var(--muted)}
.quick-stale-dot{position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%;background:var(--dn);animation:pulse-stale 2s infinite}
.quick-badge{position:absolute;top:-4px;right:-4px;background:var(--dn);color:#fff;font-size:9px;font-weight:700;padding:2px 5px;border-radius:8px;min-width:16px;text-align:center;line-height:1}
@keyframes pulse-stale{0%,100%{box-shadow:0 0 0 0 rgba(255,107,129,0.5)}50%{box-shadow:0 0 0 6px rgba(255,107,129,0)}}

/* ── Collapsible cards ───────────────────────────────────── */
details.card{padding:0}
details.card>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:14px;cursor:pointer;font-size:12px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;user-select:none;gap:6px}
details.card>summary::-webkit-details-marker{display:none}
details.card>summary .collapse-arrow{width:14px;height:14px;stroke:var(--muted);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s cubic-bezier(.4,0,.2,1);flex-shrink:0;margin-left:auto}
details.card[open]>summary .collapse-arrow{transform:rotate(180deg)}
details.card>summary+*{padding:0 14px 14px}
.sessions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.session-item{background:var(--surface);border:1.5px solid transparent;border-radius:10px;padding:10px 8px;text-align:center;transition:all .2s;position:relative;overflow:hidden}
.session-name{font-size:12px;color:var(--muted);margin-bottom:4px;font-weight:500;transition:color .2s}
.session-time{font-family:var(--mono);font-size:10px;color:var(--dim);transition:color .2s}
.session-item.active-now,.session-item.session-active{border-color:var(--up);background:var(--up-soft)}
.session-item.active-now .session-name,.session-item.session-active .session-name{color:var(--up);font-weight:700}
.session-item.session-active .session-time{color:var(--text)}
.session-item:not(.session-active)::after{content:'';position:absolute;inset:0;border-radius:9px;background:rgba(0,0,0,.18);pointer-events:none}
.session-name,.session-time{position:relative;z-index:1}

.trade-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border)}
.trade-row:last-child{border-bottom:none}
.trade-dir{width:48px;height:24px;border-radius:5px;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:.05em}
.trade-date .d{font-size:14px;font-weight:500}
.trade-date .t{font-size:12px;color:var(--muted);font-family:var(--mono)}
.trade-pnl{font-family:var(--mono);font-size:14px;font-weight:600;text-align:right;margin-left:auto}

.progress-wrap{background:var(--inset);border-radius:99px;height:8px;overflow:hidden;margin:8px 0 4px}
.progress-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--blue),var(--violet));transition:width .5s}

.cmd-banner{background:rgba(91,141,255,0.1);border:1px solid rgba(91,141,255,0.25);border-radius:10px;padding:12px 14px;display:flex;align-items:center;gap:10px;margin-bottom:4px}
.cmd-banner-text{flex:1;font-size:14px;color:var(--blue)}
.cmd-cancel{background:var(--dn-soft);color:var(--dn);border:1px solid rgba(255,107,129,0.2);border-radius:7px;font-size:13px;padding:6px 12px;font-weight:500}

/* Sticky bar smooth transitions (additional) */
.sticky-pnl{transition:color 0.2s ease}

/* Skeleton loading shimmer */
.skeleton{display:inline-block;background:linear-gradient(90deg,var(--surface-2),var(--surface-3),var(--surface-2));background-size:200% 100%;animation:skeleton-shimmer 1.4s infinite;border-radius:4px;color:transparent;user-select:none}
@keyframes skeleton-shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}

/* ── ALERTS CARD ── */
.alerts-card{padding:14px}
.alerts-header{display:flex;align-items:center;margin-bottom:14px}
.alerts-title{display:flex;align-items:center;gap:8px}
.alerts-title h3{font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--text);margin:0;text-transform:uppercase}
.alerts-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:18px;padding:0 6px;background:rgba(91,141,255,0.18);color:var(--blue);border-radius:9px;font-size:10px;font-weight:700}
.alerts-list{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.alerts-list:empty{display:none}
.alert-item{display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--elevated);border-radius:8px;font-size:13px}
.alert-item-dir{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;flex-shrink:0;font-size:13px;font-weight:700}
.alert-item-dir.above{background:rgba(61,220,151,0.15);color:var(--up)}
.alert-item-dir.below{background:rgba(255,107,129,0.15);color:var(--dn)}
.alert-item-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.alert-item-price{font-family:var(--mono);font-weight:600;font-size:13px;color:var(--text)}
.alert-item-meta{font-size:10px;color:var(--dim)}
.alert-item-delete{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--muted);cursor:pointer;border-radius:6px;flex-shrink:0;transition:background .15s,color .15s}
.alert-item-delete:active{background:rgba(255,107,129,0.12);color:var(--dn)}
.alerts-create{border-top:1px solid rgba(255,255,255,0.05);padding-top:14px}
.alerts-presets{margin-bottom:14px}
.presets-label{font-size:11px;color:var(--dim);margin-bottom:8px;font-weight:500}
.presets-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:6px}
.preset-btn{padding:9px 4px;background:var(--elevated);border:1px solid transparent;border-radius:8px;color:var(--text);font-size:12px;font-weight:700;font-family:var(--mono);cursor:pointer;transition:all .15s}
.preset-btn:active{background:var(--inset)}
.preset-btn.preset-up{color:var(--up);border-color:rgba(61,220,151,0.15)}
.preset-btn.preset-up:active{background:rgba(61,220,151,0.08);border-color:rgba(61,220,151,0.3)}
.preset-btn.preset-down{color:var(--dn);border-color:rgba(255,107,129,0.15)}
.preset-btn.preset-down:active{background:rgba(255,107,129,0.08);border-color:rgba(255,107,129,0.3)}
.alerts-divider{position:relative;text-align:center;margin:14px 0}
.alerts-divider::before{content:'';position:absolute;top:50%;left:0;right:0;height:1px;background:rgba(255,255,255,0.05)}
.alerts-divider span{position:relative;padding:0 12px;background:var(--surface);font-size:11px;color:var(--dim);font-weight:500}
.alerts-custom-input,.alerts-custom-direction{margin-bottom:12px}
.alerts-field-label{display:block;font-size:11px;color:var(--muted);margin-bottom:6px;font-weight:500}
.alerts-price-input{width:100%;padding:11px 14px;background:var(--elevated);border:1px solid var(--border);border-radius:9px;color:var(--text);font-size:15px;font-family:var(--mono);font-weight:600;outline:none;transition:border-color .15s;box-sizing:border-box;-moz-appearance:textfield}
.alerts-price-input::-webkit-inner-spin-button,.alerts-price-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.alerts-price-input::placeholder{color:var(--dim);font-weight:500}
.alerts-price-input:focus{border-color:var(--blue);background:var(--inset)}
.dir-segmented{display:grid;grid-template-columns:1fr 1fr;background:var(--inset);border-radius:9px;padding:3px;gap:0}
.dir-seg{display:flex;align-items:center;justify-content:center;gap:6px;padding:9px 10px;background:transparent;border:none;color:var(--muted);font-size:13px;font-weight:600;border-radius:6px;cursor:pointer;transition:all .2s}
.dir-seg.active{background:var(--elevated);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,0.25)}
.dir-seg.active[data-dir="above"]{color:var(--up)}
.dir-seg.active[data-dir="below"]{color:var(--dn)}
.alerts-submit-btn{width:100%;padding:11px;background:var(--blue);color:#fff;border:none;border-radius:9px;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s}
.alerts-submit-btn:active{opacity:.85;transform:scale(0.98)}

/* ══════════════════════════════════════════════════════════
   SCREEN 3 — АНАЛИЗ РЫНКА
══════════════════════════════════════════════════════════ */
.signal-row{display:grid;grid-template-columns:16px 1fr auto;gap:10px;align-items:start;padding:10px 12px;border-bottom:1px solid var(--border)}
.signal-row:last-child{border-bottom:none}
.signal-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;margin-top:3px;position:relative}
.signal-dot::before{content:'';position:absolute;inset:-3px;border-radius:50%;background:inherit;opacity:0.25;filter:blur(4px);z-index:-1}
.signal-dot.green{background:var(--up);box-shadow:0 0 0 2px rgba(61,220,151,0.18),0 0 8px var(--up-glow)}
.signal-dot.yellow{background:var(--amber);box-shadow:0 0 0 2px rgba(247,185,85,0.18),0 0 8px rgba(247,185,85,0.4)}
.signal-dot.red{background:var(--dn);box-shadow:0 0 0 2px rgba(255,107,129,0.18),0 0 8px rgba(255,107,129,0.4)}
#analyze-streaming-card[data-has-data="stale"] .analyze-title::after{content:' · обновить';color:var(--amber);font-size:13px;font-weight:500}
.signal-refresh-btn{background:transparent;border:1px solid var(--border);color:var(--muted);padding:4px 6px;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;transition:all 0.15s}
.signal-refresh-btn:hover{background:var(--elevated);color:var(--blue);border-color:var(--blue)}
.score-box.clickable{cursor:pointer;transition:transform 0.15s,opacity 0.15s;position:relative}
.score-box.clickable:active{transform:scale(0.97)}
.score-box.clickable.active{outline:2px solid currentColor;outline-offset:-2px}
.signal-row.dimmed{opacity:0.25}
.signal-row.highlighted{background:var(--elevated);border-radius:6px}
.signal-factor{font-size:13px;font-weight:500;color:var(--text);min-width:0;word-wrap:break-word}
.signal-comment{font-size:11px;color:var(--muted);text-align:right;max-width:160px;line-height:1.4;word-wrap:break-word;flex-shrink:0}

.score-row{display:flex;gap:10px;margin-bottom:12px}
.signals-list-wrap{overflow:hidden;transition:max-height .35s ease,opacity .25s ease}
.signals-list-wrap.collapsed{max-height:120px;-webkit-mask-image:linear-gradient(to bottom,#000 60%,transparent);mask-image:linear-gradient(to bottom,#000 60%,transparent)}
.signals-list-wrap.expanded{max-height:1200px;-webkit-mask-image:none;mask-image:none}
.score-box{flex:1;border-radius:10px;padding:10px;text-align:center;font-size:12px;font-weight:500;display:flex;flex-direction:column;align-items:center;gap:2px}
.score-box .num{font-family:var(--mono);font-size:24px;font-weight:600}
.score-lbl{font-size:11px;opacity:0.85}

.event-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}
.event-row:last-child{border-bottom:none}
.event-time{font-family:var(--mono);font-size:12px;color:var(--amber);white-space:nowrap}
.event-name{flex:1;font-size:13px}
.event-impact{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.calendar-empty-compact{padding:4px 0}
.ce-status{display:flex;align-items:center;gap:10px;padding:11px 13px;background:rgba(61,220,151,0.07);border:1px solid rgba(61,220,151,0.18);border-radius:10px;margin-bottom:10px}
.ce-check{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;background:var(--up);color:#000;border-radius:50%;font-size:12px;font-weight:700;flex-shrink:0}
.ce-text{font-size:13px;font-weight:500;color:var(--up)}
.ce-news-cta{width:100%;display:flex;align-items:center;gap:10px;padding:11px 13px;background:var(--elevated);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:13px;cursor:pointer;transition:background .15s,border-color .15s;text-align:left}
.ce-news-cta:active{background:var(--inset);border-color:rgba(91,141,255,0.35)}
.ce-news-icon{font-size:16px;flex-shrink:0;opacity:0.85}
.ce-news-label{flex:1;color:var(--text)}
.ce-news-label strong{color:var(--blue);font-weight:700}
.ce-news-arrow{font-size:15px;color:var(--muted);flex-shrink:0;transition:transform .15s}
.ce-news-cta:active .ce-news-arrow{transform:translateX(3px);color:var(--blue)}
.ce-news-empty{padding:8px 0 4px;font-size:12px;color:var(--dim);text-align:center;font-style:italic}

.analysis-summary{font-size:14px;color:var(--muted);line-height:1.6;padding:10px;background:var(--inset);border-radius:8px;border-left:3px solid var(--blue)}

/* ── Prediction card ──────────────────────────────────── */
.pred-time-boxes{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.pred-box{background:var(--inset);border-radius:10px;padding:12px 10px;text-align:center;border:1px solid transparent;transition:border-color .3s}
.pred-box.up{border-color:var(--up)}
.pred-box.dn{border-color:var(--dn)}
.pred-label{font-size:11px;color:var(--dim);margin-bottom:4px;text-transform:uppercase;letter-spacing:.06em}
.pred-range{font-size:16px;font-family:var(--mono);font-weight:700;margin:4px 0}
.pred-price-val{font-size:24px;font-family:var(--mono);font-weight:600}
.pred-pct-val{font-size:12px;margin-top:3px;font-weight:600}
.pred-signal-row{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 0 4px}
.pred-arrow{font-size:28px;line-height:1}
.pred-conf-wrap{margin:8px 0 4px}
.pred-conf-track{background:var(--inset);border-radius:6px;height:9px;overflow:hidden;margin-top:4px}
.pred-conf-fill{height:9px;border-radius:6px;transition:width .6s ease}
.pred-no-signal{padding:10px;margin:10px 0;background:rgba(247,185,85,0.08);border-radius:8px;font-size:12px;color:var(--amber);text-align:center}
.pred-factors{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.pred-fc{font-size:11px;padding:3px 7px;border-radius:5px;font-weight:600;letter-spacing:.03em}
.pred-fc.up{background:var(--up-soft);color:var(--up)}
.pred-fc.dn{background:var(--dn-soft);color:var(--dn)}
.pred-fc.neu{background:var(--inset);color:var(--dim)}
.pred-disclaimer{font-size:10px;color:var(--dim);margin-top:10px;padding:8px 10px;background:var(--surface-2);border-radius:6px;line-height:1.4}
.pred-disclaimer strong{color:var(--amber)}
.pred-warn-block{padding:8px 12px;background:rgba(255,107,129,.1);border:1px solid rgba(255,107,129,.3);border-radius:6px;color:var(--dn);font-size:11px;font-weight:600;margin-top:8px}
@keyframes predFlash{0%{opacity:.4}50%{opacity:1}100%{opacity:.4}}
.pred-updating{animation:predFlash .8s ease}

/* ══════════════════════════════════════════════════════════
   SCREEN 4 — ТОРГОВЫЙ ПЛАН
══════════════════════════════════════════════════════════ */
.plan-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.scenario-badge{font-size:12px;font-weight:700;padding:4px 10px;border-radius:6px;text-transform:uppercase;letter-spacing:.06em}
.scenario-long{background:var(--up-soft);color:var(--up)}
.scenario-short{background:var(--dn-soft);color:var(--dn)}
.plan-card-selectable{cursor:pointer;transition:border-color .18s,box-shadow .18s,background .18s;user-select:none}
.plan-card-selectable:hover{border-color:rgba(91,141,255,.25)}
.plan-card-selectable.selected{border-color:rgba(91,141,255,.55);box-shadow:0 0 0 2px rgba(91,141,255,.14),0 4px 18px rgba(91,141,255,.1)}
.plan-card-selectable.selected .card-title{color:var(--blue)}
.btn-trade-disabled{background:var(--surface2)!important;color:var(--dim)!important;border:1px solid var(--border)!important;cursor:not-allowed!important;opacity:.65}
.open-pos-section{margin:4px 0}
.expand-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;margin-top:8px;background:transparent;border:1px dashed rgba(255,255,255,0.08);border-radius:8px;color:var(--muted);font-size:12px;font-weight:500;cursor:pointer;transition:all 0.15s;user-select:none;font-family:var(--sans)}
.expand-btn:hover{background:var(--elevated);border-color:rgba(91,141,255,0.3);color:var(--blue);border-style:solid}
.expand-btn:active{transform:scale(0.98)}
.expand-btn svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform 0.3s cubic-bezier(.4,0,.2,1);flex-shrink:0}
.expand-btn.expanded svg{transform:rotate(180deg)}
.expand-btn .count{color:var(--blue);font-weight:600}
.trades-expand-btn{background:none;border:none;color:var(--dim);font-size:12px;cursor:pointer;padding:2px 6px;border-radius:4px;font-family:var(--sans);margin-left:auto;transition:color .15s}
.trades-expand-btn:hover{color:var(--muted)}
.level-dist{font-size:12px;color:var(--dim);margin-top:2px;font-family:var(--mono);line-height:1}
.plan-validity{font-size:13px;font-weight:500;margin-bottom:6px}
.plan-condition{font-size:13px;color:var(--muted);margin-bottom:10px;line-height:1.5;padding:8px 10px;background:var(--inset);border-radius:8px;border-left:2px solid var(--border-s)}
.plan-invalidation{font-size:12px;color:var(--dim);margin-top:8px;font-style:italic}
.scenario-2-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:8px;display:flex;align-items:center;gap:6px}
.plan-stale{font-size:12px;color:var(--dim);margin-top:4px}

.levels-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.level-item{background:var(--inset);border-radius:8px;padding:10px}
.level-label{font-size:11px;color:var(--muted);font-weight:500;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
.level-value{font-family:var(--mono);font-size:16px;font-weight:600}
.level-value.up{color:var(--up)}
.level-value.dn{color:var(--dn)}
.level-value.amber{color:var(--amber)}
.level-value.blue{color:var(--blue)}

/* ══════════════════════════════════════════════════════════
   MULTI-COIN EXPAND
══════════════════════════════════════════════════════════ */
.coins-toggle{cursor:pointer;transition:background .15s}
.coins-toggle:active{background:var(--elevated)}
.coins-chevron{transition:transform .25s cubic-bezier(.4,0,.2,1)}
.coins-panel{overflow:hidden;max-height:0;transition:max-height .3s cubic-bezier(.4,0,.2,1);margin-top:-8px}
.coins-panel.open{max-height:400px}
.coin-row{display:flex;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);border-radius:6px;transition:background .15s}
.coin-row:last-child{border-bottom:none}
.coin-row:active{background:var(--elevated)}
.coin-icon{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.coin-name{font-size:14px;font-weight:500;line-height:1.2}
.coin-pair{font-size:12px;color:var(--dim);font-family:var(--mono)}
.coin-price{font-family:var(--mono);font-size:14px;font-weight:600}
.coin-chg{font-family:var(--mono);font-size:12px;text-align:right;margin-top:1px}

/* ── Chart timeframe buttons ─────────────────────────────── */
.tf-btn{background:transparent;border:1px solid transparent;border-radius:6px;padding:5px 9px;font-size:12px;min-width:32px;text-align:center;font-family:var(--mono);color:var(--muted);cursor:pointer;transition:all .15s;height:30px;display:flex;align-items:center;justify-content:center;flex:1}
.tf-btn:hover{color:var(--text)}
.tf-btn.active{background:var(--blue);color:#fff;font-weight:700;box-shadow:0 1px 6px rgba(91,141,255,0.4)}
.chart-live-badge{display:flex;align-items:center;gap:5px;margin-left:auto;flex-shrink:1;min-width:0;overflow:hidden}
.chart-live-dot{width:7px;height:7px;border-radius:50%;background:var(--up);box-shadow:0 0 4px var(--up);animation:livePulse 2s infinite;flex-shrink:0}
.chart-live-dot.reconnecting{background:var(--amber);box-shadow:0 0 4px var(--amber);animation:livePulse .5s infinite}
.chart-live-dot.down{background:var(--dn);box-shadow:none;animation:none;opacity:.6}
@keyframes livePulse{0%,100%{opacity:1}50%{opacity:.45}}
.chart-live-price{font-family:var(--mono);font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Symbol selector */
.sym-btn{display:flex;align-items:center;gap:5px;background:var(--elevated);border:1px solid var(--border);border-radius:8px;padding:5px 10px;cursor:pointer;transition:background .15s;height:30px;flex-shrink:0}
.sym-btn:active{background:rgba(255,255,255,0.1)}
.sym-btn-label{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--text);min-width:64px}
.sym-divider{width:1px;height:16px;background:var(--border);flex-shrink:0;margin:0 2px}

/* Symbol search panel */
.sym-panel{position:absolute;top:48px;left:0;right:0;z-index:200;background:var(--surface);border-bottom:1px solid var(--border);overflow:hidden;max-height:0;transition:max-height .25s cubic-bezier(.4,0,.2,1)}
.sym-panel.open{max-height:272px}
.sym-search-wrap{padding:10px 12px 6px}
.sym-search{width:100%;background:var(--inset);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-family:var(--sans);font-size:14px;color:var(--text);outline:none;transition:border-color .15s}
.sym-search:focus{border-color:rgba(91,141,255,0.4)}
.sym-search::placeholder{color:var(--dim)}
.sym-list{overflow-y:auto;max-height:196px;padding:0 6px 8px}
.sym-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;cursor:pointer;transition:background .15s}
.sym-item:active,.sym-item.selected{background:var(--elevated)}
.sym-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.sym-item-name{font-size:14px;font-weight:500;flex:1}
.sym-item-pair{font-family:var(--mono);font-size:12px;color:var(--dim);margin-top:1px}
.sym-item-chg{font-family:var(--mono);font-size:13px;font-weight:500;text-align:right}

/* ── Chart indicators ─────────────────────────────────────── */
.ind-btn{background:transparent;border:1px solid var(--border);border-radius:5px;padding:3px 9px;font-size:11px;font-family:var(--mono);color:var(--dim);cursor:pointer;transition:all .15s;height:24px;display:flex;align-items:center}
.ind-btn:hover{border-color:var(--border-s);color:var(--muted)}
.ind-btn.active-20{border-color:rgba(91,141,255,0.4);color:var(--blue);background:var(--blue-soft)}
.ind-btn.active-50{border-color:rgba(247,185,85,0.4);color:var(--amber);background:var(--amber-soft)}
.ind-btn.active-200{border-color:rgba(167,139,250,0.4);color:var(--violet);background:rgba(167,139,250,0.1)}

/* ══════════════════════════════════════════════════════════
   POSITION CARD
══════════════════════════════════════════════════════════ */
.pos-card{background:linear-gradient(135deg,#131d2e,#0e1a2a);border:1px solid rgba(61,220,151,0.22);border-radius:var(--r);padding:14px;display:none}
.pos-card.short{border-color:rgba(255,107,129,0.22);background:linear-gradient(135deg,#1e1218,#160e14)}
.pos-dir{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:700;letter-spacing:.06em;margin-bottom:10px}
.pos-dir.long{background:var(--up-soft);color:var(--up)}
.pos-dir.short{background:var(--dn-soft);color:var(--dn)}
.pos-pnl{font-family:var(--mono);font-size:28px;font-weight:700;line-height:1;transition:color .4s}
.pos-pnl.pos{color:var(--up)}
.pos-pnl.neg{color:var(--dn)}
.pos-pnl-pct{font-family:var(--mono);font-size:13px;margin-left:8px;opacity:.8}
.pos-levels{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:12px 0 10px}
.pos-lvl{background:rgba(255,255,255,0.04);border-radius:8px;padding:8px 6px;text-align:center}
.pos-lvl-label{font-size:11px;color:var(--dim);text-transform:uppercase;font-weight:500;letter-spacing:.06em;margin-bottom:3px}
.pos-lvl-val{font-family:var(--mono);font-size:14px;font-weight:600}
.pos-progress-wrap{background:rgba(255,255,255,0.06);border-radius:99px;height:8px;overflow:hidden;position:relative;margin-bottom:6px}
.pos-progress-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--dn),var(--amber),var(--up));transition:width .6s cubic-bezier(.4,0,.2,1)}
.pos-progress-marker{position:absolute;top:50%;transform:translate(-50%,-50%);width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 6px rgba(255,255,255,0.5);transition:left .6s cubic-bezier(.4,0,.2,1)}
.pos-rr{font-family:var(--mono);font-size:13px;color:var(--muted)}
.pos-rr span{color:var(--text);font-weight:600}
.pos-meta{display:flex;align-items:center;justify-content:space-between;margin-top:4px}
.pos-live-dot{width:5px;height:5px;border-radius:50%;background:var(--up);animation:pulse 2s ease-in-out infinite;flex-shrink:0}

/* ══════════════════════════════════════════════════════════
   SCREEN 5 — КИТЫ
══════════════════════════════════════════════════════════ */
.gauge-wrap{position:relative;width:220px;height:136px;margin:0 auto 4px}
.gauge-wrap svg{width:100%;height:100%;overflow:visible}
.gauge-center{position:absolute;bottom:0;left:50%;transform:translateX(-50%);text-align:center;width:120px}
.gauge-val{font-family:var(--mono);font-size:32px;font-weight:600;line-height:1;transition:color .6s}
.gauge-label{font-size:12px;color:var(--muted);margin-top:3px;font-weight:500}

.ratio-bar{height:10px;border-radius:99px;overflow:hidden;display:flex;margin:6px 0}
.ratio-long{background:var(--up);transition:width .5s}
.ratio-short{background:var(--dn);flex:1;transition:width .5s}

.flow-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.flow-item{background:var(--inset);border-radius:8px;padding:10px}
.flow-label{font-size:11px;color:var(--muted);margin-bottom:4px;text-transform:uppercase;font-weight:500;letter-spacing:.06em}
.flow-val{font-family:var(--mono);font-size:14px;font-weight:600}

.whale-row{padding:10px 12px;background:var(--surface-2);border-radius:8px;margin-bottom:6px;cursor:pointer;font-size:13px}
.whale-row-main{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.whale-wallet{display:flex;align-items:center;gap:6px;min-width:0;flex:1}
.whale-addr-short{font-family:var(--mono);font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:110px}
.whale-tag-hl{background:rgba(91,141,255,0.15);color:var(--blue);font-size:9px;font-weight:700;padding:1px 5px;border-radius:4px;flex-shrink:0}
.whale-side-badge{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;flex-shrink:0}
.whale-side-badge.long{background:rgba(61,220,151,0.15);color:var(--up)}
.whale-side-badge.short{background:rgba(255,107,129,0.15);color:var(--dn)}
.whale-size-usd{font-family:var(--mono);font-size:13px;font-weight:600;flex-shrink:0}
.whale-row-details{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,0.06);font-size:11px;color:var(--dim);line-height:1.7;display:none}
.whale-icon{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.whale-addr{font-family:var(--mono);font-size:12px;color:var(--muted);flex:1}
.whale-amount{font-family:var(--mono);font-size:13px;font-weight:500;text-align:right}

/* ══════════════════════════════════════════════════════════
   WHALE ENGINE — REALTIME UI
══════════════════════════════════════════════════════════ */
.live-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--up);background:var(--up-soft);padding:2px 7px;border-radius:4px}
.live-badge::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--up);animation:pulse 1.5s ease-in-out infinite;flex-shrink:0}
.live-badge.stale{color:var(--amber);background:rgba(247,185,85,0.15)}
.live-badge.stale::before{background:var(--amber);animation:none}
.live-badge.off{color:var(--dim);background:rgba(255,255,255,0.05)}
.live-badge.off::before{display:none}
.metric-info{display:inline-flex;width:14px;height:14px;border-radius:50%;background:var(--elevated);color:var(--muted);font-size:9px;align-items:center;justify-content:center;margin-left:3px;cursor:pointer;border:1px solid var(--border);vertical-align:middle;flex-shrink:0}
.update-age{font-family:var(--mono);font-size:12px;color:var(--dim);margin-left:auto}

.score-factors{display:flex;gap:5px;justify-content:center;flex-wrap:wrap;margin-top:12px}
.factor-chip{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 7px;border-radius:4px;transition:background .3s,color .3s}
.factor-chip.up{background:var(--up-soft);color:var(--up)}
.factor-chip.dn{background:var(--dn-soft);color:var(--dn)}
.factor-chip.warn{background:var(--amber-soft);color:var(--amber)}
.factor-chip.neutral{background:rgba(255,255,255,0.05);color:var(--dim)}

.netflow-row{display:flex;align-items:center;gap:8px;padding:9px 10px;background:var(--inset);border-radius:8px;margin-top:8px}
.netflow-label{font-size:11px;color:var(--muted);font-weight:500;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;width:38px}
.netflow-bar-wrap{flex:1;height:6px;border-radius:99px;background:rgba(255,255,255,0.06);overflow:hidden}
.netflow-bar-fill{height:100%;border-radius:99px;transition:width .6s cubic-bezier(.4,0,.2,1),background .4s}
.netflow-val{font-family:var(--mono);font-size:13px;font-weight:600;white-space:nowrap;min-width:82px;text-align:right}

.exch-section-title{font-size:11px;color:var(--dim);font-weight:500;text-transform:uppercase;letter-spacing:.06em;padding-top:10px;margin-bottom:7px;border-top:1px solid var(--border);margin-top:10px}
.exch-row{display:flex;align-items:center;gap:7px;margin-bottom:6px;height:16px}
.exch-name{font-size:12px;font-weight:500;color:var(--muted);width:82px;flex-shrink:0}
.exch-bar-wrap{flex:1;height:4px;border-radius:99px;background:rgba(255,255,255,0.06);overflow:hidden}
.exch-bar{height:100%;border-radius:99px;background:var(--blue);transition:width .7s cubic-bezier(.4,0,.2,1)}
.exch-val{font-family:var(--mono);font-size:12px;color:var(--dim);text-align:right;min-width:58px}

.hm-tf-buttons{display:flex;gap:4px;margin-bottom:12px}
.hm-tf-btn{flex:1;padding:5px 8px;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--dim);font-size:11px;font-weight:600;cursor:pointer;transition:all .15s}
.hm-tf-btn:hover{background:var(--card-bg);color:var(--text)}
.hm-tf-btn.active{background:rgba(59,130,246,.15);color:#60a5fa;border-color:rgba(59,130,246,.4)}

.hm-zone-row{display:flex;align-items:center;gap:7px;margin-bottom:5px;height:20px}
.hm-zone-price{font-family:var(--mono);font-size:12px;font-weight:600;width:78px;flex-shrink:0}
.hm-zone-bar-wrap{flex:1;height:5px;border-radius:99px;background:rgba(255,255,255,0.06);overflow:hidden}
.hm-zone-bar{height:100%;border-radius:99px;transition:width .6s cubic-bezier(.4,0,.2,1)}
.hm-zone-val{font-family:var(--mono);font-size:10px;color:var(--dim);text-align:right;min-width:36px}

.flow-alert-box{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;margin-top:8px;font-size:13px;font-weight:500}
.flow-alert-box.dn{background:var(--dn-soft);color:var(--dn);border:1px solid rgba(255,107,129,.2)}
.flow-alert-box.up{background:var(--up-soft);color:var(--up);border:1px solid rgba(61,220,151,.2)}

.sort-tabs{display:flex;gap:4px;margin-bottom:10px}
.sort-tab{background:transparent;border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-size:12px;color:var(--dim);cursor:pointer;transition:all .15s;font-family:var(--sans)}
.sort-tab.active{background:var(--blue-soft);border-color:rgba(91,141,255,.3);color:var(--blue)}

.whale-card{padding:10px 0;border-bottom:1px solid var(--border)}
.whale-card:last-child{border-bottom:none}
.wc-top{display:flex;align-items:center;gap:5px;margin-bottom:5px}
.wc-addr{font-family:var(--mono);font-size:12px;color:var(--muted);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.src-badge{font-size:10px;padding:1px 5px;border-radius:4px;font-family:var(--mono);font-weight:600;flex-shrink:0}
.src-badge.hl{background:rgba(91,141,255,.15);color:var(--blue)}
.src-badge.hll{background:rgba(91,141,255,.08);color:rgba(91,141,255,.7)}
.src-badge.dydx{background:rgba(168,85,247,.15);color:#a855f7}
.wc-side{font-size:11px;font-weight:700;letter-spacing:.05em;padding:2px 7px;border-radius:4px}
.wc-side.long{background:var(--up-soft);color:var(--up)}
.wc-side.short{background:var(--dn-soft);color:var(--dn)}
.wc-stats{display:flex;align-items:baseline;gap:8px}
.wc-size{font-family:var(--mono);font-size:14px;font-weight:600}
.wc-pnl{font-family:var(--mono);font-size:13px;font-weight:500}
.wc-pnl.up{color:var(--up)}
.wc-pnl.dn{color:var(--dn)}
.wc-pnl-pct{font-size:12px;color:var(--dim)}
.wc-meta{display:flex;gap:10px;margin-top:4px;flex-wrap:wrap}
.wc-meta-item{font-size:12px;color:var(--dim)}
.wc-meta-item span{color:var(--muted)}

/* Skeleton loading */
.skel{background:linear-gradient(90deg,rgba(255,255,255,.04) 25%,rgba(255,255,255,.08) 50%,rgba(255,255,255,.04) 75%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite;border-radius:5px;height:13px}
.skel-row{display:flex;flex-direction:column;gap:7px;padding:10px 0;border-bottom:1px solid var(--border)}
.skel-row:last-child{border-bottom:none}
.skeleton-text{background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3,rgba(255,255,255,.06)) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite;color:transparent!important;border-radius:4px;min-width:40px}

/* ── Aggregate Signal ─────────────────────────────────── */
.agg-bias{font-size:22px;font-weight:700;text-align:center;padding:10px 0 4px;letter-spacing:-.01em}
.agg-bias.bullish{color:var(--up)}
.agg-bias.bearish{color:var(--dn)}
.agg-bias.neutral{color:var(--amber)}
.agg-details{text-align:center;font-size:12px;color:var(--muted);font-family:var(--mono)}
.agg-conf-bar{height:7px;background:var(--border);border-radius:4px;margin:8px 14px 2px;overflow:hidden}
.agg-conf-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--amber),var(--up));transition:width .5s}

/* ── Top Traders ──────────────────────────────────────── */
.tt-stats{display:flex;gap:12px;font-size:11px;color:var(--muted);margin-bottom:12px;padding:8px 10px;background:var(--elevated);border-radius:8px}
.tt-note{font-size:10px;color:var(--dim);margin-top:10px;line-height:1.4;text-align:center}
.tt-empty{text-align:center;color:var(--dim);font-size:12px;padding:20px 0;line-height:1.8}
.tt-card{padding:10px 0;border-bottom:1px solid var(--border)}
.tt-card:last-child{border-bottom:none;padding-bottom:0}
.tt-card-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.tt-rank{width:22px;font-size:13px;text-align:center;flex-shrink:0}
.tt-addr{font-family:var(--mono);font-size:12px;color:var(--muted);flex:1;letter-spacing:.02em}
.tt-score-pill{font-size:10px;font-weight:700;font-family:var(--mono);padding:2px 8px;border-radius:99px;flex-shrink:0}
.tt-score-pill.high{background:rgba(61,220,151,0.15);color:var(--up)}
.tt-score-pill.mid{background:rgba(247,185,85,0.15);color:var(--amber)}
.tt-score-pill.low{background:rgba(255,255,255,0.06);color:var(--muted)}
.tt-card-stats{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:4px}
.tt-stat-chip{font-size:11px;font-family:var(--mono);padding:2px 7px;border-radius:5px;font-weight:600;background:rgba(255,255,255,0.05);color:var(--muted);white-space:nowrap}
.tt-stat-chip.good{background:rgba(61,220,151,0.1);color:var(--up)}
.tt-stat-chip.warn{background:rgba(247,185,85,0.1);color:var(--amber)}
.tt-stat-chip.bad{background:rgba(255,107,129,0.1);color:var(--dn)}
.tt-card-pos{display:flex;align-items:center;gap:6px;padding:5px 8px;background:var(--elevated);border-radius:6px;margin-top:5px}
.tt-pos-badge{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;flex-shrink:0;letter-spacing:.04em}
.tt-pos-badge.long{background:rgba(61,220,151,0.18);color:var(--up)}
.tt-pos-badge.short{background:rgba(255,107,129,0.18);color:var(--dn)}
.tt-pos-coin{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--text)}
.tt-pos-size{font-family:var(--mono);font-size:11px;color:var(--muted);margin-left:auto}
.tt-pos-pnl{font-family:var(--mono);font-size:11px;font-weight:600}
.tt-no-pos{font-size:11px;color:var(--dim);font-style:italic;margin-top:3px;padding-left:2px}
.tt-flags{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.tt-flag{font-size:10px;padding:1px 5px;border-radius:4px;background:rgba(247,185,85,0.1);color:var(--amber)}
.tt-hidden-wrap{overflow:hidden;max-height:0;transition:max-height .38s cubic-bezier(.4,0,.2,1)}
.tt-hidden-wrap.open{max-height:2000px}

/* ── MODALS SHARED ── */
.app-toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%) translateY(20px);background:rgba(20,28,44,0.96);backdrop-filter:blur(12px);color:var(--text);padding:12px 16px;border-radius:10px;font-size:13px;box-shadow:0 4px 16px rgba(0,0,0,0.4);border:1px solid rgba(255,255,255,0.08);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:9999;max-width:90%;white-space:pre-line;text-align:center}
.app-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.72);z-index:300;display:none;align-items:flex-end;justify-content:center}
.modal-overlay.open{display:flex}
.modal-box{background:var(--card);border-radius:18px 18px 0 0;padding:20px 18px;width:100%;max-width:480px}
.modal-title{font-size:15px;font-weight:700;margin-bottom:4px}
.modal-body{font-size:13px;color:var(--muted);margin-bottom:14px;line-height:1.5}
.modal-btns{display:flex;gap:8px}
.modal-btn{flex:1;padding:12px 0;border-radius:12px;border:none;font-size:14px;font-weight:600;cursor:pointer}
.modal-btn.cancel{background:rgba(255,255,255,0.07);color:var(--muted)}
.modal-btn.confirm{background:var(--blue);color:#fff}
.modal-btn.danger{background:rgba(255,107,129,0.18);color:var(--dn)}

/* ── EMO OPTIONS ── */
.emo-opt{padding:9px 14px;border-radius:10px;background:rgba(255,255,255,0.07);font-size:13px;cursor:pointer;color:var(--text)}
.emo-opt:active{background:rgba(91,141,255,0.18)}

/* ── ENTRY MODAL INPUT ── */
.em-input{width:100%;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);border-radius:10px;padding:11px 12px;color:var(--text);font-size:15px;font-family:var(--mono);box-sizing:border-box;-moz-appearance:textfield}
.em-input::-webkit-inner-spin-button,.em-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.em-input:focus{outline:none;border-color:rgba(91,141,255,0.5)}

/* ── ACCOUNT-LINK MODAL (L1) — web auth-card look, CENTERED (blocking) ─────────────────
   Ported from aether-web/css/auth.css. All rules scoped under #link-overlay so the shared
   .modal-* / .em-input stay untouched. Synced blue #5B8DFF already matches the web.
   Blocking: the full-screen overlay intercepts all taps (no click-through); body scroll is
   locked in JS (_showLinkModal sets body overflow:hidden), card scrolls internally. */
#link-overlay{align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(3px);background:rgba(5,8,12,0.72);overscroll-behavior:contain}
@keyframes linkFade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
#link-overlay .modal-box{
  background:var(--card);                              /* #161F2B web card */
  border:1px solid rgba(255,255,255,0.09);            /* full border (all sides) */
  border-radius:20px;                                  /* centered card, every corner */
  box-shadow:0 24px 60px rgba(0,0,0,0.5);
  padding:26px 22px;
  width:100%;
  max-width:400px;
  max-height:90vh;                                     /* fits a short phone screen */
  overflow:auto;                                       /* scroll INSIDE the card, never clipped */
  overscroll-behavior:contain;
  animation:linkFade .2s ease;
}
@media (prefers-reduced-motion:reduce){#link-overlay .modal-box{animation:none}}
#link-overlay .modal-title{text-align:center;font-size:19px;letter-spacing:-0.3px;margin-bottom:6px}
#link-overlay .modal-body{text-align:center;color:var(--muted);margin-bottom:18px}

/* Google — заглушка 1:1 как веб (.auth-google): disabled ghost + янтарный бейдж «скоро» */
#link-overlay .link-google{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;background:var(--inset);border:1px solid rgba(255,255,255,0.06);border-radius:11px;padding:13px;font-size:13.5px;font-weight:600;color:var(--muted);cursor:not-allowed;position:relative;opacity:.7;font-family:var(--sans)}
#link-overlay .link-soon{position:absolute;right:12px;font-size:8.5px;color:var(--amber);border:1px solid rgba(247,185,85,0.3);border-radius:4px;padding:1px 6px;font-weight:600}
/* «или» разделитель с линиями (web .auth-or) */
#link-overlay .link-or{display:flex;align-items:center;gap:12px;margin:14px 0;color:var(--muted);font-size:11px}
#link-overlay .link-or::before,#link-overlay .link-or::after{content:'';flex:1;height:1px;background:rgba(255,255,255,0.08)}

/* tabs — pill container; active tab = blue gradient (web .auth-tabs/.auth-tab) */
.link-tabs{display:flex;gap:6px;background:var(--inset);border:1px solid rgba(255,255,255,0.06);border-radius:12px;padding:4px;margin-bottom:14px}
#link-overlay .link-tab{flex:1;background:none;border:none;border-radius:9px;padding:10px 0;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;transition:all .15s;font-family:var(--sans)}
#link-overlay .link-tab.active{background:linear-gradient(135deg,#4A7BF0,#7FA8FF);color:#fff}

/* fields — darker inset, sans (not mono), blue focus ring, muted placeholder */
#link-overlay .em-input{background:var(--inset);border:1px solid rgba(255,255,255,0.06);font-family:var(--sans);font-size:14px;color:var(--text)}
#link-overlay .em-input::placeholder{color:var(--muted)}
#link-overlay .em-input:focus{border-color:rgba(91,141,255,0.4)}

/* primary "Привязать" — blue gradient (web .auth-primary-btn) */
#link-overlay .modal-btn.confirm{background:linear-gradient(135deg,#4A7BF0,#7FA8FF);color:#fff;font-weight:700;border-radius:10px;transition:filter .15s}
#link-overlay .modal-btn.confirm:hover{filter:brightness(1.06)}
#link-overlay .modal-btn.confirm:disabled{opacity:.6;cursor:default}
/* secondary "Отправить код" — ghost (web .ghost) */
#link-overlay .modal-btn.cancel{background:transparent;border:1px solid rgba(255,255,255,0.09);color:var(--text);font-weight:600;border-radius:10px;flex:0 0 auto;padding:0 16px}
#link-overlay #link-error{text-align:center}

/* ── CALCULATOR ── */
.calc-field{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid rgba(255,255,255,0.05)}
.calc-stepper{display:flex;align-items:center;gap:0;border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.04)}
.calc-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--muted);font-size:18px;font-weight:300;cursor:pointer;transition:background .15s;user-select:none;line-height:1;flex-shrink:0}
.calc-btn:active{background:rgba(91,141,255,0.18);color:var(--blue)}
.calc-inp{width:80px;background:none;border:none;border-left:1px solid rgba(255,255,255,0.07);border-right:1px solid rgba(255,255,255,0.07);padding:0 6px;color:var(--text);font-size:14px;font-family:var(--mono);text-align:center;height:34px;-moz-appearance:textfield}
.calc-inp::-webkit-inner-spin-button,.calc-inp::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.calc-inp:focus{outline:none;background:rgba(91,141,255,0.06)}
.calc-results{margin-top:10px;padding-top:6px;border-top:1px solid rgba(255,255,255,0.07)}

/* ── BE SUGGESTION ── */
.be-suggestion{display:block;width:100%;margin-top:12px;padding:12px 16px;background:linear-gradient(90deg,rgba(91,141,255,0.15),rgba(91,141,255,0.05));border:1px solid rgba(91,141,255,0.3);border-radius:10px;color:var(--blue);font-size:13px;font-weight:600;text-align:center;cursor:pointer;animation:bePulse 2s infinite}
@keyframes bePulse{0%,100%{box-shadow:0 0 0 0 rgba(91,141,255,0.4)}50%{box-shadow:0 0 0 6px rgba(91,141,255,0)}}

/* ── READINESS CHECKLIST ── */
.ready-item{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,0.05)}
.ready-check{width:18px;height:18px;border-radius:5px;border:2px solid rgba(255,255,255,0.15);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:10px;transition:all .2s}
.ready-check.done{background:var(--up);border-color:var(--up);color:#fff}
.ready-check.done::after{content:'✓'}
.ready-label{font-size:13px;flex:1}
.ready-val{font-size:12px;font-family:var(--mono);color:var(--muted)}
.ready-score{text-align:center;font-size:13px;font-weight:600;padding:10px 0 2px}
.readiness-item{display:flex;align-items:center;gap:8px;font-size:13px;padding:2px 0}
.readiness-check{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--dim);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;font-size:10px;transition:all .2s}
.readiness-item.done .readiness-check{background:var(--up);border-color:var(--up);color:#fff}
.readiness-item.done .readiness-check::after{content:'✓'}
.readiness-label{flex:1;color:var(--muted)}
.readiness-item.done .readiness-label{color:var(--up)}
.readiness-val{font-size:11px;font-family:var(--mono);color:var(--dim)}

/* ── SHARED EXT-STAT ROW ── */
.ext-stat-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0}
.ext-stat-label{font-size:12px;color:var(--muted)}
.ext-stat-val{font-size:13px;font-family:var(--mono)}

/* ── Order Book ─────────────────────────────────────────── */
.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.card-header h3{font-size:12px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;gap:6px}
.card-update{font-size:10px;color:var(--dim);font-family:var(--mono)}
.ob-bar{display:flex;height:32px;border-radius:8px;overflow:hidden;margin:4px 0 12px;background:var(--elevated)}
.ob-buyers{background:linear-gradient(90deg,#1f7a4d,var(--up));display:flex;align-items:center;justify-content:space-between;padding:0 10px;color:#fff;font-weight:600;transition:width .4s ease}
.ob-sellers{background:linear-gradient(90deg,var(--dn),#b03050);display:flex;align-items:center;justify-content:space-between;padding:0 10px;color:#fff;font-weight:600;transition:width .4s ease}
.ob-label{font-size:11px;opacity:.85}
.ob-pct{font-size:14px;font-family:var(--mono)}
.ob-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:4px}
.ob-stat{background:var(--elevated);padding:8px;border-radius:8px;text-align:center}
.ob-stat-label{font-size:11px;color:var(--muted);display:block;margin-bottom:3px}
.ob-stat-value{font-size:13px;font-weight:600;font-family:var(--mono)}
.ob-details{margin-top:10px}
.ob-details summary{cursor:pointer;color:var(--muted);font-size:12px;user-select:none;padding:4px 0}
.ob-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
.ob-side-title{font-size:11px;color:var(--muted);margin-bottom:5px;text-transform:uppercase;letter-spacing:.04em}
.ob-side table{width:100%;font-size:11px;font-family:var(--mono);border-collapse:collapse}
.ob-side td{padding:2px 3px}
.ob-bids td{color:var(--up)}
.ob-asks td{color:var(--dn)}
.ob-disabled{position:relative}
.ob-disabled .ob-bar,.ob-disabled .ob-bids,.ob-disabled .ob-asks,.ob-disabled .ob-stats,.ob-disabled .ob-details,.ob-disabled .expand-btn{filter:blur(6px);opacity:0.4;pointer-events:none;user-select:none}
.ob-disabled::after{content:'🔒 Стакан доступен только для BTC, ETH, SOL';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:14px 20px;background:rgba(20,28,44,0.95);border:1px solid rgba(255,255,255,0.1);border-radius:10px;font-size:13px;font-weight:600;color:var(--muted);white-space:nowrap;z-index:10;box-shadow:0 4px 16px rgba(0,0,0,0.4)}
.ob-score-bull{color:var(--up)}
.ob-score-bear{color:var(--dn)}
.ob-score-neutral{color:var(--muted)}

/* ── Multi-source L/S ─────────────────────────────────── */
.multi-ls-wrap{margin-top:10px;border-top:1px solid var(--border);padding-top:10px}
.multi-ls-title{font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.05em;margin-bottom:7px}
.multi-ls-row{display:flex;align-items:center;gap:6px;margin-bottom:5px;font-size:12px;font-family:var(--mono)}
.multi-ls-src{width:54px;color:var(--muted)}
.multi-ls-bar-wrap{flex:1;height:5px;background:var(--border);border-radius:3px;overflow:hidden}
.multi-ls-bar{height:100%;background:var(--up);border-radius:3px;transition:width .3s}
.multi-ls-l{min-width:36px;color:var(--up);font-weight:600}
.multi-ls-s{min-width:36px;color:var(--dn);font-weight:600;text-align:right}
.multi-ls-agree{margin-top:8px;margin-bottom:12px;font-size:11px;padding:5px 10px;border-radius:7px;font-family:var(--mono);display:none}
.multi-ls-agree.agree{display:block;background:var(--up-soft);color:var(--up)}
.multi-ls-agree.disagree{display:block;background:var(--amber-soft);color:var(--amber)}

/* ── Sanity warning ── */
.sanity-warn{padding:10px 12px;margin-bottom:12px;background:rgba(255,107,129,0.12);border:1px solid rgba(255,107,129,0.3);border-radius:8px;font-size:12px;color:var(--dn);line-height:1.5}

/* ══════════════════════════════════════════════════════════
   SCREEN 6 — НОВОСТИ
══════════════════════════════════════════════════════════ */
.news-filters-wrap{position:relative;margin:0 -16px 12px;padding:0;border-bottom:1px solid rgba(255,255,255,.04);box-shadow:0 4px 8px -4px rgba(0,0,0,.4)}
.news-filters-wrap::before,.news-filters-wrap::after{content:'';position:absolute;top:0;bottom:12px;width:28px;pointer-events:none;z-index:2;transition:opacity .2s}
.news-filters-wrap::before{left:0;background:linear-gradient(to right,var(--bg) 30%,transparent);opacity:0}
.news-filters-wrap::after{right:0;background:linear-gradient(to left,var(--bg) 30%,transparent);opacity:1}
.news-filters-wrap.scrolled-start::before{opacity:1}
.news-filters-wrap.scrolled-end::after{opacity:0}
.news-filters{display:flex;gap:8px;padding:4px 16px 12px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-snap-type:x proximity;scroll-padding-left:16px}
.news-filters::-webkit-scrollbar{display:none}
.news-filter{flex-shrink:0;scroll-snap-align:start;display:inline-flex;align-items:center;gap:5px;padding:7px 14px;background:var(--elevated);border:1px solid transparent;border-radius:16px;color:var(--muted);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap;user-select:none}
.news-filter:hover{background:var(--inset);color:var(--text)}
.news-filter:active{transform:scale(.96)}
.news-filter.active{background:var(--blue);color:#fff;border-color:var(--blue);font-weight:600;box-shadow:0 1px 6px rgba(91,141,255,.35)}
.news-filter.active:hover{opacity:.9}
.news-meta{display:flex;justify-content:space-between;font-size:11px;color:var(--dim);padding:4px 2px 8px}
.news-feed{display:flex;flex-direction:column;gap:8px}
.news-item{padding:12px;background:var(--surface-2);border-radius:10px;cursor:pointer;transition:background .15s;border-left:3px solid transparent}
.news-item:active{background:var(--surface-3)}
.news-item.score-high{border-left-color:var(--dn)}
.news-item.score-medium{border-left-color:var(--amber)}
.news-item.score-low{border-left-color:var(--dim)}
.news-cat{display:inline-block;padding:1px 7px;background:rgba(91,141,255,.12);color:var(--blue);border-radius:4px;font-size:10px;font-weight:600}
.news-cat-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.news-orig-btn{background:var(--surface-2);border:1px solid var(--border);color:var(--muted);font-size:10px;font-weight:700;padding:2px 7px;border-radius:6px;cursor:pointer;transition:all .15s}
.news-orig-btn.active,.news-orig-btn:active{background:rgba(91,141,255,0.15);color:var(--blue);border-color:rgba(91,141,255,0.3)}
.news-en-flag{font-size:9px;background:rgba(247,185,85,0.15);color:var(--amber);padding:1px 5px;border-radius:4px;font-weight:600}
.news-title{font-size:13px;font-weight:600;line-height:1.35;color:var(--text);margin-bottom:6px;cursor:pointer}
.news-footer{display:flex;justify-content:space-between;font-size:10px;color:var(--dim)}
.news-source{font-weight:500}
.news-time{font-family:var(--mono)}
.news-score{display:inline-block;background:rgba(255,107,129,.12);color:var(--dn);padding:1px 5px;border-radius:3px;font-size:9px;font-weight:600;margin-left:4px}
.news-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:10px;cursor:pointer;transition:all .15s;position:relative;overflow:hidden}
.news-card:active{transform:scale(0.99);background:var(--elevated)}
.news-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px}
.news-cat-macro::before{background:var(--amber)}
.news-cat-regulation::before{background:var(--violet,#a78bfa)}
.news-cat-whale::before{background:var(--blue)}
.news-cat-hack::before{background:var(--dn)}
.news-cat-etf::before{background:var(--up)}
.news-cat-tech::before{background:var(--blue)}
.news-cat-general::before{background:var(--muted)}
.news-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.news-cat-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:rgba(91,141,255,.1);color:var(--blue);border-radius:10px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}
.news-age{font-size:11px;color:var(--dim);font-family:var(--mono)}
.news-card .news-title{font-size:14px;font-weight:600;color:var(--text);line-height:1.4;margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.news-card-footer{display:flex;align-items:center;justify-content:space-between}
.news-card .news-source{font-size:11px;color:var(--muted);font-weight:500}
.news-score-high{background:rgba(255,107,129,.15);color:var(--dn);padding:2px 8px;border-radius:4px;font-size:10px;font-weight:700;font-family:var(--mono)}
.news-score-mid{background:rgba(247,185,85,.15);color:var(--amber);padding:2px 8px;border-radius:4px;font-size:10px;font-weight:700;font-family:var(--mono)}
.news-score-low{display:none}

/* R_15b: asset filter row */
.news-asset-row{display:flex;gap:6px;padding:10px 16px 4px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.news-asset-row::-webkit-scrollbar{display:none}
.news-asset-filter{flex-shrink:0;padding:5px 12px;background:var(--elevated);border:1px solid var(--border);border-radius:12px;color:var(--muted);font-size:11px;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}
.news-asset-filter.active{background:var(--blue);color:#fff;border-color:var(--blue)}
.news-asset-filter:active{transform:scale(.95)}

/* R_15b: asset chips on cards */
.news-asset-chip{display:inline-flex;align-items:center;padding:1px 5px;border-radius:4px;font-size:9px;font-weight:700;letter-spacing:.03em}
.news-asset-btc{background:rgba(247,185,85,.15);color:var(--amber)}
.news-asset-eth{background:rgba(91,141,255,.15);color:var(--blue)}
.news-asset-sol{background:rgba(61,220,151,.15);color:#3DDC97}

/* R_15b: impact dot */
.news-impact-dot{font-size:10px;line-height:1}

/* R_15b: sniper section */
.news-sniper-block{margin-bottom:8px}
.news-sniper-label{font-size:10px;font-weight:700;color:var(--amber);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;display:flex;align-items:center;gap:4px}
.news-card-sniper{border-color:rgba(247,185,85,.25);background:rgba(247,185,85,.04)}
.news-card-sniper::before{background:var(--amber)!important}

/* R_15b: impact coloring */
.news-impact-bullish{border-left-color:rgba(0,200,100,.4)!important}
.news-impact-bullish::before{background:var(--up)!important}
.news-impact-bearish::before{background:var(--dn)!important}

/* R_15b: section divider */
.news-divider{font-size:10px;color:var(--dim);text-transform:uppercase;letter-spacing:.06em;padding:4px 0 8px;border-top:1px solid var(--border);margin-top:4px}

/* ═══ Streaming Analyze Card ═══ */
#analyze-streaming-card{padding:16px;margin-bottom:12px}
.analyze-state{animation:analyze-fade-in .3s ease}
@keyframes analyze-fade-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
#analyze-idle{text-align:center;padding:24px 16px}
.analyze-icon{font-size:38px;margin-bottom:10px;filter:drop-shadow(0 0 12px rgba(91,141,255,0.3))}
.analyze-title{font-size:16px;font-weight:700;margin:0 0 6px;color:var(--text)}
.analyze-subtitle{font-size:12px;color:var(--muted);margin:0 0 18px}
.analyze-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background:var(--blue);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s}
.analyze-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(91,141,255,0.3)}
#analyze-loading{text-align:center;padding:30px 16px}
.analyze-loader{display:inline-block;margin-bottom:12px}
.dot-flashing{position:relative;width:10px;height:10px;border-radius:50%;background-color:var(--blue);animation:dotFlashing 1s infinite linear alternate;animation-delay:.5s}
.dot-flashing::before,.dot-flashing::after{content:'';display:inline-block;position:absolute;top:0;width:10px;height:10px;border-radius:50%}
.dot-flashing::before{left:-15px;background-color:var(--blue);animation:dotFlashing 1s infinite alternate;animation-delay:0s}
.dot-flashing::after{left:15px;background-color:var(--blue);animation:dotFlashing 1s infinite alternate;animation-delay:1s}
@keyframes dotFlashing{0%{opacity:1}50%,100%{opacity:.2}}
.analyze-loading-text{font-size:13px;color:var(--muted);margin:0}
.analyze-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,0.05)}
.analyze-status{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--up);animation:pulse-dot 1.5s infinite}
.pulse-dot.done{animation:none;opacity:.5}
@keyframes pulse-dot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}
.analyze-price{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--blue)}

/* ═══ Skeleton loading (analyze) ═══ */
.skel{background:linear-gradient(90deg,var(--elevated) 0%,var(--surface) 50%,var(--elevated) 100%);background-size:200% 100%;animation:skel-shimmer 1.5s ease-in-out infinite;border-radius:4px;display:inline-block;color:transparent}
@keyframes skel-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ═══ Analyze Content ═══ */
.analyze-content{font-size:13px;line-height:1.6;color:var(--text);word-wrap:break-word;overflow:hidden;transition:max-height .38s cubic-bezier(.4,0,.2,1),opacity .25s ease;padding:4px 0}
.md-h1{font-size:16px;font-weight:700;margin:14px 0 8px;color:var(--text)}
.md-h2{font-size:14px;font-weight:700;margin:12px 0 6px;color:var(--text);border-bottom:1px solid var(--border);padding-bottom:4px}
.md-h3{font-size:13px;font-weight:600;margin:10px 0 6px;color:var(--blue)}
.md-ic{background:var(--elevated);padding:1px 5px;border-radius:3px;font-family:var(--mono);font-size:11px;color:var(--amber)}
.md-price{font-family:var(--mono);font-weight:600;color:var(--text);background:var(--elevated);padding:0 4px;border-radius:3px}
.md-pct-up{color:var(--up);font-weight:600;font-family:var(--mono)}
.md-pct-dn{color:var(--dn);font-weight:600;font-family:var(--mono)}
.md-pct-neutral{color:var(--muted);font-family:var(--mono)}
.md-ul{margin:6px 0 6px 8px;padding-left:12px;list-style:none}
.md-ul li{position:relative;padding-left:12px;margin-bottom:4px;line-height:1.5}
.md-ul li::before{content:'·';position:absolute;left:0;color:var(--muted);font-weight:bold}
.md-code{background:var(--inset);border:1px solid var(--border);border-radius:6px;padding:8px 10px;margin:8px 0;overflow-x:auto;font-size:11px;font-family:var(--mono);color:var(--muted)}
.md-hidden-tool{padding:6px 10px;background:var(--elevated);border-radius:6px;color:var(--muted);font-size:11px;font-style:italic;margin:6px 0;opacity:0.6}
.analyze-thinking{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 16px;gap:14px}
.hourglass-icon{font-size:40px;animation:hourglass-flip 2.5s ease-in-out infinite;filter:drop-shadow(0 0 12px rgba(91,141,255,0.3))}
@keyframes hourglass-flip{0%,40%{transform:rotate(0deg)}60%,100%{transform:rotate(180deg)}}
.thinking-text{font-size:14px;color:var(--muted);font-weight:500;letter-spacing:0.02em}
.md-table-wrap{overflow-x:auto;margin:8px 0;border-radius:6px;border:1px solid var(--border)}
.md-table{width:100%;border-collapse:collapse;font-size:12px}
.md-table thead{background:var(--elevated)}
.md-table th{padding:6px 10px;text-align:left;font-weight:600;color:var(--muted);border-bottom:1px solid var(--border)}
.md-table td{padding:6px 10px;border-bottom:1px solid var(--border);color:var(--text)}
.md-table tr:last-child td{border-bottom:none}
.md-table tbody tr:hover{background:rgba(255,255,255,0.02)}
.md-signal{display:flex;align-items:center;gap:12px;padding:10px 12px;margin:4px 0;border-radius:8px;border:1px solid var(--border);background:var(--elevated);transition:transform .15s}
.md-signal:hover{transform:translateX(2px)}
.md-signal-dot{font-size:18px;line-height:1;flex-shrink:0}
.md-signal-body{display:flex;flex-direction:column;flex:1;gap:2px;min-width:0}
.md-signal-label{font-size:12px;color:var(--muted);font-weight:500}
.md-signal-value{font-size:13px;color:var(--text);font-weight:500}
.md-signal-bull{border-left:3px solid var(--up);background:linear-gradient(90deg,rgba(61,220,151,0.06) 0%,var(--elevated) 100%)}
.md-signal-bear{border-left:3px solid var(--dn);background:linear-gradient(90deg,rgba(255,107,129,0.06) 0%,var(--elevated) 100%)}
.md-signal-neutral{border-left:3px solid var(--amber);background:linear-gradient(90deg,rgba(255,185,0,0.06) 0%,var(--elevated) 100%)}
.md-warning{background:rgba(255,107,129,0.08);border:1px solid rgba(255,107,129,0.25);border-left:4px solid var(--dn);padding:10px 14px;margin:10px 0;border-radius:6px;color:var(--text);font-size:12px;line-height:1.5}
.trade-plan{margin:14px 0;padding:14px;border-radius:12px;border:1px solid var(--border);background:var(--surface);position:relative;overflow:hidden}
.trade-plan::before{content:'';position:absolute;top:0;left:0;right:0;height:3px}
.trade-plan-long::before{background:linear-gradient(90deg,var(--up),var(--blue))}
.trade-plan-short::before{background:linear-gradient(90deg,var(--dn),var(--amber))}
.trade-plan-header{display:flex;align-items:center;gap:8px;margin-bottom:14px}
.trade-plan-arrow{font-size:22px;line-height:1}
.trade-plan-long .trade-plan-arrow{color:var(--up)}
.trade-plan-short .trade-plan-arrow{color:var(--dn)}
.trade-plan-dir{font-size:15px;font-weight:700;letter-spacing:0.05em}
.trade-plan-long .trade-plan-dir{color:var(--up)}
.trade-plan-short .trade-plan-dir{color:var(--dn)}
.trade-plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.trade-plan-cell{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:var(--elevated);border-radius:8px;border:1px solid var(--border)}
.trade-plan-cell-sl{border-color:rgba(255,107,129,0.2)}
.trade-plan-cell-tp{border-color:rgba(61,220,151,0.2)}
.trade-plan-label{font-size:10px;text-transform:uppercase;letter-spacing:0.06em;color:var(--muted);font-weight:600}
.trade-plan-value{font-size:15px;font-weight:700;font-family:var(--mono);color:var(--text)}
.trade-plan-cell-sl .trade-plan-value{color:var(--dn)}
.trade-plan-cell-tp .trade-plan-value{color:var(--up)}
.analyze-content h1,.analyze-content h2,.analyze-content h3{font-size:14px;font-weight:700;margin:14px 0 6px;color:var(--blue);border-bottom:1px solid var(--border);padding-bottom:6px}
.analyze-content strong{color:var(--text);font-weight:700;background:rgba(91,141,255,0.08);padding:0 4px;border-radius:3px}
.analyze-content ul,.analyze-content ol{margin:8px 0;padding-left:20px}
.analyze-content li{margin-bottom:4px}
.analyze-content table{width:100%;border-collapse:collapse;margin:8px 0;font-size:12px}
.analyze-content th,.analyze-content td{padding:4px 8px;border-bottom:1px solid rgba(255,255,255,0.05);text-align:left}
.analyze-content th{color:var(--muted);font-weight:600}
.typing-cursor{display:inline-block;width:2px;height:14px;background:var(--blue);animation:cursor-blink .8s infinite;vertical-align:middle;margin-left:1px}
@keyframes cursor-blink{0%,50%{opacity:1}51%,100%{opacity:0}}
.analyze-actions{display:flex;justify-content:flex-end;margin-top:12px;padding-top:8px;border-top:1px solid rgba(255,255,255,0.05)}
.analyze-content.collapsed{max-height:180px;-webkit-mask-image:linear-gradient(to bottom,#000 60%,transparent 100%);mask-image:linear-gradient(to bottom,#000 60%,transparent 100%)}
.analyze-content.expanded{max-height:4000px;overflow-y:auto;-webkit-mask-image:none;mask-image:none}
.analyze-toggle-btn{display:flex;align-items:center;justify-content:center;gap:5px;width:100%;margin-top:8px;padding:8px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.07);border-radius:8px;color:var(--muted);font-size:12px;cursor:pointer;transition:background .15s}
.analyze-toggle-btn:hover{background:rgba(255,255,255,0.08);color:var(--text)}
.analyze-toggle-btn svg.rotated{transform:rotate(180deg)}

/* ═══ News Modal (bottom sheet) ═══ */
.news-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity 0.25s}
.news-modal.open{opacity:1;pointer-events:auto}
.news-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.65);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.news-modal-content{position:relative;width:100%;max-width:600px;max-height:90vh;background:#131A24;border-radius:20px 20px 0 0;border-top:1px solid rgba(255,255,255,.08);overflow-y:auto;transform:translateY(100%);transition:transform 0.3s cubic-bezier(0.4,0,0.2,1);-webkit-overflow-scrolling:touch;padding-bottom:env(safe-area-inset-bottom,0)}
.news-modal.open .news-modal-content{transform:translateY(0)}
.news-drag-handle{width:36px;height:4px;background:rgba(255,255,255,.15);border-radius:2px;margin:10px auto 0}
.news-modal-body{padding:0 0 20px;display:flex;flex-direction:column}
/* impact bar */
.news-modal-impact-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px 8px;border-bottom:1px solid rgba(255,255,255,.06);gap:8px}
.news-modal-impact-label{font-size:12px;font-weight:700}
.news-modal-chip-row{display:flex;gap:5px;flex-shrink:0}
.news-modal-impact-bullish{background:rgba(61,220,151,.07)}
.news-modal-impact-bullish .news-modal-impact-label{color:#3DDC97}
.news-modal-impact-bearish{background:rgba(248,113,113,.05)}
.news-modal-impact-bearish .news-modal-impact-label{color:#f87171}
.news-modal-impact-neutral .news-modal-impact-label{color:var(--muted)}
/* header */
.news-modal-header{padding:12px 16px 10px}
.news-modal-meta{display:flex;gap:8px;margin-bottom:8px;align-items:center;flex-wrap:wrap}
.news-score-badge{padding:2px 7px;border-radius:5px;font-size:10px;font-weight:700;background:rgba(61,220,151,.15);color:#3DDC97}
.news-modal-title{font-size:15px;font-weight:600;line-height:1.4;color:var(--text);margin:0 0 6px}
.news-modal-info{font-size:11px;color:rgba(255,255,255,.35)}
/* summary */
.news-modal-summary{display:flex;flex-direction:column;gap:8px;padding:12px 16px 4px}
/* left-border summary blocks */
.news-sum-block{background:rgba(255,255,255,.03);border-radius:10px;padding:11px 12px;border-left:2px solid}
.news-sum-what{border-color:rgba(91,141,255,.5)}
.news-sum-why{border-color:rgba(247,185,85,.5)}
.news-sum-trade{border-color:rgba(61,220,151,.5)}
.news-sum-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px;color:rgba(255,255,255,.4)}
.news-sum-txt{font-size:13px;color:rgba(255,255,255,.85);line-height:1.55}
/* legacy summary blocks (fallback for plain paragraphs) */
.news-summary-block{display:flex;gap:12px;padding:12px;background:var(--elevated);border-radius:10px}
.news-summary-emoji{font-size:22px;flex-shrink:0;line-height:1.2}
.news-summary-text{flex:1;min-width:0}
.news-summary-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;color:var(--blue);margin-bottom:4px}
.news-summary-content{font-size:13px;line-height:1.5;color:var(--text)}
.news-summary-paragraph{font-size:13px;line-height:1.6;color:rgba(255,255,255,.85);margin:0;padding:0 16px}
.news-loading{display:flex;flex-direction:column;align-items:center;padding:30px 16px;gap:12px;color:var(--muted);font-size:13px}
.news-empty{text-align:center;padding:24px 16px;color:var(--muted);font-size:13px;line-height:1.5}
/* tags */
.news-modal-tags{display:flex;flex-wrap:wrap;gap:5px;padding:10px 16px 2px}
.news-modal-tag{padding:3px 8px;border-radius:6px;font-size:10px;font-weight:600;background:rgba(255,255,255,.06);color:rgba(255,255,255,.4)}
/* source button */
.news-modal-src-btn{display:block;width:calc(100% - 32px);margin:10px 16px 0;padding:10px;border-radius:10px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);font-size:12px;font-weight:600;color:rgba(255,255,255,.45);cursor:pointer;text-align:center}
/* R_15b Stage 9: modal impact bar + asset chips (kept for asset chip colors) */
.news-modal-impact-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px 8px;border-bottom:1px solid rgba(255,255,255,.06);gap:8px}
.news-modal-impact-bullish{background:rgba(52,199,89,0.12);color:#34c759}
.news-modal-impact-bearish{background:rgba(255,69,58,0.12);color:#ff453a}
.news-modal-impact-neutral{background:var(--elevated);color:var(--muted)}
.news-modal-asset-chip{padding:2px 7px;border-radius:10px;font-size:10px;font-weight:700;background:rgba(255,255,255,0.08);color:var(--text)}
.news-modal-desc{font-size:13px;color:var(--muted);line-height:1.5}
/* R_20: key numbers grid */
.news-modal-kn-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 4px}
.news-modal-kn{background:rgba(255,255,255,.03);border-radius:8px;padding:8px 10px}
.news-modal-kn-val{font-size:16px;font-weight:700;color:#fff;font-family:var(--mono,monospace)}
.news-modal-kn-lbl{font-size:9px;color:var(--dim);margin-top:2px;text-transform:uppercase;letter-spacing:.04em}

/* R_15b-layout: screen-header + asset chips */
.screen-header{display:flex;align-items:flex-start;justify-content:space-between;padding:14px 16px 10px;gap:12px}
.screen-header-left{display:flex;flex-direction:column;gap:3px;min-width:0}
.screen-header-title{font-size:18px;font-weight:700;color:var(--text);line-height:1.2}
.screen-header-sub{font-size:11px;color:var(--muted);white-space:nowrap}
/* Asset chips в шапке — компактные иконки */
.news-asset-chips{display:flex;gap:4px;align-items:center;flex-shrink:0;padding-top:2px}
.news-asset-chip-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:var(--elevated);border:1px solid var(--border);border-radius:50%;color:var(--muted);font-size:13px;cursor:pointer;transition:all .15s;flex-shrink:0}
.news-asset-chip-btn.active{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:0 1px 6px rgba(91,141,255,.3)}
.news-asset-chip-btn:active{transform:scale(.9)}
.news-asset-chip-btn[data-asset="all"]{width:auto;padding:0 10px;border-radius:15px;font-size:11px;font-weight:700}
/* Old asset-row replaced by screen-header chips */
.news-asset-row{display:none}
.news-asset-filter{display:none}

/* ── R_16.1: Asset Switcher ──────────────────────────────── */
.asset-switcher{position:relative;display:inline-block}
.asset-current{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;background:var(--elevated);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-size:13px;font-weight:600;cursor:pointer;transition:background 0.15s,border-color 0.15s;line-height:1}
.asset-current:hover{background:var(--surface);border-color:var(--border-s)}
.asset-current[aria-expanded="true"]{background:var(--surface);border-color:var(--border-s)}
.asset-switcher .asset-icon{font-size:14px;line-height:1}
.asset-caret{font-size:9px;opacity:0.5;transition:transform 0.15s}
.asset-current[aria-expanded="true"] .asset-caret{transform:rotate(180deg)}
.asset-dropdown{position:absolute;top:calc(100% + 4px);left:0;min-width:170px;margin:0;padding:4px;list-style:none;background:var(--elevated);border:1px solid var(--border-s);border-radius:var(--r-sm);box-shadow:0 4px 16px rgba(0,0,0,0.4);z-index:200}
.asset-dropdown[hidden]{display:none}
.asset-option{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;cursor:pointer;transition:background 0.1s;font-size:13px;font-weight:600;color:var(--text)}
.asset-option:hover,.asset-option:focus{background:var(--surface);outline:none}
.asset-option.is-active{background:var(--blue-soft);color:var(--blue)}
.asset-option .asset-fullname{color:var(--muted);font-size:11px;font-weight:400;margin-left:auto}

/* ── R_16.3: BTC Dom regime label ───────────────────────── */
.btc-dom-regime.bitcoin_season{color:var(--amber)}
.btc-dom-regime.altseason{color:var(--blue)}
.btc-dom-regime.neutral{color:var(--muted)}

/* ── R_16.8: Coming Soon screens ─────────────────────────────── */
.coming-soon-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh;gap:16px;padding:32px;text-align:center}
.coming-soon-icon{font-size:52px;margin-bottom:4px;opacity:.9}
.coming-soon-title{font-size:22px;font-weight:700;color:var(--text)}
.coming-soon-desc{font-size:14px;color:var(--muted);line-height:1.6;max-width:260px}
.coming-soon-tag{display:inline-block;margin-top:8px;font-size:11px;color:var(--blue);font-weight:600;letter-spacing:.03em}
.coming-soon-eta{margin-top:8px;padding:6px 16px;background:rgba(91,141,255,.1);border:1px solid rgba(91,141,255,.2);border-radius:20px;font-size:12px;font-weight:600;color:var(--blue)}

/* Stocks btn — matches asset-current style exactly */
.stocks-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;background:var(--elevated);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,transform .1s;line-height:1;white-space:nowrap}
.stocks-btn:hover{background:var(--surface);border-color:var(--border-s)}
.stocks-btn:active{transform:scale(.94)}

@keyframes stocks-glow {
  0%   { box-shadow: 0 0 4px 1px rgba(61,220,151,.15), 0 0 0 rgba(61,220,151,0); }
  50%  { box-shadow: 0 0 10px 3px rgba(61,220,151,.4), 0 0 20px 4px rgba(61,220,151,.12); }
  100% { box-shadow: 0 0 4px 1px rgba(61,220,151,.15), 0 0 0 rgba(61,220,151,0); }
}

.stocks-btn{
  animation: stocks-glow 2.4s ease-in-out infinite;
  border-color: rgba(61,220,151,.35) !important;
}
.stocks-btn:active{ animation:none; box-shadow:none }

.stocks-icon{display:flex;align-items:center;justify-content:center;color:#3DDC97;width:14px;height:14px;flex-shrink:0}
.stocks-name{font-size:13px;font-weight:600;color:var(--text)}
.stocks-caret{font-size:9px;opacity:.45;line-height:1;transition:opacity .15s,transform .15s}
.stocks-btn:hover .stocks-caret{opacity:.8;transform:translate(1px,-1px)}

/* ── R_16.8c: Extras popover ─────────────────────────────────── */
.extras-pop-backdrop{position:fixed;inset:0;z-index:899;display:none}
.extras-pop-backdrop.open{display:block}

.extras-popover{
  position:fixed;z-index:900;width:190px;
  background:#18202C;
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;
  padding:8px;
  box-shadow:0 12px 40px rgba(0,0,0,.7),0 2px 8px rgba(0,0,0,.4);
  transform-origin:bottom right;
  transform:scale(.75) translateY(6px);
  opacity:0;pointer-events:none;
  transition:transform .18s cubic-bezier(.34,1.4,.64,1),opacity .14s ease;
}
.extras-popover.open{transform:scale(1) translateY(0);opacity:1;pointer-events:auto}

.extras-pop-title{
  font-size:10px;font-weight:700;letter-spacing:.07em;
  text-transform:uppercase;color:rgba(255,255,255,.3);
  padding:4px 8px 8px;
}

.extras-pop-item{
  background:transparent;
  display:flex;align-items:center;gap:10px;
  width:100%;padding:10px 8px;
  border-radius:10px;cursor:pointer;
  transition:background .12s;text-align:left;
}
.extras-pop-item:hover,.extras-pop-item:active{background:rgba(255,255,255,.06)}

.extras-pop-icon{
  font-size:18px;width:24px;text-align:center;flex-shrink:0;
  background:none !important;
  border-radius:0 !important;
  padding:0 !important;
}

.extras-pop-text{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}
.extras-pop-label{font-size:13px;font-weight:600;color:rgba(255,255,255,.9);line-height:1.3}
.extras-pop-sub{font-size:10px;color:rgba(255,255,255,.35)}

.extras-pop-badge{
  font-size:9px;font-weight:700;
  padding:2px 5px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.08);
  border-radius:5px;
  color:rgba(255,255,255,.4);
  flex-shrink:0;
}

/* ── R_16.8: Toast ───────────────────────────────────────────── */
.toast-message{position:fixed;bottom:80px;left:50%;transform:translateX(-50%) translateY(12px);background:var(--elevated);border:1px solid var(--border);border-radius:10px;padding:10px 18px;font-size:13px;color:var(--text);z-index:2000;opacity:0;transition:opacity .2s,transform .2s;white-space:nowrap;max-width:90vw;text-align:center}
.toast-message.visible{opacity:1;transform:translateX(-50%) translateY(0)}

/* ── R_18: Whale Alerts redesign ────────────────────────────── */
.wa-header{display:flex;align-items:center;gap:7px;margin-bottom:12px}
.wa-live-dot{width:7px;height:7px;border-radius:50%;background:#f87171;flex-shrink:0;animation:wa-pulse 1.8s ease-in-out infinite}
@keyframes wa-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}
.wa-card-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,.4);flex:1}
.wa-card-age{font-size:10px;color:var(--dim);margin-left:auto}
.wa-refresh-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;transition:all .15s}
.wa-refresh-btn:hover{background:var(--elevated);color:var(--text)}
.wa-feed{display:flex;flex-direction:column}
.wa-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;transition:opacity .1s}
.wa-row:last-child{border-bottom:none;padding-bottom:0}
.wa-row:active{opacity:.7}
.wa-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0;font-family:var(--mono,monospace)}
.wa-icon-btc{background:rgba(247,185,85,.12);color:var(--amber)}
.wa-icon-eth{background:rgba(91,141,255,.12);color:var(--blue)}
.wa-icon-sol{background:rgba(61,220,151,.12);color:#3DDC97}
.wa-body{flex:1;min-width:0}
.wa-title{font-size:12px;font-weight:600;color:rgba(255,255,255,.9);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wa-sub{display:flex;align-items:center;gap:5px;margin-top:3px}
.wa-chip{display:inline-flex;align-items:center;padding:1px 5px;border-radius:4px;font-size:9px;font-weight:700;letter-spacing:.03em;flex-shrink:0}
.wa-chip-btc{background:rgba(247,185,85,.15);color:var(--amber)}
.wa-chip-eth{background:rgba(91,141,255,.15);color:var(--blue)}
.wa-chip-sol{background:rgba(61,220,151,.15);color:#3DDC97}
.wa-sub span:last-child{font-size:10px;color:var(--dim)}
.wa-right{text-align:right;flex-shrink:0}
.wa-amount{font-size:12px;font-weight:700;color:var(--amber);font-family:var(--mono,monospace)}
.wa-time{font-size:10px;color:var(--dim);margin-top:2px}
.whale-alert-empty{display:flex;flex-direction:column;align-items:center;padding:20px 0;gap:6px;color:var(--dim);font-size:12px;text-align:center}

/* ── R_17.3: Insider signals ─────────────────────────────── */
.news-cat-insider::before{background:#9B59B6 !important}
.news-cat-insider{border-color:rgba(155,89,182,.2)}
.news-modal-insider-banner{font-size:11px;color:rgba(155,89,182,.8);padding:8px 12px;background:rgba(155,89,182,.08);border:1px solid rgba(155,89,182,.15);border-radius:8px;text-align:center;margin-top:10px}

/* ── R_18: Capital Flow redesign ─────────────────────────────── */
.cf-arrows{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0 10px}
.cf-sym{display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 6px 10px;background:rgba(255,255,255,.03);border-radius:12px;border:1px solid rgba(255,255,255,.06);transition:border-color .3s,background .3s}
.cf-arrow{font-size:24px;font-weight:700;line-height:1;transition:color .3s}
.cf-label{font-size:11px;font-weight:700;color:rgba(255,255,255,.55);letter-spacing:.04em}
.cf-score{font-size:12px;font-weight:700;font-family:var(--mono,monospace);transition:color .3s;min-height:16px}
.cf-signals{font-size:9px;color:rgba(255,255,255,.3);text-align:center;line-height:1.4;min-height:12px;max-width:80px}
.cf-summary{background:rgba(255,255,255,.03);border-radius:8px;padding:8px 10px;font-size:11px;color:rgba(255,255,255,.6);text-align:center;border:1px solid rgba(255,255,255,.05);margin-bottom:8px;min-height:34px;display:flex;align-items:center;justify-content:center}
.cf-regime{display:flex;align-items:center;gap:8px;justify-content:center;margin-top:8px}
.cf-dom{font-size:11px;color:var(--dim)}
.cf-regime-tag{font-size:10px;font-weight:600;padding:2px 8px;border-radius:6px;background:rgba(255,255,255,.06);color:rgba(255,255,255,.4)}

/* ── R_15d: Alts card ─────────────────────────────────────── */
.alts-card{}
.alts-sectors{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px}
.alts-sector-btn{padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600;background:var(--elevated);border:1px solid var(--border);color:var(--dim);cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.alts-sector-btn.active{background:rgba(91,141,255,.18);border-color:var(--blue);color:var(--blue)}
.alts-list{display:flex;flex-direction:column;gap:0}
.alts-empty{font-size:12px;color:var(--dim);padding:10px 0;text-align:center}
.alts-skeleton{font-size:12px;color:var(--dim);padding:10px 0;text-align:center}

.alts-row{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.alts-row:last-child{border-bottom:none}
.alts-row-left{display:flex;align-items:center;gap:7px;min-width:0}
.alts-rank{font-size:10px;color:var(--dim);min-width:18px;text-align:right;flex-shrink:0}
.alts-info{display:flex;flex-direction:column;min-width:0}
.alts-sym{font-size:13px;font-weight:700;color:var(--text)}
.alts-name{font-size:10px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80px}
.alts-row-right{display:flex;flex-direction:column;align-items:flex-end;gap:1px;flex-shrink:0}
.alts-price{font-size:13px;font-weight:600;color:var(--text)}
.alts-chg{font-size:11px;font-weight:600}
.alts-up{color:var(--up)}
.alts-dn{color:var(--dn)}
