:root{--bg:#F2F6F9;--panel:#fff;--ink:#2F3030;--muted:#6b7378;--line:#e3e8ec;--accent:#0090C3;--accent-hover:#41BFF1;--accent-soft:#e1f3fa;--lime:#D9F21E;--ok:#1f9d55;--warn:#c27c00;--dev:#6941c6;--off:#8D8D8D;--shadow:0 2px 10px rgba(47,48,48,.06)}
@media (prefers-color-scheme:dark){:root{--bg:#111314;--panel:#1b1e1f;--ink:#eef1f2;--muted:#9aa3a8;--line:#2c3133;--accent:#21a7d8;--accent-hover:#41BFF1;--accent-soft:#12303c;--lime:#D9F21E;--ok:#3ddc84;--warn:#f5b041;--dev:#b69cff;--off:#6b7378;--shadow:none}.logo{filter:invert(1) hue-rotate(180deg)}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 Montserrat,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
a{color:var(--accent)}
button{font:inherit;cursor:pointer}
header{display:flex;align-items:center;gap:16px;padding:12px 24px;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
header h1{font-size:16px;margin:0;white-space:nowrap}
header .sp{flex:1}
header .who{color:var(--muted);font-size:13px}
header select{padding:4px 8px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink)}
.badge-as{background:#fff4e5;color:#b54708;border-radius:6px;padding:2px 8px;font-size:12px}
.layout{display:grid;grid-template-columns:250px minmax(0,1fr) 380px;height:calc(100vh - 92px)}
aside.filters{border-right:1px solid var(--line);padding:16px;overflow:auto;background:var(--panel)}
aside.filters h3{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:16px 0 6px}
aside.filters input[type=search]{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;padding:3px 10px;font-size:12.5px}
.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.chip .n{opacity:.6;margin-left:4px}
.reset{margin-top:16px;border:0;background:none;color:var(--accent);padding:0}
main{overflow:auto;padding:16px 20px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:14px}
.tabs button{border:0;background:none;padding:8px 12px;color:var(--muted);border-bottom:2px solid transparent}
.tabs button.on{color:var(--ink);border-color:var(--accent);font-weight:600}
.bar{display:flex;align-items:center;gap:10px;margin-bottom:12px;color:var(--muted)}
.bar select{padding:4px 8px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;box-shadow:var(--shadow);cursor:pointer;display:flex;flex-direction:column;gap:6px;transition:border-color .15s}
.card:hover{border-color:var(--accent)}
.card.hl{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.card .code{font:12px ui-monospace,Menlo,monospace;color:var(--muted)}
.card .name{font-weight:600;font-size:15px}
.card .q{color:var(--muted)}
.card .meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:6px}
.tag{font-size:11.5px;border-radius:6px;padding:1px 7px;background:var(--bg);border:1px solid var(--line)}
.st{font-size:12px;font-weight:600}
.st.ok{color:var(--ok)}.st.chk{color:var(--warn)}.st.dev{color:var(--dev)}.st.off{color:var(--off)}
.empty{color:var(--muted);padding:40px;text-align:center}
.doclist{display:grid;gap:10px}
.doc{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;cursor:pointer}
.doc .sec{font-size:12px;color:var(--muted)}
.prose{max-width:820px}
.prose img{max-width:100%;border:1px solid var(--line);border-radius:8px;margin:6px 0}
.prose table{border-collapse:collapse}.prose td,.prose th{border:1px solid var(--line);padding:4px 8px}
.chat{border-left:1px solid var(--line);display:flex;flex-direction:column;background:var(--panel);min-height:0}
.chat .head{padding:12px 16px;border-bottom:1px solid var(--line);font-weight:600}
.chat .head small{display:block;font-weight:400;color:var(--muted)}
.msgs{flex:1;overflow:auto;padding:12px 16px;display:flex;flex-direction:column;gap:10px}
.msg{padding:9px 12px;border-radius:12px;max-width:92%;white-space:normal}
.msg.user{align-self:flex-end;background:var(--accent);color:#fff}
.msg.bot{align-self:flex-start;background:var(--bg);border:1px solid var(--line)}
.msg.bot ul{margin:4px 0;padding-left:18px}
.msg .codes{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.msg .codes button{border:1px solid var(--accent);color:var(--accent);background:var(--panel);border-radius:999px;padding:2px 9px;font-size:12px}
.sugg{display:flex;flex-wrap:wrap;gap:6px}
.sugg button{border:1px dashed var(--line);background:none;color:var(--ink);border-radius:8px;padding:5px 9px;font-size:12.5px;text-align:left}
form.ask{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--line)}
form.ask textarea{flex:1;resize:none;height:44px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font:inherit}
form.ask button{border:0;background:var(--accent);color:#fff;border-radius:10px;padding:0 16px}
.typing{color:var(--muted);font-style:italic}
.drawer-bg{position:fixed;inset:0;background:rgba(15,18,24,.45);display:none;z-index:10}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(720px,100%);background:var(--panel);z-index:11;transform:translateX(100%);transition:transform .2s;display:flex;flex-direction:column}
.drawer.open{transform:none}.drawer.open+.drawer-bg,.drawer-bg.open{display:block}
.drawer .dh{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:flex-start}
.drawer .dh h2{margin:0;font-size:18px}
.drawer .dh .x{margin-left:auto;border:0;background:none;font-size:22px;color:var(--muted)}
.drawer .db{overflow:auto;padding:16px 20px}
.kv{display:grid;grid-template-columns:150px 1fr;gap:6px 12px;margin-bottom:12px}
.kv div:nth-child(odd){color:var(--muted)}
.btn{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;border-radius:8px;padding:7px 14px;margin-right:8px}
.btn.sec{background:var(--bg);color:var(--ink);border:1px solid var(--line)}
.drawer h4{margin:16px 0 4px}
.drawer ul{margin:0;padding-left:20px}
.mobile-tabs{display:none}
@media (max-width:1100px){.layout{grid-template-columns:220px minmax(0,1fr)}.chat{position:fixed;right:16px;bottom:16px;width:min(380px,calc(100vw - 32px));height:70vh;border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.25);display:none;z-index:9}.chat.open{display:flex}.fab{display:block!important}}
@media (max-width:720px){.layout{display:block;height:auto}aside.filters{border-right:0;border-bottom:1px solid var(--line)}header{flex-wrap:wrap;padding:10px 16px}main{padding:16px}}
.fab{display:none;position:fixed;right:16px;bottom:16px;z-index:8;border:0;background:var(--accent);color:#fff;border-radius:999px;padding:12px 18px;box-shadow:0 6px 18px rgba(0,0,0,.25)}
/* вход */
.login{max-width:380px;margin:12vh auto;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:28px;box-shadow:var(--shadow)}
.login h1{font-size:20px;margin:0 0 6px}.login p{color:var(--muted);margin:0 0 18px}
.login input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;margin-bottom:10px;background:var(--bg);color:var(--ink);font:inherit}
.login button{width:100%;padding:10px;border:0;border-radius:8px;background:var(--accent);color:#fff}
.login .err{color:#d92d20;min-height:20px;font-size:13px}

/* стиль AGT (ag-technologies.ru): чёрная полоса, логотип, синие «таблетки», лаймовый акцент */
.topbar{background:#000;color:#fff;font-size:12.5px;padding:6px 24px;display:flex;gap:18px;align-items:center}
.topbar b{color:var(--lime);font-weight:600}
.topbar a{color:#fff;text-decoration:none;opacity:.85}
.logo{height:22px;display:block}
header h1{font-weight:600;color:var(--ink);padding-left:14px;border-left:1px solid var(--line)}
.chip{border-radius:999px;font-weight:500}
.chip:hover{border-color:var(--accent)}
.chip.on,.btn,form.ask button,.login button,.msg.user{background:var(--accent);border-color:var(--accent)}
.btn:hover,form.ask button:hover,.login button:hover{background:var(--accent-hover)}
.btn,form.ask button,.login button{border-radius:999px;font-weight:600}
.tabs button.on{border-color:var(--accent)}
.card{border-radius:14px}
.card.hl{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft),inset 4px 0 0 var(--lime)}
.card .name{font-weight:700}
.badge-as{background:var(--lime);color:#000;font-weight:600}
.fab{background:var(--accent)}
.login .logo{height:26px;margin-bottom:18px}

/* скрытие ИИ-помощника */
.chat .head .hide{float:right;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:500}
.chat .head .hide:hover{color:var(--ink);border-color:var(--accent)}
.layout.no-chat{grid-template-columns:250px minmax(0,1fr)}
.layout.no-chat .chat{display:none}
body.no-chat .fab{display:block}
@media (max-width:1100px){.layout.no-chat{grid-template-columns:220px minmax(0,1fr)}.layout.no-chat .chat.open{display:flex}}
@media (max-width:1100px){body.chat-open .fab{display:none!important}}
.drawer .prose h2{font-size:16px;margin:18px 0 6px}.drawer .prose h3{font-size:14.5px}

/* админка доступа */
.layout.wide{grid-template-columns:minmax(0,1fr)!important}.layout.wide aside.filters,.layout.wide .chat{display:none}
.adm-tabs{display:flex;gap:6px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.adm-tabs button{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;padding:5px 14px;font-weight:600}
.adm-tabs button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.adm-tabs .who{margin-left:auto}
.adm-bar,.adm-bulk{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.adm-bar input,.adm-bar select,.adm-bulk select{padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);font:inherit}
.adm-bar input{min-width:240px}
.adm-bulk button{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:8px;padding:4px 10px}
.adm-bulk button:hover,.adm-bar .chip:hover{border-color:var(--accent)}
.adm-wrap{overflow:auto;max-height:calc(100vh - 290px);border:1px solid var(--line);border-radius:12px;background:var(--panel)}
table.adm{border-collapse:collapse;width:100%;font-size:13px}
table.adm th{position:sticky;top:0;background:var(--panel);z-index:1;text-align:left;font-weight:600;color:var(--muted);border-bottom:1px solid var(--line);padding:8px}
table.adm td{border-bottom:1px solid var(--line);padding:6px 8px;vertical-align:middle}
table.adm tr.on td{background:color-mix(in srgb,var(--accent-soft) 45%,transparent)}
table.adm tr.gone td{opacity:.5}
table.adm .gm{width:200px;padding:4px 8px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);font:12.5px ui-monospace,Menlo,monospace}
.mono{font:12.5px ui-monospace,Menlo,monospace}.small{font-size:11.5px;max-width:520px;word-break:break-word}
.gchip{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:999px;padding:1px 8px;font-size:11.5px;margin:1px}
.gchip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.sw{position:relative;display:inline-block;width:34px;height:20px}.sw input{opacity:0;width:0;height:0}
.sw span{position:absolute;inset:0;background:var(--line);border-radius:999px;transition:.15s;cursor:pointer}
.sw span:before{content:"";position:absolute;width:16px;height:16px;left:2px;top:2px;background:#fff;border-radius:50%;transition:.15s}
.sw input:checked+span{background:var(--accent)}.sw input:checked+span:before{transform:translateX(14px)}
.mxt th.rot{font:11px ui-monospace,monospace;writing-mode:vertical-rl;transform:rotate(180deg);height:70px;padding:4px 2px;text-align:left}
.mxt td.mx{text-align:center;padding:2px;border-left:1px solid var(--line)}
.mx.ok{background:rgba(31,157,85,.18)}.mx.todo{background:rgba(217,242,30,.35)}.mx.extra{background:rgba(252,70,70,.18)}.mx.nog{opacity:.35}
.lg{padding:0 6px;border-radius:4px}.lg.ok{background:rgba(31,157,85,.18)}.lg.todo{background:rgba(217,242,30,.35)}.lg.extra{background:rgba(252,70,70,.18)}

.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.seg button{border:0;background:var(--panel);color:var(--ink);padding:5px 12px;font-weight:600}.seg button.on{background:var(--accent);color:#fff}
.mxt th.rot small{display:block;color:var(--muted);font-size:10px}
.mxt td.mx{font:600 11px Montserrat,sans-serif;min-width:24px}
.mx.own,.lg.own{background:#2F3030;color:#fff}.mx.ed,.lg.ed{background:#0090C3;color:#fff}.mx.cm,.lg.cm{background:#41BFF1;color:#fff}.mx.rd,.lg.rd{background:rgba(31,157,85,.25)}
.who-cell{min-width:260px;position:sticky;left:0;background:var(--panel);z-index:1}
.warn{color:#c2410c;font-weight:600;font-size:12px}
select.link{font-size:11.5px;max-width:170px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink)}

.tag.acc-yes{background:rgba(31,157,85,.14);border-color:rgba(31,157,85,.4);color:var(--ok);font-weight:600}
.tag.acc-no{background:rgba(252,70,70,.08);border-color:rgba(252,70,70,.35);color:#c2410c}
.acc-line{padding:8px 12px;border-radius:10px;margin:8px 0}.acc-line.yes{background:rgba(31,157,85,.12)}.acc-line.no{background:rgba(252,70,70,.08)}

.drawer .dh #dLink{margin-left:auto;white-space:nowrap}.drawer .dh #dLink+.x{margin-left:4px}

/* панель фильтров v2 */
aside.filters{padding:14px 14px 20px}
aside.filters input[type=search]{font-size:13px}
.ftoggle{display:none}
.factive{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0 4px}
.achip{border:1px solid var(--accent);background:var(--accent-soft);color:var(--ink);border-radius:999px;padding:2px 9px;font-size:12px}
.achip:hover{background:var(--accent);color:#fff}
.areset{border:0;background:none;color:var(--accent);font-size:12px;font-weight:600;padding:2px 4px}
details.fs{border-top:1px solid var(--line);padding:8px 0 4px}
details.fs:first-child{margin-top:8px}
details.fs summary{list-style:none;cursor:pointer;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);display:flex;align-items:center;gap:6px;padding:2px 0 6px}
details.fs summary::-webkit-details-marker{display:none}
details.fs summary:after{content:"▾";margin-left:auto;font-size:11px;transition:transform .15s}
details.fs:not([open]) summary:after{transform:rotate(-90deg)}
details.fs .chips+.chips{margin-top:6px;padding-top:6px;border-top:1px dashed var(--line)}
.fsel{background:var(--accent);color:#fff;border-radius:999px;font-size:10.5px;padding:0 6px;letter-spacing:0}
.chip{font-size:12.5px;padding:3px 9px}
.svc{display:block;border-top:1px solid var(--line);padding-top:10px;margin-top:6px;font-size:12.5px;cursor:pointer}
.svc .who{font-size:11.5px}
.fhint{color:var(--muted);font-size:11px;margin:10px 0 0}
@media (max-width:720px){
  .ftoggle{display:block;width:100%;margin-top:8px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:10px;padding:8px;font-weight:600;text-align:left}
  aside.filters .fbody{display:none} aside.filters.open .fbody{display:block}
}
.svc input{margin:0 6px 0 0;vertical-align:-2px}
@media (max-width:720px){
  .topbar span:nth-child(2){display:none}
  header{gap:8px 12px} header h1{font-size:14px;padding-left:10px} header .logo{height:18px}
  #asWrap{font-size:12px} #asWrap select{max-width:150px}
}
@media (max-width:720px){.tabs{overflow-x:auto;white-space:nowrap}.tabs button{flex:none}.bar{flex-wrap:wrap}}
