/* СтройУчет desktop application styles. */
:root{
  --green:#16A34A;--green-d:#15803D;--green-l:#DCFCE7;--green-bg:#F0FDF4;
  --selected-bg:#F8FAFC;--selected-ring:0 0 0 3px var(--green-l);
  --bg:#F8FAFC;--card:#fff;--border:#E2E8F0;--text:#0F172A;--muted:#64748B;
  --red:#DC2626;--red-l:#FEE2E2;--amber:#D97706;--amber-l:#FEF3C7;--blue:#2563EB;--blue-l:#DBEAFE;
  --shadow:0 1px 2px rgba(0,0,0,.04);--shadow-m:0 4px 12px rgba(0,0,0,.08);
  /* Approved desktop scale: the Contracts registry is the visual canon. */
  --ui-font-page-title:22px;
  --ui-font-section-title:18px;
  --ui-font-card-title:15px;
  --ui-font-control:13px;
  --ui-font-meta:12px;
  --ui-font-caption:10.5px;
  --ui-font-table-head:10px;
  --ui-font-table-body:12px;
  --ui-font-status:11px;
  --ui-control-height:36px;
  --ui-chip-height:32px;
  --ui-tab-height:44px;
  --ui-kpi-height:88px;
  --ui-navigation-card-height:var(--ui-kpi-height);
  --ui-status-height:20px;
  --ui-radius-control:8px;
  --ui-radius-card:12px;
  --ui-card-padding-x:14px;
  --ui-card-padding-y:9px;
  --ui-table-head-padding-y:9px;
  --ui-table-head-padding-x:10px;
  --ui-table-body-padding-y:10px;
  --ui-table-body-padding-x:12px;
  --kpi-height:var(--ui-kpi-height);
  --sidebar-collapsed:64px;
  --sidebar-expanded:240px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{overflow-y:scroll;scrollbar-gutter:stable}
body{font-family:-apple-system,'Segoe UI',system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;display:flex;min-height:100vh}
body.auth-pending .sidebar,
body.auth-pending .main{visibility:hidden}

/* SIDEBAR */
.sidebar{width:240px;background:#fff;border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;transition:width .18s ease,box-shadow .18s ease}
.logo{padding:20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}
.logo-icon{width:36px;height:36px;background:var(--green);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700}
.logo-text{font-weight:700;font-size:16px}
.logo-text small{display:block;font-size:11px;color:var(--muted);font-weight:400}
.nav{padding:12px 8px;flex:1;overflow-y:auto}
.nav-item{display:grid;grid-template-columns:18px minmax(0,1fr) max-content;align-items:center;column-gap:10px;min-height:40px;padding:10px 12px;border:1px solid transparent;border-radius:9px;cursor:pointer;color:var(--muted);font-weight:500;margin-bottom:2px;transition:background .15s,color .15s,border-color .15s,box-shadow .15s,opacity .15s,transform .15s,padding-left .15s,padding-right .15s;position:relative}
.nav-item:hover{background:var(--selected-bg);color:var(--green-d);border-color:#D9E3EF;padding-left:14px;padding-right:34px}
.nav-item.active{background:var(--green-bg);color:var(--green-d);border-color:#CCE7D7;box-shadow:inset 3px 0 var(--green)}
.nav-item[draggable="true"]{user-select:none}
.nav-item.nav-dragging{opacity:.45;transform:scale(.98);padding-left:14px;padding-right:34px}
.nav-item.nav-drop-before{box-shadow:inset 0 2px 0 var(--green)}
.nav-item.nav-drop-after{box-shadow:inset 0 -2px 0 var(--green)}
.nav-item .ico{width:18px;text-align:center}
.nav-item span:not(.ico):not(.nav-badge):not(.nav-drag-handle){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-drag-handle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:14px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px;line-height:1;cursor:grab;opacity:0;transition:opacity .12s,color .12s;pointer-events:auto}
.nav-item:hover .nav-drag-handle,.nav-item.nav-dragging .nav-drag-handle{opacity:1}
.nav-drag-handle:active{cursor:grabbing;color:var(--green-d)}
.nav-badge{justify-self:end;background:var(--red-l);color:var(--red);font-size:11px;padding:2px 6px;border-radius:10px;font-weight:600;white-space:nowrap}
.nav-item.active .nav-badge{background:var(--red-l);color:var(--red)}
.user{padding:10px 12px;border-top:1px solid var(--border);display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:center;gap:6px;transition:background .15s;position:relative}
.user:hover,.user:focus-within{background:var(--green-bg)}
.user-profile{min-width:0;border:0;background:transparent;color:inherit;font:inherit;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;text-align:left;cursor:pointer;border-radius:9px;padding:2px}
.user-profile:focus-visible,.view-as-trigger:focus-visible,.view-as-ribbon button:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--green-l);color:var(--green-d);display:flex;align-items:center;justify-content:center;font-weight:700;flex:0 0 auto}
.user-info{min-width:0;overflow:hidden;display:block}
.user-name,.user-role{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-name{font-weight:600;font-size:13px}
.user-role{font-size:11px;color:var(--muted)}
.view-as-control{position:relative}
.view-as-trigger{width:34px;height:34px;border:1px solid #D8E2EF;border-radius:9px;background:#fff;color:#52627A;display:grid;place-items:center;cursor:pointer;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}
.view-as-trigger[hidden]{display:none}
.view-as-trigger:hover,.view-as-trigger.is-active{background:var(--green-l);border-color:#86D6A1;color:var(--green-d)}
.view-as-trigger.is-active{box-shadow:inset 0 0 0 1px #86D6A1}
.view-as-trigger svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}
.view-as-menu{position:absolute;left:auto;right:-2px;bottom:calc(100% + 12px);z-index:120;width:calc(var(--sidebar-expanded) - 24px);padding:14px;background:#fff;border:1px solid #D8E2EF;border-radius:12px;box-shadow:0 18px 40px rgba(15,23,42,.18)}
.view-as-menu[hidden]{display:none}
.view-as-menu::after{content:"";position:absolute;right:12px;bottom:-6px;width:10px;height:10px;background:#fff;border-right:1px solid #D8E2EF;border-bottom:1px solid #D8E2EF;transform:rotate(45deg)}
.view-as-menu-title{font-size:13px;font-weight:750;color:var(--text);margin-bottom:10px}
.view-as-menu label{display:block;font-size:10.5px;font-weight:650;color:var(--muted);margin-bottom:5px}
.view-as-menu select{width:100%;height:38px;border:1px solid #CBD5E1;border-radius:8px;background:#fff;color:var(--text);font:inherit;font-size:12px;padding:0 34px 0 10px}
.view-as-menu select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-l)}
.view-as-menu p{font-size:10.5px;line-height:1.45;color:var(--muted);margin-top:9px}
.view-as-ribbon{max-width:min(560px,42vw);min-height:36px;display:flex;align-items:center;gap:7px;padding:5px 7px 5px 10px;border:1px solid #F5C56C;border-radius:9px;background:#FFFBEB;color:#744210;font-size:11.5px;white-space:nowrap;overflow:hidden}
.view-as-ribbon[hidden]{display:none}
.view-as-ribbon-dot{width:7px;height:7px;border-radius:50%;background:#D97706;box-shadow:0 0 0 3px #FEF3C7;flex:0 0 auto}
.view-as-ribbon strong{font-weight:750}
.view-as-ribbon-mode{color:#9A6700;overflow:hidden;text-overflow:ellipsis}
.view-as-ribbon button{height:26px;padding:0 9px;border:1px solid #E5B650;border-radius:7px;background:#fff;color:#744210;font:inherit;font-weight:700;cursor:pointer;white-space:nowrap}
.view-as-ribbon button:hover{background:#FFF7D6}
body.view-as-active .user{background:#FFFBEB;border-top-color:#F5C56C}
body.view-as-active .avatar{background:#FEF3C7;color:#A45D05}
body.view-as-active .nav-drag-handle{display:none !important}

/* MAIN */
.main{flex:1;min-width:0}
.topbar{height:60px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 28px;gap:16px;position:sticky;top:0;z-index:10}
.topbar h1{font-size:18px;font-weight:700}
.topbar .spacer{flex:1}
.app-history-back{appearance:none;display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 11px;border:1px solid #D9E3EF;border-radius:9px;background:#FFF;color:#41536A;font:inherit;font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer;transition:border-color .14s ease,background .14s ease,color .14s ease}
.app-history-back:hover,.app-history-back:focus-visible{border-color:#9BCFAE;background:#F0FDF4;color:#16723B;outline:0}
.app-history-back>span:first-child{font-size:18px;line-height:1}
.app-history-back[hidden]{display:none}
.search{width:320px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-size:13px;background:var(--bg)}
.search.active{border-color:var(--green);box-shadow:0 0 0 3px var(--green-l);background:#fff}
.global-search-box{position:relative;width:360px;max-width:42vw}
.global-search-box .search{width:100%}
.global-search-results{position:absolute;z-index:90;top:calc(100% + 8px);left:0;width:min(680px,calc(100vw - 80px));max-height:70vh;overflow:auto;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 42px rgba(15,23,42,.18);padding:8px}
.global-search-results[hidden]{display:none}
.global-search-result{display:grid;grid-template-columns:94px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border-radius:10px;cursor:pointer;border:1px solid transparent}
.global-search-result:hover{background:var(--selected-bg);border-color:var(--green)}
.global-search-section{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:3px 8px;border-radius:999px;background:#eef6ff;color:#1d4f8f;font-size:11px;font-weight:700;white-space:nowrap}
.global-search-title{font-weight:700;font-size:13px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.global-search-meta{font-size:12px;color:var(--muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.global-search-open{font-size:12px;color:var(--green-d);font-weight:700}
.global-search-empty{padding:16px;color:var(--muted);font-size:13px;text-align:center}
.btn{min-height:var(--ui-control-height);padding:7px 14px;border:none;border-radius:var(--ui-radius-control);font-size:var(--ui-font-control);font-weight:600;cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;gap:6px;font-family:inherit}
.btn-primary{background:var(--green);color:#fff}
.btn-primary:hover{background:var(--green-d)}
.btn-secondary{background:#fff;color:var(--text);border:1px solid var(--border)}
.btn-secondary:hover{background:var(--bg)}
.btn-ghost{background:transparent;color:var(--muted)}
.btn-ghost:hover{background:var(--bg);color:var(--text)}
.btn-income{background:var(--green-l);color:var(--green-d);border:1px solid #A7F3D0}
.btn-income:hover{background:#D1FAE5}
.btn-income.active{background:var(--selected-bg);color:var(--green-d);border-color:var(--green);box-shadow:var(--selected-ring)}
.btn-expense{background:var(--red-l);color:var(--red);border:1px solid #FECACA}
.btn-expense:hover{background:#FEE2E2}
.btn-expense.active{background:#fff7f7;color:var(--red);border-color:var(--red);box-shadow:0 0 0 3px rgba(239,68,68,.16)}
.btn-danger-soft{background:#fff;color:var(--red);border:1px solid #FECACA}
.btn-danger-soft:hover{background:#FEF2F2;border-color:#FCA5A5}
.btn-transfer{background:var(--blue-l);color:var(--blue);border:1px solid #BFDBFE}
.btn-transfer:hover{background:#DBEAFE}
.btn-transfer.active{background:#f8fbff;color:var(--blue);border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.16)}

.content{padding:24px 28px;max-width:1400px}
.page{display:none}
.page.active{display:block}
.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}
.page-head h2{font-size:var(--ui-font-page-title);font-weight:700;line-height:1.2;letter-spacing:0}
.page-head p{color:var(--muted);font-size:var(--ui-font-control);margin-top:2px}
.page-head-main{flex:1 1 auto;min-width:0}
.page-title-tools{display:flex;align-items:center;gap:8px;min-width:0;width:100%}
.page-title-tools h2{display:inline-flex;align-items:center;margin:0;line-height:1.2}
.page-title-actions{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}
.page-title-actions .btn{min-height:var(--ui-control-height);white-space:nowrap}
.page-settings-wrap{position:relative;display:inline-flex;align-items:center}
.page-settings-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid var(--border);border-radius:7px;background:#fff;color:var(--muted);font-size:14px;line-height:1;cursor:pointer}
.page-settings-btn:hover,.page-settings-btn.active{border-color:var(--green);color:var(--green-d);background:var(--selected-bg);box-shadow:var(--selected-ring)}
.page-settings-menu{position:absolute;z-index:60;top:calc(100% + 8px);left:0;width:260px;padding:12px;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:0 16px 36px rgba(15,23,42,.16)}
.page-settings-menu[hidden]{display:none}
.page-settings-title{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}
.page-settings-note{font-size:12px;color:var(--muted);line-height:1.35;margin-top:10px}
.page-settings-actions{display:flex;flex-direction:column;gap:8px}
.page-settings-actions .btn{width:100%;justify-content:flex-start;min-height:36px}
.view-switch.view-switch-vertical{display:flex;flex-direction:column;width:100%;border-radius:10px}
.view-switch.view-switch-vertical .view-switch-btn{justify-content:flex-start;width:100%;border-right:none;border-bottom:1px solid var(--border);padding:9px 10px}
.view-switch.view-switch-vertical .view-switch-btn:last-child{border-bottom:none}

/* REPORTS */
.reports-catalog-grid{align-items:stretch}
.reports-catalog-card{display:flex;flex-direction:column;min-height:190px}
.reports-catalog-card.is-ready{border-color:#A7F3D0;background:linear-gradient(180deg,#FFFFFF 0%,#F8FFFB 100%)}
.reports-catalog-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.reports-catalog-icon{font-size:28px;line-height:1;color:var(--green-d)}
.reports-card-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;background:#DCFCE7;color:var(--green-d);font-size:11px;font-weight:700;white-space:nowrap}
.reports-card-text{margin-top:6px;margin-bottom:14px}
.reports-card-action{margin-top:auto;width:100%;justify-content:center}
.reports-filter-wrap{margin-bottom:14px}
.reports-filterbar{gap:12px;align-items:center;flex-wrap:wrap}
.reports-filterbar label{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;font-weight:700}
.reports-filterbar input[type="month"]{height:34px;border:1px solid var(--border);border-radius:8px;background:#fff;padding:0 10px;font:inherit;color:var(--text)}
.reports-kpi-grid{margin-bottom:14px}
.reports-monthly-table{table-layout:fixed;min-width:1180px}
.reports-monthly-table th,.reports-monthly-table td{padding-left:12px;padding-right:12px}
.reports-col-month{width:150px}
.reports-col-money{width:112px}
.reports-monthly-table td:first-child b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.report-forecast-cell{color:var(--green-d)}
.reports-table-top{justify-content:space-between}
.reports-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.reports-grid-wide{align-items:start}
.reports-panel{overflow:hidden}
.reports-panel-body{padding:14px 16px 16px}
.report-list{display:flex;flex-direction:column;gap:11px}
.report-list-row{display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:12px;align-items:center}
.report-list-main{min-width:0}
.report-list-main b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.report-list-money{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.report-list-money span{display:block;color:var(--muted);font-size:11px;font-weight:600;margin-top:1px}
.report-bar{display:block;width:100%;height:4px;border-radius:999px;background:#eef2f7;margin-top:6px;overflow:hidden}
.report-bar span{display:block;height:100%;border-radius:999px;background:var(--green)}
.report-bar.is-bank span{background:var(--blue)}
.report-bar.is-cash span{background:var(--amber)}
.report-bar.is-forecast span{background:var(--green-d)}
.report-mini-table{font-size:12px}
.report-mini-table td{vertical-align:middle}
.report-note{margin-bottom:14px}

/* DASHBOARD */
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:var(--kpi-height);gap:12px;margin-bottom:16px}
.kpi{background:var(--card);border:1px solid var(--border);border-radius:var(--ui-radius-control);padding:var(--ui-card-padding-y) var(--ui-card-padding-x);box-shadow:var(--shadow);height:var(--kpi-height);min-height:var(--kpi-height);min-width:0;container-type:inline-size;display:flex;flex-direction:column;justify-content:center;gap:3px;overflow:hidden}
.kpi.clickable{cursor:pointer}
.kpi.clickable:hover{border-color:var(--green);box-shadow:var(--shadow-m)}
.kpi.clickable.active{background:var(--selected-bg);border-color:var(--green);box-shadow:var(--selected-ring)}
.section-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:var(--kpi-height);gap:12px;margin-bottom:14px}
.section-kpi-grid .kpi{min-height:var(--kpi-height)}
.finance-summary{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:var(--kpi-height);gap:12px;margin-bottom:14px}
.finance-summary .kpi{min-height:var(--kpi-height)}
.finance-page-head{align-items:center;margin-bottom:20px}
.finance-page-head h2{font-size:var(--ui-font-page-title);font-weight:700;line-height:1.2;letter-spacing:0}
.finance-page-head p{max-width:980px;margin-top:2px;font-size:var(--ui-font-control)}
.finance-section-navigation{margin-bottom:18px}
.finance-section-nav-label{margin-bottom:7px;color:var(--muted);font-size:10px;font-weight:800;line-height:1.2;letter-spacing:.08em;text-transform:uppercase}
.finance-section-nav{grid-auto-rows:var(--ui-navigation-card-height);margin-bottom:0}
.finance-section-nav .kpi{height:var(--ui-navigation-card-height);min-height:var(--ui-navigation-card-height);padding:var(--ui-card-padding-y) var(--ui-card-padding-x);gap:3px;border-radius:var(--ui-radius-control)}
.finance-subsection-head{align-items:flex-start;margin-bottom:14px;padding-top:2px}
.finance-subsection-head-main{position:relative;max-width:980px;padding-left:14px}
.finance-subsection-head-main::before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:3px;border-radius:999px;background:var(--green)}
.finance-subsection-kicker{display:block;margin-bottom:3px;color:var(--green-d);font-size:10px;font-weight:800;line-height:1.2;letter-spacing:.07em;text-transform:uppercase}
.finance-subsection-head h2{font-size:var(--ui-font-section-title);font-weight:750;line-height:1.25;letter-spacing:-.01em}
.finance-subsection-head p{margin-top:4px;font-size:var(--ui-font-control);line-height:1.4}
.finance-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.finance-filterbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.finance-filterbar .field{min-width:220px}
.kpi-label{color:var(--muted);font-size:clamp(10px,5cqw,12px);font-weight:700;text-transform:uppercase;letter-spacing:0;line-height:1.1;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kpi-value{font-size:clamp(18px,11cqw,26px);font-weight:700;letter-spacing:0;line-height:1.25;white-space:nowrap;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.kpi-value.neg{color:var(--red)}
.kpi-value.pos{color:var(--green)}
.kpi-value.warn{color:var(--amber)}
.kpi-delta{font-size:clamp(10px,5cqw,12px);line-height:1.25;color:var(--muted);min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kpi-delta.up{color:var(--green)}
.kpi-delta.down{color:var(--red)}

.grid-2{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;margin-bottom:20px}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--ui-radius-card);padding:18px;box-shadow:var(--shadow)}
.card h3{font-size:var(--ui-font-card-title);font-weight:700;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between}
.card h3 .link{color:var(--green);font-size:12px;font-weight:500;cursor:pointer;text-decoration:none}

/* BALANCE BARS */
.bal-row{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:12px;min-height:38px;padding:10px 0;border-bottom:1px solid var(--border);font-size:13px;position:relative;border-radius:8px;transition:all .15s;flex-wrap:nowrap}
.bal-row:hover:not(.total){background:var(--selected-bg);box-shadow:inset 0 0 0 1px #D9E3EF;padding-left:8px;padding-right:8px}
.bal-row:last-child{border:none}
.bal-row.total{font-weight:700;border-top:2px solid var(--text);margin-top:6px;padding-top:12px}
.bal-row[draggable="true"]{user-select:none}
.bal-row.bal-dragging{opacity:.45}
.bal-row.bal-drop-before{box-shadow:inset 0 2px 0 var(--green)}
.bal-row.bal-drop-after{box-shadow:inset 0 -2px 0 var(--green)}
.bal-label{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1 auto;overflow:hidden}
.bal-label>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bal-drag-handle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:18px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px;line-height:1;cursor:grab;opacity:0;transition:opacity .12s,color .12s;pointer-events:auto;z-index:6}
.bal-row:hover .bal-drag-handle,.bal-row.bal-dragging .bal-drag-handle{opacity:1}
.bal-drag-handle:active{cursor:grabbing;color:var(--green-d)}
.bal-side{display:grid;align-items:center;justify-content:end;justify-self:end;width:max-content;column-gap:0;min-width:0;padding-right:0;white-space:nowrap;transition:padding-right .15s}
.bal-side-reconcile{grid-template-columns:206px 126px}
.bal-side-action-only{grid-template-columns:126px}
.bal-side-plain{grid-template-columns:126px}
.bal-row:hover .bal-side,.bal-row.bal-dragging .bal-side{padding-right:30px}
.bal-row .val{flex:0 0 auto;justify-self:end;text-align:right;font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.bal-amount-cell{display:flex;align-items:center;justify-content:flex-end;min-width:0;width:126px}
.bal-reconcile-slot{display:flex;justify-content:flex-end;min-width:0;margin-right:6px}
.bal-reconcile-action{display:flex;justify-content:center;width:0;min-width:0;margin-right:0;overflow:visible}
.bal-row:hover .bal-reconcile-slot,.bal-row.bal-dragging .bal-reconcile-slot{margin-right:14px}
.bal-row:hover .bal-reconcile-action,.bal-row.bal-dragging .bal-reconcile-action{width:24px;min-width:24px;margin-right:8px}
.bal-row .val.neg{color:var(--red)}
.bal-row .val.pos{color:var(--green)}
.bal-reconcile-status{display:inline-flex;align-items:center;max-width:206px;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 7px;border:1px solid #bbf7d0;border-radius:999px;background:#f0fdf4;color:var(--green-d);font-size:10.5px;font-weight:650;line-height:1.15}
.bal-reconcile-status.warning{border-color:#fed7aa;background:#fff7ed;color:var(--amber)}
.bal-reconcile-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid #bbf7d0;border-radius:50%;background:#fff;color:var(--green-d);font-size:14px;font-weight:900;line-height:1;cursor:pointer;opacity:0;transform:scale(.92);transition:opacity .12s,transform .12s,background .12s,border-color .12s}
.bal-row:hover .bal-reconcile-btn,.bal-reconcile-btn:focus-visible{opacity:1;transform:scale(1)}
.bal-reconcile-btn:hover{background:#dcfce7;border-color:var(--green)}
.bal-reconcile-btn:disabled{opacity:.55;cursor:wait}
.dashboard-row-link{cursor:pointer}
.dashboard-row-link .bal-label>span:last-child,.dashboard-row-link .acc-name{color:var(--green-d)}
.dashboard-row-link:hover .bal-label>span:last-child,.dashboard-row-link:hover .acc-name{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
@media(max-width:820px){
  .bal-row{grid-template-columns:minmax(0,1fr) max-content}
  .bal-side-reconcile{grid-template-columns:176px 104px}
  .bal-side-action-only{grid-template-columns:104px}
  .bal-side-plain{grid-template-columns:104px}
  .bal-amount-cell{width:104px}
  .bal-reconcile-status{max-width:176px}
}

/* ACCOUNTS */
.acc-list{display:flex;flex-direction:column;gap:10px}
.acc-group{display:flex;flex-direction:column;gap:8px;position:relative;border-radius:10px;transition:background .15s,box-shadow .15s,opacity .15s}
.acc-group::after{content:"";position:absolute;inset:-1px;border-radius:11px;box-shadow:0 0 0 1px #D9E3EF;opacity:0;pointer-events:none;z-index:5;transition:opacity .15s}
.acc-group+.acc-group{margin-top:4px;padding-top:8px;border-top:1px solid var(--border)}
.acc-group:has(.acc-group-title:hover)::after,.acc-group:has(.acc-group-drag-handle:hover)::after,.acc-group.acc-group-dragging::after{opacity:1}
.acc-group:has(.acc-group-title:hover) .acc-item,.acc-group:has(.acc-group-drag-handle:hover) .acc-item,.acc-group.acc-group-dragging .acc-item,.acc-group.acc-group-drop-before .acc-item,.acc-group.acc-group-drop-after .acc-item{padding-left:14px;padding-right:24px}
.acc-group-title{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:3px 34px 3px 8px;display:flex;align-items:center;justify-content:flex-start;gap:8px;cursor:default;border-radius:8px;transition:background .15s,box-shadow .15s,color .15s}
.acc-group-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acc-group-total{display:inline-flex;align-items:center;min-height:20px;padding:1px 7px;border:1px solid rgba(100,116,139,.22);border-radius:999px;background:rgba(248,250,252,.72);color:inherit;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:0;text-transform:none;white-space:nowrap}
.acc-group-total.neg{color:var(--red)}
.acc-group-title:hover{color:var(--green-d)}
.acc-group:has(.acc-group-title:hover) .acc-group-title,.acc-group:has(.acc-group-drag-handle:hover) .acc-group-title,.acc-group.acc-group-dragging .acc-group-title{color:var(--green-d)}
.acc-group-drag-handle{position:absolute;right:8px;top:10px;width:14px;height:20px;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;color:var(--muted);cursor:grab;opacity:0;transition:opacity .12s,color .12s;pointer-events:auto;z-index:6}
.acc-group:has(.acc-group-title:hover) .acc-group-drag-handle,.acc-group:has(.acc-group-drag-handle:hover) .acc-group-drag-handle,.acc-group.acc-group-dragging .acc-group-drag-handle,.acc-group.acc-group-drop-before .acc-group-drag-handle,.acc-group.acc-group-drop-after .acc-group-drag-handle{opacity:1}
.acc-group.acc-group-dragging{opacity:.55}
.acc-group.acc-group-drop-before{box-shadow:0 -2px 0 var(--green)}
.acc-group.acc-group-drop-after{box-shadow:0 2px 0 var(--green)}
.acc-item{display:grid;grid-template-columns:38px minmax(0,1fr) max-content;align-items:center;column-gap:12px;padding:10px;margin-left:0;margin-right:0;background:var(--bg);border-radius:8px;position:relative;transform-origin:center;transition:background .15s,box-shadow .15s,opacity .15s,transform .15s,padding-left .15s,padding-right .15s,margin-left .15s,margin-right .15s}
.acc-item:hover{background:var(--selected-bg);box-shadow:inset 0 0 0 1px #D9E3EF;padding-left:18px;padding-right:32px}
.acc-item[draggable="true"]{user-select:none}
.acc-item.acc-dragging{opacity:.45;transform:scale(.99);padding-left:18px;padding-right:32px}
.acc-item.acc-drop-before{box-shadow:inset 0 2px 0 var(--green);padding-left:18px;padding-right:32px}
.acc-item.acc-drop-after{box-shadow:inset 0 -2px 0 var(--green);padding-left:18px;padding-right:32px}
.acc-drag-handle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:14px;height:22px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:15px;line-height:1;cursor:grab;opacity:0;transition:opacity .12s,color .12s;pointer-events:auto;z-index:6}
.acc-item:hover .acc-drag-handle,.acc-item.acc-dragging .acc-drag-handle{opacity:1}
.acc-drag-handle:active{cursor:grabbing;color:var(--green-d)}
.nav-drag-handle:hover,.bal-drag-handle:hover,.acc-group-drag-handle:hover,.acc-drag-handle:hover{color:var(--green-d);cursor:grab}
.nav-drag-handle:active,.bal-drag-handle:active,.acc-group-drag-handle:active,.acc-drag-handle:active{cursor:grabbing;color:var(--green-d)}
.acc-ico{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;background:var(--green-l);color:var(--green-d)}
.acc-ico-img,.acc-ico-logo{overflow:hidden;background:#fff;color:inherit}
.acc-ico-logo{padding:0;box-sizing:border-box}
.acc-ico-img img{width:100%;height:100%;object-fit:cover;display:block}
.acc-ico-logo img,.acc-ico-logo svg{width:100%;height:100%;object-fit:cover;display:block}
.acc-info{min-width:0;max-width:100%;overflow:hidden}
.acc-name{font-weight:600;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acc-type{color:var(--muted);font-size:11px}
.acc-bal{justify-self:end;font-weight:700;font-variant-numeric:tabular-nums;font-size:14px;text-align:right;white-space:nowrap}
.acc-bal.neg{color:var(--red)}

/* TABLE */
.table-wrap{--table-head-sticky-top:60px;background:var(--card);border:1px solid var(--border);border-radius:var(--ui-radius-card);overflow:visible;box-shadow:var(--shadow)}
.table-top{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap}
.table-top b{font-size:15px}
.table-wrap>table{background:var(--card);border-radius:0 0 12px 12px}
.table-top.table-sticky{position:sticky;top:60px;z-index:8;background:#fff}
.table-top.table-sticky:first-child{border-radius:12px 12px 0 0}
.table-actions{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.summary-panel{margin-bottom:16px}
.summary-panel.collapsed{display:none}
.summary-panel.collapsed .summary-panel-body{display:none}
/* Свернутые навигационные плашки секций показываем как закладки, а не прячем */
.summary-panel-nav.collapsed{display:block;margin-bottom:0}
.summary-panel-nav.collapsed .summary-panel-body{display:block}
.summary-panel-nav.collapsed .section-kpi-grid{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px;padding:0;overflow:visible}
.summary-panel-nav.collapsed .section-kpi-grid .kpi{flex:0 0 auto;height:var(--ui-chip-height);min-height:var(--ui-chip-height);padding:0 12px;border-radius:999px;box-shadow:none;display:flex;justify-content:center;container-type:normal}
.summary-panel-nav.collapsed .section-kpi-grid .kpi-value,
.summary-panel-nav.collapsed .section-kpi-grid .kpi-delta{display:none}
.summary-panel-nav.collapsed .section-kpi-grid .kpi-label{font-size:var(--ui-font-meta);font-weight:500;text-transform:none;color:var(--muted)}
.summary-panel-nav.collapsed .section-kpi-grid .kpi.clickable.active{box-shadow:var(--selected-ring)}
.summary-panel-nav.collapsed .section-kpi-grid .kpi.clickable.active .kpi-label{color:var(--green-d)}
.summary-toggle-inline{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;margin-left:8px;border:1px solid var(--border);border-radius:7px;background:#fff;color:var(--muted);font-size:14px;line-height:1;vertical-align:middle;cursor:pointer}
.summary-toggle-inline:hover{border-color:var(--green);color:var(--green-d);background:var(--selected-bg)}
.table-filter-chip-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}
.filter-chip{display:inline-flex;align-items:center;min-height:var(--ui-chip-height);padding:0 12px;border:1px solid var(--border);border-radius:999px;background:#fff;cursor:pointer;font-size:var(--ui-font-meta);font-weight:500;color:var(--muted)}
.filter-chip:hover{border-color:var(--green)}
.filter-chip.active{background:var(--selected-bg);color:var(--green-d);border-color:var(--green);box-shadow:var(--selected-ring)}
.journal-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:var(--kpi-height);gap:12px;margin-bottom:14px}
.journal-kpi-grid .kpi{min-height:var(--kpi-height)}
.journal-kpi-grid .journal-kpi-filter{width:100%;color:var(--text);font:inherit;text-align:left;appearance:none}
.journal-kpi-grid .journal-kpi-filter:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.journal-toolbar{display:grid;grid-template-columns:auto auto minmax(260px,360px) minmax(120px,1fr) auto;align-items:center}
.journal-status-row{padding-top:0;background:#fff}
.journal-status-row .table-filter-chip-row{margin-left:0}
.journal-status-label{font-size:12px;color:var(--muted);font-weight:700}
.settings-pane{background:var(--card);border:1px solid var(--border);border-radius:var(--ui-radius-card);overflow:hidden;box-shadow:var(--shadow)}
.settings-pane-head{display:flex;justify-content:space-between;align-items:center;padding:14px 20px 12px;gap:16px}
.settings-pane-groups{display:flex;align-items:center;gap:14px;flex-wrap:wrap;min-height:44px}
.settings-pane-groups-label{font-size:18px;font-weight:500;color:var(--text);cursor:help}
.settings-chip{display:inline-flex;align-items:center;justify-content:center;min-height:var(--ui-control-height);padding:0 14px;border:1px solid #D9E3EF;border-radius:999px;background:#fff;color:#5C7695;cursor:pointer;font-size:var(--ui-font-control);font-weight:600;transition:border-color .15s,color .15s,background .15s}
.settings-chip:hover{border-color:var(--green);color:var(--green-d)}
.settings-chip.active{background:var(--selected-bg);border-color:var(--green);color:var(--green-d);box-shadow:var(--selected-ring)}
.settings-group-row{display:flex;gap:8px;flex-wrap:wrap}
.settings-groups-divider{height:1px;width:390px;max-width:100%;background:var(--border);margin:8px 0 0 20px}
.settings-table th.settings-head-action{cursor:pointer;color:var(--green-d)}
.settings-head-link{display:inline-flex;align-items:center;gap:6px;color:var(--green-d);font-weight:700;text-decoration:underline dotted rgba(22,163,74,.45);text-underline-offset:3px;cursor:pointer;transition:color .12s ease,text-decoration-color .12s ease}
.settings-head-link::after{content:"ред.";display:inline-flex;align-items:center;justify-content:center;padding:1px 6px;border-radius:999px;background:rgba(22,163,74,.10);color:var(--green-d);font-size:10px;font-weight:700;line-height:1;text-transform:uppercase;letter-spacing:.02em}
.settings-table th.settings-head-action:hover .settings-head-link{color:var(--green);text-decoration-color:rgba(22,163,74,.9)}
.settings-table th.settings-sortable{cursor:pointer}
.settings-table tbody tr.is-archived{opacity:.6}
.settings-table td.muted{color:var(--muted)}
.settings-accounts-wrap{padding:0;overflow:hidden}
.settings-accounts-wrap .table-top.table-sticky{position:static !important;top:auto !important}
.settings-accounts-toolbar{display:flex}
.settings-accounts-toolbar>b{white-space:nowrap}
.settings-accounts-toolbar .table-filter-chip-row{flex-basis:100%;margin-left:0;order:10}
.settings-table-count{color:var(--muted);font-size:12px;white-space:nowrap}
.settings-accounts-note{padding:10px 16px;border-bottom:1px solid var(--border);color:var(--muted);font-size:12px;line-height:1.35;background:#fff}
.settings-accounts-table-shell{overflow:auto;background:#fff}
.settings-accounts-table{min-width:1040px;table-layout:fixed}
.settings-accounts-table th,.settings-accounts-table td{font-size:13px;line-height:1.28;padding:12px 24px;vertical-align:middle;overflow:hidden;transition:background .15s,color .15s,padding-left .15s,padding-right .15s}
.settings-accounts-table th{font-size:10px;line-height:1.1;padding:9px 24px;font-weight:650}
.settings-accounts-table tbody tr.settings-account-row{height:66px;cursor:pointer;transition:background .15s,box-shadow .15s,opacity .15s,transform .15s}
.settings-accounts-table tbody tr.settings-account-row:hover{background:var(--selected-bg);box-shadow:inset 0 0 0 1px #D9E3EF;color:var(--green-d)}
.settings-accounts-table tbody tr.settings-account-row:hover td{background:var(--selected-bg)}
.settings-account-row:hover td:first-child,.settings-account-row-dragging td:first-child,.settings-account-row-drop-before td:first-child,.settings-account-row-drop-after td:first-child{padding-left:34px}
.settings-account-row:hover td:last-child,.settings-account-row-dragging td:last-child,.settings-account-row-drop-before td:last-child,.settings-account-row-drop-after td:last-child{padding-right:64px !important}
.settings-accounts-table tbody tr.settings-account-row-dragging{opacity:.45;transform:scale(.998)}
.settings-accounts-table tbody tr.settings-account-row-drop-before{box-shadow:inset 0 2px 0 var(--green)}
.settings-accounts-table tbody tr.settings-account-row-drop-after{box-shadow:inset 0 -2px 0 var(--green)}
.settings-account-col-name{width:28%}
.settings-account-col-bank{width:28%}
.settings-account-col-kind{width:16%}
.settings-account-col-balance{width:14%}
.settings-account-col-meta{width:14%}
.settings-account-name-cell{position:relative}
.settings-account-meta-cell{position:relative !important;padding-right:48px !important;overflow:visible !important}
.settings-account-row:hover .settings-account-meta-cell,.settings-account-row-dragging .settings-account-meta-cell,.settings-account-row-drop-before .settings-account-meta-cell,.settings-account-row-drop-after .settings-account-meta-cell{padding-right:64px !important}
.settings-account-main{font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.settings-account-row:hover .settings-account-main{color:var(--green-d)}
.settings-account-sub{font-size:12px;color:var(--muted);line-height:1.2;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:400}
.settings-account-amount{font-weight:500;white-space:nowrap;color:var(--text);font-variant-numeric:tabular-nums}
.settings-account-row:hover .settings-account-amount,.settings-account-row:hover .settings-account-sub{color:var(--green-d)}
.settings-account-drag-handle{position:absolute;right:18px;top:50%;transform:translateY(-50%);width:14px;height:22px;border:0;background:transparent;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px;line-height:1;cursor:grab;opacity:0;transition:opacity .12s,color .12s;pointer-events:auto;z-index:6}
.settings-account-drag-handle::before{content:"☰"}
.settings-account-drag-handle:hover{color:var(--green-d)}
.settings-account-drag-handle:active{cursor:grabbing;color:var(--green-d)}
.settings-account-row:hover .settings-account-drag-handle,.settings-account-row-dragging .settings-account-drag-handle,.settings-account-row-drop-before .settings-account-drag-handle,.settings-account-row-drop-after .settings-account-drag-handle{opacity:1}
.settings-accounts-table th:last-child,.settings-accounts-table td:last-child{position:static !important;right:auto !important;box-shadow:none !important}
.settings-accounts-table td.settings-account-meta-cell{position:relative !important}
.settings-accounts-table thead th:last-child{background:#F8FAFC !important}
table{width:100%;border-collapse:collapse;font-size:var(--ui-font-table-body)}
thead th{background:var(--bg);text-align:left;padding:var(--ui-table-head-padding-y) var(--ui-table-head-padding-x);font-weight:600;color:var(--muted);font-size:var(--ui-font-table-head);line-height:1.1;text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--border)}
tbody td{padding:var(--ui-table-body-padding-y) var(--ui-table-body-padding-x);font-size:var(--ui-font-table-body);line-height:1.2;border-bottom:1px solid var(--border)}
tbody tr:hover{background:var(--green-bg)}
tbody tr:last-child td{border:none}
td.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.table-wrap table{min-width:0}
.table-wrap th,.table-wrap td{min-width:0}
.table-wrap th{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.table-wrap td.num,.table-wrap th.num,.table-wrap td.num *,.table-wrap th.num *{white-space:nowrap}
.table-wrap td:last-child,.table-wrap th:last-child{white-space:nowrap}
/* Прилипающий последний столбец красился жёстким белым и перебивал подсветку
   строки: заливка строки-раздела и hover обрывались перед последней колонкой.
   Теперь ячейка берёт цвет фона строки, а строке задан непрозрачный фон по
   умолчанию — без него sticky-ячейка стала бы прозрачной и под ней поехал бы
   текст соседних колонок. Специфичность фона по умолчанию обнулена через
   :where(), чтобы любая подсветка строки (hover, раскрытая строка, раздел)
   продолжала выигрывать и автоматически доезжала до последнего столбца. */
:where(.table-wrap table) tbody tr{background-color:var(--card)}
.table-wrap table th:last-child,.table-wrap table td:last-child{position:sticky;right:0;z-index:2;background-color:inherit;box-shadow:-1px 0 0 var(--border)}
.table-wrap table thead th:last-child{z-index:3;background:var(--bg)}
.table-wrap>table>thead th{position:sticky;top:var(--table-head-sticky-top);z-index:7}
.table-wrap>table>thead th:last-child{z-index:8}
.table-wrap td:last-child .btn,.table-wrap td:last-child .badge,.table-wrap td:last-child button,.table-wrap td:last-child a{white-space:nowrap;max-width:none;flex-shrink:0}
.table-wrap .badge{max-width:none}
.table-wrap .btn{min-width:max-content}
.table-wrap .text-priority,.table-wrap .journal-content,.table-wrap .primary-row-title,.table-wrap .journal-main-text,.table-wrap .journal-sub-text,.table-wrap .objects-main-text,.table-wrap .objects-sub-text{min-width:0}
.receivable-table{table-layout:fixed}
.receivable-table th,.receivable-table td{vertical-align:middle}
.receivable-col-contract{width:120px}
.receivable-col-client{width:auto}
.receivable-col-money{width:180px}
.receivable-col-total{width:220px}
.receivable-contract-cell{white-space:nowrap}
.receivable-client-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.receivable-expected-cell{cursor:pointer;border-radius:8px;transition:background .15s ease,box-shadow .15s ease}
.receivable-expected-cell:hover{background:#f8fafc;box-shadow:inset 0 0 0 1px var(--green)}

/* Schedule kind badge — тип графика оплат у договора */
.sched-kind-badge{display:inline-flex;align-items:center;gap:5px;padding:1px 7px;border-radius:99px;font-size:10px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;background:#dbeafe;color:#2563eb;line-height:1.4}
.sched-kind-badge.event{background:#dcfce7;color:#15803d}
.sched-kind-badge.hybrid{background:#fce7f3;color:#be185d}
.sched-kind-badge.on-fact{background:#fef3c7;color:#d97706}
.sched-kind-badge.manual{background:#fff;color:#64748b;border:1px solid #e2e8f0}
.sched-kind-badge.calendar{background:#dbeafe;color:#2563eb}

/* Contract detail row — inline-раскрытие договора в реестре */
.contracts-table.contracts-has-open tbody tr.contracts-row{opacity:.45}
.contracts-table.contracts-has-open tbody tr.contracts-row.contract-row-open{opacity:1;background:#eef6ff}
.contracts-table.contracts-has-open tbody tr.contracts-row.contract-row-open:hover{background:#eaf4ff}
.contracts-table.contracts-has-open tbody tr.contracts-row.contract-row-open>td{background:#eef6ff}
.contracts-table.contracts-has-open tbody tr.contracts-row.contract-row-open:hover>td{background:#eaf4ff}
.contracts-table tbody tr.contracts-detail-row > td{background:#f8fafc;border-top:0;padding:0 16px 14px;box-shadow:inset 4px 0 var(--green)}
.contract-detail-block{padding:14px 18px 18px}
.contract-detail-header{display:flex;justify-content:flex-end;margin-bottom:8px}
.contract-detail-actions{display:flex;gap:6px}
.contract-foreman-compensation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0 4px;padding:10px 12px;border:1px solid #dce7e1;border-radius:8px;background:#f8fbf9}
.contract-foreman-compensation>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.contract-foreman-compensation span{color:var(--muted);font-size:11px}
.contract-foreman-compensation b{overflow:hidden;color:var(--text);font-size:13px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}
.contract-foreman-compensation.is-incomplete>div:last-child b{color:var(--amber)}
.contract-section{margin-top:14px}
.contract-section:first-of-type{margin-top:0}
.contract-section .section-title{font-size:11px;letter-spacing:.4px;text-transform:uppercase;color:#64748b;margin-bottom:8px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.contract-section .section-title b{color:#0f172a;font-size:12px;font-weight:700}

.events-strip{display:flex;gap:6px;flex-wrap:wrap}
.event-chip{padding:4px 10px;border-radius:99px;font-size:11px;background:#fff;border:1px solid #e2e8f0;color:#64748b;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.event-chip.done{background:#dcfce7;color:#15803d;border-color:transparent}
.event-chip.pending{background:#fef3c7;color:#d97706;border-color:transparent}
.event-chip .ev-when{opacity:.7}
/* Первичные документы договора: чипы у событий, сметы, строк графика */
.cd-doc-strip{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center}
.cd-doc-lead{font-size:11px;color:#64748b;margin-right:2px}
.cd-doc-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:99px;font-size:11px;background:#F0FDF4;border:1px solid #bbf7d0;color:#15803d;text-decoration:none;max-width:340px;white-space:nowrap;overflow:hidden;box-sizing:border-box}
.cd-doc-chip:hover{background:#DCFCE7;border-color:#16A34A}
.cd-doc-chip .cd-doc-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}
.cd-doc-chip .cd-doc-sz{color:#64748b;font-size:10px}
.cd-max-proof-chip{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:3px 9px;border-radius:99px;font:inherit;font-size:11px;background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box}
.cd-max-proof-chip:hover{background:#dbeafe;border-color:#60a5fa}
.cd-doc-add{padding:3px 9px;border-radius:99px;font-size:11px;background:#fff;border:1px dashed #bbf7d0;color:#16A34A;cursor:pointer;white-space:nowrap;box-sizing:border-box}
.cd-doc-add:hover{background:#F0FDF4;border-color:#16A34A}
.cd-doc-chip-schedule{flex:0 0 148px;width:148px;max-width:148px;justify-content:center}
.cd-doc-chip-schedule .cd-doc-name{max-width:116px}
.cd-max-proof-modal{max-width:680px}
.cd-max-proof-source{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-bottom:12px}
.cd-max-proof-profile{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center;min-width:0;padding:12px;border:1px solid #dbe5f0;border-radius:10px;background:#fff}
.cd-max-proof-profile .max-avatar{width:42px;height:42px;background:#e9f7ef;color:#15803d}
.cd-max-proof-profile-main{min-width:0}
.cd-max-proof-profile-main span{display:block;color:#64748b;font-size:10px;text-transform:uppercase;letter-spacing:.3px;margin-bottom:3px}
.cd-max-proof-profile-main b{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#0f172a;font-size:14px}
.cd-max-proof-profile-main em{display:block;margin-top:2px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#64748b;font-size:12px;font-style:normal}
.cd-max-proof-meta{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-bottom:12px}
.cd-max-proof-meta div{min-width:0;padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc}
.cd-max-proof-meta span,.cd-max-proof-message>span{display:block;color:#64748b;font-size:10px;text-transform:uppercase;letter-spacing:.3px;margin-bottom:4px}
.cd-max-proof-meta b{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#0f172a;font-size:13px}
.cd-max-proof-meta em{display:block;margin-top:2px;color:#64748b;font-size:12px;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cd-max-proof-message{padding:12px 14px;border:1px solid #bfdbfe;border-radius:10px;background:#eff6ff;color:#0f172a}
.cd-max-proof-message div{font-size:14px;line-height:1.48;white-space:pre-wrap}
/* Единый раздел «Документы и события»: группа без привязки + хронология с точками */
.cd-unfiled{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:9px 11px;margin-bottom:12px}
.cd-unfiled-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.cd-unfiled-title{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:#b45309;font-weight:600;margin-right:auto}
.cd-unfiled-list{display:flex;flex-direction:column;gap:6px}
.cd-unfiled-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cd-doc-link{padding:2px 9px;border-radius:99px;font-size:11px;background:#fff;border:1px dashed #d6b25e;color:#b45309;cursor:pointer;white-space:nowrap}
.cd-doc-link:hover{background:#fef3c7;border-color:#b45309}
.cd-unfiled-badge{display:inline-block;background:#fef3c7;color:#d97706;border-radius:99px;padding:2px 10px;font-size:11px;font-weight:600;white-space:nowrap}
.cd-timeline{display:flex;flex-direction:column;gap:12px;position:relative;padding-left:20px}
.cd-timeline:before{content:"";position:absolute;left:5px;top:5px;bottom:6px;width:2px;background:#e2e8f0}
.cd-tl-item{position:relative}
.cd-tl-dot{position:absolute;left:-15px;top:5px;width:12px;height:12px;border-radius:50%;background:#16A34A;border:2px solid #fff;box-shadow:0 0 0 1px #16A34A}
.cd-tl-body{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cd-link-menu{position:absolute;z-index:1200;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 12px 32px rgba(15,23,42,.16);padding:6px;min-width:240px;max-width:320px;max-height:280px;overflow:auto}
.cd-link-head{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:#64748b;padding:4px 8px 6px}
.cd-link-opt{display:block;width:100%;text-align:left;background:#fff;border:none;border-radius:7px;padding:7px 9px;font-size:12px;color:#0f172a;cursor:pointer;white-space:normal}
.cd-link-opt:hover{background:#F0FDF4;color:#15803d}
.cd-link-opt .ev-when{opacity:.7}
.cd-link-empty{padding:8px 9px;font-size:12px;color:#64748b;line-height:1.4}
.cd-estimate-docs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;background:#F0FDF4;border-bottom:1px solid #e2e8f0}
.cd-estimate-meta{display:flex;gap:8px;flex-wrap:wrap;padding:8px 10px;background:#fff;border-bottom:1px solid #e2e8f0;color:#475569;font-size:12px}
.cd-estimate-meta span{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border:1px solid #dbe7f3;border-radius:999px;background:#f8fafc;white-space:nowrap}
.cd-estimate-meta b{color:#0f172a;font-weight:650}
.schedule-table .cd-doc-cell{display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap;overflow:hidden}
.schedule-table .cd-doc-cell .cd-doc-chip{min-width:0}
.schedule-table .cd-doc-cell .cd-doc-chip .cd-doc-name{min-width:0}
.schedule-table .cd-doc-cell .cd-max-proof-chip{flex:0 0 148px}
.schedule-table .cd-doc-cell .cd-doc-add{display:inline-flex;align-items:center;justify-content:center;flex:0 0 76px;width:76px;max-width:76px;overflow:hidden;text-overflow:ellipsis}
/* Себестоимость по смете (прямые / накладные / план СС) в шапке баяна «Смета» */
.cd-smeta-cost{display:flex;gap:18px;flex-wrap:wrap;padding:8px 10px;background:#fff;border-bottom:1px solid #e2e8f0;font-size:12px}
.cd-smeta-k{display:flex;flex-direction:column;color:#64748b}
.cd-smeta-k b{color:#0f172a;font-size:13px;font-weight:700}
.cd-smeta-ss b{color:#15803d}

.stage-table,.schedule-table{width:100%;font-size:12px;border-collapse:collapse;background:#fff;border:1px solid #e2e8f0;border-radius:6px;overflow:hidden}
.stage-table-fit,.schedule-table-fit{table-layout:fixed}
.stage-table-fit .stage-col-name{width:28%}
.stage-table-fit .stage-col-sections{width:14%}
.stage-table-fit .stage-col-plan{width:17%}
.stage-table-fit .stage-col-term{width:14%}
.stage-table-fit .stage-col-fact{width:8%}
.stage-table-fit .stage-col-accepted{width:8%}
.stage-table-fit .stage-col-status{width:11%}
.schedule-table-fit .schedule-col-no{width:4%}
.schedule-table-fit .schedule-col-trigger{width:38%}
.schedule-table-fit .schedule-col-amount{width:13%}
.schedule-table-fit .schedule-col-expected{width:10%}
.schedule-table-fit .schedule-col-paid{width:13%}
.schedule-table-fit .schedule-col-doc{width:15%}
.schedule-table-fit .schedule-col-status{width:7%}
.stage-table th,.schedule-table th{text-align:left;padding:7px 10px;background:#f8fafc;color:#64748b;font-weight:600;font-size:10px;letter-spacing:.3px;text-transform:uppercase;border-bottom:1px solid #e2e8f0;white-space:nowrap}
.stage-table td,.schedule-table td{padding:8px 10px;vertical-align:top;border-bottom:1px solid #f1f5f9;background:#fff}
.stage-table tr:last-child td,.schedule-table tr:last-child td{border-bottom:none}
.stage-table td.num,.schedule-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.stage-table .stage-name{display:flex;align-items:center;min-width:0;font-weight:600;color:#0f172a}
.stage-table .stage-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stage-table .stage-no{display:inline-block;flex:0 0 18px;width:18px;height:18px;border-radius:50%;background:#dcfce7;color:#15803d;text-align:center;line-height:18px;font-size:11px;font-weight:700;margin-right:6px}
.stage-table .stage-constructives,.schedule-table .trigger-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.constructive-chip{display:inline-block;background:#f1f5f9;color:#475569;padding:1px 6px;border-radius:4px;font-size:11px;margin:1px 3px 1px 0;white-space:nowrap}
.schedule-table .trig-icon{display:inline-block;width:18px;text-align:center;margin-right:4px}
.schedule-table .trig-icon.cal{color:#2563eb}
.schedule-table .trig-icon.evt{color:#15803d}
.schedule-table .cell-sub{font-size:11px;color:#94a3b8;margin-top:2px}
.schedule-table .accreditive-held-text,.contracts-accreditive-line{color:#a65d00;font-weight:700}
.contract-schedule-table tbody tr{height:58px}
.contract-schedule-table td{vertical-align:middle}
.contract-schedule-table .schedule-payment-main{font-weight:700;line-height:1.2;white-space:nowrap}
.contract-schedule-table .schedule-status-cell{white-space:nowrap}
.contract-schedule-table .schedule-status-cell .badge{display:inline-flex;align-items:center;max-width:100%;white-space:nowrap}
.contract-schedule-table .cd-doc-cell{height:58px;padding-top:8px;padding-bottom:8px}
.contract-schedule-table .cd-doc-cell .cd-doc-chip-schedule{flex:1 1 0;width:auto;max-width:none}
.contract-schedule-table .cd-doc-cell .accreditive-bank-document-add{flex:0 1 92px;width:auto;max-width:92px}
.contract-schedule-table .schedule-accr_opened td{background:#fffdf7}
.contract-schedule-table .schedule-accr_executed td{background:#f7fdf9}
.contract-schedule-table .schedule-accr_returned td{background:#f8fafc}
.stage-table .cell-sub{font-size:11px;color:#94a3b8;margin-top:2px}
.stage-table-fit .cell-sub,.schedule-table-fit .cell-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.badge.b-sm{font-size:10px;padding:1px 6px}
.accreditive-document-intro{margin:0 0 14px;color:#526779;font-size:13px;line-height:1.45}
.accreditive-document-date{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;color:#526779;font-size:12px;font-weight:650}
.accreditive-document-date input{min-height:40px;padding:8px 10px;border:1px solid #cfdbe8;border-radius:8px;background:#fff;color:#0f172a;font:inherit}
.accreditive-return-account{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;color:#526779;font-size:12px;font-weight:650}
.accreditive-return-account select{min-height:40px;padding:8px 10px;border:1px solid #cfdbe8;border-radius:8px;background:#fff;color:#0f172a;font:inherit}
.accreditive-return-account small{color:#7b8da0;font-size:11px;font-weight:500;line-height:1.35}
.accreditive-document-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.accreditive-document-choice{display:flex;min-width:0;min-height:92px;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;padding:14px;border:1px solid #dbe5f0;border-radius:10px;background:#fff;color:#0f172a;text-align:left;cursor:pointer}
.accreditive-document-choice:hover,.accreditive-document-choice:focus-visible{border-color:#16A34A;background:#F0FDF4;outline:none;box-shadow:0 0 0 2px rgba(22,163,74,.12)}
.accreditive-document-choice.is-return:hover,.accreditive-document-choice.is-return:focus-visible{border-color:#d6a04c;background:#fffaf0;box-shadow:0 0 0 2px rgba(214,160,76,.14)}
.accreditive-document-choice b{font-size:14px}
.accreditive-document-choice span{color:#64748b;font-size:12px;line-height:1.35}
.estimate-group-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap;margin:12px 0 4px;font-size:12px;font-weight:600;color:#0f172a}
.estimate-group-head .stage-no{display:inline-block;width:18px;height:18px;border-radius:50%;background:#dcfce7;color:#15803d;text-align:center;line-height:18px;font-size:11px;font-weight:700;margin-right:6px}
.estimate-group-sum{font-size:11px;font-weight:600;color:#64748b}
.estimate-table{width:100%;min-width:1680px;table-layout:fixed;margin-bottom:6px}
.estimate-table .estimate-col-no{width:46px}
.estimate-table .estimate-col-name{width:390px}
.estimate-table .estimate-col-contractor{width:130px}
.estimate-table .estimate-col-qty{width:92px}
.estimate-table .estimate-col-unit{width:84px}
.estimate-table .estimate-col-price{width:116px}
.estimate-table .estimate-col-markup{width:96px}
.estimate-table .estimate-col-money{width:128px}
.estimate-table .estimate-col-total{width:124px}
.estimate-table th,.estimate-table td{overflow:hidden;text-overflow:ellipsis}
.estimate-table th.num,.estimate-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.estimate-table .estimate-name{white-space:normal;overflow-wrap:anywhere;line-height:1.3}
.estimate-table td.num{font-size:11px}
.estimate-table .estimate-unit{color:#64748b;font-weight:600}
.estimate-table .estimate-unit-sep{color:#cbd5e1;font-weight:400}
.estimate-table .estimate-head-main th{background:#f8fafc;color:#64748b;font-size:11px;font-weight:750;text-transform:none;border-bottom:1px solid #e2e8f0}
.estimate-table .estimate-head-sub th{background:#f8fafc;color:#94a3b8;font-size:10.5px;font-weight:700;border-bottom:1px solid #e2e8f0}
.estimate-work-row td{border-top:1px solid #dbe4f0;background:#fff;color:#0f172a;font-weight:650}
.estimate-work-row.is-collapsed td{background:#f8fafc;color:#334155}
.estimate-work-name{display:flex;align-items:center;gap:7px}
.estimate-work-toggle{display:inline-flex;align-items:center;justify-content:center;flex:0 0 22px;width:22px;height:22px;border:1px solid #dbe4f0;border-radius:6px;background:#fff;color:#64748b;font-size:12px;font-weight:800;cursor:pointer}
.estimate-work-toggle:hover{background:#f0fdf4;border-color:#86efac;color:#15803d}
.estimate-work-toggle-mark{line-height:1;transform:translateY(-1px)}
.estimate-work-toggle-placeholder{flex:0 0 22px;width:22px;height:22px}
.estimate-work-no{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:28px;height:18px;padding:0 6px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:10.5px;font-weight:750;white-space:nowrap}
.estimate-work-title{min-width:0;overflow-wrap:anywhere}
.estimate-resource-count{display:inline-flex;flex:0 0 auto;margin-left:2px;padding:1px 6px;border-radius:999px;background:#eef6ff;color:#64748b;font-size:10.5px;font-weight:650;white-space:nowrap}
.estimate-work-row.is-collapsed .estimate-resource-count{background:#f1f5f9;color:#64748b}
.estimate-resource-row td{background:#fbfdff;color:#475569;border-top:1px solid #edf2f7}
.estimate-resource-name{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:start;column-gap:8px;padding-left:42px!important;font-size:11.5px}
.estimate-contractor{font-size:11px;color:#64748b;white-space:nowrap}
.estimate-resource-type{display:inline-flex;align-items:center;justify-content:center;width:34px;height:19px;border-radius:3px;border:1px solid #cbd5e1;background:#fff;color:#334155;font-size:10px;font-weight:800;letter-spacing:.2px;vertical-align:middle;white-space:nowrap}
.estimate-resource-title{min-width:0;overflow-wrap:anywhere;line-height:1.3}
.estimate-resource-material .estimate-resource-type{border-color:#fbbf24;color:#d97706;background:#fffbeb}
.estimate-resource-labor .estimate-resource-type{border-color:#93c5fd;color:#2563eb;background:#eff6ff}
.estimate-resource-mechanism .estimate-resource-type{border-color:#c4b5fd;color:#7c3aed;background:#f5f3ff}
.estimate-resource-contractor .estimate-resource-type{border-color:#94a3b8;color:#475569;background:#f8fafc}
.estimate-economy{font-weight:750}
.estimate-economy.pos{color:#15803d}
.estimate-economy.neg{color:#dc2626}
.estimate-economy.muted{color:#64748b}
.contract-draft-banner{background:#fef3c7;color:#b45309;border:1px solid #fde68a;border-radius:6px;padding:8px 12px;font-size:12px;margin-bottom:10px}

.cost-summary-groups{display:flex;align-items:flex-start;gap:18px;min-width:0}
.cost-summary-group{min-width:0;flex:0 1 auto}
.cost-summary-group-escrow{padding-left:18px;border-left:1px solid #dbe4f0}
.contract-cost-summary .section-title{margin-bottom:6px}
.contract-loan-summary .section-title b{color:#0f766e}
.cost-summary-strip{display:flex;flex-wrap:nowrap;gap:8px;align-items:stretch;min-width:0}
.cost-stat{display:flex;flex:0 1 128px;flex-direction:column;gap:2px;min-width:112px;max-width:142px;padding:7px 9px;background:#fff;border:1px solid #e2e8f0;border-radius:8px}
.contract-cost-summary.is-escrow .cost-stat{flex-basis:126px}
.cost-stat .cost-k{font-size:9px;letter-spacing:.2px;text-transform:uppercase;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cost-stat .cost-v{font-size:12.5px;font-weight:800;color:#0f172a;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cost-stat .cost-v.pos{color:var(--green)}
.cost-stat .cost-v.neg{color:var(--red)}
.cost-stat .cost-v.warn{color:#b45309}
.cost-stat .cost-v.muted{color:#94a3b8;font-weight:600;font-size:11px}
@media(max-width:1280px){
  .cost-summary-groups{flex-wrap:wrap}
  .cost-summary-group-escrow{padding-left:0;border-left:0}
}
/* CONTRACT DETAIL — аккордеон секций (раскрытие строки реестра) */
.cd-acc{border:1px solid #e2e8f0;border-radius:8px;margin-top:8px;background:#fff;overflow:hidden}
.cd-acc-head{display:grid;grid-template-columns:16px minmax(0,1fr) max-content;gap:10px;align-items:center;padding:11px 14px;cursor:pointer;user-select:none}
.cd-acc-head:hover{background:#f8fafc}
.cd-tw{color:#94a3b8;font-size:11px;line-height:1;display:inline-block;transition:transform .15s;transform-origin:50% 50%}
.cd-acc.is-open>.cd-acc-head .cd-tw{transform:rotate(90deg);color:#15803d}
.cd-acc-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cd-acc-title b{color:#0f172a;font-size:13px;font-weight:700}
.cd-acc-summ{color:#64748b;font-size:12px;font-weight:500}
.cd-acc-right{color:#64748b;font-size:12px;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.cd-acc-body{display:none;padding:0 14px 14px}
.cd-acc.is-open>.cd-acc-body{display:block}
.cd-acc-body.is-flush{padding:0 0 10px}
/* под-аккордеоны сметы по этапам */
.cd-sg{border:1px solid #e2e8f0;border-radius:8px;margin:8px 14px 0;overflow:hidden}
.cd-sg-head{display:grid;grid-template-columns:14px minmax(0,1fr) max-content;gap:8px;align-items:center;padding:9px 12px;cursor:pointer;user-select:none;background:#fff}
.cd-sg-head:hover{background:#f8fafc}
.cd-sg.is-open>.cd-sg-head{background:#f0fdf4;border-bottom:1px solid #e2e8f0}
.cd-sg.is-open>.cd-sg-head .cd-tw{transform:rotate(90deg);color:#15803d}
.cd-sg-name{min-width:0;font-weight:600;color:#0f172a;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cd-sg-name .stage-no{display:inline-block;width:18px;height:18px;border-radius:50%;background:#dcfce7;color:#15803d;text-align:center;line-height:18px;font-size:11px;font-weight:700;margin-right:6px}
.cd-sg-meta{color:#64748b;font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}
.cd-sg-body{display:none;padding:8px 12px 10px;overflow-x:auto}
.cd-sg.is-open>.cd-sg-body{display:block}
/* Раскрытый блок: аккуратная «скобка» слева (маркер протяжённости) + подсветка заглавной строки =
   точки сворачивания. Верхний уровень (Смета/Этапы/График) — насыщенно-зелёный, подразделы — светлее. */
.cd-acc.is-open{position:relative}
.cd-acc.is-open>.cd-acc-head{background:#f0fdf4}
.cd-acc.is-open::before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:3px;background:var(--green);border-radius:0 3px 3px 0;pointer-events:none;z-index:3}
.cd-sg.is-open{position:relative}
.cd-sg.is-open::before{content:'';position:absolute;left:0;top:7px;bottom:7px;width:3px;background:#86efac;border-radius:0 3px 3px 0;pointer-events:none;z-index:3}
.estimate-reconcile[data-open="1"]{position:relative}
.estimate-reconcile[data-open="1"]::before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:3px;background:#86efac;border-radius:0 3px 3px 0;pointer-events:none;z-index:3}
/* внутри работы: раскрытая работа с ресурсами и её строки-ресурсы — самая светлая скобка слева */
.estimate-work-row.has-res[data-work-open="1"]>td:first-child{box-shadow:inset 3px 0 0 #bbf7d0}
.estimate-resource-row:not([hidden])>td:first-child{box-shadow:inset 3px 0 0 #bbf7d0}
.estimate-group-sub{font-size:11px;color:#64748b;margin:0 0 6px;font-variant-numeric:tabular-nums}
/* сверка факта — вложенный блок «Сметы» (карточка-инсет, как свод) */
.estimate-reconcile{margin:12px 8px 4px;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--card)}
.estimate-reconcile-head{display:flex;align-items:center;gap:8px;padding:11px 14px;margin:0;color:#0f172a}
.estimate-reconcile[data-open="1"] .estimate-reconcile-head{border-bottom:1px solid var(--border)}
.estimate-reconcile-head-txt{min-width:0}
.estimate-reconcile-head b{font-size:13px}
.estimate-reconcile-head .journal-detail-muted{margin-left:6px;font-size:11px}
/* подсветка панели, когда есть что проверить */
.estimate-reconcile--todo{border-color:#fdba74}
.estimate-reconcile--todo .estimate-reconcile-head{background:#fff7ed}
.estimate-reconcile-chip{display:inline-flex;align-items:center;border:0;border-radius:999px;padding:5px 11px;font-size:12px;font-weight:600;white-space:nowrap}
.estimate-reconcile-chip.ok{background:var(--green-l);color:var(--green-d)}
.estimate-reconcile-chip.warn{background:var(--amber-l);color:var(--amber)}
.estimate-reconcile-summary{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px;font-size:11px;color:#64748b}
.estimate-reconcile-summary span{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border:1px solid #dbe7f3;border-radius:999px;background:#fff;white-space:nowrap}
.estimate-reconcile-summary b{color:#0f172a;font-size:12px}
.estimate-reconcile-scroll{overflow-x:auto}
.estimate-reconcile-table{min-width:960px;table-layout:fixed}
.estimate-reconcile-table th:nth-child(1){width:25%}
.estimate-reconcile-table th:nth-child(2),
.estimate-reconcile-table th:nth-child(3),
.estimate-reconcile-table th:nth-child(4){width:105px}
.estimate-reconcile-table th:nth-child(5){width:90px}
.estimate-reconcile-table th:nth-child(6){width:32%}
.estimate-reconcile-table td{vertical-align:top}
.estimate-reconcile-table td.num,.estimate-reconcile-table th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.estimate-reconcile-table .pos{color:#15803d;font-weight:700}
.estimate-reconcile-table .neg{color:#dc2626;font-weight:700}
.estimate-reconcile-neutral{color:#64748b;font-weight:700}
.estimate-reconcile-row.estimate-reconcile-over td:first-child{box-shadow:inset 3px 0 #f97316}
.estimate-reconcile-row.estimate-reconcile-unplanned td:first-child{box-shadow:inset 3px 0 #dc2626}
.estimate-reconcile-row.estimate-reconcile-under td:first-child{box-shadow:inset 3px 0 #22c55e}
.estimate-reconcile-status{display:inline-flex;align-items:center;border-radius:999px;padding:3px 7px;background:#f1f5f9;color:#475569;font-size:11px;font-weight:700;white-space:nowrap}
.estimate-link-pill{display:inline-flex;align-items:center;width:max-content;margin-top:4px;border-radius:999px;padding:3px 7px;background:#eef2f7;color:#475569;font-size:10px;font-weight:800;white-space:nowrap}
.estimate-link-pill.suggested{background:#fff7ed;color:#c2410c}
.estimate-link-pill.confirmed,.estimate-link-pill.manual{background:#dcfce7;color:#15803d}
.estimate-link-pill.unmatched{background:#f1f5f9;color:#64748b}
.estimate-actual-line{display:grid;grid-template-columns:auto minmax(120px,1fr);gap:4px 6px;align-items:baseline;min-width:0;font-size:11px}
.estimate-actual-line .journal-detail-muted{grid-column:2;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.estimate-actual-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.estimate-op-link{font-size:11px;font-weight:800;padding:0;border:0;background:transparent;color:#2563eb;cursor:pointer}
.estimate-link-actions{grid-column:1/-1;display:flex;align-items:center;gap:5px;min-width:0;flex-wrap:wrap;margin-top:2px}
.estimate-link-actions .estimate-link-pill{margin-top:0}
.estimate-link-btn{min-height:24px;padding:3px 7px;font-size:10px;line-height:1.1}
.estimate-link-select{min-width:220px;max-width:360px;height:25px;padding:2px 24px 2px 8px;border:1px solid #dbe4f0;border-radius:7px;background:#fff;color:#334155;font-size:10.5px;line-height:1.1}
.estimate-reconcile-unmatched{margin-top:8px;font-size:11px;color:#b45309;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:7px 9px}
.estimate-unmatched-list{display:grid;gap:6px;margin-top:6px}
.estimate-unmatched-line{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px;align-items:start}
.estimate-unmatched-line>.num{text-align:right;font-variant-numeric:tabular-nums;color:#92400e;font-weight:800;white-space:nowrap}
.cd-stage-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.cd-stage-tools .btn{padding:5px 10px;font-size:12px}
.cd-stage-tools .journal-detail-muted{font-size:11px}

/* CONTRACTS GRID */
.contracts-toolbar{display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:clamp(48px,7vw,118px);align-items:center}
.contracts-toolbar-tools{display:flex;box-sizing:border-box;align-items:center;justify-content:flex-end;justify-self:end;gap:10px;width:min(100%,840px);min-width:0;padding-left:clamp(22px,2.4vw,38px);border-left:1px solid #e2e8f0}
.contracts-toolbar-tools .journal-filter-toggle,.contracts-toolbar-tools .table-filter-result,.contracts-toolbar-tools .table-filter-reset{flex:0 0 auto}
.contracts-toolbar-tools .table-filter-search{flex:1 1 320px;width:auto;min-width:220px;max-width:430px}
.contracts-missing-counterparty{flex:0 1 auto;padding:6px 10px;color:var(--red);border-color:var(--red);white-space:nowrap}
.contracts-toolbar .table-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.contracts-toolbar .table-actions .btn{white-space:nowrap}
.contracts-table{table-layout:fixed;width:100%;min-width:1180px}
.contracts-table th,.contracts-table td{vertical-align:middle;overflow:hidden}
.contracts-table th{font-size:var(--ui-font-table-head);line-height:1.1;padding:var(--ui-table-head-padding-y) var(--ui-table-head-padding-x)}
.contracts-table td{font-size:var(--ui-font-table-body);line-height:1.2;padding:var(--ui-table-body-padding-y) var(--ui-table-body-padding-x)}
.contracts-table tbody tr.contracts-row{cursor:pointer;height:76px}
.contracts-table tbody tr.contracts-row > td{height:76px;max-height:76px;overflow:hidden}
.contracts-table tbody tr.contracts-row:hover{background:#f8fafc}
.contracts-table tbody tr.contracts-row:hover td:last-child{background:#f8fafc}
.contracts-table tbody tr.contracts-row:focus-visible{outline:2px solid #9fd7b8;outline-offset:-2px}
.contracts-main-line{display:block;max-width:100%;font-weight:500;color:var(--text);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contracts-object-contract-line{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%;white-space:nowrap}
.contracts-object-badge{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;max-width:42%;min-height:20px;padding:2px 7px;border:1px solid #6bb889;border-radius:999px;background:#fff;color:var(--green-d);font:inherit;font-size:11px;font-weight:700;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.contracts-object-badge:hover{background:var(--green-l);border-color:var(--green);color:var(--green-d)}
.contracts-object-badge:focus-visible{outline:2px solid #9fd7b8;outline-offset:2px}
.contracts-object-badge-disabled{color:var(--muted);border-color:var(--border);background:var(--selected-bg);cursor:default}
.contracts-title-link{display:block;max-width:100%;padding:0;border:0;background:transparent;color:var(--text);font:inherit;font-weight:700;line-height:1.2;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.contracts-title-link:hover,.contracts-title-link:focus-visible{color:var(--green-d);text-decoration:underline;text-underline-offset:2px;outline:none}
.contracts-contract-name-link{flex:1 1 auto;min-width:0}
.contracts-date-line{display:block;max-width:100%;font-weight:600;color:#12304f;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contracts-sub-line{display:block;max-width:100%;font-size:11px;color:var(--muted);line-height:1.2;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Сделка (группа договоров: ДКП + подряд).
   Свёрнутая = объект, название, бейдж «Сделка», стрелка.
   Раскрытая = та же идентификация со стрелкой вниз + договоры-участники. */
.contracts-deal-caret{display:inline-block;color:var(--green-d,#15803d);font-size:11px;font-weight:700;margin-right:5px;vertical-align:middle}
.contracts-deal-badge{display:inline-flex;align-items:center;padding:1px 8px;border-radius:999px;background:var(--green,#16a34a);color:#fff;font-size:11px;font-weight:700}
.contracts-escrow-badge{display:inline-flex;align-items:center;flex:0 0 auto;padding:1px 6px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:11px;font-weight:700;line-height:1.2}
/* Показ/скрытие строк блока по состоянию is-open */
.contracts-table tbody.contracts-deal-block > tr.contracts-deal-strip,
.contracts-table tbody.contracts-deal-block > tr.contracts-deal-cost-source,
.contracts-table tbody.contracts-deal-block > tr.contracts-deal-footer{display:none}
.contracts-table tbody.contracts-deal-block:not(.is-open) > tr.contracts-deal-member{display:none}
.contracts-table tbody.contracts-deal-block.is-open > tr.contracts-deal-header-row{display:none}
.contracts-table tbody.contracts-deal-block.is-open > tr.contracts-deal-strip{display:table-row}
.contracts-table tbody.contracts-deal-block.is-open > tr.contracts-deal-cost-source{display:table-row}
.contracts-table tbody.contracts-deal-block.is-open > tr.contracts-deal-footer{display:table-row}
/* Узкая полоска-шапка развёрнутой сделки (без индикаторов) */
.contracts-table tbody tr.contracts-deal-strip{cursor:pointer}
.contracts-table tbody tr.contracts-deal-strip > td{padding:7px 14px;background:var(--green-l,#f0fdf4);font-size:12px;color:var(--text)}
.contracts-table tbody tr.contracts-deal-strip:hover > td{background:#e6f8ec}
.contracts-deal-strip-inner{display:flex;align-items:center;gap:10px;min-width:0}
.contracts-deal-strip-main{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1 auto;white-space:nowrap;overflow:hidden}
.contracts-deal-strip-title{font-weight:700;min-width:0;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis}
.contracts-deal-strip-main .contracts-object-badge{max-width:24%}
.contracts-deal-strip-number{font-weight:400;color:var(--text);flex:0 0 auto}
.contracts-deal-strip-meta{color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis}
.contracts-deal-strip-meta b{color:var(--text)}
.contracts-deal-strip-hint{color:var(--green-d,#15803d);margin-left:10px;font-size:11px}
.contracts-table tbody tr.contracts-deal-cost-source > td{padding:0 14px 10px;background:#f8fafc;border-top:1px solid #dbe7f3}
.deal-cost-source{border:1px solid #dbe7f3;border-radius:8px;background:#fff;overflow:hidden}
.deal-cost-source-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;background:#f0fdf4;border-bottom:1px solid #dbe7f3}
.deal-cost-source-head b{font-size:12.5px;color:#0f172a}
.deal-cost-source-head span{min-width:0;color:#64748b;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.deal-cost-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:#e2e8f0}
.deal-cost-row{display:flex;flex-direction:column;gap:3px;min-width:0;padding:9px 11px;background:#fff}
.deal-cost-row-label{font-size:11px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.deal-cost-row b{font-size:13px;color:#0f172a;font-variant-numeric:tabular-nums;white-space:nowrap}
.deal-cost-row small{font-size:10.5px;line-height:1.25;color:#64748b;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.deal-cost-row.deduct b{color:#0369a1}
.deal-cost-row.add b{color:#15803d}
.deal-cost-row.muted b{color:#94a3b8}
.deal-cost-row.total{background:#f8fafc}
.deal-cost-row.total b{color:#15803d}
.deal-cost-footer{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-end;padding:8px 12px;border-top:1px solid #e2e8f0;background:#f8fafc;color:#64748b;font-size:11.5px}
.deal-cost-footer b{font-variant-numeric:tabular-nums}
.deal-cost-footer b.pos,.contract-inline-indicator .ci-rest.is-profit{color:#15803d}
.deal-cost-footer b.neg{color:#dc2626}
.deal-cost-footer b.muted{color:#64748b}
/* Футер-строка несёт только нижнюю грань контура */
.contracts-table tbody tr.contracts-deal-footer > td{height:0;padding:0;line-height:0;font-size:0}
/* Зелёный контур вокруг всего блока сделки при раскрытии */
.contracts-table tbody.contracts-deal-block.is-open > tr > td:first-child{border-left:2px solid var(--green,#16a34a)}
.contracts-table tbody.contracts-deal-block.is-open > tr > td:last-child{border-right:2px solid var(--green,#16a34a)}
.contracts-table tbody.contracts-deal-block.is-open > tr.contracts-deal-strip > td{border-top:2px solid var(--green,#16a34a)}
.contracts-table tbody.contracts-deal-block.is-open > tr.contracts-deal-footer > td{border-bottom:2px solid var(--green,#16a34a)}
/* Первая строка свёрнутой сделки: объект + название + «Сделка» + стрелка */
.contracts-deal-titleline{display:flex;align-items:center;gap:6px;min-width:0}
.contracts-deal-titleline .contracts-deal-caret{margin-right:0}
.contracts-deal-identity{flex:1 1 auto;overflow:hidden}
.contracts-deal-name{min-width:0;flex:0 1 auto}
.contracts-deal-meta-line{display:flex;align-items:center;gap:6px}
.contracts-deal-types{min-width:0;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis}
.contracts-deal-period{min-width:0;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis}
/* Приглушение при раскрытии любого договора: полоска сделки гаснет как все строки */
.contracts-table.contracts-has-open tbody tr.contracts-deal-strip{opacity:.45}
/* и зелёная рамка блока сделки приглушается */
.contracts-table.contracts-has-open tbody.contracts-deal-block.is-open > tr > td:first-child,
.contracts-table.contracts-has-open tbody.contracts-deal-block.is-open > tr > td:last-child{border-color:rgba(22,163,74,.30)}
.contracts-table.contracts-has-open tbody.contracts-deal-block.is-open > tr.contracts-deal-strip > td{border-top-color:rgba(22,163,74,.30)}
.contracts-table.contracts-has-open tbody.contracts-deal-block.is-open > tr.contracts-deal-footer > td{border-bottom-color:rgba(22,163,74,.30)}
/* Договор внутри сделки разворачивается точно как единичный договор реестра —
   без зелёной скобы/фона (используется стандартная подсветка раскрытой строки). */
/* Кнопки управления на полоске раскрытой сделки */
.contracts-deal-strip-actions{margin-left:auto;display:inline-flex;gap:6px;flex:0 0 auto}
.btn-xs{padding:2px 8px;font-size:11px;line-height:1.5}
/* Модалка «Объединить в сделку» / управление составом */
.deal-form{display:flex;flex-direction:column;gap:14px}
.deal-form-note{margin:0;color:var(--muted);font-size:12.5px;line-height:1.4}
.deal-form-row{display:flex;flex-direction:column;gap:6px}
.deal-form-row > label{font-weight:600;font-size:13px;color:var(--text)}
.deal-form-input{padding:9px 12px;border:1px solid var(--border);border-radius:8px;font:inherit;font-size:13px;width:100%}
.deal-form-input:focus{outline:none;border-color:var(--green,#16a34a)}
.deal-pick-list{max-height:280px;overflow-y:auto;border:1px solid var(--border);border-radius:8px}
.deal-pick-item.is-locked{background:#f8fafc;color:#64748b}
.deal-pick-item.is-locked input{cursor:not-allowed}
.deal-pick-item.is-locked .deal-pick-main b{color:#64748b}
.deal-pick-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border);cursor:pointer}
.deal-pick-item:last-child{border-bottom:0}
.deal-pick-item:hover{background:#f8fafc}
.deal-pick-item input[type=checkbox]{width:16px;height:16px;flex:0 0 auto}
.deal-pick-main{display:flex;flex-direction:column;min-width:0;flex:1}
.deal-pick-main b{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.deal-pick-main small{color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.deal-pick-total{font-weight:600;font-size:12.5px;white-space:nowrap;flex:0 0 auto}
.deal-member-list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:8px}
.deal-member-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border)}
.deal-member-row:last-child{border-bottom:0}
.deal-form-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:4px}
.deal-form-hint{color:var(--muted);font-size:12.5px}
.deal-form-error{color:var(--red);font-size:12.5px;background:var(--red-l);border-radius:8px;padding:8px 12px}
.contracts-work-period{color:#64748b}
.contracts-warning-text{color:var(--red)}
.contracts-cell-warning{background:var(--red-l)}
.contracts-money-main{font-weight:500;color:var(--text);white-space:nowrap}
.contracts-money-cell{font-variant-numeric:tabular-nums}
.contracts-money-sub{color:#64748b}
.contracts-remaining{color:var(--amber)}
.contracts-status-cell .badge{max-width:100%;white-space:nowrap}
.contracts-status-meta{margin-top:8px;font-size:11px;line-height:1.2;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.contracts-status-meta.pos{color:var(--green-d)}
.contracts-status-meta.neg{color:var(--red)}
.contracts-status-meta.muted{color:#94a3b8}
.contracts-col-contract{width:282px}
.contracts-col-object{width:auto}
.contracts-col-money{width:252px}
.contracts-col-cost{width:252px}
.contracts-col-deadline{width:198px}
.contracts-col-status{width:145px}

/* Переключаемые виды реестра договоров */
#p-contracts{--contracts-view-accent:#526779;--contracts-view-soft:#f1f5f8;--contracts-view-border:#cedae2}
.contracts-page-settings-menu{width:290px}
.contracts-toolbar-title{display:flex;align-items:center;gap:10px;min-width:0;white-space:nowrap}
.contracts-toolbar-title>b{margin:0}
.contracts-registry-save-view{display:inline-flex;align-items:center;justify-content:center;flex:0 0 156px;width:156px;height:30px;padding:0 11px;border:1px solid var(--contracts-view-accent);border-radius:8px;background:var(--contracts-view-accent);color:#fff;font:inherit;font-size:10.5px;font-weight:800;white-space:nowrap;cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;transform:translateX(-4px);transition:opacity .14s,transform .14s,background .14s}
.contracts-registry-save-view.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(0)}
.contracts-registry-save-view.is-visible:hover,.contracts-registry-save-view.is-visible:focus-visible{background:color-mix(in srgb,var(--contracts-view-accent) 88%,#000);outline:3px solid color-mix(in srgb,var(--contracts-view-accent) 14%,transparent);outline-offset:1px}
.contracts-registry-view-control{position:relative;display:inline-flex;align-items:center;gap:7px;min-width:0}
.contracts-registry-view-control--page{--contracts-menu-accent:#16834a;--contracts-menu-soft:#eaf7ef;--contracts-menu-border:#bfe1cb;gap:6px;flex:0 0 auto}
.contracts-registry-view-button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:1px solid var(--contracts-menu-border);border-radius:9px;background:#fff;color:var(--contracts-menu-accent);font:inherit;cursor:pointer;transition:border-color .16s,background .16s,box-shadow .16s,transform .2s ease}
.contracts-registry-view-button:hover,.contracts-registry-view-button:focus-visible{border-color:var(--contracts-menu-accent);background:var(--contracts-menu-soft);box-shadow:0 0 0 3px color-mix(in srgb,var(--contracts-menu-accent) 13%,transparent);outline:none}
.contracts-registry-view-gear{display:block;font-size:17px;line-height:1;transition:transform .2s ease}
.contracts-registry-view-button[aria-expanded="true"]{border-color:var(--contracts-menu-accent);background:var(--contracts-menu-soft);transform:rotate(10deg)}
.contracts-registry-view-button[aria-expanded="true"] .contracts-registry-view-gear{transform:rotate(18deg)}
.contracts-registry-view-cue{position:relative;display:inline-flex;align-items:center;box-sizing:border-box;max-width:145px;min-height:28px;padding:3px 10px 3px 12px;border:1px solid #d3e8dc;border-radius:8px;background:#f7fbf8;color:#147443;font-size:10.5px;font-weight:700;line-height:18px;white-space:nowrap;opacity:1;transform:translateX(0) scale(1);transition:max-width .2s ease,padding .2s ease,border-width .2s ease,opacity .14s ease,transform .2s ease}
.contracts-registry-view-cue::before{content:"";position:absolute;left:-5px;top:50%;width:8px;height:8px;border-left:1px solid #d3e8dc;border-bottom:1px solid #d3e8dc;background:#f7fbf8;transform:translateY(-50%) rotate(45deg)}
.contracts-registry-view-button[aria-expanded="true"]+.contracts-registry-view-cue{max-width:0;padding-left:0;padding-right:0;border-width:0;opacity:0;overflow:hidden;transform:translateX(-8px) scale(.94);pointer-events:none}
.contracts-active-view{display:inline-flex;box-sizing:border-box;align-items:center;flex:0 1 auto;width:auto;min-height:24px;max-width:min(260px,28vw);padding:4px 10px;border:1px solid var(--contracts-view-border);border-radius:999px;background:var(--contracts-view-soft);color:var(--contracts-view-accent);font-size:10.5px;font-weight:800;line-height:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.contracts-registry-view-menu{position:absolute;z-index:70;top:calc(100% + 9px);right:0;width:min(410px,calc(100vw - 80px));max-height:min(690px,calc(100vh - 160px));padding:12px;overflow:auto;border:1px solid var(--contracts-menu-border);border-radius:12px;background:#fff;box-shadow:0 18px 42px rgba(15,23,42,.18);white-space:normal;animation:contracts-registry-menu-in .16s ease-out}
.contracts-registry-view-control--page .contracts-registry-view-menu{right:auto;left:0}
.contracts-registry-view-menu[hidden]{display:none}
.contracts-registry-view-menu-title{color:#126b3d;font-size:12px;font-weight:900;letter-spacing:.01em}
.contracts-registry-view-menu-note{margin:10px 2px 1px;color:var(--muted);font-size:10.5px;line-height:1.35}
.contracts-registry-view-group-title{margin:11px 2px 2px;padding-top:9px;border-top:1px solid var(--border);color:#526779;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
.contracts-registry-add-personal-view{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;align-items:center;width:100%;min-height:52px;margin-top:8px;padding:7px 9px;border:1px dashed var(--contracts-menu-border);border-radius:9px;background:color-mix(in srgb,var(--contracts-menu-soft) 45%,#fff);color:var(--contracts-menu-accent);font:inherit;text-align:left;cursor:pointer;transition:border-color .14s,background .14s,transform .14s}
.contracts-registry-add-personal-view:hover,.contracts-registry-add-personal-view:focus-visible{border-style:solid;border-color:var(--contracts-menu-accent);background:var(--contracts-menu-soft);transform:translateX(1px);outline:none}
.contracts-registry-add-personal-view>span:first-child{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:#fff;font-size:18px;font-weight:800}
.contracts-registry-add-personal-view>span:last-child{display:grid;gap:2px;min-width:0}
.contracts-registry-add-personal-view b{font-size:12px;line-height:1.2}
.contracts-registry-add-personal-view small{overflow:hidden;color:var(--muted);font-size:10.5px;font-weight:500;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
.contracts-view-options{display:grid;gap:5px;margin-top:8px}
.contracts-view-option{position:relative;width:100%;min-height:52px;overflow:hidden;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--text);transition:border-color .14s,background .14s,transform .14s}
.contracts-view-option:hover{border-color:var(--contracts-menu-border);background:var(--contracts-menu-soft);transform:translateX(1px)}
.contracts-view-option.active{border-color:var(--contracts-menu-border);background:var(--contracts-menu-soft);box-shadow:inset 3px 0 var(--contracts-menu-accent)}
.contracts-view-option-main{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;align-items:center;width:100%;min-height:50px;padding:7px 42px 7px 9px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.contracts-view-option-main:focus-visible{outline:2px solid color-mix(in srgb,var(--contracts-menu-accent) 34%,transparent);outline-offset:-2px}
.contracts-view-option-icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:#eef2f7;color:#496174;font-size:15px;font-weight:900}
.contracts-view-option:hover .contracts-view-option-icon,.contracts-view-option.active .contracts-view-option-icon{background:#fff;color:var(--contracts-menu-accent)}
.contracts-view-option-copy{display:grid;gap:2px;min-width:0}
.contracts-view-option-copy b,.contracts-view-option-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.contracts-view-option-copy b{font-size:12px;line-height:1.2}
.contracts-view-option-copy small{color:var(--muted);font-size:10.5px;line-height:1.3}
.contracts-view-option-check{position:absolute;z-index:1;top:50%;right:10px;display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:999px;background:var(--contracts-menu-accent);color:#fff;font-size:11px;font-weight:900;opacity:0;transform:translateY(-50%) scale(.75);transition:opacity .14s,transform .14s}
.contracts-view-option.active .contracts-view-option-check{opacity:1;transform:translateY(-50%) scale(1)}
.contracts-view-option-actions{position:absolute;z-index:3;top:50%;right:6px;display:flex;align-items:center;gap:3px;padding:3px;border:1px solid color-mix(in srgb,var(--contracts-menu-border) 72%,#fff);border-radius:8px;background:color-mix(in srgb,#fff 92%,var(--contracts-menu-soft));box-shadow:-8px 0 14px color-mix(in srgb,#fff 82%,transparent);opacity:0;pointer-events:none;transform:translate(5px,-50%);transition:opacity .13s,transform .13s}
.contracts-view-option:hover .contracts-view-option-actions,.contracts-view-option:focus-within .contracts-view-option-actions{opacity:1;pointer-events:auto;transform:translate(0,-50%)}
.contracts-view-option:hover .contracts-view-option-check,.contracts-view-option:focus-within .contracts-view-option-check{opacity:0}
.contracts-view-option-actions button{display:flex;align-items:center;justify-content:center;width:27px;height:27px;padding:0;border:1px solid transparent;border-radius:6px;background:transparent;color:#526779;font:inherit;font-size:13px;font-weight:900;cursor:pointer}
.contracts-view-option-actions button:hover,.contracts-view-option-actions button:focus-visible{border-color:var(--contracts-menu-border);background:#fff;color:var(--contracts-menu-accent);outline:none}
.contracts-view-option-actions .is-select{color:#16794a}
.contracts-view-option-actions .is-delete{color:#b54545}
.contracts-view-option-actions .is-delete:hover,.contracts-view-option-actions .is-delete:focus-visible{border-color:#efb9b9;background:#fff5f5;color:#b42323}
.contracts-registry-view-preferences{display:grid;gap:4px;margin-top:10px;padding-top:9px;border-top:1px solid var(--border)}
.contracts-registry-preference{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:12px;align-items:center;width:100%;min-height:30px;padding:3px 2px;border:0;background:transparent;color:#526779;font:inherit;font-size:11.5px;font-weight:750;text-align:left;cursor:pointer}
.contracts-registry-preference:hover{color:var(--contracts-menu-accent)}
.contracts-registry-switch{position:relative;display:block;width:36px;height:21px;border-radius:999px;background:#cbd5e1;transition:background .15s}
.contracts-registry-switch b{position:absolute;top:3px;left:3px;width:15px;height:15px;border-radius:999px;background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.25);transition:transform .16s}
.contracts-registry-switch.is-on{background:var(--contracts-menu-accent)}
.contracts-registry-switch.is-on b{transform:translateX(15px)}
.contracts-registry-page-actions{margin-top:10px}.contracts-registry-page-actions .contracts-registry-view-group-title{margin-top:0}.contracts-registry-page-action-list{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:7px}.contracts-registry-page-action{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:center;min-width:0;min-height:52px;padding:7px 8px;border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color .14s,background .14s,transform .14s}.contracts-registry-page-action:hover,.contracts-registry-page-action:focus-visible{border-color:var(--contracts-menu-border);background:var(--contracts-menu-soft);color:var(--contracts-menu-accent);transform:translateY(-1px);outline:none}.contracts-registry-page-action-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:7px;background:#eef2f7;font-size:13px}.contracts-registry-page-action>span:last-child{display:grid;gap:2px;min-width:0}.contracts-registry-page-action b,.contracts-registry-page-action small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contracts-registry-page-action b{font-size:10.5px;line-height:1.2}.contracts-registry-page-action small{color:var(--muted);font-size:9px;line-height:1.2}.contracts-registry-page-actions-note{margin:8px 2px 0;color:var(--muted);font-size:10.5px;line-height:1.35}
.contracts-registry-shell{position:relative;border-color:var(--contracts-view-border)}
.contracts-registry-shell::before{content:none}
.contracts-registry-shell .contracts-table thead th,.contracts-registry-shell .contracts-table thead th:last-child{background:var(--contracts-view-soft);box-shadow:none}
.contracts-registry-shell .filter-chip.active{border-color:var(--contracts-view-accent);background:var(--contracts-view-soft);color:var(--contracts-view-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--contracts-view-accent) 12%,transparent)}
.contracts-registry-shell .table-filter-search:focus{border-color:var(--contracts-view-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--contracts-view-accent) 12%,transparent);outline:none}
.contracts-view-kpi-grid .contracts-view-kpi{--contracts-kpi-color:var(--text);position:relative;width:100%;overflow:hidden;border-color:var(--border);background:var(--card);box-shadow:var(--shadow);color:var(--text);font:inherit;text-align:left}
.contracts-view-kpi-grid .contracts-view-kpi .kpi-value{color:var(--contracts-kpi-color)}
.contracts-view-kpi-grid .contracts-view-kpi.is-neutral{--contracts-kpi-color:var(--text)}
.contracts-view-kpi-grid .contracts-view-kpi.is-positive{--contracts-kpi-color:#159447}
.contracts-view-kpi-grid .contracts-view-kpi.is-future{--contracts-kpi-color:#2878b8}
.contracts-view-kpi-grid .contracts-view-kpi.is-attention{--contracts-kpi-color:#d97706}
.contracts-view-kpi-grid .contracts-view-kpi.is-risk{--contracts-kpi-color:#dc2626}
.contracts-view-kpi-grid .contracts-view-kpi.is-plan{--contracts-kpi-color:#172033}
.contracts-view-kpi-grid .contracts-view-kpi.is-fact{--contracts-kpi-color:#159447}
.contracts-view-kpi-grid .contracts-view-kpi.is-missing{--contracts-kpi-color:#d97706}
.contracts-view-kpi-grid .contracts-view-kpi.clickable:hover{border-color:var(--green);box-shadow:var(--shadow-m)}
.contracts-view-kpi-grid .contracts-view-kpi.clickable.active{border-color:var(--green);background:var(--selected-bg);box-shadow:var(--selected-ring)}
.contracts-cell-main{display:block;max-width:100%;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contracts-cell-main.is-missing{color:#b45309}
.contracts-table[data-contracts-view="work"]{min-width:1080px}
.contracts-table[data-contracts-view="stages"]{min-width:1180px}
.contracts-table[data-contracts-view="payments"]{min-width:1320px}
.contracts-table[data-contracts-view="costs"]{min-width:1360px}
.contracts-table[data-contracts-view="documents"]{min-width:1280px}
.contracts-col-work-contract{width:300px}.contracts-col-work-state{width:170px}.contracts-col-work-date{width:150px}.contracts-col-work-control{width:240px}
.contracts-col-stage-contract{width:270px}.contracts-col-stage-name{width:210px}.contracts-col-stage-state{width:160px}.contracts-col-stage-date{width:140px}.contracts-col-stage-control{width:220px}
.contracts-col-client{width:220px}.contracts-col-works{width:220px}
.contracts-col-payment-contract{width:255px}.contracts-col-payment-total{width:170px}.contracts-col-payment-paid{width:190px}.contracts-col-payment-rest{width:165px}.contracts-col-payment-state{width:190px}
.contracts-col-cost-contract{width:245px}.contracts-col-cost-plan{width:155px}.contracts-col-cost-fact{width:190px}.contracts-col-cost-progress{width:205px}.contracts-col-cost-forecast{width:160px}.contracts-col-cost-result{width:200px}
.contracts-col-doc-contract{width:235px}.contracts-col-doc-type{width:160px}.contracts-col-doc-date{width:145px}.contracts-col-doc-period{width:250px}.contracts-col-doc-bundle{width:275px}.contracts-col-doc-status{width:155px}
.contracts-view-row td{font-variant-numeric:tabular-nums}
.contracts-client-cell.is-missing .contracts-cell-main{color:#b45309}
.contract-work-state,.contract-payment-state{display:inline-flex;align-items:center;min-height:23px;max-width:100%;padding:3px 8px;border-radius:999px;background:#eef2f7;color:#526779;font-size:10.5px;font-weight:800;white-space:nowrap}
.contract-work-state.is-active,.contract-payment-state.is-paid{background:#e4f7eb;color:#14733c}
.contract-work-state.is-review,.contract-payment-state.is-due{background:#e8f3ff;color:#1d5f9d}
.contract-work-state.is-future,.contract-payment-state.is-unpaid{background:#f1f5f9;color:#526779}
.contract-work-state.is-attention{background:#fff0d3;color:#a85b00}
.contract-work-state.is-done{background:#e9f7ee;color:#247247}
.contract-work-state.is-muted{background:#f1f5f9;color:#64748b}
.contract-payment-state.is-overpaid{background:#e6f5ff;color:#0369a1}
.contract-payment-state.is-accreditive{background:#fff0d3;color:#9a5700}
.contracts-work-date-cell{padding-top:7px!important;padding-bottom:7px!important}
.contract-work-date-level{display:flex;align-items:baseline;justify-content:space-between;gap:6px;min-width:0;line-height:1.15}
.contract-work-date-level+ .contract-work-date-level{margin-top:6px;padding-top:5px;border-top:1px dashed #dce5ed}
.contract-work-date-level span{min-width:0;color:#17314a;font-size:12px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contract-work-date-level small{flex:0 0 auto;color:#8a9aaa;font-size:9.5px;font-weight:700}
.contract-work-date-level.is-missing span{color:#b45309;font-weight:700}
.contract-inline-date{position:relative;display:flex;align-items:center;width:100%;min-width:0;min-height:34px;border-radius:8px}
.contract-inline-date-button{display:flex;align-items:baseline;justify-content:space-between;gap:6px;width:100%;min-width:0;min-height:34px;padding:6px 7px;border:1px solid transparent;border-radius:8px;background:transparent;color:inherit;font:inherit;line-height:1.15;text-align:left;cursor:pointer;transition:border-color .12s,background .12s,box-shadow .12s}
.contract-inline-date-button span{min-width:0;color:#17314a;font-size:12px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.contract-inline-date-button small{flex:0 0 auto;color:#8a9aaa;font-size:9.5px;font-weight:700}
.contract-inline-date.is-missing .contract-inline-date-button span{color:#b45309;font-weight:700}
.contract-inline-date-button:hover,.contract-inline-date-button:focus-visible{border-color:var(--contracts-view-border);background:var(--contracts-view-soft);box-shadow:0 0 0 2px color-mix(in srgb,var(--contracts-view-accent) 8%,transparent);outline:none}
.contract-inline-date.is-editing{display:grid;grid-template-columns:minmax(0,1fr) 25px;gap:3px;min-height:34px}
.contract-inline-date-input{box-sizing:border-box;width:100%;min-width:0;height:34px;padding:5px 4px 5px 7px;border:1px solid var(--contracts-view-accent);border-radius:8px;background:#fff;color:#17314a;font:inherit;font-size:11px;font-weight:750;font-variant-numeric:tabular-nums;outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--contracts-view-accent) 12%,transparent)}
.contract-inline-date-input:disabled{cursor:wait;opacity:.68}
.contract-inline-date-clear{display:flex;align-items:center;justify-content:center;width:25px;height:30px;padding:0;border:1px solid transparent;border-radius:7px;background:transparent;color:#7b8c9d;font:inherit;font-size:16px;line-height:1;cursor:pointer}
.contract-inline-date-clear:hover,.contract-inline-date-clear:focus-visible{border-color:#d9e2ea;background:#fff;color:#b42323;outline:none}
.contract-inline-date-clear:disabled{cursor:wait;opacity:.45}
.contract-inline-date.is-saving::after{content:'';position:absolute;right:33px;width:12px;height:12px;border:2px solid color-mix(in srgb,var(--contracts-view-accent) 28%,transparent);border-top-color:var(--contracts-view-accent);border-radius:999px;animation:contract-inline-date-spin .7s linear infinite;pointer-events:none}
.contract-inline-date.is-static{cursor:default}.contract-inline-date.is-unavailable{opacity:.72}
@keyframes contract-inline-date-spin{to{transform:rotate(360deg)}}
.contracts-stage-progress-label{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.contracts-stage-progress-label span{min-width:0;color:#172033;font-size:12px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contracts-stage-progress-label b{flex:0 0 auto;color:var(--contracts-view-accent);font-size:10px}
.contracts-stage-progress{height:5px;margin-top:7px;border-radius:999px;background:#e6edf4;overflow:hidden}
.contracts-stage-progress span{display:block;width:var(--stage-progress,0%);height:100%;border-radius:inherit;background:var(--contracts-view-accent)}
.contracts-stage-progress.is-done span{background:#7d909c}.contracts-stage-progress.is-empty span{display:none}
.contracts-work-control-cell .contract-stage-deadline{min-height:39px;padding:6px 7px}
.contract-dates-edit-button{display:block;width:100%;margin-top:5px;padding:3px 8px;border:1px solid var(--contracts-view-border);border-radius:7px;background:#fff;color:var(--contracts-view-accent);font:inherit;font-size:10.5px;font-weight:800;cursor:pointer}
.contract-dates-edit-button:hover,.contract-dates-edit-button:focus-visible{border-color:var(--contracts-view-accent);background:var(--contracts-view-soft);outline:none}
.contracts-view-value{font-size:13px;font-weight:800;color:#172033;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contracts-view-value.is-positive,.contracts-view-result.is-positive{color:var(--green-d)}
.contracts-view-value.is-due{color:#b45309}
.contracts-view-progress{height:5px;margin-top:7px;border-radius:999px;background:#e6edf4;overflow:hidden}
.contracts-view-progress span,.contracts-view-progress.is-cost span{display:block;height:100%;border-radius:inherit;background:var(--contracts-view-accent)}
.contracts-view-progress.is-cost.is-risk span{background:#bd3e3e}
.contracts-view-progress-label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:#526779}
.contracts-view-progress-label span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contracts-view-progress-label b{color:#17314a}
.contracts-view-result{font-size:11.5px;font-weight:800;color:#526779;line-height:1.3}
.contracts-view-result.is-risk{color:var(--red)}
.contract-cost-state{display:inline-flex;align-items:center;min-height:23px;max-width:100%;padding:3px 8px;border-radius:999px;background:#edf3f5;color:#526779;font-size:10.5px;font-weight:800;white-space:nowrap}.contract-cost-state.is-within{background:#e4f7eb;color:#14733c}.contract-cost-state.is-risk{background:#fff0f0;color:#b83232}.contract-cost-state.is-no-plan{background:#fff3da;color:#a85b00}.contract-cost-state+.contracts-view-result{margin-top:5px}
.contract-document-bundle{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.contract-document-chip{display:inline-flex;align-items:center;gap:4px;min-height:26px;padding:4px 8px;border:1px solid #bcdac8;border-radius:8px;background:#eff9f3;color:#14733c;font:inherit;font-size:10.5px;font-weight:800;cursor:pointer;transition:border-color .12s,background .12s,transform .12s}.contract-document-chip:hover,.contract-document-chip:focus-visible{border-color:var(--green);background:#e4f7eb;outline:none;transform:translateY(-1px)}.contract-document-chip.is-missing{border-color:#e7c995;background:#fff8e9;color:#a85b00}.contract-document-chip.is-missing:hover,.contract-document-chip.is-missing:focus-visible{border-color:#d49a3a;background:#fff3d6}.contract-document-chip small{font-size:8.5px;font-weight:800;opacity:.78}
@keyframes contracts-registry-menu-in{from{opacity:0;transform:translateY(-5px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.contracts-registry-view-gear,.contracts-view-option{transition:none}.contracts-registry-view-menu{animation:none}}

/* Личные наборы столбцов реестра договоров */
.modal.contracts-columns-modal{display:flex;flex-direction:column;width:min(1080px,calc(100vw - 28px));max-width:1080px;max-height:calc(100vh - 28px);overflow:hidden}
.contracts-columns-modal .modal-head{flex:0 0 auto;padding:16px 20px}.contracts-columns-modal .modal-body{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;padding:14px 18px 0;overflow:hidden}
.contracts-columns-intro{display:grid;flex:0 0 auto;grid-template-columns:max-content minmax(0,1fr);gap:9px;align-items:baseline;padding:9px 11px;border:1px solid var(--contracts-view-border);border-radius:9px;background:var(--contracts-view-soft)}
.contracts-columns-intro b{color:var(--contracts-view-accent);font-size:11.5px}.contracts-columns-intro span{min-width:0;color:#526779;font-size:10.5px;line-height:1.35}
.contracts-columns-name{flex:0 0 auto;margin:11px 0}.contracts-columns-name input{height:36px}
.contracts-columns-workspace{display:grid;flex:1 1 auto;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:12px;min-height:0}
.contracts-columns-pane{display:flex;min-height:0;overflow:hidden;flex-direction:column;border:1px solid #dbe4ec;border-radius:11px;background:#fff}
.contracts-columns-pane-head{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:9px 11px;border-bottom:1px solid #e3eaf0;background:#f8fafc}
.contracts-columns-pane-head>div{display:grid;gap:2px;min-width:0}.contracts-columns-pane-head b{color:#24364a;font-size:12px}.contracts-columns-pane-head small{color:var(--muted);font-size:9.5px}.contracts-columns-pane-head>span{flex:0 0 auto;padding:3px 7px;border-radius:999px;background:var(--contracts-view-soft);color:var(--contracts-view-accent);font-size:10px;font-weight:800}
.contracts-columns-catalog{flex:1 1 auto;min-height:0;padding:0 9px 10px;overflow:auto;scrollbar-gutter:stable}
.contracts-column-catalog-group h4{position:sticky;z-index:2;top:0;margin:0 -1px;padding:9px 1px 6px;background:#fff;color:#607489;font-size:9.5px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
.contracts-column-catalog-group>div{display:grid;gap:5px}
.contracts-column-catalog-item{display:grid;grid-template-columns:22px minmax(0,1fr) 126px;gap:8px;align-items:center;width:100%;min-height:58px;padding:6px 8px;border:1px solid #dce5ed;border-radius:8px;background:#fff;color:var(--text);font:inherit;text-align:left;cursor:pointer}
.contracts-column-catalog-item:hover,.contracts-column-catalog-item:focus-visible{border-color:var(--contracts-view-border);background:#fafcfd;outline:none}.contracts-column-catalog-item.is-selected{border-color:var(--contracts-view-border);background:var(--contracts-view-soft)}.contracts-column-catalog-item.is-required{cursor:default;opacity:1}
.contracts-column-catalog-mark{display:flex;align-items:center;justify-content:center;width:21px;height:21px;border-radius:6px;background:#edf2f6;color:#607489;font-size:12px;font-weight:900}.contracts-column-catalog-item.is-selected .contracts-column-catalog-mark{background:var(--contracts-view-accent);color:#fff}
.contracts-column-catalog-copy{display:grid;gap:3px;min-width:0}.contracts-column-catalog-copy b{font-size:10.5px;line-height:1.2}.contracts-column-catalog-copy small{display:-webkit-box;overflow:hidden;color:#728397;font-size:9.3px;line-height:1.25;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.contracts-column-sample{position:relative;display:grid;gap:2px;min-width:0;min-height:34px;padding:5px 7px;border:1px solid #dde6ee;border-radius:7px;background:#fff;overflow:hidden;font-style:normal}.contracts-column-sample b{position:relative;z-index:1;min-width:0;color:#1b324a;font-size:9.5px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contracts-column-sample small{position:relative;z-index:1;min-width:0;color:#8796a6;font-size:8.2px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contracts-column-sample em{justify-self:start;padding:2px 5px;border-radius:999px;background:#eef2f7;color:#526779;font-size:8.5px;font-weight:800;font-style:normal;white-space:nowrap}.contracts-column-sample em.is-green{background:#e5f6eb;color:#14733c}.contracts-column-sample em.is-blue{background:#e8f3ff;color:#1d5f9d}.contracts-column-sample.is-indicator i{position:absolute;inset:auto 6px 3px;height:3px;border-radius:999px;background:linear-gradient(90deg,var(--contracts-view-accent) var(--sample-progress),#e6edf4 var(--sample-progress))}.contracts-column-sample.is-blue i{background:linear-gradient(90deg,#3d8fc0 var(--sample-progress),#e6edf4 var(--sample-progress))}.contracts-column-sample.is-control{box-shadow:inset 2px 0 var(--contracts-view-accent)}
.contracts-column-sample.is-docs b{color:#14733c}.contracts-column-sample.is-docs small{color:#a85b00}
.contracts-columns-header-preview-wrap{display:grid;flex:0 0 auto;gap:5px;padding:8px 9px;border-bottom:1px solid #e3eaf0;background:#fff}.contracts-columns-header-preview-wrap>small{color:#728397;font-size:9px;font-weight:700}.contracts-columns-header-preview{display:flex;min-height:29px;overflow-x:auto;border:1px solid var(--contracts-view-border);border-radius:7px;background:var(--contracts-view-soft)}.contracts-columns-header-preview span{display:flex;flex:0 0 max-content;align-items:center;max-width:150px;padding:5px 8px;border-right:1px solid var(--contracts-view-border);color:var(--contracts-view-accent);font-size:8.5px;font-weight:800;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contracts-columns-header-preview span:last-child{border-right:0}
.contracts-columns-selected{display:flex;flex:1 1 auto;min-height:0;overflow:auto;flex-direction:column;gap:5px;padding:8px;scrollbar-gutter:stable}
.contracts-column-selected-item{display:grid;grid-template-columns:25px minmax(0,1fr) 116px 76px;gap:7px;align-items:center;min-height:58px;padding:6px 7px;border:1px solid #dce5ed;border-radius:8px;background:#fff;transition:transform .12s,box-shadow .12s}.contracts-column-selected-item.is-dragging{opacity:.72;box-shadow:0 8px 18px rgba(15,23,42,.14);transform:scale(.99)}
.contracts-column-drag-handle{display:flex;align-items:center;justify-content:center;width:25px;height:34px;padding:0;border:0;border-radius:6px;background:#edf2f6;color:#607489;font:inherit;font-size:15px;cursor:grab}.contracts-column-drag-handle:hover:not(:disabled),.contracts-column-drag-handle:focus-visible:not(:disabled){background:var(--contracts-view-soft);color:var(--contracts-view-accent);outline:none}.contracts-column-drag-handle:active{cursor:grabbing}.contracts-column-drag-handle:disabled{opacity:.3;cursor:default}
.contracts-column-selected-copy{display:grid;gap:3px;min-width:0}.contracts-column-selected-copy b{font-size:10.5px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contracts-column-selected-copy small{display:-webkit-box;overflow:hidden;color:#728397;font-size:9.2px;line-height:1.2;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.contracts-column-selected-actions{display:grid;grid-template-columns:repeat(3,22px);gap:3px;justify-content:end}.contracts-column-selected-actions button{display:flex;align-items:center;justify-content:center;width:22px;height:24px;padding:0;border:1px solid #dbe4ec;border-radius:6px;background:#fff;color:#607489;font:inherit;font-size:11px;cursor:pointer}.contracts-column-selected-actions button:hover:not(:disabled),.contracts-column-selected-actions button:focus-visible:not(:disabled){border-color:var(--contracts-view-border);background:var(--contracts-view-soft);color:var(--contracts-view-accent);outline:none}.contracts-column-selected-actions button.is-remove{color:#b44b4b}.contracts-column-selected-actions button:disabled{opacity:.3;cursor:default}
.contracts-columns-foot{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:12px;margin:12px -18px 0;padding:11px 18px;border-top:1px solid var(--border);background:var(--bg)}.contracts-columns-foot>div{display:flex;gap:8px}.contracts-columns-delete{color:var(--red);border-color:#efc5c5}
.contracts-save-view-modal{width:min(460px,calc(100vw - 32px));max-width:460px}.contracts-save-view-modal form{display:contents}.contracts-save-view-hint{margin:0 0 14px;color:var(--muted);font-size:13px;line-height:1.45}.contracts-save-view-error{min-height:18px;margin-top:6px;color:var(--red);font-size:12px}
.contracts-column-heading{display:flex;align-items:center;gap:4px;min-width:0}.contracts-column-heading>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contracts-column-sort{display:inline-flex;flex:0 0 18px;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:0;border-radius:5px;background:transparent;color:#8190a0;font:inherit;font-size:12px;font-weight:900;line-height:1;cursor:pointer;opacity:.68}.contracts-column-sort:hover,.contracts-column-sort:focus-visible{background:#fff;color:var(--contracts-view-accent);box-shadow:inset 0 0 0 1px var(--contracts-view-border);outline:none;opacity:1}.contracts-column-sort.is-active{background:var(--contracts-view-accent);color:#fff;box-shadow:0 1px 2px color-mix(in srgb,var(--contracts-view-accent) 26%,transparent);opacity:1}
.contracts-fixed-column-head,.contracts-configurable-column-head{position:sticky}.contracts-fixed-column-head>span,.contracts-configurable-column-head>span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contracts-configurable-column-head>.contracts-table-head-actions{position:absolute;z-index:2;top:50%;right:4px;display:flex;align-items:center;gap:2px;padding:2px;border:1px solid color-mix(in srgb,var(--contracts-view-border) 76%,#fff);border-radius:7px;background:color-mix(in srgb,#fff 96%,var(--contracts-view-soft));box-shadow:-9px 0 12px #fff;opacity:0;pointer-events:none;transform:translate(4px,-50%);transition:opacity .12s,transform .12s}.contracts-configurable-column-head:hover .contracts-table-head-actions,.contracts-configurable-column-head:focus-within .contracts-table-head-actions{opacity:1;pointer-events:auto;transform:translate(0,-50%)}.contracts-table-head-actions button{display:flex;align-items:center;justify-content:center;width:21px;height:20px;padding:0;border:0;border-radius:5px;background:transparent;color:var(--contracts-view-accent);font:inherit;font-size:12px;font-weight:900;line-height:1;cursor:pointer}.contracts-table-head-actions button:hover:not(:disabled),.contracts-table-head-actions button:focus-visible:not(:disabled){background:#fff;box-shadow:inset 0 0 0 1px var(--contracts-view-border);outline:none}.contracts-table-head-actions .is-drag-handle{cursor:grab;font-size:14px}.contracts-table-head-actions .is-drag-handle:active{cursor:grabbing}.contracts-table-head-actions .is-remove{color:#b54545}.contracts-table-head-actions .is-remove:hover,.contracts-table-head-actions .is-remove:focus-visible{background:#fff4f4;box-shadow:inset 0 0 0 1px #efb9b9}.contracts-configurable-column-head.is-dragging{opacity:.55}.contracts-fixed-column-head.is-drop-after,.contracts-configurable-column-head.is-drop-after{box-shadow:inset -3px 0 var(--contracts-view-accent)}.contracts-configurable-column-head.is-drop-before{box-shadow:inset 3px 0 var(--contracts-view-accent)}
@media(max-width:1280px){.contracts-toolbar{grid-template-columns:1fr;row-gap:10px}.contracts-toolbar-tools{justify-content:flex-start;justify-self:stretch;width:auto;padding:10px 0 0;border-left:0;border-top:1px solid var(--border)}.contracts-toolbar-tools .table-filter-search{max-width:430px}}
@media(max-width:860px){.contracts-active-view{max-width:46vw}.modal.contracts-columns-modal{width:100%;max-width:none;max-height:100vh;height:100vh;border-radius:0}.contracts-columns-modal .modal-body{overflow:auto}.contracts-columns-intro{grid-template-columns:1fr}.contracts-columns-workspace{grid-template-columns:1fr;min-height:760px}.contracts-columns-pane{min-height:360px}.contracts-columns-foot{align-items:stretch;flex-direction:column-reverse}.contracts-columns-foot>div{display:grid;grid-template-columns:1fr 1fr}.contracts-columns-delete{width:100%}}

/* Быстрое редактирование общего срока договора и сроков этапов */
.modal.contract-dates-modal{width:min(860px,calc(100vw - 32px));max-width:860px}
.contract-dates-modal .modal-body{max-height:min(690px,calc(100vh - 150px));overflow-y:auto;overflow-x:hidden}
.contract-dates-loading{padding:34px;text-align:center;color:var(--muted)}
.contract-dates-intro{padding:10px 12px;border:1px solid #cfe5d7;border-radius:9px;background:#f3fbf6;color:#315744;font-size:12px;line-height:1.45}
.contract-date-editor-section{margin-top:13px;padding:13px;border:1px solid #dce5ed;border-radius:11px;background:#fff}
.contract-date-editor-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}
.contract-date-editor-heading b{font-size:13px}.contract-date-editor-heading span{color:var(--muted);font-size:11px}
.contract-date-editor-pair{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:10px}
.contract-date-editor-pair label{display:grid;gap:5px;color:#526779;font-size:10.5px;font-weight:700}
.contract-date-editor-pair input{width:100%;padding:8px 10px;border:1px solid #cfdce7;border-radius:8px;background:#fff;color:var(--text);font:inherit;font-size:12px}
.contract-date-editor-pair input:focus{border-color:#5ca779;outline:2px solid rgba(92,167,121,.14)}
.contract-stage-date-list{display:grid;gap:7px}
.contract-stage-date-row{display:grid;grid-template-columns:minmax(160px,.65fr) minmax(430px,2fr);gap:14px;align-items:start;padding:9px 10px;border:1px solid #e3eaf0;border-radius:9px;background:#fafcfd}
.contract-stage-date-name{display:grid;gap:3px;min-width:0}.contract-stage-date-name b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contract-stage-date-name small{color:var(--muted);font-size:10.5px}
.contract-stage-date-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0}
.contract-stage-date-group{display:grid;gap:5px;min-width:0;padding:7px;border:1px solid #dfe7ed;border-radius:8px;background:#fff}
.contract-stage-date-group>span{color:#65798a;font-size:9.5px;font-weight:800}
.contract-stage-date-group.is-contract{border-color:#c7ddd1;background:#f7fbf8}.contract-stage-date-group.is-contract>span{color:#38644f}
.contract-date-overview-readonly{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:9px}
.contract-date-overview-readonly>span{display:flex;flex-direction:column;gap:2px;padding:7px 8px;border:1px solid #e2e9ed;border-radius:8px;background:#fafcfd}
.contract-date-overview-readonly small{color:#7b8d9b;font-size:9.5px;font-weight:700}.contract-date-overview-readonly b{overflow:hidden;color:#334b5c;font-size:11px;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}
.contract-stage-date-empty{padding:16px;border:1px dashed #d6e0e8;border-radius:8px;color:var(--muted);font-size:12px;text-align:center}
.contract-dates-actions{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;align-items:center;margin-top:14px}
.contract-dates-error{margin-bottom:10px;padding:9px 11px;border-radius:8px;background:var(--red-l);color:var(--red);font-size:12px;font-weight:700}
@media(max-width:700px){.contracts-page-settings-menu{width:min(370px,calc(100vw - 36px))}.modal.contract-dates-modal{width:100%;max-width:none}.contract-stage-date-row,.contract-stage-date-controls,.contract-date-overview-readonly{grid-template-columns:1fr}.contract-date-editor-pair{grid-template-columns:1fr}.contract-dates-actions{grid-template-columns:1fr 1fr}.contract-dates-actions>span{display:none}}

/* Однострочные показатели договора в реестре */
.contracts-money-ledger-cell,.contracts-cost-ledger-cell,.contracts-deadline-cell{padding:8px 12px;vertical-align:middle;font-variant-numeric:tabular-nums}
.contract-inline-indicator{position:relative;display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:8px;min-width:0;min-height:34px;padding:6px 8px;border:1px solid #dde7f2;border-radius:8px;background:#fff;overflow:hidden}
.contract-inline-indicator::before{content:"";position:absolute;inset:0 auto 0 0;width:var(--ci-progress,0%);background:linear-gradient(90deg,rgba(22,163,74,.14),rgba(22,163,74,.05));pointer-events:none}
.contract-cost-indicator::before{background:linear-gradient(90deg,rgba(14,165,233,.13),rgba(14,165,233,.04))}
.contract-inline-indicator .ci-value{position:relative;z-index:1;display:flex;align-items:baseline;gap:4px;min-width:0;font-size:12px;line-height:1.2;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contract-inline-indicator .ci-value small{min-width:0;color:#94a3b8;font-size:10px;font-weight:600;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contract-inline-indicator .ci-main{min-width:0;overflow:hidden;text-overflow:ellipsis}
.contract-inline-indicator .ci-paid{color:var(--green-d)}
.contract-inline-indicator .ci-cost{color:#475569}
.contract-inline-indicator.is-risk .ci-cost{color:var(--red)}
.contract-inline-indicator .ci-rest{position:relative;z-index:1;min-width:0;color:#64748b;font-size:10px;font-weight:700;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contract-inline-indicator .ci-rest.is-due{color:#c2410c}
.contract-inline-indicator .ci-rest.is-overpaid{color:#0369a1}
.contract-stage-deadline{--deadline-color:var(--green);--deadline-track-color:var(--deadline-color);--deadline-soft:#f0fdf4;position:relative;display:grid;grid-template-columns:minmax(0,1fr) max-content;grid-template-rows:auto 6px;align-items:center;gap:7px 8px;min-width:0;min-height:44px;padding:7px 8px 8px;border:1px solid #d9e3ef;border-radius:8px;background:linear-gradient(90deg,var(--deadline-soft),#fff 46%);overflow:hidden}
.contract-stage-deadline.is-soon{--deadline-color:var(--amber);--deadline-soft:#fff7df;border-color:#f2d48a}
.contract-stage-deadline.is-overdue{--deadline-color:var(--red);--deadline-soft:#fff0f0;border-color:#f3b4b4}
.contract-stage-deadline.is-done,.contract-stage-deadline.is-empty{--deadline-color:#64748b;--deadline-track-color:#8fa79c;--deadline-soft:#eef2f7;border-color:#d6dee9}
.contract-stage-deadline.is-static{--deadline-color:#64748b;--deadline-track-color:#8fa79c;--deadline-soft:#eef2f7;grid-template-rows:auto;border-color:#d6dee9}
.contract-stage-deadline.is-static.is-cancelled{--deadline-color:var(--red);--deadline-soft:#fff0f0;border-color:#f3b4b4}
.contract-stage-deadline.is-static.is-asset{--deadline-color:#475569;--deadline-soft:#f8fafc;border-color:#d6dee9}
.contract-stage-deadline.is-static.is-loan{--deadline-color:#0f766e;--deadline-soft:#ecfeff;border-color:#bae6fd}
.contract-stage-deadline.is-done.is-early,.contract-stage-deadline.is-done.is-on-time{--deadline-color:var(--green);--deadline-track-color:#8fa79c;--deadline-soft:#eefdf4;border-color:#bce8cc}
.contract-stage-deadline.is-done.is-late{--deadline-color:var(--red);--deadline-track-color:#8fa79c;--deadline-soft:#fff0f0;border-color:#f3b4b4}
.contract-stage-deadline .deadline-date{min-width:0;display:flex;align-items:baseline;gap:5px;font-size:12px;font-weight:800;color:#172033;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contract-stage-deadline .deadline-date span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.contract-stage-deadline .deadline-date small{min-width:0;color:#7a8aa0;font-size:10px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contract-stage-deadline .deadline-left{justify-self:end;max-width:118px;padding:3px 8px;border:1px solid rgba(100,116,139,.24);border-radius:999px;background:#fff;color:var(--deadline-color);font-size:10px;line-height:1.15;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:clip}
.contract-stage-deadline.is-soon .deadline-left{border-color:#f2d48a}
.contract-stage-deadline.is-overdue .deadline-left{border-color:#f3b4b4}
.contract-stage-deadline.is-done.is-early .deadline-left,.contract-stage-deadline.is-done.is-on-time .deadline-left{border-color:#bce8cc;background:#f6fef8}
.contract-stage-deadline.is-done.is-late .deadline-left{border-color:#f3b4b4;background:#fff7f7}
.contract-stage-deadline .deadline-track{position:relative;grid-column:1/-1;height:6px;border-radius:999px;background:#e6edf5;overflow:hidden}
.contract-stage-deadline .deadline-track span{display:block;width:var(--deadline-progress,0%);height:100%;border-radius:inherit;background:var(--deadline-track-color)}
.contract-stage-deadline .deadline-track i{position:absolute;top:50%;left:clamp(8px,var(--deadline-progress,0%),calc(100% - 8px));width:10px;height:10px;transform:translate(-50%,-50%);border:2px solid #fff;border-radius:999px;background:var(--deadline-track-color);box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.contract-stage-deadline.is-empty .deadline-track span,.contract-stage-deadline.is-empty .deadline-track i,.contract-stage-deadline.is-static .deadline-track{display:none}
.cd-loan-payments{margin-top:12px}

.badge{display:inline-flex;align-items:center;justify-content:center;padding:3px 8px;border-radius:12px;font-size:var(--ui-font-status);font-weight:600;white-space:nowrap;line-height:1.15;min-height:var(--ui-status-height)}
.b-green{background:var(--green-l);color:var(--green-d)}
.b-amber{background:var(--amber-l);color:var(--amber)}
.b-red{background:var(--red-l);color:var(--red)}
.b-blue{background:var(--blue-l);color:var(--blue)}
.b-gray{background:#F1F5F9;color:var(--muted)}
.max-profile{display:flex;align-items:center;gap:10px;min-width:0}
.max-avatar{width:38px;height:38px;border-radius:50%;background:#eef6ff;color:#1d4f8f;display:flex;align-items:center;justify-content:center;flex:0 0 auto;font-weight:800;font-size:14px;overflow:hidden}
.max-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.max-profile-main{min-width:0}
.max-profile-title{font-weight:800;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}
.max-profile-meta{color:var(--muted);font-size:12px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}
.max-chat-explain{display:grid;grid-template-columns:180px 1fr;gap:12px;align-items:start;padding:12px 18px;background:#FAFBFC;border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-size:13px;color:var(--muted)}
.max-chat-explain b{color:var(--text)}
.max-member-list{display:flex;flex-direction:column}
.max-member-card{display:grid;grid-template-columns:minmax(180px,1.05fr) minmax(220px,1fr) minmax(360px,1.6fr) 150px;gap:18px;align-items:start;padding:18px;border-bottom:1px solid var(--border);background:#fff}
.max-member-card:last-child{border-bottom:0}
.max-member-card.is-unlinked{background:#FCFCFD}
.max-link-state span,.max-link-form span{display:block;color:var(--muted);font-size:12px;line-height:1.3}
.max-link-state b{display:block;margin-top:3px;font-size:14px}
.max-link-form select{width:100%;min-width:0}
.max-permission-list{display:grid;gap:8px}
.max-permission{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:start;min-height:46px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;line-height:1.3;cursor:pointer}
.max-permission:hover{border-color:#B7C6D8;background:#F8FAFC}
.max-permission.is-on{border-color:#B8E3C8;background:#F4FBF6}
.max-permission.is-disabled{opacity:.62;cursor:not-allowed;background:#F8FAFC}
.max-permission input{margin-top:2px;accent-color:var(--green)}
.max-permission b{display:block;font-size:13px;font-weight:700;color:var(--text)}
.max-permission small{display:block;margin-top:2px;font-size:12px;color:var(--muted)}
.max-empty-permissions{padding:10px 12px;border:1px dashed var(--border);border-radius:8px;background:#F8FAFC;color:var(--muted);font-size:13px}
.max-member-action{text-align:right;white-space:nowrap}
.max-member-row{display:block;border-bottom:1px solid var(--border);background:#fff}
.max-member-row:last-child{border-bottom:0}
.max-member-row[open]{background:#FCFCFD}
.max-member-summary{display:grid;grid-template-columns:minmax(190px,1.1fr) minmax(190px,1fr) minmax(240px,1.35fr) 26px;gap:14px;align-items:center;padding:12px 18px;cursor:pointer;list-style:none}
.max-member-summary::-webkit-details-marker{display:none}
.max-member-summary:hover{background:#F8FAFC}
.max-member-employee span,.max-member-right span{display:block;color:var(--muted);font-size:12px;line-height:1.3}
.max-member-employee b{display:block;margin-top:2px;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.max-member-right{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0;text-align:right}
.max-member-right > span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.max-row-chevron{color:var(--muted);font-size:14px;text-align:center;transition:transform .15s ease}
.max-member-row[open] .max-row-chevron{transform:rotate(180deg)}
.max-member-details{padding:0 18px 16px 18px}
.max-member-detail-grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(360px,1.7fr) auto;gap:16px;align-items:start;padding:14px;border:1px solid var(--border);border-radius:10px;background:#fff}
.max-detail-title{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:800;margin-bottom:8px}
.max-member-details .max-member-action{align-self:end}
.max-pending-section{margin:0 0 14px;background:#fff;border:1px solid #FCD34D;border-radius:10px;overflow:hidden}
.max-pending-section > summary{display:flex;align-items:center;gap:8px;padding:12px 16px;cursor:pointer;font-weight:800;background:#FFFBEB;color:#92400E;list-style:none}
.max-pending-section > summary::-webkit-details-marker{display:none}
.max-pending-section .table-wrap{border:0;border-top:1px solid #FDE68A;border-radius:0;box-shadow:none}

/* OBJECTS GRID */
.objects-toolbar{display:grid;grid-template-columns:auto auto minmax(260px,360px) minmax(120px,1fr) auto;align-items:center}
.objects-status-row{padding-top:0;background:#fff}
.objects-status-row .table-filter-chip-row{margin-left:0}
.objects-status-label{font-size:12px;color:var(--muted);font-weight:700}
.objects-kpi-strip,
.objects-section-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:var(--kpi-height);gap:12px;margin-bottom:14px}
.objects-kpi-strip .kpi,
.objects-section-strip .kpi{height:var(--kpi-height);min-height:var(--kpi-height)}
.objects-table{table-layout:fixed;width:100%}
.objects-table th,.objects-table td{vertical-align:middle;overflow:hidden}
.objects-table th{font-size:10px;line-height:1.1;padding:9px 16px}
.objects-table td{font-size:12px;line-height:1.25;padding:10px 14px}
.objects-table tbody tr.object-row{cursor:pointer}
.objects-table tbody tr.object-row:hover{background:#f8fafc}
.objects-table.objects-has-open tbody tr.object-row{opacity:.45}
.objects-table.objects-has-open tbody tr.object-row.object-row-open{opacity:1;background:#eef6ff;box-shadow:inset 4px 0 var(--green)}
.objects-table.objects-has-open tbody tr.object-row.object-row-open:hover{background:#eaf4ff}
.objects-table td.num{white-space:nowrap}
.objects-main-text{font-weight:700;color:var(--text);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.objects-sub-text{font-size:11px;color:var(--muted);line-height:1.2;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.objects-sub-text.object-warn{color:var(--red)}
.objects-cost-drilldown{display:inline;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;line-height:inherit;text-align:left;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:2px;cursor:pointer;transition:color .14s ease,text-decoration-color .14s ease}
.objects-cost-drilldown:hover{color:#07824a;text-decoration-color:currentColor}
.objects-cost-drilldown:focus-visible{border-radius:3px;color:#07824a;outline:0;box-shadow:inset 0 0 0 2px rgba(18,169,95,.34);text-decoration-color:currentColor}
.objects-period{font-size:11px;color:#31506f;line-height:1.2}
.objects-progress-cell{min-width:0}
.objects-actions{display:flex;justify-content:flex-end;gap:6px}
.objects-detail-row>td{background:#f8fafc;border-top:0;padding:0 16px 14px;box-shadow:inset 4px 0 var(--green)}
.objects-col-object{width:23%}
.objects-col-payment{width:21%}
.objects-col-term{width:19%}
.objects-col-state{width:15%}
.objects-col-name{width:28%}
.objects-col-status{width:15%}
.objects-col-period{width:15%}
.objects-col-contracts{width:22%}
.objects-col-money{width:13%}
.objects-col-progress{width:12%}
.objects-col-actions{width:76px}
.objects-object-visual{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center;min-width:0}
.objects-object-copy{min-width:0}
.objects-object-ico{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;background:#eff6ff;color:#2563eb;font-size:17px;font-weight:800;line-height:1}
.objects-object-ico.plot{background:#ecfdf5;color:#059669}
.objects-object-ico.machine{background:#fef3c7;color:#b45309}
.objects-object-title-row{display:flex;align-items:center;gap:9px;min-width:0}
.objects-object-title-row .objects-main-text{font-size:16px;letter-spacing:0;flex:1 1 auto;min-width:0}
.objects-object-title-row .badge{flex:0 0 auto;min-height:23px;padding:3px 10px;font-size:12px}
.objects-object-group-badge{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:22px;padding:3px 8px;border-radius:12px;font-size:11px;font-weight:700;line-height:1.1;white-space:nowrap;background:#e0f2fe;color:#0369a1}
.objects-object-group-badge.fixed{background:#fef3c7;color:#b45309}
.objects-contract-c2{display:grid;gap:4px;min-width:0}
.objects-contract-primary{font-size:13px;font-weight:800;color:#047857;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.objects-contract-secondary{font-size:11px;color:#64748b;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.objects-contract-empty{display:flex;align-items:center;min-height:38px;color:#94a3b8;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.objects-meter{position:relative;display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:8px;align-items:center;min-height:42px;padding:7px 9px;border:1px solid #dbe5f0;border-radius:10px;background:#fff;overflow:hidden}
.objects-meter::before{content:"";position:absolute;inset:0 auto 0 0;width:var(--objects-meter-progress,0%);background:linear-gradient(90deg,rgba(22,163,74,.14),rgba(22,163,74,.05));pointer-events:none}
.objects-meter.time::before{background:linear-gradient(90deg,rgba(37,99,235,.12),rgba(37,99,235,.04))}
.objects-meter.warn::before{background:linear-gradient(90deg,rgba(217,119,6,.13),rgba(217,119,6,.04))}
.objects-meter.risk::before{background:linear-gradient(90deg,rgba(220,38,38,.13),rgba(220,38,38,.04))}
.objects-meter.is-empty::before{display:none}
.objects-meter b,.objects-meter small,.objects-meter span{position:relative;z-index:1;min-width:0}
.objects-meter b{display:block;font-size:12px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.objects-meter small{display:block;margin-top:2px;color:#94a3b8;font-size:10px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.objects-meter>span{font-size:10px;color:#64748b;font-weight:800;white-space:nowrap}
.objects-meter>span.due{color:#c2410c}
.objects-meter>span.warn{color:#d97706}
.objects-meter>span.risk{color:var(--red)}
.obj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.obj-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px;cursor:pointer;transition:all .15s;box-shadow:var(--shadow)}
.obj-card:hover{border-color:var(--green);box-shadow:var(--shadow-m)}
.obj-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:10px;gap:8px}
.obj-head>div{min-width:0}
.obj-name{font-weight:700;font-size:15px;overflow-wrap:anywhere;word-break:break-word}
.obj-type{color:var(--muted);font-size:12px;margin-top:2px;overflow-wrap:anywhere;word-break:break-word}
.obj-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0;font-size:12px}
.obj-stats .lbl{color:var(--muted);font-size:11px}
.obj-stats .vv{font-weight:700;font-variant-numeric:tabular-nums}
.progress{height:6px;background:var(--bg);border-radius:3px;overflow:hidden;margin-top:10px}
.progress>span{display:block;height:100%;background:var(--green);border-radius:3px}
.progress-info{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:6px}

/* FORM */
.form-grid{display:grid;gap:14px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field label{font-size:12px;font-weight:600;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;min-width:0;padding:8px 12px;border:1px solid var(--border);border-radius:var(--ui-radius-control);font-size:var(--ui-font-control);font-family:inherit;background:#fff}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-l)}
.uc-choice-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.uc-choice-field{grid-column:1 / -1;width:100%;min-width:0}
.uc-choice{min-height:74px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#fff;text-align:left;cursor:pointer;font-family:inherit;color:var(--text);transition:border-color .15s,background .15s,box-shadow .15s}
.uc-choice:hover{border-color:var(--green);background:var(--selected-bg)}
.uc-choice.active{border-color:var(--green);background:var(--selected-bg);box-shadow:var(--selected-ring)}
.uc-choice b{display:block;font-size:14px;line-height:1.2;margin-bottom:4px}
.uc-choice span{display:block;font-size:11px;line-height:1.25;color:var(--muted)}
.uc-choice-row.uc-choice-collapsed{display:flex;align-items:center}
.uc-choice-row.uc-choice-collapsed .uc-choice:not(.active){display:none}
.uc-choice-row.uc-choice-collapsed .uc-choice.active{min-height:34px;width:auto;min-width:150px;padding:6px 12px;display:flex;align-items:center;gap:8px}
.uc-choice-row.uc-choice-collapsed .uc-choice.active b{font-size:13px;margin:0}
.uc-choice-row.uc-choice-collapsed .uc-choice.active span{display:none}
.uc-choice-row.uc-choice-collapsed .uc-choice.active::after{content:'изменить';font-size:11px;color:var(--muted);font-weight:600}
.uc-upper-summary{display:none;width:100%;min-height:38px;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border:1px solid #e6edf5;border-radius:10px;background:#fff;color:#5f7896;cursor:pointer;text-align:left;font-family:inherit}
.uc-upper-summary strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;color:#5f7896}
.uc-upper-summary span{flex-shrink:0;font-size:12px;font-weight:700;color:#5f7896}
.uc-progressive-fields{display:flex;flex-direction:column;gap:14px}
#m-accounting-card.uc-start-mode .uc-progressive-fields{display:none !important}
#m-accounting-card.uc-start-mode #uc-submit{display:none}
#m-accounting-card.uc-upper-collapsed .uc-progressive-head{display:none !important}
#m-accounting-card.uc-upper-collapsed .uc-upper-summary{display:flex}
.uc-block-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.uc-block-title{font-weight:700}
.uc-block-subtitle{font-size:12px;color:var(--muted);margin-top:2px}
.uc-block-toggle{border:1px solid #dbe4f0;border-radius:8px;background:#fff;color:#5f7896;font-size:12px;font-weight:700;padding:5px 9px;cursor:pointer;white-space:nowrap}
.uc-block-toggle:hover{border-color:var(--green);color:var(--green-d);background:var(--selected-bg)}
.uc-card-section{border:1px solid var(--border) !important;border-radius:8px !important;background:#fff !important;overflow:hidden;padding:0 !important}
.uc-card-section.uc-step-active{border-color:#22c55e !important;box-shadow:0 0 0 3px rgba(34,197,94,.12);background:#fbfffd !important}
.uc-card-section.uc-step-active>.uc-block-head{background:#f0fdf4}
.uc-card-section.uc-step-locked{opacity:.55}
.uc-required-missing input,.uc-required-missing select{border-color:#f59e0b !important;box-shadow:0 0 0 2px rgba(245,158,11,.12)}
.uc-card-section>.uc-block-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border);background:var(--bg);margin:0}
.uc-card-section>.uc-block-head .uc-block-title{font-weight:700;font-size:14px}
.uc-card-section>.uc-block-head .uc-block-subtitle{display:block;font-size:12px;color:var(--muted);line-height:1.45;margin-top:3px}
.uc-card-section>.field,.uc-card-section>.form-grid,.uc-card-section>.form-row,.uc-card-section>.uc-asset-compact-row{margin:12px 14px}
.uc-card-section>.uc-foreman-note{display:none;margin:-7px 14px 12px;color:var(--muted);font-size:11px;line-height:1.35}
.uc-collapsed{background:#fff !important}
.uc-collapsed>.uc-block-head{margin-bottom:0}
.uc-collapsed>.uc-block-head .uc-block-subtitle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:560px}
.uc-collapsed>*:not(.uc-block-head){display:none !important}
.uc-schedule-panel{padding:12px 14px}
.uc-schedule-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.uc-schedule-summary{font-size:13px;color:var(--muted);line-height:1.35;padding:9px 10px;border:1px solid #dbe4f0;border-radius:8px;background:#fff;width:100%}
.uc-schedule-summary.ok{border-color:#86efac;background:#f0fdf4;color:#166534;font-weight:700}
.uc-schedule-summary.warn{border-color:#fcd34d;background:#fffbeb;color:#b45309;font-weight:700}
.uc-schedule-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-shrink:0;margin-top:10px}
.uc-schedule-series-panel{display:none;border:1px solid #dbe4f0;border-radius:8px;background:#fff;padding:10px;margin-top:8px}
.uc-schedule-series-panel.open{display:block}
.uc-series-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-items:end}
.uc-schedule-rows{display:flex;flex-direction:column;gap:8px}
.uc-schedule-row{position:relative;z-index:1;border:1px solid #e6edf5;border-radius:8px;background:#fff;overflow:hidden}
.uc-schedule-row:not(.collapsed){z-index:2}
.uc-schedule-row-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;background:#fbfdff;color:#5f7896;font-size:13px;font-weight:700;cursor:pointer}
.uc-schedule-row-summary span,.uc-schedule-group-summary span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.uc-schedule-summary-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.uc-schedule-row-fields{display:grid;grid-template-columns:150px 150px minmax(180px,1fr) 36px;gap:8px;align-items:end;padding:8px;border-top:1px solid #eef3f8}
.uc-schedule-row:not(.collapsed) .uc-schedule-row-summary{display:none}
.uc-schedule-row:not(.collapsed) .uc-schedule-row-fields{border-top:0}
.uc-schedule-row.collapsed .uc-schedule-row-fields{display:none}
.uc-schedule-row .field label{font-size:11px}
.uc-schedule-remove{height:36px;width:36px;padding:0 !important;color:var(--red);font-size:18px;line-height:1}
.uc-schedule-group{border:1px solid #dbe4f0;border-radius:8px;background:#fff;overflow:hidden}
.uc-schedule-group-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;background:#fbfdff;color:#5f7896;font-size:13px;font-weight:700;cursor:pointer}
.uc-schedule-group .uc-schedule-row{border:0;border-top:1px solid #eef3f8;border-radius:0}
.uc-schedule-group.collapsed .uc-schedule-row{display:none}
.uc-schedule-totals{display:none}
.uc-schedule-totals b{display:block;font-size:14px;color:var(--text);margin-top:2px}
.uc-asset-compact-row{display:grid;grid-template-columns:1fr 1fr 1.45fr .95fr;gap:10px;align-items:end}
.uc-asset-compact-row .field{margin:0 !important}
#uc-object-block.uc-asset-block .uc-block-head{margin-bottom:0}
#m-accounting-card.uc-asset-mode .uc-progressive-head{display:none}
#m-accounting-card.uc-asset-mode .uc-upper-summary{display:none !important}
#m-accounting-card.uc-asset-mode #uc-object-block:not(.uc-asset-can-collapse) .uc-block-toggle,
#m-accounting-card.uc-asset-mode #uc-contract-block .uc-block-toggle{display:none}
#m-accounting-card.uc-asset-mode #uc-object-block{background:#fff !important}
#m-accounting-card.uc-asset-mode #uc-contract-block{background:var(--bg) !important}
#m-accounting-card.uc-schedule-editing .modal-foot{display:none}
@media(max-width:980px){.uc-asset-compact-row{grid-template-columns:1fr 1fr}.uc-asset-compact-row .field:nth-child(3){grid-column:1 / -1}}
.uc-preview{display:none;padding:9px 12px;border:1px solid #dbe4f0;border-radius:10px;background:#f8fafc;color:#31506f;font-size:12px;line-height:1.35}
.uc-preview b{display:block;color:var(--text);font-size:13px;margin-top:2px;overflow-wrap:anywhere}
.uc-price-mode{margin:0 0 2px;border:1px solid #e6edf5;border-radius:8px;background:#fbfdff;padding:10px}
.uc-price-mode-title{font-size:12px;font-weight:700;color:#5f7896;text-transform:uppercase;margin-bottom:8px}
.uc-price-mode-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.uc-price-option{min-height:66px;padding:9px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;text-align:left;cursor:pointer;font-family:inherit;color:var(--text);transition:border-color .15s,background .15s,box-shadow .15s}
.uc-price-option:hover{border-color:var(--green);background:var(--selected-bg)}
.uc-price-option.active{border-color:var(--green);background:var(--selected-bg);box-shadow:var(--selected-ring)}
.uc-price-option b{display:block;font-size:13px;line-height:1.2;margin-bottom:4px}
.uc-price-option span{display:block;font-size:11px;line-height:1.25;color:var(--muted)}
@media(max-width:980px){.uc-price-mode-options{grid-template-columns:1fr}}
.search-select{position:relative;width:100%;min-width:0}
.search-select-native{position:absolute !important;inset:0 !important;width:1px !important;height:1px !important;opacity:0 !important;pointer-events:none !important}
.search-select-input{width:100%;min-width:0;padding:9px 34px 9px 12px;border:1px solid var(--border);border-radius:8px;font-size:13px;font-family:inherit;background:#fff;color:var(--text)}
.search-select-input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-l)}
.search-select::after{content:'⌄';position:absolute;right:12px;top:50%;transform:translateY(-54%);color:var(--muted);font-size:15px;pointer-events:none}
.search-select-menu{display:none;position:absolute;z-index:250;left:0;right:0;top:calc(100% + 4px);max-height:240px;overflow:auto;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-m);padding:4px}
.search-select.open .search-select-menu{display:block}
.search-select-menu.portal-open{display:block;position:fixed;z-index:10000;left:auto;right:auto;top:auto;box-shadow:0 14px 34px rgba(15,23,42,.18),0 0 0 3px rgba(22,163,74,.08)}
.search-select-menu.portal-open.portal-down{border-top-color:var(--green)}
.search-select-menu.portal-open.portal-up{border-bottom-color:var(--green)}
.search-select-option{padding:8px 10px;border-radius:7px;cursor:pointer;font-size:13px;line-height:1.25}
.search-select-option:hover,.search-select-option.active{background:var(--green-bg);color:var(--green-d)}
.search-select-option.selected{font-weight:700;color:var(--green-d)}
.search-select-empty{padding:10px;color:var(--muted);font-size:12px;text-align:center}
.search-select-group{padding:8px 10px 4px;color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.search-select-menu-wide .search-select-group{position:sticky;top:-4px;z-index:1;padding:8px 10px 6px;background:#f4fbf6;color:var(--green-d);border-bottom:1px solid rgba(22,163,74,.12)}
.search-select-menu-wide .search-select-option{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.search-select-subgroup{margin:3px 4px 1px;padding:7px 10px 6px 13px;border-left:3px solid #bbf7d0;background:#f8fafc;color:var(--text);font-size:12px;font-weight:700;line-height:1.25;white-space:normal}
.search-select-option.search-select-level-resource{display:flex;align-items:center;gap:8px;margin-left:8px;padding-left:10px;text-overflow:clip}
.search-select-option.search-select-level-material{display:flex;align-items:center;gap:8px;margin-left:8px;padding-left:10px;text-overflow:clip}
.search-select-option-badge{flex:0 0 auto;padding:1px 5px;border:1px solid #93c5fd;border-radius:4px;background:#eff6ff;color:#2563eb;font-size:10px;font-weight:800;line-height:1.35}
.search-select-option.search-select-level-material .search-select-option-badge{border-color:#fbbf24;background:#fffbeb;color:#b45309}
.search-select-option-main{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.search-select-option-meta{flex:0 0 auto;max-width:42%;color:var(--muted);font-size:11px;font-weight:600;white-space:nowrap}
.search-select-option.active .search-select-option-meta,.search-select-option:hover .search-select-option-meta,.search-select-option.selected .search-select-option-meta{color:var(--green-d)}
.search-select-menu-wide .search-select-option[data-value="__manual_work__"]{margin-top:3px;border:1px dashed var(--border);color:var(--green-d);font-weight:600}
.journal-filter-active{border-color:var(--green) !important;box-shadow:0 0 0 3px var(--green-l) !important}
.journal-filter-active + .search-select-input{border-color:var(--green) !important;box-shadow:0 0 0 3px var(--green-l) !important}
.journal-filter-toggle{padding:6px 10px;border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--muted);font-size:12px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.journal-filter-toggle:hover{border-color:var(--green);color:var(--green-d);background:var(--selected-bg)}
.journal-filter-toggle.active{background:var(--selected-bg);border-color:var(--green);color:var(--green-d);box-shadow:var(--selected-ring)}
.journal-filter-summary{font-size:12px;color:var(--muted)}
.table-filter-toggle{min-height:var(--ui-chip-height);padding:0 10px;border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--muted);font-size:var(--ui-font-meta);font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px;box-shadow:0 0 0 3px transparent}
.table-filter-toggle:hover{border-color:var(--green);color:var(--green-d);background:var(--selected-bg)}
.table-filter-toggle.active{background:var(--selected-bg);border-color:var(--green);color:var(--green-d);box-shadow:var(--selected-ring)}
.table-filter-search{width:260px;max-width:100%;height:var(--ui-chip-height);padding:6px 10px;border:1px solid var(--border);border-radius:999px;font-size:var(--ui-font-meta);background:#fff;box-shadow:0 0 0 3px transparent}
.table-filter-search:focus{outline:none;border-color:var(--green);box-shadow:var(--selected-ring)}
.table-filter-search.table-filter-active{border-color:var(--green);box-shadow:var(--selected-ring);background:#fff}
.table-filter-result{font-size:12px;color:var(--muted)}
.table-filter-reset{justify-content:center;justify-self:end;width:104px;min-width:104px;height:34px;padding:6px 8px;border:1px solid transparent;font-size:12px;box-shadow:0 0 0 3px transparent;text-align:center}
.table-filter-reset.active{border-color:var(--green);color:var(--green-d);background:var(--selected-bg);box-shadow:var(--selected-ring)}
.table-filter-reset.inactive{visibility:hidden;pointer-events:none;border-color:transparent;background:transparent}
.table-filter-panel{display:flex;flex-wrap:wrap;gap:8px;padding-top:0;border-top:0;align-items:end}
.table-filter-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.table-filter-panel .table-filter-field{flex:1 1 180px;min-width:150px}
.table-filter-panel .table-filter-field:has(.table-filter-date-range){flex:1.2 1 220px;min-width:210px}
.table-filter-field label{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}
.table-filter-field input,.table-filter-field select{box-sizing:border-box;width:100%;min-width:0;height:var(--ui-control-height);padding:7px 10px;border:1px solid var(--border);border-radius:var(--ui-radius-control);font-size:var(--ui-font-control);background:#fff;outline:none;box-shadow:0 0 0 3px transparent}
.table-filter-field input.table-filter-active,.table-filter-field select.table-filter-active,.table-filter-field.is-active input,.table-filter-field.is-active select{border-color:var(--green);box-shadow:var(--selected-ring);background:#fff}
.table-filter-field.is-active label{color:var(--green-d)}
.table-filter-date-range{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.search-select-suggestion{padding:9px 10px;border-top:1px solid var(--border);font-size:12px;line-height:1.35}
.search-select-suggestion:first-child{border-top:0}
.search-select-suggestion-title{font-weight:700;color:var(--text);overflow-wrap:anywhere}
.search-select-suggestion-meta{margin-top:2px;color:var(--muted)}
.search-select-suggestion .btn{margin-top:7px;min-height:30px;padding:5px 9px;font-size:12px}
.checkbox-list{border:1px solid var(--border);border-radius:10px;background:#fff;max-height:230px;overflow:auto;padding:6px;display:flex;flex-direction:column;gap:2px}
.checkbox-list:focus-within{border-color:var(--green);box-shadow:0 0 0 3px var(--green-l)}
.checkbox-row{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:8px;cursor:pointer;font-size:13px;line-height:1.25}
.checkbox-row:hover{background:var(--green-bg)}
.checkbox-row input{width:16px;height:16px;min-width:16px;accent-color:var(--green)}
.checkbox-row span{overflow-wrap:anywhere}
/* Строка чек-листа: чекбокс слева, подпись рядом — одинаково во всех модалках */
label.checkbox-item{display:flex;align-items:center;gap:9px;margin:0;padding:6px 8px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:400;color:var(--text);line-height:1.25}
label.checkbox-item:hover{background:var(--green-bg)}
label.checkbox-item input{width:16px;height:16px;min-width:16px;margin:0;accent-color:var(--green)}
label.checkbox-item span{overflow-wrap:anywhere}
.checkbox-list-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.checkbox-list-actions .btn{padding:5px 9px;font-size:12px;min-height:30px}
.form-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
.form-row-3{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr);gap:14px}
.form-row-full{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.op-meta-row{display:grid;grid-template-columns:160px 160px minmax(0,1fr);gap:12px;align-items:end}
.op-meta-row.op-meta-date-only{grid-template-columns:160px 160px minmax(0,1fr)}
@media(max-width:1100px){.op-meta-row,.op-meta-row.op-meta-date-only{grid-template-columns:150px 150px minmax(0,1fr)}}
.op-head-row{display:flex;align-items:center;justify-content:flex-start;gap:16px;flex-wrap:wrap}
.op-kind-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;min-width:0;max-width:none;grid-column:1 / -1}
.op-kind-btn{min-width:0;justify-content:flex-start;align-items:flex-start;flex-direction:column;text-align:left;padding:10px 12px;border-radius:10px;font-size:12px;font-weight:600;box-shadow:none;white-space:normal;min-height:74px;line-height:1.2;background:#fff;color:var(--text);border-color:var(--border);transition:background .15s,border-color .15s,box-shadow .15s,color .15s,opacity .15s,filter .15s}
.op-kind-row.has-active .op-kind-btn:not(.active){opacity:1;filter:none;background:#fff;color:var(--text);border-color:var(--border);box-shadow:none}
.op-kind-row.has-active .op-kind-btn:not(.active):hover{background:var(--selected-bg);border-color:var(--green)}
.op-kind-btn.active{font-weight:700}
.op-kind-btn.btn-income.active,.op-kind-btn.btn-expense.active,.op-kind-btn.btn-transfer.active{background:var(--selected-bg);color:var(--text);border-color:var(--green);box-shadow:var(--selected-ring)}
.op-kind-btn b{display:block;font-size:14px;line-height:1.15;margin-bottom:5px;color:inherit}
.op-kind-btn span{display:block;font-size:11px;line-height:1.25;color:#607894;font-weight:500}
.op-kind-btn.active span{color:var(--muted);opacity:1}
.op-kind-row.op-kind-collapsed{display:flex;grid-column:1 / -1;align-items:center;justify-content:flex-start}
.op-kind-row.op-kind-collapsed .op-kind-btn:not(.active){display:none}
.op-kind-row.op-kind-collapsed .op-kind-btn.active{min-height:34px;width:auto;min-width:150px;padding:6px 12px;border-radius:10px;flex-direction:row;align-items:center;gap:8px}
.op-kind-row.op-kind-collapsed .op-kind-btn.active b{font-size:13px;margin:0}
.op-kind-row.op-kind-collapsed .op-kind-btn.active span{display:none}
.op-kind-row.op-kind-collapsed .op-kind-btn.active::after{content:'изменить';font-size:11px;color:var(--muted);font-weight:600}
.op-banner{padding:8px 12px;background:#f8fafc;border:1px solid #dbe4f0;border-radius:10px;font-size:12px;line-height:1.4;color:#6c7f9e;display:flex;align-items:center;min-height:58px;height:58px;overflow:hidden}
.op-party-suggestion{display:none;padding:9px 12px;background:var(--green-l);border:1px solid #86efac;border-radius:10px;color:var(--green-d);font-size:12px;line-height:1.4;align-items:center;justify-content:space-between;gap:10px}
.op-party-suggestion .btn{min-height:30px;padding:5px 9px;font-size:12px;white-space:nowrap}
.op-form-divider{height:1px;background:#dbe4f0;margin:2px 0 8px}
.op-stable-field{min-height:58px}
.op-stable-hidden{visibility:hidden;pointer-events:none}
.modal.op-modal{max-width:760px;border-radius:18px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(203,217,232,.95);box-shadow:0 22px 60px rgba(15,23,42,.22)}
.op-modal .modal-head{padding:14px 18px;flex-shrink:0;background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%)}
.op-modal .modal-body{padding:14px 18px 0;overflow-y:auto;min-height:0;flex:1;background:#fbfdff}
.op-modal .modal-foot{padding:10px 18px 12px;background:#f8fafc;border-top:1px solid #e6edf5;flex-shrink:0}
.op-modal-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;width:100%}
.op-modal-title{font-size:17px;font-weight:800;line-height:1.15;white-space:nowrap;margin:0;color:#101828}
.op-header-field{display:flex;align-items:center;min-width:0;position:relative}
.op-header-field label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.op-header-field input,.op-header-field select{height:36px;min-height:36px;border-radius:10px;border:1px solid #dbe4f0;padding:6px 12px;font-size:13px;background:#fff;color:var(--text);width:100%;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.op-header-field input{width:148px;font-weight:700;font-variant-numeric:tabular-nums}
.op-header-field select{width:184px;font-weight:800}
.op-header-field input:hover,.op-header-field select:hover{border-color:#cbd9e8;background:#fbfdff}
.op-header-field input:focus,.op-header-field select:focus{outline:none;border-color:#9fc3e8;box-shadow:0 0 0 3px rgba(49,126,186,.12)}
.op-flow-native,.op-modal-head .search-select:has(#op-flow-type){display:none}
.op-modal-actions{display:flex;justify-content:flex-end;gap:6px;min-width:0}
.op-modal .field{gap:4px}
.op-modal .field label{font-size:11.5px;margin-bottom:1px;color:var(--muted)}
.op-modal #op-item,.op-modal #op-amount,.op-modal #op-qty,.op-modal #op-unit,.op-modal #op-note,.op-modal #op-date,.op-modal #op-article,.op-modal #op-money-from,.op-modal #op-money-to,.op-modal #op-offset-receivable,.op-modal #op-offset-payable,.op-modal #op-offset-amount,.op-modal #op-offset-external-note,.op-modal #op-offset-note{min-height:34px;border-radius:8px;border-color:#dbe4f0;font-size:13px;padding:5px 10px}
.op-modal #op-note{min-height:54px;padding-top:6px;padding-bottom:6px}
.op-modal .modal-close{width:32px;height:32px;border-radius:10px;font-size:20px;color:#7187a4;display:flex;align-items:center;justify-content:center;grid-column:2;grid-row:1;justify-self:end}
.op-modal .modal-close:hover{background:#eef4fb;color:#31506f}
.op-modal .modal-foot .btn{min-height:34px;padding:0 14px;border-radius:8px;font-size:13px;font-weight:700}
.op-modal .form-grid{gap:10px !important}
.op-main-details{border:1px solid #e6edf5;border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 4px 14px rgba(15,23,42,.035)}
.op-main-details > summary{display:none;list-style:none;cursor:pointer;padding:8px 12px;background:#fff;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #eef3f8}
.op-main-details.op-has-article > summary{display:flex}
.op-main-details > summary::-webkit-details-marker{display:none}
.op-main-summary-wrap{display:flex;align-items:center;gap:8px;min-width:0}
.op-main-summary{font-weight:700;color:#5f7896;font-size:12.5px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.op-main-toggle{flex-shrink:0;display:inline-flex;align-items:center;gap:5px;border:1px solid #e6edf5;border-radius:8px;background:#fbfdff;color:#5f7896;font-size:12px;font-weight:700;padding:5px 9px;line-height:1}
.op-main-toggle::before{content:'▾';font-size:10px;color:#8aa0b8;transition:transform .15s}
.op-main-toggle::after{content:'Свернуть'}
.op-main-details:not([open]) .op-main-toggle::before{transform:rotate(-90deg)}
.op-main-details:not([open]) .op-main-toggle::after{content:'Развернуть'}
.op-main-details:not([open]) > summary{border-bottom:0}
.op-main-details .form-grid{padding:14px}
.op-main-details.op-start-mode{display:none}
.op-main-details.op-upper-collapsed > summary{display:flex}
.op-main-details.op-upper-collapsed .op-main-toggle::before{transform:rotate(-90deg)}
.op-main-details.op-upper-collapsed .op-main-toggle::after{content:'Показать'}
.op-main-details.op-upper-collapsed .form-row-full,
.op-main-details.op-upper-collapsed .op-meta-row,
.op-main-details.op-upper-collapsed .op-money-row,
.op-main-details.op-upper-collapsed #op-offset-section,
.op-main-details.op-upper-collapsed #op-counterparty-article-suggestion,
.op-main-details.op-upper-collapsed #op-form-divider{display:none !important}
.op-main-details.op-lower-pending #op-contract-payment-section,
.op-main-details.op-lower-pending #op-partner-tax-field,
.op-main-details.op-lower-pending #op-items-section,
.op-main-details.op-lower-pending #op-lower-step-head,
.op-main-details.op-lower-pending #op-item-field,
.op-main-details.op-lower-pending #op-amount-row,
.op-main-details.op-lower-pending #op-asset-obligation-field,
.op-main-details.op-lower-pending #op-note-field,
#op-form.op-lower-pending #op-alloc-section{display:none !important}
.op-lower-step-head{border:1px solid var(--border);border-radius:8px;background:var(--bg);padding:12px 14px;margin-bottom:0}
.op-lower-step-title{font-weight:700;font-size:14px;color:var(--text)}
.op-lower-step-hint{font-size:12px;color:var(--muted);line-height:1.45;margin-top:2px}
.op-money-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.op-amount-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.op-offset-mode{border:1px solid #dbe4f0;border-radius:8px;background:#fff;overflow:hidden}
.op-offset-tabs{display:flex;gap:6px;padding:8px;background:#f8fafc;border-bottom:1px solid #e6edf5}
.op-offset-tab{min-height:32px;border:1px solid #dbe4f0;background:#fff;color:#31506f;border-radius:8px;padding:0 12px;font-size:12.5px;font-weight:800;cursor:pointer}
.op-offset-tab.active{background:#eaf7ef;border-color:#87d6a1;color:#146c38}
.op-offset-form{padding:12px;display:flex;flex-direction:column;gap:10px}
.op-offset-source-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.op-offset-source-tabs label{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:5px 10px;border:1px solid #dbe4f0;border-radius:8px;background:#f8fafc;color:#31506f;font-size:12px;font-weight:800}
.op-offset-source-tabs input{width:auto;margin:0}
.op-offset-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.op-offset-summary{padding:9px 11px;border:1px solid #dbe4f0;border-radius:8px;background:#f8fafc;color:#5f7896;font-size:12px;line-height:1.4}
.op-amount-grid.op-amount-single{grid-template-columns:minmax(0,1fr)}
.op-qty-inner{display:grid;grid-template-columns:minmax(0,1.25fr) 120px;gap:6px}
.op-items-toggle{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;background:#fff;border:1px solid var(--border);border-radius:8px}
.op-items-toggle input{width:auto;margin-top:2px}
.op-items-section{border:1px solid var(--border);border-radius:8px;background:#fff;overflow:hidden}
.op-items-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border);background:var(--bg)}
.op-items-title{font-weight:700;font-size:14px}
.op-items-hint{font-size:12px;color:var(--muted);line-height:1.45}
.op-items-bulk-tools{display:flex;flex-direction:column;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);background:#fbfdff}
.op-items-bulk-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end}
.op-items-bulk-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.op-items-bulk-field>span{font-size:12px;font-weight:800;color:#31506f;white-space:nowrap}
.op-items-bulk-field select{box-sizing:border-box;min-width:0;width:100%;min-height:36px;border:1px solid #dbe4f0;border-radius:8px;background:#fff;padding:6px 10px;font-size:13px}
.op-items-bulk-prorata-btn{align-self:end;white-space:nowrap;min-height:36px}
.op-items-bulk-prorata-form{display:none;flex-direction:column;gap:8px;padding:10px;background:#f5fbff;border:1px solid #cfe1ef;border-radius:8px}
.op-items-bulk-prorata-form.open{display:flex}
.op-items-bulk-prorata-head{font-size:12px;font-weight:700;color:#244967;line-height:1.4}
.op-items-bulk-prorata-rows{display:flex;flex-direction:column;gap:6px}
.op-items-bulk-prorata-row{display:grid;grid-template-columns:minmax(0,1fr) 110px 28px;gap:8px;align-items:center}
.op-items-bulk-prorata-row select{box-sizing:border-box;min-width:0;width:100%;min-height:34px;border-radius:8px;border:1px solid #dbe4f0;padding:5px 10px;font-size:13px;background:#fff}
.op-items-bulk-prorata-pct{display:flex;align-items:center;gap:4px;border:1px solid #dbe4f0;border-radius:8px;background:#fff;padding:2px 8px;min-height:34px}
.op-items-bulk-prorata-pct input{width:100%;border:0;outline:0;font-size:13px;font-variant-numeric:tabular-nums;text-align:right;background:transparent;padding:4px 0}
.op-items-bulk-prorata-pct span{font-size:12px;color:var(--muted);font-weight:700}
.op-items-bulk-prorata-remove{padding:6px 8px;color:var(--red)}
.op-items-bulk-prorata-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.op-items-bulk-prorata-summary{margin-right:auto;font-size:12px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.op-items-bulk-prorata-summary.ok{color:var(--green-d)}
.op-items-bulk-prorata-summary.bad{color:var(--red)}
.op-items-bulk-prorata-tools button[data-apply][disabled]{opacity:.5;cursor:not-allowed}
.alloc-list-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.op-line-quick-split{margin:6px 0 8px;padding:10px;background:#fff;border:1px solid #cfe1ef;border-radius:8px;display:flex;flex-direction:column;gap:8px}
.op-line-quick-split-head{font-size:12px;font-weight:700;color:#244967;line-height:1.4}
.op-line-quick-split-rows{display:flex;flex-direction:column;gap:6px}
.op-line-quick-split-row{display:grid;grid-template-columns:minmax(0,1fr) 140px 28px;gap:8px;align-items:center}
.op-line-quick-split-row select{box-sizing:border-box;min-width:0;width:100%;min-height:34px;border-radius:8px;border:1px solid #dbe4f0;padding:5px 10px;font-size:13px;background:#fff}
.op-line-quick-split-qty{display:flex;align-items:center;gap:4px;border:1px solid #dbe4f0;border-radius:8px;background:#fff;padding:2px 8px;min-height:34px}
.op-line-quick-split-qty input{width:100%;border:0;outline:0;font-size:13px;font-variant-numeric:tabular-nums;text-align:right;background:transparent;padding:4px 0}
.op-line-quick-split-qty span{font-size:11px;color:var(--muted);font-weight:700;white-space:nowrap}
.op-line-quick-split-remove{padding:6px 8px;color:var(--red)}
.op-line-quick-split-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.op-line-quick-split-summary{margin-right:auto;font-size:12px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.op-line-quick-split-summary.ok{color:var(--green-d)}
.op-line-quick-split-summary.bad{color:var(--red)}
.op-line-quick-split-tools button[data-apply][disabled]{opacity:.5;cursor:not-allowed}
.op-items-list{display:flex;flex-direction:column}
.op-item-line{display:grid;grid-template-columns:30px minmax(220px,1fr) 126px 72px 50px 86px 96px 30px;gap:6px;align-items:end;padding:10px 10px;border-bottom:1px solid var(--border);cursor:pointer}
.op-item-line.op-item-line-locked{grid-template-columns:30px minmax(0,1fr) 128px 44px;align-items:center}
.op-item-line:last-child{border-bottom:0}
.op-item-line:hover{background:#f8fafc}
.op-items-list.op-items-has-open .op-item-line{opacity:.45}
.op-items-list.op-items-has-open .op-item-line.op-item-line-alloc-open{opacity:1;background:#eef6ff;box-shadow:inset 4px 0 var(--green)}
.op-items-list.op-items-has-open .op-item-line.op-item-line-alloc-open:hover{background:#eaf4ff}
.op-item-line.op-item-line-alloc-open{padding-left:14px}
.op-item-line label{display:block;font-size:11px;color:var(--muted);font-weight:600;margin-bottom:4px}
.op-item-line > div{min-width:0}
.op-item-line input,.op-item-line select{box-sizing:border-box;min-width:0;width:100%;height:36px;padding:5px 8px;font-size:13px}
.op-line-index{align-self:center;justify-self:center;color:#94a3b8;font-size:11px;font-weight:700}
.op-line-name-cell input{font-weight:600}
.op-line-doc-meta{font-size:12px;color:var(--muted);margin-top:3px}
.op-line-doc-main{min-width:0;padding:2px 0}
.op-line-doc-label{font-size:11px;color:var(--muted);font-weight:700;margin-bottom:3px}
.op-line-doc-title{font-size:14px;line-height:1.28;font-weight:800;color:var(--text);white-space:normal;overflow:visible}
.op-line-doc-qty{align-self:stretch;display:flex;flex-direction:column;justify-content:center;gap:3px;padding:7px 10px;border:1px solid #dbe4f0;border-radius:8px;background:#fff}
.op-line-doc-qty span{font-size:11px;color:var(--muted);font-weight:700}
.op-line-doc-qty b{font-size:15px;line-height:1.1;white-space:nowrap;color:var(--text)}
.op-item-line .op-line-remove{justify-self:end;padding:6px 8px;color:var(--red)}
.op-line-lock{align-self:center;justify-self:center;font-size:10px;font-weight:800;color:#64748b;background:#eef2f7;border:1px solid #dbe4f0;border-radius:999px;padding:4px 6px}
.op-line-alloc-toggle-row{grid-column:1 / -1;display:flex;align-items:center;justify-content:flex-start;margin-top:0;margin-bottom:-1px}
.op-line-alloc-toggle{box-sizing:border-box;max-width:100%;min-height:28px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:800;color:#31506f;background:#f8fafc;border:1px solid #dbe4f0;white-space:normal;text-align:left}
.op-line-alloc-toggle:hover{background:#edf4fb;border-color:#cbd9e8}
.op-line-alloc-toggle.complete{color:var(--green-d);background:var(--green-l);border-color:#c8f0da}
.op-line-alloc-toggle.partial{color:#9a6400;background:var(--amber-l);border-color:#fde3a3}
.op-line-alloc-toggle.over{color:var(--red);background:var(--red-l);border-color:#ffc9c9}
.op-line-alloc-toggle.open{position:relative;border-color:#b8d7ee;background:#eef6ff;color:#31506f;border-bottom-color:#eef6ff;border-radius:8px 8px 0 0;box-shadow:0 -1px 0 #b8d7ee inset;font-size:11px;font-weight:700}
.op-item-line-alloc-open .op-line-alloc-toggle-row{margin-top:2px}
.op-item-line-alloc-open .op-line-alloc-toggle-row{display:none}
.op-line-alloc-panel{grid-column:1 / -1;display:none;background:#f8fafc;border:1px solid var(--border);border-radius:8px;padding:10px}
.op-line-alloc-panel.open{display:block}
.op-item-line-alloc-open .op-line-alloc-panel{border-color:#b8d7ee;border-left:4px solid var(--green);border-radius:0 8px 8px 8px;background:#f8fbff;box-shadow:0 1px 0 rgba(15,23,42,.03)}
.op-line-alloc-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.op-line-allocs{display:flex;flex-direction:column;gap:6px}
.op-line-alloc-row{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1.15fr) minmax(0,1fr) minmax(104px,.7fr) minmax(104px,.75fr) 32px;gap:8px;align-items:center;background:#fff;border:1px solid #dbe4f0;border-radius:8px;padding:8px}
.op-line-alloc-row .op-line-alloc-remove{align-self:center;justify-self:end}
.op-line-alloc-row select,.op-line-alloc-row input{min-width:0;width:100%;height:36px;border-radius:8px;border:1px solid #dbe4f0;padding:6px 10px;font-size:13px;background:#fff}
.op-line-alloc-row select,.op-line-alloc-row input{box-sizing:border-box}
.op-line-alloc-summary{margin-top:8px;font-size:12px;color:var(--muted)}
.op-items-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:10px 14px;background:var(--bg);border-top:1px solid var(--border);font-size:12px}
.op-items-summary b{display:block;font-size:14px;color:var(--text);margin-top:2px}
.journal-table{table-layout:fixed;width:100%;min-width:1080px}
.journal-table th,.journal-table td{vertical-align:top;overflow:hidden}
.journal-table th{font-size:10px;line-height:1.1;padding:9px 10px}
.journal-table td{font-size:12px;line-height:1.25;padding:10px 10px}
.journal-table tbody tr.journal-row{cursor:pointer;height:58px}
.journal-table tbody tr.journal-row > td{height:58px;max-height:58px;overflow:hidden}
.journal-table tbody tr.journal-row:hover{background:#f8fafc}
.journal-table.journal-has-open tbody tr.journal-row{opacity:.45}
.journal-table.journal-has-open tbody tr.journal-row.journal-row-open{opacity:1;background:#eef6ff;box-shadow:inset 4px 0 var(--green)}
.journal-table.journal-has-open tbody tr.journal-row.journal-row-open:hover{background:#eaf4ff}
.journal-table tbody tr.journal-row:hover td:last-child{background:#f8fafc}
.journal-table.journal-has-open tbody tr.journal-row.journal-row-open td:last-child{background:#eef6ff}
.journal-table.journal-has-open tbody tr.journal-row.journal-row-open:hover td:last-child{background:#eaf4ff}
.journal-table .journal-id{color:#31506f;white-space:nowrap}
.journal-table .journal-date{font-weight:800;color:#12304f;line-height:1.1}
.journal-table .journal-op-number{display:block;margin-top:4px;font-size:11px;line-height:1;font-weight:500;color:#94a3b8;letter-spacing:0}
.journal-table .journal-paid-date{display:block;margin-top:3px;font-size:11px;line-height:1;font-weight:500;color:var(--green);letter-spacing:0;white-space:nowrap}
.journal-table .journal-row-open .journal-op-number{display:block}
.journal-table .journal-content{min-width:0;max-width:100%}
.journal-table tbody tr.journal-row td:nth-child(2)>*,
.journal-table tbody tr.journal-row td:nth-child(4)>*{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.journal-table .journal-main-text{font-weight:600;color:var(--text);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.journal-table .journal-sub-text{font-size:11px;color:var(--muted);line-height:1.2;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.journal-table .journal-account-line{font-size:10px;letter-spacing:-.08px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.journal-table .journal-sub-text.journal-sub-warning{color:var(--red)}
.journal-related-link{display:block;box-sizing:border-box;max-width:100%;min-width:0;margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;line-height:inherit;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.journal-related-link:hover,.journal-related-link:focus-visible{color:#2563eb;text-decoration:underline;outline:none}
.journal-related-link:focus-visible{border-radius:3px;box-shadow:0 0 0 2px rgba(37,99,235,.22)}
.journal-related-link.journal-cell-main,.journal-related-link.journal-sub-text{width:100%}
.journal-content-source-link{width:100%;margin-top:2px;color:var(--muted);font-size:11px;line-height:1.2}
.journal-status-related-link,.journal-object-related-link{width:auto;max-width:100%;color:inherit;text-decoration:none!important}
.journal-status-related-link:hover .badge,.journal-status-related-link:focus-visible .badge{box-shadow:0 0 0 2px rgba(37,99,235,.2)}
.journal-object-related-link:hover,.journal-object-related-link:focus-visible{color:#2563eb;text-decoration:underline!important}
.journal-table .journal-objects{font-size:11px;color:#31506f;line-height:1.2}
.journal-object-line{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.journal-object-summary{display:inline-flex;align-items:baseline;gap:4px;min-width:0;max-width:100%;vertical-align:bottom}
.journal-object-first{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.journal-object-more{flex:0 0 auto;white-space:nowrap}
.journal-table td:nth-child(2){word-break:normal}
.journal-table td.num{white-space:nowrap}
.journal-amount{font-weight:500;color:var(--text)}
.journal-amount-income{color:var(--green-d)}
.journal-amount-expense{color:var(--red)}
.journal-amount-partner{color:var(--muted);font-weight:500}
.journal-cell-main{font-weight:600;color:var(--text);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.journal-status-line{margin-top:3px;line-height:1.1;white-space:nowrap}
.journal-status-dot{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;font-size:11px;font-weight:800;line-height:1}
.journal-status-dot.ok{background:var(--green-l);color:var(--green-d)}
.journal-status-dot.warn{background:var(--amber-l);color:var(--amber)}
.journal-status-dot.bad{background:var(--red-l);color:var(--red)}
.journal-status-dot.gray{background:#eef2f7;color:#64748b}
.journal-col-id{width:96px}
.journal-col-counterparty{width:190px}
.journal-col-article{width:142px}
.journal-article-cell{min-width:0}
.journal-article-cell .journal-cell-main{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.journal-col-content{width:auto}
.journal-col-qty{width:128px}
.journal-col-amount{width:118px}
.journal-col-objects{width:168px}
.journal-table th:nth-child(5),.journal-table td:nth-child(5){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.journal-table th:nth-child(6),.journal-table td:nth-child(6),
.journal-table th:nth-child(7),.journal-table td:nth-child(7){white-space:nowrap;overflow:visible}
.journal-table th:nth-child(2),.journal-table td:nth-child(2),
.journal-table th:nth-child(3),.journal-table td:nth-child(3),
.journal-table th:nth-child(4),.journal-table td:nth-child(4){min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;word-break:normal}
.journal-table td:nth-child(7) .badge{display:inline-flex;max-width:none}
.journal-table .journal-detail-row > td{background:#f8fafc;border-top:0;padding:0 16px 14px;box-shadow:inset 4px 0 var(--green)}
.finance-obligations-wrap{margin-bottom:14px}
.finance-obligations-toolbar{display:grid;grid-template-columns:minmax(max-content,auto) max-content minmax(260px,390px) minmax(170px,1fr) 120px;align-items:center;column-gap:12px}
.finance-obligations-toolbar .table-filter-result{justify-self:end;min-width:170px;text-align:right;white-space:nowrap}
.finance-obligation-filter-panel{display:flex;flex-wrap:wrap;gap:8px;align-items:end}
.finance-obligation-filter-panel .table-filter-field{gap:3px;min-width:0}
.finance-obligation-filter-panel .finance-filter-period{flex:.8 1 230px;min-width:222px}
.finance-obligation-filter-panel .finance-filter-partner{flex:1.25 1 180px;min-width:165px}
.finance-obligation-filter-panel .finance-filter-counterparty{flex:1.25 1 190px;min-width:175px}
.finance-obligation-filter-panel .finance-filter-direction{flex:.75 1 115px;min-width:105px}
.finance-obligation-filter-panel .finance-filter-type{flex:.75 1 115px;min-width:105px}
.finance-obligation-filter-panel .finance-filter-status{flex:.6 1 95px;min-width:90px}
.finance-obligation-filter-panel .table-filter-field label{font-size:11px}
.finance-obligation-filter-panel .table-filter-field input,
.finance-obligation-filter-panel .table-filter-field select{box-sizing:border-box;width:100%;height:var(--ui-control-height);padding:7px 10px;font-size:var(--ui-font-control);outline:none;box-shadow:0 0 0 3px transparent}
.finance-obligation-filter-panel .table-filter-field input.table-filter-active,
.finance-obligation-filter-panel .table-filter-field select.table-filter-active,
.finance-obligation-filter-panel .table-filter-field.is-active input,
.finance-obligation-filter-panel .table-filter-field.is-active select{border-color:var(--green)!important;box-shadow:var(--selected-ring)!important;background:#fff!important}
.finance-obligation-filter-panel .table-filter-field.is-active label{color:var(--green-d)}
.finance-obligation-filter-panel .table-filter-date-range{gap:4px}
.finance-obligation-filter-panel .table-filter-date-range input{width:100%;min-width:0}
.finance-obligation-filter-panel .table-filter-field input.search-select-input{height:var(--ui-control-height);min-height:var(--ui-control-height);padding:7px 30px 7px 10px;font-size:var(--ui-font-control);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.finance-obligation-filter-panel .search-select::after{right:9px}
.finance-obligation-total-row{--registry-saldo-width:320px;--registry-saldo-height:38px;display:grid;grid-template-columns:minmax(190px,1fr) minmax(160px,max-content) minmax(180px,max-content) var(--registry-saldo-width);align-items:center;column-gap:16px;row-gap:6px;font-size:12px;color:var(--muted)}
.finance-total-item{display:flex;align-items:baseline;justify-content:flex-end;justify-self:end;gap:7px;min-width:0;max-width:100%;white-space:nowrap;font-weight:700;font-variant-numeric:tabular-nums}
.finance-total-item span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.finance-total-item b{flex:0 0 auto;font-size:12px;font-weight:900}
.finance-total-we-owe{color:var(--red)}
.finance-total-owed-to-us{color:var(--green-d)}
.finance-total-balance{display:flex;align-items:center;justify-content:center;justify-self:end;gap:7px;width:var(--registry-saldo-width);min-width:var(--registry-saldo-width);max-width:var(--registry-saldo-width);height:var(--registry-saldo-height);box-sizing:border-box;padding:0 11px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}
.finance-total-balance span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.finance-total-balance b{flex:0 0 auto;font-size:15px;font-weight:900}
.finance-total-balance.finance-direction-we-owe{border-color:#fecaca;background:#fff5f5;color:var(--red)}
.finance-total-balance.finance-direction-owed-to-us{border-color:#bbf7d0;background:#f0fdf4;color:var(--green-d)}
.finance-total-caption{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;color:var(--text)}
.registry-reconciliation-total-row{--registry-saldo-width:320px;--registry-saldo-height:38px;display:grid;grid-template-columns:minmax(190px,1fr) minmax(160px,max-content) minmax(180px,max-content) var(--registry-saldo-width);align-items:center;column-gap:16px;row-gap:6px;padding:12px 24px;border-top:1px solid var(--border);background:#fff;font-size:12px;color:var(--muted)}
.registry-total-caption{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800;color:var(--text)}
.registry-total-item{display:flex;align-items:baseline;justify-content:flex-end;justify-self:end;gap:7px;min-width:0;max-width:100%;white-space:nowrap;font-weight:700;font-variant-numeric:tabular-nums}
.registry-total-item span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.registry-total-item b{flex:0 0 auto;font-size:12px;font-weight:900}
.registry-total-expense{color:var(--red)}
.registry-total-income{color:var(--green-d)}
.registry-total-balance{display:flex;align-items:center;justify-content:center;justify-self:end;gap:7px;width:var(--registry-saldo-width);min-width:var(--registry-saldo-width);max-width:var(--registry-saldo-width);height:var(--registry-saldo-height);box-sizing:border-box;padding:0 11px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}
.registry-total-balance span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.registry-total-balance b{flex:0 0 auto;font-size:15px;font-weight:900}
.registry-total-balance.finance-direction-we-owe{border-color:#fecaca;background:#fff5f5;color:var(--red)}
.registry-total-balance.finance-direction-owed-to-us{border-color:#bbf7d0;background:#f0fdf4;color:var(--green-d)}
.registry-reconciliation-history .muted{color:var(--muted);font-size:12px}
.finance-reconciliation-box{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 14px;border-top:1px solid var(--border);background:#fbfdff;font-size:12px;color:var(--muted)}
.finance-reconciliation-box>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.finance-reconciliation-box b{color:var(--text);font-size:13px;line-height:1.2}
.finance-reconciliation-box span:not(.badge){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.finance-reconciliation-box .btn{height:var(--ui-control-height);min-height:var(--ui-control-height);padding:7px 14px;font-size:var(--ui-font-control);white-space:nowrap}
.finance-reconciliation-box.is-muted{background:#f8fafc}
.finance-reconciliation-box.is-locked{background:#f0fdf4;border-color:#bbf7d0}
.finance-reconciliation-box.is-locked b{color:var(--green-d)}
.finance-reconciliation-box.is-drift{background:#fffbeb;border-color:#fde68a}
.finance-reconciliation-box.is-drift b{color:#b45309}
.finance-reconciliation-history{border-top:1px solid var(--border);background:#fff;padding:8px 14px 10px}
.finance-reconciliation-history-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:30px}
.finance-reconciliation-history-head b{font-size:13px;color:var(--text)}
.finance-reconciliation-history-head .btn{height:var(--ui-control-height);min-height:var(--ui-control-height);padding:7px 14px;font-size:var(--ui-font-control)}
.finance-reconciliation-history-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px;margin-top:6px}
.finance-reconciliation-history-item{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:10px;min-height:44px;padding:8px 10px;border:1px solid #dbe6f2;border-radius:8px;background:#f8fbff;color:var(--text);cursor:pointer;text-align:left}
.finance-reconciliation-history-item:hover{border-color:#86efac;background:#f0fdf4}
.finance-reconciliation-history-item span{min-width:0}
.finance-reconciliation-history-item b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.finance-reconciliation-history-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px;margin-top:2px}
.finance-reconciliation-history-item>span:last-child{font-weight:800;white-space:nowrap;font-size:13px}
.finance-reconciliation-history-empty{padding:8px 0;color:var(--muted);font-size:13px}
@media(max-width:1280px){
  .registry-reconciliation-total-row,
  .finance-obligation-total-row{
    grid-template-columns:minmax(180px,1fr) minmax(230px,280px) var(--registry-saldo-width);
    grid-template-areas:
      "caption income balance"
      "caption expense balance";
    align-items:center;
    column-gap:14px;
    row-gap:4px;
    padding:10px 24px;
  }
  .table-top.finance-obligation-total-row{display:grid;padding:10px 24px}
  .registry-total-caption,.finance-total-caption{grid-area:caption;align-self:center}
  .registry-total-income,.finance-total-owed-to-us{grid-area:income}
  .registry-total-expense,.finance-total-we-owe{grid-area:expense}
  .registry-total-item,.finance-total-item{justify-self:stretch;justify-content:flex-start;min-height:20px}
  .registry-total-balance,.finance-total-balance{grid-area:balance;justify-self:end;align-self:center;width:var(--registry-saldo-width);min-width:var(--registry-saldo-width);max-width:var(--registry-saldo-width)}
}
@media(max-width:980px){
  .registry-reconciliation-total-row,
  .finance-obligation-total-row{grid-template-columns:minmax(0,1fr) var(--registry-saldo-width);grid-template-areas:"caption balance" "income balance" "expense balance";padding:10px 14px;row-gap:5px}
  .table-top.finance-obligation-total-row{display:grid;padding:10px 14px}
  .finance-reconciliation-box.registry-reconciliation-box{align-items:flex-start;flex-direction:column}
}
@media(max-width:640px){
  .registry-reconciliation-total-row,
  .finance-obligation-total-row{grid-template-columns:1fr;grid-template-areas:"caption" "income" "expense" "balance"}
  .table-top.finance-obligation-total-row{display:grid;padding:10px 14px}
  .registry-total-caption,.registry-total-balance,.finance-total-caption,.finance-total-balance{grid-column:auto}
  .registry-total-balance,.finance-total-balance{justify-self:stretch;width:100%;min-width:0;max-width:100%}
}
.finance-filter-reset{justify-content:center;justify-self:end;width:104px;min-width:104px;height:34px;padding:6px 8px;border:1px solid transparent;font-size:12px;box-shadow:0 0 0 3px transparent;text-align:center}
.finance-filter-reset.active{border-color:var(--green);color:var(--green-d);background:var(--selected-bg);box-shadow:var(--selected-ring)}
.finance-filter-reset.inactive{visibility:hidden;pointer-events:none;border-color:transparent;background:transparent}
.finance-ledger-table{table-layout:fixed;width:100%;min-width:100%}
.finance-ledger-table th,.finance-ledger-table td{vertical-align:top;overflow:hidden}
.finance-ledger-table th{font-size:var(--ui-font-table-head);line-height:1.1;padding:var(--ui-table-head-padding-y) var(--ui-table-head-padding-x)}
.finance-ledger-table td{font-size:var(--ui-font-table-body);line-height:1.2;padding:var(--ui-table-body-padding-y) var(--ui-table-body-padding-x)}
.finance-ledger-table tbody tr.finance-ledger-row{height:54px}
.finance-ledger-table tbody tr.finance-ledger-row > td{height:54px;max-height:54px;overflow:hidden}
.finance-ledger-table tbody tr.finance-ledger-row.finance-row-clickable{cursor:pointer}
.finance-ledger-table tbody tr.finance-ledger-row:hover{background:#f8fafc}
.finance-ledger-table tbody tr.finance-ledger-row:hover td:last-child{background:#f8fafc}
.finance-ledger-table tbody tr.finance-ledger-row.finance-row-open > td{border-bottom-color:#dbe4f0}
.finance-cell{min-width:0;max-width:100%;display:block}
.finance-cell-main{font-weight:600;color:var(--text);line-height:1.16;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.finance-cell-sub{font-size:11px;color:var(--muted);line-height:1.14;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.finance-date-cell .finance-cell-main{font-weight:800;color:#12304f}
.finance-date-cell .finance-cell-sub{font-weight:500;color:#94a3b8}
.finance-date-action{display:inline-flex;align-items:center;max-width:100%;margin-top:2px;padding:0;border:0;background:transparent;color:#94a3b8;font:inherit;font-size:10.5px;font-weight:600;line-height:1.1;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.finance-date-action:hover{color:#2563eb;text-decoration:underline;text-underline-offset:2px}
.finance-date-action:focus-visible{outline:2px solid rgba(37,99,235,.28);outline-offset:2px;border-radius:4px}
.finance-cell-money .finance-cell-main{font-weight:500}
.finance-cell-badge-line{display:flex;justify-content:flex-end;align-items:center;margin-top:2px;min-height:18px;overflow:visible;text-overflow:clip}
.finance-cell-badge-line .badge{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.finance-money-warn .finance-cell-main{color:var(--amber)}
.finance-direction-we-owe.finance-cell-sub,.finance-cell-money.finance-direction-we-owe .finance-cell-main{color:var(--red)}
.finance-direction-owed-to-us.finance-cell-sub,.finance-cell-money.finance-direction-owed-to-us .finance-cell-main{color:var(--green-d)}
.finance-status-cell{display:flex;align-items:center;justify-content:flex-start;gap:6px;min-width:0;max-width:100%;flex-wrap:nowrap}
.finance-status-badges{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:100%;flex:0 0 auto}
.finance-status-badges .badge{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.finance-row-action{flex:0 0 auto;align-self:center;padding:7px 10px;font-size:var(--ui-font-control);line-height:1.1;opacity:.88;white-space:nowrap}
.finance-ledger-subrow td{background:#f8fafc;color:var(--muted);font-size:12px;padding-top:0;border-top:0}
.finance-ledger-detail-row>td{background:#f8fafc;border-top:0;padding:0 14px 14px;box-shadow:inset 4px 0 var(--green);overflow:visible}
.finance-ledger-detail-panel{display:flex;flex-direction:column;gap:12px;align-items:flex-start;border:1px solid #dbe4f0;border-top:0;border-radius:0 0 10px 10px;background:#fff;padding:14px 16px;margin-top:0}
.finance-ledger-detail-copy{min-width:0}
.finance-ledger-detail-copy b{display:block;font-size:13px;line-height:1.25;color:var(--text);margin-bottom:4px}
.finance-ledger-detail-copy span{display:block;font-size:13px;line-height:1.45;color:#475569;white-space:normal;overflow-wrap:anywhere}
.finance-ledger-detail-actions{display:flex;gap:8px;align-items:center;justify-content:flex-start;flex-wrap:wrap}
.finance-readable-detail{gap:14px;padding:14px 16px}
.finance-readable-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;width:100%}
.finance-readable-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:100%}
.finance-readable-field{min-width:0;border:1px solid #edf2f7;border-radius:8px;background:#f8fafc;padding:8px 10px}
.finance-readable-field.wide{grid-column:span 2}
.finance-readable-field span{display:block;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.02em;line-height:1.15;margin-bottom:3px}
.finance-readable-field b{display:block;color:var(--text);font-size:13px;font-weight:700;line-height:1.3;white-space:normal;overflow-wrap:anywhere}
.finance-readable-field.finance-direction-we-owe b{color:var(--red)}
.finance-readable-field.finance-direction-owed-to-us b{color:var(--green-d)}
@media(max-width:980px){.finance-readable-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.finance-readable-detail-head{flex-direction:column}.finance-readable-detail-grid{grid-template-columns:1fr}.finance-readable-field.wide{grid-column:auto}}
.finance-col-date{width:9%}
.finance-col-party{width:18%}
.finance-col-content{width:19%}
.finance-col-object{width:180px}
.finance-col-period{width:17%}
.finance-col-money{width:10.5%}
.finance-col-status{width:16%}
.finance-ledger-table th:nth-child(2),.finance-ledger-table td:nth-child(2),
.finance-ledger-table th:nth-child(3),.finance-ledger-table td:nth-child(3),
.finance-ledger-table th:nth-child(4),.finance-ledger-table td:nth-child(4){min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;word-break:normal}
.finance-ledger-table td.num,.finance-ledger-table th.num{white-space:nowrap;text-align:right}
/* Проектное финансирование (ВКЛ) */
.section-kpi-grid-5{grid-template-columns:repeat(5,1fr)}
.pf-line-card{margin-bottom:14px}
/* Основные цифры линии — рабочее содержимое карточки, не сворачиваемая сводка,
   поэтому свой класс вместо .kpi-grid (его прячет toggleSummaryPanels). */
.pf-line-kpis{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:var(--kpi-height);gap:12px;margin-bottom:4px}
@media(max-width:900px){.pf-line-kpis{grid-template-columns:repeat(2,1fr)}}
.pf-line-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.pf-line-title{flex:1 1 auto;min-width:0}
.pf-line-title b{font-size:15px}
.pf-line-sub{font-size:12px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-line-card .progress{margin-top:6px}
.pf-line-card .table-wrap{margin-top:14px}
.pf-col-action{width:150px}
.pf-action-cell{text-align:right;white-space:nowrap}
.pf-close-btn{padding:7px 14px;font-size:var(--ui-font-control)}
.pf-tranche-table .finance-col-date{width:11%}
.pf-tranche-table .finance-col-party{width:22%}
.pf-tranche-table .finance-col-money{width:13%}
.pf-tranche-table .finance-col-period{width:15%}
/* Колонки 3-4 у траншей денежные: наследованный ellipsis текстовых колонок
   finance-ledger-table резал бы суммы — деньги не обрезаем никогда. */
.pf-tranche-table th:nth-child(3),.pf-tranche-table td:nth-child(3),
.pf-tranche-table th:nth-child(4),.pf-tranche-table td:nth-child(4){overflow:visible;text-overflow:clip}
.pf-remaining-pos .finance-cell-main{color:var(--green-d);font-weight:700}
.pf-escrow-wrap{margin-top:4px}
.pf-close-preview{display:flex;gap:16px;flex-wrap:wrap;padding:10px 12px;background:var(--green-l,#F0FDF4);border:1px solid var(--border);border-radius:8px;font-size:13px}
.pf-close-preview b{white-space:nowrap}
.pf-preview-neg b{color:var(--red)}
.pf-preview-pos b{color:var(--green-d)}
@media(max-width:1200px){.section-kpi-grid-5{grid-template-columns:repeat(3,1fr)}}
.journal-detail-card{border:1px solid #dbe4f0;border-top:0;border-radius:0 0 10px 10px;background:#fff;padding:14px 16px 12px;margin-top:0}
.journal-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}
.journal-detail-field{background:#f8fafc;border:1px solid #edf2f7;border-radius:8px;padding:8px 10px}
.journal-detail-field span{display:block;font-size:11px;color:var(--muted);margin-bottom:3px}
.journal-detail-field b{display:block;font-size:13px;color:var(--text);font-weight:700;line-height:1.25}
.journal-detail-section{margin-top:12px}
.journal-detail-section:first-child{margin-top:0}
.journal-detail-row>td{width:100%;overflow:visible!important;box-sizing:border-box}
.journal-detail-row [id^="journal-detail-host-"]{width:100%;max-width:none}
.journal-detail-row .journal-detail-card,.journal-detail-row .journal-detail-section{width:100%;max-width:none;min-width:0;box-sizing:border-box}
.journal-detail-section h4{font-size:13px;font-weight:700;margin-bottom:6px}
.actual-work-object{margin:12px 0 4px;padding:12px 14px;border:1px solid #DDD6FE;border-radius:10px;background:#FAF8FF}
.actual-work-object-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.actual-work-object-head>div{display:flex;min-width:0;flex-direction:column;gap:2px}
.actual-work-object-head b{font-size:13px;color:#4C1D95}
.actual-work-object-head span{font-size:11.5px;color:#6B7280;line-height:1.35}
.actual-work-object-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}
.actual-work-object-grid>div{min-width:0;padding:8px 9px;border:1px solid #EDE9FE;border-radius:8px;background:#fff}
.actual-work-object-grid span,.actual-work-object-grid small{display:block;overflow:hidden;color:#64748B;font-size:10.5px;text-overflow:ellipsis;white-space:nowrap}
.actual-work-object-grid b{display:block;overflow:hidden;margin:3px 0 1px;color:#111827;font-size:14px;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}

/* Object expansion · approved control overview (variant 14). */
.object-detail-control{display:grid;grid-template-columns:210px minmax(0,1fr);overflow:hidden;border:1px solid #dbe4f0;border-radius:12px;background:#fff;white-space:normal}
.object-detail-control-nav{display:flex;min-width:0;flex-direction:column;padding:16px 10px;border-right:1px solid #dbe4f0;background:#f8fafc}
.object-detail-control-nav-head{padding:0 8px 12px}
.object-detail-control-nav-head h4{margin:0 0 7px;color:#172033;font-size:14px}
.object-detail-control-nav-head p{margin:0;color:#64748b;font-size:11.5px;line-height:1.45;overflow-wrap:anywhere;white-space:normal}
.object-detail-control-nav-button{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;width:100%;min-height:40px;padding:8px 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:#526174;font:inherit;text-align:left;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}
.object-detail-control-nav-button span{overflow:hidden;font-size:12.5px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}
.object-detail-control-nav-button small{max-width:88px;overflow:hidden;color:#78869a;font-size:10.5px;text-overflow:ellipsis;white-space:nowrap}
.object-detail-control-nav-button:hover{background:#f1f5f9;color:var(--green-d)}
.object-detail-control-nav-button:focus-visible{outline:2px solid rgba(18,169,95,.28);outline-offset:1px}
.object-detail-control-nav-button[aria-selected="true"]{border-color:#bde5d0;background:#eaf8f0;color:#087a43;box-shadow:0 0 0 1px rgba(18,169,95,.04)}
.object-detail-control-nav-button[aria-selected="true"] small{color:#4a715d}
.object-detail-control-nav-foot{margin-top:auto;padding:14px 8px 2px;border-top:1px solid #e3e9f1}
.object-detail-control-nav-foot strong,.object-detail-control-nav-foot span{display:block}
.object-detail-control-nav-foot strong{margin-bottom:4px;color:#263244;font-size:10.5px}
.object-detail-control-nav-foot span{color:#64748b;font-size:10.5px;line-height:1.4}
.object-detail-control-workspace{min-width:0;padding:18px}
.object-detail-control-panel{min-width:0}
.object-detail-control-panel[hidden]{display:none}
.object-detail-control-head,.object-detail-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:14px;border-bottom:1px solid #edf1f6}
.object-detail-control-head>div,.object-detail-section-head>div{min-width:0}
.object-detail-control-head>div>span,.object-detail-section-head>div>span{display:block;margin-bottom:4px;color:#087a43;font-size:10.5px;font-weight:750;letter-spacing:.06em;text-transform:uppercase}
.object-detail-control-head h3,.object-detail-section-head h3{margin:0;color:#172033;font-size:19px;line-height:1.25}
.object-detail-control-head p,.object-detail-section-head p{margin:5px 0 0;color:#64748b;font-size:12px;line-height:1.45}
.object-detail-control-head>.btn,.object-detail-section-head>.btn{flex:0 0 auto;white-space:nowrap}
.object-detail-control-alert{display:grid;grid-template-columns:34px minmax(0,1fr) max-content;align-items:center;gap:12px;margin-top:14px;padding:11px 12px;border:1px solid #f4caca;border-radius:10px;background:#fff7f7}
.object-detail-control-alert.is-warning{border-color:#f0d89d;background:#fffaf0}
.object-detail-control-alert.is-ready{grid-template-columns:34px minmax(0,1fr);border-color:#c9e9d7;background:#f2fbf6}
.object-detail-control-alert-icon{display:grid;width:30px;height:30px;place-items:center;border-radius:9px;background:#feecec;color:#c74343;font-size:14px;font-weight:800}
.object-detail-control-alert.is-warning .object-detail-control-alert-icon{background:#fff1cc;color:#a56a00}
.object-detail-control-alert.is-ready .object-detail-control-alert-icon{background:#dff5e8;color:#078047}
.object-detail-control-alert h4{margin:0;color:#222b3b;font-size:12.5px}
.object-detail-control-alert p{margin:3px 0 0;color:#6a7688;font-size:11px;line-height:1.35}
.object-detail-control-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px}
.object-control-kpi-card{min-width:0;padding:12px;border:1px solid #e1e7ef;border-radius:10px;background:#fff;box-shadow:inset 3px 0 #d8e0ea}
.object-control-kpi-card.is-danger{border-color:#f0d2d2;background:#fffafa;box-shadow:inset 3px 0 #dc5e5e}
.object-control-kpi-card.is-warning{border-color:#eadfbf;background:#fffdf8;box-shadow:inset 3px 0 #e2ad24}
.object-control-kpi-card.is-info{border-color:#d4e2f5;background:#fbfdff;box-shadow:inset 3px 0 #4f86dc}
.object-control-kpi-card.is-ready{border-color:#d2e8dc;background:#fbfefc;box-shadow:inset 3px 0 #18a662}
.object-control-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:7px}
.object-control-card-head>strong{color:#263244;font-size:11.5px}
.object-control-state{display:inline-flex;align-items:center;max-width:115px;min-height:18px;padding:2px 6px;border-radius:999px;background:#eef2f6;color:#667386;font-size:9.5px;font-weight:650;line-height:1.15;text-align:right}
.object-control-state::before{width:6px;height:6px;flex:0 0 auto;margin-right:4px;border-radius:50%;background:#94a3b8;content:""}
.object-control-state.is-danger{background:#feeeee;color:#a93e3e}.object-control-state.is-danger::before{background:#dc5e5e}
.object-control-state.is-warning{background:#fff4d7;color:#8c660d}.object-control-state.is-warning::before{background:#dfa91d}
.object-control-state.is-info{background:#ebf3ff;color:#3669b3}.object-control-state.is-info::before{background:#4f86dc}
.object-control-state.is-ready{background:#e7f7ee;color:#14764a}.object-control-state.is-ready::before{background:#18a662}
.object-control-main-value{display:block;overflow:hidden;margin:10px 0 7px;color:#182235;font-size:18px;font-weight:760;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}
.object-control-main-value.is-danger{color:#b64040}
.object-control-card-line{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:baseline;gap:8px;padding:5px 0;border-top:1px solid rgba(221,228,238,.75)}
.object-control-card-line span{overflow:hidden;color:#778497;font-size:9.8px;text-overflow:ellipsis;white-space:nowrap}
.object-control-card-line strong{max-width:135px;overflow:hidden;color:#273244;font-size:10px;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}
.object-control-payment-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(105px,auto);align-items:end;gap:8px;margin:9px 0 6px}
.object-control-payment-head>div>span,.object-control-payment-head>div>b{display:block}
.object-control-payment-head>div>span{margin-bottom:2px;color:#778497;font-size:9.5px}
.object-control-payment-head>div>b{overflow:hidden;color:#172033;font-size:17px;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}
.object-control-payment-expected{padding:5px 7px;border:1px solid #efdfae;border-radius:7px;background:#fff8df;text-align:right}
.object-control-payment-expected span{color:#8c6b18!important}
.object-control-payment-expected b{color:#6d5314!important;font-size:10.5px!important}
.object-control-payment-expected.is-unknown{border-color:#dbe4ef;background:#f4f7fa}
.object-control-payment-expected.is-unknown span,.object-control-payment-expected.is-unknown b{color:#6f7c8e!important}
.object-control-payment-meter{position:relative;overflow:hidden;height:4px;margin:1px 0 8px;border-radius:999px;background:#e8edf3}
.object-control-payment-meter span{display:block;height:100%;border-radius:inherit;background:#1aa463}
.object-control-payment-meter.is-unknown{background:repeating-linear-gradient(90deg,#dce4ed 0 5px,#f4f7fa 5px 9px)}
.object-control-payment-meter.is-unknown span{display:none}
.object-detail-control-bottom{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.8fr);gap:10px;margin-top:10px}
.object-detail-control-actions,.object-detail-control-watch{overflow:hidden;border:1px solid #e0e6ee;border-radius:10px;background:#fff}
.object-detail-control-actions>header,.object-detail-control-watch>header{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:38px;padding:8px 11px;border-bottom:1px solid #e8edf3;background:#fafbfc}
.object-detail-control-actions>header strong,.object-detail-control-watch>header strong{color:#263244;font-size:11.5px}
.object-detail-control-actions>header span,.object-detail-control-watch>header span{padding:3px 7px;border-radius:999px;background:#eef2f6;color:#718095;font-size:9.5px;white-space:nowrap}
.object-control-action-row{display:grid;grid-template-columns:24px minmax(0,1fr) max-content;align-items:center;gap:9px;min-height:54px;padding:8px 11px;border-bottom:1px solid #edf1f5}
.object-control-action-row:last-child{border-bottom:0}
.object-control-action-no{display:grid;width:22px;height:22px;place-items:center;border-radius:7px;background:#e8f7ef;color:#0e8650;font-size:10px;font-weight:750}
.object-control-action-row h5{margin:0;color:#263244;font-size:11px}
.object-control-action-row p{margin:2px 0 0;color:#7a8697;font-size:9.8px;line-height:1.3}
.object-control-text-action{padding:4px;border:0;background:transparent;color:#07824a;font:inherit;font-size:10.5px;font-weight:700;white-space:nowrap;cursor:pointer}
.object-control-text-action:hover{text-decoration:underline}
.object-control-text-action:focus-visible{border-radius:4px;outline:2px solid rgba(18,169,95,.25)}
.object-control-watch-row{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:8px;min-height:54px;padding:8px 11px;border-bottom:1px solid #edf1f5}
.object-control-watch-row:last-child{border-bottom:0}
.object-control-watch-row strong,.object-control-watch-row span{display:block}
.object-control-watch-row strong{overflow:hidden;color:#263244;font-size:10.5px;text-overflow:ellipsis;white-space:nowrap}
.object-control-watch-row>div span{margin-top:2px;overflow:hidden;color:#8290a2;font-size:9.5px;text-overflow:ellipsis;white-space:nowrap}
.object-control-watch-value{max-width:96px;padding:3px 7px;border-radius:999px;background:#eef2f6;color:#687689;font-size:9.5px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}
.object-control-watch-value.is-warning{background:#fff3d2;color:#8b640d}
.object-control-watch-value.is-ready{background:#e7f7ee;color:#14764a}
.object-control-watch-value.is-muted{background:#f1f4f7;color:#7a8696}
.object-detail-control-empty{padding:24px;color:#7a8798;font-size:12px;text-align:center}
.object-detail-control-empty.is-large{display:flex;min-height:180px;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px dashed #d9e1ea;border-radius:10px;background:#fafbfd}
.object-detail-control-empty.is-large strong{color:#334155;font-size:13px}.object-detail-control-empty.is-large span{font-size:11px}
.object-detail-control-table-block{overflow-x:auto;margin-top:14px;border:1px solid #e1e7ef;border-radius:9px}
.object-detail-control-table-block .journal-mini-table{margin:0}
.object-detail-control-subsection{overflow-x:auto;margin-top:14px}
.object-detail-control-subsection h4{margin:0 0 8px;color:#263244;font-size:12px}
.object-cost-registry-summary{display:flex;align-items:stretch;gap:7px;padding:9px 10px;border-bottom:1px solid #e7ecf2;background:#f8fafc;overflow-x:auto}
.object-cost-registry-summary>div{display:flex;min-width:142px;align-items:center;justify-content:space-between;gap:12px;padding:7px 9px;border:1px solid #e1e7ed;border-radius:8px;background:#fff;color:#667487}
.object-cost-registry-summary span{font-size:9.5px;white-space:nowrap}.object-cost-registry-summary strong{color:#263244;font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}
.object-cost-registry-summary .is-asset{border-color:#cdebdc;background:#f4fbf7}.object-cost-registry-summary .is-overhead{border-color:#dbe4f0;background:#f7f9fc}
.object-cost-registry-summary .is-total{margin-left:auto;border-color:#bfe5d1;background:#eaf8f0;color:#14764a}.object-cost-registry-summary .is-total strong{color:#0d7545}
.object-cost-registry-table-wrap{overflow-x:auto}.object-cost-registry-table{min-width:790px}
.object-cost-registry-table td{vertical-align:middle}.object-cost-registry-table td:nth-child(3){min-width:260px}.object-cost-registry-table strong{color:#273448;font-size:11px}
.object-cost-kind{display:inline-flex;align-items:center;min-height:20px;padding:2px 7px;border-radius:999px;background:#eef2f6;color:#59687a;font-size:9px;font-weight:750;white-space:nowrap}
.object-cost-kind.is-direct{background:#eaf3fb;color:#315f85}.object-cost-kind.is-asset{background:#e7f7ee;color:#14764a}.object-cost-kind.is-overhead{background:#f0f2f7;color:#5f6c7c}
.object-cost-source-link{padding:2px 0;border:0;background:transparent;color:#07824a;font:inherit;font-size:10.5px;font-weight:700;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:2px;cursor:pointer}.object-cost-source-link:hover,.object-cost-source-link:focus-visible{text-decoration-color:currentColor}.object-cost-source-link:focus-visible{border-radius:3px;outline:2px solid rgba(18,169,95,.25);outline-offset:2px}
.object-cost-registry-table tfoot td{border-top:2px solid #dce5ee;background:#f7faf9;color:#344154;font-weight:750}.object-cost-registry-table tfoot td:last-child{color:#0d7545;font-size:12px;font-variant-numeric:tabular-nums}
.object-cost-registry-note{margin:0;padding:8px 10px;border-top:1px solid #edf1f5;background:#fbfcfd;color:#7a8797;font-size:9.5px;line-height:1.35}
.object-cost-registry-error,.object-cost-registry-warning{display:flex;align-items:center;gap:9px;padding:11px 12px;color:#8a4b0f;font-size:10.5px;line-height:1.4}.object-cost-registry-error{border-bottom:1px solid #f2d7a8;background:#fff9ec}.object-cost-registry-warning{border-bottom:1px solid #efc6c6;background:#fff3f3;color:#934141}.object-cost-registry-error strong,.object-cost-registry-warning strong{flex:0 0 auto;color:inherit;font-size:11px}.object-cost-registry-error span,.object-cost-registry-warning span{flex:1 1 auto}.object-cost-registry-error .btn{flex:0 0 auto}
.object-detail-section-head h3[tabindex="-1"]:focus{border-radius:3px;outline:2px solid rgba(18,169,95,.32);outline-offset:3px}
.object-detail-inline-link{display:inline-block;margin-top:9px}
.object-detail-control-panel>.actual-work-object{margin-top:14px}
.object-detail-control-panel>.journal-detail-section{margin-top:14px}
.object-detail-control-note{display:grid;grid-template-columns:170px minmax(0,1fr);gap:12px;margin-top:10px;padding:10px 12px;border:1px solid #e1e7ef;border-radius:9px;background:#fff}
.object-detail-control-note strong{color:#263244;font-size:11px}.object-detail-control-note span{color:#6f7c8e;font-size:10.5px;white-space:pre-wrap}
.object-detail-control-footer{display:flex;align-items:center;gap:8px;padding:12px 0 0}
.object-detail-control-footer .btn:last-child{margin-left:auto}

/* Object card · customer portal access. */
.object-customer-access-body{padding-top:14px}
.object-customer-access-loading{display:flex;min-height:150px;align-items:center;justify-content:center;gap:12px;border:1px dashed #d8e1eb;border-radius:10px;background:#fafbfd;color:#64748b}
.object-customer-access-loading>span{width:24px;height:24px;border:3px solid #d8e9df;border-top-color:var(--green);border-radius:50%;animation:object-customer-access-spin .8s linear infinite}
.object-customer-access-loading b,.object-customer-access-loading small{display:block}
.object-customer-access-loading b{color:#334155;font-size:12.5px}.object-customer-access-loading small{margin-top:3px;font-size:10.5px}
@keyframes object-customer-access-spin{to{transform:rotate(360deg)}}
.object-customer-access-scopes{display:flex;gap:7px;overflow-x:auto;margin-bottom:12px;padding-bottom:2px}
.object-customer-access-scopes button{display:flex;min-width:155px;min-height:48px;flex-direction:column;align-items:flex-start;justify-content:center;padding:7px 10px;border:1px solid #dbe3ed;border-radius:9px;background:#fff;color:#334155;font:inherit;text-align:left;cursor:pointer}
.object-customer-access-scopes button:hover{border-color:#b8d9c6;background:#f8fcfa}
.object-customer-access-scopes button[aria-selected="true"]{border-color:#96d2ae;background:#edf9f2;box-shadow:inset 3px 0 var(--green)}
.object-customer-access-scopes b,.object-customer-access-scopes span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.object-customer-access-scopes b{font-size:11.5px}.object-customer-access-scopes span{margin-top:2px;color:#738094;font-size:9.8px}
.object-customer-access-list{overflow:hidden;border:1px solid #e0e6ee;border-radius:10px;background:#fff}
.object-customer-access-list>header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:8px 12px;border-bottom:1px solid #e8edf3;background:#fafbfc}
.object-customer-access-list>header>div{min-width:0}
.object-customer-access-list>header b,.object-customer-access-list>header span{display:block}
.object-customer-access-list>header b{overflow:hidden;color:#263244;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.object-customer-access-list>header>div span{margin-top:2px;overflow:hidden;color:#7a8798;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.object-customer-access-list>header>span{flex:0 0 auto;padding:3px 7px;border-radius:999px;background:#eef2f6;color:#667386;font-size:9.5px;white-space:nowrap}
.object-customer-access-row{display:grid;grid-template-columns:36px minmax(150px,1fr) max-content 128px max-content;align-items:center;gap:10px;min-height:62px;padding:8px 11px;border-bottom:1px solid #edf1f5}
.object-customer-access-row:last-child{border-bottom:0}
.object-customer-access-row:hover{background:var(--selected-bg);box-shadow:inset 0 0 0 1px #d9e3ef}
.object-customer-access-row.is-pending{background:#fffcf4}.object-customer-access-row.is-pending:hover{background:#fff9e9}
.object-customer-access-avatar{position:relative;display:grid;width:34px;height:34px;overflow:hidden;place-items:center;border-radius:50%;background:#e7f7ee;color:#117a49;font-size:12px;font-weight:750}
.object-customer-access-avatar img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover}
.object-customer-access-row.is-pending .object-customer-access-avatar{background:#fff1cc;color:#946500}
.object-customer-access-person{min-width:0}
.object-customer-access-person b,.object-customer-access-person span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.object-customer-access-person b{color:#253144;font-size:11.5px}.object-customer-access-person span{margin-top:3px;color:#7b8798;font-size:9.8px}
.object-customer-access-role,.object-customer-access-status{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:3px 8px;border-radius:999px;font-size:9.5px;font-weight:650;white-space:nowrap}
.object-customer-access-role{background:#eef2f6;color:#5e6b7c}
.object-customer-access-role.is-owner{background:#e8f4ff;color:#32689a}.object-customer-access-role.is-manager{background:#f1ecff;color:#6845a8}
.object-customer-access-status{justify-self:start;background:#eef2f6;color:#6c7888}
.object-customer-access-status.is-ready{background:#e7f7ee;color:#14764a}.object-customer-access-status.is-pending{background:#fff3d2;color:#8b640d}
.object-customer-access-status.is-warning{background:#feeeee;color:#a93e3e}.object-customer-access-status.is-muted{background:#f1f4f7;color:#7a8696}
.object-customer-access-revoke{min-height:30px;padding:5px 7px;border:0;border-radius:7px;background:transparent;color:#8b4a4a;font:inherit;font-size:10px;font-weight:650;white-space:nowrap;cursor:pointer}
.object-customer-access-revoke:hover{background:#fff1f1;color:#b42323}.object-customer-access-revoke:disabled{opacity:.55;cursor:wait}
.object-customer-access-revoke:focus-visible,.object-customer-access-scopes button:focus-visible{outline:2px solid rgba(22,163,74,.25);outline-offset:2px}
.object-customer-access-invite-form{display:grid;grid-template-columns:minmax(190px,1fr) 150px 135px max-content;align-items:end;gap:9px;margin-bottom:12px;padding:12px;border:1px solid #bfe2cd;border-radius:10px;background:#f5fcf8}
.object-customer-access-setup{display:grid;grid-template-columns:minmax(230px,1fr) minmax(210px,300px) max-content;align-items:end;gap:10px;padding:16px;border:1px dashed #b9d9c6;border-radius:10px;background:#f7fcf9}
.object-customer-access-setup>div strong,.object-customer-access-setup>div span{display:block}.object-customer-access-setup>div strong{color:#244436;font-size:12.5px}.object-customer-access-setup>div span{max-width:540px;margin-top:4px;color:#6d7f75;font-size:10.5px;line-height:1.45}
.object-customer-access-setup label,.object-customer-access-owner-role{display:flex;min-width:0;flex-direction:column;gap:5px;color:#3f4e45;font-size:10.5px;font-weight:650}
.object-customer-access-setup select{width:100%;height:36px;padding:6px 9px;border:1px solid #ccd9d1;border-radius:8px;background:#fff;color:var(--text);font:inherit;font-size:11.5px}
.object-customer-access-setup select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-l)}
.object-customer-access-setup .object-customer-access-form-error{grid-column:1/-1}
.object-customer-access-form-copy{grid-column:1/-1}
.object-customer-access-form-copy b,.object-customer-access-form-copy span{display:block}
.object-customer-access-form-copy b{color:#1f5138;font-size:12.5px}.object-customer-access-form-copy span{margin-top:2px;color:#687b70;font-size:10.5px}
.object-customer-access-invite-form label{display:flex;min-width:0;flex-direction:column;gap:5px;color:#3f4e45;font-size:10.5px;font-weight:650}
.object-customer-access-invite-form input,.object-customer-access-invite-form select{width:100%;height:36px;padding:6px 9px;border:1px solid #ccd9d1;border-radius:8px;background:#fff;color:var(--text);font:inherit;font-size:11.5px}
.object-customer-access-owner-role b{display:flex;height:36px;align-items:center;padding:6px 10px;border:1px solid #bddfca;border-radius:8px;background:#e9f8ef;color:#17673e;font-size:11.5px}
.object-customer-access-invite-form input:focus,.object-customer-access-invite-form select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-l)}
.object-customer-access-form-actions{display:flex;align-items:center;gap:5px}
.object-customer-access-form-error{grid-column:1/-1;min-height:0;color:var(--red);font-size:10.5px}
.object-customer-access-form-error:empty{display:none}
.object-customer-access-success{display:grid;grid-template-columns:minmax(0,1fr) max-content max-content;align-items:center;gap:8px;margin-bottom:12px;padding:11px 12px;border:1px solid #b9dfc8;border-radius:10px;background:#effaf4}
.object-customer-access-success>div{min-width:0}.object-customer-access-success b,.object-customer-access-success span{display:block}
.object-customer-access-success b{color:#17673e;font-size:12px}.object-customer-access-success span{margin-top:3px;color:#5f7468;font-size:10.5px;line-height:1.35}
.object-customer-access-manager{display:grid!important;grid-template-columns:30px minmax(0,1fr);gap:8px;align-items:center;margin-top:9px!important}.object-customer-access-manager img,.object-customer-access-manager>i{width:30px;height:30px;border-radius:50%}.object-customer-access-manager img{display:block;object-fit:cover}.object-customer-access-manager>i{display:grid;place-items:center;background:#d8f4e3;color:#167346;font-size:9px;font-style:normal;font-weight:800}.object-customer-access-manager>span{margin:0!important}.object-customer-access-manager b,.object-customer-access-manager small{display:block}.object-customer-access-manager small{margin-top:2px;color:#6a7c72;font-size:9.5px;font-weight:500}
.object-customer-access-error{margin-bottom:12px;padding:9px 11px;border:1px solid #efc9c9;border-radius:9px;background:#fff7f7;color:#a23f3f;font-size:11px}
.object-customer-access-empty{display:flex;min-height:150px;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px;border:1px dashed #d9e1ea;border-radius:10px;background:#fafbfd;color:#7a8798;text-align:center}
.object-customer-access-empty strong{color:#334155;font-size:12.5px}.object-customer-access-empty span{max-width:520px;font-size:10.5px;line-height:1.45}
.object-customer-access-empty .btn{margin-top:5px}
.object-customer-access-empty.is-compact{min-height:116px;border:0;border-radius:0;background:#fff}
.object-customer-access-empty.is-error{border-color:#efcaca;background:#fffafa}.object-customer-access-empty.is-error strong{color:#9b3c3c}

@media(max-width:1320px){
  .object-detail-control-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .object-customer-access-row{grid-template-columns:36px minmax(140px,1fr) max-content 110px}
  .object-customer-access-revoke{grid-column:2/-1;justify-self:end;margin-top:-5px}
}
@media(max-width:1050px){
  .object-detail-control{grid-template-columns:1fr}
  .object-detail-control-nav{display:grid;grid-template-columns:repeat(6,minmax(98px,1fr));gap:5px;border-right:0;border-bottom:1px solid #dbe4f0}
  .object-detail-control-nav-head,.object-detail-control-nav-foot{grid-column:1/-1}
  .object-detail-control-nav-foot{margin-top:0}
  .object-detail-control-bottom{grid-template-columns:1fr}
}
@media(max-width:720px){
  .object-detail-control-workspace{padding:13px}
  .object-detail-control-nav{grid-template-columns:repeat(2,minmax(120px,1fr))}
  .object-detail-control-kpis{grid-template-columns:1fr}
  .object-detail-control-head,.object-detail-section-head{flex-direction:column}
  .object-detail-control-head>.btn,.object-detail-section-head>.btn{width:100%}
  .object-detail-control-alert{grid-template-columns:30px minmax(0,1fr)}
  .object-detail-control-alert>.btn{grid-column:1/-1;width:100%}
  .object-control-action-row{grid-template-columns:24px minmax(0,1fr)}
  .object-control-action-row .object-control-text-action{grid-column:2;justify-self:start}
  .object-detail-control-footer{flex-wrap:wrap}
  .object-detail-control-footer .btn:last-child{margin-left:0}
  .object-customer-access-invite-form{grid-template-columns:1fr}
  .object-customer-access-setup{grid-template-columns:1fr}
  .object-customer-access-form-copy,.object-customer-access-form-error{grid-column:1}
  .object-customer-access-form-actions{justify-content:flex-end}
  .object-customer-access-success{grid-template-columns:minmax(0,1fr) max-content}
  .object-customer-access-success>.btn-ghost{grid-column:2}
  .object-customer-access-row{grid-template-columns:34px minmax(0,1fr) max-content}
  .object-customer-access-avatar{grid-row:1/3}
  .object-customer-access-role{grid-column:3;grid-row:1}
  .object-customer-access-status{grid-column:2;grid-row:2;justify-self:start}
  .object-customer-access-revoke{grid-column:3;grid-row:2;margin-top:0}
}
.object-estimate-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.journal-detail-note{font-size:13px;line-height:1.45;white-space:pre-wrap;color:var(--text)}
.journal-detail-muted{font-size:13px;color:var(--muted);line-height:1.45}
.journal-source-link{border:0;background:transparent;color:#2563eb;text-decoration:underline;cursor:pointer;font:inherit;padding:0}
.journal-documents-with-source{display:grid;gap:9px;min-width:0}
.journal-max-evidence{max-width:760px;padding:9px 11px;border:1px solid #d8e6f3;border-left:3px solid #4f8fc8;border-radius:8px;background:#f7fbff;white-space:normal}
.journal-max-evidence-title{margin-bottom:5px;color:#385a7c;font-size:11px;font-weight:800;letter-spacing:.02em;text-transform:uppercase}
.journal-max-evidence-message+.journal-max-evidence-message{margin-top:8px;padding-top:8px;border-top:1px solid #e2edf6}
.journal-max-evidence-text{color:var(--text);font-size:13px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.journal-max-evidence-meta{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.35}
.journal-max-evidence-open{margin-top:6px;font-size:12px}
.journal-max-receipt-link{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:0;background:transparent;color:#385a7c;text-decoration:none;cursor:pointer;font:inherit;line-height:inherit;padding:0;text-align:left}
.journal-max-receipt-link:hover,.journal-max-receipt-link:focus-visible{color:#2563eb;text-decoration:underline;outline:none}
.journal-source-note{margin-top:6px;padding:8px 10px;border:1px solid #e6edf5;border-radius:8px;background:#f8fafc;white-space:normal}
.journal-popup-modal{width:min(1100px,calc(100vw - 32px))}
.journal-popup-modal .modal-body{padding-top:14px}
.journal-popup-loading,.journal-popup-empty,.journal-popup-error{padding:28px 16px;text-align:center;color:var(--muted);font-size:13px}
.journal-popup-error{color:var(--red)}
.journal-popup-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px;padding:9px 11px;border:1px solid #dbe4f0;border-radius:9px;background:#f8fafc;color:#52677d;font-size:12px;line-height:1.3}
.journal-popup-summary b{color:var(--text);font-size:13px;white-space:nowrap}
.journal-popup-table-scroll{max-height:min(62vh,640px);overflow:auto;border:1px solid #dbe4f0;border-radius:10px}
.journal-popup-table{width:100%;min-width:790px;border-collapse:collapse;table-layout:fixed;background:#fff;font-size:12px}
.journal-popup-table th,.journal-popup-table td{padding:9px 10px;border-bottom:1px solid #edf2f7;text-align:left;vertical-align:top}
.journal-popup-table th{position:sticky;top:0;z-index:1;background:#f8fafc;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.02em}
.journal-popup-table th.num,.journal-popup-table td.num{text-align:right;white-space:nowrap}
.journal-popup-table td b,.journal-popup-table td span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.journal-popup-table td b{color:var(--text);font-weight:650}
.journal-popup-table td span{margin-top:3px;color:var(--muted);font-size:11px}
.journal-popup-table td b.income{color:var(--green-d)}
.journal-popup-table td b.expense{color:var(--red)}
.journal-popup-operation{cursor:pointer}
.journal-popup-operation:hover,.journal-popup-operation:focus{background:#f2f8ff;outline:none}
.journal-popup-operation td:nth-child(1){width:88px}
.journal-popup-operation td:nth-child(2){width:25%}
.journal-popup-operation td:nth-child(3){width:auto}
.journal-popup-operation td:nth-child(4){width:150px}
.journal-allocation-table{min-width:850px}
.journal-allocation-table th:nth-child(1){width:27%}
.journal-allocation-table th:nth-child(2){width:25%}
.journal-allocation-table th:nth-child(3){width:22%}
.journal-allocation-table th:nth-child(4){width:110px}
.journal-allocation-table th:nth-child(5){width:130px}
.journal-allocation-table td:first-child{display:grid;grid-template-columns:24px minmax(0,1fr);gap:6px}
.journal-allocation-table td:first-child span{margin-top:0;text-align:right}
.journal-max-transcript{padding:14px;border:1px solid #d8e6f3;border-radius:14px;background:linear-gradient(180deg,#dff2ff 0%,#eef8ff 100%)}
.journal-max-transcript-caption{margin:0 0 12px;color:#52677d;font-size:12px;font-weight:700}
.journal-max-transcript-row{display:flex;margin-top:10px}
.journal-max-transcript-row:first-of-type{margin-top:0}
.journal-max-transcript-row-sent{justify-content:flex-end}
.journal-max-transcript-row-received{justify-content:flex-start}
.journal-max-bubble{max-width:min(590px,88%);padding:12px 14px 8px;border-radius:16px;box-shadow:0 1px 1px rgba(15,23,42,.08)}
.journal-max-bubble-sent{background:#d2f5c9;border-bottom-right-radius:5px}
.journal-max-bubble-received{background:#fff;border-bottom-left-radius:5px}
.journal-max-message-text{font-size:14px;line-height:1.5;color:#172033;white-space:pre-wrap;overflow-wrap:anywhere}
.journal-max-message-meta{margin-top:8px;color:#64748b;font-size:11px;line-height:1.35;text-align:right}
.journal-max-receipt-pending{margin-top:10px;padding:9px 11px;border-radius:9px;background:#fff7df;color:#8a5b00;font-size:13px}
@media(max-width:640px){.journal-max-transcript{padding:10px}.journal-max-bubble{max-width:94%}.journal-popup-modal{width:calc(100vw - 16px)}.journal-popup-summary{align-items:flex-start;flex-direction:column;gap:4px}}
.journal-detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.journal-mini-table{width:100%;border-collapse:collapse;font-size:13px}
.journal-mini-table th,.journal-mini-table td{padding:5px 8px;border-bottom:1px solid #edf2f7;text-align:left}
.journal-mini-table th{font-size:11px;color:var(--muted);font-weight:700;background:#f8fafc}
.journal-mini-table td.num,.journal-mini-table th.num{text-align:right}
.journal-mini-table .journal-section-row td{background:#f8fafc;color:#334155;font-size:12px;padding-top:4px;padding-bottom:4px;line-height:1.15}
.journal-mini-table .journal-section-row .journal-section-name{font-weight:700}
.journal-detail-row .journal-invoice-items-table,.journal-detail-row .journal-invoice-group-table{table-layout:fixed;width:100%!important;min-width:100%!important;max-width:none!important}
.journal-invoice-items-table th,.journal-invoice-items-table td{overflow:hidden}
.journal-invoice-items-table th:nth-child(1),.journal-invoice-items-table td:nth-child(1){width:78px}
.journal-invoice-items-table th:nth-child(2),.journal-invoice-items-table td:nth-child(2){width:42px}
.journal-invoice-items-table th:nth-child(3),.journal-invoice-items-table td:nth-child(3){width:64px}
.journal-invoice-items-table th:nth-child(4),.journal-invoice-items-table td:nth-child(4){width:auto;min-width:360px}
.journal-invoice-items-table th:nth-child(5),.journal-invoice-items-table td:nth-child(5){width:76px;white-space:nowrap;overflow:visible}
.journal-invoice-items-table th:nth-child(6),.journal-invoice-items-table td:nth-child(6){width:86px;white-space:nowrap;overflow:visible}
.journal-invoice-items-table th:nth-child(7),.journal-invoice-items-table td:nth-child(7){width:112px;white-space:nowrap;overflow:visible}
.journal-invoice-items-table th:nth-child(8),.journal-invoice-items-table td:nth-child(8){width:18%;min-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:where(.journal-invoice-items-table) tbody tr{background-color:var(--card)}
.journal-invoice-items-table th:nth-child(9),.journal-invoice-items-table td:nth-child(9){position:sticky;right:0;z-index:2;width:142px;white-space:nowrap;overflow:visible;background-color:inherit;box-shadow:-1px 0 0 var(--border)}
.journal-invoice-items-table thead th:nth-child(9){z-index:3;background:var(--bg)}
.journal-invoice-items-table td:nth-child(8){overflow:hidden;text-overflow:ellipsis}
.journal-invoice-items-table td:nth-child(9) .badge{vertical-align:middle}
.journal-invoice-items-no-operation th:nth-child(1),.journal-invoice-items-no-operation td:nth-child(1){width:42px}
.journal-invoice-items-no-operation th:nth-child(2),.journal-invoice-items-no-operation td:nth-child(2){width:64px}
.journal-invoice-items-no-operation th:nth-child(3),.journal-invoice-items-no-operation td:nth-child(3){width:auto;min-width:420px}
.journal-invoice-items-no-operation th:nth-child(4),.journal-invoice-items-no-operation td:nth-child(4){width:76px;white-space:nowrap;overflow:visible}
.journal-invoice-items-no-operation th:nth-child(5),.journal-invoice-items-no-operation td:nth-child(5){width:86px;white-space:nowrap;overflow:visible}
.journal-invoice-items-no-operation th:nth-child(6),.journal-invoice-items-no-operation td:nth-child(6){width:112px;white-space:nowrap;overflow:visible}
.journal-invoice-items-no-operation th:nth-child(7),.journal-invoice-items-no-operation td:nth-child(7){width:16%;min-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.journal-invoice-items-no-operation th:nth-child(8),.journal-invoice-items-no-operation td:nth-child(8){position:sticky;right:0;z-index:2;width:142px;white-space:nowrap;overflow:visible;background-color:inherit;box-shadow:-1px 0 0 var(--border)}
.journal-invoice-items-no-operation thead th:nth-child(8){z-index:3;background:var(--bg)}
.journal-invoice-items-no-operation td:nth-child(8) .badge{vertical-align:middle}
.journal-invoice-group-table th,.journal-invoice-group-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.journal-invoice-group-table th:nth-child(1),.journal-invoice-group-table td:nth-child(1){width:84px}
.journal-invoice-group-table th:nth-child(2),.journal-invoice-group-table td:nth-child(2){width:auto;min-width:300px}
.journal-invoice-group-table th:nth-child(3),.journal-invoice-group-table td:nth-child(3){width:80px;white-space:nowrap;overflow:visible}
.journal-invoice-group-table th:nth-child(4),.journal-invoice-group-table td:nth-child(4){width:116px;white-space:nowrap;overflow:visible}
.journal-invoice-group-table th:nth-child(5),.journal-invoice-group-table td:nth-child(5){width:26%;min-width:240px}
.journal-invoice-group-table th:nth-child(6),.journal-invoice-group-table td:nth-child(6){width:142px;white-space:nowrap;overflow:visible}
.journal-invoice-group-table th:nth-child(7),.journal-invoice-group-table td:nth-child(7){width:44px}
.journal-supply-date-summary{margin:4px 0 8px}
.journal-supply-date-summary b{color:#31506f}
.journal-invoice-item-row{cursor:pointer}
.journal-invoice-item-row:hover td{background:#f8fafc}
.journal-item-rest{font-size:10px;color:var(--amber);line-height:1.05;margin-top:2px;font-weight:700}
.journal-object-short{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.journal-invoice-items-table tbody tr:not(.journal-section-row){height:30px}
.journal-invoice-items-table tbody tr:not(.journal-section-row)>td{height:30px;max-height:30px;line-height:1.15;vertical-align:middle;white-space:nowrap;text-overflow:ellipsis}
.journal-invoice-items-table tbody tr:not(.journal-section-row)>td>*:not(.journal-item-rest){max-height:18px;overflow:hidden;text-overflow:ellipsis}
.journal-invoice-items-table td:nth-child(4){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal;word-break:normal}
.journal-invoice-items-table.journal-invoice-items-payroll{min-width:0!important;width:100%!important;max-width:none!important;table-layout:fixed!important}
.journal-invoice-items-payroll th,.journal-invoice-items-payroll td{padding-top:4px;padding-bottom:4px}
.journal-invoice-items-payroll th:nth-child(1),.journal-invoice-items-payroll td:nth-child(1){width:44px}
.journal-invoice-items-payroll th:nth-child(2),.journal-invoice-items-payroll td:nth-child(2){width:auto;min-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.journal-invoice-items-payroll th:nth-child(3),.journal-invoice-items-payroll td:nth-child(3){width:128px;white-space:nowrap;overflow:visible}
.journal-invoice-items-payroll th:nth-child(4),.journal-invoice-items-payroll td:nth-child(4){position:static;width:150px;white-space:nowrap;overflow:visible;background:inherit;box-shadow:none}
.journal-invoice-items-payroll th:nth-child(1),.journal-invoice-items-payroll td:nth-child(1),
.journal-invoice-items-payroll th:nth-child(2),.journal-invoice-items-payroll td:nth-child(2),
.journal-invoice-items-payroll th:nth-child(3),.journal-invoice-items-payroll td:nth-child(3),
.journal-invoice-items-payroll th:nth-child(4),.journal-invoice-items-payroll td:nth-child(4){display:table-cell!important}
.journal-invoice-items-payroll tbody tr:not(.journal-section-row),.journal-invoice-items-payroll tbody tr:not(.journal-section-row)>td{height:26px;max-height:26px}
.journal-allocation-list{display:flex;flex-direction:column;gap:6px}
.journal-allocation-pill{display:grid;grid-template-columns:minmax(220px,1.7fr) minmax(70px,.45fr) minmax(110px,.55fr) minmax(90px,.65fr);gap:8px;align-items:center;padding:6px 8px;border:1px solid #e4edf7;border-radius:8px;background:#fff;font-size:12px}
.journal-allocation-pill b{font-size:12px;color:var(--text);font-weight:800}
.journal-allocation-pill span{font-variant-numeric:tabular-nums;white-space:nowrap}
.journal-allocation-pill em{font-style:normal;color:var(--muted);font-size:12px}
.journal-allocation-note{display:block;margin-top:2px;color:#64748b;font-weight:600}
.op-invoice-review{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}
.op-invoice-review-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}
.op-invoice-review-title{font-weight:800;font-size:15px}
.op-invoice-review-hint{font-size:12px;color:var(--muted);line-height:1.45;margin-top:2px}
.op-invoice-review-list{display:flex;flex-direction:column;gap:10px}
.op-invoice-review-item{border:1px solid #dbe4f0;border-radius:8px;background:#fff;overflow:hidden}
.op-invoice-review-item-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;padding:10px 12px;background:#f8fafc;border-bottom:1px solid #edf2f7}
.op-invoice-review-name{font-weight:800;line-height:1.3}
.op-invoice-review-name span{display:inline-block;margin-right:8px;color:#31506f}
.op-invoice-review-meta{font-size:12px;color:#334155;font-weight:800;white-space:nowrap}
.op-invoice-review-table{width:100%;border-collapse:collapse;font-size:13px}
.op-invoice-review-table th,.op-invoice-review-table td{padding:7px 10px;border-bottom:1px solid #edf2f7;text-align:left}
.op-invoice-review-table th{font-size:11px;color:var(--muted);background:#fbfdff}
.op-invoice-review-table tr:last-child td{border-bottom:0}
.op-invoice-review-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.op-invoice-review-note{display:block;margin-top:2px;color:#64748b;font-size:12px;font-weight:600}
@media(max-width:800px){
  .contracts-toolbar{grid-template-columns:1fr;gap:10px}
  .contracts-toolbar-tools{justify-content:flex-start;flex-wrap:wrap;padding:10px 0 0;border-left:0;border-top:1px solid var(--border)}
  .contracts-toolbar-tools .table-filter-search{flex:1 1 260px;max-width:none}
  .contracts-toolbar-title>b{margin:0}
  .contracts-toolbar .table-filter-result{display:none}
  .contracts-table{min-width:1080px}
  .contracts-col-contract{width:220px}
  .contracts-col-object{width:auto}
  .contracts-col-money{width:232px}
  .contracts-col-cost{width:232px}
  .contracts-col-deadline{width:190px}
  .contracts-col-status{width:132px}
  .contract-inline-indicator{gap:6px}
  .contract-inline-indicator .ci-value{font-size:11px}
  .contract-stage-deadline{gap:6px;min-height:42px}
  .contract-stage-deadline .deadline-date{font-size:11px}
  .journal-table{min-width:980px}
  .journal-col-id{width:86px}
  .journal-col-counterparty{width:160px}
  .journal-col-article{width:120px}
  .journal-col-qty{width:120px}
  .journal-col-amount{width:116px}
  .journal-col-objects{width:162px}
  .journal-table th,.journal-table td{padding-left:8px;padding-right:8px}
  .journal-detail-row .journal-invoice-items-table,.journal-detail-row .journal-invoice-group-table{min-width:100%!important;width:100%!important;max-width:none!important}
  .journal-invoice-items-table th:nth-child(1),.journal-invoice-items-table td:nth-child(1){width:68px}
  .journal-invoice-items-table th:nth-child(2),.journal-invoice-items-table td:nth-child(2){width:34px}
  .journal-invoice-items-table th:nth-child(3),.journal-invoice-items-table td:nth-child(3){width:54px}
  .journal-invoice-items-table th:nth-child(4),.journal-invoice-items-table td:nth-child(4){min-width:260px}
  .journal-invoice-items-table th:nth-child(5),.journal-invoice-items-table td:nth-child(5){width:70px}
  .journal-invoice-items-table th:nth-child(6),.journal-invoice-items-table td:nth-child(6){width:76px}
  .journal-invoice-items-table th:nth-child(7),.journal-invoice-items-table td:nth-child(7){width:92px}
  .journal-invoice-items-table th:nth-child(8),.journal-invoice-items-table td:nth-child(8){width:16%;min-width:130px}
  .journal-invoice-items-table th:nth-child(9),.journal-invoice-items-table td:nth-child(9){width:120px}
  .journal-invoice-items-no-operation th:nth-child(1),.journal-invoice-items-no-operation td:nth-child(1){width:36px}
  .journal-invoice-items-no-operation th:nth-child(2),.journal-invoice-items-no-operation td:nth-child(2){width:58px}
  .journal-invoice-items-no-operation th:nth-child(3),.journal-invoice-items-no-operation td:nth-child(3){min-width:280px}
  .journal-invoice-items-no-operation th:nth-child(4),.journal-invoice-items-no-operation td:nth-child(4){width:70px}
  .journal-invoice-items-no-operation th:nth-child(5),.journal-invoice-items-no-operation td:nth-child(5){width:76px}
  .journal-invoice-items-no-operation th:nth-child(6),.journal-invoice-items-no-operation td:nth-child(6){width:92px}
  .journal-invoice-items-no-operation th:nth-child(7),.journal-invoice-items-no-operation td:nth-child(7){width:16%;min-width:130px}
  .journal-invoice-items-no-operation th:nth-child(8),.journal-invoice-items-no-operation td:nth-child(8){width:120px}
  .journal-invoice-group-table th:nth-child(2),.journal-invoice-group-table td:nth-child(2){min-width:190px}
  .journal-invoice-group-table th:nth-child(5),.journal-invoice-group-table td:nth-child(5){width:22%;min-width:160px}
  .journal-invoice-items-table.journal-invoice-items-payroll{min-width:0!important;width:100%!important}
  .journal-invoice-items-payroll th:nth-child(1),.journal-invoice-items-payroll td:nth-child(1){width:40px}
  .journal-invoice-items-payroll th:nth-child(2),.journal-invoice-items-payroll td:nth-child(2){width:auto;min-width:160px}
  .journal-invoice-items-payroll th:nth-child(3),.journal-invoice-items-payroll td:nth-child(3){width:116px}
  .journal-invoice-items-payroll th:nth-child(4),.journal-invoice-items-payroll td:nth-child(4){width:138px}
}
.primary-source{display:inline-flex;align-items:center;justify-content:center;min-width:58px;padding:3px 8px;border-radius:999px;background:#eef4fb;color:#31506f;font-size:11px;font-weight:800}
.primary-row-title{font-weight:700;color:var(--text);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.primary-row-meta{font-size:11px;color:var(--muted);line-height:1.25;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.primary-date-main{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.primary-actions{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.primary-actions .btn{padding:5px 9px;font-size:12px;min-height:30px}
.primary-table{table-layout:fixed}
.primary-table th,.primary-table td{vertical-align:top}
.primary-table td,.primary-table th{overflow:hidden}
.primary-table tbody tr.primary-main-row{cursor:pointer}
.primary-table tbody tr.primary-main-row.is-open{background:#eef6ff;box-shadow:inset 4px 0 var(--green)}
.primary-table tbody tr.primary-detail-row>td{background:#f8fafc;padding:0 18px 16px;box-shadow:inset 4px 0 var(--green)}
.primary-detail-panel{border:1px solid var(--border);border-top:0;border-radius:0 0 10px 10px;background:#fff;overflow:hidden}
.primary-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border)}
.primary-detail-head b{font-size:13px}
.primary-detail-sub{font-size:12px;color:var(--muted)}
.primary-source-table{width:100%;table-layout:fixed;font-size:12px}
.primary-source-table th,.primary-source-table td{padding:10px 12px;vertical-align:top}
.primary-source-table th{font-size:10px}

/* Unified expanded registry rows: journal, objects, contracts, primary, finance. */
.journal-table.journal-has-open tbody tr.journal-row,
.objects-table.objects-has-open tbody tr.object-row,
.contracts-table.contracts-has-open tbody tr.contracts-row,
.primary-table.primary-has-open tbody tr.primary-main-row,
.finance-ledger-table.finance-has-open tbody tr.finance-ledger-row{opacity:.45}
.journal-table.journal-has-open tbody tr.journal-row.journal-row-open,
.objects-table.objects-has-open tbody tr.object-row.object-row-open,
.contracts-table.contracts-has-open tbody tr.contracts-row.contract-row-open,
.primary-table.primary-has-open tbody tr.primary-main-row.is-open,
.finance-ledger-table.finance-has-open tbody tr.finance-ledger-row.finance-row-open{opacity:1;box-shadow:none}
.journal-table.journal-has-open tbody tr.journal-row.journal-row-open>td,
.objects-table.objects-has-open tbody tr.object-row.object-row-open>td,
.contracts-table.contracts-has-open tbody tr.contracts-row.contract-row-open>td,
.primary-table.primary-has-open tbody tr.primary-main-row.is-open>td,
.finance-ledger-table.finance-has-open tbody tr.finance-ledger-row.finance-row-open>td{background:#eef6ff}
.journal-table.journal-has-open tbody tr.journal-row.journal-row-open:hover>td,
.objects-table.objects-has-open tbody tr.object-row.object-row-open:hover>td,
.contracts-table.contracts-has-open tbody tr.contracts-row.contract-row-open:hover>td,
.primary-table.primary-has-open tbody tr.primary-main-row.is-open:hover>td,
.finance-ledger-table.finance-has-open tbody tr.finance-ledger-row.finance-row-open:hover>td{background:#eaf4ff}
.journal-table.journal-has-open tbody tr.journal-row.journal-row-open>td:first-child,
.objects-table.objects-has-open tbody tr.object-row.object-row-open>td:first-child,
.contracts-table.contracts-has-open tbody tr.contracts-row.contract-row-open>td:first-child,
.primary-table.primary-has-open tbody tr.primary-main-row.is-open>td:first-child,
.finance-ledger-table.finance-has-open tbody tr.finance-ledger-row.finance-row-open>td:first-child,
.journal-table tbody tr.journal-detail-row.is-open>td,
.objects-table tbody tr.objects-detail-row.is-open>td,
.contracts-table tbody tr.contracts-detail-row.is-open>td,
.primary-table tbody tr.primary-detail-row.is-open>td,
.finance-ledger-table tbody tr.finance-ledger-detail-row.is-open>td{box-shadow:inset 4px 0 var(--green)}
.journal-table tbody tr.journal-detail-row>td,
.objects-table tbody tr.objects-detail-row>td,
.contracts-table tbody tr.contracts-detail-row>td,
.primary-table tbody tr.primary-detail-row>td,
.finance-ledger-table tbody tr.finance-ledger-detail-row>td{background:#f8fafc;border-top:0}
.primary-source-text{white-space:normal;overflow-wrap:anywhere;line-height:1.35}
.primary-expand-mark{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:6px;padding:0;border:1px solid var(--border);border-radius:6px;color:var(--muted);font-size:11px;background:#fff;cursor:pointer}
.primary-expand-mark:hover{background:#eef4fb;color:var(--text);border-color:#bcd2ea}
.primary-id{margin-top:4px;font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.2px;text-align:center;max-width:58px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.primary-review-badge{border:0;cursor:pointer;font:inherit}
.primary-review-badge:hover{box-shadow:0 0 0 3px rgba(245,158,11,.18)}
.primary-review-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);gap:14px;margin-bottom:16px}
.primary-review-card{border:1px solid var(--border);border-radius:10px;background:#fff;padding:14px}
.primary-review-card.accent{border-color:#FCD34D;background:#FFFBEB}
.primary-review-card h4{margin:0 0 8px;font-size:14px}
.primary-review-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}
.primary-review-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
.primary-review-fact{background:#F8FAFC;border:1px solid var(--border);border-radius:8px;padding:8px 10px;min-width:0}
.primary-review-fact span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;font-weight:800;margin-bottom:3px}
.primary-review-fact b{display:block;font-size:13px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.primary-review-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.primary-review-message{white-space:pre-wrap;line-height:1.45;background:#F8FAFC;border:1px solid var(--border);border-radius:10px;padding:12px;max-height:180px;overflow:auto}
.primary-review-warnings{display:grid;gap:6px;margin-top:10px}
.primary-review-warning{border:1px solid #FCD34D;background:#FFFBEB;color:#7C2D12;border-radius:8px;padding:8px 10px;font-size:12px;line-height:1.35}
.primary-review-lines{width:100%;table-layout:fixed;font-size:12px}
.primary-review-lines th,.primary-review-lines td{padding:8px 10px;vertical-align:top}
.primary-review-lines th{font-size:10px}
.primary-review-lines .num{text-align:right;white-space:nowrap}
.primary-review-form-title{font-weight:800;margin:8px 0 10px}
.toast-stack{position:fixed;right:20px;bottom:20px;z-index:220;display:flex;flex-direction:column;gap:10px;pointer-events:none}
.toast-stack.center{top:0;left:0;right:0;bottom:0;align-items:center;justify-content:center;background:rgba(15,23,42,.08)}
.toast{min-width:260px;max-width:420px;padding:12px 14px;border-radius:10px;background:#fff;border:1px solid var(--border);box-shadow:0 16px 42px rgba(15,23,42,.16);font-size:14px;font-weight:700;line-height:1.35;opacity:0;transform:translateY(8px);transition:.18s ease}
.toast-stack.center .toast{font-size:16px;padding:16px 20px;text-align:center}
.toast.show{opacity:1;transform:translateY(0)}
.toast.success{border-color:#BBF7D0;background:#F0FDF4;color:#166534}
.toast.error{border-color:#FECACA;background:#FEF2F2;color:#991B1B}
.primary-toolbar{display:grid;grid-template-columns:minmax(170px,1fr) minmax(260px,390px) minmax(90px,160px) auto;align-items:center}
.primary-toolbar .journal-status-label{justify-self:end}
.primary-col-source{width:110px}
.primary-col-date{width:170px}
.primary-col-title{width:auto}
.primary-col-status{width:190px}
.primary-col-link{width:150px}
.primary-col-actions{width:196px}
.primary-table th:nth-last-child(-n+3),.primary-table td:nth-last-child(-n+3){white-space:nowrap;overflow:visible}
.primary-table td:nth-last-child(-n+2) .badge,.primary-table td:last-child .btn{display:inline-flex;max-width:none}
.journal-doc-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.journal-doc-link{border:1px solid #dbe4f0;background:#fff;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700;color:#31506f;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.journal-doc-link:hover{border-color:var(--green);color:var(--green-d);background:var(--selected-bg)}
.journal-doc-list{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.journal-doc-inline{display:inline-flex;align-items:center;min-height:32px;max-width:100%;border:1px solid #dbe4f0;background:#fff;border-radius:6px;padding:6px 10px;color:var(--text);text-decoration:none;font-size:13px;font-weight:500;line-height:1.25;cursor:pointer;box-shadow:0 1px 0 rgba(15,23,42,.03)}
.journal-doc-inline:hover{border-color:var(--green);color:var(--green-d);background:var(--selected-bg)}
.document-viewer-modal{position:fixed;inset:0;background:rgba(15,23,42,.72);z-index:220;display:none;align-items:stretch;justify-content:center;padding:22px}
.document-viewer-modal.open{display:flex}
.document-viewer-card{background:#fff;border-radius:12px;box-shadow:0 24px 70px rgba(15,23,42,.36);width:min(1120px,100%);height:100%;display:flex;flex-direction:column;overflow:hidden}
.document-viewer-head{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border)}
.document-viewer-head b{font-size:14px;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.document-viewer-head .btn{margin-left:auto}
.document-viewer-frame{border:0;width:100%;height:100%;background:#f8fafc}
.document-viewer-body{flex:1;overflow:auto;background:#111827;padding:18px}
.document-viewer-loading{color:#cbd5e1;font-size:14px;padding:24px;text-align:center}
.document-page{display:block;margin:0 auto 18px;background:#fff;box-shadow:0 10px 28px rgba(0,0,0,.32);max-width:100%;height:auto}
.document-image{display:block;margin:0 auto;background:#fff;box-shadow:0 10px 28px rgba(0,0,0,.32);max-width:100%;height:auto}
.alloc-assist-panel{display:grid;grid-template-columns:auto minmax(160px,1fr) minmax(120px,.55fr) auto;gap:8px;align-items:center;background:#f8fafc;border:1px solid #dbe4f0;border-radius:8px;padding:8px 10px;margin-bottom:8px}
.alloc-assist-title{font-size:12px;font-weight:800;color:#31506f;white-space:nowrap}
.alloc-tabs{display:flex;gap:4px;align-items:flex-end;margin:2px 0 8px;border-bottom:1px solid #dbe4f0}
.alloc-tab{appearance:none;border:1px solid transparent;border-bottom:0;background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:800;padding:7px 10px;border-radius:8px 8px 0 0;cursor:pointer}
.alloc-tab:hover{color:#31506f;background:#f8fafc}
.alloc-tab.active{color:#244967;background:#fff;border-color:#dbe4f0;box-shadow:0 1px 0 #fff}
.alloc-pane{display:none}
.alloc-pane.active{display:block}
.alloc-preset-field{display:block;min-width:0}
.alloc-preset-field span{display:none}
.alloc-preset-field select{box-sizing:border-box;min-width:0;width:100%;min-height:34px;border-radius:8px;border:1px solid #dbe4f0;padding:5px 10px;font-size:13px;background:#fff}
.alloc-list-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0 6px;font-size:12px;color:var(--muted);font-weight:700}
.alloc-row{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1.25fr) minmax(120px,.8fr) 32px;gap:8px;align-items:center;background:#fff;border:1px solid #dbe4f0;border-radius:8px;padding:8px}
.alloc-row > select,.alloc-row > input{box-sizing:border-box;min-width:0;width:100%;min-height:36px;border-radius:8px;border:1px solid #dbe4f0;padding:6px 10px;font-size:13px;background:#fff}
.alloc-object-select{font-weight:700;color:var(--text)}
.a-qty,.op-line-alloc-qty{font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.alloc-auto-qty{box-sizing:border-box;min-width:0;width:100%;min-height:34px;border-radius:8px;border:1px solid #dbe4f0;padding:5px 10px;font-size:13px;font-weight:700;color:#244967;background:#fff;font-variant-numeric:tabular-nums}
.alloc-row > button{min-height:36px;align-self:center}

/* MODAL */
.modal-bg{display:none;position:fixed;inset:0;background:rgba(15,23,42,.5);z-index:100;align-items:center;justify-content:center;padding:20px}
.modal-bg.open{display:flex}
.modal{background:#fff;border-radius:16px;max-width:560px;width:100%;max-height:90vh;overflow-y:auto;scrollbar-gutter:stable;box-shadow:0 20px 50px rgba(0,0,0,.2)}
.modal-head{padding:18px 22px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.modal-head h3{font-size:17px;font-weight:700}
.modal-close{background:none;border:none;font-size:22px;cursor:pointer;color:var(--muted);padding:0;width:28px;height:28px}
.modal-body{padding:22px}
.modal-foot{padding:14px 22px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px;background:var(--bg)}

/* MISC */
.alert{padding:14px 16px;border-radius:10px;margin-bottom:16px;display:flex;gap:12px;align-items:start}
.alert-red{background:var(--red-l);color:var(--red);border:1px solid #FCA5A5}
.alert-amber{background:var(--amber-l);color:var(--amber);border:1px solid #FCD34D}
.alert .ico{font-size:18px}
.alert-body{flex:1;font-size:13px}
.alert-title{font-weight:700;margin-bottom:2px}

.sub-tabs{display:flex;gap:10px;border-bottom:1px solid var(--border);margin-bottom:20px;align-items:flex-start;padding-bottom:8px}
.journal-view-tabs{margin-top:-4px;margin-bottom:16px}
.journal-view-tabs button.sub-tab{appearance:none;font:inherit}
.journal-view-tabs button.sub-tab:not(.active):not(:hover){background:#fff}
.sub-tab{min-height:var(--ui-tab-height);padding:5px 12px;cursor:pointer;font-weight:600;color:#5C7695;font-size:var(--ui-font-control);line-height:1.2;border:1px solid transparent;border-radius:var(--ui-radius-control);display:flex;flex-direction:column;justify-content:center;gap:1px;white-space:nowrap}
.sub-tab:hover{background:var(--selected-bg);border-color:#D9E3EF;color:var(--green-d)}
.sub-tab.active{background:var(--selected-bg);color:var(--green-d);border-color:var(--green);box-shadow:var(--selected-ring)}
.sub-tab-count{font-size:var(--ui-font-caption);font-weight:600}

.empty{padding:40px;text-align:center;color:var(--muted)}
.empty .ico{font-size:40px;margin-bottom:10px;opacity:.4}

/* View switcher */
.view-switch{display:inline-flex;border:1px solid var(--border);border-radius:var(--ui-radius-control);overflow:hidden;background:#fff}
.view-switch-btn{min-height:var(--ui-chip-height);padding:6px 12px;border:none;background:transparent;color:var(--muted);font-size:var(--ui-font-meta);font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px;border-right:1px solid var(--border);font-family:inherit}
.view-switch-btn:last-child{border-right:none}
.view-switch-btn:hover{background:var(--green-bg);color:var(--green-d)}
.view-switch-btn.active{background:var(--selected-bg);color:var(--green-d);box-shadow:inset 0 0 0 2px var(--green)}

/* Kanban */
.kb-scroll{overflow-x:auto;padding-bottom:6px}
.kb-board{display:grid;grid-template-columns:repeat(var(--kb-columns,5),minmax(0,1fr));gap:12px;align-items:stretch;min-width:1000px}
.kb-column{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:12px;min-height:100px;min-width:0}
.kb-col-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}
.kb-count{font-weight:700;color:var(--muted);font-size:12px}
.kb-col-sub{font-size:11px;color:var(--muted);margin-bottom:10px}
.kb-col-body{display:flex;flex-direction:column;gap:8px}
.kb-card{background:#fff;border:1px solid var(--border);border-radius:8px;padding:10px 12px;cursor:pointer;transition:all .12s;box-shadow:var(--shadow)}
.kb-card:hover{border-color:var(--green);box-shadow:var(--shadow-m)}
.kb-name{font-weight:700;font-size:13px;overflow-wrap:anywhere;word-break:break-word}
.kb-type{font-size:11px;color:var(--muted);margin-top:2px;overflow-wrap:anywhere;word-break:break-word}
.kb-money{display:flex;justify-content:space-between;font-size:11px;font-weight:600;margin-top:6px;font-variant-numeric:tabular-nums}
.kb-empty{color:var(--muted);font-size:12px;text-align:center;padding:14px 0;border:1px dashed var(--border);border-radius:8px}

/* Inline edit */
.cell-edit{cursor:text;position:relative}
.cell-edit:hover{background:var(--green-bg) !important;outline:1px dashed var(--green-l);outline-offset:-2px}
.inline-edit{width:100%;padding:4px 6px;border:1px solid var(--green);border-radius:4px;font-size:13px;font-family:inherit;background:#fff;box-sizing:border-box}
.inline-edit:focus{outline:none;box-shadow:0 0 0 3px var(--green-l)}

/* DnD feedback */
.dnd-dragging{opacity:.4 !important}
.kb-drop-hover{outline:2px dashed var(--green);outline-offset:-6px;background:var(--green-bg) !important}
.kb-col-drop-hover{outline:2px dashed var(--blue);outline-offset:-3px}
.obj-card.dnd-drop-before{border-left:3px solid var(--green)}
.obj-card.dnd-drop-after{border-right:3px solid var(--green)}
@media (max-width:800px){.kb-board{min-width:840px}}

/* Permission matrix */
.perm-matrix-header{display:flex;background:var(--bg);border-bottom:1px solid var(--border);font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.4px;position:sticky;top:0;z-index:2}
.perm-matrix-row{display:flex;border-bottom:1px solid var(--border);font-size:13px;align-items:center;min-height:38px}
.perm-matrix-row:hover{background:var(--green-bg)}
.perm-matrix-row.perm-master{background:#F8FAFC}
.perm-matrix-row.perm-master:hover{background:var(--green-bg)}
.perm-matrix-cell{padding:8px 10px;display:flex;align-items:center}
.perm-matrix-cell.modules-col{flex:1;min-width:240px}
.perm-matrix-cell.action-col{width:84px;justify-content:center;border-left:1px solid var(--border);flex-shrink:0}
.perm-ico{display:inline-flex;align-items:center;justify-content:center;width:20px;margin-right:8px;color:var(--muted)}
.pm-check{display:flex;align-items:center;justify-content:center;width:22px;height:22px;cursor:pointer}
.pm-check input{width:16px;height:16px;cursor:pointer;accent-color:var(--green)}

.nav-action{background:#F0FDF4;color:var(--green-d);box-shadow:inset 0 0 0 1px #BBF7D0}
.nav-action:hover{background:#DCFCE7;color:var(--green-d)}
.quick-expense-modal{max-width:920px;border-radius:14px;max-height:calc(100vh - 24px);overflow:hidden;display:flex;flex-direction:column}
.quick-expense-modal .modal-head{align-items:flex-start;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);padding:16px 22px 12px;flex:0 0 auto}
.quick-expense-modal .modal-head h3{font-size:22px;margin:0 0 2px}
.quick-expense-modal form{display:flex;flex-direction:column;min-height:0}
.quick-expense-modal .modal-foot{padding:12px 22px;flex:0 0 auto}
.quick-expense-lead{color:var(--muted);line-height:1.35;margin:0;max-width:650px;font-size:13px}
.quick-expense-body{background:#fff;padding:14px 22px 16px;overflow:auto}
.quick-expense-form{display:grid;gap:10px}
.quick-expense-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.quick-expense-modal .field label{margin-bottom:3px}
.quick-expense-modal .field input,.quick-expense-modal .field select{min-height:38px;padding:8px 11px}
.quick-expense-modal .field textarea{min-height:58px;padding:8px 11px}
.quick-expense-smart-hints{display:grid;gap:4px;padding:10px 12px;border:1px solid #BFDBFE;border-radius:10px;background:#EFF6FF;color:#31506F;font-size:12px;line-height:1.35}
.quick-expense-smart-hints[hidden]{display:none !important}
.quick-expense-split{display:grid;gap:8px;padding:10px;border:1px solid #D9E3EF;border-radius:10px;background:#FBFDFF}
.quick-expense-split-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.quick-expense-split-title{font-weight:800;color:var(--text);font-size:13px}
.quick-expense-split-subtitle{margin-top:1px;color:var(--muted);font-size:12px;line-height:1.3}
.quick-expense-split-head .btn{min-height:32px;padding:6px 11px;white-space:nowrap}
.quick-expense-lines{display:grid;gap:6px}
.quick-expense-line{display:grid;gap:6px;padding:8px;border:1px solid #E2E8F0;border-radius:10px;background:#fff}
.quick-expense-line-fields{display:grid;grid-template-columns:minmax(86px,106px) minmax(260px,1.25fr) minmax(220px,.9fr) 28px;gap:8px;align-items:end}
.quick-expense-line .field{min-width:0}
.quick-expense-line-description input{min-height:36px}
.quick-expense-line-remove{width:28px;height:34px;border:0;border-radius:8px;background:#F1F5F9;color:var(--muted);font-size:20px;line-height:1;cursor:pointer}
.quick-expense-line-remove:hover{background:#FEE2E2;color:var(--red)}
.quick-expense-line.is-single .quick-expense-line-remove{visibility:hidden;pointer-events:none}
.quick-expense-lines-summary{min-height:20px;color:var(--muted);font-size:12px;line-height:1.35}
.quick-expense-lines-summary.is-ok{color:var(--green-d);font-weight:700}
.quick-expense-lines-summary.is-warn{color:#B45309;font-weight:700}
.quick-expense-lines-summary.is-error{color:var(--red);font-weight:700}
.quick-expense-extra{border:1px solid var(--border);border-radius:10px;padding:12px;background:#F8FAFC}
.quick-expense-extra summary{cursor:pointer;font-weight:700;color:var(--text);margin-bottom:10px}
.quick-expense-extra:not([open]) summary{margin-bottom:0}
.quick-expense-extra:not([open]) > :not(summary){display:none !important}
@media(max-width:980px){.kpi-grid,.section-kpi-grid,.finance-summary,.journal-kpi-grid,.objects-kpi-strip,.objects-section-strip{grid-template-columns:repeat(2,minmax(0,1fr)) !important}.grid-2{grid-template-columns:1fr}.sidebar{width:64px}.logo-text,.nav-item span:not(.ico):not(.nav-badge),.user-info{display:none}.settings-pane-head{padding:14px 16px;gap:12px;flex-direction:column;align-items:flex-start}.settings-pane-groups{gap:10px}.settings-groups-divider{margin-left:16px}.sub-tabs{gap:10px;overflow:auto;padding-bottom:4px}.sub-tab{font-size:var(--ui-font-control)}.sub-tab-count{font-size:var(--ui-font-caption)}thead th,tbody td{padding-left:16px;padding-right:16px}thead th{padding-top:10px;padding-bottom:10px}tbody td{padding-top:14px;padding-bottom:14px}.form-row-3,.op-meta-row,.op-money-row,.op-amount-grid,.quick-expense-grid,.quick-expense-line-fields{grid-template-columns:1fr}.quick-expense-split-head{flex-direction:column}.quick-expense-split-head .btn{width:100%;justify-content:center}.quick-expense-line-remove{justify-self:end}.op-qty-inner{grid-template-columns:1fr}.max-chat-explain{grid-template-columns:1fr}.max-member-card{grid-template-columns:1fr 1fr}.max-member-summary{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) 26px}.max-member-right{grid-column:1 / -1;grid-row:2;justify-content:flex-start;text-align:left}.max-member-detail-grid{grid-template-columns:1fr}.max-member-permissions,.max-member-action{grid-column:1 / -1}.max-member-action{text-align:left}}
@media(max-width:720px){.op-kind-row{grid-template-columns:1fr;min-width:0;max-width:none;width:100%}.op-kind-btn{min-width:0}.op-modal-head{grid-template-columns:1fr auto;gap:10px}.op-header-field{grid-column:1 / -1}.op-header-field input,.op-header-field select{width:100%}.op-modal-actions{grid-column:1 / -1;grid-row:2;justify-content:flex-start;flex-wrap:wrap}.op-modal .modal-close{grid-column:2;grid-row:1;justify-self:end}}
@media(min-width:641px) and (max-width:1440px){
  .sidebar{width:var(--sidebar-collapsed);flex:0 0 var(--sidebar-collapsed);z-index:50;overflow:visible;background:transparent;border-right:0;transition:none}
  .sidebar::before{content:"";position:absolute;inset:0 auto 0 0;width:var(--sidebar-collapsed);height:100%;background:#fff;border-right:1px solid var(--border);box-shadow:none;transition:width .18s ease,box-shadow .18s ease;z-index:-1}
  .sidebar:hover::before,.sidebar:focus-within::before{width:var(--sidebar-expanded);box-shadow:12px 0 28px rgba(15,23,42,.10)}
  .sidebar:hover,.sidebar:focus-within{width:var(--sidebar-collapsed);flex-basis:var(--sidebar-collapsed)}
  .sidebar>.logo,.sidebar>.nav,.sidebar>.user{width:var(--sidebar-collapsed);transition:width .18s ease,padding .18s ease}
  .sidebar:hover>.logo,.sidebar:focus-within>.logo,.sidebar:hover>.nav,.sidebar:focus-within>.nav,.sidebar:hover>.user,.sidebar:focus-within>.user{width:var(--sidebar-expanded)}
  .logo{justify-content:center;padding:18px 10px}
  .logo-text,.user-info,.nav-item span:not(.ico):not(.nav-badge):not(.nav-drag-handle){display:none}
  .sidebar:hover .logo,.sidebar:focus-within .logo{justify-content:flex-start;padding:20px}
  .sidebar:hover .logo-text,.sidebar:focus-within .logo-text{display:block}
  .sidebar:hover .user-info,.sidebar:focus-within .user-info{display:block}
  .nav{padding:12px 8px}
  .nav-item{grid-template-columns:1fr;justify-items:center;column-gap:0;padding:10px 0;min-height:42px}
  .nav-item:hover,.nav-item.nav-dragging{padding:10px 0}
  .nav-item .ico{width:100%;text-align:center}
  .sidebar:hover .nav-item,.sidebar:focus-within .nav-item{grid-template-columns:18px minmax(0,1fr) max-content;justify-items:stretch;column-gap:10px;padding:10px 12px}
  .sidebar:hover .nav-item:hover,.sidebar:focus-within .nav-item:hover,.sidebar:hover .nav-item.nav-dragging,.sidebar:focus-within .nav-item.nav-dragging{padding-left:14px;padding-right:34px}
  .sidebar:hover .nav-item .ico,.sidebar:focus-within .nav-item .ico{width:18px;text-align:center}
  .sidebar:hover .nav-item span:not(.ico):not(.nav-badge):not(.nav-drag-handle),.sidebar:focus-within .nav-item span:not(.ico):not(.nav-badge):not(.nav-drag-handle){display:block}
  .sidebar:not(:hover):not(:focus-within) .nav-badge,.sidebar:not(:hover):not(:focus-within) .nav-drag-handle{display:none}
  .user{display:flex;justify-content:center;padding:12px 8px}
  .user-profile{display:flex;justify-content:center}
  .sidebar:not(:hover):not(:focus-within) .view-as-control{display:none}
  .sidebar:hover .user,.sidebar:focus-within .user{display:grid;grid-template-columns:minmax(0,1fr) 34px;justify-content:stretch;padding:10px 12px}
  .sidebar:hover .user-profile,.sidebar:focus-within .user-profile{display:grid;grid-template-columns:34px minmax(0,1fr);justify-content:stretch}
}
@media(max-width:640px){
  html{font-size:15px}
  body{display:block;min-height:100dvh;padding:0 0 calc(76px + env(safe-area-inset-bottom));overflow-x:hidden}
  .sidebar{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:90;width:100%;height:auto;border-right:0;border-top:1px solid var(--border);box-shadow:0 -8px 24px rgba(15,23,42,.08);background:rgba(255,255,255,.96);backdrop-filter:saturate(140%) blur(10px)}
  .logo,.user{display:none}
  .nav{display:flex;gap:6px;align-items:stretch;overflow-x:auto;overflow-y:hidden;padding:8px 8px calc(8px + env(safe-area-inset-bottom));scrollbar-width:none}
  .nav::-webkit-scrollbar{display:none}
  .nav-item{display:flex;flex:0 0 76px;min-height:54px;margin:0;padding:7px 6px;border-radius:12px;flex-direction:column;justify-content:center;gap:4px;font-size:10px;text-align:center;color:#5C7695}
  .nav-item:hover,.nav-item.nav-dragging{padding:7px 18px 7px 6px}
  .nav-item span:not(.ico):not(.nav-badge):not(.nav-drag-handle){display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .nav-item .ico{width:auto;font-size:17px;line-height:1}
  .nav-drag-handle{top:4px;right:4px;transform:none}
  .nav-badge{position:absolute;top:3px;right:7px;margin:0;font-size:10px;padding:1px 5px}
  .nav-item{position:relative}
  .nav-item[draggable="true"]{user-select:auto}
  .main{width:100%;min-width:0}
  .topbar{height:auto;min-height:58px;padding:10px 12px;gap:8px;align-items:center;flex-wrap:wrap}
  .topbar .global-search-box{order:1;flex:1 1 100%;width:100%;max-width:none}
  .app-history-back{flex:0 0 auto;min-height:38px}
  .topbar .search{width:100%;height:38px;font-size:14px}
  .global-search-results{width:calc(100vw - 24px);max-height:72vh}
  .topbar .spacer{display:none}
  .topbar .btn{flex:1 1 0;justify-content:center;min-height:38px;padding:8px 10px;font-size:12px;white-space:nowrap}
  .content{padding:16px 12px;max-width:none}
  .page-head{display:block;margin-bottom:14px}
  .page-head h2{font-size:22px;line-height:1.2;margin-bottom:4px}
  .page-head p{font-size:13px}
  .page-title-tools{flex-wrap:wrap}
  .page-title-actions{width:100%;margin-left:0;margin-top:8px;overflow-x:auto;padding:1px 1px 2px;scrollbar-width:none}
  .page-title-actions::-webkit-scrollbar{display:none}
  .page-title-actions .btn{flex:0 0 auto}
  .page-head > div:last-child,.finance-actions{display:flex;gap:8px;overflow-x:auto;padding:8px 1px 2px;margin:8px -1px 0;scrollbar-width:none}
  .page-head > div:last-child::-webkit-scrollbar,.finance-actions::-webkit-scrollbar{display:none}
  .page-head .btn,.finance-actions .btn{flex:0 0 auto;min-height:38px}
  .kpi-grid,.section-kpi-grid,.finance-summary,.journal-kpi-grid,.objects-kpi-strip,.objects-section-strip{display:flex;gap:10px;overflow-x:auto;margin:0 -12px 14px;padding:0 12px 4px;scroll-snap-type:x proximity;scrollbar-width:none}
  .kpi-grid::-webkit-scrollbar,.section-kpi-grid::-webkit-scrollbar,.finance-summary::-webkit-scrollbar,.journal-kpi-grid::-webkit-scrollbar,.objects-kpi-strip::-webkit-scrollbar,.objects-section-strip::-webkit-scrollbar{display:none}
  .kpi{--kpi-height:88px;flex:0 0 76%;padding:9px 14px;scroll-snap-align:start;border-radius:8px}
  .kpi-label{font-size:11px}
  .grid-2{display:block}
  .card{padding:14px;border-radius:10px;margin-bottom:12px}
  .obj-grid{grid-template-columns:1fr;gap:10px}
  .obj-card{padding:14px;border-radius:10px}
  .sub-tabs{margin:0 -12px 14px;padding:0 12px 8px;gap:8px;overflow-x:auto;border-bottom:0}
  .sub-tab{font-size:var(--ui-font-control);border-color:var(--border);background:#fff;border-radius:999px;padding:6px 12px;display:inline-flex;flex-direction:row;align-items:center;gap:6px}
  .sub-tab-count{font-size:12px}
  .view-switch{max-width:100%;overflow-x:auto}
  .view-switch-btn{white-space:nowrap}
  .table-wrap{border-radius:10px;margin-left:0;margin-right:0;overflow-x:auto;box-shadow:none}
  /* фон — от строки, как и на десктопе (см. комментарий у базового правила) */
  .table-wrap table th:last-child,.table-wrap table td:last-child{position:sticky;right:0;z-index:2;background-color:inherit;box-shadow:-1px 0 0 var(--border)}
  .table-wrap table thead th:last-child{z-index:8;background:var(--bg)}
  .table-top{position:sticky;left:0;z-index:1;display:block;padding:12px;background:#fff}
  .table-top b{display:inline-flex;margin-bottom:8px;font-size:15px}
  .table-filter-toggle,.journal-filter-toggle{margin-left:8px}
  .table-filter-chip-row{display:flex;margin:8px -2px 0;gap:8px;overflow-x:auto;flex-wrap:nowrap;padding:2px 2px 4px;scrollbar-width:none}
  .table-filter-chip-row::-webkit-scrollbar{display:none}
  .filter-chip{flex:0 0 auto;white-space:nowrap}
  .table-filter-search{width:100%;border-radius:10px;margin-top:6px}
  .table-filter-panel{grid-template-columns:1fr;padding-top:8px}
  table{min-width:720px;font-size:13px}
  .journal-invoice-items-table{min-width:0;width:calc(100vw - 96px);max-width:100%}
  .journal-invoice-items-table th:nth-child(2),.journal-invoice-items-table td:nth-child(2),
  .journal-invoice-items-table th:nth-child(3),.journal-invoice-items-table td:nth-child(3),
  .journal-invoice-items-table th:nth-child(5),.journal-invoice-items-table td:nth-child(5),
  .journal-invoice-items-table th:nth-child(6),.journal-invoice-items-table td:nth-child(6),
  .journal-invoice-items-table th:nth-child(8),.journal-invoice-items-table td:nth-child(8){display:none}
  .journal-invoice-items-table th,.journal-invoice-items-table td{padding-left:6px;padding-right:6px}
  .journal-invoice-items-table th:nth-child(1),.journal-invoice-items-table td:nth-child(1){width:68px}
  .journal-invoice-items-table th:nth-child(4),.journal-invoice-items-table td:nth-child(4){width:auto;min-width:110px}
  .journal-invoice-items-table th:nth-child(7),.journal-invoice-items-table td:nth-child(7){width:84px}
  .journal-invoice-items-table th:nth-child(9),.journal-invoice-items-table td:nth-child(9){position:static;width:86px;background:inherit;box-shadow:none}
  .journal-invoice-items-table td:nth-child(9) .badge{max-width:82px;overflow:hidden;text-overflow:ellipsis}
  .journal-invoice-items-table thead th:nth-child(9){background:var(--bg)}
  .journal-invoice-items-no-operation th:nth-child(1),.journal-invoice-items-no-operation td:nth-child(1),
  .journal-invoice-items-no-operation th:nth-child(2),.journal-invoice-items-no-operation td:nth-child(2),
  .journal-invoice-items-no-operation th:nth-child(4),.journal-invoice-items-no-operation td:nth-child(4),
  .journal-invoice-items-no-operation th:nth-child(5),.journal-invoice-items-no-operation td:nth-child(5),
  .journal-invoice-items-no-operation th:nth-child(7),.journal-invoice-items-no-operation td:nth-child(7){display:none}
  .journal-invoice-items-no-operation th:nth-child(3),.journal-invoice-items-no-operation td:nth-child(3){width:auto;min-width:110px}
  .journal-invoice-items-no-operation th:nth-child(6),.journal-invoice-items-no-operation td:nth-child(6){width:84px}
  .journal-invoice-items-no-operation th:nth-child(8),.journal-invoice-items-no-operation td:nth-child(8){position:static;width:86px;background:inherit;box-shadow:none}
  .journal-invoice-items-no-operation td:nth-child(8) .badge{max-width:82px;overflow:hidden;text-overflow:ellipsis}
  .journal-invoice-items-no-operation thead th:nth-child(8){background:var(--bg)}
  .journal-invoice-items-table.journal-invoice-items-payroll{width:100%!important;min-width:0!important}
  .journal-invoice-items-payroll th:nth-child(2),.journal-invoice-items-payroll td:nth-child(2),
  .journal-invoice-items-payroll th:nth-child(3),.journal-invoice-items-payroll td:nth-child(3){display:table-cell}
  .journal-invoice-items-payroll th:nth-child(1),.journal-invoice-items-payroll td:nth-child(1){width:34px}
  .journal-invoice-items-payroll th:nth-child(2),.journal-invoice-items-payroll td:nth-child(2){width:auto;min-width:120px}
  .journal-invoice-items-payroll th:nth-child(3),.journal-invoice-items-payroll td:nth-child(3){width:108px}
  .journal-invoice-items-payroll th:nth-child(4),.journal-invoice-items-payroll td:nth-child(4){position:static;width:112px;background:inherit;box-shadow:none}
  .journal-invoice-items-payroll td:nth-child(4) .badge{max-width:108px;overflow:hidden;text-overflow:ellipsis}
  .journal-allocation-pill{grid-template-columns:1fr}
  .op-invoice-review-head,.op-invoice-review-item-head{grid-template-columns:1fr}
  .op-invoice-review-table th:nth-child(4),.op-invoice-review-table td:nth-child(4){display:none}
  thead th,tbody td{padding:11px 12px}
  tbody td{vertical-align:top}
  .settings-pane{border-radius:10px;margin-left:-12px;margin-right:-12px;border-left:0;border-right:0}
  .settings-pane-head{padding:12px}
  .settings-chip{min-height:36px;padding:0 12px}
  .max-member-card{grid-template-columns:1fr;padding:14px}
  .max-member-summary{grid-template-columns:1fr 24px;padding:12px 14px}
  .max-member-employee,.max-member-right{grid-column:1 / -1}
  .max-member-details{padding:0 14px 14px}
  .max-member-permissions,.max-member-action{grid-column:auto}
  .max-member-action .btn{width:100%;justify-content:center}
  .form-row,.form-row-3,.form-row-full,.op-meta-row,.op-money-row,.op-amount-grid{grid-template-columns:1fr}
    .op-item-line{grid-template-columns:1fr 1fr}
    .op-items-bulk-row{grid-template-columns:1fr}
    .op-items-bulk-prorata-btn{align-self:stretch;width:100%}
    .op-items-bulk-field>span{white-space:normal}
    .op-items-bulk-prorata-row{grid-template-columns:minmax(0,1fr) 90px 28px}
    .op-line-quick-split-row{grid-template-columns:minmax(0,1fr) 110px 28px}
    .op-line-alloc-row{grid-template-columns:1fr}
  .alloc-assist-panel{grid-template-columns:1fr}
  .op-line-alloc-toggle-row{justify-content:stretch}
  .op-line-alloc-toggle{width:100%}
  .op-item-line .op-line-remove{grid-column:1 / -1}
  .op-items-summary{grid-template-columns:1fr}
  .journal-detail-grid{grid-template-columns:1fr}
  .journal-table .journal-main-text,.journal-table .journal-sub-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;word-break:normal}
  .field input,.field select,.field textarea,.search-select-input{min-height:42px;font-size:16px}
  .modal-bg{align-items:stretch;justify-content:stretch;padding:0;z-index:120}
  .modal{width:100%;max-width:none;height:100dvh;max-height:100dvh;border-radius:0;display:flex;flex-direction:column;overflow:hidden}
  .modal-head{padding:14px 16px;min-height:58px;flex-shrink:0}
  .modal-head h3{font-size:18px;line-height:1.25}
  .modal-close{width:38px;height:38px;font-size:24px}
  .modal-body{padding:16px;overflow-y:auto;flex:1;min-height:0}
  .modal-foot{padding:12px 16px calc(12px + env(safe-area-inset-bottom));gap:8px;flex-shrink:0;justify-content:stretch}
  .modal-foot .btn{flex:1;justify-content:center;min-height:44px}
  .modal.op-modal{width:100%;max-width:none;height:100dvh;max-height:100dvh;border-radius:0}
  .op-modal .modal-head{padding:12px 14px}
  .op-modal .modal-body{padding:12px 14px 0}
  .op-modal .modal-foot{padding:10px 14px calc(10px + env(safe-area-inset-bottom))}
  .op-modal-title{white-space:normal;font-size:18px}
  .op-modal-actions{overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}
  .op-kind-row{display:grid;grid-template-columns:1fr;width:100%;min-width:0}
  .op-kind-btn{min-width:0;min-height:56px;padding:8px 10px}
  .op-main-details > summary{align-items:flex-start}
  .op-main-summary{white-space:normal}
  .alloc-row{grid-template-columns:1fr;gap:8px;padding:10px 0;border-bottom:1px solid var(--border)}
  .alloc-row > button{width:100%;justify-content:center}
  .kb-scroll{margin-left:-12px;margin-right:-12px;padding-left:12px}
  .kb-board{min-width:760px}
}

/* User salary-statement participation */
.user-manager-modal{max-width:600px}
.salary-type-picker{margin-top:16px;padding:12px;border:1px solid var(--border);border-radius:12px;background:#f8fafc}
.salary-type-picker-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.salary-type-picker-head>div:first-child{min-width:0}
.salary-type-picker-head b{display:block;color:var(--text);font-size:13px;line-height:1.35}
.salary-type-picker-head span{display:block;margin-top:2px;color:var(--muted);font-size:11.5px;line-height:1.35}
.salary-type-picker-actions{display:flex;flex:0 0 auto;gap:8px}
.salary-type-picker-actions button{border:0;background:transparent;color:var(--green-d);font:inherit;font-size:11.5px;font-weight:600;cursor:pointer;padding:2px}
.salary-type-picker-actions button:hover{text-decoration:underline}
.salary-type-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.salary-type-card{display:flex;min-width:0;min-height:42px;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--text);font-size:12.5px;font-weight:500;line-height:1.25;cursor:pointer}
.salary-type-card:hover{border-color:#a8d8b8;background:#f6fbf7}
.salary-type-card:has(input:checked){border-color:var(--green);background:var(--green-l);color:var(--green-d);box-shadow:inset 0 0 0 1px rgba(22,163,74,.08)}
.salary-type-card:has(input:disabled){cursor:not-allowed;opacity:.55;background:#f8fafc}
.salary-type-card input{flex:0 0 auto;width:16px;height:16px;margin:0;accent-color:var(--green)}
.salary-type-card span{min-width:0}
.user-salary-summary{display:flex;align-items:center;gap:2px;margin-top:4px;color:var(--muted);font-size:10.5px;line-height:1.25;font-weight:400}
.user-salary-summary-more{white-space:nowrap}
.user-salary-summary-empty{color:#8a98aa}
@media(max-width:600px){
  .salary-type-picker-head{display:block}
  .salary-type-picker-actions{margin-top:7px}
  .salary-type-picker-grid{grid-template-columns:1fr}
}

/* Payroll */
.payroll-head{align-items:flex-start}
.payroll-tabs{margin:0 0 18px}
.payroll-tabs button.sub-tab{appearance:none;background:#fff;font:inherit}
.payroll-card{padding:0;overflow:hidden}
.payroll-controls{display:grid;grid-template-columns:110px 100px 170px minmax(260px,1fr) max-content;gap:12px;align-items:end;padding:18px;border-bottom:1px solid var(--line)}
.payroll-controls label,.payroll-form-grid label{display:flex;flex-direction:column;gap:6px;font-weight:700;color:var(--muted);font-size:13px}
.payroll-controls input,.payroll-controls select,.payroll-form-grid input,.payroll-form-grid select,.payroll-form-grid textarea,.payroll-table input,.payroll-table select{border:1px solid #D8E2EF;border-radius:10px;padding:10px 12px;background:#fff;color:var(--text);font:inherit;min-height:42px}
.payroll-preview-empty{padding:22px;color:var(--muted)}
.payroll-preview-box{padding:0}
.payroll-preview-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--line);background:#F8FAFC}
.payroll-total{font-size:22px;font-weight:800;white-space:nowrap}
.payroll-table{width:100%;border-collapse:collapse;table-layout:fixed}
.payroll-table th,.payroll-table td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}
.payroll-table th{font-size:12px;text-transform:uppercase;color:var(--muted);letter-spacing:.03em;background:#F8FAFC}
.payroll-table td{font-size:14px}
.payroll-table .right{text-align:right}
.payroll-staff-wrap{padding:0;overflow:hidden}
.payroll-staff-toolbar{display:flex}
.payroll-staff-toolbar>b{white-space:nowrap}
.payroll-staff-toolbar .table-filter-chip-row{flex-basis:100%;margin-left:0;order:10}
.payroll-staff-table-shell{overflow:auto;background:#fff}
.payroll-staff-table{min-width:980px}
.payroll-staff-table th,.payroll-staff-table td{font-size:13px;line-height:1.28;padding:13px 24px;vertical-align:middle;overflow:hidden;transition:background .15s,color .15s,padding-left .15s,padding-right .15s}
.payroll-staff-table th{font-size:10px;line-height:1.1;padding:9px 24px;font-weight:650}
.payroll-staff-table tbody tr.payroll-staff-row{height:66px;cursor:pointer;transition:background .15s,box-shadow .15s,opacity .15s,transform .15s}
.payroll-staff-table tbody tr.payroll-staff-row:hover{background:var(--selected-bg);box-shadow:inset 0 0 0 1px #D9E3EF;color:var(--green-d)}
.payroll-staff-table tbody tr.payroll-staff-row:hover td{background:var(--selected-bg)}
.payroll-staff-row:hover td:first-child,.payroll-row-dragging td:first-child,.payroll-row-drop-before td:first-child,.payroll-row-drop-after td:first-child{padding-left:34px}
.payroll-staff-row:hover td:last-child,.payroll-row-dragging td:last-child,.payroll-row-drop-before td:last-child,.payroll-row-drop-after td:last-child{padding-right:64px !important}
.payroll-staff-table tbody tr.payroll-row-dragging{opacity:.45;transform:scale(.998)}
.payroll-staff-table tbody tr.payroll-row-drop-before{box-shadow:inset 0 2px 0 var(--green)}
.payroll-staff-table tbody tr.payroll-row-drop-after{box-shadow:inset 0 -2px 0 var(--green)}
.payroll-staff-col-employee{width:300px}
.payroll-staff-col-scope{width:250px}
.payroll-staff-col-amount{width:140px}
.payroll-staff-col-payment{width:auto}
.payroll-staff-employee-cell{position:relative}
.payroll-staff-payment-cell{position:relative !important;padding-right:48px !important;overflow:visible !important}
.payroll-staff-row:hover .payroll-staff-payment-cell,.payroll-row-dragging .payroll-staff-payment-cell,.payroll-row-drop-before .payroll-staff-payment-cell,.payroll-row-drop-after .payroll-staff-payment-cell{padding-right:64px !important}
.payroll-row-drag-handle{position:absolute;right:18px;top:50%;transform:translateY(-50%);width:14px;height:22px;border:0;background:transparent;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px;line-height:1;cursor:grab;opacity:0;transition:opacity .12s,color .12s;pointer-events:auto;z-index:6}
.payroll-row-drag-handle::before{content:"☰"}
.payroll-row-drag-handle:hover{color:var(--green-d)}
.payroll-row-drag-handle:active{cursor:grabbing;color:var(--green-d)}
.payroll-staff-row:hover .payroll-row-drag-handle,.payroll-row-dragging .payroll-row-drag-handle,.payroll-row-drop-before .payroll-row-drag-handle,.payroll-row-drop-after .payroll-row-drag-handle{opacity:1}
.payroll-staff-main{font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.payroll-staff-row:hover .payroll-staff-main{color:var(--green-d)}
.payroll-staff-sub{font-size:12px;color:var(--muted);line-height:1.2;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:400}
.payroll-staff-scope{font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.payroll-staff-row:hover .payroll-staff-scope{color:var(--green-d)}
.payroll-staff-amount{font-weight:500;white-space:nowrap;color:var(--text);font-variant-numeric:tabular-nums}
.payroll-staff-row:hover .payroll-staff-amount{color:var(--green-d)}
.payroll-staff-table .payroll-payment-summary{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;max-width:100%;font-size:13px;line-height:1.25;font-weight:400;color:var(--text);overflow:hidden}
.payroll-payment-from,.payroll-payment-to{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;min-width:0}
.payroll-payment-from{color:var(--text);font-weight:400}
.payroll-payment-to{color:var(--muted);font-weight:400}
.payroll-payment-flow{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;min-width:0}
.payroll-staff-row:hover .payroll-payment-flow,.payroll-staff-row:hover .payroll-payment-from,.payroll-staff-row:hover .payroll-payment-to{color:var(--green-d)}
.payroll-staff-table th:last-child,.payroll-staff-table td:last-child{position:static !important;right:auto !important;box-shadow:none !important}
.payroll-staff-table td.payroll-staff-payment-cell{position:relative !important}
.payroll-staff-table thead th:last-child{background:#F8FAFC !important}
.payroll-register-table th:nth-child(1){width:30%}
.payroll-register-table th:nth-child(2){width:15%}
.payroll-register-table th:nth-child(3){width:16%}
.payroll-register-table th:nth-child(4){width:29%}
.payroll-register-table th:nth-child(5){width:10%}
.payroll-receiver-account{margin-top:6px;width:100%}
.payroll-actions{display:flex;justify-content:space-between;gap:12px;padding:16px 18px;background:#F8FAFC}
.payroll-template-modal{max-width:760px;border-radius:16px;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(203,217,232,.95);box-shadow:0 22px 60px rgba(15,23,42,.22)}
.payroll-template-modal .modal-head{align-items:center;background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);padding:12px 20px}
.payroll-template-modal .modal-head h3{font-size:22px;line-height:1.2;margin:0;color:#101828}
.payroll-template-modal .modal-head p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.4;max-width:560px}
.payroll-template-modal .modal-close{width:34px;height:34px;border-radius:10px;font-size:22px;color:#7187a4;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.payroll-template-modal .modal-close:hover{background:#eef4fb;color:#31506f}
.payroll-template-modal .modal-body{padding:14px 20px 10px;overflow-y:auto;background:#fbfdff}
.payroll-template-modal .modal-foot{padding:12px 20px;background:#f8fafc;border-top:1px solid #e6edf5}
.payroll-form-section{padding:0 0 12px;margin:0 0 12px;border-bottom:1px solid #e6edf5}
.payroll-form-section:last-child{padding-bottom:0;margin-bottom:0;border-bottom:0}
.payroll-form-section-title{font-weight:800;font-size:14px;color:#10233f;margin-bottom:10px}
.payroll-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}
.payroll-person-grid{grid-template-columns:minmax(300px,1.35fr) minmax(220px,.85fr);align-items:end}
.payroll-employee-field{grid-column:1;grid-row:1}
.payroll-article-field{grid-column:1;grid-row:2}
.payroll-position-field{grid-column:2;grid-row:1}
.payroll-salary-amount-field{grid-column:2;grid-row:2}
.payroll-salary-amount-field input{min-height:54px!important;font-size:22px!important;font-weight:600!important;letter-spacing:0;color:#061936;padding:8px 16px!important;background:#f7fcfa!important;border-color:#b7dfc4!important;box-shadow:0 0 0 4px rgba(34,197,94,.10),inset 0 0 0 1px rgba(255,255,255,.7)}
.payroll-form-wide{grid-column:1 / -1}
.payroll-payment-summary{line-height:1.45}
.payroll-payment-help{margin:-2px 0 10px;color:#60718a;font-size:13px;line-height:1.4}
.payroll-section-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.payroll-section-row .payroll-form-section-title{margin:0}
.payroll-section-row .btn{min-height:38px;white-space:nowrap}
.payroll-template-payment-lines{display:flex;flex-direction:column;gap:6px}
.payroll-template-payment-head{display:grid;grid-template-columns:minmax(220px,1.25fr) 130px minmax(220px,1.1fr) 36px;gap:8px;align-items:end;padding:0 8px;color:#60718a;font-size:13px;font-weight:800}
.payroll-template-payment-line{display:grid;grid-template-columns:minmax(220px,1.25fr) 130px minmax(220px,1.1fr) 36px;gap:8px;align-items:center;padding:8px 10px;border:1px solid #dfe8f3;border-radius:12px;background:#fff}
.payroll-template-payment-line label{gap:0!important}
.payroll-template-payment-line .btn{min-height:38px;white-space:nowrap}
.payroll-template-payment-line input,.payroll-template-payment-line select{min-height:38px!important;padding:8px 12px!important}
.payroll-payment-amount-field input{text-align:right;font-weight:700!important}
.payroll-payment-remove{width:34px!important;height:34px!important;min-height:34px!important;padding:0!important;border-radius:50%!important;font-size:23px!important;line-height:1!important;display:flex!important;align-items:center!important;justify-content:center!important;color:#d33b3b!important;background:transparent!important;border:0!important}
.payroll-payment-remove:hover{background:#fee2e2!important;color:#b91c1c!important}
.payroll-template-balance{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;padding:9px 10px;border-radius:12px;font-size:13px;line-height:1.35}
.payroll-template-balance:empty{display:none}
.payroll-template-balance div{display:flex;flex-direction:column;gap:2px;min-width:0}
.payroll-template-balance b{font-size:14px;color:#7a3d00}
.payroll-template-balance span{color:#60718a}
.payroll-template-balance .btn{min-height:34px;padding:7px 10px;white-space:nowrap}
.payroll-template-balance.is-warning{border:1px solid #ffd796;background:#fff8e8}
.payroll-template-balance.is-muted{border:1px solid #d8e2ef;background:#f7fbff}
.payroll-template-balance.is-ok{border:1px solid #bfe8cf;background:#f2fbf5}
.payroll-template-balance.is-ok span{color:#14833b}
.payroll-template-receiver select:disabled{background:#f3f6fa;color:#8a9ab0}
.payroll-template-salary-types{margin-top:10px}
.payroll-salary-types-readonly{grid-column:1/-1;padding:10px 12px;border:1px dashed #cbd9e8;border-radius:9px;background:#fff;color:#60718a;font-size:12px;font-weight:600;line-height:1.35}
.payroll-quick-employee{margin-top:10px;padding:10px;border:1px solid #dfe8f3;border-radius:12px;background:#fff;display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:end}
.payroll-quick-employee>div:first-child{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;align-items:baseline;color:#10233f}
.payroll-quick-employee>div:first-child span{font-size:12px;color:#60718a;font-weight:600}
.payroll-quick-salary-types{grid-column:1/-1;margin:2px 0 0;padding:9px}
.payroll-quick-employee-actions{display:flex;grid-column:1/-1;gap:8px;justify-content:flex-end}
.payroll-payment-add{margin-top:10px}
.payroll-payment-empty{padding:10px 12px;border:1px dashed #cbd9e8;border-radius:10px;background:#fff}
.payroll-template-modal label{display:flex;flex-direction:column;gap:6px;min-width:0;color:#60718a;font-size:13px;font-weight:800}
.payroll-template-modal input,.payroll-template-modal select,.payroll-template-modal textarea{box-sizing:border-box;width:100%;min-width:0;border:1px solid #d8e2ef;border-radius:10px;background:#fff;color:#111827;font:inherit;font-weight:600;padding:10px 12px;min-height:42px}
.payroll-template-modal select,.payroll-template-modal option{white-space:nowrap}
.payroll-template-modal textarea{min-height:68px;resize:vertical;line-height:1.45;font-weight:500}
.payroll-template-modal input:focus,.payroll-template-modal select:focus,.payroll-template-modal textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-l)}
.payroll-template-modal label.salary-type-card{display:flex;flex-direction:row;align-items:center;gap:8px;color:var(--text);font-size:12px;font-weight:500}
.payroll-template-modal .salary-type-card input{width:16px;min-width:16px;height:16px;min-height:16px;padding:0;border:0;border-radius:0;box-shadow:none}
.object-constructive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;max-height:220px;overflow:auto;padding:8px;border:1px solid var(--border);border-radius:8px;background:#fff}
.object-constructive-grid label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:#31506f;line-height:1.25}
.object-constructive-grid input{width:auto;min-width:auto}
.op-loan-due-grid{display:grid;grid-template-columns:minmax(150px,.55fr) minmax(220px,1fr);gap:10px;margin-top:8px}
.op-loan-due-grid label{display:block;margin:0 0 5px;color:var(--muted);font-size:12px;font-weight:700}
.op-partner-tax{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border:1px solid #dbe4f0;border-radius:10px;background:#fbfdff}
.op-partner-tax-toggle{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800;color:#31506f}
.op-partner-tax-toggle input{width:16px;height:16px;accent-color:var(--green)}
.op-partner-tax-grid{display:grid;grid-template-columns:minmax(120px,.45fr) minmax(220px,1fr);gap:10px;align-items:end}
.op-partner-tax-preview{font-size:12px;line-height:1.35;color:#60718a}
.op-partner-tax-preview b{color:#10233f;white-space:nowrap}
@media (max-width:900px){
  .payroll-controls,.payroll-form-grid,.payroll-person-grid,.payroll-template-payment-head,.payroll-template-payment-line{grid-template-columns:1fr}
  .payroll-employee-field,.payroll-article-field,.payroll-position-field,.payroll-salary-amount-field{grid-column:1;grid-row:auto}
  .payroll-template-payment-head{display:none}
  .payroll-quick-employee{grid-template-columns:1fr}
  .payroll-quick-employee>div:first-child{display:block}
  .payroll-actions{flex-direction:column}
  .payroll-section-row{align-items:stretch;flex-direction:column}
  .op-loan-due-grid,.op-partner-tax-grid{grid-template-columns:1fr}
}

/* ======= Раздел «＋Расход»: ведомости расхода подотчётных средств ======= */
.es-typebar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin:0 0 14px}
.es-types{display:flex;gap:6px;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:5px}
.es-type-btn{border:0;background:none;border-radius:9px;padding:9px 16px;font-size:14px;color:var(--muted);font-weight:500;cursor:pointer}
.es-type-btn.active{background:var(--green-l);color:var(--green-d);font-weight:600}
.es-quick-btn{white-space:nowrap}
.es-section-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 8px}
.es-section-context{display:flex;align-items:center;gap:10px;min-width:0}
.es-section-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto;margin-left:auto}
.es-work-title{display:flex;align-items:baseline;gap:8px;min-width:0}
.es-work-title b{font-size:22px;line-height:1.1}
.es-work-title span{color:var(--muted);font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.es-types-compact{padding:3px;border-radius:10px}
.es-types-compact .es-type-btn{padding:6px 11px;font-size:13px;border-radius:7px}

.es-reg-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.es-reg-top .es-t{font-size:16px;font-weight:600}
.es-reg-subtitle{margin-top:3px;color:var(--muted);font-size:12.5px}
.es-add-top{border:1px solid var(--green);background:var(--green-l);color:var(--green-d);border-radius:10px;padding:8px 14px;font-size:14px;font-weight:600;cursor:pointer}
/* Создание документа и добавление строки в документ различаются визуально:
   заливка — новая ведомость, контур — строка внутри открытой ведомости. */
.es-add-top.es-add-statement{background:var(--green);border-color:var(--green);color:#fff}
.es-add-top.es-add-statement:hover{background:var(--green-d);border-color:var(--green-d)}
.es-add-top.es-add-line{background:#fff;border-color:var(--border);color:var(--green-d)}
.es-add-top.es-add-line:hover{border-color:var(--green);background:var(--green-l)}
.es-reg-shell{background:#f3f6f9;border:1px solid var(--border);border-radius:12px;padding:12px;overflow:hidden}
.es-reg-type-chips{display:flex;gap:6px;margin:0 0 10px;overflow-x:auto;scrollbar-width:thin}
.es-reg-type-chip{flex:0 0 auto;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--muted);padding:7px 12px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.es-reg-type-chip.active{border-color:var(--green);background:var(--green-l);color:var(--green-d)}
.es-reg-type-badge{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;padding:4px 8px;background:#eef2f6;color:#455468;font-size:11.5px;font-weight:700}
.es-reg-type-salary{background:#edf4ff;color:#315c9b}
.es-reg-type-transfer{background:#fff5df;color:#94620a}
.es-reg-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 10px}
.es-reg-control,.es-reg-date{height:36px;border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:8px;font:inherit;font-size:13.5px}
.es-reg-control{flex:0 0 158px;width:158px;max-width:220px;padding:0 34px 0 12px}
.es-reg-control.active,.es-reg-date.active{border-color:var(--green);box-shadow:0 0 0 1px rgba(22,163,74,.12)}
.es-reg-date{display:inline-flex;align-items:center;gap:7px;padding:0 9px;color:var(--muted)}
.es-reg-date input{width:132px;border:0;background:transparent;color:var(--text);font:inherit;font-size:13.5px;padding:0}
.es-reg-date input:focus{outline:0}
.es-reg-dash{color:var(--muted)}
.es-reg-check-label{display:inline-flex;align-items:center;gap:8px;min-height:36px;color:var(--text);font-size:13.5px;white-space:nowrap}
.es-reg-checkbox,.es-reg-check-label input{width:16px;height:16px;margin:0;accent-color:var(--green-d);cursor:pointer}
.es-reg-reset{min-width:76px;border:1px solid transparent;background:transparent;color:var(--muted);border-radius:8px;padding:8px 10px;font-size:13px;cursor:pointer}
.es-reg-reset.active{border-color:var(--border);background:var(--card);color:var(--green-d)}
.es-reg-reset:disabled{visibility:hidden;pointer-events:none}
.es-reg{width:100%;border-collapse:collapse;font-size:14px;background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.es-reg th{background:var(--bg);color:var(--muted);font-weight:600;font-size:12.5px;text-align:left;padding:9px 12px;border-bottom:1px solid var(--border)}
.es-reg td{padding:10px 12px;border-bottom:1px solid var(--border)}
.es-reg tbody tr:last-child td{border-bottom:0}
.es-reg-row{cursor:pointer}
.es-reg-row:hover td{background:var(--selected-bg)}
.es-reg-row.is-selected td{background:#e8edf2}
.es-reg-row.is-selected:hover td{background:#e1e8ee}
.es-reg .num,.es-led .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.es-reg-check-h,.es-reg-cell-check{width:34px;text-align:center!important;padding-left:12px!important;padding-right:6px!important}
.es-reg-actions-h{text-align:right!important;width:220px}
.es-reg-cell-actions{width:220px}
.es-reg-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;white-space:nowrap}
.es-reg-action{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:8px;padding:6px 9px;font-size:12.5px;font-weight:600;line-height:1;cursor:pointer}
.es-reg-action:hover{border-color:var(--green);color:var(--green-d);background:var(--green-l)}
.es-reg-action.danger{border-color:#f2b8b5;color:#b42318;background:#fff7f7}
.es-reg-action.danger:hover{border-color:var(--red);color:var(--red);background:#fff1f1}
.es-reg-locked{display:inline-flex;align-items:center;justify-content:center;min-width:72px;color:var(--muted);font-size:12.5px}
.es-reg-bulk{position:sticky;bottom:0;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:14px;margin:10px -12px -12px;padding:10px 12px;background:#e3e8ed;border-top:1px solid var(--border)}
.es-reg-bulk-left,.es-reg-bulk-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.es-reg-bulk-left{min-width:0;color:var(--text);font-size:13.5px}
.es-reg-bulk-left b{font-weight:700}
.es-reg-bulk-clear{width:20px;height:20px;border:0;border-radius:5px;background:#0f8b94;color:#fff;font-weight:700;line-height:1;cursor:pointer}
.es-reg-sep{width:1px;height:18px;background:#9aa7b4}
.es-reg-bulk-btn{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:999px;padding:7px 15px;font-size:13.5px;font-weight:600;cursor:pointer;white-space:nowrap}
.es-reg-bulk-btn:hover{border-color:var(--green);color:var(--green-d);background:var(--green-l)}
.es-reg-bulk-btn.danger{border-color:var(--red);background:var(--red);color:#fff}
.es-reg-bulk-btn.danger:disabled{border-color:var(--border);background:var(--card);color:var(--muted);cursor:not-allowed;opacity:.7}
.es-empty{color:var(--muted);text-align:center;padding:22px 12px}
.es-badge{display:inline-block;font-size:12px;padding:3px 9px;border-radius:999px;border:1px solid var(--border);color:var(--muted);background:var(--bg)}
.es-badge-ok{border-color:var(--green);background:var(--green-l);color:var(--green-d)}
.es-badge-warn{border-color:#f2d48a;background:var(--amber-l);color:var(--amber)}
/* Потребность подотчётных счетов на ближайшую неделю. */
.es-demand{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 12px}
.es-demand-card{flex:1 1 280px;min-width:0;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--card)}
.es-demand-card.is-short{border-color:#f2d48a;background:var(--amber-l)}
.es-demand-title{font-size:13px;font-weight:700;color:var(--text);margin-bottom:4px}
.es-demand-facts{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12.5px;color:var(--muted)}
.es-demand-facts b{color:var(--text);font-weight:650}
.es-demand-note{margin-top:6px;font-size:12.5px}
.es-demand-gap{color:var(--amber)}
.es-demand-wait{color:#2f6fb5}
.es-demand-ok{color:var(--green-d)}

/* Выплата с будущей датой: ещё не факт, а план. */
.es-badge-plan{margin-left:6px;border-color:#bcd7f5;background:#eef5fd;color:#2f6fb5}

.es-current-kind{display:inline-flex;align-items:center;min-height:30px;border-radius:999px;background:#eef2f6;color:#455468;padding:0 10px;font-size:12.5px;font-weight:700;white-space:nowrap}
.es-intake-card{overflow:hidden;border:1px solid var(--border);border-radius:14px;background:var(--card);box-shadow:0 8px 28px rgba(15,23,42,.05)}
.es-intake-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:18px 20px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#f4fff7 0%,#fff 62%)}
.es-intake-head h3{margin:0 0 5px;font-size:20px;line-height:1.2}
.es-intake-head p{max-width:720px;margin:0;color:var(--muted);font-size:13.5px;line-height:1.45}
.es-intake-source,.es-intake-source-static{display:flex;align-items:center;gap:8px;flex:0 0 auto;color:var(--muted);font-size:12.5px}
.es-intake-source select{width:min(310px,34vw);min-height:38px;border:1px solid var(--border);border-radius:9px;background:var(--card);color:var(--text);padding:7px 10px;font:inherit}
.es-intake-source-static b{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
.es-intake-search{display:flex;align-items:center;gap:8px;margin:16px 20px 10px;border:1px solid var(--border);border-radius:10px;background:var(--card);padding:0 12px}
.es-intake-search:focus-within{border-color:var(--green);box-shadow:0 0 0 2px rgba(22,163,74,.1)}
.es-intake-search input{width:100%;height:42px;border:0;outline:0;background:transparent;color:var(--text);font:inherit}
.es-intake-notice{margin:18px 20px;padding:12px 14px;border-radius:10px;background:var(--amber-l);color:var(--amber);font-size:13.5px}
.es-intake-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:4px 20px 20px}
.es-intake-action-group h4{margin:8px 0;color:var(--muted);font-size:11.5px;letter-spacing:.04em;text-transform:uppercase}
.es-intake-action-list{display:flex;flex-direction:column;gap:7px}
.es-intake-action{display:flex;flex-direction:column;gap:3px;width:100%;min-height:66px;border:1px solid var(--border);border-radius:10px;background:#fff;padding:10px 12px;text-align:left;cursor:pointer}
.es-intake-action:hover,.es-intake-action:focus-visible{outline:0;border-color:var(--green);background:var(--green-l);box-shadow:0 0 0 2px rgba(22,163,74,.08)}
.es-intake-action b{color:var(--text);font-size:13.5px;line-height:1.3}
.es-intake-action span{color:var(--muted);font-size:11.5px;line-height:1.35}
.es-intake-picker-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--border);background:var(--bg)}
.es-intake-groups{display:flex;gap:7px;min-width:0;overflow-x:auto;scrollbar-width:thin}
.es-intake-picker-foot+.es-intake-groups{margin:0 20px}
.es-intake-group{flex:0 0 auto;display:flex;align-items:baseline;gap:7px;border:1px solid var(--border);border-radius:10px;background:var(--card);padding:8px 10px;text-align:left;cursor:pointer}
.es-intake-group.active{border-color:var(--green);background:var(--green-l);color:var(--green-d)}
.es-intake-group b{font-size:12.5px}
.es-intake-group span{color:var(--muted);font-size:11.5px;white-space:nowrap}
.es-intake-head+.es-intake-groups{margin:12px 20px 0}
.es-intake-workbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--bg)}
.es-intake-workbar .es-intake-groups{flex:1 1 auto}
.es-intake-editor{min-width:0}
.es-intake-editor .es-head-card,.es-intake-editor .es-foot,.es-intake-editor .es-salary-ledger{display:none}
.es-intake-editor .es-table-wrap{border:0;border-radius:0;box-shadow:none}
.es-intake-submitbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border-top:1px solid var(--border);background:#f7faf8}
.es-intake-submitbar>div:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.es-intake-submitbar b{font-size:14px}
.es-intake-submitbar span{color:var(--muted);font-size:12px}
.es-intake-submit-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}

.es-back{border:0;background:none;color:var(--green-d);font-size:14px;padding:2px 0 12px;cursor:pointer}
.es-back-compact{height:34px;padding:0 10px;border:1px solid var(--border);border-radius:9px;background:var(--card);font-size:13px;white-space:nowrap}
.es-back-compact:hover{border-color:var(--green);background:var(--green-l)}
.es-roles{display:flex;gap:8px;margin-bottom:12px}
.es-role-btn{flex:1;border:1px solid var(--border);background:var(--card);border-radius:12px;padding:10px 14px;text-align:left;line-height:1.3;cursor:pointer}
.es-role-btn b{display:block;font-size:14px}
.es-role-btn small{color:var(--muted);font-size:12px}
.es-role-btn.active{border-color:var(--green);background:var(--green-l)}
.es-role-btn.active b,.es-role-btn.active small{color:var(--green-d)}

.es-head-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px 16px;margin-bottom:12px}
.es-head-compact{padding:10px 12px;margin-bottom:8px;border-radius:12px}
.es-head-main{display:flex;align-items:center;gap:10px;min-width:0}
.es-head-title{display:flex;align-items:baseline;gap:10px;min-width:0;max-width:min(42vw,460px);flex:0 1 auto}
.es-head-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px}
.es-head-top h3{margin:0;font-size:17px}
.es-head-title h3{margin:0;font-size:16px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.es-period{color:var(--muted);font-size:13px}
.es-head-sub{color:var(--muted);font-size:13px;margin-top:4px}
.es-acc-pick{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:13px;color:var(--muted);flex-wrap:wrap}
.es-acc-pick label{flex:0 0 auto}
.es-acc-select{border:1px solid var(--border);border-radius:9px;background:var(--card);color:var(--text);padding:6px 10px;font-size:13px;font-family:inherit;max-width:100%}
.es-acc-select:focus{outline:2px solid var(--green);outline-offset:-1px}
.es-head-meta{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);align-items:center;gap:10px;margin-top:8px;min-width:0}
.es-head-meta-review{grid-template-columns:1fr}
.es-head-meta-salary{grid-template-columns:minmax(230px,330px) minmax(0,1fr);align-items:start}
.es-head-meta-salary .es-flow{grid-column:1/-1;overflow:visible;flex-wrap:wrap}
.es-head-compact .es-acc-pick{margin-top:0;gap:6px;flex-wrap:nowrap;min-width:0}
.es-head-compact .es-acc-pick .search-select{min-width:0;flex:1 1 auto}
.es-head-compact .es-acc-select{min-width:190px}
.es-request-controls{display:grid;grid-template-columns:minmax(135px,.55fr) minmax(220px,1fr) minmax(190px,.85fr);gap:8px;min-width:0}
.es-request-controls .es-acc-pick{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center}
.es-request-controls input,.es-request-controls select{width:100%;min-width:0;height:32px;border:1px solid var(--border);border-radius:9px;background:var(--card);color:var(--text);padding:5px 9px;font:inherit;font-size:12.5px}
.es-request-controls input:focus,.es-request-controls select:focus{outline:2px solid var(--green);outline-offset:-1px}
.es-request-facts{display:flex;align-items:center;gap:7px;min-width:0;flex-wrap:wrap}
.es-request-facts span{display:inline-flex;gap:4px;align-items:baseline;padding:4px 9px;border:1px solid var(--border);border-radius:999px;background:var(--bg);color:var(--muted);font-size:11.5px;white-space:nowrap}
.es-request-facts b{color:var(--text);font-weight:600}
.es-salary-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.es-salary-amount{display:flex;align-items:center;gap:8px;color:#64748b;font-size:12px;white-space:nowrap}
.es-salary-amount input{width:118px;min-height:40px;border:1px solid #cbd5e1;border-radius:10px;padding:7px 10px;text-align:right;font:inherit;color:#0f172a;background:#fff}
.es-salary-amount input:focus{outline:2px solid rgba(22,163,74,.18);border-color:#16a34a}
.es-payroll-ledger{border-top:1px solid #e2e8f0;background:#f8fafc;padding:10px 18px;display:grid;gap:6px}
.es-payroll-ledger-title{font-size:12px;font-weight:800;color:#475569;text-transform:uppercase;letter-spacing:.035em}
.es-payroll-event{display:grid;grid-template-columns:86px minmax(220px,1fr) 130px auto;align-items:center;gap:12px;min-height:38px;padding:5px 8px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;font-size:13px}
.es-payroll-event-date{color:#64748b;font-variant-numeric:tabular-nums}
.es-payroll-event b{display:block;color:#0f172a}.es-payroll-event small{display:block;color:#64748b;margin-top:2px}
.es-payroll-event .num{font-weight:800;text-align:right}.es-payroll-event .positive{color:#15803d}.es-payroll-event .negative{color:#dc2626}
.es-ledger-action{min-height:30px;border:1px solid #86efac;border-radius:8px;background:#f0fdf4;color:#166534;padding:4px 9px;font-weight:700;cursor:pointer;white-space:nowrap}
.es-ledger-action.danger{border-color:#fecaca;background:#fff7f7;color:#b91c1c}
@media(max-width:900px){.es-payroll-event{grid-template-columns:72px 1fr auto}.es-payroll-event .num{grid-column:3}.es-ledger-action{grid-column:2 / 4;justify-self:start}}
.es-funding-source-select{min-width:210px;max-width:320px;height:36px;border:1px solid var(--border);border-radius:9px;background:var(--card);color:var(--text);padding:6px 10px;font:inherit;font-size:12.5px}
.es-funding-source-select:focus{outline:2px solid var(--green);outline-offset:-1px}
.es-flow{display:flex;align-items:center;gap:6px;margin-top:10px;flex-wrap:wrap}
.es-head-compact .es-flow{margin-top:0;gap:4px;min-width:0;overflow:hidden}
.es-step{font-size:12px;padding:4px 10px;border-radius:999px;border:1px solid var(--border);color:var(--muted);background:var(--bg)}
.es-head-compact .es-step{font-size:11.5px;padding:3px 8px;white-space:nowrap}
.es-step.active{border-color:var(--green);background:var(--green-l);color:var(--green-d);font-weight:600}
.es-step.done{border-color:var(--green);color:var(--green-d)}
.es-arr{color:var(--muted);font-size:12px;flex:0 0 auto}
.es-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.es-head-compact .es-kpis{display:flex;align-items:center;justify-content:flex-start;gap:6px;margin:0 auto 0 0;min-width:0;flex:1 1 auto;flex-wrap:nowrap;overflow:hidden}
.es-kpi{border:1px solid var(--border);border-radius:11px;padding:9px 11px;background:var(--bg)}
.es-head-compact .es-kpi{display:inline-flex;align-items:baseline;gap:6px;border-radius:999px;padding:4px 9px;min-height:28px;white-space:nowrap;flex:0 0 auto;min-width:0}
.es-head-compact .es-kpi-source{max-width:220px}
.es-head-compact .es-kpi-salary-kind{max-width:260px}
.es-kpi-l{font-size:11.5px;color:var(--muted)}
.es-head-compact .es-kpi-l{font-size:11px}
.es-kpi-v{font-size:16px;font-weight:600;margin-top:2px;white-space:nowrap}
.es-head-compact .es-kpi-v{font-size:13px;margin-top:0}
.es-kpi-plain{align-items:center}
.es-kpi-plain .es-kpi-v{margin-top:0}
.es-head-compact .es-kpi-plain .es-kpi-v{font-weight:700}
.es-head-compact .es-kpi-source .es-kpi-v{overflow:hidden;text-overflow:ellipsis;max-width:120px}
.es-head-compact .es-kpi-salary-kind .es-kpi-v{overflow:hidden;text-overflow:ellipsis;max-width:170px}
.es-kpi-v.warn{color:var(--amber)}
.es-kpi-v.ok{color:var(--green-d)}
/* Действия над документом (копировать, отозвать) — справа, перед переключателем ролей. */
.es-head-doc-actions{display:flex;flex:0 0 auto;gap:8px;margin-left:auto}
.es-head-doc-actions .es-doc-action{min-height:32px;padding:6px 12px;font-size:13px;white-space:nowrap}
.es-head-doc-actions+.es-roles-compact{margin-left:8px}
.es-roles-compact{flex:0 0 auto;gap:3px;margin:0 0 0 auto;padding:3px;border:1px solid var(--border);border-radius:10px;background:var(--bg)}
.es-roles-compact .es-role-btn{flex:0 0 auto;border:0;border-radius:7px;padding:6px 10px;text-align:center;background:transparent}
.es-roles-compact .es-role-btn b{font-size:12.5px;line-height:1.1}
.es-roles-compact .es-role-btn.active{background:var(--green-l);box-shadow:inset 0 0 0 1px rgba(22,163,74,.18)}

.es-table-wrap{background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden}
.es-table-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border)}
.es-table-top .es-t{font-size:15px;font-weight:600}
.es-table-top .es-hint{font-size:12px;color:var(--muted)}
.es-table-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.es-table-scroll{overflow-x:auto}
table.es-led{border-collapse:collapse;width:100%;font-size:13px;min-width:760px}
table.es-led-expense{min-width:1180px}
table.es-led-salary{min-width:1100px}
table.es-led-salary:not(.es-led-salary-kind-execution){min-width:760px}
.es-led th,.es-led td{border:1px solid var(--border);padding:7px 9px;text-align:left;vertical-align:middle}
.es-led thead th{background:var(--bg);color:var(--muted);font-weight:600;font-size:12px;white-space:nowrap}
.es-led .es-cell-n{text-align:center;color:var(--muted);font-variant-numeric:tabular-nums}
.es-led td.es-editable{padding:0}
.es-dependent-empty{color:var(--muted);background:#f8fafc;text-align:center!important;font-size:11px;white-space:nowrap}
.es-dependent-empty span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.es-cellin{width:100%;border:0;background:transparent;padding:7px 9px;font-size:13px;font-family:inherit;color:var(--text)}
.es-cellin:focus{outline:2px solid var(--green);outline-offset:-2px;background:var(--card);border-radius:2px}
select.es-cellin{appearance:none;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:24px}
.es-worker-cell.is-reselect{background:#fff8e8}
.es-worker-cell.is-reselect .es-worker-select,.es-worker-cell.is-reselect .search-select-input{color:#92400e}
.es-worker-select:disabled{cursor:not-allowed;color:var(--muted);background:#f8fafc}
.es-worker-empty-cell{background:#fbfefc}
.es-worker-empty{min-height:42px;padding:4px 6px;display:flex;align-items:center;gap:7px;min-width:0}
.es-worker-empty>span{min-width:0;flex:1;color:var(--muted);font-size:10.5px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.es-worker-empty>button{flex:0 0 auto;min-height:28px;border:1px solid #86efac;border-radius:8px;background:#f0fdf4;color:#166534;padding:4px 8px;font:inherit;font-size:11px;font-weight:700;white-space:nowrap;cursor:pointer}
.es-worker-empty>button:hover{border-color:var(--green);background:var(--green-l)}
.es-worker-empty>button:focus-visible{outline:2px solid var(--green);outline-offset:1px}
.es-quick-employee-modal{max-width:480px;overflow:hidden}
.es-quick-employee-modal .modal-head{align-items:flex-start;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%)}
.es-quick-employee-modal .modal-head h3{font-size:20px;line-height:1.2;margin:0}
.es-quick-employee-modal .modal-head p{margin:4px 0 0;color:var(--muted);font-size:12.5px;line-height:1.35}
.es-quick-employee-modal .modal-body{display:grid;gap:14px;background:#fbfdff}
.es-quick-employee-kind{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border:1px solid #dce7f3;border-radius:10px;background:#fff}
.es-quick-employee-kind span{color:var(--muted);font-size:12px}
.es-quick-employee-kind b{min-width:0;color:var(--green-d);font-size:13px;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.es-quick-employee-field{display:grid;gap:6px;color:#475569;font-size:12.5px;font-weight:700}
.es-quick-employee-field input{box-sizing:border-box;width:100%;min-height:43px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:var(--text);padding:9px 11px;font:inherit;font-weight:500}
.es-quick-employee-field input:focus{outline:2px solid rgba(22,163,74,.2);border-color:var(--green)}
.es-quick-employee-note{display:grid;gap:3px;padding:9px 11px;border-radius:10px;background:#f1f5f9;color:#64748b;font-size:11.5px;line-height:1.45}
.es-quick-employee-note b{color:#334155;font-size:12px}
.es-quick-employee-submit:disabled{opacity:.65;cursor:not-allowed}
.es-led td.es-editable .search-select{height:100%}
.es-led td.es-editable .search-select-input{height:100%;min-height:34px;border:0;border-radius:0;background:transparent;padding:7px 28px 7px 9px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.es-led td.es-editable .search-select-input:focus,.es-led td.es-editable .search-select.open .search-select-input{outline:2px solid var(--green);outline-offset:-2px;background:var(--card);box-shadow:none}
.es-led td.es-editable .search-select::after{right:9px}
.es-work-manual,.es-work-qty{display:flex;align-items:center;min-width:0;height:34px}
.es-work-manual .es-cellin,.es-work-qty .es-cellin{min-width:0;height:34px}
.es-value-stack{display:flex;min-width:0;flex-direction:column;align-items:stretch;justify-content:center}
.es-overrun-cell{background:#fff8e8!important}
.es-overrun-note{display:block;max-width:100%;padding:0 5px 3px;color:#b45309;font-size:9px;font-weight:700;line-height:1.05;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.es-overrun-cell .es-cellin{color:#92400e}
.es-work-manual button{flex:0 0 30px;align-self:stretch;border:0;border-left:1px solid var(--border);background:transparent;color:var(--green-d);font-size:16px;cursor:pointer}
.es-work-manual button:hover{background:var(--green-l)}
.es-work-qty span{flex:0 0 auto;max-width:42px;padding-right:7px;color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.es-work-qty .es-work-unit{flex:0 0 44px;width:44px;border-left:1px solid var(--border);padding:7px 5px;text-align:left;color:var(--muted);font-size:11px}
.es-work-view{max-width:0}
.es-work-view span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.es-cellin.num{text-align:right;font-variant-numeric:tabular-nums}
.es-doc{border:0;background:none;font-size:15px;width:100%;text-align:center;opacity:.55;cursor:pointer}
.es-doc.has{opacity:1}
.es-del{border:0;background:none;color:var(--muted);font-size:16px;width:100%;text-align:center;opacity:0;cursor:pointer}
.es-led tbody tr:hover .es-del{opacity:.7}
.es-del:hover{color:var(--red);opacity:1}
.es-row-accepted td{background:var(--green-l)}
.es-row-queried td{background:var(--amber-l)}
.es-rev{display:flex;gap:5px;justify-content:center}
.es-rev button{width:30px;height:28px;border-radius:7px;border:1px solid var(--border);background:var(--card);font-size:14px;line-height:1;padding:0;cursor:pointer}
.es-rev .es-acc.on{border-color:var(--green);background:var(--green-l);color:var(--green-d)}
.es-rev .es-qry.on{border-color:#f2d48a;background:var(--amber-l);color:var(--amber)}
.es-totals td{background:var(--bg);font-weight:600;border-top:2px solid var(--border)}
.es-totals .es-lbl{text-align:right;color:var(--muted)}
.es-qnote td{background:var(--amber-l);font-size:12.5px;color:var(--amber);padding:6px 12px}
.es-qi{display:flex;gap:8px;align-items:baseline}
.es-qnote-edit .es-qi{align-items:center}
.es-qnote-edit .es-qi>span{flex:0 0 auto;white-space:nowrap;font-weight:600}
.es-qnote-input{flex:1 1 auto;min-width:0;border:1px solid #f2d48a;border-radius:8px;background:var(--card);color:var(--text);padding:6px 10px;font-size:13px;font-family:inherit}
.es-qnote-input:focus{outline:2px solid var(--amber);outline-offset:-2px}

.es-foot{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:14px 16px;border-top:1px solid var(--border)}
.es-foot-left{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.es-foot-right{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.es-status-line{font-size:13px;color:var(--muted)}
.es-status-line b{color:var(--text)}
.es-btn-warn{color:var(--amber);border:1px solid #f2d48a;background:var(--amber-l);border-radius:11px;padding:10px 16px;font-size:14px;font-weight:500;cursor:pointer}

.es-copy-wrap{position:relative}
.es-btn-copy{border:1px solid var(--border);background:var(--card);color:var(--muted);border-radius:10px;padding:8px 12px;font-size:13.5px;cursor:pointer}
.es-copy-menu{position:absolute;left:0;right:auto;top:calc(100% + 6px);z-index:15;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px rgba(10,30,18,.16);padding:6px;width:max-content;min-width:250px;max-width:min(88vw,320px)}
.es-copy-head{font-size:11.5px;color:var(--muted);padding:4px 10px 6px}
.es-copy-item{display:flex;justify-content:space-between;align-items:baseline;gap:10px;width:100%;text-align:left;border:0;background:none;border-radius:8px;padding:8px 10px;cursor:pointer}
.es-copy-item:hover{background:var(--green-l)}
.es-copy-item b{font-size:13.5px;color:var(--text);font-weight:600}
.es-copy-item:hover b{color:var(--green-d)}
.es-copy-item span{font-size:12px;color:var(--muted);white-space:nowrap}

.es-choice-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(15,23,42,.24)}
.es-choice-modal{width:min(620px,calc(100vw - 32px));padding:14px;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 48px rgba(15,23,42,.2)}
.es-choice-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.es-choice-head h3{margin:0;font-size:18px;line-height:1.2}
.es-choice-close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--muted);font-size:20px;line-height:1;cursor:pointer}
.es-choice-close:hover{border-color:var(--green);color:var(--green-d);background:var(--green-l)}
.es-choice-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.es-choice-item{min-height:104px;padding:12px;border:1px solid var(--border);border-radius:10px;background:#fff;text-align:left;cursor:pointer}
.es-choice-item b{display:block;margin-bottom:6px;color:var(--text);font-size:14px;line-height:1.25}
.es-choice-item span{display:block;color:var(--muted);font-size:12.5px;line-height:1.35}
.es-choice-item:hover,.es-choice-item:focus-visible{outline:none;border-color:var(--green);background:var(--green-bg);box-shadow:var(--selected-ring)}
.es-choice-item:hover b,.es-choice-item:focus-visible b{color:var(--green-d)}
.es-choice-item:disabled{cursor:not-allowed;opacity:.5;background:var(--bg)}

@media (max-width:640px){
  .es-section-top{align-items:stretch;flex-direction:column}
  .es-section-context{flex-wrap:wrap}
  .es-section-actions{margin-left:0}
  .es-types-compact{max-width:100%;overflow-x:auto}
  .es-head-main{align-items:stretch;flex-direction:column}
  .es-head-meta{grid-template-columns:1fr;align-items:stretch}
  .es-request-controls{grid-template-columns:1fr}
  .es-request-controls .es-acc-pick{grid-template-columns:110px minmax(0,1fr)}
  .es-head-title{flex-wrap:wrap}
  .es-roles-compact,.es-head-compact .es-acc-pick,.es-head-compact .es-flow,.es-head-compact .es-kpis{width:100%;max-width:none}
  .es-head-compact .es-kpis,.es-head-compact .es-flow{flex-wrap:wrap;justify-content:flex-start;overflow:visible}
  .es-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .es-roles{flex-direction:column}
  .es-reg-shell{padding:10px}
  .es-reg-control{min-width:100%;width:100%}
  .es-reg-date{flex:1 1 145px}
  .es-reg-bulk{align-items:stretch;flex-direction:column;margin-left:-10px;margin-right:-10px;margin-bottom:-10px}
  .es-reg-bulk-left,.es-reg-bulk-actions{justify-content:space-between;gap:8px}
  .es-reg-bulk-btn{flex:1 1 auto}
  .es-choice-list{grid-template-columns:1fr}
  .es-intake-head,.es-intake-submitbar{align-items:stretch;flex-direction:column}
  .es-intake-source,.es-intake-source-static{align-items:flex-start;flex-direction:column}
  .es-intake-source select{width:100%}
  .es-intake-actions{grid-template-columns:1fr}
  .es-intake-workbar{align-items:stretch;flex-direction:column}
  .es-intake-submit-actions{justify-content:stretch}
  .es-intake-submit-actions .btn{flex:1 1 auto}
}

/* ===== Contract estimate redesign (original section look + drill + collapsible reconcile) ===== */
.cd-est-totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--border);border-bottom:1px solid var(--border)}
.cd-est-tt{background:var(--card);padding:11px 14px}
.cd-est-tt .l{display:block;font-size:11px;color:var(--muted)}
.cd-est-tt .v{display:block;font-size:16px;font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums;white-space:nowrap}
.cd-est-tt .v.ok{color:var(--green-d)}
.cd-est-bar{display:block;height:6px;border-radius:999px;background:var(--bg);overflow:hidden;margin-top:6px}
.cd-est-bar>i{display:block;height:100%;background:var(--green);border-radius:999px}
.cd-est-bar>i.over{background:var(--red)}
.cd-est-viewbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border)}
.cd-est-seg{display:inline-flex;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:3px}
.cd-est-seg button{border:0;background:none;border-radius:8px;padding:6px 13px;font-size:13px;color:var(--muted);font-weight:500;cursor:pointer}
.cd-est-seg button.on{background:var(--card);color:var(--green-d);font-weight:600;box-shadow:0 1px 2px rgba(10,30,18,.06)}
.cd-est-checkchip{border:0;border-radius:999px;padding:5px 11px;font-size:12px;font-weight:600;cursor:pointer}
.cd-est-checkchip.warn{background:var(--amber-l);color:var(--amber)}
.cd-est-checkchip.ok{background:var(--green-l);color:var(--green-d);cursor:default}
/* правая группа шапки сметы: бейдж перерасход/экономия + чип сверки */
.cd-est-viewbar-right{display:inline-flex;align-items:center;gap:10px;margin-left:auto}
.cd-est-delta{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:999px;padding:4px 11px;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;background:var(--card);white-space:nowrap}
.cd-est-delta .over{color:var(--red)}
.cd-est-delta .ok{color:var(--green-d)}
.cd-est-delta-sep{color:var(--border);font-weight:400}
.cd-est-caption{padding:8px 14px 2px;font-size:11.5px;color:var(--muted)}
.cd-est-groups{padding-top:2px}

/* KPI строки раздела зависят от вида — виден только один спан */
.cd-sg-kpi{display:none}
.cd-estimate--pf .cd-sg-kpi-pf,.cd-estimate--cost .cd-sg-kpi-cost,.cd-estimate--price .cd-sg-kpi-price{display:inline}
.cd-sg-kpi b{font-weight:600}
.cd-sg-kpi .over{color:var(--red)}
.cd-sg-kpi .ok{color:var(--green-d)}
.cd-sg-kpi .mut{color:var(--muted);font-weight:400}
/* Себестоимость: скрыть колонки факта (кол-во факт, факт, Δ) — только план */
.cd-estimate--cost .cd-work-table th:nth-child(3),.cd-estimate--cost .cd-work-table td:nth-child(3),
.cd-estimate--cost .cd-work-table th:nth-child(5),.cd-estimate--cost .cd-work-table td:nth-child(5),
.cd-estimate--cost .cd-work-table th:nth-child(6),.cd-estimate--cost .cd-work-table td:nth-child(6){display:none}
/* нижний блок «Всего по смете» — только в виде «Для заказчика» */
.cd-estimate--pf .cd-summary,.cd-estimate--cost .cd-summary{display:none}
/* переключение таблиц: план‑факт/себестоимость → cd-work-table; для заказчика → cd-cust-table */
.cd-cust-table{display:none}
.cd-estimate--price .cd-work-table{display:none}
.cd-estimate--price .cd-cust-table{display:table}
/* под-подписи разделов: С/С (Материалы·СМР·Итого) в план-факте, цена — в price */
.cd-sub-price{display:none}
.cd-estimate--price .cd-sub-cost{display:none}
.cd-estimate--price .cd-sub-price{display:block}

/* narrow works table (replaces the 1680px estimate-table) */
.cd-work-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:12.5px;margin-bottom:6px}
.cd-work-table th{font-size:10.5px;color:var(--muted);font-weight:600;text-align:right;padding:6px 8px;border-bottom:1px solid var(--border);white-space:nowrap}
.cd-work-table th:first-child{text-align:left}
.cd-work-table td{padding:7px 8px;border-bottom:1px solid var(--bg);vertical-align:middle}
.cd-work-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.cd-work-table th:not(:first-child),.cd-work-table td.num{width:104px}
.cd-work-table tr:last-child td{border-bottom:0}
.cd-wname{min-width:0}
.cd-wname-inner{display:flex;align-items:center;gap:7px;min-width:0;width:100%}
.cd-wtitle{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cd-wno{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:18px;padding:0 6px;border-radius:999px;background:var(--bg);color:var(--muted);font-size:10.5px;font-weight:700}
.cd-wcount{flex:0 0 auto;color:var(--muted);font-size:10.5px;white-space:nowrap}
.cd-wunit{color:var(--muted);font-weight:400}
.cd-rname{min-width:0;padding-left:26px!important}
.cd-rname-inner{display:flex;align-items:center;gap:8px;min-width:0;width:100%}
.cd-rtype{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:34px;height:17px;border-radius:4px;border:1px solid var(--border);font-size:9px;font-weight:800;letter-spacing:.2px;color:var(--muted)}
.cd-rtype.mat{border-color:#fbbf24;color:#d97706;background:#fffbeb}
.cd-rtype.lab{border-color:#93c5fd;color:#2563eb;background:#eff6ff}
.cd-rtype.meh{border-color:#c4b5fd;color:#7c3aed;background:#f5f3ff}
.cd-work-table .estimate-resource-row td{background:var(--bg)}
.cd-dev-cell.pos{color:var(--green-d);font-weight:600}
.cd-dev-cell.neg{color:var(--red);font-weight:600}
.cd-dev-cell.zero{color:var(--muted)}
.cd-qty-mismatch{color:var(--muted);font-size:10.5px;white-space:nowrap}
.cd-est-fact-link{border:0;background:none;color:var(--text);font:inherit;font-weight:600;font-variant-numeric:tabular-nums;padding:2px 3px;border-radius:5px;cursor:pointer;white-space:nowrap}
.cd-est-fact-link:hover,.cd-est-fact-link:focus-visible{color:var(--green-d);background:var(--green-l);outline:none}

/* клиентская таблица «Для заказчика» (Работа | Кол-во | Цена ед. | Сумма) */
.cd-cust-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:12.5px;margin-bottom:6px}
.cd-cust-table th{font-size:10.5px;color:var(--muted);font-weight:600;text-align:right;padding:6px 8px;border-bottom:1px solid var(--border);white-space:nowrap}
.cd-cust-table th:first-child{text-align:left}
.cd-cust-table td{padding:7px 8px;border-bottom:1px solid var(--bg);vertical-align:middle}
.cd-cust-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.cd-cust-table th:not(:first-child),.cd-cust-table td.num{width:120px}
.cd-cust-table tr:last-child td{border-bottom:0}
.cd-cust-table .estimate-work-row>td{font-weight:500}
.cd-cust-table .estimate-resource-row td{background:var(--bg);font-weight:400}

/* collapsible fact-reconcile panel */
.estimate-reconcile-head{cursor:pointer}
.estimate-reconcile-head .cd-tw{color:var(--muted);font-size:12px;transition:transform .12s;flex:0 0 auto}
.estimate-reconcile[data-open="1"] .estimate-reconcile-head .cd-tw{transform:rotate(90deg)}
.estimate-reconcile-head .estimate-reconcile-chip{margin-left:auto}
.estimate-reconcile-body{display:none;padding:12px 14px}
.estimate-reconcile[data-open="1"] .estimate-reconcile-body{display:block}
/* блок «Требуют проверки» — наверху тела */
.estimate-reconcile-tocheck{border:1px solid #fdba74;background:#fff7ed;border-radius:10px;padding:10px 12px;margin-bottom:12px}
.estimate-reconcile-tocheck-title{font-size:12px;font-weight:800;color:#c2410c;margin-bottom:8px}
.estimate-tocheck-item{padding:7px 0;border-top:1px solid #fed7aa}
.estimate-tocheck-item:first-of-type{border-top:0}
.estimate-tocheck-label{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline;font-size:12.5px;margin-bottom:4px}
.estimate-reconcile-fulltitle{font-size:10.5px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin:2px 0 6px}
/* подсветка строки таблицы, которую надо проверить */
.estimate-reconcile-row--todo>td{background:#fff7ed}
.estimate-reconcile-row--todo>td:first-child{box-shadow:inset 3px 0 #f97316}
.estimate-reconcile-row.is-direct-target>td{background:#ecfdf5}
.estimate-reconcile-row.is-direct-target>td:first-child{box-shadow:inset 3px 0 var(--green)}

/* нижний блок сметы «Всего по смете» (надбавки %/₽ + НДС) */
.cd-summary{margin:12px 8px 4px;border:1px solid var(--border);border-radius:12px;overflow:hidden}
.cd-sum-title{padding:9px 14px;font-size:11.5px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border);background:var(--bg)}
/* пояснение при названии блока: он про цену для заказчика, а не про себестоимость */
.cd-sum-title-note{font-weight:600;opacity:.72}
.cd-sum-title-note::before{content:"·";margin:0 6px;opacity:.7}
/* Строка блока — одна линия стабильной высоты: свободное место у названия,
   правая ось — «нарастающим итогом», она же ось «Всего по смете». */
.cd-sum-row{display:grid;grid-template-columns:minmax(0,1fr) 132px 132px 152px 26px;align-items:center;gap:10px;min-height:34px;padding:5px 14px;border-top:1px solid var(--bg)}
.cd-sum-rows .cd-sum-row:first-child{border-top:0}
/* шапка колонок: тот же грид, поэтому подписи стоят ровно над своими значениями */
.cd-sum-head{min-height:0;padding:6px 14px 5px;border-top:0;border-bottom:1px solid var(--border);background:var(--card);
  font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.cd-sum-head .cd-sum-name,.cd-sum-head .cd-sum-amt,.cd-sum-head .cd-sum-run{font-size:10px;font-weight:700;color:var(--muted)}
.cd-sum-head .cd-sum-in{justify-content:flex-end;font-size:10px}
/* отступ слева одинаков у всех строк; ручка живёт внутри него, поэтому
   названия — от шапки до «Всего по смете» — стоят на одной левой оси */
.cd-sum-name{min-width:0;font-size:13.5px;color:var(--text);display:flex;align-items:center;gap:6px;overflow:hidden;padding-left:22px}
/* ручка перестановки появляется на наведении: порядок строк влияет на итог */
.cd-sum-drag{flex:0 0 auto;width:16px;margin-left:-22px;border:0;background:none;color:var(--muted);font-size:12px;line-height:1;padding:2px 0;border-radius:6px;cursor:grab;opacity:0;touch-action:none;transition:opacity .12s}
.cd-sum-row:hover .cd-sum-drag{opacity:.85}
.cd-sum-drag:focus-visible{outline:2px solid var(--green);outline-offset:1px;opacity:1}
.cd-sum-drag:active{cursor:grabbing}
.cd-sum-row.is-dragging{background:var(--green-l);box-shadow:inset 2px 0 0 var(--green)}
.cd-sum-rows .cd-sum-row:hover{background:var(--selected-bg);box-shadow:inset 0 0 0 1px #D9E3EF}
.cd-sum-name input.cd-sum-nm{width:100%;min-width:0;border:0;background:transparent;font:inherit;color:var(--text);padding:2px 0;text-overflow:ellipsis}
.cd-sum-name input.cd-sum-nm:focus{outline:none;box-shadow:inset 0 -1px 0 var(--green)}
.cd-sum-in{display:flex;align-items:center;justify-content:flex-end;gap:4px}
/* поле правится по месту: в покое это просто значение, рамка приходит с наведением */
.cd-sum-in input.cd-sum-val,.cd-sum-in input.cd-sum-vat{width:88px;border:1px solid transparent;border-radius:7px;background:transparent;text-align:right;font:inherit;font-size:13.5px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;padding:3px 7px}
.cd-sum-row:hover input.cd-sum-val,.cd-sum-row:hover input.cd-sum-vat{border-color:var(--border);background:var(--card)}
.cd-sum-in input:focus{border-color:var(--green);background:var(--card);outline:2px solid var(--green);outline-offset:-1px}
.cd-sum-unit{border:0;background:none;color:var(--green-d);font-weight:700;font-size:12.5px;cursor:pointer;width:18px;border-radius:6px;padding:0}
.cd-sum-unit:hover{background:var(--green-l)}
.cd-sum-unit-static{color:var(--muted);font-weight:600;width:18px;text-align:center;font-size:12.5px}
/* «Значение» (процент или сумма надбавки) — жирным: это то, что правит сметчик.
   Внутри системы, а не в смете для заказчика: в печатной форме и в кабинете
   заказчика тот же процент выводится обычным начертанием. */
.cd-sum-static{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13.5px;font-weight:700}
/* прочерк — не значение, поэтому не утяжеляем */
.cd-sum-static.is-empty{font-weight:400}
/* сумма строки — вторичная величина, нарастающий итог — основная ось чтения */
.cd-sum-amt{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px;white-space:nowrap}
.cd-sum-amt.is-negative{color:var(--red)}
.cd-sum-amt.is-zero{color:var(--muted2,#94A3B8)}
.cd-sum-run{text-align:right;color:var(--text);font-variant-numeric:tabular-nums;font-size:13.5px;white-space:nowrap}
.cd-sum-base{background:var(--bg)}
.cd-sum-base .cd-sum-name,.cd-sum-base .cd-sum-amt,.cd-sum-base .cd-sum-run{font-weight:700;color:var(--text)}
.cd-sum-vat .cd-sum-name{color:var(--muted)}
.cd-sum-del{border:0;background:none;color:var(--muted);font-size:13px;cursor:pointer;justify-self:center;padding:0;opacity:0;transition:opacity .12s}
.cd-sum-row:hover .cd-sum-del{opacity:.8}
.cd-sum-del:hover{color:var(--red);opacity:1}
.cd-sum-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-top:1px solid var(--border);flex-wrap:wrap}
.cd-sum-addwrap{display:inline-flex;align-items:center;gap:16px;flex-wrap:wrap}
.cd-sum-add{border:0;background:none;color:var(--green-d);font-weight:600;font-size:13px;cursor:pointer;padding:0}
/* справочная строка: наценка ещё сидит в ценах позиций, надбавки пока не заполнены */
.cd-sum-inline .cd-sum-name{font-style:italic}
.cd-sum-inline .cd-sum-amt,.cd-sum-inline .cd-sum-run{font-style:italic}
.cd-sum-save{border:1px solid var(--green);background:var(--green);color:#fff;border-radius:9px;padding:7px 16px;font-size:13px;font-weight:600;cursor:pointer}
.cd-sum-save:disabled{opacity:.5;cursor:not-allowed}
.cd-sum-lock{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:11px 14px;border-top:1px solid var(--border);background:var(--bg);font-size:12.5px;color:var(--muted)}
.cd-sum-openamend{margin-left:auto;border:1px solid var(--green);background:var(--card);color:var(--green-d);border-radius:9px;padding:6px 14px;font-size:12.5px;font-weight:600;cursor:pointer}
.cd-sum-openamend:hover{background:var(--green-l)}
/* открытое ДС: баннер + кнопки подписать/отменить */
.cd-sum-amend{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:9px 14px;border-top:1px solid var(--border);background:var(--amber-l);color:var(--amber);font-size:12.5px}
.cd-sum-amend-tag{font-weight:700}
.cd-sum-amend-note{color:var(--text);font-weight:400}
.cd-sum-sign{border:1px solid var(--green);background:var(--green);color:#fff;border-radius:9px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer}
.cd-sum-sign:disabled{opacity:.5;cursor:not-allowed}
.cd-sum-cancel{border:1px solid var(--border);background:var(--card);color:var(--muted);border-radius:9px;padding:7px 12px;font-size:13px;font-weight:500;cursor:pointer}
.cd-sum-grand{border-top:2px solid var(--border);background:var(--bg);min-height:42px}
.cd-sum-grand .cd-sum-name{font-weight:700;color:var(--text);font-size:14.5px}
.cd-sum-grand .cd-sum-run{font-weight:800;font-size:16px;color:var(--green-d)}
/* история версий нижнего блока */
.cd-sum-history{border-top:1px solid var(--border);padding:8px 14px 10px}
.cd-sum-history-title{font-size:10.5px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px}
.cd-sum-hrow{display:flex;align-items:center;gap:10px;padding:5px 0;border-top:1px solid var(--bg);font-size:12.5px}
.cd-sum-hrow:first-of-type{border-top:0}
.cd-sum-hno{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:18px;padding:0 6px;border-radius:999px;background:var(--bg);color:var(--muted);font-size:10.5px;font-weight:700}
.cd-sum-hlabel{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
.cd-sum-hamt{flex:0 0 auto;font-variant-numeric:tabular-nums;color:var(--muted)}
.cd-sum-hload{flex:0 0 auto;border:1px solid var(--border);background:var(--card);color:var(--green-d);border-radius:8px;padding:4px 10px;font-size:11.5px;font-weight:600;cursor:pointer}
.cd-sum-hload:hover{background:var(--green-l)}
.cd-sum-hload:disabled{opacity:.5;cursor:not-allowed}

@media (max-width:820px){
  .cd-est-totals{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* узкая раскладка: сумма строки прячется, единственной денежной осью остаётся
     нарастающий итог — так строка держится в одну линию, как на десктопе */
  .cd-sum-row{grid-template-columns:minmax(0,1fr) 100px 128px 24px;min-height:34px;padding:5px 12px;gap:8px}
  .cd-sum-head{display:none}
  .cd-sum-row .cd-sum-amt{display:none}
  /* колонки закреплены явно: скрытая «Сумма» не должна сдвигать правую ось.
     Пустые ячейки-заполнители убираются, иначе они занимают колонку итога
     и выталкивают его на вторую строку. */
  .cd-sum-row > span:not([class]):empty{display:none}
  .cd-sum-row > .cd-sum-name{grid-column:1}
  .cd-sum-row > .cd-sum-in{grid-column:2}
  .cd-sum-row > .cd-sum-run{grid-column:3}
  .cd-sum-row > .cd-sum-del{grid-column:4}
  .cd-sum-name{padding-left:20px;font-size:13px}
  .cd-sum-drag{margin-left:-20px;opacity:.6}
  .cd-sum-in input.cd-sum-val,.cd-sum-in input.cd-sum-vat{width:72px;font-size:13px}
  .cd-sum-run{font-size:13px}
}

/* ===== Employee profiles: person -> employee -> optional access ===== */
.employee-page-loading{padding:56px;text-align:center;color:var(--muted)}
.employees-page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;flex-wrap:wrap}
.employees-page-head h2{font-size:var(--ui-font-page-title);line-height:1.2;margin:0 0 2px;letter-spacing:0}
.employees-page-head p:not(.employees-eyebrow){color:var(--muted);font-size:var(--ui-font-control);margin:0;max-width:720px}
.employees-eyebrow{margin:0!important;color:var(--green-d)!important;font-size:10px!important;font-weight:800;letter-spacing:.07em}
.employees-add-button{min-height:var(--ui-control-height);padding-inline:14px;box-shadow:none}
.employee-kpi-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}
.employee-kpi-strip>div{display:flex;min-width:0;height:var(--ui-kpi-height);min-height:var(--ui-kpi-height);padding:var(--ui-card-padding-y) var(--ui-card-padding-x);border:1px solid var(--border);border-radius:var(--ui-radius-control);background:var(--card);box-shadow:var(--shadow);container-type:inline-size;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;overflow:hidden}
.employee-kpi-strip>div:last-child{border-right:1px solid var(--border)}.employee-kpi-strip span{max-width:100%;overflow:hidden;color:var(--muted);font-size:clamp(10px,5cqw,12px);font-weight:700;line-height:1.1;text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap}.employee-kpi-strip b{max-width:100%;overflow:hidden;font-size:clamp(18px,11cqw,26px);line-height:1.25;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}
.employee-registry-card{background:var(--card);border:1px solid var(--border);border-radius:var(--ui-radius-card);overflow:hidden;box-shadow:var(--shadow)}
.employee-registry-toolbar{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid var(--border);background:#fff}
.employee-registry-title{display:flex;flex-direction:column;min-width:160px}.employee-registry-title>b{font-size:15px}.employee-registry-title>span{color:var(--muted);font-size:11px;margin-top:2px}
.employee-status-switch{display:inline-flex;min-height:var(--ui-control-height);padding:3px;background:var(--bg);border:1px solid var(--border);border-radius:var(--ui-radius-control)}
.employee-status-switch button{border:0;background:transparent;padding:7px 10px;border-radius:7px;color:var(--muted);font-size:12px;font-weight:650;cursor:pointer}
.employee-status-switch button.active{background:#fff;color:var(--green-d);box-shadow:0 1px 5px rgba(15,23,42,.08)}
.employee-registry-filters{display:flex;justify-content:flex-end;gap:8px;min-width:0}.employee-registry-filters select{width:auto;min-width:150px;height:var(--ui-control-height);padding:7px 30px 7px 10px}
.employee-search-control{display:flex;align-items:center;gap:6px;min-width:190px;min-height:var(--ui-control-height);max-width:310px;flex:1;border:1px solid var(--border);border-radius:var(--ui-radius-control);background:#fff;padding:0 10px;color:var(--muted)}
.employee-search-control:focus-within{border-color:var(--green);box-shadow:0 0 0 3px rgba(22,163,74,.1)}.employee-search-control input{border:0!important;box-shadow:none!important;padding:8px 0!important;min-width:0}
.employee-table-scroll{overflow:auto}.employee-registry-table{min-width:940px;table-layout:fixed}.employee-registry-table th{font-size:10px;letter-spacing:.045em;color:#64748b}.employee-registry-table th:nth-child(1){width:30%}.employee-registry-table th:nth-child(2){width:23%}.employee-registry-table th:nth-child(3){width:18%}.employee-registry-table th:nth-child(4){width:19%}.employee-registry-table th:nth-child(5){width:10%}
.employee-registry-row{cursor:pointer;transition:background .16s ease,box-shadow .16s ease}.employee-registry-row:hover,.employee-registry-row:focus{background:#f7fcf8;outline:none;box-shadow:inset 3px 0 0 var(--green)}
.employee-person-cell{display:flex;align-items:center;gap:11px}.employee-avatar{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:10px;background:#e8f8ed;color:var(--green-d);font-size:13px;font-weight:850;border:1px solid #c9efd5}.employee-counterparty-link{display:block;max-width:100%;padding:0;border:0;background:transparent;color:var(--green-d);font:inherit;font-size:13px;font-weight:800;line-height:1.25;text-align:left;cursor:pointer}.employee-counterparty-link:hover{text-decoration:underline}.employee-counterparty-link:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:3px}.employee-person-cell small,.employee-template-cell small,.employee-access-cell small{display:block;color:var(--muted);font-size:10.5px;margin-top:3px;white-space:normal}
.employee-type-list{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.employee-type-chip{padding:4px 7px;border-radius:7px;background:#edf8f0;color:#147a38;border:1px solid #d1efda;font-size:10.5px;font-weight:750}.employee-type-more{color:var(--muted);font-size:10px}
.employee-muted{color:var(--muted);font-size:11px}.employee-template-cell b{font-variant-numeric:tabular-nums;font-size:12px}.employee-access-cell{display:flex;flex-direction:column}.employee-access-state{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700}.employee-access-state i{width:7px;height:7px;border-radius:50%;background:#94a3b8}.employee-access-state.linked{color:#15803d}.employee-access-state.linked i{background:#22c55e}.employee-access-state.disabled{color:#b45309}.employee-access-state.disabled i{background:#f59e0b}
.employee-status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:10.5px;font-weight:750}.employee-status.active{color:#147a38;background:#eaf8ee}.employee-status.archived{color:#64748b;background:#eef2f6}
.employees-empty{display:flex;min-height:230px;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:6px;color:var(--muted)}.employees-empty b{color:var(--text);font-size:15px}.employees-empty-mark{display:grid;place-items:center;width:52px;height:38px;border:1px solid #acdcbc;border-radius:10px;background:#effaf2;color:var(--green-d);font-size:11px;font-weight:850;letter-spacing:.08em}.employees-empty .btn{margin-top:8px}
.employees-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.employee-section-tabs{display:flex;align-items:stretch;gap:4px;margin:0 0 16px;padding:4px;border:1px solid var(--border);border-radius:var(--ui-radius-control);background:#eef3f1;width:max-content;max-width:100%}
.employee-section-tabs button{display:flex;align-items:flex-start;justify-content:center;flex-direction:column;gap:2px;min-width:210px;min-height:52px;padding:8px 14px;border:1px solid transparent;border-radius:9px;background:transparent;color:#64748b;text-align:left;cursor:pointer}
.employee-section-tabs button span{font-size:12.5px;font-weight:800;line-height:1.2}.employee-section-tabs button small{font-size:10px;color:#8492a6;line-height:1.2}
.employee-section-tabs button:hover{color:var(--green-d);background:rgba(255,255,255,.6)}.employee-section-tabs button:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.employee-section-tabs button.active{border-color:#d5e6da;background:#fff;color:var(--green-d);box-shadow:0 2px 7px rgba(15,23,42,.07)}.employee-section-tabs button.active small{color:#5d7468}
.employees-view[hidden]{display:none!important}

/* AI employee catalog lives outside the payroll employee model. */
.ai-team-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:14px}.ai-team-intro h2{margin:2px 0 4px;font-size:20px}.ai-team-intro>div>p:not(.employees-eyebrow){max-width:760px;margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.ai-team-saved-mark{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;margin-top:4px;padding:7px 10px;border:1px solid #cfe6d6;border-radius:999px;background:#f4fbf6;color:#267445;font-size:10.5px;font-weight:750}.ai-team-saved-mark i{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px #dcfce7}
.ai-team-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}.ai-team-summary article{display:flex;justify-content:center;flex-direction:column;min-width:0;height:var(--ui-kpi-height);padding:var(--ui-card-padding-y) var(--ui-card-padding-x);border:1px solid var(--border);border-radius:var(--ui-radius-control);background:#fff;box-shadow:var(--shadow)}
.ai-team-summary span{overflow:hidden;color:var(--muted);font-size:10px;font-weight:750;letter-spacing:.03em;text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap}.ai-team-summary b{font-size:24px;line-height:1.15;font-variant-numeric:tabular-nums}.ai-team-summary small{margin-top:2px;color:#8794a6;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-system-bot-card{display:grid;grid-template-columns:56px minmax(0,1fr) auto auto;align-items:center;gap:14px;margin-bottom:20px;padding:14px 16px;border:1px solid #cfe3d6;border-radius:var(--ui-radius-card);background:linear-gradient(110deg,#f6fcf8,#fff);box-shadow:var(--shadow)}
.ai-system-bot-avatar{display:grid;place-items:center;width:56px;height:56px;padding:0;border:1px solid #cce3d3;border-radius:50%;background:#fff;overflow:hidden;cursor:pointer}.ai-system-bot-avatar img{width:100%;height:100%;object-fit:cover}.ai-system-bot-avatar:focus-visible{outline:3px solid rgba(22,163,74,.25);outline-offset:2px}
.ai-system-bot-copy{min-width:0}.ai-system-bot-copy>span{color:var(--green-d);font-size:9.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.ai-system-bot-copy h3{margin:2px 0;font-size:16px}.ai-system-bot-copy p{margin:0;color:var(--muted);font-size:11px;line-height:1.45}
.ai-system-bot-open{padding:6px 8px;border:0;background:transparent;color:var(--green-d);font-size:11px;font-weight:750;cursor:pointer}.ai-system-bot-open:hover{text-decoration:underline}.ai-system-bot-open:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:6px}
.ai-team-group{margin-top:18px}.ai-team-group-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:9px}.ai-team-group-head h3{margin:0;font-size:15px}.ai-team-group-head p{margin:3px 0 0;color:var(--muted);font-size:10.5px}.ai-team-group-head>span{display:grid;place-items:center;min-width:25px;height:25px;padding:0 7px;border:1px solid var(--border);border-radius:999px;background:#fff;color:#607086;font-size:10.5px;font-weight:800}
.ai-team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ai-employee-card{display:grid;grid-template-columns:66px minmax(0,1fr);gap:13px;min-width:0;min-height:196px;padding:14px;border:1px solid var(--border);border-radius:var(--ui-radius-card);background:#fff;box-shadow:0 2px 9px rgba(15,23,42,.04);transition:border-color .16s ease,box-shadow .16s ease}.ai-employee-card:hover{border-color:#c5ddcc;box-shadow:0 6px 16px rgba(31,73,46,.07)}
.ai-employee-avatar-button{position:relative;width:66px;height:66px;padding:0;border:1px solid #d8e2e8;border-radius:50%;background:#f1f5f4;overflow:visible;cursor:pointer}.ai-employee-avatar-button img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover}.ai-employee-avatar-button:focus-visible{outline:3px solid rgba(22,163,74,.25);outline-offset:3px}.ai-employee-presence{position:absolute;right:1px;bottom:3px;width:12px;height:12px;border:2px solid #fff;border-radius:50%;background:#e2a72b}.ai-employee-presence.active{background:#22c55e}.ai-employee-presence.reserve{background:#94a3b8}
.ai-employee-card-body{display:flex;min-width:0;flex-direction:column}.ai-employee-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:9px}.ai-employee-card-head>div{min-width:0}.ai-employee-card h4{margin:0;font-size:14px;line-height:1.2}.ai-employee-card-head p{margin:3px 0 0;color:#65758a;font-size:10.5px;font-weight:650}.ai-employee-description{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;margin:10px 0 9px;color:#4f6075;font-size:11px;line-height:1.48}
.ai-employee-status{display:inline-flex;align-items:center;justify-content:center;max-width:150px;padding:4px 7px;border-radius:999px;background:#fff7dd;color:#8a5b08;font-size:9.5px;font-weight:800;line-height:1.2;text-align:center}.ai-employee-status.active{background:#eaf8ee;color:#147a38}.ai-employee-status.reserve{background:#eef2f6;color:#64748b}
.ai-employee-meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:auto}.ai-employee-meta span{max-width:100%;padding:3px 6px;border:1px solid #e1e7ed;border-radius:6px;background:#f8fafb;color:#6a798b;font-size:9px;line-height:1.25;white-space:normal}
.ai-employee-actions{display:flex;align-items:center;gap:12px;margin-top:10px}.ai-employee-actions button,.ai-employee-actions a{padding:0;border:0;background:transparent;color:var(--green-d);font-size:10.5px;font-weight:750;text-decoration:none;cursor:pointer}.ai-employee-actions button:hover,.ai-employee-actions a:hover{text-decoration:underline}.ai-employee-actions button:focus-visible,.ai-employee-actions a:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:3px}
.ai-employee-profile-bg{z-index:1260}.ai-employee-profile-modal{width:min(720px,calc(100vw - 32px));max-width:720px;max-height:calc(100vh - 32px);display:flex;flex-direction:column;border-radius:18px;overflow:hidden}.ai-employee-modal-head{align-items:flex-start}.ai-employee-modal-head span{display:block;color:var(--green-d);font-size:9.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.ai-employee-modal-head h3{margin:2px 0 0;font-size:20px}.ai-employee-modal-body{overflow:auto;padding:20px 22px;background:#f8faf9}
.ai-employee-profile-hero{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:start;gap:18px;padding:16px;border:1px solid #dbe6e0;border-radius:14px;background:#fff}.ai-employee-profile-hero>img{width:112px;height:112px;border-radius:50%;border:1px solid #d6e0e5;object-fit:cover}.ai-employee-profile-hero h4{margin:10px 0 5px;font-size:17px}.ai-employee-profile-hero p{margin:0;color:#536478;font-size:12px;line-height:1.55}
.ai-employee-profile-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:12px 0 0}.ai-employee-profile-fields>div{padding:10px 11px;border:1px solid #e0e7eb;border-radius:10px;background:#fff}.ai-employee-profile-fields dt{color:#7d8a9b;font-size:9.5px;font-weight:750;text-transform:uppercase}.ai-employee-profile-fields dd{margin:4px 0 0;color:#334155;font-size:11.5px;line-height:1.4}
.ai-employee-character{margin-top:12px;padding:12px 13px;border-left:3px solid #a8d5b5;background:#fff}.ai-employee-character span{color:#5e6f82;font-size:9.5px;font-weight:800;text-transform:uppercase}.ai-employee-character p{margin:4px 0 0;color:#425469;font-size:11.5px;line-height:1.5}.ai-employee-disclosure{margin-top:12px;padding:9px 11px;border-radius:9px;background:#eef5f1;color:#526c5c;font-size:10.5px;line-height:1.45}.ai-employee-modal-foot{justify-content:flex-end;gap:8px}.ai-employee-modal-foot a{text-decoration:none}
/* Бригада в реестре сотрудников (по аналогии со «Сделкой» в договорах) */
.employee-brigade-row{background:#f6fbfd}.employee-brigade-row:hover,.employee-brigade-row:focus{background:#eef7fb;box-shadow:inset 3px 0 0 #2563eb}
.employee-brigade-caret{color:#2563eb;font-size:11px;line-height:1;flex:0 0 auto}.employee-brigade-avatar{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}
.employee-brigade-name{flex:1 1 auto;min-width:0}.employee-brigade-name>b{display:flex;align-items:center;gap:6px;min-width:0}.employee-brigade-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.employee-brigade-badge{display:inline-flex;align-items:center;padding:1px 7px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:10px;font-weight:800;vertical-align:middle;flex:0 0 auto}
.employee-brigade-detail-row>td{background:#f4f9fc;border-top:0}.employee-brigade-detail{padding:8px 14px 12px 48px}
.employee-brigade-detail-head{font-size:11px;font-weight:800;color:#1d4ed8;letter-spacing:.03em;margin-bottom:6px}
.employee-brigade-members{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}
.employee-brigade-member{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:5px 9px;border-radius:8px;background:#fff;border:1px solid #e2ecf3}
.employee-brigade-member-name{font-size:12px;font-weight:650}.employee-brigade-member-share{font-size:10.5px;color:var(--muted)}
.employee-brigade-detail-note{font-size:11px;color:var(--muted);line-height:1.45}

.employee-profile-modal-bg{z-index:1250}.employee-profile-modal{width:min(880px,calc(100vw - 32px));max-width:880px;max-height:calc(100vh - 32px);display:flex;flex-direction:column;border-radius:18px;overflow:hidden}
.employee-modal-head{align-items:flex-start}.employee-modal-head h3{margin:0;font-size:20px}.employee-modal-head p{margin:4px 0 0;color:var(--muted);font-size:11px}.employee-modal-body{overflow:auto;padding:0;background:#f8faf9}
.employee-form-section{background:#fff;border-bottom:1px solid var(--border);padding:18px 22px}.employee-form-section:last-child{border-bottom:0}.employee-form-section-title{display:flex;align-items:center;gap:10px;margin-bottom:14px}.employee-form-section-title>span{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#eaf8ee;color:var(--green-d);font-size:11px;font-weight:850}.employee-form-section-title b{display:block;font-size:13px}.employee-form-section-title small{display:block;color:var(--muted);font-size:10.5px;margin-top:2px}
.employee-person-choice{display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);gap:10px;align-items:end}.employee-choice-divider{display:flex;align-items:center;justify-content:center;height:38px;color:var(--muted);font-size:10px}.employee-person-readonly{display:grid;grid-template-columns:100px 1fr;gap:4px 12px;padding:12px 14px;border:1px solid #d8ebe0;border-radius:11px;background:#f7fcf8}.employee-person-readonly span{color:var(--muted);font-size:11px}.employee-person-readonly b{font-size:13px}.employee-person-readonly small{grid-column:2;color:var(--muted);font-size:10.5px}
.employee-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.employee-form-section .field>span{display:block;font-size:10.5px;font-weight:700;color:#52627a;margin-bottom:5px}.employee-salary-types-head{display:flex;justify-content:space-between;align-items:flex-end;margin:18px 0 8px}.employee-salary-types-head b{display:block;font-size:12px}.employee-salary-types-head small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.employee-salary-types-head button{border:0;background:transparent;color:var(--green-d);font-size:10.5px;font-weight:700;cursor:pointer;padding:4px 7px}
.employee-salary-selection{grid-column:1/-1;padding:12px 14px;border:1px solid #d8ebe0;border-radius:11px;background:#f7fcf8}.employee-salary-selection .employee-salary-types-head{align-items:center;margin:0 0 9px}.employee-salary-selection .employee-salary-types-head>div:last-child{display:flex;gap:3px;flex-wrap:wrap;justify-content:flex-end}.employee-salary-selection>p{margin:9px 0 0;color:var(--muted);font-size:10px;line-height:1.4}.employee-salary-type-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.employee-salary-type-option{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:8px;min-width:0;padding:9px 10px;border:1px solid #dce8e0;border-radius:9px;background:#fff;cursor:pointer}.employee-salary-type-option:hover{border-color:#a8d8b8}.employee-salary-type-option:has(input:checked){border-color:#98d5ab;background:#f0faf3}.employee-salary-type-option input{width:16px;height:16px;margin:1px 0 0;accent-color:var(--green);cursor:pointer}.employee-salary-type-option b{display:block;font-size:11px;line-height:1.3}.employee-salary-type-option small{display:block;margin-top:3px;color:var(--muted);font-size:9px;font-weight:400;line-height:1.35}
.employee-salary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-salary-card span{display:block}.employee-salary-card b{display:block;font-size:11.5px}.employee-salary-card small{display:block;color:var(--muted);font-size:9.5px;line-height:1.35;margin-top:3px;font-weight:400}.employee-note-field{margin-top:12px}.employee-note-field textarea{width:100%;resize:vertical}
.employee-expense-actions-section{background:linear-gradient(135deg,#fbfffc,#fff)}
.employee-expense-account{display:flex;align-items:center;gap:8px;margin:-2px 0 10px;color:var(--muted);font-size:10.5px}.employee-expense-account b{color:var(--text);font-size:11.5px}
.employee-expense-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.employee-expense-action-card{display:grid;grid-template-columns:32px minmax(0,1fr);min-height:72px;border:1px solid var(--border);border-radius:10px;background:#fff;overflow:hidden;cursor:pointer}.employee-expense-action-card:hover{border-color:#a8d8b8}.employee-expense-action-card.is-enabled{background:#f5fcf7}.employee-expense-action-card.is-active{border-color:var(--green);background:var(--green-l);box-shadow:inset 0 0 0 1px rgba(22,163,74,.08)}
.employee-expense-action-card-toggle{display:flex;align-items:flex-start;justify-content:center;padding:12px 0;cursor:pointer}.employee-expense-action-card-toggle input{width:16px;height:16px;margin:0;accent-color:var(--green);cursor:pointer}.employee-expense-action-card-open{display:block;min-width:0;padding:10px 10px 10px 0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.employee-expense-action-card-open:focus-visible{outline:2px solid var(--green);outline-offset:-3px;border-radius:7px}.employee-expense-action-card span{min-width:0}.employee-expense-action-card b{display:block;font-size:11.5px;line-height:1.25}.employee-expense-action-card small{display:block;margin-top:3px;color:var(--muted);font-size:9.5px;line-height:1.35}
.employee-expense-action-panel{margin-top:12px;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:#f8faf9}.employee-expense-action-panel[hidden]{display:none}
.employee-expense-article-settings{margin-top:0}.employee-expense-article-settings[hidden]{display:none}
.employee-expense-subhead{display:flex;align-items:center;justify-content:space-between;gap:14px}.employee-expense-subhead b,.employee-expense-salary-head b{display:block;font-size:11.5px}.employee-expense-subhead small{display:block;margin-top:2px;color:var(--muted);font-size:9.5px}.employee-expense-subhead select{width:auto;min-width:220px;height:34px;padding:5px 30px 5px 9px;font-size:10.5px}
.employee-expense-article-custom{margin-top:9px}.employee-expense-article-custom[hidden]{display:none}.employee-expense-article-custom .checkbox-list{max-height:260px}.employee-expense-empty{padding:8px;color:var(--muted);font-size:10.5px}
.employee-expense-account-missing{display:flex;flex-direction:column;gap:3px;padding:11px 12px;border:1px dashed #c7d2df;border-radius:10px;background:#f8fafc}.employee-expense-account-missing b{font-size:11.5px}.employee-expense-account-missing span{color:var(--muted);font-size:10.5px;line-height:1.4}
.employee-expense-salary-head{padding-top:2px}.employee-expense-transfer-note{display:flex;flex-direction:column;gap:4px;margin-top:11px;padding:10px 11px;border-left:3px solid #b8dec5;background:#fff}.employee-expense-transfer-note b{font-size:11px}.employee-expense-transfer-note span{color:var(--muted);font-size:10px;line-height:1.45}
.employee-salary-recipient-settings{margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.employee-salary-recipient-settings .employee-salary-types-head{margin-top:0}.employee-salary-recipient-settings .employee-salary-types-head small{max-width:620px}
.employee-access-section{background:linear-gradient(135deg,#fbfcfd,#f7faf8)}.employee-access-note{padding:10px 12px;border-left:3px solid #b8dec5;background:#fff;color:#52627a;font-size:10.5px;line-height:1.45;margin-bottom:12px}.employee-modal-message{padding:10px 12px;margin:14px 22px 0;border-radius:9px;font-size:12px}.employee-modal-error{background:var(--red-l);color:var(--red)}
.employee-modal-foot{justify-content:space-between}.employee-modal-foot>div{display:flex;align-items:center;gap:8px}.employee-archive-btn{color:#b45309!important}

/* Users is the access registry; this link exposes the independent employee profile. */
.user-employee-link{display:inline-flex;align-items:center;margin-top:4px;padding:0;border:0;background:transparent;color:var(--green-d);font:inherit;font-size:10.5px;font-weight:700;cursor:pointer;text-align:left}
.user-employee-link:hover{text-decoration:underline}.user-employee-link:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:3px}
.user-access-only{margin-top:4px;color:var(--muted);font-size:10.5px}
.user-employee-access-link{padding:10px 12px;border:1px solid #d8ebe0;border-radius:10px;background:#f7fcf8;color:#52627a;font-size:10.5px;line-height:1.45}
.user-employee-access-link b{display:block;color:var(--text);font-size:11.5px;margin-bottom:2px}

@media (max-width:1100px){.employee-registry-toolbar{grid-template-columns:1fr auto}.employee-registry-filters{grid-column:1/-1;justify-content:flex-start;flex-wrap:wrap}}
@media (max-width:840px){.ai-team-grid{grid-template-columns:1fr}.ai-system-bot-card{grid-template-columns:56px minmax(0,1fr) auto}.ai-system-bot-open{grid-column:2;justify-self:start;padding-left:0}.ai-team-intro{align-items:flex-start;flex-direction:column}.ai-team-saved-mark{margin-top:0}}
@media (max-width:720px){.employees-page-head{align-items:flex-start;flex-direction:column}.employees-add-button{width:100%}.employee-section-tabs{width:100%}.employee-section-tabs button{min-width:0;flex:1}.employee-kpi-strip,.ai-team-summary{grid-template-columns:1fr}.employee-kpi-strip>div,.employee-kpi-strip>div:last-child{border:1px solid var(--border)}.employee-registry-toolbar{display:flex;align-items:stretch;flex-direction:column}.employee-registry-filters{display:grid;grid-template-columns:1fr}.employee-search-control{max-width:none}.employee-registry-filters select{width:100%}.ai-system-bot-card{grid-template-columns:48px minmax(0,1fr);align-items:start}.ai-system-bot-avatar{width:48px;height:48px}.ai-system-bot-card>.ai-employee-status{grid-column:2;justify-self:start}.ai-system-bot-open{grid-column:2}.ai-employee-card{grid-template-columns:56px minmax(0,1fr);padding:12px}.ai-employee-avatar-button{width:56px;height:56px}.ai-employee-card-head{flex-direction:column}.ai-employee-status{max-width:none}.employee-profile-modal,.ai-employee-profile-modal{width:100vw;max-width:none;max-height:100vh;height:100vh;border-radius:0}.ai-employee-profile-hero{grid-template-columns:76px minmax(0,1fr);gap:12px;padding:12px}.ai-employee-profile-hero>img{width:76px;height:76px}.ai-employee-profile-fields{grid-template-columns:1fr}.employee-person-choice,.employee-form-grid,.employee-salary-grid,.employee-expense-action-grid,.employee-salary-type-grid{grid-template-columns:1fr}.employee-salary-selection .employee-salary-types-head{align-items:flex-start;flex-direction:column}.employee-salary-selection .employee-salary-types-head>div:last-child{justify-content:flex-start}.employee-expense-subhead{align-items:stretch;flex-direction:column}.employee-expense-subhead select{width:100%}.employee-choice-divider{height:18px}.employee-modal-foot{align-items:stretch;flex-direction:column-reverse}.employee-modal-foot>div{width:100%}.employee-modal-foot .btn,.ai-employee-modal-foot .btn{flex:1}}
@media (prefers-reduced-motion:reduce){.employee-registry-row{transition:none}}
.paynext-shell{display:flex;flex-direction:column;gap:14px;min-width:0}
.paynext-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:16px 18px;border:1px solid #dbe7f3;border-radius:12px;background:linear-gradient(135deg,#f8fbff 0%,#f2f8f6 100%)}
.paynext-toolbar h3{margin:2px 0 3px;font-size:var(--ui-font-section-title);line-height:1.2;color:#16324f}.paynext-toolbar p{margin:0;color:var(--muted);font-size:var(--ui-font-meta)}
.paynext-eyebrow{font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#2d7b68}.paynext-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.paynext-status{display:inline-flex;align-items:center;min-height:24px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:800;border:1px solid #dbe4f0;background:#fff;color:#64748b}
.paynext-status.ok{color:#166534;border-color:#86efac;background:#f0fdf4}.paynext-status.warn{color:#92400e;border-color:#fcd34d;background:#fffbeb}.paynext-status.active{color:#075985;border-color:#7dd3fc;background:#f0f9ff}
.paynext-period-selectors{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.paynext-period-selectors label{display:flex;flex-direction:column;gap:4px}.paynext-period-selectors label span{font-size:10px;font-weight:800;text-transform:uppercase;color:#64748b}.paynext-period-selectors select{height:36px;min-width:112px;padding:0 28px 0 10px;border:1px solid #cfdbe8;border-radius:8px;background:#fff;color:#16324f;font:inherit;font-size:12px;font-weight:700}
.paynext-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.paynext-kpis article{display:flex;flex-direction:column;justify-content:center;gap:3px;min-width:0;height:var(--ui-kpi-height);min-height:var(--ui-kpi-height);padding:var(--ui-card-padding-y) var(--ui-card-padding-x);border:1px solid var(--border);border-radius:var(--ui-radius-control);background:var(--card);box-shadow:var(--shadow);container-type:inline-size;overflow:hidden}.paynext-kpis article span{max-width:100%;overflow:hidden;font-size:clamp(10px,5cqw,12px);font-weight:700;line-height:1.1;text-transform:uppercase;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.paynext-kpis article b{max-width:100%;overflow:hidden;font-size:clamp(18px,11cqw,26px);line-height:1.25;color:#183854;white-space:nowrap;text-overflow:ellipsis}.paynext-kpis article small{max-width:100%;overflow:hidden;font-size:clamp(10px,5cqw,12px);color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.paynext-kpis article.warn,.paynext-kpis article.ok{border-color:var(--border);background:var(--card)}.paynext-kpis article.warn b{color:#a15809}.paynext-kpis article.ok b{color:#17684e}
.paynext-card{min-width:0;padding:15px 16px;border:1px solid #dce6f0;border-radius:11px;background:#fff;box-shadow:0 3px 12px rgba(35,57,81,.04)}.paynext-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.paynext-card-head>div{display:flex;flex-direction:column;gap:2px;min-width:0}.paynext-card-head span{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#71869b}.paynext-card-head b{font-size:15px;color:#183854}.paynext-card-head small{font-size:10px;color:#91a0af;white-space:nowrap}
.paynext-lifecycle-card{padding-bottom:13px}.paynext-lifecycle{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid #dce6f0;border-radius:9px;overflow:hidden}.paynext-life-step{position:relative;display:flex;flex-direction:column;gap:5px;min-width:0;padding:10px 12px;border-right:1px solid #e5edf5;background:#fbfdff}.paynext-life-step:last-child{border-right:0}.paynext-life-step span{font-size:10px;font-weight:700;color:#70859a}.paynext-life-step b{font-size:13px;color:#25435f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.paynext-life-step.remaining{background:#f2f8f6}.paynext-life-step.remaining b{color:#17684e}
.paynext-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px}.paynext-readiness{display:flex;flex-direction:column;border-top:1px solid #edf2f7}.paynext-readiness>div{display:grid;grid-template-columns:10px minmax(0,1fr) auto minmax(86px,auto);align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #edf2f7;font-size:12px}.paynext-readiness b{font-variant-numeric:tabular-nums;color:#183854}.paynext-readiness small{text-align:right;color:#8292a2}.paynext-dot{width:8px;height:8px;border-radius:50%;background:#cbd5e1}.paynext-dot.ok{background:#2c9b72;box-shadow:0 0 0 3px #e7f7ef}.paynext-dot.warn{background:#e0a11b;box-shadow:0 0 0 3px #fff4d7}
.paynext-card-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.paynext-actions-stack{align-items:stretch}.paynext-inline-result{font-size:11px;color:#527087}
.paynext-exception-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.paynext-exception-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid #e5edf5;border-radius:8px;background:#fbfdff;font-size:12px;color:#5f7489}.paynext-exception-list b{min-width:24px;text-align:center;padding:2px 7px;border-radius:999px;background:#edf2f7;color:#5f7489}.paynext-exception-list .has-items{border-color:#f1d090;background:#fffaf0;color:#8b580c}.paynext-exception-list .has-items b{background:#f7dca3;color:#7c4904}
.paynext-metric-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #edf2f7;font-size:12px;color:#63788d}.paynext-metric-row b{color:#183854}.paynext-metric-row b.bad{color:#b45309}.paynext-reconcile{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border-radius:8px;background:#f0fdf4;color:#166534;font-size:12px}.paynext-reconcile.bad{background:#fff4f2;color:#b42318}.paynext-audit-result{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid #edf2f7}.paynext-audit-result span{font-size:11px;color:#64748b}.paynext-audit-result b{color:#183854}
.paynext-coverage-list{display:flex;flex-direction:column;margin-top:9px;border-top:1px solid #edf2f7}.paynext-coverage-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid #edf2f7;min-width:0}.paynext-coverage-list span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#526b82}.paynext-coverage-list span b{color:#183854}.paynext-coverage-list small{flex-shrink:0;font-size:10px;color:#9a6a19}.paynext-coverage-list .paynext-coverage-more,.paynext-empty-inline{justify-content:flex-start;border-bottom:0;font-size:10px;color:#8292a2}
.paynext-forecast-card{grid-column:1/-1}.paynext-forecast-buckets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.paynext-forecast-buckets>div{display:flex;flex-direction:column;gap:3px;padding:11px 12px;border:1px solid #dce6f0;border-radius:8px;background:#f8fbfd}.paynext-forecast-buckets span{font-size:10px;font-weight:800;text-transform:uppercase;color:#6f8498}.paynext-forecast-buckets b{font-size:16px;color:#183854}.paynext-forecast-buckets small,.paynext-forecast-note{font-size:10px;color:#8292a2}.paynext-forecast-note{margin:9px 0 0}
.paynext-employees-card{padding-bottom:8px}.paynext-table-scroll{overflow:auto}.paynext-table{width:100%;border-collapse:collapse;min-width:760px}.paynext-table th{padding:8px 10px;border-bottom:1px solid #dce6f0;background:#f8fafc;text-align:left;font-size:10px;text-transform:uppercase;color:#6d8195}.paynext-table td{padding:10px;border-bottom:1px solid #edf2f7;font-size:12px;color:#455f77}.paynext-table td>b{color:#183854}.paynext-table td small{display:block;margin-top:2px;color:#91a0af}.paynext-table .num{text-align:right;font-variant-numeric:tabular-nums}.paynext-row-status{display:inline-flex;padding:3px 7px;border-radius:999px;background:#eef4f8;color:#547086;font-size:10px;font-weight:700}
.paynext-loading,.paynext-error{display:flex;align-items:center;justify-content:center;gap:10px;min-height:180px;border:1px dashed #cddbe8;border-radius:11px;background:#fbfdff;color:#63788d;font-size:13px}.paynext-error{flex-direction:column;text-align:center}.paynext-error b{color:#23415e}.paynext-spinner{width:17px;height:17px;border:2px solid #cbdce7;border-top-color:#2d7b68;border-radius:50%;animation:paynext-spin .7s linear infinite}@keyframes paynext-spin{to{transform:rotate(360deg)}}
@media(max-width:1050px){.paynext-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.paynext-lifecycle{grid-template-columns:repeat(4,minmax(0,1fr))}.paynext-life-step{border-bottom:1px solid #e5edf5}.paynext-life-step:nth-child(4){border-right:0}}
@media(max-width:760px){.paynext-toolbar{align-items:stretch;flex-direction:column}.paynext-period-selectors{width:100%}.paynext-period-selectors label{flex:1}.paynext-period-selectors select{width:100%}.paynext-grid{grid-template-columns:1fr}.paynext-lifecycle{grid-template-columns:repeat(2,minmax(0,1fr))}.paynext-kpis{grid-template-columns:1fr}.paynext-exception-list{grid-template-columns:1fr}.paynext-forecast-card{grid-column:auto}.paynext-forecast-buckets{grid-template-columns:1fr}.paynext-coverage-list>div{align-items:flex-start;flex-direction:column;gap:2px}.paynext-coverage-list small{flex-shrink:1}}

/* ===== Каталог расценок и операций (Gectaro-блок, фаза 1) ===== */
.cat-loading{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--muted);font-size:14px}
.cat-muted{color:var(--muted)}
.cat-tabs{display:flex;gap:6px;margin:0 0 14px}
.cat-tab{padding:8px 18px;border:1px solid var(--border);background:var(--card);border-radius:9px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer}
.cat-tab.active{background:var(--green);border-color:var(--green);color:#fff}
.cat-layout{display:flex;gap:16px;align-items:flex-start}
.cat-tree{flex:0 0 250px;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:8px;box-shadow:var(--shadow);position:sticky;top:14px}
.cat-tree-head{display:flex;align-items:center;justify-content:space-between;padding:4px 6px 8px;font-size:13px}
.cat-tree-empty{padding:10px 8px;color:var(--muted);font-size:12px}
.cat-folder{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;text-align:left;padding:8px 10px;border:0;background:none;border-radius:8px;cursor:pointer;font-size:13px;color:var(--text)}
.cat-folder:hover{background:var(--green-bg)}
.cat-folder.active{background:var(--green-l);color:var(--green-d);font-weight:600}
.cat-folder-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-folder-count{flex:0 0 auto;color:var(--muted);font-size:11px;background:var(--bg);border-radius:20px;padding:1px 8px}
.cat-folder.active .cat-folder-count{background:#fff}
.cat-folder-row{display:flex;align-items:center;gap:2px}
.cat-folder-row .cat-folder{flex:1 1 auto;min-width:0}
.cat-folder-acts{display:none;flex:0 0 auto;gap:2px;padding-right:4px}
.cat-folder-row:hover .cat-folder-acts{display:flex}
.cat-main{flex:1 1 auto;min-width:0}
.cat-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.cat-search{flex:1 1 220px;min-width:160px;padding:9px 12px;border:1px solid var(--border);border-radius:9px;font-size:13px}
.cat-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}
.cat-mini-btn{width:26px;height:26px;border:1px solid var(--border);background:var(--card);border-radius:7px;cursor:pointer;color:var(--muted);font-size:14px;line-height:1;display:inline-flex;align-items:center;justify-content:center}
.cat-mini-btn:hover{border-color:var(--red);color:var(--red)}
.cat-count,.cat-tree .cat-folder-count{font-size:12px;color:var(--muted)}
.cat-empty{padding:36px 20px;text-align:center;color:var(--muted);font-size:13px;border:1px dashed var(--border);border-radius:12px;background:var(--card)}
.cat-table{width:100%;border-collapse:collapse;font-size:13px}
.cat-table th{text-align:left;padding:9px 12px;color:var(--muted);font-weight:600;font-size:12px;border-bottom:1px solid var(--border);white-space:nowrap}
.cat-table th.num,.cat-table td.num{text-align:right}
.cat-table td{padding:9px 12px;border-bottom:1px solid var(--bg)}
.cat-row{cursor:pointer}
.cat-row:hover{background:var(--green-bg)}
.cat-row--archived{opacity:.55}
.cat-name{font-weight:500;max-width:420px}
.cat-strong{font-weight:700;color:var(--green-d)}
.cat-actions{width:44px}
.cat-tag{font-size:10px;background:var(--amber-l);color:var(--amber);border-radius:6px;padding:1px 6px;margin-left:6px;vertical-align:middle}
.cat-badge{display:inline-block;min-width:40px;text-align:center;font-size:10px;font-weight:700;letter-spacing:.02em;border-radius:6px;padding:2px 7px}
.cat-badge--material{background:#DBEAFE;color:#1D4ED8}
.cat-badge--labor{background:#DCFCE7;color:#15803D}
.cat-badge--mechanism{background:#FEF3C7;color:#B45309}
.cat-badge--contractor{background:#FCE7F3;color:#BE185D}
.cat-badge--overhead{background:#E5E7EB;color:#4B5563}
.cat-badge--other{background:#F1F5F9;color:#64748B}
.cat-err{display:none;padding:10px 12px;background:var(--red-l);color:var(--red);border-radius:8px;margin-bottom:14px;font-size:13px}
.cat-check{flex-direction:row!important;align-items:center;gap:8px}
.cat-check input{width:auto;min-width:auto}
.cat-del-btn{color:var(--red);margin-right:auto}
.btn-sm{padding:5px 12px;font-size:12px}
.cat-hint-sm{font-size:11px;color:var(--muted);margin-top:4px}
/* редактор состава операции */
.cat-tpl-comp{border:1px solid var(--border);border-radius:11px;padding:12px;margin:6px 0 14px}
.cat-tpl-comp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.cat-tpl-res-headrow,.cat-tpl-res{display:grid;grid-template-columns:1fr 110px 150px 30px;gap:8px;align-items:center}
.cat-tpl-res-headrow{font-size:11px;color:var(--muted);padding:0 2px 6px}
.cat-tpl-res{margin-bottom:6px}
.cat-tpl-res select,.cat-tpl-res input{padding:7px 9px;border:1px solid var(--border);border-radius:8px;font-size:12px;width:100%}
.cat-tpl-res-sum{font-size:12px;color:var(--muted);text-align:right;white-space:nowrap}
.cat-tpl-totals{margin-top:8px;padding-top:8px;border-top:1px dashed var(--border);font-size:13px;text-align:right}
/* импорт */
.cat-imp-hint{font-size:12px;color:var(--muted);margin:8px 0}
.cat-imp-map{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:10px 0}
.cat-imp-col{border:1px solid var(--border);border-radius:9px;padding:8px}
.cat-imp-col-head{font-size:11px;color:var(--muted);margin-bottom:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-imp-map-sel{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:7px;font-size:12px}
.cat-imp-col-sample{font-size:11px;color:var(--text);margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-imp-table-wrap{max-height:280px;overflow:auto;border:1px solid var(--border);border-radius:9px;margin-top:8px}
.cat-imp-table{width:100%;border-collapse:collapse;font-size:12px}
.cat-imp-table th,.cat-imp-table td{padding:5px 8px;border-bottom:1px solid var(--bg);text-align:left;white-space:nowrap}
.cat-imp-table thead th{position:sticky;top:0;background:var(--card);color:var(--muted);z-index:1}
.cat-imp-headrow{background:var(--green-bg);font-weight:600}
.cat-imp-check{width:34px;text-align:center}
.cat-imp-result{margin-top:12px;padding:10px 12px;background:var(--green-l);color:var(--green-d);border-radius:8px;font-size:13px}
.cat-imp-errs{margin-top:6px;color:var(--red);font-size:12px}
/* Папки: хлебная крошка + действия (Gectaro-стиль) */
.cat-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;flex-wrap:wrap}
.cat-crumbs{display:flex;align-items:center;gap:6px;min-width:0}
.cat-crumb-ico{font-size:15px;opacity:.7}
.cat-crumb-select{max-width:340px;padding:8px 30px 8px 10px;border:1px solid var(--border);border-radius:9px;background:var(--card);font-size:13px;font-weight:600;color:var(--text);cursor:pointer}
.cat-crumb-new{border:0;background:none;color:var(--green-d);font-size:12px;font-weight:600;cursor:pointer;padding:6px 8px;border-radius:7px;white-space:nowrap}
.cat-crumb-new:hover{background:var(--green-bg)}
.cat-bar-actions{display:flex;align-items:center;gap:8px;flex:1 1 240px;justify-content:flex-end;min-width:180px}
.cat-actionbar{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
/* Разворачиваемая таблица операций (операция → ресурсы) */
.cat-op-table{width:100%;border-collapse:collapse;font-size:13px}
.cat-op-table th{text-align:left;padding:9px 12px;color:var(--muted);font-weight:600;font-size:12px;border-bottom:1px solid var(--border);white-space:nowrap}
.cat-op-table th.num,.cat-op-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.cat-op-table td{padding:9px 12px;border-bottom:1px solid var(--bg);vertical-align:middle}
.cat-op-table .cat-op-name{text-align:left;max-width:520px}
.cat-op-row{cursor:pointer}
.cat-op-row>td{border-bottom:1px solid var(--border)}
.cat-op-row:hover{background:var(--green-bg)}
.cat-op-row b{font-weight:650}
.cat-op-row--open,.cat-op-row--open:hover{background:var(--green-l)}
.cat-caret{display:inline-block;width:14px;color:var(--muted);font-size:11px;margin-right:6px}
.cat-op-acts{display:none;gap:4px;margin-left:10px}
.cat-op-row:hover .cat-op-acts{display:inline-flex}
.cat-res-row{background:#fbfdfc}
.cat-res-row:hover{background:#f5faf7}
.cat-res-name{padding-left:34px!important}
.cat-res-name .cat-badge{margin-right:8px;vertical-align:middle}
.cat-res-name>span{vertical-align:middle}
.cat-res-empty td{color:var(--muted);padding-left:34px!important}
.cat-res-add td{padding:6px 12px 10px 34px;border-bottom:1px solid var(--border);background:#fbfdfc}
.cat-linkbtn{border:0;background:none;color:var(--green-d);font-size:12px;font-weight:600;cursor:pointer;padding:2px 0}
.cat-linkbtn:hover{text-decoration:underline}
.cat-rate-table .cat-res-name{padding-left:12px!important}
.cat-inline-add{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cat-inline-add .cat-inline-rate{flex:1 1 320px;min-width:200px;max-width:520px;padding:6px 9px;border:1px solid var(--border);border-radius:8px;font-size:12px}
.cat-inline-add .cat-inline-qty{width:120px;padding:6px 9px;border:1px solid var(--border);border-radius:8px;font-size:12px}
/* Редактор сметы (фаза 2c) */
.est-econ{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 14px}
.est-econ-cell{display:flex;min-width:0;height:var(--ui-kpi-height);min-height:var(--ui-kpi-height);padding:var(--ui-card-padding-y) var(--ui-card-padding-x);border:1px solid var(--border);border-radius:var(--ui-radius-control);background:var(--card);box-shadow:var(--shadow);container-type:inline-size;flex-direction:column;justify-content:center;gap:3px;overflow:hidden}
.est-econ-cell span{max-width:100%;overflow:hidden;font-size:clamp(10px,5cqw,12px);line-height:1.1;color:var(--muted);font-weight:700;text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap}
.est-econ-cell b{max-width:100%;overflow:hidden;font-size:clamp(18px,11cqw,26px);line-height:1.25;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}
.est-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.est-kind{display:inline-block;font-size:10px;font-weight:700;border-radius:6px;padding:2px 7px;background:var(--bg);color:var(--muted);vertical-align:middle;margin-left:6px}
.est-kind--prop{background:#DBEAFE;color:#1D4ED8}
.est-kind--actual{background:#EDE9FE;color:#6D28D9}
.est-status{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700;white-space:nowrap}
.est-status--draft,.est-status--muted{background:#F1F5F9;color:#475569}
.est-status--presented{background:#FEF3C7;color:#92400E}
.est-status--accepted{background:#DCFCE7;color:#166534}
.est-status--cancelled{background:#FEE2E2;color:#991B1B}
.est-filter-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 10px}
.est-filter-chip{display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:5px 10px;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--muted);font:inherit;font-size:12px;font-weight:650;cursor:pointer}
.est-filter-chip b{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--bg);color:var(--text);font-size:11px}
.est-filter-chip:hover,.est-filter-chip.active{border-color:#A78BFA;background:#F5F3FF;color:#5B21B6}
.est-filter-chip.active b{background:#7C3AED;color:#fff}
/* задачник «смете не хватает ресурсных строк» */
.est-econ--three{grid-template-columns:repeat(3,minmax(0,1fr))}
.est-debt-btn{display:inline-flex;align-items:center;gap:7px}
.est-debt-btn b{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#FEF3C7;color:#92400E;font-size:11px}
.est-debt{display:inline-block;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700;white-space:nowrap}
.est-debt--empty{background:#FEE2E2;color:#991B1B}
.est-debt--partial{background:#FEF3C7;color:#92400E}
.est-debt--suspect{background:#F1F5F9;color:#475569}
.cat-op-sub{margin-top:2px;color:var(--muted);font-size:11px}
.actual-work-flow{margin:0 0 14px;padding:12px 14px;border:1px solid #DDD6FE;border-radius:10px;background:#FAF8FF}
.actual-work-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.actual-work-step{display:flex;align-items:center;gap:8px;min-width:0;color:#94A3B8}
.actual-work-step>span{display:inline-flex;align-items:center;justify-content:center;flex:0 0 26px;width:26px;height:26px;border:1px solid #CBD5E1;border-radius:50%;background:#fff;font-size:11px;font-weight:800}
.actual-work-step div{display:flex;min-width:0;flex-direction:column}
.actual-work-step b{font-size:12px;color:#64748B}
.actual-work-step small{overflow:hidden;font-size:10.5px;text-overflow:ellipsis;white-space:nowrap}
.actual-work-step.is-done>span{border-color:#86EFAC;background:#DCFCE7;color:#166534}
.actual-work-step.is-current>span{border-color:#8B5CF6;background:#7C3AED;color:#fff}
.actual-work-step.is-current b{color:#5B21B6}
.actual-work-flow-note{margin-top:10px;padding-top:9px;border-top:1px solid #EDE9FE;color:#64748B;font-size:12px;line-height:1.4}
.actual-work-flow.is-cancelled{border-color:#FECACA;background:#FEF2F2}
.actual-work-modal-intro{margin-bottom:12px;padding:10px 12px;border:1px solid #DDD6FE;border-radius:8px;background:#FAF8FF;color:#4C1D95;font-size:12px;line-height:1.45}
.est-tree .est-section>td{border-bottom:1px solid var(--border)}
/* Тон строки-работы задан по ячейкам, поэтому селектор должен быть специфичнее
   правила прилипающего последнего столбца — иначе последняя колонка оставалась
   белой и в строке появлялся шов. */
.est-tree tbody tr.est-work>td{background:#fbfdfc}
@media(max-width:760px){.est-econ{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.actual-work-object-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.actual-work-object-grid,.actual-work-steps{grid-template-columns:1fr}.actual-work-step small{white-space:normal}}
/* Снабжение (фаза 3) */
.proc-chips{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}
.proc-chip{padding:6px 12px;border:1px solid var(--border);background:var(--card);border-radius:20px;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer}
.proc-chip.active{background:var(--green);border-color:var(--green);color:#fff}
.proc-status-sel{padding:4px 8px;border:1px solid var(--border);border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;background:var(--card)}
.proc-badge{display:inline-block;font-size:11px;font-weight:700;border-radius:6px;padding:2px 8px}
.proc-auto{display:inline-block;font-size:10px;font-weight:700;color:var(--green-d);background:var(--green-l);border-radius:5px;padding:1px 5px;vertical-align:1px;cursor:help}
/* Стройка (фаза 4): прогресс работ + акты */
.constr-bar{position:relative;width:110px;height:16px;background:#eef2f6;border-radius:8px;overflow:hidden}
.constr-bar i{position:absolute;left:0;top:0;bottom:0;background:var(--green);border-radius:8px}
.constr-bar span{position:relative;font-size:10px;font-weight:700;color:#334155;display:block;text-align:center;line-height:16px}
.constr-subhead{font-size:16px;font-weight:700;margin:18px 0 8px;color:#1e293b}
.constr-entries{display:flex;flex-direction:column;gap:4px;margin-bottom:4px}
.constr-entry{display:flex;gap:10px;align-items:center;font-size:12px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:6px 10px}
.constr-entry b{font-weight:600}
.constr-armed{background:#FEF3C7 !important;border-color:#F59E0B !important;color:#92400E !important}
.cat-fact{font-size:10px;font-weight:600;color:#B45309;white-space:nowrap;margin-top:2px}
.cat-fact .cat-mini-btn{font-size:10px}
.cat-spark{display:block;margin:2px 0 0 auto;opacity:.85}
.est-ai-check{background:#FEF3C7;color:#92400E}
.constr-act--draft{color:#64748b}
.constr-act--signed{color:#1D4ED8}
.constr-act--for_payment{color:var(--green-d)}
.proc-st--planned{color:#64748b}
.proc-st--ordered{color:#1D4ED8}
.proc-st--partial{color:#B45309}
.proc-st--received{color:var(--green-d)}
.proc-st--cancelled{color:#94a3b8;text-decoration:line-through}
/* Гант (фаза 3) — общий виджет для этапов договора и работ сметы.
   Прокрутка: при выбранном масштабе wrap получает --gantt-track (ширина трека в px)
   и класс --scaled; колонка названий липнет слева. Оверлей (.gantt-overlay) повторяет
   геометрию трека — в нём живут линия «сегодня» и SVG стрелок связей. */
.gantt-wrap{--gantt-label:220px;border:1px solid var(--border);border-radius:12px;overflow-x:auto;overflow-y:hidden;background:var(--card);font-size:12px}
.gantt-empty{padding:24px;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:12px}
.gantt-row{display:grid;grid-template-columns:var(--gantt-label) 1fr;align-items:center;min-height:30px}
.gantt-wrap--scaled .gantt-row{min-width:calc(var(--gantt-label) + var(--gantt-track,0px))}
.gantt-head{background:var(--bg);border-bottom:1px solid var(--border);min-height:26px}
.gantt-body{position:relative}
.gantt-body .gantt-row:nth-child(even){background:#fbfdfc}
.gantt-label{padding:5px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-right:1px solid var(--border);position:sticky;left:0;z-index:3;background:var(--card)}
.gantt-head .gantt-label{background:var(--bg)}
.gantt-body .gantt-row:nth-child(even) .gantt-label{background:#fbfdfc}
.gantt-label--sec{font-weight:700}
.gantt-track{position:relative;height:100%;min-height:30px}
.gantt-axis{height:26px}
.gantt-tick{position:absolute;top:6px;font-size:10px;color:var(--muted);white-space:nowrap;border-left:1px solid var(--border);padding-left:4px;height:20px}
.gantt-tick--day{border-left-style:dotted;color:#b0bcb6}
.gantt-bar{position:absolute;top:6px;height:16px;border-radius:5px;background:var(--green);box-shadow:0 1px 3px rgba(22,163,74,.3);overflow:hidden;display:flex;align-items:center}
.gantt-bar--sec{background:#0f766e;top:5px;height:18px}
.gantt-bar--muted{background:#94a3b8;box-shadow:none}
.gantt-bar--stage{background:rgba(15,118,110,.14);border:1px dashed #0f766e;box-shadow:none}
.gantt-bar--stage .gantt-bar-dates{color:#0f766e}
.gantt-done{position:absolute;left:0;top:0;height:100%;background:rgba(0,0,0,.28)}
.gantt-bar-dates{font-size:9px;color:#fff;padding:0 5px;white-space:nowrap;position:relative}
.gantt-nodate{font-size:10px;color:var(--muted);padding-left:8px;line-height:30px}
.gantt-overlay{position:absolute;top:0;bottom:0;left:var(--gantt-label);right:0;pointer-events:none;z-index:2}
.gantt-wrap--scaled .gantt-overlay{right:auto;width:var(--gantt-track,auto)}
.gantt-today{position:absolute;top:0;bottom:0;width:2px;background:var(--red)}
.gantt-links{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.gantt-link{fill:none;stroke:#64748b;stroke-width:1.5;opacity:.75}
.gantt-baseline{position:absolute;bottom:2px;height:3px;border-radius:2px;background:#94a3b8}
.gantt-zoom{display:flex;gap:4px;justify-content:flex-end;margin-bottom:6px}
.gantt-zoom-btn{border:1px solid var(--border);background:var(--card);border-radius:8px;padding:3px 10px;font-size:11px;cursor:pointer;color:var(--muted)}
.gantt-zoom-btn.active{background:var(--green);border-color:var(--green);color:#fff}
@media(max-width:760px){.gantt-wrap{--gantt-label:120px}.gantt-bar-dates{display:none}}
.cd-stage-gantt{margin-top:12px}
.journal-detail-subhead{font-weight:700;font-size:12px;margin:10px 0 6px;color:var(--text)}
@media(max-width:760px){.cat-bar{align-items:stretch;flex-direction:column}.cat-bar-actions{justify-content:flex-start}.cat-crumb-select{max-width:none;flex:1}.cat-body .table-wrap{overflow-x:auto}.cat-op-table{min-width:560px}.cat-op-table thead th{position:static}.cat-op-acts{display:inline-flex}.cat-tpl-res-headrow{display:none}.cat-tpl-res{grid-template-columns:1fr 80px 30px}.cat-tpl-res-sum{display:none}}

/* Contract deadline control: internal plan, contractual dates, facts and responsibility. */
.cd-deadline-control{display:grid;gap:10px;min-width:0}
.cd-deadline-overview{padding:12px;border:1px solid #d9e3df;border-radius:10px;background:linear-gradient(135deg,#f7fbf8,#fff 62%)}
.cd-deadline-overview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.cd-deadline-overview-head>div{display:flex;align-items:center;gap:8px;min-width:0}
.cd-deadline-kicker{color:#26483a;font-size:13px;font-weight:800}
.cd-deadline-factor{padding:3px 7px;border:1px solid #c7ddd1;border-radius:999px;background:#fff;color:#527063;font-size:10px;font-weight:750;white-space:nowrap}
.cd-deadline-overview-actions{justify-content:flex-end;flex-wrap:wrap}
.cd-deadline-risk{display:inline-flex;align-items:center;max-width:100%;padding:3px 8px;border:1px solid #cbd8d1;border-radius:999px;background:#fff;color:#486459;font-size:10px;font-weight:800;white-space:nowrap}
.cd-deadline-risk.is-ok,.cd-deadline-risk.is-done{border-color:#b8dfc6;background:#f1fbf4;color:#18733e}
.cd-deadline-risk.is-attention,.cd-deadline-risk.is-soon{border-color:#efd496;background:#fff8e8;color:#98630e}
.cd-deadline-risk.is-reserve{border-color:#e5b96f;background:#fff5df;color:#9a5300}
.cd-deadline-risk.is-overdue{border-color:#efb1b1;background:#fff1f1;color:#b42323}
.cd-deadline-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.cd-deadline-metric{min-width:0;padding:8px 9px;border:1px solid #e1e8e4;border-radius:8px;background:rgba(255,255,255,.86)}
.cd-deadline-period{display:flex;flex-direction:column;gap:2px;min-width:0}
.cd-deadline-period span{overflow:hidden;color:#20342b;font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}
.cd-deadline-period small{overflow:hidden;color:#7a8c83;font-size:9.5px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.cd-deadline-period.is-contract span{color:#245c43}
.cd-deadline-period.is-fact span{color:#17613b}
.cd-deadline-period.is-missing span{color:#a17124;font-weight:700}
.cd-deadline-reserve{display:flex;flex-direction:column;justify-content:center;gap:2px}
.cd-deadline-reserve>span{color:#17613b;font-size:14px;font-weight:850;font-variant-numeric:tabular-nums}
.cd-deadline-reserve>small{overflow:hidden;color:#7a8c83;font-size:9.5px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.cd-deadline-reserve.is-consumed>span{color:#ad5800}
.cd-deadline-contract-responsible{display:grid;grid-template-columns:minmax(150px,1fr) minmax(240px,2fr);align-items:center;gap:10px;margin-top:9px;padding-top:9px;border-top:1px solid #e1e8e4}
.cd-deadline-contract-responsible>div:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.cd-deadline-contract-responsible b{color:#344b40;font-size:11px}
.cd-deadline-contract-responsible small{overflow:hidden;color:#7a8c83;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.cd-deadline-production-state{display:flex;justify-content:flex-end;margin-top:7px}
.cd-deadline-activation,.cd-deadline-accepted{font-size:10px;font-weight:700}
.cd-deadline-activation{color:#7a8c83}.cd-deadline-accepted{color:#18733e}
.cd-responsibility{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0}
.cd-responsibility-chips{display:flex;align-items:center;justify-content:flex-end;gap:5px;min-width:0;flex-wrap:wrap}
.cd-responsibility-chip{display:flex;flex-direction:column;min-width:0;max-width:190px;padding:4px 7px;border:1px solid #dce5e0;border-radius:7px;background:#fff}
.cd-responsibility-chip>span{overflow:hidden;color:#30483d;font-size:10.5px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}
.cd-responsibility-chip>small{overflow:hidden;color:#7d8e85;font-size:8.5px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}
.cd-responsibility-chip.is-primary{border-color:#bcdac8;background:#f4fbf6}
.cd-responsibility-empty{color:#a15c24;font-size:10px;font-weight:750;white-space:nowrap}
.cd-responsibility-edit{flex:0 0 auto;padding:3px 6px;border:0;background:transparent;color:#47705d;font-size:9px;font-weight:800;cursor:pointer}
.cd-responsibility-edit:hover,.cd-responsibility-edit:focus-visible{border-radius:5px;background:#eaf4ee;color:#17613b;outline:none}
.cd-deadline-table-wrap{border:1px solid #dfe7e2;border-radius:10px;background:#fff;overflow-x:auto}
.cd-deadline-table{width:100%;min-width:930px;border-collapse:collapse;table-layout:fixed}
.cd-deadline-table .cd-dl-col-stage{width:18%}.cd-deadline-table .cd-dl-col-plan{width:25%}.cd-deadline-table .cd-dl-col-fact{width:20%}.cd-deadline-table .cd-dl-col-responsible{width:20%}.cd-deadline-table .cd-dl-col-action{width:17%}
.cd-deadline-table th{padding:7px 9px;border-bottom:1px solid #dfe7e2;background:#f7faf8;color:#6e8177;font-size:9.5px;font-weight:800;letter-spacing:.25px;text-align:left;text-transform:uppercase;white-space:nowrap}
.cd-deadline-table td{padding:8px 9px;border-bottom:1px solid #edf1ef;vertical-align:top}
.cd-deadline-table tbody tr:last-child td{border-bottom:0}
.cd-deadline-table tbody tr:hover td{background:#fbfdfc}
.cd-deadline-stage-title{display:flex;align-items:center;gap:5px;min-width:0;color:#253d32;font-size:11px;font-weight:800}
.cd-deadline-stage-title>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cd-deadline-stage-meta{margin-top:3px;color:#84948c;font-size:9px;line-height:1.25}
.cd-deadline-dates-cell,.cd-deadline-fact-cell{display:grid;gap:5px}
.cd-deadline-dates-cell .cd-deadline-period+.cd-deadline-period{padding-top:4px;border-top:1px dashed #e2e9e5}
.cd-deadline-stage-reserve{color:#5f776c;font-size:9px;font-weight:750}
.cd-deadline-stage-reserve.is-consumed{color:#ad5800}
.cd-deadline-responsible-cell .cd-responsibility{align-items:flex-start;justify-content:flex-start;flex-direction:column}
.cd-deadline-responsible-cell .cd-responsibility-chips{justify-content:flex-start}
.cd-deadline-action-cell{display:grid;justify-items:start;gap:6px}
.cd-deadline-action-cell .btn{max-width:100%;padding:5px 8px;line-height:1.15;white-space:normal;text-align:left}
.cd-stage-action-note{color:#7f8f87;font-size:9.5px;line-height:1.25}
.cd-stage-start-with-warning{display:grid;justify-items:start;gap:6px;max-width:100%}
.cd-stage-action-warning{display:grid;gap:2px;max-width:190px;padding:5px 6px;border:1px solid #e7c784;border-radius:6px;background:#fff8e7;color:#7d4a08;font-size:9px;line-height:1.25}
.cd-stage-action-warning b{font-size:9.5px}.cd-stage-action-warning span{color:#866833}
.cd-stage-fact-done,.cd-stage-fact-active{color:#18733e;font-size:10px;font-weight:800}
.cd-deadline-empty{padding:16px;border:1px dashed #ccd9d2;border-radius:9px;background:#fbfdfc;color:#6f8178;font-size:11px;text-align:center}
.cd-stage-form-dates{display:grid;grid-template-columns:repeat(5,minmax(118px,1fr));gap:8px;margin-bottom:8px}
.cd-stage-form-dates label{display:grid;gap:4px;min-width:0;color:#667a70;font-size:9.5px;font-weight:750}
.cd-stage-form-dates input,.cd-stage-form-dates select{width:100%;min-width:0;padding:6px 7px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);font:inherit;font-size:11px}

/* Responsibility editor. */
.cd-responsibility-modal{display:flex;flex-direction:column;width:min(640px,calc(100vw - 28px));max-height:88vh}
.cd-responsibility-modal .modal-body{overflow-y:auto}
.cd-responsibility-editor-list{display:grid;gap:6px;margin-bottom:12px}
.cd-responsibility-editor-row{display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:center;gap:8px;padding:7px 9px;border:1px solid #dfe7e2;border-radius:8px;background:#fbfdfc}
.cd-responsibility-editor-row>span{display:flex;flex-direction:column;min-width:0}
.cd-responsibility-editor-row b,.cd-responsibility-editor-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cd-responsibility-editor-row b{font-size:12px}.cd-responsibility-editor-row small{color:#74867c;font-size:10px}
.cd-responsibility-editor-row button{width:28px;height:28px;border:0;border-radius:6px;background:transparent;color:#a43c3c;font-size:18px;cursor:pointer}
.cd-responsibility-editor-row button:hover{background:#fff0f0}
.cd-responsibility-editor-empty{padding:12px;border:1px dashed #ccd9d2;border-radius:8px;color:#74867c;font-size:11px;text-align:center}
.cd-responsibility-compensation{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,1.2fr);align-items:end;gap:10px;margin-bottom:10px;padding:10px;border:1px solid #dce6e0;border-radius:9px;background:#f7faf8}
.cd-responsibility-compensation label{display:flex;flex-direction:column;gap:4px;min-width:0}
.cd-responsibility-compensation label>span{color:#667a70;font-size:10px;font-weight:750}
.cd-responsibility-compensation input{width:100%;min-width:0;padding:7px 8px;border:1px solid #cbd8d1;border-radius:7px;background:#fff;color:var(--text)}
.cd-responsibility-compensation input:disabled{background:#f0f4f2;color:#829188}
.cd-responsibility-compensation small{align-self:center;color:#74867c;font-size:11px;line-height:1.35}
.cd-responsibility-editor-form{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(150px,1fr) max-content max-content;align-items:end;gap:8px;padding:10px;border:1px solid #dce6e0;border-radius:9px;background:#f7faf8}
.cd-responsibility-editor-form label:not(.cd-responsibility-primary){display:flex;flex-direction:column;gap:4px;min-width:0}
.cd-responsibility-editor-form label>span{color:#667a70;font-size:10px;font-weight:750}
.cd-responsibility-editor-form select{width:100%;min-width:0;padding:7px 8px;border:1px solid #cbd8d1;border-radius:7px;background:#fff;color:var(--text)}
.cd-responsibility-primary{display:flex;align-items:center;gap:5px;min-height:35px;color:#53695e;font-size:11px;white-space:nowrap}
.cd-responsibility-editor-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}

/* Extra layers in the approved contract registry views. */
.cd-registry-date-stack{display:grid;gap:2px;min-width:0}
.cd-registry-date-stack .contract-inline-date{min-height:28px}
.cd-registry-date-stack .contract-inline-date-button{min-height:28px;padding-top:4px;padding-bottom:4px}
.cd-registry-date-line{display:flex;align-items:baseline;justify-content:space-between;gap:5px;min-width:0;padding:0 7px}
.cd-registry-date-line span{overflow:hidden;color:#526879;font-size:10px;font-weight:750;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}
.cd-registry-date-line small{flex:0 0 auto;color:#8a9aaa;font-size:8.5px;font-weight:700}
.cd-registry-date-line.is-contract span{color:#725717}
.cd-registry-date-line.is-fact span{color:#18733e}
.cd-registry-control-stack{display:grid;gap:4px;min-width:0}
.cd-registry-control-meta{display:flex;align-items:center;gap:4px;min-width:0;flex-wrap:wrap;padding:0 3px;color:#667b70;font-size:8.5px}
.cd-registry-control-meta b{color:#426353;font-size:9px}.cd-registry-control-meta.is-overdue b{color:#b42323}.cd-registry-control-meta.is-reserve b,.cd-registry-control-meta.is-soon b{color:#a15c00}
.cd-registry-control-meta span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Dashboard deadline categories. */
.dashboard-deadline-attention{margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}
.dashboard-deadline-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:9px}
.dashboard-deadline-head>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.dashboard-deadline-head b{color:#233b31;font-size:13px}.dashboard-deadline-head small{color:var(--muted);font-size:10px}
.dashboard-deadline-head>span{flex:0 0 auto;color:#7b6540;font-size:10px;font-weight:750}
.dashboard-deadline-attention.is-clear{padding:11px 0 0}.dashboard-deadline-attention.is-clear .dashboard-deadline-head{margin:0}.dashboard-deadline-attention.is-clear .dashboard-deadline-head>span{color:#18733e}
.dashboard-deadline-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.dashboard-deadline-card{min-width:0;border:1px solid #dfe6e2;border-radius:9px;background:#fff;overflow:hidden}
.dashboard-deadline-card>header{display:flex;align-items:center;justify-content:space-between;gap:5px;min-height:36px;padding:7px 8px;border-bottom:1px solid #e8edea;background:#f8faf9;color:#52665c;font-size:9.5px;font-weight:800}
.dashboard-deadline-card>header span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-deadline-card>header b{flex:0 0 auto;min-width:20px;padding:2px 5px;border-radius:999px;background:#e8efeb;text-align:center}
.dashboard-deadline-card.is-overdue-start>header,.dashboard-deadline-card.is-overdue-finish>header{background:#fff4f4;color:#a92b2b}.dashboard-deadline-card.is-overdue-start>header b,.dashboard-deadline-card.is-overdue-finish>header b{background:#f8dede}
.dashboard-deadline-card.is-reserve-consumed>header,.dashboard-deadline-card.is-due-finish>header{background:#fff9eb;color:#94600d}.dashboard-deadline-card.is-reserve-consumed>header b,.dashboard-deadline-card.is-due-finish>header b{background:#f6e8bd}
.dashboard-deadline-card-body{display:grid;min-height:57px}
.dashboard-deadline-row{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:6px;width:100%;padding:6px 8px;border:0;border-bottom:1px dashed #e4eae7;background:#fff;color:inherit;text-align:left;cursor:pointer}
.dashboard-deadline-row:last-child{border-bottom:0}.dashboard-deadline-row:hover,.dashboard-deadline-row:focus-visible{background:var(--selected-bg);box-shadow:inset 0 0 0 1px #d9e3ef;outline:none}
.dashboard-deadline-row-main,.dashboard-deadline-row-meta{display:flex;flex-direction:column;min-width:0}
.dashboard-deadline-row-main b,.dashboard-deadline-row-main small,.dashboard-deadline-row-meta b,.dashboard-deadline-row-meta small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dashboard-deadline-row-main b{color:#2e443a;font-size:9.5px}.dashboard-deadline-row-main small{color:#74857d;font-size:8.5px}.dashboard-deadline-row-meta{max-width:92px;text-align:right}.dashboard-deadline-row-meta b{color:#53695e;font-size:8.5px}.dashboard-deadline-row-meta small{color:#8b9a93;font-size:8px}
.dashboard-deadline-empty{align-self:center;padding:15px 8px;color:#91a098;font-size:9px;text-align:center}

@media(max-width:1280px){.dashboard-deadline-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.cd-deadline-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:980px){.cd-stage-form-dates{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.cd-deadline-overview-head,.dashboard-deadline-head{align-items:flex-start;flex-direction:column}.cd-deadline-overview-actions{justify-content:flex-start}.cd-deadline-overview-grid,.dashboard-deadline-grid,.cd-stage-form-dates,.contract-foreman-compensation,.cd-responsibility-compensation{grid-template-columns:1fr}.cd-deadline-contract-responsible{grid-template-columns:1fr}.cd-responsibility{align-items:flex-start;justify-content:flex-start;flex-wrap:wrap}.cd-responsibility-chips{justify-content:flex-start}.cd-responsibility-editor-form{grid-template-columns:1fr}.cd-responsibility-editor-actions{flex-wrap:wrap}.dashboard-deadline-row-meta{max-width:110px}}
/* ===== Personal employee dashboard ===== */
.employee-dashboard-head {
  align-items: flex-end;
  margin-bottom: 10px;
}

.employee-dashboard-eyebrow {
  margin-bottom: 5px;
  color: var(--green);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.employee-profile-row {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 18px;
}

.employee-profile-row span {
  padding: 5px 10px;
  border: 1px solid #b9dfc8;
  border-radius: 999px;
  background: #effaf3;
  color: #18723e;
  font-size: 12px;
  font-weight: 700;
}

.employee-finance-strip {
  margin-bottom: 18px;
  padding: 16px 18px 18px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: var(--card);
}

.employee-finance-strip > header h3 {
  margin: 0;
  font-size: 16px;
}

.employee-finance-strip > header p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.employee-finance-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 360px));
  gap: 10px;
  margin-top: 13px;
}

.employee-finance-card {
  min-width: 0;
  min-height: 104px;
  padding: 15px 16px;
  border: 1px solid #d7e5db;
  border-radius: 13px;
  background: #fbfefc;
}

.employee-finance-card small,
.employee-finance-card span {
  display: block;
  color: var(--muted);
}

.employee-finance-card small {
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .02em;
}

.employee-finance-card b {
  display: block;
  overflow: hidden;
  margin: 8px 0 5px;
  color: var(--text);
  font-size: 25px;
  line-height: 1.05;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.employee-finance-card b.is-negative {
  color: var(--red);
}

.employee-finance-card span {
  font-size: 12px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.employee-finance-card.is-piecework {
  border-color: #b9dfc8;
  background: #f7fcf9;
}

.employee-finance-card-button {
  display: flex;
  width: 100%;
  flex-direction: column;
  appearance: none;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}

.employee-finance-card-button:hover {
  transform: translateY(-1px);
  border-color: #75bd90;
  background: #f5fcf8;
  box-shadow: 0 8px 18px rgba(24, 114, 62, .09);
}

.employee-finance-card-button:focus-visible {
  outline: 3px solid rgba(24, 114, 62, .2);
  outline-offset: 2px;
  border-color: #42a96b;
}

.employee-finance-card .employee-finance-card-action {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
  padding-top: 11px;
  color: #18723e;
  font-size: 11px;
  font-weight: 800;
}

.employee-finance-card-action i {
  font-size: 15px;
  font-style: normal;
  line-height: 1;
  transition: transform .16s ease;
}

.employee-finance-card-button:hover .employee-finance-card-action i {
  transform: translateX(3px);
}

.employee-dashboard-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}

.employee-dashboard-kpis article {
  min-height: 126px;
  padding: 18px 20px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background:
    radial-gradient(circle at 90% 0, rgba(33, 157, 88, .11), transparent 42%),
    var(--card);
  box-shadow: 0 8px 24px rgba(25, 45, 34, .05);
}

.employee-dashboard-kpis article.is-danger {
  border-color: #ffc7bd;
  background:
    radial-gradient(circle at 90% 0, rgba(227, 73, 51, .13), transparent 42%),
    #fffaf9;
}

.employee-dashboard-kpis article.is-clear {
  border-color: #c9e8d4;
}

.employee-dashboard-kpis small,
.employee-dashboard-kpis span {
  display: block;
  color: var(--muted);
}

.employee-dashboard-kpis small {
  font-size: 12px;
  font-weight: 700;
}

.employee-dashboard-kpis b {
  display: block;
  margin: 7px 0 3px;
  color: var(--text);
  font-size: 31px;
  line-height: 1;
}

.employee-dashboard-kpis article.is-danger b {
  color: var(--red);
}

.employee-dashboard-kpis span {
  font-size: 12px;
}

.employee-objects-strip {
  margin-bottom: 18px;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: var(--card);
}

.employee-objects-strip > header,
.employee-dashboard-section > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.employee-objects-strip h3,
.employee-dashboard-section h3 {
  margin: 0;
  font-size: 16px;
}

.employee-objects-strip header p,
.employee-dashboard-section header p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.employee-object-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.employee-object-card {
  position: relative;
  display: grid;
  gap: 5px;
  min-height: 112px;
  padding: 15px;
  border: 1px solid #d7e5db;
  border-radius: 13px;
  background: linear-gradient(145deg, #fbfefc, #f2faf5);
  color: var(--text);
  text-align: left;
  cursor: pointer;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.employee-object-card:hover {
  transform: translateY(-2px);
  border-color: #8fd0a7;
  box-shadow: 0 10px 22px rgba(25, 95, 53, .09);
}

.employee-object-card.is-overdue {
  border-color: #ffc6bd;
  background: #fff9f7;
}

.employee-object-card b {
  align-self: end;
  font-size: 15px;
}

.employee-object-card small {
  color: var(--muted);
  font-size: 12px;
}

.employee-object-status {
  width: max-content;
  padding: 3px 7px;
  border-radius: 999px;
  background: #dff5e7;
  color: #18723e;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.employee-dashboard-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  align-items: start;
}

.employee-dashboard-section {
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: var(--card);
  box-shadow: 0 8px 24px rgba(25, 45, 34, .04);
}

.employee-dashboard-section > header {
  padding: 17px 18px 14px;
  border-bottom: 1px solid var(--border);
}

.employee-dashboard-section > header > span {
  flex: 0 0 auto;
  padding: 4px 8px;
  border-radius: 8px;
  background: var(--bg);
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

.employee-task-list {
  display: grid;
}

.employee-task {
  padding: 14px 18px;
  border-bottom: 1px solid var(--border);
}

.employee-task:last-child {
  border-bottom: 0;
}

.employee-task.is-clickable {
  cursor: pointer;
}

.employee-task.is-clickable:hover {
  background: #f8fcf9;
}

.employee-task.is-overdue {
  box-shadow: inset 3px 0 0 var(--red);
}

.employee-task-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 7px;
}

.employee-task-status,
.employee-task-due,
.employee-task-object {
  font-size: 11px;
}

.employee-task-status {
  padding: 3px 7px;
  border-radius: 999px;
  background: #edf3ef;
  color: #476253;
  font-weight: 750;
}

.employee-task-status.is-overdue {
  background: var(--red-l);
  color: var(--red);
}

.employee-task-status.is-done,
.employee-task-status.is-received {
  background: #dff5e7;
  color: #18723e;
}

.employee-task-status.is-in-progress,
.employee-task-status.is-estimating,
.employee-task-status.is-ordered {
  background: #fff1d9;
  color: #9b5a00;
}

.employee-task-due {
  color: #55685d;
  font-weight: 650;
}

.employee-task-due.is-overdue {
  color: var(--red);
}

.employee-task-due.is-muted {
  color: var(--muted);
}

.employee-task h4 {
  margin: 0;
  font-size: 14px;
  line-height: 1.35;
}

.employee-task p {
  display: -webkit-box;
  overflow: hidden;
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.employee-task-object {
  display: inline-block;
  margin-top: 9px;
  color: #236b43;
  font-weight: 700;
}

.employee-dashboard-clear {
  display: grid;
  gap: 4px;
  padding: 24px 18px;
  color: var(--muted);
  text-align: center;
}

.employee-dashboard-clear b {
  color: #2d6845;
  font-size: 13px;
}

.employee-dashboard-clear span {
  font-size: 12px;
}

.employee-dashboard-clear.is-wide {
  grid-column: 1 / -1;
  border: 1px dashed #c9ddd0;
  border-radius: 12px;
  background: #fbfefc;
}

.employee-dashboard-subview {
  min-width: 0;
}

.employee-subview-actions {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.employee-subview-body {
  min-width: 0;
}

.employee-subview-body > .employee-dashboard-clear {
  min-height: 190px;
  align-content: center;
}

.employee-subview-error {
  max-width: 760px;
}

.employee-subview-error .btn {
  margin-top: 12px;
}

.employee-account-kpis,
.employee-piecework-kpis {
  margin-bottom: 16px;
}

.employee-piecework-kpis article.is-attention {
  border-color: #f1d18a;
  background: #fffaf0;
}

.employee-piecework-kpis article.is-attention b {
  color: #98630a;
}

.employee-account-registry {
  overflow-x: auto;
}

.employee-account-registry .table-top {
  min-width: 860px;
}

.employee-account-registry .table-top h3 {
  margin: 0;
}

.employee-account-registry .table-top p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.employee-account-table {
  width: 100%;
  min-width: 860px;
  table-layout: fixed;
}

.employee-account-table th:nth-child(1) {
  width: 116px;
}

.employee-account-table th:nth-child(2) {
  width: auto;
}

.employee-account-table th:nth-child(3) {
  width: 21%;
}

.employee-account-table th:nth-child(4) {
  width: 132px;
}

.employee-account-table th:nth-child(5),
.employee-account-table th:nth-child(6) {
  width: 152px;
}

.employee-account-table td {
  vertical-align: middle;
}

.employee-account-table td > b,
.employee-account-description > b,
.employee-account-description > span,
.employee-registry-secondary {
  display: block;
}

.employee-account-table td:nth-child(1) > b,
.employee-account-table td:nth-child(3) {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.employee-registry-secondary,
.employee-account-description > span {
  margin-top: 3px;
  color: var(--muted);
  font-size: 11px;
}

.employee-account-description > b,
.employee-account-description > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.employee-account-amount,
.employee-account-balance {
  font-variant-numeric: tabular-nums;
  font-weight: 750;
  white-space: nowrap;
}

.employee-account-amount.is-positive {
  color: #16753d;
}

.employee-account-amount.is-negative {
  color: var(--red);
}

.employee-account-movement {
  white-space: nowrap;
}

.employee-piecework-registry {
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: var(--card);
}

.employee-piecework-registry > header {
  padding: 17px 18px 14px;
  border-bottom: 1px solid var(--border);
}

.employee-piecework-registry > header h3 {
  margin: 0;
  font-size: 16px;
}

.employee-piecework-registry > header p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.employee-piecework-month + .employee-piecework-month {
  border-top: 1px solid var(--border);
}

.employee-piecework-month-button {
  display: grid;
  width: 100%;
  min-height: 72px;
  grid-template-columns: 24px minmax(190px, 1.45fr) repeat(3, minmax(126px, .75fr)) minmax(142px, max-content);
  align-items: center;
  gap: 12px;
  padding: 11px 16px;
  border: 0;
  background: #fff;
  color: var(--text);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background-color .14s ease, box-shadow .14s ease;
}

.employee-piecework-month-button:hover {
  background: #f6fbf8;
}

.employee-piecework-month-button:focus-visible {
  position: relative;
  z-index: 1;
  outline: 3px solid rgba(24, 114, 62, .18);
  outline-offset: -3px;
}

.employee-piecework-month.is-open > .employee-piecework-month-button {
  background: #f1f8f4;
  box-shadow: inset 3px 0 0 #4eaf74;
}

.employee-piecework-month-caret {
  color: #397c55;
  font-size: 22px;
  line-height: 1;
  text-align: center;
}

.employee-piecework-month-name,
.employee-piecework-month-button > span:not(.employee-piecework-month-caret):not(.employee-piecework-status) {
  min-width: 0;
}

.employee-piecework-month-name b,
.employee-piecework-month-name small,
.employee-piecework-month-button > span > small,
.employee-piecework-month-button > span > b {
  display: block;
}

.employee-piecework-month-name b {
  overflow: hidden;
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-transform: capitalize;
}

.employee-piecework-month-name small,
.employee-piecework-month-button > span > small {
  margin-bottom: 3px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 650;
}

.employee-piecework-month-button > span > b {
  overflow: hidden;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.employee-piecework-month-button > span > em {
  display: block;
  overflow: hidden;
  margin-top: 3px;
  color: #9a6810;
  font-size: 9px;
  font-style: normal;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.employee-piecework-status {
  justify-self: end;
  white-space: nowrap;
}

.employee-piecework-status.is-unattributed {
  border: 1px solid #e8c46f;
}

.employee-piecework-month-detail {
  display: grid;
  gap: 9px;
  padding: 11px 14px 14px 53px;
  border-top: 1px solid #dde9e1;
  background: #f8fbf9;
}

.employee-piecework-month-detail[hidden] {
  display: none;
}

.employee-piecework-item {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(360px, .72fr);
  align-items: center;
  gap: 18px;
  min-width: 0;
  padding: 13px 15px;
  border: 1px solid #dfe8e2;
  border-radius: 11px;
  background: #fff;
  box-shadow: inset 3px 0 0 #7db794;
}

.employee-piecework-item.is-estimator {
  box-shadow: inset 3px 0 0 #6e9fca;
}

.employee-piecework-item.is-architect {
  box-shadow: inset 3px 0 0 #9683c5;
}

.employee-piecework-item.is-ambiguous {
  border-color: #ead49e;
  background: #fffdf8;
  box-shadow: inset 3px 0 0 #d9a93e;
}

.employee-piecework-item-main {
  min-width: 0;
}

.employee-piecework-item-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.employee-piecework-type {
  overflow: hidden;
  padding: 3px 7px;
  border-radius: 999px;
  background: #e6f3eb;
  color: #236942;
  font-size: 10px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.employee-piecework-item.is-estimator .employee-piecework-type {
  background: #e9f2fa;
  color: #315f87;
}

.employee-piecework-item.is-architect .employee-piecework-type {
  background: #f0ecf9;
  color: #5e4b8f;
}

.employee-piecework-item h4 {
  overflow: hidden;
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.employee-piecework-item p {
  display: -webkit-box;
  overflow: hidden;
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.35;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.employee-piecework-item-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 12px;
  margin-top: 8px;
  color: #65766d;
  font-size: 10px;
}

.employee-piecework-item-money {
  display: grid;
  grid-template-columns: repeat(3, minmax(100px, 1fr));
  gap: 8px;
  min-width: 0;
}

.employee-piecework-item-money > div {
  min-width: 0;
  padding-left: 10px;
  border-left: 1px solid #e6ece8;
  text-align: right;
}

.employee-piecework-item-money b,
.employee-piecework-item-money span {
  display: block;
}

.employee-piecework-item-money b {
  overflow: hidden;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.employee-piecework-item-money span {
  margin-top: 3px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.25;
}

.employee-piecework-ambiguity {
  display: grid;
  gap: 3px;
  padding: 11px 13px;
  border: 1px solid #ead49e;
  border-radius: 10px;
  background: #fffaf0;
  color: #7f5a12;
}

.employee-piecework-ambiguity b {
  font-size: 12px;
}

.employee-piecework-ambiguity span {
  font-size: 11px;
  line-height: 1.4;
}

.foreman-work-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.foreman-work-card {
  display: flex;
  min-height: 210px;
  flex-direction: column;
  gap: 14px;
  padding: 20px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .045);
}

.foreman-work-card.is-overdue {
  border-color: #fecaca;
  box-shadow: inset 4px 0 0 #ef4444, 0 8px 24px rgba(127, 29, 29, .05);
}

.foreman-work-card.is-warning {
  border-color: #fde68a;
  box-shadow: inset 4px 0 0 #f59e0b, 0 8px 24px rgba(146, 64, 14, .05);
}

.foreman-work-card-top,
.foreman-work-period {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.foreman-work-card h3 {
  margin: 0;
  color: var(--text);
  font-size: 18px;
  line-height: 1.35;
}

.foreman-work-deadline {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.foreman-work-card.is-overdue .foreman-work-deadline {
  color: var(--red);
}

.foreman-work-card.is-warning .foreman-work-deadline {
  color: #b45309;
}

.foreman-work-period {
  align-items: flex-start;
  flex-direction: column;
  color: var(--muted);
  font-size: 13px;
}

.foreman-work-card .btn {
  align-self: flex-start;
  margin-top: auto;
}

@media (max-width: 900px) {
  .employee-finance-grid,
  .employee-dashboard-kpis,
  .employee-dashboard-grid {
    grid-template-columns: 1fr;
  }

  .foreman-work-grid {
    grid-template-columns: 1fr;
  }

  .employee-dashboard-kpis article {
    min-height: auto;
  }

  .employee-dashboard-head {
    align-items: flex-start;
  }

  .employee-subview-actions {
    justify-content: flex-start;
  }

  .employee-piecework-month-button {
    grid-template-columns: 24px minmax(170px, 1fr) repeat(3, minmax(112px, auto));
  }

  .employee-piecework-month-button > .employee-piecework-status {
    grid-column: 2 / -1;
    justify-self: start;
  }

  .employee-piecework-month-detail {
    padding-left: 14px;
  }

  .employee-piecework-item {
    grid-template-columns: 1fr;
  }

  .employee-piecework-item-money {
    padding-top: 10px;
    border-top: 1px solid #e6ece8;
  }
}

@media (max-width: 720px) {
  .employee-subview-actions {
    width: 100%;
  }

  .employee-subview-actions .btn {
    flex: 1 1 auto;
  }

  .employee-piecework-month-button {
    grid-template-columns: 24px minmax(0, 1fr);
    align-items: start;
    gap: 7px 10px;
    padding: 13px 12px;
  }

  .employee-piecework-month-caret {
    grid-column: 1;
    grid-row: 1;
  }

  .employee-piecework-month-name {
    grid-column: 2;
    grid-row: 1;
  }

  .employee-piecework-month-button > span:not(.employee-piecework-month-caret):not(.employee-piecework-month-name):not(.employee-piecework-status) {
    display: grid;
    grid-column: 2;
    grid-template-columns: minmax(0, 1fr) max-content;
    align-items: baseline;
    gap: 10px;
  }

  .employee-piecework-month-button > span > small {
    margin: 0;
  }

  .employee-piecework-month-button > span > em {
    grid-column: 1 / -1;
  }

  .employee-piecework-month-button > .employee-piecework-status {
    grid-column: 2;
  }

  .employee-piecework-item-top {
    align-items: flex-start;
    flex-direction: column;
  }

  .employee-piecework-item-money {
    grid-template-columns: 1fr;
  }

  .employee-piecework-item-money > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    align-items: baseline;
    gap: 10px;
    padding: 0;
    border: 0;
    text-align: left;
  }

  .employee-piecework-item-money span {
    grid-column: 1;
    grid-row: 1;
    margin: 0;
  }

  .employee-piecework-item-money b {
    grid-column: 2;
    grid-row: 1;
  }
}
/* ===== Единый раздел «Выполнение» ===== */
.execution-page{min-width:0}
.execution-page-head{align-items:flex-start}
.execution-asof{display:grid;gap:2px;justify-items:end;padding:8px 12px;border:1px solid #D9E3EF;border-radius:10px;background:#F8FAFC;color:#64748B;font-size:11px;white-space:nowrap}
.execution-asof b{color:#0F172A;font-size:14px;font-weight:650}
.execution-scope-note{margin:-8px 0 16px;padding:10px 12px;border-left:3px solid var(--green);border-radius:0 8px 8px 0;background:#F0FDF4;color:#476152;font-size:12px;line-height:1.45}
.execution-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:16px}
.execution-kpi{appearance:none;display:grid;grid-template-columns:minmax(0,1fr) max-content;grid-template-areas:"label value" "hint hint";align-items:center;gap:3px 10px;min-width:0;padding:12px 13px;border:1px solid #DCE5EF;border-radius:10px;background:#FFF;color:#334155;text-align:left;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.execution-kpi:hover,.execution-kpi:focus-visible{border-color:#9BCFAE;box-shadow:0 0 0 3px rgba(22,163,74,.08);outline:0}
.execution-kpi.is-active{border-color:var(--green);background:#F0FDF4;box-shadow:inset 0 0 0 1px var(--green)}
.execution-kpi span{grid-area:label;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600}
.execution-kpi b{grid-area:value;color:#0F172A;font-size:20px;line-height:1;font-variant-numeric:tabular-nums}
.execution-kpi small{grid-area:hint;color:#7A8A9E;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.execution-register{overflow:hidden;border:1px solid #DCE5EF;border-radius:12px;background:#FFF}
.execution-table-scroll{overflow:auto}
.execution-table-top{display:grid;grid-template-columns:minmax(180px,1fr) max-content minmax(240px,360px);align-items:end;gap:12px;padding:12px 14px;border-bottom:1px solid #E4EAF2;background:#FFF}
.execution-table-title{display:flex;align-items:baseline;gap:8px;min-width:0}
.execution-table-title b{font-size:14px}
.execution-table-title span{color:#64748B;font-size:11px;white-space:nowrap}
.execution-month-field{display:grid;gap:4px;color:#64748B;font-size:10px;font-weight:600}
.execution-month-field input{height:34px;min-width:142px;padding:5px 9px;border:1px solid #CBD5E1;border-radius:8px;background:#FFF;color:#1E293B;font:inherit;font-size:12px}
.execution-search{width:100%;height:34px;min-width:0}
.execution-focus-row{display:flex;flex-wrap:wrap;gap:6px;padding:9px 14px;border-bottom:1px solid #E8EDF4;background:#F8FAFC}
.execution-object-list{display:grid;gap:0;background:#F7F9FC}
.execution-object-group{border-bottom:1px solid #DFE6EE;background:#FFF}
.execution-object-group:last-of-type{border-bottom:0}
.execution-object-head{appearance:none;display:grid;grid-template-columns:22px minmax(220px,1fr) max-content minmax(150px,190px) minmax(210px,max-content);align-items:center;gap:14px;width:100%;min-height:66px;padding:10px 14px;border:0;background:#FFF;color:#27364A;text-align:left;cursor:pointer;transition:background .14s ease,box-shadow .14s ease}
.execution-object-head:hover,.execution-object-head:focus-visible{background:#F7FBF8;box-shadow:inset 0 0 0 1px #D8E6DD;outline:0}
.execution-object-group.is-open>.execution-object-head{background:#EEF7F1;box-shadow:inset 3px 0 0 var(--green)}
.execution-object-chevron{display:grid;width:22px;height:22px;place-items:center;border:1px solid #C8D5E2;border-radius:6px;color:#557086;font-size:21px;line-height:1;transition:transform .16s ease}
.execution-object-group.is-open .execution-object-chevron{transform:rotate(90deg);border-color:#91C8A5;background:#FFF;color:#1B7A41}
.execution-object-identity{display:grid;gap:3px;min-width:0}
.execution-object-identity b{overflow:hidden;color:#172033;font-size:14px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.execution-object-identity small,.execution-object-progress small,.execution-object-money small{color:#6B7A8D;font-size:10px}
.execution-object-alert{padding:4px 8px;border-radius:999px;background:#EEF3F7;color:#607185;font-size:10px;font-weight:650;white-space:nowrap}
.execution-object-alert.has-overdue{background:#FDEBEC;color:#B33A3A}
.execution-object-progress{display:grid;grid-template-columns:minmax(82px,1fr) max-content;grid-template-areas:"bar value" "hint hint";align-items:center;gap:3px 8px}
.execution-object-progress>i{grid-area:bar;height:7px;overflow:hidden;border-radius:999px;background:#DDE6EC}
.execution-object-progress>i>em{display:block;height:100%;border-radius:inherit;background:#42A96A}
.execution-object-progress>b{grid-area:value;font-size:12px;font-variant-numeric:tabular-nums}
.execution-object-progress>small{grid-area:hint}
.execution-object-money{display:grid;gap:3px;justify-items:end;min-width:0}
.execution-object-money b{font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}
.execution-object-body{border-top:1px solid #D8E6DD;background:#FFF}
.execution-selected-actions{position:sticky;bottom:0;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 14px;border-top:1px solid #CBD5E1;background:#E3E8ED;box-shadow:0 -4px 12px rgba(15,23,42,.06)}
.execution-selected-actions[hidden]{display:none}
.execution-selected-summary,.execution-selected-buttons{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.execution-selected-summary{color:#1E293B;font-size:12px}
.execution-selected-summary b{font-size:14px;font-weight:700}
.execution-selection-clear{appearance:none;display:grid;width:21px;height:21px;padding:0;place-items:center;border:0;border-radius:5px;background:#168C95;color:#FFF;font:inherit;font-size:14px;font-weight:800;line-height:1;cursor:pointer}
.execution-selection-clear:hover,.execution-selection-clear:focus-visible{background:#0F737B;outline:0}
.execution-bulk-btn{appearance:none;padding:7px 14px;border:1px solid #CBD5E1;border-radius:999px;background:#FFF;color:#1E293B;font:inherit;font-size:11px;font-weight:650;white-space:nowrap;cursor:pointer}
.execution-bulk-btn:hover,.execution-bulk-btn:focus-visible{border-color:#73B98C;background:#F0FDF4;color:#176C39;outline:0}
.execution-bulk-btn.is-primary{border-color:#16A34A;background:#16A34A;color:#FFF}
.execution-bulk-btn.is-primary:hover,.execution-bulk-btn.is-primary:focus-visible{border-color:#12813C;background:#12813C;color:#FFF}
.execution-table{width:100%;min-width:1180px;table-layout:fixed}
.execution-table th{font-size:11px;white-space:nowrap}
.execution-table td{vertical-align:middle}
.execution-col-select{width:3%;text-align:center}
.execution-col-date{width:13%}
.execution-col-work{width:21%}
.execution-col-brigade{width:15%}
.execution-col-volume{width:14%}
.execution-col-progress{width:14%}
.execution-col-money{width:16%}
.execution-col-estimate{width:5%}
.execution-select-cell{text-align:center}
.execution-table input[type="checkbox"]{width:15px;height:15px;margin:0;accent-color:var(--green);cursor:pointer}
.execution-section-row>td{padding:0!important;border-top:1px solid #D6E1EC;border-bottom:1px solid #DCE5EF;background:#EEF3F8}
.execution-section-row:first-child>td{border-top:0}
.execution-section-row.is-selected>td{background:#DCE6EE}
.execution-section-row.is-open>td{background:#E7EEF5;box-shadow:inset 3px 0 0 #2A8B55}
.execution-section-row.is-selected.is-open>td{background:#D6E5DE}
.execution-section-head{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:2px;min-height:42px;padding:0 10px}
.execution-section-check{justify-self:center}
.execution-section-toggle{appearance:none;display:grid;grid-template-columns:20px minmax(0,1fr) max-content;align-items:center;gap:8px;width:100%;min-width:0;min-height:41px;padding:5px 2px;border:0;background:transparent;color:#26364A;text-align:left;cursor:pointer}
.execution-section-toggle:hover,.execution-section-toggle:focus-visible{color:#176C39;outline:0}
.execution-section-toggle b{overflow:hidden;font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.execution-section-toggle small{padding:2px 7px;border-radius:999px;background:#FFF;color:#64748B;font-size:9px;font-weight:600;white-space:nowrap}
.execution-section-chevron{display:grid;width:20px;height:20px;place-items:center;border:1px solid #C6D3E0;border-radius:5px;background:#FFF;color:#557086;font-size:18px;line-height:1;transition:transform .16s ease}
.execution-section-row.is-open .execution-section-chevron{transform:rotate(90deg);border-color:#91C8A5;color:#1B7A41}
.execution-work-row{transition:background-color .14s ease}
.execution-work-row:hover{background:#F8FBFF}
.execution-work-row.is-selected{background:#E8EDF2}
.execution-work-row.is-selected:hover{background:#E1E8EE}
.execution-work-row--overdue{box-shadow:inset 3px 0 0 #E05757}
.execution-work-row--current{box-shadow:inset 3px 0 0 #22A35A}
.execution-work-row--upcoming{box-shadow:inset 3px 0 0 #85A1BE}
.execution-work-row--completed{box-shadow:inset 3px 0 0 #78B08C}
.execution-work-cell{min-width:0}
.execution-work-cell b{display:block;overflow:hidden;color:#172033;font-size:12px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}
.execution-work-cell small{display:block;margin-top:3px;overflow:hidden;color:#65758A;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.execution-estimate-cell{text-align:right}
.execution-estimate-link{appearance:none;padding:4px 0;border:0;background:none;color:#168344;font:inherit;font-size:10px;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:2px;white-space:nowrap}
.execution-estimate-link:hover,.execution-estimate-link:focus-visible{text-decoration-color:currentColor;outline:0}
.execution-brigade{appearance:none;display:inline-flex;max-width:100%;padding:4px 8px;border:1px solid #CCE8D5;border-radius:999px;background:#F0FDF4;color:#257443;font:inherit;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.execution-brigade::before{content:"Бригада · ";color:#668575}
.execution-brigade.is-missing,.execution-brigade.is-inactive{border-color:#F0D2A3;background:#FFF8E8;color:#9A5A08}
.execution-brigade.is-missing::before{content:""}
.execution-brigade:hover,.execution-brigade:focus-visible{box-shadow:0 0 0 3px rgba(22,163,74,.09);outline:0}
.execution-brigade:disabled{cursor:default;opacity:.72}
.execution-schedule{display:grid;gap:5px;justify-items:start}
.execution-schedule small{color:#64748B;font-size:10px;line-height:1.3;white-space:nowrap}
.execution-status{display:inline-flex;align-items:center;min-height:22px;padding:3px 7px;border-radius:999px;background:#EEF3F8;color:#52647A;font-size:10px;font-weight:650;white-space:nowrap}
.execution-status--current{background:#E9F8EF;color:#1F7B43}
.execution-status--overdue{background:#FEECEC;color:#B63737}
.execution-status--upcoming{background:#EFF4F9;color:#526B84}
.execution-status--completed{background:#E8F6ED;color:#297247}
.execution-status--unscheduled{background:#FFF7E6;color:#8A610D}
.execution-volume-cell{display:grid;gap:3px}
.execution-volume-cell>span{display:grid;grid-template-columns:52px minmax(0,1fr);align-items:baseline;gap:6px;min-width:0}
.execution-volume-cell i{color:#7A8A9E;font-size:9px;font-style:normal}
.execution-volume-cell b{overflow:hidden;color:#263548;font-size:10px;font-weight:600;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}
.execution-progress-cell small{display:block;margin-top:4px;overflow:hidden;color:#718196;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.execution-progress{appearance:none;position:relative;width:100%;height:26px;overflow:hidden;border:1px solid #BFD6C7;border-radius:7px;background:#F4F7FA;cursor:pointer}
.execution-progress i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#9ADAB1,#51B875)}
.execution-progress span{position:relative;z-index:1;display:grid;height:100%;place-items:center;color:#274136;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums}
.execution-progress:hover,.execution-progress:focus-visible{border-color:#5FA77A;box-shadow:0 0 0 3px rgba(22,163,74,.09);outline:0}
.execution-progress.is-disabled{border-color:#D9E3EF;cursor:default;opacity:.74}
.execution-money-cell{display:grid;gap:4px}
.execution-money-cell>span{display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:8px;align-items:baseline}
.execution-money-cell i{color:#718196;font-size:9px;font-style:normal}
.execution-money-cell b{font-size:10px;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}
.execution-money-cell .is-paid b{color:#20804A}
.execution-money-cell small{color:#9A6814;font-size:9px;white-space:nowrap}
.execution-action-modal{max-width:520px}
.execution-progress-info{display:grid;gap:3px;margin-bottom:12px;padding:10px 12px;border:1px solid #DCE5EF;border-radius:9px;background:#F8FAFC}
.execution-progress-info b{color:#172033;font-size:13px}
.execution-progress-info span{color:#64748B;font-size:11px}
.execution-percent-entry{display:grid;gap:6px;margin-bottom:14px}
.execution-percent-entry>label{color:#334155;font-size:11px;font-weight:650}
.execution-percent-entry>div{display:grid;grid-template-columns:minmax(0,1fr) 42px;overflow:hidden;border:1px solid #AFCDB9;border-radius:9px;background:#FFF}
.execution-percent-entry input{height:48px;padding:8px 12px;border:0;outline:0;color:#173A27;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}
.execution-percent-entry>div>span{display:grid;place-items:center;background:#EEF7F1;color:#257443;font-size:16px;font-weight:700}
.execution-percent-entry small,.execution-action-modal .field>small{color:#68798D;font-size:10px;line-height:1.4}
.execution-percent-entry small.is-error{color:#B63737}
@media(max-width:1180px){
  .execution-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .execution-table-top{grid-template-columns:1fr max-content}.execution-search{grid-column:1/-1}
  .execution-object-head{grid-template-columns:22px minmax(200px,1fr) max-content minmax(140px,180px)}
  .execution-object-money{display:none}
}
@media(max-width:760px){
  .execution-page-head{align-items:stretch}.execution-asof{justify-items:start}
  .execution-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .execution-table-top{grid-template-columns:1fr}.execution-search{grid-column:auto}
  .execution-month-field input{width:100%}
  .execution-object-head{grid-template-columns:22px minmax(0,1fr);gap:9px}
  .execution-object-alert,.execution-object-progress{display:none}
  .execution-selected-actions{align-items:stretch;flex-direction:column}
  .execution-selected-buttons{display:grid;grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.execution-kpi,.execution-work-row,.execution-object-head,.execution-object-chevron,.execution-section-chevron{transition:none}}
.search-select-option.search-select-level-section{display:flex;align-items:center;gap:8px;margin:4px 0;padding:9px 10px;border:1px solid #bbf7d0;background:#f0fdf4;color:#166534;font-weight:700}
.search-select-option.search-select-level-section .search-select-option-badge{border-color:#86efac;background:#dcfce7;color:#166534}
.search-select-option.search-select-level-section .search-select-option-meta{max-width:62%}
.es-work-full-cell { color: #166534; }
.es-work-full-cell small,.es-work-view small { display: block; color: #64748b; font-size: 12px; font-weight: 400; }
