/* =========================================================================
   Прототип «Полевые осмотры» (web) — надстройки над стилями клона.
   Всё, что здесь, либо новые компоновки на примитивах дизайн-системы
   (значения values_view, hero «Итоговая оценка», точки и кластеры карты,
   паспорт), либо панель-объяснение прототипа. Токены — только из tokens.css.
   ========================================================================= */

/* ---------- сцена: клон слева, панель прототипа справа ---------- */
body.insp-proto{display:flex;overflow:hidden}
body.insp-proto #app{flex:1;min-width:0;width:auto}
body.insp-proto.proto-open .preview-master{right:380px}
body.insp-proto.proto-open .ao-snackbar{right:396px}
.proto-panel{
  flex:0 0 380px;width:380px;height:100vh;overflow-y:auto;scrollbar-width:none;
  background:#151B22;border-left:1px solid rgba(255,255,255,.08);padding:22px 22px 60px;color:#E7EAEE;
  font-family:var(--font-body);
}
.proto-panel::-webkit-scrollbar{display:none}
body.insp-proto:not(.proto-open) .proto-panel{display:none}
.proto-toggle{
  position:fixed;right:380px;top:50%;z-index:3000;transform:translateY(-50%);
  width:22px;height:64px;border-radius:8px 0 0 8px;background:#151B22;color:#B8BFC8;
  display:flex;align-items:center;justify-content:center;font-size:12px;cursor:pointer;
  box-shadow:-2px 0 8px rgba(0,0,0,.2);transition:right .2s ease;
}
body.insp-proto:not(.proto-open) .proto-toggle{right:0}
.proto-toggle .ao-icon{font-size:12px}
.proto-panel__eyebrow{font-size:11px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:#8CABCD;margin-bottom:6px}
.proto-panel__title{font-size:20px;font-weight:600;line-height:1.25;color:#fff}
.proto-panel__lead{font-size:12.5px;font-weight:400;line-height:1.5;color:#B8BFC8;margin:8px 0 0}
.proto-panel__lead b,.proto-panel__list b,.proto-flow b{color:#fff;font-weight:600}
.proto-panel__lead code,.proto-panel__list code{font-family:ui-monospace,Consolas,monospace;font-size:11px;background:rgba(255,255,255,.08);padding:1px 5px;border-radius:4px;color:#DCE4EC}
.proto-panel__now{margin-top:14px;padding:10px 12px;border-radius:10px;font-size:12px;font-weight:500;background:rgba(74,134,199,.14);border:1px solid rgba(74,134,199,.4);color:#BFD6EE}
.proto-panel__now b{color:#fff;font-weight:600}
.proto-panel__section{font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#7E8894;margin:20px 0 10px}
.proto-flow{display:flex;gap:10px;padding:9px 11px;border-radius:10px;margin-bottom:6px;font-size:12px;line-height:1.5;color:#C7CDD5;border:1px solid transparent;transition:background .25s ease,border-color .25s ease}
.proto-flow__num{width:20px;height:20px;border-radius:50%;flex:0 0 20px;margin-top:1px;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff}
.proto-flow--active{background:rgba(74,134,199,.14);border-color:rgba(74,134,199,.45)}
.proto-flow--active .proto-flow__num{background:#4A86C7;color:#fff}
.proto-panel__list{margin:0;padding:0 0 0 14px;display:flex;flex-direction:column;gap:8px;font-size:12px;line-height:1.5;color:#C7CDD5}
.proto-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#4A86C7;box-shadow:0 0 6px rgba(74,134,199,.8);margin-right:4px;vertical-align:baseline}
.proto-var{margin-bottom:12px}
.proto-var__t{font-size:12px;font-weight:600;color:#E7EAEE;margin-bottom:6px}
.proto-var__chips{display:flex;flex-wrap:wrap;gap:6px}
.proto-var__chip{padding:4px 9px;border-radius:8px;cursor:pointer;font-family:inherit;font-size:11px;font-weight:500;line-height:1.3;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:#C7CDD5}
.proto-var__chip:hover{background:rgba(255,255,255,.12);color:#fff}
.proto-var__chip.is-on{background:rgba(74,134,199,.28);border-color:#4A86C7;color:#fff}
.proto-var__hint{margin-top:6px;font-size:11px;line-height:1.45;color:#8FA0B4}
.proto-check{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:6px 10px;border-radius:8px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:#C7CDD5;font-size:11px;cursor:pointer}
.proto-check:hover{color:#fff;background:rgba(255,255,255,.12)}
.proto-check__res{margin-top:8px;font-size:11px;color:#8FA0B4;white-space:pre-line}

/* ---------- таблицы реестров ---------- */
.insp-table th{white-space:nowrap}
.insp-table td{white-space:normal;max-width:320px}
.insp-table td.cell-top{vertical-align:top;padding-top:8px;padding-bottom:8px}
.insp-table td.cell-wrap{white-space:normal;min-width:180px;max-width:260px;font-size:12px}
.insp-thgroups th{height:26px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-600);border-bottom:1px solid var(--border-soft);background:var(--light-grey);position:sticky;top:0;z-index:3}
.insp-thgroups th.has-group{border-left:1px solid var(--border-soft)}
.insp-thgroups th:first-child{border-left:none}
.insp-table thead tr:nth-child(2) th{top:26px}
.insp-table:not(:has(.insp-thgroups)) thead tr th{top:0}
.text-nowrap{white-space:nowrap}
.insp-list{display:inline-block;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;line-height:1.35}
.insp-more{display:inline-block;color:var(--text-600);font-size:10px;font-weight:500;white-space:nowrap}
.insp-values{display:flex;flex-direction:column;gap:2px;font-size:12px;line-height:1.35;min-width:160px}
.insp-values__row{display:flex;gap:6px;align-items:baseline}
.insp-values__row .k{color:var(--text-700);white-space:nowrap}
.insp-values__row .k::after{content:':'}
.insp-values__row .v{font-weight:500;white-space:nowrap}
.insp-table tfoot td{white-space:nowrap;font-size:12px}
.insp-table tbody tr.is-stale td{background:var(--status-cancel-bg)}

/* ---------- превью ---------- */
.insp-statuses{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.insp-author .pict .ao-avatar{width:32px;height:32px;font-size:12px}
.insp-author .pict{margin-right:8px}
.insp-map-wrap{position:relative}
.insp-map-tag{position:absolute;top:8px;left:8px;z-index:2}
.insp-map-note{font-size:10px;font-weight:500;color:var(--text-600);margin:0 0 16px}
.insp-map-empty{height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center;padding:0 24px;background:var(--light-grey);border:1px dashed var(--border-dashed)}
.insp-map-empty .ao-icon{font-size:22px;color:var(--icon-600);margin-bottom:4px}
.insp-map-empty .t{font-size:12px;font-weight:500;color:var(--text-700)}
.insp-map-empty .s{font-size:10px;font-weight:400;color:var(--text-600)}
.insp-pin svg path{fill:#fff;stroke:var(--primary);stroke-width:6}
.insp-pin.is-borrowed svg path{fill:#fff;stroke:#576674;stroke-dasharray:10 6}
.insp-pin{width:26px;height:30px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25))}
.insp-hero{margin-bottom:16px}
.insp-hero .preview-info-card .v{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:16px;font-weight:600;min-height:26px}
.insp-hero .preview-info-card .v small{font-size:10px;font-weight:500;color:var(--text-600)}
.insp-hero .preview-info-card .v .preview-status{font-size:12px}
.insp-hero-empty{font-size:12px;font-weight:500;color:var(--text-600)}
.insp-kv .v .insp-scale{font-size:10px;font-weight:400;color:var(--text-600);line-height:1.3}
.insp-kv .k .insp-scale{font-size:10px;font-weight:400;color:var(--text-600)}
.insp-kv.is-cur{background:var(--primary-50);margin:0 -8px;padding:6px 8px;border-radius:var(--r)}
.insp-kv.is-cur .k,.insp-kv.is-cur .v{margin:0}
.insp-sec{margin-bottom:10px}
.insp-sec__t{font-size:10px;font-weight:600;line-height:140%;text-transform:uppercase;color:var(--text-600);margin-bottom:2px;display:flex;align-items:center;gap:6px}
.insp-sec__t .n{color:var(--text-secondary);font-weight:500}
.insp-sec .preview-kv{margin:6px 0}
.insp-sec .preview-nodata{margin:2px 0 6px 0;color:var(--text-600);font-weight:400}
.insp-chip{position:relative;padding-left:18px}
.insp-chip::before{content:'';position:absolute;left:8px;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:var(--text-secondary)}
.insp-chip.tone-positive::before{background:var(--success)}
.insp-chip.tone-warning::before{background:var(--warning)}
.insp-chip.tone-negative::before{background:var(--error)}
.insp-obj{padding:12px;border:1px solid var(--border-soft);border-radius:var(--r);margin-bottom:8px;cursor:pointer;transition:background .15s ease}
.insp-obj:hover{background:var(--light-grey)}
.insp-obj__head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px}
.insp-obj__head .t{font-size:12px;font-weight:500;line-height:1.35}
.insp-obj__head .s{font-size:10px;font-weight:500;color:var(--text-700)}
.insp-obj .insp-sec:last-child{margin-bottom:0}
.insp-subt{font-size:10px;font-weight:600;text-transform:uppercase;color:var(--text-600);margin:8px 0 8px}
.insp-text{font-size:12px;font-weight:400;line-height:1.5;margin-bottom:8px}
.insp-hint{font-size:10px;font-weight:400;line-height:1.45;color:var(--text-600);margin:8px 0 4px}
.insp-rec-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border-soft);cursor:pointer}
.insp-rec-row:last-of-type{border-bottom:none}
.insp-rec-row .pict{width:32px;height:32px;border-radius:var(--r);background:var(--secondary);color:var(--primary);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.insp-rec-row .pict .ao-icon{font-size:16px}
.insp-rec-row .et{flex:1;min-width:0}
.insp-rec-row .et .t{font-size:12px;font-weight:500}
.insp-rec-row .et .s{font-size:10px;font-weight:500;color:var(--text-700)}
.insp-comment .ch{font-size:12px}
.insp-comment__who{display:inline-flex;align-items:center;gap:6px}
.insp-comment__who .ao-avatar{font-size:9px}
.insp-comment__time{font-size:10px;font-weight:400;color:var(--text-600)}
.insp-voice{display:flex;flex-direction:column;gap:2px;color:var(--text-700)}
.insp-voice .ao-icon{font-size:12px;margin-right:4px;vertical-align:middle}
.insp-voice__tr{font-style:italic;color:var(--text-800)}
.insp-hist{margin-bottom:10px}
.insp-hist__k{font-size:10px;font-weight:600;text-transform:uppercase;color:var(--text-600);margin-bottom:4px}
.insp-hist__line{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}
.insp-hist__pt{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:1px;padding:4px 8px;border-radius:var(--r);background:var(--light-grey);min-width:64px}
.insp-hist__pt.is-cur{background:var(--primary-50);outline:1px solid var(--primary-200)}
.insp-hist__pt .d{font-size:9px;color:var(--text-600)}
.insp-hist__pt .v{font-size:12px;font-weight:500;white-space:nowrap}
.insp-mat{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--border-soft)}
.insp-mat:last-child{border-bottom:none}
.insp-mat__note{display:inline-block;font-size:10px;font-weight:500;color:var(--warning);background:var(--status-cancel-bg);padding:1px 6px;border-radius:var(--r-sm);margin-bottom:2px}
.insp-mat__body .t{font-size:12px;font-weight:500}
.insp-mat__body .s{font-size:10px;font-weight:500;color:var(--text-700)}
.insp-mat__num{text-align:right;flex:0 0 auto}
.insp-mat__num .t{font-size:12px;font-weight:500}
.insp-mat__num .s{font-size:10px;color:var(--text-600)}
.insp-eco{position:relative;margin-bottom:12px}
.insp-eco .preview-info-card .v{font-size:14px}
.insp-eco__sign{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:24px;height:24px;border-radius:50%;background:#fff;border:1px solid var(--border-soft);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--text-700)}
.insp-bill{padding:8px 0 4px;border-top:1px solid var(--border-soft)}
.insp-bill__t{font-size:10px;font-weight:600;text-transform:uppercase;color:var(--text-600);margin-bottom:2px}
.insp-bill.is-loss .insp-bill__t{color:var(--error)}
.insp-bill .preview-kv{margin:6px 0}
.insp-bill__total{display:flex;justify-content:space-between;font-size:12px;padding-top:6px;border-top:1px dashed var(--border-dashed)}
.insp-rec-note{display:flex;gap:8px;align-items:flex-start;font-size:12px;line-height:1.5;margin-bottom:8px}
.insp-rec-note .ao-avatar{font-size:9px;flex:0 0 auto;margin-top:2px}
.preview-kv .v .link{color:var(--primary);cursor:pointer;font-weight:500}
.preview-photos .ph{display:flex;overflow:hidden;background:var(--panel-grey)}
.preview-photos .ph img{width:100%;height:100%;object-fit:cover;display:block}

/* ---------- карта ---------- */
.insp-pt{width:16px;height:16px;border-radius:50%;background:var(--c,#B6BBC2);border:2.5px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.35);cursor:pointer;transition:transform .15s ease}
.insp-pt.is-borrowed{background:#fff;border:2.5px dashed var(--c,#576674)}
.insp-pt:hover,.insp-pt.is-hl{transform:scale(1.45);z-index:5;box-shadow:0 0 0 4px rgba(63,115,171,.35),0 1px 4px rgba(0,0,0,.35)}
.insp-cluster{min-width:30px;height:30px;padding:0 6px;border-radius:15px;background:var(--primary);color:#fff;border:2.5px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;cursor:pointer}
.insp-cluster:hover{background:var(--primary-dark)}
.insp-dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--c,#B6BBC2);border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.1)}
.insp-dot.is-borrowed{background:#fff;border:2px dashed var(--c,#576674)}
.insp-swatch{display:inline-block;width:12px;height:12px;border-radius:2px;background:#c2c5cc;opacity:.6}
.map-list-item.is-off{opacity:.55}
.map-list-item.is-off .row-agg{color:var(--warning)}
.insp-ind{margin:-4px 0 8px;padding:8px;border-radius:var(--r);background:var(--light-grey)}
.insp-ind__t{font-size:10px;font-weight:600;text-transform:uppercase;color:var(--text-700);margin-bottom:4px}
.insp-ind__t .text-600{text-transform:none;font-weight:400}
.insp-ind__row{display:flex;justify-content:space-between;align-items:center;width:100%;padding:4px 6px;border-radius:var(--r);font-size:11px;font-weight:500;text-align:left;color:var(--text-body)}
.insp-ind__row:hover{background:#fff}
.insp-ind__row.is-on{background:var(--primary);color:#fff}
.insp-ind__row b{font-weight:600}
.insp-period-menu{top:28px;left:0;right:auto;width:220px;max-height:300px;overflow:auto;z-index:20}
.insp-period-menu .pm-title{margin-bottom:8px;line-height:1.35}
.insp-period-menu .pm-item.is-active{background:var(--primary);color:#fff}
.insp-legend-note{display:flex;align-items:center;gap:6px;margin-top:10px;padding-top:8px;border-top:1px solid var(--border-soft);font-size:10px;color:var(--text-600)}
.insp-map-bottom{left:60px;right:16px;bottom:16px;gap:12px;padding:8px 16px;z-index:5}
.insp-lost{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:var(--r);background:var(--status-cancel-bg);color:#8a6a10;font-size:11px;font-weight:500}
.insp-lost .ao-icon{font-size:13px}
.insp-lost.is-ok{background:var(--status-done-bg);color:var(--status-done-fg)}
.map-list-item .row-pict .insp-dot{margin:0 auto}

/* ---------- дашборд ---------- */
.insp-kpis{grid-column:span 12;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.insp-kpi.is-money .dash-kpi{font-size:22px;line-height:32px}
.insp-bd{display:flex;gap:16px;align-items:flex-start}
.insp-bd__chart{width:44%;min-width:200px;height:220px;flex:0 0 auto}
.insp-bd__table{flex:1;min-width:0}
.insp-bd-table{margin:0 -16px;width:calc(100% + 32px);font-size:12px}
.insp-bd-table th{height:32px;font-size:11px}
.insp-bd-table td{height:32px}
.insp-bd-table tfoot td{position:static}
.insp-bar{display:inline-flex;align-items:center;gap:8px;width:100%}
.insp-bar i{display:block;height:8px;border-radius:4px;background:var(--primary);min-width:3px;flex:0 0 auto;max-width:calc(100% - 44px)}
.insp-bar span{font-size:11px;color:var(--text-700);white-space:nowrap}
.insp-dash .dash-card .ao-p4-regular{margin-top:auto}

/* ---------- паспорт ---------- */
.insp-pass__grid{display:grid;grid-template-columns:320px minmax(0,1fr);gap:12px;align-items:start;padding:4px 0 16px}
@media (max-width:1180px){.insp-pass__grid{grid-template-columns:1fr}}
.insp-pass__side{position:sticky;top:0;overflow:hidden}
.insp-pass__head{padding:16px}
.insp-pass__head .ao-h1{margin:4px 0 2px}
.insp-pass__similar{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-soft)}
.insp-pass__similar .ao-c2{margin-bottom:8px}
.insp-pass__map{height:220px;background:#fff;border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft)}
.insp-pass__map.is-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:var(--light-grey);height:140px}
.insp-pass__map.is-empty .ao-icon{font-size:24px;color:var(--icon-600);margin-bottom:4px}
.insp-pass__foot{padding:14px 16px}
.insp-pass__main{display:flex;flex-direction:column;gap:12px;min-width:0}
.insp-pass-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.insp-pass-kpis.is-empty{grid-template-columns:1fr}
.insp-pass-kpi{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:42px}
.insp-pass-kpi .dash-kpi{font-size:28px}
.insp-pass-w .dw-body{padding:16px}
.insp-pass-w .dw-head{padding:12px 16px 0}
.insp-pass-risk{padding:16px 0;border-top:1px solid var(--border-soft)}
.insp-pass-risk:first-child{border-top:none;padding-top:0}
.insp-pass-risk:last-child{padding-bottom:0}
.insp-pass-risk__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.insp-pass-secs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}
.insp-pass-sec{margin:0;padding:10px 12px}
.insp-pass-sec__t{margin-bottom:4px;color:var(--text-700)}
.insp-pass-sec .preview-kv{margin:5px 0}
.insp-pass-sec .preview-chips{margin-bottom:0}
.insp-pass-comment{margin-top:12px;padding-left:12px;border-left:2px solid var(--primary)}
.insp-pass-comment .ao-c2{color:var(--text-600);margin-bottom:2px}
.insp-pass-photos{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.insp-pass-photos .ph{position:relative;width:120px;height:90px;border-radius:var(--r);overflow:hidden;background:var(--panel-grey);display:block}
.insp-pass-photos .ph img{width:100%;height:100%;object-fit:cover;display:block}
.insp-pass-photos.is-big .ph{width:200px;height:150px}
.insp-pass-photos .ph .cap{position:absolute;left:0;right:0;bottom:0;padding:4px 8px;font-size:10px;color:#fff;background:linear-gradient(transparent,rgba(13,23,34,.75))}
.insp-pass-measures{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:8px}
.insp-pass-measure{margin:0}
.insp-pass-rec{margin-bottom:8px;border:1px solid var(--border-soft);border-radius:var(--r);overflow:hidden}
.insp-pass-rec__head{margin:0;padding:12px 16px;align-items:flex-start;background:var(--surface)}
.insp-pass-rec__head:hover:not(:disabled){background:var(--light-grey)}
.insp-pass-rec__head:disabled{cursor:default}
.insp-pass-rec__title{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px;text-align:left}
.insp-pass-rec__eco{display:flex;align-items:center;justify-content:space-between;gap:16px;position:relative}
.insp-pass-rec__eco .insp-eco__sign{position:static;transform:none;flex:0 0 auto}
.insp-pass-rec .mc-collapse-head .chev{margin-top:4px}
.insp-pass-rec__body{padding:0 16px 16px}
.insp-pass-rec.is-open .insp-pass-rec__body{display:block}
.insp-pass-bills{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;padding-top:12px;border-top:1px solid var(--border-soft)}
.insp-bill-table th{padding:6px 8px;font-size:10px;text-transform:uppercase;color:var(--text-600)}
.insp-bill-table td{padding:8px}
.insp-bill-table tfoot td{background:var(--light-grey)}
.insp-bill-table.is-loss th{color:var(--error)}
.insp-pass-rec__foot{display:flex;align-items:center;gap:8px;padding:10px 16px;border-top:1px solid var(--border-soft);background:var(--light-grey)}
.insp-pass-rec__foot .ao-avatar{font-size:9px}
.insp-pass .mc-empty{padding:16px}
.insp-pass .mc-empty > .ao-icon{font-size:36px;margin-bottom:12px}
.insp-pass .kv-list .kv-row .k{width:40%}
.insp-pass .insp-comment{margin-bottom:8px}
