/* Рабочий экран квартиры: рельс инструментов, правая и нижняя панели, свои раскладки.
   Значки рисуются в flat-cad.js. Палитра та же, что у сметы: графит, зелёный, серые линии. */

#pl.cad{
  --cad-rw:280px;
  --cad-bh:240px;
  --cad-rail:136px;
  position:relative;
}
#pl.cad:not(.pl-noplan){
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:auto auto auto auto auto auto auto;
  background:#e8ebef;
  border:0;
  border-radius:12px;
  box-shadow:none;
  padding:0;
  gap:0;
  overflow:visible;
}
#pl.cad:not(.pl-noplan)>.fl-guide-hint{grid-column:1;grid-row:1}
#pl.cad:not(.pl-noplan)>.pl-top{grid-column:1;grid-row:2}
#pl.cad:not(.pl-noplan)>.fl-save{grid-column:1;grid-row:3}
#pl.cad:not(.pl-noplan)>.cad-rail{grid-column:1;grid-row:4}
#pl.cad:not(.pl-noplan)>.pl-body{grid-column:1;grid-row:5;min-width:0}
#pl.cad:not(.pl-noplan)>.pl-warn{grid-column:1;grid-row:6}
#pl.cad:not(.pl-noplan)>.cad-dockb{grid-column:1;grid-row:7}
.pl.pl-noplan .cad-rail,
.pl.pl-noplan .cad-dockb{display:none}

#pl.cad:not(.pl-noplan)>.pl-top,
#pl.cad:not(.pl-noplan)>.fl-save{
  margin:0;
  background:#fff;
  border-bottom:1px solid #e3e6ea;
  padding:8px;
  border-radius:0;
}
#pl.cad .pl-title b{font-size:14px;letter-spacing:0}
#pl.cad .pl-tools{gap:8px}
#pl.cad #pl-fs:not([aria-pressed="true"]){background:#0f7b3d;border-color:#0f7b3d;color:#fff}
#pl.cad #pl-fs:not([aria-pressed="true"]):hover{background:#0b6932}
#pl.cad #pl-fs:focus-visible{outline:2px solid #0f7b3d;outline-offset:2px}
.cad-opts{display:flex;gap:8px;align-items:center}
.cad-opts:empty{display:none}
.cad-opts select{width:auto;min-width:132px;max-width:200px;height:32px;min-height:32px;margin:0}

.cad-rail{position:relative;z-index:4;display:flex;flex-direction:row;align-items:center;gap:4px;min-width:0;background:#f6f7f9;border-bottom:1px solid #e3e6ea;padding:4px}
#pl.cad .pl-bar{flex:1 1 auto;min-width:0;margin:0;padding:0;border:0;gap:4px}
#pl.cad #pl-bar button,
#pl.cad #cad-dock-r,
#pl.cad #cad-dock-b,
#pl.cad #cad-menu-btn{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0;
  width:36px;
  min-width:36px;
  height:36px;
  min-height:36px;
  padding:0!important;
  font-size:0!important;
  line-height:0;
  border-radius:8px;
  flex:0 0 auto;
}
#pl.cad #pl-bar button.is-on,
#pl.cad #cad-dock-r[aria-pressed="true"],
#pl.cad #cad-dock-b[aria-pressed="true"]{color:#fff;background:#16181c;border-color:#16181c}
#pl.cad #pl-bar .pl-ward-btn.is-on{background:#0f7b3d;border-color:#0f7b3d;color:#fff}
#pl.cad #pl-bar .pl-lamps button.is-on,
#pl.cad #pl-bar #pl-lightr.is-on{background:#c98a00;border-color:#c98a00;color:#fff}
#pl.cad #pl-bar button:hover{background:#eceff3}
#pl.cad #pl-bar button.is-on:hover,
#pl.cad #cad-dock-r[aria-pressed="true"]:hover,
#pl.cad #cad-dock-b[aria-pressed="true"]:hover{background:#16181c}
#pl.cad #pl-bar .pl-ward-btn.is-on:hover{background:#0f7b3d}
#pl.cad #pl-bar .pl-lamps button.is-on:hover,
#pl.cad #pl-bar #pl-lightr.is-on:hover{background:#c98a00}
#pl.cad #pl-bar select{width:auto;max-width:148px;height:36px;min-height:36px;font-size:12px!important;padding:0 8px}
.cad-i{width:18px;height:18px;display:block;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.cad-i [fill="currentColor"]{stroke:none}
#pl.cad .pl-gl{display:none}
.cad-side{display:flex;flex-direction:row;align-items:center;gap:4px;flex:0 0 auto}
.cad-menu{position:relative}
.cad-menu-pop{
  position:absolute;z-index:30;top:calc(100% + 4px);right:0;left:auto;bottom:auto;
  display:flex;flex-direction:column;gap:2px;min-width:220px;padding:4px;
  background:#fff;border:1px solid #d9dde3;border-radius:8px;
  box-shadow:0 8px 24px rgba(20,30,40,.16);
}
.cad-menu-pop[hidden]{display:none!important}
.cad-menu-pop button{
  appearance:none;width:100%;text-align:left;font-size:13px!important;line-height:1.3;font-weight:650;
  padding:8px;border:0;border-radius:6px;background:transparent;color:#16181c;cursor:pointer;min-height:36px;
}
.cad-menu-pop button span{display:block;margin-top:2px;font-size:11px!important;font-weight:550;color:#69717a}
.cad-menu-pop button:hover,
.cad-menu-pop button:focus-visible{background:#f2faf5}
.cad-menu-pop button[aria-checked="true"]{background:#f2faf5;color:#0b6932}

#cad-tip{
  position:fixed;z-index:2147483600;max-width:min(280px,calc(100vw - 16px));padding:6px 8px;border-radius:8px;
  background:#16181c;color:#fff;font-size:12px!important;line-height:1.35;font-weight:550;
  font-family:system-ui,sans-serif;pointer-events:none;box-shadow:0 6px 16px rgba(16,18,22,.28);
  overflow:visible;white-space:normal;
}
#cad-tip[hidden]{display:none!important}

#pl.cad button:focus-visible,
#pl.cad select:focus-visible,
#pl.cad .cad-split:focus-visible{outline:2px solid #0f7b3d;outline-offset:1px}
#pl.cad #pl-stage:focus-visible{box-shadow:inset 0 0 0 2px #0f7b3d}

#pl.cad .pl-body{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto;gap:8px;align-items:stretch;min-width:0}
#pl.cad .pl-stage{grid-column:1;grid-row:1;min-width:0;min-height:0;box-sizing:border-box;height:clamp(440px,66vh,760px);border-radius:0}
#pl.cad .cad-split-r{display:none}
#pl.cad .cad-r{grid-column:1;grid-row:2;min-width:0;min-height:0;display:flex;flex-direction:column;background:#fff;overflow:hidden}
#pl.cad .pl-insp,
#pl.cad .pl-wallp{min-width:0;min-height:0;box-sizing:border-box;background:#fff;overflow:auto;flex:1 1 auto}
/* Карточка клиента не выше половины колонки: свойства комнаты остаются под ней и прокручиваются сами. */
#pl.cad .cad-r > #sk-crm-slot{flex:0 1 auto;max-height:42%;min-height:0;overflow:auto}
#pl.cad:not(.cad-r-on) .cad-r{display:none}
.cad-split{flex:none;background:#d5dae0;touch-action:none;position:relative}
.cad-split-r{grid-column:2;grid-row:1;width:8px;min-height:48px;cursor:col-resize}
.cad-split-b{height:8px;cursor:row-resize}
.cad-split:hover,.cad-split.is-drag{background:#0f7b3d}
body.cad-drag{user-select:none;cursor:col-resize}
body.cad-drag-y{cursor:row-resize}

#pl.cad>.cad-dockb{display:none;min-height:0;background:#fff}
#pl.cad.cad-b-on>.cad-dockb{display:flex;flex-direction:column;height:var(--cad-bh);min-height:0}
.cad-dockb-h{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 8px;border-bottom:1px solid #e3e6ea;background:#f6f7f9;min-height:32px}
.cad-dockb-h b{font-size:12px;letter-spacing:.02em}
#cad-bottom-x{appearance:none;border:1px solid #cfd5db;background:#fff;border-radius:8px;padding:4px 8px;font:inherit;font-size:12px!important;font-weight:650;cursor:pointer;min-height:28px}
#cad-bottom-x:hover{background:#eceff3}
.cad-bottom{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;background:#fff}
#cad-bottom .fl-sum{margin:0;border:0;border-radius:0;box-shadow:none;padding:8px 12px 12px}
#fl-main .fl-right:not(:has(#fl-sum)){display:none}
#fl-main:has(.fl-right:not(:has(#fl-sum))){grid-template-columns:minmax(0,1fr)}

@media (min-width:981px) and (min-aspect-ratio:1/1){
  #pl.cad .pl-body{grid-template-columns:minmax(0,1fr) 8px var(--cad-rw);grid-template-rows:minmax(0,1fr);gap:0}
  #pl.cad.cad-r-on .cad-split-r{display:block}
  #pl.cad .pl-stage{grid-column:1;grid-row:1}
  #pl.cad .cad-r{grid-column:3;grid-row:1;max-height:clamp(440px,66vh,760px)}
  #pl.cad:not(.cad-r-on) .pl-body{grid-template-columns:minmax(0,1fr)}
  #pl.cad:not(.cad-r-on) .cad-split-r{display:none}
  #pl.cad:not(.cad-r-on) .cad-r{display:none}
}
@media (max-width:980px){
  #pl.cad:not(.sk-fs-on) .pl-stage{height:clamp(380px,58vh,640px)}
}
@media (max-width:700px){
  /* Высота видимого экрана, не 100vh: панель Safari не прячет низ плана.
     Инструменты — своей строкой на всю ширину, подписи панелей — следующей: иначе рельс сжимается до одной кнопки. */
  #pl.cad:not(.sk-fs-on) .pl-stage{height:min(420px,48svh);min-height:220px}
  #pl.cad .cad-rail{flex-wrap:wrap;align-items:stretch}
  #pl.cad .cad-rail>.pl-bar{flex:1 1 100%;min-width:100%;max-width:100%;order:1;overflow-x:auto;overflow-y:hidden}
  #pl.cad .cad-rail>.cad-side{flex:1 1 auto;min-width:0;max-width:100%;order:2;overflow-x:auto}
  #pl.cad #cad-menu-btn{width:auto;min-width:44px;font-size:12px!important;line-height:1.2;padding:0 8px!important;gap:4px}
  #pl.cad.cad-b-on>.cad-dockb{
    position:fixed;left:0;right:0;bottom:0;z-index:80;height:min(58svh,var(--cad-bh));
    max-height:70svh;border-radius:12px 12px 0 0;box-shadow:0 -8px 28px rgba(16,18,22,.22);
    padding-bottom:env(safe-area-inset-bottom,0px);
  }
  .fl-wd{height:100svh;max-height:100svh}
}

@media (min-width:1100px) and (pointer:fine) and (min-aspect-ratio:1/1){
  .fl:has(#pl.cad:not([hidden]):not(.pl-noplan)){max-width:none;padding-left:8px;padding-right:8px}
  #pl.cad:not([hidden]):not(.pl-noplan):not(.sk-fs-on){
    height:calc(100dvh - var(--cad-hdr,96px) - 8px);
    max-height:calc(100dvh - var(--cad-hdr,96px) - 8px);
    scroll-margin-top:calc(var(--cad-hdr,96px) + 4px);
    grid-template-columns:var(--cad-rail) minmax(0,1fr);
    grid-template-rows:auto auto auto minmax(0,1fr) auto auto;
    border-radius:0;
  }
  #pl.cad:not(.pl-noplan):not(.sk-fs-on)>.fl-guide-hint,
  #pl.cad:not(.pl-noplan):not(.sk-fs-on)>.pl-top,
  #pl.cad:not(.pl-noplan):not(.sk-fs-on)>.fl-save,
  #pl.cad:not(.pl-noplan):not(.sk-fs-on)>.pl-warn,
  #pl.cad:not(.pl-noplan):not(.sk-fs-on)>.cad-dockb{grid-column:1 / -1}
  #pl.cad:not(.pl-noplan):not(.sk-fs-on)>.cad-rail{grid-column:1;grid-row:4;align-self:stretch}
  #pl.cad:not(.pl-noplan):not(.sk-fs-on)>.pl-body{grid-column:2;grid-row:4;min-height:0;height:100%}
  #pl.cad:not(.pl-noplan):not(.sk-fs-on)>.pl-warn{grid-row:5}
  #pl.cad:not(.pl-noplan):not(.sk-fs-on)>.cad-dockb{grid-row:6}
  #pl.cad:not(.sk-fs-on) .pl-stage{height:auto;min-height:0}
  #pl.cad:not(.sk-fs-on) .cad-r{max-height:none;height:100%}
  #pl.cad:not(.sk-fs-on) .pl-insp,
  #pl.cad:not(.sk-fs-on) .pl-wallp{max-height:none;height:auto}
  #pl.cad:not(.pl-noplan):not(.sk-fs-on) .cad-rail{
    flex-direction:column;align-items:stretch;height:100%;min-height:0;overflow:visible;
    padding:4px 0 0;border-bottom:0;border-right:1px solid #e3e6ea;
  }
  #pl.cad:not(.pl-noplan):not(.sk-fs-on) .pl-bar{
    flex:1 1 auto;min-height:0;
    flex-direction:column;flex-wrap:nowrap;align-items:center;overflow-x:hidden;overflow-y:auto;
    width:100%;max-height:100%;padding:0 0 4px;scrollbar-width:thin;
  }
  #pl.cad:not(.pl-noplan):not(.sk-fs-on) .pl-bar .pl-g{
    flex-direction:column;align-items:center;width:100%;gap:4px;
    border-left:0;padding-left:0;border-top:1px solid #e3e6ea;padding-top:4px;
  }
  #pl.cad:not(.pl-noplan):not(.sk-fs-on) .cad-side{
    flex-direction:column;margin-top:auto;padding:4px 0;border-top:1px solid #e3e6ea;background:#f6f7f9;
  }
  #pl.cad:not(.pl-noplan):not(.sk-fs-on) .cad-menu-pop{top:auto;bottom:0;left:calc(100% + 8px);right:auto}
}

#pl.cad.sk-fs-on{
  --cad-rail:52px;
  display:grid!important;
  grid-template-rows:auto auto auto auto minmax(0,1fr) auto auto;
  padding:2px 4px;
  border-radius:0;
  background:#e8ebef;
}
#pl.cad.sk-fs-on>.fl-guide-hint{grid-row:1}
#pl.cad.sk-fs-on>.pl-top{grid-column:1;grid-row:2;margin:0}
#pl.cad.sk-fs-on>.fl-save{grid-column:1;grid-row:3;margin:0}
#pl.cad.sk-fs-on>.cad-rail{grid-column:1;grid-row:4}
#pl.cad.sk-fs-on>.pl-body{grid-column:1;grid-row:5;min-height:0;height:100%}
#pl.cad.sk-fs-on>.pl-warn{grid-column:1;grid-row:6}
#pl.cad.sk-fs-on>.cad-dockb{grid-column:1;grid-row:7}
#pl.cad.sk-fs-on .pl-stage{height:auto!important;min-height:0}
#pl.cad.sk-fs-on .cad-r{max-height:none;height:100%}
#pl.cad.sk-fs-on .pl-insp,
#pl.cad.sk-fs-on .pl-wallp{max-height:none}
#pl.cad.sk-fs-on .cad-rail{padding:0;gap:4px;border-bottom:0}
#pl.cad.sk-fs-on .pl-bar{margin:0;padding:0}

@media (min-aspect-ratio:1/1){
  #pl.cad.sk-fs-on .pl-body{grid-template-columns:minmax(0,1fr) 12px var(--cad-rw);grid-template-rows:minmax(0,1fr);gap:0}
  #pl.cad.sk-fs-on.cad-r-on .cad-split-r{display:block}
  #pl.cad.sk-fs-on .pl-stage{grid-column:1;grid-row:1}
  #pl.cad.sk-fs-on.cad-r-on .cad-r{grid-column:3;grid-row:1;display:flex;height:100%;max-height:none}
  #pl.cad.sk-fs-on:not(.cad-r-on) .pl-body{grid-template-columns:minmax(0,1fr)}
  #pl.cad.sk-fs-on:not(.cad-r-on) .cad-split-r{display:none}
  #pl.cad.sk-fs-on:not(.cad-r-on) .cad-r{display:none}
}
@media (max-aspect-ratio:1/1){
  #pl.cad.sk-fs-on .pl-body{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr)!important;gap:6px}
  #pl.cad.sk-fs-on.cad-r-on .pl-body{grid-template-rows:minmax(0,1fr) minmax(120px,35%)!important}
  #pl.cad.sk-fs-on .cad-split-r{display:none!important}
  #pl.cad.sk-fs-on .pl-stage{grid-column:1!important;grid-row:1!important}
  #pl.cad.sk-fs-on.cad-r-on .cad-r{display:flex!important;grid-column:1!important;grid-row:2!important;height:100%!important;max-height:none!important}
  #pl.cad.sk-fs-on:not(.cad-r-on) .cad-r{display:none!important}
}
@media (min-width:1100px) and (pointer:fine) and (min-aspect-ratio:1/1){
  #pl.cad.sk-fs-on{
    grid-template-columns:var(--cad-rail) minmax(0,1fr);
    grid-template-rows:auto auto auto minmax(0,1fr) auto auto;
    padding:4px 6px 4px 0;
  }
  #pl.cad.sk-fs-on>.fl-guide-hint,
  #pl.cad.sk-fs-on>.pl-top,
  #pl.cad.sk-fs-on>.fl-save,
  #pl.cad.sk-fs-on>.pl-warn,
  #pl.cad.sk-fs-on>.cad-dockb{grid-column:1 / -1}
  #pl.cad.sk-fs-on>.pl-top,
  #pl.cad.sk-fs-on>.fl-save{padding-left:8px}
  #pl.cad.sk-fs-on>.cad-rail{grid-column:1;grid-row:4;min-height:0;height:100%}
  #pl.cad.sk-fs-on>.pl-body{grid-column:2;grid-row:4}
  #pl.cad.sk-fs-on>.pl-warn{grid-row:5}
  #pl.cad.sk-fs-on>.cad-dockb{grid-row:6}
  #pl.cad.sk-fs-on .cad-rail{
    flex-direction:column;align-items:stretch;height:100%;min-height:0;overflow:visible;
    border-right:1px solid #e3e6ea;background:#f6f7f9;
  }
  #pl.cad.sk-fs-on .pl-bar{
    flex:1 1 auto;min-height:0;
    flex-direction:column;flex-wrap:nowrap;align-items:center;overflow-x:hidden;overflow-y:auto;
    width:100%;max-height:100%;scrollbar-width:thin;
  }
  #pl.cad.sk-fs-on .pl-bar .pl-g{
    flex-direction:column;align-items:center;width:100%;border-left:0;padding-left:0;
    border-top:1px solid #e3e6ea;padding-top:4px;
  }
  #pl.cad.sk-fs-on .cad-side{flex-direction:column;margin-top:auto;padding:4px 0;border-top:1px solid #e3e6ea}
  #pl.cad.sk-fs-on .cad-menu-pop{top:auto;bottom:0;left:calc(100% + 8px);right:auto}
}

@media (pointer:coarse){
  #pl.cad #pl-bar button,
  #pl.cad #cad-dock-r,
  #pl.cad #cad-dock-b,
  #pl.cad #cad-menu-btn{width:44px;min-width:44px;height:44px;min-height:44px!important}
  #pl.cad #pl-bar select{min-height:44px;height:44px}
  #cad-bottom-x{min-height:44px;padding:8px 12px}
}
@media (max-height:520px){
  #pl.cad.sk-fs-on .cad-rail,
  #pl.cad.sk-fs-on .pl-bar{padding-top:0;padding-bottom:0}
}
@media (max-width:700px){
  #pl.cad #cad-menu-btn,
  #pl.cad #cad-menu-btn .cad-t{font-size:12px!important;line-height:1.2;white-space:nowrap}
  #pl.cad #cad-menu-btn{width:auto;min-width:44px;height:44px;padding:0 10px!important;gap:4px}
}

/* «Свойства», «Смета», «Интерфейс»: слово целиком внутри кнопки, не поверх плана и не друг на друге. */
#pl.cad #cad-side #cad-dock-r,
#pl.cad #cad-side #cad-dock-b,
#pl.cad #cad-side #cad-menu-btn{
  width:auto;
  min-width:max-content;
  max-width:none;
  height:auto;
  min-height:36px;
  padding:4px 8px!important;
  gap:4px;
  box-sizing:border-box;
  font-size:12px!important;
  line-height:1.2;
  white-space:nowrap;
  flex:0 0 auto;
  overflow:visible;
}
#pl.cad #cad-side .cad-t{
  display:inline-block;
  font-size:12px!important;
  line-height:1.2;
  white-space:nowrap;
  overflow:visible;
  max-width:none;
}
@media (min-width:1100px) and (pointer:fine) and (min-aspect-ratio:1/1){
  #pl.cad:not(.pl-noplan):not(.sk-fs-on) .cad-side,
  #pl.cad.sk-fs-on .cad-side{
    width:100%;
    box-sizing:border-box;
    padding:4px;
    align-items:stretch;
  }
  #pl.cad .cad-side .cad-menu{width:100%}
  #pl.cad #cad-side #cad-dock-r,
  #pl.cad #cad-side #cad-dock-b,
  #pl.cad #cad-side #cad-menu-btn{
    width:100%;
    max-width:100%;
    justify-content:flex-start;
  }
}
@media (pointer:coarse){
  #pl.cad:not(.sk-fs-on) #cad-side #cad-dock-r,
  #pl.cad:not(.sk-fs-on) #cad-side #cad-dock-b,
  #pl.cad:not(.sk-fs-on) #cad-side #cad-menu-btn{
    min-height:44px;
    padding:6px 10px!important;
  }
}

/* Полный экран: тонкая полоса значков, подписи только в подсказке, правые вкладки. */
#pl.cad:not(.sk-fs-on) .pl-views .cad-i,
#pl.cad:not(.sk-fs-on) .pl-3dbar > button .cad-i{display:none}
#pl.cad.sk-fs-on > .pl-top{padding:2px 4px}
#pl.cad.sk-fs-on .pl-title{display:none}
#pl.cad.sk-fs-on .pl-tools{flex-wrap:nowrap;gap:4px}
#pl.cad.sk-fs-on .pl-views{gap:4px}
#pl.cad.sk-fs-on .pl-views button,
#pl.cad.sk-fs-on #pl-fs{
  width:44px;min-width:44px;height:44px;min-height:44px;padding:0!important;gap:0;font-size:0!important;line-height:0;justify-content:center;
}
#pl.cad.sk-fs-on #pl-fs .fs-in,
#pl.cad.sk-fs-on #pl-fs .fs-out,
#pl.cad.sk-fs-on #pl-fs .fs-out-s{display:none!important}
#pl.cad.sk-fs-on #pl-fs .fs-i-in,
#pl.cad.sk-fs-on #pl-fs .fs-i-out{width:18px;height:18px}
#pl.cad.sk-fs-on .cad-opts select{height:44px;min-height:44px}
#pl.cad.sk-fs-on > .fl-save{min-height:36px;align-items:center}
#pl.cad.sk-fs-on .fl-save-b{min-height:36px}
#pl.cad.sk-fs-on #pl-bar button,
#pl.cad.sk-fs-on #cad-side #cad-dock-r,
#pl.cad.sk-fs-on #cad-side #cad-dock-b,
#pl.cad.sk-fs-on #cad-side #cad-menu-btn{
  width:44px!important;min-width:44px!important;max-width:44px!important;
  height:44px!important;min-height:44px!important;max-height:44px!important;
  padding:0!important;gap:0!important;font-size:0!important;line-height:0!important;
  justify-content:center!important;overflow:visible;
}
#pl.cad.sk-fs-on #cad-side .cad-t{
  position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;
  overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;
}
#pl.cad.sk-fs-on #pl-bar select{height:44px;min-height:44px;width:auto;max-width:none;flex:0 0 auto}
#pl.cad.sk-fs-on .pl-3dbar{
  left:4px;top:4px;right:auto;flex-wrap:nowrap;gap:4px;width:max-content;max-width:calc(100% - 8px);
  overflow-x:auto;padding:2px;background:rgba(255,255,255,.94);border-radius:10px;z-index:5;
}
#pl.cad.sk-fs-on .pl-3dbar > button{
  width:44px;min-width:44px;height:44px;min-height:44px;padding:0!important;font-size:0!important;line-height:0;flex:0 0 auto;justify-content:center;
}
#pl.cad.sk-fs-on .pl-3dbar .b-l,
#pl.cad.sk-fs-on .pl-3dbar .b-s{display:none!important}
#pl.cad.sk-fs-on .pl-3dbar .pl-v3-q{position:relative;flex:0 0 auto;margin:0}
#pl.cad.sk-fs-on .pl-3dbar .pl-v3-q > span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
#pl.cad.sk-fs-on .pl-3dbar .pl-v3-q select{min-height:44px;height:44px;width:auto;min-width:96px;max-width:128px;padding:0 8px;font-size:13px}
#pl.cad.sk-fs-on .cad-split-r{width:12px;min-height:44px}
#pl.cad.sk-fs-on .cad-split-r::before{content:"";position:absolute;top:0;bottom:0;left:-16px;right:-16px}
.cad-rtabs{display:none}
#pl.cad.cad-r-on .cad-rhead{display:flex;flex:0 0 auto;flex-direction:column;background:#fff;border-bottom:1px solid #e3e6ea}
#pl.cad.cad-r-on .cad-rname{padding:8px 10px 0;font-size:15px;font-weight:750;line-height:1.25;color:#16181c;min-height:22px}
#pl.cad.cad-r-on .cad-rtabs,
#pl.cad.sk-fs-on .cad-rtabs,
#pl.cad.is-3d .cad-rtabs{
  display:flex;flex:0 0 auto;flex-wrap:nowrap;gap:2px;padding:4px;background:#f6f7f9;overflow-x:hidden;
}
#pl.cad.cad-r-on .cad-rtabs button,
#pl.cad.sk-fs-on .cad-rtabs button,
#pl.cad.is-3d .cad-rtabs button{
  appearance:none;flex:1 1 auto;min-width:0;min-height:34px;display:inline-flex;flex-direction:row;align-items:center;justify-content:center;
  gap:0;padding:5px 2px;border:1px solid transparent;border-radius:8px;background:transparent;color:#16181c;
  font:inherit;font-size:12px!important;line-height:1.15;font-weight:750;cursor:pointer;white-space:nowrap;
}
#pl.cad.cad-r-on .cad-rtabs button.is-on,
#pl.cad.sk-fs-on .cad-rtabs button.is-on,
#pl.cad.is-3d .cad-rtabs button.is-on{background:#16181c;border-color:#16181c;color:#fff}
#pl.cad.cad-r-on .cad-rtabs .cad-i,
#pl.cad.sk-fs-on .cad-rtabs .cad-i,
#pl.cad.is-3d .cad-rtabs .cad-i{display:none}
.pl-need{margin:14px 12px;font-size:14px;font-weight:650;color:#3b424a}
#pl.cad .cad-r .pl-rhead,
#pl.cad .cad-r .pl-racc-h,
#pl.cad .cad-r .pl-rlead{display:none!important}
#pl.cad .cad-r .pl-insp:has(.pl-racc){height:auto!important;max-height:none!important;flex:1 1 auto!important;min-height:0!important}
#pl.cad .cad-r .pl-racc{display:flex!important;flex-direction:column!important;border:0!important;margin:0!important;overflow:hidden!important;grid-template-columns:none!important;gap:0!important}
#pl.cad .cad-r .pl-rsec{display:none!important}
#pl.cad .cad-r .pl-rsec.is-open{display:flex!important;flex:1 1 auto;min-height:0}
#pl.cad .cad-r .pl-rsec.is-open>.pl-rpane{display:block!important;flex:1 1 auto;min-height:0;overflow:auto;grid-column:auto;grid-row:auto}
#cad-rmodel{display:none;min-height:0}
#pl.cad.sk-fs-on[data-rtab="model"].cad-r-on #cad-rmodel{display:block;flex:1 1 auto;overflow:auto;background:#fff}
#pl.cad.sk-fs-on[data-rtab="model"] .cad-r > .pl-insp{display:none}
#pl.cad .cad-r:has(> .pl-wallp:not([hidden])) > #pl-insp{display:none}
#pl.cad.sk-fs-on[data-rtab="model"] .cad-r:has(> .pl-wallp:not([hidden])) #cad-rmodel{display:none}
#pl.cad.sk-fs-on[data-rtab="tile"] #pl-insp [data-mode="tile"],
#pl.cad.sk-fs-on[data-rtab="wall"] #pl-insp [data-mode="wallpaper"]{box-shadow:inset 0 0 0 2px #0f7b3d}
#cad-rmodel .fl-dlg-in{padding:8px 10px 12px}
#cad-rmodel .md-drop{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;border:2px dashed #cfd5dc;border-radius:14px;padding:16px 10px;margin:8px 0;cursor:pointer;background:#fafbfc}
#cad-rmodel .md-drop:hover,#cad-rmodel .md-drop.is-over{border-color:#0f7b3d;background:#f2faf5}
#cad-rmodel .md-drop:focus-within{outline:2px solid #0f7b3d;outline-offset:2px}
#cad-rmodel .md-drop input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
#pl.cad.is-3d[data-rtab="model"].cad-r-on #cad-rmodel{display:block;flex:1 1 auto;overflow:auto;background:#fff}
#pl.cad.is-3d[data-rtab="model"] .cad-r > .pl-insp{display:none}
#pl.cad.is-3d[data-rtab="model"] .cad-r:has(> .pl-wallp:not([hidden])) #cad-rmodel{display:none}
#cad-rmodel .md-fmt{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
#cad-rmodel .md-fmt i{font-style:normal;font-size:12px;font-weight:750;border:1px solid #dfe3e8;background:#fff;border-radius:999px;padding:2px 8px}
#cad-rmodel .fl-row .fl-s{flex:1 1 120px}
@media (max-width:1099px), (pointer:coarse), (max-aspect-ratio:1/1){
  #pl.cad.sk-fs-on .cad-rail{
    flex-direction:row;align-items:stretch;height:auto;max-height:none;overflow:visible;
    border-right:0;border-bottom:1px solid #e3e6ea;background:#f6f7f9;
  }
  #pl.cad.sk-fs-on .pl-bar{
    flex:1 1 auto;flex-direction:row;flex-wrap:nowrap;align-items:center;width:auto;max-height:none;
    overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;
  }
  #pl.cad.sk-fs-on .pl-bar .pl-g{
    flex-direction:row;align-items:center;width:auto;border-top:0;padding-top:0;flex:0 0 auto;
  }
  #pl.cad.sk-fs-on .cad-side{
    flex-direction:row;align-items:center;width:auto;margin-top:0;padding:0 2px;border-top:0;background:#f6f7f9;
  }
  #pl.cad.sk-fs-on .cad-menu-pop{top:calc(100% + 4px);bottom:auto;left:auto;right:0}
}
@media (pointer:coarse){
  #pl.cad.sk-fs-on .fl-save-b,
  #pl.cad.sk-fs-on .pl-views button,
  #pl.cad.sk-fs-on #pl-fs{min-height:44px}
}
/* Мышь и среда без типа указателя: рельс слева. Планшет (coarse) остаётся строкой. */
@media (min-width:1100px) and (min-aspect-ratio:1/1) and (not (pointer:coarse)){
  #pl.cad.sk-fs-on{
    grid-template-columns:var(--cad-rail) minmax(0,1fr);
    grid-template-rows:auto auto auto minmax(0,1fr) auto auto;
    padding:2px 4px 2px 0;
  }
  #pl.cad.sk-fs-on>.fl-guide-hint,
  #pl.cad.sk-fs-on>.pl-top,
  #pl.cad.sk-fs-on>.fl-save,
  #pl.cad.sk-fs-on>.pl-warn,
  #pl.cad.sk-fs-on>.cad-dockb{grid-column:1 / -1}
  #pl.cad.sk-fs-on>.cad-rail{
    grid-column:1;grid-row:4;min-height:0;height:100%;
    flex-direction:column;align-items:stretch;overflow:visible;
    border-right:1px solid #e3e6ea;border-bottom:0;background:#f6f7f9;
  }
  #pl.cad.sk-fs-on>.pl-body{grid-column:2;grid-row:4}
  #pl.cad.sk-fs-on .pl-bar{
    flex:1 1 auto;min-height:0;flex-direction:column;flex-wrap:nowrap;align-items:center;
    overflow-x:hidden;overflow-y:auto;width:100%;max-height:100%;
  }
  #pl.cad.sk-fs-on .pl-bar .pl-g{
    flex-direction:column;align-items:center;width:100%;border-top:1px solid #e3e6ea;padding-top:4px;
  }
  #pl.cad.sk-fs-on .cad-side{
    flex-direction:column;align-items:center;width:100%;margin-top:auto;padding:4px 0;border-top:1px solid #e3e6ea;
  }
  #pl.cad.sk-fs-on .cad-menu-pop{top:auto;bottom:0;left:calc(100% + 8px);right:auto}
}
/* Значок обучения не увеличивает кнопку, пока подпись ещё видна. */
#pl.cad .pl-guide-btn .cad-i{display:none}
/* Планшет до 1024px: шапка плана и рельс — одна короткая строка, без второго ряда подписей. */
@media(max-width:1024px){
  #pl.cad .pl-top-slim{flex-wrap:nowrap;gap:6px;align-items:center}
  #pl.cad .pl-top-slim .pl-title{flex:1 1 auto;min-width:0;gap:6px;flex-wrap:nowrap}
  #pl.cad .pl-top-slim .pl-title b{font-size:13px!important}
  #pl.cad .pl-top-slim .pl-sum{font-size:11px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
  #pl.cad .pl-top-slim .pl-tools{flex-wrap:nowrap;gap:4px;flex:0 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none}
  #pl.cad .pl-top-slim .pl-tools::-webkit-scrollbar{display:none}
  #pl.cad .pl-top-slim .pl-views{flex:0 0 auto;gap:4px}
  #pl.cad .pl-top-slim .pl-views button,
  #pl.cad .pl-top-slim .pl-guide-btn,
  #pl.cad .pl-top-slim #pl-fs{min-height:28px;height:28px;padding:0 8px}
  #pl.cad:not(.pl-noplan)>.pl-top,
  #pl.cad:not(.pl-noplan)>.fl-save{padding:3px 6px}
  #pl.cad .cad-opts select{min-width:0;max-width:120px;height:28px;min-height:28px}
  #pl.cad .cad-rail{flex-wrap:nowrap;align-items:center;overflow-x:auto;overflow-y:hidden}
  #pl.cad .cad-rail>.pl-bar{flex:1 1 auto;min-width:0;max-width:none;order:0}
  #pl.cad .cad-rail>.cad-side{flex:0 0 auto;max-width:none;order:0;overflow:visible}
  #pl.cad #pl-bar button{width:32px;min-width:32px;height:32px;min-height:32px!important}
  #pl.cad #pl-bar select{height:32px;min-height:32px}
  #pl.cad:not(.sk-fs-on) #cad-side #cad-dock-r,
  #pl.cad:not(.sk-fs-on) #cad-side #cad-dock-b,
  #pl.cad:not(.sk-fs-on) #cad-side #cad-menu-btn,
  #pl.cad.sk-fs-on #cad-side #cad-dock-r,
  #pl.cad.sk-fs-on #cad-side #cad-dock-b,
  #pl.cad.sk-fs-on #cad-side #cad-menu-btn{
    width:32px!important;min-width:32px!important;max-width:32px!important;
    height:32px!important;min-height:32px!important;max-height:32px!important;
    padding:0!important;gap:0!important;font-size:0!important;line-height:0!important;
    justify-content:center!important;overflow:visible;
  }
  #pl.cad #cad-side .cad-t{
    position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;
    overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;
  }
}
/* Телефон: кнопки шапки — один ряд значков, подпись остаётся в title. */
@media(max-width:640px){
  #pl.cad .pl-top-slim .pl-title b{font-size:12px!important}
  #pl.cad .pl-top-slim .pl-views button,
  #pl.cad .pl-top-slim .pl-guide-btn,
  #pl.cad .pl-top-slim #pl-fs{
    width:30px;min-width:30px;max-width:30px;height:30px;min-height:30px;
    padding:0!important;font-size:0!important;line-height:0;gap:0;justify-content:center;
  }
  #pl.cad:not(.sk-fs-on) .pl-top-slim .pl-views .cad-i,
  #pl.cad .pl-top-slim .pl-guide-btn .cad-i{display:block;width:16px;height:16px}
  #pl.cad .pl-top-slim #pl-fs .fs-in,
  #pl.cad .pl-top-slim #pl-fs .fs-out,
  #pl.cad .pl-top-slim #pl-fs .fs-out-s{display:none!important}
  #pl.cad .cad-opts select{max-width:72px;height:30px;min-height:30px}
}

/* Замер Лейки в шапке плана: подпись видна и на компьютере, и в узкой шапке. Не значок без текста. */
#pl.cad .pl-scan,
#pl.cad #pl-scan{
  position:sticky;
  left:0;
  z-index:3;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:auto!important;
  min-width:max-content!important;
  max-width:none!important;
  height:auto!important;
  min-height:32px!important;
  max-height:none!important;
  padding:4px 10px!important;
  font-size:13px!important;
  line-height:1.2!important;
  font-weight:750;
  white-space:nowrap;
  color:#0b6932!important;
  background:#eef8f1;
  border:1px solid #0f7b3d;
  border-radius:8px;
  cursor:pointer;
  overflow:visible;
}
#pl.cad #pl-scan:hover{background:#dff3e6}
#pl.cad.sk-fs-on #pl-scan,
#pl.cad .pl-top-slim #pl-scan{
  width:auto!important;
  min-width:max-content!important;
  height:auto!important;
  min-height:28px!important;
  padding:4px 10px!important;
  font-size:13px!important;
  line-height:1.2!important;
}
@media(max-width:640px){
  #pl.cad .pl-top-slim #pl-scan,
  #pl.cad.sk-fs-on #pl-scan{
    font-size:12px!important;
    min-height:30px!important;
    padding:3px 8px!important;
  }
}
#pl-scan-file{display:none!important}
.pl-scan-status{
  position:absolute;
  z-index:6;
  left:8px;
  right:8px;
  top:8px;
  margin:0;
  padding:8px 12px;
  border-radius:10px;
  background:#eef8f1;
  color:#0b6932;
  border:1px solid #b7dfc4;
  font-size:13px;
  font-weight:650;
  line-height:1.35;
  pointer-events:none;
}
.pl-scan-status.is-err{background:#fff1f0;color:#9b2c2c;border-color:#f0c2be}
.pl-scan-status[hidden]{display:none!important}

/* Подписи под значками рельса */
#pl.cad #pl-bar button.cad-has-cap{flex-direction:column;width:46px;min-width:46px;height:auto;min-height:40px!important;padding:3px 1px 2px!important;gap:1px}
#pl.cad .cad-cap{display:block;font-size:9px!important;line-height:1.1;font-weight:500;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit;pointer-events:none}
