/* ===== Анализ РЭР — дерево подразделений/позывных + вложения =====
   Отдельный файл, чтобы не раздувать panel.html. Пользуется теми же
   токенами оформления (:root в panel.html): --bg/--panel/--line/--sky/--txt. */

#rer-root{height:100%; display:flex; flex-direction:column; min-height:0}
#rer-modes{flex:0 0 auto; display:flex; gap:6px; padding:10px 14px 0}
.rer-mode{
  font:inherit; cursor:pointer; color:var(--txt-3); background:transparent;
  border:1px solid var(--line); border-bottom:none; border-radius:9px 9px 0 0;
  padding:8px 18px; letter-spacing:.06em; transition:.15s var(--ease);
}
.rer-mode:hover{color:var(--txt-2)}
.rer-mode.sel{color:var(--txt); background:var(--panel); border-color:var(--edge)}
#rer-view-tree,#rer-view-map{flex:1; min-height:0}
#rer-lmap{height:100%; width:100%; border-radius:0 var(--radius) var(--radius) var(--radius);
  overflow:hidden; border:1px solid var(--line); margin:0 14px 14px}
#rer-wrap{
  display:grid; grid-template-columns:minmax(280px,340px) 1fr;
  gap:14px; height:100%; min-height:0; padding:12px 14px 14px;
}
@media (max-width:860px){ #rer-wrap{grid-template-columns:1fr; overflow:auto} }

/* ── общий вид панелей ── */
.rer-pane{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  display:flex; flex-direction:column; min-height:0; overflow:hidden;
  backdrop-filter:blur(6px);
}
.rer-pane-head{
  display:flex; align-items:center; gap:8px; padding:10px 12px;
  border-bottom:1px solid var(--line); flex:0 0 auto;
}
.rer-pane-head .t{font-weight:700; letter-spacing:.1em; color:var(--txt); font-size:12px}
.rer-pane-head .m{color:var(--txt-3); font-size:11px}
.rer-pane-head .sp{flex:1}

/* ── кнопки ── */
.rer-btn{
  font:inherit; cursor:pointer; color:var(--txt-2);
  background:var(--glass); border:1px solid var(--line); border-radius:8px;
  padding:6px 10px; letter-spacing:.04em; transition:.15s var(--ease);
  white-space:nowrap;
}
.rer-btn:hover{color:var(--txt); border-color:var(--edge); background:rgba(58,160,255,.10)}
.rer-btn.primary{color:#04101f; background:var(--sky); border-color:var(--sky)}
.rer-btn.primary:hover{background:var(--sky-2)}
.rer-btn.danger:hover{color:#fff; border-color:var(--red); background:rgba(255,68,56,.16)}
.rer-btn.mini{padding:3px 7px; font-size:11px; border-radius:6px}
.rer-btn.icon{padding:4px 7px; line-height:1}

/* ── дерево ── */
#rer-tree{overflow:auto; padding:6px; flex:1; min-height:0}
.rer-ul{list-style:none; margin:0; padding:0}
.rer-ul .rer-ul{margin-left:14px; border-left:1px dashed var(--line); padding-left:2px}
.rer-li{margin:1px 0}
.rer-row{
  display:flex; align-items:center; gap:6px; padding:5px 6px; border-radius:7px;
  cursor:pointer; user-select:none; transition:background .12s var(--ease);
  border:1px solid transparent;
}
.rer-row:hover{background:rgba(120,170,230,.07)}
.rer-row.sel{background:rgba(58,160,255,.14); border-color:var(--edge)}
.rer-row.drop-into{background:rgba(58,160,255,.22); border-color:var(--sky)}
.rer-caret{
  flex:0 0 14px; width:14px; text-align:center; color:var(--txt-3);
  transition:transform .15s var(--ease); font-size:10px;
}
.rer-caret.open{transform:rotate(90deg)}
.rer-caret.leaf{visibility:hidden}
#rer-tree .rer-dot,.rer-tree .rer-dot{flex:0 0 auto; width:9px; height:9px; border-radius:50%;
  background:var(--sky); box-shadow:0 0 6px rgba(58,160,255,.5)}
.rer-title{flex:1; color:var(--txt); overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.rer-kind{color:var(--txt-3); font-size:10px; letter-spacing:.06em; text-transform:uppercase}
.rer-count{color:var(--ph-deep); font-size:10px}
.rer-row .rer-rowbtns{display:none; gap:2px}
.rer-row:hover .rer-rowbtns,.rer-row.sel .rer-rowbtns{display:flex}
.rer-rowbtns .rer-btn{padding:2px 6px; font-size:11px; color:var(--txt-3)}

/* ── карточка узла ── */
#rer-detail{flex:1; min-height:0}
#rer-detail .rer-empty{display:flex; align-items:center; justify-content:center;
  height:100%; color:var(--txt-3); text-align:center; padding:20px}
.rer-body{overflow:auto; padding:14px 16px; flex:1; min-height:0}
.rer-crumbs{color:var(--txt-3); font-size:11px; margin-bottom:8px; letter-spacing:.04em}
.rer-crumbs b{color:var(--ph-dim); font-weight:400}
.rer-h{display:flex; align-items:center; gap:10px; margin-bottom:6px}
#rer-title-in{
  flex:1; font:600 18px/1.3 var(--serif); color:var(--txt);
  background:transparent; border:none; border-bottom:1px solid transparent; padding:2px 0;
}
#rer-title-in:focus{outline:none; border-bottom-color:var(--edge)}
.rer-kind-in{
  font:inherit; color:var(--txt-2); background:var(--glass);
  border:1px solid var(--line); border-radius:7px; padding:4px 8px; max-width:180px;
}
.rer-note{
  width:100%; min-height:64px; resize:vertical; margin:8px 0 14px;
  background:var(--bg-1); color:var(--txt); border:1px solid var(--line);
  border-radius:8px; padding:9px 11px; font:inherit; line-height:1.5;
}
.rer-note:focus{outline:none; border-color:var(--edge)}

/* ── секции вложений ── */
.rer-sec{margin:14px 0}
.rer-sec-head{display:flex; align-items:center; gap:8px; margin-bottom:8px;
  padding-bottom:5px; border-bottom:1px solid var(--line)}
.rer-sec-head .t{font-weight:700; letter-spacing:.08em; font-size:11px; color:var(--ph-dim); text-transform:uppercase}
.rer-sec-head .sp{flex:1}

.rer-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:8px}
.rer-photo{
  position:relative; aspect-ratio:1; border-radius:8px; overflow:hidden;
  border:1px solid var(--line); background:var(--bg-1); cursor:pointer;
}
.rer-photo img{width:100%; height:100%; object-fit:cover; display:block}
.rer-photo .x{position:absolute; top:3px; right:3px; opacity:0; transition:.15s}
.rer-photo:hover .x{opacity:1}

.rer-vids{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:10px}
.rer-vid{border:1px solid var(--line); border-radius:8px; overflow:hidden; background:#000}
.rer-vid video{width:100%; display:block; max-height:200px; background:#000}
.rer-vid .cap{display:flex; align-items:center; gap:6px; padding:5px 8px; background:var(--bg-1)}
.rer-vid .cap .nm{flex:1; color:var(--txt-2); font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}

.rer-files{display:flex; flex-direction:column; gap:5px}
.rer-file{
  display:flex; align-items:center; gap:9px; padding:7px 10px;
  background:var(--bg-1); border:1px solid var(--line); border-radius:8px;
}
.rer-file .fi{flex:0 0 auto; color:var(--sky)}
.rer-file .nm{flex:1; color:var(--txt); overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.rer-file .nm a{color:var(--txt); text-decoration:none}
.rer-file .nm a:hover{color:var(--sky)}
.rer-file .sz{color:var(--txt-3); font-size:11px}

.rer-points{display:flex; flex-direction:column; gap:5px}
.rer-point{display:flex; align-items:center; gap:9px; padding:7px 10px;
  background:var(--bg-1); border:1px solid var(--line); border-radius:8px}
.rer-point .pin{flex:0 0 auto; width:10px; height:10px; border-radius:50%; background:var(--amber)}
.rer-point .nm{flex:1; color:var(--txt)}
.rer-point .co{color:var(--ice); font-size:11px; font-variant-numeric:tabular-nums}

.rer-drop{
  border:1px dashed var(--rule); border-radius:8px; padding:10px; text-align:center;
  color:var(--txt-3); font-size:11px; transition:.15s;
}
.rer-drop.hot{border-color:var(--sky); color:var(--sky); background:rgba(58,160,255,.08)}
.rer-muted{color:var(--txt-3); font-size:12px; padding:4px 0}

/* ── тосты ── */
#rer-toast{
  position:fixed; left:50%; bottom:22px; transform:translateX(-50%) translateY(20px);
  background:var(--bg-2); border:1px solid var(--edge); border-radius:9px;
  padding:9px 16px; color:var(--txt); z-index:120; opacity:0; pointer-events:none;
  transition:.2s var(--ease); max-width:80vw;
}
#rer-toast.show{opacity:1; transform:translateX(-50%) translateY(0)}
#rer-toast.err{border-color:var(--red); color:#ffd9d5}

/* лайтбокс переиспользуем минимальный собственный */
#rer-lb{position:fixed; inset:0; background:rgba(2,5,12,.92); z-index:130;
  display:none; align-items:center; justify-content:center; padding:24px; cursor:zoom-out}
#rer-lb.show{display:flex}
#rer-lb img{max-width:96vw; max-height:92vh; border-radius:8px; box-shadow:0 12px 60px rgba(0,0,0,.6)}

/* ── модалка ввода (маленькое окошко вместо системного prompt) ── */
#rer-modal{position:fixed; inset:0; z-index:140; display:none;
  align-items:center; justify-content:center; padding:20px;
  background:rgba(2,5,12,.66); backdrop-filter:blur(2px)}
#rer-modal.show{display:flex}
.rer-modal-box{width:min(420px,92vw); background:var(--bg-2);
  border:1px solid var(--edge); border-radius:12px; padding:16px 18px;
  box-shadow:0 20px 70px rgba(0,0,0,.6)}
.rer-modal-title{font:600 15px/1.3 var(--serif); color:var(--txt); margin-bottom:4px}
.rer-modal-label{color:var(--txt-3); font-size:12px; margin-bottom:8px}
.rer-modal-in{width:100%; background:var(--bg-1); color:var(--txt);
  border:1px solid var(--line); border-radius:8px; padding:9px 11px; font:inherit}
.rer-modal-in:focus{outline:none; border-color:var(--edge)}
textarea.rer-modal-in{min-height:70px; resize:vertical; line-height:1.5}
.rer-modal-btns{display:flex; justify-content:flex-end; gap:8px; margin-top:14px}

/* ── окошко ПРЯМО НА КАРТЕ (как в AlpineQuest) ── */
.leaflet-popup.rer-pop .leaflet-popup-content-wrapper{
  background:var(--bg-2); color:var(--txt); border:1px solid var(--edge);
  border-radius:10px; box-shadow:0 10px 40px rgba(0,0,0,.55)}
.leaflet-popup.rer-pop .leaflet-popup-content{margin:11px 13px; font:13px/1.4 var(--mono)}
.leaflet-popup.rer-pop .leaflet-popup-tip{background:var(--bg-2); border:1px solid var(--edge)}
.rer-mappop-t{font-weight:700; letter-spacing:.05em; color:var(--txt); margin-bottom:7px; font-size:12px}
.rer-mappop-in{width:100%; background:var(--bg-1); color:var(--txt);
  border:1px solid var(--line); border-radius:7px; padding:7px 9px; font:inherit; margin-bottom:8px}
.rer-mappop-in:focus{outline:none; border-color:var(--edge)}
.rer-mappop-co{color:var(--ice); font-size:11px; margin-bottom:8px; font-variant-numeric:tabular-nums}
.rer-mappop-btns{display:flex; justify-content:flex-end; gap:7px}
.rer-mappop-icons{display:flex; gap:4px; flex-wrap:wrap; margin-bottom:9px}
.rer-mappop-icons .ic{width:26px; height:26px; display:flex; align-items:center; justify-content:center;
  border:1px solid var(--line); border-radius:6px; cursor:pointer; color:var(--txt-2); background:var(--glass)}
.rer-mappop-icons .ic svg{width:16px; height:16px}
.rer-mappop-icons .ic.sel{border-color:var(--sky); color:var(--sky); background:rgba(58,160,255,.14)}
.rer-mappop-icons .ic.none{font-size:11px; color:var(--txt-3)}

/* значок-пин на карте РЭР */
.rer-mpin svg{width:22px; height:22px; filter:drop-shadow(0 1px 2px rgba(0,0,0,.7))}

/* ── вкладка РЭР во весь экран (как «Паспорта»): иначе карта (height:100%)
      схлопывается в 0, а футер лезет вверх ── */
html[data-tab="rer"] #sitrep,
html[data-tab="rer"] .statusband,
html[data-tab="rer"] #app > main > footer,
html[data-tab="rer"] footer{display:none!important}
html[data-tab="rer"] #tabhost{padding-top:8px; padding-bottom:0; max-width:none}
html[data-tab="rer"] #tab-rer{height:100%}
html[data-tab="rer"] #tab-rer #rer-root{height:calc(100vh - 84px); min-height:520px}

/* подпись под значком точки на карте (постоянная, как в AlpineQuest) */
.leaflet-tooltip.rer-maplabel{
  background:transparent; border:none; box-shadow:none; padding:0; margin-top:3px;
  color:#eaf6ff; font:600 12px/1.15 var(--mono); letter-spacing:.03em;
  text-shadow:0 1px 3px #000, 0 0 5px rgba(0,0,0,.9); white-space:nowrap;
}
.leaflet-tooltip.rer-maplabel::before{display:none}

/* выбор цвета точки в окошке карты */
.rer-mappop-colors{display:flex; gap:6px; margin-bottom:9px}
.rer-mappop-colors .sw{width:20px; height:20px; border-radius:50%; cursor:pointer;
  border:2px solid var(--line); display:flex; align-items:center; justify-content:center;
  color:var(--txt-3); font-size:11px; background:var(--glass)}
.rer-mappop-colors .sw.sel{border-color:#fff; box-shadow:0 0 0 2px var(--sky)}

/* кнопка «показать все объекты» */
.rer-fit a{font-size:16px; font-weight:700; line-height:26px}

/* координаты СК-42 + широта/долгота (в окошках и списках точек) */
.rer-mappop-co .co-sk,.rer-point .co .co-sk{display:block; color:var(--ice); font-variant-numeric:tabular-nums}
.rer-mappop-co .co-wgs,.rer-point .co .co-wgs{display:block; color:var(--txt-3); font-size:10px; margin-top:1px}

/* ── импорт/слои/маршруты (22.09.2026) ─────────────────────────── */
#rer-view-map{position:relative}
.rer-tools a{font-size:15px; font-weight:700; line-height:26px}
.rer-tools a.on{color:var(--sky); background:rgba(58,160,255,.18)}
.rer-dot i{display:block; box-sizing:border-box; width:14px; height:14px; margin:1px; border-radius:50%; border:2px solid #fff; box-shadow:0 1px 3px rgba(0,0,0,.7); cursor:grab}
.rer-mpin{cursor:grab}
.leaflet-container.rer-picking .rer-mpin,.leaflet-container.rer-picking .rer-dot i{cursor:crosshair}
.leaflet-container.rer-picking{cursor:crosshair}
.rer-layers{position:absolute; right:10px; top:52px; z-index:900; width:min(320px,calc(100% - 20px)); max-height:60%; overflow:auto;
  background:var(--bg-2); border:1px solid var(--edge); border-radius:8px; padding:8px 10px; font:12px/1.4 var(--mono); color:var(--txt);
  box-shadow:0 8px 24px rgba(0,0,0,.45)}
.rer-layers .h{display:flex; align-items:center; gap:8px; font-weight:700; letter-spacing:.05em; margin-bottom:6px}
.rer-layers .h .sp{flex:1}
.rer-layers .h a{color:var(--txt-2); text-decoration:none; padding:2px 6px; border-radius:4px}
.rer-layers .h a:hover{color:var(--txt); background:var(--panel)}
.rer-layers .row{display:flex; align-items:center; gap:6px; padding:4px 0; border-top:1px solid var(--edge)}
.rer-layers .row label{flex:1; display:flex; align-items:center; gap:6px; min-width:0; cursor:pointer}
.rer-layers .row .nm{flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.rer-layers .row .n{color:var(--txt-3); font-size:11px}
.rer-layers .row a{color:var(--txt-3); text-decoration:none; padding:2px 4px; border-radius:4px}
.rer-layers .row a:hover{color:var(--txt); background:var(--panel)}
.rer-routebar{position:absolute; left:50%; bottom:18px; transform:translateX(-50%); z-index:900; display:flex; align-items:center; gap:10px;
  background:var(--bg-2); border:1px solid var(--edge); border-radius:8px; padding:8px 12px; font:12px/1.4 var(--mono); color:var(--txt);
  box-shadow:0 8px 24px rgba(0,0,0,.45); max-width:calc(100% - 20px)}
.rer-mappop-grp{font-weight:400; color:var(--txt-3); letter-spacing:0}
.rer-mappop-note{color:var(--txt-2); font-size:11px; margin:-4px 0 8px; max-height:80px; overflow:auto; white-space:pre-wrap}
.rer-layers[hidden],.rer-routebar[hidden]{display:none}

/* ── правки по ревью 22.09 ───────────────────────────────────────── */
#rer-toast{z-index:1200; bottom:72px; pointer-events:auto; display:flex; align-items:center; gap:12px}   /* выше leaflet (1000) и над баром маршрута */
.rer-toast-act{background:none; border:1px solid var(--edge); color:var(--sky); border-radius:6px; padding:3px 9px; font:12px var(--mono); cursor:pointer}
.rer-toast-act:hover{background:var(--panel)}
.rer-tools{display:flex; flex-wrap:wrap; max-width:calc(100vw - 120px)}
.leaflet-bar.rer-tools a,.leaflet-touch .leaflet-bar.rer-tools a{width:auto; padding:0 9px; font-size:12px; font-weight:600; letter-spacing:.02em; white-space:nowrap; line-height:30px; height:30px}
.leaflet-bar.rer-tools a{border-bottom:none; border-right:1px solid var(--edge)}
.leaflet-bar.rer-tools a:last-child{border-right:none}
.leaflet-container.rer-dragoff .rer-mpin,.leaflet-container.rer-dragoff .rer-dot i{cursor:pointer}
.rer-nolabels .leaflet-tooltip.rer-maplabel:not(.rer-hover){display:none}
.leaflet-tooltip.rer-maplabel.rer-hover{opacity:.96}
.rer-maphint{position:absolute; left:50%; top:46%; transform:translate(-50%,-50%); z-index:850; pointer-events:none; text-align:center;
  background:rgba(6,12,22,.86); border:1px solid var(--edge); border-radius:10px; padding:14px 18px; color:var(--txt-2); font:12px/1.6 var(--mono); max-width:min(520px,calc(100% - 40px))}
.rer-maphint b{display:block; color:var(--txt); letter-spacing:.06em; margin-bottom:4px}
.rer-maphint span{display:block}
.rer-maphint[hidden]{display:none}
.rer-layers .row a{font-size:14px; padding:6px 7px; min-width:30px; text-align:center}
.rer-layers .row a.on{color:var(--sky); background:rgba(58,160,255,.14)}
.rer-layers .row label{min-height:32px}
.rer-layers .row input{width:16px; height:16px}
#rer-view-map .leaflet-control-layers{background:rgba(6,12,22,.94); border:1px solid var(--edge); color:var(--txt-2); border-radius:3px; box-shadow:0 6px 24px rgba(0,0,0,.5)}
#rer-view-map .leaflet-control-layers-toggle{background:rgba(6,12,22,.94) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a9c6e6' stroke-width='2'><path d='M12 3 2 8l10 5 10-5-10-5z'/><path d='m2 13 10 5 10-5'/></svg>") center/20px no-repeat; width:30px; height:30px}
#rer-view-map .leaflet-control-layers-expanded{padding:8px 10px; color:var(--txt-2)}
#rer-view-map .leaflet-control-layers label{display:block; margin:3px 0; font:11px var(--mono); cursor:pointer}

/* === layers === (rer-layers.js: панель-дерево слоёв, импорт) ─────────────── */
#rer-layers.rl{position:absolute; top:10px; right:10px; bottom:10px; z-index:950; width:var(--rl-w,348px); max-width:calc(100% - 20px); max-height:none;
  display:flex; flex-direction:column; padding:0; overflow:visible; color:var(--txt); font:12.5px/1.35 var(--mono); letter-spacing:.02em;
  background:linear-gradient(180deg,rgba(13,23,41,.9),rgba(7,12,22,.92)); border:1px solid var(--rule); border-radius:var(--radius);
  box-shadow:0 18px 50px rgba(0,0,0,.55),inset 0 1px 0 rgba(160,210,255,.07); -webkit-backdrop-filter:blur(14px) saturate(140%); backdrop-filter:blur(14px) saturate(140%);
  transition:width .22s var(--ease),opacity .2s}
#rer-layers.rl[hidden]{display:none}
.rl .rl-i{width:18px; height:18px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round}
.rl button{font:inherit; color:inherit; background:none; border:0; cursor:pointer; -webkit-tap-highlight-color:transparent}
.rl .rl-body{display:flex; flex-direction:column; min-height:0; flex:1; border-radius:inherit}
.rl .rl-pill{display:none}
#rer-layers.rl.min{bottom:auto; top:52px; width:auto; background:none; border:0; box-shadow:none; -webkit-backdrop-filter:none; backdrop-filter:none}
.rl.min .rl-body{display:none}
.rl.min .rl-pill{display:flex; align-items:center; gap:8px; height:40px; padding:0 14px 0 12px; border-radius:999px; color:var(--txt);
  background:linear-gradient(180deg,rgba(13,23,41,.92),rgba(7,12,22,.94)); border:1px solid var(--rule); box-shadow:0 10px 30px rgba(0,0,0,.5);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); font-weight:700; letter-spacing:.12em; text-transform:uppercase; font-size:11px}
.rl.min .rl-pill:hover{border-color:var(--edge); color:#fff}
.rl .rl-pill .rl-i{color:var(--sky-2)}
.rl .rl-pn{font-weight:400; color:var(--txt-3); letter-spacing:0}
/* шапка */
.rl .rl-head{display:flex; align-items:center; gap:6px; padding:10px 8px 8px 14px}
.rl .rl-hi{color:var(--sky-2); display:flex}
.rl .rl-ht{font-weight:700; letter-spacing:.16em; text-transform:uppercase; font-size:11.5px}
.rl .rl-count{color:var(--txt-3); font-size:10.5px; padding:2px 7px; border:1px solid var(--line); border-radius:999px}
.rl .rl-sp{flex:1}
.rl .rl-hb{width:36px; height:36px; display:grid; place-items:center; border-radius:10px; color:var(--txt-2); transition:background .15s,color .15s}
.rl .rl-hb:hover{background:rgba(111,192,255,.1); color:#fff}
.rl .rl-hb:active{transform:scale(.94)}
/* поиск */
.rl .rl-q{display:flex; align-items:center; gap:8px; margin:0 10px 8px; padding:0 6px 0 11px; height:38px; border-radius:10px;
  background:rgba(120,170,230,.06); border:1px solid var(--line); color:var(--txt-3); transition:border-color .15s,box-shadow .15s}
.rl .rl-q:focus-within{border-color:var(--edge); box-shadow:0 0 0 3px rgba(58,160,255,.14); color:var(--sky-2)}
.rl .rl-q .rl-i{width:16px; height:16px}
.rl .rl-q input{flex:1; min-width:0; background:none; border:0; outline:none; color:var(--txt); font:12.5px var(--mono); letter-spacing:.02em}
.rl .rl-q input::placeholder{color:var(--txt-3)}
.rl .rl-q input::-webkit-search-cancel-button{display:none}
.rl .rl-q-x{width:28px; height:28px; display:grid; place-items:center; border-radius:7px; color:var(--txt-3)}
.rl .rl-q-x:hover{color:var(--txt); background:rgba(255,255,255,.06)}
.rl .rl-q-x[hidden]{display:none}
/* чипы типов */
.rl .rl-chips{display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin:0 10px 6px}
.rl .rl-chip{display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto auto; align-items:center; column-gap:6px; row-gap:1px;
  padding:7px 8px 6px; min-height:46px; border-radius:10px; text-align:left; border:1px solid rgba(58,160,255,.32);
  background:linear-gradient(180deg,rgba(58,160,255,.16),rgba(58,160,255,.07)); color:var(--txt); transition:all .18s var(--ease)}
.rl .rl-chip .rl-i{width:17px; height:17px; color:var(--sky-2); grid-row:1}
.rl .rl-chip b{font-weight:400; font-size:10.5px; color:var(--txt-2); justify-self:end}
.rl .rl-chip span{grid-column:1 / -1; font-size:10.5px; letter-spacing:.03em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.rl .rl-chip:hover{border-color:var(--edge)}
.rl .rl-chip.off{background:rgba(120,170,230,.03); border-color:var(--line); color:var(--txt-3)}
.rl .rl-chip.off .rl-i{color:var(--txt-3)}
.rl .rl-chip.off span{text-decoration:line-through; text-decoration-color:rgba(255,68,56,.7)}
.rl .rl-chip.zero:not(.off){opacity:.55}
.rl .rl-chip:active{transform:scale(.96)}
.rl .rl-bulk{display:flex; gap:4px; margin:0 10px 6px}
.rl .rl-bulk button{display:flex; align-items:center; gap:6px; height:32px; padding:0 10px; border-radius:8px; color:var(--txt-2); font-size:11px}
.rl .rl-bulk button .rl-i{width:15px; height:15px}
.rl .rl-bulk button:hover{background:rgba(111,192,255,.08); color:var(--txt)}
.rl .rl-bulk button:last-child{margin-left:auto; padding:0 8px}
/* дерево */
.rl .rl-tree{flex:1; min-height:60px; overflow:auto; padding:4px 6px 10px; border-top:1px solid var(--line); overscroll-behavior:contain;
  scrollbar-width:thin; scrollbar-color:rgba(120,170,230,.25) transparent}
.rl .rl-tree.drop-root{box-shadow:inset 0 0 0 1.5px rgba(58,160,255,.5); border-radius:0 0 10px 10px}
.rl .rl-row{position:relative; display:flex; align-items:center; gap:5px; min-height:38px; padding:0 4px 0 calc(var(--d,0) * 18px + 2px);
  border-radius:9px; cursor:pointer; user-select:none; -webkit-user-select:none; transition:background .12s}
.rl .rl-row:hover{background:rgba(111,192,255,.07)}
.rl .rl-row.act{background:linear-gradient(90deg,rgba(58,160,255,.2),rgba(58,160,255,.06)); box-shadow:inset 2px 0 0 var(--sky)}
.rl .rl-row.act .rl-nm{color:#fff}
.rl .rl-tw{width:22px; height:30px; display:grid; place-items:center; color:var(--txt-3); flex:0 0 auto; border-radius:6px}
.rl .rl-tw .rl-i{width:14px; height:14px; transition:transform .18s var(--ease)}
.rl .rl-tw.open .rl-i{transform:rotate(90deg)}
.rl .rl-tw.empty,.rl .rl-tw.sp{visibility:hidden}
.rl .rl-tw:hover{color:var(--txt)}
.rl .rl-cb{width:30px; height:30px; display:grid; place-items:center; flex:0 0 auto; position:relative}
.rl .rl-cb::before{content:""; position:absolute; width:18px; height:18px; border-radius:6px; border:1.5px solid rgba(140,200,255,.45); transition:all .15s}
.rl .rl-cb .rl-i{position:relative; width:13px; height:13px; stroke-width:3; color:#04101f; opacity:0; transform:scale(.6); transition:all .15s var(--ease)}
.rl .rl-cb[aria-checked=true]::before{background:var(--sky); border-color:var(--sky); box-shadow:0 0 10px rgba(58,160,255,.35)}
.rl .rl-cb[aria-checked=true] .rl-i,.rl .rl-cb[aria-checked=mixed] .rl-i{opacity:1; transform:none}
.rl .rl-cb[aria-checked=mixed]::before{background:rgba(58,160,255,.35); border-color:var(--sky)}
.rl .rl-cb[aria-checked=mixed] .rl-i{color:#fff}
.rl .rl-cb:hover::before{border-color:var(--sky-2)}
.rl .rl-cb.sm::before{width:15px; height:15px; border-radius:5px}
.rl .rl-cb.sm .rl-i{width:11px; height:11px}
.rl .rl-k{display:flex; color:var(--txt-2); flex:0 0 auto}
.rl .rl-k .rl-i{width:17px; height:17px}
.rl .k-units .rl-k{color:#7FD1FF}
.rl .k-under .rl-k{color:#D2A56A}
.rl .rl-k.col{color:var(--c)}
.rl .rl-k.col .rl-i{fill:color-mix(in srgb,var(--c) 22%,transparent)}
.rl .rl-nm{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--txt)}
.rl .rl-nm i{color:var(--txt-2)}
.rl .rl-nm mark{background:rgba(255,176,32,.28); color:#FFE3A8; border-radius:3px; padding:0 1px}
.rl .rl-badge{font-size:9px; letter-spacing:.12em; text-transform:uppercase; padding:2px 5px; border-radius:5px; flex:0 0 auto}
.rl .rl-badge.u{color:#9ED8FF; background:rgba(58,160,255,.14); border:1px solid rgba(58,160,255,.3)}
.rl .rl-badge.b{color:#E6BD84; background:rgba(210,165,106,.12); border:1px solid rgba(210,165,106,.3)}
.rl .rl-n{color:var(--txt-3); font-size:10.5px; min-width:22px; text-align:right; flex:0 0 auto}
.rl .rl-more{width:30px; height:30px; display:grid; place-items:center; border-radius:8px; color:var(--txt-3); opacity:0; flex:0 0 auto; transition:opacity .12s}
.rl .rl-row:hover .rl-more,.rl .rl-more:focus-visible{opacity:1}
.rl .rl-more:hover{background:rgba(111,192,255,.12); color:#fff}
.rl .rl-more.sm{width:26px; height:26px}
.rl .rl-row.off .rl-nm{color:var(--txt-3)}
.rl .rl-row.off .rl-k,.rl .rl-row.dim .rl-k{opacity:.45}
.rl .rl-row.dim .rl-nm,.rl .rl-row.dim .rl-n{opacity:.55}
.rl .rl-kids{position:relative}
.rl .rl-kids::before{content:""; position:absolute; left:calc(var(--d,0) * 18px + 13px); top:0; bottom:8px; width:1px; background:linear-gradient(180deg,rgba(120,170,230,.22),rgba(120,170,230,.05))}
/* объекты */
.rl .rl-o{min-height:32px}
.rl .rl-ti{display:flex; color:var(--c,#3AA0FF); flex:0 0 auto}
.rl .rl-ti .rl-i{width:15px; height:15px}
.rl .rl-o .rl-nm{color:var(--txt-2); font-size:12px}
.rl .rl-o:hover .rl-nm{color:var(--txt)}
.rl .rl-o.off .rl-nm,.rl .rl-o.toff .rl-nm{color:var(--txt-3)}
.rl .rl-o.off .rl-ti,.rl .rl-o.toff .rl-ti{opacity:.4}
.rl .rl-o.toff .rl-nm{text-decoration:line-through; text-decoration-color:rgba(255,68,56,.5)}
.rl .rl-meta{color:var(--txt-3); font-size:10px; flex:0 0 auto}
.rl .rl-morebtn{display:block; margin:2px 0 4px calc(var(--d,0) * 18px + 54px); padding:6px 10px; border-radius:7px; color:var(--sky-2); font-size:11px}
.rl .rl-morebtn:hover{background:rgba(111,192,255,.08)}
.rl .rl-empty{padding:26px 18px; color:var(--txt-3); text-align:center; font-size:12px; line-height:1.7}
.rl .rl-empty b{display:block; color:var(--txt-2); letter-spacing:.08em; margin-bottom:4px}
.rl .rl-empty .rl-i{width:15px; height:15px; vertical-align:-3px; color:var(--sky-2)}
/* перетаскивание */
.rl .rl-row.dragging{opacity:.4}
.rl.dnd .rl-row .rl-more{opacity:0}
.rl .rl-row.drop-in{background:rgba(58,160,255,.16); box-shadow:inset 0 0 0 1.5px var(--sky)}
.rl .rl-row.drop-before::after,.rl .rl-row.drop-after::after{content:""; position:absolute; left:calc(var(--d,0) * 18px + 28px); right:6px; height:2px; background:var(--sky); border-radius:2px; box-shadow:0 0 8px var(--sky)}
.rl .rl-row.drop-before::after{top:-1px}
.rl .rl-row.drop-after::after{bottom:-1px}
.rl .rl-row.flash{animation:rl-flash 1.1s var(--ease) 3}
@keyframes rl-flash{0%,100%{background:rgba(58,160,255,.06)}45%{background:rgba(58,160,255,.32); box-shadow:inset 0 0 0 1px var(--sky)}}
/* подвал */
.rl .rl-foot{display:flex; align-items:center; gap:7px; padding:9px 12px 10px 14px; border-top:1px solid var(--line); color:var(--txt-3); font-size:11px; min-width:0}
.rl .rl-foot b{color:var(--txt); font-weight:400; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; flex:1}
.rl .rl-dotact{width:7px; height:7px; border-radius:50%; background:var(--sky); box-shadow:0 0 8px var(--sky); flex:0 0 auto}
.rl .rl-link{color:var(--txt-3); font-size:10.5px; padding:4px 6px; border-radius:6px; text-decoration:underline dotted}
.rl .rl-link:hover{color:var(--txt)}
/* меню ⋯ */
.rl .rl-menu{position:absolute; z-index:5; width:284px; max-height:calc(100% - 16px); overflow:auto; padding:6px; border-radius:12px;
  background:#0B1424; border:1px solid var(--edge); box-shadow:0 20px 50px rgba(0,0,0,.6); animation:rl-pop .14s var(--ease)}
@keyframes rl-pop{from{opacity:0; transform:translateY(-4px) scale(.98)}}
.rl .rl-mh{display:flex; align-items:center; gap:8px; padding:6px 8px 8px; color:var(--txt-2); border-bottom:1px solid var(--line); margin-bottom:4px}
.rl .rl-mh b{color:var(--txt); overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.rl .rl-mi{display:flex; align-items:center; gap:10px; width:100%; min-height:38px; padding:0 10px; border-radius:8px; text-align:left; color:var(--txt)}
.rl .rl-mi .rl-i{color:var(--txt-2); width:17px; height:17px}
.rl .rl-mi:hover{background:rgba(111,192,255,.1)}
.rl .rl-mi.on{color:var(--sky-2)}
.rl .rl-mi.danger{color:#FF8A80}
.rl .rl-mi.danger .rl-i{color:#FF6B5E}
.rl .rl-mi.danger:hover{background:rgba(255,68,56,.12)}
.rl .rl-mrow{display:flex; gap:4px}
.rl .rl-mrow .rl-mi{flex:1}
.rl .rl-msec{padding:8px 10px 5px; font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--txt-3)}
.rl .rl-msep{height:1px; background:var(--line); margin:5px 4px}
.rl .rl-seg{display:grid; grid-template-columns:repeat(3,1fr); gap:4px; padding:0 4px}
.rl .rl-segb{display:flex; flex-direction:column; align-items:center; gap:3px; padding:8px 4px 7px; border-radius:9px; border:1px solid var(--line); color:var(--txt-2); text-align:center}
.rl .rl-segb span{font-size:10.5px; color:var(--txt)}
.rl .rl-segb em{font-style:normal; font-size:9px; color:var(--txt-3)}
.rl .rl-segb:hover{border-color:var(--edge)}
.rl .rl-segb.sel{border-color:var(--sky); background:rgba(58,160,255,.14); color:var(--sky-2)}
.rl .rl-sws{display:flex; flex-wrap:wrap; gap:7px; padding:2px 10px 6px}
.rl .rl-sw{width:24px; height:24px; border-radius:50%; background:var(--c); border:2px solid rgba(255,255,255,.15); position:relative; cursor:pointer; transition:transform .12s}
.rl .rl-sw:hover{transform:scale(1.12)}
.rl .rl-sw.sel{border-color:#fff; box-shadow:0 0 0 2px var(--sky)}
.rl .rl-sw.none{background:transparent; border:2px dashed rgba(140,200,255,.4)}
.rl .rl-sw.custom{background:conic-gradient(#FF4438,#FFB020,#22C55E,#3AA0FF,#8B7CFF,#EC4899,#FF4438); overflow:hidden}
.rl .rl-sw.custom input{position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; height:100%}
/* импорт: карточки прогресса */
.rl .rl-imps:empty{display:none}
.rl .rl-imps{padding:8px 10px 2px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:6px; max-height:40%; overflow:auto}
.rl-imp{padding:9px 10px 8px; border-radius:10px; background:rgba(58,160,255,.07); border:1px solid rgba(58,160,255,.22); transition:opacity .35s,transform .35s}
.rl-imp.ok{border-color:rgba(34,197,94,.4); background:rgba(34,197,94,.07)}
.rl-imp.err{border-color:rgba(255,68,56,.45); background:rgba(255,68,56,.07)}
.rl-imp.bye{opacity:0; transform:translateY(6px)}
.rl-imp-h{display:flex; align-items:center; gap:8px; color:var(--txt)}
.rl-imp-h .rl-i{width:15px; height:15px; color:var(--sky-2)}
.rl-imp-h .nm{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px}
.rl-imp-x{width:28px; height:28px; display:grid; place-items:center; border-radius:7px; color:var(--txt-3)}
.rl-imp-x:hover{color:#fff; background:rgba(255,68,56,.2)}
.rl-bar{height:6px; margin:7px 0 6px; border-radius:6px; background:rgba(120,170,230,.12); overflow:hidden; position:relative}
.rl-bar i{display:block; height:100%; width:0; border-radius:inherit; background:linear-gradient(90deg,var(--sky-deep),var(--sky),var(--sky-2)); box-shadow:0 0 10px rgba(58,160,255,.5); transition:width .25s linear}
.rl-bar.ind i{width:36% !important; animation:rl-ind 1.3s ease-in-out infinite}
@keyframes rl-ind{0%{transform:translateX(-110%)}100%{transform:translateX(290%)}}
.rl-imp[data-phase=parse] .rl-bar i{background:linear-gradient(90deg,#b77a10,var(--amber),#ffd27a); box-shadow:0 0 10px rgba(255,176,32,.45)}
.rl-imp.ok .rl-bar i{width:100% !important; animation:none; transform:none; background:#22C55E; box-shadow:none}
.rl-imp.err .rl-bar i{animation:none; transform:none; background:var(--red)}
.rl-imp.ok .rl-imp-s .st{color:#4ADE80}
.rl-imp.err .rl-imp-s .st{color:#FF8A80}
.rl-imp[data-phase=parse] .rl-bar.ind i{background:linear-gradient(90deg,rgba(255,176,32,0),var(--amber),rgba(255,176,32,0))}
.rl-imp-s{display:flex; justify-content:space-between; gap:8px; font-size:10.5px; color:var(--txt-2)}
.rl-imp-s .sz{color:var(--txt-3); white-space:nowrap}
/* диалог */
.rl-dlg{position:absolute; inset:0; z-index:1150; display:flex; align-items:center; justify-content:center; padding:16px;
  background:rgba(2,5,12,.5); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); opacity:0; transition:opacity .16s}
.rl-dlg.show{opacity:1}
.rl-dlg-box{width:min(440px,100%); max-height:calc(100% - 20px); overflow:auto; padding:18px 18px 14px; border-radius:14px; color:var(--txt); font:12.5px/1.45 var(--mono);
  background:linear-gradient(180deg,#0E1A2E,#0A1322); border:1px solid var(--edge); box-shadow:0 30px 80px rgba(0,0,0,.65); transform:translateY(8px) scale(.98); transition:transform .18s var(--ease)}
.rl-dlg.show .rl-dlg-box{transform:none}
.rl-dlg-t{font:600 15px/1.3 var(--serif); letter-spacing:.01em; margin-bottom:6px}
.rl-dlg-b{color:var(--txt-2); margin-bottom:10px}
.rl-dlg-btns{display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; margin-top:14px}
.rl-dlg-btns .rer-btn{min-height:38px}
.rl-dlg-btns .rer-btn.wide{flex:1 1 100%; display:block; white-space:normal; text-align:left; padding:10px 14px; line-height:1.4}
.rl-dlg-btns .rer-btn.danger{color:#FF8A80; border-color:rgba(255,68,56,.45)}
.rl-dlg-btns .rer-btn.ghost{background:none; border-color:transparent; color:var(--txt-3); justify-content:center; text-align:center}
.rl-dlg .rl-msec{padding:10px 0 5px; font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--txt-3)}
.rl-dlg .rl-i{width:16px; height:16px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round}
.rl-dlg .rl-q{display:flex; align-items:center; gap:8px; padding:0 10px; height:36px; border-radius:9px; background:rgba(120,170,230,.06); border:1px solid var(--line); color:var(--txt-3); margin:6px 0 8px}
.rl-dlg .rl-q input{flex:1; background:none; border:0; outline:none; color:var(--txt); font:12.5px var(--mono)}
.rl-pks{max-height:300px; overflow:auto; border:1px solid var(--line); border-radius:10px; padding:4px}
.rl-pk{display:flex; align-items:center; gap:8px; width:100%; min-height:36px; padding:0 10px 0 calc(var(--d,0) * 18px + 10px); border-radius:7px; background:none; border:0; color:var(--txt); font:12.5px var(--mono); text-align:left; cursor:pointer}
.rl-pk .rl-i{color:var(--txt-2)}
.rl-pk:hover{background:rgba(111,192,255,.08)}
.rl-pk.sel{background:rgba(58,160,255,.2); box-shadow:inset 2px 0 0 var(--sky)}
.rl-pk[hidden]{display:none}
.rl-if{display:flex; flex-direction:column; gap:4px; margin:4px 0 2px}
.rl-iff{display:flex; align-items:center; gap:8px; padding:7px 10px; border-radius:8px; background:rgba(120,170,230,.06); color:var(--txt)}
.rl-iff .rl-i{color:var(--sky-2)}
.rl-iff span{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.rl-iff b{font-weight:400; color:var(--txt-3); font-size:11px}
.rl-iff.more{color:var(--txt-3); background:none}
.rl-sel{width:100%; height:40px; padding:0 10px; border-radius:9px; background:#08111F; color:var(--txt); border:1px solid var(--line); font:12.5px var(--mono)}
.rl-sel:focus{outline:none; border-color:var(--edge)}
.rl-radio{display:flex; flex-direction:column; gap:2px; margin-top:8px}
.rl-radio label,.rl-chk{display:flex; align-items:flex-start; gap:9px; padding:7px 4px; cursor:pointer; color:var(--txt)}
.rl-radio label i{color:var(--txt-3); font-style:normal}
.rl-radio label.dis{opacity:.4; cursor:default}
.rl-radio input,.rl-chk input{accent-color:var(--sky); width:17px; height:17px; margin:0; flex:0 0 auto}
.rl-chk{color:#FFD58A}
.rl-chk[hidden]{display:none}
/* перетащили файл на карту */
.rl-dropov{position:absolute; inset:8px; z-index:1100; display:none; align-items:center; justify-content:center; pointer-events:none;
  border:2px dashed var(--sky); border-radius:var(--radius); background:rgba(4,12,26,.62); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px)}
.rl-dropov.show{display:flex; animation:rl-pop .15s var(--ease)}
.rl-dropov div{display:flex; flex-direction:column; align-items:center; gap:8px; padding:22px 28px; border-radius:14px; background:rgba(11,20,36,.9); border:1px solid var(--edge); color:var(--txt-2); font:12px var(--mono); text-align:center}
.rl-dropov b{color:#fff; font-size:14px; letter-spacing:.04em}
.rl-dropov svg{width:34px; height:34px; fill:none; stroke:var(--sky-2); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round}
/* «вот он» — пульс на карте при клике по объекту в списке */
.rl-pulse{pointer-events:none}
.rl-pulse i{position:absolute; inset:0; border-radius:50%; border:2.5px solid #6FC0FF; box-shadow:0 0 14px #3AA0FF; animation:rl-pulse 1.1s ease-out 2 both}
.rl-pulse i:last-child{animation-delay:.35s}
@keyframes rl-pulse{0%{transform:scale(.15); opacity:1}100%{transform:scale(1); opacity:0}}
/* контролы справа сверху не прячутся под панелью */
#rer-view-map .leaflet-top.leaflet-right,#rer-view-map .leaflet-bottom.leaflet-right{transition:right .22s var(--ease)}
#rer-view-map.rl-open .leaflet-top.leaflet-right,#rer-view-map.rl-open .leaflet-bottom.leaflet-right{right:calc(var(--rl-w,348px) + 12px)}
/* планшет: крупнее цели (≥40 px), «⋯» видно всегда */
@media (pointer:coarse){
  .rl .rl-row{min-height:50px}
  .rl .rl-o{min-height:44px}
  .rl .rl-more{opacity:.7; width:40px; height:40px}
  .rl .rl-cb{width:42px; height:42px}
  .rl .rl-tw{width:40px; height:42px}
  .rl .rl-mi{min-height:46px}
  .rl .rl-bulk button{height:40px; min-width:40px; justify-content:center}
  .rl .rl-hb{width:40px; height:40px}
}
/* узкий экран: панель — нижним листом */
@media (max-width:720px){
  #rer-layers.rl:not(.min){top:auto; left:10px; right:10px; width:auto; height:62%}
  #rer-view-map.rl-open .leaflet-top.leaflet-right,#rer-view-map.rl-open .leaflet-bottom.leaflet-right{right:0}
}

/* === draw === (rer-draw.js: тулбар инструментов, карточка стиля, режим «Только карта») ─── */
#rer-view-map{--rdw-in:14px; --rdw-glass:linear-gradient(180deg,rgba(14,25,44,.86),rgba(7,12,22,.9)); --rdw-bd:rgba(140,200,255,.2)}
.rdw-glass{background:var(--rdw-glass); border:1px solid var(--rdw-bd); border-radius:14px;
  box-shadow:0 16px 44px rgba(0,0,0,.5),inset 0 1px 0 rgba(170,215,255,.08);
  -webkit-backdrop-filter:blur(14px) saturate(150%); backdrop-filter:blur(14px) saturate(150%); color:var(--txt); font:12.5px/1.35 var(--mono)}
.rdw-glass svg{display:block}
.rdw-glass button{font:inherit; -webkit-tap-highlight-color:transparent}

/* вертикальный тулбар */
.rdw-tools{position:absolute; left:calc(var(--rdw-in) + 10px); top:120px; z-index:1050;
  display:flex; flex-direction:column; align-items:center; gap:3px; padding:6px; overflow:visible; transition:top .2s var(--ease)}
.rdw-tools.tight{gap:0; padding:4px}
.rdw-tools.tight .rdw-tb{width:38px; height:36px} .rdw-tools.tight .rdw-tb svg{width:19px; height:19px} .rdw-tools.tight .rdw-sep{margin:2px 0}
.rdw-tb{position:relative; width:44px; height:44px; display:grid; place-items:center; border:0; border-radius:11px; cursor:pointer;
  color:var(--txt-2); background:transparent; transition:background .16s var(--ease),color .16s,transform .12s,box-shadow .16s}
.rdw-tb svg{width:22px; height:22px}
.rdw-tb:hover{color:#fff; background:rgba(111,192,255,.1)}
.rdw-tb:active{transform:scale(.92)}
.rdw-tb.on{color:#04101f; background:linear-gradient(180deg,#6cc0ff,var(--sky)); box-shadow:0 4px 16px rgba(58,160,255,.45),inset 0 1px 0 rgba(255,255,255,.35)}
.rdw-tb.on svg [fill="#0b1322"]{fill:#8fd0ff}
.rdw-tb[data-tool=delete]:hover{color:#ff9a90; background:rgba(255,68,56,.12)}
.rdw-tb[data-tool=delete].on{color:#fff; background:linear-gradient(180deg,#ff6b5f,#e5382d); box-shadow:0 4px 16px rgba(255,68,56,.45)}
.rdw-tb[data-tool=focus] .f-out{display:none}
.rdw-tb[data-tool=focus].on{color:var(--sky-2,#7ACFFF); background:rgba(58,160,255,.14); box-shadow:inset 0 0 0 1px rgba(58,160,255,.45)}
.rdw-tb[data-tool=focus].on .f-in{display:none}
.rdw-tb[data-tool=focus].on .f-out{display:block}
.rdw-sep{display:block; width:26px; height:1px; margin:4px 0; background:linear-gradient(90deg,transparent,rgba(140,200,255,.28),transparent)}
.rdw-tip{position:absolute; left:calc(100% + 12px); top:50%; transform:translate(-4px,-50%); white-space:nowrap; pointer-events:none;
  padding:6px 10px; border-radius:8px; background:rgba(6,11,20,.96); border:1px solid var(--rdw-bd); color:var(--txt); font:12px var(--mono);
  box-shadow:0 8px 24px rgba(0,0,0,.5); opacity:0; transition:opacity .14s,transform .14s var(--ease); z-index:2}
.rdw-tip kbd,.rdw-focusbar kbd{display:inline-block; margin-left:8px; padding:1px 6px; border-radius:5px; border:1px solid rgba(140,200,255,.3);
  color:var(--txt-2); font:11px var(--mono); background:rgba(255,255,255,.04)}
@media (hover:hover){ .rdw-tb:hover .rdw-tip{opacity:1; transform:translate(0,-50%)} }
@media (max-height:640px){ .rdw-tb{width:38px; height:38px} .rdw-tb svg{width:20px; height:20px} .rdw-sep{margin:2px 0} }

/* полоса рисования (снизу по центру) */
.rdw-bar{position:absolute; left:50%; bottom:calc(var(--rdw-in) + 18px); transform:translateX(-50%); z-index:1050;
  display:flex; align-items:center; gap:12px; padding:8px 8px 8px 12px; max-width:calc(100% - 140px); animation:rdwUp .22s var(--ease)}
.rdw-bar[hidden]{display:none}
.rdw-bar-ic{width:34px; height:34px; display:grid; place-items:center; border-radius:10px; color:var(--sky-2,#7ACFFF);
  background:rgba(58,160,255,.14); flex:0 0 auto}
.rdw-bar-ic svg{width:20px; height:20px}
.rdw-bar-txt{display:flex; flex-direction:column; min-width:0}
.rdw-bar-txt b{font-weight:700; letter-spacing:.08em; font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.rdw-bar-txt span{color:var(--txt-2); font-size:11.5px; font-variant-numeric:tabular-nums; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.rdw-bar-btns{display:flex; gap:6px; flex:0 0 auto}
@keyframes rdwUp{from{opacity:0; transform:translate(-50%,10px)} to{opacity:1; transform:translate(-50%,0)}}

/* кнопки */
.rdw-btn{display:inline-flex; align-items:center; justify-content:center; gap:6px; height:38px; min-width:38px; padding:0 13px; border-radius:10px; cursor:pointer;
  color:var(--txt); background:rgba(120,170,230,.08); border:1px solid rgba(140,200,255,.16); letter-spacing:.03em; white-space:nowrap;
  transition:background .15s,border-color .15s,color .15s,transform .1s}
.rdw-btn svg{width:17px; height:17px}
.rdw-btn:hover{background:rgba(111,192,255,.15); border-color:var(--edge)}
.rdw-btn:active{transform:scale(.95)}
.rdw-btn.icon{padding:0; width:38px}
.rdw-btn.pri{color:#04101f; font-weight:700; background:linear-gradient(180deg,#6cc0ff,var(--sky)); border-color:transparent; box-shadow:0 4px 14px rgba(58,160,255,.35)}
.rdw-btn.pri:hover{filter:brightness(1.08)}
.rdw-btn.danger{color:#ff9a90}
.rdw-btn.danger:hover,.rdw-btn.danger.armed{color:#fff; background:rgba(255,68,56,.22); border-color:rgba(255,68,56,.6)}
.rdw-btn.on{color:var(--sky-2,#7ACFFF); border-color:rgba(58,160,255,.6); background:rgba(58,160,255,.16)}
.rdw-btn[hidden]{display:none}

/* карточка стиля (слева, рядом с тулбаром — справа живёт панель слоёв) */
.rdw-card{position:absolute; left:calc(var(--rdw-in) + 80px); top:12px; z-index:1100; width:318px; max-height:calc(100% - 38px);
  display:flex; flex-direction:column; overflow:hidden; animation:rdwIn .2s var(--ease)}
.rdw-card[hidden]{display:none}
@keyframes rdwIn{from{opacity:0; transform:translateX(-8px)} to{opacity:1; transform:none}}
.rdw-card-h{display:flex; align-items:center; gap:10px; padding:11px 8px 9px 12px; border-bottom:1px solid rgba(140,200,255,.1)}
.rdw-kic{width:36px; height:36px; display:grid; place-items:center; border-radius:10px; background:rgba(255,255,255,.05);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06); flex:0 0 auto}
.rdw-kic svg{width:21px; height:21px}
.rdw-card-ht{display:flex; flex-direction:column; min-width:0; flex:1}
.rdw-card-ht b{font-weight:700; letter-spacing:.12em; text-transform:uppercase; font-size:11.5px}
.rdw-card-ht span{color:var(--txt-3); font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.rdw-saved{font-size:10.5px; color:var(--txt-3); white-space:nowrap}
.rdw-saved.ok{color:#5fe08f} .rdw-saved.err{color:#ff8a80} .rdw-saved.busy{color:var(--txt-3)}
.rdw-x{width:36px; height:36px; display:grid; place-items:center; border:0; border-radius:10px; background:none; color:var(--txt-3); cursor:pointer}
.rdw-x svg{width:17px; height:17px}
.rdw-x:hover{color:#fff; background:rgba(255,255,255,.07)}
.rdw-card-b{padding:10px 12px 6px; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:rgba(120,170,230,.25) transparent}
.rdw-card-f{display:flex; align-items:center; gap:6px; padding:9px 10px; border-top:1px solid rgba(140,200,255,.1); background:rgba(0,0,0,.14)}
.rdw-card-f .sp{flex:1}
.rdw-hint{padding:8px 12px; font-size:11px; color:#bfe6ff; background:linear-gradient(90deg,rgba(58,160,255,.18),rgba(58,160,255,.04)); border-top:1px solid rgba(58,160,255,.25)}
.rdw-hint[hidden]{display:none}
.rdw-card-f .rdw-btn{padding:0 10px}
.rdw-card-f .rdw-btn.danger{width:38px; padding:0}
.rdw-card-f .rdw-btn.danger.armed{width:auto; padding:0 10px}
.rdw-in{width:100%; box-sizing:border-box; height:38px; padding:0 11px; border-radius:10px; color:var(--txt); font:13px var(--mono);
  background:rgba(2,6,14,.45); border:1px solid rgba(140,200,255,.16); outline:none; transition:border-color .15s,box-shadow .15s}
.rdw-in:focus{border-color:var(--edge); box-shadow:0 0 0 3px rgba(58,160,255,.15)}
.rdw-title{font-size:14px; font-weight:700; letter-spacing:.02em}
textarea.rdw-in{height:auto; min-height:54px; padding:8px 11px; resize:vertical; line-height:1.45}
.rdw-lab{display:block; margin:11px 0 6px; color:var(--txt-3); font-size:10px; letter-spacing:.16em; text-transform:uppercase}
.rdw-metrics{display:flex; flex-wrap:wrap; gap:4px 12px; margin-top:8px; color:var(--txt-3); font-size:11px}
.rdw-metrics b{color:var(--ice,#bfe6ff); font-weight:700; font-variant-numeric:tabular-nums}
.rdw-metrics .rdw-co{flex-basis:100%}
.rdw-co{color:var(--ice,#bfe6ff); font-size:11px; font-variant-numeric:tabular-nums}
.rdw-co .co-sk{display:block} .rdw-co .co-wgs{display:block; color:var(--txt-3); font-size:10px; margin-top:1px}

/* палитра */
.rdw-colors{display:flex; flex-wrap:wrap; gap:7px}
.rdw-sw{position:relative; width:26px; height:26px; border-radius:50%; cursor:pointer; padding:0; border:0; flex:0 0 auto;
  background:var(--c,#3AA0FF); box-shadow:inset 0 0 0 1px rgba(255,255,255,.18),0 1px 3px rgba(0,0,0,.5); transition:transform .12s var(--ease),box-shadow .15s}
.rdw-sw:hover{transform:scale(1.12)}
.rdw-sw.sel{box-shadow:0 0 0 2px #0b1322,0 0 0 4px #fff}
.rdw-sw.none,.rdw-sw.same{background:repeating-linear-gradient(45deg,rgba(255,255,255,.08) 0 4px,transparent 4px 8px); box-shadow:inset 0 0 0 1.5px rgba(140,200,255,.4)}
.rdw-sw.none.sel,.rdw-sw.same.sel{box-shadow:inset 0 0 0 1.5px rgba(140,200,255,.4),0 0 0 2px #0b1322,0 0 0 4px #fff}
.rdw-sw.cust{background:conic-gradient(#ff4438,#ffd23f,#22c55e,#19c3d6,#3aa0ff,#7c6cff,#e056fd,#ff4438); overflow:hidden}
.rdw-sw.cust.sel{background:var(--c,#3AA0FF)}
.rdw-sw.cust input{position:absolute; inset:-6px; width:40px; height:40px; opacity:0; cursor:pointer; border:0; padding:0}
.rdw-colors.sm{gap:6px} .rdw-colors.sm .rdw-sw{width:21px; height:21px}

/* тип линии */
.rdw-dashes{display:grid; grid-template-columns:repeat(5,1fr); gap:5px}
.rdw-dash{display:flex; flex-direction:column; align-items:center; gap:4px; padding:8px 3px 5px; border-radius:9px; cursor:pointer;
  color:var(--txt-3); background:rgba(120,170,230,.05); border:1px solid rgba(140,200,255,.12); transition:all .15s}
.rdw-dash svg{width:100%; height:12px; overflow:visible}
.rdw-dash span{font-size:8.5px; letter-spacing:.02em; line-height:1.1; text-align:center; min-height:19px}
.rdw-dash:hover{border-color:var(--edge); color:var(--txt-2)}
.rdw-dash.sel{border-color:var(--sky); background:rgba(58,160,255,.14); color:var(--txt); box-shadow:0 0 0 1px rgba(58,160,255,.3)}

/* ползунки */
.rdw-row{display:grid; grid-template-columns:104px 1fr 40px; align-items:center; gap:8px; margin-top:8px}
.rdw-row .rdw-lab{margin:0}
.rdw-row b{text-align:right; font-weight:700; color:var(--txt-2); font-size:11.5px; font-variant-numeric:tabular-nums}
.rdw-row input[type=range]{-webkit-appearance:none; appearance:none; width:100%; height:28px; background:transparent; cursor:pointer; margin:0}
.rdw-row input[type=range]::-webkit-slider-runnable-track{height:4px; border-radius:4px; background:linear-gradient(90deg,rgba(58,160,255,.6),rgba(140,200,255,.18))}
.rdw-row input[type=range]::-moz-range-track{height:4px; border-radius:4px; background:linear-gradient(90deg,rgba(58,160,255,.6),rgba(140,200,255,.18))}
.rdw-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none; width:18px; height:18px; margin-top:-7px; border-radius:50%; background:#eaf6ff; border:3px solid var(--sky); box-shadow:0 2px 6px rgba(0,0,0,.5)}
.rdw-row input[type=range]::-moz-range-thumb{width:14px; height:14px; border-radius:50%; background:#eaf6ff; border:3px solid var(--sky)}
@media (pointer:coarse){ .rdw-row input[type=range]::-webkit-slider-thumb{width:24px; height:24px; margin-top:-10px} }

/* переключатель «стрелка» */
.rdw-toggle{display:flex; align-items:center; gap:10px; margin-top:12px; cursor:pointer; user-select:none; color:var(--txt-2)}
.rdw-toggle input{position:absolute; opacity:0; pointer-events:none}
.rdw-toggle i{position:relative; width:38px; height:22px; border-radius:22px; background:rgba(140,200,255,.18); transition:background .18s; flex:0 0 auto}
.rdw-toggle i::after{content:""; position:absolute; left:3px; top:3px; width:16px; height:16px; border-radius:50%; background:#cfe6ff; transition:transform .2s var(--ease); box-shadow:0 1px 3px rgba(0,0,0,.5)}
.rdw-toggle input:checked + i{background:var(--sky)}
.rdw-toggle input:checked + i::after{transform:translateX(16px); background:#fff}
.rdw-toggle input:focus-visible + i{box-shadow:0 0 0 3px rgba(58,160,255,.3)}

/* оси овала */
.rdw-axes{display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin-top:12px}
.rdw-axes.one{grid-template-columns:1fr 2fr}
.rdw-axes label{display:flex; flex-direction:column; gap:4px}
.rdw-axes span{color:var(--txt-3); font-size:9.5px; letter-spacing:.08em; text-transform:uppercase}
.rdw-axes .rdw-in{padding:0 8px; font-variant-numeric:tabular-nums}

/* значки точки */
.rdw-icons{display:grid; grid-template-columns:repeat(8,1fr); gap:4px}
.rdw-ic{aspect-ratio:1; display:grid; place-items:center; border-radius:8px; cursor:pointer; padding:0; color:var(--txt-2);
  background:rgba(120,170,230,.05); border:1px solid rgba(140,200,255,.12); transition:all .14s}
.rdw-ic svg{width:18px; height:18px}
.rdw-ic:hover{border-color:var(--edge)}
.rdw-ic.sel{border-color:var(--sky); background:rgba(58,160,255,.16); box-shadow:0 0 0 1px rgba(58,160,255,.35)}
.rdw-ic.none i{width:14px; height:14px; border-radius:50%; border:2px solid currentColor; opacity:.6}

/* окошко на карте (новая точка / удалить) */
.leaflet-popup.rdw-pop .leaflet-popup-content-wrapper{background:var(--rdw-glass,rgba(10,18,32,.95)); background:linear-gradient(180deg,rgba(14,25,44,.95),rgba(7,12,22,.96));
  border:1px solid rgba(140,200,255,.24); border-radius:14px; box-shadow:0 18px 50px rgba(0,0,0,.6); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px)}
.leaflet-popup.rdw-pop .leaflet-popup-content{margin:12px 13px}
.leaflet-popup.rdw-pop .leaflet-popup-tip{background:#0a1220; border:1px solid rgba(140,200,255,.24)}
.rdw-pp{font:12.5px/1.35 var(--mono); color:var(--txt)}
.rdw-pp .rdw-lab{margin:9px 0 5px}
.rdw-pp .rdw-co{margin-top:7px}
.rdw-pp-h{display:flex; align-items:center; gap:8px; margin-bottom:9px}
.rdw-pp-h svg{width:18px; height:18px; color:var(--sky-2,#7ACFFF)}
.rdw-pp-h b{letter-spacing:.12em; text-transform:uppercase; font-size:11.5px}
.rdw-pp-name{color:var(--txt-2); margin:-2px 0 10px}
.rdw-pp-btns{display:flex; justify-content:flex-end; gap:6px; margin-top:12px}
.rdw-pp .rdw-icons{grid-template-columns:repeat(8,1fr)}
.rdw-pp .rdw-sw{width:22px; height:22px}
.rdw-pp .rdw-colors{gap:6px}

/* подписи при рисовании (длины отрезков, итог, курсор) */
.rdw-lbl{pointer-events:none; width:0!important; height:0!important}
.rdw-lbl span{position:absolute; transform:translate(-50%,-50%); white-space:nowrap; padding:3px 7px; border-radius:7px;
  background:rgba(4,9,18,.82); color:#eaf6ff; font:700 11px/1.25 var(--mono); letter-spacing:.02em; border:1px solid rgba(140,200,255,.25);
  box-shadow:0 2px 8px rgba(0,0,0,.5); font-variant-numeric:tabular-nums; text-align:center}
.rdw-lbl span i{font-style:normal; color:#FFD27A; font-weight:400}
.rdw-lbl.tot span{transform:translate(12px,-130%); background:rgba(58,160,255,.92); color:#04101f; border-color:transparent}
.rdw-lbl.cur span{transform:translate(16px,8px); background:rgba(4,9,18,.9)}
.rdw-lbl.cur span b{color:var(--sky-2,#7ACFFF)}
.leaflet-container.rdw-drawing,.leaflet-container.rdw-drawing .leaflet-interactive{cursor:crosshair}
.leaflet-container.rdw-picking .leaflet-interactive{cursor:pointer}
.rdw-vtx{cursor:pointer}

/* ручки правки */
.rdw-h{display:grid!important; place-items:center}
.rdw-h i{display:block; width:14px; height:14px; border-radius:4px; background:#fff; border:2.5px solid var(--sky); box-shadow:0 1px 5px rgba(0,0,0,.6); transition:transform .12s}
.rdw-h:hover i{transform:scale(1.2)}
.rdw-h.mid i{width:10px; height:10px; border-radius:50%; background:rgba(58,160,255,.55); border:2px solid #fff; opacity:.85}
.rdw-h.ctr i{border-radius:50%; background:var(--sky); border-color:#fff}
.rdw-h.ax i{border-radius:50%; width:15px; height:15px; background:#FFD23F; border-color:#1b2333}
.rdw-h.ax.b i{background:#fff}
.rdw-h.mv i{width:38px; height:38px; border-radius:50%; background:rgba(58,160,255,.9); border:2px solid #fff; color:#fff; display:grid; place-items:center; box-shadow:0 4px 16px rgba(0,0,0,.55)}
.rdw-h.mv i svg{width:22px; height:22px}
@media (pointer:coarse){ .rdw-h i{width:18px; height:18px} .rdw-h.mid i{width:14px; height:14px} }
.rdw-halo{animation:rdwPulse 1.6s ease-in-out infinite}
.rdw-halo-pt{animation:rdwPulse 1.6s ease-in-out infinite}
@keyframes rdwPulse{0%,100%{opacity:.55} 50%{opacity:.18}}

/* плашка режима «Только карта» */
.rdw-focusbar{position:absolute; left:50%; top:12px; transform:translate(-50%,-8px); z-index:1060; display:none; align-items:center; gap:10px;
  padding:5px 5px 5px 14px; border-radius:999px; opacity:.55; transition:opacity .2s}
.rdw-focusbar:hover{opacity:1}
.rdw-focusbar .dot{width:8px; height:8px; border-radius:50%; background:#5fe08f; box-shadow:0 0 10px #5fe08f}
.rdw-focusbar span{letter-spacing:.14em; text-transform:uppercase; font-size:10.5px; color:var(--txt-2)}
.rdw-focusbar kbd{margin-left:0}
.rdw-focusbar .rdw-btn{height:32px; border-radius:999px; padding:0 12px}
.rdw-focusbar .rdw-btn span{text-transform:none; letter-spacing:.03em; color:inherit; font-size:12px}
html.rer-focus .rdw-focusbar{display:flex; animation:rdwDrop .3s var(--ease) forwards}
@media (max-width:980px){ html.rer-focus .rdw-focusbar{display:none} }
@keyframes rdwDrop{to{transform:translate(-50%,0)}}

/* режим «Только карта»: прячем обвязку разведпункта, карта на весь экран */
html.rer-focus #tabbar,html.rer-focus #tb-grip,html.rer-focus #sitrep,html.rer-focus .statusband,
html.rer-focus #rer-modes,html.rer-focus #tabhost > footer,html.rer-focus #grain{display:none!important}
html.rer-focus #tabhost{margin:0!important; padding:0!important; max-width:none!important; overflow:hidden!important}
html.rer-focus #tab-rer{height:100vh; height:100dvh; padding:0; margin:0}
html.rer-focus #tab-rer #rer-root{height:100vh!important; height:100dvh!important; min-height:0}
html.rer-focus #rer-view-map{--rdw-in:0px}
html.rer-focus #rer-lmap{margin:0; border:0; border-radius:0}
#rer-lmap{transition:border-radius .25s var(--ease)}

/* узкий экран / телефон: карточка — нижним листом, тулбар компактнее */
@media (max-width:720px){
  .rdw-card{left:8px; right:8px; top:auto; bottom:8px; width:auto; max-height:58%; animation:rdwSheet .22s var(--ease)}
  @keyframes rdwSheet{from{opacity:0; transform:translateY(14px)} to{opacity:1; transform:none}}
  .rdw-bar{left:calc(var(--rdw-in) + 72px); right:10px; transform:none; max-width:none; flex-wrap:wrap; animation:none}
  .rdw-bar-btns{margin-left:auto}
  .rdw-tip{display:none}
}
/* draw: погасший тост (opacity 0, но pointer-events:auto из правок 22.09) лежал поверх полосы рисования
   и съедал клики по «Готово»/«Отмена»; а видимый — закрывал её. Пока полоса открыта — тост выше неё. */
#rer-toast:not(.show){pointer-events:none}
#rer-root:has(#rdw-bar:not([hidden])) #rer-toast{bottom:172px}
#ps-mapwrap:has(#psdw-bar:not([hidden])) #ps-maptoast{bottom:104px}
/* draw: контролы leaflet карты РЭР (⤢, «Импорт/Слои/Маршрут/Перенос/След», масштаб) — в том же стекле */
#rer-view-map .leaflet-bar{border:1px solid rgba(140,200,255,.2)!important; border-radius:12px; overflow:hidden;
  background:linear-gradient(180deg,rgba(14,25,44,.86),rgba(7,12,22,.9)); box-shadow:0 10px 30px rgba(0,0,0,.45)!important;
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px)}
#rer-view-map .leaflet-bar a{background:transparent; color:var(--txt-2); border-color:rgba(140,200,255,.12); width:36px; height:36px; line-height:36px;
  font-family:var(--mono); transition:background .15s,color .15s}
#rer-view-map .leaflet-bar a:hover{background:rgba(111,192,255,.12); color:#fff}
#rer-view-map .leaflet-bar a.leaflet-disabled{color:var(--txt-3); background:transparent; opacity:.5}
#rer-view-map .leaflet-control-zoom a{font-size:20px; font-weight:400}
#rer-view-map .rer-fit a{font-size:17px}
#rer-view-map .leaflet-bar.rer-tools a,#rer-view-map .leaflet-touch .leaflet-bar.rer-tools a,#rer-view-map.leaflet-touch .leaflet-bar.rer-tools a{width:auto; height:36px; line-height:36px; padding:0 12px; font-size:12px; font-weight:600;
  color:var(--txt-2); border-right:1px solid rgba(140,200,255,.12)}
#rer-view-map .leaflet-bar.rer-tools a:last-child{border-right:none}
#rer-view-map .leaflet-bar.rer-tools a.on{color:var(--sky-2,#7ACFFF); background:rgba(58,160,255,.16); box-shadow:inset 0 -2px 0 var(--sky)}
#rer-view-map .leaflet-top.leaflet-left .leaflet-control{margin-left:calc(10px); margin-top:10px}
/* 23.09: действия со слоем видны всегда (юзер не находил ⋯ по наведению) + кнопка «подслой» */
.rl .rl-more{opacity:.5}
.rl .rl-row:hover .rl-more,.rl .rl-more:focus-visible{opacity:1}
.rl .rl-addsub{margin-right:-4px}
.rl .rl-addsub:hover{color:var(--sky)}
/* 23.09: быстрые кнопки у слоя — «точка сюда», «загрузить сюда» (видны по наведению; на таче — всегда) */
.rl .rl-row .rl-q1{opacity:0}
.rl .rl-row:hover .rl-q1,.rl .rl-row.act .rl-q1{opacity:.85}
.rl .rl-q1:hover{color:var(--sky)}
@media (pointer:coarse){ .rl .rl-row .rl-q1{opacity:.7} }
/* 23.09: название слоя важнее кнопок — быстрые кнопки и «+подслой» только у строки под курсором/активной */
.rl .rl-row.rl-l .rl-addsub,.rl .rl-row.rl-l .rl-q1{display:none}
.rl .rl-row.rl-l:hover .rl-addsub,.rl .rl-row.rl-l:hover .rl-q1,
.rl .rl-row.rl-l.act .rl-addsub,.rl .rl-row.rl-l.act .rl-q1{display:grid; opacity:.85}
/* 23.09 (ревью): строки объектов за пределами прокрутки не раскладываются — дерево на тысячах строк вдвое быстрее */
.rl .rl-row.rl-o{content-visibility:auto; contain-intrinsic-size:auto 32px}
@media (pointer:coarse){ .rl .rl-row.rl-o{contain-intrinsic-size:auto 42px} }
/* draw: фото и видео в объекте (rer-draw.js — секция карточки «Фото и видео» и значок-камера на карте) */
.rdw-media{margin-top:12px; padding:10px 10px 11px; border-radius:12px; background:rgba(2,6,14,.32); border:1px solid rgba(140,200,255,.12)}
.rdw-media[hidden]{display:none}
.rdw-media.flash{animation:rdwMFlash 1.2s var(--ease)}
@keyframes rdwMFlash{0%{box-shadow:0 0 0 0 rgba(58,160,255,0); border-color:rgba(140,200,255,.12)} 25%{box-shadow:0 0 0 3px rgba(58,160,255,.35); border-color:var(--sky)} 100%{box-shadow:0 0 0 0 rgba(58,160,255,0); border-color:rgba(140,200,255,.12)}}
.rdw-mh{display:flex; align-items:center; gap:7px; margin-bottom:8px; min-height:18px}
.rdw-mh .rdw-lab{margin:0; white-space:nowrap}
.rdw-mh .sp{flex:1}
.rdw-mcnt{font-style:normal; min-width:18px; height:18px; padding:0 6px; border-radius:9px; display:inline-grid; place-items:center; box-sizing:border-box;
  background:rgba(58,160,255,.18); color:var(--sky-2,#7ACFFF); font:700 10.5px/1 var(--mono); font-variant-numeric:tabular-nums}
.rdw-mh-up{display:inline-flex; align-items:center; gap:3px; color:#bfe6ff; font-size:10.5px; font-variant-numeric:tabular-nums}
.rdw-mh-up svg{width:13px; height:13px}
.rdw-mh-hint{color:var(--txt-3); font-size:10px; letter-spacing:.02em; white-space:nowrap}
.rdw-spin{width:12px; height:12px; border-radius:50%; border:2px solid rgba(140,200,255,.25); border-top-color:var(--sky); animation:rdwSpin .8s linear infinite}
@keyframes rdwSpin{to{transform:rotate(360deg)}}
.rdw-merr{display:flex; align-items:center; gap:8px; margin-bottom:8px; color:#ff9a90; font-size:11px}
.rdw-merr svg{width:15px; height:15px; flex:0 0 auto} .rdw-merr span{flex:1} .rdw-merr .rdw-btn{height:30px}
/* пусто: большая цель — добавить (и «Снять» на планшете) */
.rdw-mempty{display:flex; gap:6px}
.rdw-mdz{flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-height:88px; padding:10px 8px; border-radius:11px; cursor:pointer;
  color:var(--txt-2); background:rgba(58,160,255,.05); border:1.5px dashed rgba(140,200,255,.32); transition:background .15s,border-color .15s,color .15s,transform .1s; text-align:center}
.rdw-mdz svg{width:26px; height:26px; color:var(--sky-2,#7ACFFF)}
.rdw-mdz b{font-size:12px; font-weight:700; color:var(--txt); letter-spacing:.02em}
.rdw-mdz span{font-size:10.5px; color:var(--txt-3)}
.rdw-mdz:hover{background:rgba(58,160,255,.12); border-color:var(--sky); color:var(--txt)}
.rdw-mdz:active{transform:scale(.98)}
.rdw-mdz.cam{flex:0 0 84px}
/* сетка превью */
.rdw-mgrid{display:grid; grid-template-columns:repeat(3,1fr); gap:6px}
.rdw-mt{position:relative; aspect-ratio:1; border-radius:10px; overflow:hidden; padding:0; margin:0; cursor:pointer; display:block; min-width:0;
  background:#0a1322 center/cover no-repeat; border:1px solid rgba(140,200,255,.14); color:var(--txt-2); transition:transform .12s var(--ease),border-color .15s,box-shadow .15s}
.rdw-mt img,.rdw-mt video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; pointer-events:none}
button.rdw-mt:hover{border-color:var(--edge); box-shadow:0 4px 14px rgba(0,0,0,.45)}
button.rdw-mt:hover img{transform:scale(1.05)} .rdw-mt img{transition:transform .25s var(--ease)}
button.rdw-mt:active{transform:scale(.96)}
.rdw-mt-play{position:absolute; left:50%; top:50%; width:30px; height:30px; margin:-15px 0 0 -15px; border-radius:50%; display:grid; place-items:center;
  background:rgba(4,9,18,.62); border:1.5px solid rgba(255,255,255,.85); color:#fff; box-shadow:0 2px 10px rgba(0,0,0,.5)}
.rdw-mt-play svg{width:14px; height:14px; margin-left:2px}
.rdw-mt-dur{position:absolute; right:4px; bottom:4px; padding:1px 5px; border-radius:5px; background:rgba(4,9,18,.78); color:#fff; font:700 9.5px/1.4 var(--mono); font-variant-numeric:tabular-nums}
.rdw-mt-note{position:absolute; left:4px; top:4px; width:18px; height:18px; border-radius:6px; display:grid; place-items:center; background:rgba(4,9,18,.72); color:#FFD27A}
.rdw-mt-note svg{width:12px; height:12px}
.rdw-mt.doc{display:grid; place-items:center}
.rdw-mt-doc{display:flex; flex-direction:column; align-items:center; gap:3px; color:var(--txt-2)} .rdw-mt-doc svg{width:24px; height:24px}
.rdw-mt-doc i{font:700 9.5px var(--mono); font-style:normal; letter-spacing:.06em; color:var(--txt-3)}
.rdw-mt.add{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; background:rgba(58,160,255,.05); border:1.5px dashed rgba(140,200,255,.32); color:var(--sky-2,#7ACFFF)}
.rdw-mt.add svg{width:22px; height:22px}
.rdw-mt.add span{font-size:10px; letter-spacing:.04em; color:var(--txt-2)}
.rdw-mt.add:hover{background:rgba(58,160,255,.13); border-color:var(--sky)}
.rdw-mt.add.cam,.rdw-mdz.cam{display:none}
@media (pointer:coarse){ .rdw-mt.add.cam,.rdw-mdz.cam{display:flex} }
/* загрузка: превью под вуалью, кольцо прогресса, отмена */
.rdw-mt.up{cursor:default}
.rdw-mt.up img,.rdw-mt.up video{filter:brightness(.42) saturate(.7)}
.rdw-mt-ov{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; padding:4px; text-align:center}
.rdw-ring{position:absolute; left:50%; top:50%; width:44px; height:44px; margin:-22px 0 0 -22px; transform:rotate(-90deg)}
.rdw-ring circle{fill:none; stroke:rgba(255,255,255,.18); stroke-width:3.2}
.rdw-ring circle.v{stroke:var(--sky-2,#7ACFFF); stroke-linecap:round; stroke-dasharray:100; transition:stroke-dashoffset .2s linear}
.rdw-mt:not(.act) .rdw-ring circle.v{opacity:0}
.rdw-mt:not(.act) .rdw-ring{animation:rdwSpin 2.4s linear infinite; opacity:.6}
.rdw-mt-pct{position:relative; color:#fff; font:700 11px/1 var(--mono); font-variant-numeric:tabular-nums; text-shadow:0 1px 3px #000}
.rdw-mt:not(.act) .rdw-mt-pct{font-weight:400; font-size:10px; color:var(--txt-2)}
.rdw-mt-x{position:absolute; right:3px; top:3px; width:24px; height:24px; padding:0; border-radius:8px; border:0; display:grid; place-items:center; cursor:pointer;
  background:rgba(4,9,18,.72); color:#fff}
.rdw-mt-x svg{width:13px; height:13px}
.rdw-mt-x:hover{background:rgba(255,68,56,.8)}
.rdw-mt.up.err{border-color:rgba(255,68,56,.6)}
.rdw-mt-e{display:flex; flex-direction:column; align-items:center; gap:2px; color:#ffb4ac; font:400 9.5px/1.2 var(--mono); max-height:60%; overflow:hidden}
.rdw-mt-e svg{width:16px; height:16px}
.rdw-mt-retry{display:inline-flex; align-items:center; gap:3px; height:24px; padding:0 7px; border-radius:7px; border:1px solid rgba(255,255,255,.3); background:rgba(4,9,18,.7); color:#fff; cursor:pointer; font:10px var(--mono)}
.rdw-mt-retry svg{width:12px; height:12px}
@media (pointer:coarse){
  .rdw-mgrid{gap:8px}
  .rdw-mt-x{width:32px; height:32px; right:2px; top:2px}
  .rdw-mt-retry{height:30px}
  .rdw-mh-hint{display:none}
}
/* файлы тянут на карточку */
.rdw-card.rdw-mdrag{border-color:var(--sky); box-shadow:0 0 0 3px rgba(58,160,255,.35),0 16px 44px rgba(0,0,0,.5)}
.rdw-card.rdw-mdrag::after{content:"Отпустите — фото и видео в этот объект"; position:absolute; inset:6px; border-radius:11px; display:grid; place-items:center; padding:20px;
  text-align:center; pointer-events:none; z-index:5; background:rgba(7,14,26,.86); border:2px dashed var(--sky); color:#fff; font:700 13px/1.4 var(--mono); letter-spacing:.03em}
/* «Новая точка»: быстрый путь */
.rdw-pp-media{width:100%; margin-top:7px; height:42px}
.rdw-pp-media svg{width:18px; height:18px; color:var(--sky-2,#7ACFFF)}
/* значок-камера на карте: маленькая таблетка с числом (у точки — справа сверху, у фигуры — в центре) */
.leaflet-marker-icon.rdw-mb{width:0!important; height:0!important; margin:0!important; background:none; border:0; overflow:visible}
.rdw-mb span{position:absolute; display:inline-flex; align-items:center; justify-content:center; gap:3px; box-sizing:border-box; min-width:20px; height:20px; padding:0 5px;
  border-radius:999px; background:linear-gradient(180deg,#1a2c48,#0a1426); border:1.5px solid rgba(214,238,255,.92); color:#8fd6ff; cursor:pointer;
  box-shadow:0 2px 8px rgba(0,0,0,.65),0 0 0 1px rgba(0,0,0,.35); transition:transform .14s var(--ease),background .14s; white-space:nowrap}
.rdw-mb span svg{width:12px; height:12px; flex:0 0 auto}
.rdw-mb b{color:#fff; font:700 10.5px/1 var(--mono); font-variant-numeric:tabular-nums; letter-spacing:0}
.rdw-mb.pt span{left:4px; bottom:4px; transform-origin:0 100%}
.rdw-mb.sh span{transform:translate(-50%,-50%)}
.rdw-mb:hover span{background:linear-gradient(180deg,#3aa0ff,#1f6fd0); color:#fff; border-color:#fff}
.rdw-mb.pt:hover span{transform:scale(1.14)}
.rdw-mb.sh:hover span{transform:translate(-50%,-50%) scale(1.14)}
@media (pointer:coarse){
  .rdw-mb span{min-width:26px; height:26px; padding:0 7px; gap:4px} .rdw-mb span svg{width:15px; height:15px} .rdw-mb b{font-size:12px}
}
/* превью первого фото по наведению */
.leaflet-tooltip.rdw-mtip{padding:0; border-radius:12px; overflow:hidden; background:rgba(7,12,22,.97); border:1px solid rgba(140,200,255,.3); box-shadow:0 14px 40px rgba(0,0,0,.6); color:var(--txt); white-space:normal}
.leaflet-tooltip.rdw-mtip::before{display:none}
.rdw-mtip-in{width:210px; font:12px/1.3 var(--mono)}
.rdw-mtip-in img{display:block; width:210px; height:138px; object-fit:cover; background:#0a1322}
.rdw-mtip-t{display:flex; flex-direction:column; gap:3px; padding:8px 10px 9px}
.rdw-mtip-t b{font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.rdw-mtip-t span{display:flex; align-items:center; gap:5px; color:var(--txt-3); font-size:10.5px}
.rdw-mtip-t span svg{width:12px; height:12px; color:var(--sky-2,#7ACFFF)}

/* === archive === (rer-media.js: общая сетка/лайтбокс/загрузка — rmx-*; rer-archive.js: вкладка «Архив» — rar-*) ─── */
/* ── RERMedia: сетка превью «по пропорциям» (justified): ширина плитки = высота ряда × пропорция,
   ряд добирается flex-grow пропорционально, последний ряд не растягивается (::after). ── */
.rmx-grid{--rmx-gap:6px; display:flex; flex-wrap:wrap; gap:var(--rmx-gap); align-content:flex-start}
.rmx-grid::after{content:""; flex-grow:999999; min-width:20%}
.rmx-grid.square .rmx-tile{--ar:1!important}
.rmx-tile{position:relative; margin:0; overflow:hidden; border-radius:8px; cursor:zoom-in;
  width:calc(min(var(--rmx-sz,140px), 27vw) * var(--ar,1.333)); flex-grow:calc(var(--ar,1.333) * 100); max-width:100%;
  background:linear-gradient(135deg,rgba(40,64,104,.35),rgba(10,18,32,.6)); outline:none;
  box-shadow:0 0 0 1px rgba(140,200,255,.08) inset; transition:box-shadow .15s var(--ease),transform .15s var(--ease)}
.rmx-pad{display:block; padding-bottom:calc(100% / var(--ar,1.333))}
.rmx-img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;
  opacity:0; transition:opacity .25s var(--ease),transform .35s var(--ease); background:transparent}
.rmx-img:not(.bad){opacity:1}
.rmx-img.bad{opacity:0}
.rmx-tile:has(.rmx-img.bad)::before{content:"нет превью"; position:absolute; inset:0; display:grid; place-items:center;
  color:var(--txt-3); font-size:10px; letter-spacing:.08em}
.rmx-tile:hover{box-shadow:0 0 0 1px rgba(140,200,255,.45) inset, 0 8px 22px rgba(0,0,0,.45)}
.rmx-tile:hover .rmx-img{transform:scale(1.035)}
.rmx-tile:focus-visible{box-shadow:0 0 0 2px var(--sky) inset}
.rmx-ext{position:absolute; inset:0; display:grid; place-items:center; color:var(--sky-2); font-size:12px;
  letter-spacing:.12em; text-transform:uppercase}
/* видео: ▶ по центру и длительность */
.rmx-play{position:absolute; left:50%; top:50%; width:38px; height:38px; margin:-19px 0 0 -19px; border-radius:50%;
  display:grid; place-items:center; color:#fff; background:rgba(4,10,20,.55); border:1px solid rgba(255,255,255,.35);
  backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); pointer-events:none;
  box-shadow:0 4px 16px rgba(0,0,0,.4); transition:transform .15s var(--ease),background .15s}
.rmx-play svg{width:18px; height:18px; margin-left:2px}
.rmx-tile:hover .rmx-play{transform:scale(1.1); background:rgba(58,160,255,.75)}
.rmx-dur{position:absolute; right:6px; top:6px; padding:1px 6px; border-radius:5px; font-size:10.5px; line-height:16px;
  color:#fff; background:rgba(3,8,16,.72); letter-spacing:.04em; pointer-events:none; font-variant-numeric:tabular-nums}
/* подпись (точка / подпись / дата) — внизу по наведению; «точка» видна всегда */
.rmx-cap{position:absolute; left:0; right:0; bottom:0; display:flex; flex-wrap:wrap; align-items:flex-end; gap:3px 6px;
  padding:18px 6px 5px; font-size:10.5px; line-height:1.3; color:#e8f2ff; pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(2,6,14,.82))}
.rmx-cap > *{pointer-events:auto}
.rmx-cap .rar-note,.rmx-cap .rar-dt{opacity:0; transition:opacity .15s}
.rmx-tile:hover .rmx-cap .rar-note,.rmx-tile:hover .rmx-cap .rar-dt,.rmx-tile:focus-visible .rmx-cap .rar-dt{opacity:1}
.rmx-cap:not(:has(.rar-pt)){background:linear-gradient(180deg,transparent,rgba(2,6,14,.0)); transition:background .15s}
.rmx-tile:hover .rmx-cap{background:linear-gradient(180deg,transparent,rgba(2,6,14,.85))}
/* чекбокс выбора */
.rmx-chk{position:absolute; left:6px; top:6px; width:24px; height:24px; border-radius:50%; padding:0; cursor:pointer;
  border:1.5px solid rgba(255,255,255,.8); background:rgba(3,8,16,.35); opacity:0; transition:opacity .12s,background .12s;
  display:grid; place-items:center}
.rmx-chk::after{content:""; width:10px; height:5px; border:solid #04101f; border-width:0 0 2px 2px; transform:rotate(-45deg) translate(1px,-1px); opacity:0}
.rmx-tile:hover .rmx-chk,.rar-selmode .rmx-chk,.rmx-tile.sel .rmx-chk{opacity:1}
.rmx-tile.sel .rmx-chk{background:var(--sky); border-color:var(--sky)}
.rmx-tile.sel .rmx-chk::after{opacity:1}
.rmx-tile.sel{box-shadow:0 0 0 3px var(--sky) inset}
.rmx-tile.sel .rmx-img{transform:scale(.9); border-radius:6px}
.rar-selmode .rmx-tile{cursor:pointer}
@media (pointer:coarse){
  .rmx-chk{width:28px; height:28px}
  .rmx-tile:hover .rmx-chk{opacity:0}
  .rar-selmode .rmx-tile .rmx-chk,.rmx-tile.sel .rmx-chk{opacity:1}
}
/* плитка-заглушка загрузки */
.rmx-tile.rmx-up{cursor:default; background-size:cover; background-position:center;
  box-shadow:0 0 0 1px rgba(58,160,255,.5) inset; animation:rmx-pulse 1.6s ease-in-out infinite}
.rmx-tile.rmx-up.has-prev::before{content:""; position:absolute; inset:0; background:rgba(3,8,18,.42)}
@keyframes rmx-pulse{50%{box-shadow:0 0 0 1px rgba(58,160,255,.9) inset, 0 0 18px rgba(58,160,255,.25)}}
.rmx-upbox{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; padding:6px; text-align:center}
.rmx-ring{width:42px; height:42px; transform:rotate(-90deg)}
.rmx-ring circle{fill:none; stroke-width:3}
.rmx-ring .bg{stroke:rgba(140,200,255,.18)}
.rmx-ring .fg{stroke:var(--sky); stroke-linecap:round; transition:stroke-dasharray .2s linear}
.rmx-upbox b{position:absolute; top:calc(50% - 30px); left:0; right:0; height:42px; display:grid; place-items:center; font-size:11px;
  color:#fff; font-weight:600; font-variant-numeric:tabular-nums; margin-top:-2px}
.rmx-upbox small{max-width:100%; font-size:10px; color:var(--txt-2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.rmx-tile.rmx-up.fail{animation:none; box-shadow:0 0 0 1px var(--red) inset}
.rmx-tile.rmx-up.fail .fg{stroke:var(--red)}
.rmx-tile.rmx-up.fail small{white-space:normal; color:#ffb4ae}
.rmx-upx{position:absolute; right:5px; top:5px; width:22px; height:22px; border-radius:50%; border:0; padding:0; cursor:pointer;
  color:#fff; background:rgba(3,8,16,.6); font-size:11px; line-height:22px}
.rmx-upx:hover{background:var(--red)}
.rmx-grid.empty::after{display:none}
.rmx-empty{flex:1; padding:16px 14px; border:1px dashed rgba(140,200,255,.18); border-radius:10px; color:var(--txt-3);
  font-size:11.5px; text-align:center; letter-spacing:.02em}
.rmx-empty kbd,.rar kbd{font:inherit; font-size:10px; padding:0 4px; border:1px solid var(--line); border-radius:4px; color:var(--txt-2)}
.rmx-more{flex-basis:100%; height:1px}
/* цель Ctrl+V / drop файлов */
.rmx-drop-on{outline:2px dashed var(--sky)!important; outline-offset:-2px; background:rgba(58,160,255,.07)!important}
.rmx-flash{animation:rmx-flash .6s var(--ease)}
@keyframes rmx-flash{0%{box-shadow:0 0 0 3px rgba(58,160,255,.8)}100%{box-shadow:0 0 0 0 rgba(58,160,255,0)}}

/* ── RERMedia: лайтбокс ── */
html.rmx-lb-open{overflow:hidden}
.rmx-lb{position:fixed; inset:0; z-index:5000; display:grid; grid-template-rows:auto minmax(0,1fr) auto auto;
  background:rgba(2,5,11,.94); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  opacity:0; transition:opacity .16s var(--ease); outline:none; color:var(--txt); font:13px/1.45 var(--mono)}
.rmx-lb.in{opacity:1}
.rmx-lb.out{opacity:0}
.rmx-lb-top{display:flex; align-items:center; gap:8px; padding:10px 12px 10px 18px; min-height:54px;
  background:linear-gradient(180deg,rgba(4,8,16,.9),transparent)}
.rmx-lb-t{min-width:0; display:flex; flex-direction:column}
.rmx-lb-t b{font-weight:600; color:#eaf4ff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:52vw}
.rmx-lb-t span{font-size:11px; color:var(--txt-3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:52vw}
.rmx-lb-top .sp{flex:1}
.rmx-lb-n{color:var(--txt-2); font-size:12px; font-variant-numeric:tabular-nums; margin-right:6px}
.rmx-lb-b{font:inherit; font-size:12px; color:var(--txt-2); background:rgba(14,24,44,.7); border:1px solid rgba(140,200,255,.18);
  border-radius:9px; height:36px; padding:0 12px; display:inline-flex; align-items:center; gap:6px; cursor:pointer; text-decoration:none;
  transition:.15s var(--ease); white-space:nowrap}
.rmx-lb-b:hover{color:#fff; border-color:var(--edge); background:rgba(58,160,255,.16)}
.rmx-lb-b.danger:hover,.rmx-lb-b.danger.armed{color:#fff; border-color:var(--red); background:rgba(255,68,56,.22)}
.rmx-lb-b.x{width:36px; padding:0; justify-content:center}
.rmx-lb svg{width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex:0 0 auto}
.rmx-lb-nav svg{width:26px; height:26px; stroke-width:2}
.rmx-lb-b[hidden]{display:none}
.rmx-lb-stage{position:relative; min-height:0; display:flex; align-items:center; justify-content:center; padding:0 64px;
  overflow:hidden; touch-action:none; user-select:none; -webkit-user-select:none}
.rmx-lb-media{position:relative; width:100%; height:100%; display:flex; align-items:center; justify-content:center; min-height:0}
.rmx-lb-media img,.rmx-lb-media video{max-width:100%; max-height:100%; border-radius:6px; box-shadow:0 18px 70px rgba(0,0,0,.65);
  transition:transform .18s var(--ease); background:#000}
.rmx-lb-media img.lo{filter:blur(2px); position:absolute}
.rmx-lb-media img.hi{opacity:0; position:relative; transform-origin:50% 50%; will-change:transform; cursor:zoom-in}
.rmx-lb-media img.hi.in{opacity:1; animation:rmx-in .2s var(--ease)}
@keyframes rmx-in{from{opacity:0}to{opacity:1}}
.rmx-lb.zoomed .rmx-lb-media img{cursor:grab; box-shadow:none; border-radius:0}
.rmx-lb.zoomed.panning .rmx-lb-media img{cursor:grabbing}
.rmx-lb.zoomed .rmx-lb-nav{opacity:.35}
.rmx-lb.zoomed .rmx-lb-nav:hover{opacity:1}
/* масштаб: − 100% + ⤢ */
.rmx-lb-zoom{position:absolute; left:50%; bottom:12px; transform:translateX(-50%); z-index:3; display:flex; align-items:center;
  border-radius:11px; overflow:hidden; background:rgba(8,14,26,.82); border:1px solid rgba(140,200,255,.2);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); box-shadow:0 8px 26px rgba(0,0,0,.45); opacity:.55; transition:opacity .15s}
.rmx-lb-stage:hover .rmx-lb-zoom,.rmx-lb.zoomed .rmx-lb-zoom,.rmx-lb-zoom:focus-within{opacity:1}
.rmx-lb.is-video .rmx-lb-zoom{display:none}
.rmx-lb-zoom button{font:inherit; font-size:12px; height:34px; min-width:38px; padding:0 8px; border:0; border-right:1px solid rgba(140,200,255,.12);
  background:transparent; color:var(--txt-2); cursor:pointer; display:grid; place-items:center; font-variant-numeric:tabular-nums}
.rmx-lb-zoom button:last-child{border-right:0}
.rmx-lb-zoom button:hover{color:#fff; background:rgba(58,160,255,.18)}
.rmx-lb-zoom .pct{min-width:58px; color:var(--txt)}
/* лента миниатюр */
.rmx-lb-strip::-webkit-scrollbar{display:none}
.rmx-lb-strip{display:flex; gap:5px; overflow-x:auto; overflow-y:hidden; padding:8px 16px 4px; scrollbar-width:none;
  justify-content:safe center; max-width:100%; box-sizing:border-box}
.rmx-lb-strip[hidden]{display:none}
.rmx-st{position:relative; flex:0 0 auto; height:54px; width:calc(54px * min(var(--ar,1.333), 1.8)); padding:0; border:0; border-radius:6px;
  overflow:hidden; cursor:pointer; background:rgba(40,64,104,.35); opacity:.5; transition:opacity .15s,box-shadow .15s,transform .15s}
.rmx-st img{width:100%; height:100%; object-fit:cover; display:block}
.rmx-st:hover{opacity:.9}
.rmx-st.cur{opacity:1; box-shadow:0 0 0 2px var(--sky); transform:translateY(-2px)}
.rmx-st i{position:absolute; inset:0; display:grid; place-items:center; color:#fff; pointer-events:none}
.rmx-st i svg{width:16px; height:16px; filter:drop-shadow(0 1px 3px rgba(0,0,0,.8))}
.rmx-lb-media video{width:auto; outline:none}
.rmx-lb-nav{position:absolute; top:50%; transform:translateY(-50%); width:48px; height:72px; border-radius:12px; border:1px solid rgba(140,200,255,.14);
  background:rgba(10,18,34,.55); color:#dcebff; cursor:pointer; z-index:2; transition:.15s var(--ease); display:grid; place-items:center; padding:0}
.rmx-lb-nav:hover{background:rgba(58,160,255,.25); border-color:var(--edge)}
.rmx-lb-nav.prev{left:10px} .rmx-lb-nav.next{right:10px}
.rmx-lb.single .rmx-lb-nav,.rmx-lb.single .rmx-lb-n{display:none}
.rmx-lb-foot{display:grid; grid-template-columns:1fr auto; gap:6px 12px; align-items:start; padding:10px 18px 14px;
  background:linear-gradient(0deg,rgba(4,8,16,.92),transparent); max-width:1100px; width:100%; margin:0 auto; box-sizing:border-box}
.rmx-lb-note{font:inherit; color:var(--txt); background:rgba(14,24,44,.6); border:1px solid rgba(140,200,255,.16); border-radius:9px;
  padding:7px 10px; resize:none; min-height:34px; max-height:140px; line-height:1.45; outline:none; transition:border-color .15s; overflow:hidden}
.rmx-lb-note:focus{border-color:var(--edge); background:rgba(14,24,44,.85)}
.rmx-lb-note::placeholder{color:var(--txt-3)}
.rmx-lb-saved{font-size:11px; color:var(--txt-3); align-self:center; min-width:90px}
.rmx-lb-saved.ok{color:#6fdc9a} .rmx-lb-saved.err{color:var(--red)}
.rmx-lb-meta{grid-column:1/-1; display:flex; flex-wrap:wrap; gap:4px 14px; font-size:11px; color:var(--txt-3)}
.rmx-lb-meta span{white-space:nowrap}
.rmx-lb-meta .rar-lb-pt{color:var(--sky-2)}
@media (max-width:700px){
  .rmx-lb-strip{padding:6px 8px 0}
  .rmx-st{height:44px; width:calc(44px * min(var(--ar,1.333), 1.6))}
  .rmx-lb-zoom{bottom:8px}
  .rmx-lb-b span{display:none}
  .rmx-lb-b{padding:0 10px}
  .rmx-lb-stage{padding:0}
  .rmx-lb-nav{width:40px; height:56px; font-size:28px; background:rgba(10,18,34,.35)}
  .rmx-lb-t b,.rmx-lb-t span{max-width:40vw}
  .rmx-lb-foot{padding:8px 10px 12px}
}
/* тост библиотеки — поверх лайтбокса */
#rmx-toast{position:fixed; left:50%; bottom:26px; transform:translate(-50%,12px); z-index:5100; display:flex; align-items:center; gap:12px;
  padding:9px 10px 9px 16px; border-radius:10px; background:rgba(10,18,32,.96); border:1px solid var(--edge); color:var(--txt);
  font:12.5px/1.4 var(--mono); box-shadow:0 12px 40px rgba(0,0,0,.55); opacity:0; pointer-events:none; transition:.18s var(--ease); max-width:min(92vw,560px)}
#rmx-toast:not(:has(button)){padding-right:16px}
#rmx-toast.show{opacity:1; transform:translate(-50%,0); pointer-events:auto}
#rmx-toast.err{border-color:var(--red); color:#ffd2ce}
#rmx-toast button{font:inherit; font-weight:600; color:#04101f; background:var(--sky); border:0; border-radius:7px; padding:5px 12px; cursor:pointer}

/* ── вкладка «Архив» ── */
#rer-view-arch{flex:1; min-height:0; padding:0 14px 14px}
#rer-view-arch[hidden]{display:none}
.rar{height:100%; min-height:0; display:grid; grid-template-columns:250px minmax(0,1fr); gap:0;
  background:var(--panel); border:1px solid var(--line); border-radius:0 var(--radius) var(--radius) var(--radius); overflow:hidden;
  backdrop-filter:blur(6px)}
.rar-bar svg,.rar-sec-h svg,.rar-selbar svg,.rar-state-ic svg,.rar-pt svg{width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; flex:0 0 auto}
/* оглавление */
.rar-toc{min-height:0; display:flex; flex-direction:column; border-right:1px solid var(--line); background:rgba(6,11,22,.45)}
.rar-toc-h{display:flex; align-items:center; gap:8px; padding:14px 14px 10px; font-size:11px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--txt-2)}
.rar-toc-h b{margin-left:auto; font-weight:600; color:var(--sky-2); letter-spacing:.02em; font-size:12px}
.rar-toc-l{flex:1; min-height:0; overflow:auto; padding:2px 8px 10px; scrollbar-width:thin}
.rar-toc-l a{position:relative; display:flex; align-items:center; gap:8px; padding:6px 8px 6px calc(8px + var(--d,0) * 14px); margin:1px 0;
  border-radius:8px; color:var(--txt-2); text-decoration:none; font-size:12.5px; line-height:1.3; transition:background .12s,color .12s}
.rar-toc-l a:hover{background:rgba(58,160,255,.08); color:var(--txt)}
.rar-toc-l a.cur{background:rgba(58,160,255,.14); color:#fff}
.rar-toc-l a.cur::before{content:""; position:absolute; left:0; top:6px; bottom:6px; width:2px; border-radius:2px; background:var(--sky)}
.rar-toc-l a span{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.rar-toc-l a b{font-weight:500; font-size:11px; color:var(--txt-3); font-variant-numeric:tabular-nums}
.rar-toc-l a.cur b{color:var(--sky-2)}
.rar-toc-l a.drop{background:rgba(58,160,255,.25); color:#fff; box-shadow:inset 0 0 0 1px var(--sky)}
.rar-dragging .rar-toc-l a:not(.drop){opacity:.85}
.rar-toc-l a.z span{color:var(--txt-3)}
.rar-toc-l a.off{opacity:.45}
.rar-toc-l a.u span{font-weight:600}
.rar-toc-l .sw{width:8px; height:8px; border-radius:2px; flex:0 0 auto; background:var(--c,rgba(140,200,255,.35));
  box-shadow:0 0 0 1px rgba(255,255,255,.08)}
.rar-toc-l a.u .sw{border-radius:50%}
.rar-toc-tip{padding:10px 14px 14px; border-top:1px solid var(--line); font-size:10.5px; line-height:1.55; color:var(--txt-3)}
.rar-muted{color:var(--txt-3); padding:10px; font-size:12px}
/* основная колонка */
.rar-main{position:relative; min-width:0; min-height:0; display:flex; flex-direction:column}
.rar-bar{display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:10px 12px; border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,rgba(12,20,36,.7),rgba(8,14,26,.5))}
.rar-q{flex:1 1 150px; min-width:120px; display:flex; align-items:center; gap:8px; height:36px; padding:0 10px; border-radius:9px;
  background:rgba(4,9,18,.6); border:1px solid var(--line); color:var(--txt-3); transition:border-color .15s}
.rar-q:focus-within{border-color:var(--edge); color:var(--sky-2)}
.rar-q input{flex:1; min-width:0; font:inherit; color:var(--txt); background:transparent; border:0; outline:none; height:100%}
.rar-q input::placeholder{color:var(--txt-3)}
.rar-q input::-webkit-search-cancel-button{filter:invert(.7)}
.rar-q:focus-within kbd{display:none}
.rar-seg{display:flex; height:36px; border:1px solid var(--line); border-radius:9px; overflow:hidden; background:rgba(4,9,18,.5)}
.rar-seg button{font:inherit; font-size:12px; color:var(--txt-2); background:transparent; border:0; border-right:1px solid var(--line);
  padding:0 10px; display:flex; align-items:center; gap:6px; cursor:pointer; transition:.12s}
.rar-seg button:last-child{border-right:0}
.rar-seg button:hover{color:var(--txt); background:rgba(58,160,255,.08)}
.rar-seg button.sel{color:#fff; background:rgba(58,160,255,.2); box-shadow:inset 0 -2px 0 var(--sky)}
.rar-seg i{font-style:normal; font-size:11px; color:var(--txt-3); font-variant-numeric:tabular-nums}
.rar-seg button.sel i{color:var(--sky-2)}
.rar-sz{display:flex; align-items:center; gap:8px; height:36px; padding:0 10px; border:1px solid var(--line); border-radius:9px;
  color:var(--txt-3); background:rgba(4,9,18,.5)}
.rar-sz input{width:84px; accent-color:var(--sky); cursor:pointer}
.rar-order,.rar-jump,.rar-mv select{font:inherit; font-size:12px; height:36px; color:var(--txt-2); background:rgba(4,9,18,.6);
  border:1px solid var(--line); border-radius:9px; padding:0 8px; cursor:pointer; outline:none}
.rar-order:focus,.rar-jump:focus{border-color:var(--edge)}
.rar-order option,.rar-jump option,.rar-mv option{background:#0b1322; color:var(--txt)}
.rar-jump{display:none; flex:1 1 170px; min-width:0}
.rar-tg{font:inherit; font-size:12px; height:36px; padding:0 12px; display:inline-flex; align-items:center; gap:6px; cursor:pointer;
  color:var(--txt-3); background:rgba(4,9,18,.5); border:1px solid var(--line); border-radius:9px; transition:.12s}
.rar-tg:hover{color:var(--txt)}
.rar-tg.on{color:var(--sky-2); border-color:rgba(58,160,255,.5); background:rgba(58,160,255,.12)}
.rar-btn{font:inherit; font-size:12px; height:32px; padding:0 11px; display:inline-flex; align-items:center; gap:6px; cursor:pointer;
  color:var(--txt-2); background:var(--glass); border:1px solid var(--line); border-radius:8px; transition:.15s var(--ease); white-space:nowrap}
.rar-btn:hover{color:#fff; border-color:var(--edge); background:rgba(58,160,255,.12)}
.rar-btn.mini{height:30px; padding:0 9px}
.rar-btn.icon{width:30px; padding:0; justify-content:center}
.rar-btn.add{color:var(--sky-2); border-color:rgba(58,160,255,.35)}
.rar-btn.add:hover{color:#04101f; background:var(--sky); border-color:var(--sky)}
.rar-btn.danger:hover,.rar-btn.danger.armed{color:#fff; border-color:var(--red); background:rgba(255,68,56,.22)}
.rar-btn.ghost{border-color:transparent; background:transparent; width:32px; padding:0; justify-content:center}
.rar-btn:disabled{opacity:.4; pointer-events:none}
/* лента разделов */
.rar-scroll{position:relative; flex:1; min-height:0; overflow:auto; outline:none; scroll-padding-top:4px; scrollbar-width:thin; overscroll-behavior:contain}
.rar-list{padding:4px 12px 90px}
.rar-sec{position:relative; margin:0 0 6px calc(var(--d,0) * 16px); padding:0 0 12px; border-radius:12px;
  content-visibility:auto; contain-intrinsic-size:auto 300px; transition:background .15s}
.rar-sec.sub{padding-left:12px; border-left:1px solid rgba(140,200,255,.12); border-radius:0 12px 12px 0}
.rar-sec-h{position:sticky; top:0; z-index:3; display:flex; align-items:center; gap:10px; min-height:48px; padding:8px 4px 8px 2px;
  background:linear-gradient(180deg,rgba(9,15,28,.97) 70%,rgba(9,15,28,.88)); backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px)}
.rar-sw{width:10px; height:10px; border-radius:3px; flex:0 0 auto; background:var(--c,rgba(140,200,255,.35)); box-shadow:0 0 10px var(--c,transparent)}
.rar-sec.units > .rar-sec-h .rar-sw{border-radius:50%}
.rar-sec-t{min-width:0; display:flex; flex-direction:column; gap:1px}
.rar-sec-t > div{display:flex; align-items:center; gap:8px; min-width:0}
.rar-sec-t h3{margin:0; font:600 15px/1.25 var(--mono); color:#eaf4ff; letter-spacing:.02em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0}
.rar-sec.sub .rar-sec-t h3{font-size:13.5px; color:#dcebff}
.rar-crumb{font-size:10.5px; color:var(--txt-3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; letter-spacing:.02em}
.rar-kb{flex:0 0 auto; font-size:9.5px; letter-spacing:.12em; text-transform:uppercase; padding:1px 6px; border-radius:5px; color:var(--txt-3);
  border:1px solid var(--line)}
.rar-kb.u{color:var(--sky-2); border-color:rgba(58,160,255,.35)}
.rar-kb.d{color:var(--amber); border-color:rgba(255,176,32,.35)}
.rar-cnt{font-size:11.5px; color:var(--txt-3); white-space:nowrap; font-variant-numeric:tabular-nums}
.rar-found{font-size:11px; color:var(--sky-2); white-space:nowrap}
.rar-sec-h .sp{flex:1}
.rar-here{display:none; font-size:10.5px; letter-spacing:.06em; padding:3px 9px; border-radius:6px; white-space:nowrap;
  color:#04101f; background:var(--sky); box-shadow:0 0 16px rgba(58,160,255,.45)}
/* цель вставки: раздел под мышью, иначе — последний, по которому кликнули */
.rar-sec.rmx-paste-here{background:rgba(58,160,255,.045); box-shadow:inset 0 0 0 1px rgba(58,160,255,.28)}
.rar-list:not(:has(.rar-sec:hover)) .rar-sec.rmx-paste-here > .rar-sec-h .rar-here{display:inline-block}
@media (hover:hover){
  .rar-list:has(.rar-sec:hover) .rar-sec.rmx-paste-here:not(:hover){background:transparent; box-shadow:none}
  .rar-sec:hover{background:rgba(58,160,255,.035)}
  .rar-sec:hover:not(:has(.rar-sec:hover)) > .rar-sec-h .rar-here{display:inline-block; opacity:.8}
}
@media (pointer:coarse){ .rar-here{display:none!important} }
.rar-sec.rmx-drop-on > .rar-sec-h .rar-here{display:inline-block!important}
.rar-sec.rar-drop-on{background:rgba(58,160,255,.09)!important; box-shadow:inset 0 0 0 2px var(--sky)!important}
.rar-sec.rar-drop-on > .rar-sec-h::after{content:"перенести сюда"; font-size:10.5px; padding:3px 9px; border-radius:6px; color:#04101f; background:var(--sky)}
.rar-sec.rar-flash{animation:rar-flash .9s var(--ease)}
@keyframes rar-flash{0%,40%{background:rgba(58,160,255,.14)}100%{background:transparent}}
.rar-sec-b{padding:2px 2px 0}
.rar-sec.empty .rar-sec-b{padding-bottom:2px}
.rar-sec.empty .rar-sec-h{min-height:40px}
.rar-dragging .rar-sec:not(.rar-drop-on) > .rar-sec-h{opacity:.9}
.rmx-tile.dragsrc{opacity:.35}
.rmx-tile.rar-new{animation:rar-new .7s var(--ease)}
@keyframes rar-new{0%{box-shadow:0 0 0 3px rgba(111,220,154,.9) inset}100%{box-shadow:0 0 0 0 rgba(111,220,154,0) inset}}
.rmx-tile.lbcur{box-shadow:0 0 0 2px var(--sky-2) inset}
/* подпись-точка на плитке */
.rar-pt{max-width:100%; display:inline-flex; align-items:center; gap:4px; overflow:hidden; white-space:nowrap; padding:1px 7px 1px 5px; border-radius:5px; cursor:pointer;
  color:#dff0ff; background:rgba(8,26,50,.72); border:1px solid rgba(111,192,255,.28); font-size:10.5px; line-height:15px;
  backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px); transition:background .12s,color .12s}
.rar-pt span{overflow:hidden; text-overflow:ellipsis}
.rar-pt svg{width:11px!important; height:11px!important; flex:0 0 auto; color:var(--sky-2)}
.rar-pt:hover svg{color:#04101f}
.rar-pt:hover{background:var(--sky); color:#04101f; border-color:var(--sky)}
.rar-note{flex-basis:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.rar-dt{margin-left:auto; color:#b8cbe4; font-variant-numeric:tabular-nums; white-space:nowrap}
.rar-dragghost{position:fixed; left:-999px; top:-999px; padding:6px 12px; border-radius:8px; background:var(--sky); color:#04101f; font:600 12px var(--mono)}
/* панель выбора */
.rar-selbar{position:absolute; left:50%; bottom:16px; transform:translateX(-50%); z-index:10; display:flex; align-items:center; gap:8px;
  padding:8px 8px 8px 16px; border-radius:12px; background:rgba(10,18,32,.95); border:1px solid var(--edge);
  box-shadow:0 16px 44px rgba(0,0,0,.55); backdrop-filter:blur(10px); max-width:calc(100% - 24px); white-space:nowrap}
.rar-selbar[hidden]{display:none}
.rar-selbar .n{font-weight:600; font-size:12.5px; color:#fff; margin-right:6px; white-space:nowrap}
.rar-selbar .sp{flex:1}
.rar-mv{display:flex; align-items:center; gap:6px; font-size:12px; color:var(--txt-2)}
.rar-mv select{height:32px; max-width:200px}
.rar-mv svg{color:var(--sky-2)}
/* состояния */
.rar-state{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; text-align:center;
  min-height:320px; padding:40px 20px; color:var(--txt-2)}
.rar-state b{font-size:15px; color:var(--txt); font-weight:600}
.rar-state span{font-size:12px; color:var(--txt-3); max-width:420px}
.rar-state-ic{width:64px; height:64px; border-radius:18px; display:grid; place-items:center; color:var(--sky-2); font-size:26px;
  background:radial-gradient(circle at 30% 20%,rgba(58,160,255,.25),rgba(58,160,255,.05)); border:1px solid rgba(58,160,255,.25)}
.rar-state-ic svg{width:30px; height:30px}
.rar-state.loading .rar-state-ic{border-color:transparent; border-top-color:var(--sky); border-radius:50%; width:36px; height:36px;
  background:none; border-width:2px; border-style:solid; animation:rar-spin .8s linear infinite}
@keyframes rar-spin{to{transform:rotate(360deg)}}
.rar-state.err .rar-state-ic{color:var(--red); border-color:rgba(255,68,56,.35); background:rgba(255,68,56,.08)}
.rar.rar-off .rar-toc{display:none}
.rar.rar-off{grid-template-columns:1fr}
.rar.rar-off .rar-bar{display:none}
/* узкий экран: оглавление — выпадающим списком */
@media (max-width:900px){
  .rar{grid-template-columns:1fr}
  .rar-toc{display:none}
  .rar-jump{display:block}
  .rar-sz input{width:80px}
  .rar-sec{margin-left:calc(var(--d,0) * 8px)}
  .rar-crumb{display:none}
}
@media (max-width:560px){
  .rmx-tile{width:calc(min(var(--rmx-sz,140px), 21vw) * var(--ar,1.333))}
  .rar-sz,.rar-empty-tg{display:none}
  .rar-q{flex-basis:100%}
  .rar-jump{flex:1 1 120px}
  .rar-seg button{padding:0 8px}
  #rer-view-arch{padding:0 6px 8px}
  .rar-bar{gap:6px; padding:8px}
  .rar-seg button span{display:none}
  .rar-order{display:none}
  .rar-tg span{display:none}
  .rar-list{padding:4px 8px 90px}
  .rar-btn.add span{display:none}
  .rar-btn.add{width:34px; padding:0; justify-content:center}
  .rar-cnt{display:none}
  .rar-kb{display:none}
  .rmx-grid{--rmx-gap:4px}
}
@media (pointer:coarse){
  .rar-btn,.rar-tg,.rar-seg,.rar-q,.rar-sz,.rar-order,.rar-jump{min-height:40px}
  .rar-btn.mini{height:36px}
  .rar-btn.icon{width:36px}
}
.rmx-st i svg{fill:currentColor; stroke:none}

/* === docs === (документы в архиве/точках: карточки-листы rmx-doc, просмотр rer-docs.js — rdoc-*) ─── */
[data-fmt="word"]{--dc:#2B6CD4} [data-fmt="pdf"]{--dc:#E0443A} [data-fmt="sheet"]{--dc:#1F9D55}
[data-fmt="slides"]{--dc:#E0702A} [data-fmt="text"]{--dc:#7A8799}
/* полка документов над сеткой фото/видео */
.rmx-shelf{display:flex; flex-wrap:wrap; gap:14px 12px; align-items:flex-start; margin:2px 0 12px; padding:2px 2px 0}
.rmx-shelf[hidden],.rmx-grid.nomedia{display:none}
.rmx-tile.rmx-doc{--dw:calc(min(var(--rmx-sz,140px), 27vw) * .92 + 22px); width:var(--dw); flex:0 0 auto; max-width:calc(50% - 6px);
  overflow:visible; background:none; box-shadow:none; border-radius:10px; cursor:pointer; display:flex; flex-direction:column; gap:7px; padding:0}
.rmx-tile.rmx-doc:hover{box-shadow:none}
.rmx-tile.rmx-doc:focus-visible{box-shadow:none; outline:2px solid var(--sky); outline-offset:3px}
/* лист: белая бумага с загнутым углом (clip-path) и тенью (drop-shadow держит форму среза) */
.rmx-sheet{position:relative; aspect-ratio:3/4; width:100%; filter:drop-shadow(0 6px 14px rgba(0,0,0,.5)) drop-shadow(0 1px 1px rgba(0,0,0,.35));
  transition:transform .2s var(--ease),filter .2s var(--ease)}
.rmx-doc:hover .rmx-sheet{transform:translateY(-3px); filter:drop-shadow(0 14px 22px rgba(0,0,0,.6)) drop-shadow(0 1px 1px rgba(0,0,0,.35))}
.rmx-sheet-in{position:absolute; inset:0; background:linear-gradient(180deg,#ffffff,#f3f5f9); border-radius:3px; overflow:hidden;
  clip-path:polygon(0 0, 80% 0, 100% 15%, 100% 100%, 0 100%); padding:13% 11% 15%; display:flex; flex-direction:column; gap:5px; box-sizing:border-box}
.rmx-sheet-in::before{content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--dc,#7A8799); opacity:.9}
.rmx-fold{position:absolute; right:0; top:0; width:20%; height:15%; border-radius:0 0 0 3px;
  background:linear-gradient(to bottom left, transparent 49%, #c9d1dd 50%, #eef1f6 100%)}
.rmx-dt{margin-right:13%; font:700 10.5px/1.25 "PT Serif",Georgia,serif; color:#141a26; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; flex:0 0 auto; word-break:break-word}
.rmx-dx{font:400 7.2px/1.5 "PT Serif",Georgia,serif; color:#586273; overflow:hidden; flex:1 1 auto; min-height:0; white-space:pre-line; word-break:break-word;
  -webkit-mask-image:linear-gradient(180deg,#000 72%,transparent); mask-image:linear-gradient(180deg,#000 72%,transparent); text-align:justify; hyphens:auto}
.rmx-dx.short{flex:0 0 auto; -webkit-mask-image:none; mask-image:none}
.rmx-dt{hyphens:auto; -webkit-hyphens:auto; word-break:normal; overflow-wrap:anywhere}
.rmx-dgrid{display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #cfd6e1; border-left:1px solid #cfd6e1; flex:0 0 auto}
.rmx-dgrid i{font:normal 6.8px/1.6 system-ui,sans-serif; color:#3d4656; padding:0 2px; border-right:1px solid #cfd6e1; border-bottom:1px solid #cfd6e1;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-height:1.6em}
.rmx-dgrid i:nth-child(-n+3){background:#eef3ee; font-weight:700; color:#1d5b37}
.rmx-dcov.page{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:top center; background:#fff}
.rmx-dcov.image{width:100%; aspect-ratio:16/10; object-fit:cover; border-radius:2px; flex:0 0 auto; box-shadow:0 0 0 1px rgba(20,30,50,.12)}
.rmx-dlines{flex:1; background:repeating-linear-gradient(180deg,#e2e7ee 0 4px,transparent 4px 11px); -webkit-mask-image:linear-gradient(90deg,#000 85%,transparent); mask-image:linear-gradient(90deg,#000 85%,transparent); opacity:.9}
.rmx-dext{position:absolute; left:-5px; bottom:9%; padding:2px 7px; border-radius:4px; background:var(--dc,#7A8799); color:#fff;
  font:700 10px/1.5 var(--mono); letter-spacing:.08em; box-shadow:0 2px 6px rgba(0,0,0,.35)}
.rmx-dlock{position:absolute; right:7px; bottom:9%; padding:1px 6px; border-radius:4px; background:#fff1ef; color:#c0392b; font:600 9px/1.5 var(--mono); border:1px solid #f3c1bb}
.rmx-dinfo{display:flex; flex-direction:column; gap:2px; min-width:0; padding:0 2px}
.rmx-dname{font-size:12px; font-weight:600; line-height:1.3; color:var(--txt); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; word-break:break-word}
.rmx-dmeta{font-size:10.5px; color:var(--txt-3); font-variant-numeric:tabular-nums; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.rmx-dnote{font-size:10.5px; font-style:italic; color:var(--txt-2); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
.rmx-dcap{display:flex; flex-wrap:wrap; gap:3px; margin-top:2px; min-width:0}
.rmx-dcap .rar-dt,.rmx-dcap .rar-note{display:none}
.rmx-dcap .rar-pt{font-size:10.5px; color:var(--txt-2); background:rgba(58,160,255,.08); border:1px solid rgba(140,200,255,.16)}
.rmx-doc .rmx-chk{left:4px; top:4px; border-color:rgba(40,60,90,.55); background:rgba(255,255,255,.85)}
.rmx-doc .rmx-chk::after{border-color:#fff}
.rmx-tile.rmx-doc.sel{box-shadow:none}
.rmx-tile.rmx-doc.sel .rmx-sheet-in{box-shadow:inset 0 0 0 3px var(--sky)}
.rmx-tile.rmx-doc.sel .rmx-dname{color:var(--sky-2)}
.rmx-tile.rmx-doc.lbcur .rmx-sheet{transform:translateY(-3px)}
/* заглушка загрузки документа на полке */
.rmx-tile.rmx-up.rmx-doc{display:block; border-radius:6px; background:linear-gradient(160deg,rgba(255,255,255,.1),rgba(255,255,255,.03));
  box-shadow:0 0 0 1px rgba(58,160,255,.5) inset}
.rmx-tile.rmx-up.rmx-doc .rmx-pad{padding-bottom:133.3%}
/* лента миниатюр лайтбокса: метка типа у документа */
.rmx-st-ext{position:absolute; left:3px; bottom:3px; padding:0 4px; border-radius:3px; background:var(--dc,#7A8799); color:#fff; font:700 8px/1.5 var(--mono); pointer-events:none}

/* ── просмотр документа в лайтбоксе ── */
.rmx-lb.is-doc .rmx-lb-stage{touch-action:auto; user-select:text; -webkit-user-select:text; padding:0 62px}
.rmx-lb.is-doc .rmx-lb-stage > .rmx-lb-zoom{display:none}
.rmx-lb.is-doc .rmx-lb-nav{opacity:.55} .rmx-lb.is-doc .rmx-lb-nav:hover{opacity:1}
.rmx-doc-host{position:absolute; inset:0; min-height:0}
.rmx-doc-fail{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; color:var(--txt-2); text-align:center; padding:20px}
.rmx-doc-fail b{color:var(--txt); font-size:15px}
.rdoc{position:absolute; inset:0; display:flex; flex-direction:column; min-height:0}
.rdoc-scroll{flex:1 1 auto; min-height:0; overflow:auto; overscroll-behavior:contain; outline:none; -webkit-overflow-scrolling:touch; touch-action:pan-x pan-y pinch-zoom;
  scrollbar-width:thin; scrollbar-color:rgba(140,200,255,.3) transparent}
.rdoc-body{min-height:100%; transform-origin:0 0}
.rdoc-frame{display:block; border:0; background:transparent; margin:0 auto; min-width:100%; height:200px; color-scheme:light}
.rdoc-bar{position:absolute; left:50%; bottom:12px; transform:translateX(-50%); z-index:3; display:flex; align-items:center;
  border-radius:11px; overflow:hidden; background:rgba(8,14,26,.86); border:1px solid rgba(140,200,255,.2);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); box-shadow:0 8px 26px rgba(0,0,0,.45); opacity:.7; transition:opacity .15s}
.rdoc-bar[hidden]{display:none}
.rdoc:hover .rdoc-bar,.rdoc-bar:focus-within{opacity:1}
.rdoc-bar button{font:inherit; font-size:12px; height:34px; min-width:38px; padding:0 8px; border:0; border-right:1px solid rgba(140,200,255,.12);
  background:transparent; color:var(--txt-2); cursor:pointer; display:grid; place-items:center; font-variant-numeric:tabular-nums}
.rdoc-bar button:last-child{border-right:0}
.rdoc-bar button:hover{color:#fff; background:rgba(58,160,255,.18)}
.rdoc-bar .pct{min-width:58px; color:var(--txt)}
.rdoc-bar svg{width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round}
.rdoc-pg{padding:0 12px; font-size:12px; color:var(--txt); font-variant-numeric:tabular-nums; white-space:nowrap}
.rdoc-pg:empty{display:none}
.rdoc-sep{width:1px; align-self:stretch; background:rgba(140,200,255,.14)}
.rdoc-pg:empty + .rdoc-sep{display:none}
.rdoc-load{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; color:var(--txt-2);
  pointer-events:none; transition:opacity .25s}
.rdoc-load.done{opacity:0}
.rdoc-load b{font-weight:500; color:var(--txt)} .rdoc-load small{font-size:11px; color:var(--txt-3); font-variant-numeric:tabular-nums}
.rdoc-ring{width:46px; height:46px; transform:rotate(-90deg); animation:rdocSpin 1.6s linear infinite}
.rdoc-ring circle{fill:none; stroke-width:3} .rdoc-ring .bg{stroke:rgba(140,200,255,.16)} .rdoc-ring .fg{stroke:var(--sky); stroke-linecap:round; transition:stroke-dasharray .2s}
@keyframes rdocSpin{to{transform:rotate(270deg)}}
/* PDF */
.rdoc-pages{display:flex; flex-direction:column; align-items:center; gap:18px; padding:18px 18px 72px; width:max-content; min-width:100%; box-sizing:border-box}
.rdoc-pdfpg{position:relative; flex:0 0 auto; background:#fff; box-shadow:0 12px 42px rgba(0,0,0,.55),0 0 0 1px rgba(0,0,0,.08); border-radius:2px; overflow:hidden}
.rdoc-pdfpg canvas{position:absolute; inset:0; width:100%; height:100%; display:block}
.rdoc-pdfpg:not(.in)::after{content:attr(data-n); position:absolute; inset:0; display:grid; place-items:center; color:#b8c0cc; font:600 28px var(--mono)}
.rdoc-pdfpg.err::after{content:attr(data-err); font-size:12px}
/* «лист бумаги» для .doc/.rtf/.txt/.odt */
.rdoc-paper{box-sizing:border-box; width:min(820px, calc(100% - 36px)); margin:18px auto 72px; background:#fdfdfe; color:#1b2130; padding:clamp(22px,6vw,64px) clamp(18px,7vw,72px);
  aspect-ratio:1/1.414; box-shadow:0 12px 42px rgba(0,0,0,.55); border-radius:2px; font:15px/1.62 "PT Serif",Georgia,"Times New Roman",serif; user-select:text; -webkit-user-select:text; transform-origin:50% 0}
.rdoc-paper h1{font-size:21px; line-height:1.3; text-align:center; margin:0 0 18px}
.rdoc-paper h2,.rdoc-paper h3,.rdoc-paper h4,.rdoc-paper h5{margin:18px 0 8px; line-height:1.3; color:#17305a}
.rdoc-paper p{margin:0 0 .45em; text-align:justify; hyphens:auto; white-space:pre-wrap; word-break:break-word}
.rdoc-paper p.gap{height:.5em; margin:0}
.rdoc-paper ul{margin:4px 0 10px 1.4em; padding:0}
.rdoc-paper.mono{font:13px/1.55 var(--mono)}
.rdoc-paper pre{margin:0; font:inherit; white-space:pre-wrap; word-break:break-word}
.rdoc-img{max-width:100%; height:auto; display:block; margin:8px auto}
.rdoc-otbl{border-collapse:collapse; margin:10px 0; width:100%; font-size:.92em}
.rdoc-otbl td{border:1px solid #c7ceda; padding:4px 8px; vertical-align:top}
.rdoc-otbl td p{margin:0; text-align:left}
/* таблицы (.xlsx/.ods/.csv) */
.rdoc-sheetwrap{padding:14px 18px 72px; box-sizing:border-box; width:max-content; max-width:100%; margin:0 auto}
.rdoc-tabs{display:flex; gap:4px; flex-wrap:wrap; margin:0 0 10px}
.rdoc-tabs button{font:inherit; font-size:12px; height:32px; padding:0 12px; border-radius:8px 8px 3px 3px; cursor:pointer; color:var(--txt-2);
  background:rgba(14,24,44,.7); border:1px solid rgba(140,200,255,.16); border-bottom:2px solid transparent}
.rdoc-tabs button:hover{color:#fff}
.rdoc-tabs button.sel{color:#fff; background:rgba(31,157,85,.22); border-color:rgba(31,157,85,.55); border-bottom-color:#1F9D55}
.rdoc-tblbox{overflow:auto; max-width:100%; width:max-content; border-radius:8px; background:#fff; box-shadow:0 12px 42px rgba(0,0,0,.5)}
.rdoc-tbl{border-collapse:separate; border-spacing:0; font:13px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; color:#1b2130}
.rdoc-tbl th,.rdoc-tbl td{border-right:1px solid #e2e6ed; border-bottom:1px solid #e2e6ed; padding:4px 9px; white-space:pre-wrap; max-width:340px; vertical-align:top; text-align:left}
.rdoc-tbl thead th{position:sticky; top:0; z-index:1; background:#eef1f5; color:#5b6474; font-weight:600; text-align:center}
.rdoc-tbl th.c0{position:sticky; left:0; background:#eef1f5; color:#8a93a3; font-weight:500; text-align:right; min-width:30px}
.rdoc-tbl thead th.c0{z-index:2}
.rdoc-tbl td.n{text-align:right; font-variant-numeric:tabular-nums}
.rdoc-tbl tbody tr:hover td{background:#f5f8fc}
.rdoc-more,.rdoc-mini{padding:10px 4px; color:var(--txt-3); font-size:12px}
.rdoc-mini.err{color:#ffb4ae}
/* карточка (нет просмотра / ошибка) */
.rdoc-cardwrap{align-items:center; justify-content:center; overflow:auto; padding:20px; box-sizing:border-box}
.rdoc-card{display:flex; gap:32px; align-items:center; max-width:900px; width:100%; margin:auto}
.rdoc-card-sheet{flex:0 0 auto; width:min(300px,34vw); aspect-ratio:3/4; border-radius:12px; overflow:hidden; box-shadow:0 18px 60px rgba(0,0,0,.6); background:#1b2638}
.rdoc-card-sheet img{width:100%; height:100%; display:block; object-fit:cover}
.rdoc-card-i{flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:10px}
.rdoc-badge{align-self:flex-start; padding:3px 10px; border-radius:6px; font:700 12px/1.5 var(--mono); letter-spacing:.1em; color:#fff; background:var(--dc,#7A8799)}
.rdoc-card-i h2{margin:0; font-size:23px; line-height:1.25; color:#eaf4ff; font-weight:600; word-break:break-word}
.rdoc-card-fn{color:var(--txt-3); font-size:12px; word-break:break-all}
.rdoc-card-m{display:flex; flex-wrap:wrap; gap:6px}
.rdoc-card-m span{padding:3px 9px; border-radius:6px; background:rgba(140,200,255,.07); border:1px solid rgba(140,200,255,.14); color:var(--txt-2); font-size:12px}
.rdoc-card-m span.sh{border-color:rgba(31,157,85,.4); color:#9fe3bb}
.rdoc-card-x{margin:2px 0 0; color:var(--txt-2); font:14px/1.6 "PT Serif",Georgia,serif; white-space:pre-line; max-height:10em; overflow:hidden;
  -webkit-mask-image:linear-gradient(180deg,#000 70%,transparent); mask-image:linear-gradient(180deg,#000 70%,transparent)}
.rdoc-card-b{display:flex; gap:8px; flex-wrap:wrap; margin-top:6px}
.rdoc-btn{display:inline-flex; align-items:center; gap:8px; height:42px; padding:0 16px; border-radius:10px; text-decoration:none; font-size:13px;
  color:var(--txt); background:rgba(14,24,44,.8); border:1px solid rgba(140,200,255,.22); transition:.15s var(--ease)}
.rdoc-btn:hover{border-color:var(--sky); background:rgba(58,160,255,.16); color:#fff}
.rdoc-btn.pri{background:var(--sky); border-color:var(--sky); color:#04101f; font-weight:600}
.rdoc-btn.pri:hover{background:var(--sky-2); color:#04101f}
.rdoc-btn svg{width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round}
.rdoc-card-r{color:var(--txt-3); font-size:12px; line-height:1.45}
@media (max-width:700px){
  .rmx-lb.is-doc .rmx-lb-stage{padding:0}
  .rmx-lb.is-doc .rmx-lb-nav{width:36px; height:56px; opacity:.4}
  .rdoc-card{flex-direction:column; gap:18px; text-align:left}
  .rdoc-card-sheet{width:min(210px,56vw)}
  .rdoc-sheetwrap{padding:10px 8px 72px}
}
/* карточка точки на карте: плитка-лист документа */
.rdw-mt.doc.sheet{background:#1b2638}
.rdw-mt.doc.sheet img{object-position:50% 38%}
.rdw-mt.doc.sheet .rdw-mt-doc{position:absolute; inset:0; justify-content:center}
@media (max-width:1560px){ .rar-seg button[data-k="photo"] span,.rar-seg button[data-k="video"] span,.rar-seg button[data-k="doc"] span{display:none} }

/* === osint === (rer-archive.js: вкладка «OsintРЭР» — документы Word/Excel по подразделениям, режим чтения — osr-*) ─── */
.osr{--w:#2B6CD4; --x:#1F9D55; position:relative; height:100%; min-height:0; display:grid; grid-template-columns:252px minmax(0,1fr);
  background:var(--panel); border:1px solid var(--line); border-radius:0 var(--radius) var(--radius) var(--radius); overflow:hidden; backdrop-filter:blur(6px)}
.osr svg{width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; flex:0 0 auto}
.osr.osr-off{grid-template-columns:1fr}
.osr.osr-off .osr-toc{display:none}
.osr .sp{flex:1}
.osr kbd{font:10px/1 var(--mono); padding:2px 5px; border-radius:4px; border:1px solid rgba(140,200,255,.25); background:rgba(140,200,255,.06); color:var(--txt-2)}
.osr-muted{color:var(--txt-3); font-size:12px; line-height:1.5; padding:6px 2px}
.osr .dot{display:inline-block; width:8px; height:8px; border-radius:2px; margin-right:6px; vertical-align:0}
.osr .dot.w{background:var(--w)} .osr .dot.x{background:var(--x)}
/* кнопки */
.osr-btn{font:inherit; font-size:12px; display:inline-flex; align-items:center; gap:7px; height:34px; padding:0 13px; border-radius:9px; cursor:pointer; white-space:nowrap;
  color:var(--txt); background:rgba(14,24,44,.7); border:1px solid rgba(140,200,255,.2); transition:background .15s,border-color .15s,color .15s,transform .15s var(--ease)}
.osr-btn:hover{border-color:var(--sky); background:rgba(58,160,255,.14); color:#fff}
.osr-btn.pri{background:linear-gradient(180deg,#48A8FF,#2C8EF0); border-color:#58B2FF; color:#03101f; font-weight:700; box-shadow:0 6px 18px rgba(58,160,255,.28)}
.osr-btn.pri:hover{background:linear-gradient(180deg,#63B6FF,#3A9BFA); color:#03101f; transform:translateY(-1px)}
.osr-btn.big{height:46px; padding:0 22px; font-size:14px; border-radius:12px}
.osr-btn.mini{height:28px; padding:0 10px; font-size:11.5px; border-radius:8px}
.osr-btn.danger:hover{border-color:var(--red); background:rgba(255,68,56,.14); color:#ffd2ce}
.osr-link{font:inherit; font-size:12px; color:var(--sky-2); background:none; border:0; padding:0; cursor:pointer; text-decoration:underline; text-underline-offset:3px}

/* ── оглавление подразделений ── */
.osr-toc{min-height:0; display:flex; flex-direction:column; border-right:1px solid var(--line); background:linear-gradient(180deg,rgba(8,14,28,.7),rgba(6,11,22,.45))}
.osr-brand{padding:18px 16px 14px; border-bottom:1px solid var(--line); display:flex; flex-direction:column; gap:3px}
.osr-brand b{font:700 21px/1.1 var(--serif); letter-spacing:.01em; color:#eaf4ff}
.osr-brand b em{font-style:normal; color:var(--sky-2); background:linear-gradient(90deg,#6FC0FF,#3AA0FF); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent}
.osr-brand span{font-size:10.5px; color:var(--txt-3); letter-spacing:.06em}
.osr-toc-h{display:flex; align-items:center; gap:8px; padding:14px 16px 8px; font-size:10.5px; font-weight:700; letter-spacing:.16em; color:var(--txt-3); text-transform:uppercase}
.osr-toc-h b{margin-left:auto; font-weight:600; color:var(--txt-2); letter-spacing:0}
.osr-toc-l{flex:1; min-height:0; overflow:auto; padding:0 8px 10px; scrollbar-width:thin; scrollbar-color:rgba(140,200,255,.25) transparent}
.osr-toc-l a{display:flex; align-items:center; gap:9px; padding:7px 9px 7px calc(9px + var(--d,0) * 14px); margin:1px 0; border-radius:8px; color:var(--txt-2);
  text-decoration:none; font-size:12.5px; line-height:1.3; transition:background .12s,color .12s}
.osr-toc-l a span{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.osr-toc-l a b{font-weight:600; font-size:11px; color:var(--txt-2); background:rgba(140,200,255,.1); border-radius:10px; padding:0 7px; line-height:18px; font-variant-numeric:tabular-nums}
.osr-toc-l a b:empty{display:none}
.osr-toc-l a .sw{width:9px; height:9px; border-radius:3px; flex:0 0 auto; background:var(--c,rgba(140,200,255,.35)); box-shadow:0 0 0 1px rgba(255,255,255,.08)}
.osr-toc-l a.u .sw{border-radius:50%}
.osr-toc-l a.u{color:var(--txt); font-weight:600}
.osr-toc-l a.z{color:var(--txt-3)} .osr-toc-l a.z.u{color:#8fa6c6}
.osr-toc-l a:hover{background:rgba(58,160,255,.1); color:#fff}
.osr-toc-l a.cur{background:rgba(58,160,255,.16); color:#fff; box-shadow:inset 3px 0 0 var(--sky)}
.osr-toc-l a.osr-drop-on{background:rgba(58,160,255,.28); box-shadow:inset 0 0 0 1.5px var(--sky)}
.osr-newunit{margin:8px 12px 14px; font:inherit; font-size:12px; display:flex; align-items:center; justify-content:center; gap:7px; height:36px; border-radius:10px; cursor:pointer;
  color:var(--sky-2); background:rgba(58,160,255,.06); border:1px dashed rgba(111,192,255,.45); transition:.15s}
.osr-newunit:hover{background:rgba(58,160,255,.16); color:#fff; border-style:solid}

/* ── полки ── */
.osr-main{position:relative; min-width:0; min-height:0; display:flex; flex-direction:column}
.osr-bar{flex:0 0 auto; display:flex; align-items:center; flex-wrap:nowrap; gap:8px; padding:12px 16px; border-bottom:1px solid var(--line); background:rgba(6,11,22,.35)}
.osr-q{display:flex; align-items:center; gap:8px; height:36px; padding:0 10px; flex:1 1 170px; min-width:120px; max-width:380px; border-radius:10px; background:rgba(4,9,18,.6); border:1px solid rgba(140,200,255,.18); color:var(--txt-3)}
.osr-q:focus-within{border-color:var(--sky); box-shadow:0 0 0 3px rgba(58,160,255,.15)}
.osr-q input{flex:1; min-width:0; font:inherit; font-size:13px; color:var(--txt); background:none; border:0; outline:none}
.osr-q input::-webkit-search-cancel-button{filter:invert(.7)}
.osr-seg{display:flex; padding:3px; gap:2px; border-radius:10px; background:rgba(4,9,18,.6); border:1px solid rgba(140,200,255,.14)}
.osr-seg button{font:inherit; font-size:12px; height:28px; padding:0 11px; border-radius:7px; border:0; background:none; color:var(--txt-2); cursor:pointer; display:flex; align-items:center; white-space:nowrap}
.osr-seg button i{font-style:normal; margin-left:6px; font-size:11px; color:var(--txt-3); font-variant-numeric:tabular-nums}
.osr-seg button:hover{color:#fff}
.osr-seg button.sel{background:rgba(58,160,255,.2); color:#fff; box-shadow:inset 0 0 0 1px rgba(111,192,255,.4)}
.osr-seg button.sel i{color:var(--sky-2)}
.osr-order{font:inherit; font-size:12px; height:34px; padding:0 8px; border-radius:9px; color:var(--txt-2); background:rgba(4,9,18,.6); border:1px solid rgba(140,200,255,.14); cursor:pointer}
.osr-order option,.osr select option{background:#0b1322; color:var(--txt)}
.osr-tg{font:inherit; font-size:12px; height:34px; padding:0 11px; border-radius:9px; cursor:pointer; color:var(--txt-3); background:none; border:1px solid rgba(140,200,255,.14)}
.osr-tg:hover{color:var(--txt)} .osr-tg.on{color:var(--sky-2); border-color:rgba(111,192,255,.45); background:rgba(58,160,255,.1)}
.osr-addwrap{position:relative}
.osr-menu{position:absolute; right:0; top:calc(100% + 6px); z-index:30; width:280px; max-height:min(60vh,420px); overflow:auto; padding:6px; border-radius:12px;
  background:rgba(9,16,30,.97); border:1px solid rgba(140,200,255,.25); box-shadow:0 18px 50px rgba(0,0,0,.6); backdrop-filter:blur(10px)}
.osr-menu[hidden]{display:none}
.osr-menu-h{padding:6px 10px 8px; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--txt-3)}
.osr-menu button{width:100%; font:inherit; font-size:12.5px; display:flex; align-items:center; gap:9px; padding:8px 10px 8px calc(10px + var(--d,0) * 14px); border-radius:8px; border:0;
  background:none; color:var(--txt); cursor:pointer; text-align:left}
.osr-menu button span{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.osr-menu button b{font-weight:500; font-size:11px; color:var(--txt-3)}
.osr-menu button svg{color:var(--sky-2); width:15px; height:15px}
.osr-menu button:hover,.osr-menu button.cur{background:rgba(58,160,255,.16)}
.osr-scroll{flex:1; min-height:0; overflow:auto; outline:none; padding:6px 18px 60px; scrollbar-width:thin; scrollbar-color:rgba(140,200,255,.25) transparent}
.osr-list{display:flex; flex-direction:column; gap:14px; min-height:100%}
/* раздел */
.osr-sec{position:relative; margin-left:calc(var(--d,0) * 18px); padding:12px 14px 16px; border-radius:14px; border:1px solid transparent; transition:border-color .2s,background .2s}
.osr-sec.target{background:rgba(58,160,255,.03); border-color:rgba(111,192,255,.12)}
.osr-sec.osr-drop-on{border-color:var(--sky); background:rgba(58,160,255,.1); box-shadow:inset 0 0 0 1px var(--sky)}
.osr-sec.osr-flash{animation:osrFlash 1.1s ease-out}
@keyframes osrFlash{0%{background:rgba(58,160,255,.22)}100%{background:transparent}}
.osr-sec-h{display:flex; align-items:center; flex-wrap:wrap; gap:8px 10px; margin:0 0 14px; min-height:32px}
.osr-sw{width:12px; height:12px; border-radius:4px; background:var(--c,rgba(140,200,255,.4)); flex:0 0 auto; box-shadow:0 0 0 3px rgba(140,200,255,.06)}
.osr-sec.units .osr-sw{border-radius:50%}
.osr-sec-t{display:flex; flex-direction:column; min-width:0}
.osr-sec-t > div{display:flex; align-items:center; gap:8px; min-width:0}
.osr-sec-t h3{margin:0; font:600 16px/1.25 var(--serif); color:#eaf4ff; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.osr-sec.sub .osr-sec-t h3{font-size:14.5px}
.osr-crumb{font-size:10.5px; color:var(--txt-3); letter-spacing:.03em}
.osr-kb{font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; padding:1px 7px; border-radius:5px; border:1px solid; white-space:nowrap}
.osr-kb.u{color:#9fd0ff; border-color:rgba(111,192,255,.35)} .osr-kb.d{color:#ffcf8a; border-color:rgba(255,176,32,.35)}
.osr-cnt{display:flex; gap:6px}
.osr-cnt .c{font-size:11px; padding:1px 8px; border-radius:10px; line-height:18px; font-variant-numeric:tabular-nums}
.osr-cnt .c.w{color:#b7d0ff; background:rgba(43,108,212,.2)} .osr-cnt .c.x{color:#a6e7c2; background:rgba(31,157,85,.2)}
.osr-cnt .c.z{color:var(--txt-3); background:rgba(140,200,255,.06)}
.osr-found{font-size:11px; color:var(--amber)}
.osr-chip{font:inherit; font-size:11px; display:inline-flex; align-items:center; gap:5px; height:22px; padding:0 8px; border-radius:11px; cursor:pointer;
  color:var(--txt-3); background:none; border:1px solid rgba(140,200,255,.16)}
.osr-chip svg{width:13px; height:13px}
.osr-chip:hover{color:var(--txt); border-color:var(--edge)}
/* полка карточек */
.osr-shelf{display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:22px 18px; align-items:start}
.osr-shelf .rmx-tile.rmx-doc{width:auto; max-width:none; --rmx-sz:150px}
.osr-shelf .rmx-dname{font-family:var(--serif); font-size:13px}
.osr-shelf .rmx-sheet-in::before{width:4px}
.osr-shelf .rmx-dext{font-size:10.5px}
.osr-shelf .rmx-doc[data-fmt="word"] .rmx-dext{background:var(--w)} .osr-shelf .rmx-doc[data-fmt="sheet"] .rmx-dext{background:var(--x)}
.rmx-doc.osr-new .rmx-sheet{animation:osrNew 1.6s var(--ease)}
@keyframes osrNew{0%{transform:translateY(14px) scale(.94); opacity:0}40%{opacity:1}100%{transform:none}}
.rmx-doc.osr-was .rmx-sheet-in{box-shadow:inset 0 0 0 3px var(--sky)}
.rmx-doc.dragsrc{opacity:.4}
.osr-addtile{font:inherit; aspect-ratio:3/4; width:100%; border-radius:6px; cursor:pointer; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  color:var(--txt-3); background:rgba(140,200,255,.03); border:1.5px dashed rgba(140,200,255,.22); font-size:12px; transition:.18s var(--ease)}
.osr-addtile .pl{width:42px; height:42px; border-radius:50%; display:grid; place-items:center; background:rgba(58,160,255,.1); color:var(--sky-2)}
.osr-addtile .pl svg{width:20px; height:20px}
.osr-addtile:hover{color:#fff; border-color:var(--sky); background:rgba(58,160,255,.08); transform:translateY(-2px)}
/* пустой раздел */
.osr-drop{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; min-height:150px; padding:22px; border-radius:14px; cursor:pointer; text-align:center;
  border:1.5px dashed rgba(140,200,255,.25); background:radial-gradient(120% 120% at 50% 0%,rgba(58,160,255,.07),transparent 60%); color:var(--txt-3); font-size:12px; transition:.18s}
.osr-drop svg{width:28px; height:28px; color:var(--sky-2); margin-bottom:4px}
.osr-drop b{font:600 15px/1.3 var(--serif); color:var(--txt)}
.osr-drop:hover,.osr-sec.osr-drop-on .osr-drop{border-color:var(--sky); background:rgba(58,160,255,.1); color:var(--txt-2)}
.osr-sec.hdr{padding-bottom:0} .osr-sec.hdr .osr-sec-h{margin-bottom:0}
.osr-seg button i:empty,.osr-seg button:not(.sel) i{opacity:.8}
.osr-none{font-size:12px; color:var(--txt-3); padding:4px 2px 8px}
.osr-focusbar{display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:10px 14px; margin-top:6px; border-radius:10px; font-size:12px; color:var(--txt-2); background:rgba(58,160,255,.06); border:1px solid rgba(140,200,255,.12)}
/* состояния */
.osr-state{margin:auto; display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center; color:var(--txt-3); padding:60px 20px; font-size:12.5px}
.osr-state b{font:600 17px/1.3 var(--serif); color:var(--txt)}
.osr-state.err b{color:#ffb4ae}
.osr-spin{width:38px; height:38px; animation:osrSpin 1.1s linear infinite}
.osr-spin circle{fill:none; stroke:var(--sky); stroke-width:3; stroke-dasharray:60 100; stroke-linecap:round}
@keyframes osrSpin{to{transform:rotate(360deg)}}

/* ── пустой экран ── */
.osr-hero{margin:auto; width:100%; max-width:760px; display:flex; flex-direction:column; align-items:center; gap:14px; padding:18px 6px}
.osr-hero-card{width:100%; display:flex; flex-direction:column; align-items:center; text-align:center; gap:10px; padding:30px 34px 30px; border-radius:22px;
  border:2px dashed rgba(111,192,255,.35); background:radial-gradient(90% 80% at 50% 0%,rgba(58,160,255,.12),rgba(58,160,255,.02) 70%),rgba(4,9,18,.35);
  transition:border-color .2s,background .2s,transform .2s var(--ease)}
.osr-hero.osr-drop-on .osr-hero-card{border-color:var(--sky); border-style:solid; background:radial-gradient(90% 80% at 50% 0%,rgba(58,160,255,.25),rgba(58,160,255,.05) 70%); transform:scale(1.01)}
.osr-hero h2{margin:6px 0 0; font:700 26px/1.2 var(--serif); color:#f0f7ff; letter-spacing:.005em}
.osr-hero p{margin:0; max-width:520px; font-size:13px; line-height:1.6; color:var(--txt-2)}
.osr-hero p b{color:var(--txt); font-weight:600}
.osr-hero-row{display:flex; align-items:flex-end; justify-content:center; flex-wrap:wrap; gap:12px; margin-top:12px}
.osr-hero-sel{display:flex; flex-direction:column; gap:5px; text-align:left}
.osr-hero-sel span{font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--txt-3)}
.osr-hero-sel select{font:inherit; font-size:13.5px; height:46px; min-width:230px; max-width:320px; padding:0 12px; border-radius:12px; color:var(--txt); cursor:pointer;
  background:rgba(4,9,18,.8); border:1px solid rgba(140,200,255,.28)}
.osr-hero-sel select:focus{outline:none; border-color:var(--sky)}
.osr-hero-tip{font-size:12px; color:var(--txt-3); text-align:center; max-width:560px; line-height:1.5}
/* декоративные листы */
.osr-art{position:relative; width:220px; height:150px; margin-bottom:2px}
.osr-art-sh{position:absolute; top:6px; width:104px; height:138px; border-radius:6px; background:linear-gradient(180deg,#fff,#eef2f8); box-shadow:0 16px 36px rgba(0,0,0,.5);
  padding:18px 14px; box-sizing:border-box; display:flex; flex-direction:column; gap:6px; overflow:hidden}
.osr-art-sh b{position:absolute; left:-4px; bottom:12px; padding:2px 8px; border-radius:4px; color:#fff; font:700 10px/1.5 var(--mono); letter-spacing:.08em; box-shadow:0 2px 6px rgba(0,0,0,.35)}
.osr-art-sh.w{left:88px; transform:rotate(7deg); animation:osrFloat 6s ease-in-out infinite}
.osr-art-sh.w::before{content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--w)}
.osr-art-sh.w b{background:var(--w)}
.osr-art-sh.w u{display:block; height:9px; width:70%; background:#1d2638; border-radius:2px; margin-bottom:4px}
.osr-art-sh.w s{display:block; height:5px; border-radius:2px; background:#d8dee8}
.osr-art-sh.w s.h{background:#8fb4ea; width:55%; margin-top:4px}
.osr-art-sh.x{left:28px; transform:rotate(-8deg); display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:13px; gap:0; padding:18px 10px; animation:osrFloat 6s ease-in-out infinite reverse}
.osr-art-sh.x::before{content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--x)}
.osr-art-sh.x b{background:var(--x)}
.osr-art-sh.x i{border-right:1px solid #cfd6e1; border-bottom:1px solid #cfd6e1}
.osr-art-sh.x i:nth-child(-n+3){background:#dff1e6}
@keyframes osrFloat{50%{translate:0 -5px}}

/* ── загрузка ── */
.osr-up{position:absolute; left:50%; bottom:18px; transform:translateX(-50%); z-index:40; display:flex; align-items:center; gap:10px; max-width:min(560px,calc(100% - 32px));
  padding:8px 8px 8px 12px; border-radius:14px; background:rgba(8,14,26,.94); border:1px solid rgba(111,192,255,.4); box-shadow:0 14px 40px rgba(0,0,0,.55); font-size:12.5px; color:var(--txt)}
.osr-up[hidden]{display:none}
.osr-up .t{min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.osr-ring{width:26px; height:26px; transform:rotate(-90deg); flex:0 0 auto}
.osr-ring circle{fill:none; stroke-width:3.5} .osr-ring .bg{stroke:rgba(140,200,255,.18)} .osr-ring .fg{stroke:var(--sky); stroke-linecap:round; transition:stroke-dasharray .2s}
.osr-up .x{width:28px; height:28px; border-radius:8px; border:0; background:rgba(140,200,255,.08); color:var(--txt-2); cursor:pointer; display:grid; place-items:center}
.osr-up .x:hover{background:var(--red); color:#fff}

/* ══ режим чтения ══ */
.osr[data-view="reader"]{grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,1fr)}
.osr[data-view="reader"] .osr-toc,.osr[data-view="reader"] .osr-main{display:none}
.osr-read{min-height:0; min-width:0; display:flex; flex-direction:column; background:#0a111e}
.osr-read[hidden]{display:none}
.osr-rbar{flex:0 0 auto; display:flex; align-items:center; gap:8px; padding:8px 12px; border-bottom:1px solid rgba(140,200,255,.14);
  background:linear-gradient(180deg,rgba(12,20,36,.98),rgba(9,15,28,.98)); position:relative; z-index:5}
.osr-ib{font:inherit; font-size:12px; height:36px; min-width:36px; padding:0 9px; border-radius:9px; display:inline-flex; align-items:center; justify-content:center; gap:6px; cursor:pointer;
  color:var(--txt-2); background:none; border:1px solid transparent; text-decoration:none; transition:.12s}
.osr-ib:hover{color:#fff; background:rgba(58,160,255,.12); border-color:rgba(140,200,255,.2)}
.osr-back{color:var(--txt); border-color:rgba(140,200,255,.2); padding:0 12px 0 8px}
.osr-tglist{display:none}
.osr-rtitle{flex:1 1 auto; min-width:0; display:flex; align-items:center; gap:10px; margin-left:4px}
.osr-badge{flex:0 0 auto; padding:3px 8px; border-radius:6px; color:#fff; font:700 10.5px/1.5 var(--mono); letter-spacing:.08em; background:var(--w)}
.osr-badge[data-fmt="sheet"]{background:var(--x)}
.osr-rname-w{min-width:0; flex:1; display:flex; flex-direction:column}
.osr-rname{font:600 16px/1.25 var(--serif); color:#f0f7ff; background:none; border:1px solid transparent; border-radius:7px; padding:2px 6px; margin-left:-7px; min-width:0; width:100%; outline:none;
  text-overflow:ellipsis}
.osr-rname:hover{border-color:rgba(140,200,255,.18)} .osr-rname:focus{border-color:var(--sky); background:rgba(4,9,18,.7)}
.osr-rsub{font-size:11px; color:var(--txt-3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.osr-find{display:flex; align-items:center; gap:2px; height:36px; padding:0 3px 0 10px; border-radius:10px; background:rgba(4,9,18,.7); border:1px solid rgba(140,200,255,.18); flex:0 1 300px; min-width:170px}
.osr-find:focus-within{border-color:var(--sky); box-shadow:0 0 0 3px rgba(58,160,255,.15)}
.osr-find.miss:focus-within{border-color:var(--amber); box-shadow:0 0 0 3px rgba(255,176,32,.14)}
.osr-find.off{opacity:.4; pointer-events:none}
.osr-find .ic{color:var(--txt-3); display:grid}
.osr-find input{flex:1; min-width:0; font:inherit; font-size:13px; color:var(--txt); background:none; border:0; outline:none; padding:0 4px}
.osr-find input::-webkit-search-cancel-button{display:none}
.osr-find .n{font-size:11px; color:var(--txt-3); white-space:nowrap; font-variant-numeric:tabular-nums; padding:0 4px}
.osr-find.miss .n{color:var(--amber)}
.osr-find button{width:28px; height:28px; border-radius:7px; border:0; background:none; color:var(--txt-2); cursor:pointer; display:grid; place-items:center}
.osr-find button:hover{background:rgba(58,160,255,.16); color:#fff}
.osr-zoom{display:flex; align-items:center; border-radius:10px; border:1px solid rgba(140,200,255,.16); overflow:hidden}
.osr-zoom.off{opacity:.4; pointer-events:none}
.osr-zoom button{font:inherit; font-size:12px; height:34px; min-width:34px; border:0; background:none; color:var(--txt-2); cursor:pointer; display:grid; place-items:center; font-variant-numeric:tabular-nums}
.osr-zoom button.pct{min-width:56px; color:var(--txt); border-left:1px solid rgba(140,200,255,.12); border-right:1px solid rgba(140,200,255,.12)}
.osr-zoom button:hover{background:rgba(58,160,255,.14); color:#fff}
.osr-rbody{flex:1; min-height:0; position:relative; display:grid; grid-template-columns:236px minmax(0,1fr) 290px}
.osr-read.side-hide .osr-rbody{grid-template-columns:236px minmax(0,1fr) 0}
.osr-read.side-hide .osr-rside{display:none}
/* список документов слева */
.osr-rlist{min-height:0; display:flex; flex-direction:column; border-right:1px solid rgba(140,200,255,.12); background:rgba(7,12,22,.92)}
.osr-rlist-h{padding:12px 14px 8px; display:flex; flex-direction:column; gap:1px}
.osr-rlist-h b{font:600 13.5px/1.3 var(--serif); color:var(--txt); overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.osr-rlist-h span{font-size:11px; color:var(--txt-3)}
.osr-rlist-l{flex:1; min-height:0; overflow:auto; padding:2px 8px 8px; display:flex; flex-direction:column; gap:3px; scrollbar-width:thin; scrollbar-color:rgba(140,200,255,.25) transparent}
.osr-ri{font:inherit; display:flex; gap:10px; align-items:flex-start; padding:7px; border-radius:10px; border:1px solid transparent; background:none; cursor:pointer; text-align:left; color:var(--txt-2); transition:.12s}
.osr-ri:hover{background:rgba(58,160,255,.08)}
.osr-ri.cur{background:rgba(58,160,255,.15); border-color:rgba(111,192,255,.35); color:var(--txt)}
.osr-ri-sh{position:relative; flex:0 0 auto; width:46px; aspect-ratio:3/4; border-radius:3px; background:linear-gradient(180deg,#fff,#eef2f8); overflow:hidden; box-shadow:0 3px 10px rgba(0,0,0,.45)}
.osr-ri-sh::before{content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--w); z-index:1}
.osr-ri[data-fmt="sheet"] .osr-ri-sh::before{background:var(--x)}
.osr-ri-sh img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:top}
.osr-ri-sh em{position:absolute; left:0; bottom:3px; z-index:1; padding:0 3px; border-radius:0 2px 2px 0; background:var(--w); color:#fff; font:700 7.5px/1.5 var(--mono); font-style:normal}
.osr-ri[data-fmt="sheet"] .osr-ri-sh em{background:var(--x)}
.osr-ri-t{min-width:0; display:flex; flex-direction:column; gap:2px; padding-top:1px}
.osr-ri-t b{font-size:12.5px; font-weight:600; line-height:1.3; color:inherit; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; word-break:break-word}
.osr-ri-t small{font-size:10.5px; color:var(--txt-3)}
.osr-ri-t i{font-size:10.5px; color:var(--txt-2); display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden}
.osr-rlist-add{margin:6px 10px 12px; font:inherit; font-size:12px; height:34px; border-radius:9px; display:flex; align-items:center; justify-content:center; gap:6px; cursor:pointer;
  color:var(--sky-2); background:none; border:1px dashed rgba(111,192,255,.4)}
.osr-rlist-add:hover{background:rgba(58,160,255,.12); color:#fff}
/* сцена: страницы на мягкой тёмной подложке */
.osr-stage{position:relative; min-width:0; min-height:0; outline:none;
  background:radial-gradient(120% 70% at 50% 0%,#1d2738 0%,#141c2a 55%,#0f1521 100%)}
.osr-read.osr-drop-on .osr-stage::after{content:"Отпустите — документ ляжет в это подразделение"; position:absolute; inset:14px; z-index:6; display:grid; place-items:center; border-radius:16px;
  border:2px dashed var(--sky); background:rgba(10,30,60,.7); color:#fff; font:600 16px var(--serif); pointer-events:none}
.osr-host{position:absolute; inset:0}
.osr-read .rdoc-bar{display:none!important}
.osr-read .rdoc-scroll{scrollbar-color:rgba(160,180,210,.35) transparent}
.osr-read .rdoc-scroll::-webkit-scrollbar{width:11px; height:11px}
.osr-read .rdoc-scroll::-webkit-scrollbar-thumb{background:rgba(160,180,210,.28); border-radius:8px; border:3px solid transparent; background-clip:padding-box}
.osr-read .rdoc-pages,.osr-read .rdoc-paper{margin-bottom:40px}
.osr-read .rdoc-paper{box-shadow:0 20px 60px rgba(0,0,0,.55),0 0 0 1px rgba(0,0,0,.2)}
.osr-read mark.rq{background:#ffe46b; color:inherit; border-radius:2px; box-shadow:0 0 0 1px rgba(200,160,0,.55)}
.osr-read mark.rq.cur{background:#ff9d3b; box-shadow:0 0 0 2px #ff7a00}
.osr-read .rq-flash{animation:osrFlash 1.4s ease-out}
/* Excel: таблица во всю сцену, липкая шапка и первая колонка */
.osr-read[data-kind="sheet"] .rdoc-scroll{overflow:hidden; display:flex; flex-direction:column}
.osr-read[data-kind="sheet"] .rdoc-body{flex:1; min-height:0; height:100%; display:flex; flex-direction:column}
.osr-read[data-kind="sheet"] .rdoc-sheetwrap{flex:1; min-height:0; display:flex; flex-direction:column; width:auto; max-width:none; margin:0; padding:14px 18px 18px}
.osr-read[data-kind="sheet"] .rdoc-tblbox{flex:1 1 auto; min-height:0; width:auto; max-width:100%; align-self:flex-start; max-height:100%; overflow:auto; border-radius:10px;
  box-shadow:0 18px 50px rgba(0,0,0,.5),0 0 0 1px rgba(0,0,0,.25)}
.osr-read[data-kind="sheet"] .rdoc-tabs{order:2; margin:10px 0 0; gap:3px}
.osr-read[data-kind="sheet"] .rdoc-tabs button{border-radius:3px 3px 9px 9px; border-bottom:1px solid rgba(140,200,255,.16); border-top:2px solid transparent; height:30px}
.osr-read[data-kind="sheet"] .rdoc-tabs button.sel{border-top-color:#1F9D55; border-bottom-color:rgba(31,157,85,.55)}
.osr-read[data-kind="sheet"] .rdoc-tbl thead th{box-shadow:0 1px 0 #cfd6e1}
.osr-read[data-kind="sheet"] .rdoc-tbl tbody tr:nth-child(even) td{background:#fafbfd}
.osr-read[data-kind="sheet"] .rdoc-tbl tbody tr:hover td{background:#eef5ff}
.osr-read[data-kind="sheet"] .rdoc-tbl tbody tr:first-child td{font-weight:600; background:#f3f7f4}
/* стрелки соседних документов */
.osr-nav{position:absolute; top:50%; z-index:4; width:40px; height:64px; margin-top:-32px; border-radius:12px; border:1px solid rgba(140,200,255,.18); cursor:pointer;
  background:rgba(8,14,26,.7); color:var(--txt-2); display:grid; place-items:center; opacity:.35; transition:opacity .15s,background .15s; backdrop-filter:blur(6px)}
.osr-nav svg{width:20px; height:20px}
.osr-nav.prev{left:10px} .osr-nav.next{right:14px}
.osr-nav[hidden]{display:none}
.osr-stage:hover .osr-nav{opacity:.8} .osr-nav:hover{opacity:1!important; background:rgba(58,160,255,.3); color:#fff}
/* справа: содержание, подпись, свойства */
.osr-rside{min-height:0; overflow:auto; padding:12px; display:flex; flex-direction:column; gap:12px; border-left:1px solid rgba(140,200,255,.12); background:rgba(7,12,22,.92);
  scrollbar-width:thin; scrollbar-color:rgba(140,200,255,.25) transparent}
.osr-card{flex:0 0 auto; border-radius:12px; background:rgba(14,24,44,.55); border:1px solid rgba(140,200,255,.12); padding:10px 12px 12px; display:flex; flex-direction:column; gap:8px; min-height:0}
.osr-card h4{margin:0; display:flex; align-items:center; gap:7px; font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--txt-3)}
.osr-card h4 svg{width:14px; height:14px; color:var(--sky-2)}
.osr-card h4 small{margin-left:auto; font-size:10.5px; letter-spacing:0; text-transform:none; font-weight:500; color:var(--sky-2)}
.osr-tocbox{flex:0 0 auto; max-height:48vh; overflow:auto; scrollbar-width:thin}
.osr-rtoc{display:flex; flex-direction:column; gap:1px}
.osr-rtoc a{display:block; padding:5px 8px 5px calc(8px + (var(--l,1) - 1) * 14px); border-radius:7px; color:var(--txt-2); text-decoration:none; font-size:12.5px; line-height:1.35;
  border-left:2px solid transparent; transition:.12s}
.osr-rtoc a.lv1{--l:1; color:var(--txt); font-weight:600; font-family:var(--serif); font-size:13px}
.osr-rtoc a.lv2{--l:2} .osr-rtoc a.lv3{--l:3; font-size:12px; color:var(--txt-3)}
.osr-rtoc a:hover{background:rgba(58,160,255,.1); color:#fff}
.osr-rtoc a.cur{border-left-color:var(--sky); background:rgba(58,160,255,.13); color:#fff}
.osr-note{font:inherit; font-size:13px; line-height:1.5; color:var(--txt); background:rgba(4,9,18,.6); border:1px solid rgba(140,200,255,.16); border-radius:9px; padding:8px 10px; resize:vertical; min-height:64px; outline:none}
.osr-note:focus{border-color:var(--sky)}
.osr-props dl{margin:0; display:grid; grid-template-columns:auto 1fr; gap:5px 12px; font-size:12px}
.osr-props dt{color:var(--txt-3)} .osr-props dd{margin:0; color:var(--txt); min-width:0; overflow-wrap:anywhere}
.osr-mv{display:flex; flex-direction:column; gap:5px; margin-top:4px}
.osr-mv span{display:flex; align-items:center; gap:6px; font-size:11px; color:var(--txt-3)}
.osr-mv span svg{width:13px; height:13px}
.osr-mv select{font:inherit; font-size:12.5px; height:34px; padding:0 8px; border-radius:9px; color:var(--txt); background:rgba(4,9,18,.7); border:1px solid rgba(140,200,255,.2); cursor:pointer}
.osr-acts{display:flex; gap:8px; flex-wrap:wrap; margin-top:4px}
.osr-acts .osr-btn{flex:1 1 40%; justify-content:center; text-decoration:none}
.osr-scrim{display:none}

/* ── планшет и телефон ── */
@media (max-width:1180px){
  .osr-rbody,.osr-read.side-hide .osr-rbody{grid-template-columns:220px minmax(0,1fr)}
  .osr-read .osr-rside{display:flex; position:absolute; top:0; right:0; bottom:0; width:min(330px,92%); z-index:8; transform:translateX(105%); transition:transform .22s var(--ease); box-shadow:-18px 0 40px rgba(0,0,0,.5)}
  .osr-read.side-open .osr-rside{transform:none}
  .osr-back span{display:none}
  .osr-back{padding:0 8px}
  .osr-read.side-open .osr-scrim,.osr-read.list-open .osr-scrim{display:block; position:absolute; inset:0; z-index:7; background:rgba(0,0,0,.45)}
}
@media (max-width:900px){
  .osr{grid-template-columns:1fr; grid-template-rows:auto minmax(0,1fr)}
  .osr-toc{border-right:0; border-bottom:1px solid var(--line); flex-direction:row; align-items:center; min-width:0}
  .osr-brand{border:0; padding:10px 12px; flex:0 0 auto}
  .osr-brand span,.osr-toc-h{display:none}
  .osr-brand b{font-size:17px}
  .osr-toc-l{display:flex; gap:4px; overflow-x:auto; overflow-y:hidden; padding:8px 4px; flex:1; scrollbar-width:none}
  .osr-toc-l a{flex:0 0 auto; padding:6px 10px; margin:0; border:1px solid rgba(140,200,255,.14)}
  .osr-toc-l a.cur{box-shadow:none; border-color:var(--sky)}
  .osr-newunit{margin:0 10px 0 4px; height:32px; width:32px; padding:0; flex:0 0 auto}
  .osr-newunit span{display:none}
  .osr-sec{margin-left:calc(var(--d,0) * 8px); padding:10px 4px 12px}
  .osr-crumb{display:none}
  .osr-scroll{padding:4px 10px 60px}
  .osr-bar{padding:10px; flex-wrap:wrap}
  .osr-q{flex:1 1 100%; max-width:none; order:-1}
  .osr-add span{display:none}
  .osr-add{padding:0 11px}
  .osr-rbody,.osr-read.side-hide .osr-rbody{grid-template-columns:minmax(0,1fr)}
  .osr-tglist{display:inline-flex}
  .osr-read .osr-rlist{position:absolute; top:0; left:0; bottom:0; width:min(300px,90%); z-index:8; transform:translateX(-105%); transition:transform .22s var(--ease); box-shadow:18px 0 40px rgba(0,0,0,.5)}
  .osr-read.list-open .osr-rlist{transform:none}
  .osr-rbar{flex-wrap:wrap; gap:6px; padding:6px 8px}
  .osr-back span{display:none}
  .osr-back{padding:0 8px}
  .osr-rtitle{order:0; flex:1 1 0; min-width:120px; margin-left:0}
  .osr-rbar > .osr-ib[data-r="dl"],.osr-rbar > .osr-ib[data-r="print"]{display:none}
  .osr-tgside{order:1}
  .osr-find{order:5; flex:1 1 62%}
  .osr-zoom{order:6}
  .osr-zoom button[data-r="zfit"]{min-width:50px}
  .osr-nav{width:34px; height:52px; margin-top:-26px; opacity:.5}
  .osr-nav.prev{left:4px} .osr-nav.next{right:6px}
  .osr-hero h2{font-size:21px}
  .osr-hero-card{padding:26px 16px 22px}
  .osr-shelf{grid-template-columns:repeat(auto-fill,minmax(128px,1fr)); gap:18px 12px}
  .osr-read[data-kind="sheet"] .rdoc-sheetwrap{padding:8px}
}
@media (max-width:560px){
  .osr-find{min-width:0}
  .osr-zoom button[data-r="zin"],.osr-zoom button[data-r="zout"]{display:none}
  .osr-zoom button.pct{border:0}
  .osr-rsub{display:none}
  .osr-seg button{padding:0 8px}
  .osr-order{max-width:120px}
  .osr-hero-sel select{min-width:0; width:100%}
  .osr-hero-sel{width:100%}
  .osr-hero-row .osr-btn{width:100%; justify-content:center}
  .osr-shelf{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* osint v2 (23.09): свои подразделения, крестик «удалить», окно-вопрос, «обновление сервера…» */
.osr-x{position:absolute; top:6px; right:6px; z-index:4; width:30px; height:30px; padding:0; border-radius:50%; display:grid; place-items:center; cursor:pointer;
  color:#fff; background:rgba(12,18,30,.82); border:1px solid rgba(255,255,255,.28); box-shadow:0 2px 8px rgba(0,0,0,.45);
  opacity:0; transform:scale(.85); transition:opacity .15s, transform .15s var(--ease), background .15s, border-color .15s}
.osr-x svg{width:15px; height:15px; stroke-width:2.4}
.rmx-doc:hover .osr-x,.rmx-doc:focus-within .osr-x,.rmx-doc:focus .osr-x{opacity:1; transform:none}
.osr-x:hover,.osr-x:focus-visible{background:var(--red); border-color:#ff8a80; outline:none}
@media (hover:none),(pointer:coarse){ .osr-x{opacity:1; transform:none; width:34px; height:34px; background:rgba(160,30,24,.88); border-color:rgba(255,160,150,.6)} }
.osr-rdel{color:#ffb4ae}
.osr-rdel:hover{color:#fff; background:rgba(255,68,56,.22); border-color:rgba(255,68,56,.6)}
.osr-rdel span{font-size:12px}
@media (max-width:1180px){ .osr-rdel span{display:none} }
.osr-btn.danger.solid{color:#fff; background:rgba(200,40,32,.85); border-color:#ff6b5e; font-weight:600}
.osr-btn.danger.solid:hover{background:#e0382d; color:#fff}
.osr-hint{font-size:11.5px; color:var(--txt-3); font-style:italic; white-space:nowrap}
.osr-hint[hidden]{display:none}
.osr-toc-h[data-key].osr-drop-on{color:#fff; background:rgba(58,160,255,.2); border-radius:8px}
.osr-toc-l a{position:relative}
.osr-toc-l a.dragsrc{opacity:.45}
.osr-toc-l a .ta{display:none; gap:2px; margin-left:2px}
.osr-toc-l a:hover .ta,.osr-toc-l a:focus-within .ta,.osr-toc-l a.cur .ta{display:inline-flex}
.osr-toc-l a:hover b,.osr-toc-l a.cur b{display:none}
.osr-toc-l a .ta button{width:24px; height:24px; padding:0; border:0; border-radius:6px; display:grid; place-items:center; cursor:pointer; color:var(--txt-2); background:transparent}
.osr-toc-l a .ta button svg{width:14px; height:14px}
.osr-toc-l a .ta button:hover{background:rgba(140,200,255,.16); color:#fff}
.osr-toc-l a .ta button.d:hover{background:rgba(255,68,56,.25); color:#fff}
.osr-toc-l a.none{font-style:italic}
.osr-toc-empty{display:flex; flex-direction:column; align-items:flex-start; gap:10px; margin:6px 4px; padding:14px 12px; border-radius:10px;
  border:1px dashed rgba(140,200,255,.28); color:var(--txt-2); font-size:12.5px; line-height:1.45}
.osr-sec-a{display:inline-flex; gap:2px}
.osr-ib.sm{height:28px; min-width:28px; padding:0 6px; border-radius:8px; border:1px solid transparent; background:transparent; color:var(--txt-3)}
.osr-ib.sm:hover{color:#fff; background:rgba(58,160,255,.12); border-color:rgba(140,200,255,.2)}
.osr-ib.sm.d:hover{background:rgba(255,68,56,.2); border-color:rgba(255,68,56,.5)}
/* 25.09: планшет — кнопки папки (вложенная/переименовать/перенести/удалить) были 28 px, мимо пальца */
@media (pointer:coarse){ .osr-ib.sm{height:38px; min-width:38px} .osr-toc-l a .ta button{width:34px; height:34px} }
.osr-hero-new{display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:10px 12px; margin-top:18px; padding-top:16px; border-top:1px solid rgba(140,200,255,.12); color:var(--txt-3); font-size:12.5px}
.osr-menu button.new{margin-top:4px; border-top:1px solid rgba(140,200,255,.12); border-radius:0 0 8px 8px; color:var(--sky-2,#8fd0ff)}
.osr-dlg-ov{position:fixed; inset:0; z-index:5050; display:grid; place-items:center; padding:16px; background:rgba(2,6,14,.62); backdrop-filter:blur(3px); animation:osrDlgIn .14s ease-out}
.osr-dlg{width:min(440px,100%); padding:20px 20px 16px; border-radius:14px; color:var(--txt); background:linear-gradient(180deg,rgba(18,28,48,.98),rgba(10,16,30,.98));
  border:1px solid rgba(140,200,255,.22); box-shadow:0 24px 70px rgba(0,0,0,.6)}
.osr-dlg h3{margin:0 0 8px; font:600 17px/1.3 var(--serif,inherit); word-break:break-word}
.osr-dlg p{margin:0 0 14px; font-size:13px; line-height:1.5; color:var(--txt-2); word-break:break-word}
.osr-dlg p small{color:var(--txt-3)}
.osr-dlg-in{width:100%; box-sizing:border-box; height:42px; margin:0 0 14px; padding:0 12px; border-radius:10px; font:inherit; font-size:14px; color:var(--txt);
  background:rgba(4,10,20,.7); border:1px solid rgba(140,200,255,.28); outline:none}
.osr-dlg-in:focus{border-color:var(--sky); box-shadow:0 0 0 3px rgba(58,160,255,.2)}
.osr-dlg-b{display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px}
.osr-dlg-b .osr-btn{height:40px}
@media (max-width:560px){ .osr-dlg-b .osr-btn{flex:1 1 100%; justify-content:center} }
@keyframes osrDlgIn{from{opacity:0}to{opacity:1}}
.rer-mode-osint b{font-weight:700; color:var(--sky-2); letter-spacing:.04em}
.rer-mode-osint.sel b{color:#8fd0ff}

/* === ai === ИИ-анализ архива РЭР (static/rer-ai.js, режим «Анализ») */
#rer-view-ai[hidden]{display:none!important}
#rer-view-ai:not([hidden]){display:flex; flex-direction:column; flex:1; min-height:0}
.rai{display:flex; flex-direction:column; flex:1; min-height:0; padding:10px 14px 12px; gap:10px}
.rai-bar{display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px}
.rai-lbl{display:flex; align-items:center; gap:6px; color:var(--txt-3); font-size:11px; text-transform:uppercase; letter-spacing:.04em}
.rai-sel{background:var(--bg-2); color:var(--txt); border:1px solid var(--edge); border-radius:8px;
  padding:5px 8px; font:12px var(--mono); max-width:260px}
.rai-sel:focus{outline:none; border-color:var(--sky)}
.rai-chk{display:flex; align-items:center; gap:5px; color:var(--txt-2); font-size:12px; cursor:pointer}
.rai-sp{flex:1}
.rai-quick{display:flex; flex-wrap:wrap; gap:8px}
.rai-chip{background:var(--glass); color:var(--txt-2); border:1px solid var(--edge); border-radius:999px;
  padding:6px 12px; font:12px var(--mono); cursor:pointer; transition:.12s}
.rai-chip:hover{color:var(--txt); border-color:var(--sky); background:rgba(58,160,255,.12)}
.rai-log{flex:1; min-height:0; overflow:auto; display:flex; flex-direction:column; gap:16px;
  padding:12px; background:var(--bg-1); border:1px solid var(--rule,rgba(140,200,255,.16)); border-radius:var(--radius)}
.rai-hint{color:var(--txt-3); font-size:12px; line-height:1.6; max-width:70ch}
/* 27.09: подсказка скрыта — пустую рамку ленты ответов тоже не показываем, пока в ней нет ни одного ответа */
.rai-log:empty, .rai-log:has(> .rai-hint:only-child){display:none}
.rai-x{display:flex; flex-direction:column; gap:8px}
.rai-q-row{align-self:flex-end; max-width:85%; background:rgba(58,160,255,.14); color:var(--txt);
  border:1px solid var(--edge); border-radius:12px 12px 4px 12px; padding:8px 12px; font-size:13px; white-space:pre-wrap}
.rai-notes{display:flex; flex-direction:column; gap:2px}
.rai-note{font-size:11px; color:var(--txt-3)}
.rai-note.sys{color:var(--sky-2,#6FC0FF); opacity:.75}
.rai-note.err{color:var(--red)}
.rai-think{color:var(--txt-3); font-size:12px}
.rai-think summary{cursor:pointer; color:var(--txt-3)}
.rai-think-body{white-space:pre-wrap; color:var(--txt-3); font-size:11px; margin-top:4px; max-height:200px; overflow:auto;
  border-left:2px solid var(--edge); padding-left:8px}
.rai-body{color:var(--txt); font-size:13px; line-height:1.6}
.rai-body p{margin:0 0 8px} .rai-body ul{margin:4px 0 8px 18px; padding:0} .rai-body li{margin:2px 0}
.rai-body h4{margin:10px 0 6px; color:var(--txt); font-size:13px}
.rai-body code{background:var(--bg-2); padding:1px 4px; border-radius:4px; font-size:12px}
.rai-body pre{background:var(--bg-2); border:1px solid var(--edge); border-radius:8px; padding:8px; overflow:auto}
.rai-body a{color:var(--sky-2,#6FC0FF)}
.rai-co{background:rgba(58,160,255,.06); border:1px dashed var(--edge); border-radius:10px; padding:8px 10px}
.rai-co-h,.rai-src-h{font-size:11px; color:var(--txt-3); margin-bottom:6px; text-transform:uppercase; letter-spacing:.03em}
.rai-co-row{display:flex; align-items:center; gap:10px; margin:4px 0; flex-wrap:wrap}
.rai-co-lbl{font-size:12px; color:var(--txt-2); flex:1; min-width:180px}
.rai-src{display:block}
.rai-src-chip{display:inline-block; margin:0 6px 6px 0; background:var(--glass); color:var(--txt-2);
  border:1px solid var(--edge); border-radius:8px; padding:4px 9px; font:11px var(--mono); cursor:pointer}
.rai-src-chip:hover{color:var(--txt); border-color:var(--sky)}
.rai-ask{display:flex; gap:10px; align-items:flex-end}
.rai-q{flex:1; resize:vertical; min-height:44px; max-height:180px; background:var(--bg-2); color:var(--txt);
  border:1px solid var(--edge); border-radius:10px; padding:9px 11px; font:13px var(--mono)}
.rai-q:focus{outline:none; border-color:var(--sky)}
.rai-btn{background:var(--glass); color:var(--txt-2); border:1px solid var(--edge); border-radius:10px;
  padding:9px 16px; font:12px var(--mono); cursor:pointer; transition:.12s}
.rai-btn:hover{color:var(--txt); border-color:var(--sky)}
.rai-btn.primary{background:var(--sky-deep,#0E63B8); color:#EAF6FF; border-color:var(--sky)}
.rai-btn.primary:hover{background:var(--sky)}
.rai-btn.mini{padding:4px 10px; font-size:11px}
.rai-btn.ghost{background:transparent}
.rai-btn:disabled{opacity:.5; cursor:default}
.rai-off{color:var(--txt-2); font-size:13px; line-height:1.6; padding:20px; text-align:center;
  border:1px dashed var(--edge); border-radius:var(--radius); margin:auto 0}

/* === 24.09.2026: «Бытовухи», файлы точек в «ТОЧКАХ», наложение на карту (rer-geo.js) === */
.rer-sec-head .t .n{display:inline-block; margin-left:6px; padding:0 6px; border-radius:9px; background:rgba(255,184,77,.16); color:var(--amber); font-size:10px; letter-spacing:0}
.rer-sec-byt{padding:10px 12px 12px; border:1px solid rgba(255,184,77,.22); border-radius:10px; background:linear-gradient(180deg,rgba(255,184,77,.05),transparent 60%)}
.rer-sec-byt .rer-sec-head .t{color:var(--amber)}
.rer-sec-byt .rer-grid,.rer-sec-byt .rer-vids,.rer-sec-byt .rer-files{margin-bottom:8px}
.rer-sec-geo .rer-points{margin-bottom:8px}
.rer-sec-geo .rer-files{margin-bottom:8px}
.rer-drop.rer-drop-sec{margin-top:4px; padding:10px; font-size:11px}
.rer-file .rer-btn,.rer-vid .cap .rer-btn{flex:0 0 auto; text-decoration:none}
.rer-file{flex-wrap:wrap}
.rer-geofile .fi{color:#22D3EE; font-size:14px}
.rer-geofile.on{border-color:rgba(34,211,238,.55); background:rgba(34,211,238,.07)}
.rer-geo-tg{color:#22D3EE; border-color:rgba(34,211,238,.45)}
.rer-geo-tg.on{background:rgba(34,211,238,.16); color:#E6FDFF}
/* плашка на карте РЭР: какие файлы из дерева наложены */
.rer-geopanel{position:absolute; left:52px; bottom:18px; z-index:800; max-width:min(340px,calc(100% - 70px)); padding:8px 8px 6px; border-radius:10px;
  background:rgba(11,15,20,.88); border:1px solid rgba(34,211,238,.35); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); font-size:12px; color:var(--txt)}
.rer-geopanel[hidden]{display:none}
.rer-geopanel .h{display:flex; align-items:center; gap:8px; margin:0 2px 5px; font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:#22D3EE}
.rer-geopanel .h span{flex:1}
.rer-geopanel .h button{font:inherit; letter-spacing:0; text-transform:none; font-size:11px; color:var(--txt-3); background:none; border:0; cursor:pointer; padding:2px 4px}
.rer-geopanel .h button:hover{color:var(--red)}
.rer-geopanel .it{display:flex; align-items:center; gap:7px; padding:2px 0}
.rer-geopanel .it i{flex:0 0 10px; height:10px; border-radius:50%; box-shadow:0 0 0 2px rgba(0,0,0,.5)}
.rer-geopanel .it .nm{flex:1; min-width:0; text-align:left; font:inherit; color:var(--txt); background:none; border:0; cursor:pointer; padding:3px 0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.rer-geopanel .it .nm:hover{color:#22D3EE}
.rer-geopanel .it .x{flex:0 0 auto; min-width:30px; min-height:28px; font:inherit; color:var(--txt-3); background:rgba(255,255,255,.04); border:1px solid var(--line); border-radius:6px; cursor:pointer}
.rer-geopanel .it .x:hover{color:#fff; border-color:var(--red); background:rgba(255,68,56,.16)}
.rer-geopop{display:flex; flex-direction:column; gap:3px; font-size:12px}
.rer-geopop span{color:var(--txt-3); font-size:11px}
.rer-geolabel{border-color:rgba(34,211,238,.5) !important}
/* 24.09: полные названия слоёв — перенос до 3 строк (объекты — до 2), галочка/счётчик/⋯ по первой строке;
   полный путь — в подсказке строки. Высота «строки управления» — --rl-h (30 px, на сенсоре 42 px). */
.rl{--rl-h:30px}
.rl .rl-row{align-items:flex-start; padding-top:4px; padding-bottom:4px}
.rl .rl-row.rl-o{padding-top:1px; padding-bottom:1px}
.rl .rl-row .rl-tw,.rl .rl-row .rl-cb{height:var(--rl-h)}
.rl .rl-row .rl-k,.rl .rl-row .rl-ti,.rl .rl-row .rl-n,.rl .rl-row .rl-meta{height:var(--rl-h); align-items:center}
.rl .rl-row .rl-n,.rl .rl-row .rl-meta{display:flex; justify-content:flex-end}
.rl .rl-row .rl-badge{margin-top:calc((var(--rl-h) - 17px) / 2)}
.rl .rl-row .rl-more{height:var(--rl-h)}
.rl .rl-row .rl-more.sm{height:var(--rl-h)}
.rl .rl-row .rl-nm{white-space:normal; overflow-wrap:anywhere; line-height:17px; padding:0; margin:calc((var(--rl-h) - 17px) / 2) 0;
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; line-clamp:3; overflow:hidden; text-overflow:clip}
.rl .rl-row.rl-o .rl-nm{-webkit-line-clamp:2; line-clamp:2}
.rl .rl-row.rl-o{contain-intrinsic-size:auto 32px}
.rl .rl-mh b{white-space:normal; overflow-wrap:anywhere; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; line-clamp:3}
@media (pointer:coarse){
  .rl{--rl-h:42px}
  .rl .rl-row .rl-more.sm{width:40px}
  .rl .rl-row.rl-o{contain-intrinsic-size:auto 44px}
}
/* 24.09: галочки независимы — у слоя, внутри которого что-то включено, точка на углу галочки
   (ярче у свёрнутого: включённое не теряется). Выключенный слой — приглушён. */
.rl .rl-cb[data-inner]::after{content:""; position:absolute; top:calc(50% - 13px); right:calc(50% - 13px); width:9px; height:9px; border-radius:50%;
  background:#FFB020; box-shadow:0 0 0 2px #0A1426,0 0 8px rgba(255,176,32,.6); pointer-events:none}
.rl .rl-row[aria-expanded=true] > .rl-cb[data-inner]::after{opacity:.55; box-shadow:0 0 0 2px #0A1426}
.rl .rl-row.rl-l.off .rl-n{opacity:.6}
.rl .rl-note{display:flex; align-items:center; gap:8px; margin:0 10px 6px; padding:7px 10px; border-radius:9px; font-size:11px; line-height:1.35;
  color:var(--txt-2); background:rgba(120,170,230,.06); border:1px dashed rgba(140,200,255,.22)}
.rl .rl-note[hidden]{display:none}
.rl .rl-note .rl-i{width:16px; height:16px; color:var(--txt-3)}
/* 24.09: ширина панели — тянуть за левый край (запоминается, двойной щелчок — по умолчанию) */
.rl .rl-rsz{position:absolute; left:-7px; top:16px; bottom:16px; width:14px; z-index:4; cursor:ew-resize; touch-action:none}
.rl .rl-rsz i{position:absolute; left:5px; top:50%; width:4px; height:46px; margin-top:-23px; border-radius:3px; background:rgba(140,200,255,.35);
  opacity:0; transition:opacity .15s,background .15s}
.rl .rl-rsz:hover i,.rl.rl-resizing .rl-rsz i{opacity:1; background:var(--sky)}
.rl.min .rl-rsz{display:none}
#rer-layers.rl.rl-resizing{transition:none; user-select:none; -webkit-user-select:none}
@media (pointer:coarse){
  .rl .rl-rsz{left:-14px; width:28px}
  .rl .rl-rsz i{left:11px; width:6px; height:56px; margin-top:-28px; opacity:.7}
}
@media (max-width:720px){ .rl .rl-rsz{display:none} }
/* 24.09: быстрые кнопки слоя (точка/загрузка/подслой) — только по наведению мыши и поверх правого края
   строки, а не в потоке: иначе они съедали название (у активной строки — постоянно), а при наведении
   длинное название переносилось заново и строки «прыгали». На сенсоре и у активной строки — в меню ⋯. */
.rl .rl-row.rl-l.act .rl-addsub,.rl .rl-row.rl-l.act .rl-q1{display:none}
@media (hover:hover) and (pointer:fine){
  .rl .rl-row.rl-l:hover .rl-addsub,.rl .rl-row.rl-l:hover .rl-q1{display:grid; opacity:.9}
}
@media (pointer:coarse){ .rl .rl-row.rl-l .rl-addsub,.rl .rl-row.rl-l .rl-q1,.rl .rl-row.rl-l:hover .rl-addsub,.rl .rl-row.rl-l:hover .rl-q1{display:none} }
.rl{--rl-bw:30px}
@media (pointer:coarse){ .rl{--rl-bw:40px} }
.rl .rl-row.rl-l .rl-q1,.rl .rl-row.rl-l .rl-addsub{position:absolute; top:4px; z-index:1; margin:0; width:var(--rl-bw); height:var(--rl-h);
  background:rgba(12,22,40,.96); border-radius:8px}
.rl .rl-row.rl-l .rl-addsub{right:calc(4px + var(--rl-bw))}
.rl .rl-row.rl-l [data-a=impin]{right:calc(4px + var(--rl-bw) * 2)}
.rl .rl-row.rl-l [data-a=ptin]{right:calc(4px + var(--rl-bw) * 3)}
.rl.rl-noimp .rl-row.rl-l [data-a=ptin]{right:calc(4px + var(--rl-bw) * 2)}
/* 24.09 (QA a10): карта РЭО не шире своего блока — было width:100% + поля 14 px → на 28 px шире,
   обрезалась атрибуция, низ ниже соседних режимов */
#rer-lmap{width:auto; height:calc(100% - 14px); box-sizing:border-box}
html.rer-focus #rer-lmap{height:100%}
/* 24.09 (QA a10): плашка «Карты · Подписи · Маршрут…» не залезает под открытую панель слоёв — переносится */
#rer-view-map.rl-open .leaflet-bar.rer-tools{max-width:calc(100vw - var(--rl-w,348px) - 170px)}
/* 26.09 (проверка №4): с кнопками «◉ Вскрытые / ◉ Аналог» плашка стала шире, а 100vw не учитывает боковое меню
   панели — на планшете альбомом (1180) и 1024 «◉ Аналог» заезжал на шапку открытой панели слоёв. Меряем от самой карты:
   левый угол контролов кончается у панели, плашка переносится в его пределах. */
#rer-view-map.rl-open .leaflet-top.leaflet-left{right:calc(var(--rl-w,348px) + 12px)}
#rer-view-map.rl-open .leaflet-top.leaflet-left .leaflet-bar.rer-tools{max-width:calc(100% - 10px)}
@media (max-width:720px){ #rer-view-map.rl-open .leaflet-top.leaflet-left{right:0} }
/* 24.09 (QA a10): имя видео — отдельной строкой над кнопками (три кнопки резали его до «__t…») */
.rer-vid .cap{flex-wrap:wrap}
.rer-vid .cap .nm{flex:1 1 100%; white-space:normal; overflow-wrap:anywhere; line-height:1.35}
.rer-vid .cap .nm + *{margin-left:auto}
/* 24.09 (QA a10): планшет — цели ≥40 px в дереве, карточке узла и «Анализе ИИ»; ✕ на фото видно всегда */
@media (pointer:coarse){
  .rer-row{min-height:44px}
  .rer-rowbtns .rer-btn{min-width:40px; min-height:40px; font-size:15px; display:inline-grid; place-items:center}
  .rer-btn.mini{min-height:40px; padding:6px 12px}
  .rer-photo .x{opacity:1; min-width:36px; min-height:36px}
  .rer-file{flex-wrap:wrap}
  .rai-chk{min-height:40px}
  .rai-chk input{width:22px; height:22px}
  .rai-chip,.rai-btn{min-height:40px}
  .rai-sel{min-height:40px}
}
@media (hover:none){ .rer-photo .x{opacity:1} }

/* === правка .docx в «Справочном материале» (30.09.2026) === */
.osr-redit[hidden]{display:none!important}
.osr-read.editing .osr-redit,.osr-read.editing .osr-find,.osr-read.editing .osr-zoom,.osr-read.editing .osr-nav{display:none!important}
.osr-ed{position:absolute; inset:0; overflow:auto; background:#2a2f37; -webkit-overflow-scrolling:touch}
.osr-ed-bar{position:sticky; top:0; z-index:3; display:flex; align-items:center; gap:10px; padding:9px 16px; background:rgba(12,17,24,.94);
  border-bottom:1px solid rgba(88,178,255,.25); backdrop-filter:blur(6px)}
.osr-ed-bar b{display:inline-flex; align-items:center; gap:7px; font-size:13px; color:#cfe6ff}
.osr-ed-bar b svg{width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8}
.osr-ed-st{flex:1; font-size:12px; color:#8fa3b8}
.osr-ed-st.dirty{color:#ffcf5a} .osr-ed-st.err{color:#ff7a7a}
.osr-ed-page{box-sizing:border-box; width:min(794px, calc(100% - 24px)); margin:22px auto 60px; padding:64px 72px; background:#fff; color:#111;
  box-shadow:0 8px 30px rgba(0,0,0,.45); font:14.5px/1.5 "Times New Roman","PT Serif",Georgia,serif}
.osr-ed-p{display:block; box-sizing:border-box; width:100%; margin:0 0 4px; padding:2px 6px; border:1px solid transparent; border-radius:4px; background:transparent;
  color:inherit; font:inherit; line-height:inherit; resize:none; overflow:hidden; field-sizing:content; min-height:1.6em; white-space:pre-wrap; tab-size:4}
.osr-ed-p:hover{border-color:#d5dde8}
.osr-ed-p:focus{outline:none; border-color:#3a9bfa; background:#f3f8ff}
.osr-ed-p.chg{background:#fff7d6; border-color:#f0c64a}
.osr-ed-p.k-title{font-size:24px; font-weight:700; text-align:center}
.osr-ed-p.k-h1{font-size:20px; font-weight:700; margin-top:10px}
.osr-ed-p.k-h2{font-size:17px; font-weight:700; margin-top:8px}
.osr-ed-p.k-h3,.osr-ed-p.k-h4{font-size:15px; font-weight:700}
.osr-ed-p.k-li{padding-left:26px; background-image:radial-gradient(circle at 12px 0.8em, #333 2.5px, transparent 3px); background-repeat:no-repeat}
.osr-ed-p.k-li.chg{background-color:#fff7d6}
.osr-ed-tbl{width:100%; border-collapse:collapse; margin:6px 0 12px}
.osr-ed-tbl td{border:1px solid #9aa4b0; padding:2px; vertical-align:top}
.osr-ed-tbl .osr-ed-p{margin:0; font-size:13.5px}
@media (max-width:700px){ .osr-ed-page{padding:26px 16px; width:calc(100% - 12px); margin-top:10px} }

/* === цветные иконки на вкладках режимов (30.09.2026, v2 HD) === */
.rer-mode{display:inline-flex; align-items:center; gap:7px; --mic:#9fb3c8}
.rer-mi{width:18px; height:18px; flex:0 0 auto; color:var(--mic); fill:none;
  stroke:var(--mic); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;
  opacity:.85; transition:opacity .15s, transform .15s, filter .15s}
.rer-mi .f{fill:currentColor; stroke:none; opacity:.20}          /* мягкая цветная заливка тела */
.rer-mi .hole{fill:none; stroke:currentColor}             /* линза лупы — прозрачная */
.rer-mi .dot{fill:currentColor; stroke:none}
/* свой цвет у каждой вкладки — виден всегда */
.rer-mode[data-mode="tree"]  {--mic:#57d38a}
.rer-mode[data-mode="map"]   {--mic:#4aa8ff}
.rer-mode[data-mode="arch"]  {--mic:#38d0bf}
.rer-mode[data-mode="media"] {--mic:#f2a53c}
.rer-mode[data-mode="hidden"]{--mic:#ff7a5c}
.rer-mode[data-mode="tg"]    {--mic:#33a7e6}
.rer-mode[data-mode="ai"]    {--mic:#c18cff}
.rer-mode:hover .rer-mi{opacity:1}
.rer-mode.sel .rer-mi{opacity:1; transform:translateY(-.5px); filter:drop-shadow(0 2px 6px color-mix(in srgb, var(--mic) 55%, transparent))}
.rer-mode.sel .rer-mi .f{opacity:.30}
@media (max-width:900px){ .rer-mode{gap:5px} .rer-mi{width:16px; height:16px} }
