/* Structural drafting refinements, now using Raxentra semantic tokens. */
:root{
  --sk-paper:var(--rx-surface);
  --sk-paper-deep:var(--rx-soft);
  --sk-ink:var(--rx-text);
  --sk-muted:var(--rx-muted);
  --sk-line:var(--rx-line-strong);
  --sk-teal:var(--rx-accent);
  --sk-orange:var(--rx-accent);
  --sk-red:var(--rx-danger);
  --sk-blue:var(--rx-info);
}
html,body{background:var(--sk-paper);color:var(--sk-ink)}
body{background-image:repeating-linear-gradient(135deg,rgba(var(--rx-emphasis-rgb),0.024) 0 1px,transparent 1px 24px)}
body[data-role="ge"],body[data-role="ge_admin"]{--role-accent:var(--rx-accent);--role-soft:var(--rx-accent-soft)}
body[data-role="warehouse"],body[data-role="admin"]{--role-accent:var(--rx-accent);--role-soft:var(--rx-accent-soft)}
body[data-role="manager"]{--role-accent:var(--rx-accent);--role-soft:var(--rx-accent-soft)}
body[data-role="integration"]{--role-accent:var(--rx-accent);--role-soft:var(--rx-accent-soft)}
button,select,input,textarea{accent-color:var(--role-accent)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--sk-orange);outline-offset:2px}
.sidebar{background-color:var(--rx-sidebar);background-image:repeating-linear-gradient(0deg,rgba(var(--rx-surface-rgb),0.031) 0 1px,transparent 1px 18px);border-right:2px solid var(--rx-accent);color:var(--rx-on-emphasis)}
.brand{border-bottom:1px solid rgba(var(--rx-line-rgb),0.231)}
.brand-icon{background:transparent;border:2px solid var(--rx-line);border-radius:4px;box-shadow:3px 3px 0 var(--rx-shadow-color);color:var(--rx-on-emphasis)}
.brand small,.side-caption,.sidebar-role small,.sidebar-foot small{color:var(--rx-muted)}
.nav-item{min-height:46px;height:auto;border:1px solid transparent;border-radius:4px;color:var(--rx-on-emphasis);font-size:calc((13px) * var(--ui-font-scale,1));letter-spacing:.01em}
.nav-item:hover{background:rgba(var(--rx-soft-rgb),0.11);border-color:rgba(var(--rx-line-rgb),0.271)}
.nav-item.active{background:var(--rx-soft);color:var(--rx-sidebar-text);border-color:var(--rx-line);box-shadow:3px 3px 0 var(--rx-shadow-color)}
.nav-icon{height:27px;width:29px;border:1.5px solid currentColor;border-radius:3px;background:rgba(var(--rx-surface-rgb),0.047);flex:none}
.nav-icon svg{width:18px;height:18px}
.nav-item.active .nav-icon{background:var(--rx-soft)}
.sidebar-role,.sidebar-foot{border-top:1px solid rgba(var(--rx-line-rgb),0.224)}
.topbar{background:var(--rx-surface);border-bottom:2px solid var(--sk-ink);box-shadow:none}
.topbar-title strong{color:var(--sk-ink)}
.top-select,.field input,.field select,.field textarea,.searchbar input,.filter-select,.admin-location-search input{background:var(--rx-surface);border:1.5px solid var(--rx-line);border-radius:4px;color:var(--sk-ink)}
.demo-chip,.chip{border-radius:3px;border:1px solid currentColor;background:var(--rx-soft)}
main{max-width:1660px}
.page-heading h1{color:var(--sk-ink);font-weight:800;letter-spacing:-.025em}
.page-heading p,.panel-title p,.muted,.small{color:var(--sk-muted)}
.page-heading{border-bottom:1px solid var(--rx-line);padding-bottom:14px}
.eyebrow{letter-spacing:.13em;color:var(--role-accent)}
.page-return button,.global-edit-history button{border-radius:3px}
.role-context{background:var(--rx-soft);border:1px solid var(--rx-line);border-radius:4px;color:var(--sk-muted)}
.role-context-dot{border-radius:1px}
.panel,.metric,.planner-catalog,.feature-guide,.map-kpis>div,.map-stage-wrap,.request-row,.unit-card,.fit-option,.action-banner,.selectable-item,.source-details{
  background:var(--rx-surface);border:1.5px solid var(--rx-line);border-radius:5px;box-shadow:3px 3px 0 var(--rx-shadow-color);
}
.panel-title h2,.panel-title h3,.metric strong,.map-kpis b,.list-card b{color:var(--sk-ink)}
.metric.green,.metric.amber,.metric.red{background:var(--rx-danger-soft)}
.metric.green{border-top:4px solid var(--rx-success)}.metric.amber{border-top:4px solid var(--rx-warning)}.metric.red{border-top:4px solid var(--rx-danger)}
.button,.button:not(.secondary):not(.danger):not(.soft){border:1.5px solid var(--rx-danger);border-radius:4px;background:var(--rx-danger);color:var(--rx-danger);box-shadow:2px 2px 0 var(--rx-danger)}
.button:hover,.button:not(.secondary):not(.danger):not(.soft):hover{background:var(--rx-danger);transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--rx-danger)}
.button.secondary{border:1.5px solid var(--rx-line-strong);background:var(--rx-surface);color:var(--rx-accent)}
.button.soft{border:1px solid var(--rx-line);background:var(--rx-soft);color:var(--rx-accent)}
.button.danger{background:var(--rx-danger);border-color:var(--rx-danger);color:var(--rx-on-emphasis)}
.data-table th{background:var(--rx-soft);color:var(--rx-text);border-bottom:2px solid var(--rx-line-strong)}
.data-table td{border-bottom:1px solid var(--rx-line);color:var(--rx-text)}
.data-table tr.selectable:hover,.data-table tr.selected{background:var(--rx-soft)}
.help,.warning,.error-box,.success-box{border-radius:2px;background:var(--rx-danger-soft);border-left-width:4px;color:var(--sk-ink)}
.help{border-left-color:var(--rx-line-strong)}.warning{border-left-color:var(--rx-warning)}.error-box{border-left-color:var(--rx-danger)}.success-box{border-left-color:var(--rx-success)}
.steps span,.segmented,.segmented button.active{border-radius:3px;box-shadow:none}
.kv{border-bottom-color:var(--rx-line)}
.list-icon,.template-icon{border:1.5px solid currentColor;border-radius:3px;background:var(--rx-surface)}
.request-row.selected,.unit-card.active{background:var(--rx-soft);border-color:var(--rx-accent)}
.source-details,.snapshot-row,.placeholder,.file-drop{border-color:var(--rx-line);background:var(--rx-surface)}
.label-sheet{border:2px solid var(--sk-ink);box-shadow:4px 4px 0 var(--rx-shadow-color)}
dialog{background:var(--rx-surface);border:2px solid var(--sk-ink);border-radius:6px;box-shadow:8px 8px 0 rgba(var(--rx-shadow-color-rgb),0.271)}
dialog::backdrop{background:rgba(var(--rx-emphasis-rgb),0.6)}
.feature-guide{padding:22px 25px}
.feature-guide .guide-heading{border-color:var(--rx-line)}

/* The designer reads like a plan sheet, not a collection of software cards. */
.planner-hero{background:var(--rx-surface);color:var(--sk-ink);border:2px solid var(--sk-ink);border-radius:5px;box-shadow:5px 5px 0 var(--rx-shadow-color)}
.planner-hero:before{background-image:linear-gradient(rgba(var(--rx-accent-rgb),0.09) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--rx-accent-rgb),0.09) 1px,transparent 1px);background-size:25px 25px;mask-image:none}
.planner-hero span{color:var(--sk-teal)}.planner-hero h2{color:var(--sk-ink)}.planner-hero p{color:var(--sk-muted)}.planner-hero-mark{color:var(--rx-text)}
.planner-template{background:var(--rx-surface);border:1.5px solid var(--rx-line);border-radius:4px;box-shadow:2px 2px 0 var(--rx-shadow-color)}
.planner-template:hover,.planner-template.active{border-color:var(--rx-accent);background:var(--rx-soft);box-shadow:3px 3px 0 var(--rx-shadow-color)}
.planner-viewbar,.draw-tools,.planner-workflow,.planner-command-bar,.map-toolbar-modern{background:var(--rx-soft);border:1px solid var(--rx-line);border-radius:4px}
.planner-view-toggle button,.draw-tools button,.planner-zoom button,.plan-expand-button{border-radius:2px}
.planner-view-toggle button.active,.draw-tools button.active{background:var(--rx-soft);color:var(--rx-accent);border:1px solid var(--rx-accent);box-shadow:none}
.planner-view-actions button,.planner-command-actions button{white-space:nowrap}
.planner-workspace .map-stage-wrap{background:var(--rx-surface);padding:17px}
.planner-workspace .map-stage,.map-stage{
  background-color:var(--rx-surface);
  background-image:linear-gradient(rgba(var(--rx-accent-soft-rgb),0.169) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--rx-accent-soft-rgb),0.169) 1px,transparent 1px);
  background-size:5% 5%;border:2px solid var(--rx-line-strong);border-radius:1px;box-shadow:inset 0 0 0 5px var(--rx-shadow-color);
}
.map-stage.grid-hidden{background-image:none}
.plan-ruler-x,.plan-ruler-y{background:var(--rx-soft);color:var(--rx-text)}
.plan-ruler-tick{color:var(--rx-text)}
.map-area{border:2px solid var(--rx-line-strong);border-radius:1px;box-shadow:2px 2px 0 rgba(var(--rx-shadow-color-rgb),0.208);color:var(--rx-text)}
.map-area.rack,.map-area.rack.free{background:var(--rx-success-soft);border-color:var(--rx-success)}
.map-area.rack.partial{background:var(--rx-warning-soft);border-color:var(--rx-warning)}
.map-area.rack.full{background:var(--rx-soft);border-color:var(--rx-line-strong)}
.map-area.floor{background:var(--rx-soft);border-color:var(--rx-line-strong)}
.map-area.floor.partial{background:var(--rx-warning-soft);border-color:var(--rx-warning)}
.map-area.floor.full{background:var(--rx-soft);border-color:var(--rx-accent)}
.map-area.aisle{background:repeating-linear-gradient(135deg,var(--rx-surface),var(--rx-surface) 10px,var(--rx-soft) 10px,var(--rx-soft) 11px);border:1px dashed var(--rx-line-strong);color:var(--rx-text)}
.map-area.dock{background:var(--rx-soft);border-color:var(--rx-line-strong)}
.map-area.selected{outline:3px solid var(--rx-line);outline-offset:2px}
.map-area.searched{box-shadow:0 0 0 4px var(--rx-shadow-color)}
.map-area-code{background:rgba(var(--rx-surface-rgb),0.91);padding:2px 3px;border:1px solid var(--rx-line-strong);border-radius:1px;letter-spacing:.02em;color:var(--rx-text)}
.rack-bay-hit{border-right:1px solid rgba(var(--rx-line-strong-rgb),0.639);background:repeating-linear-gradient(125deg,transparent,transparent 8px,rgba(var(--rx-emphasis-rgb),0.067) 8px,rgba(var(--rx-emphasis-rgb),0.067) 9px)}
.rack-bay-hit.partial{background:repeating-linear-gradient(135deg,rgba(var(--rx-warning-soft-rgb),0.2),rgba(var(--rx-warning-soft-rgb),0.2) 4px,rgba(var(--rx-warning-soft-rgb),0.263) 4px,rgba(var(--rx-warning-soft-rgb),0.263) 10px)}
.rack-bay-hit.full{background:repeating-linear-gradient(135deg,rgba(var(--rx-accent-soft-rgb),0.2),rgba(var(--rx-accent-soft-rgb),0.2) 4px,rgba(var(--rx-surface-rgb),0.302) 4px,rgba(var(--rx-surface-rgb),0.302) 10px)}
.rack-bay-hit.selected{box-shadow:inset 0 0 0 2px var(--rx-shadow-color);background-color:var(--rx-surface)}
.map-progress{background:var(--rx-soft);border:1px solid var(--rx-line);border-radius:1px}
.map-progress i{background:var(--rx-accent-soft);border-radius:0}
.map-footprint-hu,.floor-hu{background:var(--rx-soft);border:1.5px solid var(--rx-line-strong);border-radius:1px;color:var(--rx-text)}
.map-dimension-strip{background:var(--rx-soft);border:1px solid var(--rx-line);color:var(--rx-text);border-radius:2px}
.map-selection-box{background:rgba(var(--rx-soft-rgb),0.29);border:1.5px dashed var(--rx-accent)}
.map-smart-guide{background:var(--rx-accent-soft)}
.planner-spec-grid>div,.planner-form-section,.planner-form-preview,.planner-modal-intro{background:var(--rx-surface);border:1px solid var(--rx-line);border-radius:3px}
.rack-face-matrix{background:var(--rx-emphasis);border:2px solid var(--rx-line-strong);border-radius:2px;gap:3px;padding:4px}
.rack-matrix-corner,.rack-matrix-bay,.rack-matrix-level{background:var(--rx-soft);border-radius:1px;color:var(--rx-text)}
.rack-matrix-bay{border-bottom:3px solid var(--rx-line-strong)}
.rack-matrix-level{border-right:3px solid var(--rx-line-strong)}
.rack-cell{border:1.5px solid var(--rx-line-strong);border-radius:1px;background:var(--rx-soft);color:var(--rx-text);box-shadow:none}
.rack-cell.free{background:var(--rx-success-soft)}
.rack-cell.busy{background-color:var(--rx-soft);background-image:repeating-linear-gradient(135deg,rgba(var(--rx-emphasis-rgb),0.075) 0 1px,transparent 1px 11px);color:var(--rx-text);border-color:var(--rx-line-strong)}
.rack-cell.blocked{background:repeating-linear-gradient(135deg,var(--rx-danger-soft),var(--rx-danger-soft) 7px,rgba(var(--rx-danger-soft-rgb),0.392) 7px,rgba(var(--rx-danger-soft-rgb),0.392) 8px)}
.rack-cell.passage{background:var(--rx-soft);border:1.5px dashed var(--rx-line-strong);color:var(--rx-muted)}
.rack-cell.selected{outline:3px solid var(--rx-accent);outline-offset:1px;box-shadow:none}
.rack-cell:hover{transform:none;box-shadow:inset 0 0 0 2px var(--rx-shadow-color)}
.rack-face-meter{border:1px solid var(--rx-line-strong);border-radius:1px;height:8px;background:var(--rx-soft)}
.rack-face-meter i{background:var(--rx-accent-soft);border-radius:0}
.rack-selection-card{border:1.5px solid var(--rx-line);border-radius:3px;background:var(--rx-surface)}
.rack-face-fullscreen{background:var(--rx-surface)}
.rack-face-fullscreen .rack-face-toolbar{background:var(--rx-surface);border-bottom:2px solid var(--sk-ink);box-shadow:none}
.rack-face-toolbar-actions button,.rack-face-controls button,.rack-focus-button{background:var(--rx-surface);border:1px solid var(--rx-line-strong);border-radius:3px;color:var(--rx-accent)}
.rack-face-legend i{border:1px solid var(--rx-line-strong);border-radius:1px}
.floor-face{background:var(--rx-soft);border:2px solid var(--rx-line-strong)}
.iso-wrap{background:var(--rx-soft);border-color:var(--rx-line-strong)}

/* Ink rendering controls sit on the same paper as the drawn warehouse. */
.walkthrough{background:var(--rx-soft);border:2px solid var(--rx-line-strong);border-radius:3px;box-shadow:5px 5px 0 var(--rx-shadow-color)}
.scene-mode-switch,.scene-control-cluster,.scene-navigation{background:rgba(var(--rx-surface-rgb),0.91);border:1px solid var(--rx-line-strong);border-radius:3px;box-shadow:3px 3px 0 rgba(var(--rx-shadow-color-rgb),0.314);backdrop-filter:none}
.scene-mode-switch button,.scene-control-cluster button,.scene-navigation button{color:var(--rx-text);border-radius:2px}
.scene-mode-switch button.active,.scene-mode-switch button:hover,.scene-control-cluster button:hover,.scene-navigation button:hover{background:var(--rx-soft);color:var(--rx-accent)}
.scene-hud-coords,.scene-occupancy,.scene-minimap,.scene-pallet-card,.scene-floating-hu,.scene-move-banner,.scene-plan-legend{background:rgba(var(--rx-surface-rgb),0.91);border:1px solid var(--rx-line-strong);border-radius:3px;box-shadow:3px 3px 0 rgba(var(--rx-shadow-color-rgb),0.2);color:var(--rx-text);backdrop-filter:none}
.scene-occupancy b,.scene-pallet-card strong{color:var(--rx-accent)}
.scene-caption{background:var(--rx-surface);border:1px solid var(--rx-line);color:var(--rx-text)}
.scene-crosshair{color:var(--rx-accent)}
.scene-style-toggle{white-space:nowrap}
.scene-style-toggle.active{background:var(--rx-soft)!important;color:var(--rx-accent)!important}
.scene-hud-top{flex-wrap:wrap}
.scene-style-switch{margin-right:auto}
.scene-minimap canvas{border:1px solid var(--rx-line-strong);background:var(--rx-soft)}
.scene-selected{outline-color:var(--rx-accent)!important}

/* New drafting controls. */
.map-view-extras{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.map-view-extras button,.measure-clear{border:1px solid var(--rx-line);background:var(--rx-surface);color:var(--rx-text);border-radius:3px;padding:7px 9px;font-size:calc((11px) * var(--ui-font-scale,1));font-weight:800}
.map-view-extras button:hover,.measure-clear:hover{background:var(--rx-soft)}
.map-view-extras button.active{background:var(--rx-soft);border-color:var(--rx-accent)}
.map-measure-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:7;overflow:visible}
.map-measure-layer line{stroke:var(--rx-accent);stroke-width:2;stroke-dasharray:7 4;vector-effect:non-scaling-stroke}
.map-measure-layer circle{fill:var(--rx-on-emphasis);stroke:var(--rx-accent);stroke-width:2;vector-effect:non-scaling-stroke}
.map-measure-label{position:absolute;z-index:8;transform:translate(-50%,-130%);background:var(--rx-surface);border:1px solid var(--rx-accent);border-radius:2px;padding:3px 6px;font-size:calc((10px) * var(--ui-font-scale,1));font-weight:900;color:var(--rx-text);pointer-events:none;white-space:nowrap}
.map-measure-readout{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:8px;padding:8px 10px;background:var(--rx-soft);border:1px solid var(--rx-line);color:var(--rx-text);font-size:calc((11px) * var(--ui-font-scale,1))}
.map-measure-readout strong{color:var(--rx-text);font-size:calc((13px) * var(--ui-font-scale,1))}
.map-stage-scroll.pan-ready{cursor:grab}.map-stage-scroll.panning{cursor:grabbing;user-select:none}
.map-stage-scroll.pan-ready .map-area,.map-stage-scroll.panning .map-area{cursor:inherit}
.map-stage.measure-active{cursor:crosshair}.map-stage.measure-active .map-area{cursor:crosshair}
.planner-pair-option{display:flex;align-items:flex-start;gap:11px;margin:12px 0;padding:13px 15px;border:2px solid var(--rx-line-strong);border-radius:3px;background:var(--rx-soft);cursor:pointer}
.planner-pair-option input{width:19px;height:19px;margin-top:1px;flex:none}
.planner-pair-option strong,.planner-pair-option small{display:block;color:var(--rx-text)}
.planner-pair-option small{margin-top:4px;font-size:calc((11px) * var(--ui-font-scale,1));line-height:1.45;color:var(--rx-text)}
.planner-form-preview-warning{border-color:var(--rx-warning)!important;background:var(--rx-warning-soft)!important;color:var(--rx-warning)!important}
@media(max-width:740px){.map-view-extras{width:100%;justify-content:flex-start}.map-view-extras button{font-size:calc((10px) * var(--ui-font-scale,1));padding:6px}.nav-item{min-height:44px}.sidebar{background-color:var(--rx-sidebar)}}
