.rule-group .helper-text{margin:0 0 4px}.rule-row{display:grid;gap:6px;padding:10px 0;border-top:1px solid var(--line)}.rule-row__text label{display:block;font-size:.86rem;font-weight:700}.rule-row__text small{display:block;margin-top:2px;color:var(--ink-soft);font-size:.76rem;line-height:1.4}.rule-row.is-changed .rule-row__text label:after{content:"";display:inline-block;width:7px;height:7px;margin-left:6px;border-radius:50%;background:var(--orange);vertical-align:middle}.rule-row.is-disabled{opacity:.5}.rule-row__control{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 10px}.rule-range{display:flex;flex:1;align-items:center;gap:8px}.rule-range input{flex:1;min-width:0;accent-color:var(--green)}.rule-range output{min-width:52px;font-weight:700;font-variant-numeric:tabular-nums;text-align:right}.rule-row select{flex:1;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:#fff}.rule-switch{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;width:42px;height:24px;margin:0;border-radius:999px;background:#c5cfbf;cursor:pointer;transition:background .15s}.rule-switch:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s}.rule-switch:checked{background:var(--green)}.rule-switch:checked:after{transform:translate(18px)}.rule-switch:focus-visible{outline:2px solid var(--green-dark);outline-offset:2px}.rule-row__reset{padding:0;background:none;color:var(--orange);cursor:pointer;font-size:.75rem}.rule-advanced{border-top:1px solid var(--line)}.rule-advanced summary{padding:10px 0;color:var(--ink-soft);cursor:pointer;font-size:.82rem;font-weight:700}.segmented{display:flex;overflow:hidden;border:1px solid var(--line, #d7ddd2);border-radius:8px;background:#fff}.segmented button{flex:1;padding:7px 6px;border:0;border-right:1px solid var(--line, #d7ddd2);background:transparent;color:var(--ink-soft);cursor:pointer;font-size:.78rem;font-weight:700;line-height:1.2}.segmented button:last-child{border-right:0}.segmented button.is-on{background:var(--green);color:#fff}.preset-list{display:grid;gap:6px}.preset{display:grid;gap:2px;padding:8px 10px;border:1px solid var(--line, #d7ddd2);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer;text-align:left}.preset small{color:var(--ink-soft);font-size:.72rem}.preset.is-on{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.equipment-subtitle{margin:16px 0 0;color:var(--ink-soft);font-size:.74rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.setup-dialog{width:min(480px,calc(100vw - 32px))}.setup-dialog__body{gap:12px}.setup-dialog__body .field>span{font-weight:700}.setup-dialog__foot .generate-button{display:inline-flex;align-items:center;gap:8px}.summary-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);cursor:pointer;text-align:left}.summary-card:hover{border-color:var(--brand)}.summary-card__icon{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--panel-soft);color:var(--brand)}.summary-card__text strong,.summary-card__text small{display:block}.summary-card__text strong{font-size:.92rem}.summary-card__text small{margin-top:2px;color:var(--ink-soft);font-size:.78rem;line-height:1.35}.summary-card__chevron{color:var(--ink-soft)}.map-overlay{position:absolute;z-index:3;border:1px solid var(--line);border-radius:10px;background:#fbfcf7f0;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.map-overlay--top-left{top:16px;left:16px;width:min(330px,calc(100% - 32px));max-height:calc(100% - 120px);overflow:auto;padding:12px}.map-overlay--top-right{top:16px;right:16px;width:min(340px,calc(100% - 32px));padding:12px}.map-overlay--bottom-left{bottom:16px;left:16px}.stats-overlay .stat{min-height:0;padding:7px 9px}.stats-overlay .stat small{color:var(--ink-soft);font-size:.72rem}.render-toggle{display:grid;gap:4px;padding:4px}.render-toggle__group{display:grid;gap:2px}.render-toggle__options{padding-top:4px;border-top:1px solid var(--line)}.render-toggle__options button.is-on{background:var(--panel-soft);color:var(--green-dark);box-shadow:inset 0 0 0 1.5px var(--green)}.segment-legend{left:72px;display:grid;gap:4px;padding:8px 10px;font-size:.78rem;color:var(--ink-soft)}.segment-legend span{display:flex;align-items:center;gap:7px}.segment-legend i{width:18px;height:3px;border-radius:2px}.render-toggle button{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:transparent;color:var(--ink-soft);cursor:pointer}.render-toggle button:hover{background:var(--panel-soft);color:var(--green-dark)}.render-toggle button.is-active{background:var(--green);color:#fff}.recalc-bar__inner{display:grid;gap:6px;justify-items:center}.control-panel .recalc-bar{position:sticky;top:-22px;z-index:6;flex:none;height:0;margin:-22px -22px -16px}.control-panel .recalc-bar__inner{position:absolute;top:0;right:0;left:0;padding:16px 22px 14px;background:#fbfcf7db;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 8px 14px -10px #1f322466}.recalc-bar .recalc-button{width:100%}.recalc-cancel{font-size:.8rem}.generate-button.recalc-button{background:var(--orange)}.terrain-picker{display:flex;flex:none;align-items:center;gap:8px;margin-left:auto;color:#cfe3d3;font-size:12px}.app-nav .terrain-picker select{height:28px;min-height:0;width:auto;max-width:200px;padding:4px 8px;border:1px solid rgba(255,255,255,.25);border-radius:7px;background:#24543a;color:#fff;font-size:12px}@media (max-width: 980px){.map-overlay--top-right{top:auto;right:16px;bottom:16px;left:72px;width:auto}}.app-nav__end{display:flex;flex:none;align-items:center;align-self:center;gap:10px;margin-left:auto}.app-nav__end .terrain-picker{margin-left:0}.app-nav__icon{display:grid;place-items:center;width:30px;height:30px;padding:0;border-radius:7px;background:transparent;color:#cfe3d3;cursor:pointer}.app-nav__icon:hover,.app-nav__icon:focus-visible{background:#ffffff29;color:#fff}.system-settings{width:min(560px,calc(100vw - 32px));max-height:calc(100svh - 64px);padding:0;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:#172018;font-size:1rem;font-weight:400;box-shadow:var(--shadow)}.system-settings[open]{display:flex;flex-direction:column}.system-settings::backdrop{background:#173d2a59}.system-settings__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 10px;border-bottom:1px solid var(--line)}.system-settings__head h2{margin:0 0 4px;font-size:1.05rem}.system-settings__close{color:var(--ink-soft)}.system-settings__close:hover{background:var(--panel-soft);color:var(--green)}.system-settings__body{display:grid;gap:14px;padding:14px 20px;overflow:auto}.system-settings__resets{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;padding-top:14px;border-top:1px solid var(--line)}.system-settings__resets .link-button:disabled{color:var(--ink-soft);cursor:default;opacity:.5;text-decoration:none}.consent-banner{position:fixed;right:16px;bottom:16px;z-index:50;display:grid;gap:10px;width:min(420px,calc(100vw - 32px));padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow);font-size:.85rem}.consent-banner p{margin:0;color:var(--ink-soft)}.consent-banner__actions{display:flex;justify-content:flex-end;gap:8px}.consent-banner .generate-button{width:auto;min-height:0;padding:8px 16px}.system-settings--confirm{width:min(440px,calc(100vw - 32px))}.system-settings .generate-button.system-settings__danger{background:#b42318;border-color:#b42318}.system-settings__foot{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:12px 20px;border-top:1px solid var(--line)}.system-settings__foot .link-button:disabled{color:var(--ink-soft);cursor:default;opacity:.5;text-decoration:none}.system-settings__foot .generate-button{width:auto;min-height:0;padding:9px 18px}.system-settings__cancel{padding:9px 14px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink-soft);cursor:pointer}:root{color:#172018;background:#eef2e9;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--panel: #fbfcf7;--panel-soft: #eef5e8;--line: #dbe3d2;--ink-soft: #62705f;--green: #286e3e;--green-dark: #18442b;--orange: #cf7532;--shadow: 0 18px 50px rgba(31, 50, 36, .16)}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{border:0}.app-layout{display:grid;grid-template-columns:380px minmax(0,1fr);min-height:calc(100svh - var(--nav-height, 0px))}.control-panel{display:flex;flex-direction:column;gap:16px;padding:22px;background:var(--panel);border-right:1px solid var(--line);overflow:auto}.brand-block{display:grid;grid-template-columns:46px 1fr;gap:13px;align-items:center}.brand-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:8px;background:var(--green-dark);color:#f8fff4;font-weight:800}.eyebrow{margin:0 0 2px;color:var(--green);font-size:.78rem;font-weight:800;letter-spacing:0;text-transform:uppercase}h1,h2,p{margin:0}h1{font-size:1.55rem;line-height:1.08;letter-spacing:0}h2{font-size:1rem;letter-spacing:0}.panel-section,.stats-panel{border:1px solid var(--line);border-radius:8px;background:#ffffffad;padding:14px}.empty-welcome{display:flex;gap:12px;align-items:flex-start;border:1px solid #b9d3ad;border-radius:8px;background:#eaf5e3;color:var(--green-dark);padding:14px}.empty-welcome svg{flex:0 0 auto}.empty-welcome p,.drawing-hint{margin-top:5px;color:var(--ink-soft);font-size:.78rem;line-height:1.4}.section-title,.route-heading{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:var(--green-dark)}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tool-wide{grid-column:1 / -1}.tool,.small-actions button,.generate-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border-radius:7px;background:#edf3e8;color:#253526;cursor:pointer;transition:background .16s ease,color .16s ease,transform .16s ease}.generate-button:disabled{cursor:wait;opacity:.78}.tool:hover,.small-actions button:hover,.generate-button:hover{transform:translateY(-1px)}.tool.active{background:var(--green-dark);color:#f8fff4}button:disabled{cursor:not-allowed;opacity:.45;transform:none}.small-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.example-button{width:100%;margin-top:8px;background:transparent;color:var(--green);cursor:pointer;font-size:.78rem;font-weight:800;text-decoration:underline;text-underline-offset:3px}.obstacle-palette{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.obstacle-card{display:grid;gap:7px;justify-items:center;min-width:0;border:1px solid #cfddc7;border-radius:8px;background:#f4f8f0;color:var(--green-dark);padding:10px 6px;cursor:grab;text-align:center;-webkit-user-select:none;user-select:none}.obstacle-card:active{cursor:grabbing}.obstacle-card.disabled{cursor:not-allowed;opacity:.45}.obstacle-card span,.obstacle-card strong,.obstacle-card small{display:block;min-width:0}.obstacle-card strong{font-size:.78rem}.obstacle-card small{margin-top:2px;color:var(--ink-soft);font-size:.68rem}.obstacle-count{margin-top:9px;color:var(--green);font-size:.75rem;font-weight:800}.field{display:grid;gap:8px;margin-top:13px}.field span{color:var(--ink-soft);font-size:.84rem;font-weight:700}.range-row{display:grid;grid-template-columns:1fr 64px;gap:10px;align-items:center}.check-row{display:flex;align-items:center;gap:9px;margin-top:13px;color:var(--ink-soft);font-size:.84rem;font-weight:800}.check-row input{width:16px;height:16px;accent-color:var(--green)}input[type=range]{accent-color:var(--green)}select{width:100%;height:42px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#172018;padding:0 10px}.generate-button{width:100%;margin-top:15px;background:var(--green);color:#f8fff4;font-weight:800}.helper-text{color:var(--ink-soft);font-size:.84rem;line-height:1.35}.zone-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.zone-editor-error{margin-top:10px;border-radius:7px;background:#fff0e8;color:#8a361d;padding:8px 9px;font-size:.76rem;font-weight:800;line-height:1.35}.zone-chip,.zone-angle-actions button{border:1px solid #cfddc7;border-radius:7px;background:#f4f8f0;color:var(--green-dark);cursor:pointer}.zone-chip{display:flex;justify-content:space-between;gap:8px;padding:9px 10px;font-size:.78rem}.zone-chip.active{border-color:var(--green);background:#dfeeda;box-shadow:inset 0 0 0 1px var(--green)}.zone-orientation{margin-top:12px;border-top:1px solid var(--line);padding-top:2px}.zone-angle-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.zone-angle-actions button{min-height:34px;font-weight:800}.reset-boundaries{width:100%;min-height:36px;margin-top:12px;border:1px solid #d4b65c;border-radius:7px;background:#fff8d9;color:#644f10;cursor:pointer;font-size:.78rem;font-weight:800}.workspace{position:relative;min-width:0;min-height:calc(100svh - var(--nav-height, 0px));background:#dfe9d9}.map-shell{position:absolute;top:0;right:0;bottom:0;left:0}.map-shell .map-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.map-status{position:absolute;left:18px;bottom:18px;z-index:2;padding:9px 12px;border-radius:7px;background:#fafff7eb;box-shadow:var(--shadow);color:var(--green-dark);font-weight:800}.spinner,.spinner-icon{animation:spin .8s linear infinite}.spinner{width:15px;height:15px;border:2px solid rgba(40,110,62,.25);border-top-color:var(--green);border-radius:50%}@keyframes spin{to{transform:rotate(360deg)}}.stats-panel{position:absolute;right:18px;top:18px;z-index:2;width:min(430px,calc(100% - 36px));box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.route-heading{margin-bottom:10px}.route-heading p{color:var(--ink-soft);font-size:.78rem;font-weight:800;text-transform:uppercase}.route-selector{display:grid;gap:5px;margin-bottom:12px}.route-selector span{color:var(--ink-soft);font-size:.74rem;font-weight:800}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat{display:grid;gap:5px;min-height:78px;align-content:center;border-radius:7px;background:var(--panel-soft);padding:9px}.stat svg{color:var(--green)}.stat span{color:var(--ink-soft);font-size:.75rem;font-weight:800}.stat strong{font-size:1.1rem;color:var(--green-dark)}.vertex-handle{width:16px;height:16px;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 8px #14281647;cursor:grab;touch-action:none}.vertex-handle.dragging{cursor:grabbing}.boundary-handle{display:grid;place-items:center;width:18px;height:18px;padding:0;border:3px solid #fff;border-radius:50%;background:#f4c430;box-shadow:0 2px 8px #28230a73;color:#3b3109;cursor:move;touch-action:none}.boundary-handle--insert{width:16px;height:16px;border-width:2px;background:#ffffffd9;color:#8a6d00;font-size:13px;font-weight:900;line-height:1;opacity:.85}.boundary-handle.is-muted{opacity:.55}.boundary-handle:hover,.boundary-handle.dragging{opacity:1;box-shadow:0 0 0 4px #f4c43073,0 2px 8px #28230a73}.boundary-handle.dragging{background:#ffe477;cursor:grabbing}.obstacle-resize-handle{display:grid;place-items:center;width:26px;height:26px;border:2px solid var(--green-dark);border-radius:50%;background:#fff;box-shadow:0 2px 9px #14281657;color:var(--green-dark);cursor:ew-resize;touch-action:none}.obstacle-resize-handle.dragging{width:auto;min-width:26px;padding:0 8px;border-radius:13px;font-size:12px;font-weight:800;white-space:nowrap}.obstacle-delete-handle{display:grid;place-items:center;width:30px;height:30px;border:2px solid #fff;border-radius:50%;background:#b42318;box-shadow:0 2px 9px #14281657;color:#fff;cursor:pointer}.obstacle-delete-handle:hover{background:#8f1c13}.vertex-handle.obstacle-vertex-handle{background:var(--orange)}.edge-insert-handle{display:grid;place-items:center;width:18px;height:18px;border:2px solid #fff;border-radius:50%;background:#244e32;color:#fff;box-shadow:0 2px 8px #1428163d;cursor:copy;font-size:13px;font-weight:900;line-height:1}.parcel-label-marker{display:inline-flex;align-items:center;min-height:28px;max-width:160px;border:1px solid rgba(24,68,43,.18);border-radius:7px;background:#fafff7f0;box-shadow:0 6px 18px #1428162e;color:var(--green-dark);padding:4px 6px 4px 8px;font-size:.78rem;font-weight:800;white-space:nowrap;overflow:hidden;max-width:140px;text-overflow:ellipsis;pointer-events:none}.zone-handle{background:var(--green)}.exclusion-handle{background:var(--orange)}.maplibregl-ctrl-bottom-left{display:none}@media (min-width: 981px){.app-layout{height:calc(100svh - var(--nav-height, 0px))}.control-panel{min-height:0}}@media (max-width: 980px){.app-layout{grid-template-columns:1fr;grid-template-rows:auto 68svh}.control-panel{max-height:52svh;border-right:0;border-bottom:1px solid var(--line)}.workspace{min-height:68svh}.stat-grid{grid-template-columns:repeat(2,1fr)}}.stepper-row{display:flex;align-items:center;gap:10px}.stepper-row button{width:34px;height:34px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--green-dark);font-size:18px;line-height:1;cursor:pointer}.stepper-row button:disabled{opacity:.4;cursor:default}.stepper-row strong{min-width:2ch;text-align:center;font-variant-numeric:tabular-nums}.stepper small{color:var(--ink-soft);font-size:12px}.plan-steps{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin-bottom:12px;border-radius:8px;background:var(--panel-soft)}.plan-steps button{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 10px;border-radius:6px;background:transparent;color:var(--ink-soft);font-weight:700;cursor:pointer}.plan-steps button span{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--line);font-size:.72rem}.plan-steps button.active{background:var(--panel);color:var(--green-dark);box-shadow:0 1px 3px #1f322429}.plan-steps button.active span{background:var(--green);color:#fff}.plan-hint{margin-bottom:10px;color:var(--ink-soft);font-size:.78rem;line-height:1.4}.proposal-badge{padding:1px 7px;border-radius:999px;background:var(--green);color:#fff;font-size:.68rem;font-weight:700}.proposal-quality{margin-left:auto;color:var(--ink-soft);font-size:.76rem;font-weight:700;font-variant-numeric:tabular-nums}.proposal-card__summary{color:var(--ink-soft);font-size:.8rem}.proposal-card__tags{display:flex;flex-wrap:wrap;gap:4px}.proposal-tag{padding:1px 7px;border-radius:999px;background:var(--panel-soft);color:var(--green-dark);font-size:.7rem;font-weight:700}.proposal-card__metrics{color:var(--ink-soft);font-size:.74rem;font-variant-numeric:tabular-nums}.zone-cut{display:grid;gap:6px;margin-top:10px}.zone-cut button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border:1px dashed var(--green);border-radius:8px;background:var(--panel);color:var(--green-dark);font-weight:700;cursor:pointer}.small-actions button.is-active{border-color:var(--green);background:var(--panel-soft);color:var(--green-dark)}.obstacle-card--free{cursor:pointer}.obstacle-card--free.is-active{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.start-pin{width:30px;height:38px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.35));pointer-events:none}:root{--nav-height: 46px}.app-shell{display:flex;flex-direction:column;min-height:100svh}.app-nav{position:sticky;top:0;z-index:40;display:flex;align-items:flex-end;gap:18px;height:var(--nav-height);padding:0 16px;overflow-x:auto;background:#173d2a;color:#eef5ef;font-size:13px;font-weight:500}.app-nav__brand{flex:none;align-self:center;font-weight:700;letter-spacing:.02em}.app-nav__tabs{display:flex;align-items:flex-end;gap:2px;height:100%}.app-nav__tab{position:relative;display:inline-flex;flex:none;align-items:center;height:36px;padding:0 16px;border-radius:10px 10px 0 0;background:#ffffff12;color:#cfe3d3;text-decoration:none;white-space:nowrap}.app-nav__tab:hover,.app-nav__tab:focus-visible{background:#ffffff29;color:#fff;outline:none}.app-nav__tab[aria-selected=true]{background:var(--panel);color:#173d2a;font-weight:700}.app-nav__tab[aria-selected=true]:before,.app-nav__tab[aria-selected=true]:after{content:"";position:absolute;bottom:0;width:10px;height:10px;background:transparent}.app-nav__tab[aria-selected=true]:before{left:-10px;border-bottom-right-radius:10px;box-shadow:4px 4px 0 4px var(--panel)}.app-nav__tab[aria-selected=true]:after{right:-10px;border-bottom-left-radius:10px;box-shadow:-4px 4px 0 4px var(--panel)}.app-nav .terrain-picker{align-self:center}.app-shell__content{position:relative;flex:1;min-height:0}.app-shell__view.is-inactive .maplibregl-control-container{display:none}.app-shell__view.is-inactive{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;visibility:hidden;pointer-events:none}.app-shell__loading{padding:24px;color:var(--ink-soft)}.link-button{padding:0;background:none;color:var(--green);cursor:pointer;font-weight:600;text-decoration:underline}.subsection-title{margin:6px 0 0;color:var(--ink-soft);font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.example-actions{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:4px 12px;margin-top:8px;color:var(--ink-soft);font-size:.78rem}.example-actions .example-button{width:auto;margin-top:0}.step-hint{margin:2px 0 0;color:var(--ink-soft);font-size:.85rem}.stats-panel__title{margin:0 0 8px;font-size:1rem}.app-nav__step{display:inline-grid;place-items:center;width:17px;height:17px;margin-right:6px;border-radius:50%;background:#ffffff29;font-size:.7rem;font-weight:700}.app-nav__tab[aria-selected=true] .app-nav__step{background:#173d2a;color:#fff}:root{--brand: #1f7a45;--brand-dark: #17603a;--brand-soft: #e6f2ea;--ink: #16181c;--ink-soft: #5d6470;--panel: #ffffff;--panel-soft: #f2f4f6;--line: #e4e7eb;--green: var(--brand);--green-dark: var(--ink);--shadow: 0 10px 30px rgba(15, 23, 32, .16);--float-radius: 18px;--panel-width: 340px;--nav-height: 0px;color:var(--ink);background:#3f6b3b;font-family:Public Sans,Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}body{overflow:hidden}.app-shell{position:relative;height:100svh;min-height:0;overflow:hidden}.app-shell__content,.app-shell__view{position:absolute;top:0;right:0;bottom:0;left:0}.app-nav{position:absolute;top:16px;left:16px;z-index:60;align-items:center;gap:10px;height:56px;padding:0 8px 0 18px;overflow:visible;border-radius:999px;background:var(--panel);box-shadow:var(--shadow);color:var(--ink);font-size:15px}.app-nav__brand{margin-right:8px;font-size:18px;font-weight:800;letter-spacing:-.01em}.app-nav__tabs{align-items:center;gap:4px}.app-nav__tab{height:40px;padding:0 16px;border-radius:999px;background:transparent;color:var(--ink);font-weight:600}.app-nav__tab:hover,.app-nav__tab:focus-visible{background:var(--panel-soft);color:var(--ink)}.app-nav__tab[aria-selected=true]{background:var(--ink);color:#fff;font-weight:700}.app-nav__tab[aria-selected=true]:before,.app-nav__tab[aria-selected=true]:after{display:none}.app-tools{position:absolute;top:16px;right:16px;z-index:60;display:flex;align-items:center;gap:10px}.app-tools .app-nav__icon{width:56px;height:56px;border-radius:50%;background:var(--panel);box-shadow:var(--shadow);color:var(--ink)}.app-tools .app-nav__icon:hover{background:var(--panel-soft);color:var(--ink)}.help-dialog{width:min(560px,calc(100vw - 32px));max-height:calc(100svh - 64px);overflow:auto;padding:0 20px 16px;border:0;border-radius:var(--float-radius);box-shadow:var(--shadow);color:var(--ink)}.help-dialog::backdrop{background:#0f172059}.help-dialog header{display:flex;align-items:center;justify-content:space-between}.help-dialog h3{margin:16px 0 8px;font-size:.95rem}.help-dialog__note{margin:8px 0 0;color:var(--ink-soft);font-size:.88rem}.help-dialog ol,.help-dialog ul{display:grid;gap:8px;margin:0;padding-left:18px;line-height:1.45}.app-layout{position:absolute;top:0;right:0;bottom:0;left:0;display:block;min-height:0;height:auto}.app-layout>.workspace{position:absolute;top:0;right:0;bottom:0;left:0;min-height:0}.app-layout>.control-panel{position:absolute;top:88px;bottom:auto;left:16px;z-index:20;width:var(--panel-width);max-height:calc(100% - 104px);height:auto;gap:0;padding:0;border:0;border-radius:var(--float-radius);background:var(--panel);box-shadow:var(--shadow)}.control-panel>.panel-section,.control-panel>section{margin:0;padding:18px 20px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}.control-panel>.panel-section:last-child{border-bottom:0}.section-title h2,.panel-section h2{color:var(--ink);font-size:1.05rem;font-weight:800}.helper-text,.drawing-hint{color:var(--ink-soft)}.generate-button{border-radius:10px;background:var(--brand);color:#fff;font-weight:700}.generate-button:hover:not(:disabled){background:var(--brand-dark)}.tool,.small-actions button,.zone-cut button,.reset-boundaries{border-radius:10px}.tool.active{background:var(--brand);color:#fff}.link-button{color:var(--brand)}.segmented{gap:4px;padding:4px;border:0;border-radius:999px;background:var(--panel-soft)}.segmented button{min-height:34px;border:0;border-radius:999px;color:var(--ink);font-size:.82rem;font-weight:600}.segmented button.is-on{background:var(--ink);box-shadow:none;color:#fff;font-weight:700}.preset.is-on{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}input[type=range]{accent-color:var(--brand)}.map-overlay{border:0;border-radius:14px;background:#fffffff5;box-shadow:var(--shadow)}.maplibregl-ctrl-bottom-right{right:6px;bottom:0}.maplibregl-ctrl-bottom-right .maplibregl-ctrl-attrib{margin:0 10px 6px 0}.maplibregl-ctrl-group{overflow:hidden;border-radius:14px!important;box-shadow:var(--shadow)!important}.maplibregl-ctrl-group button{width:44px!important;height:44px!important}.stats-overlay.map-overlay--top-right{top:auto;right:auto;bottom:16px;left:calc(var(--panel-width) + 32px + (100% - var(--panel-width) - 32px - 72px) / 2);width:auto;max-width:calc(100% - var(--panel-width) - 120px);padding:12px 20px;transform:translate(-50%)}.stats-overlay .stats-panel__title{display:none}.stats-overlay .stat-grid{display:flex;flex-wrap:nowrap;align-items:flex-end;gap:6px 22px}.stats-overlay .stat{display:grid;gap:2px;min-height:0;padding:0;background:transparent}.stats-overlay .stat span{color:var(--ink-soft);font-size:.74rem;font-weight:600}.stats-overlay .stat strong{color:var(--ink);font-size:1rem;font-weight:700;white-space:nowrap}.stats-overlay .stat small{color:var(--ink-soft);font-size:.7rem}.render-toggle.map-overlay--bottom-left{right:16px;bottom:206px;left:auto}.segment-legend.map-overlay--bottom-left{right:72px;bottom:206px;left:auto}.map-hint{border-radius:999px;background:#16181ce0;color:#fff}.parcel-panel{display:flex;flex-direction:column;overflow:hidden}.parcel-panel__body{flex:1;min-height:0;overflow:auto}.parcel-panel__body>.panel-section,.plans-setup__body>.panel-section{margin:0;padding:18px 20px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}.parcel-panel__body>.panel-section:last-child{border-bottom:0}.parcel-panel__footer{display:grid;gap:6px;padding:14px 20px 16px;border-top:1px solid var(--line);text-align:center}.parcel-panel__footer .generate-button{width:100%;min-height:48px;margin:0;font-size:1rem}.parcel-panel__footer small{color:var(--ink-soft)}.step-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.step-header h2{flex:1;margin:0;font-size:1.05rem;font-weight:800}.step-header__badge{display:grid;flex:none;place-items:center;width:26px;height:26px;border:2px solid var(--line);border-radius:50%;color:var(--ink-soft);font-size:.8rem;font-weight:800}.step-header__badge.is-done{border-color:var(--brand);background:var(--brand);color:#fff}.step-header__status{color:var(--ink-soft);font-size:.78rem;font-weight:700}.step-header__status.is-done{color:var(--brand)}.step-header__status.is-todo{color:#b45309}.parcel-panel .tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.parcel-panel .tool{justify-content:center;min-height:44px;border:0;border-radius:10px;background:var(--panel-soft);color:var(--ink);font-weight:600}.parcel-panel .tool.active{background:var(--brand);color:#fff}.parcel-panel .tool:disabled{color:#a3a9b1}.parcel-panel .small-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.parcel-panel .small-actions button{justify-content:center;min-height:42px;font-size:.88rem;white-space:nowrap;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-weight:600}.parcel-panel .example-actions{display:block;margin:12px 0 0;text-align:left}.parcel-panel .example-actions .link-button{font-weight:600}.parcel-panel .obstacle-palette{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.parcel-panel .obstacle-card{border:1px dashed #c3c9d0;border-radius:12px;background:#fff;color:var(--ink)}.parcel-panel .obstacle-card svg{color:var(--brand)}.parcel-panel .obstacle-card--free.is-active,.parcel-panel .obstacle-card--start.is-active{border-style:solid;border-color:var(--brand)}.parcel-panel .obstacle-card--start svg{color:#d62d20}.parcel-panel .obstacle-card--start.is-placed{border-style:solid}.parcel-panel .palette-note{margin:8px 0 0;color:var(--ink-soft);font-size:.78rem}.start-pin.is-draggable{pointer-events:auto;cursor:grab}.start-pin.is-draggable:active{cursor:grabbing}.vertex-handle.zone-handle{width:14px;height:14px;border:2px solid var(--ink);background:#fff}.vertex-handle.obstacle-vertex-handle{border-color:#fff;background:var(--brand)}.edge-insert-handle{border-color:var(--ink);background:#fff;color:var(--ink)}.parcel-label-marker{border:0;border-radius:999px;box-shadow:var(--shadow)}.plans-setup{display:flex;flex-direction:column;overflow:hidden}.plans-setup__body{flex:1;min-height:0;overflow:auto}.plans-setup__body>.panel-section{padding:18px 20px;border:0}.plans-setup .calculate-block{display:grid;justify-items:stretch;gap:8px;padding:14px 20px 16px;border-top:1px solid var(--line);border-radius:0 0 var(--float-radius) var(--float-radius);background:#fff}.plans-setup .calculate-block.is-due{background:#fff8e6}.plans-setup .calculate-block .generate-button,.plans-setup .calculate-block .secondary-button{width:100%;min-height:46px;margin:0}.calculate-block__notice{display:flex;gap:8px;margin:0;color:#7a4b00;font-size:.84rem;line-height:1.35}.calculate-block__notice svg{flex:none;margin-top:2px}.plans-setup .calculate-block.is-busy{display:block}.plans-setup .calculate-block__status{display:flex;align-items:center;gap:10px;color:var(--brand)}.plans-setup .calculate-block__status span{display:grid;flex:1;color:var(--ink)}.plans-setup .calculate-block__status small{color:var(--ink-soft)}.plans-list{position:absolute;top:88px;right:16px;left:calc(var(--panel-width) + 32px);z-index:20;max-height:calc(100% - 104px);overflow:auto;border-radius:var(--float-radius);background:var(--panel);box-shadow:var(--shadow)}.plans-list--wide{left:16px}.plans-list__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;padding:16px 20px 8px}.plans-list__head h1{margin:0;font-size:1.25rem;font-weight:800}.plans-list__head p{margin:0;color:var(--ink-soft);font-size:.86rem}.plans-list__empty,.plans-list__hint{margin:0;padding:8px 20px 18px;color:var(--ink-soft)}.plans-list .plans-progress{margin:4px 20px 8px}.plans-table{width:100%;border-collapse:collapse;font-size:.9rem}.plans-table.is-busy{opacity:.45;pointer-events:none}.plans-table th{padding:6px 10px;color:var(--ink-soft);font-size:.74rem;font-weight:600;text-align:left}.plans-table th:first-child,.plans-table td:first-child{padding-left:20px}.plans-table td{padding:10px;border-top:1px solid var(--line);vertical-align:middle}.plans-table .num{text-align:right;white-space:nowrap}.plans-table td.num{color:var(--ink);font-variant-numeric:tabular-nums}.plans-table .secondary{color:var(--ink-soft)!important;font-size:.82rem}.plan-row{cursor:pointer}.plan-row:hover{background:#f7f9fa}.plan-row.is-selected{background:var(--brand-soft);box-shadow:inset 4px 0 0 var(--brand)}.plans-table__section td{padding:14px 20px 4px;color:var(--ink-soft);font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.plan-row__plan{display:flex;align-items:center;gap:14px}.plan-row__thumb{position:relative;flex:none;overflow:hidden;border-radius:10px;background:#f4f6f1}.plan-row__thumb canvas{display:block}.plan-row__zoom{position:absolute;right:3px;bottom:3px;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003}.plan-row__text{display:grid;gap:2px;min-width:0}.plan-row__title{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.plan-row__title strong{font-size:.98rem}.plan-row__kind{color:var(--ink-soft);font-size:.68rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.plan-row__source{color:var(--ink-soft)}.plan-row .proposal-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:999px;background:var(--brand);color:#fff;font-size:.7rem;font-weight:700}.plan-row__summary{color:var(--ink-soft);font-size:.84rem}.plan-row__tags{color:var(--brand);font-size:.78rem;font-weight:600}.plan-row__links{color:var(--ink-soft);font-size:.8rem}.link-button.is-danger{color:#b42318}.plan-row__actions{display:flex;justify-content:flex-end;gap:6px;padding-right:10px}.plan-row__action{min-height:38px;padding:0 12px;gap:6px;font-size:.86rem;white-space:nowrap}.plan-row__action:hover{border-color:var(--brand);color:var(--brand)}.icon-button{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);cursor:pointer}.icon-button:hover{background:var(--panel-soft)}.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);cursor:pointer;font-weight:700}.plan-modal{border:0;border-radius:var(--float-radius)}.adjust-plan{padding:18px 20px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}.adjust-plan__kind{color:var(--ink-soft)}.zone-chip{border-radius:12px}.reset-boundaries{width:100%;min-height:44px;border:1px solid var(--line);background:var(--panel-soft);color:var(--ink);font-weight:700}.render-toggle{border-radius:14px}.render-toggle button.is-active,.render-toggle button.is-on{background:var(--brand);color:#fff}.bench-setting{display:grid;gap:8px;margin-bottom:18px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft)}.bench-setting__toggle{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;cursor:pointer}.bench-setting__toggle span,.bench-setting__toggle small{display:block}.bench-setting__toggle small{margin-top:2px;color:var(--ink-soft)}.bench-setting .link-button{justify-self:start}.bench-list{margin-top:12px;padding:18px 20px 20px;border-top:1px solid var(--line)}.bench-list h2{margin:0;font-size:1rem}.bench-list p{margin:4px 0 12px;color:var(--ink-soft);font-size:.86rem}.bench-list ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;margin:0;padding:0;list-style:none}.bench-list button{display:grid;gap:2px;width:100%;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-weight:600;text-align:left;cursor:pointer}.bench-list button small{color:var(--ink-soft);font-weight:400}.bench-list button:hover,.bench-list button[aria-current]{border-color:var(--brand)}.bench-list button[aria-current]{box-shadow:inset 0 0 0 1px var(--brand)}.sim-plan small{display:block;color:var(--ink-soft);font-size:.78rem}.sim-plan strong{font-size:1.05rem}.app-nav.breadcrumb{display:flex;gap:4px;padding-right:10px}.breadcrumb .app-nav__brand{padding:0 6px 0 0;border:0;background:none;color:var(--ink);cursor:pointer}.breadcrumb__level{position:relative;display:flex;align-items:center;height:40px;border-radius:999px;background:var(--panel-soft)}.breadcrumb__crumb,.breadcrumb__caret{height:40px;border:0;background:none;color:var(--ink);cursor:pointer;font:inherit;font-weight:700}.breadcrumb__crumb{max-width:260px;padding:0 4px 0 16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breadcrumb__caret{display:grid;place-items:center;width:34px;padding:0 8px 0 2px;color:var(--ink-soft)}.breadcrumb__crumb:hover,.breadcrumb__caret:hover{color:var(--brand)}.breadcrumb__rename{width:200px;height:32px;margin:0 4px 0 8px;padding:0 10px;border:1px solid var(--brand);border-radius:999px;font:inherit}.breadcrumb__sep{color:var(--ink-soft)}.breadcrumb__current{max-width:260px;padding:0 10px 0 4px;overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.breadcrumb__menu{position:absolute;top:calc(100% + 8px);left:0;z-index:70;display:grid;min-width:240px;padding:6px;border-radius:14px;background:var(--panel);box-shadow:var(--shadow)}.breadcrumb__menu button{display:flex;align-items:center;gap:10px;padding:10px 12px;border:0;border-radius:9px;background:none;color:var(--ink);cursor:pointer;font:inherit;font-size:.92rem;text-align:left}.breadcrumb__menu button:hover{background:var(--panel-soft)}.breadcrumb__menu button svg{color:var(--ink-soft)}.breadcrumb__menu button.is-danger,.breadcrumb__menu button.is-danger svg{color:#b42318}.parcel-panel__machine{padding-top:14px}.plans-setup__body{display:grid;align-content:start;gap:10px;padding:16px}.plans-banner{display:flex;align-items:center;gap:10px;margin:0 20px 12px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);font-size:.9rem}.plans-banner>span{flex:1}.plans-banner.is-due{border-color:#e7c76a;background:#fff8e1}.plans-banner.is-due svg:first-child{color:#a26b00}.plans-banner.is-error{border-color:#f0b4ad;background:#fff1ef;color:#8a1c12}.plans-banner .generate-button,.plans-banner .secondary-button{display:inline-flex;align-items:center;gap:6px;width:auto;min-height:36px;margin:0;padding:0 14px;font-size:.88rem}.plans-banner.is-empty{padding:16px}.plan-row__star{color:var(--ink-soft)}.plan-row__star.is-on{border-color:#e7c76a;background:#fff8e1;color:#d99a00}.plan-row__star:disabled{opacity:.4;cursor:default}.plan-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:14px 16px 4px;padding:4px;border-radius:999px;background:var(--panel-soft)}.plan-tabs button{height:36px;border:0;border-radius:999px;background:none;color:var(--ink);cursor:pointer;font:inherit;font-weight:600}.plan-tabs button.is-on{background:var(--ink);color:#fff;font-weight:700}.plan-infos{display:grid;gap:10px}.plan-infos .stat-grid{grid-template-columns:1fr 1fr}.plan-infos__actions{display:flex;gap:8px}.plan-infos__actions .secondary-button{min-height:36px;padding:0 12px;gap:6px;font-size:.86rem}.player-bar{top:auto;right:auto;bottom:44px;left:calc(var(--panel-width) + 32px + (100% - var(--panel-width) - 32px - 72px) / 2);display:flex;align-items:center;gap:14px;width:min(760px,calc(100% - var(--panel-width) - 150px));padding:10px 16px;transform:translate(-50%)}.player-bar__play{display:grid;flex:none;place-items:center;width:42px;height:42px;border:0;border-radius:50%;background:var(--brand);color:#fff;cursor:pointer}.player-bar__track{display:grid;flex:1;gap:2px;min-width:0}.player-bar__figures{overflow:hidden;color:var(--ink-soft);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.player-bar__figures b{color:var(--ink)}.player-bar__speeds{flex:none;width:200px}.player-bar__speeds button{padding:5px 0;font-size:.78rem}.player-bar__stop{flex:none;font-size:.82rem}.app-layout>.control-panel.panel-stack{display:flex;flex-direction:column;gap:12px;overflow:visible;background:transparent;box-shadow:none}.panel-stack>.panel-block{flex:none;overflow:hidden;border-radius:var(--float-radius);background:var(--panel);box-shadow:var(--shadow)}.panel-stack>.panel-block:first-child{flex:0 1 auto;min-height:0;overflow:auto}.panel-stack>.parcel-panel__footer{border-top:0}.panel-block--card{padding:0}.panel-block--card>.summary-card,.panel-stack>.summary-card{padding:16px;border:0;border-radius:var(--float-radius);background:var(--panel);box-shadow:var(--shadow)}.panel-stack>.summary-card:hover{box-shadow:var(--shadow),inset 0 0 0 1px var(--brand)}.panel-block--card>.summary-card{box-shadow:none}.plans-table{width:calc(100% - 24px);margin:0 12px 8px;border-collapse:separate;border-spacing:0 8px}.plans-table th:first-child,.plans-table td:first-child{padding-left:14px}.plans-table td{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.plans-table td:first-child{border-left:1px solid var(--line);border-radius:12px 0 0 12px}.plans-table td:last-child{border-right:1px solid var(--line);border-radius:0 12px 12px 0}.plan-row:hover td{background:#f7f9fa}.plan-row.is-selected{background:transparent;box-shadow:none}.plan-row.is-selected td{border-color:var(--brand);background:var(--brand-soft)}.plans-table__section td,.plans-table__section td:first-child,.plans-table__section td:last-child{border:0;border-radius:0;background:transparent}.breadcrumb__trail{display:flex;align-items:center;gap:2px}.breadcrumb__link{height:40px;padding:0 10px 0 4px;border:0;background:none;color:var(--ink);cursor:pointer;font:inherit;font-weight:600}.breadcrumb__link:hover{color:var(--brand)}.map-shell .map-status{left:50%;bottom:36px;padding:6px 12px;border-radius:999px;background:#16181cd9;box-shadow:none;color:#fff;font-size:.78rem;font-weight:600;transform:translate(-50%)}.plan-infos__adjust{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:46px;margin-top:4px}.plan-mode{display:grid;gap:6px;padding:16px 20px 12px;border-bottom:1px solid var(--line);background:var(--brand-soft)}.plan-mode h2{margin:0;font-size:1.05rem}.plan-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:16px 16px 12px 20px;border-bottom:1px solid var(--line)}.plan-head.is-editing{background:var(--brand-soft)}.plan-head__title{display:grid;gap:2px;min-width:0}.plan-head__title small{color:var(--ink-soft);font-size:.7rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.plan-head__title h2{display:flex;align-items:center;gap:6px;margin:0;font-size:1.1rem}.plan-head__actions{display:flex;flex:none;align-items:center;gap:6px}.plan-head__actions .secondary-button,.plan-head__actions .generate-button{display:inline-flex;align-items:center;gap:6px;width:auto;min-height:38px;margin:0;padding:0 12px;font-size:.88rem}.maplibregl-ctrl-bottom-right .maplibregl-ctrl-group{margin-bottom:16px!important}
