/* Workly: saturated blue, red accents, white surfaces and near-black text. */
:root {
  --bg:#f5f6fa; --panel:#ffffff; --text:#17191f; --muted:#646b78;
  --line:#e1e4ec; --accent:#1746c8; --accent-weak:#e8eefc;
  --brand-spark:#df3f48; --danger:#c7353d; --ok:#1746c8; --warn:#8a5b17;
  --weekend:#f0f2f6; --today:#fff0d1;
  --c-annual:#467dcd; --c-unpaid:#8565b9; --c-sick:#cc6464; --c-trip:#25886a; --c-off:#c49125;
  --radius:14px; --radius-control:9px; --shadow:0 3px 14px rgba(23,32,52,.05);
  --focus:#1746c8;
  --hero-bg:#e8efff; --hero-border:#d7e2fb; --hero-label:#284b97;
  --hero-copy:#4e5b73; --hero-button-border:#b8c9f0;
  --art-sky:#2d5fdd; --art-coral:#df3f48; --art-violet:#df3f48; --accent-hover:#1039a9; --soft:#f7f8fb;
}
body{font-family:"Avenir Next","Segoe UI",-apple-system,BlinkMacSystemFont,Arial,sans-serif;line-height:1.55;letter-spacing:-.01em}
button,a,input,select,textarea{ -webkit-tap-highlight-color:transparent }
button{transition:background .16s,border-color .16s,box-shadow .16s,transform .16s}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
button:active:not(:disabled){transform:translateY(1px)}
button:disabled{opacity:.45;cursor:not-allowed}
a{color:var(--accent);text-underline-offset:3px}
.side{width:252px;padding:24px 16px 16px;background:var(--soft)}
.side-top{margin-bottom:24px}
.side-brand{font-size:25px;letter-spacing:-1px;padding:8px}
.side-brand.active,.side-brand:hover{background:transparent}
.side-brand .logo{width:34px;height:34px}
.side-group{margin-top:22px}
.side-title{font-size:10px;letter-spacing:.13em;padding:0 12px 9px}
.side-item{min-height:43px;padding:10px 12px;gap:12px;margin-bottom:3px;border-radius:var(--radius-control);font-size:13px;font-weight:500}
.side-item.active{box-shadow:inset 3px 0 var(--accent);background:var(--accent-weak)}
.side-item:hover:not(:disabled){background:var(--accent-weak)}
.side-ic{display:inline-flex;flex:none;width:19px;height:19px}
.side-ic svg,.heading-icon svg{width:100%;height:100%}
.side-toggle{background:transparent;border-color:transparent}
.side-foot{margin-top:24px;padding:18px 8px 0}
.side-foot a{display:block;color:var(--text)}
.side-foot .pill{font-size:10px}
.subbar{background:var(--panel);border-bottom:1px solid var(--line)}
.subbar-in{max-width:1500px;min-height:78px;padding:14px 32px;gap:30px}
.subbar h2{display:flex;align-items:center;gap:10px;font-size:17px;letter-spacing:-.03em}
.heading-icon{display:inline-flex;width:21px;height:21px;color:var(--accent)}
nav button{min-height:38px;font-size:13px}
nav button.active{background:var(--accent-weak)}
main{padding:30px 32px 48px;max-width:1500px}
.panel{border-radius:var(--radius);padding:24px;margin-bottom:20px;box-shadow:var(--shadow)}
h2{font-size:21px;letter-spacing:-.035em}h3{font-size:16px;letter-spacing:-.02em}
.btn{min-height:39px;padding:9px 16px;border-radius:var(--radius-control);font-size:13px;font-weight:600;color:var(--text)}
.btn:hover{background:var(--soft);border-color:var(--muted)}
.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.btn.danger:hover{border-color:var(--danger);background:#fff3f3}
.btn.sm{min-height:30px;padding:5px 10px;font-size:12px}
.btn.ok{background:var(--accent-weak);border-color:transparent}
.stats{gap:14px}
.stat{padding:18px;min-width:125px;border-radius:13px;background:var(--soft);border:1px solid var(--line)}
.stat b{font-size:30px;line-height:1.25;font-weight:650;letter-spacing:-.05em;margin-bottom:6px;overflow-wrap:anywhere}
.stat span{font-size:12px;line-height:1.5}
.stat.hl{border-color:transparent}
.home-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 20px}
.home-shortcut{display:flex;flex-direction:column;align-items:stretch;gap:7px;min-height:100px;padding:17px 18px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--shadow);color:var(--text);text-align:left;cursor:pointer}
.home-shortcut:hover{border-color:#c6bafa;background:var(--soft);transform:translateY(-1px)}
.home-shortcut-title{display:flex;justify-content:space-between;gap:8px;font-size:14px;font-weight:650}
.home-shortcut-title span{color:var(--accent)}
.home-shortcut-desc{font-size:12px;color:var(--muted);line-height:1.45}
@media(max-width:1100px){.home-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.home-shortcuts{gap:8px}.home-shortcut{min-height:92px;padding:13px;border-radius:12px}.home-shortcut-title{font-size:13px}.home-shortcut-desc{font-size:11px}}
.grid2{gap:20px}.grid2>.panel{min-width:0}
.todo{padding:16px 18px;border-radius:12px;background:var(--soft);margin-bottom:10px}
.todo.urgent{background:#fff9e9;border-color:#ebdcae}
.todo-h{gap:10px}.dash-row{padding:8px 0;font-size:13px}.dash-h{margin:22px 0 8px;font-size:11px;letter-spacing:.08em}
.pill{padding:4px 10px;font-size:11px;border-radius:7px}
.soon{font-size:8px;letter-spacing:.06em;padding:3px 5px}
th{font-size:10px;padding:12px;background:var(--soft);letter-spacing:.07em}
td{padding:12px}tr.click:hover td{background:var(--soft)}
.cal td{height:40px}.cal .cell{height:27px;border-radius:4px}
.seg{background:var(--weekend);border:0;border-radius:var(--radius-control);padding:4px}
.seg button{min-height:34px;font-size:13px}.seg button.active{box-shadow:var(--shadow)}
.form input,.form select,.form textarea,.flt select,.combo-in{min-height:42px;border-radius:var(--radius-control);padding:10px 12px;background:var(--soft)}
.form input:focus,.form textarea:focus{background:var(--panel);border-color:var(--accent)}
.form input:user-invalid{border-color:var(--danger)}
.overlay{background:#252c4959;backdrop-filter:blur(5px);padding-top:6vh}
.modal{padding:28px;border-radius:22px;box-shadow:0 24px 80px #252c4926}
.empty{padding:40px 20px;background:var(--soft);border-radius:12px}
.welcome{display:flex;justify-content:space-between;align-items:center;gap:24px;overflow:hidden;background:var(--hero-bg);border:1px solid var(--hero-border);border-radius:22px;padding:36px;margin-bottom:24px;position:relative}
.eyebrow{font-size:10px;letter-spacing:.15em;color:var(--hero-label);font-weight:700;margin-bottom:14px}
.welcome h1{font-size:clamp(28px,3vw,42px);max-width:620px;line-height:1.12;letter-spacing:-.055em;font-weight:600;margin:0 0 14px}
.welcome p{color:var(--hero-copy);font-size:14px;margin:0 0 24px;max-width:430px}
.welcome-actions{display:flex;gap:10px;flex-wrap:wrap}.welcome-actions .btn:not(.primary){background:transparent;border-color:var(--hero-button-border)}
.welcome-art{position:relative;width:200px;height:180px;flex:none;transform:rotate(-10deg)}
.welcome-art span{position:absolute;width:105px;height:105px;border-radius:28px;background:var(--art-sky);left:5px;top:5px;transform:rotate(10deg)}
.welcome-art span:nth-child(2){left:77px;top:44px;background:var(--art-coral);transform:rotate(30deg)}
.welcome-art span:nth-child(3){left:29px;top:73px;background:var(--art-violet);transform:rotate(-8deg)}
.welcome-art i{position:absolute;left:48px;top:103px;color:white;font-size:22px;letter-spacing:-1px;font-weight:650;font-style:normal}
.login{max-width:470px;margin:10vh auto;padding:38px;position:relative;border-top:5px solid var(--accent);box-shadow:0 20px 70px #252c4910}
.login .brand{margin-bottom:38px;font-size:26px}.login h2{font-size:32px;line-height:1.2}.login .muted{margin:14px 0 26px}.login .btn.primary{margin-top:8px;min-height:46px}
.layout.collapsed .side{width:76px;padding:24px 10px}.layout.collapsed .side-item{min-height:43px}
@media(min-width:1200px){.grid2{grid-template-columns:1.1fr 1fr}}
@media(max-width:1100px){.side{width:220px;padding:20px 10px}.welcome-art{display:none}main{padding:24px}.subbar-in{padding:14px 24px}.stat{min-width:130px}}
@media(max-width:820px){.side,.layout.collapsed .side{width:100%;height:auto;padding:12px 16px;border-right:0;border-bottom:1px solid var(--line)}.side-top{margin-bottom:8px}.side-nav{display:flex;flex-wrap:nowrap;overflow:auto;gap:18px}.side-group{margin:0;flex:none}.side-title{display:none}.side-item{width:auto;display:inline-flex;margin-right:4px}.side-item:disabled{display:none}.side-foot{margin-top:8px;padding:8px 0 0}.side-foot>a{display:inline-block}.side-foot>.row{display:inline-flex;margin-left:15px}.side-toggle{display:none}.side-item .soon{display:none}.subbar{position:static}.subbar-in{gap:8px;min-height:65px}.welcome{padding:28px}.side-nav .side-group{border:0}.layout.collapsed .side-txt{display:initial}.layout.collapsed .side-top{flex-direction:row}.layout.collapsed .side-item{padding:10px 12px}.layout.collapsed .side-foot{padding:8px 0 0;text-align:left}}
@media(max-width:520px){main{padding:16px 12px 32px}.subbar-in{padding:14px 16px}.panel{padding:16px;border-radius:14px}.welcome{padding:24px 20px;border-radius:16px}.welcome h1{font-size:32px}.welcome-actions .btn{width:100%;text-align:left}.grid2{gap:0}.stats{gap:8px}.stat{min-width:100px;padding:12px}.stat b{font-size:25px}.form{grid-template-columns:minmax(0,1fr)}.form label{min-width:0}.form input,.form select,.form textarea{max-width:100%;width:100%}.form label.check input{width:auto}.kv{grid-template-columns:1fr}.modal{padding:20px}.login{margin:6vh 12px;padding:28px;max-width:none}.login h2{font-size:30px}.flt,.combo{min-width:0;max-width:100%}.row>*{max-width:100%}.ym{min-width:150px}.side-foot .row{margin-left:0}.subbar nav{max-width:100%}main>.panel{overflow-x:auto}.bd-grid,.ph-grid{grid-template-columns:minmax(0,1fr)}.welcome .eyebrow{font-size:9px}.overlay{padding:16px 8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}


/* ===== Телефон и узкое окно (до 820px): разделы — по кнопке «☰», шапка компактная ===== */
.side-burger{display:none}
@media(max-width:820px){
  .side,.layout.collapsed .side{position:sticky;top:0;z-index:20;padding:8px 12px;background:var(--panel)}
  .side-top{display:flex;align-items:center;margin:0}
  .side-brand{font-size:20px;padding:6px}
  .side-burger{display:inline-flex;align-items:center;gap:6px;margin-left:auto;border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:8px 12px;font:inherit;font-size:14px;font-weight:600;color:var(--text);cursor:pointer;max-width:62%}
  .side-burger span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .side-nav,.side-foot{display:none}
  .side.open .side-nav{display:block;max-height:70vh;overflow:auto;margin-top:8px}
  .side.open .side-foot{display:block}
  .side.open .side-group{margin:0 0 8px}
  .side.open .side-title{display:block}
  .side.open .side-item{display:flex;width:100%;margin:0}
  .subbar-in{flex-wrap:wrap;min-height:0}
  .subbar nav{display:flex;flex-wrap:nowrap;overflow-x:auto;max-width:100%}
  .subbar nav button{flex:none}
  .row{flex-wrap:wrap}
}
@media(max-width:520px){
  .flt{width:100%}
  .flt select,.flt input,.flt .combo{width:100%;min-width:0;max-width:100%}
  .cal th.name,.cal td.name{min-width:128px;max-width:150px}
  .modal{padding:16px;border-radius:12px}
  .actions{flex-wrap:wrap;gap:8px}
  .tbl-wrap,.cal-wrap{max-height:none}
  .ym{min-width:0}
}
/* вкладки открытых страниц */
.page-tabs{display:flex;gap:4px;padding:8px 16px 0;background:var(--bg);border-bottom:1px solid var(--line);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;position:sticky;top:0;z-index:6}
.ptab{display:flex;align-items:center;gap:6px;flex:none;max-width:220px;padding:7px 8px 7px 12px;border:1px solid transparent;border-bottom:0;border-radius:10px 10px 0 0;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;user-select:none}
.ptab:hover{background:var(--panel);color:var(--text)}
.ptab.active{background:var(--panel);border-color:var(--line);color:var(--accent);margin-bottom:-1px;padding-bottom:8px}
.ptab-ic{display:inline-flex;width:15px;height:15px}.ptab-ic svg{width:15px;height:15px}
.ptab-t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ptab-dot{color:#d97706;font-size:10px}
.ptab-x{border:0;background:none;color:var(--muted);font-size:16px;line-height:1;width:20px;height:20px;border-radius:6px;cursor:pointer;padding:0}
.ptab-x:hover{background:var(--soft);color:var(--text)}
.page-tabs~.subbar{position:static}
@media(max-width:520px){.page-tabs{padding:6px 8px 0}.ptab{max-width:160px;padding:6px 6px 6px 10px}}
/* компактные таблицы: больше столбцов помещается на экране */
th{padding:8px 8px;letter-spacing:.03em;line-height:1.25}
td{padding:7px 8px}
.paytable th{white-space:normal;min-width:56px;vertical-align:bottom}
.paytable td{padding:6px 8px}
/* сворачиваемые группы меню */
.side-title{display:flex;align-items:center;gap:6px;width:100%;border:0;background:none;font:inherit;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);text-align:left;cursor:pointer;border-radius:8px;padding:6px 12px 9px}
.side-title:hover{color:var(--text)}
.side-title .badge{letter-spacing:0}
.side-chev{margin-left:auto;font-size:14px;line-height:1;letter-spacing:0;width:14px;text-align:center}
.layout:not(.collapsed) .side-item.fold-hide{display:none}
/* табель: компактная колонка «Сотрудник» — ФИО и кнопки в одну строку, должность под ними */
.cal.tstable td.name,.cal.tstable th.name{min-width:170px;max-width:210px;padding:3px 8px;line-height:1.2}
.tsname{display:flex;align-items:center;gap:6px;min-width:0}
.tsname a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.tstable .ts-acts{margin:0 0 0 auto;gap:2px;flex:none}
.tstable .ts-acts button{padding:0 5px;font-size:10px;line-height:16px;border-radius:5px}
.tspos{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.tstable td.ts{height:26px}
@media(max-width:620px){.pay-fixed{grid-template-columns:minmax(0,1fr)!important}.pay-fixed p{margin:0!important}}
/* кнопка «Выгрузить» с выбором формата */
.exp-menu{position:relative;display:inline-block}
.exp-menu>summary{list-style:none;cursor:pointer;user-select:none}
.exp-menu>summary::-webkit-details-marker{display:none}
.exp-menu>summary::after{content:' ▾';font-size:11px;opacity:.7}
.exp-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:320px;max-width:calc(100vw - 32px);background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(20,30,60,.14);padding:6px;display:flex;flex-direction:column;gap:2px}
.exp-pop button{border:0;background:none;text-align:left;font:inherit;font-weight:600;color:var(--text);padding:9px 12px;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;gap:2px}
.exp-pop button small{font-weight:400;font-size:12px;color:var(--muted)}
.exp-pop button:hover,.exp-pop button:focus-visible{background:var(--soft)}
/* оплата: доплаты — по столбцу на каждую, сгруппированы шапкой */
.paytable thead{position:sticky;top:0;z-index:4}
.paytable thead th{position:static}
.paytable th.pay-grp{text-align:center;border-bottom:1px solid var(--line)}
.paytable .pay-h2 th{white-space:normal;max-width:120px;font-size:10px;text-transform:none;letter-spacing:0;font-weight:600;overflow:hidden;text-overflow:ellipsis}
.paytable th.pay-per,.paytable td.pay-per{background:#f5f7ff}
.paytable th.pay-one,.paytable td.pay-one{background:#fbf7ff}
.paytable td.pay-acts,.paytable th.pay-acts{width:1%;white-space:nowrap;padding:4px}
.paytable .icon-btn{border:1px solid var(--line);background:var(--panel);border-radius:7px;width:26px;height:26px;cursor:pointer;color:var(--muted);font-size:13px;line-height:1;margin:1px}
.paytable .icon-btn:hover{color:var(--accent);border-color:var(--accent)}
.paytable .pay-h2 th{color:var(--text)}
.paytable th.pay-grp{color:var(--text)}
.paytable th.pay-grp{border-left:2px solid var(--panel)}
/* оплата: доплаты — сумма + комментарий; несколько доплат сворачиваются в «Итого» */
.paytable td.pay-dop{white-space:nowrap}
.paytable td.pay-com{white-space:normal;min-width:180px;max-width:260px}
.pay-tog{border:0;background:none;cursor:pointer;color:var(--accent);font-size:13px;padding:0 6px 0 0;line-height:1}
.paytable tr.pay-sub td{background:#f8f9fd;font-size:13px;padding-top:4px;padding-bottom:4px;border-bottom-color:transparent}
.paytable tr.pay-sub td.pay-com{color:var(--text)}
.pill.sent-wait{background:#e8f0ff;color:#2b56c5}
/* заверение табеля и оплаты, пометки к ЗП, согласования */
.cert-bar{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:var(--soft);border-radius:12px;padding:10px 14px;margin:0 0 12px;font-size:13px}
.cert-bar>div{flex:1}
.cert-bar.ok{background:#e8eefc;border-color:#c9d6f5}
.cert-ic{color:var(--accent);font-weight:700;font-size:16px}
.notes-block{border:1px solid #f1dfa8;background:#fffbea;border-radius:12px;padding:10px 14px;margin:0 0 12px}
.notes-tbl{width:100%;font-size:13px}.notes-tbl td{padding:5px 6px;border-bottom:1px solid #f3e8c4;vertical-align:top}
.pay-note{font-size:11px;font-weight:400;text-align:left;white-space:normal;max-width:260px;margin-top:4px;padding:3px 6px;border-radius:6px}
.pay-note.pend{background:#fff4d6;color:#7a5200}.pay-note.ok{background:#e9f6ee;color:#1d6b43}
.pay-note-acts{display:inline-flex;gap:2px;margin-left:4px;vertical-align:middle}.pay-note .icon-btn{width:22px;height:22px;font-size:11px}
.req-tbl td{vertical-align:top}.req-tbl tr.req-done td{opacity:.75}
.req-ops summary{cursor:pointer;color:var(--accent);font-size:12px}.req-ops div{font-size:12px;color:var(--muted)}
.chip-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.chip-line .client-chip{margin:0}
.sign-kv{grid-template-columns:minmax(200px,280px) 1fr;row-gap:14px}
.icon-btn{border:1px solid var(--line);background:var(--panel);border-radius:7px;width:26px;height:26px;cursor:pointer;color:var(--muted);font-size:13px;line-height:1;margin:1px}
.icon-btn:hover{color:var(--accent);border-color:var(--accent)}
.pill.rejected{background:#fde4e2;color:#b3372f}
/* окна подтверждения Workly, всплывающие подсказки, жёлтая плашка согласований */
.overlay.dlg-layer{z-index:60}
.dlg-reason{display:flex;flex-direction:column;gap:6px;font-size:13px;margin-top:6px}
.dlg-reason textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font:inherit}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#2b2f3a;color:#fff;padding:10px 18px;border-radius:12px;font-size:14px;z-index:80;box-shadow:0 8px 24px rgba(0,0,0,.2);max-width:min(560px,92vw);transition:opacity .4s}
.toast.out{opacity:0}
.cert-note{margin:0;font-size:13px}
.approve-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff4c2;border-bottom:1px solid #f1d77a;padding:9px 20px;font-size:14px;color:#5f4500}
.approve-banner>span{flex:1}.approve-banner .muted{color:#8a6d1a}
/* стрелка «развернуть доплаты» — заметная кнопка */
.pay-tog{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-right:8px;vertical-align:middle;border:1px solid var(--accent);border-radius:7px;background:#f1edff;color:var(--accent);cursor:pointer;padding:0;transition:transform .15s}
.pay-tog:hover{background:var(--accent);color:#fff}
.pay-tog svg{transition:transform .15s}.pay-tog.open svg{transform:rotate(90deg)}
/* окно «+» в оплате: переключатель «Доплата / Удержание» и блок итога в акте */
.seg-toggle{display:inline-flex;border:1px solid var(--line);border-radius:12px;padding:3px;gap:3px;background:var(--soft);width:max-content}
.seg-toggle label{cursor:pointer;margin:0}
.seg-toggle input{position:absolute;opacity:0;pointer-events:none}
.seg-toggle span{display:block;padding:7px 18px;border-radius:9px;font-weight:600;color:var(--muted)}
.seg-toggle input:checked+span{background:var(--panel);color:var(--text);box-shadow:0 1px 4px rgba(20,30,60,.12)}
.seg-toggle input:focus-visible+span{outline:2px solid var(--accent)}
.seg-toggle label:last-child input:checked+span{color:#b3372f}
.act-sum{border:1px solid #f1dfa8;background:#fffbea;border-radius:10px;padding:10px 12px;font-size:13px;display:flex;flex-direction:column;gap:6px}
/* «Оплата» и «Табель»: колонка «Сотрудник» закреплена слева при прокрутке таблицы вбок */
.paytable tr>:first-child{position:sticky;left:0;z-index:2;background:var(--panel);box-shadow:inset -1px 0 0 var(--line)}
.paytable tr:first-child>th:first-child{z-index:5;background:var(--soft,#f6f7fb)}
.paytable tr.pay-zero>:first-child{background:#fbfbfd}
.paytable tr.pay-sub>:first-child{background:#f8f9fd}
.paytable tr.pay-sum>:first-child{background:var(--bg)}
.cal.tstable td.name{position:sticky;left:0;z-index:2;background:var(--panel);box-shadow:inset -1px 0 0 var(--line)}
.cal.tstable tr:first-child>th.name{position:sticky;left:0;top:0;z-index:5;box-shadow:inset -1px 0 0 var(--line)}
.paytable tr.pay-zero>td:first-child{opacity:1;color:#9aa0ae}.paytable tr.pay-zero>td:first-child a{color:#9aa0ae}
.paytable tr>:first-child{box-shadow:-6px 0 0 var(--panel),inset -1px 0 0 var(--line)}
.paytable tr:first-child>th:first-child{box-shadow:-6px 0 0 var(--soft,#f6f7fb),inset -1px 0 0 var(--line)}
.paytable tr.pay-sum>:first-child{box-shadow:-6px 0 0 var(--bg),inset -1px 0 0 var(--line)}
.cal.tstable td.name{box-shadow:-6px 0 0 var(--panel),inset -1px 0 0 var(--line)}
.pill.sent-wait,.pill.pending{background:#fff3d6;color:#765000}
.pill.approved,.pill.status-done{background:#e8f4ec;color:#246a49}
.pill.rejected,.pill.status-error{background:#fae9eb;color:#9f293a}
.pill.status-draft{background:#edf0f6;color:#59647d}
.pill.status-waiting{background:#fff3d6;color:#765000}
.pill.status-done{background:#e8f4ec;color:#246a49}
.paytable tr>:first-child,.acts tr>:first-child,.acts tr>:nth-child(2),.creg tr>:first-child{position:sticky;left:0;z-index:2;background:var(--panel);box-shadow:-6px 0 0 var(--panel),inset -1px 0 0 var(--line)}
.acts tr>:nth-child(2){left:42px;z-index:2}
.paytable tr:first-child>:first-child,.acts tr:first-child>:first-child,.acts tr:first-child>:nth-child(2),.creg tr:first-child>:first-child{z-index:5;background:var(--soft)}
.mobile-cards{display:none}
@media(max-width:700px){
  .tbl-wrap:has(> table.paytable),.tbl-wrap:has(> table.acts),.tbl-wrap:has(> table.ctable),.tbl-wrap:has(> table.creg){overflow:visible;max-height:none}
  .tbl-wrap>table.paytable,.tbl-wrap>table.acts,.tbl-wrap>table.ctable,.tbl-wrap>table.creg{display:block;width:100%;min-width:0}
  .tbl-wrap>table.paytable>tr:first-child,.tbl-wrap>table.acts>tr:first-child,.tbl-wrap>table.ctable>tr:first-child,.tbl-wrap>table.creg>tr:first-child{display:none}
  .tbl-wrap>table.paytable>tr:not(:first-child),.tbl-wrap>table.acts>tr:not(:first-child),.tbl-wrap>table.ctable>tr:not(:first-child),.tbl-wrap>table.creg>tr:not(:first-child){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;margin:0 0 10px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow)}
  .tbl-wrap>table.paytable>tr>td,.tbl-wrap>table.acts>tr>td,.tbl-wrap>table.ctable>tr>td,.tbl-wrap>table.creg>tr>td{display:block;min-width:0;padding:8px 6px;border:0;border-bottom:1px solid var(--line);white-space:normal!important;overflow-wrap:anywhere;background:transparent!important;box-shadow:none!important}
  .tbl-wrap>table.paytable>tr>td::before,.tbl-wrap>table.acts>tr>td::before,.tbl-wrap>table.ctable>tr>td::before,.tbl-wrap>table.creg>tr>td::before{content:attr(data-label);display:block;margin-bottom:3px;color:var(--muted);font-size:10px;font-weight:650;letter-spacing:.04em;text-transform:uppercase}
  .tbl-wrap>table.paytable>tr>td[data-label="Итого к оплате"],.tbl-wrap>table.acts>tr>td[data-label="Статус"],.tbl-wrap>table.ctable>tr>td[data-label="Статус"]{font-weight:650}
  .tbl-wrap>table.paytable>tr.pay-sum,.tbl-wrap>table.paytable>tr.pay-sub{display:none}
  .tbl-wrap>table.ctable>tr.am-row{grid-template-columns:1fr}
  .tbl-wrap>table.acts>tr>td:last-child,.tbl-wrap>table.ctable>tr:not(.am-row)>td:last-child{grid-column:1/-1;display:flex;align-items:center;justify-content:flex-end;gap:6px}
  .tbl-wrap>table.creg>tr.grp{display:block;padding:8px 12px;background:var(--soft);border-radius:8px}
  .tbl-wrap>table.creg>tr.grp>td{padding:0;border:0;background:transparent!important;font-weight:700}
  .tbl-wrap>table.creg>tr.grp>td::before{content:none}
  .mobile-calendar-summary{display:grid;gap:8px;margin-bottom:12px}
  .mobile-calendar-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
  .mobile-calendar-card .mc-name{font-weight:650}.mobile-calendar-card .mc-metrics{grid-column:1/-1;color:var(--muted);font-size:12px}
  .mobile-calendar-card .mc-comment{grid-column:1/-1;font-size:12px;overflow-wrap:anywhere}
  .mobile-calendar-details>summary{cursor:pointer;padding:12px 14px;margin-bottom:8px;border:1px solid var(--line);border-radius:10px;color:var(--accent);font-weight:600}
  .mobile-calendar-details:not([open]) .cal-wrap{display:none}
}
.mobile-calendar-summary{display:none}
.mobile-calendar-details{display:contents}
.mobile-calendar-details>summary{display:none}
.mobile-calendar-details:not([open])>.cal-wrap{display:block}
.pay-mobile{display:none}
.pay-mobile-card{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow);margin-bottom:10px}
.pay-mobile-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;font-size:14px}
.pay-mobile-top strong{font-size:16px;white-space:nowrap}
.pay-mobile-meta{margin:5px 0 9px;color:var(--muted);font-size:12px}
.pay-mobile-card details{border-top:1px solid var(--line);padding-top:8px}
.pay-mobile-card summary{cursor:pointer;color:var(--accent);font-size:12px;font-weight:600}
.pay-mobile-details{display:grid;gap:7px;padding-top:8px;font-size:12px}
.pay-mobile-item{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:6px 8px;background:var(--soft);border-radius:8px}
@media(max-width:700px){
  .mobile-calendar-details{display:block}
  .mobile-calendar-details>summary{display:block}
  .mobile-calendar-details:not([open])>.cal-wrap{display:none}
  .mobile-calendar-summary{display:grid}
  .pay-desktop{display:none}
  .pay-mobile{display:block}
}
/* подсказка на датах годового календаря отпусков */
.cal-tip{position:fixed;z-index:90;max-width:320px;background:#2b2f3a;color:#fff;border-radius:10px;padding:8px 11px;font-size:12.5px;line-height:1.35;box-shadow:0 8px 24px rgba(0,0,0,.25);pointer-events:none}
.cal-tip .tip-h{font-weight:700;margin-bottom:4px}
.cal-tip .tip-row{display:flex;gap:7px;align-items:flex-start;margin-top:5px}
.cal-tip .tip-row i{flex:none;width:10px;height:10px;border-radius:3px;margin-top:3px}
.cal-tip .tip-row em{color:#ffd479;font-style:normal}
.cal-tip .tip-none{color:#c5c9d4}
/* верхняя строка: вкладки + поиск и колокольчик */
.topbar{display:flex;align-items:flex-end;gap:8px;position:sticky;top:0;z-index:6;background:var(--bg);border-bottom:1px solid var(--line);padding-right:12px}
.topbar .page-tabs{position:static;border-bottom:0;flex:1;min-width:0}
.topbar-tools{display:flex;align-items:center;gap:8px;padding:6px 0;flex:none}
/* «Требует внимания» */
.att-list{display:flex;flex-direction:column;gap:6px}
.att-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.att-row.lvl-overdue{border-color:#e7b4b4;background:#fff7f7}
.att-row.lvl-soon{border-color:#ead8a7;background:#fffbf0}
.att-row.lvl-normal{border-color:#c9d6f5}
.att-row.lvl-info{border-color:var(--line)}
.att-title{font-weight:600;font-size:14px}
.att-sub{font-size:12.5px;color:var(--muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.att-meta{display:flex;flex-direction:column;align-items:flex-end;gap:3px;font-size:12px;white-space:nowrap}
.att-cat{color:var(--muted)}
.lvl-overdue .att-due{color:#c53030;font-weight:600}.lvl-soon .att-due{color:#a76800;font-weight:600}.att-due{color:var(--muted)}
.att-acts{display:flex;gap:4px;align-items:center}
.att-chips{display:flex;flex-wrap:wrap;gap:6px}
.att-chip{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:5px 12px;font:inherit;font-size:13px;cursor:pointer;color:var(--text)}
.att-chip b{color:var(--muted);font-weight:600;margin-left:2px}
.att-chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.att-chip.on b{color:#fff}
.att-list.compact .att-row{padding:8px 10px 8px 12px}
@media(max-width:700px){.att-row{grid-template-columns:1fr}.att-meta{align-items:flex-start;flex-direction:row;gap:10px}}
/* колокольчик */
.bell-menu{position:relative}
.bell-menu>summary{list-style:none}.bell-menu>summary::-webkit-details-marker{display:none}
.bell-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);cursor:pointer}
.bell-btn:hover{border-color:var(--accent);color:var(--accent)}
.bell-badge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}
.bell-btn.over .bell-badge{background:#d64545}
.bell-pop{position:absolute;right:0;top:calc(100% + 8px);z-index:40;width:min(460px,calc(100vw - 24px));max-height:70vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 40px rgba(20,30,60,.18);padding:12px}
.bell-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
/* общий поиск */
.gsearch{position:relative;display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:0 8px;height:36px;width:min(340px,40vw);color:var(--muted)}
.gsearch:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(99,82,214,.12)}
.gsearch input{border:0;outline:0;background:none;font:inherit;font-size:13.5px;flex:1;min-width:0;color:var(--text)}
.gsearch kbd{font:600 11px/1 system-ui,sans-serif;border:1px solid var(--line);border-radius:5px;padding:3px 5px;color:var(--muted);background:var(--soft)}
.gs-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:45;width:min(480px,calc(100vw - 24px));max-height:65vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 40px rgba(20,30,60,.18);padding:6px}
.gs-g{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:8px 10px 4px}
.gs-item{display:flex;flex-direction:column;gap:1px;padding:7px 10px;border-radius:8px;cursor:pointer}
.gs-item b{font-weight:600;font-size:13.5px;color:var(--text)}.gs-item span{font-size:12px;color:var(--muted)}
.gs-item.on,.gs-item:hover{background:var(--soft)}
.gs-empty{padding:12px;color:var(--muted);font-size:13px}
@media(max-width:820px){.gsearch kbd{display:none}.gsearch{width:min(220px,46vw)}}
/* панель фильтров: сохранённые, активные условия, сброс */
.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:-4px 0 12px}
.fchip{display:inline-flex;align-items:center;gap:4px;background:var(--accent-weak);color:var(--accent);border-radius:999px;padding:3px 4px 3px 11px;font-size:12.5px}
.fchip b{font-weight:600}
.fchip button{border:0;background:rgba(23,70,200,.12);color:var(--accent);width:22px;height:22px;border-radius:50%;cursor:pointer;font-size:10px;line-height:1;padding:0}
.fchip button:hover{background:var(--accent);color:#fff}
.freset{border-color:#e7b4b4;color:#b3372f}.freset:hover{background:#fdecec}
.fsaved .exp-pop{min-width:280px}
.fsaved-row{display:flex;align-items:center;gap:4px}.fsaved-row>button:first-child{flex:1}
/* «Фильтры ▾»: заказчик, проект, должность — в выпадающей панели */
.more-filters{position:relative}
.more-filters>summary{list-style:none;cursor:pointer;user-select:none;white-space:nowrap}
.more-filters>summary::-webkit-details-marker{display:none}
.more-filters>summary::after{content:' ▾';font-size:11px;opacity:.7}
.more-filters>summary.on{background:var(--accent-weak);border-color:var(--accent);color:var(--accent)}
.mf-pop{position:absolute;left:0;top:calc(100% + 6px);z-index:35;min-width:300px;max-width:calc(100vw - 24px);background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(20,30,60,.16);padding:12px;display:flex;flex-direction:column;gap:10px}
.mf-pop .flt{display:flex;flex-direction:column;align-items:stretch;gap:4px;margin:0}
.mf-pop .flt select{width:100%;min-width:0}
.mf-acts{display:flex;justify-content:flex-end;gap:6px}
.seg-toggle.sm span{padding:5px 12px;font-size:13px}

/* Workly refresh: one calm workspace system, with blue for action and red for emphasis. */
:root{
  --bg:#f4f6fa;--panel:#fff;--text:#151922;--muted:#626b7a;--line:#e2e6ee;
  --accent:#1746c8;--accent-hover:#123aa8;--accent-weak:#edf2ff;
  --brand-spark:#df3f48;--danger:#c7353d;--ok:#1746c8;--warn:#8a5b17;
  --soft:#f7f8fb;--radius:16px;--radius-control:10px;
  --shadow:0 1px 2px rgba(20,30,55,.04),0 8px 24px rgba(20,30,55,.035);
  --focus:#1746c8;--hero-bg:#fff;--hero-border:#e1e6f0;
  --hero-label:#c7353d;--hero-copy:#505a6b;--hero-button-border:#d4dbea;
}
body{background:var(--bg);color:var(--text);font-family:Inter,"Avenir Next","Segoe UI",-apple-system,BlinkMacSystemFont,Arial,sans-serif;letter-spacing:-.012em}
.side{background:#fff;border-right:1px solid var(--line);padding:20px 14px}
.side-top{margin-bottom:22px}.side-brand{font-size:24px;letter-spacing:-.06em}
.side-group{margin-top:20px}.side-title{font-size:10px;letter-spacing:.12em;color:#798293}
.side-item{min-height:42px;margin:2px 0;padding:10px 12px;border-radius:10px;font-size:13px}
.side-item.active{background:var(--accent-weak);box-shadow:inset 3px 0 var(--accent);color:var(--accent)}
.side-item:hover:not(:disabled){background:#f2f5fc}
.side-foot{border-top:1px solid var(--line)}
.subbar{background:rgba(255,255,255,.94);backdrop-filter:blur(14px)}
.subbar-in{min-height:72px;padding:14px 32px;max-width:1500px}
.subbar h2{font-size:18px;letter-spacing:-.04em}
main{max-width:1500px;padding:28px 32px 52px}
h1,h2,h3,h4{color:var(--text)}h2{font-size:22px;letter-spacing:-.045em}h3{font-size:16px;letter-spacing:-.025em}
.panel{border:1px solid var(--line);border-radius:16px;padding:22px;background:#fff;box-shadow:var(--shadow);margin-bottom:16px}
.btn{min-height:40px;border-radius:10px;padding:9px 15px;font-weight:600}
.btn.primary{background:var(--accent);border-color:var(--accent);box-shadow:0 2px 4px rgba(23,70,200,.16)}
.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.btn.danger{color:var(--danger)}
.welcome{min-height:270px;padding:40px 42px;margin-bottom:22px;border:1px solid var(--hero-border);border-radius:20px;background:linear-gradient(110deg,#fff 0%,#f7f9ff 75%,#f8f3f4 100%);box-shadow:var(--shadow)}
.welcome::after{content:"";position:absolute;top:0;right:0;width:5px;height:100%;background:linear-gradient(180deg,var(--accent) 0 72%,var(--brand-spark) 72%);border-radius:0 20px 20px 0}
.welcome>div:first-child{max-width:760px}
.welcome .eyebrow{font-size:14px;line-height:1.4;font-weight:650;letter-spacing:-.01em;text-transform:none;color:var(--hero-label);margin-bottom:18px}
.welcome h1{font-size:clamp(34px,4vw,52px);line-height:1.06;letter-spacing:-.065em;font-weight:650;margin-bottom:14px}
.welcome p{font-size:15px;line-height:1.55;max-width:54ch;margin-bottom:24px}
.welcome-art{display:none}
.welcome-actions{gap:9px}.welcome-actions .btn{min-height:42px}
.home-shortcuts{gap:12px;margin-bottom:16px}
.home-shortcut{min-height:96px;border-radius:14px;padding:16px 18px;box-shadow:none}
.home-shortcut-title{font-size:14px;letter-spacing:-.015em}
.home-shortcut:first-child{background:var(--accent);border-color:var(--accent)}
.home-shortcut:hover{transform:translateY(-2px);border-color:#bcc9eb;background:#f8faff}
.home-shortcut:first-child:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.stats{gap:10px}.stat{border-radius:12px;padding:15px 16px;background:#f7f8fb;border-color:#e9ecf2}
.stat b{font-size:28px}.stat.hl{background:var(--accent-weak);color:#183b9f}
.dash-row{border-bottom:1px solid #edf0f4;padding:10px 0}.dash-row:last-child{border-bottom:0}
th{background:#f6f7fa;color:#596272;font-size:10px;letter-spacing:.08em;border-bottom:1px solid var(--line)}
td{border-bottom-color:#edf0f4}tr.click:hover td{background:#f7f9fd}
.pill{border-radius:999px;padding:4px 9px;font-size:11px}
.pill.pending,.pill.sent-wait,.pill.status-waiting{background:#fff2d8;color:#77531a}
.pill.approved,.pill.status-done{background:#eaf0ff;color:#24479e}
.pill.rejected,.pill.status-error{background:#fdebed;color:#963d40}
.pill.status-draft{background:#f0f2f5;color:#596272}
.form input,.form select,.form textarea,.flt select,.combo-in{border-radius:10px;border-color:#d8deea;background:#fff}
.overlay{background:rgba(18,24,36,.48);backdrop-filter:blur(6px)}
.modal{border-radius:18px;box-shadow:0 28px 80px rgba(16,24,40,.24)}
.todo{border:1px solid var(--line);background:#fafbfc}
.todo.urgent{background:#fff8e8;border-color:#f0dfb6}
.note{background:#fff8e8;border-color:#f0dfb6;color:#755317}
.gsearch:focus-within,.combo-in:focus,.form input:focus,.form textarea:focus,.flt select:focus{box-shadow:0 0 0 3px rgba(23,70,200,.13);border-color:var(--accent)}
.tbl-wrap,.cal-wrap,.cal-scroll{scrollbar-color:#aab3c2 #f1f3f6}
.tbl-wrap::-webkit-scrollbar-track,.cal-wrap::-webkit-scrollbar-track,.tl::-webkit-scrollbar-track,.cal-scroll::-webkit-scrollbar-track{background:#f1f3f6}
.tbl-wrap::-webkit-scrollbar-thumb,.cal-wrap::-webkit-scrollbar-thumb,.tl::-webkit-scrollbar-thumb,.cal-scroll::-webkit-scrollbar-thumb{background:#aab3c2;border-color:#f1f3f6}
@media(max-width:1100px){main{padding:24px}.welcome{padding:32px}.subbar-in{padding:14px 24px}}
@media(max-width:820px){.side,.layout.collapsed .side{background:#fff}.welcome{min-height:0;padding:28px 24px}.welcome::after{width:4px}}
@media(max-width:520px){main{padding:16px 12px 32px}.welcome{padding:24px 20px;border-radius:16px}.welcome h1{font-size:34px}.welcome .eyebrow{font-size:13px}.panel{padding:16px;border-radius:14px}.home-shortcut{border-radius:12px}}
.side-brand .logo{filter:none}

/* Главная: синий акцент в приветствии, светлая зона для личных и командных показателей. */
.welcome2{display:flex;align-items:stretch;justify-content:space-between;gap:14px;position:relative;overflow:hidden;isolation:isolate;
  min-height:250px;padding:11px;margin-bottom:14px;border:1px solid #e2e7f0;border-radius:23px;
  background:linear-gradient(112deg,#f2f5ff 0%,#fff 64%,#fff5f5 100%);box-shadow:0 12px 32px rgba(22,38,77,.08)}
.welcome2::before{content:"";position:absolute;z-index:-1;pointer-events:none;right:12%;top:-260px;width:430px;height:430px;border-radius:50%;background:rgba(46,94,220,.055)}
.welcome2::after{content:"";position:absolute;z-index:-1;pointer-events:none;right:-80px;bottom:-190px;width:310px;height:310px;border-radius:50%;border:34px solid rgba(225,68,77,.12)}
.w2-main{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;flex:1.08;min-width:0;padding:26px 30px;border-radius:18px;color:#fff;
  background:linear-gradient(122deg,#173fab 0%,#2458dc 72%,#356cf0 100%);overflow:hidden}
.w2-main::after{content:"";position:absolute;right:-70px;top:-145px;width:245px;height:245px;border:26px solid rgba(255,255,255,.1);border-radius:50%;pointer-events:none}
.w2-date{position:relative;z-index:1;font-size:12px;color:#dce6ff;margin-bottom:8px;letter-spacing:.015em}
.welcome2 h1{position:relative;z-index:1;font-size:clamp(34px,3.4vw,46px);line-height:1.04;letter-spacing:-.06em;font-weight:700;margin:0 0 20px;color:#fff}
.w2-acts{position:relative;z-index:1;display:flex;gap:9px;flex-wrap:wrap}
.welcome2 .w2-acts .btn{min-height:42px;border-radius:10px}
.welcome2 .w2-acts .btn.primary{background:#fff;border-color:#fff;color:#153da9;box-shadow:0 4px 12px rgba(8,26,83,.2)}
.welcome2 .w2-acts .btn.primary:hover{background:#f3f6ff;border-color:#f3f6ff;transform:translateY(-1px)}
.welcome2 .w2-acts .btn:not(.primary){background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.52);color:#fff}
.welcome2 .w2-acts .btn:not(.primary):hover{background:rgba(255,255,255,.16);border-color:#fff}
.w2-kpis{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:9px;flex:.92;min-width:0;padding:10px 8px}
.wk{display:flex;flex:1;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;min-width:0;min-height:105px;padding:14px 13px;border:1px solid #e4e8f0;border-radius:14px;
  background:rgba(255,255,255,.96);color:var(--text);box-shadow:0 5px 16px rgba(22,38,77,.07);cursor:pointer;text-align:left;font:inherit;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.wk:nth-child(2){transform:translateY(-8px)}
.wk:hover{transform:translateY(-4px);border-color:#c6d2ee;box-shadow:0 10px 22px rgba(22,38,77,.12)}
.wk:nth-child(2):hover{transform:translateY(-12px)}
.wk b{font-size:30px;line-height:1;font-weight:750;letter-spacing:-.055em;font-variant-numeric:tabular-nums;color:#171a22}
.wk span{font-size:11px;color:#626b7a;line-height:1.35}
.wk.hot{border-top:3px solid var(--brand-spark)}
.wk.hot b,.wk.warm b{color:var(--brand-spark)}
.wk:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.motivation-card{display:flex;align-items:center;gap:17px;position:relative;overflow:hidden;padding:17px 20px;margin-bottom:18px;border:1px solid #e3e7ef;border-radius:17px;
  background:linear-gradient(110deg,#eef3ff 0%,#fff 58%,#fff1f2 100%);box-shadow:0 5px 16px rgba(22,38,77,.045)}
.motivation-quote-mark{flex:none;width:42px;color:var(--brand-spark);font:700 68px/.8 Georgia,serif;text-align:center;transform:translateY(7px)}
.motivation-copy{flex:1;min-width:0}
.motivation-label,.thought-label{font-size:10px;font-weight:750;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.motivation-copy h2{font-size:19px;line-height:1.25;letter-spacing:-.025em;margin:4px 0 7px;color:var(--text)}
.thought-label{font-size:9px;color:var(--muted);letter-spacing:.1em}
.motivation-copy p{font-size:13px;line-height:1.4;margin:2px 0 0;color:#4f5868;font-style:italic}
.motivation-next{display:inline-flex;align-items:center;gap:7px;flex:none;padding:9px 12px;border:1px solid #d7deed;border-radius:10px;background:rgba(255,255,255,.78);color:var(--accent);font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:background .16s,border-color .16s,color .16s,transform .16s}
.motivation-next:hover{background:#fff;border-color:var(--accent);color:var(--accent-hover);transform:translateY(-1px)}
@media(max-width:1050px){.welcome2{gap:10px;padding:9px}.w2-main{padding:23px}.w2-kpis{gap:7px;padding:8px 4px}.wk{padding:12px 10px}.wk span{font-size:10px}}
@media(max-width:760px){.welcome2{display:block;padding:9px}.w2-main{min-height:210px;padding:24px 22px}.w2-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:8px;padding:8px 2px 2px}.wk,.wk:nth-child(2){min-width:0;min-height:88px;transform:none;padding:11px}.wk:hover,.wk:nth-child(2):hover{transform:translateY(-2px)}.wk b{font-size:27px}}
@media(max-width:520px){.welcome2{border-radius:18px}.w2-main{padding:22px 18px;border-radius:14px}.welcome2 h1{font-size:36px}.w2-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.wk:last-child{grid-column:1/-1;min-height:72px}.wk span{font-size:11px}.motivation-card{align-items:flex-start;gap:10px;padding:15px 14px}.motivation-quote-mark{width:26px;font-size:52px}.motivation-copy h2{font-size:16px}.motivation-next{align-self:center;width:38px;height:38px;padding:0;justify-content:center}.motivation-next span{position:absolute;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden}}
@media(prefers-reduced-motion:reduce){.wk,.motivation-next{transition:none}}
/* Shared action colors retained across every section. */
.btn.ok{color:var(--accent);background:var(--accent-weak);border-color:transparent}
.home-shortcut:first-child{color:#fff}
.home-shortcut:first-child .home-shortcut-title{color:#fff}
.home-shortcut:first-child .home-shortcut-title span{color:#ffd9d9}
.home-shortcut:first-child .home-shortcut-desc{color:#e7edff}
.toast{background:#171a22}
.actions{align-items:center}
/* Final polish: the same compact control, status colors and dashboard voice across roles. */
.pill.pending,.pill.sent-wait,.pill.status-waiting{background:#fff2d8;color:#77531a}
.pill.approved,.pill.status-done{background:#eaf0ff;color:#24479e}
.pill.rejected,.pill.status-error{background:#fdebed;color:#963d40}
.pill.status-draft{background:#f0f2f5;color:#596272}
.att-row.lvl-overdue{border-color:#f0c6ca;background:#fff8f8}
.att-row.lvl-soon{border-color:#f0dfb6;background:#fffaf0}
.att-row.lvl-normal{border-color:#d7e1fa;background:#fbfcff}
.topbar-tools{gap:7px}
@media(max-width:520px){
  .topbar-tools{gap:5px}
}

/* доплата/удержание по пометке, ждёт подтверждения ответственного: в итог не входит */
.pay-pend{color:var(--muted);font-style:italic;border-bottom:1px dashed currentColor}
.icon-btn.ok{color:var(--accent)}

/* «Требует подтверждения» — жёлтая плашка ответственного за оплату */
.confirm-banner{background:#fff4c2;border-bottom:1px solid #f1d77a;color:#5f4500;font-size:14px}
.confirm-banner>summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:9px 20px;cursor:pointer;list-style:none}
.confirm-banner>summary::-webkit-details-marker{display:none}
.confirm-banner .muted{color:#8a6d1a}
.cb-more{font-size:13px;text-decoration:underline;color:#8a6d1a}
.cb-list{padding:0 20px 10px;display:grid;gap:4px;max-height:50vh;overflow:auto}
.cb-row{display:grid;grid-template-columns:minmax(140px,180px) minmax(90px,120px) 1fr auto;gap:12px;align-items:center;background:rgba(255,255,255,.65);border:1px solid #f1d77a;border-radius:10px;padding:6px 10px}
.cb-who{display:flex;flex-direction:column;line-height:1.25}.cb-who .muted{font-size:12px}
.cb-sum{font-weight:650;font-variant-numeric:tabular-nums;text-align:right}
.cb-what{font-size:13px;min-width:0}.cb-acts{display:flex;gap:4px;align-items:center}
.warn-note{background:#fff4c2;border-color:#f1d77a;color:#5f4500}
.my-pay{width:100%;max-width:520px;border-collapse:collapse}.my-pay td{padding:5px 8px;border-bottom:1px solid var(--line)}
@media(max-width:700px){.cb-row{grid-template-columns:1fr auto}.cb-what{grid-column:1/-1}.cb-acts{grid-column:1/-1}}

/* ===== Мои задачи: доска, календарь, список ===== */
.todo-board{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:14px;align-items:start}
.todo-col{background:var(--soft,#f7f8fb);border:1px solid var(--line);border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:180px;transition:background .15s,border-color .15s}
.todo-col header{display:flex;align-items:center;gap:8px;padding:2px 4px}
.todo-col header b{font-size:14px}.todo-col header .icon-btn{margin-left:auto}
.todo-n{font-size:12px;color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:0 8px;line-height:18px}
.todo-col.col-doing{background:color-mix(in srgb,var(--accent) 5%,var(--soft,#f7f8fb))}
.todo-col.col-done{background:color-mix(in srgb,#2e9d62 5%,var(--soft,#f7f8fb))}
.todo-cards{display:flex;flex-direction:column;gap:8px;min-height:40px}
.todo-empty{font-size:12px;color:var(--muted);text-align:center;padding:14px 6px;border:1px dashed var(--line);border-radius:10px}
.drop-on{border-color:var(--accent)!important;background:var(--accent-weak)!important}
.todo-card{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:9px 10px;cursor:pointer;box-shadow:0 1px 2px rgba(20,30,55,.04);transition:box-shadow .15s,transform .15s,border-color .15s}
.todo-card:hover{box-shadow:0 6px 16px rgba(20,30,55,.08);border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}
.todo-card.dragging{opacity:.45;transform:rotate(1.5deg)}
.todo-card.done .todo-card-t span{text-decoration:line-through;color:var(--muted)}
.todo-card.lvl-overdue{border-left:3px solid var(--danger)}.todo-card.lvl-soon{border-left:3px solid #e0a020}
.todo-card-t{display:flex;gap:8px;align-items:flex-start;font-size:14px;line-height:1.35;word-break:break-word}
.todo-check{flex:none;width:17px;height:17px;margin-top:1px;border-radius:50%;border:1.6px solid color-mix(in srgb,var(--muted) 70%,transparent);background:var(--panel);cursor:pointer;padding:0;position:relative}
.todo-check:hover{border-color:#2e9d62;background:color-mix(in srgb,#2e9d62 10%,var(--panel))}
.todo-check.on{background:#2e9d62;border-color:#2e9d62}
.todo-check.on::after{content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.todo-meta{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:7px;padding-left:25px;font-size:12px;color:var(--muted)}
.todo-meta span{display:inline-flex;align-items:center;gap:3px}.todo-meta svg{width:13px;height:13px}
.todo-due.soon{color:#a86b00;font-weight:600}.todo-due.overdue{color:var(--danger);font-weight:600}
.todo-label{display:inline-block;font-size:11px;font-weight:600;border-radius:6px;padding:1px 7px;margin-bottom:5px;color:#fff;background:#8a93a6}
.lb-red{--lb:#d64545}.lb-amber{--lb:#d98a10}.lb-blue{--lb:#2f6fdc}.lb-green{--lb:#2e9d62}.lb-violet{--lb:#8a5cd1}
.todo-label[class*="lb-"]{background:var(--lb)}
.todo-quick{width:100%;border:1px dashed var(--line);background:transparent;border-radius:10px;padding:8px 10px;font:inherit;font-size:13px;color:var(--text)}
.todo-quick:focus{outline:none;border-style:solid;border-color:var(--accent);background:var(--panel)}
/* календарь */
.todo-cal{border:1px solid var(--line);border-radius:14px;overflow:hidden}
.tc-wd,.tc-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.tc-wd span{font-size:12px;color:var(--muted);padding:6px 8px;background:var(--soft,#f7f8fb);border-bottom:1px solid var(--line)}
.tc-day{min-height:104px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:4px 5px;display:flex;flex-direction:column;gap:3px;background:var(--panel)}
.tc-day:nth-child(7n){border-right:0}.tc-day.tc-we{background:color-mix(in srgb,var(--soft,#f7f8fb) 70%,var(--panel))}.tc-day.out{opacity:.5}
.tc-head{display:flex;align-items:center}.tc-num{font-size:12px;font-weight:600;width:22px;height:22px;display:inline-grid;place-items:center;border-radius:50%}
.tc-day.today .tc-num{background:var(--accent);color:#fff}
.tc-add{margin-left:auto;border:0;background:none;color:var(--muted);font-size:16px;line-height:1;cursor:pointer;opacity:0;padding:0 4px}
.tc-day:hover .tc-add{opacity:1}
.tc-item{font-size:12px;line-height:1.3;padding:3px 6px;border-radius:6px;background:var(--accent-weak);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;border-left:3px solid var(--lb,var(--accent))}
.tc-item.done{opacity:.55;text-decoration:line-through}.tc-item.lvl-overdue{background:color-mix(in srgb,var(--danger) 12%,var(--panel))}.tc-item.lvl-soon{background:#fff1cc}
.tc-more{border:0;background:none;color:var(--accent);font-size:12px;text-align:left;cursor:pointer;padding:0 4px}
/* список */
.todo-group{margin-bottom:14px}.todo-group-h,.todo-group>summary{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:14px;cursor:default}
.todo-group>summary{cursor:pointer}.todo-group.g-over .todo-group-h b{color:var(--danger)}
.todo-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;margin-bottom:5px;background:var(--panel);cursor:pointer}
.todo-row:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}
.todo-row.done .todo-row-t{text-decoration:line-through;color:var(--muted)}
.todo-row-t{flex:1;min-width:0;font-size:14px}.todo-row-t .todo-label{margin:0 0 0 6px}
.todo-row-m{display:flex;gap:10px;font-size:12px;color:var(--muted);white-space:nowrap}
.todo-st{background:var(--soft,#f7f8fb);border-radius:6px;padding:0 6px}
/* окно задачи */
.todo-chk-row{display:flex;align-items:center;gap:8px;margin-bottom:5px}.todo-chk-row .combo-in{flex:1;min-width:0}
/* плашка «Задачи на сегодня» */
.todo-strip{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:7px 20px;background:color-mix(in srgb,var(--accent) 7%,var(--panel));border-bottom:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));font-size:13px}
.todo-strip.has-over{background:color-mix(in srgb,var(--danger) 7%,var(--panel));border-bottom-color:color-mix(in srgb,var(--danger) 25%,var(--line))}
.ts-items{display:flex;gap:8px;flex-wrap:wrap;flex:1;min-width:0}
.ts-item{display:inline-flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:3px 10px 3px 5px;max-width:100%}
.ts-item a{color:var(--text);text-decoration:none}.ts-item a:hover{text-decoration:underline}
.ts-item small{color:var(--muted)}.ts-item.lvl-overdue small{color:var(--danger);font-weight:600}.ts-item.lvl-soon small{color:#a86b00;font-weight:600}
.ts-item .todo-check{width:15px;height:15px;margin:0}
@media(max-width:900px){.todo-board{grid-template-columns:1fr}.tc-day{min-height:72px}.tc-item{font-size:11px}.todo-row{flex-wrap:wrap}.todo-row-m{width:100%;padding-left:27px}}
/* задачник: 5 колонок, новые и автоматические задачи */
.todo-board{grid-template-columns:repeat(5,minmax(210px,1fr));overflow-x:auto;padding-bottom:4px}
.todo-col.col-paused{background:color-mix(in srgb,#8a93a6 7%,var(--soft,#f7f8fb))}
.todo-col.col-cancelled{background:color-mix(in srgb,var(--danger) 4%,var(--soft,#f7f8fb))}
.todo-hint{font-size:11px;color:var(--muted);margin:-4px 4px 0}
.todo-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:5px}.todo-tags .todo-label{margin:0}
.todo-new{display:inline-block;font-size:11px;font-weight:700;border-radius:6px;padding:1px 7px;background:var(--brand-spark,#df3f48);color:#fff}
.todo-src{display:inline-block;font-size:11px;border-radius:6px;padding:1px 7px;background:var(--accent-weak);color:var(--accent)}
.todo-go{margin:8px 0 0 25px}
.todo-card.st-cancelled .todo-card-t span{text-decoration:line-through;color:var(--muted)}
.todo-check.x{background:#8a93a6;border-color:#8a93a6}.todo-check.x::after{border:0;left:3px;top:6px;width:8px;height:2px;background:#fff;transform:none}
@media(max-width:900px){.todo-board{grid-template-columns:repeat(5,minmax(240px,82vw))}}

/* табель на компьютере: содержимое блока для телефона всегда видно */
@media(min-width:701px){.mobile-calendar-details::details-content{content-visibility:visible;display:contents}}

.motivation-author{margin-top:6px;font-size:13px;color:var(--muted);font-style:italic}
.att-row.att-hidden{opacity:.6}
.rep-table td,.rep-table th{white-space:nowrap}.rate-table .rate-client td{background:var(--panel-2,#f6f7fb);padding-top:12px}.rate-table .rate-proj td{border-top:1px solid var(--line)}.rate-in{width:110px;text-align:right}.rate-cur{width:70px}.rate-yt{width:90px}.rate-agent{font-weight:400;font-size:12px;margin-left:12px;color:var(--muted)}.rate-agent select{font-size:12px}.rate-sum td{font-size:12px;color:var(--muted)}
.cp-row .cp-client{max-width:200px;font-size:13px}
.tag.tag-arch{opacity:.55;background:var(--line,#e5e7ef);color:var(--muted)}.tag.tag-arch small{font-size:10px;margin-left:2px}
.rate-mode{max-width:190px;font-size:12px}.rate-bill{white-space:nowrap}.ytm-row{display:grid;grid-template-columns:200px 1fr;gap:12px;align-items:start;padding:10px 0;border-top:1px solid var(--line)}.ytm-new{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.ytm-new .combo-in{flex:1 1 160px}
.pay-projrates{margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px}.pay-projrate{display:flex;align-items:center;gap:10px;margin:4px 0;font-size:13px}.pay-projrate span{flex:1}.pay-projrate input{width:130px;text-align:right}
.pay-proj td{font-size:12px}.ts-projtog{border:0;background:none;color:var(--accent);font-size:11px;padding:2px 0;cursor:pointer}.tstable tr.ts-proj td{font-size:11px;color:var(--muted);height:22px;background:var(--panel-2,#fafbfd)}
.my-pay tr.my-pay-proj td{font-size:12px;padding-left:18px;color:var(--muted)}
.info-i{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;border:1px solid currentColor;font-size:10px;font-weight:700;font-style:italic;margin-left:4px;cursor:help;vertical-align:1px;text-transform:none}
.pay-projrate select{width:220px}.pay-projrate-h{font-size:11px;color:var(--muted);text-transform:uppercase}.pay-projrate-h em{font-style:normal;width:130px;text-align:right}.pay-projrate-h em+em{width:220px;text-align:left}
.rate-dual{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.rate-dual small{color:var(--muted);margin-right:8px}.rate-dual input:disabled{opacity:.45;background:var(--panel-2,#f4f5f8)}
.cl-addproj{font-size:12px;margin-top:4px;max-width:260px}
.perm-sel{font-size:13px}.perm-sel.perm-none{color:var(--muted)}.perm-sel.perm-edit{font-weight:600}
.perm-table{width:100%;table-layout:fixed}.perm-table th:first-child,.perm-table td:first-child{width:28%}.perm-table .perm-sel{width:100%;max-width:170px}
.layout:not(.collapsed) .side-sub-title.fold-hide{display:none}
/* Меню: подгруппа «Заказчики и проекты» внутри «Справочников» — деревом */
.side-sub{margin:4px 0 10px}
.side-sub-title{display:flex;align-items:center;gap:8px;width:100%;border:0;background:none;font:inherit;font-size:14px;font-weight:600;color:var(--text);text-align:left;padding:9px 12px;border-radius:12px;cursor:pointer}
.side-sub-title:hover{background:var(--accent-weak)}
.side-sub-chev{width:12px;color:var(--muted);font-size:11px;flex:none}
.side-sub-count{margin-left:auto;font-size:11px;color:var(--muted);font-weight:500}
.side-sub-list{margin:2px 0 0 22px;padding-left:10px;border-left:2px solid var(--line)}
.side-sub-list .side-item.side-sub-item{padding-left:10px;font-size:14px}
.side-sub.folded .side-sub-list .side-item.active{margin-top:2px}
.layout.collapsed .side-sub-title{display:none}.layout.collapsed .side-sub-list{margin:0;padding:0;border:0}
.copy-chip{border:0;background:none;padding:2px 6px;margin:-2px -6px;border-radius:6px;font:inherit;font-size:13px;color:var(--text);cursor:copy;text-align:left}.copy-chip:hover{background:var(--accent-weak);color:var(--accent)}.copy-chip.copied{background:#dcf5ec;color:#1d7d5b}.contacts-table td{vertical-align:top}
/* файлы в задаче */
.todo-files{border:1px dashed var(--line);border-radius:10px;padding:10px 12px}
.todo-files.drop-on{border-color:var(--accent);background:var(--accent-soft, rgba(80,120,255,.06))}
.todo-file{display:flex;align-items:center;gap:8px;margin-bottom:5px;min-width:0}
.todo-file .tf-ic{width:18px;text-align:center}
.todo-file .tf-name{background:none;border:0;padding:0;color:var(--accent);cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1;font:inherit}
.todo-file .tf-name:hover{text-decoration:underline}
.todo-file .tf-size{font-size:12px;white-space:nowrap}
.todo-file a.icon-btn{text-decoration:none}
.tf-add{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px;margin-top:4px}
/* Month closing: one row per employee, details remain in their owning modules. */
.month-closing .stats{margin:20px 0}.closing-filters{margin:20px 0}.closing-links{display:flex;gap:6px;flex-wrap:wrap;min-width:170px}.closing-act{margin-bottom:10px}.closing-warning{color:var(--warn);font-size:12px;margin-top:6px}.employee-action{background:var(--accent-weak);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius);padding:22px;margin-bottom:22px}.employee-action h2{font-size:18px;margin:0 0 12px}.employee-action-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0}.employee-action-row+.employee-action-row{border-top:1px solid var(--line)}.employee-action-row p{margin:5px 0;font-size:14px}.save-state{font-size:11px;color:var(--muted);white-space:nowrap}.save-error{color:var(--danger)}#saveStatus{display:flex;align-items:center;gap:6px}.sync-json{white-space:pre-wrap;overflow-wrap:anywhere;max-height:180px;overflow:auto;font-size:11px;background:var(--bg);padding:10px}
@media(max-width:600px){.employee-action{padding:16px}.employee-action-row{align-items:flex-start;flex-direction:column}#saveStatus{max-width:125px;flex-wrap:wrap}.month-closing .flt{width:100%}}
/* месяц на «Закрытии месяца» — крупно и с акцентом, чтобы сразу было видно, за какой период */
.month-hero{display:flex;align-items:center;gap:6px;margin-left:16px;padding:4px 6px;border-radius:12px;background:var(--accent-weak);border:1px solid var(--accent)}
.month-hero .ym select{font-size:22px;color:var(--accent)}
.month-hero .btn.sm{background:transparent;border-color:transparent;color:var(--accent);font-size:18px;padding:2px 10px}
.month-hero .btn.sm:hover{background:var(--surface, #fff)}
/* задачи из YouTrack */
.yti-table{width:100%;border-collapse:collapse}.yti-table td,.yti-table th{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top;font-size:13px}
.yti-table .num{text-align:right;white-space:nowrap}.yti-table .yti-id{white-space:nowrap;font-weight:600}
.yti-table tr.yti-emp td{background:var(--accent-weak);font-weight:600;padding-top:9px}
.ts-iss .tsname{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:360px}
.tag.ok{background:#2e9e5b}
/* задания в окне акта */
.act-task-row{display:flex;align-items:flex-start;gap:6px;margin-bottom:5px}.act-task-row textarea{flex:1;min-width:0;resize:vertical;font-size:13px}.act-task-row input{width:80px}
/* плашка «Задачи на сегодня» на узком экране: заголовок сверху, задачи во всю ширину */
@media(max-width:700px){
  .todo-strip{flex-wrap:wrap;gap:8px;padding:8px 12px}
  .todo-strip .ts-h{order:0;flex:1 1 0;min-width:0}
  .todo-strip>.btn,.todo-strip>.icon-btn{order:1}
  .todo-strip .ts-items{order:2;flex:1 1 100%;display:grid;gap:6px}
  .todo-strip .ts-item{display:flex;border-radius:10px;padding:6px 10px 6px 8px;min-width:0}
  .todo-strip .ts-item a{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .todo-strip .ts-item small{white-space:nowrap}
  .todo-strip .ts-more{justify-self:start}
}
/* отметка «отчёт загружен» в табеле и страница отчётов */
.ts-rep{border:0;background:color-mix(in srgb,var(--ok, #2f9e5b) 14%,transparent);color:var(--ok, #2f9e5b);font-size:11px;font-weight:600;border-radius:6px;padding:1px 6px;margin-left:6px;cursor:pointer;white-space:nowrap}
.ts-rep:hover{background:color-mix(in srgb,var(--ok, #2f9e5b) 24%,transparent)}
.tsrep-table tr.muted-row td{color:var(--muted)}.tsrep-table tr.muted-row td a{color:var(--muted)}
.tsrep-works>td{background:var(--bg)}.tsrep-works table{width:100%;border-collapse:collapse}.tsrep-works th,.tsrep-works td{font-size:12px;padding:4px 6px;border-bottom:1px solid var(--line);text-align:left}.tsrep-works .num{text-align:right}
/* окно загрузки отчётов: зона для перетаскивания файлов */
.xl-drop{border:2px dashed var(--line);border-radius:12px;padding:20px;text-align:center;transition:border-color .15s,background .15s}
.xl-drop.drop-on{border-color:var(--accent);background:var(--accent-weak)}
/* колонка «Отчёт» в табеле */
.tstable td.tsrep-cell{text-align:center}
.ts-rep-ok{border:0;background:color-mix(in srgb,var(--ok, #2f9e5b) 16%,transparent);color:var(--ok, #2f9e5b);font-weight:700;border-radius:6px;width:24px;height:22px;cursor:pointer;padding:0}
.ts-rep-ok:hover{background:color-mix(in srgb,var(--ok, #2f9e5b) 28%,transparent)}
.ts-rep-no{color:var(--danger, #d64545);font-weight:700;opacity:.75}

/* календарь задач: цвет по сроку (красный — день дедлайна и позже, жёлтый — за 3 дня), перенесённые — бледные в прошлом дне */
.tc-item{border-left:3px solid var(--accent)}
.tc-item.lvl-soon{background:#fff1cc;border-left-color:#e0a020}
.tc-item.lvl-overdue{background:color-mix(in srgb,var(--danger) 14%,var(--panel));border-left-color:var(--danger);font-weight:600}
.tc-item.tc-past{opacity:.45}
/* карточка сотрудника на узком экране: колонки друг под другом, длинная почта переносится, а не вылезает из блока */
@media(max-width:1199px){.grid2{grid-template-columns:minmax(0,1fr)}}
.kv{grid-template-columns:minmax(110px,170px) minmax(0,1fr)}
.kv>div{min-width:0;overflow-wrap:anywhere}
/* «Закрытие месяца» — основной раздел для работы */
.side-item.side-main .side-txt{font-weight:700}
