:root{
  --hdr-h:30px; --row-h:24px;
  --grid:#c5c9cf; --week:#F4CCCC; --month:#EA9999;
  --panel-w:230px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font:11px/1.25 Arial,Helvetica,sans-serif;color:#111;background:#e9ebee;overflow:hidden}
.topbar{height:44px;background:#fff;border-bottom:1px solid var(--grid);display:flex;align-items:center;gap:14px;padding:0 14px}
.topbar .logo{font-size:14px;font-weight:bold}
.topbar .sku{background:#FFF2CC;border:1px solid #e3cf7a;padding:3px 10px;border-radius:3px;font-weight:bold}
.topbar #tabname{color:#666}
.topbar .sync{margin-left:auto;color:#1a7f37;font-size:11px}
.layout{display:flex;height:calc(100vh - 44px)}
/* анти-FOUC: пока не проверена авторизация — прячем внутренний интерфейс, чтобы он не мигал при загрузке */
body.booting .layout{display:none}
.tablewrap{flex:1;overflow:auto;background:#fff;position:relative}
table{border-collapse:separate;border-spacing:0;table-layout:fixed}
th,td{border-right:1px solid var(--grid);border-bottom:1px solid var(--grid);padding:2px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:var(--row-h);text-align:right;font-size:11px}
th{font-weight:bold;text-align:center;white-space:normal;line-height:1.1}
thead th{position:sticky;z-index:5}
thead tr.grp th{top:0;height:var(--hdr-h);font-size:11.5px}
thead tr.met th{top:var(--hdr-h);height:56px;font-size:15px;font-weight:normal;vertical-align:middle}
tbody td:first-child, thead th:first-child{position:sticky;left:0;background:#fff;z-index:6;text-align:left;font-weight:bold;width:120px;min-width:120px;max-width:120px;border-right:2px solid #888}
thead tr.grp th:first-child{z-index:9;background:#FFF2CC}
thead tr.met th:first-child{z-index:9;background:#FFF2CC}
/* над-разделы колонок (Сводка / Внутренняя / Внешние) — над-шапка скроллится над своими столбцами */
thead tr.supgrp th{position:static;height:24px;font-size:12px;font-weight:bold;text-align:center;cursor:pointer;border-bottom:2px solid #555;border-right:2px solid #555}
thead tr.supgrp th:first-child{background:#fff;border-right:2px solid #888}
.pbtn.sec{font-size:11px;padding:5px 8px;text-align:left;margin-bottom:3px}
tr.week td{background:var(--week);font-weight:bold}
tr.month td{background:var(--month);font-weight:bold}
tr.year td{background:#9fc5e8;font-weight:bold}
tr.cumul td{background:#cfe2f3;font-weight:bold}
/* строка прогноза на следующий день — подсвечена под последним днём */
tr.forecast td{background:#ffe49c;font-weight:bold;border-top:2px dashed #d98a00;color:#5a3d00}
tr.forecast td:first-child{background:#ffe49c}
.wktoggle{display:inline-block;width:14px;height:14px;line-height:12px;text-align:center;border:1px solid #888;border-radius:2px;background:#fff;color:#333;font-weight:bold;cursor:pointer;margin-right:6px;font-size:11px;user-select:none}
.wktoggle:hover{background:#1f6feb;color:#fff;border-color:#1f6feb}
.wkchild{display:inline-block;width:16px}
tr.child td:first-child{padding-left:10px;color:#555;font-weight:normal}
tbody tr:hover td{filter:brightness(.96)}
.panel{width:var(--panel-w);background:#f7f8fa;border-left:1px solid var(--grid);padding:10px;display:flex;flex-direction:column;gap:6px;overflow-y:auto}
.panel h3{font-size:10px;text-transform:uppercase;color:#777;margin:6px 0 2px;letter-spacing:.4px}
.pbtn{display:block;width:100%;text-align:left;padding:8px 10px;border:1px solid var(--grid);background:#fff;border-radius:4px;font-size:12px;cursor:pointer}
.pbtn:hover{background:#eef2f7}
.pbtn.active{background:#1f6feb;color:#fff;border-color:#1f6feb;font-weight:bold}
.pbtn .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px}
.pbtn.chan{padding:5px 9px;font-size:11px}
.pbtn.chan.active{border:2px solid #1f6feb;font-weight:bold;color:#000}
.prange{display:flex;gap:4px}
.prange input{flex:1;min-width:0;padding:4px;border:1px solid var(--grid);border-radius:4px;font-size:10px}
.presets{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.presets button{padding:5px 4px;border:1px solid var(--grid);background:#fff;border-radius:4px;font-size:11px;cursor:pointer}
.presets button:hover{background:#eef2f7}
.presets button.active{background:#1f6feb;color:#fff;border-color:#1f6feb}
.gear{margin-top:auto}
.placeholder{padding:30px;font-size:13px;color:#555}
.placeholder table{margin-top:14px}
.placeholder th,.placeholder td{padding:4px 10px}
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;z-index:50}
.modal{background:#fff;border-radius:8px;width:560px;max-height:80vh;overflow-y:auto;padding:20px 24px}
.modal h2{font-size:15px;margin-bottom:12px}
.modal .grpset{border:1px solid var(--grid);border-radius:6px;padding:10px 12px;margin-bottom:10px}
.modal .grpset b{display:block;margin-bottom:6px;font-size:12px}
.modal label{display:block;font-size:11px;color:#555;margin:6px 0 2px}
.modal input,.modal select{width:100%;padding:6px 8px;border:1px solid var(--grid);border-radius:4px;font-size:12px}
.modal .ok{color:#1a7f37;font-size:11px}
.modal .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}
.modal .actions button{padding:7px 16px;border-radius:4px;border:1px solid var(--grid);background:#fff;cursor:pointer}

/* Фаза 5: экспорт + подсветка ДРР */
.pbtn.export{background:#1a7f37;color:#fff;border-color:#1a7f37;font-weight:bold;text-align:center}
.pbtn.export:hover{background:#15662c}
td.drr-hot{background:#f8c8c8 !important;color:#a40000;font-weight:bold}
/* ручной ввод — мягкая янтарная подсветка + акцент слева (формулы не трогаем) */
td.manual-cell{background:#fff3cd !important;box-shadow:inset 2px 0 0 #e0a800}
#yearsel{grid-template-columns:1fr 1fr 1fr;margin-top:4px}

/* Кнопка «Обновить» + строка статуса синка */
.pbtn.refresh{background:#1f6feb;color:#fff;border-color:#1f6feb;font-weight:bold;text-align:center}
.pbtn.refresh:hover{background:#1a5fcc}
.pbtn.refresh:disabled{background:#9bb8e6;border-color:#9bb8e6;cursor:default}
.syncstatus{font-size:10.5px;line-height:1.3;min-height:0;padding:0 2px}
.syncstatus:empty{display:none}
.syncstatus.run{color:#8a6d00}
.syncstatus.ok{color:#1a7f37}
.syncstatus.err{color:#c0392b}

/* Фаза 4: доп-вкладки */
.abcard{display:inline-block;vertical-align:top;margin:0 12px 12px 0;border:1px solid var(--grid);border-radius:6px;padding:8px 10px;background:#fff}
.abcard .abdate{font-weight:bold;margin-bottom:4px;color:#444}
table.mini{table-layout:auto}
table.mini th,table.mini td{padding:3px 10px}
table.mini tr.best td{background:#d9ead3;font-weight:bold}
.seg{display:flex;gap:6px;margin:6px 0 12px}
.seg button{padding:6px 14px;border:1px solid var(--grid);background:#fff;border-radius:5px;cursor:pointer;font-size:12px}
.seg button.on{background:#1f6feb;color:#fff;border-color:#1f6feb;font-weight:bold}
.placeholder.utmwrap{padding:16px 22px}
table.utm{table-layout:fixed;width:100%}
table.utm col.c-label{width:300px}
table.utm col.c-act{width:130px}
table.utm td{padding:5px 8px;border-color:#e3e6ea;vertical-align:middle}
td.utm-label{text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#111}
td.utm-url{text-align:left;overflow:hidden}
.utm-url-in{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#1f6feb}
td.utm-act{text-align:right;white-space:nowrap}
tr.utm-row:hover td{background:#f3f7ff}
button.copy{padding:3px 10px;border:1px solid var(--grid);background:#f7f8fa;border-radius:4px;cursor:pointer;font-size:11px}
button.copy:hover{background:#eef2f7}
.utmgen{display:flex;flex-direction:column;gap:6px;max-width:640px;border:1px solid var(--grid);border-radius:6px;padding:12px;background:#fafbfc}
.utmgen label{font-size:11px;color:#555}
.utmgen input{width:100%;padding:6px 8px;border:1px solid var(--grid);border-radius:4px;font-size:12px;margin-top:2px}
.utmgen button{align-self:flex-start;padding:7px 18px;border:1px solid #1f6feb;background:#1f6feb;color:#fff;border-radius:5px;cursor:pointer}
.utmgen .gout{font-size:12px;margin-top:4px}
.cmpbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.cmpbar input{padding:4px;border:1px solid var(--grid);border-radius:4px;font-size:11px}
.cmpbar button{padding:6px 16px;border:1px solid #1f6feb;background:#1f6feb;color:#fff;border-radius:5px;cursor:pointer}
table.cmp{table-layout:auto}
table.cmp th,table.cmp td{padding:5px 14px}
table.cmp tr.grp-top td{border-top:2px solid #888}
.up{color:#1a7f37;font-weight:bold}
.down{color:#c0392b;font-weight:bold}

/* Фаза 1: всплывающие подсказки */
#tip{position:fixed;z-index:100;max-width:340px;background:#1f2530;color:#fff;font-size:14px;line-height:1.4;padding:8px 12px;border-radius:6px;box-shadow:0 6px 18px rgba(0,0,0,.28);pointer-events:none;opacity:0;display:none;transition:opacity .12s}
[data-tip]{cursor:help}
.pbtn[data-tip]{cursor:pointer}
thead tr.met th[data-tip]{text-decoration:underline dotted rgba(0,0,0,.35);text-underline-offset:2px}

/* Фаза 1: меню видимости столбцов */
#cv_list{columns:2;column-gap:18px;font-size:12px}
#cv_list input{width:auto;margin-right:5px}
/* модалка столбцов: чекбоксы сгруппированы по группам (видно к какому разделу относится) */
.cvgrp{break-inside:avoid;margin-bottom:10px;border:1px solid #dfe3ea;border-radius:6px;overflow:hidden}
.cvgrp-h{padding:4px 8px;font-size:11.5px;display:flex;align-items:center;gap:6px;justify-content:space-between;border-bottom:1px solid rgba(0,0,0,.12)}
.cvgrp-h label{display:flex;align-items:center;gap:5px;margin:0;cursor:pointer}
.cvsec{font-size:9px;background:rgba(0,0,0,.13);padding:1px 6px;border-radius:9px;white-space:nowrap}
.cvcol{display:block;padding:2px 8px 2px 24px;cursor:pointer}

/* Фаза 4: вкладка Посевы — KPI-карточки + бар-чарт */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:900px}
.kpi{border:1px solid var(--grid);border-radius:8px;padding:12px 14px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.kpi-v{font-size:20px;font-weight:bold;line-height:1.1}
.kpi-l{font-size:11px;color:#777;margin-top:5px;text-transform:uppercase;letter-spacing:.3px}
.kpi.good .kpi-v{color:#1a7f37}
.kpi.bad .kpi-v{color:#c0392b}
.seedchart{display:flex;align-items:flex-end;gap:2px;height:140px;max-width:900px;border-bottom:1px solid var(--grid);padding-top:6px}
.seedchart .sbar{flex:1;min-width:2px;background:linear-gradient(#5b9bf6,#1f6feb);border-radius:2px 2px 0 0}
.seedchart .sbar:hover{filter:brightness(1.18)}

/* Фаза 5 #6: глоссарий толкований колонок */
dl.docs{font-size:12px;margin:0}
dl.docs dt{font-weight:bold;margin-top:10px;color:#111}
dl.docs dd{color:#555;margin:2px 0 0;line-height:1.4}

/* Фаза C: авторизация, история, пользователи */
.histctl button{margin-left:6px;padding:3px 9px;border:1px solid var(--grid);background:#fff;border-radius:4px;font-size:11px;cursor:pointer}
.histctl button:hover{background:#eef2f7}
.histctl button:disabled{opacity:.4;cursor:default}
.userlabel{margin-left:12px;font-size:11px;color:#444;white-space:nowrap}
#loginbox{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;background:linear-gradient(135deg,#1f3a5f,#2c5282)}
#loginform{background:#fff;border-radius:12px;padding:32px 34px;width:320px;box-shadow:0 18px 50px rgba(0,0,0,.35);display:flex;flex-direction:column;gap:10px}
#loginform .li-logo{font-size:18px;font-weight:bold}
#loginform .li-sub{font-size:12px;color:#777;margin-bottom:10px}
#loginform input{padding:9px 11px;border:1px solid var(--grid);border-radius:6px;font-size:13px}
#loginform button{margin-top:6px;padding:10px;border:0;background:#1f6feb;color:#fff;border-radius:6px;font-size:14px;font-weight:bold;cursor:pointer}
#loginform button:hover{background:#1a5fcc}
#loginform .li-err{color:#c0392b;font-size:12px;min-height:14px}
#users_list table{width:100%;border-collapse:collapse}
#users_list td{padding:4px 6px;border-bottom:1px solid var(--grid);text-align:left}
#users_list select,#users_list button{font-size:11px;padding:2px 6px}
#hist_list table{width:100%;border-collapse:collapse}
#hist_list td{padding:3px 6px;border-bottom:1px solid #eee;text-align:left}
#hist_list tr.undone td{color:#aaa;text-decoration:line-through}
.modal{position:relative}
.modal-x{position:absolute;top:8px;right:10px;width:30px;height:30px;border:0;background:transparent;font-size:24px;line-height:1;color:#888;cursor:pointer;border-radius:6px;z-index:2}
.modal-x:hover{background:#eee;color:#111}
/* Лог сверки (несоответствия синка) */
table.conf{width:100%;border-collapse:collapse;font-size:11px}
table.conf th,table.conf td{border:1px solid var(--grid);padding:4px 7px;text-align:left}
table.conf th{background:#eef3fb}
table.conf tr.k1 td{background:#fff7e6}
table.conf tr.k2 td{background:#eaf2ff}
table.conf tr.ack td{background:#eef9f0;color:#8a8a8a}
