/* Слой решений — оформление на CSS-токенах. Две темы: светлая (по умолчанию)
   и тёмная ([data-theme="dark"] на <html>, переключатель в шапке, app.js).
   Разметка одна, различаются только значения токенов. */

:root{
  color-scheme:light; /* нативные контролы (дата, скролл) в тон темы */
  /* поверхность и текст */
  --bg:#F7F8FA; --surface:#FFFFFF; --surface-2:#F1F3F7; --line:#E5E8EF;
  --tx:#1A2233; --mut:#5D6B82; --ink:#1F2A44;
  /* брендовый акцент — фирменный лайм ПВК (#ПЛОВ_ВКОРОБОЧКЕ, сайт/вывеска) */
  --accent:#BDD923;        /* заливки: кнопки, активная вкладка */
  --accent-ink:#1E2604;    /* текст на лаймовой заливке (как на меню-бордах) */
  --accent-text:#6E8400;   /* лайм для текста/ссылок на светлом (AA) */
  --accent-soft:#F5F9DC;
  /* семантика */
  --ok:#2E7D32; --danger:#C0392B; --warn:#B8860B;
  /* статусы: новый / в работе / наблюдаем / сделано / отклонён */
  --st-new-bg:#EDF0F5;  --st-new-fg:#4A5670;
  --st-wip-bg:#FFF3D6;  --st-wip-fg:#8A6D00;
  --st-watch-bg:#EEEAF7;--st-watch-fg:#6650B8;
  --st-done-bg:#E3F4E4; --st-done-fg:#1F6B27;
  --st-rej-bg:#F7E9E9;  --st-rej-fg:#A03B3B;
  /* приоритеты */
  --pri-h:#C0392B; --pri-m:#B8860B; --pri-l:#5D6B82;
  /* агенты-источники */
  --ag01-bg:#E5EEF7; --ag01-fg:#2E75B6;
  --ag04-bg:#E0F0EC; --ag04-fg:#1E8E7E;
  --ag05-bg:#EFE9FB; --ag05-fg:#7C5CCF;
  --agm-bg:#ECEFF3;  --agm-fg:#54607A;
  /* срочные (высокий + новый) — вторичный бренд-жёлтый #FFD952 */
  --urgent-bg:#FFF9E0; --urgent-bg-hover:#FFF2C4;
  /* прочее */
  --tip-bg:#1F2A44; --tip-fg:#FFFFFF;
  --shadow:0 1px 2px rgba(16,24,40,.06);
  --shadow-hover:0 6px 16px rgba(16,24,40,.10);
  /* стрелка ghost-селектов */
  --chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%235D6B82'/%3E%3C/svg%3E");
}

:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#10151F; --surface:#1A2230; --surface-2:#212B3D; --line:#2C3850;
  --tx:#E9EDF5; --mut:#9AA8BF; --ink:#F2F5FA;
  --accent:#BDD923; --accent-ink:#1A2000; --accent-text:#CFE84A;
  --accent-soft:rgba(189,217,35,.12);
  --ok:#69DB7C; --danger:#FF8787; --warn:#FFC078;
  --st-new-bg:rgba(154,168,191,.16);  --st-new-fg:#C3CDDC;
  --st-wip-bg:rgba(255,192,120,.16);  --st-wip-fg:#FFC078;
  --st-watch-bg:rgba(151,117,250,.18);--st-watch-fg:#B7A6F7;
  --st-done-bg:rgba(105,219,124,.16); --st-done-fg:#8CE99A;
  --st-rej-bg:rgba(255,135,135,.16);  --st-rej-fg:#FFA8A8;
  --pri-h:#FF8787; --pri-m:#FFC078; --pri-l:#9AA8BF;
  --ag01-bg:rgba(77,171,247,.16);  --ag01-fg:#74C0FC;
  --ag04-bg:rgba(56,217,169,.14);  --ag04-fg:#63E6BE;
  --ag05-bg:rgba(151,117,250,.16); --ag05-fg:#B197FC;
  --agm-bg:rgba(154,168,191,.14);  --agm-fg:#C3CDDC;
  --urgent-bg:rgba(255,217,82,.09); --urgent-bg-hover:rgba(255,217,82,.16);
  --tip-bg:#EAF0F9; --tip-fg:#131A28;
  --shadow:0 1px 2px rgba(0,0,0,.35);
  --shadow-hover:0 6px 16px rgba(0,0,0,.45);
  --chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%239AA8BF'/%3E%3C/svg%3E");
}

*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  background:var(--bg);color:var(--tx);line-height:1.45;-webkit-font-smoothing:antialiased;padding:22px}
.wrap{max-width:none;margin:0 auto} /* весь экран: таблица видна без горизонтальной прокрутки */
h1{font-size:20px;font-weight:750;color:var(--ink);letter-spacing:-.2px}
.sub{color:var(--mut);font-size:13.5px;margin-top:3px;margin-bottom:8px}
.sub a{color:var(--accent-text)}
/* лого-строка бренда: один ряд, масштабируется, темизируется цветом */
.logo{font-size:23px;font-weight:900;letter-spacing:-.3px;color:var(--ink);
  white-space:nowrap;line-height:1;margin-bottom:9px;user-select:none}
.logo.big{font-size:25px;text-align:center;margin-bottom:4px}
.meta{font-size:12.5px;color:var(--mut)}
.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}
.actions{display:flex;gap:8px;align-items:flex-start}
:focus-visible{outline:2px solid var(--accent-text);outline-offset:1px}
::placeholder{color:var(--mut);opacity:.7}

.tabs{display:flex;gap:6px;margin-bottom:18px}
.tab{border:1px solid var(--line);background:var(--surface);color:var(--mut);padding:8px 16px;border-radius:9px;
  font-size:13.5px;font-weight:600;cursor:pointer;transition:.15s}
.tab:hover{color:var(--tx)}
.tab.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}

/* кнопки шапки (стандарт: как на дашборде отзывов) — переходы, тема, выход */
.tbtn{border:1px solid var(--line);background:var(--surface);color:var(--tx);border-radius:8px;
  padding:6px 11px;cursor:pointer;font-size:12.5px;font-weight:650;text-decoration:none;
  white-space:nowrap;font-family:inherit}
.tbtn:hover{border-color:var(--accent);color:var(--accent-text)}
.view{display:none}.view.on{display:block}

/* KPI-плитки */
.score{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:16px}
.sc{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow)}
.sc .k{font-size:10.5px;color:var(--mut);font-weight:700;text-transform:uppercase;letter-spacing:.6px}
.sc .v{font-size:26px;font-weight:800;color:var(--ink);margin-top:5px;font-variant-numeric:tabular-nums}
.sc .v.alarm{color:var(--danger)}

.grp{font-size:11.5px;font-weight:800;color:var(--mut);text-transform:uppercase;letter-spacing:.7px;
  margin:20px 0 9px 2px}
.grp.urgent{color:var(--danger)}

/* карточка задачи */
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:15px 17px;margin-bottom:10px;
  display:grid;grid-template-columns:1fr auto;gap:4px 14px;align-items:start;box-shadow:var(--shadow);
  transition:border-color .15s, box-shadow .15s}
.card.done{opacity:.68}
.card.detail{display:block}
.ttl{font-size:15px;font-weight:650;color:var(--tx);grid-column:1}
.ttl a{color:inherit;text-decoration:none}
.ttl a:hover{color:var(--accent-text)}
.card .meta{grid-column:1;margin-top:2px}
.why{font-size:12.5px;color:var(--mut);grid-column:1;margin-top:7px;background:var(--surface-2);border-radius:8px;padding:8px 11px}
.why b{color:var(--tx)}
.right{grid-column:2;grid-row:1/4;display:flex;flex-direction:column;align-items:flex-end;gap:7px;min-width:150px}
.badges{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.badges a{text-decoration:none}
.b{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap;display:inline-block}
.ag01{background:var(--ag01-bg);color:var(--ag01-fg)}
.ag04{background:var(--ag04-bg);color:var(--ag04-fg)}
.ag05{background:var(--ag05-bg);color:var(--ag05-fg)}
.agm{background:var(--agm-bg);color:var(--agm-fg)}
.lvl{background:var(--surface-2);color:var(--mut);border:1px dashed var(--line)}
.lead{background:var(--st-done-bg);color:var(--st-done-fg)}
.lag{background:var(--st-rej-bg);color:var(--st-rej-fg)}
.pri{font-size:11.5px;font-weight:700}
.pri-h{color:var(--pri-h)} .pri-m{color:var(--pri-m)} .pri-l{color:var(--pri-l)}
.pill{font-size:11.5px;font-weight:700;padding:4px 11px;border-radius:999px;display:inline-block}
.st-new{background:var(--st-new-bg);color:var(--st-new-fg)}
.st-wip{background:var(--st-wip-bg);color:var(--st-wip-fg)}
.st-watch{background:var(--st-watch-bg);color:var(--st-watch-fg)}
.st-done{background:var(--st-done-bg);color:var(--st-done-fg)}
.st-rej{background:var(--st-rej-bg);color:var(--st-rej-fg)}
.eff{font-size:12px;font-weight:700;color:var(--ok)}
.owner{font-size:12px;color:var(--mut)}

/* ⓘ-подсказки: мгновенный тултип (app.js, [data-tip]) */
.hint{cursor:help;color:var(--mut);opacity:.75;font-size:11px;margin-left:3px;font-style:normal;font-weight:400;padding:0 2px}
.hint:hover{color:var(--accent-text);opacity:1}
.tooltip{position:fixed;display:none;z-index:99;pointer-events:none;
  background:var(--tip-bg);color:var(--tip-fg);padding:8px 11px;border-radius:8px;
  font-size:11.5px;font-weight:400;line-height:1.5;max-width:300px;
  white-space:pre-line;box-shadow:var(--shadow-hover)}

/* кликабельность: строка таблицы / карточка панели → /rec/{id} */
[data-href]{cursor:pointer}
.card[data-href]:hover{border-color:var(--accent);box-shadow:var(--shadow-hover)}
tr.rowlink:hover{background:var(--surface-2)}

/* срочные (высокий + новый): лёгкая заливка строки */
tr.urgent-row{background:var(--urgent-bg)}
tr.urgent-row:hover{background:var(--urgent-bg-hover)}

/* комментарии: краткая строка на карточке и в ячейке таблицы */
.cmeta{grid-column:1;font-size:12px;color:var(--mut);margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:640px}
td.cmnt{min-width:220px;max-width:280px}
.clast{font-size:11.5px;color:var(--mut);margin-bottom:5px;line-height:1.4;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
/* --- инлайн-контролы: «тихие» — как текст в покое, проявляются при
       наведении/фокусе; единые радиусы и размеры (панель + таблица) --- */

.cadd{display:flex;gap:4px;align-items:flex-start;flex-wrap:wrap}
.cadd input,.cadd textarea{border:1px solid transparent;border-radius:8px;padding:4px 7px;
  font-size:11.5px;font-family:inherit;background-color:transparent;color:var(--tx);
  transition:background-color .12s,border-color .12s}
.cadd input[name="author"]{width:74px;flex:none;color:var(--mut)}
.cadd textarea{flex:1;min-width:110px;resize:none;overflow:hidden;line-height:1.4;min-height:25px}
.cadd input:hover,.cadd textarea:hover{background-color:var(--surface-2);border-color:var(--line)}
.cadd input:focus,.cadd textarea:focus{outline:none;background-color:var(--surface);border-color:var(--accent-text)}
.mini{border:1px solid var(--line);background:var(--surface);border-radius:8px;cursor:pointer;
  font-size:11px;padding:4px 8px;color:var(--mut);flex:none}
.mini:hover{color:var(--accent-text);border-color:var(--accent-text)}
.cadd .mini{display:none}                 /* кнопка появляется при вводе */
.cadd:focus-within .mini{display:block}

/* быстрые инлайн-правки: карточка панели и ячейки таблицы */
.quick{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.owner-select,.pri-select,.due-input,.oth{
  font-family:inherit;font-size:12px;color:var(--tx);cursor:pointer;
  border:1px solid transparent;background-color:transparent;border-radius:8px;
  padding:3px 7px;transition:background-color .12s,border-color .12s}
.owner-select,.pri-select{appearance:none;-webkit-appearance:none;
  background-image:var(--chev);background-repeat:no-repeat;
  background-position:right 6px center;padding-right:20px}
.owner-select{max-width:150px}
.pri-select{font-size:11.5px;font-weight:700}
.due-input{font-size:11.5px;color:var(--mut)}
.due-input::-webkit-calendar-picker-indicator{opacity:.45;cursor:pointer}
.oth{cursor:text;width:150px}
.owner-select:hover,.pri-select:hover,.due-input:hover,.oth:hover{
  background-color:var(--surface-2);border-color:var(--line)}
.owner-select:focus,.pri-select:focus,.due-input:focus,.oth:focus{
  outline:none;background-color:var(--surface);border-color:var(--accent-text)}

/* селект статуса — цветная пилюля; намёк на клик — кольцо при наведении */
.pill-select{font-size:11.5px;font-weight:700;padding:4px 11px;border-radius:999px;border:none;
  cursor:pointer;appearance:none;-webkit-appearance:none;text-align:center;font-family:inherit;
  transition:box-shadow .12s}
.pill-select:hover,.pill-select:focus{outline:none;box-shadow:inset 0 0 0 1.5px currentColor}

/* таблица «вся история» */
.scroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}
table{border-collapse:collapse;width:100%;min-width:1080px;font-size:12.5px}
th{background:var(--surface-2);color:var(--mut);text-align:left;padding:9px 9px;font-weight:700;
  font-size:11px;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;position:sticky;top:0;
  border-bottom:1px solid var(--line)}
td{padding:8px 9px;border-bottom:1px solid var(--line);vertical-align:top}
tr:last-child td{border-bottom:none}
td.id{font-family:ui-monospace,Menlo,Consolas,monospace;white-space:nowrap}
td.id a{color:var(--accent-text);text-decoration:none}
td a{text-decoration:none}
.tag{font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:6px;white-space:nowrap}
.leadt{background:var(--st-done-bg);color:var(--st-done-fg)}
.lagt{background:var(--st-rej-bg);color:var(--st-rej-fg)}
.n{color:var(--mut);opacity:.7}
.legend{font-size:12px;color:var(--mut);margin-top:12px;line-height:1.7}
.legend b{color:var(--tx)}

/* фильтры */
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.filters select,.filters input{border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:13px;
  background:var(--surface);color:var(--tx)}
.filters .reset{font-size:12.5px;color:var(--mut)}

/* кнопки и формы */
.btn{border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);padding:8px 14px;border-radius:9px;
  font-size:13px;font-weight:650;cursor:pointer;transition:filter .15s}
.btn:hover{filter:brightness(1.06)}
.btn.ghost{background:var(--surface);color:var(--mut);border-color:var(--line)}
.btn.ghost:hover{color:var(--tx);filter:none}
.btn.icon{padding:8px 11px;line-height:1}
.mwrap{margin-bottom:14px}
.mwrap summary{display:inline-block;list-style:none;cursor:pointer}
.mwrap summary::-webkit-details-marker{display:none}
.mform{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;margin-top:10px;
  display:grid;grid-template-columns:1fr 1fr;gap:10px;box-shadow:var(--shadow)}
.mform input,.mform select,.mform textarea{border:1px solid var(--line);border-radius:8px;padding:8px 10px;
  font-size:13px;font-family:inherit;background:var(--surface);color:var(--tx);width:100%}
.mform textarea{grid-column:1/3;min-height:52px;resize:vertical}
.mform button{grid-column:1/3;justify-self:start}
.mform.edit{grid-template-columns:repeat(4,1fr);align-items:end;margin-top:14px}
.mform.edit label{font-size:11px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.4px;
  display:flex;flex-direction:column;gap:4px}
.mform.edit button{grid-column:auto}

/* карточка задачи: поля */
.kv{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;margin-top:6px}
.kv > div{font-size:13.5px;padding:7px 0;border-bottom:1px dashed var(--line)}
.kv span{display:block;font-size:10.5px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px}

/* комментарии (лента на карточке) */
.comm{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px;font-size:13.5px;box-shadow:var(--shadow)}
.comm.sys{background:var(--surface-2);color:var(--mut);font-size:12.5px;box-shadow:none}
.chead{font-size:11.5px;font-weight:700;color:var(--mut);margin-bottom:3px}
.cform{display:flex;gap:8px;margin-top:10px}
.cform input{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px;background:var(--surface);color:var(--tx)}
.cform .grow{flex:1}

/* вход */
.login-box{max-width:340px;margin:12vh auto 0;background:var(--surface);border:1px solid var(--line);
  border-radius:14px;padding:26px;box-shadow:var(--shadow-hover)}
.login-box form{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.login-box input{border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:14px;background:var(--surface);color:var(--tx)}
.err{background:var(--st-rej-bg);color:var(--st-rej-fg);border:1px solid var(--line);border-radius:8px;padding:8px 12px;
  font-size:13px;margin-top:10px}

.empty{color:var(--mut);font-size:13px;padding:14px 4px}

@media(max-width:680px){
  .score{grid-template-columns:repeat(2,1fr)}
  .right{min-width:118px}
  .mform{grid-template-columns:1fr}
  .mform textarea,.mform button{grid-column:1}
  .kv{grid-template-columns:1fr}
  .mform.edit{grid-template-columns:1fr 1fr}
}
