/* Canvas-led planning desk. Existing Bivar tokens, IFC tabs and native canvas. */
.planner-workspace {
  --pl-1: 8px;
  --pl-2: 16px;
  --pl-3: 24px;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  overflow: clip;
  isolation: isolate;
}
.planner-workspace :is(h2,h3,h4) { text-wrap: balance; }
.planner-workspace p { text-wrap: pretty; overflow-wrap: anywhere; }
.planner-workspace :is(input, select, textarea) { min-width: 0; max-width: 100%; font-size: 16px; font-variant-numeric: tabular-nums; }
.planner-workspace :is(label, input, select, textarea) { box-sizing: border-box; }
.planner-workspace :is(.button, .text-link, summary) { min-height: 44px; }
.planner-workspace :is(button, summary, input, select, textarea):focus-visible { outline: 3px solid var(--green); outline-offset: 2px; }
.planner-workspace label { min-width: 0; }
.planner-toolbar label, .planner-panel label:not(.planner-check) { display: flex; flex-direction: column; gap: 6px; font-size: 14px; }
.planner-workspace textarea { width: 100%; padding: 10px 12px; font: inherit; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 7px; resize: vertical; }
.planner-workspace input:not([type=checkbox]):not([type=range]), .planner-workspace select { width: 100%; min-height: 44px; }
.planner-plan-settings { position:relative; min-width:0; }
.planner-plan-fields { position:absolute; z-index:20; right:0; top:calc(100% + 8px); display:grid; gap:12px; width:300px; max-width:calc(100vw - 32px); padding:12px; background:var(--surface); border:1px solid var(--line); border-radius:8px; box-shadow:0 4px 12px #173b301a; }
.planner-plan-fields label { min-width:0; }
.planner-plan-settings>summary { list-style:none; cursor:pointer; }
.planner-plan-settings>summary::-webkit-details-marker { display:none; }
.planner-background-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.planner-export { position: relative; }
.planner-export > summary { list-style: none; cursor: pointer; }
.planner-export > summary::-webkit-details-marker { display: none; }
.planner-export-options { position: absolute; z-index: 3; right: 0; top: calc(100% + 8px); display: grid; gap: 4px; padding: 8px; min-width: 230px; max-width: calc(100vw - 40px); border: 1px solid var(--line); border-radius: 8px; background: var(--surface); box-shadow: 0 4px 12px #173b301a; }
.planner-export-options .button { justify-content: flex-start; }
.planner-board-area { min-width: 0; }
.planner-stage { display: grid; grid-template-columns: minmax(0, 1fr) 360px; height: clamp(600px, 72dvh, 1000px); min-width: 0; }
.planner-stage.planner-panel-closed { grid-template-columns: minmax(0, 1fr); }
.planner-canvas { container-type: inline-size; position: relative; min-width: 0; min-height: 0; width: 100%; height: 100%; overflow: hidden; background: white; }
.planner-sidebar { display: grid; grid-template-rows: auto minmax(0, 1fr); min-width: 0; min-height: 0; border-left: 1px solid var(--line); background: var(--surface); }
.planner-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-bottom: 1px solid var(--line); padding: 4px; }
.planner-tabs button { min-width: 0; min-height: 44px; border: 0; border-radius: 5px; background: transparent; color: var(--muted); font: inherit; font-size: 14px; cursor: pointer; }
.planner-tabs button[aria-selected=true] { background: var(--soft); color: var(--green-dark); box-shadow: inset 0 -2px var(--green); font-weight: 600; }
.planner-tabs button:hover { background: var(--paper); color: var(--ink); }
.planner-panel { min-width: 0; min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 20px; scrollbar-gutter: stable; }
.planner-panel :is(h2,h3) { margin: 0 0 12px; font-size: 20px; }
.planner-panel h4 { font-size: 17px; }
.planner-panel p { margin: 8px 0 16px; line-height: 1.55; }
.planner-panel .small { font-size: 14px; }
.planner-panel :is(.planner-source, .planner-pool, .planner-editor, .planner-review) { min-width: 0; padding: 0; border: 0; margin: 0; background: transparent; }
.planner-source-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
.planner-source-actions .text-link { text-align: left; }
.planner-pool { display: grid; gap: 12px; padding-top: 20px !important; }
.planner-pool select { overflow: hidden; text-overflow: ellipsis; }
.planner-pool select[size] { height: 145px; font-size: 14px; overflow: auto; }
.planner-pool option { padding: 4px 0; }
.planner-pool p { margin: 0; }
.planner-task-list-block { border-block: 1px solid var(--line); padding: 20px 0; margin-top: 20px; }
.planner-task-list { display: grid; gap: 8px; max-height: 320px; overflow: auto; }
.planner-task-item { display: grid; gap: 4px; flex-shrink: 0; width: 100%; min-width: 0; min-height: 60px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.planner-task-item.selected { border-color: var(--green); background: var(--soft); }
.planner-task-item:hover { border-color: var(--green); }
.planner-task-code, .planner-task-state { font-size: 13px; }
.planner-task-code { font-weight: 600; }
.planner-task-title { font-size: 15px; overflow-wrap: anywhere; }
.planner-task-state { color: var(--muted); }
.planner-task-state[data-state=blocked], .planner-task-state[data-state=missed] { color: var(--orange); }
.planner-editor-heading { display: grid; gap: 8px; margin-bottom: 12px; }
.planner-editor-heading .button { justify-self: start; }
.planner-editor-heading h3 { margin: 0; overflow-wrap: anywhere; }
.planner-form-grid, .planner-position-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.planner-wide-field { grid-column: auto; }
.planner-advanced, .planner-crop-fields, .planner-canvas-help { margin: 16px 0; min-width: 0; border: 1px solid var(--line); border-radius: 7px; }
.planner-workspace summary:not(.button) { display: list-item; list-style-position: inside; padding: 10px 12px; line-height: 1.5; cursor: pointer; }
.planner-advanced[open] > summary, .planner-crop-fields[open] > summary { border-bottom: 1px solid var(--line); }
.planner-position-grid, .planner-crop-fields > :not(summary), .planner-canvas-help p { padding: 12px; }
.planner-position-grid label { gap: 6px; }
.planner-constraints { margin: 16px 0; min-width: 0; border: 1px solid var(--line); padding: 12px; border-radius: 7px; }
.planner-constraints legend { font-weight: 600; padding: 0 4px; }
.planner-check { display: flex; flex-direction: row; align-items: center; gap: 8px; min-height: 44px; font-size: 14px; }
.planner-check input { width: 20px; height: 20px; flex: none; }
.planner-editor-actions { display: grid; gap: 8px; margin-top: 16px; }
.planner-editor-actions .button { justify-content: center; width: 100%; }
.planner-form-message, .planner-background-feedback { margin: 8px 0; font-size: 14px; overflow-wrap: anywhere; }
.planner-background-feedback:empty { display: none; }
.planner-background-form { display: grid; gap: 12px; margin: 16px 0; }
.planner-background-form p, .planner-background-form details { margin: 0; }
.planner-background-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.planner-background-grid input { font-variant-numeric: tabular-nums; }
.planner-background-actions .button { flex: 1 1 auto; font-size: 14px; }
.planner-background-form input[type=range] { width: 100%; min-height: 44px; accent-color: var(--green); }
.planner-page-control { margin: 16px 0; max-width: 160px; }
.planner-page-control input { width: 100%; }
.planner-review { padding-top: 20px !important; border-top: 1px solid var(--line) !important; }
.planner-review-heading { display: grid; gap: 8px; }
.planner-review-heading p { margin: 0 0 8px; }
.planner-review-empty { margin: 16px 0; }
.planner-ppc { display: grid; gap: 8px; margin: 16px 0; padding: 16px; background: var(--soft); border-radius: 7px; }
.planner-ppc strong { font-size: 24px; font-variant-numeric: tabular-nums; }
.planner-ppc p { margin: 0; font-size: 14px; color: var(--muted); }
.planner-commitment-list { display: grid; gap: 16px; margin: 16px 0; }
.planner-commitment { min-width: 0; padding: 16px 0; border-top: 1px solid var(--line); display: grid; gap: 12px; }
.planner-commitment strong { overflow-wrap: anywhere; }
.planner-commitment p { margin: 0; font-size: 14px; color: var(--muted); }
.planner-commitment label { font-size: 14px; }
.planner-statusbar { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 20px; border-top: 1px solid var(--line); padding: 8px 16px; font-size: 14px; }
.planner-statusbar .small { font-size: 13px; }
.planner-message { flex: 1 1 240px; min-height: 20px; margin: 0; line-height: 1.5; overflow-wrap: anywhere; }
.planner-disclaimer { margin: 20px 0; font-size: 14px; line-height: 1.6; }
.planner-confirm { --pl-1: 8px; --pl-2: 16px; width: min(520px, calc(100% - 32px)); }
.planner-confirm form { display: flex; flex-wrap: wrap; justify-content: end; gap: 8px; margin-top: 16px; }
.planner-workspace.viewer-expanded { display: flex; flex-direction: column; width: 100%; height: 100dvh; border: 0; border-radius: 0; padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); box-sizing: border-box; }
.planner-workspace.viewer-expanded .planner-board-area { flex: 1; min-height: 0; display: flex; }
.planner-workspace.viewer-expanded .planner-stage { height: auto; flex: 1; min-height: 0; }
.planner-workspace.viewer-expanded .planner-statusbar { max-height: 18dvh; overflow: auto; flex-shrink: 0; }
/* Upstream mobile tools use window vw; our embedded viewport is narrower. */
.planner-canvas .excalidraw .default-sidebar-trigger { display: none; }
.planner-canvas.planner-task-selection .selected-shape-actions { display: none; }
.planner-canvas .excalidraw.excalidraw--mobile .App-toolbar-container { width: calc(100cqw - 24px); min-width: 0; grid-template-columns: minmax(0, 1fr); }
.planner-canvas .excalidraw .App-toolbar--mobile { width: 100%; max-width: 100%; min-width: 0; }
.planner-canvas .excalidraw .App-toolbar--mobile > .Stack_horizontal { grid-template-columns: repeat(auto-fit, minmax(44px, 1fr)); grid-auto-flow: row; gap: 4px; }
.planner-canvas .excalidraw .App-toolbar--mobile .ToolIcon__icon, .planner-canvas .excalidraw .App-toolbar--mobile .App-toolbar__extra-tools-trigger { width: 44px; height: 44px; }
.planner-canvas .excalidraw .App-toolbar--mobile .App-toolbar__divider { display: none; }
.planner-canvas .excalidraw.excalidraw--mobile .mobile-misc-tools-container { top: 168px; }
body:has([data-app="visual-planner"]) .HelpDialog__header, .planner-canvas .welcome-screen-center__logo { display: none; }
@media (max-width: 1000px) {
  .planner-stage { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(420px, 1fr) 360px; height: 860px; }
  .planner-stage.planner-panel-closed { grid-template-rows: minmax(420px, 1fr); height: max(62dvh, 480px); }
  .planner-sidebar { border-left: 0; border-top: 1px solid var(--line); }
  .planner-workspace.viewer-expanded .planner-stage { grid-template-rows: minmax(180px, 1fr) minmax(0, 42%); }
  .planner-workspace.viewer-expanded .planner-stage.planner-panel-closed { grid-template-rows: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  body:has([data-app="visual-planner"]) .Modal__content { opacity: 1; transform: none; }
}
@media print {
  .planner-project-slot, .planner-toolbar, .planner-sidebar, .planner-statusbar { display: none !important; }
  .planner-stage { display: block; height: 70vh; }
  .planner-workspace { border: 0; }
}
