:root{--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--radius-sm:.25rem;--radius:.5rem;--radius-lg:.75rem;--radius-pill:999px;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-lg:1.125rem;--text-xl:1.5rem;--text-stat:1.375rem;--font-mono:ui-monospace, "SF Mono", "Cascadia Mono", "Segoe UI Mono", monospace;--bg:#f4f6f8;--surface:#fff;--surface-raised:#fff;--surface-sunken:#eef1f4;--border:#d8dee5;--border-strong:#b4bec9;--text:#16202b;--text-muted:#5c6b7a;--accent:#17618f;--accent-hover:#124e73;--accent-weak:#e3eef6;--accent-contrast:#fff;--ok:#1f6d43;--ok-weak:#e2f2e8;--warn:#8a5a00;--warn-weak:#fbf0da;--danger:#a32020;--danger-weak:#fbe6e6;--shadow-sm:0 1px 2px #10203014;--shadow-md:0 4px 16px #1020301f;--ring:0 0 0 2px var(--bg), 0 0 0 4px var(--accent);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#12171d;--surface:#1a2129;--surface-raised:#222b35;--surface-sunken:#151b22;--border:#2e3945;--border-strong:#44525f;--text:#e6ecf2;--text-muted:#9aa8b6;--accent:#5aa9e0;--accent-hover:#7cbcea;--accent-weak:#1c2f3d;--accent-contrast:#0d1620;--ok:#63c48d;--ok-weak:#172a20;--warn:#e0b055;--warn-weak:#2c2416;--danger:#ef7d7d;--danger-weak:#2e1b1b;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 16px #00000080}}*,:before,:after{box-sizing:border-box}html{font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:100%;line-height:1.5}body{background:var(--bg);color:var(--text);font-size:var(--text-base);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{margin:0;font-weight:600;line-height:1.25}h1{font-size:var(--text-xl)}h2{font-size:var(--text-lg)}h3{font-size:var(--text-base)}p{margin:0}ul{margin:0;padding:0;list-style:none}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}input,select,button,textarea{font:inherit;color:inherit}input[type=text],input[type=password],input[type=datetime-local],select{padding:var(--space-2) var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-raised);min-width:0;transition:border-color .12s}input[type=text]:hover,input[type=password]:hover,input[type=datetime-local]:hover,select:hover{border-color:var(--accent)}select{cursor:pointer}input[type=checkbox]{accent-color:var(--accent);cursor:pointer;width:1rem;height:1rem;margin:0}button{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-raised);color:var(--text);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;font-weight:500;transition:background-color .12s,border-color .12s;display:inline-flex}button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-weak)}button:disabled{opacity:.5;cursor:not-allowed}progress,.stat-value,.chip,.mono{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono)}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.app-header{z-index:20;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);background:var(--surface);display:flex;position:sticky;top:0}.app-header h1{font-size:var(--text-lg);letter-spacing:-.01em}.app-main,.app-footer{max-width:76rem;padding:var(--space-4);margin:0 auto}.app-footer{padding-top:0}.footer-actions{justify-content:flex-end}.card{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);flex-direction:column;display:flex;position:relative}.stack>*+*,form>.callout{margin-top:var(--space-4)}.card-head{align-items:center;gap:var(--space-2);min-height:2rem;display:flex}.card-title{align-items:center;gap:var(--space-2);font-size:var(--text-base);letter-spacing:.01em;font-weight:600;display:flex}.card-aside{align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--text-sm);margin-left:auto;display:flex}.card-body{gap:var(--space-3);flex-direction:column;display:flex}.form-grid{gap:var(--space-4);margin-top:var(--space-4);display:grid}.form-col{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}@media (width>=900px){.form-grid{grid-template-columns:1fr 1fr;align-items:start}}.stat{flex-direction:column;gap:.125rem;min-width:0;display:flex}.stat-label{align-items:center;gap:var(--space-1);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;font-weight:600;display:flex}.stat-value{font-size:var(--text-stat);overflow-wrap:anywhere;font-weight:600;line-height:1.2}.stat-value .stat-unit{font-size:var(--text-sm);color:var(--text-muted);margin-left:var(--space-1);font-weight:500}.stat--sm .stat-value{font-size:var(--text-base);font-weight:500}.stat-row{gap:var(--space-3) var(--space-5);flex-wrap:wrap;display:flex}.callout{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius);font-size:var(--text-sm);border:1px solid;border-left-width:3px;display:flex}.callout-icon{flex:none;line-height:1.5}.callout--info{border-color:var(--accent);background:var(--accent-weak)}.callout--warn{border-color:var(--warn);background:var(--warn-weak)}.callout--error{border-color:var(--danger);background:var(--danger-weak)}.callout--ok{border-color:var(--ok);background:var(--ok-weak)}.callout ul{gap:var(--space-1);margin-top:var(--space-1);flex-direction:column;display:flex}.info-hint{display:inline-flex;position:relative}.info-hint-button{border:1px solid var(--border-strong);border-radius:var(--radius-pill);width:1.125rem;height:1.125rem;color:var(--text-muted);background:0 0;justify-content:center;padding:0;font-size:.6875rem;font-weight:700;line-height:1}.info-hint-button:hover:not(:disabled),.info-hint-button[aria-expanded=true]{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast)}.info-hint-popover{top:calc(100% + var(--space-2));z-index:30;width:max-content;max-width:min(22rem,80vw);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);box-shadow:var(--shadow-md);font-size:var(--text-sm);letter-spacing:normal;text-transform:none;color:var(--text);white-space:normal;font-weight:400;position:absolute;left:0}.info-hint--end .info-hint-popover{left:auto;right:0}@media (width<=39.9375rem){.info-hint{position:static}.info-hint-popover,.info-hint--end .info-hint-popover{top:auto;left:var(--space-3);right:var(--space-3);width:auto;max-width:none;margin-top:1.5rem}}.disclosure-bar{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.disclosure-bar>.disclosure{flex:16rem;min-width:0}.disclosure-toggle{background:var(--surface);white-space:normal;text-align:left;flex-wrap:wrap;justify-content:flex-start;width:100%}.disclosure-title{overflow-wrap:anywhere;min-width:0}.disclosure-toggle[aria-expanded=true]{border-color:var(--accent);background:var(--accent-weak)}.disclosure-marker{color:var(--text-muted);font-size:var(--text-xs)}.disclosure-count{color:var(--text-muted);margin-left:auto;font-weight:400}.disclosure-panel{margin-top:var(--space-2)}.action-bar{bottom:var(--space-4);z-index:10;align-items:center;gap:var(--space-4);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-md);flex-wrap:wrap;display:flex;position:sticky}.action-bar .stat-value{font-size:var(--text-lg)}.action-bar-spacer{flex:auto}.action-bar-status{align-items:center;gap:var(--space-2);min-width:0;font-size:var(--text-sm);color:var(--text-muted);display:flex}.action-bar-status--done,.action-bar-status--saved{color:var(--ok)}.action-bar-status--needs-click{color:var(--warn)}.action-bar-status--failed{color:var(--danger)}.action-bar-mark{font-size:var(--text-base);line-height:1}.action-bar-progress{appearance:none;border-radius:var(--radius-pill);background:var(--surface-sunken);border:none;flex:none;width:5rem;height:.375rem;overflow:hidden}.action-bar-progress::-webkit-progress-bar{background:var(--surface-sunken)}.action-bar-progress::-webkit-progress-value{background:var(--accent);border-radius:var(--radius-pill)}.action-bar-progress::-moz-progress-bar{background:var(--accent)}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:var(--radius-pill);flex:none;width:.875rem;height:.875rem;animation:.8s linear infinite spinner-turn}@keyframes spinner-turn{to{transform:rotate(360deg)}}.field{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.field>label{font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-weight:600}.field input,.field select{width:100%}.field-unit{align-items:center;display:flex;position:relative}.field-unit input{text-align:right;padding-right:2rem}.field-unit:after{content:attr(data-unit);right:var(--space-3);color:var(--text-muted);font-size:var(--text-sm);pointer-events:none;position:absolute}.field-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width>=640px){.field-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.field-row{align-items:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}.segment-list{gap:var(--space-2);flex-direction:column;display:flex}.segment-row{align-items:end;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-sunken);grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;display:grid}.segment-remove{padding:var(--space-2);line-height:1}.preset-form{align-items:flex-end}.preset-title-field{flex:18rem}.chip-list{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--text-muted);font-size:var(--text-xs);white-space:nowrap;display:inline-flex}.chip-check input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.chip-check{cursor:pointer;color:var(--text);background:var(--surface-raised);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);transition:background-color .12s,border-color .12s;position:relative}.chip-check:hover{border-color:var(--accent)}.chip-check:has(input:checked){border-color:var(--accent);background:var(--accent-weak);color:var(--accent);font-weight:500}.chip-check:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.chip-code{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.status-done{border-color:var(--ok);background:var(--ok-weak);color:var(--ok)}.status-error{border-color:var(--danger);background:var(--danger-weak);color:var(--danger)}.status-running,.status-pending{border-color:var(--accent);background:var(--accent-weak);color:var(--accent)}.chip-ok{border-color:var(--ok);background:var(--ok-weak);color:var(--ok)}.chip-wait{border-color:var(--warn);background:var(--warn-weak);color:var(--warn)}.chip-check:has(input:checked) .chip-code{color:inherit}.btn-primary{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast);padding:var(--space-3) var(--space-5);font-weight:600}.btn-primary:hover:not(:disabled){border-color:var(--accent-hover);background:var(--accent-hover)}.btn-ghost{color:var(--text-muted);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-sunken);border-color:var(--border);color:var(--text)}.btn-danger:hover:not(:disabled){border-color:var(--danger);background:var(--danger-weak);color:var(--danger)}.btn-sm{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}.button-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.checkbox-row{align-items:center;gap:var(--space-2);font-size:var(--text-sm);cursor:pointer;display:flex}.checkbox-row-group{align-items:center;gap:var(--space-2);display:flex}.list{gap:var(--space-1);flex-direction:column;display:flex}.list-row{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-sunken);flex-wrap:wrap;display:flex}.list-row-main{flex:14rem;min-width:0}.list-row-title{font-size:var(--text-sm);overflow-wrap:anywhere}.list-row-meta{color:var(--text-muted);font-size:var(--text-xs)}.list-row-actions{align-items:center;gap:var(--space-2);margin-left:auto;display:flex}.empty-note{color:var(--text-muted);font-size:var(--text-sm)}.map-frame{position:relative}.map-zoom-badge{top:var(--space-2);right:var(--space-2);z-index:1;padding:var(--space-1) var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--text-xs);pointer-events:none;margin:0;position:absolute}.map-canvas{border:1px solid var(--border);border-radius:var(--radius);z-index:0;height:26rem;position:relative;overflow:hidden}.map-readout{align-items:baseline;gap:var(--space-2);min-height:1.25rem;font-size:var(--text-sm);color:var(--text-muted);display:flex}.map-readout-label{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.map-canvas.leaflet-container{background:var(--surface-sunken);font:inherit}.map-canvas.map-canvas.leaflet-container{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.map-canvas.is-drawing.leaflet-container{cursor:crosshair}.map-bbox,.map-bbox-move{cursor:move}.map-bbox-ns{cursor:ns-resize}.map-bbox-ew{cursor:ew-resize}.map-bbox-nwse{cursor:nwse-resize}.map-bbox-nesw{cursor:nesw-resize}.leaflet-div-icon.map-handle{touch-action:none;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.leaflet-div-icon.map-handle:before{content:"";background:var(--accent);border:2px solid var(--accent-contrast);border-radius:var(--radius-sm);width:.75rem;height:.75rem;box-shadow:var(--shadow-sm)}.map-handle-nw,.map-handle-se{cursor:nwse-resize}.map-handle-ne,.map-handle-sw{cursor:nesw-resize}.map-handle-n,.map-handle-s{cursor:ns-resize}.map-handle-e,.map-handle-w{cursor:ew-resize}.progress-row{align-items:center;gap:var(--space-3);display:flex}.progress-row progress{appearance:none;border-radius:var(--radius-pill);background:var(--surface-sunken);border:none;flex:auto;height:.5rem;overflow:hidden}.progress-row progress::-webkit-progress-bar{background:var(--surface-sunken)}.progress-row progress::-webkit-progress-value{background:var(--accent);border-radius:var(--radius-pill)}.progress-row progress::-moz-progress-bar{background:var(--accent)}.progress-count{font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap}.login-card{max-width:24rem;margin:var(--space-6) auto}.login-card .card-body{gap:var(--space-4)}.centered-note{max-width:36rem;margin:var(--space-6) auto;text-align:center;color:var(--text-muted)}
