/* OLIVA — the quiet machine. Светлая база, моно, минимум шума. */
:root{
  --ink:#0a0a0a; --paper:#ffffff; --gray:#6f6f6f; --hair:#e4e4e4; --faint:#f7f7f7;
  --up:#00843d; --down:#c81e1e; --lock:#b48a00;
  --mono:'IBM Plex Mono',ui-monospace,'SF Mono',Menlo,Consolas,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
[hidden]{display:none!important}   /* иначе display в правилах перебивает атрибут */
body{font-family:var(--mono);background:var(--paper);color:var(--ink);
  font-size:13.5px;line-height:1.55;-webkit-font-smoothing:antialiased}
::selection{background:var(--ink);color:var(--paper)}
a{color:inherit;text-decoration:none}
button{font-family:var(--mono)}

/* ---------- header ---------- */
header.top{position:sticky;top:0;z-index:100;background:var(--paper);
  border-bottom:1px solid var(--ink);display:flex;align-items:center;gap:22px;
  padding:0 22px;height:52px}
.logo{font-weight:700;font-size:15px;letter-spacing:.02em;display:flex;align-items:center;flex:none}
.logo .blk{display:inline-block;width:8px;height:14px;background:var(--ink);margin-left:3px;
  animation:blink 1.4s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.topnav{display:flex;gap:4px;font-size:11.5px;letter-spacing:.07em;flex:none}
.topnav>a{padding:6px 10px}
.topnav>a:hover,.topnav>a.on{background:var(--ink);color:var(--paper)}
.hdr-spacer{flex:1}
.hdr-right{display:flex;align-items:center;gap:14px;font-size:11px;color:var(--gray)}
#search{border:1px solid var(--hair);padding:6px 10px;font-family:var(--mono);font-size:12px;
  width:210px;background:var(--paper);color:var(--ink)}
#search:focus{outline:none;border-color:var(--ink)}
.bell{position:relative;cursor:pointer;padding:5px 8px;border:1px solid transparent;
  display:inline-flex;align-items:center;color:var(--ink)}
.bell:hover{border-color:var(--ink)}
.bell:hover svg{animation:ring .4s ease-in-out}
@keyframes ring{25%{transform:rotate(12deg)}55%{transform:rotate(-10deg)}80%{transform:rotate(5deg)}}
.bell .cnt{position:absolute;top:-4px;right:-4px;background:var(--down);color:#fff;
  font-size:9px;padding:0 4px;border-radius:8px;min-width:14px;text-align:center}
.userbox{cursor:pointer;padding:5px 8px;border:1px solid var(--hair)}
.userbox:hover{border-color:var(--ink)}
.support-link{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--ink);
  color:var(--ink);padding:5px 10px;font-size:10.5px;letter-spacing:.08em;white-space:nowrap}
.support-link:hover,.support-link.on{background:var(--ink);color:var(--paper)}
@media(max-width:1080px){.support-link .sl-text{display:none}}   /* узкий экран: остаётся иконка-конверт */

/* ---------- мега-меню провайдеров (только в «Каталоге»: провайдер -> сервисы -> продукты) ---------- */
#provbar{border-bottom:1px solid var(--hair);background:var(--paper);position:sticky;top:52px;z-index:99}
#provbar .row{display:flex;padding:0 22px;overflow-x:auto}
#provbar .prov{padding:9px 13px;font-size:11.5px;letter-spacing:.06em;white-space:nowrap;
  cursor:pointer;border-bottom:2px solid transparent;color:var(--gray)}
#provbar .prov.has{color:var(--ink)}
#provbar .prov.cur{border-bottom-color:var(--ink);font-weight:600}
#provbar .prov:hover,#provbar .prov.open{background:var(--ink);color:var(--paper)}
#megapanel{position:absolute;left:0;right:0;top:100%;background:var(--paper);
  border-bottom:1px solid var(--ink);box-shadow:0 14px 30px rgba(10,10,10,.08);
  display:none;max-height:60vh;overflow:auto}
#megapanel.open{display:block}
#megapanel .cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
  gap:0 28px;padding:18px 24px 22px}
#megapanel h4{font-size:11px;letter-spacing:.1em;margin:10px 0 6px;font-weight:600}
#megapanel h4 a:hover{background:var(--ink);color:var(--paper)}
#megapanel .itm{display:block;font-size:11.5px;color:var(--gray);padding:2.5px 0}
#megapanel .itm:hover{color:var(--ink);text-decoration:underline}
.lock-ico{color:var(--lock);font-size:10px;margin-left:5px}
.lock-svg{color:var(--lock);vertical-align:-1px;margin-left:4px}
#suggest .sg.locked{color:var(--gray)}

/* ---------- layout ---------- */
.wrap{max-width:1360px;margin:0 auto;padding:20px 22px 60px}
.sechead{display:flex;justify-content:space-between;align-items:baseline;
  padding:6px 0 12px;font-size:10.5px;letter-spacing:.13em;color:var(--gray)}
.sechead b{color:var(--ink);font-weight:600}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:26px}
@media(max-width:900px){.grid2{grid-template-columns:1fr}}

/* ---------- таблицы ---------- */
table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
th{font-size:10px;letter-spacing:.13em;color:var(--gray);font-weight:500;text-align:left;
  padding:8px 10px;border-bottom:1px solid var(--ink)}
td{padding:8px 10px;border-bottom:1px solid var(--hair);font-size:12.5px;vertical-align:middle}
tbody tr:hover{background:var(--faint)}
td .tag{font-size:10px;color:var(--gray);letter-spacing:.08em}
.t-up{color:var(--up)}.t-dn{color:var(--down)}

/* ---------- кнопки и формы ---------- */
.btn{border:1px solid var(--ink);padding:7px 14px;font-size:11.5px;letter-spacing:.06em;
  background:var(--paper);color:var(--ink);cursor:pointer}
.btn:hover,.btn.on{background:var(--ink);color:var(--paper)}
.btn.solid{background:var(--ink);color:var(--paper)}
.btn.solid:hover{background:var(--paper);color:var(--ink)}
.btn.sm{padding:4px 9px;font-size:10.5px}
input,select,textarea{border:1px solid var(--hair);padding:7px 10px;font-family:var(--mono);
  font-size:12.5px;background:var(--paper);color:var(--ink);width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ink)}
label{font-size:10.5px;letter-spacing:.1em;color:var(--gray);display:block;margin:10px 0 4px}
.formrow{display:flex;gap:12px;align-items:end}
.formrow>*{flex:1}

/* ---------- карточки/плитки ---------- */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.tile{border:1px solid var(--hair);padding:14px 16px;display:block}
.tile:hover{border-color:var(--ink)}
.tile.locked{color:var(--gray)}
.tile .t-name{font-weight:600;font-size:12.5px}
.tile .t-sub{font-size:10.5px;color:var(--gray);margin-top:4px;letter-spacing:.05em}

/* ---------- график ---------- */
.chartbox{border:1px solid var(--ink);position:relative;background:var(--paper)}
.chartbox canvas{width:100%;display:block}
.chart-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0}
.seg{display:flex;border:1px solid var(--ink)}
.seg button{font-size:10.5px;letter-spacing:.07em;padding:6px 12px;background:var(--paper);
  border:0;border-right:1px solid var(--hair);cursor:pointer;color:var(--gray)}
.seg button:last-child{border-right:0}
.seg button.on{background:var(--ink);color:var(--paper)}
.seg button:hover{color:var(--ink)}
.seg button.on:hover{color:var(--paper)}
.chint{position:absolute;top:8px;left:12px;font-size:9.5px;color:var(--gray);
  letter-spacing:.1em;pointer-events:none;z-index:2}
.readout{font-variant-numeric:tabular-nums;display:flex;gap:26px;align-items:baseline;flex-wrap:wrap}
.readout .r-v{font-size:28px;font-weight:600}
.readout .r-d{font-size:12px}
.statrow{display:flex;gap:0;border:1px solid var(--hair);margin:14px 0;flex-wrap:wrap}
.stat{padding:10px 16px;border-right:1px solid var(--hair);min-width:110px}
.stat:last-child{border-right:0}
.stat .s-l{font-size:9.5px;letter-spacing:.13em;color:var(--gray)}
.stat .s-v{font-size:15px;font-weight:600;margin-top:2px}

/* ---------- уведомления ---------- */
#notifpanel{position:fixed;top:52px;right:0;width:360px;max-height:70vh;overflow:auto;
  background:var(--paper);border:1px solid var(--ink);border-top:0;display:none;z-index:120}
#notifpanel.open{display:block}
.notif{padding:11px 14px;border-bottom:1px solid var(--hair);font-size:12px}
.notif.unread{background:var(--faint);border-left:3px solid var(--ink)}
.notif .n-t{font-weight:600}
.notif .n-s{color:var(--gray);font-size:10.5px;margin-top:3px}

/* ---------- teaser ---------- */
.teaser{border:1px solid var(--lock);padding:16px 18px;margin:14px 0;font-size:12.5px}
.teaser b{color:var(--lock)}

/* ---------- логин ---------- */
.loginwrap{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:26px}
.logincard{border:1px solid var(--ink);padding:34px 38px;width:360px}
.logincard h1{font-size:19px;letter-spacing:.02em;margin-bottom:4px}
.logincard .sub{font-size:11px;color:var(--gray);margin-bottom:18px}
.testusers{width:360px}
.testusers .tu{display:flex;justify-content:space-between;border:1px solid var(--hair);
  padding:8px 12px;margin-top:6px;cursor:pointer;font-size:11.5px}
.testusers .tu:hover{border-color:var(--ink);background:var(--faint)}
.err{color:var(--down);font-size:11.5px;margin-top:10px;min-height:16px}

/* ---------- админка ---------- */
.tabs{display:flex;border-bottom:1px solid var(--ink);margin-bottom:18px;flex-wrap:wrap}
.tabs button{border:0;background:none;padding:9px 15px;font-size:11.5px;letter-spacing:.06em;
  cursor:pointer;color:var(--gray);border-bottom:2px solid transparent}
.tabs button.on{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}
.treeline{padding:3px 0 3px 0;font-size:12px;white-space:nowrap}
.treeline .k{color:var(--gray);font-size:9.5px;letter-spacing:.08em;margin-left:8px}
.treeline:hover{background:var(--faint)}

/* ---------- раздел «Котировки»: фильтры + график ---------- */
.wrap.wide{max-width:1700px}
.qlayout{display:grid;grid-template-columns:290px 1fr;gap:20px;align-items:start}
@media(max-width:980px){.qlayout{grid-template-columns:1fr}}
.qfilters{border:1px solid var(--hair);padding:12px}
.fgroup{border-bottom:1px solid var(--hair);padding-bottom:8px;margin-bottom:8px}
.fgroup:last-of-type{border-bottom:0;margin-bottom:0}
.fhead{display:flex;align-items:center;gap:8px;font-size:12px;cursor:pointer;padding:4px 0}
.fhead.nocaret{cursor:default}
.fhead>span:first-child{flex:none;font-weight:500}
.fhead .fsearch{flex:1;padding:3px 8px;font-size:11px;border:1px solid var(--hair);min-width:0}
.fhead .fcaret{flex:none;color:var(--gray);font-size:10px}
.fgroup.closed .flist{display:none}
.fgroup.closed .fcaret{transform:rotate(-90deg);display:inline-block}
.fhead input[type=date]{flex:1;padding:3px 6px;font-size:10.5px;min-width:0}
.flist{max-height:230px;overflow:auto;margin-top:4px}
.fitem{display:flex;gap:8px;align-items:flex-start;font-size:11.5px;padding:3px 2px;cursor:pointer;
  color:var(--gray);letter-spacing:0}
.fitem:hover{background:var(--faint);color:var(--ink)}
.fitem input{width:auto;flex:none;margin-top:2px}
.fitem .hl{color:#c05600;font-weight:600}
.fitem .fsub{display:block;font-style:normal;font-size:10px;color:#a0a0a0}
.fitem.nodata{opacity:.5}
.fitem .nd{font-style:normal;font-size:9.5px;color:var(--lock);letter-spacing:.06em}
.fitem .rg{font-style:normal;font-size:9px;color:#8a8a8a;letter-spacing:.06em;
  border:1px solid var(--hair);padding:0 4px;margin-left:5px}
.seg button:disabled{opacity:.35;cursor:not-allowed}
.fempty{font-size:10.5px;color:var(--gray);padding:8px 2px;letter-spacing:.06em}
.qchart .chartbox{position:relative}
.qlegend{position:absolute;top:8px;right:10px;z-index:2;background:var(--paper);
  border:1px solid var(--hair);padding:6px 10px;max-width:60%}
.qlegend:empty{display:none}
.qlegend .lrow{font-size:10.5px;color:var(--gray);display:flex;align-items:center;gap:7px;padding:1px 0}
.qlegend .lrow i{width:16px;height:2px;flex:none}

/* ---------- HTML-тултип графика ---------- */
.qtip{position:absolute;z-index:30;pointer-events:none;background:var(--paper);
  border:1px solid var(--ink);box-shadow:4px 4px 0 rgba(10,10,10,.08);
  padding:8px 12px;min-width:210px;max-width:340px}
.qtip[hidden]{display:none}
.qtip-date{font-size:10px;letter-spacing:.12em;color:var(--gray);border-bottom:1px solid var(--hair);
  padding-bottom:5px;margin-bottom:5px}
.qtip-grid{display:grid;grid-template-columns:14px auto auto auto auto;
  column-gap:10px;row-gap:3px;align-items:center;font-size:11.5px;
  font-variant-numeric:tabular-nums;white-space:nowrap}
.qtip-row{display:contents}
.qtip-row i{width:14px;height:3px}
.qtip-row b{text-align:right}
.qtip-row .qtip-code{color:var(--gray);font-size:10.5px}
.qtip-row b{font-weight:600}
.qtip-row .qtip-range{color:var(--gray);font-size:10px}

/* ---------- вкладки раздела котировок ---------- */
.qtabs{display:flex;gap:4px;margin-right:18px}
.qtabs a{padding:6px 13px;font-size:11.5px;letter-spacing:.07em;border:1px solid var(--hair)}
.qtabs a.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.qtabs a:hover{border-color:var(--ink)}

/* ---------- обзор: топы ---------- */
.movers-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:16px}
@media(max-width:1000px){.movers-grid{grid-template-columns:1fr}}
.mv-block{min-width:0}   /* длинные описания не распирают колонку */
.mv-block h3{font-size:11px;letter-spacing:.13em;font-weight:600;margin-bottom:8px}
.mv-block h3 span{color:var(--gray);font-weight:400}
.mv-row{display:flex;align-items:center;gap:10px;padding:7px 8px;border-bottom:1px solid var(--hair);
  cursor:pointer;font-variant-numeric:tabular-nums}
.mv-row:hover{background:var(--faint)}
.mv-row .mv-code{font-size:10.5px;color:var(--gray);flex:none;width:86px}
.mv-row .mv-desc{font-size:11.5px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mv-row .mv-val{font-size:12px;font-weight:600;flex:none;width:88px;text-align:right}
.mv-row canvas{flex:none}

/* ---------- живой поиск в шапке ---------- */
.searchbox{position:relative}
#suggest{position:absolute;top:calc(100% + 4px);right:0;width:430px;max-height:60vh;overflow:auto;
  background:var(--paper);border:1px solid var(--ink);display:none;z-index:130;
  box-shadow:4px 4px 0 rgba(10,10,10,.08)}
#suggest.open{display:block}
#suggest .sg{display:block;padding:8px 12px;border-bottom:1px solid var(--hair);font-size:11.5px;cursor:pointer}
#suggest .sg:hover,#suggest .sg.sel{background:var(--faint)}
#suggest .sg .sg-code{color:#c05600;font-weight:600;margin-right:8px}
#suggest .sg .sg-svc{color:var(--gray);font-size:10px;display:block;margin-top:1px}
#suggest .sg.more{color:var(--gray);letter-spacing:.06em;font-size:10.5px}
#suggest .sg-head{font-size:9px;letter-spacing:.16em;color:var(--gray);padding:7px 12px 3px;
  border-bottom:1px solid var(--hair);background:var(--faint)}

/* легенда над графиком (не оверлей) */
.qlegend.static{position:static;border:0;border-left:2px solid var(--ink);
  padding:2px 0 2px 10px;margin:0 0 8px;max-width:none}

/* тост загрузки */
.toast{position:fixed;right:22px;bottom:22px;z-index:200;background:var(--ink);color:var(--paper);
  padding:12px 18px;font-size:12px;letter-spacing:.04em;opacity:0;transform:translateY(8px);
  transition:opacity .3s,transform .3s;box-shadow:4px 4px 0 rgba(10,10,10,.15)}
.toast.show{opacity:1;transform:none}
.toast.bad{background:var(--down)}

/* звезда избранного */
.btn.star{padding:3px 8px;color:var(--gray);line-height:0}
.btn.star svg{vertical-align:middle}
.btn.star.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* карандаш переименования отчёта (staff) */
.ren-report{color:var(--gray);cursor:pointer;font-size:11px;margin-left:6px}
.ren-report:hover{color:var(--ink)}

/* звёздочка избранного отчёта */
.rfav{border:0;background:none;cursor:pointer;color:var(--gray);padding:2px 4px;
  vertical-align:-1px;line-height:0}
.rfav:hover,.rfav.on{color:var(--ink)}

/* главная: «Мои котировки» и «Мои избранные отчёты» бок о бок */
.mv-duo{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:18px}
@media(max-width:1100px){.mv-duo{grid-template-columns:1fr}}
.mv-row .fsub{display:block;font-size:9.5px;color:var(--gray);letter-spacing:.03em}
.fresh{font-size:9px;letter-spacing:.1em;color:var(--up);border:1px solid var(--up);
  padding:0 4px;vertical-align:1px}

/* отчёты строками */
.tiles.as-rows{display:block}
.tiles.as-rows .tile{display:flex;align-items:baseline;gap:14px;padding:9px 14px;margin-bottom:-1px}
.tiles.as-rows .tile:hover{position:relative;z-index:1}
.tiles.as-rows .tile .t-sub{margin:0;flex:none;width:90px;text-align:right;margin-left:auto}

.mv-block h3 svg{vertical-align:-2px;margin-right:4px}

/* ---------- прочее ---------- */
.muted{color:var(--gray)}
.mono-sm{font-size:10.5px;letter-spacing:.06em}
.pill{display:inline-block;border:1px solid var(--hair);font-size:9.5px;letter-spacing:.08em;
  padding:1px 7px;color:var(--gray)}
.crumbs{font-size:11px;color:var(--gray);margin-bottom:14px;letter-spacing:.04em}
.crumbs a:hover{background:var(--ink);color:var(--paper)}
.empty{color:var(--gray);font-size:12px;padding:26px 0;text-align:center;letter-spacing:.06em}

/* ---------- главная-дашборд ---------- */
.home-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;margin-top:16px}
.home-main{min-width:0}
.hcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.hcard{display:flex;flex-direction:column;border:1px solid var(--ink);padding:13px 14px 11px;
  text-decoration:none;color:var(--ink);min-height:196px;transition:background .12s}
a.hcard:hover{background:#f4f2ec}
.hc-head{display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.13em}
.hc-arrow{margin-left:auto;font-weight:600}
.hc-soon{margin-left:auto;font-size:9px;letter-spacing:.14em;border:1px solid var(--ink);
  padding:1px 6px}
.hc-sub{font-size:10.5px;color:var(--gray);letter-spacing:.05em;margin:5px 0 9px}
.hc-body{flex:1;min-height:0}
.hc-row{display:flex;gap:8px;align-items:baseline;padding:4.5px 0;font-size:11px;
  border-bottom:1px solid var(--hair);cursor:pointer}
.hc-row:last-child{border-bottom:0}
.hc-row:hover .hc-row-name{background:var(--ink);color:var(--paper)}
.hc-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.hc-row-val{margin-left:auto;flex:none;color:var(--gray);font-size:10.5px}
.hcard-ai .hc-body{display:flex;flex-direction:column}
.ai-log{flex:1;overflow-y:auto;max-height:120px;display:flex;flex-direction:column;gap:6px}
.ai-msg{font-size:10.5px;line-height:1.45;padding:5px 8px;max-width:95%}
.ai-bot{border:1px solid var(--hair);color:var(--gray)}
.ai-user{border:1px solid var(--ink);align-self:flex-end}
.ai-form{display:flex;gap:6px;margin-top:9px}
.ai-form input{flex:1;min-width:0;border:1px solid var(--ink);background:transparent;
  font:inherit;font-size:11px;padding:5px 8px;outline:none}
.mv-star{border:0;background:none;color:var(--ink);cursor:pointer;padding:2px 4px;flex:none}
.mv-star:hover{color:var(--down)}
.hnews{border:1px solid var(--ink);padding:12px 14px;align-self:start}
.hn-head{display:flex;align-items:center;font-size:11.5px;letter-spacing:.13em;
  border-bottom:1px solid var(--ink);padding-bottom:8px;margin-bottom:4px}
.hn-demo{margin-left:auto;font-size:9px;letter-spacing:.14em;color:var(--paper);
  background:var(--ink);padding:1px 6px}
.hn-item{padding:8px 0;border-bottom:1px solid var(--hair)}
.hn-item:last-child{border-bottom:0}
.hn-meta{display:flex;gap:8px;font-size:9.5px;color:var(--gray);letter-spacing:.1em;margin-bottom:3px}
.hn-tag{border:1px solid var(--hair);padding:0 5px}
.hn-title{font-size:11px;line-height:1.45}
@media (max-width:1100px){.home-grid{grid-template-columns:1fr}.hcards{grid-template-columns:1fr}}

/* ---------- отчёты v2: выпуски и файловые бейджи ---------- */
.tablewrap{overflow-x:auto}
table.reports th{white-space:nowrap}
table.reports tr.locked td{color:var(--gray)}
.fbadge{display:inline-block;border:1px solid var(--ink);padding:2px 9px;font-size:10px;
  letter-spacing:.1em;cursor:pointer;position:relative;text-decoration:none;color:var(--ink)}
.fbadge:hover{background:var(--ink);color:var(--paper)}
.fbadge.has-menu{font:inherit}
.fmenu-float{position:fixed;min-width:280px;background:var(--paper);
  border:1px solid var(--ink);z-index:120;box-shadow:3px 3px 0 rgba(10,10,10,.12)}
.fmenu-float a{display:flex;justify-content:space-between;gap:14px;padding:7px 10px;
  font-size:11px;color:var(--ink);text-decoration:none;letter-spacing:0;border-bottom:1px solid var(--hair)}
.fmenu-float a:last-child{border-bottom:0}
.fmenu-float a:hover{background:var(--ink);color:var(--paper)}
.fmenu-float a:hover .muted{color:var(--paper)}

/* ---------- аудит-сервис ---------- */
.a-day{font-size:12px;font-weight:600;letter-spacing:.1em;margin:20px 0 6px;
  border-bottom:1px solid var(--ink);padding-bottom:5px}
table.audit thead th{position:sticky;top:0;background:var(--paper);z-index:5}
.a-act{display:flex;flex-wrap:wrap;gap:6px}
.a-chip{border:1px solid var(--hair);background:none;font:inherit;font-size:10.5px;
  padding:2px 9px;cursor:pointer;letter-spacing:.05em;color:var(--ink)}
.a-chip b{margin-left:4px}
.a-chip:hover{background:var(--ink);color:var(--paper)}
.qtip-row .qtip-unit{min-width:44px;color:var(--gray);font-size:10px}
.qtip-row .qtip-range{min-width:96px;text-align:right;white-space:nowrap}
#q-blitz td.q-name{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qtip-row.stale b,.qtip-row.stale .qtip-range{color:var(--gray)}

/* ---------- плавность интерфейса: клик виден сразу, без «перезагрузок» ---------- */
a,button,.btn,.tile,.fbadge,.seg button,.prov,.a-chip,.mv-row,.hc-row{
  transition:background-color .12s ease,color .12s ease,border-color .12s ease}
.tiles .tile{transition:background-color .12s ease,transform .12s ease}
.collectbox{border:1px solid var(--hair);padding:10px 14px;margin-bottom:16px}

/* ---------- терминал: корзина в легенде, крестики фильтров ---------- */
.lrow{position:relative;padding-right:22px}
.lrm{border:0;background:none;color:var(--gray);cursor:pointer;font:inherit;
  font-size:11px;padding:0 4px;margin-left:6px}
.lrm:hover{color:var(--down)}
.fclear{border:0;background:none;color:var(--gray);cursor:pointer;font:inherit;
  font-size:11px;padding:0 4px;flex:none}
.fclear:hover{color:var(--ink)}
.fhead .fcaret{cursor:pointer;padding:4px 6px;user-select:none}
.fhead .fcaret:hover{color:var(--ink)}

/* --- поддержка: композер обращения «как письмо» --- */
.tk-compose{border:1px solid var(--ink);padding:18px 20px 16px;max-width:820px}
.tk-compose textarea{resize:vertical;min-height:150px;line-height:1.6}
.tk-attrow{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.tk-attrow .tk-clip{position:relative;overflow:hidden;flex:none}
.tk-attrow .tk-clip input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
.tk-msg .tk-docs{display:flex;flex-direction:column;gap:4px;margin-top:8px}
.att-doc{display:inline-flex;gap:8px;align-items:baseline;border:1px solid var(--hair);
  padding:4px 10px;font-size:11px;text-decoration:none;color:var(--ink);width:fit-content}
.att-doc:hover{border-color:var(--ink)}
.att-doc::before{content:'⤓';color:var(--gray)}

/* --- чат тикетов поддержки --- */
.tk-item{border:1px solid var(--hair);margin-bottom:10px}
.tk-head{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;
  font-size:12px;flex-wrap:wrap}
.tk-head:hover{background:var(--faint)}
.tk-head .tk-subj{font-weight:600}
.tk-head .tk-meta{color:var(--gray);font-size:10.5px;margin-left:auto}
.tk-wait{border-color:var(--ink)}
.tk-thread{border-top:1px solid var(--hair);padding:12px 14px;display:flex;
  flex-direction:column;gap:10px;max-height:440px;overflow-y:auto}
.tk-msg{max-width:78%;padding:8px 12px;font-size:12px;line-height:1.55;
  border:1px solid var(--hair);background:var(--paper)}
.tk-msg.mine{align-self:flex-end;background:var(--faint)}
.tk-msg.staff{border-left:3px solid var(--ink)}
.tk-msg .tk-who{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--gray);margin-bottom:4px}
.tk-msg .tk-imgs{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.tk-msg .tk-imgs img{max-height:120px;max-width:200px;border:1px solid var(--hair);
  cursor:zoom-in;display:block}
.tk-reply{border-top:1px solid var(--hair);padding:10px 14px;display:flex;gap:8px;
  align-items:center;flex-wrap:wrap}
.tk-reply input[type=text]{flex:1;min-width:200px;border:1px solid var(--hair);
  padding:8px 10px;font:inherit;font-size:12px}
.tk-reply .tk-clip{position:relative;overflow:hidden;flex:none}
.tk-reply .tk-clip input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
.tk-att-note{font-size:10px;color:var(--gray);width:100%}
