/* Личные настройки вида (prefs.php): тема, размер шрифта, плотность таблиц, цвет акцента. Атрибуты — на <html>. */
html[data-theme=light]{--bg:#eceeea;--card:#fdfdfb;--ink:#172123;--mute:#5c6a6b;--line:#d5dad4;--acc:#0a6a68;--head:#e3e7e1;--acc2:#d6ebe7;--nav-bg:#15211f;--nav-ink:#c3d1ce;--sulfur:#e0a82e;color-scheme:light}
html[data-theme=dark]{--bg:#0e1415;--card:#151e20;--ink:#e3ebe9;--mute:#8c9d9d;--line:#243234;--acc:#46c9bd;--head:#1b282a;--acc2:#143432;--nav-bg:#0a0f10;--nav-ink:#a9bbb8;--sulfur:#e0a82e;color-scheme:dark}
html[data-theme=dark] .sev.high{background:#4a1d1d;color:#fca5a5}html[data-theme=dark] .sev.med{background:#4a3212;color:#fbbf24}
html[data-theme=dark] .src.manual{background:#4a3212;color:#fbbf24}html[data-theme=dark] .src.none{background:#4a1d1d;color:#fca5a5}
html[data-theme=light] .sev.high{background:#fde8e8;color:#b91c1c}html[data-theme=light] .sev.med{background:#fff1dc;color:#b45309}
html[data-theme=light] .src.manual{background:#fff1dc;color:#b45309}html[data-theme=light] .src.none{background:#fde8e8;color:#b91c1c}
/* цвет акцента: светлая тема / тёмная (явная или системная) */
html[data-accent=blue]{--acc:#2563eb}html[data-accent=green]{--acc:#15803d}html[data-accent=orange]{--acc:#c2410c}html[data-accent=purple]{--acc:#7c3aed}html[data-accent=graphite]{--acc:#475569}
html[data-theme=dark][data-accent=blue]{--acc:#6ea8fe}html[data-theme=dark][data-accent=green]{--acc:#4ade80}html[data-theme=dark][data-accent=orange]{--acc:#fb923c}html[data-theme=dark][data-accent=purple]{--acc:#a78bfa}html[data-theme=dark][data-accent=graphite]{--acc:#94a3b8}
@media(prefers-color-scheme:dark){
html[data-theme=auto][data-accent=blue]{--acc:#6ea8fe}html[data-theme=auto][data-accent=green]{--acc:#4ade80}html[data-theme=auto][data-accent=orange]{--acc:#fb923c}html[data-theme=auto][data-accent=purple]{--acc:#a78bfa}html[data-theme=auto][data-accent=graphite]{--acc:#94a3b8}}
html[data-accent]:not([data-accent=teal]){--acc2:color-mix(in srgb,var(--acc) 16%,var(--card))}
/* размер шрифта: масштаб страницы; график (dhtmlx) считает координаты мыши — его возвращаем к масштабу 1 */
html[data-fs="108"] body{zoom:1.08}html[data-fs="116"] body{zoom:1.16}html[data-fs="124"] body{zoom:1.24}html[data-fs="132"] body{zoom:1.32}html[data-fs="140"] body{zoom:1.4}html[data-fs="148"] body{zoom:1.48}html[data-fs="156"] body{zoom:1.56}
html[data-fs="108"]{--zs:1.08}html[data-fs="116"]{--zs:1.16}html[data-fs="124"]{--zs:1.24}html[data-fs="132"]{--zs:1.32}html[data-fs="140"]{--zs:1.4}html[data-fs="148"]{--zs:1.48}html[data-fs="156"]{--zs:1.56}
html[data-fs="108"] #gantt,html[data-fs="116"] #gantt,html[data-fs="124"] #gantt,html[data-fs="132"] #gantt,html[data-fs="140"] #gantt,html[data-fs="148"] #gantt,html[data-fs="156"] #gantt{zoom:calc(1 / var(--zs))}
html[data-fs="108"] body>header,html[data-fs="116"] body>header,html[data-fs="124"] body>header,html[data-fs="132"] body>header,html[data-fs="140"] body>header,html[data-fs="148"] body>header,html[data-fs="156"] body>header{zoom:calc(1 / var(--zs))}
/* плотность таблиц */
html[data-density=compact] th,html[data-density=compact] td{padding-top:1px;padding-bottom:1px}
html[data-density=comfy] th,html[data-density=comfy] td{padding-top:8px;padding-bottom:8px}
@media print{html body{zoom:1!important}}
/* таблицы с поиском и сортировкой (tbl.js) */
.tbar{display:flex;gap:10px;align-items:center;margin:0 0 8px}.tbar .tq{min-width:260px;padding:6px 10px;font:inherit;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink)}
th.sortable{cursor:pointer;user-select:none}th.sortable:hover{color:var(--ink)}th.s-asc::after{content:" ▲";font-size:10px;color:var(--acc)}th.s-desc::after{content:" ▼";font-size:10px;color:var(--acc)}

/* плитки главной и настроек — прежнего размера при любом шрифте; растёт только текст в них */
html[data-fs="108"] .tiles,html[data-fs="116"] .tiles,html[data-fs="124"] .tiles,html[data-fs="132"] .tiles,html[data-fs="140"] .tiles,html[data-fs="148"] .tiles,html[data-fs="156"] .tiles{zoom:calc(1 / var(--zs))}
html[data-fs="108"] .tiles a.tile :is(b,span,em),html[data-fs="116"] .tiles a.tile :is(b,span,em),html[data-fs="124"] .tiles a.tile :is(b,span,em),html[data-fs="132"] .tiles a.tile :is(b,span,em),html[data-fs="140"] .tiles a.tile :is(b,span,em),html[data-fs="148"] .tiles a.tile :is(b,span,em),html[data-fs="156"] .tiles a.tile :is(b,span,em){zoom:var(--zs)}
.unitsel{min-width:76px}
html[data-ru="off"] .i18n-ru{display:none}   /* русский дубляж под переводом выключен в настройках */

/* окна добавления записей (табели, реестр затрат) */
.addw{border:0;border-radius:14px;padding:20px 22px;width:min(560px,94vw);box-shadow:0 20px 60px rgba(0,0,0,.3)}.addw::backdrop{background:rgba(20,28,30,.45)}.addwg{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}.addwg label{display:flex;flex-direction:column;gap:4px;font-size:13px}.addwg label:first-child{grid-column:1/-1}.addwg input,.addwg select{width:100%!important;box-sizing:border-box}.addw footer{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}@media(max-width:520px){.addwg{grid-template-columns:1fr}}
.addw .full{grid-column:1/-1}
/* детали записи во всплывающем окне (detail.js) */
[data-detail]{cursor:pointer}[data-detail]:hover{background:color-mix(in srgb,var(--acc) 5%,transparent)}[data-detail]:focus-visible{outline:2px solid var(--acc);outline-offset:1px}
.dtl-t{width:100%;border-collapse:collapse;font-size:13.5px}.dtl-t th{background:none;text-align:left;font-weight:500;color:var(--mute);padding:6px 12px 6px 0;width:42%;vertical-align:top}.dtl-t td{padding:6px 0;font-variant-numeric:tabular-nums}.dtl-t tr+tr>*{border-top:1px solid var(--line)}

/* ИИ Ассистент: неблокирующая правая панель на всех экранах сотрудников. */
body>header button.astbtn{order:3;align-self:center;margin:0 3px;width:29px;height:29px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1.5px solid var(--sulfur);background:transparent;color:var(--sulfur);font:700 17px/1 var(--font);cursor:pointer}body>header button.astbtn:hover{background:var(--sulfur);color:#15211f}
.ast{position:fixed;z-index:1000;right:0;top:0;bottom:0;width:420px;max-width:calc(100vw - 36px);display:flex;flex-direction:column;background:var(--card);color:var(--ink);border-left:1px solid var(--line);box-shadow:-16px 0 40px rgba(0,0,0,.18);transform:translateX(calc(100% + 24px));transition:transform .2s ease;visibility:hidden;font:14px/1.45 var(--font)}.ast.open{transform:translateX(0);visibility:visible}.ast-resize{position:absolute;left:-5px;top:0;bottom:0;width:10px;cursor:ew-resize;z-index:2}.ast-resize:hover{background:color-mix(in srgb,var(--acc) 16%,transparent)}body.ast-drag{cursor:ew-resize;user-select:none}
.ast-head{min-height:55px;display:flex;flex-wrap:nowrap;align-items:center;gap:6px;padding:0 12px 0 16px;border:0;background:var(--nav-bg);color:#fff}.ast-title{font-size:16px;font-weight:700;flex:1}.ast-title span{color:var(--sulfur);margin-right:6px}.ast-icon,.ast-new{height:32px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font:12px/1 var(--font);cursor:pointer}.ast-icon{width:32px;border:0;background:rgba(255,255,255,.09);color:var(--nav-ink);font-size:18px}.ast-new{padding:0 10px;white-space:nowrap}.ast-icon:hover{background:rgba(255,255,255,.16);color:#fff}.ast-new:hover{background:var(--acc2);color:var(--acc)}.ast-head a.ast-messages-link{padding:5px 7px;border:0;color:var(--nav-ink);font-size:11px;text-decoration:none;white-space:nowrap}.ast-head a.ast-messages-link:hover{color:#fff;border:0}
.ast-nav{padding:9px 12px 5px;display:flex;gap:7px}.ast-nav select{flex:1;min-width:0;width:auto;padding:7px 9px;font:inherit}.ast-context{display:flex;gap:5px;flex-wrap:wrap;padding:4px 12px 8px;border-bottom:1px solid var(--line)}.ast-context:empty{display:none}.ast-chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;border:1px solid var(--line);border-radius:999px;padding:3px 5px 3px 9px;background:var(--head);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ast-chip small{color:var(--mute)}.ast-chip button{border:0;background:none;color:var(--mute);padding:0 3px;font:15px/1 var(--font);cursor:pointer}
.ast-feed{flex:1;min-height:120px;overflow:auto;padding:14px 12px;scrollbar-gutter:stable}.ast-empty{height:100%;min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--mute);gap:6px;padding:20px}.ast-empty b{color:var(--ink);font-size:18px}.ast-message{margin:0 0 13px;max-width:94%}.ast-message.user{margin-left:auto}.ast-message.user>div{background:var(--acc);color:#fff;border-radius:14px 14px 3px 14px;padding:9px 11px;white-space:normal;overflow-wrap:anywhere}.ast-message.assistant{margin-right:auto}.ast-md{background:var(--head);border-radius:14px 14px 14px 3px;padding:10px 12px;overflow-wrap:anywhere}.ast-md p{margin:0 0 8px}.ast-md p:last-child{margin-bottom:0}.ast-md ul,.ast-md ol{margin:5px 0 8px;padding-left:21px}.ast-md h3,.ast-md h4,.ast-md h5{margin:4px 0 7px;font-size:14px}.ast-md code{background:color-mix(in srgb,var(--card) 65%,transparent);padding:1px 4px;border-radius:4px}.ast-md a{color:var(--acc)}.ast-table{max-width:100%;overflow:auto;margin:8px 0}.ast-table table,.ast-proposal table{font-size:11px;min-width:100%}.ast-table th,.ast-table td,.ast-proposal th,.ast-proposal td{white-space:normal;vertical-align:top;padding:4px 5px}
.ast-sources{margin:5px 4px 0;font-size:11px;color:var(--mute)}.ast-sources summary{color:var(--acc);cursor:pointer}.ast-sources>div{padding:5px 0;border-bottom:1px solid var(--line)}.ast-sources b,.ast-sources small{display:block}.ast-sources small{overflow-wrap:anywhere}.ast-cost{margin:4px 4px 0;color:var(--mute);font-size:10.5px}.ast-note{margin:7px 0;padding:8px 10px;border-radius:8px;background:var(--head);font-size:12px}.ast-note.error{background:#fde8e8;color:#a82f28}.ast-note.muted{color:var(--mute)}html[data-theme=dark] .ast-note.error{background:#4a1d1d;color:#fca5a5}
.ast-status{display:flex;align-items:center;gap:7px;padding:7px 13px;color:var(--mute);font-size:12px;border-top:1px solid var(--line)}.ast-spin{width:12px;height:12px;border:2px solid var(--line);border-top-color:var(--acc);border-radius:50%;animation:astspin .8s linear infinite}@keyframes astspin{to{transform:rotate(360deg)}}
.ast-commands{display:flex;gap:5px;overflow-x:auto;padding:7px 11px 5px;border-top:1px solid var(--line);scrollbar-width:thin}.ast-commands button{flex:none;border:1px solid var(--line);border-radius:999px;padding:4px 8px;background:var(--card);color:var(--acc);font:11px var(--font);cursor:pointer}.ast-commands button:hover{background:var(--acc2)}.ast-compose{padding:6px 11px 10px}.ast-compose textarea{box-sizing:border-box;width:100%;resize:none;min-height:58px;max-height:160px;padding:8px 9px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--ink);font:13px/1.4 var(--font)}.ast-sendrow{display:flex;align-items:center;gap:7px;margin-top:5px}.ast-sendrow>span{flex:1;color:var(--mute);font-size:9.5px}.ast-send,.ast-stop{border:0;border-radius:8px;padding:7px 12px;background:var(--acc);color:#fff;font:12px var(--font);cursor:pointer}.ast-stop{background:#a82f28}.ast-send:disabled{opacity:.55}
.ast-proposal{margin:10px 0;border:1px solid color-mix(in srgb,var(--sulfur) 65%,var(--line));border-radius:11px;padding:10px;background:color-mix(in srgb,var(--sulfur) 8%,var(--card));font-size:12px}.ast-prophead{display:flex;justify-content:space-between;gap:8px;margin-bottom:7px}.ast-prophead span{color:var(--mute);font-size:10px}.ast-proptable{max-width:100%;overflow:auto}.ast-delta{font-weight:650;margin:7px 0}.ast-propactions{display:flex;gap:6px;margin-top:7px}.ast-propactions button{border:1px solid var(--line);border-radius:7px;padding:5px 9px;background:var(--card);color:var(--ink);font:11px var(--font);cursor:pointer}.ast-propactions button.primary{background:var(--acc);border-color:var(--acc);color:#fff}.ast-propactions button:disabled{opacity:.55;cursor:default}
.ast.ast-embedded{position:relative;z-index:0;inset:auto;flex:1;width:100%;max-width:none;min-height:0;visibility:visible;transform:none;transition:none;border:0;box-shadow:none}.ast-embedded .ast-nav{padding:9px 14px;border-bottom:1px solid var(--line)}.ast-embedded .ast-feed{padding:14px 16px;background:color-mix(in srgb,var(--bg) 55%,var(--card))}.ast-embedded .ast-message{max-width:min(760px,92%)}.ast-embedded .ast-compose{padding:7px 14px 10px}.ast-embedded .ast-commands{padding-left:14px;padding-right:14px}
@media(max-width:640px){.ast{width:100%!important;max-width:none;left:0}.ast-resize{display:none}.ast-head{min-height:52px}.ast-feed{padding:10px}.ast-commands{padding-left:8px}.ast-compose{padding:5px 8px 8px}}
@media(prefers-reduced-motion:reduce){.ast{transition:none}.ast-spin{animation:none}}
[data-ast][hidden],.ast-root [hidden]{display:none!important}
