.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}:root{--bg: #f6f7f9;--panel: #ffffff;--ink: #1c2430;--muted: #66707c;--line: #e2e6ea;--accent: #1f6feb;--warn: #b4441c;--sel: #fff4d6;font:13px/1.45 system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:var(--bg)}.canvas{position:relative;min-width:0;min-height:0;overflow:hidden}.canvas canvas{display:block;outline:none}.hud{display:flex;gap:8px;align-items:center;pointer-events:none}.mode{padding:3px 9px;border-radius:999px;background:var(--ink);color:#fff;font-weight:600;white-space:nowrap}.mode-plane{background:var(--accent)}.keys{min-width:0;color:var(--muted);background:#ffffffd9;padding:3px 8px;border-radius:6px;white-space:nowrap;overflow:hidden}.keys[data-wraps]{white-space:normal}.side{width:340px;flex-shrink:0;overflow-y:auto;background:var(--panel);border-left:1px solid var(--line);padding:0 16px 24px}h1{font-size:15px;margin:0 0 12px}h1 small{color:var(--muted);font-weight:400}h2{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 8px}h2 small{text-transform:none;letter-spacing:0}section{padding:12px 0;border-top:1px solid var(--line)}.totals{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}.totals div{background:var(--bg);border-radius:8px;padding:8px}.totals b{display:block;font-size:18px;font-variant-numeric:tabular-nums}.totals span{color:var(--muted)}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th,td{text-align:left;padding:4px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-weight:500}td:nth-child(n+2),th:nth-child(n+2){text-align:right}tbody tr[tabindex]{cursor:pointer}tbody tr:hover{background:var(--bg)}tr.sel{background:var(--sel)}dl{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:0 0 10px}dt{color:var(--muted)}dd{margin:0}.row{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:6px}.mcs form.row input{flex:1;min-width:0}button{font:inherit;padding:5px 10px;border:1px solid var(--line);border-radius:6px;background:#fff;cursor:pointer}button.ghost{color:var(--muted)}button.stress{width:100%;margin-top:4px}input[type=number]{width:70px;font:inherit;padding:4px;border:1px solid var(--line);border-radius:6px}table.pvsol input.figure{width:64px;font:inherit;padding:4px;border:1px solid var(--line);border-radius:6px;text-align:right}table.pvsol tr.has-apart td{border-bottom:none}table.pvsol tr.apart td{text-align:right;color:var(--muted);padding-top:0}.note{color:var(--muted);margin:0}.warn{color:var(--warn);margin:4px 0}.proposal{background:var(--bg);border-radius:8px;padding:8px}.proposal p{margin:0 0 6px}.mono{font-family:ui-monospace,Menlo,monospace;font-size:12px}.log{margin:0;padding-left:0;list-style:none}.log li{padding:2px 0;color:var(--muted)}details summary{cursor:pointer;list-style:none}details summary h2{display:inline}details summary:before{content:"▸ ";color:var(--muted)}details[open] summary:before{content:"▾ "}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;margin:6px 0 8px}.field{display:flex;flex-direction:column;gap:2px;color:var(--muted);font-size:12px}.field input,.field select{font:inherit;color:var(--ink);padding:4px;border:1px solid var(--line);border-radius:6px;width:100%}textarea{font:inherit;color:var(--ink);padding:4px 6px;border:1px solid var(--line);border-radius:6px;box-sizing:border-box;max-width:100%;resize:vertical}.field textarea{width:100%}.placeholder{background:#fff3cd;border:1px solid #e0b84c;color:#6b4d00;border-radius:6px;padding:6px 8px;margin:6px 0}.tag{display:inline-block;margin-left:6px;padding:0 5px;border-radius:4px;background:#fff3cd;border:1px solid #e0b84c;color:#6b4d00;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;vertical-align:1px}button.on{border-color:var(--accent);background:#eaf2ff}.obstructions{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}.olist{list-style:none;margin:0 0 6px;padding:0}.olist li{padding:3px 4px;border-radius:4px}.olist li[tabindex]{cursor:pointer}.olist li:hover{background:var(--bg)}.olist li.sel{background:var(--sel)}select{font:inherit;padding:4px;border:1px solid var(--line);border-radius:6px;max-width:100%}.check{display:flex;gap:6px;align-items:center;margin:4px 0 8px;color:var(--muted)}.warnings{background:#fff7ed;border:1px solid #f0b37e;border-radius:6px;padding:6px 8px;margin:6px 0}.warnings ul{margin:4px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:4px}.pill{background:#fde2c8;color:#7a3b06;border-radius:999px;padding:2px 8px;font-size:12px}.sheet-preview{position:fixed;top:0;right:0;bottom:0;left:0;background:#14181e8c;display:flex;align-items:center;justify-content:center;z-index:50}.sheet-frame{background:var(--panel);border-radius:8px;padding:10px;width:92vw;max-height:94vh;overflow:auto}.sheet-svg svg{width:100%;height:auto;display:block;border:1px solid var(--line)}.attribution{position:absolute;right:8px;bottom:6px;padding:2px 6px;font-size:11px;color:#222;background:#fffc;border-radius:4px;pointer-events:none;z-index:5}label{display:block;margin:4px 0}label.row,.row label{display:flex;gap:6px;align-items:center;margin:0}label.row{flex-wrap:nowrap;margin:4px 0}.top{position:sticky;top:0;z-index:2;background:var(--panel);padding:12px 0 10px;border-bottom:1px solid var(--line);margin-bottom:4px}.top h1{margin:0 0 8px}.toolbar{display:flex;flex-wrap:wrap;gap:6px}.toolbar button{white-space:nowrap}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary:hover{filter:brightness(1.08)}button:disabled{opacity:.5;cursor:default}.group{margin:18px 0 2px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}details.fold{border-top:1px solid var(--line)}details.fold>summary{list-style:none;cursor:pointer;padding:10px 0;font-weight:600;display:flex;justify-content:space-between;align-items:center}details.fold>summary::-webkit-details-marker{display:none}details.fold>summary::marker{content:""}details.fold>summary:before{content:none}details.fold>summary:after{content:"›";color:var(--muted);font-size:16px;transition:transform .15s}details.fold[open]>summary:after{transform:rotate(90deg)}details.fold>section{border-top:0;padding-top:0}details.fold>section>h2:first-child{display:none}details.fold.more{margin-top:18px}details.fold.more>summary{color:var(--muted);font-weight:500}details.fold.more>section>h2:first-child{display:block}input.address{flex:1;min-width:0;font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:6px}form.row{flex-wrap:nowrap}.options{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 10px}.options .option{font-size:12px;padding:3px 9px;border-radius:999px}.options .option.current{background:var(--accent, #2563eb);color:#fff;border-color:transparent}.options .note{flex-basis:100%}.save{font-size:11px;font-weight:500;padding:2px 8px;border-radius:999px;background:#eef1f4;color:#555;vertical-align:middle}.signed-in{font-size:12px;color:#555;white-space:nowrap}.save.ok{background:#e3f4e8;color:#22663a}.save.bad{background:#fde8e4;color:var(--warn)}.topbar button.undo-others{color:#7a5600;box-shadow:inset 0 -2px #e0b84a}.save.people-here{background:#fff4d6;color:#7a5600}.sheet-frame.admin{width:min(720px,94vw);max-height:88vh;overflow:auto}.log li.claude{background:#eef3ff;border-left:3px solid var(--accent);padding-left:6px}.canvas{position:relative}.toolbar-left{position:absolute;left:10px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:4px;z-index:3;background:#fffffff0;border:1px solid var(--line);border-radius:10px;padding:5px;box-shadow:0 2px 10px #00000014}.toolbar-left .tool{width:40px;height:40px;padding:0;position:relative;border-radius:8px;border-color:transparent;background:transparent;font-size:17px}.toolbar-left .tool:hover{background:#eef3fb}.toolbar-left .tool.on{background:var(--accent);color:#fff}.toolbar-left .tool-key{position:absolute;right:3px;bottom:1px;font-size:9px;opacity:.7}.statusbar{order:-1;flex:1 1 auto;min-width:0;display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;background:#fffffff2;border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:12px;box-shadow:0 2px 10px #00000014}.statusbar .snap{color:#2a6f3e;background:#e3f4e8;border-radius:999px;padding:1px 8px}.statusbar .value{background:#fff7d6;border:1px solid #e8d48a;border-radius:4px;padding:0 6px}.statusbar .newwalls input[type=number]{width:4.5em}.side.folded{display:none}.side-open{position:absolute;top:10px;right:10px;z-index:4}.fold-side{float:right;padding:0 8px}.viewbar{flex:none;display:flex;flex-direction:column;gap:4px;padding:4px;background:#ffffffeb;border:1px solid var(--line);border-radius:10px;box-shadow:0 2px 8px #00000014}.viewbar button{font-size:12px;padding:4px 8px;min-width:64px}.viewbar button.on{background:#e3ecfa;border-color:#1f6feb;color:#1f4fa8}.guide{padding:10px 0;margin:0 0 4px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.guide ol{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:0 0 8px;padding:0}.guide .step{width:100%;padding:4px 2px;font-size:12px;border-radius:999px;color:var(--muted);background:var(--bg);border-color:transparent}.guide .step.done{color:#1a7f37;background:#e7f5ec}.guide .step.current{color:#fff;background:var(--accent);font-weight:600}.guide p{margin:0 0 8px}.guide button.primary{width:100%;padding:8px 10px}.fill-note{background:#e7f5ec;border:1px solid #a6d8b8;border-radius:6px;padding:8px;margin:6px 0}.fill-note.warn{background:#fdecea;border-color:#f0b4a8}.fill-note p{margin:0 0 6px}.fill-note ul{margin:0 0 6px;padding-left:18px}.fill-note li{cursor:pointer}.fill-note li:hover{text-decoration:underline}.start-card{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(560px,calc(100% - 32px));background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px #1c24302e;padding:18px;z-index:4;max-height:calc(100% - 24px);overflow:auto}.start-card h2{font-size:15px;text-transform:none;letter-spacing:0;color:var(--ink);margin:0 0 12px}.start-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.start-choices button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:12px;border-radius:10px;min-height:72px}.start-choices button b{font-size:14px}.start-choices button span{color:var(--muted);font-size:12px}.start-choices button.primary span{color:#ffffffd9}.command-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;background:#1c24302e}.command-search{position:absolute;top:12%;left:50%;transform:translate(-50%);width:min(520px,calc(100% - 32px));background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px #1c243038;padding:10px}.command-search input{width:100%;font:inherit;font-size:15px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;outline:none}.command-search input:focus{border-color:var(--accent)}.command-search ul{list-style:none;margin:8px 0 6px;padding:0;max-height:340px;overflow-y:auto}.command-search li{display:flex;justify-content:space-between;align-items:center;padding:7px 10px;border-radius:6px;cursor:pointer}.command-search li.on{background:var(--accent);color:#fff}.command-search li.none{color:var(--muted);cursor:default}kbd{font:11px ui-monospace,Menlo,monospace;padding:1px 5px;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;color:var(--muted);background:var(--bg)}.command-search li.on kbd{color:var(--accent)}.dim-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:1}.dim-label{position:absolute;left:0;top:0;pointer-events:auto;padding:2px 7px;font-size:12px;font-variant-numeric:tabular-nums;border-radius:999px;border:1px solid var(--accent);background:#ffffffeb;color:var(--accent);white-space:nowrap}.dim-label:hover{background:var(--accent);color:#fff}.dim-label.dim-ridge,.dim-label.dim-eaves{border-color:var(--muted);color:var(--ink)}.dim-label.dim-info{border-style:dashed;border-color:#9aa5b4;color:#3c4756;font-size:11px;padding:1px 6px}.dim-label.dim-info:hover{background:#ffffffeb;color:#3c4756}.dim-label.dim-pitch{border-color:#c08a2c;color:#7a5410}.dim-label.dim-corner{border-color:transparent;background:#ffffffb3}.dim-edit{position:absolute;z-index:4;transform:translate(-50%,-110%);background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px #1c243033;padding:8px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;max-width:280px}.dim-edit input{width:80px;font:inherit;padding:4px 6px;border:1px solid var(--accent);border-radius:6px;margin:0 4px}.dim-edit p{flex-basis:100%;margin:0}tbody tr[tabindex]:focus-visible,.olist li[tabindex]:focus-visible,.fill-note li[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.app{--left-w: 264px;--right-w: 340px;--drawing-w: 0px;display:grid;height:100%;grid-template-rows:minmax(48px,auto) minmax(0,1fr);grid-template-columns:var(--left-w) minmax(min(360px,calc((100% - var(--left-w) - var(--right-w)) / 2)),1fr) minmax(0,var(--drawing-w)) var(--right-w)}.app.no-left{--left-w: 0px}.app.no-right{--right-w: 0px}.app.no-left .left,.app.no-right .right{display:none}.app>.left{grid-area:2 / 1}.app>.canvas{grid-area:2 / 2}.app>.drawing-beside{grid-area:2 / 3}.app>.right{grid-area:2 / 4}.topbar{grid-column:1 / -1;display:flex;align-items:center;gap:8px;padding:0 10px;background:var(--panel);border-bottom:1px solid var(--line);min-width:0;z-index:6}.topbar .brand{font-weight:700;white-space:nowrap;margin-right:4px}.topbar .spacer{flex:1}.topbar .options{display:flex;gap:4px;align-items:center;flex-wrap:nowrap;overflow:hidden;max-width:34%}.topbar button.icon{width:32px;height:32px;padding:0;font-size:16px}.topbar .steps{display:flex;gap:2px;margin-left:8px}.topbar .step{display:flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--muted);padding:6px 10px;border-radius:999px;font-weight:500;white-space:nowrap}.topbar .step .step-n{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;border:1.5px solid currentColor;font-size:11px}.topbar .step.done{color:#1a7f37}.topbar .step.done .step-n{background:#1a7f37;border-color:#1a7f37;color:#fff}.topbar .step.current{color:var(--accent);background:#eaf1fd;font-weight:600}.topbar .step.current .step-n{background:var(--accent);border-color:var(--accent);color:#fff}.figures{display:flex;gap:14px;white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}.figures b{color:var(--ink);font-size:15px}.figures .est{font-size:11px;color:var(--muted)}.figures .shade-offer{padding:1px 8px;font-size:12px;border-color:var(--line)}.figures .shade-offer.warn{color:var(--warn);border-color:currentColor;margin:0}.badge{white-space:nowrap;border-radius:999px;font-weight:600;color:var(--muted)}.badge.amber{background:#fff3e0;border-color:#f0b46a;color:#8a4b00}.badge.provisional:not(.amber){background:#fff8db;border-color:#e0b84c;color:#6b4d00}.pop-anchor{position:relative}.popover{position:absolute;right:0;top:calc(100% + 6px);width:380px;max-height:70vh;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px #1c24302e;padding:12px;z-index:20}.warn-group{margin-bottom:10px}.warn-group ul{margin:2px 0 0;padding-left:18px;color:#8a4b00}.warn-face{border:0;padding:2px 0;background:none;font-weight:600;color:var(--ink)}.warn-face:hover{color:var(--accent)}.warn-group.provisional{background:#fff8db;border:1px solid #e0b84c;border-radius:8px;padding:8px;color:#6b4d00}.warn-group.provisional p{margin:4px 0 0}.left,.right{min-height:0;overflow-y:auto;background:var(--panel)}.left{border-right:1px solid var(--line);padding:0 12px 24px}.right{border-left:1px solid var(--line);padding:0 14px 24px}.left section,.right section{padding:10px 0}.add-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:6px}.add-grid button:last-child:nth-child(odd){grid-column:1 / -1}.add-grid button{text-align:left;padding:8px}.left .add details.fold>summary{font-weight:500;font-size:12px;color:var(--muted);padding:6px 0}.tree,.tree ul{list-style:none;margin:0;padding:0}.tree ul{padding-left:12px}.tree-row{width:100%;display:flex;align-items:center;gap:6px;border:0;background:transparent;padding:4px 6px;border-radius:6px;text-align:left}.tree-row:hover,.tree-name-btn:hover{background:var(--bg)}.tree-row.sel{background:#eaf1fd;color:var(--accent)}.tree-row.building{padding:0}.tree-row.building.hidden{opacity:.5}.tree-row.face-line{padding:0}.tree-row.face-line>.tree-row.face{flex:1;min-width:0}.tree-row.face-line.hidden{opacity:.5}.tree-name-btn{flex:1;display:flex;align-items:center;gap:6px;border:0;background:transparent;padding:4px 6px;border-radius:6px;text-align:left}.tree-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-count{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.tree-row.sub{color:var(--muted);font-size:12px}.tree .dot{width:8px;height:8px;border-radius:50%;background:#e8890c;flex:none}.tree .eye{border:0;padding:2px 6px}.tree-empty{padding:4px 6px}.tabs{position:sticky;top:0;z-index:2;display:flex;gap:2px;background:var(--panel);padding:8px 0;border-bottom:1px solid var(--line)}.tab{flex:1;border:0;background:transparent;color:var(--muted);padding:6px;border-radius:6px;font-weight:600}.tab.on{background:#eaf1fd;color:var(--accent)}.tab-body .empty{padding:18px 4px}.tab-body .empty .next{background:#eaf1fd;border-radius:8px;padding:8px 10px}.tab-body .empty button.primary{width:100%;padding:8px}.crumb{margin:8px 0 0;display:flex;align-items:center;gap:10px}.crumb button{padding:2px 0;border:0}.crumb button.primary{padding:3px 10px}.right details.fold.more{margin-top:6px}.toast{position:absolute;left:62px;bottom:56px;z-index:5;max-width:460px;box-shadow:0 8px 24px #1c243029}.home{display:grid;grid-template-rows:minmax(48px,auto) minmax(0,1fr);height:100%}.home .home-title{font-weight:600;color:var(--muted)}.home-search{width:min(360px,40vw);font:inherit;padding:6px 10px;border:1px solid var(--line);border-radius:8px}.home-main{overflow-y:auto;padding:20px max(20px,calc((100% - 1100px)/2))}.home-main section{border-top:0}table.jobs{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}table.jobs th,table.jobs td{padding:10px 12px}table.jobs td:first-child,table.jobs th:first-child{text-align:left}table.jobs tbody tr:hover{background:#eaf1fd}.new-job{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:16px;display:grid;gap:10px;max-width:520px}.new-job h2{margin:0;color:var(--ink);font-size:15px;text-transform:none;letter-spacing:0}.new-job .field{display:grid;gap:4px}.new-job input,.new-job select{font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:6px}.waiting{background:#fff8db;border:1px solid #e0b84c;border-radius:10px;padding:10px 12px;margin-bottom:16px}.waiting ul{list-style:none;margin:0;padding:0}.topbar .back{font-weight:600}.job-title{margin:0 0 6px}.snap-marker{position:absolute;left:0;top:0;z-index:4;pointer-events:none;display:flex;align-items:center;gap:6px}.snap-marker i{width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;border:2px solid #fff;background:#1f6feb;box-shadow:0 0 0 1px #00000059;flex:none}.snap-marker{flex-direction:column;align-items:flex-start;gap:2px}.snap-marker .snap-hint:not(:empty){margin:14px 0 0 10px;background:#1f6feb;color:#fff;font-size:12px;font-weight:600;padding:2px 8px;border-radius:6px;white-space:nowrap}.snap-marker span:not(:empty){margin-left:10px;background:#1c2430e0;color:#fff;font-size:12px;padding:2px 7px;border-radius:6px;white-space:nowrap;font-variant-numeric:tabular-nums}.snap-marker.k-corner i{background:#2e9e44}.snap-marker.k-midpoint i{background:#17a2b8}.snap-marker.k-on-edge i{background:#d23c3c;width:10px;height:10px;border-radius:2px}.snap-marker.k-on-guide i,.snap-marker.k-guide-crossing i{background:#6b8fb5}.snap-marker.k-axis i,.snap-marker.k-right-angle i{background:#e8890c}.snap-marker.k-grid i,.snap-marker.k-free i{width:8px;height:8px;margin:-4px 0 0 -4px;background:#66707c}.snap-marker.k-in-line i,.snap-marker.k-crossing i,.snap-marker.k-parallel i,.snap-marker.k-towards i{background:#c026d3}.snap-marker.locked i{box-shadow:0 0 0 2px #1c2430}.corner-tags{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3;overflow:hidden}.corner-tags span{position:absolute;left:0;top:0;min-width:16px;padding:0 4px;border-radius:8px;background:#fff;color:#1c2430;border:1px solid #1c2430;font-size:11px;font-weight:600;line-height:15px;text-align:center}.badge.ask{background:#eaf1fd;border-color:#8fb3f0;color:#1f4fa8}.popover.wide{width:440px}.popover.opens-right{left:0;right:auto}.popover .row.between{justify-content:space-between}.questions{list-style:none;margin:0;padding:0;display:grid;gap:10px}.question{background:#eaf1fd;border:1px solid #c4d7f7;border-radius:10px;padding:10px}.question p{margin:0 0 8px}.ask-dot{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:#1f6feb;color:#fff;font-size:11px;font-weight:700;flex:none}.asks{padding-top:10px}.layers{list-style:none;margin:0;padding:0}.layer{display:flex;align-items:center;gap:4px;padding:2px 0}.layer.off .layer-name{opacity:.5}.layer-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}button.layer-name{text-align:left;padding:2px 0;font:inherit;color:inherit}button.layer-name:not(:disabled):hover{text-decoration:underline}.drawing-beside{position:relative;min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--panel);border-left:1px solid var(--line);overflow:hidden}.drawing-beside-edge{position:absolute;left:0;top:0;bottom:0;width:6px;z-index:2;cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none}.drawing-beside-edge:hover,.drawing-beside-edge.on,.drawing-beside-edge:focus-visible{background:var(--line);outline:none}.drawing-beside-head{display:flex;align-items:center;gap:4px;padding:4px 6px 4px 12px;border-bottom:1px solid var(--line);-webkit-user-select:none;user-select:none}.drawing-beside-head select{min-width:0;max-width:45%}.drawing-beside-head .spacer{flex:1}.drawing-beside-head button{padding:2px 8px}.drawing-beside-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawing-beside>.note{margin:4px 8px}.drawing-beside-body{flex:1;min-height:0;overflow:auto;background:#f4f4f2}.drawing-beside-body.fit{overflow:hidden}.drawing-beside-body img{display:block}.drawing-beside-body img.fit{width:100%;height:100%;object-fit:contain;cursor:zoom-in}.drawing-beside-body img.zoomed{height:auto;cursor:zoom-out}.layer input[type=range]{width:64px}.layer .eye{border:0;padding:2px 6px}.roof-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px #1c24302e;padding:12px 14px;display:grid;gap:8px;max-width:100%}.roof-card b{font-size:14px}.roof-card .row{margin:0}.roof-card button{padding:8px 12px;font-size:14px}.roof-card input[type=number]{width:56px}.roof-card .note{font-size:12px}.measure-label{position:absolute;left:0;top:0;z-index:4;pointer-events:none;background:#e8890c;color:#fff;font-weight:600;font-size:13px;padding:2px 8px;border-radius:999px;white-space:nowrap;font-variant-numeric:tabular-nums;box-shadow:0 2px 6px #0003}.snap-marker.flip{align-items:flex-end}.snap-marker.flip .snap-hint,.snap-marker.flip span{margin-left:0;margin-right:10px;transform:translate(calc(-100% + 0px))}.snap-marker.flip i{align-self:flex-start}.snap-marker.up{flex-direction:column-reverse}.snap-marker.up .snap-hint:not(:empty){margin:0 0 14px 10px}.snap-marker.up.flip .snap-hint:not(:empty){margin:0 10px 14px 0}.facebar{display:flex;gap:4px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:6px;box-shadow:0 6px 18px #1c243024;white-space:nowrap}.facebar button{border-color:transparent}.facebar button.on{background:var(--accent);color:#fff}.facebar .tool-set{display:flex;gap:4px;align-items:center}.facebar{flex-wrap:wrap;justify-content:center;max-width:100%;gap:4px 16px}.facebar .note{font-size:12px;white-space:normal;padding:0 4px}.endbar{gap:10px;padding:6px 6px 6px 12px}.endbar button.primary{border-color:var(--accent)}.face-sum b{color:var(--ink)}.right .face details.fold>summary{font-weight:500}.key{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:-1px}.key.red{background:#ff3b3b}.key.amber{background:#ffb020}.help-card{position:absolute;top:6%;left:50%;transform:translate(-50%);width:min(980px,calc(100% - 32px));max-height:86%;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px #1c243038;padding:14px 16px}.help-card header{display:flex;justify-content:space-between;align-items:center;font-size:15px;margin-bottom:6px}.help-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:4px 20px}.help-grid section{border-top:0;padding:6px 0;min-width:0}.help-grid table{table-layout:fixed}.help-grid td{text-align:left!important;vertical-align:top;padding:3px 4px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.help-grid td:first-child{width:36%}.help-grid kbd{white-space:normal}.topbar{gap:6px}.topbar button,.topbar .badge,.topbar .save,.topbar .brand,.topbar kbd{white-space:nowrap}.topbar .brand{max-width:400px;min-width:3em;overflow:hidden;text-overflow:ellipsis}.topbar .options button{padding:4px 8px}.app>.topbar>*{flex-shrink:0}.app>.topbar>.spacer,.app>.topbar[data-fit-4]>.brand{flex-shrink:1}.topbar kbd{margin-left:4px}.topbar[data-fit-1] .drop-2{display:none}.topbar[data-fit-2]{gap:4px}.topbar[data-fit-2] .figures{display:grid;grid-auto-flow:column;grid-template-rows:auto auto;gap:0 10px;font-size:12px;line-height:1.2}.topbar[data-fit-2] .figures b{font-size:13px}.topbar[data-fit-2] .figures .shade-offer{padding:0 6px;font-size:11px}.topbar[data-fit-2] .steps{margin-left:2px}.topbar[data-fit-2] button.icon{width:28px}.topbar[data-fit-3] .step{padding:6px}.topbar[data-fit-3] .step:not(.current){font-size:0;gap:0}.topbar[data-fit-3] .step:not(.current) .step-n{font-size:11px}.topbar[data-fit-4] .brand{max-width:130px}.topbar[data-fit-4] .drop-4{display:none}.topbar[data-fit-4] .step.current{font-size:0;gap:0}.topbar[data-fit-4] .step.current .step-n{font-size:11px}.topbar[data-fit-4] .step{padding:6px 3px}.topbar[data-fit-5]{flex-wrap:wrap;row-gap:2px;padding-block:6px}.topbar[data-fit-5]>.spacer{flex-basis:100%;height:0}.topbar[data-fit-5]>.spacer+*{margin-left:auto}.topbar[data-fit-5] .drop-4{display:inline}.topbar[data-fit-5] .brand{max-width:260px}.topbar[data-fit-5] .step:not(.current),.topbar[data-fit-5] .step.current{font-size:inherit;gap:6px;padding:6px 10px}.topbar[data-fit-6] .step:not(.current),.topbar[data-fit-6] .step.current{font-size:0;gap:0;padding:6px 3px}.save.clash{display:inline-flex;align-items:center;gap:6px;background:#fdecea;border:1px solid #f0b4a8;border-radius:999px;padding:2px 4px 2px 10px}.save.clash button{padding:2px 10px}.proposal .choices{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;margin-bottom:8px}.proposal .choices button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;text-align:left}.proposal .choices button span{font-size:12px;opacity:.85}.proposal .choices button span.not-taken{color:var(--warn);opacity:1}.proposal .callout{background:#fff3e0;border:1px solid #f0b46a;border-radius:8px;padding:6px 8px}.proposal details.notes>summary{font-weight:500;font-size:12px;color:var(--muted)}section.add>details.fold:not([open]){display:none}section.add>details.fold[open]>summary{font-weight:600}section.add>details.fold[open]>summary:after{content:"✕";flex-shrink:0;white-space:nowrap;margin-left:auto;padding-left:8px;font-weight:400;color:var(--muted)}.toast.clip-note{max-width:520px;display:flex;gap:10px;align-items:center}.toast.clip-note p{margin:0}.clip-note{background:#e7f5ec;border:1px solid #a6d8b8;border-radius:6px;padding:6px 8px}.clip-note.warn{background:#fff4dc;border-color:#e8cf8a}.select-box{position:absolute;z-index:4;pointer-events:none;border:1.5px solid var(--accent);background:#2f6feb14}.select-box.crossing{border-style:dashed;background:#2fa05a14;border-color:#2f9a5a}.roof-options{display:flex;flex-direction:column;gap:6px;margin:8px 0}.roof-option{display:flex;gap:10px;align-items:center;text-align:left;padding:6px}.roof-option:hover{border-color:var(--accent)}.roof-option.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.roof-option-text{display:flex;flex-direction:column;gap:2px;font-size:12px}.outline-preview{width:64px;height:64px;flex-shrink:0;background:#f4f1ea;border-radius:4px}.outline-preview polygon{fill:#c9a27c;stroke:#5b3d22;stroke-width:1.2}.roof-preview{width:96px;height:96px}.roof-preview path{stroke:none}.roof-preview .roof-preview-panel{fill:#1f2a3c;opacity:.85}.roof-preview line{stroke:#4a2f18;stroke-width:1.1}button.link{background:none;border:none;padding:0;color:var(--accent);cursor:pointer;font:inherit;text-decoration:underline}.check-page h3{font-size:13px;margin:0 0 2px}.check-page h3 button.link{color:var(--ink);text-decoration:none;font-weight:600}.check-table{width:100%;border-collapse:collapse;font-size:12px}.check-table td{padding:3px 4px;border-top:1px solid var(--line);vertical-align:top;text-align:left}.check-table td.num{white-space:nowrap}.check-table td.src{color:var(--muted)}.check-table td.src.est{color:var(--warn)}.check-table tr.ticked td{background:#f0f8f1}.check-table tr.stale td{background:var(--sel)}.check-page .attention ul,.check-page .rests-on{margin:0;padding-left:18px}.check-table tr.matters td{border-top:none;padding-top:0;font-size:11px}.check-table tr.matters.yes td{color:var(--warn)}.check-table tr.matters.no td{color:var(--muted)}.heat-key i{display:inline-block;width:10px;height:10px;border-radius:2px;margin:0 3px 0 8px;vertical-align:-1px}.heat-key i.g{background:#2e9e44}.heat-key i.y{background:#ffd23f}.heat-key i.r{background:#e0453a}.planit-list{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px;font-size:12px}.planit-list>li{border-top:1px solid var(--line);padding-top:4px}.planit-list .row{gap:10px}.lidar-faces{margin:4px 0;padding-left:18px;font-size:12px}.lidar-faces li.warn{color:var(--warn)}.tile-list{margin:4px 0 8px;padding-left:18px;font-size:12px;display:grid;gap:4px}.tile-list li.warn{color:var(--warn)}.tile-list .row{gap:10px}.tile-form{display:grid;gap:6px;background:var(--bg);border-radius:8px;padding:8px}.photo-counter .sheet-frame{width:auto;max-width:96vw;display:grid;gap:8px}.photo-counter .row{gap:8px}.photo-box{position:relative;width:fit-content;margin:0 auto}.photo-box img{display:block;max-width:92vw;max-height:80vh;-webkit-user-select:none;user-select:none}.photo-box svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;cursor:crosshair}.photo-counter .row{flex-wrap:nowrap;align-items:center}.photo-counter .prompt{flex:1;min-width:0;min-height:2.9em;display:flex;align-items:center}.roof-card.calib-card{position:absolute;left:50%;transform:translate(-50%);z-index:4;bottom:12px;max-width:min(460px,calc(100% - 24px))}.calib-card p{margin:0}.calib-steps{margin:0;padding-left:20px;display:grid;gap:3px;color:var(--muted)}.calib-steps li.now{color:var(--ink);font-weight:600}.calib-steps li.did{text-decoration:line-through}.unit-pick{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}.unit-pick button{border:none;border-radius:0;padding:6px 10px;background:var(--panel)}.unit-pick button.on{background:var(--accent);color:#fff}.options:has(.template-option){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.options .option.template-option{display:grid;justify-items:center;gap:4px;padding:6px 4px;border-radius:8px;text-align:center;white-space:normal;line-height:1.2}.template-option .template-picture{width:76px;height:76px}.badge.claude{border-color:#c9b8f0;color:#5b3fb0}.badge.claude.on,.badge.claude:hover{background:#f3eefe}.claude-card{display:flex;flex-direction:column;gap:8px}.claude-card .row.between{justify-content:space-between;align-items:center}.claude-card textarea{width:100%;box-sizing:border-box;font:inherit;resize:vertical}.claude-tidy{border-left:3px solid var(--line);padding-left:8px;font-size:13px}.claude-tidy ul{margin:2px 0 6px;padding-left:18px}.claude-tidy p{margin:4px 0 0}.claude-starters{display:flex;flex-direction:column;gap:4px}.claude-starters button{text-align:left;white-space:normal;font-size:12px;padding:5px 8px}.claude-report{background:var(--bg, #f6f7f9);border:1px solid var(--line);border-radius:8px;padding:10px;max-height:40vh;overflow-y:auto;font-size:13px;line-height:1.45}.claude-thread{display:flex;flex-direction:column;gap:6px;max-height:45vh;overflow-y:auto}.claude-turn{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px;line-height:1.45}.claude-turn .who{display:block;font-size:11px;font-weight:600;color:var(--muted, #667);margin-bottom:2px}.claude-turn.designer{background:#eef4ff;margin-left:24px}.claude-turn.claude{background:var(--bg, #f6f7f9);margin-right:24px}.claude-compare{border:1px solid #e3c98a;background:#fffaf0;border-radius:8px;padding:8px 10px;margin-top:6px;font-size:13px;line-height:1.45}.claude-compare ul{margin:4px 0 6px;padding-left:18px}.prose p{margin:0 0 6px}.prose ul{margin:0 0 6px;padding-left:18px}.prose li{margin:2px 0}.claude-notebook summary{cursor:pointer;font-size:13px}.claude-notebook ul{padding-left:18px;font-size:13px}.claude-working-box{display:flex;gap:10px;align-items:flex-start;background:#f3eefe;border:1px solid #c9b8f0;border-left:4px solid #6b4bc4;border-radius:8px;padding:10px 12px;color:#2d1d63}.claude-working-box b{display:block;margin-bottom:2px}.claude-working-box .note{margin-top:4px}.claude-spinner{flex:none;width:18px;height:18px;margin-top:2px;border-radius:50%;border:3px solid #c9b8f0;border-top-color:#6b4bc4;animation:claude-turn .9s linear infinite}@keyframes claude-turn{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.claude-spinner{animation:none;border-top-color:#c9b8f0;background:#6b4bc4}}:root{--spirit-orange: #eb7023;--spirit-plum: #8a334e;--spirit-navy: #1c1e36;--ink: #1c1e36;--muted: #5d6675;--line: #e3e6eb;--rail: #f1f2f5;--bg: #f4f5f7;--accent: #8a334e;--accent-tint: #f7ecf0;--accent-ink: #6c2239;--t-add: #8a334e;--t-refs: #0e7c86;--t-model: #3b4c63;--t-face: #8a334e;--t-design: #4353c4;--t-check: #2d8449;--t-out: #0e7c86;--t-job: #eb7023;--sel: #f7ecf0}body{color:var(--ink)}.left,.right{background:var(--rail)}.left{padding:10px 10px 24px}.right{padding:0 10px 24px}.left>section,.tab-body>section,.tab-body>details.fold,.tab-body>div:not(.row){--tone: var(--t-model);background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;margin:0 0 10px;box-shadow:0 1px 2px #1c1e360d}.left>section{border-top:1px solid var(--line)}.left>section.job{--tone: var(--t-job);border-top:3px solid var(--spirit-orange)}.left>section.add{--tone: var(--t-add)}.left>section.refs{--tone: var(--t-refs)}.left>section.model{--tone: var(--t-model)}.right.tab-selected{--tone: var(--t-face)}.right.tab-design{--tone: var(--t-design)}.right.tab-check{--tone: var(--t-check)}.right.tab-outputs{--tone: var(--t-out)}.right .tab-body>section,.right .tab-body>details.fold,.right .tab-body>div:not(.row){--tone: inherit}.left>section>h2,.tab-body>section>h2,.tab-body>section>h3:first-child,.tab-body section.face>h2{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:13.5px;font-weight:700;text-transform:none;letter-spacing:0;color:var(--ink)}.left>section>h2:before,.tab-body>section>h2:before,.tab-body>section>h3:first-child:before{content:"●";flex:none;width:22px;height:22px;border-radius:7px;display:grid;place-items:center;background:var(--tone);color:#fff;font-size:12px;line-height:1}.left>section.job>h2:before{content:"★";background:var(--spirit-orange)}.left>section.add>h2:before{content:"＋"}.left>section.refs>h2:before{content:"⎙"}.left>section.model>h2:before{content:"◫"}.left>section>details.card>summary{list-style:none;display:flex;align-items:center;gap:8px}.left>section>details.card>summary:before{content:none}.left>section>details.card>summary:after{content:"›";margin-left:auto;color:var(--muted);font-size:16px;transition:transform .15s}.left>section>details.card[open]>summary:after{transform:rotate(90deg)}.left>section>details.card[open]>summary{margin-bottom:10px}.left>section>details.card>summary>h2{display:flex;align-items:center;gap:8px;margin:0;min-width:0;font-size:13.5px;font-weight:700;text-transform:none;letter-spacing:0;color:var(--ink)}.left>section>details.card>summary>h2:before{content:"●";flex:none;width:22px;height:22px;border-radius:7px;display:grid;place-items:center;background:var(--tone);color:#fff;font-size:12px;line-height:1}.left>section>details.card>summary{flex-wrap:wrap;row-gap:0}.left>section>details.card>summary>h2{flex:1 1 auto}.left>section>details.card>summary:after{order:1}.left>section>details.card>summary>.note{font-size:12px;order:2;flex-basis:100%;padding-left:30px}.left>section.planning>details.card>summary>h2:before{content:"⎙"}.left>section.job>details.card>summary>h2:before{content:"★";background:var(--spirit-orange)}.left .more-ways>summary{color:var(--muted);padding:4px 2px;font-size:12.5px}.right.tab-selected .tab-body>section>h2:before,.right.tab-selected .tab-body>section>h3:first-child:before{content:"◆"}.right.tab-design .tab-body>section>h2:before,.right.tab-design .tab-body>section>h3:first-child:before{content:"☀"}.right.tab-check .tab-body>section>h2:before,.right.tab-check .tab-body>section>h3:first-child:before{content:"✓"}.right.tab-outputs .tab-body>section>h2:before,.right.tab-outputs .tab-body>section>h3:first-child:before{content:"⇩"}.tab-body section.face>h2{font-size:15px}.job-title{margin:0 0 6px;font-size:14px}.tab-body>details.fold>summary{padding:0;font-weight:700;font-size:13.5px}.tab-body>details.fold[open]>summary{margin-bottom:10px}.tab-body>details.fold>summary:before{content:"▸";flex:none;width:22px;height:22px;border-radius:7px;display:grid;place-items:center;margin-right:8px;background:color-mix(in srgb,var(--tone) 14%,#fff);color:var(--tone);font-size:11px}.tab-body>details.fold>summary{justify-content:flex-start}.tab-body>details.fold>summary:after{margin-left:auto}details.fold>summary small{margin-left:6px;color:var(--muted);font-weight:500}section.face details.fold,section.face .obstructions,section.face>section,section.face>fieldset.held>section{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}section.face details.fold>summary,section.face .obstructions>h2,section.face>section>h2,section.face>section>fieldset.held>h2,section.face>fieldset.held>section>h2{font-size:12px;font-weight:700;color:var(--tone);text-transform:uppercase;letter-spacing:.05em;padding:0;margin:0 0 6px}section.face .obstructions>h2:before,section.face>section>h2:before,section.face>section>fieldset.held>h2:before,section.face>fieldset.held>section>h2:before{content:none}.left section.add details.fold{border-top:1px dashed var(--line);margin-top:8px;padding-top:4px}.app{--left-w: 288px;--right-w: 360px}.add-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.add-grid button{min-width:0;display:flex;align-items:center;gap:7px;padding:7px 8px;border-radius:10px;font-weight:600;background:#fff;border:1px solid var(--line);color:var(--ink);min-height:40px;line-height:1.2;overflow-wrap:anywhere}.add-grid button>span:last-child{min-width:0}.add-grid button .ico{flex:none;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;background:var(--accent-tint);color:var(--accent);font-size:12px}.add-grid button:hover{border-color:var(--accent);background:#fffafb}.tree-row.building{border-left:3px solid var(--t-model);padding-left:6px;margin-top:4px}.tree-row.sel,.tree-row.building.sel{background:var(--accent-tint);color:var(--accent-ink)}.tree-row.building.sel{border-left-color:var(--accent)}.tree-count{font-variant-numeric:tabular-nums;color:var(--muted)}.tabs{background:var(--rail);border-bottom:0;padding:10px 0 8px;gap:4px}.tabs .tab{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;padding:7px 4px;border-radius:9px;border:1px solid transparent;background:transparent;color:var(--muted);font-weight:600}.tabs .tab .tab-ico{font-size:11px;opacity:.8}.tabs .tab:hover{background:#fff;border-color:var(--line)}.tabs .tab.on{background:#fff;border-color:var(--line);box-shadow:0 1px 2px #1c1e3614}.tabs .tab-selected.on{color:var(--t-face);box-shadow:inset 0 -3px 0 var(--t-face)}.tabs .tab-design.on{color:var(--t-design);box-shadow:inset 0 -3px 0 var(--t-design)}.tabs .tab-check.on{color:var(--t-check);box-shadow:inset 0 -3px 0 var(--t-check)}.tabs .tab-outputs.on{color:var(--t-out);box-shadow:inset 0 -3px 0 var(--t-out)}button{border-radius:8px;border-color:#d9dde3}button:hover{border-color:var(--accent)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{filter:none;background:var(--accent-ink)}button.ghost{background:transparent;border-color:transparent}button.ghost:hover{background:var(--bg);border-color:var(--line)}.left .note,.right .note{font-size:12px;line-height:1.45}.proposal{background:color-mix(in srgb,var(--tone, var(--accent)) 6%,#fff);border:1px solid color-mix(in srgb,var(--tone, var(--accent)) 22%,#fff);border-left:3px solid var(--tone, var(--accent));border-radius:10px}.tab-body .empty .next{background:color-mix(in srgb,var(--tone) 8%,#fff);border:1px solid color-mix(in srgb,var(--tone) 25%,#fff)}.face-sum{margin:-4px 0 10px;color:var(--muted)}.face-sum b{color:var(--ink);font-size:14px}.topbar{box-shadow:inset 0 -2px 0 var(--spirit-orange);border-bottom:0}:root{--t-plan: #1d6fa5}.left>section.planning{--tone: var(--t-plan)}.left>section.planning>h2:before{content:"⎙"}.planning-step{display:flex;align-items:center;gap:8px;margin:12px 0 8px;font-size:13px}.planning-step .step-no{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--tone) 14%,#fff);color:var(--tone);font-size:11px;font-weight:700}.left section.planning>button.primary{width:100%}.planit-list{list-style:none;margin:8px 0 4px;padding:0;display:grid;gap:6px}.planit-list>li{border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:12.5px}.planit-list>li.roof{border-color:color-mix(in srgb,var(--spirit-orange) 45%,#fff);background:#fff8f2}.planit-list>li>.row{margin-top:3px;gap:10px}.kind-tag{display:inline-block;font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;background:#eef2f7;color:var(--muted);white-space:nowrap}.kind-tag.star{background:#fff1e6;color:#a2470f}label.field.drop{border:1.5px dashed color-mix(in srgb,var(--tone, var(--accent)) 40%,#fff);border-radius:10px;padding:8px;background:color-mix(in srgb,var(--tone, var(--accent)) 4%,#fff)}.planit-list .clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.settings-page .settings-body{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:0;background:var(--rail)}.settings-nav{display:flex;flex-direction:column;gap:4px;padding:16px 10px;border-right:1px solid var(--line);overflow-y:auto}.settings-tab{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;border:1px solid transparent;background:transparent;text-align:left;font-weight:600;color:var(--ink)}.settings-tab .ico,.settings-main h1 .ico{flex:none;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:color-mix(in srgb,var(--tone) 14%,#fff);color:var(--tone)}.settings-tab:hover{background:#fff;border-color:var(--line)}.settings-tab.on{background:#fff;border-color:var(--line);box-shadow:inset 3px 0 0 var(--tone),0 1px 2px #1c1e360f}.tone-panels{--tone: #8a334e}.tone-mounting{--tone: #b4581c}.tone-rules{--tone: #3b4c63}.tone-inverters{--tone: #2f6b3a}.tone-batteries{--tone: #7a5c12}.tone-stringing{--tone: #2f5c8a}.tone-claude{--tone: #6b4bc4}.tone-connections{--tone: #0e7c86}.tone-products{--tone: #2f6b3a}.tone-log{--tone: #5d6675}.tone-keys{--tone: #1f5f8b}table.own-keys td,table.own-keys th{padding:4px 8px;text-align:left}table.feedback th,table.feedback td{text-align:left;vertical-align:top}.settings-main{overflow-y:auto;padding:20px max(20px,calc((100% - 1000px)/2))}.settings-main h1{display:flex;align-items:center;gap:10px;font-size:20px;margin:0 0 4px}.settings-main h1 .ico{width:32px;height:32px;background:var(--tone);color:#fff;font-size:16px}.settings-main>.note{margin:0 0 14px;max-width:760px}.settings-main>.row{margin-bottom:12px}.settings-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:12px;box-shadow:0 1px 2px #1c1e360d}.settings-card.editing{border-color:color-mix(in srgb,var(--tone) 45%,#fff);box-shadow:0 0 0 3px color-mix(in srgb,var(--tone) 12%,transparent)}.settings-card.on{border-color:var(--tone)}.settings-card h2{margin:0;font-size:16px;text-transform:none;letter-spacing:0;color:var(--ink)}.settings-card h3{margin:16px 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--tone)}.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.settings-grid .settings-card{margin:0;display:flex;flex-direction:column;gap:6px}.settings-grid .settings-card>.row:last-child{margin-top:auto}.settings-table{width:100%;border-collapse:collapse;font-size:13px}.settings-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--line)}.settings-table td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:middle}.settings-table tbody tr{cursor:pointer}.settings-table tbody tr:hover,.settings-table tbody tr.on{background:color-mix(in srgb,var(--tone) 6%,#fff)}.settings-table.parts tbody tr{cursor:default}.settings-table.parts input,.settings-table.parts select{width:100%;min-width:0;font:inherit;padding:4px 6px;border:1px solid var(--line);border-radius:6px}.settings-table.parts td:nth-child(5){width:80px}.settings-table.parts td:last-child{width:32px}.pill{display:inline-block;font-size:11px;font-weight:600;padding:1px 8px;border-radius:999px;background:#eef0f3;color:var(--muted);margin-right:4px;white-space:nowrap}.pill.ok{background:#e6f4ea;color:#1e6b37}.pill.warn{background:#fff4d6;color:#7a5300}.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:2px 12px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 10px}.parts-preview{margin:10px 0;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--tone) 6%,#fff);border-left:3px solid var(--tone)}.parts-preview ul{margin:6px 0 0;padding-left:18px;columns:2}.connection p:last-child{margin:4px 0 0}@media(max-width:760px){.settings-page .settings-body{grid-template-columns:1fr}.settings-nav{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.grid3{grid-template-columns:1fr}}.council-drawings{margin-top:6px;padding:8px;border-radius:8px;background:#fff;border:1px solid var(--line)}.council-drawings ul{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:4px}.council-drawings li{display:grid;grid-template-columns:18px minmax(0,1fr);gap:6px;align-items:start;font-size:12px}.council-drawings li.other{color:var(--muted)}.council-drawings .doc-name{min-width:0;overflow-wrap:anywhere}.council-drawings .tick-gap{color:#1e6b37;font-weight:700;text-align:center}.council-drawings button.primary{width:100%}button.small{padding:2px 8px;font-size:12px}.council-drawings li{border:0;padding:0;background:none}.council-drawings .doc-meta{display:block;margin-top:1px}.council-drawings .add-own{color:var(--accent);text-decoration:underline;cursor:pointer}.council-drawings li.by-hand{border-radius:6px}.council-drawings li.by-hand.drop{outline:2px dashed var(--accent);outline-offset:2px;background:var(--accent-tint, #f7ecf0)}.council-drawings .drop-all{margin-bottom:8px;padding:8px;border:2px dashed var(--line);border-radius:8px;text-align:center}.council-drawings .drop-all .note{margin:6px 0 0}.council-drawings .drop-all.drop{border-color:var(--accent);background:var(--accent-tint, #f7ecf0)}.viewbar .views-toggle{font-weight:600}.claude-from-plans{width:100%;margin-top:8px;border-color:color-mix(in srgb,#6b4bc4 40%,#fff);color:#4b2fa0;background:#f5f2fd}.save-template{display:grid;gap:6px;margin-top:8px}.save-template input{width:100%}.start-photo{margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--rail)}.start-photo .note{margin:4px 0 0}.photo-underneath .row{gap:6px;margin-top:6px}.photo-underneath input.address{flex:1;min-width:0}.attribution~.stage-bottom{bottom:30px}.stage-bottom{position:absolute;left:62px;right:10px;bottom:10px;z-index:5;display:flex;gap:8px;align-items:flex-end;pointer-events:none}.stage-bottom>*{pointer-events:auto}.measure-box{flex:none;margin-left:auto;display:grid;grid-template-columns:auto auto;gap:2px 10px;align-items:baseline;padding:8px 12px;background:var(--panel);border:1.5px solid var(--accent);border-radius:10px;box-shadow:0 6px 20px #1c1e3624;min-width:180px}.measure-box .measure-what{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.measure-box .measure-value{font-size:20px;font-weight:600;color:var(--ink);text-align:right}.measure-box .measure-how{grid-column:1 / -1;font-size:11px;color:var(--muted)}.measure-box .measure-makes{grid-column:1 / -1;font-size:13px;font-weight:600;color:var(--ink);text-align:right}.passive .dim-label{pointer-events:none;opacity:.65}.dim-label.dim-typical{border-style:dashed}.stage-top{position:absolute;top:10px;left:10px;right:10px;z-index:4;display:flex;flex-direction:column;gap:6px;pointer-events:none}.stage-row{display:flex;gap:8px;align-items:flex-start}.stage-row>:not(.stage-middle),.stage-middle>*{pointer-events:auto}.stage-middle{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px}.stage-middle:first-child{margin-left:52px}.stage-add{position:relative;z-index:1;display:flex;gap:6px;align-items:flex-start;flex:none}.stage-add>button{box-shadow:0 2px 8px #1c1e361f}.stage-add-menu{position:absolute;top:40px;left:0;display:grid;gap:2px;min-width:230px;padding:6px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px #1c1e362e}.stage-add-menu button{display:flex;gap:10px;align-items:center;justify-content:flex-start;text-align:left;border:0;background:none;padding:7px 10px;border-radius:7px}.stage-add-menu button:hover{background:var(--accent-tint, #f7ecf0)}.stage-add-menu .ico{width:20px;text-align:center}.app.calm .left:not(.show-all)>:not(.focus):not(.calm-bar){display:none}.app.calm .left:not(.show-all) section.add.focus>:not(.focus){display:none}.calm-bar{display:flex;justify-content:space-between;gap:6px;padding:6px 8px;position:sticky;top:0;z-index:2;background:var(--bg)}.left>.calm-bar{top:-10px;margin-top:-10px;padding-top:16px}.toolbar-left .tool.more .tool-icon{font-size:16px}.turn-row{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center}.turn-row button.ghost{padding:2px 8px}.turn-row .turn-by{display:inline-flex;flex-direction:row;gap:4px;align-items:center;margin:0;font-size:12px;color:var(--muted)}.turn-row .turn-by input{padding:2px 4px}.canvas{container-type:inline-size}@container (max-width: 900px){.facebar .note{display:none}}.topbar .options.option-picker{overflow:visible}.option-list{width:340px;display:grid;gap:6px;padding:8px}.option-card{display:flex;gap:10px;align-items:center;text-align:left;padding:6px;border-radius:8px;border:1px solid var(--line);background:var(--panel);white-space:normal}.option-card:hover{border-color:var(--accent, #2563eb)}.option-card.current{border-color:var(--accent, #2563eb);box-shadow:inset 0 0 0 1px var(--accent, #2563eb)}.option-card-text{display:grid;gap:2px;font-size:12px;line-height:1.3}.option-card-text b{font-size:13px}.roof-preview.empty{display:grid;place-items:center;font-size:11px;color:#8a8f98}.several-ways{display:grid;gap:8px}.several-ways .way{align-items:flex-start;gap:8px;font-size:13px;line-height:1.35}.several-ways .way input{margin-top:3px}.several-ways .way-detail{display:grid;gap:6px;margin-left:24px}.way-status{list-style:none;padding:0;margin:4px 0 0;display:grid;gap:6px;font-size:12.5px;line-height:1.35}.way-status li{display:flex;gap:6px}.way-status .mark{width:14px;flex-shrink:0;font-weight:700}.way-status .done .mark{color:#2f7d32}.way-status .failed .mark{color:#b3261e}.way-status .working .mark{color:#8a8f98}.way-status .sheets-taken ul{margin:2px 0 4px;padding-left:16px}.way-status .sheets-taken li{display:list-item}.council-drawings .doc-preview{display:block;max-width:100%;max-height:240px;margin-top:4px;border:1px solid var(--line);border-radius:4px;background:#fff}.map-finder{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;background:#14182073}.map-finder-card{width:min(980px,94vw);background:var(--panel);border-radius:12px;padding:12px;display:grid;gap:8px;box-shadow:0 16px 40px #0000004d}.map-finder-card form input{min-width:260px}.map-finder-map{position:relative;height:min(620px,70vh);border-radius:8px;overflow:hidden;background:#dfe3e8}.map-finder-map .map-credit{position:absolute;left:6px;bottom:4px;z-index:1000;font:11px/1.3 Roboto,Arial,sans-serif;color:#fff;text-shadow:0 0 3px #000;pointer-events:none}.deal-finder{max-width:720px}.deal-finder form input{flex:1;min-width:220px}.deal-list{list-style:none;margin:0;padding:0;max-height:50vh;overflow:auto}.customer-photo{max-width:100%;max-height:70vh;object-fit:contain;border-radius:8px;background:#dfe3e8}.grid2>.span2{grid-column:1 / -1}details.look{margin:8px 0}details.look>summary{cursor:pointer;font-weight:600}.swatches{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}.swatch{width:26px;height:26px;padding:0;border-radius:5px;border:1px solid var(--line);cursor:pointer}.swatch.on{outline:2px solid var(--accent);outline-offset:2px}fieldset.held{border:0;padding:0;margin:0;min-width:0}fieldset.held:disabled{opacity:.55}.layer-switches{display:flex;flex-wrap:wrap;gap:4px 14px;padding:4px 6px 8px;font-size:12.5px}.layer-switches label{display:inline-flex;align-items:center;gap:5px;cursor:pointer}.page-picker-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#14181f59;display:flex;align-items:center;justify-content:center;z-index:30;padding:16px}.page-picker{background:var(--panel);border-radius:10px;box-shadow:0 12px 40px #00000040;padding:16px;max-width:min(760px,100%);max-height:calc(100vh - 32px);overflow:auto;font-size:13px}.page-picker .page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:10px 0 12px}.page-picker .page{display:flex;flex-direction:column;gap:4px;border:2px solid var(--line);border-radius:6px;padding:6px;cursor:pointer}.page-picker .page.on{border-color:var(--accent)}.page-picker .page img{width:100%;height:150px;object-fit:contain;background:#f6f7f9}.page-picker .page-wait{height:150px;display:flex;align-items:center;justify-content:center;color:#8a8f98;background:#f6f7f9}.right .scale-not-checked{margin:8px 0 4px;padding:8px 10px;border-radius:6px;background:var(--sel);border:1px solid #e8c27a;font-size:12.5px;line-height:1.4}.right .scale-not-checked p{margin:0 0 6px}.scale-first{margin:8px 0}.scale-first .warn{margin-bottom:6px}.shade-strings{width:100%;border-collapse:collapse;margin:6px 0 10px;font-size:12px}.shade-strings caption{text-align:left;font-weight:600;padding:2px 0}.shade-strings th,.shade-strings td{text-align:left;padding:2px 6px 2px 0;vertical-align:top}.shade-strings td:nth-child(n+2):nth-child(-n+4){white-space:nowrap}.colour-key{margin-left:auto;max-width:420px;display:flex;flex-direction:column;gap:2px;padding:6px 8px;font-size:12px;line-height:1.35;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 2px 8px #1c24301f}.colour-key .swatch{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}.colour-key .swatch.amber{background:#ffb020}.colour-key .swatch.red{background:#ff3b3b}.option-list .option-add{gap:6px;margin-bottom:8px;flex-wrap:wrap}
