/* TRAI v2.3 — чат с ИИ, скрин сделки в журнале, уровни на графике */
.icon-btn{width:36px;height:36px;flex:none;border-radius:10px;border:1px solid var(--line-soft);background:var(--bg);color:var(--muted);display:inline-grid;place-items:center;cursor:pointer;transition:color .15s,border-color .15s}
.icon-btn:hover{color:var(--text);border-color:var(--line)} .icon-btn .ic{width:18px;height:18px}

/* ---------- Кнопка чата в шапке ---------- */
.btn-chat{gap:8px;padding:0 14px}
.btn-chat .ic{width:18px;height:18px;color:var(--gold)}
body.chat-on .btn-chat{border-color:var(--gold-deep);color:var(--gold-light)}

/* ---------- Панель чата ---------- */
.chat{position:fixed;top:0;right:0;bottom:0;width:min(440px,100vw);z-index:90;display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--line);box-shadow:-24px 0 60px rgba(0,0,0,.45);
  transform:translateX(102%);transition:transform .34s cubic-bezier(.2,.8,.2,1);visibility:hidden}
body.chat-on .chat{transform:none;visibility:visible}
.chat-back{display:none}
.chat-head{display:flex;align-items:center;gap:10px;padding:12px 12px 12px 16px;border-bottom:1px solid var(--line-soft)}
.chat-head>.ic{width:22px;height:22px;color:var(--gold)}
.chat-t{flex:1;min-width:0;display:flex;flex-direction:column}
.chat-t b{font-size:15px;color:var(--gold-light);font-weight:600} .chat-t span{font-size:12px;color:var(--faint)}
.chat-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin;scrollbar-color:var(--line) transparent;overscroll-behavior:contain}
.chat-hello{text-align:center;margin:auto 0;padding:10px 18px;color:var(--muted)}
.chat-hello .ch-ic{width:56px;height:56px;margin:0 auto 12px;border-radius:16px;display:grid;place-items:center;background:var(--gold-bg);border:1px solid rgba(214,179,112,.3)}
.chat-hello .ch-ic .ic{width:28px;height:28px;color:var(--gold)}
.chat-hello h3{font-family:var(--serif);font-size:24px;color:var(--gold-light);margin:0 0 6px;font-weight:600}
.chat-hello p{font-size:13.5px;margin:0;line-height:1.5}
.cm{max-width:88%;padding:10px 13px;border-radius:16px;font-size:14px;line-height:1.5;position:relative;animation:cmIn .25s ease both}
@keyframes cmIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.cm p{margin:0} .cm p+p{margin-top:6px} .cm ul{margin:4px 0;padding-left:18px} .cm li{margin:2px 0}
.cm.me{align-self:flex-end;background:linear-gradient(180deg,#3A3220,#2E2818);border:1px solid rgba(168,130,63,.45);color:var(--text);border-bottom-right-radius:6px}
.cm.me img{display:block;max-width:220px;max-height:240px;border-radius:10px;margin-bottom:6px}
.cm.ai{align-self:flex-start;background:var(--raised);border:1px solid var(--line-soft);color:var(--body);border-bottom-left-radius:6px}
.cm.ai b{color:var(--text)}
.cm.err{border-color:rgba(217,122,122,.4);color:var(--down)}
.cm-t{display:block;font-size:11px;color:var(--faint);margin-top:4px}
.cm.typing{display:flex;gap:5px;padding:14px 16px}
.cm.typing i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:dot 1.2s infinite ease-in-out}
.cm.typing i:nth-child(2){animation-delay:.15s} .cm.typing i:nth-child(3){animation-delay:.3s}
@keyframes dot{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}
.cm-setup{margin-top:10px;padding:10px;border-radius:12px;background:var(--bg);border:1px solid var(--line)}
.cm-setup .row{gap:8px;font-size:12.5px}
.cm-lv{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px}
.cm-lv small{display:block;font-size:11px;color:var(--faint)} .cm-lv b{font-size:14.5px;font-weight:600}
.cm-act{margin-top:10px;flex-wrap:wrap} .cm-act .btn{height:32px;font-size:12.5px;padding:0 10px}
.chat-quick{display:flex;gap:6px;overflow-x:auto;padding:8px 16px;scrollbar-width:none;border-top:1px solid var(--line-soft)}
.chat-quick::-webkit-scrollbar{display:none}
.chat-quick .chip{height:32px;flex:none}
.chat-quick .chip:hover{color:var(--gold-light);border-color:var(--gold-deep)}
.chat-att{position:relative;display:inline-block;margin:0 16px 4px}
.chat-att img{height:64px;border-radius:10px;border:1px solid var(--line);display:block}
.chat-att button{position:absolute;top:-8px;right:-8px;width:24px;height:24px;border-radius:50%;border:1px solid var(--line);background:var(--raised);color:var(--text);display:grid;place-items:center;cursor:pointer;padding:0}
.chat-att button .ic{width:14px;height:14px}
.chat-in{display:flex;align-items:flex-end;gap:8px;padding:10px 12px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line-soft)}
.chat-in .icon-btn{width:42px;height:42px;border-radius:12px}
.chat-in textarea{flex:1;min-height:42px;max-height:140px;resize:none;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--line) transparent;box-sizing:border-box;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:15px;line-height:1.4;color:var(--text)}
.chat-in textarea:focus{outline:none;border-color:var(--gold-deep)}
.chat-send{width:42px;height:42px;padding:0;border-radius:12px;flex:none} .chat-send .ic{width:20px;height:20px}

/* ---------- Журнал: скрин сделки ---------- */
#shotZone{margin-bottom:14px}
.shot-drop{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:14px;border:1.5px dashed rgba(214,179,112,.4);background:rgba(214,179,112,.05);cursor:pointer;transition:border-color .15s,background .15s}
.shot-drop:hover,.shot-drop.over{border-color:var(--gold);background:rgba(214,179,112,.1)}
.shot-drop>.ic{width:30px;height:30px;color:var(--gold);flex:none}
.shot-drop b{display:block;font-size:14.5px;color:var(--gold-light);font-weight:600}
.shot-drop span{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.shot-box{border:1px solid var(--line);border-radius:14px;background:var(--bg);padding:10px}
.shot-head{display:flex;align-items:center;gap:12px}
.shot-head img{width:56px;height:56px;object-fit:cover;object-position:top;border-radius:10px;border:1px solid var(--line-soft);flex:none}
.shot-st{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:13px}
.shot-st b{font-size:14px;display:flex;align-items:center;gap:8px}
.shot-spin{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--gold);animation:spin .8s linear infinite;display:inline-block;flex:none}
.shot-st:has(.shot-spin){flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:8px}
.shot-list{display:grid;gap:8px;margin-top:10px}
.shot-card{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;text-align:left;padding:10px 12px;border-radius:12px;border:1px solid var(--line-soft);background:var(--surface);cursor:pointer;font-size:13px;color:var(--body);transition:border-color .15s}
.shot-card:hover{border-color:var(--line)} .shot-card.on{border-color:var(--gold-deep);background:var(--gold-bg)}
.shot-card .sc-lv{flex-basis:100%;color:var(--text)} .shot-card>b{margin-left:auto}
.shot-notes{margin:10px 0 0;padding-left:18px;font-size:12.5px;color:var(--muted);line-height:1.5}
.ai-filled{border-color:rgba(214,179,112,.7)!important;box-shadow:0 0 0 3px rgba(214,179,112,.14);background:linear-gradient(180deg,rgba(214,179,112,.08),transparent)!important}

/* Направление и кнопка «Указать на графике» */
.trade-top{gap:10px;align-items:stretch}
.seg-lg{height:46px;padding:3px;border-radius:12px}
.seg-lg button{height:38px;padding:0 18px;font-size:14.5px;border-radius:9px}
.seg-lg button[data-dir="BUY"][aria-pressed="true"]{background:rgba(93,187,151,.16);color:var(--up)}
.seg-lg button[data-dir="SELL"][aria-pressed="true"]{background:rgba(217,122,122,.16);color:var(--down)}
.btn-pick{height:46px;padding:0 18px;border-radius:12px;font-size:14.5px;font-weight:600;color:var(--gold-light);border-color:rgba(168,130,63,.6);background:linear-gradient(180deg,#2B2618,#221E13)}
.btn-pick:hover{border-color:var(--gold)} .btn-pick .ic{width:20px;height:20px;color:var(--gold)}
.trade-at{margin-left:auto;flex:1 1 170px;max-width:240px} .trade-at input{height:46px}

/* ---------- Уровни на графике ---------- */
.pk{position:fixed;inset:0;z-index:110;background:rgba(0,0,0,.6);display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .2s}
.pk.on{opacity:1;pointer-events:auto}
.pk-in{width:min(1180px,calc(100vw - 48px));height:min(760px,calc(100vh - 48px));background:var(--surface);border:1px solid var(--line);border-radius:18px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.6);transform:translateY(12px) scale(.98);transition:transform .28s cubic-bezier(.2,.8,.2,1)}
.pk.on .pk-in{transform:none}
.pk-head{display:flex;align-items:center;gap:12px;padding:10px 12px 10px 18px;border-bottom:1px solid var(--line-soft)}
.pk-head b{font-size:15px;color:var(--gold-light)} .pk-hint{font-size:12.5px}
.pk-main{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 370px}
.pk-chart{position:relative;min-height:0}
/* График — отдельный слой (у его холстов свой z-index), ручки уровней всегда поверх */
.pk-chart #pkLw{position:absolute;inset:0;z-index:0;isolation:isolate}
.pk-ov{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:5}
.pk-zone{position:absolute;left:0;pointer-events:none}
.pk-zone.tp{background:rgba(93,187,151,.13);border-top:1px solid rgba(93,187,151,.25);border-bottom:1px solid rgba(93,187,151,.25)}
.pk-zone.sl{background:rgba(217,122,122,.13);border-top:1px solid rgba(217,122,122,.25);border-bottom:1px solid rgba(217,122,122,.25)}
.pk-line{position:absolute;left:0;top:-14px;height:28px;pointer-events:auto;cursor:ns-resize;touch-action:none;display:flex;align-items:center;will-change:transform}
.pk-h{margin-left:12px;display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:8px;font-size:12.5px;font-weight:600;color:#12151A;box-shadow:0 4px 14px rgba(0,0,0,.4);user-select:none;transition:transform .12s}
.pk-h b{font-weight:600} .pk-h em{font-style:normal;opacity:.7}
.pk-h i{width:6px;height:6px;border-radius:50%;background:rgba(18,21,26,.55)}
.pk-line[data-k="entry"] .pk-h{background:#EAD9B0} .pk-line[data-k="stop"] .pk-h{background:#D97A7A} .pk-line[data-k="tp"] .pk-h{background:#5DBB97}
.pk-line[data-k="stop"] .pk-h{margin-left:150px} .pk-line[data-k="tp"] .pk-h{margin-left:290px}
.pk-line:hover .pk-h,.pk-line.drag .pk-h{transform:scale(1.06)}
.pk-line.drag{cursor:grabbing}
.pk-side{border-left:1px solid var(--line-soft);padding:16px;display:flex;flex-direction:column;gap:14px;overflow-y:auto}
.pk-dir{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}
.pk-dir .tag{font-size:13px;padding:4px 10px}
.pk-f3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px} .pk-f2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pk-side .field span{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}
.pk-side .field input{height:42px;font-size:14.5px;padding:0 9px;-moz-appearance:textfield}
.pk-side .field input::-webkit-outer-spin-button,.pk-side .field input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.pk-side [data-pf="entry"]{border-color:rgba(234,217,176,.5)} .pk-side [data-pf="stop"]{border-color:rgba(217,122,122,.5)} .pk-side [data-pf="tp"]{border-color:rgba(93,187,151,.5)}
.pk-sum{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px;border-radius:12px;background:var(--bg);border:1px solid var(--line-soft)}
.pk-sum small{display:block;font-size:11.5px;color:var(--faint)} .pk-sum b{display:block;font-size:16px;font-weight:600;margin:2px 0} .pk-sum span{font-size:11.5px}
.pk-btns{display:flex;gap:8px;margin-top:auto} .pk-btns .btn{flex:1;height:46px}
body.pk-on{overflow:hidden}

/* ---------- Телефон ---------- */
@media (max-width:760px){
  .btn-chat{width:40px;height:40px;padding:0} .btn-chat .lbl{display:none}
  .chat{width:100vw;top:0;border-left:0;border-radius:0;transform:translateY(100%);z-index:95}
  body.chat-on{overflow:hidden}
  .chat-head{padding-top:calc(10px + env(safe-area-inset-top))}
  .chat-in textarea{font-size:16px}
  .trade-top{flex-wrap:wrap}
  .seg-lg{flex:1 1 auto} .seg-lg button{flex:1}
  .btn-pick{flex:1 1 100%;order:3}
  .trade-at{flex:1 1 100%;order:4;margin-left:0;max-width:none}
  .shot-drop{padding:12px 14px}
  .pk-in{width:100vw;height:100dvh;border-radius:0;border:0}
  .pk-head{padding-top:calc(8px + env(safe-area-inset-top))} .pk-hint{display:none}
  .pk-main{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}
  .pk-side{border-left:0;border-top:1px solid var(--line-soft);padding:12px 12px calc(12px + env(safe-area-inset-bottom));gap:10px;max-height:52vh}
  .pk-line[data-k="stop"] .pk-h{margin-left:96px} .pk-line[data-k="tp"] .pk-h{margin-left:180px}
  .pk-h{height:28px;padding:0 9px} .pk-h em{display:none}
  .pk-side .field input{height:40px}
  .pk-sum{padding:10px} .pk-sum b{font-size:15px}
}

/* ---------- Журнал: карточка сделки вместо полей ---------- */
#tradeSum{margin:2px 0}
.ts-empty{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-radius:14px;border:1px solid var(--line-soft);background:var(--bg)}
.ts-empty b{font-size:14px;color:var(--text);font-weight:600} .ts-empty span{font-size:13px;color:var(--muted);line-height:1.45}
.ts-card{border-radius:14px;border:1px solid var(--line);background:var(--bg);padding:12px 14px;border-left:3px solid var(--up)}
.ts-card.SELL{border-left-color:var(--down)}
.ts-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}
.ts-lv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}
.ts-lv small{display:block;font-size:11.5px;color:var(--faint)} .ts-lv b{font-size:16px;font-weight:600}
.ts-lv .ai small::after,.ts-note i{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gold);margin-left:6px;vertical-align:middle}
.ts-note{margin-top:10px;font-size:12px;color:var(--muted)} .ts-note i{margin:0 6px 0 0}
.ts-st{display:block;font-size:13px;color:var(--muted);margin-top:3px}
.ts-foot{display:flex;justify-content:flex-end;margin-top:4px}
.ts-res{padding-top:10px;border-top:1px solid var(--line-soft);grid-template-columns:repeat(2,minmax(0,1fr)) minmax(0,1fr)} .ts-res b{font-size:14.5px}
.ts-edit,.ts-manual{border:0;background:none;padding:4px 0;cursor:pointer;font-size:13px;color:var(--gold);text-decoration:underline;text-decoration-color:rgba(214,179,112,.35);text-underline-offset:3px}
.ts-edit:hover,.ts-manual:hover{color:var(--gold-light)}
.ts-empty .ts-manual{align-self:flex-start;margin-top:2px}
@media (max-width:760px){
  .pk-line{top:-18px;height:36px}
  .ts-lv b{font-size:15px}
}

/* ---------- Ручки размера графика (только ПК) ---------- */
:root{--vs-d:384px}
@media (max-width:1100px) and (min-width:761px){ :root{--vs-d:330px} }
.rz{display:none}
@media (min-width:761px){
  #ovWrap.ov{grid-template-columns:minmax(0,1fr) var(--vs-w,var(--vs-d))}
  #ovWrap.ov.vs-closed{grid-template-columns:minmax(0,1fr) 44px}
  .vside{width:var(--vs-w,var(--vs-d))}
  .chart-box{height:var(--ch-h,max(540px,calc(100vh - var(--top) - 158px)))}
  .chart-panel{position:relative}
  .rz{display:flex;position:absolute;z-index:6;align-items:center;justify-content:center;touch-action:none}
  .rz-x{top:0;bottom:0;right:-14px;width:14px;cursor:col-resize}
  .rz-y{left:0;right:0;bottom:-14px;height:14px;cursor:row-resize}
  .vs-closed .rz-x{display:none}
  .rz::before{content:"";position:absolute;border-radius:2px;background:var(--gold);opacity:0;transition:opacity .15s}
  .rz-x::before{top:16px;bottom:16px;left:6px;width:2px}
  .rz-y::before{left:16px;right:16px;top:6px;height:2px}
  .rz i{position:relative;display:grid;place-items:center;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--gold-light);
    box-shadow:0 4px 14px rgba(0,0,0,.45);opacity:0;transform:scale(.8);transition:opacity .15s,transform .15s,border-color .15s}
  .rz-x i{width:14px;height:42px} .rz-x svg{width:8px;height:24px}
  .rz-y i{width:42px;height:14px} .rz-y svg{width:24px;height:8px}
  .chart-panel:hover .rz i{opacity:.55;transform:none}
  .rz:hover::before,.rz.on::before{opacity:.35}
  .rz:hover i,.rz.on i{opacity:1;transform:scale(1.08);border-color:var(--gold-deep)}
  body.rz-drag{user-select:none;-webkit-user-select:none}
  body.rz-drag #ovWrap.ov{transition:none}
  body.rz-dx *{cursor:col-resize!important} body.rz-dy *{cursor:row-resize!important}
}
#vside.fresh{animation:fresh 1.4s ease-in-out 3}
.vs-body .btn-view-full{margin-top:18px}

/* Личный разбор плана (пользователи) */
.pl-personal{border-color:rgba(240,185,11,.28)}
.pl-personal .pl-pers-h{display:block;font-size:15px;color:var(--text);margin:2px 0 4px}
.pl-personal ul.clean{margin:6px 0 0}
#vsBody .pl-personal{margin:12px 0;padding:14px}
#v-plan .pl-personal{margin-bottom:14px}
.pl-personal h3 .tag{margin-left:8px;font-size:12px}
.pl-personal .pl-pers-t{font-size:12px;font-weight:400}
