:root{--paper:#f3f5f4;--panel:#fff;--ink:#1c2733;--muted:#5a6875;--line:#d7dde2;--grid:#e2e7ea;--soft:#eef2f5;--ok:#2b7a4b;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--control-h:30px;--control-font:15px;--radius:8px;--side-w:clamp(360px, 32vw, 460px);--map-h:clamp(200px, 40svh, 440px);--map-peek-h:clamp(260px, 56svh, 600px);--ease:.22s ease;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#141a20;--panel:#1b2229;--ink:#e4e9ed;--muted:#97a4af;--line:#2e3841;--grid:#1f2830;--soft:#242d36;--ok:#5cc08a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--paper:#141a20;--panel:#1b2229;--ink:#e4e9ed;--muted:#97a4af;--line:#2e3841;--grid:#1f2830;--soft:#242d36;--ok:#5cc08a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=easter]{--paper:#1a0b2e;--panel:#240f42;--ink:#fff4fb;--muted:#c9a8f0;--line:#6a2fb8;--grid:#301559;--soft:#38196b;--ok:#39ffb0;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=easter] header.top{background:linear-gradient(90deg,#ff2e93 0%,#ff9a1f 25%,#ffe600 45%,#2ef2a0 70%,#2ec4ff 100%);border-bottom-color:#0000}:root[data-theme=easter] header.top .btn{color:var(--ink)}:root[data-theme=easter] header.top .brand,:root[data-theme=easter] .top input.proj{color:#1a0b2e}:root[data-theme=easter] .btn:hover{background:var(--soft);border-color:#ff2e93;box-shadow:0 0 10px #ff2e9399}:root[data-theme=easter] :focus-visible{outline-color:#ffe600}:root[data-theme=easter] .plan:after{content:"";pointer-events:none;opacity:.18;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cg stroke-width='3' stroke='%23FFF4FB'%3E%3Cg transform='translate(40 45) rotate(-15)'%3E%3Cellipse rx='17' ry='23' fill='%23FF2E93'/%3E%3Cpath d='M-16 -4Q0 6 16 -4M-17 8Q0 18 17 8' fill='none' stroke='%23FFE600'/%3E%3C/g%3E%3Cg transform='translate(118 38) rotate(20)'%3E%3Cellipse rx='15' ry='21' fill='%232EF2A0'/%3E%3Ccircle cx='-5' cy='-6' r='3' fill='%23FF2E93' stroke='none'/%3E%3Ccircle cx='6' cy='4' r='3' fill='%23FF2E93' stroke='none'/%3E%3Ccircle cx='-4' cy='11' r='3' fill='%23FF2E93' stroke='none'/%3E%3C/g%3E%3Cg transform='translate(80 118) rotate(8)'%3E%3Cellipse rx='18' ry='24' fill='%232EC4FF'/%3E%3Cpath d='M-17 0L-9 -8 0 0 9 -8 17 0M-16 12L-8 4 0 12 8 4 16 12' fill='none' stroke='%23FFE600'/%3E%3C/g%3E%3Cg transform='translate(18 130) rotate(25)'%3E%3Cellipse rx='13' ry='18' fill='%23FF9A1F'/%3E%3C/g%3E%3Cg transform='translate(140 122) rotate(-25)'%3E%3Cellipse rx='13' ry='18' fill='%23B070FF'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") 0 0/160px 160px;position:absolute;top:0;bottom:0;left:0;right:0}:root[data-theme=military]{--paper:#1e2318;--panel:#262c1e;--ink:#ede8cf;--muted:#b3ad86;--line:#4c5638;--grid:#2c3323;--soft:#343c28;--ok:#a3c653;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--camo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Crect width='200' height='200' fill='%234B5320'/%3E%3Cg id='c'%3E%3Cpath fill='%236B5A3A' d='M-10 20C20 0 55 15 70 35S60 80 30 75-20 50-10 20ZM110 -10C140 -5 170 10 165 40S120 60 100 40 90 -15 110 -10ZM120 120C150 105 195 115 205 145S180 195 150 185 95 140 120 120Z'/%3E%3Cpath fill='%232E3A1E' d='M60 60C90 50 120 70 125 95S100 140 75 130 35 75 60 60ZM150 50C175 45 200 60 210 80S190 110 170 100 130 60 150 50ZM-5 140C20 130 45 150 40 175S10 210-10 195-25 150-5 140Z'/%3E%3Cpath fill='%238A8655' d='M20 100C35 92 55 100 52 115S30 130 18 122 10 106 20 100ZM140 80C152 74 168 82 165 94S148 106 140 100 132 85 140 80ZM70 165C85 158 105 165 102 180S80 195 70 188 60 170 70 165ZM95 10C105 5 118 12 115 22S100 32 94 26 88 14 95 10Z'/%3E%3Cpath fill='%23191F12' d='M35 40C45 36 52 44 48 52S35 58 31 52 28 43 35 40ZM100 95C110 92 116 100 112 108S98 112 95 106 93 98 100 95ZM175 150C184 147 190 155 186 162S173 166 170 160 168 152 175 150ZM130 170C138 168 143 175 139 181S128 184 126 178 124 172 130 170Z'/%3E%3C/g%3E%3Cuse href='%23c' x='-200' y='0'/%3E%3Cuse href='%23c' x='200' y='0'/%3E%3Cuse href='%23c' x='0' y='-200'/%3E%3Cuse href='%23c' x='0' y='200'/%3E%3Cuse href='%23c' x='-200' y='-200'/%3E%3Cuse href='%23c' x='200' y='-200'/%3E%3Cuse href='%23c' x='-200' y='200'/%3E%3Cuse href='%23c' x='200' y='200'/%3E%3C/svg%3E") 0 0 / 200px 200px}:root[data-theme=military] header.top{background:var(--camo);border-bottom-color:#191f12}:root[data-theme=military] header.top .brand,:root[data-theme=military] .top input.proj,:root[data-theme=military] header.top .btn{color:#f4efd6;text-shadow:0 1px 2px #000}:root[data-theme=military] header.top .btn{background:#191f128c}:root[data-theme=military] .btn:hover{background:var(--soft);border-color:#a3c653}:root[data-theme=military] :focus-visible{outline-color:#a3c653}:root[data-theme=military] .plan:after{content:"";pointer-events:none;opacity:.14;background:var(--camo);position:absolute;top:0;bottom:0;left:0;right:0}:root[data-theme=yoann]{--paper:#0f1b2a;--panel:#142235;--ink:#e8f0f8;--muted:#9db2c8;--line:#2b4260;--grid:#1a2b40;--soft:#1d3049;--ok:#5cc08a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=yoann] header.top{background:linear-gradient(90deg,#0a3d73,#0a66c2);border-bottom-color:#07284b}:root[data-theme=yoann] header.top .brand,:root[data-theme=yoann] .top input.proj,:root[data-theme=yoann] header.top .btn{color:#fff}:root[data-theme=yoann] header.top .btn{background:#07284b8c}:root[data-theme=yoann] .btn:hover{background:var(--soft);border-color:#70b5f9}:root[data-theme=yoann] :focus-visible{outline-color:#70b5f9}:root[data-theme=yoann] .plan:after{content:"";pointer-events:none;opacity:.22;background:url(../themes/yoann-gonthier.jpg) 50%/cover no-repeat;position:absolute;top:0;bottom:0;left:0;right:0}#snow{pointer-events:none;z-index:9999;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}#snow i{opacity:.85;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-50 -50 100 100'%3E%3Cdefs%3E%3Cpath id='a' d='M0 0V-44M0 -30L-10 -40M0 -30L10 -40M0 -18L-7 -25M0 -18L7 -25'/%3E%3C/defs%3E%3Cg fill='none' stroke='%236FA8E0' stroke-width='5' stroke-linecap='round'%3E%3Cuse href='%23a'/%3E%3Cuse href='%23a' transform='rotate(60)'/%3E%3Cuse href='%23a' transform='rotate(120)'/%3E%3Cuse href='%23a' transform='rotate(180)'/%3E%3Cuse href='%23a' transform='rotate(240)'/%3E%3Cuse href='%23a' transform='rotate(300)'/%3E%3C/g%3E%3C/svg%3E") 50%/contain no-repeat;animation:linear infinite snow-fall,ease-in-out infinite alternate snow-sway;position:absolute;top:-24px}@keyframes snow-fall{to{top:100%}}@keyframes snow-sway{0%{margin-left:-14px}to{margin-left:14px}}@media (prefers-reduced-motion:reduce){#snow{display:none}}:root[data-theme=hell]{--paper:#1a0604;--panel:#240a06;--ink:#ffe9d6;--muted:#e0a47e;--line:#6b1e10;--grid:#2e0d07;--soft:#3a120a;--ok:#ffb000;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=hell] header.top{background:linear-gradient(#3a0500 0%,#8b0f00 25%,#ff4500 65%,#ffb000 100%) 0 0/100% 200%;border-bottom-color:#ff4500;animation:1.6s ease-in-out infinite alternate hell-header;box-shadow:0 2px 18px #ff4500b3}:root[data-theme=hell] header.top .brand,:root[data-theme=hell] .top input.proj,:root[data-theme=hell] header.top .btn{color:#fff4e0;text-shadow:0 0 6px #ff4500,0 1px 2px #000}:root[data-theme=hell] header.top .btn{background:#3a05008c}:root[data-theme=hell] .btn,:root[data-theme=hell] .ptools button{border-color:#ff4500;animation:.9s ease-in-out infinite alternate hell-burn}:root[data-theme=hell] .btn.primary{color:#1a0604;background:linear-gradient(#b71c00,#ff4500 40%,#ffb000);border-color:#ffb000}:root[data-theme=hell] .btn:hover{background:var(--soft);border-color:#ffb000}:root[data-theme=hell] .btn.primary:hover{background:linear-gradient(#ff4500,#ffb000 40%,#ffe36b)}:root[data-theme=hell] :focus-visible{outline-color:#ffb000}@keyframes hell-header{to{background-position:0 100%}}@keyframes hell-burn{0%{box-shadow:0 0 4px #ff4500b3,inset 0 -4px 8px -4px #ffb00099}to{box-shadow:0 -3px 12px #ff7800f2,inset 0 -8px 10px -4px #ffb000e6}}.hell-fire{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.hell-fire:before{content:"";background:linear-gradient(#0000,#8b0f0033 50%,#ff450073);height:45%;position:absolute;top:auto;bottom:0;left:0;right:0}.hell-fire i{transform-origin:50% 100%;mix-blend-mode:screen;filter:blur(1.5px);opacity:.85;background:radial-gradient(50% 70% at 50% 100%,#ffe36b 0%,#ffb000 28%,#ff4500 55%,#8b0f0099 70%,#0000 76%);border-radius:50% 50% 35% 35%/65% 65% 35% 35%;animation:ease-in-out infinite alternate hell-flame;position:absolute;bottom:-12px}.hell-fire b{background:#ffb000;border-radius:50%;animation:linear infinite hell-ember-rise,ease-in-out infinite alternate hell-ember-sway;position:absolute;bottom:0;box-shadow:0 0 6px 2px #ff4500}@keyframes hell-flame{0%{opacity:.7;transform:scaleY(.85)skew(-4deg)}to{opacity:.95;transform:scale(.9,1.15)skew(5deg)}}@keyframes hell-ember-rise{0%{opacity:1;bottom:0}to{opacity:0;bottom:100%}}@keyframes hell-ember-sway{0%{margin-left:-10px}to{margin-left:10px}}@media (prefers-reduced-motion:reduce){:root[data-theme=hell] header.top,:root[data-theme=hell] .btn,:root[data-theme=hell] .ptools button,.hell-fire i{animation:none}.hell-fire b{display:none}}@media (pointer:coarse){:root{--control-h:36px;--control-font:16px}}*,:before,:after{box-sizing:border-box}:root{padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}html,body{height:100%;margin:0}body{background:var(--panel);color:var(--ink);font:14.5px/1.45 var(--font);-webkit-text-size-adjust:100%;flex-direction:column;display:flex;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}td,dd,.readout,.tnum{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--pf);outline-offset:2px}[hidden]{display:none!important}header.top{border-bottom:1px solid var(--line);align-items:center;gap:8px;min-height:48px;padding:6px 12px;display:flex}.beta-badge{background:var(--new);color:#fff;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.home-head .beta-badge{vertical-align:middle;margin-left:6px}.brand{letter-spacing:-.01em;align-items:center;gap:8px;font-size:17px;font-weight:650;display:flex}.top input.proj{min-width:60px;max-width:300px;height:32px;color:var(--muted);font-size:var(--control-font);background:0 0;border:1px solid #0000;border-radius:7px;flex:1;padding:0 8px}.top input.proj:hover,.top input.proj:focus{border-color:var(--line);color:var(--ink);outline:none}.hact{gap:6px;margin-left:auto;display:flex}.btn{height:var(--control-h);border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 12px;line-height:1.2;display:inline-flex}.btn:hover{background:var(--soft)}.btn.primary{background:var(--ink);color:var(--panel);border-color:var(--ink);font-weight:600}.btn.primary:hover{opacity:.9;background:var(--ink)}.btn.danger{color:var(--new)}.btn.small{height:calc(var(--control-h) - 4px);padding:0 10px;font-size:13.5px}.linkbtn{color:var(--pf);cursor:pointer;background:0 0;border:0;padding:6px 0;font-size:14px}.app{grid-template-columns:var(--side-w) 0 1fr;flex:1;grid-template-rows:1fr;min-height:0;display:grid}.side{border-right:1px solid var(--line);flex-direction:column;grid-area:1/1;min-width:0;min-height:0;display:flex}.splitter{z-index:5;touch-action:none;outline:none;grid-area:1/2;position:relative}.plan{background:var(--paper);grid-area:1/3;min-width:0;min-height:0;position:relative;overflow:hidden}@media (prefers-reduced-motion:no-preference){.app{transition:grid-template-columns var(--ease), grid-template-rows var(--ease)}}body.resizing .app{transition:none}body.map-folded .splitter,body.map-peek .splitter{display:none}.splitter:before{content:"";top:0;bottom:0;cursor:col-resize;width:10px;position:absolute;left:-3px}.splitter:after{content:"";background:var(--line);pointer-events:none;border-radius:2px;width:4px;height:40px;margin-top:-20px;position:absolute;top:50%;left:-2px}.splitter:hover:after,body.resizing .splitter:after{background:var(--pf)}.splitter:focus-visible:after{background:var(--pf)}body.resizing,body.resizing *{-webkit-user-select:none;user-select:none;cursor:col-resize!important}@media (pointer:coarse){.splitter:before{width:22px;left:-11px}.splitter:after{width:6px;left:-3px}}@media (min-width:900px){body.map-folded:not(.map-peek) .app{grid-template-columns:1fr 0 0}body.map-folded:not(.map-peek) .side{border-right:0}}@media (max-width:899.98px){.app{grid-template-columns:1fr;grid-template-rows:var(--map-h) 0 1fr}.plan{border-bottom:1px solid var(--line);grid-area:1/1}.splitter{grid-area:2/1}.side{border-right:0;grid-area:3/1}body.map-folded .app{grid-template-rows:0 0 1fr}body.map-folded .plan{border-bottom:0}body.map-peek .app{grid-template-rows:var(--map-peek-h) 0 1fr}.splitter:before{top:auto;bottom:auto;left:0;right:0;cursor:row-resize;width:auto;height:12px;top:-6px;left:0}.splitter:after{width:40px;height:4px;margin:0 0 0 -20px;top:-2px;left:50%}body.resizing,body.resizing *{cursor:row-resize!important}}@media (max-width:899.98px) and (pointer:coarse){.splitter:before{width:auto;height:22px;top:-11px;left:0}.splitter:after{width:40px;height:6px;top:-3px;left:50%}}@media (orientation:landscape) and (max-height:540px){:root{--side-w:clamp(280px, 45vw, 420px)}.app,body.map-folded .app,body.map-peek .app{grid-template-columns:var(--side-w) 0 1fr;grid-template-rows:1fr}body.map-folded:not(.map-peek) .app{grid-template-columns:1fr 0 0}.side{border-right:1px solid var(--line);grid-area:1/1}.splitter{grid-area:1/2}.plan,body.map-folded .plan{border-bottom:0;grid-area:1/3}body.map-folded:not(.map-peek) .side{border-right:0}.splitter:before{top:0;bottom:0;cursor:col-resize;width:10px;height:auto;top:0;left:-3px}.splitter:after{width:4px;height:40px;margin:-20px 0 0;top:50%;left:-2px}body.resizing,body.resizing *{cursor:col-resize!important}header.top{min-height:40px;padding-block-start:3px;padding-block-end:3px}.tabs button[role=tab]{padding:7px 6px 6px}.pane{padding-top:8px;padding-bottom:24px}}@media (orientation:landscape) and (max-height:540px) and (pointer:coarse){.splitter:before{width:22px;left:-11px}.splitter:after{width:6px;left:-3px}}@media (max-height:300px){header.top{display:none}}@media (max-width:599.98px){.hact .lbl{display:none}.hact .btn{padding:0 9px}.brand{gap:0;font-size:0}header.top{padding:4px 10px}}.tabs{border-bottom:1px solid var(--line);background:var(--panel);align-items:stretch;gap:2px;padding-inline-start:max(8px,50% - 388px);padding-inline-end:max(8px,50% - 388px);display:flex}.tabs button[role=tab]{cursor:pointer;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:11px 6px 10px;font-weight:550}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink)}.tabs .cnt{margin-left:3px;font-size:12.5px;font-weight:400}.maptog{border:1px solid var(--line);background:var(--panel);height:30px;color:var(--muted);cursor:pointer;border-radius:999px;flex:none;align-self:center;align-items:center;gap:5px;margin-left:6px;padding:0 10px;font-size:13px;font-weight:550;display:inline-flex}.maptog:hover{background:var(--soft)}.maptog[aria-pressed=true]{background:var(--soft);color:var(--ink)}.pane{-webkit-overflow-scrolling:touch;flex:1;padding:12px 14px 48px;padding-inline-start:max(14px,50% - 380px);padding-inline-end:max(14px,50% - 380px);overflow:auto;container:pane/inline-size}#cv{touch-action:none;cursor:crosshair;width:100%;height:100%;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.ptools{flex-direction:column;gap:6px;display:flex;position:absolute;top:10px;left:10px}.ptools button{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:9px;place-items:center;width:36px;height:36px;display:grid;box-shadow:0 1px 3px #00000014}.ptools button[aria-pressed=false]{color:var(--muted)}.ptools button:disabled{color:var(--muted);opacity:.45;cursor:default;box-shadow:none}.ptools .lbltog{letter-spacing:-.02em;font-size:14px;font-weight:700}.north{pointer-events:none;color:var(--ink);position:absolute;top:10px;right:12px}.scale{pointer-events:none;font-size:12px;position:absolute;bottom:10px;left:12px}.scale .bar{border:1.5px solid var(--ink);border-top:0;height:6px;margin-bottom:2px}.readout{color:var(--muted);background:var(--paper);pointer-events:none;border-radius:5px;padding:2px 6px;font-size:12px;position:absolute;bottom:8px;right:10px}.hint{background:var(--pf);color:#fff;text-align:center;pointer-events:none;border-radius:999px;max-width:calc(100% - 120px);padding:7px 14px;font-size:13px;position:absolute;top:10px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0000002e}.pinfo{background:var(--panel);border:1px solid var(--line);border-radius:12px;max-width:340px;margin:0 auto;padding:10px 12px;position:absolute;bottom:34px;left:58px;right:58px;box-shadow:0 6px 20px #00000024}.pinfo .h{align-items:center;gap:8px;display:flex}.pinfo .h b{font-size:16px}.pinfo .h small{color:var(--muted)}.pinfo .c{font-variant-numeric:tabular-nums;margin:6px 0 8px;font-size:14px}.x{cursor:pointer;color:var(--muted);background:0 0;border:0;margin-left:auto;padding:2px 6px;font-size:20px;line-height:1}.empty-plan{color:var(--muted);pointer-events:none;text-align:center;place-items:center;padding:20px;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}@media (max-width:599.98px){.ptools{gap:5px;top:8px;left:8px}.ptools button{width:34px;height:34px}.pinfo{bottom:28px;left:52px;right:10px}.hint{max-width:calc(100% - 100px);top:8px}}.f{flex-direction:column;gap:1px;min-width:0;margin-bottom:7px;display:flex}.f>span:first-child{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}input:not([type=checkbox]),select{width:100%;height:var(--control-h);font-size:var(--control-font);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);min-width:0;padding:0 8px}textarea{width:100%;font-size:var(--control-font);resize:vertical;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);min-width:0;padding:4px 8px}input:focus,select:focus,textarea:focus{border-color:var(--pf);outline:none}input:not([type=checkbox]):disabled{background:var(--soft);cursor:not-allowed}.f:has(input:disabled)>span:first-child{opacity:.5}.pti{gap:4px;display:flex}.pti input,.pti textarea{flex:1}.pick{width:var(--control-h);min-height:var(--control-h);border:1px solid var(--line);border-radius:var(--radius);background:var(--soft);cursor:pointer;color:var(--muted);flex:none;place-items:center;display:grid}.pick:hover{color:var(--pf)}.armed{box-shadow:0 0 0 3px var(--pf-soft);border-color:var(--pf)!important}.armed+.pick{background:var(--pf);color:#fff;border-color:var(--pf)}.g2{grid-template-columns:1fr 1fr;gap:0 10px;display:grid}.chk{cursor:pointer;align-items:center;gap:8px;margin:2px 0 8px;font-size:14px;display:flex}.chk input{width:18px;height:18px;accent-color:var(--ink)}fieldset{border:0;border-top:1px solid var(--line);margin:4px 0;padding:8px 0 0}legend{padding-right:8px;font-size:13.5px;font-weight:600}details.opts{margin:0 0 8px}details.opts summary{cursor:pointer;color:var(--muted);padding:2px 0 6px;font-size:13.5px}@container pane (width>520px){.ot.grouped,.ot.grouped thead,.ot.grouped tbody{display:block}.ot.grouped tr{grid-template-columns:var(--tracks);align-items:center;display:grid}.ot.grouped th.grp{display:none}.ot.grouped td.grp{grid-area:2/1/auto/-1;padding:0 2px 8px}.ot.grouped td.del{grid-area:1/-2}.ot.grouped tbody tr{border-top:1px solid var(--line);padding-top:10px}.ot.grouped td.grp{padding-bottom:10px}}details.cell-opts summary{cursor:pointer;color:var(--muted);white-space:nowrap;font-size:12.5px}details.cell-opts.filled>summary:after{content:" ●";color:var(--ink)}details.cell-opts .note.small{max-width:26em;margin:2px 0 4px;font-size:11px}details.cell-opts .g2{gap:4px 8px;max-width:28em}details.cell-opts .chk{align-items:center;gap:6px;margin-top:6px;font-size:13px;display:flex}.ot details.cell-opts input[type=checkbox]{flex:none;margin:0;width:auto!important}.note{color:var(--muted);margin:4px 0 8px;font-size:12.5px}.actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.obs{margin:2px 0 8px}.obs .lbl{color:var(--muted);margin-bottom:3px;font-size:12.5px}.tw{-webkit-overflow-scrolling:touch;overflow-x:auto}table.ot{border-collapse:collapse}.ot th{color:var(--muted);text-align:left;white-space:nowrap;padding:0 3px 2px;font-size:12px;font-weight:500}.ot td{padding:2px}.ot input{padding:0 6px}.ot .x{font-size:18px}@container pane (width<=520px){.ot,.ot tbody{width:100%;display:block}.ot thead{display:none}.ot tr{border:1px solid var(--line);background:var(--soft);border-radius:10px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 6px;margin-bottom:6px;padding:5px 30px 7px 8px;display:grid;position:relative}.ot td{min-width:0;padding:0}.ot td:before{content:attr(data-label);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;display:block;overflow:hidden}.ot td.pt{grid-column:span 2}.ot td.del{position:absolute;top:2px;right:0}.ot td.del:before{content:none}.ot td.grp{grid-column:1/-1;padding-top:2px}.ot td.grp:before{content:none}.ot input{width:100%!important}.g2{gap:0 8px}}.gh{color:var(--muted);text-transform:none;margin:16px 0 2px;font-size:12.5px;font-weight:600}.gh:first-child{margin-top:2px}.clist button{text-align:left;border:0;border-bottom:1px solid var(--line);cursor:pointer;background:0 0;align-items:center;gap:10px;width:100%;padding:9px 4px;display:flex}.clist button:hover{background:var(--soft)}.clist b{font-weight:600;display:block}.clist small{color:var(--muted);font-size:12.5px;display:block}.clist .chev{color:var(--muted);flex:none;margin-left:auto}.clist .cicon{border-radius:var(--radius);background:var(--soft);width:36px;height:36px;color:var(--ink);flex:none;padding:4px}.clist button:hover .cicon{background:var(--panel)}.cicon .res{color:var(--new)}@container pane (width>=560px){.figures.two .figure-items{grid-template-columns:1fr 1fr}}@container pane (width>=640px){.clist{grid-template-columns:1fr 1fr;column-gap:20px;display:grid}}.chead{align-items:center;gap:6px;margin:-4px 0 8px;display:flex}.back{cursor:pointer;color:var(--pf);background:0 0;border:0;align-items:center;padding:6px 6px 6px 0;font-size:14.5px;display:flex}#calcTitle{letter-spacing:-.01em;margin:0 0 10px;font-size:18px}.out{margin-top:14px}.out:empty{display:none}.out .rbox{border-top:2px solid var(--ink);padding-top:8px}.out .sub{color:var(--muted);margin:10px 0 2px;font-size:12.5px;font-weight:600}.out .figures{margin:10px 0 8px}.figures .figure-items{gap:6px 14px;display:grid}.figures .sub{text-align:center;margin:0}.calc .colhead{color:var(--muted);margin:2px 0 -2px;font-size:12.5px;font-weight:600}dl.kv{grid-template-columns:auto 1fr;gap:2px 14px;margin:0 0 8px;display:grid}dl.kv dt{color:var(--muted);font-size:13.5px}dl.kv dd{text-align:right;margin:0;font-weight:600}table.res{border-collapse:collapse;width:100%;margin:4px 0 8px;font-size:13px}.res th{color:var(--muted);text-align:right;border-bottom:1px solid var(--line);white-space:nowrap;padding:3px 5px;font-size:11.5px;font-weight:500}.res td{text-align:right;border-bottom:1px solid var(--line);white-space:nowrap;padding:3px 5px}.res th:first-child,.res td:first-child{text-align:left}.res .flag{color:var(--new);font-weight:700}.warn{border-left:3px solid var(--new);background:var(--soft);border-radius:0 6px 6px 0;margin:8px 0;padding:6px 10px;font-size:14px}.err{color:var(--new);border-left:3px solid var(--new);background:var(--soft);border-radius:0 6px 6px 0;margin:0;padding:6px 10px}.okmsg{color:var(--ok);margin:6px 0;font-size:13.5px}.store{border:1px solid var(--line);background:var(--soft);border-radius:12px;margin-top:12px;padding:10px 12px}.store-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 10px;margin-bottom:6px;display:flex}.store-head h3{margin:0;font-size:14.5px}.store-type{color:var(--muted);align-items:center;gap:6px;font-size:12.5px;display:flex}.store-type select{width:auto;color:var(--ink)}.store-table{gap:4px;display:grid}.store-row{grid-template-columns:minmax(6em,8em) repeat(2,minmax(0,1fr)) minmax(4.5em,auto);align-items:center;gap:4px 12px;display:grid}.store.with-height .store-row{grid-template-columns:minmax(6em,8em) repeat(3,minmax(0,1fr)) minmax(4.5em,auto)}.store-header{color:var(--muted);font-size:11.5px}.store-header span{text-align:right}.store-header span:first-child{text-align:left}.store-value{text-align:right;white-space:nowrap;font-size:15px;font-weight:600}.store-row .btn,.store-done{justify-self:end}.store-num.invalid{border-color:var(--new);box-shadow:0 0 0 3px var(--new-soft)}.store-row.stored .store-num{background:0 0;border-color:#0000;padding-left:2px;font-weight:600}.store-done{color:var(--ok);white-space:nowrap;font-size:13.5px;font-weight:600}.store-actions{flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:8px;display:flex}.store-msg{color:var(--ok);margin:0;font-size:13.5px}.store-msg:empty{display:none}.store-msg.err-text{color:var(--new)}@container pane (width<=460px){.store-row,.store.with-height .store-row{border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 10px;padding:4px 0 6px}.store-row.store-header{display:none}.store-num{grid-area:1/1/auto/3}.store-row>:last-child{grid-area:1/3}.store-value{text-align:left;grid-row:2;font-size:14.5px}.store-value:empty{display:none}.store-value:before{content:attr(data-label) " ";color:var(--muted);font-size:12px;font-weight:400}}.show-map{display:none}body.map-folded:not(.map-peek) .show-map{display:inline-flex}.bar-actions{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.search{margin-bottom:6px}table.plist{border-collapse:collapse;width:100%;font-size:13.5px}.plist th{color:var(--muted);text-align:right;border-bottom:1px solid var(--line);background:var(--panel);padding:4px 6px;font-size:11.5px;font-weight:500;position:sticky;top:-12px}.plist td{text-align:right;border-bottom:1px solid var(--line);white-space:nowrap;padding:5px 6px}.plist td:nth-child(-n+3),.plist th:nth-child(-n+3){text-align:left}.plist td:nth-child(-n+2){width:20px;padding-right:0}.plist tbody tr{cursor:pointer}.plist tbody tr:hover{background:var(--soft)}.plist tr.sel{background:var(--soft);box-shadow:inset 3px 0 0 var(--pf)}.plist .ck{display:none}.plist.marking .ck{display:table-cell}.plist .ck input{vertical-align:middle;width:18px;height:18px;accent-color:var(--ink);pointer-events:none;margin:0}.plist tr.mk,.plist tr.rng{background:var(--soft)}.plist tr.rng td:first-child{box-shadow:inset 3px 0 0 var(--construction)}.plist.marking{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.sel-help p{margin:0 0 2px}.sel-help ul{margin:0 0 8px;padding-left:18px}.sel-help li+li{margin-top:2px}.plist .n{font-weight:600}@container pane (width<=420px){table.plist{font-size:12.5px}.plist th{padding:4px 3px}.plist td{padding:5px 3px}}.editor{border:1px solid var(--line);background:var(--soft);border-radius:12px;margin-bottom:12px;padding:10px 12px 4px}.editor h3{margin:0 0 8px;font-size:15px}.editor .actions{margin-bottom:8px}.empty{color:var(--muted);text-align:center;padding:24px 10px}.empty p{margin:0 0 12px}.legend{color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin:12px 0 4px;font-size:12.5px;display:flex}.legend span{align-items:center;gap:5px;display:inline-flex}details.paste{border-top:1px solid var(--line);margin-top:12px;padding-top:6px}details.paste summary{cursor:pointer;color:var(--muted);padding:6px 0;font-size:13.5px}.jent{border-top:1px solid var(--line);padding:8px 0}.jent h3{margin:0;font-size:14.5px}.jent time{color:var(--muted);font-size:12px}.jent pre{white-space:pre;margin:6px 0 0;font:12px/1.5 ui-monospace,Menlo,Consolas,monospace;overflow:auto}.sheet{z-index:15;padding:calc(48px + env(safe-area-inset-top,0px)) 16px calc(16px + env(safe-area-inset-bottom,0px));background:#0c121873;justify-content:center;align-items:flex-start;display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow-y:auto}.sheet-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;width:100%;max-width:600px;padding:10px 16px 14px;box-shadow:0 12px 40px #00000040}.sheet-box:focus{outline:none}.sheet-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.sheet-head h2{letter-spacing:-.01em;margin:0;font-size:18px}.projlist{margin:4px 0 0;padding:0;list-style:none}.proj-row{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:2px 10px;padding:6px 0;display:flex}.proj-row.current{box-shadow:inset 3px 0 0 var(--pf);padding-left:8px}.proj-open{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;flex:220px;min-width:0;padding:4px 6px}.proj-open:hover{background:var(--soft)}.proj-open b{text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:block;overflow:hidden}.proj-open small{color:var(--muted);font-size:12.5px;display:block}.proj-open .badge{color:var(--pf);margin-left:6px;font-size:11.5px;font-weight:600}.proj-actions{flex-wrap:wrap;gap:6px;display:flex}.formatlist{margin:4px 0 0;padding:0;list-style:none}.formatlist li{border-top:1px solid var(--line);align-items:center;gap:4px 12px;padding:8px 0;display:flex}.formatlist .btn{flex:0 0 120px;justify-content:center}.formatlist .note{margin:0}.issues{margin:4px 0 0;padding:0;font-size:13.5px;list-style:none}.issues li{border-top:1px solid var(--line);padding:5px 0}.issues b{margin-right:6px;font-weight:600}.confirm-sheet{z-index:18;align-items:center}.sheet-box.confirm{max-width:400px;padding:16px}.confirm p{white-space:pre-line;margin:0 0 14px;line-height:1.45}.confirm-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.sheet-box.merge{max-width:460px}.merge .sub{color:var(--muted);margin:10px 0 4px;font-size:12.5px;font-weight:600}.merge-differences{grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:6px;margin:0;display:grid}.merge-differences div{border:1px solid var(--line);background:var(--soft);border-radius:8px;padding:4px 8px}.merge-differences dt{color:var(--muted);font-size:12px}.merge-differences dd{margin:0;font-size:16px;font-weight:600}.merge-scope{color:var(--muted);align-items:center;gap:8px;margin-top:12px;font-size:13.5px;display:flex}.merge-scope select{width:auto;color:var(--ink)}.merge-actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.merge-actions .btn{flex:1 1 0;justify-content:center}.btn.icon{padding:0 8px}.sh{color:var(--muted);border-top:1px solid var(--line);margin:14px 0 6px;padding-top:10px;font-size:13px;font-weight:650}.sheet-head+#settingsBody .sh:first-child{border-top:0;margin-top:4px;padding-top:0}.settings .lbl{color:var(--muted);margin:4px 0 3px;font-size:12.5px}.about p{margin:0 0 8px;font-size:14px}.about a{color:var(--pf)}.home-head{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;margin-bottom:4px;padding-bottom:10px}.home-head>svg{color:var(--ink);flex:none}.home-head h2{font-size:21px}.home-version{color:var(--muted);font-size:13px}.home-purpose{margin:6px 0 0;font-size:14px;line-height:1.4}.home-head .x{align-self:flex-start}.home-section{border-bottom:1px solid var(--line)}.home-section summary{cursor:pointer;-webkit-tap-highlight-color:transparent;align-items:center;gap:8px;padding:12px 0;list-style:none;display:flex}.home-section summary::-webkit-details-marker{display:none}.home-section summary:before{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);flex:none;width:8px;height:8px;margin:0 4px 0 2px;transform:rotate(-45deg)}@media (prefers-reduced-motion:no-preference){.home-section summary:before{transition:transform .15s}}.home-section[open]>summary:before{transform:rotate(45deg)}.home-section summary h2{letter-spacing:-.01em;margin:0;font-size:17px}.home-section[open]>:last-child{padding-bottom:12px}.home-section>.settings .sh:first-child{border-top:0;margin-top:0;padding-top:0}.about-intro{align-items:flex-start;gap:14px;margin:4px 0 10px;display:flex}.about-intro .theodolite{flex:none}.about-sub{font-weight:650;margin-top:12px!important}.home-section .release-notes summary{padding:8px 0;font-size:14px;font-weight:650}.release-notes[open]>summary:before{transform:rotate(45deg)}.release-notes{margin:0 0 8px}.release-scroll{border:1px solid var(--line);background:var(--soft);scrollbar-gutter:stable;border-radius:8px;max-height:430px;padding:0 10px 4px 2px;overflow-y:auto}.release-scroll>h3:first-child{margin-top:8px}.release-scroll:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.release-notes p{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:6px 0 2px;font-size:11.5px;font-weight:650}.release-notes h3{margin:12px 0 4px;font-size:14px;font-weight:700}.release-notes ul{margin:0 0 6px;padding-left:20px;font-size:12px;line-height:1.45}.release-notes li+li{margin-top:3px}.sponsors{gap:8px;margin:0 0 8px;padding:0;list-style:none;display:grid}.sponsors li{align-items:center;gap:12px;font-size:13.5px;line-height:1.35;display:flex}.sponsor-logo{border:1px solid var(--line);background:#fff;border-radius:8px;flex:none;place-items:center;width:64px;height:52px;padding:7px;display:grid}.sponsor-logo img{width:auto;max-width:48px;height:auto;max-height:36px;display:block}.sponsor-logo b{color:#1c2733;letter-spacing:.04em;font-size:13px}.helpbtn{border:1px solid var(--line);background:var(--panel);height:30px;color:var(--pf);cursor:pointer;border-radius:999px;align-items:center;gap:5px;margin-left:auto;padding:0 10px;font-size:13.5px;font-weight:550;display:inline-flex}.helpbtn:hover{background:var(--soft)}.help{font-size:14px}.help h3{margin:14px 0 4px;font-size:14px}.help p{margin:0 0 8px}.help ul{margin:0 0 8px;padding-left:20px}.help li{margin-bottom:3px}.help .tone-given,.help .tone-found,.help .tone-fixed{font-weight:600}.help .tone-given{color:var(--given)}.help .tone-found{color:var(--new)}.help .tone-fixed{color:var(--pf)}.sketches{background:var(--paper);border:1px solid var(--line);border-radius:10px;margin:0 0 12px;padding:8px 8px 6px}.sketches .legend{border-top:1px solid var(--line);justify-content:center;margin:6px 0 0;padding-top:6px}.swatch path{fill:none;stroke-width:2.6px;stroke-linecap:round}.swatch.given path{stroke:var(--given)}.swatch.found path{stroke:var(--new)}.sketch{width:100%;max-width:420px;height:auto;margin:0 auto;display:block;overflow:visible}.sketch+.sketch{border-top:1px dashed var(--line);margin-top:6px;padding-top:6px}.sketch path,.sketch circle{fill:none;stroke-linecap:round;stroke-linejoin:round}.sketch .base{stroke:var(--ink);stroke-width:1.6px}.sketch .sight{stroke:var(--ink);stroke-width:1.3px;stroke-dasharray:6 4}.sketch .aux{stroke:var(--muted);stroke-width:1px;stroke-dasharray:2 3}.sketch path.given,.sketch circle.given{stroke:var(--given);stroke-width:1.5px}.sketch path.found,.sketch circle.found{stroke:var(--new);stroke-width:1.5px}.sketch .dim.muted{stroke:var(--muted);stroke-width:1.2px}.sketch .dim.ink{stroke:var(--ink);stroke-width:1.2px}.sketch .fill{fill:var(--given);fill-opacity:.08;stroke:none}.sketch path.head{stroke:none}.sketch .head.given{fill:var(--given)}.sketch .head.found{fill:var(--new)}.sketch .head.ink{fill:var(--ink)}.sketch .head.muted{fill:var(--muted)}.sketch .sym-pf{fill:var(--pf);stroke:var(--paper);stroke-width:1px}.sketch .sym-st{fill:var(--paper);stroke:var(--ink);stroke-width:1.5px}.sketch .sym-st-dot{fill:var(--ink);stroke:none}.sketch .sym-pn{fill:var(--new);stroke:var(--paper);stroke-width:1px}.sketch text{font:13px var(--font);fill:var(--ink);stroke:var(--paper);stroke-width:3px;paint-order:stroke;stroke-linejoin:round}.sketch text.b{font-style:normal;font-weight:700}.sketch text.given{fill:var(--given);font-style:italic}.sketch text.found{fill:var(--new);font-style:italic}.sketch text.fixed{fill:var(--pf)}.sketch text.muted{fill:var(--muted);font-size:12px}.toast{left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--panel);z-index:20;text-align:center;pointer-events:none;border-radius:10px;max-width:90vw;padding:9px 16px;font-size:14px;position:fixed;transform:translate(-50%);box-shadow:0 4px 16px #0003}@media (prefers-reduced-motion:no-preference){.toast{animation:.18s ease-out toast-in}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,6px)}}}
