/* ===== Вкладка "Графики" =====
   Список инструментов и поиск отданы стороннему виджету Biquote —
   его оформление кастомизируется через ./biquote-theme.css.
   Выше виджета — карточка-приглашение к анализу графика по фото
   (модалка с drag&drop/вставкой из буфера/выбором файла).
   Здесь — стили нашего собственного свечного графика и
   служебный класс, "прячущий" контейнер виджета за экран без
   применения display:none (важно для canvas/спарклайнов внутри). */

.cw-offscreen{
  position:fixed !important;
  left:-99999px; top:0;
  width:640px; max-width:640px;
  visibility:hidden;
  pointer-events:none;
}

/* ---- карточка-приглашение к анализу по фото (над виджетом инструментов) ---- */
.charts-photo-cta{
  width:100%;display:flex;align-items:center;gap:13px;padding:14px 16px;margin-bottom:16px;
  border-radius:var(--radius-lg);border:1px solid var(--hairline);cursor:pointer;text-align:left;
  background:linear-gradient(135deg, rgba(217,169,85,.14), rgba(217,169,85,.04));
  box-shadow:var(--shadow-sm);transition:transform .15s var(--ease-spring),border-color .2s;
}
.charts-photo-cta:active{transform:scale(.985);}
.charts-photo-cta:hover{border-color:rgba(217,169,85,.35);}
.charts-photo-cta-icon{width:40px;height:40px;border-radius:12px;background:var(--gilt-dim);color:var(--gilt-bright);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.charts-photo-cta-icon svg{width:20px;height:20px;}
.charts-photo-cta-text{display:flex;flex-direction:column;gap:2px;min-width:0;}
.charts-photo-cta-title{font-family:var(--font-display);font-weight:600;font-size:14.5px;color:var(--ink);}
.charts-photo-cta-sub{font-size:11.5px;color:var(--ink-faint);line-height:1.4;}

/* ---- график ---- */
.cw-chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;}
.cw-chart-sym{font-family:var(--font-display);font-weight:700;font-size:21px;letter-spacing:-.01em;color:var(--ink);}
.cw-chart-desc{font-size:12px;color:var(--ink-faint);margin-top:2px;}

.cw-live-badge{
  display:inline-flex;align-items:center;gap:6px;font-family:var(--font-label);font-size:10.5px;font-weight:700;
  letter-spacing:.03em;color:var(--ink-faint);padding:6px 11px;border-radius:999px;background:var(--surface-2);
  flex-shrink:0;margin-top:2px;
}
.cw-live-dot{width:7px;height:7px;border-radius:50%;background:var(--ink-faint);}
.cw-live-badge.is-on{color:var(--emerald);background:var(--emerald-dim);}
.cw-live-badge.is-on .cw-live-dot{background:var(--emerald);animation:pulseDot 1.6s ease-in-out infinite;}
.cw-live-badge.is-recon{color:var(--gilt-bright);background:var(--gilt-dim);}
.cw-live-badge.is-recon .cw-live-dot{background:var(--gilt-bright);animation:pulseDot 1s ease-in-out infinite;}
/* .cw-live-badge.is-off{color:var(--claret);background:var(--claret-dim);}
.cw-live-badge.is-off .cw-live-dot{background:var(--claret);} */
.cw-live-badge.is-off{color:var(--emerald);background:var(--emerald-dim);}
.cw-live-badge.is-off .cw-live-dot{background:var(--emerald);animation:pulseDot 1.6s ease-in-out infinite;}
@keyframes pulseDot{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.4;transform:scale(.7);}}

.cw-canvas-wrap{
  position:relative;width:100%;height:300px;border-radius:var(--radius-lg);overflow:hidden;
  background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--hairline);box-shadow:var(--shadow-sm);margin-bottom:14px;
}
#cwCanvas{width:100%;height:100%;display:block;}
.cw-status{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--ink-faint);font-size:12.5px;font-family:var(--font-label);background:var(--glass-bg);}

.cw-price-row{display:flex;align-items:baseline;gap:12px;margin-bottom:14px;}
.cw-price-value{font-family:var(--font-mono);font-weight:800;font-size:24px;color:var(--ink);letter-spacing:-.01em;}
.cw-price-chg{font-family:var(--font-mono);font-weight:700;font-size:13px;}

.cw-up{color:var(--emerald);}
.cw-down{color:var(--claret);}
.cw-flat{color:var(--ink-faint);}

.cw-ai-btn{
  width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border:none;border-radius:14px;
  cursor:pointer;background:linear-gradient(135deg,var(--gilt),var(--gilt-bright));color:var(--gilt-ink);
  font-weight:800;font-size:14px;font-family:var(--font-display);box-shadow:var(--shadow-gold);
  transition:transform .15s var(--ease-spring);
}
.cw-ai-btn svg{width:17px;height:17px;}
.cw-ai-btn:active{transform:scale(.97);}

/* ---- AI sheet (общая оболочка: анализ текущего графика и анализ по фото) ---- */
.cw-ai-overlay{
  position:fixed;inset:0;background:rgba(4,5,8,.72);backdrop-filter:blur(6px);z-index:120;
  display:flex;align-items:flex-end;justify-content:center;opacity:0;transition:opacity .25s;
}
.cw-ai-overlay.show{opacity:1;}
.cw-ai-sheet{
  width:100%;max-width:640px;background:var(--glass-bg-strong);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--hairline-strong);border-radius:24px 24px 0 0;padding:20px 20px calc(24px + env(safe-area-inset-bottom,0px));
  box-shadow:var(--shadow-lg);transform:translateY(16px);transition:transform .3s var(--ease-spring);max-height:70vh;overflow-y:auto;
}
.cw-ai-overlay.show .cw-ai-sheet{transform:translateY(0);}
.cw-ai-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;}
.cw-ai-title{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:700;font-size:15.5px;color:var(--ink);}
.cw-ai-title svg{width:18px;height:18px;color:var(--gilt-bright);flex-shrink:0;}
.cw-ai-close{width:30px;height:30px;border-radius:50%;border:none;background:var(--surface-2);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;}
.cw-ai-close svg{width:12px;height:12px;}
.cw-ai-body{font-size:13.5px;line-height:1.6;color:var(--ink-dim);min-height:60px;}
.cw-ai-body.hidden{display:none;}
.cw-ai-disclaimer{margin-top:14px;padding-top:12px;border-top:1px dashed var(--hairline);font-size:10.5px;color:var(--ink-faint);line-height:1.5;}
.cw-ai-controls{display:flex;flex-direction:column;gap:14px;margin-bottom:18px;}
.cw-ai-horizon{min-width:0;border:0;padding:0;margin:0;}
.cw-ai-horizon legend{padding:0;margin-bottom:9px;font:600 11px var(--font-label);color:var(--ink-faint);letter-spacing:.04em;}
.cw-horizon-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.cw-horizon-option{position:relative;cursor:pointer;}
.cw-horizon-option input{position:absolute;opacity:0;width:1px;height:1px;}
.cw-horizon-option span{display:flex;align-items:baseline;justify-content:center;gap:5px;min-height:54px;padding:13px 5px;border:1px solid var(--hairline-strong);border-radius:14px;background:var(--surface-2);color:var(--ink-dim);transition:background .18s,border-color .18s,box-shadow .18s;}
.cw-horizon-option strong{font:700 21px var(--font-mono);}
.cw-horizon-option small{font:600 10px var(--font-label);}
.cw-horizon-option input:checked + span{background:var(--gilt-dim);border-color:var(--gilt);color:var(--gilt-bright);box-shadow:inset 0 0 0 1px var(--gilt);}
.cw-horizon-option input:focus-visible + span{outline:2px solid #60a5fa;outline-offset:3px;}
.cw-ai-horizon:disabled{opacity:.65;}
.cw-ai-controls .cta-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;margin:0;padding:12px 15px;}
.cw-ai-controls .cta-btn svg{width:17px;height:17px;}
.cw-ai-controls .cta-btn:disabled{opacity:.55;cursor:default;}
.cw-ai-body h3{font:700 12px var(--font-label);color:var(--ink);margin:16px 0 6px;}
.cw-ai-body p{margin:0 0 10px;}
.cw-ai-body .cw-decision{padding:14px 16px;border:1px solid var(--hairline-strong);border-radius:14px;font:800 22px var(--font-display);margin:0 0 12px;background:var(--surface-2);}
.cw-decision.is-buy{color:var(--emerald);border-left:3px solid var(--emerald);}
.cw-decision.is-sell{color:var(--claret);border-left:3px solid var(--claret);}
.cw-decision.is-wait{color:var(--gilt-bright);border-left:3px solid var(--gilt);}

/* ---- Модалка "Анализ по фото": зона загрузки (drag&drop / вставка / выбор файла) ---- */
.cw-drop{
  position:relative;border:1.5px dashed var(--hairline-strong);border-radius:var(--radius-lg);
  padding:22px 16px;margin-bottom:14px;transition:border-color .2s,background .2s;background:var(--surface-2);
}
.cw-drop.is-drag{border-color:var(--gilt);background:var(--gilt-dim);}
.cw-drop-empty{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;}
.cw-drop-empty.hidden{display:none;}
.cw-drop-icon{width:34px;height:34px;color:var(--ink-faint);}
.cw-drop-icon svg{width:100%;height:100%;}
.cw-drop-text{font-size:12.5px;color:var(--ink-faint);line-height:1.5;max-width:240px;}
.cw-drop-empty .btn{padding:10px 18px;font-size:12.5px;}
.cw-drop-preview{position:relative;}
.cw-drop-preview.hidden{display:none;}
.cw-drop-preview img{width:100%;max-height:220px;object-fit:contain;border-radius:12px;display:block;background:var(--obsidian);}
.cw-drop-remove{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;border:none;background:var(--glass-bg-strong);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;}
.cw-drop-remove svg{width:12px;height:12px;}

#cwPhotoBody{margin-top:14px;}

/* Blue light sweeps across the photo for the lifetime of the request. */
.cw-scan-image{position:relative;overflow:hidden;border-radius:12px;background:var(--obsidian);}
.cw-scan-layer{display:none;position:absolute;inset:0;pointer-events:none;background:linear-gradient(rgba(59,130,246,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(59,130,246,.08) 1px,transparent 1px);background-size:28px 28px;box-shadow:inset 0 0 28px rgba(37,99,235,.2);}
.cw-scan-beam{position:absolute;left:0;right:0;top:-38%;height:38%;background:linear-gradient(transparent,rgba(37,99,235,.08) 35%,rgba(59,130,246,.32) 95%,#93c5fd);border-bottom:2px solid #60a5fa;filter:drop-shadow(0 3px 7px #3b82f6);animation:cwScan 2.2s linear infinite;}
.cw-scan-status{display:none;position:absolute;bottom:10px;left:50%;transform:translateX(-50%);white-space:nowrap;border:1px solid rgba(96,165,250,.5);border-radius:999px;padding:6px 11px;background:rgba(10,28,58,.9);color:#bfdbfe;font:600 10px var(--font-label);box-shadow:0 0 18px rgba(59,130,246,.15);}
.is-scanning .cw-scan-layer,.is-scanning .cw-scan-status{display:block;}
.cw-drop-remove:disabled{opacity:.35;cursor:default;}
@keyframes cwScan{to{top:100%;}}
@media(min-width:700px){.cw-ai-overlay{align-items:center;padding:24px;}.cw-ai-sheet{border-radius:24px;max-height:85vh;}}
@media(prefers-reduced-motion:reduce){.cw-scan-beam{animation:none;top:35%;}.cw-ai-overlay,.cw-ai-sheet{transition:none;}}
