/* Scene composition: one tool dock, one result row, no overlapping panels. */
.canvas-legend { display: block; }
.canvas-legend > summary { display: none; }
.canvas-legend-body { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: inherit; }
@media screen and (max-width:700px) {
  .canvas-legend { padding: 0; }
  .canvas-legend > summary { display: list-item; list-style-position: inside; min-height: 44px; box-sizing: border-box; padding: 12px; cursor: pointer; font: 650 12px/1.5 system-ui,sans-serif; }
  .canvas-legend > summary:focus-visible { outline: 2px solid #006b9c; outline-offset: -3px; border-radius: 9px; }
  .canvas-legend-body { padding: 7px 9px; }
  .canvas-legend:not([open]) > .canvas-legend-body { display: none; }
}
@media print {
  .canvas-legend::details-content { content-visibility: visible; }
  .canvas-legend > .canvas-legend-body { display: flex; }
}
@media screen and (max-width:359px) {
  #workspace .view-switch-bar > .button-group { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); width: 100%; gap: 6px; }
  #workspace .view-switch-bar > .button-group > .btn { min-width: 0; min-height: 44px; padding-inline: 4px; gap: 3px; font-size: 12px; }
  #workspace .view-switch-bar > .button-group .pc-icon { width: 12px; height: 12px; flex: 0 0 12px; }
}
@media screen {
  #workspace { min-height: 0; }
  .map-and-plan-wrapper {
    container-type: inline-size;
    container-name: pc-plan;
    align-self: stretch;
    min-height: 0;
    overflow: hidden;
  }
  .view-switch-bar {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto auto;
    gap: 6px;
    align-items: center;
  }
  .view-switch-bar .button-group { grid-column: 1; grid-row: 1; min-width: 0; }
  .view-switch-bar #btn-expand-plan { grid-column: 3; grid-row: 1; margin: 0; }
  .view-switch-bar #btn-expand-plan .button-label { display: none; }
  .view-switch-bar .map-advanced { display: block; grid-column: 2; grid-row: 1; }
  .view-switch-bar .map-advanced[open] { grid-column: 1 / -1; grid-row: 2; }
  .map-advanced > summary { min-height: 36px; box-sizing: border-box; }
  .map-advanced .map-controls-inline {
    position: static;
    width: 100%;
    min-width: 0;
    max-width: none;
    margin: 0;
    padding: 10px;
    box-shadow: none;
  }
  #workspace .map-view-box,#workspace .canvas-wrapper,
  #workspace.pc-presentation-enabled .map-and-plan-wrapper .map-view-box,
  #workspace.pc-presentation-enabled .map-and-plan-wrapper .canvas-wrapper { min-height: 0; }
  .plan-scene-tools {
    position: absolute;
    z-index: 8;
    top: calc(var(--pc-toolbar-height,48px) + 10px);
    left: 12px;
    width: min(280px,calc(100% - 92px));
    max-height: calc(100% - var(--pc-toolbar-height,48px) - var(--pc-map-footer-height,50px) - 44px);
    display: flex;
    flex-direction: column;
    align-items: start;
    gap: 8px;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    pointer-events: none;
  }
  .plan-scene-tools > *, .plan-tool-disclosures > * { pointer-events: auto; }
  .plan-scene-tools .plot-overlay-card {
    position: static;
    width: 100%;
    max-width: none;
    padding: 0;
    box-sizing: border-box;
    display: block;
    background: rgb(255 255 255 / 94%);
  }
  .plot-overlay-card > summary { display: grid; gap: 3px; padding: 10px 12px; cursor: pointer; list-style: none; }
  .plot-overlay-card > summary::after { content: 'Граница и сведения ▾'; color: #526477; font-size: 11px; }
  .plot-overlay-card[open] > summary::after { content: 'Граница и сведения ▴'; }
  .plot-overlay-card > #parcel-adjustment-host { padding: 0 10px 8px; }
  .plot-overlay-card > #setback-status-badge { margin: 0 10px 10px; }
  .plan-tool-disclosures { display: flex; flex-wrap: wrap; gap: 6px; width: 100%; }
  .plan-tool-disclosures > details { min-width: 0; margin: 0; border: 1px solid #bdcdd8; border-radius: 8px; padding: 0; background: rgb(255 255 255 / 93%); color: #102d61; }
  .plan-tool-disclosures > details[open] { flex: 1 1 100%; }
  .plan-tool-disclosures > details[hidden] { display: none !important; }
  .plan-tool-disclosures > details > summary,
  .result-details > summary { min-height: 40px; box-sizing: border-box; padding: 10px 12px; cursor: pointer; font: 650 12px/1.4 system-ui,sans-serif; }
  .plan-tool-disclosures > details > summary .pc-icon { width: 15px; height: 15px; vertical-align: -3px; }
  .plan-tool-disclosures > details:not([open]) > :not(summary),
  .result-details:not([open]) > :not(summary) { display: none; }
  .plan-tool-disclosures .plan-editbar { display: flex; width: 100%; height: auto; padding: 10px; gap: 10px; background: transparent; box-sizing: border-box; }
  .plan-tool-disclosures .plan-dimensions { flex-wrap: wrap; width: 100%; }
  .plan-tool-disclosures .plan-dimensions label { font-size: 12px; }
  .plan-tool-disclosures .plan-dimensions input { min-height: 40px; font-size: 14px; }
  .plan-tool-disclosures .plan-house-fixed-size { width: 100%; font-size: 12px; }
  .plan-tool-disclosures .plan-nudge { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); width: 100%; gap: 4px; }
  .plan-tool-disclosures .plan-nudge button { min-width: 0; min-height: 40px; font-size: 16px; }
  .plan-tool-disclosures .plan-nudge button:nth-last-child(-n+2) { grid-column: span 2; }
  .plan-tool-disclosures .house-history { gap: 5px; }
  .plan-tool-disclosures .house-history button { min-height: 40px; font-size: 12px; }
  .plan-tool-disclosures .plan-editbar small { font-size: 11px; line-height: 1.5; }
  .plan-tool-disclosures .pc-plan-disclosure-body { display: grid; gap: 10px; padding: 10px; border-top: 1px solid #dce3ea; }
  .plan-tool-disclosures .pc-plan-disclosure-body label { flex-wrap: wrap; font-size: 12px; }
  .plan-tool-disclosures .pc-plan-disclosure-body input,
  .plan-tool-disclosures .pc-plan-disclosure-body select { max-width: 100%; min-height: 40px; box-sizing: border-box; }
  .plan-tool-disclosures .pc-plan-disclosure-body small { font-size: 11px; line-height: 1.5; }
  .placement-result { position: relative; z-index: 9; flex: none; min-height: 50px; gap: 6px; padding: 5px 10px; box-sizing: border-box; flex-wrap: nowrap; }
  .placement-result > .result-status { flex: 1 1 auto; min-width: 0; min-height: 40px; font-size: 12px; line-height: 1.4; }
  .placement-result .result-actions { flex: 0 0 auto; flex-wrap: nowrap; align-items: center; gap: 5px; }
  .placement-result .result-actions > .btn { min-height: 40px; font-size: 12px; }
  .result-details > summary { border: 1px solid #bdcdd8; border-radius: 6px; background: #fff; color: #102d61; }
  .result-details > .pc-plan-disclosure-body { position: absolute; z-index: 15; bottom: calc(100% + 5px); right: 8px; width: min(340px,calc(100% - 16px)); max-height: min(50dvh,360px); overflow-y: auto; display: grid; gap: 10px; box-sizing: border-box; padding: 14px; border: 1px solid #bdcdd8; border-radius: 10px; background: #fff; box-shadow: 0 6px 22px rgb(16 45 97 / 15%); }
  .result-details .plan-terrain-readout { max-width: none; line-height: 1.5; font-size: 12px; }
  .result-details .result-coordinates { font-size: 12px; }
  .result-details .result-coordinates > summary { min-height: 40px; padding-block: 8px; box-sizing: border-box; }
  .result-details .btn { min-height: 40px; font-size: 12px; }
  .pc-plan-disclosure > summary:focus-visible { outline: 2px solid #006b9c; outline-offset: -3px; border-radius: 7px; }
  .map-view-box .canvas-legend, .pc-satellite-active .map-view-box .canvas-legend { bottom: 34px; }
  .pc-maptiler-logo { margin: 0 0 4px 8px !important; padding: 2px 3px; background: rgb(255 255 255 / 90%); }
  .pc-maptiler-logo img { width: 100px; }
  .pc-plan-expanded .map-and-plan-wrapper { inset: 8px; height: auto; min-height: 0; overflow: hidden; }
  body.pc-plan-expanded #workspace .map-view-box,body.pc-plan-expanded #workspace .canvas-wrapper { flex: 1 1 0; height: auto; min-height: 0; }
}
@container pc-plan (max-width:700px) {
  .view-switch-bar { grid-template-columns: minmax(0,1fr) auto; }
  .view-switch-bar .button-group { grid-column: 1 / -1; width: 100%; }
  .view-switch-bar .map-advanced { grid-column: 1; grid-row: 2; }
  .view-switch-bar .map-advanced[open] { grid-column: 1 / -1; grid-row: 3; }
  .view-switch-bar #btn-expand-plan { grid-column: 2; grid-row: 2; }
  .view-switch-bar .btn, .map-advanced > summary { min-height: 44px; }
  .plan-scene-tools { left: 8px; width: min(280px,calc(100% - 80px)); }
}
@media screen and (max-width:700px) {
  .plan-scene-tools { width: min(280px,calc(100% - 112px)); }
  .plot-overlay-card > summary { position: relative; gap: 2px; padding: 8px 28px 8px 8px; }
  .plot-overlay-card > summary::after { content: '▾'; position: absolute; top: 8px; right: 8px; font-size: 16px; line-height: 1; }
  .plot-overlay-card[open] > summary::after { content: '▴'; }
  .plan-tool-disclosures > details > summary { padding: 8px 4px; }
  .plan-viewport-controls { grid-template-columns: repeat(2,44px); }
  .plan-viewport-controls button { box-sizing: border-box; width: 44px; height: 44px; min-height: 44px; border: 0; border-inline-end: 1px solid #dce3ea; border-bottom: 1px solid #dce3ea; }
  .plan-viewport-controls button:nth-child(2n) { border-inline-end: 0; }
  .plan-viewport-controls button:nth-last-child(-n+2) { border-bottom: 0; }
  .plan-viewport-controls #btn-plan-house { width: 44px; min-width: 44px; }
  .plot-overlay-card .parcel-adjustment__nudges { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .plot-overlay-card .parcel-adjustment__nudges button { min-width: 44px; min-height: 44px; }
}
@media screen and (max-width:1100px) {
  #workspace .map-view-box,#workspace .canvas-wrapper { flex: none; height: 450px; min-height: 450px; }
  .map-and-plan-wrapper { height: auto; overflow: hidden; }
  .plan-tool-disclosures > details > summary,.result-details > summary,
  .plan-tool-disclosures .plan-dimensions input,.plan-tool-disclosures .plan-nudge button,
  .plan-tool-disclosures .house-history button,.plan-tool-disclosures .pc-plan-disclosure-body input,
  .plan-tool-disclosures .pc-plan-disclosure-body select,
  .placement-result > .result-status,.placement-result .result-actions > .btn,.result-details .btn { min-height: 44px; }
}
@media print {
  .plot-overlay-card { display: none; }
  .placement-result { display: block; }
  .result-details::details-content { content-visibility: visible; }
  .result-details > .pc-plan-disclosure-body { display: grid; gap: 6px; }
}
