/* theme.css — светлое оформление интерфейса.
   много света и воздуха, тонкая техническая текстура (сетка), без бежевого и коричневого.
   Только цвета, тени, скругления и анимация — размеры шрифтов, кнопок и отступы прежние. Без шрифтов, картинок и внешних ссылок.
   Оттенок раздела: body[data-blk] — obj (объёмы, дашборд), ppl (бригады, табель, расчёты), mat (материалы, перечень), wrk (журнал работ), gr (график), ks (КС), log (журнал и корзина). */
:root{--bg:#F6F7F9;--sf:#FFFFFF;--sf2:#FAFBFC;--bd:#DFE2E7;--bd2:#ECEEF1;--tx:#15171B;--mu:#737985;--blk:#15171B;--ti:#5F6772;--sil:#A9B0B9;--pla:#E6E8EC;
  --acc:#23272E;--acd:#0F1115;--tint:#F1F2F5;--tint2:#D9DDE3;--sel:#EEF0F3;
  --pr:var(--acc);--prh:var(--acd);--sh:0 1px 2px rgba(20,24,32,.05),0 6px 20px rgba(20,24,32,.045);--sh2:0 2px 6px rgba(20,24,32,.08),0 12px 28px rgba(20,24,32,.08);--ease:cubic-bezier(.2,.7,.2,1);
  --metal:linear-gradient(90deg,#C9CED5,#F4F5F7 30%,#AEB5BE 55%,#EEF0F2 78%,#C3C9D0)}
body[data-blk=ppl]{--acc:#4B4F7A;--acd:#353859;--tint:#F1F1F7;--tint2:#D8D9E9}
body[data-blk=mat]{--acc:#35596F;--acd:#244255;--tint:#EEF3F6;--tint2:#D3E0E8}
body[data-blk=wrk]{--acc:#2F6A5A;--acd:#215044;--tint:#EDF4F2;--tint2:#CFE3DD}
body[data-blk=gr]{--acc:#2F5D96;--acd:#224677;--tint:#EEF3FA;--tint2:#D3E0F1}
body[data-blk=ks]{--acc:#5A4E86;--acd:#433A67;--tint:#F2F0F8;--tint2:#DCD8EC}
body[data-blk=log]{--acc:#5F6772;--acd:#454B54;--tint:#F2F3F5;--tint2:#DDE0E4}
/* фон: много света + тонкая инженерная сетка */
body{background-color:var(--bg);color:var(--tx);
  background-image:radial-gradient(1100px 520px at 85% -10%,rgba(255,255,255,.95),transparent 60%),
    linear-gradient(rgba(20,24,32,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(20,24,32,.028) 1px,transparent 1px);
  background-size:auto,24px 24px,24px 24px;background-attachment:fixed}
/* шапка — чистый белый с тонкой «металлической» кромкой */
header{background:rgba(255,255,255,.97);border-bottom:0;box-shadow:0 1px 0 #E3E6EA,0 4px 16px rgba(20,24,32,.035);position:sticky}
header::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--metal);opacity:.9}
header b.logo{color:var(--blk);letter-spacing:.01em}
#tabs.seg{border-color:var(--bd);background:linear-gradient(180deg,#FFFFFF,#F7F8FA);border-radius:10px}
#tabs.seg button{position:relative;border-radius:8px;color:#2A2E35;transition:background .15s var(--ease),color .15s var(--ease),box-shadow .15s var(--ease)}
#tabs.seg button:hover{background:#FFFFFF;box-shadow:0 1px 2px rgba(20,24,32,.06)}
#tabs.seg button::after{content:"";position:absolute;left:32%;right:32%;bottom:2px;height:2px;border-radius:2px;background:var(--dot,#A9B0B9);opacity:.6;transition:opacity .15s,left .15s,right .15s}
#tabs.seg button:hover::after{opacity:.95;left:24%;right:24%}#tabs.seg button.on::after{opacity:0}
#tabs.seg button.on{background:#FFFFFF;color:var(--acd);box-shadow:inset 0 -2px 0 var(--acc),0 1px 3px rgba(20,24,32,.10)}
#tabs button[data-blk=obj]{--dot:#23272E}#tabs button[data-blk=ppl]{--dot:#5C61A0}#tabs button[data-blk=mat]{--dot:#4C7C98}#tabs button[data-blk=wrk]{--dot:#3F8A76}
#tabs button[data-blk=gr]{--dot:#3D74BA}#tabs button[data-blk=ks]{--dot:#7466AA}#tabs button[data-blk=log]{--dot:#8A919B}
/* карточки — белые, воздушные, тонкая металлическая полоса с оттенком раздела */
.card,.kpi{background:#FFFFFF;border-color:#E3E6EA;border-radius:12px;box-shadow:var(--sh)}
.card{position:relative;border-top:0;overflow:visible}
.card::before{content:"";position:absolute;left:12px;right:12px;top:0;height:2px;border-radius:0 0 2px 2px;background:linear-gradient(90deg,var(--tint2),var(--acc) 50%,var(--tint2));opacity:.55}
.card h3{color:var(--acd)}
.kpi .v{color:var(--blk)}
th{background:linear-gradient(180deg,#FBFBFC,var(--tint))!important;color:#5B616B;border-bottom:1px solid var(--bd2)}
tr.g td{background:#F7F8FA!important;color:var(--acd)}
td{border-bottom-color:var(--bd2)}.scroll{border-color:var(--bd2);border-radius:10px}
tbody tr:hover>td{background-image:linear-gradient(rgba(20,24,32,.03),rgba(20,24,32,.03))}
/* кнопки и поля: действие — цвет раздела и лёгкое движение */
button.b{background:var(--acc);border-color:var(--acc);border-radius:8px;transition:background .15s var(--ease),box-shadow .15s var(--ease),transform .12s var(--ease)}
button.b:hover{background:var(--acd);border-color:var(--acd);box-shadow:var(--sh2);transform:translateY(-1px)}
button.b2,a.b2{background:linear-gradient(180deg,#FFFFFF,#F7F8FA);border-color:#D7DBE1;border-radius:8px;transition:border-color .15s var(--ease),background .15s var(--ease),color .15s var(--ease),box-shadow .15s var(--ease),transform .12s var(--ease)}
button.b2:hover,a.b2:hover{border-color:var(--acc);color:var(--acd);background:#FFFFFF;box-shadow:0 1px 4px rgba(20,24,32,.10)}
button.b:active,button.b2:active,a.b2:active,.modes button:active,#tabs.seg button:active{transform:scale(.97)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--acc);outline-offset:1px}
input,select,textarea{border-color:#D7DBE1;border-radius:8px;background:#FFFFFF;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}
input:focus,select:focus,textarea:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--tint)}
.seg{border-color:var(--bd);border-radius:10px;background:#FFFFFF}.seg button{transition:background .15s var(--ease),color .15s var(--ease)}.seg button.on{background:var(--acc);color:#fff}
a{color:var(--acc)}
.msg{border-radius:10px}.msg.g{animation:wkpulse .9s var(--ease) 1}
.bar{background:#ECEEF1}.bar i{background:var(--acc)}
.toast{border-radius:12px;box-shadow:var(--sh2)}
/* переключатели режимов — обычные кнопки одного вида */
.modes{display:inline-flex;gap:6px;flex-wrap:wrap}
.modes button{font:inherit;padding:6px 12px;border-radius:8px;border:1px solid #D7DBE1;background:linear-gradient(180deg,#FFFFFF,#F7F8FA);color:var(--tx);cursor:pointer;transition:border-color .15s var(--ease),background .15s var(--ease),color .15s var(--ease),box-shadow .15s var(--ease),transform .12s var(--ease)}
.modes button:hover{border-color:var(--acc);color:var(--acd);background:#FFFFFF}
.modes button.on{background:var(--acc);border-color:var(--acc);color:#fff;box-shadow:var(--sh)}
/* мгновенное переключение вкладок */
#main{position:relative}
#main.ld{opacity:.6;pointer-events:none;transition:opacity .12s}
#main.ld::before{content:"";position:absolute;left:18px;right:18px;top:4px;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--acc),transparent);background-size:40% 100%;background-repeat:no-repeat;animation:wkload .9s linear infinite}
#main.fi>*{animation:wkfade .16s var(--ease) 1}
@keyframes wkload{from{background-position:-40% 0}to{background-position:140% 0}}
@keyframes wkfade{from{opacity:.4;transform:translateY(3px)}to{opacity:1;transform:none}}
@keyframes wkpulse{0%{box-shadow:0 0 0 0 rgba(47,106,90,.35)}100%{box-shadow:0 0 0 10px rgba(47,106,90,0)}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* тёплые бежевые оттенки прежней разметки → холодные светлые */
.ts td.su,.tw td.sec,.tw th.sec{background:#F2F3F5!important}.tw td.ap{color:#5F6772}
.msg.o{background:#EEF2F8;color:#2B4466}.flag.o,.badge.a{background:#EEF1F5;color:#3D4654}
tr.wrn td{background:#FFF8E8!important}.hs span{border-color:#D7DBE1}
.card h3 .modes button{font-weight:400;font-size:14px;padding:5px 12px}
