.factory-map{font:14px "Segoe UI",system-ui,sans-serif;color:#193b36;max-width:100%;overflow-wrap:anywhere}.factory-map *{box-sizing:border-box}.factory-map-toolbar{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0;align-items:end}.factory-map button,.factory-map select,.factory-map input,.factory-map textarea{font:inherit;min-height:44px;max-width:100%;padding:10px 12px;border:1px solid #d5e1da;border-radius:9px;background:#fff;color:inherit}.factory-map button{cursor:pointer;font-weight:600}.factory-map button:hover{background:#edf5ef;border-color:#a7c6b6}.factory-map button:disabled{opacity:.6;cursor:wait}.factory-map :is(button,select,input,textarea):focus-visible{outline:3px solid #71bda9;outline-offset:2px}.factory-map [role=status]{font-size:12px;color:#647b73}.factory-canvas{border:1px solid #dce5df;border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 8px 28px #193b3608;margin:20px 0}.factory-canvas-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 22px;border-bottom:1px solid #dce5df}.factory-canvas h2{margin:5px 0 0;font-size:21px;letter-spacing:-.6px}.factory-canvas-eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:700;color:#6c8279}.factory-canvas-filters{margin:0;flex:0 1 440px;align-items:center}.factory-canvas-filters select{width:auto;min-width:130px;flex:1;font-size:12px}.factory-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 265px;min-width:0}.factory-canvas-stage{position:relative;min-width:0;background:#f9fbf8;background-image:radial-gradient(#d5e2db 1px,transparent 1px);background-size:20px 20px}.factory-map svg{display:block;width:100%;height:clamp(380px,62vh,720px);touch-action:none;user-select:none;cursor:grab}.factory-map svg:active{cursor:grabbing}.factory-map svg [data-node]{cursor:pointer;--node-color:#24816d;outline:none}.factory-map svg [data-type="Kontroll"]{--node-color:#8176b2}.factory-map svg [data-type="Administration"],.factory-map svg [data-type="IT"]{--node-color:#6486ba}.factory-map svg [data-type="Lager"],.factory-map svg [data-type="Inleverans"]{--node-color:#668d60}.factory-map svg rect{fill:#fff;stroke:#ccddd3;stroke-width:1.2}.factory-map svg [data-node]>rect{filter:drop-shadow(0 2px 2px #193b3610)}.factory-map svg [data-node]:focus-visible>rect,.factory-map svg [data-node][aria-pressed=true]>rect{stroke:#21826b;stroke-width:2.5;fill:#f2faf5}.factory-map svg text{fill:#193b36;font-family:"Segoe UI",system-ui,sans-serif;pointer-events:none}.factory-map svg .factory-node-name{font-size:13px;font-weight:650}.factory-map svg .factory-node-type{font-size:8px;letter-spacing:.8px;fill:var(--node-color)}.factory-map svg .factory-node-description{font-size:9px;fill:#6c8279}.factory-map svg .factory-node-link{font-size:8px;fill:#6c8279}.factory-node-accent{stroke:var(--node-color);stroke-width:4;stroke-linecap:round}.factory-node-divider{stroke:#e6ede8;stroke-width:1}.factory-map svg path[data-flow="Material"]{stroke:#24816d}.factory-map svg path[data-flow="Information"]{stroke:#6586c2}.factory-map svg path[data-flow="Omarbete"]{stroke:#b97235}.factory-canvas-hint{position:absolute;top:14px;left:16px;right:16px;width:fit-content;max-width:calc(100% - 32px);margin:0;padding:8px 12px;border:1px solid #dce5df;border-radius:22px;background:#fffffff2;color:#6c8279;font-size:11px;pointer-events:none}.factory-canvas-zoom{position:absolute;bottom:18px;right:18px;display:flex;align-items:center;background:#fff;border:1px solid #dce5df;border-radius:12px;box-shadow:0 4px 16px #193b3608;overflow:hidden}.factory-canvas-zoom button{border:0;border-radius:0;min-width:44px;font-size:12px}.factory-canvas-zoom-value{min-width:43px;text-align:center;font-size:11px}.factory-canvas-legend{position:absolute;bottom:76px;left:18px;display:flex;flex-wrap:wrap;gap:12px;background:#fffffff2;padding:9px 12px;border:1px solid #dce5df;border-radius:9px;font-size:10px;pointer-events:none;max-width:calc(100% - 36px)}.factory-canvas-legend span{display:flex;gap:5px;align-items:center}.factory-canvas-legend span:before{content:"";width:16px;border-top:2px solid #24816d}.factory-canvas-legend [data-flow="Information"]:before{border-color:#6586c2;border-top-style:dashed}.factory-canvas-legend [data-flow="Omarbete"]:before{border-color:#b97235}.factory-map-details{min-width:0;padding:22px;background:#fff;border-left:1px solid #dce5df;font-size:12px;line-height:1.6}.factory-map-details h3{margin:14px 0 10px;font-size:18px}.factory-map-details p{color:#647b73}.factory-map-details form{display:grid;gap:12px;margin-top:24px}.factory-map-details label{display:grid;gap:4px}.factory-canvas>[role=status]{padding:10px 20px;margin:0;border-top:1px solid #dce5df}.factory-canvas>[aria-label="Ej bekräftad kartflytt"]:not(:empty){padding:16px;background:#fff5dc;border-bottom:1px solid #e5cd8d}.factory-map-editor{border-top:1px solid #dce5df;margin:24px 0;padding:18px;background:#f5f8f3;border-radius:12px}.factory-map-editor:before{content:"Kartinställningar";display:block;font-weight:650;font-size:17px;margin-bottom:14px}.factory-map-editor:empty{display:none}.factory-map-editor label{display:grid;gap:6px;font-size:12px;max-width:100%}.factory-map-editor .factory-map-toolbar{padding:14px 0;border-bottom:1px solid #e0e8e1}.factory-map-editor input[type=file]{max-width:100%}@media(max-width:1000px){.factory-map-layout{grid-template-columns:minmax(0,1fr) 220px}.factory-canvas-header{align-items:start;flex-wrap:wrap}.factory-canvas-filters{flex:1 1 100%}}@media(max-width:700px){.factory-map-layout{grid-template-columns:minmax(0,1fr)}.factory-map-details{border-left:0;border-top:1px solid #dce5df;padding:18px}.factory-map svg{height:420px}.factory-canvas-header{padding:16px}.factory-canvas-zoom{right:10px;bottom:12px}.factory-canvas-legend{left:10px;bottom:70px}.factory-canvas-hint{font-size:10px}.factory-map-editor{padding:12px}.factory-map-toolbar>label{min-width:0;flex:1 1 150px}}

.factory-canvas-filters>button{font-size:12px;white-space:nowrap;background:#edf5ef}.factory-focus-dialog{padding:0;border:0;border-radius:16px;width:calc(100vw - 32px);height:calc(100dvh - 32px);max-width:none;max-height:none;overflow:auto;background:#fff;overscroll-behavior:contain}.factory-focus-dialog::backdrop{background:#153d38a6;backdrop-filter:blur(3px)}.factory-focus-dialog>.factory-canvas{margin:0;min-height:100%;height:100%;display:flex;flex-direction:column}.factory-focus-dialog .factory-canvas-header{flex-shrink:0}.factory-focus-dialog .factory-map-layout{flex:1;min-height:0}.factory-focus-dialog .factory-canvas-stage{min-height:280px}.factory-focus-dialog .factory-canvas-stage>svg{height:100%;min-height:280px}.factory-focus-dialog .factory-map-details{overflow:auto;overscroll-behavior:contain}.factory-focus-dialog .factory-canvas>[role=status]{flex-shrink:0}@media(max-width:700px){.factory-focus-dialog{width:100vw;height:100dvh;border-radius:0}.factory-focus-dialog>.factory-canvas{border-radius:0}.factory-focus-dialog .factory-map-layout{grid-template-rows:minmax(280px,1fr) minmax(0,35%)}.factory-focus-dialog .factory-canvas-header{padding:12px}.factory-focus-dialog .factory-canvas h2{font-size:17px}.factory-focus-dialog .factory-canvas-filters{gap:6px}.factory-focus-dialog .factory-canvas-filters select{min-width:100px}}

.factory-station-dialog{width:min(560px,calc(100vw - 32px));border:1px solid #dce5df;border-radius:16px;padding:24px;color:#193b36;background:#fff}.factory-station-dialog::backdrop{background:#153d3866}.factory-station-dialog form{display:grid;gap:16px;margin:20px 0}.factory-station-dialog label{display:grid;gap:6px}.factory-station-dialog input,.factory-station-dialog textarea{width:100%;box-sizing:border-box}.factory-station-dialog [role=status]{white-space:pre-wrap}

.factory-map-lifecycle{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin:14px 0}.factory-map-lifecycle p{flex-basis:100%;margin:0}.factory-map-lifecycle label{flex:1;min-width:200px}.factory-map-open{display:inline-block;margin:0 16px 10px 0;padding:10px 14px;border:1px solid #cbdcd4;border-radius:8px;text-decoration:none}

.factory-run-card{border:1px solid #cbdcd4;border-radius:10px;padding:16px;margin:12px 0}.factory-run-card button{margin:8px;min-height:48px}#station-root{max-width:1200px;margin:auto;padding:24px}
.factory-materials-editor{min-width:0;max-width:100%}
.factory-materials-editor details{min-width:0;margin:20px 0}
.factory-materials-editor summary{font-size:16px;font-weight:650;margin-bottom:12px}
.factory-materials-editor label{display:block;white-space:normal;overflow-wrap:anywhere;line-height:1.5}
.factory-materials-editor details>label{max-width:180px;margin-bottom:12px}
.factory-materials-table-scroll{width:100%;max-width:100%;overflow-x:auto;border:1px solid #dfe5df;border-radius:8px;margin:12px 0}
.factory-materials-table-scroll table{table-layout:fixed;min-width:840px;width:100%}
.factory-materials-table-scroll td,.factory-materials-table-scroll th{white-space:normal;overflow-wrap:anywhere;vertical-align:top;padding:12px}
.factory-materials-table-scroll th:nth-child(1){width:34%}
.factory-materials-table-scroll th:nth-child(2){width:18%}
.factory-materials-table-scroll th:nth-child(3){width:22%}
.factory-materials-table-scroll th:nth-child(4){width:26%}
.factory-materials-table-scroll input,.factory-materials-table-scroll select{display:block;width:100%;min-width:0;max-width:100%;margin-top:6px}
.factory-materials-editor>button{margin:12px 12px 12px 0;padding:10px 16px}
.project-elements{min-width:0;max-width:100%}
.project-elements>section:first-child,.project-elements-tools{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:16px 0}
.project-elements label{display:grid;gap:6px;min-width:0;flex:1 1 180px}
.project-elements button{min-height:42px}
.project-element-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:14px;margin:18px 0}
.project-element-cards article,.project-element-detail{padding:18px;border:1px solid #dfe5df;border-radius:10px;background:#fff;overflow-wrap:anywhere}
.project-elements td,.project-elements th{white-space:normal;overflow-wrap:anywhere;vertical-align:top}
.project-elements table{min-width:650px}
.project-element-form{display:grid;gap:16px;min-width:0}
.project-material-row{min-width:0;display:grid;grid-template-columns:minmax(0,2fr) minmax(100px,1fr) minmax(0,1fr);gap:12px;border:1px solid #dfe5df;border-radius:8px;padding:16px;margin-bottom:12px}
.project-elements input,.project-elements select{min-width:0;max-width:100%}
@media(max-width:800px){.project-material-row{grid-template-columns:minmax(0,1fr)}}
