/* v2.8.20 · empty panel bodies must not create a white strip before a table.
   Some older renderers leave an empty .panel-body between .panel-head and
   a sibling .table-wrap. Hide that structural placeholder completely. */
.panel > .panel-head + .panel-body:empty {
  display:none!important;
  padding:0!important;
  margin:0!important;
}
:root{
  --bg:#eef2f6;--panel:#fff;--panel2:#f7f9fb;--ink:#16202a;--muted:#687481;--line:#d3dbe4;
  --nav:#183a61;--nav2:#102a48;--accent:#1f5f9d;--accent2:#0f7b69;--danger:#a63b32;--warn:#a06a14;
  --shadow:0 10px 30px rgba(25,45,70,.12);--radius:10px;--mono:ui-monospace,SFMono-Regular,Consolas,monospace;
}
*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}
button,input,select,textarea{font:inherit}.hidden{display:none!important}.muted{color:var(--muted)}.mobile-only{display:none}
.login-view{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0e2948,#1c4f80 50%,#dfe6ee 50%,#eef2f6);padding:24px}
.login-panel{width:min(520px,100%);background:#fff;border:1px solid #b9c5d0;box-shadow:0 22px 70px rgba(0,0,0,.28);padding:32px;border-radius:8px;position:relative}.emblem{font-size:48px;color:#1e568b;position:absolute;right:28px;top:22px}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#56708a}.login-panel h1{font-size:27px;line-height:1.16;margin:8px 0 10px}.stack-form{display:grid;gap:14px;margin:24px 0}.stack-form label,.form-grid label{display:grid;gap:6px;font-size:12px;font-weight:600;color:#4c5d6d}.stack-form input,.form-grid input,.form-grid select,.form-grid textarea,.toolbar input,.toolbar select{border:1px solid #b9c5d0;border-radius:5px;padding:9px 10px;background:#fff;min-width:0;outline:none}.stack-form input:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.toolbar input:focus,.toolbar select:focus{border-color:#3374ad;box-shadow:0 0 0 2px #dcebf8}.warning{margin-top:20px;background:#fff3cd;border:1px solid #ead28c;padding:10px;border-radius:5px;font-size:12px}.account-info{display:grid;gap:5px;font-size:11px;color:#5c6975;background:#f4f7fa;padding:10px;border-radius:5px}
.btn{border:1px solid #9baab8;background:#f5f7f9;color:#203040;border-radius:5px;padding:8px 12px;cursor:pointer;font-weight:600}.btn:hover{filter:brightness(.97)}.btn.primary{background:var(--accent);color:#fff;border-color:#174a79}.btn.success{background:#22745e;color:#fff;border-color:#1a5c4a}.btn.danger{color:#fff;background:var(--danger);border-color:#873129}.btn.ghost{background:transparent;color:inherit;border-color:rgba(255,255,255,.25)}.btn.small{padding:5px 8px;font-size:12px}.btn:disabled{opacity:.45;cursor:not-allowed}
.app-shell{min-height:100vh;display:grid;grid-template-columns:230px 1fr;grid-template-rows:58px 1fr;grid-template-areas:"top top" "side main"}.topbar{grid-area:top;background:linear-gradient(90deg,var(--nav2),var(--nav));color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid #0a2038;position:sticky;top:0;z-index:20}.brand-block{display:flex;align-items:center;gap:10px}.brand-mark{font-size:23px}.brand-block div{display:grid}.brand-block small{color:#bad0e5;font-size:11px}.topbar-actions{display:flex;gap:12px;align-items:center}.user-chip{display:grid;text-align:right;font-size:12px}.user-chip small{color:#c7d9e9}.sidebar{grid-area:side;background:#f8fafc;border-right:1px solid #cbd4de;display:flex;flex-direction:column;min-height:calc(100vh - 58px);position:sticky;top:58px;height:calc(100vh - 58px);z-index:15}.sidebar nav{padding:10px}.sidebar nav button{width:100%;display:flex;align-items:center;gap:10px;border:0;border-radius:5px;background:transparent;color:#31465b;text-align:left;padding:10px 11px;cursor:pointer;margin:2px 0}.sidebar nav button span{width:20px;text-align:center;color:#35688e}.sidebar nav button:hover{background:#e7eef5}.sidebar nav button.active{background:#d9e6f2;color:#153b60;font-weight:700;box-shadow:inset 3px 0 #1e5c93}.sidebar-foot{margin-top:auto;padding:14px;display:grid;gap:6px;color:#73808c;border-top:1px solid #d5dde5}
.content{grid-area:main;padding:18px;min-width:0}.page-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.page-head h2{font-size:20px;margin:0 0 4px}.page-head p{margin:0;color:var(--muted);font-size:12px}.page-actions{display:flex;gap:8px;flex-wrap:wrap}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 2px 8px rgba(20,45,70,.04);overflow:hidden}.panel-head{padding:11px 14px;background:linear-gradient(#fff,#f3f6f8);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px}.panel-head h3{margin:0;font-size:14px}.panel-body{padding:14px}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.kpi{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px;display:grid;gap:4px;position:relative;overflow:hidden}.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#316c9c}.kpi b{font-size:28px;font-weight:650}.kpi small{color:var(--muted)}.spacer{height:14px}
.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px;background:#f7f9fb;border-bottom:1px solid var(--line)}.toolbar input[type=search]{min-width:250px;flex:1}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{position:sticky;top:0;background:#e7edf3;color:#33485b;text-align:left;border-bottom:1px solid #bdc8d3;border-right:1px solid #d4dce4;padding:7px 8px;white-space:nowrap;font-weight:700}.data-table td{padding:7px 8px;border-bottom:1px solid #e0e6ec;border-right:1px solid #edf0f3;vertical-align:top}.data-table tbody tr:nth-child(even){background:#f8fbf7}.data-table tbody tr:hover{background:#eaf3fb;cursor:pointer}.data-table tr.selected{background:#dbeaff!important;outline:1px solid #7eadd4}.status{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:11px;background:#e8edf2;color:#405263;white-space:nowrap}.status.ok{background:#dff3e9;color:#146049}.status.warn{background:#fff0d2;color:#87590b}.status.danger{background:#fbe4e1;color:#8a3028}.badge{display:inline-block;padding:2px 6px;background:#edf2f6;border:1px solid #d3dce4;border-radius:4px;font-family:var(--mono);font-size:11px}.weight{font-family:var(--mono);font-weight:700}.mono{font-family:var(--mono)}
.classic-window{border:1px solid #8c9cad;background:#f4f6f8;box-shadow:inset 0 0 0 1px #fff}.classic-title{background:linear-gradient(#2c6aa3,#174a7d);color:#fff;padding:5px 8px;font-size:11px;font-weight:700}.classic-tabs,.tabs{display:flex;gap:2px;padding:6px 8px 0;border-bottom:1px solid #b9c5d0;overflow:auto}.classic-tabs button,.tabs button{border:1px solid #b9c5d0;border-bottom:0;background:#e9eef3;padding:7px 10px;border-radius:5px 5px 0 0;white-space:nowrap;cursor:pointer;font-size:12px}.classic-tabs button.active,.tabs button.active{background:#fff;font-weight:700;position:relative;top:1px}.split-case{display:grid;grid-template-columns:250px 1fr;min-height:540px}.case-list-pane{border-right:1px solid #bcc7d1;background:#eef3f7}.case-list-pane .mini-list{max-height:535px;overflow:auto}.mini-row{padding:7px 9px;border-bottom:1px solid #d5dde5;font-size:11px;cursor:pointer}.mini-row.active{background:#225f94;color:#fff}.case-main-pane{background:#fff;min-width:0}.case-toolbar{padding:7px;border-bottom:1px solid #c7d1db;display:flex;gap:5px}.case-detail-content{padding:10px}.kv-table{width:100%;border-collapse:collapse;font-size:12px}.kv-table td{border:1px solid #d3dbe3;padding:6px 8px}.kv-table td:first-child{width:36%;background:#eef2f5;color:#43566a}.kv-table td:nth-child(2){background:#fffde9}.section-title{font-size:12px;text-transform:uppercase;color:#65717d;letter-spacing:.06em;margin:12px 0 7px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.form-grid .wide{grid-column:1/-1}.form-grid textarea{min-height:80px;resize:vertical}.modal-backdrop{position:fixed;inset:0;background:rgba(11,23,35,.46);display:grid;place-items:center;padding:20px;z-index:50}.modal{background:#fff;border:1px solid #7f8f9e;border-radius:8px;width:min(760px,96vw);max-height:92vh;overflow:auto;box-shadow:0 25px 80px rgba(0,0,0,.32)}.modal.wide{width:min(1100px,97vw)}.modal-head{background:linear-gradient(#fefefe,#edf2f6);padding:12px 15px;border-bottom:1px solid #bdc7d0;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:2}.modal-head h3{margin:0;font-size:15px}.modal-body{padding:15px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 15px;border-top:1px solid var(--line);background:#f7f9fa;position:sticky;bottom:0}.xbtn{border:0;background:transparent;font-size:19px;cursor:pointer;color:#607080}.toast-host{position:fixed;right:18px;top:72px;z-index:100;display:grid;gap:8px}.toast{background:#23384d;color:#fff;padding:10px 13px;border-radius:6px;box-shadow:var(--shadow);font-size:12px;max-width:370px}.toast.error{background:#8d332c}.toast.success{background:#1f6b56}
.chart-bars{display:grid;gap:8px}.bar-row{display:grid;grid-template-columns:160px 1fr 42px;gap:8px;align-items:center;font-size:11px}.bar-track{height:11px;background:#e7edf2;border-radius:9px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,#26639a,#4b87b8)}.timeline{display:grid;gap:0}.timeline-item{display:grid;grid-template-columns:130px 14px 1fr;gap:8px;position:relative;padding:8px 0}.timeline-item:after{content:"";position:absolute;left:136px;top:24px;bottom:-8px;width:1px;background:#c7d1da}.timeline-item:last-child:after{display:none}.timeline-dot{width:9px;height:9px;background:#2f6b9e;border-radius:50%;margin-top:4px;z-index:1}.timeline-time{color:#6d7984;font-family:var(--mono);font-size:11px}.timeline-main b{font-size:12px}.timeline-main small{display:block;color:#6e7882;margin-top:3px}.empty{padding:32px;text-align:center;color:#74818c}.tabs-content{padding:12px}.flk-row{display:grid;grid-template-columns:75px 1fr 110px;gap:10px;align-items:center;padding:9px;border-bottom:1px solid #e1e6eb}.flk-row:last-child{border:0}.flk-ok{font-weight:700;color:#176047}.flk-bad{font-weight:700;color:#9d352d}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);border-left:1px solid #d4dde5;border-top:1px solid #d4dde5}.cal-cell{min-height:54px;border-right:1px solid #d4dde5;border-bottom:1px solid #d4dde5;padding:4px;font-size:10px;background:#fff}.cal-cell.weekend{background:#fbf2e5}.cal-cell.absence{background:#fde2df}.cal-cell b{display:block;font-size:11px}.subnav{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}.subnav button{border:1px solid #bdc8d3;background:#eef2f5;padding:6px 10px;border-radius:4px;cursor:pointer;font-size:12px}.subnav button.active{background:#d7e6f3;border-color:#7ea4c6;font-weight:700}.notice{border-left:4px solid #b98622;background:#fff5df;padding:10px 12px;font-size:12px;color:#684e1b}.right{margin-left:auto}.nowrap{white-space:nowrap}.clickable{cursor:pointer}.linkish{color:#1d5f96;text-decoration:underline;cursor:pointer}.danger-text{color:#9c332c}.good-text{color:#19664e}
@media(max-width:1000px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:1fr}.split-case{grid-template-columns:200px 1fr}}
@media(max-width:760px){.mobile-only{display:inline-flex}.app-shell{grid-template-columns:1fr;grid-template-areas:"top" "main"}.sidebar{position:fixed;left:-250px;top:58px;width:230px;transition:.2s;box-shadow:var(--shadow)}.sidebar.open{left:0}.content{padding:11px}.topbar-actions .user-chip{display:none}.brand-block b{font-size:12px}.grid-4,.grid-2{grid-template-columns:1fr}.page-head{align-items:stretch;flex-direction:column}.split-case{display:block}.case-list-pane{max-height:170px;border-right:0;border-bottom:1px solid #b9c5d0}.toolbar input[type=search]{min-width:180px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.bar-row{grid-template-columns:100px 1fr 32px}.modal-backdrop{padding:8px}}

.nav-caption{padding:10px 11px 4px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#8794a1;font-weight:700}.sidebar nav{overflow:auto}.sidebar nav button{font-size:12px}.sidebar nav button span{flex:0 0 20px}.app-shell{grid-template-columns:275px 1fr}
.subsystem-hero{background:linear-gradient(135deg,#173b61,#285d8b);color:#fff;border-radius:10px;padding:18px 20px;display:flex;gap:18px;justify-content:space-between;align-items:flex-start;box-shadow:var(--shadow);margin-bottom:14px}.subsystem-hero h2{margin:0 0 6px;font-size:21px}.subsystem-hero p{margin:0;color:#d9e7f4;max-width:900px;line-height:1.45}.subsystem-badge{white-space:nowrap;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);padding:8px 10px;border-radius:6px;font-family:var(--mono);font-size:11px}
.subsystem-tabs{display:flex;gap:5px;flex-wrap:wrap;margin:0 0 12px}.subsystem-tabs button{border:1px solid #b8c5d1;background:#fff;border-radius:6px;padding:8px 11px;cursor:pointer;font-size:12px;font-weight:600;color:#334c62}.subsystem-tabs button.active{background:#1d588c;color:#fff;border-color:#17476f}.subsystem-tabs button:hover{filter:brightness(.98)}
.feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.feature-card{background:#fff;border:1px solid var(--line);border-radius:9px;padding:14px;display:grid;gap:8px;min-height:145px}.feature-card h3{margin:0;font-size:14px}.feature-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.feature-card .btn{margin-top:auto;justify-self:start}.feature-icon{font-size:23px;color:#245f91}
.crud-actions{display:flex;gap:5px;white-space:nowrap}.crud-actions .btn{padding:4px 7px;font-size:11px}.cell-pre{white-space:pre-wrap;max-width:440px;max-height:90px;overflow:hidden}.field-hint{font-size:10px;color:var(--muted);font-weight:400}.overview-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.overview-box{background:#fff;border:1px solid var(--line);border-radius:7px;padding:12px}.overview-box h4{margin:0 0 8px;font-size:12px}.overview-box .big{font-size:24px;font-weight:700}.mini-kv{display:grid;grid-template-columns:1fr auto;gap:5px 10px;font-size:12px}.mini-kv span:nth-child(even){font-weight:700;text-align:right}.danger-row{background:#fff1ef!important}.warn-row{background:#fff8e8!important}.ok-dot,.warn-dot,.bad-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.ok-dot{background:#2d9a6d}.warn-dot{background:#d79b2a}.bad-dot{background:#c54d43}.search-results{display:grid;gap:8px}.search-result{border:1px solid var(--line);border-radius:7px;padding:10px;background:#fff}.search-result b{display:block;margin-bottom:4px}.search-result small{color:var(--muted)}.search-result p{margin:6px 0 0;white-space:pre-wrap}.control-actions{display:flex;gap:8px;flex-wrap:wrap}.topology{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.node-pill{padding:8px 10px;border:1px solid var(--line);background:#fff;border-radius:7px;font-family:var(--mono);font-size:11px}.arrow{color:#8090a0}.decision-text{white-space:pre-wrap;line-height:1.5;background:#f8fafc;border:1px solid var(--line);padding:12px;border-radius:6px;max-height:320px;overflow:auto}.subsystem-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.subsystem-count{background:#fff;border:1px solid var(--line);padding:10px;border-radius:7px}.subsystem-count b{font-size:20px;display:block}.subsystem-count small{color:var(--muted)}
@media(max-width:1100px){.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-strip{grid-template-columns:1fr}.app-shell{grid-template-columns:235px 1fr}.subsystem-counts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.feature-grid,.subsystem-counts{grid-template-columns:1fr}.subsystem-hero{display:block}.subsystem-badge{display:inline-block;margin-top:12px}.app-shell{grid-template-columns:1fr}}

/* v0.3 — углубленные бизнес-процессы */
.workflow-steps{display:grid;gap:10px;margin-top:12px}
.workflow-step{display:grid;grid-template-columns:1fr auto;gap:4px 12px;border:1px solid var(--line,#cbd5e1);border-radius:8px;padding:12px;background:#fff}
.workflow-step.active{outline:2px solid rgba(33,88,129,.22);background:#f6fbff}
.workflow-step small{grid-column:1/-1;color:#64748b}
/* v0.5: multi-instance chain / deadline & archive workspaces */
.instance-chain{display:flex;align-items:stretch;gap:10px;overflow-x:auto;padding:8px 0 2px}.chain-node{min-width:190px;border:1px solid var(--line);background:#fff;border-radius:8px;padding:12px;display:grid;gap:5px}.chain-node small{color:var(--muted)}.chain-node b{font-size:14px}.chain-arrow{display:flex;align-items:center;font-size:24px;color:var(--muted);padding:0 2px}.subsystem-tabs{overflow-x:auto;white-space:nowrap;scrollbar-width:thin}.subsystem-tabs button{flex:0 0 auto}

/* v1.1 — UI/UX audit remediation */
:root{--focus:#0b6fc2;--muted:#5f6f7e;--surface-hover:#edf5fb}
.skip-link{position:fixed;left:12px;top:-60px;z-index:200;background:#fff;color:#123b61;padding:10px 14px;border-radius:6px;box-shadow:var(--shadow);font-weight:700}.skip-link:focus{top:10px}
:focus-visible{outline:3px solid rgba(11,111,194,.42);outline-offset:2px}.btn:focus-visible,.sidebar nav button:focus-visible,.subsystem-tabs button:focus-visible,.classic-tabs button:focus-visible,.tabs button:focus-visible{outline:3px solid rgba(74,164,232,.58);outline-offset:1px}
.btn{min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn.small{min-height:31px}.icon-btn{width:38px;height:38px;border:1px solid rgba(255,255,255,.34);border-radius:6px;background:rgba(255,255,255,.08);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px}
.btn:hover{filter:none;background:#e9eef3}.btn.primary:hover{background:#174f81}.btn.success:hover{background:#195e4b}.btn.danger:hover{background:#8f312a}.btn.ghost:hover{background:rgba(255,255,255,.1)}
.btn[aria-busy="true"]{position:relative;pointer-events:none;opacity:.72}.btn[aria-busy="true"]:after{content:"";width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.searchbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,260px) auto;gap:8px;align-items:center}.searchbar input,.searchbar select{width:100%;border:1px solid #b9c5d0;border-radius:5px;padding:9px 10px;background:#fff;min-width:0}.check-line{display:flex!important;grid-template-columns:none!important;align-items:center;gap:8px!important;padding:7px 8px;border-radius:5px;font-weight:500!important}.check-line:hover{background:#f1f6fa}.check-line input{margin:0}.dist-check{width:17px;height:17px;accent-color:var(--accent)}
.panel+.panel{margin-top:14px}.grid-2>.panel+.panel,.grid-3>.panel+.panel,.grid-4>.panel+.panel,.two-col>.panel+.panel{margin-top:0}.panel{box-shadow:0 3px 10px rgba(20,45,70,.055)}
.data-table tbody tr:nth-child(even){background:#f8fafc}.data-table tbody tr:hover{background:var(--surface-hover);cursor:default}.data-table tr[data-case],.data-table tr.clickable{cursor:pointer}.data-table th.sortable{cursor:pointer;user-select:none;padding-right:22px;position:relative}
.table-wrap{overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;position:relative;max-width:100%}.table-wrap:focus-visible{outline:3px solid rgba(11,111,194,.28);outline-offset:-3px}.table-scroll-hint{display:none;font-size:10px;color:var(--muted);padding:5px 10px;background:#f8fafc;border-top:1px solid #e5ebf0}
.loading-state{min-height:180px;display:grid;place-items:center;color:var(--muted);gap:10px;text-align:center}.loading-state:before{content:"";width:26px;height:26px;border:3px solid #ced9e3;border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.error-state{padding:28px;display:grid;justify-items:center;text-align:center;gap:10px}.error-state b{font-size:15px}.error-state p{margin:0;color:var(--muted);max-width:600px}

.sidebar-overlay{display:none;position:fixed;inset:58px 0 0 0;border:0;background:rgba(10,26,42,.38);z-index:14;padding:0}.sidebar-overlay.open{display:block}.menu-open{overflow:hidden}
.modal-backdrop{backdrop-filter:blur(1px)}.modal{overscroll-behavior:contain}.modal-head .xbtn{width:36px;height:36px;border-radius:6px;display:grid;place-items:center}.modal-head .xbtn:hover{background:#e5ebf0}.modal-body>label,.panel-body>label{display:grid;gap:6px;margin-bottom:10px;font-size:12px;font-weight:600;color:#4c5d6d}.modal-body>label input,.modal-body>label select,.modal-body>label textarea,.panel-body>label input,.panel-body>label select,.panel-body>label textarea{width:100%;border:1px solid #b9c5d0;border-radius:5px;padding:9px 10px;background:#fff;min-width:0}
.toast-host{pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:8px;line-height:1.35}.toast.warn{background:#8b611c}.toast.info{background:#244d73}
.interactive{cursor:pointer}.interactive:hover{text-decoration-thickness:2px}.form-help{font-size:11px;color:var(--muted);margin-top:4px}.field-invalid{border-color:#b9473e!important;box-shadow:0 0 0 2px rgba(185,71,62,.12)!important}
.subsystem-tabs{padding-bottom:2px}.subsystem-tabs button{min-height:34px}.subsystem-hero{box-shadow:0 9px 25px rgba(19,50,80,.16)}
.subsystem-badge{white-space:normal!important;overflow-wrap:anywhere;max-width:360px;line-height:1.35}
.kpi b{font-variant-numeric:tabular-nums}.timeline-time,.mono,.badge,code{font-variant-numeric:tabular-nums}
@media(max-width:1100px){.two-col{grid-template-columns:1fr}.searchbar{grid-template-columns:1fr 220px auto}}
@media(max-width:760px){
  .topbar{padding:0 10px;gap:8px}.topbar-actions{gap:7px}.topbar .btn.ghost{padding:7px 10px;min-height:36px}.brand-block{min-width:0}.brand-block>div{min-width:0}.brand-block b,.brand-block small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:165px}.brand-mark{display:none}
  .sidebar{left:min(-90vw,-330px);width:min(86vw,330px);z-index:16}.sidebar.open{left:0}.sidebar-overlay.open{display:block}.sidebar nav button{min-height:42px;font-size:13px}.sidebar-foot{padding-bottom:max(14px,env(safe-area-inset-bottom))}
  .content{padding:10px}.page-head h2{font-size:19px}.page-actions>.btn{flex:0 1 auto}.subsystem-hero{padding:15px}.subsystem-hero h2{font-size:19px}.subsystem-hero p{font-size:12px}.subsystem-tabs{flex-wrap:nowrap;margin-left:-10px;margin-right:-10px;padding:0 10px 6px;scroll-snap-type:x proximity}.subsystem-tabs button{scroll-snap-align:start}.subsystem-tabs:after{content:"";flex:0 0 8px}
  .searchbar{grid-template-columns:1fr}.toolbar{align-items:stretch}.toolbar input[type=search]{min-width:0;width:100%;flex-basis:100%}.toolbar select{flex:1 1 130px}.toolbar .btn{flex:0 0 auto}
  .table-wrap{margin:0;max-width:100%;-webkit-overflow-scrolling:touch}.table-wrap .data-table{min-width:max-content}.table-scroll-hint{display:block}.crud-actions{white-space:normal;flex-wrap:wrap;min-width:110px}.crud-actions .btn{flex:1 1 auto}
  .timeline-item{grid-template-columns:102px 12px minmax(0,1fr);gap:6px}.timeline-item:after{left:108px}.timeline-main b{overflow-wrap:anywhere}.bar-row{grid-template-columns:92px minmax(0,1fr) 34px}
  .modal-backdrop{padding:0;align-items:end}.modal,.modal.wide{width:100vw;max-width:none;max-height:94dvh;border-radius:12px 12px 0 0;border-left:0;border-right:0;border-bottom:0}.modal-body{padding:13px}.modal-foot{padding-bottom:max(12px,env(safe-area-inset-bottom));flex-wrap:wrap}.modal-foot .btn{flex:1 1 120px}
  .toast-host{top:auto;bottom:max(12px,env(safe-area-inset-bottom));left:10px;right:10px}.toast{max-width:none;width:100%}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* v1.2 — глобальная нормализация интерфейса */
:root{
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;
  --control-h:40px;--sidebar-w:276px;--sidebar-collapsed-w:72px;
}
html{scrollbar-gutter:stable}
body{font-size:14px;line-height:1.42}
button,input,select,textarea{font-size:14px}
input:not([type="checkbox"]):not([type="radio"]),select,textarea{min-height:var(--control-h)}
textarea{line-height:1.45}
input[type="checkbox"],input[type="radio"]{width:18px;height:18px;min-width:18px;min-height:18px;margin:0;accent-color:var(--accent);vertical-align:middle}
label{line-height:1.35}
.stack-form label,.form-grid label,.modal-body>label,.panel-body>label{font-size:13px;gap:7px}
.stack-form input,.form-grid input,.form-grid select,.form-grid textarea,.toolbar input,.toolbar select,.searchbar input,.searchbar select,.modal-body>label input,.modal-body>label select,.modal-body>label textarea,.panel-body>label input,.panel-body>label select,.panel-body>label textarea{padding:9px 11px;border-color:#adbac7}
.btn{min-height:38px;padding:8px 13px;font-size:13px;border-radius:6px}.btn.small{min-height:34px;padding:6px 10px;font-size:12px}
.icon-btn{flex:0 0 40px;width:40px;height:40px;font-size:20px}

.app-shell{grid-template-columns:var(--sidebar-w) minmax(0,1fr);transition:grid-template-columns .18s ease}
.app-shell.sidebar-collapsed{grid-template-columns:var(--sidebar-collapsed-w) minmax(0,1fr)}
.sidebar{min-width:0;overflow:hidden;transition:width .18s ease,transform .18s ease}
.sidebar nav{padding:10px 9px}.sidebar nav button{min-height:42px;padding:9px 11px;font-size:13px;white-space:normal;line-height:1.25}.sidebar nav button span{font-size:17px;flex:0 0 24px;width:24px}.nav-caption{font-size:10px;padding:12px 11px 5px}
.app-shell.sidebar-collapsed .sidebar nav{padding-left:8px;padding-right:8px}.app-shell.sidebar-collapsed .sidebar nav button{font-size:0;gap:0;justify-content:center;padding-left:8px;padding-right:8px}.app-shell.sidebar-collapsed .sidebar nav button span{font-size:18px;margin:0}.app-shell.sidebar-collapsed .nav-caption,.app-shell.sidebar-collapsed .sidebar-foot{display:none}.app-shell.sidebar-collapsed .sidebar nav button.active{box-shadow:inset 3px 0 #1e5c93}

.topbar{min-height:60px;padding:0 16px;gap:12px}.brand-block b{font-size:14px}.brand-block small{font-size:11px}.topbar-actions{gap:10px}.user-chip{line-height:1.25}
.content{padding:20px;max-width:100%;overflow-x:hidden}.page-head{margin-bottom:16px;gap:16px}.page-head h2{font-size:21px;line-height:1.2;margin-bottom:5px}.page-head p{font-size:13px;line-height:1.45}.page-actions{gap:8px;align-items:center}
.panel{border-radius:8px}.panel-head{padding:12px 15px;min-height:46px}.panel-head h3{font-size:14px;line-height:1.3}.panel-body{padding:15px}.compact-body{padding:10px 14px}
.grid-4,.grid-3,.grid-2,.two-col{gap:14px}.kpi{padding:14px 15px;min-height:94px;align-content:start}.kpi small{font-size:12px}.kpi b{font-size:26px;line-height:1.1}.kpi .muted{font-size:12px;margin-top:3px}
.spacer{height:14px}.panel+.panel{margin-top:14px}
.mini-kv{grid-template-columns:minmax(130px,1fr) minmax(160px,auto);gap:7px 18px;font-size:13px;align-items:start}.mini-kv b,.mini-kv span:nth-child(even){overflow-wrap:anywhere}

.data-table{font-size:12.5px}.data-table th{padding:9px 10px;line-height:1.25}.data-table td{padding:9px 10px;line-height:1.35}.data-table th.sortable{padding-right:24px}.table-scroll-hint{display:none!important}
.toolbar{padding:10px 12px;gap:8px}.toolbar input[type=search]{min-width:220px}

.form-grid{gap:13px 14px}.form-grid textarea{min-height:96px}.form-actions{margin-top:14px}
.check-line{justify-content:flex-start!important;align-items:center!important;gap:10px!important;min-height:40px;width:100%;padding:8px 10px!important;border:1px solid transparent;border-radius:7px;font-size:13px!important;color:#2d4052!important;cursor:pointer}.check-line:hover{border-color:#d8e2eb;background:#f4f8fb}.check-line span{min-width:0;overflow-wrap:anywhere}
.report-layout{display:grid;grid-template-columns:minmax(430px,.95fr) minmax(430px,1.05fr);gap:14px;align-items:start}.report-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px}.report-result-panel{margin-top:14px!important;min-height:170px}

.search-result{padding:12px 14px}.search-result small{font-size:11.5px}.search-result b{font-size:13.5px}.search-result p{font-size:13px;line-height:1.42}
.item-meta{display:flex;align-items:center;gap:6px 10px;flex-wrap:wrap;color:var(--muted);font-size:11.5px}.item-meta>*:not(.status)+*:before{content:"•";margin-right:10px;color:#a3afba}
.task-list{display:grid;gap:10px;margin-top:14px}.task-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,220px);gap:14px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;padding:13px 14px}.task-main h3,.notification-main h3{font-size:14px;line-height:1.3;margin:6px 0 4px}.task-main p,.notification-main p{margin:0;color:#435262;font-size:12.5px;line-height:1.42}.task-assignee{display:flex;gap:6px;align-items:baseline;margin-top:8px;font-size:12px;color:var(--muted)}.task-assignee b{color:var(--ink)}.task-actions{display:grid;justify-items:end;gap:10px}.task-actions .page-actions{justify-content:flex-end}
.notification-list{display:grid;gap:8px}.notification-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;border-bottom:1px solid #e0e6ec;padding:11px 0}.notification-item:last-child{border-bottom:0}.notification-actions{display:flex;align-items:center;gap:8px;justify-content:flex-end;min-width:210px}

.subsystem-tabs,.subnav{gap:7px;overflow:visible;white-space:normal;flex-wrap:wrap}.subsystem-tabs button,.subnav button{min-height:38px;padding:8px 12px;font-size:12.5px}.classic-tabs,.tabs{gap:4px;padding:7px 8px 0;overflow:visible;flex-wrap:wrap}.classic-tabs button,.tabs button{min-height:36px;padding:8px 11px}.case-toolbar{padding:8px;gap:6px;flex-wrap:wrap}.case-main-pane .tabs{scrollbar-width:none}.case-main-pane .tabs::-webkit-scrollbar{display:none}
.workflow-steps{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.workflow-step{min-width:0;padding:14px;align-content:start}.workflow-step .btn{justify-self:start;margin-top:6px}

.modal-body{padding:16px}.modal-foot{padding:12px 16px}.modal-head{padding:11px 16px}.modal-head h3{font-size:15px}.confirm-copy{font-size:14px;line-height:1.5}
.empty{padding:28px 18px;font-size:13px}.notice{font-size:12.5px;line-height:1.5}
.status{font-size:11.5px;padding:4px 8px}.badge{font-size:11.5px;padding:3px 7px}

@media(max-width:1200px){.report-layout{grid-template-columns:1fr}.report-field-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.two-col{grid-template-columns:1fr 1fr}}
@media(max-width:1000px){.two-col{grid-template-columns:1fr}.report-field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){
  .app-shell,.app-shell.sidebar-collapsed{grid-template-columns:1fr;grid-template-areas:"top" "main"}.sidebar{position:fixed;left:0;top:60px;width:min(86vw,330px);height:calc(100dvh - 60px);min-height:0;transform:translateX(-105%);box-shadow:var(--shadow);z-index:30}.sidebar.open{transform:translateX(0)}.sidebar-overlay{inset:60px 0 0}.app-shell.sidebar-collapsed .sidebar nav button{font-size:13px;gap:10px;justify-content:flex-start;padding:9px 11px}.app-shell.sidebar-collapsed .sidebar nav button span{font-size:17px}.app-shell.sidebar-collapsed .nav-caption,.app-shell.sidebar-collapsed .sidebar-foot{display:grid}
  .topbar{height:60px;padding:0 10px}.content{padding:12px}.page-head{flex-direction:column;align-items:stretch}.page-head h2{font-size:20px}.brand-block b,.brand-block small{max-width:190px}.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.report-field-grid{grid-template-columns:1fr 1fr}.task-item{grid-template-columns:1fr}.task-actions{justify-items:start}.task-actions .page-actions{justify-content:flex-start}.notification-item{grid-template-columns:1fr}.notification-actions{min-width:0;justify-content:flex-start}.subsystem-tabs,.subnav{flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;scrollbar-width:none;padding-bottom:5px}.subsystem-tabs::-webkit-scrollbar,.subnav::-webkit-scrollbar{display:none}.classic-tabs,.tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.classic-tabs::-webkit-scrollbar,.tabs::-webkit-scrollbar{display:none}.case-toolbar{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}.case-toolbar::-webkit-scrollbar{display:none}.case-toolbar .btn{flex:0 0 auto}
}
@media(max-width:560px){
  .content{padding:10px}.topbar-actions .user-chip{display:none}.brand-block small{display:none}.brand-block b{font-size:13px;max-width:150px}.page-head h2{font-size:19px}.report-field-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.panel-body{padding:12px}.panel-head{padding:10px 12px}.kpi{min-height:84px}.kpi b{font-size:24px}.page-actions{gap:6px}.page-actions .btn{max-width:100%}.mini-kv{grid-template-columns:1fr;gap:2px}.mini-kv span:nth-child(even),.mini-kv b{text-align:left;margin-bottom:8px}.notification-actions{flex-wrap:wrap}.task-assignee{align-items:flex-start}.modal,.modal.wide{max-height:94dvh}
}
.case-main-pane .feature-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.case-main-pane .feature-card{min-height:0;padding:14px}.case-main-pane .feature-card .btn{margin-top:8px}

/* v1.3 — единый визуальный ритм, кастомные элементы управления и скроллбары */
:root{
  --section-gap:18px;
  --block-gap:14px;
  --field-gap:12px;
  --control-border:#aebdca;
  --control-border-hover:#7f9db7;
  --control-bg:#fff;
  --control-bg-disabled:#edf2f6;
  --focus-ring:0 0 0 3px rgba(31,95,157,.16);
  --scroll-track:#e7edf3;
  --scroll-thumb:#9eafbf;
  --scroll-thumb-hover:#728ba2;
  --dropdown-shadow:0 14px 36px rgba(14,42,68,.22);
}

/* Единая вертикальная сетка: соседние крупные блоки больше не «слипаются». */
.content > *{margin-block:0}
.content > * + *{margin-top:var(--section-gap)}
.content > .page-head{margin-bottom:0}
.content > .page-head + *{margin-top:var(--block-gap)}
#subsystemBody > * + *,#adminBody > * + *,#distBody > * + *,#caseTabBody > * + *,#statWork > * + *,#statExplorer > * + *{margin-top:var(--block-gap)}
.panel-body > * + *, .modal-body > * + *, .case-detail-content > * + *, .tabs-content > * + *{margin-top:var(--field-gap)}
.panel-body > .form-grid + .page-actions,.modal-body > .form-grid + .page-actions{margin-top:var(--block-gap)}
.panel-body > label,.modal-body > label{display:grid;gap:7px;font-size:13px;font-weight:600;color:#42586c}
.panel-body > label + label,.modal-body > label + label{margin-top:var(--field-gap)}
.spacer{display:none!important;height:0!important;margin:0!important}
.grid-2 + .panel,.grid-3 + .panel,.grid-4 + .panel,.two-col + .panel,.feature-grid + .panel,.overview-strip + .panel{margin-top:var(--block-gap)}
.panel + .grid-2,.panel + .grid-3,.panel + .grid-4,.panel + .two-col{margin-top:var(--block-gap)}
.subsystem-tabs + #subsystemBody,.subnav + #distBody{margin-top:var(--block-gap)}

/* Панели и карточки. */
.panel{border-color:#ccd7e1;box-shadow:0 4px 13px rgba(20,45,70,.065)}
.panel-head{background:linear-gradient(180deg,#ffffff 0%,#f3f6f9 100%)}
.panel-head + .panel-body{border-top:0}
.kpi{box-shadow:0 2px 7px rgba(20,45,70,.035)}
.feature-card,.overview-box,.task-item,.search-result{box-shadow:0 2px 7px rgba(20,45,70,.035)}
.page-actions{align-items:center;row-gap:8px}
.page-actions:empty{display:none}

/* Все текстовые поля имеют один внешний вид вне зависимости от контейнера. */
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),textarea,select{
  width:100%;min-width:0;min-height:var(--control-h);padding:9px 11px;
  color:#182838;background:var(--control-bg);border:1px solid var(--control-border);border-radius:7px;
  outline:none;box-shadow:inset 0 1px 1px rgba(20,45,70,.025);transition:border-color .14s ease,box-shadow .14s ease,background .14s ease;
}
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):hover,textarea:hover,select:hover{border-color:var(--control-border-hover)}
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):focus,textarea:focus,select:focus{border-color:#3677af;box-shadow:var(--focus-ring)}
input::placeholder,textarea::placeholder{color:#8997a4;opacity:1}
input:disabled,textarea:disabled,select:disabled,input[readonly],textarea[readonly]{background:var(--control-bg-disabled);color:#6f7d89;border-color:#c9d3dc;cursor:not-allowed}
textarea{resize:vertical;min-height:94px}
textarea[rows="14"],textarea[rows="16"]{min-height:260px}
input[type="file"]{max-width:100%;min-height:40px;padding:5px 7px;border:1px solid var(--control-border);border-radius:7px;background:#fff;color:#33485b}
input[type="file"]::file-selector-button{min-height:28px;margin-right:10px;padding:5px 10px;border:1px solid #9eafbe;border-radius:5px;background:#f2f6f9;color:#24405a;font-weight:600;cursor:pointer}
input[type="file"]::file-selector-button:hover{background:#e8f0f6}

/* Собственные checkbox/radio вместо разного системного оформления браузеров. */
input[type="checkbox"],input[type="radio"]{
  appearance:none;-webkit-appearance:none;display:inline-grid;place-content:center;
  width:18px;height:18px;min-width:18px;min-height:18px;margin:0;
  border:1px solid #8fa2b4;background:#fff;box-shadow:inset 0 1px 1px rgba(0,0,0,.04);cursor:pointer;transition:.12s ease;
}
input[type="checkbox"]{border-radius:4px}
input[type="radio"]{border-radius:50%}
input[type="checkbox"]:before{content:"";width:9px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) scale(0);transform-origin:center;margin-top:-2px;transition:transform .1s ease}
input[type="radio"]:before{content:"";width:8px;height:8px;border-radius:50%;background:#fff;transform:scale(0);transition:transform .1s ease}
input[type="checkbox"]:checked,input[type="radio"]:checked{background:var(--accent);border-color:#174f82}
input[type="checkbox"]:checked:before,input[type="radio"]:checked:before{transform:rotate(-45deg) scale(1)}
input[type="radio"]:checked:before{transform:scale(1)}
input[type="checkbox"]:hover,input[type="radio"]:hover{border-color:#3a75a7}
input[type="checkbox"]:focus-visible,input[type="radio"]:focus-visible{outline:none;box-shadow:var(--focus-ring)}
input[type="checkbox"]:disabled,input[type="radio"]:disabled{background:#e8edf2;border-color:#bdc8d2;cursor:not-allowed}

/* Нативный select оставлен как аварийный fallback; после JS-улучшения скрывается. */
select{appearance:none;-webkit-appearance:none;padding-right:38px;background-image:linear-gradient(45deg,transparent 50%,#4d657b 50%),linear-gradient(135deg,#4d657b 50%,transparent 50%);background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.custom-select{position:relative;width:100%;min-width:0}
.custom-select-source{position:absolute!important;width:1px!important;height:1px!important;min-height:1px!important;padding:0!important;margin:0!important;opacity:0!important;pointer-events:none!important;clip-path:inset(50%);overflow:hidden}
.custom-select-trigger{
  width:100%;min-height:var(--control-h);display:grid;grid-template-columns:minmax(0,1fr) 26px;align-items:center;gap:8px;
  padding:8px 9px 8px 11px;border:1px solid var(--control-border);border-radius:7px;background:#fff;color:#182838;
  text-align:left;cursor:pointer;box-shadow:inset 0 1px 1px rgba(20,45,70,.025);transition:border-color .14s ease,box-shadow .14s ease,background .14s ease;
}
.custom-select-trigger:hover{border-color:var(--control-border-hover);background:#fbfdff}
.custom-select-trigger:focus-visible,.custom-select.open .custom-select-trigger{outline:none;border-color:#3677af;box-shadow:var(--focus-ring)}
.custom-select-trigger:disabled{background:var(--control-bg-disabled);color:#6f7d89;cursor:not-allowed;border-color:#c9d3dc}
.custom-select-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.35}
.custom-select-arrow{width:24px;height:24px;border-radius:5px;display:grid;place-items:center;color:#536b80;transition:transform .14s ease,background .14s ease}
.custom-select-trigger:hover .custom-select-arrow{background:#edf3f8}
.custom-select.open .custom-select-arrow{transform:rotate(180deg)}

.custom-select.invalid .custom-select-trigger{border-color:#b9473e;box-shadow:0 0 0 3px rgba(185,71,62,.12)}
.custom-select-menu{
  position:fixed;z-index:5000;display:none;min-width:180px;max-height:min(320px,46vh);overflow:auto;
  padding:5px;background:#fff;border:1px solid #9eb0c0;border-radius:8px;box-shadow:var(--dropdown-shadow);
}
.custom-select-menu.open{display:block}
.custom-select-option{
  width:100%;min-height:36px;padding:8px 10px;border:0;border-radius:5px;background:transparent;color:#203449;
  text-align:left;cursor:pointer;display:flex;align-items:center;gap:8px;line-height:1.3;
}
.custom-select-option:hover,.custom-select-option:focus-visible{outline:none;background:#e8f1f8;color:#163f63}
.custom-select-option[aria-selected="true"]{background:#dbeaf6;color:#133f63;font-weight:700}
.custom-select-option[disabled]{opacity:.45;cursor:not-allowed;background:transparent}

.form-grid .custom-select,.stack-form .custom-select,.panel-body>label .custom-select,.modal-body>label .custom-select{width:100%}
.toolbar .custom-select{flex:1 1 180px;min-width:150px;max-width:360px}
.page-actions .custom-select{flex:0 1 250px;min-width:180px}
.searchbar .custom-select{min-width:0}

/* Кнопки, вкладки и служебные элементы. */
.btn{box-shadow:0 1px 2px rgba(18,43,66,.035);transition:background .13s ease,border-color .13s ease,box-shadow .13s ease,transform .06s ease}
.btn:hover:not(:disabled){filter:none;background:#edf3f7;border-color:#8399ad}
.btn.primary:hover:not(:disabled){background:#174f82;border-color:#123f69}
.btn.success:hover:not(:disabled){background:#195f4d;border-color:#164f41}
.btn.danger:hover:not(:disabled){background:#8e3029;border-color:#762720}
.btn:active:not(:disabled){transform:translateY(1px)}
.btn.ghost:hover:not(:disabled){background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.42)}
.subsystem-tabs,.subnav{margin-bottom:0}
.subsystem-tabs button,.subnav button,.classic-tabs button,.tabs button{transition:background .13s ease,border-color .13s ease,color .13s ease}
.subsystem-tabs button:hover,.subnav button:hover,.classic-tabs button:hover,.tabs button:hover{background:#e5eef5;border-color:#92a9bc}
.subsystem-tabs button.active,.subnav button.active{box-shadow:0 2px 5px rgba(25,70,110,.12)}

/* Поля действий: select/input/button не должны выглядеть склеенными. */
.toolbar,.page-actions,.control-actions{column-gap:8px;row-gap:8px}
.panel-body>.page-actions{padding-top:1px}
.panel-body>.page-actions input:not([type="checkbox"]):not([type="radio"]),.panel-body>.page-actions .custom-select{min-width:180px}
.panel-body>.page-actions input{flex:1 1 220px;max-width:420px}
.form-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* Таблицы и области прокрутки. */
.table-wrap{border-radius:0 0 7px 7px;overscroll-behavior:contain;scrollbar-gutter:stable}
.data-table th:last-child,.data-table td:last-child{border-right:0}
.data-table tbody tr:last-child td{border-bottom:0}
.decision-text,.mini-list,.modal,.instance-chain,.table-wrap,.subsystem-tabs,.subnav,.classic-tabs,.tabs,.case-toolbar,.custom-select-menu,textarea,body,.sidebar nav{
  scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track);
}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:var(--scroll-track);border-radius:999px}
::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border:3px solid var(--scroll-track);border-radius:999px;min-height:34px}
::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover)}
::-webkit-scrollbar-corner{background:var(--scroll-track)}
.sidebar nav::-webkit-scrollbar{width:9px}.sidebar nav::-webkit-scrollbar-thumb{border-width:2px}
.custom-select-menu::-webkit-scrollbar{width:9px}.custom-select-menu::-webkit-scrollbar-thumb{border-width:2px}
textarea::-webkit-scrollbar{width:9px}.table-wrap::-webkit-scrollbar{height:10px;width:10px}

/* Навигация должна прокручиваться внутри панели, а не обрезаться. */
.sidebar nav{overflow-y:auto;overflow-x:hidden;min-height:0;flex:1}
.sidebar-foot{flex:0 0 auto}

/* Компактные административные формы. */
#adminBody .grid-4 + .panel,#adminBody .grid-4 + .grid-2,#adminBody .two-col + .panel{margin-top:var(--block-gap)}
#adminBody .panel-body .page-actions{justify-content:flex-start}
#adminBody .panel-body .page-actions > .custom-select{max-width:280px}
#adminBody .panel-body .page-actions > input{max-width:360px}

/* Технические текстовые поля XML читаются как редакторы, но остаются частью дизайн-системы. */
#xmlIn,#xmlOut{font-family:var(--mono);font-size:12px;line-height:1.5;background:#fbfcfe}
#xmlResult:empty{display:none}

@media(max-width:820px){
  :root{--section-gap:14px;--block-gap:12px;--field-gap:10px}
  .content > * + *{margin-top:var(--section-gap)}
  .toolbar .custom-select,.page-actions .custom-select{max-width:none;flex:1 1 180px}
  .custom-select-menu{max-height:min(300px,45vh)}
}
@media(max-width:560px){
  .page-actions{width:100%}
  .page-actions>.btn{flex:0 1 auto}
  .panel-body>.page-actions input,.panel-body>.page-actions .custom-select{max-width:none;flex:1 1 100%}
  .toolbar .custom-select{flex:1 1 100%;max-width:none}
  .custom-select-menu{max-height:42vh}
}
/* Состояние активной вкладки не должно теряться при наведении. */
.subsystem-tabs button.active:hover,.subnav button.active:hover{background:#1d588c;border-color:#17476f;color:#fff}
.classic-tabs button.active:hover,.tabs button.active:hover{background:#fff;border-color:#9fb0bf;color:var(--ink)}

/* v1.4 — процессуальная целостность карточки дела. */
.readonly-field{
  min-height:38px;border:1px solid #c9d5df;border-radius:6px;background:#f3f6f8;padding:7px 10px;
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#213548
}
.readonly-field small{display:block;flex-basis:100%;color:#65798b;line-height:1.25}
.process-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.process-summary>div{border:1px solid #c9d7e3;border-left:4px solid #2c6da3;background:#fff;border-radius:7px;padding:10px 12px;min-width:0}
.process-summary small{display:block;color:#65798b;margin-bottom:4px}.process-summary b{font-size:14px;line-height:1.3}
.process-summary.problem>div{border-left-color:#9b4039}.process-summary.ok>div:nth-child(3){border-left-color:#2c7b62}
.validation-box{border:1px solid #d8aaa6;border-left:4px solid #a8473f;background:#fff7f6;border-radius:7px;padding:10px 12px;margin-bottom:14px}
.validation-box b{color:#7f2e28}.validation-box ul{margin:7px 0 0 18px;padding:0}.validation-box li+li{margin-top:4px}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:12px 0 10px}
.section-heading h3{margin:0 0 2px}.section-heading p{margin:0;color:#65798b}
.process-timeline{margin-top:12px}.process-timeline .timeline-item{grid-template-columns:112px 14px minmax(0,1fr) auto;align-items:start}
.process-timeline .timeline-main p{margin:5px 0 0}.timeline-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.movement-delete{align-self:center;white-space:nowrap}
@media(max-width:900px){.process-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.process-timeline .timeline-item{grid-template-columns:94px 14px minmax(0,1fr)}.movement-delete{grid-column:3;justify-self:start}}
@media(max-width:560px){.process-summary{grid-template-columns:1fr}.process-timeline .timeline-item{grid-template-columns:80px 12px minmax(0,1fr)}.movement-delete{grid-column:3;width:100%;justify-content:center}}
.movement-actions{display:flex;align-items:center;gap:6px;align-self:center;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:900px){.movement-actions{grid-column:3;justify-self:start}.movement-delete{grid-column:auto}}
@media(max-width:560px){.movement-actions{grid-column:3;width:100%;justify-content:flex-start}.movement-actions .btn{flex:1 1 auto}}

/* v1.5+ · модуль расчета статистики */
.stat-module{overflow:hidden}.stat-toolbar{gap:6px}.toolbar-sep{width:1px;height:26px;background:var(--line);margin:0 2px}.stat-toolbar .mark-left{border-color:#6da989}.stat-toolbar .mark-right{border-color:#c88787}.stat-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,.7fr);gap:var(--block-gap);padding:var(--block-gap);align-items:start}.stat-work-panel,.stat-explorer-panel{margin:0;min-width:0}.stat-explorer-panel{position:sticky;top:8px;max-height:calc(100vh - 150px);display:flex;flex-direction:column}.stat-explorer-panel .tabs-content{overflow:auto;min-height:260px}.stat-statusbar{border-top:1px solid var(--line);border-bottom:0;font-size:11.5px;color:var(--muted)}
.stat-form-list{display:grid;gap:8px}.stat-form-item{width:100%;display:grid;gap:3px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:6px;padding:10px 11px;cursor:pointer;color:var(--text)}.stat-form-item:hover{border-color:#92b2cf;background:#f7fbff}.stat-form-item.active{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent);background:#edf5fb}.stat-form-item b{font-size:12.5px}.stat-form-item span,.stat-form-item small{color:var(--muted);font-size:11px}.stat-form-preview{display:grid;gap:10px;max-width:760px;margin:0 auto;padding:28px}.stat-form-preview h3{margin:0;font-size:18px}.stat-form-preview p{margin:0;color:var(--muted)}.stat-preview-section{display:flex;justify-content:space-between;gap:16px;border:1px solid var(--line);background:#fafcfe;border-radius:6px;padding:10px 12px}.stat-preview-section small{color:var(--muted)}
.stat-result-window{border:1px solid #9eacb8;background:#fff;box-shadow:0 1px 3px rgba(22,52,78,.08)}.stat-result-title{padding:7px 9px;background:#e8eef4;border-bottom:1px solid #bac6d1;font-size:12px;font-weight:700;color:#263f55}.stat-report-table{width:100%;border-collapse:collapse;font-size:11.5px;min-width:660px}.stat-report-table th,.stat-report-table td{border-right:1px solid #d8e0e7;border-bottom:1px solid #d8e0e7;padding:6px 7px}.stat-report-table thead th{background:#f1f4f7;text-align:center;position:sticky;top:0;z-index:1}.stat-report-table thead th:nth-child(2){text-align:left}.stat-report-table tbody th{width:58px;text-align:center;background:#f7f9fb;color:#53677a}.stat-report-table tbody td:nth-child(2){min-width:260px;background:#fbfcfd}.stat-cell{text-align:right;cursor:pointer;user-select:none;min-width:76px;outline:none;background:#fff}.stat-cell:hover,.stat-cell:focus-visible{background:#eaf4fc;box-shadow:inset 0 0 0 2px #6e9fc8}.stat-cell.stat-selected{background:#dbeaf7;box-shadow:inset 0 0 0 2px #2c6b9f}.stat-cell.stat-mark-left{background:#dff3e7!important;box-shadow:inset 0 0 0 2px #4b9b6d}.stat-cell.stat-mark-right{background:#f7dddd!important;box-shadow:inset 0 0 0 2px #b85e5e}.stat-cell.stat-mark-left.stat-mark-right{background:linear-gradient(135deg,#dff3e7 50%,#f7dddd 50%)!important}.stat-cell b{font-family:var(--mono);font-size:12px}
.stat-flk-summary{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--line)}.stat-flk-summary .check-line{margin-left:auto}.stat-flk-row{grid-template-columns:62px minmax(0,1fr) 96px;border-left:3px solid transparent}.stat-flk-row.is-ok{border-left-color:#5a9d77}.stat-flk-row.is-bad{border-left-color:#b75b55;background:#fff8f7}.stat-flk-row>div:nth-child(2){min-width:0}.stat-flk-row small{display:block;color:var(--muted);margin-top:3px;white-space:normal;word-break:break-word}.stat-flk-row>div:last-child{display:grid;justify-items:end;gap:6px}.stat-container-tools{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.stat-container-tools input{min-width:220px;flex:1 1 260px}.stat-container-tools .btn{flex:0 0 auto}.stat-container-count{font-size:11.5px;color:var(--muted);padding:5px 0}.compact-table{font-size:11px}.case-container-filter{display:flex;align-items:center;gap:10px;margin-bottom:var(--block-gap)}
@media (max-width:1100px){.stat-layout{grid-template-columns:1fr}.stat-explorer-panel{position:static;max-height:none}.stat-explorer-panel .tabs-content{max-height:none}.stat-container-tools input{flex-basis:100%}}
@media (max-width:650px){.stat-layout{padding:8px;gap:8px}.stat-toolbar{align-items:stretch}.stat-toolbar .btn{flex:1 1 auto}.toolbar-sep{display:none}.stat-explorer-tabs{overflow-x:auto;flex-wrap:nowrap}.stat-container-tools>*{width:100%;flex-basis:100%!important}.stat-form-preview{padding:16px}.stat-preview-section{display:grid}.case-container-filter{align-items:flex-start;flex-direction:column}}


/* v1.6 · распределение дел */
.compact-field{display:grid;gap:4px;min-width:168px;font-size:11.5px;color:var(--muted)}
.compact-field input{color:var(--text);font-size:12px}
.distribution-tabs{margin-bottom:var(--block-gap)}
.distribution-top{align-items:start}
.check-col{width:38px;text-align:center}
.check-label{display:inline-flex!important;align-items:center;gap:9px;min-height:32px;cursor:pointer;font-weight:500}
.check-label input{flex:0 0 auto}
.check-list{display:grid;gap:8px;max-height:430px;overflow:auto;padding:4px 2px}
.settings-grid small{display:block;margin-top:4px;color:var(--muted);font-weight:400}
.mini-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
.mini-kpi-grid>div{border:1px solid var(--line);background:#f8fafc;border-radius:6px;padding:9px 10px;display:grid;gap:3px}
.mini-kpi-grid span{font-size:11px;color:var(--muted)}
.mini-kpi-grid b{font-size:12.5px}
.row-warning td{background:#fff9ef}
.weight small{display:block;font-weight:400;color:var(--muted);font-size:10.5px;margin-top:2px}
.calendar-grid .selected-day{box-shadow:inset 0 0 0 2px var(--accent);background:#e9f3fb}
.case-dist-card{border:1px solid var(--line);border-radius:7px;background:#fff;padding:10px 11px;margin-bottom:8px;display:grid;gap:6px}
.case-dist-card.has-issues{border-left:4px solid #c56a56;background:#fffaf7}
.case-dist-card small{color:var(--muted)}
.validation-list{display:flex;flex-wrap:wrap;gap:5px}
.validation-list span{font-size:10.5px;padding:3px 6px;border-radius:10px;background:#f7dddd;color:#7e302e}
.modal-table{max-height:380px;overflow:auto;margin:10px 0}
.notice.warning{border-left-color:#c88b25;background:#fff8e8}
.summary-strip{display:flex;gap:16px;flex-wrap:wrap;padding:8px 0;font-size:12px;color:var(--muted)}
.panel-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
@media(max-width:900px){.mini-kpi-grid{grid-template-columns:1fr}.distribution-tabs{overflow-x:auto;flex-wrap:nowrap}.distribution-tabs button{white-space:nowrap}}

/* v1.6 · составы суда и распределение */
.compact-subnav{margin-bottom:var(--space-3,12px)}
.composition-filters{justify-content:flex-start;align-items:end;margin-bottom:12px}
.composition-filters label{min-width:220px}
.composition-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;padding:12px}
.composition-card{border:1px solid var(--line,#cbd8e4);border-radius:8px;background:var(--surface,#fff);box-shadow:0 2px 7px rgba(32,55,78,.06);overflow:hidden}
.composition-card header,.composition-card footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:#f6f9fc}
.composition-card header{border-bottom:1px solid var(--line,#cbd8e4)}
.composition-card footer{border-top:1px solid var(--line,#cbd8e4);justify-content:flex-end}
.composition-card header small{display:block;margin-top:2px;color:var(--muted,#60758a)}
.composition-card .mini-kv{padding:12px;grid-template-columns:minmax(130px,.7fr) minmax(150px,1fr)}
@media (max-width:720px){.composition-cards{grid-template-columns:1fr;padding:8px}.composition-filters{align-items:stretch}.composition-filters label{min-width:0;width:100%}}
.segmented{display:inline-flex;align-items:center;gap:0;border:1px solid var(--control-border);border-radius:7px;overflow:hidden;background:#fff}
.segmented .btn{border:0;border-radius:0;box-shadow:none;min-height:34px}
.segmented .btn + .btn{border-left:1px solid var(--control-border)}
.segmented .btn.primary{background:var(--accent);color:#fff}
@media(max-width:650px){.segmented{width:100%;display:grid;grid-template-columns:1fr 1fr}.segmented .btn{width:100%}}

/* v1.7 — первичные реквизиты и расчет сложности */
.complexity-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 14px}.complexity-person{border:1px solid var(--line,#c9d5e2);border-radius:8px;padding:12px;background:rgba(255,255,255,.55)}.complexity-person>b{display:block;margin-bottom:8px}.success-note{border-left-color:#2c7a55}.weight small{display:block;margin-top:3px}.validation-box{margin:10px 0 14px}.validation-box ul{margin:8px 0 0 20px}.data-table td small{display:block;margin-top:3px;color:var(--muted,#5f7185)}@media(max-width:760px){.complexity-summary{grid-template-columns:1fr}}

/* v1.8 — специализированная картотека, быстрый поиск и персональные колонки */
.quick-number-search{display:flex;align-items:end;gap:8px;flex-wrap:wrap;padding:10px 12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f8fafc}.quick-number-search label{display:grid;gap:5px;min-width:min(360px,100%);flex:1 1 320px;font-size:12px;color:var(--muted)}.quick-number-search label input{color:var(--ink)}.quick-number-search small{align-self:center;color:var(--muted);white-space:nowrap}.case-search-toolbar{border-bottom:0}.mini-case-search{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:5px}.mini-case-search input{min-width:0}
.case-registry-table{table-layout:fixed;min-width:100%}.case-registry-table th{position:relative;user-select:none;cursor:grab}.case-registry-table th:active{cursor:grabbing}.case-registry-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.case-registry-table td:hover{white-space:normal;overflow:visible}.col-resizer{position:absolute;right:-3px;top:0;width:7px;height:100%;cursor:col-resize;z-index:2}.col-resizer:after{content:"";position:absolute;left:3px;top:22%;height:56%;width:1px;background:#a8b6c3;opacity:.7}.resizing-columns,.resizing-columns *{cursor:col-resize!important;user-select:none!important}.column-settings-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px;margin-bottom:12px}.column-settings-list .check-line{border:1px solid var(--line);border-radius:6px;padding:8px 10px;background:#fbfcfd}
.search-pick-list{display:grid;gap:6px}.search-pick{display:grid;gap:3px;width:100%;text-align:left;border:1px solid var(--line);border-radius:7px;background:#fff;padding:10px 12px;cursor:pointer;color:var(--ink)}.search-pick:hover,.search-pick:focus-visible{background:#edf5fb;border-color:#8fb2cf;outline:none}.search-pick span{font-size:11.5px;color:var(--muted)}
.card-validation{margin:0 0 12px;border:1px solid var(--line);border-left:4px solid #5a9d77;border-radius:7px;padding:10px 12px;background:#f8fffb;font-size:12px}.card-validation.warn{border-left-color:#c3942f;background:#fffaf0}.card-validation.problem{border-left-color:#b75b55;background:#fff7f6}.card-validation ul{margin:7px 0 0 18px;padding:0}.card-validation li{margin:3px 0}.card-validation li.error{color:#8f342e;font-weight:650}.case-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}.case-card-table thead th{background:#e7edf3;color:#263c50;border:1px solid #cbd5df;padding:7px 8px;text-align:left;font-size:11.5px}.case-card-table thead th:first-child{width:54px}.case-card-table tbody td:first-child{width:54px;text-align:center;background:#f1f4f7}.case-card-table tbody td:nth-child(2){width:43%;background:#eef2f5}.case-card-table tbody td:nth-child(3){background:#fff}.case-card-table tr.field-closed td:nth-child(3){background:#fff6c9}.case-card-table td small{display:block;color:var(--muted);margin-top:3px;font-size:10.5px}.distribution-flag{color:#9a3f33;font-weight:800}.required-mark{color:#b33d35}.card-fieldset{border:1px solid var(--line);border-radius:8px;padding:12px;margin:0 0 12px;background:#fbfcfd}.card-fieldset legend{padding:0 7px;font-weight:700;color:#29465f}.card-fieldset label small{display:block;color:var(--muted);font-weight:400;line-height:1.35;margin-top:4px}
@media(max-width:720px){.column-settings-list{grid-template-columns:1fr}.quick-number-search>*{width:100%}.quick-number-search small{white-space:normal}.case-card-table thead th:first-child,.case-card-table tbody td:first-child{width:42px}.case-card-table tbody td:nth-child(2){width:44%}}
.participant-detail{margin-bottom:12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd;overflow:hidden}.participant-questionnaire{padding:12px}.participant-questionnaire .section-heading{margin-bottom:10px}.participant-questionnaire .mini-kv{grid-template-columns:minmax(150px,.8fr) minmax(180px,1.2fr)}[data-person-row]{cursor:pointer}[data-person-row]:hover,[data-person-row]:focus-visible{background:#eef6fc;outline:none}


/* v1.9 — сервисные инструменты картотеки */
.service-tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--border);padding:0 0 10px;margin-bottom:12px}.service-tabs button{min-height:34px;border:1px solid var(--border-strong);background:var(--surface);border-radius:6px;padding:6px 12px;color:var(--text);cursor:pointer}.service-tabs button.active{background:var(--primary);border-color:var(--primary);color:#fff}.service-toolbar-note,.result-summary{padding:8px 10px;margin-bottom:10px;background:var(--surface-alt);border-left:3px solid var(--primary);border-radius:4px}.flex-query-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:10px}.flex-query-row{display:grid;grid-template-columns:minmax(200px,1.1fr) minmax(150px,.7fr) minmax(220px,1fr) auto;gap:8px;align-items:center;margin-bottom:8px}.folder-picker{display:grid;gap:6px}.interactive-row{cursor:pointer}.interactive-row:hover{background:var(--surface-hover)}
@media(max-width:760px){.flex-query-row{grid-template-columns:1fr}.flex-query-row .btn{justify-self:start}.service-tabs{overflow-x:auto;flex-wrap:nowrap}.service-tabs button{white-space:nowrap}}

.range-inputs{display:grid;grid-template-columns:1fr auto 1fr;gap:6px;align-items:center}.selected-query-strip{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:8px 10px;border-top:1px solid var(--border);background:var(--surface-alt)}.selected-query-strip>span{font-size:12px;color:var(--muted);margin-right:2px}

/* v2.0: офисные шаблоны DOCX */
.doc-template-fields{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.doc-template-fields code{padding:3px 6px;border:1px solid var(--border);border-radius:5px;background:#f3f6f9}.doc-field-search{width:100%;margin-bottom:10px}.doc-field-group{border-top:1px solid var(--border)}.doc-field-group:first-child{border-top:0}.doc-field-group>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 2px;cursor:pointer;font-weight:700;color:#173a59}.doc-field-group>summary small{font-weight:500;color:var(--muted)}.doc-field-catalog{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:7px;padding:0 0 12px}.field-code-chip{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:42px;padding:7px 10px;border:1px solid var(--border);border-radius:6px;background:#fff;color:inherit;text-align:left;cursor:pointer}.field-code-chip:hover,.field-code-chip:focus-visible{border-color:#2367a5;box-shadow:0 0 0 2px rgba(35,103,165,.14)}.field-code-chip span{font-weight:600}.field-code-chip code{white-space:nowrap;color:#2367a5;font-size:11px}


/* v2.3.2 — таблицы заполняют рабочую область по горизонтали */
/*
   Большинство рабочих разделов имеют внутренний horizontal padding, а таблица
   раньше занимала только content-box родителя. Класс table-full-bleed получает
   реальные padding-left/right непосредственного контейнера через enhanceUi().
   Поэтому одно правило работает во всех подсистемах, вкладках и карточках,
   включая контейнеры с отличающимися отступами и адаптивные режимы.
*/
.table-wrap.table-full-bleed{
  margin-left:calc(-1 * var(--table-bleed-left,0px));
  margin-right:calc(-1 * var(--table-bleed-right,0px));
  max-width:none;
  width:auto;
  border-radius:0;
}
.table-wrap.table-bleed-top{
  margin-top:calc(-1 * var(--table-bleed-top,0px));
}
.table-wrap.table-bleed-bottom{
  margin-bottom:calc(-1 * var(--table-bleed-bottom,0px));
}
.table-wrap.table-full-bleed > .data-table{
  width:100%;
  min-width:100%;
}
.table-wrap.table-full-bleed + .table-scroll-hint{
  margin-left:calc(-1 * var(--table-bleed-left,0px));
  margin-right:calc(-1 * var(--table-bleed-right,0px));
}


/* v2.3.4 — устранение пустой полосы у правого края таблиц
   scrollbar-gutter: stable резервировал место под вертикальный scrollbar даже
   когда его нет. Из-за этого table width:100% заканчивалась на 10–15 px раньше
   правой границы панели. Резерв отключён глобально для всех табличных обёрток. */
.table-wrap{
  scrollbar-gutter:auto;
  box-sizing:border-box;
}
.table-wrap:not(.table-full-bleed){
  width:100%;
}
.table-wrap > .data-table{
  box-sizing:border-box;
}

/* v2.9 — таблицы в панелях без внутренних белых полей */
/*
   panel-table-body применяется к панелям, где содержимое — только таблица:
   заголовок панели сразу переходит в thead, а таблица доходит до обеих боковых
   границ. panel-edge-bleed используется для таблиц, находящихся глубже внутри
   panel-body (например, журнал аудита карточки), чтобы убрать только боковые
   отступы, сохранив отступы у окружающего текста.
*/
.panel-body{--panel-edge-pad:15px}
.panel-body.panel-table-body{padding:0}

/* v2.8.19 · table-only panel fallback: no white strip between panel header and table.
   Handles older/current markup where panel-table-body may be absent. */
.panel>.panel-head+.panel-body:has(>.table-wrap:first-child:last-child){padding:0!important}
.panel>.panel-head+.panel-body:has(>.table-wrap:first-child:last-child)>.table-wrap{margin:0!important;width:100%;max-width:100%;border-radius:0 0 7px 7px}
.panel-body.panel-table-body>.table-wrap{margin:0;width:100%;max-width:100%;border-radius:0 0 7px 7px}
.panel-body.panel-table-body>.table-scroll-hint{margin:0}
.panel-body .table-wrap.panel-edge-bleed{
  margin-left:calc(-1 * var(--panel-edge-pad));
  margin-right:calc(-1 * var(--panel-edge-pad));
  width:calc(100% + (2 * var(--panel-edge-pad)));
  max-width:none;
  border-radius:0;
}
.panel-body .table-wrap.panel-edge-bleed+.table-scroll-hint{
  margin-left:calc(-1 * var(--panel-edge-pad));
  margin-right:calc(-1 * var(--panel-edge-pad));
}
@media(max-width:760px){.panel-body{--panel-edge-pad:12px}}

/* v2.4 · расширенный документооборот */
.docflow-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.document-preview{white-space:pre-wrap;border:1px solid var(--line);border-radius:6px;background:#fbfcfd;padding:10px 12px;min-height:48px}.embedded-list{background:#f8fafc!important;padding:10px 14px!important}.embedded-list>.table-wrap{margin-top:4px}.compact-input{width:100%;min-width:120px;border:1px solid #b9c5d0;border-radius:4px;padding:5px 7px}.check-line{display:block;padding:6px 8px;border-bottom:1px solid #e4e9ee;font-size:12px}.check-line:last-child{border-bottom:0}

/* v2.6 — номерообразование */
.numbering-preview{border:1px solid var(--line);background:#f7fafc;border-radius:7px;padding:11px 12px;margin:12px 0}.numbering-preview.compact{margin:0}.numbering-preview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.numbering-preview-grid>div{display:grid;gap:3px;border-right:1px solid var(--line);padding-right:10px}.numbering-preview-grid>div:last-child{border-right:0}.numbering-preview-grid small{color:var(--muted);font-size:10.5px}.numbering-preview-grid b{font-family:var(--mono);font-size:13px}.danger-text{color:#8a3028;font-weight:700}@media(max-width:760px){.numbering-preview-grid{grid-template-columns:1fr 1fr}.numbering-preview-grid>div{border-right:0;border-bottom:1px solid var(--line);padding:5px 0}}

/* v2.7 — регистрационные карточки обращений граждан */
.appeal-filter{align-items:center}.appeal-filter .check-line{white-space:nowrap;margin-left:auto}
.appeal-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.appeal-card-grid .appeal-span{grid-column:1/-1}.appeal-card-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}.appeal-card-summary>div{border:1px solid var(--line);border-radius:7px;background:#f7fafc;padding:9px 10px;display:grid;gap:3px}.appeal-card-summary small{color:var(--muted)}.appeal-card-summary b{font-size:12px}.appeal-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}.appeal-text{padding:12px 14px;border-top:1px solid var(--line);white-space:pre-wrap;line-height:1.45;background:#fbfcfd}.appeal-oral{background:#fbfcfd}.data-table tr.danger-row td{background:#fff1ef}
@media(max-width:900px){.appeal-card-grid,.appeal-detail-grid{grid-template-columns:1fr}.appeal-card-grid .appeal-span{grid-column:auto}.appeal-card-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.appeal-filter .check-line{margin-left:0}}
@media(max-width:560px){.appeal-card-summary{grid-template-columns:1fr}}

/* v2.8.3 — единое примыкание таблиц и служебные столбцы */
/*
   Любая таблица, являющаяся непосредственным содержимым panel-body,
   автоматически получает panel-edge-bleed. Если в panel-body кроме таблицы
   ничего нет, JS назначает panel-table-body и полностью убирает внутренний
   padding. Это устраняет белые полосы и разный левый/правый отступ между
   подсистемами, не затрагивая таблицы внутри ячеек и карточек.
*/
.panel-body > .table-wrap.panel-edge-bleed{
  margin-left:calc(-1 * var(--panel-edge-pad));
  margin-right:calc(-1 * var(--panel-edge-pad));
  width:calc(100% + (2 * var(--panel-edge-pad)));
  max-width:none;
  border-radius:0;
}
.panel-body.panel-table-body > .table-wrap{
  margin:0!important;
  width:100%;
  max-width:100%;
}
/* Внутренняя опись является вложенной таблицей, но визуально должна занимать
   всю ширину раскрытой строки. Заголовок сохраняет читаемый внутренний отступ. */
.data-table td.embedded-list{
  padding:10px 0 0!important;
}
.data-table td.embedded-list > .section-title{
  margin:0;
  padding:0 14px 9px;
}
.data-table td.embedded-list > .table-wrap{
  margin:0;
  width:100%;
  max-width:100%;
}
/* Служебный столбец не должен выглядеть как случайная пустая колонка. */
.data-table th.utility-column{white-space:nowrap}
.data-table th.choice-column{width:72px;min-width:72px;text-align:center}
.data-table td.utility-empty-column,.data-table th.utility-empty-column{display:none!important}
/* Если таблица завершает panel-body, нижний padding не образует белую полосу. */
.panel-body > .table-wrap.panel-edge-bleed:last-child,
.panel-body > .table-wrap.panel-edge-bleed:has(+ .table-scroll-hint:last-child){
  margin-bottom:calc(-1 * var(--panel-edge-pad));
}
.panel-body > .table-wrap.panel-edge-bleed + .table-scroll-hint{
  margin-top:0;
}
.panel-body > .table-wrap.panel-edge-bleed + .table-scroll-hint:last-child{
  margin-bottom:calc(-1 * var(--panel-edge-pad));
}
/* Терминальная full-bleed таблица (в том числе внутри динамического контейнера)
   доходит до нижней границы панели без 15-пиксельной белой полосы. */
.panel-body .table-wrap.panel-edge-bottom{
  margin-bottom:calc(-1 * var(--panel-edge-pad));
}
.panel-body .table-wrap.panel-edge-bottom + .table-scroll-hint:last-child{
  margin-bottom:calc(-1 * var(--panel-edge-pad));
}

/* v2.8.4 — единая современная иконография Font Awesome 7 */
.app-icon{display:inline-block;flex:0 0 auto;width:1em;height:1em;line-height:1;vertical-align:-.125em;color:currentColor}
svg.app-icon,svg.svg-inline--fa{overflow:visible;box-sizing:content-box}
.btn .app-icon,.icon-btn .app-icon{font-size:1em}
.icon-btn .app-icon{width:1.05em;height:1.05em}
.nav-icon{width:20px!important;min-width:20px;display:inline-flex!important;align-items:center;justify-content:center;color:#35688e}
.nav-icon .app-icon{width:1.05em;height:1.05em}
.brand-mark .app-icon,.emblem .app-icon,.feature-icon .app-icon{width:1em;height:1em}
.feature-icon{display:flex;align-items:center;min-height:28px}
.feature-icon .app-icon{font-size:24px}
.xbtn{display:inline-flex!important;align-items:center;justify-content:center}
.xbtn .app-icon{font-size:18px}
.custom-select-arrow{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;transition:transform .14s ease}
.custom-select.open .custom-select-arrow{transform:rotate(180deg)}
.custom-select-check{width:14px;min-width:14px;display:inline-flex;align-items:center;justify-content:center;color:#1e659c;opacity:0}
.custom-select-option[aria-selected="true"] .custom-select-check{opacity:1}
.custom-select-option-label{min-width:0;overflow:hidden;text-overflow:ellipsis}
.data-table th.sortable{padding-right:30px!important}
.sort-indicator{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;color:#8292a0;font-size:11px;opacity:.52;pointer-events:none}
.data-table th.sortable:hover>.sort-indicator,.data-table th.sort-asc>.sort-indicator,.data-table th.sort-desc>.sort-indicator{opacity:1;color:#174f81}
.app-shell.sidebar-collapsed .sidebar nav button .nav-icon{font-size:18px;margin:0;width:22px!important;min-width:22px}
@media(max-width:820px){.app-shell.sidebar-collapsed .sidebar nav button .nav-icon{font-size:17px}}

/* v2.8.5 — публичные пояснительные плашки удалены.
   operation-result оставлен только для результатов выполняемых пользователем действий. */
.operation-result{font-size:12px;line-height:1.45;color:var(--muted);margin-top:8px;min-height:0}
.operation-result:empty{display:none}

/* v2.8.6 — выравнивание сводных карточек, отчётов и матрицы прав подсистем. */
.subsystem-counts{grid-auto-rows:1fr;align-items:stretch}
.subsystem-counts>.subsystem-count+.subsystem-count{margin-top:0}
.subsystem-count{box-sizing:border-box;min-height:82px;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:5px}
.subsystem-count b{line-height:1}
.subsystem-count small{display:block;line-height:1.25}

.report-layout{align-items:stretch}
.report-layout>.panel+.panel{margin-top:0}
.report-layout>.panel{height:100%;display:flex;flex-direction:column}
.report-layout>.panel>.panel-body{flex:1}

#caseTable{width:100%;min-width:0}
#caseTable>.table-wrap{width:100%;max-width:100%;scrollbar-gutter:auto}
#caseTable .case-registry-table{margin:0}

.subsystem-permission-panel .panel-head{align-items:center}
.inline-control{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;white-space:nowrap}
.inline-control select{min-width:190px}
.subsystem-permission-table th:nth-child(2),.subsystem-permission-table th:nth-child(3),
.subsystem-permission-table td:nth-child(2),.subsystem-permission-table td:nth-child(3){width:150px;text-align:center}
.permission-check{display:inline-flex;align-items:center;gap:7px;justify-content:center;cursor:pointer;white-space:nowrap}
.permission-check input{width:17px;height:17px;margin:0}
.permission-check input:disabled+span{opacity:.55}
@media(max-width:760px){.subsystem-permission-panel .panel-head{align-items:stretch}.subsystem-permission-panel .panel-head>.page-actions{width:100%}.inline-control{flex:1 1 100%;justify-content:space-between}.inline-control select{min-width:0;flex:1}}

/* v2.8.12a — spacing for document action buttons without changing table markup */
.data-table td > [data-correspond],
.data-table td > [data-remove-gen],
/* v2.8.12 · UID */
.numbering-preview-grid>.wide{grid-column:1/-1;border-right:0;border-bottom:1px solid var(--line);padding-bottom:8px}
.field-help{font-size:11px;color:var(--muted);margin-top:10px;line-height:1.45}
.data-table td > [data-del-sub="documents"]{margin:3px 6px 3px 0}

/* v2.8.13 · выбранный суд и УИД в карточке дела */
.case-identity-strip{display:grid;grid-template-columns:minmax(220px,2fr) minmax(150px,1fr) minmax(250px,1.4fr);gap:0;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:#fff;margin-bottom:12px}
.case-identity-strip>div{display:flex;flex-direction:column;gap:4px;min-width:0;padding:10px 12px;border-right:1px solid var(--line)}
.case-identity-strip>div:last-child{border-right:0}
.case-identity-strip small{color:var(--muted);font-size:11px}
.case-identity-strip b{min-width:0;overflow-wrap:anywhere}
@media(max-width:760px){.case-identity-strip{grid-template-columns:1fr}.case-identity-strip>div{border-right:0;border-bottom:1px solid var(--line)}.case-identity-strip>div:last-child{border-bottom:0}}
