.calibrator{flex-direction:column;gap:.6rem;height:min(78vh,760px);min-height:420px;display:flex}.calibrator-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.calibrator-stage{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);flex:1;min-height:220px;position:relative;overflow:hidden}.calibrator-stage canvas{touch-action:none;display:block}.calibrator-msg{place-items:center;margin:0;display:grid;position:absolute;inset:0}.calibrator-panel p{margin-bottom:.5em}.calibrator-panel .dialog-actions{margin-top:.5rem}.field.inline{margin-bottom:.25rem}.row.wrap{flex-wrap:wrap;align-items:flex-end}.nudge{gap:.2rem;display:inline-flex}.nudge button{padding:.25em .6em}.dialog.calibrate-dialog{width:min(1000px,100%)}.editor{flex-direction:column;display:flex;position:absolute;inset:0}.editor-tools{border-bottom:1px solid var(--border);background:var(--surface);flex-wrap:wrap;align-items:center;gap:.3rem;padding:.35rem .75rem;display:flex}.editor-tools .sep{background:var(--border);align-self:stretch;width:1px;margin:0 .2rem}.editor-tools button{padding:.3em .6em;font-size:.92rem}.editor-tools button.on{background:var(--accent-soft);border-color:var(--accent);font-weight:600}.editor-tools label.check{color:var(--muted);white-space:nowrap;align-items:center;gap:.3em;font-size:.9rem;display:inline-flex}.tool-options{background:var(--surface-2);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.35rem .75rem;font-size:.92rem;display:flex}.tool-options select,.tool-options input{width:auto;padding:.25em .4em}.editor-body{flex:1;min-height:0;display:flex}.map-wrap{background:var(--map-ground);flex:1;min-width:0;position:relative}.map-wrap canvas{touch-action:none;outline:none;display:block;position:absolute;inset:0}.map-hint{pointer-events:none;justify-content:space-between;gap:1rem;font-size:.85rem;display:flex;position:absolute;bottom:.5rem;left:.6rem;right:.6rem}.map-hint span{background:color-mix(in srgb, var(--surface) 88%, transparent);color:var(--text);border-radius:999px;padding:.2em .6em}.map-zoom{flex-direction:column;gap:.25rem;display:flex;position:absolute;top:.6rem;right:.6rem}.map-zoom button{background:var(--surface);min-width:2.2em;padding:.2em .55em}.map-loading{place-items:center;display:grid;position:absolute;inset:0}.editor-side{background:var(--surface);border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:.75rem;width:320px;padding:.75rem;display:flex;overflow-y:auto}.panel h3{margin:0 0 .4rem}.panel{border-bottom:1px solid var(--border);padding-bottom:.75rem}.panel:last-child{border-bottom:none}.panel .field{margin-bottom:.5rem}.panel .field>span{font-size:.9rem}.panel .actions{flex-wrap:wrap;gap:.4rem;margin-top:.4rem;display:flex}.panel .actions button{padding:.3em .7em;font-size:.9rem}.stats{color:var(--muted);margin:.2rem 0 .4rem;font-size:.9rem}.chips{flex-direction:column;gap:.25rem;margin:.3rem 0;display:flex}.chip{border-radius:var(--radius-sm);border:1px solid;padding:.2em .6em;font-size:.88rem;display:block}.chip.bad{color:var(--danger);border-color:var(--danger);background:var(--danger-soft)}.chip.warn{color:var(--text);border-color:var(--warn-border);background:var(--warn-soft)}.chip.ok{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.legend{grid-template-columns:1fr 1fr;gap:.2rem .6rem;font-size:.85rem;display:grid}.legend i{vertical-align:-.1em;border:1px solid #0000004d;border-radius:3px;width:.9em;height:.9em;margin-right:.35em;display:inline-block}.tray{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.tray li{border:1px dashed var(--border);border-radius:var(--radius-sm);background:var(--surface-2);cursor:grab;align-items:center;gap:.4rem;padding:.35rem .5rem;font-size:.9rem;display:flex}.tray li span.grow{text-overflow:ellipsis;overflow:hidden}.tray li button{padding:.15em .45em;font-size:.82rem}.issues-list{flex-direction:column;gap:.25rem;margin:0;padding:0;font-size:.88rem;list-style:none;display:flex}.issues-list button{text-align:left;white-space:normal;background:0 0;border-color:#0000;justify-content:flex-start;width:100%;padding:.25em .5em}.issues-list .bad{color:var(--danger)}.species-table-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);max-height:60vh;overflow:auto}.species-table{border-collapse:collapse;width:100%;font-size:.88rem}.species-table th{background:var(--surface-2);text-align:left;padding:.35em .5em;font-weight:600;position:sticky;top:0}.species-table td{border-top:1px solid var(--border);vertical-align:top;padding:.25em .5em}.species-table input[type=number]{width:5.5em;padding:.15em .3em}.species-table select{width:auto;padding:.15em .3em}.species-table .changed{background:var(--warn-soft)}.species-table .who{color:var(--muted);font-size:.78rem;display:block}.dialog.species-dialog{width:min(1100px,100%)}.tag{background:var(--surface-2);color:var(--muted);border-radius:999px;margin-left:.3em;padding:0 .4em;font-size:.75rem;display:inline-block}@media (width<=900px){.editor-side{width:260px}}@media (width<=700px){.editor-body{flex-direction:column}.map-wrap{flex:none;height:70vh}.editor-side{border-left:none;border-top:1px solid var(--border);width:auto}}:is(.dialog.wide:has(.calibrator),.dialog.wide:has(.species-dialog-body)){width:min(1100px,100%)}.plan-tools label.check,.panel label.check{white-space:nowrap;align-items:center;gap:.35em;font-size:.9rem;display:inline-flex}.panel label.check{white-space:normal;align-items:flex-start}.plan-tools .grow{flex:1}.map-hint span{white-space:nowrap;text-overflow:ellipsis;max-width:70%;overflow:hidden}.wz{flex-direction:column;min-height:calc(100% - 3.2rem);padding-bottom:0;display:flex}.wz.wide{max-width:1300px}.wz-top{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.wz-top .back{margin:0}.wz-steps{flex-wrap:wrap;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.wz-steps li{flex:1;min-width:0}.wz-steps button{width:100%;color:var(--muted);background:0 0;border:none;flex-direction:column;gap:.2em;padding:.3em}.wz-steps button:disabled{opacity:1;cursor:default}.wz-steps button:hover:not(:disabled){background:var(--surface-2)}.wz-dot{background:var(--surface-2);border:2px solid var(--border);border-radius:50%;place-items:center;width:2rem;height:2rem;font-weight:700;display:grid}.wz-steps .done .wz-dot{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.wz-steps .now .wz-dot{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.wz-steps .now button{color:var(--text);font-weight:600}.wz-step-label{font-size:.85rem}.wz-body{flex:1}.wz-head h1{margin-bottom:.3em;font-size:1.9rem}.wz-lead{color:var(--muted);max-width:60ch;font-size:1.1rem}.wz-sub{margin:1.5rem 0 .6rem}.wz-name{flex-direction:column;align-items:center;gap:1rem;max-width:460px;margin:2.5rem auto;display:flex}.wz-name-art{letter-spacing:.2em;font-size:3.5rem}.wz-name input{text-align:center;border-radius:var(--radius);border-width:2px;padding:.8em 1em;font-size:1.3rem}.wz-cards{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.9rem;display:grid}.wz-cards.two{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.wz-cards.three{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.wz-cards.four{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.wz-cards.five{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.wz-cards.themes{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.wz-card{text-align:left;white-space:normal;border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:.3em;padding:.8rem;transition:transform 80ms,border-color 80ms;display:flex;position:relative}.wz-card:hover:not(:disabled){background:var(--surface);transform:translateY(-2px)}.wz-card.on{border-color:var(--accent);background:var(--accent-soft)}.wz-card.on:hover:not(:disabled){background:var(--accent-soft)}.wz-card.on:after{content:"✓";background:var(--accent);width:1.6rem;height:1.6rem;color:var(--accent-text);border-radius:50%;place-items:center;font-weight:700;display:grid;position:absolute;top:.5rem;right:.6rem}.wz-card.theme.on:after{content:none}.wz-card strong{font-size:1.05rem}.wz-pic{background:var(--surface-2);border-radius:var(--radius-sm);place-items:center;width:100%;height:100px;margin-bottom:.3rem;display:grid;overflow:hidden}.wz-card.on .wz-pic{background:var(--surface)}.wz-pic .pic{width:auto;max-width:100%;height:92px;display:block}.wz-emoji-pic{font-size:3.4rem;line-height:1}.wz-chip{background:var(--surface-2);color:var(--muted);border-radius:999px;padding:.1em .6em;font-size:.75rem;font-weight:600}.wz-theme-pic{border-radius:var(--radius-sm);place-items:center;width:100%;height:92px;margin-bottom:.3rem;font-size:3.2rem;display:grid}.wz-order{background:var(--accent);width:1.9rem;height:1.9rem;color:var(--accent-text);border-radius:50%;place-items:center;font-weight:700;display:grid;position:absolute;top:.5rem;right:.6rem}.wz-surprise{flex-wrap:wrap;margin:0 0 1rem}.wz-shot{border:2px dashed var(--border);border-radius:var(--radius);background:var(--surface);margin-top:1.25rem;padding:1rem}.wz-shot-row{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.wz-shot-row img{object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border);width:180px;max-height:140px}.wz-shot-row>div{flex:1;min-width:220px}.row.wrap{flex-wrap:wrap}.wz-group{margin-bottom:1.5rem}.wz-group-head{align-items:baseline;gap:1rem;margin-bottom:.5rem;display:flex}.wz-group-head h2{margin:0}.wz-animals{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.6rem;display:grid}.wz-animal{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;display:flex;overflow:hidden}.wz-animal.on{border-color:var(--accent);background:var(--accent-soft)}.wz-animal-main{text-align:left;white-space:normal;background:0 0;border:none;border-radius:0;flex-direction:column;flex:1;justify-content:flex-start;align-items:flex-start;gap:.15em;padding:.7rem;position:relative}.wz-animal-main:hover:not(:disabled){background:color-mix(in srgb, var(--surface-2) 50%, transparent)}.wz-animal-pic{font-size:2.2rem;line-height:1.1}.wz-tick{border:2px solid var(--border);background:var(--surface);border-radius:6px;place-items:center;width:1.5rem;height:1.5rem;font-weight:700;display:grid;position:absolute;top:.55rem;right:.6rem}.wz-animal.on .wz-tick{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.wz-count{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:.3rem;padding:.2rem .4rem;font-size:.9rem;display:flex}.wz-count .icon-btn{min-width:2rem;font-size:1.2rem;font-weight:700}.wz-fit{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);flex-direction:column;gap:.35rem;padding:.6rem .9rem;display:flex}.wz-fit.nicely{border-color:var(--accent);background:var(--accent-soft)}.wz-fit.cramped{border-color:var(--warn-border);background:var(--warn-soft)}.wz-meter{background:var(--surface-2);border-radius:999px;height:.5rem;overflow:hidden}.wz-meter span{background:var(--accent);border-radius:999px;height:100%;display:block}.wz-fit.cramped .wz-meter span{background:var(--warn-border)}.wz-layouts{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.wz-layout{text-align:left;white-space:normal;border:3px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);flex-direction:column;align-items:flex-start;gap:.25em;padding:.7rem;display:flex}.wz-layout:hover:not(:disabled){background:var(--surface);transform:translateY(-2px)}.wz-layout.on{border-color:var(--accent);background:var(--accent-soft)}.wz-layout.on:hover:not(:disabled){background:var(--accent-soft)}.wz-layout-pic{aspect-ratio:1;border-radius:var(--radius-sm);background:var(--map-ground);align-self:center;width:min(100%,48vh);margin-bottom:.3rem;overflow:hidden}.wz-layout-pic svg{width:100%;height:100%}.wz-layout.loading .wz-layout-pic{animation:1.2s ease-in-out infinite wz-pulse}@keyframes wz-pulse{50%{opacity:.5}}.wz-warn-text{color:var(--danger)}.wz-bar{background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-top:1px solid var(--border);z-index:5;flex-direction:column;gap:.6rem;margin:1.5rem -1.25rem 0;padding:.75rem 1.25rem 1rem;display:flex;position:sticky;bottom:0}.wz-nav{align-items:center;gap:.6rem;display:flex}.wz-next{min-width:9rem;font-size:1.15rem}@media (width<=600px){.wz-step-label{display:none}.wz-head h1{font-size:1.5rem}.wz-nav{flex-wrap:wrap}.wz-nav .quiet{white-space:normal;text-align:left;flex:1;padding-inline:.4em}.wz-nav .grow{display:none}.wz-next{min-width:0;margin-left:auto}.wz-fit{font-size:.9rem}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f4ee;--surface:#fff;--surface-2:#efece3;--text:#22301f;--muted:#6a7366;--border:#dcd7ca;--accent:#2f7d4f;--accent-text:#fff;--accent-soft:#e1f0e5;--danger:#b5412f;--danger-soft:#f8e4df;--warn-soft:#fff3d6;--warn-border:#e9c46a;--info-soft:#e3eefb;--info-border:#9fbde6;--focus:#3a8fd6;--shadow:0 1px 2px #28281414, 0 4px 14px #28281412;--radius:12px;--radius-sm:8px;--map-ground:#e9e4d4;--map-plot:#d8e6c3;--map-habitat:#b7d39a;--map-aviary:#c8d9ec;--map-aquarium:#9fd0d6;--map-water:#6aaed6;--map-plaza:#e8d7b5;--map-boh:#c9c2b3;--map-road:#a68a64;--map-edge:#5d6b4f;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.45}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#161a15;--surface:#20261f;--surface-2:#2a3128;--text:#e8ecdf;--muted:#a1aa9a;--border:#3a4337;--accent:#5bb07c;--accent-text:#0f1a12;--accent-soft:#24392b;--danger:#e2735f;--danger-soft:#3d2420;--warn-soft:#3a3220;--warn-border:#8a7330;--info-soft:#1f2d3d;--info-border:#3d5d84;--focus:#6fb3ee;--shadow:0 1px 2px #0006, 0 4px 14px #0000004d;--map-ground:#2b3027;--map-plot:#34442c;--map-habitat:#4f6b3c;--map-aviary:#4a5d74;--map-aquarium:#2f6670;--map-water:#3b77a0;--map-plaza:#6b5d43;--map-boh:#4c4840;--map-road:#8c7652;--map-edge:#a7b59a}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#161a15;--surface:#20261f;--surface-2:#2a3128;--text:#e8ecdf;--muted:#a1aa9a;--border:#3a4337;--accent:#5bb07c;--accent-text:#0f1a12;--accent-soft:#24392b;--danger:#e2735f;--danger-soft:#3d2420;--warn-soft:#3a3220;--warn-border:#8a7330;--info-soft:#1f2d3d;--info-border:#3d5d84;--focus:#6fb3ee;--shadow:0 1px 2px #0006, 0 4px 14px #0000004d;--map-ground:#2b3027;--map-plot:#34442c;--map-habitat:#4f6b3c;--map-aviary:#4a5d74;--map-aquarium:#2f6670;--map-water:#3b77a0;--map-plaza:#6b5d43;--map-boh:#4c4840;--map-road:#8c7652;--map-edge:#a7b59a}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);margin:0}h1,h2,h3{margin:0 0 .5em;line-height:1.2}h1{font-size:1.75rem}h2{font-size:1.25rem}h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.85rem}p{margin:0 0 .75em}a{color:var(--accent)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:.85rem}.hint{color:var(--muted);font-size:.9rem}.note{background:var(--info-soft);border:1px solid var(--info-border);border-radius:var(--radius-sm);padding:.6em .8em}.error{color:var(--danger)}.row{align-items:center;gap:.5rem;display:flex}.row.center{justify-content:center}.grow{flex:1}button,.button{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:.4em;padding:.45em .9em;text-decoration:none;display:inline-flex}button:hover:not(:disabled),.button:hover{background:var(--surface-2)}button:disabled{opacity:.55;cursor:default}button.primary,.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}button.primary:hover:not(:disabled),.button.primary:hover{filter:brightness(1.08);background:var(--accent)}button.danger{background:var(--danger);border-color:var(--danger);color:#fff;font-weight:600}button.danger:hover:not(:disabled){background:var(--danger);filter:brightness(1.08)}button.big{border-radius:var(--radius);padding:.7em 1.3em;font-size:1.05rem}button.quiet{background:0 0;border-color:#0000}button.link{color:var(--accent);background:0 0;border:none;padding:0;text-decoration:underline}button.link:hover:not(:disabled){background:0 0}.icon-btn{background:0 0;border-color:#0000;padding:.25em .55em;font-size:1.1rem;line-height:1}.danger-text{color:var(--danger)}.field{flex-direction:column;gap:.3em;margin-bottom:1rem;display:flex}.field>span{font-size:.95rem;font-weight:600}input[type=text],input[type=password],input:not([type]),textarea,select{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);width:100%;padding:.6em .75em}input[type=range]{accent-color:var(--accent);width:100%}fieldset{border:none;margin:0 0 1rem;padding:0}legend{margin-bottom:.4em;font-weight:600}.choices{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem;display:grid}.choice{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;flex-direction:column;gap:.2em;padding:.8em;display:flex}.choice.on{border-color:var(--accent);background:var(--accent-soft)}.choice input{opacity:0;pointer-events:none;position:absolute}.top-bar{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 1.25rem;display:flex}.brand{color:var(--text);align-items:center;gap:.4em;font-size:1.15rem;font-weight:700;text-decoration:none;display:flex}.top-right{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.page{max-width:1100px;margin:0 auto;padding:1.5rem 1.25rem 4rem}.page.narrow{max-width:560px}.center-page{place-items:center;min-height:100%;display:grid}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.page-head h1{margin:0}.back{color:var(--muted);margin-bottom:.75rem;text-decoration:none;display:inline-block}.back:hover{color:var(--text)}.empty{text-align:center;max-width:460px;margin:0 auto;padding:3rem 1rem}.empty-art{margin-bottom:.5rem;font-size:3rem}.banner{border-radius:var(--radius-sm);flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1rem;padding:.6rem 1rem;display:flex}.banner>span:nth-child(2){flex:1;min-width:200px}.banner.info{background:var(--info-soft);border:1px solid var(--info-border)}.banner.warn{background:var(--warn-soft);border:1px solid var(--warn-border)}.toasts{z-index:100;pointer-events:none;flex-direction:column;gap:.5rem;display:flex;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%)}.toast{background:var(--text);color:var(--bg);box-shadow:var(--shadow);border-radius:999px;padding:.6em 1.1em}.toast.error{background:var(--danger);color:#fff}.backdrop{z-index:50;background:#14190f73;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.dialog{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);width:min(440px,100%);max-height:90vh;padding:1.5rem;overflow:auto}.dialog.wide{width:min(620px,100%)}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;margin-top:1rem;display:flex}.compare{justify-content:center;gap:1rem;display:flex}.compare figure{text-align:center;width:min(260px,100%);margin:0}.compare svg{border-radius:var(--radius-sm);border:1px solid var(--border);width:100%}.signin{background:radial-gradient(circle at 30% 20%, var(--accent-soft), var(--bg) 60%);place-items:center;min-height:100%;padding:1rem;display:grid}.signin-card{background:var(--surface);box-shadow:var(--shadow);text-align:center;border-radius:18px;width:min(380px,100%);padding:2rem}.signin-card form{text-align:left}.signin-card .lead{text-align:center;font-size:1.05rem}.signin-card button.big{width:100%}.signin-card .row button.big{width:auto}.signin-logo{font-size:3rem}.cards{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .1s;position:relative;overflow:visible}.card:hover{transform:translateY(-2px)}.card-link{color:inherit;text-decoration:none;display:block}.thumb{aspect-ratio:1;background:var(--map-ground);border-radius:var(--radius) var(--radius) 0 0;place-items:center;display:grid;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%;display:block}.thumb-empty{opacity:.6;font-size:3rem}.card-text{flex-direction:column;gap:.15em;padding:.7rem 2.6rem .8rem .9rem;display:flex}.card-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.card-text .muted{font-size:.85rem}.card-menu{position:absolute;bottom:.6rem;right:.4rem}.menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);z-index:10;flex-direction:column;min-width:150px;padding:.3rem;display:flex;position:absolute;bottom:2.2rem;right:0}.menu button{background:0 0;border:none;justify-content:flex-start}.menu button:hover{background:var(--surface-2)}.trash{margin-top:2.5rem}.disclosure{color:var(--muted);background:0 0;border:none;padding:.3em 0;font-weight:600}.disclosure:hover:not(:disabled){color:var(--text);background:0 0}.trash-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.trash-list li{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:1rem;padding:.6rem .9rem;display:flex}.plan-frame{flex-direction:column;height:100%;display:flex}.plan-frame>.banner{margin:.5rem 1rem 0}.plan-bar{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.45rem 1rem;display:flex}.plan-bar .back{margin:0}.plan-name{text-overflow:ellipsis;background:0 0;border-color:#0000;max-width:40ch;font-size:1.05rem;font-weight:700;overflow:hidden}.plan-tools{flex:1;align-items:center;gap:.4rem;display:flex}.save-status{color:var(--muted);align-items:center;gap:.4em;font-size:.9rem;display:inline-flex}.save-status .dot{background:var(--accent);border-radius:50%;width:.6em;height:.6em}.save-status.pending .dot,.save-status.saving .dot{background:var(--warn-border)}.save-status.offline .dot,.save-status.error .dot,.save-status.signedOut .dot{background:var(--danger)}.save-status.offline,.save-status.error,.save-status.signedOut{color:var(--danger)}.save-msg{color:var(--muted)}.plan-body{flex:1;min-height:0;display:flex}.plan-main{flex:1;min-width:0;position:relative;overflow:auto}.side-panel{background:var(--surface);border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:.6rem;width:320px;padding:1rem;display:flex;overflow-y:auto}.side-head{justify-content:space-between;align-items:center;display:flex}.side-head h2{margin:0}.versions section{margin-bottom:.75rem}.versions h3{margin:.75rem 0 .35rem}.versions ul{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.version{text-align:left;white-space:normal;background:0 0;border-color:#0000;justify-content:space-between;width:100%}.version.picked{background:var(--accent-soft);border-color:var(--accent)}.version-label{font-weight:600}.version-preview{flex-direction:column;gap:.5rem;padding:.5rem;display:flex}.version-preview svg{border-radius:var(--radius-sm);border:1px solid var(--border);width:100%}.sketch{display:block}.placeholder-editor{flex-wrap:wrap;gap:1.5rem;padding:1.5rem;display:flex}.placeholder-map{flex:400px;max-width:640px}.placeholder-map svg{border-radius:var(--radius);border:1px solid var(--border);width:100%}.placeholder-side{flex:260px;max-width:360px}@media (width<=700px){.side-panel{z-index:40;width:min(100%,360px);box-shadow:var(--shadow);position:fixed;inset:0 0 0 auto}.plan-name{max-width:20ch}}
