/* =====================================================================
   admin-theme.css - финальный флэт-слой (грузится ПОСЛЕ всех компонентов).
   Приводит вкладки Таблица/Отчёты/Импорт/Клиенты/Рейсы/Команда к одному
   flat-виду 2013-2014: квадратные углы 3px, без градиентов, без пилюль,
   минимальные тени. Палитра уже подхвачена через CSS-переменные.
   ===================================================================== */

/* --- глобально квадратим скруглённые компоненты аддонов --- */
.tbl-btn,.tbl-search,.cargo-tbl,.tbl-wrap,
.imp-card,.imp-drop,.imp-chip,.imp-map-src,.imp-map-sel,.imp-tbl-scroll,.imp-res,.imp-x,
.rep-tile,.rep-card,.rep-tbl,.rep-status-track,.rep-status-bar,
.cl-card,.cl-avatar,.sh-card,.tm-card,.tm-avatar,.tm-add,.tm-row{
  border-radius:3px !important;
}

/* --- таблица (Excel-вид) --- */
.tbl-btn{background:var(--panel);border:1px solid var(--line2);color:var(--ink2);font-weight:600;box-shadow:none}
.tbl-btn:hover{background:var(--panel2);border-color:var(--accent);color:var(--accent)}
.tbl-btn.accent{background:var(--accent);border-color:var(--accent-d);color:#fff}
.tbl-btn.accent:hover{background:var(--accent-d);color:#fff}
.tbl-search{border:1px solid var(--line);background:var(--panel)}
.cargo-tbl thead th{background:var(--panel2);color:var(--muted);font-weight:600;border-bottom:1px solid var(--line)}
.cargo-tbl td,.cargo-tbl th{border-color:var(--line)}

/* --- импорт-мастер --- */
.imp-overlay{backdrop-filter:none;background:rgba(0,0,0,.5)}
.imp-card{box-shadow:0 3px 16px rgba(0,0,0,.25);animation:none}
.imp-drop{border-radius:3px}
.imp-drop-ic{color:var(--muted2);display:flex;justify-content:center}
.imp-drop-ic svg{width:40px;height:40px;fill:currentColor}
.imp-chip.on{background:var(--accent);border-color:var(--accent-d)}
.imp-res-n{font-weight:700}

/* --- отчёты: флэт-боксы + сплошные бары --- */
.rep-tile{box-shadow:none;border:1px solid var(--line);border-top:2px solid var(--line2)}
.rep-tile.ok{border-top-color:var(--green)}
.rep-tile.warn{border-top-color:var(--amber)}
.rep-tile-n{font-weight:700}
.rep-card{box-shadow:none}
.rep-bar-fill{background:var(--accent) !important;border-radius:2px 2px 0 0}
.rep-status-bar{background:var(--accent)}
.rep-tbl thead th{background:var(--panel2)}
.tbl-btn#repExport,.tbl-btn.accent#repExport{background:var(--accent);border-color:var(--accent-d);color:#fff}

/* --- прочие карточки/аватары в клиентах/рейсах/команде --- */
.cl-avatar,.tm-avatar{background:var(--av-bg);color:var(--av-fg);border:1px solid var(--line)}
.cl-card,.sh-card,.tm-card{box-shadow:none;border:1px solid var(--line)}
.cl-card:hover,.sh-card:hover{box-shadow:var(--shadow)}

/* убрать возможные пилюли (999px) у второстепенных чипов аддонов */
.rep-tile,.cl-badge,.sh-badge,.tm-badge{border-radius:3px}

/* =====================================================================
   PREMIUM POLISH - watermark KPI, тёмный юзер-панель, микро-интеракции
   ===================================================================== */

/* --- KPI small-box: иконка-watermark + лёгкий объём (сигнатура AdminLTE) --- */
.stat{overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.12);transition:transform .12s,box-shadow .12s}
.stat:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(0,0,0,.16)}
.stat-main{position:relative;z-index:1}
.stat-ic{position:absolute;right:-6px;bottom:-10px;z-index:0;color:#fff;opacity:.20;pointer-events:none;line-height:0}
.stat-ic svg{width:78px;height:78px;fill:currentColor;display:block}

/* --- тёмный сайдбар-футер: юзер-панель + ghost-кнопки (AdminLTE user panel) --- */
.side-foot{padding:10px 12px 4px}
.side-user{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:3px;padding:9px 10px;margin-bottom:8px}
.side-user .av{background:var(--accent);border-radius:50%}
.side-user .nm{color:#fff;font-weight:600}
.side-user .rl{color:var(--side-head)}
.side-tg,.side-logout{border-radius:3px;font-weight:600;font-size:13px;padding:9px}
.side-tg{background:transparent;border:1px solid rgba(255,255,255,.12);color:var(--side-ink)}
.side-tg:hover{background:rgba(255,255,255,.06);border-color:var(--accent);color:#fff}
.side-tg.tg-on{color:var(--green);border-color:rgba(0,166,90,.4)}
.side-logout{background:transparent;border:1px solid rgba(255,255,255,.12);color:var(--side-ink)}
.side-logout:hover{border-color:var(--red);color:#ff8b7d;background:rgba(221,75,57,.08)}
.side-logout svg{fill:currentColor;width:15px;height:15px}

/* --- инструменты: не переносить значение "не подключён" на 2 строки уродливо --- */
.tool{white-space:nowrap}
.tool .val{white-space:nowrap;font-size:11.5px;text-align:right;line-height:1.2}
#waChip .val{max-width:78px;white-space:normal}

/* --- курс-чип: значение помельче, приятнее --- */
#rateChip .val{color:var(--side-head)}

/* --- карточки грузов: чуть живее ховер --- */
.row{transition:box-shadow .12s,border-color .12s,transform .1s}
.row:hover{transform:translateY(-1px)}

/* --- заголовок контента: хлебные крошки-вайб (тонкая подпись) --- */
.page-head h1{position:relative}

/* --- отчёты: заголовки боксов как AdminLTE box-header --- */
.rep-card h3,.rep-bar .rep-title{color:var(--ink2)}
.rep-tile-l{color:var(--muted);letter-spacing:.02em}

/* --- кнопки в барах отчёта/таблицы: единый флэт --- */
.rep-bar .tbl-btn,.tbl-bar .tbl-btn{box-shadow:none}

/* --- кнопки с иконкой: аккуратный зазор --- */
.btn-block{gap:7px;align-items:center}
.btn svg{fill:currentColor;vertical-align:middle}
.debt-warn svg{fill:currentColor;flex-shrink:0}

/* =====================================================================
   Вкладка АНАЛИТИКА (.an-*)
   ===================================================================== */
.an-wrap.hidden{display:none}
.an-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 0 16px}
.an-bar .spacer{flex:1}
.an-segs{display:inline-flex;background:var(--panel2);border:1px solid var(--line);border-radius:3px;overflow:hidden}
.an-seg{padding:8px 14px;background:transparent;color:var(--muted);font-weight:600;font-size:13.5px;border-right:1px solid var(--line)}
.an-seg:last-child{border-right:none}
.an-seg:hover{color:var(--ink);background:var(--panel)}
.an-seg.on{background:var(--accent);color:#fff}

.an-kpis5{grid-template-columns:repeat(5,1fr)}
.an-kpis6{grid-template-columns:repeat(6,1fr)}
.rep-tile{position:relative;overflow:hidden}
.an-tile-ic{position:absolute;right:-4px;bottom:-8px;color:var(--ink);opacity:.06;line-height:0;pointer-events:none}
.an-tile-ic svg{width:56px;height:56px;fill:currentColor}
.rep-tile.ok .an-tile-ic{color:var(--green)} .rep-tile.warn .an-tile-ic{color:var(--amber)} .rep-tile.bad .an-tile-ic{color:var(--red)}
.rep-tile.bad{border-top:2px solid var(--red)}
.rep-tile.bad .rep-tile-n{color:var(--red)}

.an-tbl td{vertical-align:middle}
.an-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.an-sub{font-size:11.5px;color:var(--muted2);margin-top:1px}
.an-badge{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:2px;white-space:nowrap;
  background:var(--panel2);border:1px solid var(--line);color:var(--muted)}
.an-badge.ok{background:#e6f6ee;border-color:#a9dcc2;color:var(--green)}
.an-badge.warn{background:#fdf3e2;border-color:#f0d59b;color:var(--amber)}
.an-badge.bad{background:#fbe9e6;border-color:#f0bcb3;color:var(--red)}
.an-r-bad td{background:rgba(221,75,57,.045)}
.an-r-warn td{background:rgba(243,156,18,.05)}
.an-up{color:var(--green);font-weight:600}
.an-down{color:var(--red);font-weight:600}
.an-flat{color:var(--muted2)}
.an-call{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:3px;
  background:var(--accent);color:#fff}
.an-call svg{fill:#fff}
.an-call:hover{background:var(--accent-d)}

.an-warn{display:flex;align-items:center;gap:9px;background:#fdf3e2;border:1px solid #f0d59b;color:#8a6100;
  border-radius:3px;padding:11px 14px;font-size:13.5px;margin-bottom:14px}
.an-warn svg{fill:var(--amber);flex-shrink:0}
.an-link{color:var(--accent);cursor:pointer;border-bottom:1px dashed var(--accent);font-weight:600}
.an-costline{font-size:12.5px;color:var(--muted);margin:-4px 0 16px;padding:2px}
.claim-banner{display:flex;align-items:center;gap:8px}
.claim-banner svg{fill:currentColor;flex-shrink:0}
.team-ico svg{fill:currentColor}
.an-note{background:#eaf3f8;border:1px solid #bcdcec;color:var(--accent-d);border-radius:3px;padding:10px 14px;font-size:13.5px;margin-bottom:14px}

.an-fill-cell{min-width:130px}
.an-fill{display:inline-block;width:80px;height:8px;background:var(--panel2);border:1px solid var(--line);border-radius:2px;overflow:hidden;vertical-align:middle}
.an-fill-bar{height:100%;background:var(--accent)}
.an-fill-t{font-size:12px;color:var(--muted);margin-left:7px;vertical-align:middle;font-variant-numeric:tabular-nums}
.an-best td{background:rgba(0,166,90,.06)}
.an-best td:first-child{box-shadow:inset 3px 0 0 var(--green)}

.an-empty-card{display:flex;flex-direction:column;align-items:center;text-align:center;color:var(--muted);
  padding:48px 20px;background:var(--panel);border:1px solid var(--line);border-radius:3px}
.an-empty-card svg{fill:var(--muted2);margin-bottom:14px}

.an-vs{display:flex;gap:14px}
.an-vs-col{flex:1;text-align:center;padding:16px;background:var(--panel2);border:1px solid var(--line);border-radius:3px}
.an-vs-col b{display:block;font-size:22px;font-weight:700;color:var(--ink)}
.an-vs-col span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.an-vs-col.muted b{color:var(--muted)}

.rep-bar-fill.neg{background:var(--red) !important}

@media(max-width:1000px){.an-kpis5,.an-kpis6{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.an-kpis5,.an-kpis6{grid-template-columns:repeat(2,1fr)}.an-segs{width:100%;flex-wrap:wrap}}

/* =====================================================================
   СВОДКА / командный центр (.dash-*)
   ===================================================================== */
.dash-wrap.hidden{display:none}
.dash-bar{display:flex;align-items:center;gap:10px;padding:14px 0 16px}
.dash-bar .spacer{flex:1}
.dash-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.dash-card{display:flex;align-items:center;gap:13px;background:var(--panel);border:1px solid var(--line);
  border-left:3px solid var(--line2);border-radius:3px;padding:14px 15px;cursor:pointer;transition:box-shadow .12s,transform .1s,border-color .12s}
.dash-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}
.dash-card.bad{border-left-color:var(--red)}
.dash-card.warn{border-left-color:var(--amber)}
.dash-card.info{border-left-color:var(--accent)}
.dash-card.calm{opacity:.72}
.dash-ic{width:44px;height:44px;flex-shrink:0;border-radius:3px;display:flex;align-items:center;justify-content:center}
.dash-ic svg{fill:#fff}
.dash-ic.bad{background:var(--red)} .dash-ic.warn{background:var(--amber)} .dash-ic.info{background:var(--accent)}
.dash-ic.calm{background:var(--panel2);border:1px solid var(--line)} .dash-ic.calm svg{fill:var(--muted2)}
.dash-main{flex:1;min-width:0}
.dash-count{font-size:24px;font-weight:750;line-height:1;color:var(--ink);letter-spacing:-.02em}
.dash-card.bad .dash-count{color:var(--red)} .dash-card.warn .dash-count{color:var(--amber)}
.dash-card.calm .dash-count{color:var(--muted2)}
.dash-label{font-size:13px;font-weight:600;color:var(--ink2);margin-top:3px}
.dash-hint{font-size:11.5px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-go{flex-shrink:0;color:var(--muted2)}
.dash-go svg{fill:currentColor}
.dash-card:hover .dash-go{color:var(--accent)}

/* =====================================================================
   Премиум-тосты (.cdt-*)
   ===================================================================== */
.cdt-stack{position:fixed;top:16px;right:16px;z-index:120;display:flex;flex-direction:column;gap:10px;
  width:340px;max-width:calc(100vw - 24px);pointer-events:none}
.cdt{position:relative;display:flex;align-items:flex-start;gap:11px;pointer-events:auto;overflow:hidden;
  background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--muted2);border-radius:4px;
  padding:12px 12px 13px;box-shadow:0 6px 22px rgba(20,32,60,.16);animation:cdtin .24s cubic-bezier(.2,.85,.3,1)}
@keyframes cdtin{from{transform:translateX(30px);opacity:0}to{transform:none;opacity:1}}
.cdt-out{animation:cdtout .22s ease forwards}
@keyframes cdtout{to{transform:translateX(30px);opacity:0}}
.cdt-ok{border-left-color:var(--green)} .cdt-err{border-left-color:var(--red)}
.cdt-warn{border-left-color:var(--amber)} .cdt-info{border-left-color:var(--accent)}
.cdt-ic{flex-shrink:0;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:1px}
.cdt-ic svg{fill:#fff}
.cdt-ok .cdt-ic{background:var(--green)} .cdt-err .cdt-ic{background:var(--red)}
.cdt-warn .cdt-ic{background:var(--amber)} .cdt-info .cdt-ic{background:var(--accent)}
.cdt-body{flex:1;min-width:0}
.cdt-title{font-size:13.5px;font-weight:700;color:var(--ink);line-height:1.25}
.cdt-msg{font-size:12.5px;color:var(--muted);line-height:1.4;margin-top:1px;word-wrap:break-word}
.cdt-x{flex-shrink:0;width:22px;height:22px;border-radius:3px;background:transparent;border:none;color:var(--muted2);
  display:flex;align-items:center;justify-content:center;cursor:pointer;margin:-2px -2px 0 0}
.cdt-x svg{fill:currentColor}
.cdt-x:hover{background:var(--panel2);color:var(--ink)}
.cdt-bar{position:absolute;left:0;bottom:0;height:2px;width:100%;transform-origin:left;
  animation-name:cdtbar;animation-timing-function:linear;animation-fill-mode:forwards}
@keyframes cdtbar{from{transform:scaleX(1)}to{transform:scaleX(0)}}
.cdt-ok .cdt-bar{background:var(--green)} .cdt-err .cdt-bar{background:var(--red)}
.cdt-warn .cdt-bar{background:var(--amber)} .cdt-info .cdt-bar{background:var(--accent)}
@media(max-width:560px){.cdt-stack{left:12px;right:12px;top:auto;bottom:calc(90px + env(safe-area-inset-bottom,0px));width:auto}}

/* =====================================================================
   Колокол уведомлений (.notif-*)
   ===================================================================== */
.notif-bell{position:relative;margin-left:auto;width:34px;height:34px;border-radius:4px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.10);color:#fff;cursor:pointer;transition:background .12s}
.notif-bell:hover{background:rgba(255,255,255,.2)}
.notif-bell svg{fill:currentColor;width:17px;height:17px}
.notif-badge{position:absolute;top:-4px;right:-4px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;
  background:var(--red);color:#fff;font-size:10.5px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--logo-bg)}
.notif-badge:empty,.notif-badge.zero{display:none}
.notif-panel{position:fixed;top:52px;left:12px;width:320px;max-width:calc(100vw - 24px);z-index:110;
  background:var(--panel);border:1px solid var(--line2);border-radius:4px;box-shadow:0 10px 34px rgba(20,32,60,.22);overflow:hidden}
.notif-panel.hidden{display:none}
.notif-h{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line);font-weight:700;font-size:14px;color:var(--ink)}
.notif-h .notif-clear{margin-left:auto;font-size:12px;color:var(--muted);cursor:pointer;font-weight:500}
.notif-h .notif-clear:hover{color:var(--accent)}
.notif-list{max-height:min(60vh,440px);overflow-y:auto}
.notif-item{display:flex;align-items:flex-start;gap:11px;padding:11px 14px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .1s}
.notif-item:hover{background:var(--panel2)}
.notif-item:last-child{border-bottom:none}
.notif-i-ic{flex-shrink:0;width:30px;height:30px;border-radius:4px;display:flex;align-items:center;justify-content:center;margin-top:1px}
.notif-i-ic svg{fill:#fff}
.notif-item.bad .notif-i-ic{background:var(--red)} .notif-item.warn .notif-i-ic{background:var(--amber)} .notif-item.info .notif-i-ic{background:var(--accent)}
.notif-i-main{flex:1;min-width:0}
.notif-i-t{font-size:13px;font-weight:600;color:var(--ink);line-height:1.3}
.notif-i-s{font-size:11.5px;color:var(--muted);margin-top:1px;line-height:1.35}
.notif-empty{padding:30px 16px;text-align:center;color:var(--muted);font-size:13px}
.notif-empty svg{fill:var(--green);margin-bottom:8px}
@media(max-width:820px){.notif-panel{top:50px}}
@media(max-width:560px){.notif-bell{margin-left:auto}.notif-panel{top:auto;bottom:96px;left:12px;right:12px;width:auto}}

/* =====================================================================
   Финансы (.fin-*)
   ===================================================================== */
.fin-wrap.hidden{display:none}
.fin-bar{display:flex;align-items:center;gap:10px;padding:14px 0 16px}
.fin-bar .spacer{flex:1}
.fin-flow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);
  border-radius:3px;padding:14px 16px;margin-bottom:14px}
.fin-f{font-size:16px;font-weight:700;color:var(--ink);white-space:nowrap}
.fin-f em{display:block;font-size:11px;font-weight:500;color:var(--muted);font-style:normal;text-transform:uppercase;letter-spacing:.03em;margin-top:1px}
.fin-op{font-size:18px;color:var(--muted2);font-weight:400}
.fin-net.pos{color:var(--green)} .fin-net.neg{color:var(--red)}
.fin-net em{color:inherit;opacity:.7}

.fin-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;background:var(--panel2);border:1px solid var(--line);
  border-radius:3px;padding:12px;margin-bottom:16px}
.fin-in{padding:9px 11px;background:var(--panel);border:1px solid var(--line);border-radius:3px;color:var(--ink);font-size:13.5px}
.fin-in:focus{outline:none;border-color:var(--accent)}
.fin-form select.fin-in{min-width:130px}
.fin-form input.fin-in{width:150px}
.fin-form .fin-note{flex:1;min-width:160px;width:auto}
.fin-del{width:28px;height:28px;border-radius:3px;background:transparent;border:1px solid var(--line);color:var(--muted2);
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.fin-del svg{fill:currentColor}
.fin-del:hover{border-color:var(--red);color:var(--red)}
@media(max-width:640px){.fin-form input.fin-in,.fin-form select.fin-in{width:100%;flex:1}}

/* прибыль по грузу в карточке */
.cargo-profit{display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:var(--panel2);border:1px solid var(--line);border-radius:3px;padding:11px 14px;margin:2px 0 14px;font-size:13.5px}
.cargo-profit .cp-l{color:var(--muted)}
.cargo-profit .cp-v{font-weight:700;font-variant-numeric:tabular-nums}
.cargo-profit .cp-v.pos{color:var(--green)} .cargo-profit .cp-v.neg{color:var(--red)}

/* --- мобилка: юзер-панель прячется (как было), но иконки чистые --- */
@media(max-width:560px){
  .stat-ic svg{width:56px;height:56px}
  .dash-cards{grid-template-columns:1fr}
  .fin-flow{gap:6px}.fin-f{font-size:14px}
}
