/* Фирменный стиль: белый + синий (градиент из логотипа) */
:root{
  --bg:#F3F6FD;--card:#fff;--tx:#14213D;--mut:#6B7794;--line:#E3E9F6;--line2:#EEF2FB;
  --acc:#3355FF;--acc2:#5B7BFF;--acc-soft:#EAEFFF;--cyan:#8FE8FF;
  --red:#E5484D;--red-soft:#FDECEC;--org:#E8890C;--org-soft:#FFF3E0;--grn:#1F9D55;--grn-soft:#E6F6EC;--blu:#2F6BFF;--blu-soft:#E8EFFF;
  --r:16px;--shadow:0 1px 2px rgba(20,33,61,.04),0 6px 20px rgba(51,85,255,.06);--shadow-h:0 2px 4px rgba(20,33,61,.05),0 10px 28px rgba(51,85,255,.14);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:15px/1.5 Inter,-apple-system,"SF Pro Text","Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--tx);-webkit-font-smoothing:antialiased}
a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}
h1{font-size:28px;line-height:1.2;margin:0 0 6px;font-weight:700;letter-spacing:-.02em}
h2{font-size:17px;margin:28px 0 12px;font-weight:650;letter-spacing:-.01em}
h3{font-size:13px;margin:0 0 10px}
.mut{color:var(--mut)}.small{font-size:13px}code{background:var(--acc-soft);padding:1px 6px;border-radius:6px;font-size:13px}

/* ---- каркас ---- */
.app{display:grid;grid-template-columns:256px 1fr;min-height:100vh}
.side{position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:20px 14px 14px}
.brand{display:flex;align-items:center;gap:11px;padding:2px 8px 18px;color:var(--tx);font-weight:700;font-size:17px;letter-spacing:-.01em}
.brand:hover{text-decoration:none}.brand img{width:40px;height:auto;display:block}
.brand small{display:block;font-weight:500;font-size:11.5px;color:var(--mut);letter-spacing:0;margin-top:-2px}
.nav{display:flex;flex-direction:column;gap:3px;margin-top:4px}
.nav .grp{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#9AA6C2;padding:14px 12px 6px}
.nav a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;color:#3A4668;font-weight:550;transition:.15s}
.nav a svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none;opacity:.85}
.nav a:hover{background:var(--line2);text-decoration:none}
.nav a.on{background:var(--acc-soft);color:var(--acc)}.nav a.on svg{opacity:1}
.nav .badge{margin-left:auto;background:var(--red);color:#fff;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:600}
.me{margin-top:auto;display:flex;align-items:center;gap:10px;padding:12px;border-radius:14px;background:var(--bg)}
.ava{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--acc),var(--cyan));color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px;flex:none}
.me b{display:block;font-size:14px;line-height:1.2}.me span{font-size:12px;color:var(--mut)}
.me form{margin-left:auto}.me button{background:none;border:0;padding:6px;border-radius:8px;color:var(--mut);cursor:pointer;display:grid}
.me button:hover{background:#fff;color:var(--acc)}.me svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.main{padding:32px 36px 60px;min-width:0}
.wrap{max-width:1240px;margin:0 auto}
.topm{display:none}

/* ---- компоненты ---- */
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.page-head p{margin:0;color:var(--mut)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;margin-bottom:16px;box-shadow:var(--shadow)}
.card>h2:first-child{margin-top:0}
.grid{display:grid;gap:14px}.g4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.g2{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}
.kpi{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow);overflow:hidden;transition:.15s}
.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(var(--acc),var(--cyan))}
.kpi b{display:block;font-size:32px;line-height:1.05;font-weight:700;letter-spacing:-.02em}
.kpi span{color:var(--mut);font-size:13px}
.kpi.red:before{background:var(--red)}.kpi.red b{color:var(--red)}
.kpi.org:before{background:var(--org)}.kpi.org b{color:var(--org)}
.kpi.grn:before{background:var(--grn)}.kpi.grn b{color:var(--grn)}
.flt:hover{box-shadow:var(--shadow-h);transform:translateY(-1px)}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line2);vertical-align:middle}
th{font-size:11.5px;color:var(--mut);text-transform:uppercase;letter-spacing:.06em;font-weight:600;background:#FAFBFF}
tr:last-child td{border-bottom:0}tbody tr:hover td,table tr:hover>td{background:#FAFBFF}
.tag{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--line2);color:#4A5778;white-space:nowrap}
.tag.red{background:var(--red-soft);color:var(--red)}.tag.org{background:var(--org-soft);color:#B96A00}.tag.grn{background:var(--grn-soft);color:var(--grn)}.tag.blu{background:var(--blu-soft);color:var(--blu)}
input,select,textarea,button{font:inherit;color:var(--tx)}
input,select,textarea{background:#fff;border:1px solid #D5DEF2;border-radius:11px;padding:9px 12px;transition:.15s;max-width:100%}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--acc);box-shadow:0 0 0 4px rgba(51,85,255,.12)}
textarea{width:100%;min-height:84px;resize:vertical}
button,.btn{background:linear-gradient(135deg,var(--acc),var(--acc2));color:#fff;border:0;cursor:pointer;padding:9px 18px;border-radius:11px;font-weight:600;display:inline-block;box-shadow:0 4px 12px rgba(51,85,255,.25);transition:.15s}
button:hover{filter:brightness(1.06);box-shadow:0 6px 16px rgba(51,85,255,.32)}
button.ghost{background:#fff;color:#3A4668;border:1px solid #D5DEF2;box-shadow:none}
button.ghost:hover{border-color:var(--acc);color:var(--acc);filter:none}
button.sm{padding:5px 12px;font-size:13px;border-radius:9px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}form.inline{display:inline}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;align-items:start}
.col{background:#EDF1FC;border-radius:var(--r);padding:12px}
.col h3{font-size:12px;color:#5A6890;text-transform:uppercase;letter-spacing:.07em;margin:2px 4px 10px;font-weight:650}
.trow{display:block;background:#fff;border:1px solid var(--line);border-left:4px solid #C9D5F5;border-radius:12px;padding:11px 13px;margin-bottom:9px;color:var(--tx);box-shadow:0 1px 2px rgba(20,33,61,.04);transition:.15s}
.trow:hover{text-decoration:none;box-shadow:var(--shadow-h);transform:translateY(-1px)}
.trow b{font-weight:600}.trow.p3{border-left-color:var(--red)}.trow.od{border-left-color:var(--org)}.trow.p3.od{border-left-color:var(--red)}
.col>.mut.small{padding:8px 6px;text-align:center}
.alert{background:var(--org-soft);border:1px solid #F7D8A6;border-radius:var(--r);padding:14px 18px;margin-bottom:16px}
.alert.red{background:var(--red-soft);border-color:#F6C4C6}
.alert a{font-weight:600}
.comment{border-bottom:1px solid var(--line2);padding:12px 0}.comment:last-child{border-bottom:0}
.comment.ai{background:linear-gradient(135deg,#F2F5FF,#F0FBFF);border:1px solid #DCE5FF;padding:14px;border-radius:14px;margin:8px 0}
.comment pre{white-space:pre-wrap;font:inherit;margin:6px 0 0}
.bar{display:flex;height:9px;border-radius:99px;overflow:hidden;background:var(--line2)}
hr{border:0;border-top:1px solid var(--line2)}
.empty{text-align:center;color:var(--mut);padding:28px 12px}

/* ---- вход ---- */
.auth{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(900px 500px at 15% 10%,#DDE6FF 0,transparent 60%),radial-gradient(800px 500px at 90% 90%,#D6F6FF 0,transparent 55%),var(--bg)}
.auth .box{width:100%;max-width:400px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:36px 34px;box-shadow:0 20px 60px rgba(51,85,255,.14);text-align:center}
.auth .box img{width:210px;max-width:70%;height:auto;margin:0 auto 6px;display:block}
.auth .box p{margin:0 0 22px;color:var(--mut)}
.auth input{width:100%;margin-bottom:12px;padding:12px 14px}
.auth button{width:100%;padding:12px;font-size:16px}
.auth .err{background:var(--red-soft);color:var(--red);padding:9px 12px;border-radius:10px;margin-bottom:12px;font-size:14px}

/* ---- мобильная версия ---- */
@media (max-width:900px){
  .app{grid-template-columns:1fr}
  .side{position:fixed;inset:0 auto 0 0;width:280px;z-index:30;transform:translateX(-100%);transition:.25s;box-shadow:none}
  body.menu .side{transform:none;box-shadow:0 0 0 100vmax rgba(20,33,61,.35)}
  .topm{display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--line);padding:10px 16px}
  .topm button{padding:7px 10px;background:var(--acc-soft);color:var(--acc);box-shadow:none}
  .topm img{height:30px}
  .main{padding:20px 16px 48px}h1{font-size:23px}
  .g2{grid-template-columns:1fr}
  table{display:block;overflow-x:auto;white-space:nowrap}
}
@media print{.side,.topm,.noprint,button{display:none!important}.app{display:block}body{background:#fff}.main{padding:0}.card,.kpi{box-shadow:none;break-inside:avoid}}

/* ---- волна 1 ---- */
.search{padding:0 4px 8px}.search input{width:100%;background:var(--bg);border-color:transparent;padding:9px 12px}.search input:focus{background:#fff}
.nav{overflow-y:auto;min-height:0;padding-bottom:8px}
details.card>summary{cursor:pointer;font-weight:600;list-style:none;color:var(--acc)}details.card>summary::-webkit-details-marker{display:none}
details.card[open]>summary{margin-bottom:14px}
.ck{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--line2)}
.ck:last-child{border-bottom:0}.ck.done .t{text-decoration:line-through;color:var(--mut)}
.ck .box{width:20px;height:20px;border-radius:6px;border:2px solid #C4D0F0;background:#fff;padding:0;display:grid;place-items:center;color:#fff;font-size:13px;box-shadow:none}
.ck.done .box{background:var(--acc);border-color:var(--acc)}.ck .t{flex:1}
.ck .x{background:none;border:0;color:#B3BDD6;box-shadow:none;padding:2px 6px;font-size:16px}.ck .x:hover{color:var(--red);background:none;filter:none;box-shadow:none}
.prog{height:6px;border-radius:99px;background:var(--line2);overflow:hidden;margin:6px 0 10px}.prog i{display:block;height:100%;background:linear-gradient(90deg,var(--acc),var(--cyan))}
.hist{font-size:13px;padding:7px 0;border-bottom:1px solid var(--line2);color:#4A5778}.hist:last-child{border-bottom:0}.hist time{color:var(--mut);font-size:12px;display:block}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.cal .dow{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);padding:4px 6px;font-weight:600}
.cal .day{background:#fff;border:1px solid var(--line);border-radius:12px;min-height:104px;padding:7px;overflow:hidden}
.cal .day.off{background:#F7F9FE;opacity:.7}.cal .day.today{border-color:var(--acc);box-shadow:0 0 0 3px rgba(51,85,255,.12)}
.cal .n{font-size:12px;font-weight:650;color:var(--mut);margin-bottom:4px}.cal .today .n{color:var(--acc)}
.cal a.ev{display:block;font-size:12px;line-height:1.25;padding:3px 6px;margin-bottom:3px;border-radius:7px;background:var(--acc-soft);color:#2A44C9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal a.ev.od{background:var(--red-soft);color:var(--red)}.cal a.ev.dn{background:var(--grn-soft);color:var(--grn);text-decoration:line-through}.cal a.ev.p3{font-weight:700}
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.filters select,.filters input{padding:8px 10px}
@media (max-width:900px){.cal .day{min-height:70px}.cal a.ev{font-size:11px}}

/* ---- календарь: напоминания, повестка ---- */
.cal a.ev.rem{background:#FFF3DB;color:#A15C00}.cal a.ev.prep{background:#fff;color:#6B5BD6;border:1px dashed #BDB4F5}
.cal a.ev.rem.od{background:var(--red-soft);color:var(--red)}.cal a.ev.rem.dn,.cal a.ev.task.dn{text-decoration:line-through}
.legend{display:flex;gap:14px;align-items:center;margin-bottom:10px;flex-wrap:wrap}.ev-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px}
.ev-dot.t{background:#B9C8FF}.ev-dot.r{background:#FFD88A}.ev-dot.p{background:#fff;border:1px dashed #8F83EA}
.calwrap{display:grid;grid-template-columns:minmax(0,3fr) minmax(280px,1.1fr);gap:16px;align-items:start}
.cal-agenda{position:sticky;top:20px}
.ag-day{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#5A6890;margin:14px 0 6px}.ag-day:first-of-type{margin-top:0}
.ag-day.od{color:var(--red)}
.ag-ev{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border-radius:12px;color:var(--tx);margin-bottom:4px;background:var(--bg)}
.ag-ev:hover{text-decoration:none;background:var(--acc-soft)}.ag-ev.rem{background:#FFF8E8}.ag-ev.prep{background:#F4F2FF}
.ag-ic{width:24px;text-align:center;flex:none}
.nav-btn{background:#fff!important;color:var(--acc)!important;border:1px solid #D5DEF2;box-shadow:none!important;padding:8px 14px}
.cal-title{min-width:140px;text-align:center}
.seg{display:none;background:#E6ECFB;border-radius:12px;padding:3px;margin-bottom:12px}
.seg a{flex:1;text-align:center;padding:8px;border-radius:10px;color:#4A5778;font-weight:600}.seg a.on{background:#fff;color:var(--acc);box-shadow:var(--shadow)}.seg a:hover{text-decoration:none}
@media (max-width:900px){
  .calwrap{grid-template-columns:1fr}.cal-agenda{position:static}
  .seg{display:flex}
  .calwrap .cal-month{display:none}.calwrap.force-month .cal-month{display:block}.calwrap.force-month .cal-agenda{display:none}
}

/* ================= МОБИЛЬНАЯ ВЕРСИЯ ================= */
.tabbar,.sheet,.sheet-bg{display:none}
.topm-brand{display:flex;align-items:center;gap:9px;color:var(--tx)}.topm-brand:hover{text-decoration:none}.topm-brand img{height:30px;width:auto}.topm-brand b{font-size:17px;letter-spacing:-.01em}
.topm-bell{margin-left:auto;position:relative;width:40px;height:40px;display:grid;place-items:center;border-radius:12px;color:#3A4668}
.topm-bell svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.topm-bell .badge{position:absolute;top:2px;right:0;background:var(--red);color:#fff;border-radius:999px;padding:0 6px;font-size:11px;font-weight:700;line-height:17px}
@media (max-width:900px){
  html{scroll-padding-top:64px}
  body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .topm{padding:8px 16px;padding-top:calc(8px + env(safe-area-inset-top));min-height:56px}
  .main{padding:16px 14px 24px}
  .wrap{max-width:100%}
  h1{font-size:22px}h2{font-size:16px;margin:22px 0 10px}
  .page-head{margin-bottom:14px;align-items:stretch}.page-head>.row{width:100%}.page-head .row>*{flex:0 0 auto}
  .card{padding:14px;border-radius:14px;margin-bottom:12px}
  /* крупные касания, без зума iOS */
  input,select,textarea{font-size:16px;min-height:44px;padding:10px 12px}
  textarea{min-height:96px}
  button,.btn{min-height:44px;padding:10px 16px;font-size:15px}
  button.sm{min-height:36px;padding:6px 12px}
  .row{gap:8px}.row>input:not([type=checkbox]),.row>select,.row>label{flex:1 1 calc(50% - 8px);min-width:0}
  .row>input[name=title],.row>textarea,.filters>input[name=q]{flex:1 1 100%}
  form.card>.row>button,.row>button:not(.sm):not(.ghost){flex:1 1 100%}
  /* KPI по два в ряд */
  .g4{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.g3{grid-template-columns:1fr}
  .kpi{padding:12px 14px}.kpi b{font-size:26px}
  /* доска: горизонтальные полосы со «прилипанием» */
  .cols{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;margin:0 -14px;padding:0 14px 10px;-webkit-overflow-scrolling:touch}
  .col{flex:0 0 86%;scroll-snap-align:center;min-width:0}
  /* карточка задачи — в одну колонку */
  .grid.g2{grid-template-columns:1fr!important}
  .trow{padding:12px 14px;border-radius:14px}
  /* таблицы превращаются в карточки */
  table.stack,table.stack tbody,table.stack tr,table.stack td{display:block;width:100%;white-space:normal}
  table.stack tr:first-child{display:none}
  table.stack tr{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin-bottom:10px}
  table.stack td{border:0;padding:5px 0}table.stack td select,table.stack td input{width:100%}
  table:not(.stack){display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}
  .cal .day{min-height:54px;padding:4px}.cal a.ev{font-size:10px;padding:2px 4px}.cal .n{font-size:11px}
  .calwrap.force-month .cal-month .cal a.ev{display:block}
  .ag-ev{padding:12px}
  /* ---- нижняя панель ---- */
  .tabbar{display:grid;grid-template-columns:repeat(5,1fr);align-items:center;position:fixed;left:0;right:0;bottom:0;z-index:25;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom))}
  .tabbar a,.tabbar .tab-more{display:flex;flex-direction:column;align-items:center;gap:2px;color:#7A86A5;font-size:11px;font-weight:600;padding:6px 2px;border-radius:12px;background:none;border:0;box-shadow:none;min-height:0}
  .tabbar svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  .tabbar a.on{color:var(--acc)}.tabbar a:hover{text-decoration:none}
  .tabbar .fab{width:54px;height:54px;border-radius:50%;margin:-22px auto 0;padding:0;display:grid;place-items:center;background:linear-gradient(135deg,var(--acc),var(--acc2));box-shadow:0 8px 20px rgba(51,85,255,.4)}
  .tabbar .fab svg{stroke:#fff;stroke-width:2.4;width:26px;height:26px}
  /* ---- шторка быстрой задачи ---- */
  .sheet-bg{display:block;position:fixed;inset:0;background:rgba(20,33,61,.4);opacity:0;pointer-events:none;transition:.2s;z-index:40}
  .sheet{display:block;position:fixed;left:0;right:0;bottom:0;z-index:41;background:#fff;border-radius:22px 22px 0 0;padding:10px 16px calc(18px + env(safe-area-inset-bottom));transform:translateY(105%);transition:.28s cubic-bezier(.2,.8,.2,1);box-shadow:0 -10px 40px rgba(20,33,61,.2)}
  .sheet .grab{width:40px;height:4px;border-radius:4px;background:#D5DEF2;margin:0 auto 12px}
  .sheet input,.sheet select{width:100%;margin-bottom:10px}.sheet .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  body.qa-open .sheet{transform:none}body.qa-open .sheet-bg{opacity:1;pointer-events:auto}
  /* боковое меню как шторка слева */
  .side{width:min(300px,86vw);padding-top:calc(20px + env(safe-area-inset-top))}
  body.menu{overflow:hidden}
  .nav a{padding:13px 12px}
  .auth .box{padding:28px 22px}
}
@media (min-width:901px){.only-m{display:none!important}}

/* ---- проекты в работе ---- */
.chip{display:inline-flex;align-items:center;gap:6px;background:var(--acc-soft);color:#2A44C9;border-radius:999px;padding:2px 10px 2px 3px;margin:2px 4px 2px 0;font-size:13px;font-weight:600;white-space:nowrap}
.chip i{font-style:normal;width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,var(--acc),var(--cyan));color:#fff;display:grid;place-items:center;font-size:11px}
.emp{background:var(--bg);border:1px solid var(--line2);border-radius:14px;padding:12px}
.pj{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:space-between;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:6px;color:var(--tx)}
.pj:hover{text-decoration:none;box-shadow:var(--shadow-h)}.pj>span:first-child{flex:1;min-width:120px;font-weight:600}

/* ---- отправка результата ---- */
.rc{display:flex;gap:8px;align-items:flex-start;padding:6px 0;cursor:pointer;line-height:1.35}.rc input{width:auto;min-height:0;margin-top:3px;flex:none}

/* ---- период, проверка, секции «Мои задачи» ---- */
.pbar{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.pchip{padding:7px 14px;border-radius:999px;background:#fff;border:1px solid #D5DEF2;color:#3A4668;font-weight:600;font-size:13px}
.pchip:hover{text-decoration:none;border-color:var(--acc);color:var(--acc)}.pchip.on{background:var(--acc);border-color:var(--acc);color:#fff}
.pcustom{display:flex;gap:6px;align-items:center;margin-left:6px}.pcustom input{padding:5px 8px;min-height:0;font-size:13px}
a.kpi{display:block;color:var(--tx)}a.kpi:hover{text-decoration:none;box-shadow:var(--shadow-h);transform:translateY(-1px)}
.rvrow{margin:-4px 0 12px 4px;gap:6px}.rvrow input{flex:1;min-width:160px;padding:6px 10px;min-height:0}
@media (max-width:900px){.pbar{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.pchip{white-space:nowrap}.pcustom{flex-wrap:wrap}.rvrow input{flex:1 1 100%}}

/* ---- журнал: плитки чатов ---- */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}
.tile{display:block;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px;color:var(--tx);box-shadow:var(--shadow);transition:.15s;position:relative}
.tile:hover{text-decoration:none;box-shadow:var(--shadow-h);transform:translateY(-2px)}.tile.warn{border-color:#F3C77E;background:linear-gradient(#FFFBF2,#fff)}.tile.off{opacity:.75}
.tile-h{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:16px}.tile-last{margin-top:10px;padding-top:8px;border-top:1px dashed var(--line)}
.tile-warn{margin-top:8px;font-size:12.5px;font-weight:600;color:#B96A00}
.dot{width:10px;height:10px;border-radius:50%;background:#C9D2EA;flex:none}.dot.on{background:var(--grn);box-shadow:0 0 0 4px rgba(31,157,85,.15)}
.tabs2{display:flex!important;max-width:420px}.jm{padding:9px 0;border-bottom:1px solid var(--line2)}.jm:last-child{border-bottom:0}
.jm.mine{background:linear-gradient(90deg,rgba(51,85,255,.05),transparent);padding-left:8px;border-radius:8px}
.kbbody{line-height:1.6;max-width:820px}.kbbody h2,.kbbody h3,.kbbody h4{margin:18px 0 6px}.kbbody ul,.kbbody ol{padding-left:22px}.kbbody ul.kbcheck{list-style:none;padding-left:4px}.kbbody p{margin:8px 0}
.btn{display:inline-flex;align-items:center;text-decoration:none}

.chat-msgs{display:flex;flex-direction:column;gap:8px;overflow-y:auto;max-height:60vh;min-height:220px;padding:6px 2px}
.msg{max-width:78%;align-self:flex-start}.msg.me{align-self:flex-end}.msg .who{font-size:12px;color:var(--mut,#7a8499);margin:0 4px 2px}.msg.me .who{text-align:right}
.msg .bub{background:#EEF2FB;border-radius:14px 14px 14px 4px;padding:9px 13px;white-space:pre-wrap;word-break:break-word}
.msg.me .bub{background:#3355FF;color:#fff;border-radius:14px 14px 4px 14px}.msg.ai .bub{background:linear-gradient(135deg,#F2F5FF,#F0FBFF);border:1px solid #DCE5FF;color:inherit}
.msg.ev{align-self:center;max-width:92%}.msg.ev .bub{background:transparent;color:var(--mut,#7a8499);font-size:13px;padding:2px 8px;text-align:center}
.chat-form{display:flex;gap:8px;align-items:flex-end;margin-top:10px}.chat-form textarea{flex:1;min-height:44px;max-height:140px;resize:vertical}
.chat-box{padding:14px}
#pwa-sheet{position:fixed;left:0;right:0;bottom:0;z-index:200;padding:12px 12px calc(12px + env(safe-area-inset-bottom));pointer-events:none}
.pwa-card{pointer-events:auto;max-width:520px;margin:0 auto;background:#fff;border-radius:18px;box-shadow:0 10px 40px rgba(20,30,70,.28);padding:14px;display:flex;gap:12px;align-items:flex-start;border:1px solid #DCE5FF}
.pwa-card img{width:48px;height:48px;border-radius:12px;flex:none}.pwa-card p{margin:4px 0 8px;font-size:14px;color:#51607d}.pwa-card ol{margin:4px 0 8px;padding-left:20px;font-size:14px;color:#2b3550}
.pwa-act{display:flex;gap:8px;flex-wrap:wrap}.pwa-msg{font-size:13px;color:#c0392b;margin-top:6px}.pwa-ico{display:inline-block;border:1px solid #9aa6c4;border-radius:5px;padding:0 5px}
@media (min-width:821px){#pwa-sheet{display:none}}

.wl td{vertical-align:top}.wl-bar{height:10px;background:#EEF2FB;border-radius:6px;overflow:hidden;margin-bottom:4px}.wl-fill{height:10px;border-radius:6px}
.wl-fill.ok,.wl-key.ok{background:#27AE60}.wl-fill.warn,.wl-key.warn{background:#F2A900}.wl-fill.bad,.wl-key.bad{background:#E5484D}.wl-fill.na,.wl-key.na{background:#B8C2D9}
.wl-key{display:inline-block;width:10px;height:10px;border-radius:3px;margin:0 4px 0 10px}

.ev.pay,.ag-ev.pay{background:#FFF6E0;border-color:#F2D48A;color:#7a5600}

/* ощущение нажатия, фокус с клавиатуры, уважение к «уменьшить движение» */
button,.btn,.nav a,.tabbar a,.seg a,.trow,.card a.trow{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button:active,.btn:active{transform:translateY(1px) scale(.98);filter:brightness(.96);box-shadow:0 2px 6px rgba(51,85,255,.25);transition-duration:.06s}
button.ghost:active{background:#EEF2FB}
.nav a:active,.tabbar a:active,.seg a:active{transform:scale(.97);transition-duration:.06s}
.nav a,.tabbar a,.seg a,.trow{transition:background .15s,transform .12s,color .15s}
button:focus-visible,.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:8px}
button[disabled],button.busy{opacity:.6;cursor:progress;pointer-events:none}
.ava{object-fit:cover}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---- сгруппированное меню ---- */
.nav details.ngrp{margin:0}.nav details.ngrp>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#9AA6C2;padding:12px 12px 6px;user-select:none}
.nav details.ngrp>summary::-webkit-details-marker{display:none}.nav details.ngrp>summary::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .2s;margin-right:4px}
.nav details.ngrp[open]>summary::after{transform:rotate(45deg)}
.sectabs{display:flex;gap:6px;overflow-x:auto;margin:-4px 0 16px;padding:2px 0 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.sectabs::-webkit-scrollbar{display:none}
.sectabs a{flex:none;padding:8px 14px;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--tx);font-weight:600;font-size:14px;white-space:nowrap}
.sectabs a.on{background:var(--acc);border-color:var(--acc);color:#fff}.sectabs a:hover{text-decoration:none}
.more-sheet{max-height:86vh;overflow-y:auto}.more-me{display:flex;align-items:center;gap:12px;margin:2px 0 12px}.more-search input{width:100%;margin-bottom:6px}
.more-title{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin:14px 2px 8px}
.more-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.more-tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:14px 6px;border-radius:14px;background:var(--bg);color:var(--tx);font-size:12.5px;font-weight:600;line-height:1.2;min-height:78px}
.more-tile svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;color:var(--acc)}
.more-tile.on{background:var(--acc-soft);color:var(--acc)}.more-tile:hover{text-decoration:none}.more-tile:active{transform:scale(.96)}
.more-tile em{position:absolute;top:6px;right:8px;background:var(--red);color:#fff;font-style:normal;border-radius:999px;font-size:11px;padding:0 6px}
@media(max-width:820px){body.more-open #moresheet{transform:none}body.more-open #qabg{opacity:1;pointer-events:auto}.sectabs{margin-top:0}}

/* ---- анимации и сообщения ---- */
#toasts{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:300;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;width:max-content;max-width:92vw}
.toast{display:flex;align-items:center;gap:10px;background:#14213D;color:#fff;padding:11px 18px 11px 14px;border-radius:999px;box-shadow:0 10px 30px rgba(20,33,61,.35);font-weight:600;font-size:14.5px;opacity:0;transform:translateY(14px) scale(.96);transition:.28s cubic-bezier(.2,.9,.3,1.2)}
.toast.in{opacity:1;transform:none}.toast.err{background:#B3261E}
.tk{width:24px;height:24px;flex:none;fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.tk circle{stroke:#4ADE80;stroke-dasharray:63;stroke-dashoffset:63;animation:draw .5s .05s ease forwards}.tk.err circle{stroke:#fff}
.tk path{stroke-dasharray:24;stroke-dashoffset:24;animation:draw .35s .35s ease forwards}@keyframes draw{to{stroke-dashoffset:0}}
.spin{width:18px;height:18px;border-radius:50%;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;animation:rot .7s linear infinite;flex:none}@keyframes rot{to{transform:rotate(360deg)}}
button.busy{position:relative;color:transparent!important;opacity:.85;pointer-events:none}
button.busy::after{content:"";position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;border:2.5px solid rgba(255,255,255,.45);border-top-color:#fff;animation:rot .7s linear infinite}
button.ghost.busy::after{border-color:rgba(51,85,255,.25);border-top-color:var(--acc)}
#topbar{position:fixed;left:0;top:0;height:3px;width:0;background:linear-gradient(90deg,var(--acc),var(--cyan));z-index:400;opacity:0;pointer-events:none}
#topbar.go{opacity:1;width:82%;transition:width 8s cubic-bezier(.1,.8,.2,1)}#topbar.done{opacity:0;width:100%;transition:width .2s,opacity .35s .15s}
.page-in{animation:pagein .28s cubic-bezier(.2,.8,.2,1)}@keyframes pagein{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.spark{position:fixed;width:7px;height:7px;border-radius:50%;z-index:350;pointer-events:none;animation:spark .65s cubic-bezier(.1,.7,.3,1) forwards}
@keyframes spark{to{transform:translate(var(--dx),var(--dy)) scale(.2);opacity:0}}
.ck .box{transition:transform .15s,background .15s}.ck .box:active{transform:scale(.85)}
@media (max-width:820px){#toasts{bottom:92px}}
@media (prefers-reduced-motion:reduce){.toast,.page-in,.tk circle,.tk path{animation:none!important;transition:none!important;stroke-dashoffset:0!important}.spark{display:none}}
.theme-pick{display:flex;gap:8px;flex-wrap:wrap}.theme-opt{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:104px;padding:12px 14px;background:var(--card)!important;color:var(--tx)!important;border:2px solid var(--line)!important;box-shadow:none!important}
.theme-opt span{font-size:22px}.theme-opt.on{border-color:var(--acc)!important;color:var(--acc)!important;background:var(--acc-soft)!important}

/* ---- тёмная тема ---- */
html[data-theme=dark]{color-scheme:dark;--bg:#0E1424;--card:#161E33;--tx:#E8ECF8;--mut:#93A0BF;--line:#263150;--line2:#1D2742;--acc:#6C8BFF;--acc2:#8AA3FF;--acc-soft:#1F2C5C;--cyan:#5FD3F3;
  --red:#FF6B70;--red-soft:#3A1B20;--org:#F5A623;--org-soft:#3A2A10;--grn:#3DD68C;--grn-soft:#12332A;--blu:#7C9CFF;--blu-soft:#1C2A55;--shadow:0 1px 2px rgba(0,0,0,.3),0 6px 20px rgba(0,0,0,.25);--shadow-h:0 2px 4px rgba(0,0,0,.35),0 10px 28px rgba(0,0,0,.35)}
html[data-theme=dark] body{background:var(--bg)}
html[data-theme=dark] .side,html[data-theme=dark] .topm,html[data-theme=dark] .auth .box,html[data-theme=dark] .sheet,html[data-theme=dark] .pwa-card,html[data-theme=dark] .trow,html[data-theme=dark] .cal .day,
html[data-theme=dark] .tile,html[data-theme=dark] .pj,html[data-theme=dark] table.stack tr,html[data-theme=dark] .pchip,html[data-theme=dark] .nav-btn,html[data-theme=dark] .seg a.on{background:var(--card)!important;color:var(--tx)}
html[data-theme=dark] .tabbar{background:rgba(22,30,51,.96)}
html[data-theme=dark] input,html[data-theme=dark] select,html[data-theme=dark] textarea,html[data-theme=dark] button.ghost,html[data-theme=dark] .ck .box{background:#101830;border-color:var(--line);color:var(--tx)}
html[data-theme=dark] .search input:focus,html[data-theme=dark] .me button:hover{background:#101830}
html[data-theme=dark] .nav a,html[data-theme=dark] .tabbar a,html[data-theme=dark] .tabbar .tab-more,html[data-theme=dark] .seg a,html[data-theme=dark] .pchip{color:#B5C0DC}
html[data-theme=dark] .nav a.on,html[data-theme=dark] .tabbar a.on,html[data-theme=dark] .seg a.on{color:var(--acc)}
html[data-theme=dark] .nav a:hover{background:var(--line2)}
html[data-theme=dark] .nav details.ngrp>summary,html[data-theme=dark] .nav .grp{color:#6F7CA0}
html[data-theme=dark] .msg .bub{background:#1F2A47;color:var(--tx)}html[data-theme=dark] .msg.me .bub{background:#3355FF;color:#fff}
html[data-theme=dark] .msg.ai .bub,html[data-theme=dark] .comment.ai{background:linear-gradient(135deg,#1A2547,#14304A);border-color:#2A3A6B;color:var(--tx)}
html[data-theme=dark] .sectabs a{background:var(--card);color:var(--tx);border-color:var(--line)}html[data-theme=dark] .sectabs a.on{background:var(--acc);color:#0E1424;border-color:var(--acc)}
html[data-theme=dark] .more-tile{background:#1A2340}html[data-theme=dark] .more-tile.on{background:var(--acc-soft)}
html[data-theme=dark] .pwa-card p,html[data-theme=dark] .pwa-card ol{color:#B5C0DC}
html[data-theme=dark] code{background:#1F2C5C;color:#C9D5FF}
html[data-theme=dark] [style*="background:#fff"],html[data-theme=dark] [style*="background: #fff"]{background:var(--card)!important;color:var(--tx)}
html[data-theme=dark] [style*="background:#EEF2FB"],html[data-theme=dark] [style*="background:#EEF2FF"],html[data-theme=dark] [style*="background:#E9EEFF"]{background:#1A2547!important;color:var(--tx)}
html[data-theme=dark] [style*="background:#FFF6E0"],html[data-theme=dark] .alert{border-color:#4A3A1E}
html[data-theme=dark] .alert{background:#2A2314;color:#F3DDA8}html[data-theme=dark] .alert.red{background:var(--red-soft);color:#FFC9CB;border-color:#5A2A30}
html[data-theme=dark] .kpi,html[data-theme=dark] .card{background:var(--card);border-color:var(--line)}
html[data-theme=dark] table th{background:#1A2340;color:#B5C0DC}html[data-theme=dark] td,html[data-theme=dark] th{border-color:var(--line)}
html[data-theme=dark] a{color:#8AA3FF}html[data-theme=dark] .btn,html[data-theme=dark] button:not(.ghost){color:#fff}
html[data-theme=dark] .ev.pay,html[data-theme=dark] .ag-ev.pay,html[data-theme=dark] .cal a.ev.rem,html[data-theme=dark] .ag-ev.rem{background:#3A2A10;color:#F5C26B}
html[data-theme=dark] .cal a.ev.prep,html[data-theme=dark] .ag-ev.prep{background:#241F4D;color:#B8AEFF}
html[data-theme=dark] .wl-bar,html[data-theme=dark] .kbbody{background-color:transparent}html[data-theme=dark] .wl-bar{background:#1F2A47}
html[data-theme=dark] img.pv,html[data-theme=dark] .ava{filter:none}
html[data-theme=dark] .toast{background:#E8ECF8;color:#14213D}html[data-theme=dark] .toast .tk{stroke:#14213D}html[data-theme=dark] .toast .tk circle{stroke:#1F9D55}
.side .nav{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;padding-bottom:8px}
.side .me{flex:none}
