:root,:host{--ol-background-color: white;--ol-accent-background-color: #F5F5F5;--ol-subtle-background-color: rgba(128, 128, 128, .25);--ol-partial-background-color: rgba(255, 255, 255, .75);--ol-foreground-color: #333333;--ol-subtle-foreground-color: #666666;--ol-brand-color: #00AAFF}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{position:absolute;bottom:-5px;font-size:10px;z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{position:absolute;font-size:12px;text-align:center;bottom:25px;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer}:root{--bg: #12161c;--panel: #1b2129;--panel-2: #232b35;--line: #2e3844;--text: #e8edf2;--muted: #8b98a7;--accent: #34c759;--accent-2: #00e5ff;--danger: #ff453a;--radius: 8px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{display:flex;flex-direction:column;background:var(--bg);font-size:14px}button,input,select{font:inherit;color:inherit}.topbar{display:flex;align-items:center;gap:16px;padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap}.brand{font-weight:800;font-size:18px;letter-spacing:.5px;color:var(--accent);white-space:nowrap}.brand span{font-weight:400;font-size:12px;color:var(--muted);margin-left:6px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.tool-group{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.tool-group.create{padding:3px 4px 3px 8px;border:1px solid var(--line);border-radius:calc(var(--radius) + 3px);background:#34c7590f}.group-label{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--accent);font-weight:700;margin-right:2px}.toolbar kbd{font:600 10px ui-monospace,monospace;padding:1px 4px;border-radius:4px;border:1px solid var(--line);color:var(--muted);margin-left:2px}.toolbar button.active kbd{border-color:#062b1066;color:#062b10}.toolbar button,.btn{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);padding:6px 10px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}.toolbar button:hover,.btn:hover{border-color:var(--accent)}.toolbar button.active{background:var(--accent);border-color:var(--accent);color:#062b10;font-weight:600}.io{margin-left:auto;display:flex;gap:6px}.dropdown{position:relative}.menu{display:none;position:absolute;right:0;top:calc(100% + 6px);z-index:50;min-width:250px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:6px;box-shadow:0 10px 30px #00000080}.menu.open{display:block}.menu button{display:block;width:100%;text-align:left;background:none;border:0;padding:8px 10px;border-radius:6px;cursor:pointer}.menu button:hover{background:var(--panel-2)}.menu-scope,.menu-iso{padding:6px 8px 8px;border-bottom:1px solid var(--line);margin-bottom:4px;display:flex;flex-direction:column;gap:4px;font-size:13px}.menu-iso label{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--muted)}.menu-iso input{width:140px}.layout{flex:1;display:flex;min-height:0}.sidebar{width:340px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--line);overflow-y:auto;padding:12px}.map-wrap{position:relative;flex:1;min-width:0}#map{position:absolute;top:0;right:0;bottom:0;left:0;background:#0b0e12}.map-wrap.drop:after{content:"Déposez vos fichiers KML, Shapefile, ISOXML…";position:absolute;top:12px;right:12px;bottom:12px;left:12px;z-index:40;border:3px dashed var(--accent);border-radius:12px;background:#34c7591f;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600;pointer-events:none}.basemap-panel{position:absolute;top:10px;right:10px;z-index:10;background:#1b2129f0;border:1px solid var(--line);border-radius:var(--radius);padding:8px 10px;font-size:13px;max-width:260px}.basemap-panel .bm-toggle{position:absolute;top:4px;right:4px;background:none;border:0;cursor:pointer;font-size:16px}.basemap-panel.collapsed{padding:4px 30px 4px 4px}.basemap-panel.collapsed .bm-body{display:none}.bm-title{font-weight:700;margin:4px 24px 4px 0;color:var(--muted);text-transform:uppercase;font-size:11px;letter-spacing:.6px}.basemap-panel label{display:flex;gap:6px;align-items:center;padding:2px 0;cursor:pointer}.hint{display:none;position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:30;background:#000000d1;padding:6px 8px 6px 14px;border-radius:20px;font-size:13px;max-width:70%;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;text-align:center}.hint-actions{display:inline-flex;gap:4px;flex-wrap:wrap}.hint-actions button{background:var(--panel-2);border:1px solid var(--line);border-radius:14px;padding:4px 10px;cursor:pointer;font-size:13px;white-space:nowrap}.hint-actions button:hover{border-color:var(--accent)}.hint-actions button[data-hint=finish]{background:var(--accent);border-color:var(--accent);color:#062b10;font-weight:600}.entry-panel{display:none;position:absolute;top:10px;left:50px;z-index:20;width:min(360px,calc(100% - 64px));max-height:calc(100% - 20px);overflow-y:auto;background:#1b2129f7;border:1px solid var(--accent);border-radius:var(--radius);padding:10px;box-shadow:0 10px 30px #00000080}.entry-panel.open{display:block}.entry-panel.picking{opacity:.85}.ep-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.ep-tabs{display:flex;gap:2px;margin-bottom:10px;background:var(--bg);padding:2px;border-radius:var(--radius)}.ep-tabs button{flex:1;background:none;border:0;padding:6px 4px;border-radius:6px;cursor:pointer;font-size:12px;white-space:nowrap}.ep-tabs button.active{background:var(--panel-2);color:var(--accent);font-weight:600}.entry-panel .field{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:3px}.entry-panel .full{grid-column:1 / -1}.entry-panel .flabel{color:var(--muted)}.entry-panel textarea{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:6px 7px;width:100%;color:var(--text);font:12px ui-monospace,monospace;resize:vertical}.entry-panel textarea:focus{outline:none;border-color:var(--accent)}.pos-input{display:flex;gap:4px}.pos-input input{flex:1;min-width:0;font-family:ui-monospace,monospace;font-size:12px}.pos-input button,.list-actions button{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;cursor:pointer;padding:4px 8px;color:var(--text)}.pos-input button:hover,.list-actions button:hover{border-color:var(--accent)}.list-actions{display:flex;gap:4px}.list-actions button{font-size:12px}.entry-panel .seg{flex-direction:row;gap:14px;color:var(--text)}.entry-panel .seg label{display:flex;flex-direction:row;color:var(--text);align-items:center;gap:5px;cursor:pointer}.entry-panel .seg input{width:auto}.preview{font-size:11px;color:var(--accent);font-family:ui-monospace,monospace;line-height:1.5;min-height:0}.preview.err{color:var(--danger)}.ep-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:12px}button.primary{background:var(--accent);border:1px solid var(--accent);color:#062b10;font-weight:700;border-radius:var(--radius);padding:7px 18px;cursor:pointer}button.primary:hover{filter:brightness(1.1)}[hidden]{display:none!important}.sb-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.sb-head h2{margin:0 0 2px;font-size:16px}.sb-head-actions{display:flex;gap:4px}.icon{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;width:30px;height:30px;cursor:pointer}.muted{color:var(--muted)}.empty{padding:20px 10px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--radius);line-height:1.6}.parcel-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.parcel{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius)}.parcel.selected{border-color:var(--accent-2)}.parcel-row{display:flex;align-items:center;gap:8px;padding:8px 10px;cursor:pointer}.parcel-row .pname{font-weight:600;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parcel-row .pcrop{color:var(--muted);font-size:12px;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parcel-row .parea{font-variant-numeric:tabular-nums;color:#ffd60a;font-size:13px}.caret{color:var(--muted);width:10px}.parcel-body{padding:4px 10px 10px;border-top:1px solid var(--line)}.sub-h{font-weight:600;margin:10px 0 4px;font-size:13px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 8px;margin-top:6px}.form-grid label{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:2px}.form-grid label.full{grid-column:1 / -1}.form-grid label.check{flex-direction:row;align-items:center;gap:6px;color:var(--text)}input[type=text],input[type=number],select{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:5px 7px;width:100%;color:var(--text)}input:focus,select:focus{outline:none;border-color:var(--accent)}.item{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:6px;cursor:pointer}.item:hover{background:#ffffff0d}.item.selected{background:#00e5ff24}.item .iname{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sw{display:inline-block;flex-shrink:0}.sw.line{width:18px;height:4px;border-radius:2px;background:#ff375f}.sw.line.curve{background:#ff9f0a}.sw.dot{width:12px;height:12px;border-radius:50%;border:2px solid #fff}.row-actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.row-actions button{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:5px 9px;cursor:pointer;font-size:13px}.row-actions button:hover{border-color:var(--accent)}button.danger:hover,.icon.danger:hover{border-color:var(--danger);color:var(--danger)}.orphans{margin-top:14px;padding:8px;border:1px dashed var(--line);border-radius:var(--radius)}.orphans h3{margin:0 0 4px;font-size:13px;color:var(--muted)}.detail{margin-top:14px;padding:10px;background:var(--panel-2);border:1px solid var(--accent-2);border-radius:var(--radius)}.detail-h{font-weight:700;display:flex;align-items:center;gap:8px}.stats{display:flex;gap:10px;margin-top:10px}.stats div{flex:1;background:var(--bg);border-radius:6px;padding:6px 8px;display:flex;flex-direction:column}.stats b{font-variant-numeric:tabular-nums}.stats span{font-size:11px;color:var(--muted)}.coords{margin-top:8px;font-family:ui-monospace,monospace}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%) translateY(20px);opacity:0;z-index:100;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--accent-2);padding:10px 16px;border-radius:var(--radius);transition:all .2s;pointer-events:none;max-width:80vw}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.toast.ok{border-left-color:var(--accent)}.toast.error{border-left-color:var(--danger)}.account{display:flex;align-items:center}.sync{font-size:12px;color:var(--muted)}.sync.ok{color:var(--accent)}.sync.syncing{color:var(--accent-2);animation:pulse 1s ease-in-out infinite}.sync.offline{color:#ff9f0a}.sync.error{color:var(--danger)}@keyframes pulse{50%{opacity:.35}}.small{font-size:12px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#080a0ed1;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:16px}.dialog{width:min(380px,100%);background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:22px;display:flex;flex-direction:column;gap:12px;box-shadow:0 20px 60px #0009}.dialog h2{margin:0;font-size:18px}.dialog p{margin:0;font-size:13px}.dialog label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.dialog input{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:9px 10px;color:var(--text);font-size:15px}.dialog .primary{padding:10px;font-size:15px}.dialog .primary:disabled{opacity:.6;cursor:wait}.dialog-actions{display:flex;justify-content:flex-end;gap:8px}.dialog-actions button[data-cancel]{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);padding:7px 14px;cursor:pointer}.form-error{color:var(--danger);font-size:13px}.ol-scale-line{left:10px;bottom:10px}.ol-zoom{top:10px;left:10px}@media (max-width: 800px){.layout{flex-direction:column-reverse}.sidebar{width:100%;height:40%;border-right:0;border-top:1px solid var(--line)}.io{margin-left:0}.toolbar kbd{display:none}.hint{max-width:94%}.entry-panel{left:10px;width:calc(100% - 20px)}}
