:root{--bg:#f4f7f5;--ink:#17221c;--muted:#68756d;--green:#0c8a4b;--dark:#0e2117;--line:#dce5df;--card:#fff;--sidebar:240px}*{box-sizing:border-box}html{min-width:320px}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--ink)}button,input,select{font:inherit}.app{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh}aside{background:var(--dark);color:white;padding:24px 18px;display:flex;flex-direction:column;min-width:0;z-index:20}.brand{display:block;margin-bottom:24px;text-align:center}.sidebar-logo{display:block;width:184px;max-width:100%;height:auto;max-height:150px;object-fit:contain;margin:0 auto;filter:drop-shadow(0 2px 4px rgba(0,0,0,.16))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}nav{display:grid;gap:8px}.navbtn{border:0;background:transparent;color:#cfe0d5;text-align:left;padding:11px 12px;border-radius:10px;cursor:pointer;font-weight:650;min-height:44px}.navbtn.active,.navbtn:hover{background:#183b29;color:white}.version{margin-top:auto;color:#87a894;font-size:12px;padding-top:24px}main{padding:28px 34px;width:100%;min-width:0;max-width:none}header{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:24px;min-width:0}header>div:first-of-type{min-width:0}h1{margin:0;font-size:clamp(22px,2vw,30px)}header p,.panelhead p{margin:5px 0 0;color:var(--muted)}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-left:auto}.mobile-menu{display:none}.primary,.secondary{border-radius:10px;padding:10px 14px;font-weight:750;min-height:42px;cursor:pointer}.primary{border:0;background:var(--green);color:white}.secondary{border:1px solid var(--line);background:white;color:var(--ink)}.filebtn{display:inline-flex;align-items:center}.filebtn input{display:none}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}.cards article,.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 24px rgba(24,50,34,.05)}.cards article{padding:18px;min-width:0}.cards span,.cards small{display:block;color:var(--muted)}.cards strong{display:block;font-size:clamp(22px,2vw,27px);margin:7px 0}.cards .accent{background:#eaf8ef;border-color:#bfe7cd}
/* Generic responsive layout engine: 12 columns on desktop, persisted spans when manually adjusted. */
.grid,.layout-surface{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;align-items:start}.layout-item{grid-column:span var(--span,6);min-width:0;position:relative}.viewer,.task{--span:8}.import,.machine,.calc{--span:4}.quality{--span:8}.panel{padding:18px;min-height:220px}.panelhead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:15px}.panelhead h2{margin:0;font-size:17px}.pill{background:#e7f7ed;color:#08773f;padding:6px 9px;border-radius:999px;font-size:11px;font-weight:750;white-space:nowrap}.pill.neutral{background:#eef2ef;color:#5e6d63}
.layout-editing .layout-item{outline:2px dashed #9ac5aa;outline-offset:2px}.widget-controls{display:none;position:absolute;z-index:9;right:10px;top:10px;gap:4px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:4px;box-shadow:0 5px 16px rgba(0,0,0,.08)}.layout-editing .widget-controls{display:flex}.widget-controls button{width:32px;height:32px;border:1px solid var(--line);background:#fff;border-radius:7px;font-weight:800;cursor:pointer}.layout-editing .panelhead{padding-right:150px}.layout-status{font-size:11px;color:var(--muted);align-self:center}
.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.toolbar button{padding:7px 11px}.toolbar label{font-size:12px;color:var(--muted);display:flex;gap:5px;align-items:center}.toolbar input{width:auto;margin:0}.viewer{min-height:520px}.viewport{height:clamp(280px,30vw,430px);overflow:hidden;border-radius:13px;background:#dfe7df;cursor:grab;touch-action:none}.viewport:active{cursor:grabbing}.viewport.empty{display:grid;place-items:center;background:#eef3ef;border:1px dashed #b8c9bd}.emptyviewer{text-align:center;color:var(--muted);padding:30px}.emptyviewer b{display:block;color:var(--ink);margin-bottom:6px}.emptyviewer span{font-size:12px}.field{height:100%;border-radius:13px;overflow:hidden;position:relative;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1)}.zoomfield{transform-origin:center;transition:transform .08s linear}.zoomfield.realimage{background-size:contain;background-position:center;background-repeat:no-repeat}.inspector{display:flex;gap:15px;flex-wrap:wrap;margin-top:10px;font-size:11px;color:var(--muted)}.dropzone{border:2px dashed #b8c9bd;border-radius:14px;padding:30px 15px;text-align:center;background:#f8fbf9;color:#4f6256;transition:.15s}.dropzone.over{border-color:var(--green);background:#edf8f1}.dropzone small{display:block;margin-top:6px}.importout,.machineout{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.importout div,.machineout div,.qualityout>div{background:#f5f8f6;padding:10px;border-radius:10px}.importout span,.machineout span,.qualityout span{display:block;font-size:10px;color:var(--muted)}.importout b,.machineout b{font-size:12px}.hint{font-size:11px;color:var(--muted);line-height:1.5}.qualitygrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.qualitygrid label,.machine>label,.calc label{font-size:12px;color:var(--muted)}input,select{width:100%;padding:10px;border:1px solid var(--line);border-radius:9px;margin-top:5px;background:white}.qualitygrid button{align-self:end}.qualityout{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px}.qualityout b{display:block;margin-top:4px;font-size:14px}.qualitywarn{grid-column:1/-1!important;background:#fff7df!important;border:1px solid #efd88e;font-size:12px;line-height:1.4}.machine button{margin-top:12px}.machineout .qualitywarn{grid-column:1/-1}.calc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.calc .panelhead,.calc .result,.calc button{grid-column:1/-1}.result{background:#f1f8f4;border-radius:12px;padding:13px;line-height:1.7}.actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.disabled{opacity:.55;cursor:not-allowed}.geostatus{margin-top:12px;border-radius:12px;padding:12px 13px;display:grid;gap:4px}.geostatus b{font-size:12px}.geostatus span{font-size:11px;line-height:1.45}.geostatus.neutral{background:#f4f7f5;color:var(--muted)}.geostatus.pending{background:#fff7df;border:1px solid #efd88e}.geostatus.blocked{background:#fff0ed;border:1px solid #efc1b8}.import #geoSupplement{margin-top:10px}.readiness,.machineflow,.resolution{display:flex;align-items:stretch;gap:7px}.readiness{margin:8px 0 14px}.readiness>div,.resolution div{flex:1;min-width:0;background:#f5f8f6;border-radius:10px;padding:9px}.readiness>div{display:grid;gap:3px}.readiness>div>span{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#e3ece6;font-size:10px;font-weight:800}.readiness b{font-size:11px}.readiness small{font-size:9px;color:var(--muted);line-height:1.3}.readiness i,.machineflow i,.resolution i{font-style:normal;color:#8aa095;align-self:center}.machineflow{background:#f7faf8;border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:12px}.machineflow>div{flex:1;display:grid;gap:3px}.machineflow b{font-size:11px}.machineflow span{font-size:9px;color:var(--muted);line-height:1.35}.resolution{justify-content:space-between;margin-bottom:12px}.resolution div{text-align:center}.resolution span{font-size:9px;color:var(--muted);display:block}.resolution b{font-size:12px}.moduleview{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;min-height:520px}.modulehero{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:22px}.modulehero h2{margin:0 0 6px;font-size:22px}.modulehero p{margin:0;color:var(--muted)}.modulegrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}.modulecard{grid-column:span var(--span,4);border:1px solid var(--line);border-radius:14px;padding:18px;background:#fbfdfb;position:relative;min-width:0}.modulecard h3{margin:0 0 7px;font-size:15px}.modulecard p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}.emptylist{margin-top:16px;border:1px dashed #bdcbc1;border-radius:14px;padding:34px;text-align:center;color:var(--muted)}#toast{position:fixed;right:25px;bottom:25px;background:#10271b;color:white;padding:12px 16px;border-radius:10px;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none;z-index:50}#toast.show{opacity:1;transform:none}
@media(max-width:1100px){:root{--sidebar:210px}main{padding:22px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.layout-item{grid-column:span var(--span-tablet,12)}.viewer,.quality,.task{--span-tablet:12}.import,.machine,.calc{--span-tablet:6}.modulecard{grid-column:span 6}}
@media(max-width:760px){.app{display:block}.mobile-menu{display:inline-flex;align-items:center;justify-content:center;width:44px;flex:0 0 44px}aside{position:fixed;inset:0 auto 0 0;width:min(82vw,300px);transform:translateX(-105%);transition:transform .2s;box-shadow:8px 0 24px rgba(0,0,0,.2)}body.menu-open aside{transform:none}main{padding:16px}header{align-items:flex-start;flex-wrap:wrap}.header-actions{width:100%;justify-content:flex-start}.layout-extra{display:none!important}.cards{grid-template-columns:1fr 1fr}.layout-item,.modulecard{grid-column:1/-1!important}.grid,.layout-surface,.modulegrid{grid-template-columns:1fr}.layout-editing .widget-controls{display:none}.layout-editing .panelhead{padding-right:0}.qualitygrid,.qualityout,.importout,.machineout,.calc{grid-template-columns:1fr}.readiness,.machineflow,.resolution{display:grid;grid-template-columns:1fr}.readiness i,.machineflow i,.resolution i{display:none}.moduleview{padding:16px}.modulehero{flex-direction:column}.viewport{height:330px}.primary,.secondary,.navbtn{min-height:44px}}
@media(max-width:480px){.cards{grid-template-columns:1fr}h1{font-size:22px}.panel{padding:14px}.viewport{height:280px}.header-actions>*{flex:1 1 auto}.filebtn{justify-content:center}.sidebar-logo{width:170px}}

/* v0.1.9 — official transparent branding asset + animated responsive reflow */
.sidebar-logo{filter:drop-shadow(0 2px 4px rgba(0,0,0,.18));transition:width .24s ease,transform .24s ease,opacity .2s ease}
.layout-item,.modulecard,.cards article{transition:grid-column .28s ease,width .28s ease,min-height .28s ease,transform .34s cubic-bezier(.2,.8,.2,1),opacity .22s ease}
.layout-animating .layout-item,.layout-animating .modulecard{will-change:transform}
@media(prefers-reduced-motion:reduce){.sidebar-logo,.layout-item,.modulecard,.cards article{transition:none!important}}

/* v0.2.0 — Smart Import & Validation + synchronized Visual Inspector */
.viewer-modes{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}.viewer-modes .active{background:#e7f7ed;border-color:#9bd3af;color:#08773f}.visual-selectors{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.visual-selectors label{font-size:11px;color:var(--muted)}.visual-selectors select{margin-top:4px}.viewer-stage{position:relative;display:grid;gap:10px}.viewer-stage.double{grid-template-columns:1fr 1fr}.viewer-stage .viewport{height:clamp(280px,30vw,430px)}.swipe-stage{height:clamp(280px,30vw,430px);position:relative;overflow:hidden;border-radius:13px;background:#dfe7df;cursor:grab;touch-action:none}.swipe-layer{position:absolute;inset:0;background-size:contain;background-position:center;background-repeat:no-repeat;transform-origin:center;transition:transform .08s linear}.swipe-b{clip-path:inset(0 0 0 50%)}.swipe-range{position:absolute;left:0;right:0;bottom:10px;width:calc(100% - 24px);margin:0 12px;z-index:4}.swipe-line{position:absolute;top:0;bottom:0;left:50%;width:2px;background:white;box-shadow:0 0 0 1px rgba(0,0,0,.25);pointer-events:none;z-index:3}.validation-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:14px}.validation-head h3{font-size:13px;margin:0}.validation-head button{padding:7px 10px;min-height:36px}.validation-checklist{display:grid;gap:6px;margin-top:8px}.check-row{display:grid;grid-template-columns:26px 1fr;gap:8px;align-items:start;border:1px solid var(--line);border-radius:10px;padding:8px 9px;background:#f8faf9}.check-row .check-icon{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:12px}.check-row b,.check-row small{display:block}.check-row b{font-size:11px}.check-row small{font-size:9px;color:var(--muted);margin-top:2px;line-height:1.35}.check-row.ready .check-icon{background:#e0f5e7;color:#08773f}.check-row.pending .check-icon{background:#fff1c7;color:#8a6400}.check-row.blocked .check-icon{background:#ffe3dd;color:#9c321f}.check-row.neutral .check-icon{background:#eef2ef;color:#68756d}.visual-note{position:absolute;inset:auto 12px 12px 12px;background:rgba(14,33,23,.86);color:white;padding:8px 10px;border-radius:8px;font-size:11px;z-index:2}
@media(max-width:760px){.viewer-stage.double{grid-template-columns:1fr}.visual-selectors{grid-template-columns:1fr}.viewer-stage .viewport,.swipe-stage{height:330px}}
@media(max-width:480px){.viewer-stage .viewport,.swipe-stage{height:280px}.viewer-modes button{flex:1 1 auto}}

/* v0.2.1 — Real Data Analysis & corrected Visual Inspector modes */
#visualBWrap[hidden]{display:none!important}.viewer-stage.single{grid-template-columns:minmax(0,1fr)}.viewer-stage.single #viewportA{width:100%}.viewer-stage.double{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.viewer-stage.swipe{display:block}.analysis-summary{margin-top:10px;border:1px solid var(--line);border-radius:11px;padding:10px 12px;background:#f8faf9;display:flex;gap:8px 16px;align-items:center;flex-wrap:wrap}.analysis-summary b{font-size:12px}.analysis-summary span{font-size:11px;color:var(--muted)}.analysis-summary.ready{background:#eaf8ef;border-color:#bfe7cd}.analysis-summary.pending{background:#fff8df;border-color:#eadca7}.analysis-summary .metrics{display:flex;gap:8px;flex-wrap:wrap;width:100%}.analysis-summary .metric{background:white;border:1px solid var(--line);border-radius:9px;padding:7px 9px;min-width:105px}.analysis-summary .metric span,.analysis-summary .metric b{display:block}.analysis-summary .metric span{font-size:9px}.analysis-summary .metric b{font-size:12px;margin-top:2px}.field.realimage{position:relative;background-repeat:no-repeat;background-position:center;background-size:contain}.analysis-legend{display:flex;gap:10px;flex-wrap:wrap;font-size:10px;color:var(--muted)}#analyzeBtn:disabled{opacity:.5;cursor:not-allowed}
.visual-selectors:has(#visualBWrap[hidden])>label:first-child{grid-column:1/-1}


/* v0.2.1a — Visual Inspector rendering hotfix */
[hidden]{display:none!important}
.viewer-stage .viewport.has-visual{display:block;place-items:initial}
.viewer-stage .viewport.has-visual .field{display:block;width:100%;height:100%}
.viewer-stage .viewport.empty:not([hidden]){display:grid}

/* v0.2.2 Spatial Detection & 3D Inspector */
.viewer-stage,.viewport,.swipe-stage{perspective:1100px}.field,.swipe-layer{transform-style:preserve-3d;transform-origin:center center;will-change:transform}.viewport,.swipe-stage{cursor:grab}.viewport.tilting,.swipe-stage.tilting{cursor:grabbing}.viewer-help{margin:8px 0 2px;font-size:10px;color:var(--muted);padding:7px 9px;border-radius:8px;background:#f5f8f6;border:1px solid var(--line)}.viewer-help b{color:#274d39}.field.realimage{transition:transform .06s linear;box-shadow:0 10px 28px rgba(10,38,23,.08)}


/* v0.2.3 Drone Orbit & Precision Point Detection */
.app-version{position:fixed;right:10px;bottom:7px;z-index:60;font-size:10px;color:#607168;background:rgba(255,255,255,.86);border:1px solid rgba(205,218,209,.8);border-radius:6px;padding:3px 6px;backdrop-filter:blur(4px)}
.viewport,.swipe-stage{perspective:1300px;overflow:hidden}.field.realimage,.swipe-layer{transform-origin:center center;backface-visibility:visible}.viewport.orbiting,.swipe-stage.orbiting{cursor:grabbing}.analysis-view{filter:saturate(.72) brightness(.88)}.analysis-waiting{filter:grayscale(.72) opacity(.72)}
.viewer-stage.double #fieldB.analysis-view{filter:saturate(.62) brightness(.82)}
@media(max-width:760px){.app-version{right:6px;bottom:5px;font-size:9px}}


/* v0.2.4 — Generated Task Maps & Task Register */
.taskmap-visual{background-color:#737b76!important;filter:none!important}.task-register-actions{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:16px}.task-table{display:grid;gap:9px}.task-table article{display:flex;justify-content:space-between;align-items:center;gap:16px;border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:#fbfdfb}.task-table article>div{display:grid;gap:4px}.task-table small{color:var(--muted);font-size:10px}.task-table article>div:last-child{display:flex;align-items:center;gap:12px;font-size:12px}@media(max-width:760px){.task-table article{align-items:flex-start;flex-direction:column}.task-register-actions>*{flex:1 1 auto}}

/* v0.3.1 — responsive analysis layout & managed AI backend */
.aq-form{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;background:white;border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:16px}.aq-form .primary{align-self:end}.mission-actions{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0}.map-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr);gap:14px}.mission-map{height:520px;position:relative;overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#eef3ec;cursor:crosshair}.mission-map svg{position:absolute;inset:0;width:100%;height:100%;z-index:2}.map-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(70,105,82,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(70,105,82,.12) 1px,transparent 1px);background-size:40px 40px}.map-hint{position:absolute;left:12px;bottom:12px;z-index:4;background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:10px;color:var(--muted)}.parcel-poly{fill:rgba(41,145,79,.18);stroke:#218a4b;stroke-width:3}.parcel-line{fill:none;stroke:#218a4b;stroke-width:3}.parcel-point{fill:white;stroke:#146f3b;stroke-width:3}.flight-route{fill:none;stroke:#165d92;stroke-width:4;stroke-linejoin:round}.waypoint{fill:white;stroke:#165d92;stroke-width:3}.wp-label{font-size:12px;font-weight:700;fill:#123f61}.flight-settings{display:grid;gap:8px}.api-contract{margin-top:12px;padding:12px;border-radius:10px;background:#f5f8f6;border:1px solid var(--line)}.api-contract code{display:block;margin-top:7px;font-size:11px;white-space:normal}.layer-list{display:grid;gap:7px;margin:12px 0}.layer-list span{padding:9px 11px;background:#f5f8f6;border:1px solid var(--line);border-radius:9px}.modulegrid .panel{grid-column:auto}
@media(max-width:900px){.map-layout{grid-template-columns:1fr}.aq-form{grid-template-columns:1fr 1fr}.mission-map{height:420px}}@media(max-width:560px){.aq-form{grid-template-columns:1fr}.mission-map{height:340px}}


/* v0.3.1 — Analyses: cards mogen nooit smaller worden dan leesbare content */
.analysis-grid{display:grid;grid-template-columns:repeat(3,minmax(280px,1fr));gap:14px;align-items:start;min-width:0}
.analysis-card{min-width:0;overflow-wrap:anywhere}
.analysis-card .panelhead{flex-wrap:wrap}
.analysis-card .panelhead>div{min-width:0;flex:1 1 220px}
.analysis-card .pill{max-width:100%;white-space:normal;text-align:center}
.analysis-card code{overflow-wrap:anywhere;word-break:break-word}
#moduleView,.moduleview,main{min-width:0}
@media(max-width:1280px){.analysis-grid{grid-template-columns:repeat(2,minmax(280px,1fr))}.analysis-card:last-child{grid-column:1/-1}}
@media(max-width:900px){.analysis-grid{grid-template-columns:minmax(0,1fr)}.analysis-card:last-child{grid-column:auto}}
@media(max-width:560px){.analysis-card{padding:14px}.analysis-card .panelhead{display:grid;gap:10px}.analysis-card .pill{justify-self:start}}

/* v0.4.0 — AI provider management & OpenAI gateway */
.admin-grid label,.analysis-card label{display:grid;gap:5px;margin:10px 0;font-size:11px;color:var(--muted)}
.admin-grid input,.admin-grid select,.analysis-card input,.analysis-card select{width:100%;min-width:0}

/* v0.5.0 Local Processing Foundation */
.processing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.processing-card{min-height:0}.processing-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.processing-kpis>div,.processing-wake{background:#f5f8f6;border-radius:10px;padding:11px}.processing-kpis span,.processing-wake span{display:block;font-size:10px;color:var(--muted)}.processing-kpis b,.processing-wake b{display:block;margin-top:4px;font-size:12px}.progress-track{height:12px;background:#e5ece7;border-radius:999px;overflow:hidden}.progress-track i{display:block;height:100%;background:var(--green);transition:width .2s}.processing-meta{display:flex;justify-content:space-between;margin:7px 0 12px;font-size:11px;color:var(--muted)}.processing-wake{margin-top:12px}.processing-file-list{display:grid;gap:7px;max-height:310px;overflow:auto}.processing-file-list>div:not(.empty-processing){display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;background:#f7faf8;border:1px solid var(--line);padding:9px 10px;border-radius:9px}.processing-file-list span{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.processing-file-list small{color:var(--muted)}.processing-file-list b{font-size:10px}.empty-processing{padding:24px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:10px}@media(max-width:900px){.processing-grid{grid-template-columns:1fr}}@media(max-width:520px){.processing-kpis{grid-template-columns:1fr}.processing-file-list>div:not(.empty-processing){grid-template-columns:1fr auto}.processing-file-list b{grid-column:1/-1}}
/* v0.6.0 import + parcel editing */
.import-buttons{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.filebtn input{display:none}.parcel-point{cursor:grab;touch-action:none}.parcel-point:active{cursor:grabbing}.parcel-point.selected{stroke-width:4;filter:drop-shadow(0 0 3px rgba(0,0,0,.25))}#parcelCanvas:focus{outline:2px solid rgba(17,126,76,.25);outline-offset:2px}

/* v0.6.3 — AgriQent Process Assistant */
.aq-process-overlay{position:fixed;right:24px;bottom:38px;z-index:9999;width:min(390px,calc(100vw - 32px));display:grid;grid-template-columns:74px 1fr;gap:14px;align-items:center;padding:14px 16px;border:1px solid rgba(32,91,57,.22);border-radius:16px;background:rgba(248,252,249,.96);box-shadow:0 16px 44px rgba(16,54,33,.18);backdrop-filter:blur(10px)}.aq-process-overlay[hidden]{display:none!important}.aq-process-copy{display:grid;gap:4px;min-width:0}.aq-process-copy strong{font-size:13px;color:#183d29}.aq-process-copy span{font-size:11px;color:#496558;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aq-process-copy small{font-size:10px;color:#718178}.aq-mini-progress{height:6px;background:#dfe9e2;border-radius:999px;overflow:hidden;margin:4px 0 1px}.aq-mini-progress i{display:block;height:100%;width:0;background:var(--green);border-radius:999px;transition:width .25s}.aq-mini-progress i.indeterminate{animation:aqSweep 1.35s ease-in-out infinite}.aq-drone{position:relative;width:70px;height:52px;animation:aqThink 1.7s ease-in-out infinite}.aq-drone b{position:absolute;left:26px;top:18px;width:20px;height:16px;border:3px solid #276642;border-radius:9px 9px 12px 12px;background:#edf7f0}.aq-drone b:after{content:'';position:absolute;left:6px;top:4px;width:4px;height:4px;border-radius:50%;background:#276642;box-shadow:7px 0 #276642}.aq-drone i{position:absolute;top:10px;width:22px;height:4px;border-radius:999px;background:#5a8d6c;animation:aqRotor .55s linear infinite}.aq-drone i:nth-child(1){left:0}.aq-drone i:nth-child(2){left:13px;top:31px}.aq-drone i:nth-child(4){right:13px;top:31px}.aq-drone i:nth-child(5){right:0}.aq-drone span:before,.aq-drone span:after{position:absolute;color:#4f765d;font-weight:800;animation:aqBubble 1.7s ease-in-out infinite}.aq-drone span:before{content:'·';right:4px;top:-4px;font-size:18px}.aq-drone span:after{content:'···';right:-7px;top:-18px;font-size:12px;letter-spacing:1px}@keyframes aqRotor{50%{transform:scaleX(.45)}100%{transform:scaleX(1)}}@keyframes aqThink{0%,100%{transform:translateY(1px)}50%{transform:translateY(-3px)}}@keyframes aqBubble{0%,100%{opacity:.35;transform:translateY(2px)}50%{opacity:1;transform:translateY(-2px)}}@keyframes aqSweep{0%{transform:translateX(-120%)}50%{transform:translateX(110%)}100%{transform:translateX(300%)}}@media(max-width:560px){.aq-process-overlay{right:12px;bottom:34px;grid-template-columns:58px 1fr}.aq-drone{transform:scale(.82);transform-origin:left center}}
\n/* v0.6.4 — recognizable quadcopter process assistant */\n.aq-drone-v2{position:relative;width:74px;height:58px;animation:aqHover 1.8s ease-in-out infinite;filter:drop-shadow(0 5px 5px rgba(25,72,45,.13))}.aq-drone-v2 .body{position:absolute;left:28px;top:20px;width:20px;height:17px;border-radius:7px 7px 10px 10px;background:#276642;border:2px solid #194a2f;z-index:4}.aq-drone-v2 .body:after{content:'';position:absolute;left:6px;top:4px;width:5px;height:5px;border-radius:50%;background:#d9f3df}.aq-drone-v2 .camera{position:absolute;left:34px;top:37px;width:9px;height:7px;border-radius:2px 2px 5px 5px;background:#173d29;z-index:5}.aq-drone-v2 .arm{position:absolute;left:36px;top:28px;width:27px;height:3px;background:#3d7853;border-radius:99px;transform-origin:0 50%;z-index:2}.aq-drone-v2 .a1{transform:rotate(-32deg)}.aq-drone-v2 .a2{transform:rotate(32deg)}.aq-drone-v2 .a3{transform:rotate(148deg)}.aq-drone-v2 .a4{transform:rotate(212deg)}.aq-drone-v2 .rotor{position:absolute;width:25px;height:6px;border:2px solid #4e8d65;border-radius:50%;z-index:3;animation:aqSpin .38s linear infinite}.aq-drone-v2 .r1{left:52px;top:7px}.aq-drone-v2 .r2{left:52px;top:43px}.aq-drone-v2 .r3{left:0;top:7px}.aq-drone-v2 .r4{left:0;top:43px}@keyframes aqSpin{0%{transform:scaleX(1)}50%{transform:scaleX(.18)}100%{transform:scaleX(1)}}@keyframes aqHover{0%,100%{transform:translateY(2px) rotate(-.4deg)}50%{transform:translateY(-3px) rotate(.4deg)}}\n
.native-dataset-banner{margin:0 0 14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#f6faf7;display:grid;grid-template-columns:1fr 1fr;gap:12px}.native-dataset-banner div{display:grid;gap:3px}.native-dataset-banner b{font-size:12px;color:#183d29}.native-dataset-banner span{font-size:11px;color:var(--muted)}@media(max-width:800px){.native-dataset-banner{grid-template-columns:1fr}}

.geometry-panel{grid-column:1/-1}.flight-map{min-height:320px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#f4f8f5,#edf4ef);overflow:hidden;color:#16854d}.flight-map svg{width:100%;height:320px;display:block}.flight-map circle{fill:#16854d;stroke:#fff;stroke-width:1.5}.flight-map circle:hover{r:6}.map-empty{min-height:320px;display:grid;place-items:center;color:var(--muted);text-align:center;padding:24px}.geometry-actions{display:flex;align-items:center;gap:12px;margin-top:10px;flex-wrap:wrap}.geometry-actions span{font-size:12px;color:var(--muted)}


/* v0.7.3 — persistent processing + WMS admin */
.aq-global-process{position:fixed;left:calc(250px + 24px);right:24px;bottom:18px;z-index:9998;padding:10px 14px;border:1px solid rgba(32,91,57,.22);border-radius:14px;background:rgba(249,252,250,.97);box-shadow:0 12px 34px rgba(16,54,33,.16);backdrop-filter:blur(10px)}.aq-global-process[hidden]{display:none!important}.aq-global-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.aq-global-head div{display:flex;gap:10px;align-items:baseline}.aq-global-head b{font-size:12px;color:#183d29}.aq-global-head span,.aq-global-process small{font-size:10px;color:var(--muted)}.aq-global-head strong{font-size:12px;color:var(--green)}.aq-global-track{height:5px;margin:7px 0;background:#dfe9e2;border-radius:99px;overflow:hidden}.aq-global-track i{display:block;height:100%;width:0;background:var(--green);transition:width .3s}.aq-process-steps{display:flex;gap:8px;margin:5px 0}.aq-process-steps span{display:flex;align-items:center;gap:5px;padding:3px 8px;border-radius:999px;background:#edf2ef;color:#7b8a82;font-size:10px}.aq-process-steps span b{display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:#dfe7e2;font-size:9px}.aq-process-steps span.active{background:#e5f4ea;color:#1d623c}.aq-process-steps span.done{background:#d9efe1;color:#1d623c}.aq-process-steps span.done b:after{content:'✓';font-size:9px}.aq-process-steps span.done b{font-size:0}.wms-admin-card{grid-column:1/-1}.wms-list{display:grid;gap:8px;margin-top:12px}.wms-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fafcfb}.wms-row>div:first-child{display:grid;gap:2px}.wms-row b{font-size:12px}.wms-row small{font-size:10px;color:var(--muted)}.wms-actions{display:flex;align-items:center;gap:8px}.wms-actions label{display:flex!important;align-items:center;gap:5px!important;margin:0!important}.wms-actions input{width:auto!important}@media(max-width:900px){.aq-global-process{left:16px;right:16px}.aq-process-steps{flex-wrap:wrap}.wms-row{align-items:flex-start;flex-direction:column}}


/* v0.8.0 — flight planner with PDOK BRT-A */
.planner-panel{grid-column:1/-1}.planner-tools{display:flex;gap:7px;align-items:center}.planner-map{height:min(62vh,640px);min-height:460px;position:relative;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#dce9ef;cursor:grab;touch-action:none;user-select:none}.planner-map:active{cursor:grabbing}.planner-tiles{position:absolute;inset:0;overflow:hidden}.planner-tiles img{position:absolute;max-width:none;pointer-events:none}.planner-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.planner-overlay circle{fill:#16854d;stroke:#fff;stroke-width:1.5}.planner-attribution{position:absolute;right:6px;bottom:5px;padding:3px 6px;border-radius:5px;background:rgba(255,255,255,.88);font-size:9px;color:#41534a}.planner-coords{position:absolute;left:7px;bottom:6px;padding:4px 7px;border-radius:6px;background:rgba(255,255,255,.9);font-size:10px;color:#274437}.planner-status{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.planner-status span{padding:6px 9px;border-radius:8px;background:#f3f7f4;font-size:10px;color:var(--muted)}@media(max-width:700px){.planner-map{min-height:380px;height:55vh}.planner-attribution{max-width:65%;text-align:right}.planner-status{display:grid;grid-template-columns:1fr 1fr}}

/* v0.8.0 mission planner */
.planner-workspace{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.65fr);gap:14px}.mission-config{align-self:start}.mission-config>label{display:block;margin:10px 0;font-size:12px;color:var(--muted)}.mission-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mission-grid label{font-size:11px;color:var(--muted)}.mission-config input[type=range]{padding:0;border:0}.mission-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.mission-stats div{background:#f5f8f6;border-radius:10px;padding:9px}.mission-stats span{display:block;font-size:9px;color:var(--muted)}.mission-stats b{font-size:12px}.planner-map.drawing{cursor:crosshair}.mission-poly{fill:rgba(31,142,77,.13);stroke:#17894a;stroke-width:2.5}.mission-vertex{fill:#fff;stroke:#17894a;stroke-width:2}.planned-route{fill:none;stroke:#d73535;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.planned-waypoint{fill:#fff;stroke:#d73535;stroke-width:1.5}.actual-flight{fill:none;stroke:#1b63a0;stroke-width:2;stroke-dasharray:5 4;opacity:.75}.planner-tools select{width:auto;min-width:170px;margin:0;padding:7px 9px}.planner-status i{font-style:normal}.planner-tiles img{image-rendering:auto}@media(max-width:1000px){.planner-workspace{grid-template-columns:1fr}.mission-config{order:-1}}@media(max-width:650px){.mission-grid,.mission-stats{grid-template-columns:1fr}}

/* v0.8.1 — editable mission geometry, compact controls and export */
.planner-panel{min-width:0}.planner-quickbar{display:grid;grid-template-columns:minmax(190px,1.1fr) repeat(3,minmax(120px,.7fr));gap:10px;align-items:end;margin:10px 0 12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fbfdfb}.planner-quickbar label{display:grid;gap:5px;font-size:11px;color:var(--muted)}.planner-quickbar input[type=range]{width:100%}.planner-density{font-size:10px;color:var(--muted);margin-top:2px}.mission-vertex{cursor:grab;pointer-events:all}.mission-vertex.selected{stroke:#b34a1f;stroke-width:4;r:7}.planner-map.editing{cursor:default}.planner-export{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.planner-export button:disabled{opacity:.45;cursor:not-allowed}.mission-help{padding:10px 12px;border-radius:10px;background:#f5f8f6;border:1px solid var(--line);font-size:11px;color:var(--muted)}
@media(max-width:1050px){.planner-quickbar{grid-template-columns:1fr 1fr}}@media(max-width:620px){.planner-quickbar{grid-template-columns:1fr}}

/* v0.8.2 — contrast, persistent/multiple parcels */
.mission-stats div{background:#eef5f0;border:1px solid #d9e7dd;color:#17221c}.mission-stats span{color:#53655a!important}.mission-stats b{color:#173b28!important;font-weight:800}.mission-help{color:#43584b}.mission-help b{color:#173b28}.parcel-manager{display:grid;grid-template-columns:minmax(140px,.7fr) minmax(180px,1fr) auto auto;gap:8px;align-items:end;margin:0 0 10px;padding:10px 12px;background:#f6faf7;border:1px solid var(--line);border-radius:11px}.parcel-manager label{font-size:10px;color:var(--muted)}.parcel-manager input,.parcel-manager select{margin-top:4px}.danger-soft{border-color:#e5c8c0;color:#8d3c28}.mission-poly.inactive-poly{fill:rgba(80,105,90,.08);stroke:#71867a;stroke-dasharray:5 4}.mission-poly.active-poly{fill:rgba(31,142,77,.15);stroke:#17894a}.planner-map.drawing .mission-vertex{pointer-events:none}@media(max-width:900px){.parcel-manager{grid-template-columns:1fr 1fr}}@media(max-width:560px){.parcel-manager{grid-template-columns:1fr}}


/* v0.9.0 — customer dossier and workflow shell */
.aq-start-main{grid-column:1/-1}.aq-start-actions{display:flex;gap:9px;flex-wrap:wrap;margin:14px 0}.aq-flow{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:14px 0}.aq-flow span{padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:#f4f8f5;font-size:11px;color:#284a37}.aq-flow i{font-style:normal;color:#829087}.customer-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:14px}.aq-form.compact{display:grid;grid-template-columns:1fr 1fr auto auto;gap:8px;align-items:end}.customer-list{display:grid;gap:8px;margin-top:12px}.customer-list article{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fafcfb}.customer-list article div{display:grid;gap:3px}.customer-list small{color:var(--muted)}.flight-dossier{display:grid;gap:12px}.dossier-tabs{display:flex;gap:6px;flex-wrap:wrap;padding:7px;border:1px solid var(--line);border-radius:12px;background:#f7faf8}.dossier-tabs button{border:0;background:transparent;padding:8px 11px;border-radius:8px;color:#53655a;cursor:pointer}.dossier-tabs button.active{background:#e1f0e6;color:#1d623c;font-weight:700}.result-grid,.admin-v09{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.admin-v09>article:first-child{grid-column:span 2}.storage-list{display:grid;gap:8px;margin:12px 0}.storage-list>div{display:grid;grid-template-columns:150px 1fr auto;gap:9px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fafcfb}.storage-list span{font-size:11px;color:var(--muted)}.storage-list b{font-size:11px;overflow-wrap:anywhere}@media(max-width:1000px){.customer-layout,.result-grid,.admin-v09{grid-template-columns:1fr}.admin-v09>article:first-child{grid-column:auto}.aq-form.compact{grid-template-columns:1fr 1fr}.storage-list>div{grid-template-columns:1fr}}@media(max-width:620px){.aq-form.compact{grid-template-columns:1fr}}
/* v0.9.1 — calmer Start, single durable data root and explicit customer fields */
.aq-start-page header .header-actions{display:none}
.aq-onboarding,.aq-storage-start{min-width:0}.org-form,.company-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.company-form{grid-template-columns:repeat(4,minmax(0,1fr))}.company-form .company-notes{grid-column:1/-1}.company-form textarea{width:100%;resize:vertical}.storage-list>div{grid-template-columns:180px 1fr auto}
@media(max-width:1000px){.company-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.org-form,.company-form{grid-template-columns:1fr}.company-form .company-notes{grid-column:auto}}


/* v0.9.2a — Start readability and onboarding layout fix */
.aq-start-page #dashboardView .grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;align-items:start}
.aq-start-page #dashboardView .aq-start-main{grid-column:1/-1;min-width:0}
.aq-start-page #dashboardView .aq-onboarding{grid-column:span 7;min-width:0;min-height:0}
.aq-start-page #dashboardView .aq-storage-start{grid-column:span 5;min-width:0;min-height:0}
.aq-start-page .aq-onboarding .panelhead,.aq-start-page .aq-storage-start .panelhead{margin-bottom:16px}
.aq-start-page .org-form{grid-template-columns:repeat(2,minmax(180px,1fr));gap:14px 16px}
.aq-start-page .org-form label{display:grid;gap:6px;font-size:12px;color:var(--muted);min-width:0}
.aq-start-page .org-form input{margin-top:0;min-width:0}
.aq-start-page .aq-onboarding .mission-actions{margin-top:16px}
.aq-start-page .aq-storage-start .analysis-summary{display:grid;align-items:start;gap:5px;margin:12px 0 16px}
.aq-start-page .aq-storage-start .analysis-summary b,.aq-start-page .aq-storage-start .analysis-summary span{overflow-wrap:anywhere}
.aq-start-page .aq-storage-start>button{width:auto}
@media(max-width:1100px){.aq-start-page #dashboardView .aq-onboarding,.aq-start-page #dashboardView .aq-storage-start{grid-column:1/-1}.aq-start-page .org-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.aq-start-page .org-form{grid-template-columns:1fr}}
