/* Full-screen plan positioning and compact responsive forms. */
dialog:has(.room-material-dialog),dialog:has(.previsit-room-dialog){padding:0;border:0;background:#fff;overflow:hidden}
dialog:not(.report-viewer-dialog)>.dialog-card{background:#fff;color:var(--ink);box-shadow:0 18px 55px #07172238}
.room-material-dialog{width:min(920px,calc(100vw - 48px));max-height:90dvh;overflow:auto;padding:24px;border-radius:16px;background:#fff}
.room-material-dialog .material-catalog-search{grid-column:1/-1}
.room-material-dialog .catalog-suggestions{grid-column:1/-1}
.room-material-dialog .catalog-suggestions[hidden]{display:none!important}
.room-material-dialog .material-location-field{grid-column:1/-1}
.plan-card.plan-positioner-open{position:fixed;inset:0;z-index:150;width:100vw;height:100dvh;padding:0;border:0;border-radius:0;background:#eef3f4;display:flex;flex-direction:column;overflow:hidden;box-shadow:none}
body.plan-positioner-active{overflow:hidden}
.plan-positioner-header{z-index:4;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 16px;background:#fff;border-bottom:1px solid #d9e3e5;box-shadow:0 3px 14px #08232d18}
.plan-positioner-title{min-width:0;display:grid;gap:2px}
.plan-positioner-title small{color:var(--teal);font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.plan-positioner-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:17px}
.plan-positioner-title span{color:var(--muted);font-size:12px}
.plan-positioner-actions{display:flex;gap:8px}
.plan-positioner-actions button{width:42px;height:42px;padding:0;border:1px solid var(--line);border-radius:10px;background:#fff;color:#17313a;font-weight:800}
.plan-positioner-open>div:not(.plan-scroll-viewport):not(.plan-legend):not(.position-equipment-instruction):not(.plan-positioner-header){display:none!important}
.plan-positioner-open>.position-equipment-instruction{order:1;flex:0 0 auto;margin:10px 12px 0}
.plan-positioner-open>.plan-scroll-viewport{order:2;display:block;flex:1 1 auto;width:100%;min-height:0;margin:0;overflow:auto;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom;background:#dfe7e9;-webkit-overflow-scrolling:touch}
.plan-positioner-open .plan-canvas{display:block;width:calc(100% * var(--plan-zoom,1));max-width:none;margin:0;cursor:crosshair}
.plan-positioner-open .plan-canvas>img{display:block;width:100%;max-width:none;max-height:none;height:auto;border:0;border-radius:0}
.plan-positioner-open>.plan-legend{order:3;flex:0 0 auto;max-height:20dvh;margin:0;padding:9px 12px;overflow:auto;background:#fff;border-top:1px solid #d9e3e5;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px}
.plan-positioner-open>.plan-legend span{min-width:0;display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:2px 8px;padding:8px;border-radius:8px}
.plan-positioner-open>.plan-legend strong,.plan-positioner-open>.plan-legend small{grid-column:2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media(max-width:760px){
  /* On a phone, the project identity and live scope must be visible before the workflow. */
  .project-workspace-body{display:flex!important;flex-direction:column!important}
  .project-workspace-body>.project-context.role-aware-project-context{order:-1;width:100%;max-width:none;box-sizing:border-box;padding:12px 14px;border:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;background:#f7fafa}
  .project-workspace-body>.project-context.role-aware-project-context>section{min-width:0;margin:0;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff}
  .project-workspace-body>.project-context.role-aware-project-context .kicker{margin:0 0 6px;font-size:9px;letter-spacing:.09em}
  .project-workspace-body>.project-context.role-aware-project-context h3{margin:0 0 4px;font-size:14px;line-height:1.25;overflow-wrap:anywhere}
  .project-workspace-body>.project-context.role-aware-project-context p{margin:0;font-size:11px;line-height:1.35;overflow-wrap:anywhere}
  .project-workspace-body>.project-context.role-aware-project-context .project-info{margin:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;font-size:11px}
  .project-workspace-body>.project-context.role-aware-project-context .project-info dd{margin:0;text-align:right;font-weight:800}
  .project-workspace-body>.project-context.role-aware-project-context>.project-activity,
  .project-workspace-body>.project-context.role-aware-project-context>.project-validation-card,
  .project-workspace-body>.project-context.role-aware-project-context>button{grid-column:1/-1}
  .project-workspace-body>.project-context.role-aware-project-context>.project-activity{display:none}
  .plan-card:not(.plan-positioner-open) .plan-canvas{touch-action:manipulation}
  .plan-card:not(.plan-positioner-open) .plan-pin,.plan-card:not(.plan-positioner-open) .room-plan-pin,.plan-card:not(.plan-positioner-open) .plan-pin-normalized{width:24px!important;height:24px!important;min-width:24px!important;min-height:24px!important;font-size:10px!important;border-width:1.5px!important;box-shadow:0 2px 6px #001b3048}
  .plan-card:not(.plan-positioner-open) .plan-equipment-symbol,.plan-card:not(.plan-positioner-open) .client-plan-symbol{width:20px!important;height:20px!important;font-size:8px!important}
  dialog:not(.report-viewer-dialog){width:calc(100vw - 20px)!important;max-width:none!important;max-height:calc(100dvh - 20px)!important;margin:auto!important;border-radius:16px!important;background:#fff!important;overflow:hidden!important}
  dialog .dialog-card,dialog .wide-dialog,dialog .room-material-dialog{box-sizing:border-box;width:100%!important;max-width:none!important;max-height:calc(100dvh - 20px)!important;margin:0!important;padding:18px 16px calc(22px + env(safe-area-inset-bottom))!important;border-radius:16px!important;background:#fff!important;overflow-x:hidden!important;overflow-y:auto!important;color:var(--ink)!important}
  dialog .dialog-card>*{min-width:0}
  dialog .dialog-card>.dialog-head{position:sticky;z-index:5;top:-18px;margin:-18px -16px 4px;padding:18px 16px 12px;background:#fff;border-bottom:1px solid #edf2f3}
  dialog .dialog-card>.dialog-head>div{min-width:0}
  dialog .dialog-card>.dialog-head h2{overflow-wrap:anywhere}
  dialog .dialog-card>.dialog-head .icon-button{flex:0 0 44px;width:44px;height:44px}
  dialog .dialog-card h2{font-size:24px!important;line-height:1.15!important}
  dialog .dialog-card .form-grid{grid-template-columns:1fr!important;gap:13px!important}
  dialog .dialog-card input,dialog .dialog-card select,dialog .dialog-card textarea{min-height:48px;font-size:16px!important;line-height:1.3!important}
  dialog .dialog-card textarea{min-height:92px}
  dialog .dialog-card label{font-size:14px!important;gap:7px}
  .room-material-dialog .material-catalog-search{position:relative;display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;overflow:hidden!important;box-sizing:border-box!important}
  .room-material-dialog .material-catalog-search input{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;padding-left:42px!important;padding-right:12px!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .room-material-dialog .material-catalog-search i{position:absolute;left:14px;top:50%;transform:translateY(-50%);z-index:1}
  .room-material-dialog .catalog-suggestions{position:relative;z-index:2;width:100%;max-width:100%;min-width:0;display:grid;gap:6px;padding:0;background:#fff;overflow:hidden}
  .room-material-dialog .catalog-suggestions button{min-width:0;padding:12px;border:1px solid #dce6e8;border-radius:10px;background:#f8fbfb;text-align:left;overflow:hidden}
  .room-material-dialog .catalog-suggestions button strong,.room-material-dialog .catalog-suggestions button small{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  dialog .dialog-card>button.primary:last-child{position:sticky;bottom:-22px;z-index:4;width:100%;min-height:50px;margin:4px -2px -22px;padding-bottom:calc(12px + env(safe-area-inset-bottom));box-shadow:0 -8px 18px #fff}
  .plan-positioner-header{padding:calc(10px + env(safe-area-inset-top)) 10px 10px;grid-template-columns:minmax(0,1fr) auto}
  .plan-positioner-title strong{font-size:15px}
  .plan-positioner-title span{font-size:11px}
  .plan-positioner-actions button{width:40px;height:40px}
  .plan-positioner-actions [data-plan-zoom-out],.plan-positioner-actions [data-plan-zoom-in]{display:none}
  .plan-positioner-open>.plan-scroll-viewport{margin-top:8px}
  .plan-positioner-open .plan-canvas{width:calc(720px * var(--plan-zoom,1));min-width:720px}
  .plan-positioner-open .plan-pin,.plan-positioner-open .room-plan-pin,.plan-positioner-open .plan-pin-normalized{width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;font-size:11px!important;box-shadow:0 3px 9px #001b305c}
  .plan-positioner-open .plan-equipment-symbol,.plan-positioner-open .client-plan-symbol{width:23px;height:23px;font-size:9px}
  .plan-positioner-open>.plan-legend{max-height:19dvh;padding:7px 9px calc(8px + env(safe-area-inset-bottom));grid-template-columns:1fr}
}
