:root{font-family:Avenir Next,Avenir,Segoe UI,sans-serif;color:#29352f;background:#e9e8e1;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;color:inherit}.shell{height:100vh;height:100dvh;display:flex;flex-direction:column}header{height:72px;background:#26382f;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid #526159}.brand{display:flex;gap:12px;align-items:center}.logo{width:38px;height:38px;border:1px solid #8ba096;border-radius:50%;display:grid;place-items:center;font-size:26px}.brand b{font-size:15px;letter-spacing:2px}.brand small{display:block;font-size:9px;letter-spacing:1.8px;color:#aab9b1;margin-top:2px}.head-actions{display:flex;align-items:center;gap:10px}.saved{font-size:11px;color:#b9c6bf;margin-right:10px}.saved:first-letter{color:#75bd91}.head-actions button{border:1px solid #64746c;background:transparent;color:#fff;border-radius:5px;height:38px}.menu-button{width:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.menu-button i{display:block;width:18px;height:2px;background:currentColor;border-radius:2px}main{display:flex;flex:1;min-height:0}.menu-shade{position:fixed;inset:0;background:#17221db3;z-index:20;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.menu-drawer{position:fixed;z-index:21;right:0;top:0;bottom:0;width:min(390px,92vw);background:#f6f4ee;padding:24px;display:flex;flex-direction:column;gap:16px;transform:translate(105%);transition:transform .22s ease;box-shadow:-10px 0 35px #17221d35}.menu-drawer.open{transform:translate(0)}.drawer-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d1d1c9;padding-bottom:16px}.drawer-head small,.drawer-head b{display:block}.drawer-head small{font-size:9px;letter-spacing:1.7px;color:#7b817d;margin-bottom:4px}.drawer-head b{font-family:"DM Serif Display";font-size:24px}.drawer-head button{border:0;background:transparent;font-size:30px}.side-title{display:flex;justify-content:space-between;align-items:center;padding-top:6px;font-size:10px;font-weight:700;letter-spacing:1.5px;color:#7b817d}.side-title small{font-size:8px}.map-list{display:flex;flex-direction:column;gap:6px;overflow:auto;min-height:80px}.map-card{border:1px solid transparent;background:none;text-align:left;display:flex;padding:10px;border-radius:7px;gap:10px;align-items:center;flex:none}.map-card.active{background:#fff;border-color:#c9cec8;box-shadow:0 2px 8px #29352f12}.map-card>span:nth-child(2){flex:1}.map-card em{font-size:24px;font-style:normal;color:#9aa09c}.thumb{width:46px;height:40px;background:#e4e6df;display:grid;place-items:center;font-size:22px}.map-card b,.map-card small{display:block}.map-card b{font-size:13px}.map-card small{font-size:10px;color:#838984;margin-top:4px}.empty-side{text-align:center;margin:auto 10px;color:#778079}.empty-side span{font-size:34px}.empty-side b{display:block;margin:8px}.empty-side p{font-size:12px;line-height:1.6}.new-map{border:0;border-radius:7px;background:#f2b93e;padding:13px;font-weight:700}.install-app{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #bdc8c1;border-radius:7px;background:#e7eee9;text-align:left}.install-app>span:first-child{font-size:22px;color:#416150}.install-app b,.install-app small{display:block}.install-app b{font-size:12px}.install-app small{margin-top:3px;font-size:9px;color:#65736c}.install-app:disabled{cursor:default;opacity:.7}.file-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;border-top:1px solid #d5d5cd;padding-top:14px}.file-actions button{background:#fff;border:1px solid #d1d1c9;border-radius:7px;text-align:left;padding:12px}.file-actions span{float:left;font-size:22px;margin-right:9px}.file-actions b,.file-actions small{display:block}.file-actions b{font-size:12px}.file-actions small{font-size:9px;color:#838984;margin-top:3px}.storage{margin-top:auto;border-top:1px solid #d5d5cd;padding:15px 8px 0}.storage span,.storage b{display:block;font-size:9px;letter-spacing:1px}.storage b{font-size:11px;margin:7px 0}.storage i{height:4px;background:#ddd;display:block}.storage em{display:block;height:100%;background:#638472}.workspace{flex:1;display:flex;flex-direction:column;min-width:0}.map-head{height:70px;background:#faf9f5;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid #d1d1c9}.map-head input{display:block;border:0;background:transparent;font-family:"DM Serif Display";font-size:21px;color:#29352f}.map-head span{font-size:10px;color:#7d847f}.map-head button{border:1px solid #c8cbc6;background:#fff;border-radius:4px;padding:7px 12px;margin-left:6px;font-size:11px}.map-head .danger{color:#b44b3d}.canvas-wrap{position:relative;flex:1;overflow:hidden}canvas{width:100%;height:100%;display:block;touch-action:none}.draw,.erase{cursor:crosshair}.tools{position:absolute;top:18px;left:50%;transform:translate(-50%);background:#273a31;border-radius:7px;padding:5px;display:flex;box-shadow:0 4px 18px #17221d40}.tools button{border:0;background:transparent;color:#b8c5be;width:54px;height:48px;border-radius:5px}.tools button.on{background:#f3bb45;color:#26382f}.tools b,.tools small{display:block}.tools b{font-size:18px}.tools small{font-size:9px;margin-top:2px}.zoom{position:absolute;right:18px;top:18px;background:#fff;border:1px solid #cdd0cb;border-radius:6px;display:flex;flex-direction:column;text-align:center}.zoom button{border:0;background:#fff;width:38px;height:34px;font-size:20px}.zoom b{border-block:1px solid #ddd;font-size:9px;padding:7px 0}.scale{position:absolute;right:20px;bottom:18px;font-size:9px;text-align:center}.scale i{display:block;width:72px;border:solid #35463d;border-width:0 2px 2px;height:7px}.locate{position:absolute;left:18px;bottom:18px;background:#fff;border:1px solid #c9cdc7;border-radius:5px;padding:10px 13px;font-weight:700;font-size:11px;box-shadow:0 2px 8px #29352f20}.locate.on{background:#2f72df;border-color:#2f72df;color:#fff}.location-update{position:absolute;left:18px;bottom:62px;padding:7px 9px;border:1px solid #d4d9d4;border-radius:5px;background:#f9f8f2e8;color:#53615a;font-size:9px;letter-spacing:.2px;box-shadow:0 2px 8px #29352f12}.location-update b,.location-update span{display:block}.location-update b{color:#2f72df;font-size:10px;margin-bottom:2px}.location-update.stale b{color:#a05a27}.location-update.error{max-width:min(280px,calc(100vw - 20px));border-color:#d8a69e;background:#fff6f3f2}.location-update.error b{color:#b44b3d}.mobile-controls{display:none}.spot-editor{position:absolute;left:18px;top:18px;width:280px;background:#fff;padding:15px;border-radius:8px;box-shadow:0 5px 20px #29352f30;display:grid;gap:13px}.spot-editor-head{display:flex;align-items:center;justify-content:space-between}.spot-editor-head small,.spot-editor-head b{display:block}.spot-editor-head small{font-size:8px;letter-spacing:1.3px;color:#7c837e}.spot-editor-head button{border:0;background:transparent;font-size:24px}.spot-editor label{display:grid;gap:5px;font-size:9px;font-weight:700;letter-spacing:1px}.spot-editor input{padding:10px;border:1px solid #ccd0cb;border-radius:4px}.spot-editor-actions{display:flex;justify-content:space-between;gap:8px}.spot-editor-actions button{border:1px solid #ccd0cb;border-radius:5px;padding:8px 12px;background:#fff;font-size:11px;font-weight:700}.spot-editor-actions .delete-spot{color:#b44b3d}.spot-editor-actions .save-spot{border-color:#26382f;background:#26382f;color:#fff;margin-left:auto}.bottom{height:62px;background:#faf9f5;border-top:1px solid #cccfc9;display:flex;align-items:center;padding:0 20px;gap:34px}.palette{display:flex;align-items:center;gap:8px}.palette span,.bottom label{font-size:9px;letter-spacing:1.2px;font-weight:700}.palette button{width:20px;height:20px;border-radius:50%;border:2px solid white;outline:1px solid transparent}.palette button.selected{outline-color:#29352f}.bottom label{display:flex;align-items:center;gap:9px}.bottom input{width:90px;accent-color:#384c42}.hint{margin-left:auto;font-size:10px;color:#89908c}.welcome{flex:1;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;background-color:#f2f0e9;background-image:linear-gradient(#dfe0d8 1px,transparent 1px),linear-gradient(90deg,#dfe0d8 1px,transparent 1px);background-size:54px 54px}.compass{font-size:52px;color:#536f60}.welcome>small{font-size:10px;letter-spacing:2px;font-weight:700;color:#778078;margin-top:18px}.welcome h1{font-family:"DM Serif Display";font-size:50px;line-height:1.02;margin:15px}.welcome h1 em{color:#d6533f;font-weight:400}.welcome p{max-width:480px;line-height:1.7;font-size:14px;color:#6c746f}.welcome button{background:#f2b93e;border:0;border-radius:5px;padding:14px 23px;font-weight:700;margin:12px}.welcome>span{font-size:10px;color:#8a8f8c}.tag-spot{position:absolute;left:18px;top:18px;border:0;border-radius:7px;background:#f2b93e;color:#26382f;padding:8px 14px;box-shadow:0 4px 16px #17221d30;font-weight:700}.tag-spot b{font-size:18px;margin-right:5px}.tag-spot:disabled{cursor:wait;opacity:.75}@media(max-width:750px){header,.map-head,.tools,.tag-spot,.zoom,.locate,.bottom{display:none}.location-update{left:10px;bottom:calc(82px + env(safe-area-inset-bottom))}.menu-drawer{padding:18px;width:min(360px,94vw)}.workspace{width:100%}.canvas-wrap{min-height:0}.scale{right:12px;bottom:calc(84px + env(safe-area-inset-bottom));padding:5px 7px;background:#f9f8f2cc;border-radius:4px}.spot-editor{left:8px;right:8px;top:10px;width:auto;padding:12px}.mobile-controls{position:absolute;z-index:10;display:flex;align-items:center;gap:4px;left:0;right:0;bottom:0;height:calc(72px + env(safe-area-inset-bottom));padding:7px 8px calc(7px + env(safe-area-inset-bottom));overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;background:#26382ff2;border-top:1px solid #607168;box-shadow:0 -5px 22px #17221d38;color:#fff;scrollbar-width:none}.mobile-controls::-webkit-scrollbar{display:none}.mobile-controls button{flex:0 0 54px;height:54px;padding:4px 2px;border:0;border-radius:8px;background:transparent;color:#c6d0cb;scroll-snap-align:start;touch-action:manipulation}.mobile-controls button.on{background:#f2b93e;color:#26382f}.mobile-controls button:disabled{opacity:.6}.mobile-controls b,.mobile-controls small{display:block}.mobile-controls b{font-size:20px;line-height:25px}.mobile-controls small{font-size:9px;font-weight:700}.mobile-controls>i{flex:0 0 1px;height:36px;background:#5b6b63;margin:0 3px}.mobile-controls .mobile-tag{background:#f2b93e;color:#26382f}.mobile-controls output{flex:0 0 42px;text-align:center;font-size:10px;font-weight:700}.mobile-controls .mobile-color span{display:block;width:24px;height:24px;margin:0 auto 3px;border:2px solid white;border-radius:50%}.mobile-controls .mobile-color.selected{box-shadow:inset 0 0 0 2px #f2b93e}.mobile-stroke{flex:0 0 132px;height:54px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 6px;padding:3px 5px;font-size:9px;text-transform:uppercase;font-weight:700}.mobile-stroke input{grid-column:1/-1;width:100%;accent-color:#f2b93e}.mobile-stroke b{font-size:9px;line-height:1}.welcome{padding:20px}.welcome h1{font-size:38px}.welcome p{font-size:13px}.compass{font-size:44px}}.auto-trace{position:absolute;left:18px;top:66px;border:1px solid #bdc8c1;border-radius:7px;background:#fff;color:#26382f;padding:8px 14px;box-shadow:0 4px 16px #17221d20;font-weight:700}.auto-trace b{font-size:16px;margin-right:6px}.auto-trace small{display:block;margin:3px 0 0 22px;color:#fff9;font-size:8px}.auto-trace.recording{background:#b64638;border-color:#9b382d;color:#fff;animation:trace-pulse 2s infinite}.modal-shade{position:absolute;z-index:30;inset:0;display:grid;place-items:center;padding:20px;background:#17221db3;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.trace-dialog{width:min(430px,100%);padding:24px;border-radius:10px;background:#f8f7f2;box-shadow:0 18px 60px #17221d66;display:grid;gap:18px}.trace-dialog-head{display:flex;align-items:flex-start;justify-content:space-between}.trace-dialog-head small{font-size:9px;letter-spacing:1.6px;color:#78817c}.trace-dialog-head h2{margin:5px 0 0;font-family:"DM Serif Display";font-size:27px}.trace-dialog-head button{border:0;background:transparent;font-size:28px;line-height:1}.trace-dialog p{margin:0;color:#68716c;font-size:13px;line-height:1.55}.trace-dialog label{display:grid;gap:8px;font-size:10px;font-weight:800;letter-spacing:1.2px}.trace-dialog label>span{display:flex;align-items:center;gap:12px}.trace-dialog input[type=color]{width:100%;height:44px;padding:3px;border:1px solid #c8ccc7;border-radius:6px;background:#fff}.trace-dialog input[type=range]{flex:1;accent-color:#384c42}.trace-preview{height:38px;display:grid;place-items:center;border-radius:6px;background:#e8e8e1;overflow:hidden}.trace-preview i{display:block;width:75%;border-top:var(--trace-width) solid var(--trace-color);border-radius:999px}.trace-actions{display:flex;justify-content:flex-end;gap:9px}.trace-actions button{padding:10px 15px;border:1px solid #c8ccc7;border-radius:6px;background:#fff;font-weight:700}.trace-actions .start-trace{border-color:#26382f;background:#26382f;color:#fff}.mobile-controls .mobile-trace.recording{background:#b64638;color:#fff}@keyframes trace-pulse{50%{box-shadow:0 0 0 5px #b6463825}}@media(max-width:750px){.auto-trace{display:none}.trace-dialog{padding:20px}.modal-shade{padding:12px 12px calc(84px + env(safe-area-inset-bottom))}}
