:root {
  --bg: #f5f7f9;
  --panel: #ffffff;
  --text: #17212b;
  --muted: #6f7b86;
  --line: #e5e9ed;
  --accent: #2457d6;
  --accent-soft: #eef3ff;
  --success: #18864b;
  --warning: #c78313;
  --danger: #c33c3c;
  --sidebar: #15202b;
  --sidebar-soft: #1d2b38;
  --shadow: 0 12px 30px rgba(19, 31, 45, 0.07);
  --radius: 16px;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--text); background: var(--bg); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

.app-shell { display: grid; grid-template-columns: 248px 1fr; min-height: 100vh; }
.sidebar { background: var(--sidebar); color: #fff; padding: 22px 16px; display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; }
.brand { display: flex; gap: 12px; align-items: center; padding: 0 8px 24px; border-bottom: 1px solid rgba(255,255,255,.08); }
.brand-mark { width: 42px; height: 42px; display: grid; place-items: center; background: #fff; color: var(--sidebar); border-radius: 12px; font-weight: 800; letter-spacing: -.5px; }
.brand-title { font-weight: 750; font-size: 16px; }
.brand-subtitle { color: rgba(255,255,255,.56); font-size: 12px; margin-top: 2px; }
.nav { margin-top: 20px; display: grid; gap: 6px; }
.nav-item { border: 0; background: transparent; color: rgba(255,255,255,.68); padding: 12px 13px; border-radius: 10px; display: flex; gap: 11px; align-items: center; text-align: left; }
.nav-item:hover { background: rgba(255,255,255,.06); color: #fff; }
.nav-item.active { background: var(--sidebar-soft); color: #fff; }
.sidebar-footer { margin-top: auto; border-top: 1px solid rgba(255,255,255,.08); padding: 18px 8px 0; display: flex; gap: 10px; align-items: center; }
.user-avatar { width: 36px; height: 36px; background: #dbe4ff; color: #294798; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: 12px; }
.user-meta { display: grid; min-width: 0; }
.user-meta strong { font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.user-meta span { font-size: 11px; color: rgba(255,255,255,.5); margin-top: 2px; }

.main { min-width: 0; padding: 28px 32px 40px; }
.topbar { display: flex; justify-content: space-between; gap: 20px; align-items: center; margin-bottom: 22px; }
.topbar h1 { margin: 0; font-size: 28px; letter-spacing: -.6px; }
.topbar p { margin: 5px 0 0; color: var(--muted); font-size: 14px; }
.topbar-actions { display: flex; gap: 10px; }
.btn { border: 1px solid transparent; border-radius: 10px; padding: 10px 14px; font-weight: 650; font-size: 14px; }
.btn.primary { background: var(--accent); color: #fff; }
.btn.secondary { background: #fff; border-color: var(--line); color: var(--text); }
.btn.ghost { background: transparent; color: var(--muted); }
.btn:hover { transform: translateY(-1px); }

.view { display: none; }
.active-view { display: block; }
.panel { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }

.filters-panel { padding: 15px; margin-bottom: 16px; }
.search-wrap { position: relative; }
.search-wrap input { width: 100%; height: 44px; border: 1px solid var(--line); border-radius: 11px; padding: 0 14px 0 40px; outline: none; background: #fbfcfd; }
.search-wrap input:focus, select:focus, input:focus, textarea:focus { border-color: #a8b9ec; box-shadow: 0 0 0 3px rgba(36,87,214,.08); }
.search-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: #84909b; }
.filters-row { display: grid; grid-template-columns: 1.3fr 1fr 1fr auto; gap: 10px; margin-top: 10px; }
select, .object-form input, .object-form textarea { width: 100%; border: 1px solid var(--line); border-radius: 10px; background: #fff; padding: 10px 11px; color: var(--text); outline: none; }

.table-panel { overflow: hidden; }
.panel-heading { display: flex; justify-content: space-between; align-items: center; padding: 17px 18px; border-bottom: 1px solid var(--line); }
.panel-heading h2 { margin: 0; font-size: 17px; }
.panel-heading span { display: block; color: var(--muted); font-size: 12px; margin-top: 3px; }
.segmented { background: #f2f4f6; padding: 3px; border-radius: 9px; display: flex; }
.segment { border: 0; background: transparent; padding: 7px 10px; border-radius: 7px; color: var(--muted); font-size: 12px; }
.segment.active { background: #fff; color: var(--text); box-shadow: 0 1px 4px rgba(0,0,0,.08); }

.registry-table { width: 100%; border-collapse: collapse; }
.registry-table th { text-align: left; font-size: 11px; color: #77838e; font-weight: 700; padding: 11px 16px; background: #fafbfc; border-bottom: 1px solid var(--line); }
.registry-table td { padding: 14px 16px; border-bottom: 1px solid var(--line); font-size: 13px; vertical-align: middle; }
.registry-table tr:last-child td { border-bottom: 0; }
.registry-table tbody tr:hover { background: #fafcff; }
.object-link { font-weight: 700; color: var(--text); background: none; border: 0; padding: 0; text-align: left; }
.object-link:hover { color: var(--accent); }
.subtle { color: var(--muted); font-size: 11px; margin-top: 3px; }
.type-badge { display: inline-flex; align-items: center; gap: 7px; color: #42505c; }
.type-symbol { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 7px; background: #f1f4f6; font-size: 12px; }
.status { display: inline-flex; align-items: center; border-radius: 999px; padding: 5px 9px; font-size: 11px; font-weight: 700; }
.status.satisfactory { color: #187547; background: #eaf7f0; }
.status.unsatisfactory { color: #ad3434; background: #fdecec; }
.status.absent { color: #5f6877; background: #eef1f5; }
.row-actions { display: flex; justify-content: flex-end; gap: 4px; }
.icon-btn { width: 34px; height: 34px; border: 0; border-radius: 9px; background: transparent; color: #687581; font-size: 20px; }
.icon-btn:hover { background: #f1f3f5; color: var(--text); }

.cards-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; padding: 14px; }
.object-card { border: 1px solid var(--line); border-radius: 13px; padding: 14px; background: #fff; }
.object-card:hover { box-shadow: 0 10px 24px rgba(27,40,55,.08); }
.object-card-top { display: flex; justify-content: space-between; gap: 8px; }
.object-code { color: var(--muted); font-size: 11px; margin-bottom: 5px; }
.object-card h3 { margin: 0; font-size: 15px; }
.object-card .address { color: var(--muted); margin: 5px 0 13px; font-size: 12px; }
.object-card-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; border-top: 1px solid var(--line); padding-top: 11px; }
.meta-block span { display: block; color: var(--muted); font-size: 10px; margin-bottom: 2px; }
.meta-block strong { font-size: 12px; }

.map-toolbar { padding: 13px; display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-bottom: 14px; }
.search-wrap.compact { width: min(430px, 45vw); }
.map-legend { display: flex; flex-wrap: wrap; gap: 10px 14px; color: var(--muted); font-size: 11px; }
.dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 5px; }
.dot.playground { background: #2b66d9; }
.dot.container { background: #239264; }
.dot.stop { background: #d28922; }
.dot.road { background: #7b55c6; }
.map-panel { overflow: hidden; }
#map { height: calc(100vh - 185px); min-height: 520px; }

.drawer-backdrop, .modal-backdrop { position: fixed; inset: 0; background: rgba(17,27,37,.28); opacity: 0; visibility: hidden; transition: .2s; z-index: 50; }
.drawer-backdrop.open, .modal-backdrop.open { opacity: 1; visibility: visible; }
.drawer { position: fixed; right: 0; top: 0; bottom: 0; height: 100vh; height: 100dvh; max-height: 100dvh; width: min(720px, 92vw); background: #fff; z-index: 60; transform: translateX(100%); transition: .24s ease; box-shadow: -20px 0 50px rgba(14,27,40,.15); display: flex; flex-direction: column; overflow: hidden; overscroll-behavior: contain; }
.drawer.open { transform: translateX(0); }
.drawer-header { padding: 22px 24px 16px; display: flex; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line); flex: 0 0 auto; }
.drawer-header h2 { margin: 8px 0 4px; font-size: 23px; }
.drawer-header p { margin: 0; color: var(--muted); font-size: 13px; }
.object-type-chip { display: inline-flex; background: var(--accent-soft); color: var(--accent); border-radius: 999px; padding: 5px 8px; font-size: 10px; font-weight: 800; }
.drawer-tabs { display: flex; gap: 3px; padding: 9px 16px; border-bottom: 1px solid var(--line); overflow-x: auto; flex: 0 0 auto; }
.drawer-tab { border: 0; background: transparent; color: var(--muted); padding: 9px 10px; border-radius: 8px; white-space: nowrap; font-size: 12px; }
.drawer-tab.active { background: #f1f5ff; color: var(--accent); font-weight: 700; }
.drawer-content { padding: 20px 24px 32px; overflow-x: hidden; overflow-y: auto; flex: 1 1 auto; min-height: 0; overscroll-behavior: contain; }
.info-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.info-card { border: 1px solid var(--line); border-radius: 12px; padding: 13px; }
.info-card span { display: block; color: var(--muted); font-size: 10px; margin-bottom: 5px; }
.info-card strong { font-size: 13px; }
.configured-card-grid{margin-top:14px;align-items:start}.configured-card-grid .card-span-2{grid-column:1/-1}.configured-card-special{min-width:0}.configured-card-special .uds-composition-card{margin-top:0}
.section-title { margin: 24px 0 10px; font-size: 14px; }

/* 0.10.79 — визуальный конструктор карточек */
body.card-builder-open{overflow:hidden}.card-builder-backdrop{position:fixed;inset:0;background:rgba(12,22,35,.58);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:.2s;z-index:180}.card-builder-backdrop.open{opacity:1;visibility:visible}.card-builder{position:fixed;inset:18px;background:#f4f6f9;border:1px solid rgba(255,255,255,.55);border-radius:18px;box-shadow:0 30px 90px rgba(7,18,32,.32);z-index:190;display:flex;flex-direction:column;opacity:0;visibility:hidden;transform:translateY(12px) scale(.99);transition:.2s;overflow:hidden}.card-builder.open{opacity:1;visibility:visible;transform:none}.card-builder-head{background:#fff;border-bottom:1px solid var(--line);padding:15px 20px;display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.card-builder-head>div>span{color:var(--accent);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.card-builder-head h2{margin:3px 0 2px;font-size:21px}.card-builder-head p{margin:0;color:var(--muted);font-size:11px}.card-builder-body{display:grid;grid-template-columns:minmax(275px,320px) minmax(520px,1fr) minmax(250px,290px);min-height:0;flex:1}.card-builder-sidebar,.card-builder-inspector{background:#fff;overflow:auto;min-width:0}.card-builder-sidebar{border-right:1px solid var(--line)}.card-builder-inspector{border-left:1px solid var(--line);padding:18px}.cb-panel{padding:15px;border-bottom:1px solid var(--line)}.cb-panel h3,.cb-panel-head h3{font-size:13px;margin:0}.cb-panel-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;margin-bottom:10px}.cb-panel-head p{font-size:10px;color:var(--muted);margin:3px 0 0;line-height:1.35}.cb-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.cb-meta-grid label,.card-builder-inspector label{display:grid;gap:4px;color:var(--muted);font-size:9px;font-weight:700}.cb-meta-grid label.wide{grid-column:1/-1}.cb-meta-grid input,.cb-meta-grid select,.cb-meta-grid textarea,.card-builder-inspector input,.card-builder-inspector select,.card-builder-inspector textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 9px;background:#fff;color:var(--text);font:inherit;font-size:11px;box-sizing:border-box}.cb-meta-grid input[type="color"]{padding:2px;height:34px}.cb-tabs-list,.cb-fields-list{display:grid;gap:6px}.cb-tab-item,.cb-field-item{border:1px solid var(--line);border-radius:9px;background:#fff;display:flex;align-items:center;gap:6px;padding:6px;transition:.15s}.cb-field-item.selected{border-color:#6f96ef;box-shadow:0 0 0 2px #e8efff}.cb-tab-item.drag-over,.cb-field-item.drag-over,.cb-preview-block.drag-over{border-color:var(--accent);transform:translateY(2px)}.cb-tab-item.dragging,.cb-field-item.dragging,.cb-preview-block.dragging{opacity:.4}.cb-drag{color:#9aa8b8;cursor:grab;font-size:17px;line-height:1}.cb-tab-item label{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:5px;flex:1}.cb-tab-item label input[type="text"],.cb-tab-item label input:not([type]){border:0;background:transparent;min-width:0;padding:5px;font-size:11px;font-weight:700}.cb-field-item>button[data-cb-select]{border:0;background:transparent;text-align:left;min-width:0;flex:1;padding:2px}.cb-field-item strong,.cb-field-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cb-field-item strong{font-size:11px}.cb-field-item small{font-size:9px;color:var(--muted);margin-top:2px}.cb-mini-move{display:flex;gap:2px}.cb-mini-move button{width:23px;height:23px;border:1px solid var(--line);background:#f8fafc;border-radius:6px;color:#5b6c7e;font-size:10px}.cb-mini-move button:disabled{opacity:.3}.cb-add-field{display:grid;grid-template-columns:1fr auto;gap:6px;margin:0 0 9px}.cb-add-field select{min-width:0;border:1px solid var(--line);border-radius:8px;padding:7px;font-size:10px;background:#fff}.card-builder-workspace{overflow:auto;padding:18px;min-width:0}.cb-workspace-title{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:12px}.cb-workspace-title strong,.cb-workspace-title span{display:block}.cb-workspace-title strong{font-size:13px}.cb-workspace-title span{color:var(--muted);font-size:10px;margin-top:2px}.cb-device-switch{display:flex;background:#e8edf4;border-radius:9px;padding:3px}.cb-device-switch button{border:0;background:transparent;border-radius:7px;padding:6px 9px;font-size:10px}.cb-device-switch button.active{background:#fff;box-shadow:0 1px 4px rgba(20,35,55,.12);font-weight:700}.cb-preview-stage{min-height:calc(100% - 46px);display:flex;align-items:flex-start;justify-content:center;padding:12px;border:1px dashed #cbd5e1;border-radius:15px;background-image:linear-gradient(#e7ebf0 1px,transparent 1px),linear-gradient(90deg,#e7ebf0 1px,transparent 1px);background-size:22px 22px}.cb-preview-card{width:min(690px,100%);background:#fff;border-radius:14px;box-shadow:0 12px 35px rgba(26,43,67,.14);overflow:hidden;transition:width .2s}.cb-preview-card.mobile{width:390px}.cb-preview-head{display:flex;justify-content:space-between;padding:18px 20px 13px;border-bottom:1px solid var(--line)}.cb-preview-head span{display:inline-flex;background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:4px 7px;font-size:9px;font-weight:800}.cb-preview-head h3{font-size:18px;margin:6px 0 2px}.cb-preview-head p{font-size:10px;color:var(--muted);margin:0}.cb-preview-head i{font-style:normal;color:#748195}.cb-preview-tabs{padding:6px 10px}.cb-preview-tabs .drawer-tab{font-size:9px;padding:6px 7px}.cb-preview-content{padding:14px}.cb-preview-photo{height:82px;border-radius:11px;background:linear-gradient(135deg,#dce8f9,#edf2f7);display:flex;flex-direction:column;justify-content:flex-end;padding:12px;margin-bottom:10px;color:#3b526d}.cb-preview-photo span{font-size:9px}.cb-preview-photo strong{font-size:12px}.cb-preview-grid{gap:8px}.cb-preview-grid .card-span-2{grid-column:1/-1}.cb-preview-block{position:relative;cursor:pointer;min-width:0}.cb-preview-block.selected{border-color:#2f68e0;box-shadow:0 0 0 3px rgba(47,104,224,.13)}.cb-block-tools{position:absolute;right:5px;top:4px;display:flex;gap:4px;align-items:center;opacity:0;transition:.15s}.cb-preview-block:hover .cb-block-tools,.cb-preview-block.selected .cb-block-tools{opacity:1}.cb-block-tools span,.cb-block-tools b{background:#eaf0ff;color:#2858b9;border-radius:5px;padding:2px 4px;font-size:7px}.cb-block-tools span{cursor:grab}.cb-preview-block.info-card{padding:11px}.cb-preview-block.info-card>span{padding-right:45px}.cb-preview-block.info-card small{display:block;color:var(--muted);font-size:8px;margin-top:4px}.cb-special-block{border:1px solid var(--line);border-radius:11px;padding:12px;background:#fff}.cb-special-block>.cb-block-tools{position:relative;right:auto;top:auto;opacity:1;justify-content:space-between;margin-bottom:8px}.cb-road-table{display:grid;grid-template-columns:1.35fr repeat(4,1fr);overflow:auto;border:1px solid var(--line);border-radius:8px}.cb-road-table>*{padding:6px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:8px;white-space:nowrap}.cb-road-table>span{color:var(--muted);font-weight:700;background:#f7f9fb}.cb-road-table>strong{color:#245681}.cb-road-table>i{font-style:normal}.cb-preview-actions{display:flex;gap:7px;margin-top:12px}.cb-preview-actions button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 10px;font-size:9px}.cb-preview-actions button:first-child{background:var(--accent);color:#fff;border-color:var(--accent)}.cb-inspector-empty{text-align:center;color:var(--muted);padding:28px 8px}.cb-inspector-empty h3{color:var(--text);font-size:14px;margin:8px 0}.cb-inspector-empty p{font-size:10px;line-height:1.5}.cb-inspector-empty b{display:block;font-size:10px;color:#35577e;margin-top:12px}.cb-inspector-icon{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#eef3fb;color:#4873bd;font-size:20px}.cb-inspector-head{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:13px}.cb-inspector-head span{color:var(--accent);font-size:9px;font-weight:800;text-transform:uppercase}.cb-inspector-head h3{margin:4px 0 0;font-size:16px}.card-builder-inspector>div>label{margin-bottom:11px}.card-builder-inspector label.cb-check{display:flex;align-items:center;gap:7px;color:var(--text);font-size:10px}.card-builder-inspector label.cb-check input{width:auto}.cb-width-control{margin:14px 0}.cb-width-control>span{font-size:9px;color:var(--muted);font-weight:700}.cb-width-control>div{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:5px}.cb-width-control button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px;font-size:10px}.cb-width-control button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:800}.cb-safe-note{font-size:9px;color:var(--muted);line-height:1.4}.card-builder-footer{background:#fff;border-top:1px solid var(--line);padding:11px 18px;display:flex;justify-content:space-between;align-items:center;gap:15px}.card-builder-footer>span{color:var(--muted);font-size:10px}.card-builder-footer>div{display:flex;gap:8px}
@media(max-width:1100px){.card-builder{inset:8px}.card-builder-body{grid-template-columns:270px minmax(450px,1fr)}.card-builder-inspector{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);padding:12px;max-height:210px}.card-builder-inspector>div:not(.cb-inspector-empty){display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.cb-inspector-head{grid-column:1/-1}.card-builder-inspector>div>label{margin:0}.cb-width-control{margin:0}.cb-safe-note{display:none}}
@media(max-width:760px){.card-builder{inset:0;border-radius:0}.card-builder-head{padding:12px 14px}.card-builder-head p{display:none}.card-builder-body{display:block;overflow:auto}.card-builder-sidebar,.card-builder-workspace,.card-builder-inspector{overflow:visible;border:0}.card-builder-workspace{padding:12px}.card-builder-inspector{max-height:none}.card-builder-inspector>div:not(.cb-inspector-empty){display:block}.card-builder-inspector>div>label{margin-bottom:10px}.cb-preview-stage{padding:6px}.cb-preview-card{width:100%!important}.card-builder-footer{position:sticky;bottom:0}.card-builder-footer>span{display:none}.card-builder-footer .btn{padding:9px 11px}.configured-card-grid{grid-template-columns:1fr}.configured-card-grid .card-span-1,.configured-card-grid .card-span-2{grid-column:1}}
.timeline { border-left: 2px solid #e6ebef; padding-left: 17px; display: grid; gap: 16px; }
.timeline-item { position: relative; }
.timeline-item::before { content: ""; position: absolute; width: 9px; height: 9px; left: -22px; top: 5px; border-radius: 50%; background: #7d94d7; box-shadow: 0 0 0 4px #edf1fb; }
.timeline-item strong { font-size: 12px; }
.timeline-item p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.simple-list { display: grid; gap: 8px; }
.list-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 10px; padding: 11px 12px; }
.list-row .left { display: flex; align-items: center; gap: 10px; }
.list-row strong { font-size: 12px; }
.list-row span { color: var(--muted); font-size: 11px; }
.photo-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.photo-placeholder { aspect-ratio: 4/3; background: linear-gradient(145deg,#e7ebef,#f7f8fa); border: 1px solid var(--line); border-radius: 10px; display: grid; place-items: center; color: #87939d; font-size: 11px; }
.drawer-actions { display: flex; gap: 8px; margin-top: 20px; }

.modal { position: fixed; z-index: 70; left: 50%; top: 50%; transform: translate(-50%,-46%); width: min(760px, 92vw); max-height: 90vh; overflow: auto; background: #fff; border-radius: 16px; box-shadow: 0 30px 80px rgba(12,26,40,.22); opacity: 0; visibility: hidden; transition: .2s; }
.modal.open { opacity: 1; visibility: visible; transform: translate(-50%,-50%); }
.modal-header { display: flex; justify-content: space-between; gap: 14px; padding: 20px 22px 15px; border-bottom: 1px solid var(--line); }
.modal-header h2 { margin: 0; font-size: 20px; }
.modal-header p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.object-form { padding: 18px 22px 22px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.form-grid label { color: #5c6873; font-size: 11px; font-weight: 650; }
.form-grid input, .form-grid select, .form-grid textarea { margin-top: 6px; font-weight: 400; font-size: 13px; }
.span-2 { grid-column: 1 / -1; }
.modal-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 18px; }

.empty-state { padding: 72px 24px; text-align: center; }
.empty-state .empty-icon { width: 54px; height: 54px; border-radius: 15px; background: var(--accent-soft); color: var(--accent); display: grid; place-items: center; margin: 0 auto 12px; font-size: 24px; }
.empty-state h2 { margin: 0; }
.empty-state p { color: var(--muted); max-width: 480px; margin: 8px auto 0; font-size: 13px; }
.analytics-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.analytics-card { padding: 18px; }
.analytics-card h3 { margin: 0 0 14px; font-size: 15px; }
.bar-row { display: grid; grid-template-columns: 145px 1fr 34px; gap: 10px; align-items: center; margin: 9px 0; font-size: 11px; color: var(--muted); }
.bar { height: 8px; background: #eef1f4; border-radius: 999px; overflow: hidden; }
.bar > i { display: block; height: 100%; background: var(--accent); border-radius: inherit; }
.no-results { padding: 42px; text-align: center; color: var(--muted); font-size: 13px; }

@media (max-width: 1050px) {
  .app-shell { grid-template-columns: 76px 1fr; }
  .brand > div:not(.brand-mark), .nav-item span, .user-meta { display: none; }
  .brand { justify-content: center; padding-left: 0; padding-right: 0; }
  .nav-item { justify-content: center; font-size: 18px; }
  .sidebar-footer { justify-content: center; padding-left: 0; padding-right: 0; }
  .cards-grid { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 760px) {
  .app-shell { display: block; }
  .sidebar { position: fixed; z-index: 40; height: auto; left: 0; right: 0; bottom: 0; top: auto; padding: 6px 8px; flex-direction: row; }
  .brand, .sidebar-footer { display: none; }
  .nav { margin: 0; width: 100%; grid-template-columns: repeat(5,1fr); gap: 2px; }
  .nav-item { padding: 10px 4px; }
  .main { padding: 20px 14px 88px; }
  .topbar { align-items: flex-start; }
  .topbar h1 { font-size: 23px; }
  .topbar-actions .secondary { display: none; }
  .filters-row { grid-template-columns: 1fr 1fr; }
  .filters-row .btn { grid-column: span 2; }
  .registry-table th:nth-child(3), .registry-table td:nth-child(3), .registry-table th:nth-child(5), .registry-table td:nth-child(5) { display: none; }
  .cards-grid { grid-template-columns: 1fr; }
  .map-toolbar { align-items: stretch; flex-direction: column; }
  .search-wrap.compact { width: 100%; }
  .form-grid, .info-grid { grid-template-columns: 1fr; }
  .span-2 { grid-column: auto; }
  .photo-grid { grid-template-columns: repeat(2,1fr); }
}
.hidden{display:none!important}.wide{width:100%}.login-screen{position:fixed;inset:0;z-index:500;background:#f3f6f9;display:grid;place-items:center;padding:20px}.login-card{width:min(420px,94vw);background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:var(--shadow)}.login-logo{width:52px;height:52px;border-radius:14px;background:var(--sidebar);color:#fff;display:grid;place-items:center;font-weight:800;margin-bottom:18px}.login-card h1{font-size:24px;margin:0}.login-card>p{color:var(--muted);margin:5px 0 22px}.login-card label{display:block;font-size:12px;color:#5c6873;font-weight:650;margin:12px 0}.login-card input{width:100%;margin-top:6px;border:1px solid var(--line);border-radius:10px;padding:11px;outline:none}.form-error{min-height:20px;color:var(--danger);font-size:12px;margin-top:10px}.demo-credentials{margin-top:14px;font-size:10px;color:var(--muted);line-height:1.5}.logout-mini{margin-left:auto;border:0;background:transparent;color:rgba(255,255,255,.55);font-size:18px}.toast{position:fixed;right:24px;bottom:24px;z-index:400;background:#17212b;color:#fff;border-radius:10px;padding:11px 15px;box-shadow:var(--shadow);opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;font-size:13px}.toast.show{opacity:1;transform:none}.toast.error{background:#9b3030}.secondary-backdrop{z-index:80}.small-modal{z-index:90;width:min(620px,92vw)}.file-link{color:var(--accent);text-decoration:none;font-size:12px}.photo-real{position:relative;aspect-ratio:4/3;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#eee}.photo-real img{width:100%;height:100%;object-fit:cover}.photo-real .photo-caption{position:absolute;left:0;right:0;bottom:0;padding:20px 8px 7px;background:linear-gradient(transparent,rgba(0,0,0,.66));color:#fff;font-size:10px}.photo-delete{position:absolute;top:5px;right:5px;width:26px;height:26px;border:0;border-radius:8px;background:rgba(255,255,255,.9);font-size:16px}.table-scroll{overflow:auto}.registry-table .click-row{cursor:pointer}.role-chip{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eef3ff;color:#2457d6;font-size:10px;font-weight:700}.muted-small{font-size:11px;color:var(--muted)}.danger-link{border:0;background:transparent;color:var(--danger);font-size:11px}.upload-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.action-hint{grid-column:1/-1;padding:10px;border-radius:10px;background:#f7f9fb;color:var(--muted);font-size:11px}@media(max-width:760px){.topbar-actions{flex-wrap:wrap;justify-content:flex-end}.topbar-actions .btn{font-size:11px;padding:8px}.nav{grid-template-columns:repeat(6,1fr)}.nav-item{font-size:16px}}
.status.unknown { color: #5f6877; background: #eef1f5; }
.dot.sports { background: #7b55c6; }
.inventory-list { display: grid; gap: 8px; }
.inventory-row { display: grid; grid-template-columns: minmax(150px, 38%) 1fr; gap: 14px; padding: 10px 12px; border: 1px solid var(--border, #e5e8ef); border-radius: 10px; background: #fff; }
.inventory-row span { color: #737b8c; font-size: 12px; }
.inventory-row strong { font-size: 13px; line-height: 1.4; word-break: break-word; }
@media (max-width: 640px) { .inventory-row { grid-template-columns: 1fr; gap: 4px; } }

/* Выбор расположения объекта кликом на карте */
.location-field { border: 1px solid var(--line); border-radius: 12px; padding: 12px; background: #fbfcfd; }
.location-field-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.location-field .field-label { display: block; color: #5c6873; font-size: 11px; font-weight: 650; }
.location-field small { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; font-weight: 400; }
.location-buttons { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.location-picker-wrap { margin-top: 12px; border-top: 1px solid var(--line); padding-top: 10px; }
.location-picker-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 8px; color: var(--muted); font-size: 11px; }
.compact-btn { padding: 7px 9px; font-size: 11px; white-space: nowrap; }
#locationPickerMap { height: 340px; width: 100%; border-radius: 10px; overflow: hidden; border: 1px solid var(--line); background: #eef1f4; }
.location-pin-tooltip { font-size: 11px; }
@media (max-width: 760px) {
  .location-field-head, .location-picker-toolbar { align-items: stretch; flex-direction: column; }
  .location-buttons { justify-content: stretch; }
  .location-buttons .btn { flex: 1; }
  #locationPickerMap { height: 300px; }
  .compact-btn { width: 100%; }
}

/* Настройки локального хранилища */
.settings-panel { max-width: 900px; }
.settings-form { padding: 20px; }
.settings-form > label { display: block; color: #5c6873; font-size: 12px; font-weight: 650; }
.settings-form input { width: 100%; margin-top: 7px; border: 1px solid var(--line); border-radius: 10px; padding: 11px 12px; font-size: 13px; outline: none; background: #fff; }
.settings-form input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.settings-form input:disabled { background: #f1f3f5; color: var(--muted); }
.settings-hint { margin-top: 10px; padding: 11px 12px; border-radius: 10px; background: #f7f9fb; color: var(--muted); font-size: 11px; line-height: 1.5; }
.storage-status { margin-top: 16px; display: grid; gap: 8px; }
.storage-path-row { display: grid; grid-template-columns: 170px minmax(0,1fr); gap: 14px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; }
.storage-path-row span { color: var(--muted); font-size: 11px; }
.storage-path-row strong { font-size: 12px; font-weight: 600; word-break: break-all; }
.storage-warning { padding: 11px 12px; border-radius: 10px; background: #fff5da; border: 1px solid #f0d891; color: #6d5713; font-size: 12px; line-height: 1.45; }
.settings-actions { margin-top: 18px; display: flex; gap: 9px; justify-content: flex-end; }
@media (max-width: 760px) {
  .nav { grid-template-columns: repeat(auto-fit,minmax(42px,1fr)); }
  .storage-path-row { grid-template-columns: 1fr; gap: 4px; }
  .settings-actions { flex-direction: column-reverse; }
  .settings-actions .btn { width: 100%; }
}


/* Документы: встроенный просмотр и скачивание */
.documents-summary { display:flex; align-items:baseline; gap:7px; padding:10px 12px; margin-bottom:10px; background:#f7f9fb; border:1px solid var(--line); border-radius:10px; color:var(--muted); font-size:11px; }
.documents-summary strong { color:var(--text); font-size:16px; }
.document-row { align-items:center; gap:12px; }
.doc-type-icon { width:36px; height:36px; border-radius:9px; display:grid; place-items:center; flex:0 0 auto; font-size:9px; font-style:normal; font-weight:800; letter-spacing:.3px; background:#eef3ff; color:#2457d6; }
.doc-type-icon.pdf { background:#fff0f0; color:#b73535; }
.doc-type-icon.image { background:#eef9f2; color:#267a46; }
.doc-meta { min-width:0; }
.doc-meta strong { display:block; word-break:break-word; line-height:1.35; }
.document-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.file-button { border:0; background:transparent; padding:0; cursor:pointer; font-family:inherit; }
.document-viewer-backdrop { position:fixed; inset:0; z-index:120; background:rgba(9,17,25,.45); opacity:0; visibility:hidden; transition:.18s; }
.document-viewer-backdrop.open { opacity:1; visibility:visible; }
.document-viewer { position:fixed; z-index:130; inset:3vh 3vw; background:#fff; border-radius:16px; box-shadow:0 30px 90px rgba(9,17,25,.28); overflow:hidden; opacity:0; visibility:hidden; transform:translateY(8px); transition:.18s; display:flex; flex-direction:column; }
.document-viewer.open { opacity:1; visibility:visible; transform:none; }
.document-viewer-header { min-height:66px; padding:13px 16px 12px 18px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:16px; }
.document-viewer-header h2 { margin:0; font-size:16px; line-height:1.3; }
.document-viewer-header p { margin:3px 0 0; color:var(--muted); font-size:10px; }
.document-viewer-actions { display:flex; align-items:center; gap:7px; flex-shrink:0; }
.document-viewer-actions a { text-decoration:none; }
.document-viewer-body { min-height:0; flex:1; background:#e9edf1; }
.document-frame { border:0; width:100%; height:100%; display:block; background:#fff; }
.document-image-wrap { width:100%; height:100%; overflow:auto; display:grid; place-items:center; padding:20px; }
.document-image-wrap img { max-width:100%; max-height:100%; object-fit:contain; box-shadow:0 6px 30px rgba(0,0,0,.16); }
.document-no-preview { height:100%; min-height:320px; display:grid; place-items:center; align-content:center; text-align:center; color:var(--muted); padding:30px; }
.document-no-preview h3 { color:var(--text); margin:10px 0 4px; }
.document-no-preview p { margin:0; font-size:12px; }
@media (max-width:760px) {
  .document-row { align-items:flex-start; }
  .document-actions { width:100%; justify-content:flex-start; padding-left:48px; }
  .document-viewer { inset:0; border-radius:0; }
  .document-viewer-header { align-items:flex-start; padding:10px 10px 9px 12px; }
  .document-viewer-header h2 { font-size:13px; max-width:42vw; }
  .document-viewer-actions { gap:4px; }
  .document-viewer-actions .btn { padding:7px 8px; font-size:10px; }
  .document-frame { min-height:calc(100vh - 64px); }
}
.update-panel{margin-bottom:18px}.restore-points{margin-top:14px}.settings-hint code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:rgba(127,127,127,.1);padding:2px 5px;border-radius:5px}

/* Редактирование данных инвентаризации ДИК */
.inventory-edit-section { border: 1px solid var(--line); border-radius: 14px; background: #f8fafc; padding: 14px; }
.inventory-edit-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 12px; }
.inventory-edit-head strong { display: block; color: #1d2935; font-size: 13px; }
.inventory-edit-head span { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; font-weight: 400; }
.inventory-edit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.inventory-edit-grid label { min-width: 0; }
.inventory-edit-grid .inventory-wide { grid-column: 1 / -1; }
.inventory-edit-grid textarea { resize: vertical; min-height: 58px; }
@media (max-width: 760px) {
  .inventory-edit-grid { grid-template-columns: 1fr; }
  .inventory-edit-grid .inventory-wide { grid-column: auto; }
}

/* Массовая синхронизация папок ДИК */
.dik-sync-panel{margin-top:18px;max-width:none}.dik-sync-results{padding:0 20px 20px}.dik-sync-summary{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:10px;margin:4px 0 14px}.dik-sync-summary>div{border:1px solid var(--line);border-radius:11px;padding:10px 12px;background:#fff}.dik-sync-summary span{display:block;color:var(--muted);font-size:10px}.dik-sync-summary strong{display:block;font-size:20px;margin-top:2px}.dik-sync-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.dik-sync-toolbar .settings-hint{margin:0;flex:1}.dik-sync-table{min-width:980px}.dik-sync-table td{vertical-align:top}.dik-sync-table select{width:100%;min-width:280px;border:1px solid var(--line);border-radius:8px;padding:7px 8px;background:#fff;font-size:11px}.dik-sync-table tr.sync-review td{background:#fffaf0}.dik-sync-table tr.sync-ok td{background:#fbfdfc}.sync-chip{display:inline-flex;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:750;white-space:nowrap}.sync-chip.saved{background:#eef3ff;color:#2457d6}.sync-chip.auto{background:#eef8f1;color:#267a46}.sync-chip.review{background:#fff0ce;color:#80600e}.sync-file-count{display:inline-block;margin-right:7px;font-size:11px;white-space:nowrap}.sync-suggestions{margin-top:5px;color:var(--muted);font-size:9px;line-height:1.35}.storage-warning.sync-success{background:#eef8f1;border-color:#b8dec5;color:#22663b}.dik-sync-check{width:16px;height:16px;accent-color:var(--accent)}
.photo-open{position:absolute;inset:0;border:0;padding:0;background:transparent;cursor:pointer}.photo-open img{width:100%;height:100%;object-fit:cover}.photo-caption{pointer-events:none}.photo-links{display:flex;gap:9px;margin-top:4px;pointer-events:auto}.photo-links button,.photo-links a{border:0;padding:0;background:transparent;color:#fff;text-decoration:underline;font:inherit;cursor:pointer}.photo-delete{z-index:3}
@media(max-width:760px){.dik-sync-summary{grid-template-columns:repeat(2,1fr)}.dik-sync-toolbar{align-items:stretch;flex-direction:column}.dik-sync-toolbar .btn{width:100%}.dik-sync-results{padding:0 12px 14px}}

/* 0.7.3 — понятные статусы длительных операций */
.operation-status{margin:14px 0;display:block;border:1px solid var(--line);border-radius:12px;background:#f8fafc;padding:13px 14px}.operation-status.hidden{display:none}.operation-head{display:flex;align-items:center;gap:10px}.operation-icon{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#eaf0ff;color:#2457d6;font-weight:800;flex:0 0 auto}.operation-status.working .operation-icon{border:3px solid #d8e2ff;border-top-color:#2457d6;background:transparent;animation:opspin .8s linear infinite;font-size:0}.operation-status.success{background:#eef8f1;border-color:#b8dec5}.operation-status.success .operation-icon{background:#d7f0df;color:#22663b}.operation-status.error{background:#fff1f1;border-color:#edbcbc}.operation-status.error .operation-icon{background:#f8dcdc;color:#9b2929}.operation-status.warning{background:#fff8e8;border-color:#efd89d}.operation-status.warning .operation-icon{background:#f8e9bd;color:#765b13}.operation-title{font-weight:750;font-size:13px}.operation-text{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.45}.operation-bar{height:5px;border-radius:999px;background:#e7ebf2;overflow:hidden;margin-top:11px}.operation-bar i{display:block;height:100%;width:36%;border-radius:999px;background:#2457d6;animation:opbar 1.25s ease-in-out infinite}.operation-details{margin-top:10px;display:grid;gap:5px}.operation-details div{font-size:11px;line-height:1.4}.operation-details strong{font-weight:700}.path-ready{border:1px solid #b8dec5;background:#f4fbf6;border-radius:12px;padding:12px 13px;margin-bottom:8px}.path-ready-title{display:flex;gap:8px;align-items:center;color:#22663b;font-size:12px;font-weight:750;margin-bottom:8px}.path-ready .storage-path-row{background:#fff}.sync-row-result{margin-top:5px;font-size:10px;font-weight:650}.sync-row-result.ok{color:#267a46}.sync-row-result.err{color:#a12d2d}@keyframes opspin{to{transform:rotate(360deg)}}@keyframes opbar{0%{transform:translateX(-120%)}50%{transform:translateX(180%)}100%{transform:translateX(340%)}}

/* ===== Подготовка ДИК к Думе ===== */
.duma-button{background:#6d4aff!important;color:#fff!important;border-color:#6d4aff!important;box-shadow:0 5px 14px rgba(109,74,255,.22)}
.duma-backdrop{position:fixed;inset:0;background:rgba(13,22,34,.55);z-index:110;opacity:0;pointer-events:none;transition:.2s}.duma-backdrop.open{opacity:1;pointer-events:auto}
.duma-wizard{position:fixed;inset:20px;z-index:111;background:#f5f7fa;border-radius:20px;box-shadow:0 24px 80px rgba(7,17,33,.3);display:flex;flex-direction:column;overflow:hidden;opacity:0;pointer-events:none;transform:translateY(12px) scale(.99);transition:.22s}.duma-wizard.open{opacity:1;pointer-events:auto;transform:none}
.duma-header{background:#fff;border-bottom:1px solid #e3e8ef;padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px}.duma-header h2{margin:5px 0 2px;font-size:22px}.duma-header p{margin:0;color:#778398}.duma-head-actions{display:flex;align-items:center;gap:10px}.duma-save-state{font-size:12px;border-radius:999px;background:#eef1f6;color:#59677a;padding:7px 11px}.duma-save-state.saving{background:#fff5d9;color:#8b6914}.duma-save-state.saved,.duma-save-state.generated{background:#e9f8ef;color:#1b7441}.duma-save-state.error{background:#ffe9e9;color:#a63232}
.duma-layout{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:0;flex:1}.duma-steps{background:#101c2b;padding:16px 10px;display:flex;flex-direction:column;gap:4px;overflow:auto}.duma-step{border:0;background:transparent;color:#9eabba;text-align:left;display:flex;gap:10px;align-items:center;padding:11px 10px;border-radius:10px;cursor:pointer}.duma-step>span{width:26px;height:26px;display:grid;place-items:center;border:1px solid #526074;border-radius:50%;font-size:12px;flex:none}.duma-step div{display:flex;flex-direction:column;gap:2px}.duma-step strong{font-size:13px;color:inherit}.duma-step small{font-size:10px;opacity:.78}.duma-step.active{background:#1b2b40;color:#fff}.duma-step.active>span{background:#6d4aff;border-color:#6d4aff}.duma-step.done>span{background:#1f8f59;color:#fff;border-color:#1f8f59}
.duma-main{display:flex;min-width:0;flex-direction:column;overflow:hidden}.duma-main>#dumaContent{padding:25px 28px;overflow:auto;flex:1}.duma-footer{background:#fff;border-top:1px solid #e2e7ee;padding:13px 22px;display:flex;justify-content:space-between}.duma-footer-right{display:flex;gap:9px}.duma-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:25px;margin-bottom:20px}.duma-section-head h3,.estimate-card h3,.review-head h3{font-size:21px;margin:0 0 5px}.duma-section-head p,.estimate-card p,.review-head p{margin:0;color:#748196;max-width:760px;line-height:1.45}.yes-no{display:flex;background:#e9edf3;border-radius:10px;padding:3px;flex:none}.yes-no .choice{border:0;background:transparent;padding:8px 18px;border-radius:8px;color:#647187;font-weight:700;cursor:pointer}.yes-no .choice.active{background:#fff;color:#172333;box-shadow:0 1px 5px rgba(20,32,48,.12)}
.duma-table-wrap{background:#fff;border:1px solid #dfe5ed;border-radius:13px;overflow:auto;margin-bottom:13px}.duma-table-wrap.wide{margin-top:18px}.duma-table{width:100%;border-collapse:collapse;font-size:12px;min-width:820px}.duma-table th{background:#f3f6f9;color:#67758b;text-align:left;padding:9px 8px;border-bottom:1px solid #dfe5ed;font-weight:600}.duma-table td{padding:7px 8px;border-bottom:1px solid #edf0f4;vertical-align:middle}.duma-table tr:last-child td{border-bottom:0}.duma-table .selected-row{background:#faf9ff}.table-input{border:1px solid #d9e0e9;border-radius:7px;background:#fff;padding:7px 8px;min-width:90px;width:100%;font:inherit}.table-input.name{min-width:220px}.table-input.mini{width:80px;min-width:70px}.table-input.price{min-width:95px;width:105px}
.duma-empty{background:#fff;border:1px dashed #ccd4df;border-radius:14px;padding:35px;text-align:center;display:flex;flex-direction:column;gap:6px;color:#728096}.duma-empty strong{color:#253245}.offer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.offer-card{background:#fff;border:1px dashed #cbd4df;border-radius:13px;padding:14px;display:flex;flex-direction:column;gap:6px;min-width:0}.offer-card.ready{border-style:solid;border-color:#cce7d8;background:#fcfffd}.offer-card .offer-num{font-size:11px;color:#7d899b;text-transform:uppercase;font-weight:800}.offer-card strong{font-size:14px}.offer-card span,.offer-card small{color:#758196;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.offer-upload{margin-top:7px;align-self:flex-start;cursor:pointer}.offer-warning{font-size:11px;background:#fff5da;color:#7d621d;border-radius:7px;padding:7px;line-height:1.35}.recognition-note{background:#eef3ff;color:#4e5f79;border-radius:10px;padding:10px 12px;font-size:12px;margin-top:13px}
.duma-surface-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.duma-option-card{background:#fff;border:1px solid #dfe5ed;border-radius:15px;padding:20px}.duma-option-card label,.estimate-card label{display:flex;flex-direction:column;gap:7px;color:#58677b;font-size:12px;font-weight:600;margin-top:18px}.duma-option-card input,.estimate-card input{border:1px solid #d7dfe9;border-radius:9px;padding:10px 12px;font:inherit;color:#182436}
.duma-doc-columns{display:grid;grid-template-columns:1.05fr 1fr;gap:18px}.duma-doc-columns section{background:#fff;border:1px solid #e0e5ec;border-radius:14px;padding:15px;min-width:0}.duma-list-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.duma-list-title h3{margin:0;font-size:16px}.duma-list-title span{font-size:11px;color:#8793a4}.duma-photo-select{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;max-height:480px;overflow:auto}.select-photo{border:2px solid transparent;border-radius:10px;overflow:hidden;background:#f0f2f5;cursor:pointer;position:relative}.select-photo.selected{border-color:#6d4aff}.select-photo input{position:absolute;top:7px;left:7px;z-index:2}.select-photo img{display:block;width:100%;aspect-ratio:1.25;object-fit:cover}.select-photo span{display:block;padding:6px 7px;font-size:10px;color:#536176;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.duma-doc-select{display:flex;flex-direction:column;gap:7px;max-height:480px;overflow:auto}.select-doc{display:flex;align-items:center;gap:9px;border:1px solid #e1e6ed;border-radius:10px;padding:9px;cursor:pointer}.select-doc.selected{background:#f8f6ff;border-color:#bdb1ff}.select-doc div{display:flex;flex-direction:column;gap:2px;min-width:0}.select-doc strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.select-doc span{font-size:10px;color:#7e899a}
.estimate-card{max-width:780px;background:#fff;border:1px solid #dee5ec;border-radius:15px;padding:24px}.estimate-file{margin-top:18px;border:1px dashed #cbd4df;border-radius:12px;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:15px}.estimate-file>div{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.duma-review{max-width:850px}.review-head{margin-bottom:18px}.review-row{display:grid;grid-template-columns:30px minmax(160px,1fr) 1.4fr;align-items:center;background:#fff;border:1px solid #e1e6ec;border-radius:10px;padding:10px 12px;margin-bottom:7px}.review-row>span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-weight:800}.review-row.ok>span{background:#dcf5e6;color:#1c7c48}.review-row.warn>span{background:#fff0ce;color:#9a6c05}.review-row strong{font-size:13px}.review-row em{font-style:normal;color:#758196;font-size:12px}.last-package{margin-top:18px;background:#eef3ff;padding:13px;border-radius:11px;display:flex;align-items:center;justify-content:space-between}.package-ready{margin-top:18px;background:#eaf8ef;border:1px solid #bfe5ce;border-radius:13px;padding:16px;display:grid;grid-template-columns:1fr auto;gap:5px 15px;align-items:center}.package-ready strong{color:#186e40}.package-ready span,.package-ready small{grid-column:1;color:#4e665a}.package-ready a{grid-row:1/4;grid-column:2}
@media(max-width:980px){.duma-wizard{inset:0;border-radius:0}.duma-layout{grid-template-columns:1fr}.duma-steps{flex-direction:row;overflow-x:auto;padding:8px;background:#101c2b}.duma-step{min-width:150px}.duma-doc-columns,.duma-surface-grid{grid-template-columns:1fr}.offer-grid{grid-template-columns:1fr}.duma-photo-select{grid-template-columns:repeat(2,1fr)}.duma-header{padding:12px}.duma-head-actions .btn{display:none}.duma-main>#dumaContent{padding:17px}.duma-section-head{flex-direction:column}.package-ready{grid-template-columns:1fr}.package-ready a{grid-column:1;grid-row:auto}.duma-footer{padding:10px}.duma-footer .ghost{display:none}}

/* 0.8.1 — годовые срезы ДИК, редактирование элементов и фото обследований */
.dik-year-bar{display:grid;grid-template-columns:auto 110px auto 1fr;align-items:center;gap:10px;margin:0 0 14px;padding:11px 12px;border:1px solid #dce4ee;border-radius:12px;background:#f7f9fc}.dik-year-bar>div{display:flex;flex-direction:column;gap:1px}.dik-year-bar span{font-size:10px;color:var(--muted)}.dik-year-bar strong{font-size:15px}.dik-year-bar select{border:1px solid var(--line);border-radius:9px;padding:8px 10px;background:#fff;font-weight:700;color:var(--text)}.dik-year-bar small{color:var(--muted);line-height:1.4;font-size:10px}.row-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}.inspection-list{gap:10px}.inspection-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}.inspection-main{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.inspection-main span:not(.status){color:var(--muted)}.inspection-photo-strip{display:flex;gap:8px;margin-top:10px;overflow-x:auto;padding-bottom:2px}.inspection-photo-strip button{width:78px;height:60px;flex:0 0 auto;border:1px solid var(--line);padding:0;border-radius:8px;overflow:hidden;background:#eef2f6;cursor:pointer}.inspection-photo-strip img{width:100%;height:100%;object-fit:cover;display:block}.inspection-no-photo{margin-top:9px;padding:8px 10px;border-radius:8px;background:#f7f9fb;color:var(--muted);font-size:10px}.inspection-add-photo{margin-top:9px}.object-form label small{display:block;margin-top:5px;color:var(--muted);font-weight:400;font-size:10px}
@media(max-width:760px){.dik-year-bar{grid-template-columns:1fr 100px}.dik-year-bar .btn{grid-column:1/-1;width:100%}.dik-year-bar small{grid-column:1/-1}.inspection-main{flex-direction:column}.row-actions{justify-content:flex-start}}
.surface-suboption{margin-top:16px;padding:14px;border:1px dashed #d7dfe9;border-radius:12px;background:#f8fafc}.surface-subhead{display:flex;align-items:center;justify-content:space-between;gap:14px}.surface-subhead>div:first-child{display:flex;flex-direction:column;gap:3px}.surface-subhead strong{font-size:13px;color:#1d2939}.surface-subhead small{font-size:11px;color:#7a889a;line-height:1.35}.surface-suboption label{margin-top:12px}
@media(max-width:700px){.surface-subhead{align-items:flex-start;flex-direction:column}}
.button-link{background:none;border:0;padding:0;font:inherit;cursor:pointer}

/* 0.8.3 — компактный выбор года, сортировка и геопривязка */
.filters-row{grid-template-columns:1.15fr 1fr 1fr 1.25fr auto}
.sort-head{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;padding:0;color:inherit;font:inherit;font-weight:inherit;cursor:pointer;text-align:left}
.sort-head:hover{color:var(--accent)}
.sort-arrow{font-size:9px;color:#9ba6b1;min-width:9px}.sort-head.active .sort-arrow{color:var(--accent)}

.dik-year-bar{display:flex;align-items:center;gap:10px;margin:0 0 16px;padding:10px 12px;border:1px solid #dce4ee;border-radius:12px;background:#f8fafc}
.dik-year-bar .year-control{display:flex;align-items:center;gap:9px;min-width:0}
.dik-year-bar .year-icon{width:34px;height:34px;border-radius:10px;background:#eaf0ff;color:var(--accent);display:grid;place-items:center;font-size:16px;flex:0 0 auto}
.dik-year-bar .year-select-wrap{display:flex;align-items:center;gap:8px}
.dik-year-bar .year-select-wrap>span{font-size:11px;color:var(--muted);white-space:nowrap}
.dik-year-bar select{width:88px;border:1px solid var(--line);border-radius:9px;padding:7px 9px;background:#fff;font-weight:750;color:var(--text)}
.dik-year-bar .year-hint{margin-left:auto;color:var(--muted);font-size:10px;line-height:1.35;max-width:330px;text-align:right}
.dik-year-bar .btn{white-space:nowrap}

.map-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:12px;align-items:center;padding:12px 14px}
.map-toolbar .map-geocode-status{grid-column:1/-1}
.map-geocode-status:empty{display:none}
.geocode-strip{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:#f7f9fc;border:1px solid var(--line);font-size:11px;color:var(--muted)}
.geocode-strip strong{color:var(--text)}
.geocode-strip .geocode-progress{height:5px;flex:1;min-width:90px;border-radius:999px;background:#e6ebf1;overflow:hidden}
.geocode-strip .geocode-progress i{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .25s}
.geocode-unmatched{margin-top:8px;font-size:10px;color:var(--muted);line-height:1.5}
.geocode-unmatched strong{color:var(--text)}

@media(max-width:980px){.filters-row{grid-template-columns:1fr 1fr}.filters-row .btn{grid-column:auto}.map-toolbar{grid-template-columns:1fr}.map-toolbar .map-geocode-status{grid-column:1}.map-legend{justify-content:flex-start;flex-wrap:wrap}}
@media(max-width:760px){.dik-year-bar{align-items:stretch;flex-wrap:wrap}.dik-year-bar .year-control{flex:1 1 180px}.dik-year-bar .year-hint{order:3;flex:1 0 100%;max-width:none;text-align:left;margin-left:0}.dik-year-bar .btn{flex:0 0 auto}.filters-row{grid-template-columns:1fr}.filters-row .btn{grid-column:1}}
.dik-year-bar .year-control{flex-direction:row}
.dik-year-bar .year-hint{display:block;flex-direction:initial}

/* 0.8.4 — LocationIQ, строгая геопривязка и линейные объекты */
.danger-outline{border-color:#e5a4a4!important;color:#b42318!important;background:#fff!important}.danger-outline:hover{background:#fff3f2!important}
.review-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;background:#fff4d6;color:#8a5b00;font-weight:700;font-size:12px}
.geocode-review{margin-top:16px}.review-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.review-title span{color:var(--muted);font-size:13px}
.review-card{border:1px solid var(--border);border-radius:12px;padding:14px;margin:10px 0;background:#fff}.review-object{display:flex;flex-direction:column;gap:3px;margin-bottom:10px}.review-object span{color:var(--muted);font-size:12px}
.review-candidates{display:grid;gap:7px}.review-candidate{display:flex!important;align-items:flex-start!important;gap:9px;padding:9px 10px;border:1px solid #e5eaf1;border-radius:9px;background:#fafbfd;cursor:pointer}.review-candidate input{width:auto!important;margin-top:3px}.review-candidate span{display:flex;flex-direction:column;gap:3px}.review-candidate strong{font-size:13px}.review-candidate small{font-size:11px;color:var(--muted)}
.review-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.location-line-actions{display:flex;gap:8px;align-items:center}.location-picker-toolbar{gap:12px;flex-wrap:wrap}
@media(max-width:720px){.review-actions .btn{width:100%}.location-line-actions{width:100%;justify-content:space-between}}

/* 0.8.5 — переключаемые стили карты и понятный статус геокодирования */
.map-toolbar-right{display:flex;align-items:center;justify-content:flex-end;gap:14px;min-width:0}
.map-style-control{display:flex;align-items:center;gap:7px;white-space:nowrap;color:var(--muted);font-size:10px;font-weight:650}
.map-style-control select{min-width:124px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--text);padding:7px 28px 7px 9px;font-size:11px;font-weight:700}
.geocode-strip.error-strip{background:#fff7f6;border-color:#efc1bc;color:#9f2d24}
.geocode-strip.error-strip strong{color:#9f2d24}
@media(max-width:980px){.map-toolbar-right{justify-content:space-between;flex-wrap:wrap}.map-style-control{order:2}.map-legend{order:1}}
@media(max-width:620px){.map-toolbar-right{align-items:stretch;flex-direction:column}.map-style-control{justify-content:space-between}.map-style-control select{flex:1}}

html.drawer-open, body.drawer-open { overflow: hidden !important; overscroll-behavior: none; }

/* 0.8.9 — карта всегда остаётся под drawer/modal.
   Leaflet использует высокие z-index у pane-слоёв (200–700). Без отдельного
   stacking context они могут перекрывать фиксированную карточку объекта. */
.leaflet-container { isolation: isolate; }
.map-panel { position: relative; isolation: isolate; z-index: 0; }
#map { position: relative; isolation: isolate; z-index: 0; }


/* 0.8.10 — массовая синхронизация: адреса А-Я, выбор всех строк; пакетная загрузка фото */
.dik-sync-bulk-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}
.dik-sync-bulk-actions>div{display:flex;gap:7px;flex-wrap:wrap}.dik-sync-bulk-actions>span{color:var(--muted);font-size:11px;font-weight:650;white-space:nowrap}
.batch-photo-note{padding:10px 12px;border:1px solid #dce4ee;border-radius:9px;background:#f7f9fc;color:var(--muted);font-size:11px;line-height:1.4}.batch-photo-note strong{color:var(--text)}
@media(max-width:720px){.dik-sync-bulk-actions{align-items:stretch;flex-direction:column}.dik-sync-bulk-actions>span{white-space:normal}.dik-sync-bulk-actions .btn{flex:1}}

/* 0.8.12: фильтры массовой синхронизации ДИК/СП */
.dik-sync-filterbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}
.dik-sync-filter-buttons{display:flex;gap:7px;flex-wrap:wrap}.dik-sync-filter b{font-size:10px;margin-left:4px}.dik-sync-filter.active{background:#eaf0ff;border-color:#b7c8f9;color:#2457d6}.dik-sync-filterbar>span{color:var(--muted);font-size:11px;font-weight:650;white-space:nowrap}.dik-sync-table tr.hidden{display:none}
@media(max-width:720px){.dik-sync-filterbar{align-items:stretch;flex-direction:column}.dik-sync-filterbar>span{white-space:normal}}

/* 0.8.13 — рабочий режим 2026 и безопасный сброс фото синхронизации */
.fixed-year-setting{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:#f8fafc;flex-wrap:wrap}.fixed-year-setting span{font-size:11px;color:var(--muted)}.fixed-year-setting strong{font-size:17px}.fixed-year-setting small{color:var(--muted);flex:1 1 300px;line-height:1.4}.sync-danger-zone{margin-top:14px;padding:13px 14px;border:1px solid #f0d6d6;border-radius:12px;background:#fff9f9;display:flex;align-items:center;justify-content:space-between;gap:14px}.sync-danger-zone>div{display:flex;flex-direction:column;gap:4px}.sync-danger-zone span{font-size:11px;color:var(--muted);line-height:1.4}.sync-danger-zone .btn{flex:0 0 auto}@media(max-width:760px){.sync-danger-zone{align-items:stretch;flex-direction:column}.sync-danger-zone .btn{width:100%}}

/* 0.9.0 — объектный архив, датированные фото/документы и компактные настройки */
.object-hero{position:relative;height:220px;border-radius:16px;overflow:hidden;background:linear-gradient(135deg,#e9eef5,#f8fafc);margin-bottom:16px;border:1px solid var(--line)}.object-hero>img{width:100%;height:100%;object-fit:cover;display:block}.object-hero-shade{position:absolute;inset:auto 0 0;padding:44px 16px 14px;background:linear-gradient(transparent,rgba(11,19,30,.78));display:flex;align-items:flex-end;justify-content:space-between;gap:12px;color:#fff}.object-hero-shade div{display:flex;flex-direction:column;gap:3px}.object-hero-shade span{font-size:10px;opacity:.85}.object-hero-shade strong{font-size:14px}.object-hero.empty{height:auto;min-height:110px;padding:18px;display:flex;align-items:center;justify-content:space-between;gap:15px}.object-hero.empty div{display:flex;flex-direction:column;gap:5px}.object-hero.empty span{font-size:10px;color:var(--muted)}.hero-change{border:1px solid rgba(255,255,255,.6);background:rgba(255,255,255,.16);backdrop-filter:blur(8px);color:#fff;border-radius:9px;padding:8px 11px;font-weight:700;cursor:pointer;white-space:nowrap}
.dated-browser{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:start}.date-list{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#f8fafc;position:sticky;top:0}.date-list-head{display:flex;justify-content:space-between;padding:10px 11px;border-bottom:1px solid var(--line);font-size:10px;color:var(--muted)}.date-item{width:100%;border:0;border-bottom:1px solid #edf0f4;background:transparent;padding:10px 11px;text-align:left;display:flex;flex-direction:column;gap:2px;cursor:pointer;color:var(--text)}.date-item:last-child{border-bottom:0}.date-item strong{font-size:11px}.date-item span{font-size:9px;color:var(--muted)}.date-item.active{background:var(--accent-soft);color:var(--accent)}.dated-content{min-width:0}.dated-content-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.dated-content-head>div{display:flex;flex-direction:column;gap:2px}.dated-content-head strong{font-size:14px}.dated-content-head span{font-size:10px;color:var(--muted)}.preview-badge{position:absolute;top:7px;left:7px;z-index:3;background:#fff;color:#2457d6;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:800;box-shadow:0 2px 8px rgba(0,0,0,.15)}.photo-real.is-preview{box-shadow:0 0 0 2px #4a72e8}.photo-links{flex-wrap:wrap}.photo-links button{font-size:9px}.preview-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.preview-choice{border:2px solid transparent;border-radius:10px;overflow:hidden;position:relative;background:#f5f7fa;cursor:pointer;min-height:90px}.preview-choice input{position:absolute;top:7px;left:7px;z-index:2}.preview-choice img{width:100%;height:100px;object-fit:cover;display:block}.preview-choice span,.preview-choice small{display:block;padding:4px 7px;font-size:10px}.preview-choice:has(input:checked){border-color:var(--accent)}.preview-choice.auto{display:flex;flex-direction:column;justify-content:center;padding:12px}.element-date-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}.element-date-toolbar select{border:1px solid var(--line);border-radius:9px;background:#fff;padding:8px 10px;font-size:11px}
.settings-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px;align-items:start}.settings-nav-panel{padding:9px;position:sticky;top:12px}.settings-nav-title{font-size:11px;font-weight:800;color:var(--muted);padding:8px 10px}.settings-nav-item{width:100%;border:0;background:transparent;border-radius:10px;padding:10px;display:grid;grid-template-columns:28px 1fr;gap:8px;text-align:left;cursor:pointer;color:var(--text);align-items:center}.settings-nav-item>span{width:28px;height:28px;border-radius:8px;background:#f1f4f8;display:grid;place-items:center}.settings-nav-item div{display:flex;flex-direction:column;gap:2px}.settings-nav-item strong{font-size:12px}.settings-nav-item small{font-size:9px;color:var(--muted)}.settings-nav-item.active{background:var(--accent-soft);color:var(--accent)}.settings-nav-item.active>span{background:#fff}.settings-panes{min-width:0}.settings-pane{display:none}.settings-pane.active{display:block}.settings-pane .settings-panel{max-width:none;margin-bottom:16px}
@media(max-width:900px){.settings-layout{grid-template-columns:1fr}.settings-nav-panel{position:static;display:flex;overflow-x:auto}.settings-nav-title{display:none}.settings-nav-item{min-width:150px}.dated-browser{grid-template-columns:1fr}.date-list{position:static;display:flex;overflow-x:auto}.date-list-head{display:none}.date-item{min-width:110px;border-right:1px solid #edf0f4;border-bottom:0}.preview-picker{grid-template-columns:repeat(2,1fr)}}

.object-card{overflow:hidden;padding:0!important}.object-card-body{padding:15px}.object-card-cover{height:145px;position:relative;background:#eef2f6;border-bottom:1px solid var(--line)}.object-card-cover img{width:100%;height:100%;object-fit:cover;display:block}.object-card-cover>span{position:absolute;right:8px;bottom:8px;background:rgba(17,27,40,.72);color:#fff;padding:4px 7px;border-radius:999px;font-size:9px}.object-card-cover.empty{display:grid;place-items:center;color:var(--muted);font-size:11px}.object-card-cover.empty>span{position:static;background:transparent;color:var(--muted)}

/* 0.9.2 */
.drawer-actions{gap:8px}.photo-links button[data-edit-photo-date]{font-weight:700}.drawer-tab[data-tab="acts"]{white-space:nowrap}

/* 0.9.3 — конструктор актов и единый справочник подписантов */
.acts-summary{display:flex;align-items:center;justify-content:space-between;gap:12px}.acts-summary>div{display:flex;align-items:baseline;gap:6px}.act-document-list{display:grid;gap:12px}.act-document-card{border:1px solid var(--line);border-radius:13px;background:#fff;overflow:hidden}.act-document-card .document-row{border:0;border-radius:0;border-bottom:1px solid var(--line);margin:0}.act-photo-area{padding:10px 12px;background:#fafbfd}.act-photo-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.act-photo-head>span{font-size:10px;color:var(--muted);font-weight:700}.act-photo-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.act-photo-strip button{width:100px;min-width:100px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:0;overflow:hidden;cursor:pointer;text-align:left}.act-photo-strip img{width:100%;height:68px;object-fit:cover;display:block}.act-photo-strip span{display:block;padding:4px 6px;font-size:9px;color:var(--muted)}.act-photo-empty{font-size:10px;color:var(--muted)}
.act-backdrop{position:fixed;inset:0;background:rgba(13,22,34,.58);z-index:118;opacity:0;pointer-events:none;transition:.2s}.act-backdrop.open{opacity:1;pointer-events:auto}.act-builder{position:fixed;inset:18px;z-index:119;background:#f5f7fa;border-radius:20px;box-shadow:0 24px 80px rgba(7,17,33,.33);display:flex;flex-direction:column;overflow:hidden;opacity:0;pointer-events:none;transform:translateY(10px) scale(.99);transition:.22s}.act-builder.open{opacity:1;pointer-events:auto;transform:none}.act-builder-header{background:#fff;border-bottom:1px solid #e3e8ef;padding:17px 21px;display:flex;align-items:center;justify-content:space-between;gap:18px}.act-builder-header h2{margin:5px 0 2px;font-size:21px}.act-builder-header p{margin:0;color:var(--muted)}.act-builder-actions{display:flex;align-items:center;gap:9px}.act-builder-layout{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:0;flex:1}.act-builder-steps{background:#101c2b;padding:16px 10px;display:flex;flex-direction:column;gap:4px;overflow:auto}.act-builder-main{display:flex;flex-direction:column;min-width:0;overflow:hidden}.act-builder-main>#actBuilderContent{padding:24px 27px;overflow:auto;flex:1}.act-builder-footer{background:#fff;border-top:1px solid #e2e7ee;padding:13px 20px;display:flex;justify-content:space-between;gap:10px}.act-builder-footer>div{display:flex;gap:8px}.act-section{max-width:1200px;margin:0 auto}.act-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.act-section-head h3{margin:0 0 4px;font-size:20px}.act-section-head p{margin:0;color:var(--muted);line-height:1.45}.act-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.act-form-grid label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:700}.act-form-grid input,.act-form-grid select,.act-table input,.act-table select,.act-table textarea{border:1px solid var(--line);border-radius:9px;background:#fff;padding:9px 10px;font:inherit;color:var(--text)}.act-form-grid small{font-weight:400;color:var(--muted);line-height:1.4}.act-main-actions{margin-top:14px}.act-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}.act-table{width:100%;border-collapse:collapse;min-width:900px}.act-table th{padding:9px 8px;background:#f2f5f9;border-bottom:1px solid var(--line);font-size:10px;text-align:left;color:var(--muted)}.act-table td{padding:7px 8px;border-bottom:1px solid #edf0f4;vertical-align:top}.act-table textarea{width:100%;resize:vertical;min-height:52px}.act-table select{width:100%;min-width:150px}.act-photo-group{margin-bottom:17px}.act-photo-group>strong{display:block;font-size:12px;margin-bottom:8px}.act-photo-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:9px}.act-photo-choice{position:relative;border:2px solid transparent;border-radius:11px;overflow:hidden;background:#fff;cursor:pointer;min-height:130px}.act-photo-choice.selected{border-color:var(--accent)}.act-photo-choice input{position:absolute;left:8px;top:8px;z-index:2;width:17px;height:17px}.act-photo-choice img{width:100%;height:110px;object-fit:cover;display:block}.act-photo-choice span{display:block;padding:6px 8px;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.act-check-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:15px}.act-check-grid>div{border:1px solid var(--line);border-radius:11px;background:#fff;padding:11px 12px;display:flex;flex-direction:column;gap:4px}.act-check-grid span{font-size:9px;color:var(--muted)}.act-check-grid strong{font-size:12px;line-height:1.45}.people-editor{display:grid;gap:12px;margin:14px 0}.person-card{border:1px solid var(--line);border-radius:13px;background:#fff;padding:13px}.person-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}.person-card-head strong{font-size:13px}.switch-label{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:5px}.person-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.person-grid label{display:flex;flex-direction:column;gap:5px;font-size:10px;font-weight:700}.person-grid input{border:1px solid var(--line);border-radius:9px;padding:8px 9px;background:#fff}.person-flags{display:flex;gap:16px;flex-wrap:wrap;border-top:1px solid #edf0f4;padding-top:10px}.person-flags label{display:flex;flex-direction:row;align-items:center;gap:5px;font-weight:600}.person-flags input{width:auto}.span-2{grid-column:1/-1}
@media(max-width:850px){.act-builder{inset:0;border-radius:0}.act-builder-layout{grid-template-columns:1fr}.act-builder-steps{flex-direction:row;overflow-x:auto;padding:8px}.act-builder-steps .duma-step{min-width:170px}.act-form-grid,.act-check-grid,.person-grid{grid-template-columns:1fr}.act-builder-header{align-items:flex-start}.act-builder-actions{flex-wrap:wrap;justify-content:flex-end}.acts-summary{align-items:stretch;flex-direction:column}.acts-summary .btn{width:100%}}

/* 0.9.4 — явные инвентаризации */
.inventory-session-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;margin-bottom:14px;border:1px solid var(--line);border-radius:13px;background:linear-gradient(135deg,#f8fbff,#f6f8fb)}
.inventory-session-toolbar>div:first-child{display:flex;flex-direction:column;gap:2px}.inventory-session-toolbar span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.inventory-session-toolbar strong{font-size:14px}.inventory-session-toolbar small{font-size:10px;color:var(--muted)}
.inventory-session-actions{display:flex;align-items:center;gap:8px}.inventory-session-actions select,.duma-source-bar select{min-width:190px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:8px 10px;font-size:11px}.inventory-photo-content{min-width:0}.duma-source-bar{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:11px 12px;margin-bottom:13px;border:1px solid #dce5f4;border-radius:11px;background:#f7faff}.duma-source-bar label{display:flex;flex-direction:column;gap:5px;font-size:10px;color:var(--muted)}
@media(max-width:700px){.inventory-session-toolbar,.inventory-session-actions,.duma-source-bar{align-items:stretch;flex-direction:column}.inventory-session-actions select,.duma-source-bar select{width:100%;min-width:0}}

/* 0.9.5 — инвентаризации и история карточки */
.inventory-delete-btn{border:0;background:transparent;color:#c73d3d;font-size:11px;font-weight:700;padding:7px 8px;border-radius:8px;cursor:pointer}
.inventory-delete-btn:hover{background:#fff0f0;color:#a91f1f}
.history-head{display:flex;justify-content:space-between;align-items:flex-start;margin:0 0 16px}.history-head>div{display:flex;flex-direction:column;gap:3px}.history-head strong{font-size:14px}.history-head span{font-size:11px;color:var(--muted)}
.timeline-item.audit::before{background:#2b66d9;box-shadow:0 0 0 4px #edf3ff}.timeline-item.manual::before{background:#8b95a7;box-shadow:0 0 0 4px #f0f2f5}.timeline-user{display:inline-block;margin-top:3px;font-size:10px;color:#667085;font-weight:700}


/* 0.9.6 — лёгкие превью и нормальный просмотр медиа */
.document-zoom-controls{display:flex;align-items:center;height:34px;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff}
.document-zoom-controls.hidden{display:none!important}
.document-zoom-controls button{height:32px;border:0;background:#fff;color:var(--text);cursor:pointer;font-family:inherit}
.document-zoom-controls button:hover{background:#f3f6fa}
.document-zoom-controls .zoom-btn{width:34px;font-size:18px;line-height:1}
.document-zoom-controls .zoom-fit{min-width:66px;padding:0 9px;border-left:1px solid var(--line);border-right:1px solid var(--line);font-size:10px;font-weight:700;color:var(--muted)}
.document-viewer-body{overflow:hidden}
.document-image-wrap{width:100%;height:100%;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:18px;box-sizing:border-box;background:#20252b}
.document-image-wrap img{display:block;width:auto;height:auto;max-width:none;max-height:none;object-fit:contain;box-shadow:0 8px 32px rgba(0,0,0,.34);background:#fff;flex:0 0 auto}
.document-frame{border:0;width:100%;height:100%;display:block;background:#dfe4e9}
.photo-real img,.preview-choice img,.act-photo-strip img,.inspection-photo-strip img,.act-photo-choice img,.select-photo img,.object-card-cover img{content-visibility:auto}
.photo-real img{background:#edf1f5}
.photo-open{width:100%;height:100%;border:0;padding:0;background:transparent;display:block;cursor:zoom-in}
@media(max-width:760px){
  .document-viewer-actions{flex-wrap:wrap;justify-content:flex-end}
  .document-zoom-controls{order:2;height:30px}
  .document-zoom-controls button{height:28px}
  .document-zoom-controls .zoom-btn{width:30px}
  .document-zoom-controls .zoom-fit{min-width:58px;padding:0 6px}
  .document-image-wrap{padding:8px}
}


/* 0.9.7 — версии подготовки на Думу */
.duma-versions-backdrop{position:fixed;inset:0;background:rgba(10,18,30,.58);z-index:116;opacity:0;pointer-events:none;transition:.2s}.duma-versions-backdrop.open{opacity:1;pointer-events:auto}
.duma-versions-modal{position:fixed;z-index:117;left:50%;top:50%;transform:translate(-50%,-48%) scale(.99);width:min(920px,calc(100vw - 36px));max-height:calc(100vh - 36px);background:#f6f8fb;border-radius:19px;box-shadow:0 24px 80px rgba(7,17,33,.34);overflow:hidden;display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:.2s}.duma-versions-modal.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.duma-versions-header{padding:18px 20px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.duma-versions-header h2{font-size:21px;margin:5px 0 2px}.duma-versions-header p{margin:0;color:var(--muted)}.duma-versions-head-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.duma-versions-intro{padding:15px 20px 8px;display:flex;flex-direction:column;gap:3px}.duma-versions-intro strong{font-size:14px}.duma-versions-intro span{font-size:10px;color:var(--muted)}
.duma-versions-list{padding:10px 20px 20px;overflow:auto;display:grid;gap:10px}.duma-version-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 15px}.duma-version-main{display:grid;grid-template-columns:78px minmax(0,1fr);gap:13px;align-items:center}.duma-version-number{height:48px;border-radius:11px;background:#eef3ff;color:#285cd2;display:grid;place-items:center;text-align:center;font-size:11px;font-weight:800}.duma-version-meta{display:flex;flex-direction:column;gap:3px;min-width:0}.duma-version-meta strong{font-size:13px}.duma-version-meta span,.duma-version-meta small{font-size:10px;color:var(--muted);white-space:normal}.duma-version-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.duma-version-actions .btn{white-space:nowrap}.duma-version-delete{border:0;background:transparent;color:#c43c3c;font:inherit;font-size:10px;font-weight:700;padding:7px 8px;border-radius:8px;cursor:pointer}.duma-version-delete:hover{background:#fff0f0}.duma-versions-empty{min-height:180px;border:1px dashed #cfd7e3;border-radius:14px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:5px;padding:25px}.duma-versions-empty strong{font-size:15px}.duma-versions-empty span{font-size:11px;color:var(--muted);max-width:430px;line-height:1.45}
@media(max-width:760px){.duma-versions-modal{width:100vw;max-height:100vh;height:100vh;border-radius:0}.duma-versions-header{align-items:flex-start}.duma-versions-head-actions{flex-wrap:wrap;justify-content:flex-end}.duma-version-card{grid-template-columns:1fr}.duma-version-main{grid-template-columns:64px 1fr}.duma-version-actions{justify-content:stretch}.duma-version-actions .btn{flex:1 1 auto}.duma-version-delete{width:100%}}


/* 0.9.8 — галерея фото, JFIF и быстрое состояние элементов */
.photo-viewer-nav-wrap{position:absolute;inset:66px 0 0;pointer-events:none;z-index:4}.photo-viewer-nav-wrap.hidden{display:none}.photo-viewer-arrow{pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);width:48px;height:72px;border:0;border-radius:14px;background:rgba(12,18,27,.62);color:#fff;font-size:42px;line-height:1;cursor:pointer;display:grid;place-items:center;backdrop-filter:blur(6px);box-shadow:0 8px 28px rgba(0,0,0,.18)}.photo-viewer-arrow:hover{background:rgba(12,18,27,.82)}.photo-viewer-arrow:disabled{opacity:.22;cursor:default}.photo-viewer-arrow.prev{left:16px}.photo-viewer-arrow.next{right:16px}.photo-viewer-count{pointer-events:none;position:absolute;left:50%;bottom:14px;transform:translateX(-50%);padding:6px 10px;border-radius:999px;background:rgba(12,18,27,.68);color:#fff;font-size:11px;font-weight:700;backdrop-filter:blur(6px)}
.element-state-quick{position:relative;display:inline-flex;align-items:center}.element-state-trigger{border:0;cursor:pointer;font-family:inherit;white-space:nowrap}.element-state-popover{display:none;position:absolute;right:0;top:calc(100% + 6px);z-index:25;background:#fff;border:1px solid var(--line);border-radius:10px;padding:7px;box-shadow:0 10px 30px rgba(15,23,42,.16);gap:6px;align-items:center;min-width:250px}.element-state-popover.open{display:flex}.element-state-popover select{height:34px;min-width:190px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 8px;font:inherit;font-size:11px}.element-state-confirm{width:34px;height:34px;border:0;border-radius:8px;background:#245fda;color:#fff;font-size:17px;font-weight:800;cursor:pointer}.element-state-confirm:hover{filter:brightness(.94)}
@media(max-width:760px){.photo-viewer-nav-wrap{inset:58px 0 0}.photo-viewer-arrow{width:40px;height:60px;font-size:34px;border-radius:11px}.photo-viewer-arrow.prev{left:8px}.photo-viewer-arrow.next{right:8px}.element-state-popover{position:fixed;left:12px;right:12px;top:auto;bottom:12px;min-width:0;z-index:160}.element-state-popover select{flex:1;min-width:0}}


/* 0.10.0 — интеллектуальное сопоставление трёх КП */
.offer-matching-panel{margin:18px 0;padding:18px;border:1px solid var(--border);border-radius:16px;background:var(--card,#fff)}
.offer-matching-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.offer-matching-head h3{margin:0 0 5px}.offer-matching-head p{margin:0;color:var(--muted);max-width:760px}
.offer-match-summary{display:flex;gap:7px;flex-wrap:wrap}.offer-match-summary span,.match-badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:700;white-space:nowrap}.offer-match-summary .high,.match-badge.high,.match-badge.confirmed{background:#e8f7ee;color:#14733b}.offer-match-summary .medium,.match-badge.medium{background:#fff6d8;color:#8a6500}.offer-match-summary .review,.match-badge.review{background:#fdeaea;color:#a22a2a}.match-badge.base{background:#edf2f7;color:#52606d}
.offer-match-cell{min-width:250px}.offer-match-select{width:100%;max-width:420px;padding:8px 10px;border:1px solid var(--border);border-radius:9px;background:var(--card,#fff)}.offer-match-meta{display:flex;align-items:center;gap:8px;margin-top:6px}.offer-match-meta small{color:var(--muted)}.offer-match-table td:first-child{min-width:220px}.match-base-price{display:block;color:var(--muted);margin-top:4px}.offer-match-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:12px}.offer-match-actions .recognition-note{margin:0;flex:1}
@media(max-width:900px){.offer-matching-head,.offer-match-actions{flex-direction:column}.offer-match-cell{min-width:220px}}


/* 0.10.1 — компактное сопоставление КП и массовый выбор НМЦК */
.offer-matching-panel{padding:13px 14px;margin:14px 0;border-radius:13px}
.offer-matching-head{gap:12px;margin-bottom:9px}.offer-matching-head h3{font-size:16px;margin-bottom:3px}.offer-matching-head p{font-size:12px;line-height:1.35;max-width:680px}
.offer-match-summary span,.match-badge{padding:3px 7px;font-size:11px}
.offer-match-table th,.offer-match-table td{padding:6px 8px!important;font-size:12px;vertical-align:middle}
.offer-match-table td:first-child{min-width:175px;max-width:230px}.offer-match-table td:first-child strong{font-size:12px;line-height:1.25}
.offer-match-cell{min-width:190px}.offer-match-select{max-width:320px;padding:5px 7px;font-size:12px;border-radius:7px}
.offer-match-meta{gap:5px;margin-top:3px}.offer-match-meta small{font-size:10px;line-height:1.2}.match-base-price{margin-top:2px;font-size:11px}
.offer-match-actions{gap:10px;margin-top:8px}.offer-match-actions .recognition-note{padding:8px 10px;font-size:11px}
.duma-bulk-select{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:8px 0}.duma-bulk-select span{font-size:12px;color:var(--muted)}
@media(max-width:900px){.offer-match-cell{min-width:180px}.offer-match-table td:first-child{min-width:160px}}
/* 0.10.2: глобальные шаблоны и компактное управление хранилищем */
.template-settings-list{display:grid;gap:10px;margin-top:14px}.template-setting-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.template-setting-card>div:first-child{display:flex;flex-direction:column;gap:4px}.template-setting-card span{font-size:12px;color:var(--muted)}.template-setting-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.danger-storage-panel{border-color:rgba(190,45,45,.28)}
@media(max-width:760px){.template-setting-card{align-items:flex-start;flex-direction:column}.template-setting-actions{justify-content:flex-start;width:100%}}


/* 0.10.6 — фильтры карты и поиск произвольного адреса */
.map-toolbar-v2{grid-template-columns:minmax(420px,1fr) auto;align-items:start}
.map-search-block{display:flex;flex-direction:column;gap:9px;min-width:0}
.map-address-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.map-address-input{flex:1 1 390px;min-width:260px}
.map-radius-control{display:flex;align-items:center;gap:7px;white-space:nowrap;color:var(--muted);font-size:12px}
.map-radius-control select{min-width:92px;height:36px;border:1px solid var(--line);border-radius:9px;background:var(--panel);padding:0 8px;color:var(--text)}
.map-address-result{min-height:0;display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--muted)}
.map-address-result strong{font-size:13px;color:var(--text)}
.map-layer-filter{grid-column:1/-1;border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:8px}
.map-layer-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.map-layer-head>div{display:flex;gap:10px}
.map-layer-head strong{font-size:12px}
.map-type-chips{display:flex;flex-wrap:wrap;gap:7px}
.map-type-chips label{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);font-size:12px;cursor:pointer;user-select:none}
.map-type-chips label:has(input:not(:checked)){opacity:.48;background:var(--bg)}
.map-type-chips input{margin:0}
.map-type-chips .dot{width:8px;height:8px;flex:0 0 8px}
@media(max-width:980px){.map-toolbar-v2{grid-template-columns:1fr}.map-toolbar-v2 .map-toolbar-right{grid-column:1}.map-address-input{flex-basis:100%}}
@media(max-width:620px){.map-address-row{align-items:stretch}.map-address-row .btn{flex:1}.map-radius-control{width:100%;justify-content:space-between}.map-radius-control select{flex:1}.map-layer-head{align-items:flex-start;flex-direction:column}.map-type-chips label{flex:1 1 calc(50% - 7px)}}


/* 0.10.7 — отдельные реестры в боковом меню */
.nav{overflow-y:auto;overflow-x:hidden;padding-right:2px;align-content:start}
.nav-registry-group,.nav-main-group{display:grid;gap:4px}
.nav-main-group{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.07)}
.nav-group-label{padding:2px 12px 5px;color:rgba(255,255,255,.34);font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.nav-mini-code{min-width:28px;height:21px;border-radius:6px;display:grid;place-items:center;background:rgba(255,255,255,.075);color:rgba(255,255,255,.78);font-size:8px;letter-spacing:.02em}
.nav-item.active .nav-mini-code{background:#fff;color:#2457d6}
@media(max-width:1050px){.nav-group-label{display:none}.nav-registry-group,.nav-main-group{gap:5px}.nav-main-group{margin-top:4px;padding-top:4px}.nav-mini-code{min-width:31px;height:24px;font-size:8px}}
@media(max-width:760px){.nav{display:flex!important;overflow-x:auto;overflow-y:hidden;gap:3px;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav-registry-group,.nav-main-group{display:flex;gap:3px;flex:0 0 auto;margin:0;padding:0;border:0}.nav-item{min-width:51px}.nav-mini-code{min-width:30px}.nav-item span{display:none!important}}

/* 0.10.8 — единый поиск карты и локальный адресный справочник */
.map-unified-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.map-unified-search{position:relative;flex:1 1 520px;min-width:280px}
.map-unified-search .search-wrap{width:100%}
.map-search-hint{font-size:11px;color:var(--muted);padding-left:3px}
.map-search-suggestions{position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:1200;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px rgba(21,35,64,.18);padding:5px;max-height:320px;overflow:auto}
.map-search-suggestion{width:100%;display:flex;align-items:flex-start;gap:9px;text-align:left;border:0;background:transparent;padding:9px 10px;border-radius:9px;cursor:pointer;color:var(--text)}
.map-search-suggestion:hover,.map-search-suggestion.active{background:#eef4ff}
.map-search-suggestion>span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.map-search-suggestion strong{font-size:13px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.map-search-suggestion small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.map-suggestion-icon{width:22px;height:22px;display:grid;place-items:center;border-radius:7px;background:#edf3ff;color:#2457d6;flex:0 0 22px;font-size:12px}
.address-directory-panel .storage-status{margin-top:12px}
@media(max-width:980px){.map-unified-search{flex-basis:100%}.map-unified-row>.btn{flex:1}.map-unified-row .map-radius-control{flex:1 1 220px}}
@media(max-width:620px){.map-unified-row{align-items:stretch}.map-unified-row>.btn{flex:1}.map-unified-row .map-radius-control{width:100%;flex-basis:100%}.map-unified-search{min-width:0}}


/* 0.10.11 — полноценная адаптация интерфейса для телефона */
.mobile-menu-btn,.mobile-nav-backdrop{display:none}

@media(max-width:760px){
  html,body{width:100%;max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%}
  body.mobile-menu-open{overflow:hidden;touch-action:none}
  button,.btn,.icon-btn,.nav-item,.drawer-tab,.segment{touch-action:manipulation}
  input,select,textarea{font-size:16px!important}
  .btn{min-height:44px;padding:10px 13px}
  .icon-btn{width:44px;height:44px;min-width:44px}

  /* Мобильное меню вместо перегруженной нижней полосы */
  .app-shell{display:block}
  .mobile-nav-backdrop{display:block;position:fixed;inset:0;z-index:199;background:rgba(9,17,25,.44);opacity:0;visibility:hidden;transition:.2s}
  .mobile-nav-backdrop.open{opacity:1;visibility:visible}
  .sidebar{display:flex;position:fixed;z-index:200;left:0;top:0;bottom:0;right:auto;width:min(330px,88vw);height:100vh;height:100dvh;padding:16px 12px max(14px,env(safe-area-inset-bottom));flex-direction:column;transform:translateX(-102%);transition:transform .22s ease;box-shadow:18px 0 50px rgba(8,18,30,.22);overflow:hidden}
  .sidebar.mobile-open{transform:translateX(0)}
  .sidebar .brand{display:flex!important;justify-content:flex-start;padding:0 6px 15px;margin-bottom:8px}
  .sidebar .brand>div:not(.brand-mark){display:block!important}
  .sidebar .sidebar-footer{display:flex!important;justify-content:flex-start;padding:14px 7px 0}
  .sidebar .user-meta{display:grid!important}
  .sidebar .nav{display:block!important;width:100%;margin:0;overflow-y:auto;overflow-x:hidden;padding:2px 2px 10px;scrollbar-width:thin}
  .sidebar .nav-registry-group,.sidebar .nav-main-group{display:grid!important;gap:4px!important;margin:0!important;padding:0!important;border:0!important}
  .sidebar .nav-main-group{margin-top:10px!important;padding-top:10px!important;border-top:1px solid rgba(255,255,255,.08)!important}
  .sidebar .nav-group-label{display:block!important;padding:5px 10px;color:rgba(255,255,255,.42)}
  .sidebar .nav-item{display:flex!important;width:100%;min-width:0;justify-content:flex-start!important;gap:10px;padding:11px 10px;font-size:14px;min-height:44px}
  .sidebar .nav-item span{display:inline!important;font-size:13px;white-space:normal}
  .sidebar .nav-mini-code{display:grid!important;min-width:36px;width:36px;height:26px;font-size:9px}
  .logout-mini{margin-left:auto;width:42px;height:42px;font-size:21px}
  .mobile-menu-btn{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--text);font-size:21px;line-height:1;box-shadow:0 4px 14px rgba(19,31,45,.05)}

  /* Основной экран */
  .main{padding:10px 10px 22px;min-height:100dvh}
  .topbar{position:sticky;top:0;z-index:35;display:flex;align-items:center;gap:10px;margin:0 -10px 10px;padding:8px 10px;background:rgba(245,247,249,.95);backdrop-filter:blur(12px);border-bottom:1px solid rgba(229,233,237,.9)}
  .topbar-title{min-width:0;flex:1}
  .topbar h1{font-size:19px;line-height:1.15;letter-spacing:-.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .topbar p{display:none}
  .topbar-actions{margin-left:auto;gap:6px;flex:0 0 auto}
  .topbar-actions .secondary{display:none!important}
  #addObjectBtn{position:fixed;z-index:32;right:max(14px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));width:54px;height:54px;min-height:54px;padding:0;border-radius:50%;font-size:0;box-shadow:0 12px 28px rgba(36,87,214,.28)}
  #addObjectBtn::before{content:'+';font-size:30px;font-weight:500;line-height:1}

  .panel{border-radius:12px;box-shadow:0 7px 20px rgba(19,31,45,.05)}
  .filters-panel{padding:10px;margin-bottom:10px}
  .search-wrap input{height:46px;padding-left:39px}
  #registryView .filters-row{grid-template-columns:1fr 1fr!important;gap:8px;margin-top:8px}
  #registryView #stateFilter,#registryView #yearFilter{grid-column:auto}
  #registryView #sortFilter,#registryView #clearFiltersBtn{grid-column:1/-1}
  #registryView #clearFiltersBtn{min-height:40px;padding:8px}
  .panel-heading{padding:12px;gap:8px;align-items:center}
  .panel-heading h2{font-size:15px}
  .panel-heading span{font-size:11px}
  .segmented{flex:0 0 auto}
  .segment{min-height:36px;padding:7px 9px}
  .cards-grid{grid-template-columns:1fr;gap:9px;padding:9px}
  .object-card{border-radius:12px}
  .object-card-cover{height:120px}
  .object-card-body{padding:12px}
  .object-card h3{font-size:14px}
  .object-card .address{font-size:13px;line-height:1.35;margin-bottom:10px}
  .object-card-meta{padding-top:9px}
  .object-card .status{font-size:10px;padding:5px 7px}
  .no-results{padding:34px 16px}
  .table-scroll{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
  .table-scroll .registry-table{min-width:650px}

  /* Карта */
  #mapView .map-toolbar{padding:9px;margin-bottom:8px;gap:8px}
  .map-search-block{gap:6px}
  .map-unified-row{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:stretch}
  .map-unified-search{grid-column:1/-1;min-width:0;width:100%}
  .map-unified-row>#mapUnifiedSearchBtn{grid-column:1;min-width:0;width:100%}
  .map-unified-row>.map-radius-control{grid-column:2;width:auto!important;min-width:118px;justify-content:flex-start!important;gap:5px;padding:0 8px;border:1px solid var(--line);border-radius:10px;background:#fff}
  .map-radius-control span{font-size:10px}
  .map-radius-control select{min-width:72px;height:42px;border:0;padding:0 4px;background:transparent;font-size:13px!important;box-shadow:none!important}
  .map-unified-row>#mapAddressClearBtn{grid-column:1/-1;width:100%}
  .map-search-hint{display:none}
  .map-search-suggestions{position:fixed;left:10px;right:10px;top:112px;max-height:44dvh;border-radius:13px;padding:5px;z-index:1200}
  .map-search-suggestion{padding:10px 9px;min-height:48px}
  .map-search-suggestion strong{font-size:13px}
  .map-toolbar-right{display:none!important}
  .map-layer-filter{padding-top:7px;gap:6px}
  .map-layer-head strong{font-size:11px}
  .map-layer-head>div{gap:12px}
  .map-type-chips{gap:5px}
  .map-type-chips label{flex:1 1 calc(50% - 5px)!important;min-height:38px;padding:6px 8px;font-size:11px}
  .map-type-chips input{width:16px;height:16px}
  #map{height:56dvh;min-height:390px;max-height:620px}
  .leaflet-control-zoom a{width:38px!important;height:38px!important;line-height:38px!important}
  .leaflet-control-attribution{font-size:8px!important;max-width:75vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

  /* Карточка объекта */
  .drawer{left:0;right:0;top:0;bottom:0;width:100vw;height:100dvh;max-height:100dvh;border-radius:0;box-shadow:none}
  .drawer-header{padding:12px 12px 9px;gap:8px}
  .drawer-header h2{margin:5px 0 2px;font-size:19px}
  .drawer-header p{font-size:12px;line-height:1.3;max-width:calc(100vw - 70px)}
  .drawer-tabs{padding:6px 8px;gap:2px;scrollbar-width:none}
  .drawer-tabs::-webkit-scrollbar{display:none}
  .drawer-tab{min-height:40px;padding:8px 10px;font-size:12px}
  .drawer-content{padding:12px 10px calc(24px + env(safe-area-inset-bottom))}
  .info-grid{grid-template-columns:1fr!important;gap:8px}
  .info-card{padding:11px}
  .section-title{margin:17px 0 8px}
  .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .drawer-actions{align-items:stretch;flex-direction:column}
  .drawer-actions .btn{width:100%}
  .list-row{gap:8px;align-items:flex-start}
  .document-row{align-items:flex-start;flex-wrap:wrap}
  .document-actions{width:100%;justify-content:flex-start}

  /* Формы и модальные окна */
  .modal{left:0;top:0;width:100vw;height:100dvh;max-height:100dvh;border-radius:0;transform:translateY(12px);overflow:auto;overscroll-behavior:contain}
  .modal.open{transform:none}
  .small-modal{width:100vw;height:auto;max-height:92dvh;top:auto;bottom:0;border-radius:16px 16px 0 0;transform:translateY(105%)}
  .small-modal.open{transform:none}
  .modal-header{position:sticky;top:0;z-index:3;padding:12px;background:#fff}
  .modal-header h2{font-size:18px}
  .object-form{padding:12px 10px calc(14px + env(safe-area-inset-bottom))}
  .form-grid{grid-template-columns:1fr!important;gap:10px}
  .span-2,.inventory-wide{grid-column:1!important}
  .modal-actions{position:sticky;bottom:0;z-index:3;margin:16px -10px -14px;padding:10px;background:rgba(255,255,255,.96);border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr}
  .modal-actions .btn{width:100%}
  .inventory-edit-grid{grid-template-columns:1fr!important}
  #locationPickerMap{height:42dvh;min-height:290px}
  .location-buttons{width:100%}
  .location-buttons .btn{width:100%}

  /* Настройки */
  .settings-layout{display:block}
  .settings-nav-panel{position:sticky!important;top:59px;z-index:24;display:flex!important;overflow-x:auto;gap:5px;margin-bottom:9px;padding:6px;border-radius:11px;scrollbar-width:none}
  .settings-nav-panel::-webkit-scrollbar{display:none}
  .settings-nav-title{display:none!important}
  .settings-nav-item{display:flex;align-items:center;gap:6px;min-width:max-content!important;width:auto;padding:7px 9px}
  .settings-nav-item>span{width:26px;height:26px;flex:0 0 26px}
  .settings-nav-item div{display:block}
  .settings-nav-item strong{font-size:11px;white-space:nowrap}
  .settings-nav-item small{display:none}
  .settings-form{padding:12px}
  .settings-pane .settings-panel{margin-bottom:10px}
  .settings-hint{font-size:11px;padding:9px 10px;overflow-wrap:anywhere}
  .settings-actions{gap:7px}
  .storage-path-row{padding:9px 10px}
  .template-setting-actions .btn{flex:1 1 130px}

  /* Прочие разделы */
  .analytics-grid{grid-template-columns:1fr;gap:9px}
  .analytics-card{padding:13px}
  .bar-row{grid-template-columns:90px 1fr 28px;gap:6px}
  #inspectionsView .registry-table,#auditView .registry-table,#usersView .registry-table{min-width:680px}
  #usersView .panel-heading{align-items:flex-start}
  #usersView #addUserBtn{min-height:40px;padding:8px 10px}

  /* Просмотр документов */
  .document-viewer{inset:0;border-radius:0}
  .document-viewer-header{min-height:58px;padding:9px 10px;gap:8px}
  .document-viewer-header h2{font-size:14px}
  .document-viewer-header p{font-size:10px}
  .document-viewer-toolbar{flex-wrap:wrap}

  /* Экраны подготовки документов уже имели адаптацию — уменьшаем лишние отступы */
  .duma-main>#dumaContent{padding:11px!important}
  .duma-header,.act-builder-header{padding:10px!important}
  .duma-step{min-width:138px!important}
  .duma-footer{padding:8px!important;gap:6px}
  .duma-footer .btn{min-height:42px;padding:8px 10px}
}

@media(max-width:390px){
  .main{padding-left:7px;padding-right:7px}
  .topbar{margin-left:-7px;margin-right:-7px;padding-left:7px;padding-right:7px}
  .topbar h1{font-size:17px}
  .mobile-menu-btn{width:40px;height:40px;flex-basis:40px}
  #registryView .filters-row{grid-template-columns:1fr!important}
  #registryView #stateFilter,#registryView #yearFilter,#registryView #sortFilter,#registryView #clearFiltersBtn{grid-column:1!important}
  .panel-heading{padding:10px}
  .segmented .segment{font-size:11px;padding:6px 8px}
  .map-unified-row{grid-template-columns:1fr}
  .map-unified-row>#mapUnifiedSearchBtn,.map-unified-row>.map-radius-control{grid-column:1}
  .map-unified-row>.map-radius-control{justify-content:space-between!important;width:100%!important}
  .map-type-chips label{flex-basis:100%!important}
  #map{min-height:360px}
}


/* 0.10.12 — iPhone Home Screen / PWA standalone */
:root{
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
}
html{background:#f5f7f9}
html.pwa-standalone,html.pwa-standalone body{min-height:100%;min-height:100dvh}
html.pwa-standalone body{overscroll-behavior-y:none}

@media (display-mode: standalone){
  html,body{min-height:100%;min-height:100dvh}
  body{overscroll-behavior-y:none}
}

@media(max-width:760px){
  /* На iPhone приложение занимает весь экран, но не залезает под вырез и Home Indicator. */
  .main{padding-left:max(10px,var(--safe-left));padding-right:max(10px,var(--safe-right));padding-bottom:calc(22px + var(--safe-bottom))}
  .topbar{
    margin-left:calc(-1 * max(10px,var(--safe-left)));
    margin-right:calc(-1 * max(10px,var(--safe-right)));
    padding-left:max(10px,var(--safe-left));
    padding-right:max(10px,var(--safe-right));
  }
  .sidebar{padding-top:max(16px,var(--safe-top));padding-left:max(12px,var(--safe-left));padding-bottom:max(14px,var(--safe-bottom))}
  #addObjectBtn{right:max(14px,var(--safe-right));bottom:max(16px,var(--safe-bottom))}
  .drawer-content{padding-bottom:calc(24px + var(--safe-bottom))}
  .object-form{padding-bottom:calc(14px + var(--safe-bottom))}
  .small-modal{padding-bottom:var(--safe-bottom)}
  .document-viewer-body{padding-bottom:var(--safe-bottom)}
  .duma-footer,.act-builder-footer{padding-bottom:max(8px,var(--safe-bottom))!important}
  .toast{right:max(10px,var(--safe-right));left:max(10px,var(--safe-left));bottom:calc(12px + var(--safe-bottom));text-align:center}

  /* Standalone: дополнительный верхний отступ нужен только когда Safari уже отсутствует. */
  html.pwa-standalone .topbar{padding-top:calc(8px + var(--safe-top));margin-top:calc(-1 * var(--safe-top))}
  html.pwa-standalone .settings-nav-panel{top:calc(59px + var(--safe-top))}
  html.pwa-standalone .drawer-header,
  html.pwa-standalone .modal-header,
  html.pwa-standalone .document-viewer-header,
  html.pwa-standalone .duma-header,
  html.pwa-standalone .act-builder-header{padding-top:calc(10px + var(--safe-top))!important}
  html.pwa-standalone .drawer-tabs{scroll-padding-left:max(8px,var(--safe-left));scroll-padding-right:max(8px,var(--safe-right))}
}

@media(max-width:390px){
  .main{padding-left:max(7px,var(--safe-left));padding-right:max(7px,var(--safe-right))}
  .topbar{margin-left:calc(-1 * max(7px,var(--safe-left)));margin-right:calc(-1 * max(7px,var(--safe-right)));padding-left:max(7px,var(--safe-left));padding-right:max(7px,var(--safe-right))}
}


/* 0.10.13 — mobile performance */
.mobile-load-more{
  padding: 10px 14px 18px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:7px;
}
.mobile-load-more span{
  font-size:11px;
  color:var(--muted);
}
@media (max-width:760px){
  .object-card,
  .drawer,
  .modal,
  .sidebar,
  .mobile-nav-backdrop{
    transition-duration:.14s !important;
  }
  .object-card:hover,
  .btn:hover{
    transform:none;
  }
  .cards-grid{
    content-visibility:auto;
    contain-intrinsic-size:220px;
  }
  .object-card{
    contain:layout paint style;
  }
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    scroll-behavior:auto !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}


/* 0.10.14 — настраиваемые реестры и библиотека документов */
.registry-types-settings{margin-top:16px}.registry-type-list{display:flex;flex-direction:column;gap:10px}.registry-type-settings-card{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;border:1px solid var(--border);border-radius:14px;padding:13px;background:var(--surface)}.registry-type-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--surface-2);font-size:20px}.registry-type-main{display:flex;flex-direction:column;gap:4px;min-width:0}.registry-type-main>span{font-size:12px;color:var(--muted)}.registry-field-chips{display:flex;flex-wrap:wrap;gap:5px}.registry-field-chips i{font-style:normal;font-size:10px;padding:3px 7px;border-radius:999px;background:var(--surface-2);color:var(--muted)}.registry-type-actions{display:flex;gap:6px}.registry-fields-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.registry-fields-editor-head div{display:flex;flex-direction:column;gap:3px}.registry-fields-editor-head span{font-size:11px;color:var(--muted)}.registry-fields-editor{display:flex;flex-direction:column;gap:8px}.registry-field-row{display:grid;grid-template-columns:1.1fr .8fr .7fr 1.2fr 1fr auto auto 34px;gap:6px;align-items:center;padding:8px;border:1px solid var(--border);border-radius:10px}.registry-field-row input,.registry-field-row select{min-width:0}.mini-check{display:flex!important;align-items:center!important;gap:4px!important;font-size:10px!important;white-space:nowrap}.mini-check input{width:auto!important}.info-card small{display:block;margin-top:5px;font-size:10px;color:var(--muted);font-weight:400}.action-hint{font-size:11px;color:var(--muted);line-height:1.45}.action-hint strong{color:var(--text)}#existingDocSelect{min-height:220px}
@media(max-width:760px){.registry-type-settings-card{grid-template-columns:38px 1fr}.registry-type-actions{grid-column:1/-1}.registry-type-actions .btn{flex:1}.registry-field-row{grid-template-columns:1fr 1fr}.registry-field-row>[data-rf="description"],.registry-field-row>[data-rf="options"]{grid-column:1/-1}.registry-fields-editor-head{align-items:flex-start;flex-direction:column}.registry-fields-editor-head .btn{width:100%}}


/* 0.10.18 — interactive map */
.registry-map-tooltip{
  background:rgba(255,255,255,.97)!important;
  color:var(--text)!important;
  border:1px solid rgba(160,174,196,.55)!important;
  border-radius:9px!important;
  box-shadow:0 7px 22px rgba(30,46,75,.16)!important;
  padding:6px 8px!important;
  font-size:11px!important;
  line-height:1.25!important;
}
.registry-map-tooltip:before{display:none!important}
.registry-line-tooltip{display:grid;gap:2px;min-width:190px}.registry-line-tooltip>span{font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.055em;color:#3566b7}.registry-line-tooltip.vkp>span{color:#526a84}.registry-line-tooltip>strong{font-size:12px;line-height:1.25;color:#24364c}.registry-line-tooltip>small{font-size:9px;color:#6f7f92}.registry-line-tooltip>em{font-style:normal;font-size:9px;color:#8a98a8;margin-top:2px}.registry-map-line{transition:stroke-width .13s ease,stroke-opacity .13s ease}.registry-map-line-hit{cursor:pointer;pointer-events:stroke}
.map-legend-line.uds{position:relative;border-top-width:3px!important;box-shadow:0 0 0 3px rgba(50,100,170,.18)}.map-legend-line.vkp{border-top-width:4px!important;box-shadow:0 0 0 2px rgba(255,255,255,.95)}
.registry-object-popup .leaflet-popup-content,
.map-identify-popup .leaflet-popup-content{margin:12px 14px!important;min-width:220px}
.registry-map-card,.map-identify-card{display:flex;flex-direction:column;gap:7px;color:var(--text)}
.registry-map-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.registry-map-code{font-size:12px;font-weight:800;color:#2457d6}
.registry-map-kind{font-size:10px;color:var(--muted);background:#f1f4f9;padding:4px 6px;border-radius:7px}
.registry-map-address,.map-identify-card>strong{font-size:14px;line-height:1.25}
.registry-map-state{align-self:flex-start;font-size:10px;font-weight:700;border-radius:999px;padding:4px 7px;background:#eef3fb}
.registry-map-state.bad{background:#fee8e8;color:#bc2d2d}
.registry-map-state.good{background:#e8f7ee;color:#24734a}
.registry-map-actions,.map-identify-actions{display:flex;gap:7px;margin-top:3px}
.registry-map-actions button,.map-identify-actions button,.map-identify-near button{
  appearance:none;border:0;border-radius:8px;background:#2457d6;color:#fff;
  padding:7px 9px;font:inherit;font-size:11px;font-weight:700;cursor:pointer
}
.registry-map-actions button.secondary,.map-identify-actions button.secondary{background:#edf2fa;color:#28405f}
.map-identify-card>span{font-size:12px;color:#435268}
.map-identify-card>small{font-size:10px;color:var(--muted)}
.map-identify-near{font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding-top:7px}
.map-identify-near button{padding:2px 0;background:transparent;color:#2457d6;text-align:left}
#map.leaflet-container{cursor:default}
#map .leaflet-interactive{cursor:pointer}
@media(max-width:620px){
  .registry-object-popup .leaflet-popup-content,.map-identify-popup .leaflet-popup-content{min-width:190px;max-width:76vw}
  .registry-map-actions,.map-identify-actions{flex-direction:column}
  .registry-map-actions button,.map-identify-actions button{min-height:38px}
}


/* 0.10.29 — проверка авторазметки ВКП прямо в настройках */

/* 0.10.30 — аккуратная проверка результатов авторазметки ВКП */
.vkp-auto-results-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:18px 0 9px;padding:0 2px}.vkp-auto-results-head>div{display:flex;align-items:baseline;gap:8px}.vkp-auto-results-head strong{font-size:13px}.vkp-auto-results-head span,.vkp-auto-results-head small{font-size:10px;color:var(--muted)}
.vkp-auto-results-list{display:grid;gap:8px}.vkp-auto-result-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:#fff}.vkp-auto-result-card.needs-review{border-color:#ead9ac;background:#fffdf7}.vkp-auto-result-body{min-width:0;display:grid;gap:5px;flex:1}.vkp-auto-result-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.vkp-auto-result-title>strong{font-size:12px}.vkp-auto-result-address{font-size:12px;line-height:1.4;color:#3d4954;word-break:break-word}.vkp-auto-result-note{font-size:10px;color:var(--muted);line-height:1.35;word-break:break-word}.vkp-auto-result-badge,.vkp-auto-review-badge,.vkp-auto-ok-badge{display:inline-flex;align-items:center;height:21px;padding:0 7px;border-radius:999px;font-size:9px;font-weight:750}.vkp-auto-result-badge.point{background:#eef3ff;color:#2457d6}.vkp-auto-result-badge.line{background:#eef8f2;color:#23734a}.vkp-auto-result-badge.unresolved,.vkp-auto-result-badge.error{background:#fff0ec;color:#a94b36}.vkp-auto-review-badge{background:#fff2cf;color:#8a6312}.vkp-auto-ok-badge{background:#f0f3f5;color:#66727d}.vkp-auto-review-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px}.vkp-auto-empty{margin-top:14px;padding:14px;border:1px dashed var(--line);border-radius:11px;color:var(--muted);font-size:11px;text-align:center}
.vkp-review-backdrop{position:fixed;inset:0;z-index:180;background:rgba(10,19,28,.46);opacity:0;visibility:hidden;transition:.16s}.vkp-review-backdrop.open{opacity:1;visibility:visible}.vkp-review-modal{position:fixed;z-index:190;left:50%;top:50%;width:min(940px,94vw);max-height:92vh;display:flex;flex-direction:column;background:#fff;border-radius:17px;box-shadow:0 30px 90px rgba(9,17,25,.28);opacity:0;visibility:hidden;transform:translate(-50%,-48%) scale(.99);transition:.16s;overflow:hidden}.vkp-review-modal.open{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}body.vkp-review-open{overflow:hidden}.vkp-review-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px 13px;border-bottom:1px solid var(--line)}.vkp-review-title-wrap{min-width:0}.vkp-review-kicker{font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-bottom:3px}.vkp-review-modal-head h2{margin:0;font-size:19px;line-height:1.25}.vkp-review-modal-head p{margin:3px 0 0;color:var(--muted);font-size:12px;line-height:1.4;word-break:break-word}.vkp-review-close{width:36px;height:36px;flex:0 0 auto;border:0;border-radius:9px;background:#f3f5f7;color:#66727d;font-size:24px;line-height:1}.vkp-review-close:hover{background:#e9edf1;color:var(--text)}.vkp-review-modal-body{padding:14px 16px 10px;overflow:auto}.vkp-review-info{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.vkp-review-info>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:#fafbfc}.vkp-review-info span{font-size:10px;color:var(--muted)}.vkp-review-info strong{font-size:11px}.vkp-auto-review-map{height:470px;width:100%;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#eef1f4}.vkp-auto-review-map.leaflet-container.point-pick-mode,.vkp-auto-review-map.leaflet-container.point-pick-mode .leaflet-grab{cursor:crosshair!important}.vkp-auto-review-map.leaflet-container.dragging-marker{cursor:grabbing!important}.vkp-review-help{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:9px;align-items:center;margin-top:9px;padding:9px 10px;border-radius:10px;background:#f7f9fb}.vkp-review-help-icon{width:30px;height:30px;border-radius:8px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-size:17px;font-weight:700}.vkp-review-help>div{display:grid;gap:2px}.vkp-review-help strong{font-size:11px}.vkp-review-help div span{font-size:10px;color:var(--muted);line-height:1.35}.vkp-review-coords{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.vkp-review-modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:11px 16px 14px;border-top:1px solid var(--line);background:#fff}.vkp-review-marker-shell{background:transparent!important;border:0!important}.vkp-review-marker-dot{width:24px;height:24px;border-radius:50%;display:block;background:var(--accent);border:4px solid #fff;box-shadow:0 2px 8px rgba(17,31,45,.28),0 0 0 2px var(--accent);position:absolute;left:3px;top:3px}.vkp-review-marker-dot:after{content:'';position:absolute;width:4px;height:4px;border-radius:50%;background:#fff;left:6px;top:6px}
#locationPickerMap.leaflet-container.line-drawing,#locationPickerMap.leaflet-container.line-drawing .leaflet-grab{cursor:crosshair!important}
@media(max-width:760px){.vkp-auto-results-head{align-items:flex-start;flex-direction:column;gap:3px}.vkp-auto-result-card{align-items:stretch;flex-direction:column}.vkp-auto-review-btn{width:100%;justify-content:center}.vkp-review-modal{left:0;top:0;width:100vw;height:100dvh;max-height:100dvh;border-radius:0;transform:translateY(8px)}.vkp-review-modal.open{transform:none}.vkp-review-modal-head{padding:12px}.vkp-review-modal-body{padding:10px 10px 8px;flex:1}.vkp-review-info{grid-template-columns:1fr}.vkp-auto-review-map{height:52dvh;min-height:300px}.vkp-review-help{grid-template-columns:30px minmax(0,1fr)}.vkp-review-coords{grid-column:2;white-space:normal}.vkp-review-modal-actions{padding:9px 10px;display:grid;grid-template-columns:1fr 1fr}.vkp-review-modal-actions .btn{width:100%}.vkp-review-modal-actions .btn.primary{grid-column:1/-1}}



/* 0.10.31 — полноценная проверка ВКП: точка/линия + очередь подтверждения */
.vkp-auto-result-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex:0 0 auto;flex-wrap:wrap}.vkp-auto-complete{border-color:#cfe4d7;background:#f7fcf9;color:#31704c}
.vkp-review-modebar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 10px;padding:8px 9px;border:1px solid var(--line);border-radius:10px;background:#fafbfc}.vkp-review-modebar>span{font-size:10px;color:var(--muted);margin-right:2px}.vkp-review-mode{height:34px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--text);padding:0 11px;font-size:11px;font-weight:750;cursor:pointer}.vkp-review-mode:hover{border-color:#b9c5d0}.vkp-review-mode.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.vkp-review-line-tools{display:flex;align-items:center;gap:6px;margin-left:auto}.vkp-auto-review-map.leaflet-container.line-draw-mode,.vkp-auto-review-map.leaflet-container.line-draw-mode .leaflet-grab{cursor:crosshair!important}
@media(max-width:760px){.vkp-auto-result-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.vkp-auto-result-actions .btn{width:100%;justify-content:center}.vkp-review-modebar{align-items:stretch}.vkp-review-modebar>span{width:100%}.vkp-review-mode{flex:1}.vkp-review-line-tools{width:100%;margin-left:0;display:grid;grid-template-columns:1fr 1fr}.vkp-review-line-tools.hidden{display:none}.vkp-review-line-tools .btn{width:100%}}

/* 0.10.35 — настройка стандартных полей карточек по типам реестра */
.field-config-hidden{display:none!important}
.registry-base-fields-editor{display:flex;flex-direction:column;gap:7px;padding:8px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}
.registry-base-field-row{display:grid;grid-template-columns:minmax(170px,1fr) minmax(220px,1.3fr) auto auto;gap:8px;align-items:center;padding:8px 9px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
.registry-base-field-name{display:flex;flex-direction:column;gap:2px;min-width:0}.registry-base-field-name strong{font-size:12px}.registry-base-field-name span{font-size:9px;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.registry-base-field-row>.mini-check{justify-self:start}.registry-base-field-row>.mini-check.is-disabled{opacity:.45}
@media(max-width:760px){.registry-base-field-row{grid-template-columns:1fr}.registry-base-field-row>.mini-check{min-height:32px}.registry-base-fields-editor{padding:6px}}

/* 0.10.36 — единый редактор полей реестра */
.unified-fields-head{align-items:flex-end}
.registry-field-add{display:flex;gap:8px;align-items:center;min-width:min(100%,420px)}
.registry-field-add select{min-width:220px;flex:1}
.unified-fields-editor{gap:9px}
.registry-unified-field-row{display:grid;grid-template-columns:minmax(190px,1.35fr) minmax(110px,.7fr) minmax(180px,1.15fr) minmax(180px,1.05fr) auto auto 36px;gap:7px;align-items:center;padding:9px;border:1px solid var(--border);border-radius:11px;background:var(--surface)}
.registry-unified-field-row .registry-field-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.registry-unified-field-row .registry-field-main small{font-size:9px;color:var(--muted)}
.registry-unified-field-row input,.registry-unified-field-row select{min-width:0}
.registry-unified-field-row select:disabled,.registry-unified-field-row input:disabled{opacity:.72;background:var(--surface-2)}
.custom-fields-inline{padding:0;border:0;background:transparent}
.custom-fields-inline .inventory-edit-grid{margin-top:0}
.field-config-hidden{display:none!important}
@media(max-width:900px){
  .registry-unified-field-row{grid-template-columns:1fr 1fr}
  .registry-unified-field-row .registry-field-main{grid-column:1/-1}
  .registry-unified-field-row>[data-rfu="description"],.registry-unified-field-row>[data-rfu="options"]{grid-column:1/-1}
  .registry-field-add{width:100%;min-width:0;flex-wrap:wrap}.registry-field-add select{min-width:0;flex:1 1 180px}.registry-field-add .btn{flex:0 0 auto}
}
@media(max-width:560px){.registry-unified-field-row{grid-template-columns:1fr}.registry-unified-field-row>*{grid-column:1!important}.registry-field-add>*{width:100%;flex:1 1 100%}}

/* 0.10.39 — подготовка на Думу: библиотека пачек КП и отдельная утилизация */
.duma-offer-library{margin:0 0 14px;padding:13px 14px;border:1px solid #dbe3ed;border-radius:13px;background:#fff}
.duma-offer-library-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}.duma-offer-library-head>div{display:flex;flex-direction:column;gap:3px}.duma-offer-library-head strong{font-size:13px}.duma-offer-library-head span{font-size:11px;line-height:1.4;color:var(--muted)}
.duma-offer-library-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:10px}.duma-offer-load,.duma-offer-save{display:flex;align-items:center;gap:7px;min-width:0}.duma-offer-load select,.duma-offer-save input{height:38px;min-width:0;flex:1;border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 10px;color:var(--text);font:inherit;font-size:11px}.duma-offer-load .btn,.duma-offer-save .btn{white-space:nowrap}.danger-text{color:#b33b3b!important}
.disposal-callout{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;margin:0 0 13px;padding:10px 12px;border:1px solid #d9e7df;border-radius:11px;background:#f5fbf7}.disposal-callout strong{font-size:11px;color:#286345}.disposal-callout span{font-size:11px;line-height:1.45;color:#5c6e64}.offer-card.disposal .offer-num{color:#397658}.disposal-matching{border-color:#d7e8dd}
@media(max-width:980px){.duma-offer-library-grid{grid-template-columns:1fr}.duma-offer-load,.duma-offer-save{flex-wrap:wrap}.duma-offer-load select,.duma-offer-save input{flex:1 1 100%;width:100%}.duma-offer-load .btn,.duma-offer-save .btn{flex:1 1 auto}.disposal-callout{grid-template-columns:1fr}}


/* 0.10.42 — визуальная переработка мастера подготовки на Думу */
.duma-wizard{inset:14px;background:#f3f6fa;border-radius:22px}
.duma-header{padding:15px 20px;min-height:82px;box-shadow:0 1px 0 rgba(16,28,43,.04);z-index:3}.duma-header-main{min-width:0}.duma-header h2{font-size:21px;letter-spacing:-.02em}.duma-header p{font-size:12px}.duma-header-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px}.duma-header-meta span{font-size:9px;font-weight:700;color:#66758a;background:#f3f6fa;border:1px solid #e5eaf0;border-radius:999px;padding:4px 7px}.duma-head-actions{flex-wrap:wrap;justify-content:flex-end}.duma-header-save{border-color:#cbd8f6!important;background:#f7f9ff!important;color:#275bd1!important}
.duma-layout{grid-template-columns:220px minmax(0,1fr)}.duma-steps{padding:15px 9px;gap:5px;background:linear-gradient(180deg,#0f1d2c,#0d1926)}.duma-step{position:relative;gap:9px;padding:10px 9px;border:1px solid transparent;transition:background .16s,border-color .16s,transform .16s}.duma-step:hover{background:#17273a}.duma-step>span{width:25px;height:25px}.duma-step strong{font-size:12px}.duma-step small{font-size:9px;max-width:145px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.duma-step.active{background:#1b3048;border-color:#28435f;box-shadow:inset 3px 0 0 #7658ff}.duma-step.done{color:#b8c4d3}.duma-step.done>span{background:#25a268;border-color:#25a268}.duma-step.warn{color:#d9c69a}.duma-step.warn>span{background:#8a6517;border-color:#a47c26;color:#fff}.duma-step.warn small{color:#e4ca8b}
.duma-main>#dumaContent{padding:18px 22px 28px;background:linear-gradient(180deg,#f6f8fb 0,#f3f6fa 100%);scrollbar-gutter:stable}.duma-step-page{width:min(1460px,100%);margin:0 auto;animation:dumaPageIn .18s ease-out}.duma-step-body{min-width:0}.duma-stage-strip{display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(0,2.2fr) auto;align-items:center;gap:12px;padding:11px 13px;margin:0 0 15px;border:1px solid #dfe6ef;border-radius:14px;background:#fff;box-shadow:0 2px 8px rgba(22,36,55,.035)}.duma-stage-title{display:flex;flex-direction:column;gap:1px;min-width:0}.duma-stage-title>span{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#7d8b9e;font-weight:800}.duma-stage-title strong{font-size:15px;color:#172333}.duma-stage-title small{font-size:10px;color:#6f7d91;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.duma-stage-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.duma-stage-metrics>div{border-left:1px solid #e7ebf0;padding:3px 10px;min-width:0}.duma-stage-metrics span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.045em;color:#8a96a6;margin-bottom:2px}.duma-stage-metrics strong{display:block;font-size:11px;color:#2a3748;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.duma-density-btn{height:32px;border:1px solid #dfe5ed;background:#f8fafc;border-radius:9px;padding:0 10px;color:#66758a;font:inherit;font-size:10px;font-weight:700;cursor:pointer}.duma-density-btn:hover{background:#eef3f9}.compact-tables .duma-table td{padding-top:4px;padding-bottom:4px}.compact-tables .table-input{padding-top:5px;padding-bottom:5px}.compact-tables .duma-table{font-size:11px}
.duma-section-head{margin-bottom:14px;gap:18px}.duma-section-head h3,.review-head h3{font-size:19px;letter-spacing:-.015em}.duma-section-head p,.review-head p{font-size:12px;line-height:1.42}.duma-source-bar{margin-bottom:12px;padding:10px 12px;background:#f9fbff}.duma-source-actions{display:flex;gap:6px;align-items:center}
.duma-empty{padding:24px}.duma-empty.compact{min-height:105px;padding:20px 24px;justify-content:center}.duma-empty-icon{width:30px;height:30px;display:grid;place-items:center;margin:0 auto 2px;border-radius:50%;background:#eaf7ef;color:#218350;font-weight:900}.duma-empty.compact strong{font-size:14px}.duma-empty.compact>span:last-child{font-size:11px}
.duma-table-tools{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:7px 0 9px}.duma-table-search{height:34px;display:flex;align-items:center;gap:6px;min-width:230px;flex:0 1 330px;border:1px solid #dce3ec;background:#fff;border-radius:9px;padding:0 9px}.duma-table-search>span{font-size:15px;color:#8692a2}.duma-table-search input{border:0;outline:0;background:transparent;width:100%;font:inherit;font-size:11px;color:#263447}.duma-filter-check{display:flex;align-items:center;gap:6px;font-size:10px;color:#657387;font-weight:700;cursor:pointer}.duma-filter-check input{width:15px;height:15px}.duma-table-count{margin-left:auto;font-size:10px;color:#8491a2}.duma-table-wrap{box-shadow:0 1px 2px rgba(20,34,51,.02)}.duma-table-wrap.tall{max-height:430px;overflow:auto}.duma-table-wrap.medium{max-height:350px;overflow:auto}.duma-table thead th{position:sticky;top:0;z-index:2;background:#f3f6f9;box-shadow:0 1px 0 #dfe5ed}.duma-table th{font-size:10px;padding:9px}.duma-table td{padding:6px 9px}.duma-table tbody tr{transition:background .12s}.duma-table tbody tr:hover{background:#f8fafc}.duma-table .selected-row{background:#f7f5ff}.duma-table .selected-row:hover{background:#f3f0ff}.duma-table .tech-col{background:#fbfcfe}.duma-source-tag{display:inline-block;font-size:9px;color:#526579;background:#eef3f7;border-radius:999px;padding:4px 7px;white-space:nowrap}.duma-source-tag.manual{background:#fff3dc;color:#8b6519}.duma-number-pill{display:inline-block;padding:4px 8px;border-radius:999px;background:#eef3f8;color:#526579;font-size:10px;font-weight:700}.duma-inline-summary{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px}.duma-inline-summary>span{background:#fff;border:1px solid #e0e6ed;border-radius:9px;padding:7px 10px;font-size:10px;color:#738095}.duma-inline-summary strong{color:#263447}.duma-inline-actions{margin-top:9px}
.duma-offer-library{padding:14px;margin-bottom:13px;border-color:#d7e2f1;background:linear-gradient(135deg,#fff,#fafcff)}.duma-offer-library-head{align-items:flex-start}.duma-offer-library-head{display:flex}.duma-library-icon{width:34px;height:34px;display:grid;place-items:center;flex:none;border-radius:10px;background:#edf3ff;color:#2e62d8;font-size:16px;font-weight:800}.duma-offer-library-head>div:last-child{display:flex;flex-direction:column;gap:3px}.duma-offer-library-head strong{font-size:14px}.duma-offer-library-grid{gap:12px}.duma-library-box{border:1px solid #e2e8f0;border-radius:11px;background:#fff;padding:10px}.duma-library-label{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.055em;color:#8390a1;font-weight:800;margin-bottom:7px}.duma-library-box small{display:block;margin-top:6px;font-size:9px;color:#8a96a6}.disposal-library{border-color:#d9e9df;background:linear-gradient(135deg,#fff,#f8fcf9)}.disposal-library .duma-library-icon{background:#e9f7ee;color:#247b4c}
.duma-subsection-title{display:flex;align-items:center;justify-content:space-between;margin:13px 0 8px}.duma-subsection-title>div{display:flex;align-items:baseline;gap:8px}.duma-subsection-title strong{font-size:13px}.duma-subsection-title span{font-size:9px;color:#7e8b9d}.duma-subsection-title.disposal strong{color:#2b6c4a}
.offer-grid{gap:10px}.offer-card{padding:12px;border-style:solid;border-color:#e1e7ef;background:#fff;gap:8px;box-shadow:0 1px 2px rgba(18,32,50,.02)}.offer-card.ready{border-color:#cfe4d8;background:#fcfffd}.offer-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.offer-status{font-size:8px;font-weight:800;border-radius:999px;padding:4px 7px}.offer-status.ok{background:#e8f7ee;color:#227749}.offer-status.empty{background:#f0f2f5;color:#778496}.offer-file{display:flex;gap:9px;align-items:center;min-width:0}.offer-file-icon{width:32px;height:36px;display:grid;place-items:center;flex:none;border-radius:8px;background:#eef3ff;color:#315fc1;font-size:9px;font-weight:900}.offer-file-icon.disposal{background:#eaf7ef;color:#28794d;font-size:15px}.offer-file>div{display:flex;flex-direction:column;gap:2px;min-width:0}.offer-file strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.offer-file span{font-size:9px}.offer-title-label{display:flex;flex-direction:column;gap:4px;font-size:9px;color:#738095;font-weight:700}.offer-title-label .table-input{font-size:10px}.offer-meta{display:flex;gap:5px;flex-wrap:wrap}.offer-meta span{font-size:8px!important;background:#f2f5f8;border-radius:999px;padding:3px 6px;color:#69788b!important}.offer-actions{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;width:100%}.offer-empty-body{min-height:64px;display:flex;flex-direction:column;justify-content:center;gap:3px}.offer-empty-body strong{font-size:12px}.offer-empty-body span{font-size:10px}.offer-upload{margin-top:auto}.recognition-note{font-size:10px;padding:8px 10px}
.duma-option-card{padding:16px;transition:border-color .15s,background .15s}.duma-option-card.active{border-color:#cfdcf0;background:#fff}.duma-option-card.inactive{background:#fafbfc;border-color:#e5e9ef}.duma-option-card .duma-section-head{margin-bottom:0}.duma-option-card.inactive .duma-section-head p{max-width:520px}.duma-option-off{margin-top:12px;padding:11px;border-radius:10px;background:#f3f5f8;color:#8390a2;font-size:10px;text-align:center}.surface-suboption{padding:11px;background:#fafcfe}.surface-suboption.active{border-style:solid;border-color:#d6e1ee;background:#fff}.surface-off{display:block;margin-top:9px;font-size:9px;color:#8a96a6}
.duma-doc-columns{gap:14px}.duma-doc-columns section{padding:13px}.duma-list-title>div{display:flex;flex-direction:column;gap:2px}.duma-list-title h3{font-size:14px}.duma-list-title small{font-size:9px;color:#7f8c9e}.duma-photo-select{gap:7px;max-height:510px}.select-photo{border:1px solid #e1e6ed;background:#f7f9fb}.select-photo.selected{border-color:#7b61ff;background:#f7f5ff;box-shadow:0 0 0 1px rgba(109,74,255,.12)}.select-photo input{opacity:0;pointer-events:none}.photo-selected-mark{position:absolute;top:7px;left:7px;width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:#fff;color:#9aa4b1;border:1px solid #dbe1e8;font-style:normal;font-size:11px;font-weight:900}.select-photo.selected .photo-selected-mark{background:#6d4aff;border-color:#6d4aff;color:#fff}.select-photo img{transition:transform .18s}.select-photo:hover img{transform:scale(1.025)}.select-doc{padding:10px;border-color:#e2e7ed}.select-doc input{width:15px;height:15px}.duma-doc-badge{width:42px;flex:none;border-radius:7px;padding:5px 4px;text-align:center;font-size:8px;font-weight:900;background:#eef2f6;color:#66758a}.duma-doc-badge.act{background:#eef3ff;color:#315fc1}.duma-doc-badge.legal{background:#f5efff;color:#6943b9}.select-doc>i{margin-left:auto;width:19px;height:19px;display:grid;place-items:center;border-radius:50%;background:#edf1f5;color:transparent;font-style:normal;font-size:10px}.select-doc.selected>i{background:#6d4aff;color:#fff}.select-doc.selected{background:#f8f7ff;border-color:#c9bfff}
.disposal-callout{margin-bottom:12px}.offer-card.disposal.ready{border-color:#cfe5d8}.duma-review.dashboard{max-width:none}.review-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.review-readiness{flex:none;border-radius:999px;padding:7px 10px;font-size:10px;font-weight:800}.review-readiness.ok{background:#e6f7ed;color:#1e7546}.review-readiness.warn{background:#fff1d7;color:#8a640d}.review-warning-box,.review-ready-box{border-radius:12px;padding:11px 13px;margin-bottom:12px}.review-warning-box{background:#fff8e9;border:1px solid #f0ddb1;color:#745819}.review-warning-box strong{font-size:11px}.review-warning-box ul{margin:6px 0 0;padding-left:17px;font-size:10px;line-height:1.5}.review-ready-box{background:#eef9f2;border:1px solid #cce8d6;display:flex;flex-direction:column;gap:2px}.review-ready-box strong{font-size:12px;color:#226b43}.review-ready-box span{font-size:10px;color:#607768}.review-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.8fr);gap:13px}.review-check-panel,.review-summary-panel{background:#fff;border:1px solid #e0e6ed;border-radius:13px;padding:11px}.review-panel-title{display:flex;align-items:center;justify-content:space-between;padding:1px 2px 9px;border-bottom:1px solid #edf0f4;margin-bottom:8px}.review-panel-title strong{font-size:12px}.review-panel-title span{font-size:9px;color:#788699}.review-row{grid-template-columns:27px minmax(150px,1fr) 1.2fr;margin-bottom:5px;padding:8px 9px;border-radius:8px}.review-row:last-child{margin-bottom:0}.review-summary-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px 3px;border-bottom:1px solid #eef1f4}.review-summary-row:last-child{border-bottom:0}.review-summary-row span{font-size:10px;color:#778599}.review-summary-row strong{font-size:10px;text-align:right;color:#273548;max-width:62%}.last-package>div{display:flex;flex-direction:column;gap:2px}.last-package span{font-size:9px;color:#728095}.duma-footer{z-index:3;padding:10px 18px;box-shadow:0 -4px 15px rgba(20,34,51,.035)}
@keyframes dumaPageIn{from{opacity:.45;transform:translateY(3px)}to{opacity:1;transform:none}}
@media(max-width:1180px){.duma-stage-strip{grid-template-columns:1fr auto}.duma-stage-metrics{grid-column:1/-1;order:3}.duma-stage-metrics>div:first-child{border-left:0}.review-dashboard-grid{grid-template-columns:1fr}}
@media(max-width:980px){.duma-wizard{inset:0}.duma-layout{grid-template-columns:1fr}.duma-header-save{display:none}.duma-header-meta span:last-child{display:none}.duma-step{min-width:170px}.duma-main>#dumaContent{padding:13px}.duma-stage-strip{margin-bottom:11px}.duma-stage-title small{max-width:210px}.duma-table-tools{align-items:stretch}.duma-table-search{flex:1 1 100%;min-width:0}.duma-table-count{margin-left:0}.offer-grid{grid-template-columns:1fr}.duma-photo-select{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.duma-stage-strip{grid-template-columns:1fr}.duma-density-btn{justify-self:start}.duma-stage-metrics{grid-template-columns:1fr}.duma-stage-metrics>div{border-left:0;border-top:1px solid #edf0f4;padding:6px 0}.duma-doc-columns{grid-template-columns:1fr}.review-head{flex-direction:column}.duma-header-meta{display:none}}

/* 0.10.44 — настраиваемая геометрия и цвет реестров на карте */
.registry-map-chip{display:inline-flex!important;align-items:center;gap:6px}
.registry-map-chip b{width:9px;height:9px;border-radius:999px;display:inline-block;box-shadow:0 0 0 2px rgba(255,255,255,.9),0 0 0 3px rgba(104,121,145,.18)}
.registry-map-settings-editor{display:grid;grid-template-columns:minmax(260px,1fr) minmax(150px,.42fr) minmax(110px,.28fr) minmax(120px,.32fr);gap:10px;align-items:end;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}
.registry-map-settings-copy{display:flex;flex-direction:column;gap:4px;align-self:center;min-width:0}.registry-map-settings-copy strong{font-size:13px}.registry-map-settings-copy span{font-size:11px;line-height:1.4;color:var(--muted)}
.registry-map-settings-editor>label{margin:0}.registry-map-settings-editor input[type="color"]{width:100%;height:42px;padding:4px;cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:10px}
.registry-map-settings-preview{height:42px;border:1px solid var(--border);border-radius:10px;background:var(--surface);display:flex;align-items:center;justify-content:center;gap:9px;font-size:11px;color:var(--muted)}
.registry-map-settings-preview b{font-size:11px;color:var(--text)}.registry-map-preview-point{width:14px;height:14px;border-radius:999px;border:3px solid #fff;box-shadow:0 0 0 1px rgba(79,96,122,.25);display:inline-block}.registry-map-preview-line{width:38px;height:6px;border-radius:999px;display:inline-block}
@media(max-width:900px){.registry-map-settings-editor{grid-template-columns:1fr 1fr}.registry-map-settings-copy{grid-column:1/-1}.registry-map-settings-preview{align-self:end}}
@media(max-width:560px){.registry-map-settings-editor{grid-template-columns:1fr}.registry-map-settings-copy{grid-column:auto}}


/* 0.10.45 — Карта 2.0: рабочее пространство */
body.map-workspace-active{overflow:hidden}body.map-workspace-active .main{padding:0;height:100vh;overflow:hidden;background:#eaf0f4}body.map-workspace-active .topbar{display:none}body.map-workspace-active #mapView.active-view{display:block;height:100vh;margin:0;padding:0}.map-workspace-view{margin:0!important}.map-workspace{position:relative;width:100%;height:100vh;min-height:620px;overflow:hidden;background:#e8edf2;isolation:isolate}.map-workspace>#map{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;border:0!important;border-radius:0!important;z-index:1}.map-workspace .leaflet-control-container{z-index:700}.map-workspace .leaflet-control-zoom{border:0!important;box-shadow:0 8px 22px rgba(35,50,70,.18)!important}.map-workspace .leaflet-control-zoom a{width:38px!important;height:38px!important;line-height:38px!important;color:#23364c!important;border-color:#e0e6ec!important}.map-workspace .leaflet-control-scale{margin-left:14px!important;margin-bottom:48px!important}
.map-floating-search{position:absolute;z-index:820;top:16px;left:50%;transform:translateX(-50%);width:min(720px,calc(100% - 430px));min-width:420px;display:flex;align-items:center;gap:7px;padding:7px;background:rgba(255,255,255,.96);border:1px solid rgba(168,181,198,.5);border-radius:15px;box-shadow:0 12px 32px rgba(35,50,70,.16);backdrop-filter:blur(14px)}.map-floating-search .map-unified-search{position:relative;flex:1;min-width:0}.map-search-input-shell{height:42px;display:flex;align-items:center;gap:9px;padding:0 11px;border:1px solid #e1e6ec;border-radius:10px;background:#f8fafc}.map-search-input-shell:focus-within{border-color:#98b2f0;background:#fff;box-shadow:0 0 0 3px rgba(36,87,214,.08)}.map-search-main-icon{font-size:18px;color:#708096}.map-search-input-shell input{flex:1;min-width:0;border:0!important;outline:0!important;background:transparent!important;padding:0!important;font-size:14px;color:#203047}.map-search-input-shell kbd{font:600 9px/1 ui-sans-serif,system-ui;color:#94a0ae;border:1px solid #dfe5eb;border-bottom-width:2px;border-radius:5px;padding:4px 5px;background:#fff}.map-search-go,.map-search-clear{height:42px;border:0;border-radius:10px;font-weight:750;cursor:pointer}.map-search-go{padding:0 16px;background:var(--accent);color:#fff}.map-search-clear{width:42px;background:#f1f4f7;color:#617185;font-size:20px}.map-radius-float{height:42px;display:none;align-items:center;gap:5px;padding:0 8px 0 10px;border:1px solid #e1e6ec;border-radius:10px;background:#fff;font-size:10px;color:#7b8794}.map-radius-float.active{display:flex}.map-radius-float select{border:0!important;background:transparent!important;height:34px!important;min-width:72px!important;padding:0 4px!important;font-size:12px;font-weight:750;color:#2b3d52;outline:0}.map-floating-search .map-search-suggestions{top:49px;left:0;right:0;z-index:850;max-height:390px;border-radius:12px;box-shadow:0 16px 36px rgba(35,50,70,.18)}.map-address-float{position:absolute;z-index:810;top:78px;left:50%;transform:translateX(-50%);width:min(680px,calc(100% - 450px));pointer-events:none}.map-address-float:empty{display:none}.map-address-float:not(:empty){display:flex;align-items:center;justify-content:center;padding:8px 12px;border:1px solid rgba(168,181,198,.45);border-radius:11px;background:rgba(255,255,255,.94);box-shadow:0 8px 24px rgba(35,50,70,.12);backdrop-filter:blur(12px)}.map-address-float strong{font-size:12px;margin-right:8px;color:#24364b}.map-address-float span{font-size:11px;color:#6d7c90}
.map-tool-rail{position:absolute;z-index:815;top:88px;left:14px;display:flex;flex-direction:column;gap:5px;padding:6px;border:1px solid rgba(168,181,198,.48);border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 10px 28px rgba(35,50,70,.15);backdrop-filter:blur(12px)}.map-tool{width:46px;min-height:46px;border:0;border-radius:10px;background:transparent;color:#31455d;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;cursor:pointer;transition:.14s}.map-tool span{font-size:19px;line-height:20px;font-weight:750}.map-tool small{font-size:8px;color:#7a899b;line-height:10px}.map-tool:hover{background:#f1f5fa}.map-tool.active{background:#eaf0ff;color:#2457d6;box-shadow:inset 0 0 0 1px #ccdafd}.map-tool.active small{color:#2457d6;font-weight:700}.map-tool-separator{height:1px;background:#e6ebf0;margin:2px 5px}#map.map-mode-edit,#map.map-mode-distance,#map.map-mode-area,#map.map-mode-radius{cursor:crosshair}
.map-right-actions{position:absolute;z-index:815;top:16px;right:14px;display:flex;gap:7px}.map-float-action{height:44px;border:1px solid rgba(168,181,198,.5);border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 8px 22px rgba(35,50,70,.13);padding:0 12px;display:flex;align-items:center;gap:7px;color:#31455d;font-weight:750;cursor:pointer;backdrop-filter:blur(12px)}.map-float-action span{font-size:17px}.map-float-action b{font-size:11px}.map-float-action:hover,.map-float-action.active{border-color:#b9c9ee;background:#f6f8ff;color:#2457d6}.map-float-action.compact{width:44px;padding:0;justify-content:center}
.map-side-panel{position:absolute;z-index:840;top:70px;right:14px;width:330px;max-height:calc(100% - 122px);overflow:auto;padding:14px;background:rgba(255,255,255,.98);border:1px solid rgba(168,181,198,.5);border-radius:16px;box-shadow:0 16px 40px rgba(35,50,70,.19);backdrop-filter:blur(14px);transform:translateX(calc(100% + 32px));opacity:0;pointer-events:none;transition:.18s ease}.map-side-panel.open{transform:none;opacity:1;pointer-events:auto}.map-side-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:13px}.map-side-head>div{display:flex;flex-direction:column;gap:2px}.map-side-head span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#8995a3;font-weight:800}.map-side-head strong{font-size:18px;color:#1e2d40}.map-side-head button{width:32px;height:32px;border:0;border-radius:9px;background:#f1f4f7;color:#67768a;font-size:18px;cursor:pointer}.map-filter-actions{display:flex;gap:6px;margin-bottom:10px}.map-filter-actions button{flex:1;border:1px solid #dfe5eb;background:#fff;border-radius:9px;padding:8px;font-size:10px;font-weight:750;color:#4c5e74;cursor:pointer}.map-type-list{display:flex!important;flex-direction:column!important;gap:5px!important}.map-type-list label{width:100%;display:grid!important;grid-template-columns:20px 14px minmax(0,1fr) 20px auto!important;align-items:center;gap:8px;padding:9px 10px!important;border:1px solid #e7ebef!important;border-radius:10px!important;background:#fff!important;font-size:12px!important;opacity:1!important}.map-type-list label:has(input:not(:checked)){opacity:.52!important;background:#f7f8fa!important}.map-type-list input{width:16px;height:16px}.map-type-list .dot{width:10px!important;height:10px!important;border-radius:50%}.map-type-list .map-filter-count{font-size:10px;color:#8693a3;font-weight:750}.map-type-list .map-filter-geom{width:18px;height:6px;display:inline-flex;align-items:center;justify-content:center;font-size:9px}.map-filter-foot{margin-top:10px;padding-top:10px;border-top:1px solid #edf0f3;color:#748296;font-size:10px;line-height:1.5}.map-layer-setting{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #edf0f3}.map-layer-setting>span{display:flex;flex-direction:column;gap:2px}.map-layer-setting b{font-size:12px;color:#31445a}.map-layer-setting small{font-size:10px;color:#8a96a4}.map-layer-setting select{max-width:145px;border:1px solid #dce3e9;border-radius:9px;padding:8px;background:#fff}.map-layer-setting.switch-row input{width:18px;height:18px}.map-layer-note{margin-top:13px;padding:10px;border-radius:10px;background:#f5f7fa;color:#748296;font-size:10px;line-height:1.45}.map-legend-panel{width:285px}.map-legend-panel .map-legend-card{position:static!important;min-width:0!important;max-width:none!important;padding:0!important;border:0!important;box-shadow:none!important;background:transparent!important;backdrop-filter:none!important;pointer-events:auto!important}.map-legend-card .map-legend-note{font-size:10px}.map-legend-card .map-legend-title,.map-legend-card .map-legend-sub{display:none}
.map-object-inspector{position:absolute;z-index:825;top:72px;right:14px;width:350px;max-height:calc(100% - 128px);overflow:auto;background:rgba(255,255,255,.98);border:1px solid rgba(168,181,198,.5);border-radius:16px;box-shadow:0 16px 42px rgba(35,50,70,.2);backdrop-filter:blur(14px);transform:translateX(calc(100% + 34px));opacity:0;pointer-events:none;transition:.18s ease}.map-object-inspector.open{transform:none;opacity:1;pointer-events:auto}.map-inspector-head{padding:15px 15px 12px;border-bottom:1px solid #edf0f3}.map-inspector-headline{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.map-inspector-type{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:800;color:#617085}.map-inspector-type i{width:9px;height:9px;border-radius:50%}.map-inspector-head h3{margin:6px 0 2px;font-size:19px;letter-spacing:-.25px}.map-inspector-head p{margin:0;color:#6d7c8f;font-size:12px;line-height:1.4}.map-inspector-close{width:31px;height:31px;border:0;border-radius:9px;background:#f2f4f7;color:#66778b;font-size:17px;cursor:pointer}.map-inspector-state{display:inline-flex;margin-top:10px;padding:5px 8px;border-radius:999px;background:#f1f4f7;color:#53657b;font-size:10px;font-weight:750}.map-inspector-state.satisfactory{background:#e9f7ef;color:#18864b}.map-inspector-state.unsatisfactory{background:#fff3df;color:#a76b0b}.map-inspector-state.absent{background:#f4eaea;color:#a04444}.map-inspector-body{padding:12px 15px}.map-inspector-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.map-inspector-field{min-width:0;padding:9px;border-radius:10px;background:#f6f8fa}.map-inspector-field span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:#8a96a5;margin-bottom:3px}.map-inspector-field strong{display:block;font-size:12px;color:#2b3d53;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-inspector-field.wide{grid-column:1/-1}.map-inspector-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:0 15px 15px}.map-inspector-actions button{border:1px solid #dce3e9;border-radius:10px;background:#fff;padding:9px;font-size:11px;font-weight:750;color:#43566e;cursor:pointer}.map-inspector-actions button.primary{grid-column:1/-1;background:#2457d6;border-color:#2457d6;color:#fff}.map-multi-row{width:100%;display:grid;grid-template-columns:10px 74px minmax(0,1fr);align-items:center;gap:8px;border:0;border-bottom:1px solid #edf0f3;background:#fff;padding:9px 4px;text-align:left;cursor:pointer}.map-multi-row:hover{background:#f7f9fb}.map-multi-row>span{width:9px;height:9px;border-radius:50%}.map-multi-row b{font-size:11px;color:#2f4259}.map-multi-row em{font-style:normal;font-size:10px;color:#778699;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.map-batch-bar{position:absolute;z-index:835;left:50%;bottom:18px;transform:translateX(-50%);min-width:430px;max-width:calc(100% - 400px);display:flex;align-items:center;gap:10px;padding:9px 11px;background:rgba(24,36,52,.94);color:#fff;border-radius:14px;box-shadow:0 14px 34px rgba(21,34,51,.28);backdrop-filter:blur(12px)}.map-batch-bar.hidden{display:none!important}.map-batch-summary{display:flex;flex-direction:column;gap:2px;margin-right:auto}.map-batch-summary strong{font-size:12px}.map-batch-summary span{font-size:9px;color:#b8c4d1}.map-batch-bar button{border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff;border-radius:9px;padding:7px 9px;font-size:10px;font-weight:750;cursor:pointer}.map-measure-card{position:absolute;z-index:830;left:72px;bottom:18px;min-width:230px;max-width:320px;padding:10px 12px;background:rgba(255,255,255,.97);border:1px solid rgba(168,181,198,.5);border-radius:13px;box-shadow:0 12px 30px rgba(35,50,70,.16)}.map-measure-card.hidden{display:none!important}.map-measure-card strong{display:block;font-size:12px;color:#293b51}.map-measure-card span{display:block;margin-top:3px;font-size:10px;color:#77869a}.map-measure-card button{margin-top:8px;border:1px solid #dce3e9;background:#fff;border-radius:8px;padding:6px 8px;font-size:10px;font-weight:750;color:#43566e;cursor:pointer}.map-status-dock{position:absolute;z-index:805;left:14px;bottom:14px;display:flex;align-items:center;gap:7px;max-width:calc(100% - 180px);pointer-events:none}.map-status-dock .map-geocode-status:empty{display:none}.map-status-dock .geocode-strip{margin:0;padding:7px 9px;border-radius:10px;background:rgba(255,255,255,.94);box-shadow:0 6px 18px rgba(35,50,70,.12);font-size:9px;pointer-events:auto}.map-status-dock .geocode-progress{display:none}.map-workspace-status{padding:7px 10px;border:1px solid rgba(168,181,198,.42);border-radius:10px;background:rgba(255,255,255,.92);box-shadow:0 6px 18px rgba(35,50,70,.1);font-size:9px;font-weight:700;color:#5e6e81;backdrop-filter:blur(10px);white-space:nowrap}.map-cluster-badge{position:relative;background:#365978!important;border:3px solid rgba(255,255,255,.96)!important;box-shadow:0 8px 22px rgba(27,47,70,.24)!important}.map-cluster-badge:after{content:'';position:absolute;inset:-5px;border:2px solid rgba(54,89,120,.18);border-radius:999px}.map-cluster-icon{background:transparent!important;border:0!important}.map-quick-edit-control{margin-top:62px!important;margin-right:8px!important}.registry-map-tooltip{font-size:11px!important}.map-mobile-menu{display:none;position:absolute;z-index:830;top:8px;left:8px;width:40px;height:40px;border:1px solid rgba(168,181,198,.5);border-radius:11px;background:rgba(255,255,255,.96);box-shadow:0 8px 22px rgba(35,50,70,.13);color:#31455d;font-size:18px}
@media(max-width:1180px){.map-floating-search{left:72px;transform:none;width:calc(100% - 340px);min-width:0}.map-right-actions .map-float-action b{display:none}.map-float-action{width:44px;padding:0;justify-content:center}.map-address-float{left:72px;transform:none;width:calc(100% - 420px)}}
@media(max-width:760px){body.map-workspace-active .main{height:100dvh;padding:0!important}body.map-workspace-active #mapView.active-view,.map-workspace{height:100dvh;min-height:0}.map-mobile-menu{display:block}.map-floating-search{top:max(8px,var(--safe-top,0px));left:54px;right:8px;width:auto;transform:none;min-width:0;padding:5px;gap:4px}.map-search-input-shell{height:40px}.map-search-input-shell kbd{display:none}.map-search-go{width:42px;height:40px;padding:0;font-size:0}.map-search-go:after{content:'⌕';font-size:18px}.map-search-clear{height:40px;width:40px}.map-radius-float{position:absolute;top:50px;left:0;height:36px;box-shadow:0 6px 18px rgba(35,50,70,.12)}.map-address-float{display:none!important}.map-tool-rail{top:58px;left:8px;padding:4px;gap:3px}.map-tool{width:40px;min-height:40px}.map-tool small{display:none}.map-tool span{font-size:17px}.map-right-actions{top:58px;right:8px;flex-direction:column}.map-right-actions .map-float-action{width:40px;height:40px}.map-right-actions #mapAddObjectBtn{display:none!important}.map-side-panel,.map-object-inspector{top:auto;left:8px;right:8px;bottom:8px;width:auto;max-height:58dvh;border-radius:16px;transform:translateY(calc(100% + 24px))}.map-side-panel.open,.map-object-inspector.open{transform:none}.map-batch-bar{left:8px;right:8px;bottom:8px;transform:none;min-width:0;max-width:none;flex-wrap:wrap}.map-batch-summary{flex-basis:100%}.map-measure-card{left:56px;right:56px;bottom:8px;max-width:none;min-width:0}.map-status-dock{left:8px;bottom:8px;max-width:calc(100% - 16px)}.map-status-dock .map-geocode-status{display:none}.map-workspace-status{max-width:210px;overflow:hidden;text-overflow:ellipsis}.map-workspace .leaflet-control-zoom{margin-right:8px!important;margin-bottom:8px!important}.map-workspace .leaflet-control-scale{display:none}}


/* 0.10.46 — polish карты: компактная панель слоёв и безопасные контролы редактирования */
.map-layer-setting{align-items:center!important;gap:10px!important}
.map-layer-setting>span{min-width:0;flex:1 1 auto}
.map-layer-setting b{font-size:11px!important;line-height:1.25}
.map-layer-setting small{font-size:9px!important;line-height:1.3}
.map-layer-setting select{flex:0 0 154px!important;width:154px!important;max-width:154px!important;min-width:0!important;font-size:11px!important;line-height:1.2!important;padding:7px 26px 7px 9px!important;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.map-layer-setting.switch-row{align-items:center!important}
.map-layer-setting.switch-row>span{padding-right:8px}
.map-layer-setting.switch-row input{flex:0 0 auto!important}
.map-quick-edit-control,.map-quick-edit-control *{pointer-events:auto}
.map-quick-edit-actions button{touch-action:manipulation}
@media(max-width:420px){.map-layer-setting select{flex-basis:138px!important;width:138px!important;max-width:138px!important;font-size:10px!important}}

/* 0.10.48 — persistent map measurements */
.map-measure-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.map-measure-card .map-measure-actions button{margin-top:0}.map-measure-card .map-measure-actions button.primary{background:#2457d6;border-color:#2457d6;color:#fff}.map-measure-vertex-icon{background:transparent!important;border:0!important}.map-measure-vertex-icon span{display:block;width:12px;height:12px;border-radius:50%;background:#2457d6;border:3px solid #fff;box-shadow:0 2px 7px rgba(28,65,126,.35);cursor:grab}.map-measure-vertex-icon.leaflet-drag-target span{cursor:grabbing}.map-measure-label{background:rgba(26,47,78,.94)!important;color:#fff!important;border:0!important;border-radius:8px!important;box-shadow:0 5px 16px rgba(25,45,72,.22)!important;font-size:10px!important;font-weight:800!important;padding:4px 7px!important}.map-measure-label:before{display:none!important}

/* 0.10.49 — central server mode + temporary Duma archive progress */
.server-mode-panel .storage-status{margin-top:10px}
.server-mode-panel .path-ready-title{font-weight:800;margin-bottom:6px}
.duma-archive-progress{position:fixed;right:24px;bottom:24px;z-index:5000;width:min(390px,calc(100vw - 32px));padding:16px 16px 12px;border-radius:16px;background:#fff;border:1px solid #d8e0ec;box-shadow:0 18px 48px rgba(15,31,50,.22);color:#152231}
.duma-archive-progress.hidden{display:none}
.duma-archive-progress.error{border-color:#efb5b2}
.duma-archive-progress.ready{border-color:#b8e0c7}
.duma-archive-progress-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.duma-archive-progress-head>div{min-width:0;display:flex;flex-direction:column;gap:3px}
.duma-archive-progress-head strong{font-size:14px;font-weight:800}
.duma-archive-progress-head span{font-size:12px;color:#68778b;line-height:1.35;overflow-wrap:anywhere}
.duma-archive-progress-head>b{font-size:15px;color:#245bd6;white-space:nowrap}
.duma-archive-progress.error .duma-archive-progress-head>b{color:#b22f2a}
.duma-archive-progress.ready .duma-archive-progress-head>b{color:#16844d}
.duma-archive-progress-track{height:8px;margin-top:12px;border-radius:999px;background:#e9eef6;overflow:hidden}
.duma-archive-progress-track i{display:block;height:100%;width:1%;border-radius:inherit;background:#2d62dc;transition:width .2s ease}
.duma-archive-progress.ready .duma-archive-progress-track i{background:#25a664}
.duma-archive-progress.error .duma-archive-progress-track i{background:#c83f37}
.duma-archive-progress-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:9px;color:#8793a4;font-size:10px}
.duma-archive-progress-foot button{border:0;background:transparent;color:#7d8998;font-size:18px;line-height:1;cursor:pointer;padding:0 2px}
@media(max-width:700px){.duma-archive-progress{right:16px;bottom:16px}}

/* 0.10.50 duma-only — compact defect sheet + fence logic */
.duma-fence-callout{margin:10px 0 12px;border:1px solid #d9e5ef;border-radius:13px;background:linear-gradient(180deg,#fbfdff 0,#f5f9fc 100%);padding:12px 13px}.duma-fence-callout-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.duma-fence-callout-head>div{display:flex;flex-direction:column;gap:3px}.duma-fence-callout-head strong{font-size:12px;color:#243548}.duma-fence-callout-head span{font-size:10px;color:#718096;line-height:1.45}.duma-fence-badge{flex:0 0 auto;border-radius:999px;background:#e9f0fb!important;color:#41628d!important;padding:4px 8px;font-weight:800}.duma-fence-metrics{display:grid;grid-template-columns:1fr minmax(180px,1fr) 1fr;gap:8px}.duma-fence-metrics>div,.duma-fence-metrics>label{min-width:0;border:1px solid #e1e8ef;border-radius:10px;background:#fff;padding:8px 10px;display:flex;flex-direction:column;gap:3px}.duma-fence-metrics span{font-size:9px;color:#78879a;font-weight:700}.duma-fence-metrics strong{font-size:15px;color:#223348}.duma-fence-metrics small{font-size:9px;color:#8996a5}.duma-fence-metrics input{height:31px;border:1px solid #d9e1ea;border-radius:8px;padding:0 9px;font:inherit;font-size:12px;color:#26364a;max-width:130px}.duma-fence-row{background:#f8fbff!important}.duma-fence-row-tag{display:inline-flex;margin-left:6px;border-radius:999px;padding:3px 7px;background:#edf4fb;color:#4a6688;font-size:8px;font-weight:800;white-space:nowrap}@media(max-width:980px){.duma-fence-metrics{grid-template-columns:1fr}.duma-fence-metrics input{max-width:none}.duma-fence-callout-head{flex-direction:column}}

/* 0.10.52 — admin unlinked registry + local OCR wording */
.settings-nav-item .settings-count-badge{margin-left:auto;min-width:22px;height:20px;padding:0 6px;border-radius:999px;background:#fff0e8;color:#b55520;font-size:10px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}.unlinked-counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:12px}.unlinked-count-card{border:1px solid #dfe6ef;background:#fff;border-radius:11px;padding:9px 10px;text-align:left;display:grid;grid-template-columns:1fr auto;gap:2px 8px;cursor:pointer;color:#2a3b52}.unlinked-count-card:hover,.unlinked-count-card.active{border-color:#86a8ef;background:#f4f7ff}.unlinked-count-card span{font-size:10px;font-weight:800}.unlinked-count-card strong{font-size:16px}.unlinked-count-card small{grid-column:1/-1;color:#8793a3;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unlinked-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.unlinked-toolbar .search-box{max-width:420px;flex:1}.unlinked-toolbar>span{font-size:10px;color:#7c899b}.unlinked-list{border:1px solid #e1e7ef;border-radius:12px;overflow:hidden;background:#fff}.unlinked-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border-bottom:1px solid #edf1f5}.unlinked-row:last-child{border-bottom:0}.unlinked-main{display:flex;align-items:center;gap:9px;min-width:0}.unlinked-prefix{flex:0 0 auto;min-width:42px;text-align:center;padding:4px 6px;border-radius:8px;background:#edf3fb;color:#526d8e;font-size:9px;font-weight:900}.unlinked-main>div{min-width:0}.unlinked-main strong{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unlinked-main small{display:block;margin-top:2px;font-size:9px;color:#8490a1}.unlinked-pager{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:10px}.unlinked-pager span{font-size:10px;color:#778497}.geocode-review-moved{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid #e0e7ef;border-radius:11px;background:#f8fafc}.geocode-review-moved span{font-size:10px;color:#738094}

/* 0.10.64 - Duma offer action buttons */
.offer-actions{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;width:100%}
.offer-action-btn{display:inline-flex;align-items:center;justify-content:center;flex:1 1 0;min-width:0;height:30px;padding:0 8px;border:1px solid #d7deea;border-radius:10px;background:#fff;color:#315fc1;font-size:12px;font-weight:700;line-height:1;text-decoration:none;cursor:pointer;box-sizing:border-box}
.offer-action-btn:hover{border-color:#b8c8e6;background:#f7faff}
.offer-action-btn.danger{color:#c95555;border-color:#ead1d1}
.offer-action-btn.danger:hover{background:#fff7f7;border-color:#e0bdbd}

/* 0.10.69 - collapsible offer matching */
.offer-matching-head-controls{display:flex;align-items:center;gap:10px;flex:none}
.offer-matching-toggle{min-width:92px}
.offer-matching-panel.collapsed .offer-matching-body{display:none}
.offer-matching-panel.collapsed .offer-matching-head{margin-bottom:0}
.matching-confirmed-badge{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;padding:8px 11px;border-radius:9px;background:#e8f7ee;color:#227749;font-size:11px;font-weight:800}
@media(max-width:900px){.offer-matching-head-controls{width:100%;justify-content:space-between}}
/* 0.10.70 — ready offer-set snapshot save */
.duma-offer-library-grid.single{grid-template-columns:minmax(0,1fr)}
.duma-new-bottom-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}
.duma-save-set-backdrop{position:fixed;inset:0;z-index:10020;background:rgba(20,31,46,.42);display:none;align-items:center;justify-content:center;padding:20px}
.duma-save-set-backdrop.open{display:flex}
.duma-save-set-modal{width:min(520px,calc(100vw - 40px));background:#fff;border:1px solid #dfe5ed;border-radius:16px;box-shadow:0 24px 70px rgba(18,32,50,.22);padding:18px}
.duma-save-set-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.duma-save-set-head h3{margin:0 0 5px;font-size:16px;color:#1f2d3d}.duma-save-set-head p{margin:0;color:#718096;font-size:11px;line-height:1.45}.duma-save-set-close{border:0;background:transparent;color:#7c8898;font-size:23px;line-height:1;cursor:pointer;padding:0 3px}.duma-save-set-field{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:700;color:#5f6f82}.duma-save-set-field input{width:100%;height:40px;border:1px solid #d6deea;border-radius:10px;padding:0 12px;font:inherit;font-weight:500;color:#253246;box-sizing:border-box}.duma-save-set-field input:focus{outline:2px solid rgba(42,91,215,.15);border-color:#6f94e5}.duma-save-set-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:17px}

/* 0.10.74 — compact unlinked queue + sequential mapping */
.unlinked-statuses{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:-2px 0 10px}
.unlinked-status-chip{height:30px;padding:0 10px;border:1px solid #dfe6ef;border-radius:999px;background:#fff;color:#617187;display:inline-flex;align-items:center;gap:7px;font-size:10px;font-weight:750;cursor:pointer}
.unlinked-status-chip strong{min-width:20px;height:18px;padding:0 5px;border-radius:999px;background:#f1f4f8;color:#68798e;display:inline-flex;align-items:center;justify-content:center;font-size:9px}
.unlinked-status-chip:hover,.unlinked-status-chip.active{border-color:#9ab4ef;background:#f4f7ff;color:#2859c5}
.unlinked-status-chip.status-confirm.active{border-color:#9fd7b5;background:#f0fbf4;color:#237749}.unlinked-status-chip.status-confirm.active strong{background:#dff5e8;color:#237749}
.unlinked-status-chip.status-review.active{border-color:#e7c47d;background:#fff9ed;color:#9a6814}.unlinked-status-chip.status-review.active strong{background:#f8e9c8;color:#9a6814}
.unlinked-status-chip.status-manual.active{border-color:#d8dee7;background:#f7f8fa;color:#58697d}
.unlinked-toolbar{align-items:center}.unlinked-toolbar .search-box{max-width:none;min-width:240px}.unlinked-toolbar-right{display:flex;align-items:center;gap:10px;flex:0 0 auto}.unlinked-toolbar-right>span{font-size:10px;color:#7c899b;white-space:nowrap}
.unlinked-list{overflow:visible}.unlinked-row{min-height:45px;padding:6px 8px}.unlinked-main{flex:1;display:grid;grid-template-columns:42px minmax(78px,auto) minmax(190px,1fr) minmax(0,.85fr) auto;align-items:center;gap:8px;overflow:hidden}.unlinked-main strong.unlinked-code{display:block;font-size:10px;color:#2a3c52;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unlinked-address{font-size:11px;font-weight:650;color:#26384d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unlinked-candidate{font-size:9px;color:#748399;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unlinked-status-badge{justify-self:start;display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;font-size:8.5px;font-weight:800;white-space:nowrap}.unlinked-status-badge.confirm{background:#e8f7ee;color:#247849}.unlinked-status-badge.review{background:#fff3dc;color:#986511}.unlinked-status-badge.manual{background:#f0f3f6;color:#68788b}.unlinked-row-actions{flex:0 0 auto;display:flex;align-items:center;gap:6px}.unlinked-row-actions .btn{min-height:30px;padding:0 10px}.btn.success-outline{border:1px solid #b9dfc8;background:#f2fbf5;color:#237749}.btn.success-outline:hover{background:#e7f7ed;border-color:#98cfad}
.unlinked-review-modal{display:flex;flex-direction:column;gap:7px}.unlinked-review-choice{margin:0!important}
.unlinked-sequence-bar{margin:0 18px 12px;padding:10px 12px;border:1px solid #cddcf8;border-radius:12px;background:#f4f7ff;display:flex;align-items:center;justify-content:space-between;gap:14px}.unlinked-sequence-info{display:flex;flex-direction:column;gap:2px;min-width:0}.unlinked-sequence-info strong{font-size:11px;color:#274a9d}.unlinked-sequence-info>span{font-size:9px;color:#6f7e94}.unlinked-sequence-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}.unlinked-sequence-actions .btn{min-height:30px;padding:0 9px}
@media(max-width:1150px){.unlinked-main{grid-template-columns:42px minmax(72px,auto) minmax(160px,1fr) auto}.unlinked-candidate{display:none}}
@media(max-width:820px){.unlinked-toolbar{align-items:stretch;flex-direction:column}.unlinked-toolbar-right{justify-content:space-between}.unlinked-row{align-items:flex-start}.unlinked-main{display:flex;flex-wrap:wrap}.unlinked-address{flex:1 1 220px}.unlinked-status-badge{order:5;margin-left:50px}.unlinked-row-actions{flex-direction:column}.unlinked-sequence-bar{align-items:flex-start;flex-direction:column}.unlinked-sequence-actions{width:100%;flex-wrap:wrap}}
/* 0.10.75: roads and sidewalks imported as one road card with nested components. */
.uds-composition{margin:20px 0 4px;border:1px solid #dce4ef;border-radius:14px;background:#fff;overflow:hidden}
.uds-composition-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;background:#f6f8fc;border-bottom:1px solid #e3e9f2}
.uds-composition-head h3{margin:0 0 3px;font-size:15px;color:#243548}
.uds-composition-head span{display:block;font-size:12px;color:#687a91}
.uds-composition-head>b{flex:0 0 auto;padding:5px 9px;border-radius:999px;background:#e7eef9;color:#38516e;font-size:11px}
.uds-composition-scroll{overflow-x:auto}
.uds-composition table{width:100%;min-width:1220px;border-collapse:collapse;font-size:12px}
.uds-composition th{padding:9px 10px;text-align:left;background:#fbfcfe;color:#607089;font-size:11px;font-weight:700;border-bottom:1px solid #e3e9f2;white-space:nowrap}
.uds-composition td{padding:10px;border-bottom:1px solid #edf1f6;vertical-align:top;color:#33465f}
.uds-composition tbody tr:last-child td{border-bottom:0}
.uds-component-kind{display:inline-flex;align-items:center;padding:4px 8px;border-radius:8px;background:#e9eef7;color:#3e536e;font-weight:700;white-space:nowrap}
.uds-component-kind.sidewalk{background:#e5f3ea;color:#2e7250}
.uds-component-kind.bike_path{background:#e7f2fb;color:#28668f}
.uds-component-name{display:block;margin-top:6px;color:#2f425a;font-size:12px;font-weight:650}
.uds-composition tr.sidewalk td:first-child,.uds-composition tr.bike_path td:first-child{padding-left:18px}
.uds-registry-table{min-width:860px}
.uds-registry-table th:nth-child(1){width:72px}.uds-registry-table th:nth-child(2){min-width:300px}.uds-registry-table th:nth-child(n+3){white-space:nowrap}
.uds-registry-row td{vertical-align:middle}.uds-registry-row td:nth-child(2) strong{display:inline;margin-left:8px}.uds-registry-row td:nth-child(2) small{display:block;margin:4px 0 0 82px;color:#8290a3}
.uds-registry-row.sidewalk td,.uds-registry-row.bike_path td{background:#fbfcfe}.uds-registry-row.sidewalk td:first-child,.uds-registry-row.bike_path td:first-child{padding-left:22px}
.uds-composition-editor{padding:0;overflow:hidden}
.uds-composition-editor>.inventory-edit-head{padding:14px 16px;margin:0;border-bottom:1px solid #e3e9f2}
.uds-edit-actions{display:flex;gap:8px;flex-wrap:wrap}
.uds-edit-rows{display:flex;flex-direction:column}
.uds-edit-row{display:block;padding:14px 16px;border-bottom:1px solid #e8edf4}
.uds-edit-row:last-child{border-bottom:0}.uds-edit-row.sidewalk,.uds-edit-row.bike_path{background:#fbfcfe}
.uds-edit-row label{min-width:0}.uds-edit-row label span{display:block;margin-bottom:5px;color:#61738a;font-size:11px;font-weight:650;white-space:nowrap}.uds-edit-row input,.uds-edit-row select{width:100%;min-width:0}
.uds-edit-row-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.uds-edit-row-head button{border:0;background:transparent;color:#b33b3b;font-size:11px;font-weight:700;cursor:pointer}.uds-edit-main{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.uds-edit-main>label:nth-child(1){grid-column:span 1}.uds-edit-name{grid-column:span 3}.uds-edit-main>label:nth-child(3){grid-column:span 2}.uds-edit-main>label:nth-child(n+4){grid-column:span 2}
.uds-edit-extra{display:grid;grid-template-columns:1fr;gap:10px;margin-top:12px;padding-top:12px;border-top:1px dashed #dfe6ef}.uds-edit-surface{max-width:340px}.uds-edit-volume{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;padding:10px 12px 12px;border:1px solid #dfe6ef;border-radius:10px}.uds-edit-volume legend{padding:0 6px;color:#40536c;font-size:11px;font-weight:750}
.uds-volume-cell{display:flex;flex-direction:column;gap:3px;min-width:125px}
.uds-volume-cell b{font-size:12px;color:#33465f;white-space:nowrap}
.uds-volume-cell small{font-size:10px;color:#7c8b9e;white-space:nowrap}
@media(max-width:760px){.uds-composition{margin:14px 0}.uds-composition-head{align-items:flex-start;padding:12px}.uds-composition td,.uds-composition th{padding:8px}.uds-composition-editor>.inventory-edit-head{align-items:flex-start}.uds-edit-row{padding:12px}.uds-edit-main{grid-template-columns:repeat(2,minmax(0,1fr))}.uds-edit-main>label:nth-child(n){grid-column:span 1}.uds-edit-name{grid-column:span 2!important}.uds-edit-volume{grid-template-columns:1fr}}
