:root{--brand-primary: #06424D;--brand-accent: #5BB37D;--brand-ink: #2D2B2D;--brand-surface: #E7EDED;--bg: #F4F7F6;--surface: #FFFFFF;--surface-2: #F2F6F4;--line: #DCE5E2;--text: #1B2B2E;--heading: #06424D;--muted: #66787A;--primary: #06424D;--primary-hover: #0A5563;--primary-contrast:#FFFFFF;--accent: #5BB37D;--accent-strong: #3E9B63;--accent-soft: #EAF3ED;--success: #3E9B63;--success-soft: #EAF3ED;--success-line: #C5DFCE;--warning: #B4761F;--warning-soft: #FBF0DD;--warning-line: #E8D4A8;--danger: #B23A28;--danger-soft: #FBE9E5;--danger-line: #E8C4BC;--font: "Mulish", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--fs-xs: 12px;--fs-sm: 13px;--fs-base: 14px;--fs-md: 16px;--fs-lg: 18px;--fs-xl: 22px;--fs-2xl: 28px;--lh: 1.45;--fw-normal: 400;--fw-semibold: 600;--fw-bold: 700;--fw-extra: 800;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--radius-sm: 7px;--radius: 10px;--radius-lg: 14px;--radius-leaf: 4px 22px 22px 22px;--shadow-1: 0 1px 2px rgba(6,66,77,.05), 0 2px 8px rgba(6,66,77,.05);--shadow-2: 0 6px 24px rgba(6,66,77,.1);--page-max: 1280px;--page-max-narrow: 880px;--sidenav-w: 220px;--shell-max: 1600px;--gutter: var(--sp-5);--space-section: var(--sp-5);--header-h: 52px;--control-h: 32px;--control-h-sm: 28px;--control-px: var(--sp-3);--control-px-sm: var(--sp-2);--focus-ring: 0 0 0 3px var(--accent-soft);--focus-line: var(--accent-strong);--table-cell-y: 6px;--table-cell-x: var(--sp-2);--radius-chip: 4px;--z-sticky: 10;--z-header: 20;--z-modal: 30;--overlay: rgba(27,43,46,.45);--points-map-h: min(50vh, 22rem);--points-map-pin: 14px;--points-map-pin-selected: 18px}*{box-sizing:border-box}body{margin:0;font-family:var(--font);font-size:var(--fs-base);line-height:var(--lh);color:var(--text);background:var(--bg)}a{color:var(--accent-strong);text-decoration:none}a:hover{text-decoration:underline}h2,h3{color:var(--heading)}:focus-visible{outline:2px solid var(--focus-line);outline-offset:1px}.app-header{position:sticky;top:0;z-index:var(--z-header);display:flex;align-items:center;gap:var(--sp-4);min-height:var(--header-h);padding:0 var(--gutter);background:var(--surface);border-bottom:1px solid var(--line)}.app-header .logo{height:28px;width:auto;display:block}.app-header .brand-sub{color:var(--muted);font-size:var(--fs-sm);border-left:1px solid var(--line);padding-left:var(--sp-4)}.app-header .role{margin-left:auto}.page{max-width:var(--page-max);margin:0 auto;padding:var(--sp-5) var(--gutter) var(--sp-6)}.page--narrow{max-width:var(--page-max-narrow)}.shell{display:grid;grid-template-columns:var(--sidenav-w) minmax(0,1fr);align-items:start}.shell-main{min-width:0;max-width:var(--shell-max);padding:var(--sp-5) var(--gutter) var(--sp-6)}.side-nav{position:sticky;top:var(--header-h);z-index:var(--z-sticky);display:flex;flex-direction:column;gap:2px;height:calc(100vh - var(--header-h));padding:var(--sp-4) var(--sp-2);background:var(--surface);border-right:1px solid var(--line);overflow-y:auto}.side-nav-item{display:block;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);border-left:2px solid transparent;color:var(--text);font-weight:var(--fw-semibold);white-space:nowrap}.side-nav-item:hover{background:var(--surface-2);text-decoration:none}.side-nav-item.active{background:var(--accent-soft);border-left-color:var(--accent);color:var(--heading)}@media (max-width: 900px){.shell{display:block}.side-nav{flex-direction:row;height:auto;padding:var(--sp-2) var(--gutter);border-right:none;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}.side-nav-item{border-left:none;border-bottom:2px solid transparent;border-radius:0}.side-nav-item.active{background:none;border-bottom-color:var(--accent)}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--sp-5);margin-bottom:var(--sp-4)}.card h2{margin:0 0 var(--sp-3);font-size:var(--fs-lg);font-weight:var(--fw-bold)}.page-header{margin-bottom:var(--sp-4)}.page-back{margin-bottom:var(--sp-3)}.page-header-row{display:flex;align-items:center;gap:var(--sp-3) var(--sp-4);flex-wrap:wrap}.page-heading{flex:1 1 320px;min-width:0}.page-title{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3)}.page-title h2{margin:0;font-size:var(--fs-xl);font-weight:var(--fw-bold);line-height:1.2}.page-actions{justify-content:flex-end}.page-meta{margin-top:var(--sp-1);color:var(--muted);font-size:var(--fs-sm)}.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4);align-items:stretch}@media (max-width: 900px){.split{grid-template-columns:minmax(0,1fr)}}input,select,textarea{width:100%;min-height:var(--control-h);padding:0 var(--control-px);border:1px solid var(--line);border-radius:var(--radius-sm);font:inherit;font-size:var(--fs-base);background:var(--surface);color:var(--text)}textarea{min-height:64px;padding:var(--sp-2) var(--control-px);resize:vertical;line-height:var(--lh)}input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--primary)}input[type=file]{padding:var(--sp-1) var(--control-px-sm);line-height:calc(var(--control-h) - var(--sp-3))}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}input:disabled,select:disabled,textarea:disabled{background:var(--surface-2);color:var(--muted)}input.invalid,.field--error input{border-color:var(--danger);background:var(--danger-soft)}label{display:block;font-size:var(--fs-xs);color:var(--muted);margin:0 0 var(--sp-1)}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:var(--control-h);padding:0 var(--sp-4);border:1px solid var(--primary);border-radius:var(--radius-sm);background:var(--primary);color:var(--primary-contrast);font:inherit;font-size:var(--fs-base);font-weight:var(--fw-semibold);line-height:1.2;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s}button:hover,.btn:hover{background:var(--primary-hover);border-color:var(--primary-hover);text-decoration:none}.ghost{background:var(--surface);color:var(--primary);border-color:var(--line)}.ghost:hover{background:var(--surface-2);border-color:var(--primary)}.danger{background:var(--surface);color:var(--danger);border-color:var(--danger-line)}.danger:hover{background:var(--danger-soft);border-color:var(--danger)}.small{min-height:var(--control-h-sm);padding:0 var(--control-px);font-size:var(--fs-sm)}button:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.link-button{min-height:0;padding:0;border:none;background:none;color:var(--accent-strong);font-weight:var(--fw-semibold)}.link-button:hover{background:none;text-decoration:underline}.tabs{display:flex;gap:var(--sp-1);margin-bottom:var(--sp-4);border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}.tabs button{flex:0 0 auto;white-space:nowrap}.tabs button{min-height:36px;padding:0 var(--sp-4);margin-bottom:-1px;background:none;color:var(--muted);border:none;border-bottom:2px solid transparent;border-radius:0}.tabs button:hover{color:var(--heading);background:none}.tabs button.active{color:var(--heading);border-bottom-color:var(--accent)}.segment{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:var(--surface);max-width:100%}.segment button{min-height:calc(var(--control-h) - 2px);padding:0 var(--sp-3);border:none;border-radius:0;background:transparent;color:var(--muted);white-space:normal;text-align:center}.segment button:hover{background:var(--surface-2)}.segment button+button{border-left:1px solid var(--line)}.segment button.active{background:var(--primary);color:var(--primary-contrast)}.segment button.active:hover{background:var(--primary-hover)}.segment button:disabled{cursor:not-allowed;opacity:.55;background:transparent}.segment--sm button{min-height:calc(var(--control-h-sm) - 2px);padding:0 var(--sp-2);font-size:var(--fs-xs)}table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}th,td{border:1px solid var(--line);padding:var(--table-cell-y) var(--table-cell-x);text-align:left;vertical-align:top}th{background:var(--surface-2);color:var(--heading);font-weight:var(--fw-bold)}.num,th.num,td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.table-scroll{overflow-x:auto}.table-sticky th{position:sticky;top:var(--header-h);z-index:var(--z-sticky)}.cell-clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}tr.click-row{cursor:pointer}tr.click-row:hover td{background:var(--surface-2)}td.diff{background:var(--warning-soft)}.kv{display:grid;grid-template-columns:minmax(120px,max-content) minmax(0,1fr);gap:var(--sp-1) var(--sp-4);margin:0;font-size:var(--fs-sm)}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.chip{display:inline-flex;align-items:center;padding:2px var(--sp-2);border-radius:var(--radius-chip);font-size:var(--fs-xs);font-weight:var(--fw-semibold);line-height:1.4;white-space:nowrap;background:var(--accent-soft);color:var(--accent-strong)}.chip--neutral{background:var(--surface-2);color:var(--muted)}.chip--success{background:var(--success-soft);color:var(--success)}.chip--warning,.chip.sent{background:var(--warning-soft);color:var(--warning)}.chip--danger{background:var(--danger-soft);color:var(--danger)}.chip.status-on_review,.chip.status-sent_to_client{background:var(--warning-soft);color:var(--warning)}.chip.status-returned{background:var(--danger-soft);color:var(--danger)}.chip.status-approved,.chip.status-accepted,.chip.status-signed{background:var(--success-soft);color:var(--success)}.chip.status-draft,.chip.status-cancelled{background:var(--surface-2);color:var(--muted)}.banner{margin:0 0 var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--heading);font-size:var(--fs-sm)}.banner-title,.problems-title{font-weight:var(--fw-semibold)}.banner-info{background:var(--surface-2);color:var(--heading)}.banner-success{background:var(--success-soft);border-color:var(--success-line);color:var(--success)}.banner-warning{background:var(--warning-soft);border-color:var(--warning-line);color:var(--warning)}.banner-danger{background:var(--danger-soft);border-color:var(--danger-line);color:var(--danger)}.banner ul{margin:var(--sp-1) 0 0;padding-left:var(--sp-5)}.empty{padding:var(--sp-4) 0;color:var(--muted);font-size:var(--fs-sm)}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-3)}.form-grid--1{grid-template-columns:minmax(0,1fr)}.form-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width: 720px){.form-grid--2,.form-grid--3{grid-template-columns:minmax(0,1fr)}}.field{min-width:0}.field--wide{grid-column:1 / -1}.form-grid--3>.span-2{grid-column:span 2}@media (max-width: 720px){.form-grid--3>.span-2{grid-column:auto}}.contractor-form{margin-bottom:0}.contractor-form .banner+.banner{margin-top:var(--sp-2)}.field-hint{margin-top:var(--sp-1);color:var(--muted);font-size:var(--fs-xs)}.field-error{margin-top:var(--sp-1);color:var(--danger);font-size:var(--fs-xs)}.ro-value{min-height:var(--control-h);display:flex;align-items:center;font-size:var(--fs-sm)}.req{color:var(--danger);font-weight:var(--fw-semibold)}.check-inline{display:flex;align-items:center;gap:var(--sp-2);margin:0;font-size:var(--fs-sm);color:var(--text);cursor:pointer}.checks{max-height:200px;overflow:auto;padding:var(--sp-1) var(--sp-2);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.checks label{display:flex;align-items:center;gap:var(--sp-2);margin:0;padding:2px 0;font-size:var(--fs-sm);color:var(--text);cursor:pointer}.checks label .grow{flex:1}.checks .price-tag{white-space:nowrap;margin-left:auto}.checks--sm{max-height:120px}.section{margin-top:var(--space-section)}.section:first-child{margin-top:0}.section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3);flex-wrap:wrap}.section-head h3,.card h3{margin:0;font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--heading);padding-left:var(--sp-2);border-left:3px solid var(--accent)}.card h3{margin:var(--sp-4) 0 var(--sp-2)}.panel{border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-4);background:var(--surface)}.panel--muted{background:var(--surface-2)}.panel--accent{border:2px solid var(--accent)}.panel--warning{border-color:var(--warning-line);background:var(--warning-soft)}.panel>.toolbar,.panel>.table-scroll{margin-top:var(--sp-3)}.section-foot{margin-top:var(--sp-3)}.panel-title{margin:0 0 var(--sp-3);font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--heading);display:flex;align-items:center;gap:var(--sp-2)}.disclosure>summary{cursor:pointer;color:var(--accent-strong);font-size:var(--fs-sm);font-weight:var(--fw-semibold);list-style:none;margin-top:var(--sp-2)}.disclosure>summary::-webkit-details-marker{display:none}.disclosure>summary:before{content:"▸ "}.disclosure[open]>summary:before{content:"▾ "}.disclosure-body{margin-top:var(--sp-2)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.toolbar--end{justify-content:flex-end}.toolbar>input,.toolbar>select{width:auto;flex:1 1 200px;min-width:160px}.toolbar>.grow{flex:1 1 auto}.toolbar>.toolbar-select{flex:0 1 280px}.stack>*+*{margin-top:var(--sp-3)}.muted{color:var(--muted);font-size:var(--fs-xs)}.grow{flex:1}.accent-bar{display:inline-block;width:40px;height:4px;border-radius:var(--radius-chip);background:var(--accent)}.leaf-mask{border-radius:var(--radius-leaf);overflow:hidden}.hidden-input{display:none}input,select,.chip{font-variant-numeric:tabular-nums}.zayavki-table{table-layout:fixed}.zayavki-table td{vertical-align:middle}.zayavki-table .col-num{width:56px}.zayavki-table .col-types{width:140px}.zayavki-table .col-points{width:64px}.zayavki-table .col-status{width:180px}.zayavki-table .chip{white-space:normal;max-width:100%}.zayavki-table .col-date{width:100px}.zayavki-table .col-actions{width:112px}.zayavki-table .col-dir{width:160px}.zayavki-table .col-in{width:80px}.zayavki-table .col-updated{width:136px}.table-scroll .zayavki-table{min-width:960px}.row-actions{white-space:nowrap}.row-actions .btn+.btn,.row-actions button+button{margin-left:var(--sp-1)}.point{border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-3);background:var(--surface)}.point-head{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-3)}.point-label{font-weight:var(--fw-bold);color:var(--heading);min-width:32px}.point-head .grow{min-width:160px}.point-type-ro{font-size:var(--fs-sm)}.indicators-head{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin:var(--sp-2) 0 var(--sp-1)}.indicators-head label{margin:0}.catalog-search{max-width:360px;margin-bottom:var(--sp-2)}.custom-list{margin-top:var(--sp-2)}.custom-item{display:flex;align-items:center;gap:var(--sp-2);padding:2px 0;font-size:var(--fs-sm)}.custom-item .grow{flex:1}.custom-add{display:flex;gap:var(--sp-2);align-items:center}.custom-add input{flex:1 1 auto}.custom-field{margin-top:var(--sp-3)}.field--span2{grid-column:span 2}@media (max-width: 720px){.field--span2{grid-column:auto}}.indicator-list{list-style:none;margin:var(--sp-2) 0 0;padding:0;columns:2 280px;column-gap:var(--sp-5);font-size:var(--fs-sm)}.indicator-list li{display:flex;gap:var(--sp-2);padding:2px 0;break-inside:avoid;border-bottom:1px solid var(--surface-2)}.point .kv{margin-bottom:var(--sp-2)}.estimate-panel{margin-top:var(--space-section)}.card>.estimate-panel:first-child{margin-top:0}.estimate-edit td{vertical-align:middle;padding-top:2px;padding-bottom:2px}.estimate-input{width:88px;min-height:var(--control-h-sm);padding:0 var(--sp-2);text-align:right}.estimate-input--wide{width:200px;text-align:left}.estimate-input--pct{width:64px}.estimate-needs-price td{background:var(--warning-soft)}.estimate-subtotal td{background:var(--surface-2);font-weight:var(--fw-semibold)}.estimate-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--sp-4);margin-top:var(--sp-4)}.estimate-control>*+*{margin-top:var(--sp-2)}.estimate-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-4)}.estimate-grand{font-weight:var(--fw-bold);color:var(--heading);margin-right:var(--sp-2);font-variant-numeric:tabular-nums}.estimate-note{margin:var(--sp-2) 0 0}.chip-inline{margin-left:var(--sp-2)}.dropzone{margin-top:var(--sp-3);padding:var(--sp-6) var(--sp-5);border:1px dashed var(--line);border-radius:var(--radius);background:var(--surface-2);text-align:center;cursor:pointer;color:var(--heading);font-size:var(--fs-sm)}.dropzone:hover,.dropzone-active{border-color:var(--accent);background:var(--accent-soft)}.import-wait{margin:var(--sp-4) 0 var(--sp-2);font-size:var(--fs-md);color:var(--heading);font-weight:var(--fw-semibold)}.import-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-4);align-items:start}.import-scan-controls{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center;justify-content:space-between;margin-bottom:var(--sp-2)}.import-scan-controls h2{margin:0;font-size:var(--fs-md)}.import-page-nav,.import-zoom{display:flex;align-items:center;gap:var(--sp-2)}.import-zoom .zoom-value{min-width:44px;text-align:center;font-variant-numeric:tabular-nums}.import-scan{position:sticky;top:calc(var(--header-h) + var(--sp-3));display:flex;flex-direction:column;max-height:calc(100vh - var(--header-h) - var(--sp-5))}.import-scan-viewport{flex:1;min-height:0;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}.import-scan-viewport.zoomed{cursor:grab}.import-scan-viewport.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.import-scan-img{display:block;max-width:none}@media (max-width: 900px){.import-layout{grid-template-columns:minmax(0,1fr)}.import-scan{position:static;max-height:none}.import-scan-viewport{max-height:70vh}}.issue-card{border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3);margin:var(--sp-2) 0;background:var(--surface);font-size:var(--fs-sm)}.issue-card.issue-blocking{border-color:var(--danger-line);background:var(--danger-soft)}.issue-uncertainty{background:var(--surface-2)}.issue-head{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:baseline;justify-content:space-between;margin-bottom:var(--sp-1)}.issue-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-2);align-items:center}.uncertainty-list{margin:var(--sp-2) 0 0;padding-left:var(--sp-5)}.uncertainty-list li{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:flex-start;justify-content:space-between;margin-bottom:var(--sp-1)}.import-ai-uncertainty{font-size:var(--fs-xs);color:var(--muted)}.import-recent{margin-top:var(--sp-4)}.import-recent-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-1)}.import-recent-item{width:100%;display:flex;gap:var(--sp-3);justify-content:space-between;align-items:baseline;text-align:left}.import-recent-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-soil-object+.import-soil-object{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--line)}.import-soil-object h4{margin:0 0 var(--sp-1)}.import-soil-object .table-scroll{margin-top:var(--sp-2)}.import-air-table td{vertical-align:top}.import-air-table textarea{min-height:3.5rem}.import-air-items{margin:0;padding:0;list-style:none;display:grid;gap:var(--sp-2)}.import-air-item{padding-bottom:var(--sp-2);border-bottom:1px solid var(--line)}.import-air-item:last-child{border-bottom:none;padding-bottom:0}.import-air-item-edit{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}.link-cell{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.link-cell a{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-cell .btn{flex:0 0 auto}.customer-name{font-weight:var(--fw-semibold);color:var(--heading);margin-bottom:var(--sp-2)}.input-incoming{width:140px;flex:0 0 140px}.return-panel{margin-bottom:var(--sp-3)}.link-row{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap}.link-row input{flex:1 1 320px}.return-panel{border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--sp-3);background:var(--surface-2)}.requisites-compare{margin:var(--sp-2) 0;background:var(--surface)}.action-bar{position:sticky;bottom:0;z-index:var(--z-sticky);margin:var(--space-section) calc(-1 * var(--sp-5)) calc(-1 * var(--sp-5));padding:var(--sp-3) var(--sp-5);background:var(--surface);border-top:1px solid var(--line);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.action-bar .banner{margin-bottom:var(--sp-2)}.sign-steps{margin:0;padding-left:var(--sp-5)}.sign-steps li{margin:var(--sp-2) 0}.sign-steps .toolbar{margin-top:var(--sp-2)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--sp-4);background:var(--overlay)}.modal{width:min(960px,100%);max-height:calc(100vh - var(--sp-6));overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--sp-4) var(--sp-5);box-shadow:var(--shadow-2)}.map-box{height:min(60vh,520px);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.points-map{border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-2)}.points-map__box{height:var(--points-map-h);width:100%}.points-map__bar{padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--line);background:var(--surface)}.points-map-marker{display:flex;flex-direction:column;align-items:center;cursor:pointer;transform:translateY(2px)}.points-map-marker__pin{width:var(--points-map-pin);height:var(--points-map-pin);border-radius:var(--radius-sm);background:var(--primary);border:2px solid var(--primary-contrast);box-shadow:var(--shadow-1)}.points-map-marker--sediment .points-map-marker__pin{background:var(--accent-strong)}.points-map-marker--selected .points-map-marker__pin{width:var(--points-map-pin-selected);height:var(--points-map-pin-selected);background:var(--accent);outline:2px solid var(--accent-strong)}.points-map-marker__label{margin-top:var(--sp-1);padding:0 var(--sp-1);font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--heading);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-chip);white-space:nowrap}.points-map-row--selected>td{background:var(--accent-soft)}.soil-point-checks--warn{outline:2px solid var(--warning-line);border-radius:var(--radius-sm);padding:var(--sp-2);background:var(--warning-soft)}.soil-ind-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-1) 0}@media (max-width: 720px){:root{--gutter: var(--sp-4)}.app-header .brand-sub{display:none}.page{padding-top:var(--sp-4)}.card{padding:var(--sp-4)}.action-bar{margin-left:calc(-1 * var(--sp-4));margin-right:calc(-1 * var(--sp-4));margin-bottom:calc(-1 * var(--sp-4));padding:var(--sp-3) var(--sp-4)}.page-actions{justify-content:flex-start}.action-bar .toolbar>*{flex:1 1 100%}.kv{grid-template-columns:minmax(96px,max-content) minmax(0,1fr)}}.scope-search-input{flex:1 1 360px;min-width:0}.scope-table{table-layout:fixed}.scope-table .col-n{width:96px}.scope-table .col-range{width:190px}.scope-table .col-objects{width:200px}.scope-table .col-method{width:260px}.scope-table .col-page{width:56px}.table-scroll .scope-table{min-width:1100px}.scope-range{white-space:nowrap;font-variant-numeric:tabular-nums}.client-scope-table{table-layout:fixed}.client-scope-table .col-range{width:190px}.client-scope-table .col-method{width:280px}.client-scope-table .col-n{width:72px}.table-scroll .client-scope-table{min-width:760px}.client-scope-scroll{max-height:420px;overflow:auto}.consent-check{align-items:flex-start;margin-bottom:var(--sp-2)}.consent-check input{margin-top:var(--sp-1)}.scope-ind-table td:first-child{width:55%}.scope-ind-table .row-actions{width:1%}.scope-edits-table td{font-size:var(--fs-xs)}.scope-edit-form{padding:var(--sp-3);margin:var(--sp-2) 0;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}.scope-page-no{font-variant-numeric:tabular-nums;color:var(--heading);font-size:var(--fs-sm)}.toolbar .scope-jump{flex:0 0 96px;width:96px}.scope-check-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:var(--sp-4);align-items:start;margin-top:var(--sp-3)}.scope-check-pdf{position:sticky;top:calc(var(--header-h) + var(--sp-3));max-height:calc(100vh - var(--header-h) - var(--sp-5));overflow:auto;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}.scope-page-img{display:block;width:100%;height:auto}.scope-check-item{border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-3);background:var(--surface)}.scope-check-item .kv{margin-bottom:var(--sp-2)}.scope-check-item-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2)}.scope-check-item-head .btn{margin-left:auto}.plain-list{margin:0;padding-left:var(--sp-4)}@media (max-width: 900px){.scope-check-layout{grid-template-columns:minmax(0,1fr)}.scope-check-pdf{position:static;max-height:70vh}}.scope-sample-done{border-color:var(--success-line)}.scope-sample-issue{border-color:var(--danger-line)}.scope-human-check{margin-top:var(--sp-3)}.em-table td{vertical-align:top}.table-scroll .em-table{min-width:960px}.em-table th:first-child,.em-table td:first-child{width:64px}.em-methods{padding-left:0;list-style:none;font-size:var(--fs-xs)}.em-methods li{white-space:nowrap}.em-reason{margin-top:var(--sp-1)}.em-decision{margin-top:var(--sp-2)}.em-source-row td{background:var(--surface-2);color:var(--heading)}.em-split{margin-top:var(--sp-1);font-size:var(--fs-xs)}.em-create-form{margin-bottom:var(--sp-4);padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}.em-zayavka-table .em-decision-form{min-width:232px;max-width:280px}.em-zayavka-table .em-decision-form select,.em-zayavka-table .em-decision-form input{width:100%}.em-row-pending>td:first-child,.em-item-pending{box-shadow:inset 3px 0 0 var(--warning, var(--accent))}.em-pending-accent{color:var(--accent-strong);font-weight:var(--fw-semibold)}.soil-table td{vertical-align:top}.soil-block{padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}.soil-block+.soil-block{margin-top:var(--sp-3)}.soil-point-checks{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3)}.soil-decision{min-width:200px;max-width:280px}.soil-decision .em-decision-form select,.soil-decision .em-decision-form input{width:100%}.soil-catalog-hits{list-style:none;padding-left:0;margin:0;max-height:160px;overflow:auto}.soil-catalog-hits li+li{margin-top:var(--sp-1)}.soil-obj-tabs{margin-bottom:var(--sp-3);flex-wrap:wrap}.stack-sm>*+*{margin-top:var(--sp-2)}.air-subtitle{margin:var(--sp-3) 0 var(--sp-2);font-size:var(--fs-sm);color:var(--heading)}.air-point{margin-top:var(--sp-2)}.table-scroll .air-items-table{min-width:720px}.air-items-table td{vertical-align:top}.air-code-input{min-width:4.5rem;max-width:6rem}.air-meas-input{max-width:4.5rem}.air-client-items{margin:0;padding:0;list-style:none}.air-client-item{padding:var(--sp-2) 0;border-bottom:1px solid var(--border)}.air-client-item:last-child{border-bottom:none}button.linkish{display:inline;padding:0;border:0;background:none;color:var(--accent-strong);font:inherit;text-align:left;cursor:pointer;text-decoration:underline}button.linkish:hover{color:var(--accent)}.estimate-group-row td{background:var(--surface-2);font-weight:var(--fw-semibold);color:var(--heading)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:var(--sp-3)}.stat-tile{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:var(--sp-1);min-height:0;padding:var(--sp-3) var(--sp-4);white-space:normal;text-align:left;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:var(--radius);font-weight:var(--fw-normal)}.stat-tile:hover{background:var(--surface-2);border-color:var(--primary)}.stat-tile--accent{border-color:var(--accent);background:var(--accent-soft)}.stat-value{font-size:var(--fs-2xl);font-weight:var(--fw-bold);color:var(--heading);line-height:1.1;font-variant-numeric:tabular-nums}.stat-label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--heading)}.stat-hint{font-size:var(--fs-xs);color:var(--muted)}.method-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:var(--radius)}.method-list li+li{border-top:1px solid var(--line)}.method-row{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--sp-1) var(--sp-4);padding:var(--sp-3) var(--sp-4);color:var(--text)}.method-row:hover{background:var(--surface-2);text-decoration:none}.method-title{font-weight:var(--fw-bold);color:var(--accent-strong)}.method-text{color:var(--muted);font-size:var(--fs-sm)}@media (max-width: 720px){.method-row{grid-template-columns:minmax(0,1fr)}}.search-input{flex:1 1 320px;min-width:0}.card>.toolbar{margin-bottom:var(--sp-3)}.tab-count{margin-left:var(--sp-2);color:var(--muted);font-weight:var(--fw-normal);font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}.ui-shell-demo{max-width:var(--sidenav-w);border:1px solid var(--line)}.ui-shell-demo .side-nav{position:static;height:auto}.ref-table{table-layout:fixed}.ref-table td{vertical-align:top}.table-scroll .ref-pollutants{min-width:960px}.table-scroll .ref-contractors{min-width:720px}.table-scroll .ref-catalog{min-width:880px}.table-scroll .ref-zv-dict{min-width:800px}.table-scroll .ref-zv-decisions{min-width:900px}.ref-table .col-code{width:64px}.ref-table .col-cas{width:96px}.ref-table .col-pdk{width:80px}.ref-table .col-class{width:56px}.ref-table .col-group,.ref-table .col-scope{width:120px}.ref-table .col-inn{width:112px}.ref-table .col-kpp{width:96px}.ref-table .col-phone{width:120px}.ref-table .col-email{width:160px}.ref-table .col-count{width:72px}.ref-table .col-1c{width:88px}.ref-table .col-sub{width:140px}.ref-table .col-unit{width:64px}.ref-table .col-price{width:96px}.ref-table .col-kb{width:160px}.ref-table .col-scope-names{width:220px}.ref-table .col-conf{width:140px}.ref-table .col-note{width:160px}.ref-table .col-date{width:96px}.ref-table .col-ind{width:160px}.ref-table .col-decision{width:128px}.ref-table .col-who{width:100px}.ref-scope-list{margin:0;padding-left:var(--sp-4);font-size:var(--fs-xs)}.eq-filters{margin-bottom:var(--sp-3)}.table-scroll .eq-table{min-width:880px}.eq-sub{font-size:var(--fs-xs);margin-top:2px}.eq-problems{font-size:var(--fs-xs);margin-top:var(--sp-1);color:var(--danger)}.eq-chip-row{margin-top:var(--sp-1)}.eq-row-unusable td{color:var(--muted);background:var(--surface-2)}.eq-row-open td{background:var(--accent-soft)}.eq-detail-row td{background:var(--surface);padding:var(--sp-3)}.eq-detail .section{margin-top:var(--sp-3)}.eq-detail .section:first-child{margin-top:0}.eq-arshin{margin:var(--sp-2) 0 0;font-size:var(--fs-sm)}.eq-history-table{min-width:520px}.eq-check-disabled{opacity:.65;cursor:not-allowed}.eq-check-disabled input{cursor:not-allowed}.eq-check-reason{color:var(--danger);font-size:var(--fs-xs)}.input-num{width:88px;font-variant-numeric:tabular-nums}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--sp-5) var(--gutter);background:var(--bg)}.auth-card{width:min(400px,100%)}.auth-logo{height:36px;width:auto;display:block;margin-bottom:var(--sp-3)}.auth-title{margin:0 0 var(--sp-2);font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--heading)}.auth-lead{margin:0 0 var(--sp-4)}.auth-actions{margin-top:var(--sp-4)}.change-password-wrap{max-width:420px}.header-user{margin-left:auto;display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;justify-content:flex-end}.header-user .role{margin-left:0}.header-user-meta{font-size:var(--fs-sm);white-space:nowrap}.header-user-name{font-weight:var(--fw-semibold);color:var(--heading)}.temp-password{display:inline-block;margin:var(--sp-2) 0;padding:var(--sp-1) var(--sp-2);font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--fs-sm);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm)}.field-inline{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm)}.row-selected td{background:var(--accent-soft)}.feedback-dialog{width:min(720px,calc(100vw - var(--sp-6)));max-height:calc(100vh - var(--sp-6));padding:0;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-2);color:var(--text)}.feedback-dialog::backdrop{background:var(--overlay)}.feedback-dialog-body{padding:var(--sp-4) var(--sp-5);overflow:auto;max-height:calc(100vh - var(--sp-6))}.feedback-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3)}.feedback-dialog-head h2{margin:0;font-size:var(--fs-lg)}.feedback-dialog-actions{margin-top:var(--sp-4)}.feedback-dialog .segment{flex-wrap:wrap}.annotator{margin:var(--sp-3) 0}.annotator-tools{margin-bottom:var(--sp-2);flex-wrap:wrap}.annotator-canvas-wrap{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);touch-action:none}.annotator-canvas{display:block;max-width:100%;height:auto;cursor:crosshair;vertical-align:top}.feedback-detail{margin-top:var(--sp-5)}.feedback-text{white-space:pre-wrap;margin:var(--sp-3) 0}.feedback-shot{margin:var(--sp-3) 0}.feedback-shot-img{max-width:100%;height:auto;border:1px solid var(--line);border-radius:var(--radius-sm);cursor:zoom-in}.feedback-errors{margin:0;padding-left:var(--sp-5);font-size:var(--fs-sm)}.feedback-context-raw{margin:var(--sp-2) 0 0;padding:var(--sp-2);overflow:auto;max-height:200px;font-size:var(--fs-xs);background:var(--surface-2);border-radius:var(--radius-sm)}.feedback-events{margin:0;padding-left:var(--sp-5);font-size:var(--fs-sm)}@media (max-width: 720px){.app-header{flex-wrap:wrap;padding-top:var(--sp-2);padding-bottom:var(--sp-2)}.header-user{width:100%;margin-left:0}.header-user-meta{white-space:normal}.table-scroll{overflow-x:auto}}
