:root{--bg:#f6f4ef;--card:#fff;--text:#1d1d1b;--muted:#6d6b65;--line:#1d1d1b17;--accent:#2f6f5e;--accent-text:#fff;--danger:#c2412d;--press:#1d1d1b0d;--shadow:0 1px 2px #0000000a, 0 4px 16px #0000000a;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#141614;--card:#1f221f;--text:#ecebe6;--muted:#9c9a93;--line:#ecebe61a;--accent:#6fbfa6;--accent-text:#0e1a16;--danger:#ff7a66;--press:#ecebe60f;--shadow:none}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--bg)}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;touch-action:manipulation;overscroll-behavior-y:none;margin:0;font:16px/1.4 -apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,Segoe UI,Roboto,sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit;color:inherit}.topbar{z-index:10;padding:calc(env(safe-area-inset-top) + 6px) max(12px, env(safe-area-inset-right)) 6px max(8px, env(safe-area-inset-left));background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:saturate(180%)blur(16px);backdrop-filter:saturate(180%)blur(16px);min-height:calc(env(safe-area-inset-top) + 50px);justify-content:space-between;align-items:center;gap:8px;display:flex;position:sticky;top:0}.back{color:var(--accent);align-items:center;gap:2px;max-width:70%;min-height:44px;padding:8px 6px;font-weight:500;display:inline-flex}.back span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.icon-button{width:44px;height:44px;color:var(--accent);cursor:pointer;background:0 0;border:0;border-radius:22px;place-items:center;display:grid}.icon-button:active{background:var(--press)}.screen{max-width:720px;padding:4px max(16px, env(safe-area-inset-right)) calc(env(safe-area-inset-bottom) + 110px) max(16px, env(safe-area-inset-left));margin:0 auto}.hero{align-items:center;gap:14px;margin:4px 0 14px;display:flex}.title{letter-spacing:-.02em;margin:0;font-size:30px;line-height:1.1}.muted{color:var(--muted);margin:2px 0 0}.small{font-size:14px}.error{color:var(--danger);margin:8px 0 0}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);margin:0;padding:0;overflow:hidden}.section{margin-top:22px}.section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 8px 16px;font-size:13px;font-weight:600}.list{list-style:none}.list>li+li>.row:before{content:"";background:var(--line);height:1px;position:absolute;top:0;left:62px;right:0}.row{align-items:center;gap:14px;min-height:60px;padding:10px 14px;display:flex;position:relative}.row:active{background:var(--press)}.row-text{flex-direction:column;flex:1;min-width:0;display:flex}.row-title{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.row-sub{color:var(--muted);font-size:14px}.chevron{color:var(--muted);opacity:.6;display:flex}.tile{border-radius:9px;flex:none;place-items:center;display:grid}.empty{text-align:center;margin-top:22px;padding:24px 18px}.empty p{margin:0}.breadcrumb{color:var(--muted);flex-wrap:wrap;gap:2px 0;margin-bottom:10px;font-size:15px;display:flex}.breadcrumb a{color:var(--accent);padding:4px 0}.crumb-sep{opacity:.6;margin:0 6px}.tags{flex-wrap:wrap;gap:6px;display:flex}.tag{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent);border-radius:999px;padding:3px 10px;font-size:13px}.where{padding:8px 0;list-style:none}.where li a{align-items:center;gap:12px;min-height:44px;padding:8px 16px;display:flex;position:relative}.where li a:active{background:var(--press)}.where li+li a:before{content:"";background:var(--line);border-radius:1px;width:2px;height:20px;position:absolute;top:-10px;left:29px}.where li .tile{z-index:1;position:relative}.where li.here span:last-child{font-weight:600}.details>div{justify-content:space-between;align-items:baseline;gap:16px;padding:12px 16px;display:flex}.details>div+div{border-top:1px solid var(--line)}.details dt{color:var(--muted);flex:none}.details dd{text-align:right;margin:0}.details .tags{justify-content:flex-end}.button{background:var(--card);min-height:50px;box-shadow:var(--shadow);color:var(--accent);cursor:pointer;border:0;border-radius:12px;justify-content:center;align-items:center;padding:0 20px;font-weight:600;display:inline-flex}.button.primary{background:var(--accent);color:var(--accent-text)}.button:active{filter:brightness(.95)}.inline-form{gap:8px;display:flex}.inline-form input{border:1px solid var(--line);background:var(--card);border-radius:12px;flex:1;min-width:0;min-height:50px;padding:0 14px;font-size:17px}.welcome{max-width:420px;min-height:100dvh;padding:calc(env(safe-area-inset-top) + 48px) 24px calc(env(safe-area-inset-bottom) + 32px);text-align:center;flex-direction:column;justify-content:center;margin:0 auto;display:flex}.welcome-icon{border-radius:22px;width:88px;height:88px;margin:0 auto 20px;box-shadow:0 8px 30px #2f6f5e40}.welcome h1{text-wrap:balance;letter-spacing:-.02em;margin:0 0 8px;font-size:30px}.welcome-actions{flex-direction:column;gap:10px;margin-top:28px;display:flex}.sheet-backdrop{z-index:50;background:#0000004d;justify-content:center;align-items:flex-end;animation:.15s ease-out fade;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;max-width:480px;padding:8px 16px calc(env(safe-area-inset-bottom) + 16px);border-radius:18px 18px 0 0;animation:.22s cubic-bezier(.2,.9,.3,1) rise}@media (width>=700px){.sheet-backdrop{align-items:center}.sheet{border-radius:18px;padding-bottom:16px}}.sheet-grabber{background:var(--line);border-radius:3px;width:36px;height:5px;margin:0 auto 12px}.menu button{text-align:left;width:100%;min-height:52px;color:var(--accent);cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:flex-start;padding:8px 16px;font-weight:500;display:flex}.menu>li+li{border-top:1px solid var(--line);margin-left:16px}.menu button:active{background:var(--press)}.menu button.danger{color:var(--danger)}.sheet-cancel{width:100%;margin-top:10px}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){.sheet,.sheet-backdrop{animation:none}}.photo-tile{object-fit:cover;background:var(--press)}.cover{background:var(--press);width:100%;max-height:46vh;box-shadow:var(--shadow);cursor:zoom-in;border:0;border-radius:18px;margin:4px 0 16px;padding:0;display:block;overflow:hidden}.cover img{object-fit:cover;width:100%;height:100%;display:block}.strip{scroll-snap-type:x proximity;scrollbar-width:none;gap:10px;margin:0 -16px;padding:2px 16px 6px;scroll-padding-inline:16px;display:flex;overflow-x:auto}.strip::-webkit-scrollbar{display:none}.thumb{background:var(--card);width:88px;height:88px;box-shadow:var(--shadow);scroll-snap-align:start;cursor:pointer;border:0;border-radius:14px;flex:none;padding:0;position:relative;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%;display:block}.thumb-badge{letter-spacing:.04em;color:#fff;background:#0009;border-radius:6px;padding:1px 6px;font-size:11px;font-weight:700;position:absolute;bottom:6px;left:6px}.add-tile{color:var(--accent);box-shadow:none;border:1.5px dashed color-mix(in srgb, var(--accent) 45%, transparent);background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:13px;font-weight:600;display:flex}.add-tile:active{background:var(--press)}.add-tile:disabled{opacity:.5}.add-tile.busy{color:var(--muted);border-style:solid;border-color:var(--line)}.viewer{z-index:100;color:#fff;background:#000;flex-direction:column;animation:.15s ease-out fade;display:flex;position:fixed;inset:0}.viewer-bar{padding:calc(env(safe-area-inset-top) + 6px) 8px 6px;justify-content:space-between;align-items:center;display:flex}.viewer-count{opacity:.8;font-size:15px}.viewer-button{color:#fff;cursor:pointer;background:#ffffff1f;border:0;border-radius:22px;place-items:center;width:44px;height:44px;display:grid}.viewer-stage{flex:1;place-items:center;min-height:0;display:grid;position:relative}.viewer-stage img{object-fit:contain;max-width:100%;max-height:100%}.viewer-nav{color:#fff;cursor:pointer;background:#00000073;border:0;border-radius:24px;place-items:center;width:48px;height:48px;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.viewer-nav.prev{left:10px}.viewer-nav.next{right:10px}.viewer-footer{padding:12px 16px calc(env(safe-area-inset-bottom) + 14px);justify-content:center;display:flex}.segmented{background:#ffffff24;border-radius:12px;padding:3px;display:inline-flex}.segmented button{color:#fff;cursor:pointer;background:0 0;border:0;border-radius:9px;min-height:38px;padding:0 16px;font-size:15px;font-weight:500}.segmented button.on{color:#000;background:#fff}.link-button{min-height:32px;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-weight:500}.link-button.value{color:var(--text);font-variant-numeric:tabular-nums;-webkit-text-decoration:underline dotted color-mix(in srgb, var(--muted) 60%, transparent);text-decoration:underline dotted color-mix(in srgb, var(--muted) 60%, transparent);text-underline-offset:4px;font-weight:400}.link-button.strong{font-weight:700}.details>.detail-edit{display:block}.detail-edit label{color:var(--muted);flex-direction:column;gap:6px;display:flex}.detail-edit input{border:1px solid var(--line);background:var(--bg);min-height:44px;color:var(--text);border-radius:10px;padding:0 12px;font-size:17px}.detail-edit input:focus{outline:2px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:1px}.detail-edit-actions{justify-content:flex-end;gap:20px;margin-top:8px;display:flex}:root{--tabbar-h:64px}.topbar-actions{align-items:center;gap:2px;display:flex}.text-button{min-height:44px;color:var(--accent);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0 10px;font-size:17px;font-weight:500;display:inline-flex}.text-button.strong{font-weight:700}.text-button:disabled{opacity:.4;cursor:default}.button.block{gap:8px;width:100%;margin-top:14px;display:flex}.button:disabled{opacity:.5}.empty .button{gap:6px;margin-top:14px}.add-here{margin:14px auto 0;display:flex}.tabbar{z-index:20;max-width:560px;padding:6px 28px calc(env(safe-area-inset-bottom) + 6px);background:color-mix(in srgb, var(--bg) 80%, transparent);-webkit-backdrop-filter:saturate(180%)blur(18px);backdrop-filter:saturate(180%)blur(18px);border-top:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:center;margin:0 auto;display:grid;position:fixed;bottom:0;left:0;right:0}@media (width>=600px){.tabbar{border:1px solid var(--line);border-radius:24px;padding-bottom:6px;bottom:14px;box-shadow:0 8px 30px #00000014}}.tab{min-height:48px;color:var(--muted);cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:600;display:flex}.tab.on{color:var(--accent)}.tab.add{padding:0 20px}.add-circle{background:var(--accent);width:54px;height:54px;color:var(--accent-text);box-shadow:0 6px 18px color-mix(in srgb, var(--accent) 40%, transparent);border-radius:27px;place-items:center;transition:transform .12s;display:grid}.tab.add:active .add-circle{transform:scale(.94)}.toast-wrap{left:0;right:0;bottom:calc(env(safe-area-inset-bottom) + var(--tabbar-h) + 18px);z-index:120;pointer-events:none;justify-content:center;padding:0 12px;display:flex;position:fixed}.toast{pointer-events:auto;color:#f2f1ec;background:#222522;border-radius:14px;align-items:center;gap:4px;max-width:480px;min-height:48px;padding:4px 6px 4px 16px;animation:.24s cubic-bezier(.2,.9,.3,1.2) toast-in;display:flex;box-shadow:0 10px 30px #00000040}.toast-message{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:15px;overflow:hidden}.toast-undo{color:#8fd6bf;cursor:pointer;background:0 0;border:0;border-radius:10px;min-height:40px;padding:0 12px;font-weight:700}.toast-close{color:#b9b8b2;cursor:pointer;background:0 0;border:0;border-radius:16px;place-items:center;width:32px;height:32px;display:grid}@keyframes toast-in{0%{opacity:0;transform:translateY(16px)scale(.98)}}.sheet-backdrop.page{align-items:flex-end}.page-sheet{width:100%;max-width:560px;height:calc(100dvh - env(safe-area-inset-top) - 12px);background:var(--bg);border-radius:16px 16px 0 0;flex-direction:column;animation:.26s cubic-bezier(.2,.9,.3,1) rise;display:flex;overflow:hidden}@media (width>=700px){.sheet-backdrop.page{align-items:center}.page-sheet{border-radius:18px;height:min(760px,100dvh - 48px);box-shadow:0 20px 60px #00000040}}.page-sheet-bar{border-bottom:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:center;padding:6px;display:grid}.page-sheet-bar h2{text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:60vw;margin:0;font-size:17px;font-weight:600;overflow:hidden}.page-sheet-bar>:first-child{justify-self:start}.page-sheet-action{justify-self:end}.page-sheet-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:16px 16px calc(env(safe-area-inset-bottom) + 28px);flex:1;overflow-y:auto}.sheet-head{text-align:center;padding:0 8px 12px}.sheet-head h2{margin:0;font-size:17px}.sheet .card+.card{margin-top:10px}.menu-detail{color:var(--muted);font-size:13px;font-weight:400}.menu button:disabled{opacity:.4}.node-form{flex-direction:column;gap:14px;display:flex}.segmented.light{background:color-mix(in srgb, var(--text) 7%, transparent);display:flex}.segmented.light button{color:var(--text);flex:1}.segmented.light button.on{background:var(--card);color:var(--text);box-shadow:0 1px 3px #0000001f}.form-card{overflow:visible}.name-row{align-items:center;gap:12px;padding:10px 14px;display:flex}.name-input{background:0 0;border:0;outline:none;flex:1;min-width:0;min-height:48px;font-size:22px;font-weight:600}.name-input::placeholder{color:var(--muted);opacity:.6;font-weight:500}.location-row{text-align:left;cursor:pointer;border-radius:var(--radius);background:0 0;border:0;width:100%}.location-row:disabled{cursor:default}.location-row .row-sub:first-child{text-transform:uppercase;letter-spacing:.04em;font-size:12px}.empty-tile{background:var(--press);border:1.5px dashed var(--line)}.form-strip{margin-top:-2px}.thumb-remove{color:#fff;cursor:pointer;background:#0009;border:0;border-radius:12px;place-items:center;width:24px;height:24px;display:grid;position:absolute;top:5px;right:5px}.fields>*+*{border-top:1px solid var(--line)}.field-row{justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:6px 14px;display:flex}.field-row>span:first-child,.field-block>span:first-child{color:var(--muted);flex:none}.field-row input{text-align:right;background:0 0;border:0;outline:none;flex:1;min-width:0;min-height:40px;font-size:17px}.field-block{flex-direction:column;gap:8px;padding:12px 14px;display:flex}.field-block textarea{border:1px solid var(--line);background:var(--bg);width:100%;font:inherit;color:var(--text);resize:vertical;border-radius:10px;padding:10px 12px;font-size:17px}.stepper{align-items:center;gap:4px;display:flex}.stepper button{background:color-mix(in srgb, var(--accent) 12%, transparent);width:38px;height:38px;color:var(--accent);cursor:pointer;border:0;border-radius:10px;place-items:center;display:grid}.stepper button:disabled{opacity:.4}.stepper input{text-align:center;font-variant-numeric:tabular-nums;flex:none;width:56px;font-weight:600}.kind-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.kind{background:var(--card);box-shadow:var(--shadow);cursor:pointer;border:1.5px solid #0000;border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:10px 4px;font-size:13px;font-weight:500;display:flex}.kind.on{border-color:var(--accent);color:var(--accent)}.swatches{flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:6px 0;display:flex}.swatch{cursor:pointer;border:0;border-radius:14px;width:28px;height:28px;box-shadow:inset 0 0 0 1px #00000014}.swatch.on{box-shadow:0 0 0 2px var(--card), 0 0 0 4px var(--accent)}.more-button{align-self:flex-start;padding-left:4px}a.tag{text-decoration:none}.tags.big .tag{padding:6px 12px;font-size:15px}.tag-field{border:1px solid var(--line);background:var(--bg);border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px;min-height:44px;padding:6px 8px;display:flex}.tag-field input{background:0 0;border:0;outline:none;flex:1;min-width:120px;min-height:32px;font-size:17px}.tag.removable{align-items:center;gap:4px;padding-right:4px;display:inline-flex}.tag.removable button{width:20px;height:20px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;display:grid}.tag-suggestions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.tag.suggestion{border:1px dashed color-mix(in srgb, var(--accent) 50%, transparent);cursor:pointer;background:0 0;align-items:center;gap:4px;display:inline-flex}.search-field{background:color-mix(in srgb, var(--text) 7%, transparent);min-height:44px;color:var(--muted);border-radius:12px;align-items:center;gap:8px;padding:0 12px;display:flex}.search-field input{min-width:0;min-height:42px;color:var(--text);appearance:none;background:0 0;border:0;outline:none;flex:1;font-size:17px}.search-field input::-webkit-search-cancel-button{display:none}.search-field.big{background:var(--card);min-height:52px;box-shadow:var(--shadow);margin:14px 0 4px}.search-field.fake{background:var(--card);min-height:48px;box-shadow:var(--shadow);margin:14px 0 4px}.search-field.in-sheet{margin-bottom:12px}.search-field .clear{background:color-mix(in srgb, var(--muted) 35%, transparent);width:24px;height:24px;color:var(--card);cursor:pointer;border:0;border-radius:12px;place-items:center;display:grid}mark{color:inherit;background:#f2c94c73;border-radius:3px;padding:0 1px}.result .row-title{white-space:normal}.qty{color:var(--muted);font-weight:400}.path-line{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.match-note{color:var(--accent);font-size:12px}.list-empty{color:var(--muted);padding:18px 16px}.picker-list .row{text-align:left;cursor:pointer;background:0 0;border:0;width:100%}.picker-crumbs{margin:4px 0 12px}.picker-crumbs .link-button{min-height:0;font-size:15px}.picker-note{text-align:center;margin-top:20px}.room-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.room-card{background:linear-gradient(160deg, color-mix(in srgb, var(--room) 34%, var(--card)) 0%, color-mix(in srgb, var(--room) 12%, var(--card)) 100%);min-height:116px;box-shadow:var(--shadow);border-radius:18px;flex-direction:column;gap:2px;padding:12px 14px 14px;transition:transform .12s;display:flex;position:relative;overflow:hidden}.room-card:active{transform:scale(.98)}.room-card:after{content:"";background:color-mix(in srgb, var(--room) 30%, transparent);border-radius:50%;width:96px;height:96px;position:absolute;bottom:-28px;right:-28px}.room-card-top{margin-bottom:auto}.room-card-name{z-index:1;margin-top:14px;font-size:17px;font-weight:600;position:relative}.room-card-sub{color:var(--muted);z-index:1;font-size:13px;position:relative}.search-screen{padding-top:calc(env(safe-area-inset-top) + 18px)}.just-added{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent);border-radius:12px;align-items:center;gap:8px;margin:0;padding:10px 14px;animation:.2s ease-out toast-in;display:flex}.just-added span{color:var(--text);flex:1}.just-added .link-button{min-height:0}.section-title svg{vertical-align:-2px}.suggest{margin-top:-4px}.suggest .section-title{color:var(--accent);margin-left:4px}.suggest-list{flex-direction:column;gap:6px;display:flex}.suggest-chip{background:var(--card);width:100%;min-height:52px;box-shadow:var(--shadow);text-align:left;cursor:pointer;color:var(--text);border:1.5px solid #0000;border-radius:14px;align-items:center;gap:10px;padding:8px 12px;display:flex}.suggest-chip.on{border-color:var(--accent);color:var(--accent)}.suggest-chip.later{box-shadow:none;border:1.5px dashed var(--line);background:0 0}.later-tile{background:var(--press);color:var(--muted)}.suggest-text{flex-direction:column;flex:1;min-width:0;display:flex}.suggest-name{color:var(--text);font-weight:600}.suggest-reason{color:var(--muted);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:13px;display:-webkit-box;overflow:hidden}.suggest-none{margin:0 4px 4px}.suggested-places{margin-top:0}.browse-title{margin-top:18px}.tidy-screen{padding-top:calc(env(safe-area-inset-top) + 6px)}.back.plain{margin-left:-6px}.tidy-banner{border-radius:var(--radius);background:color-mix(in srgb, var(--accent) 12%, var(--card));box-shadow:var(--shadow);align-items:center;gap:12px;margin-top:12px;padding:12px 14px;display:flex}.tidy-group-head{justify-content:space-between;align-items:center;display:flex}.tidy-group-head .section-title{margin-bottom:4px}.tidy-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.tidy-card{padding:14px 14px 8px}.tidy-main{gap:12px;display:flex}.tidy-avatar{flex:none;height:44px;position:relative}.tidy-count{background:var(--accent);min-width:20px;height:20px;color:var(--accent-text);border-radius:10px;place-items:center;padding:0 5px;font-size:12px;font-weight:700;display:grid;position:absolute;bottom:-6px;right:-6px}.tidy-text{flex:1;min-width:0}.tidy-title{margin:0;font-weight:600}.tidy-detail{color:var(--muted);margin:2px 0 0;font-size:14px}.tidy-actions{justify-content:flex-end;align-items:center;gap:4px;margin-top:8px;display:flex}.small-button{text-overflow:ellipsis;white-space:nowrap;gap:6px;max-width:70%;min-height:40px;padding:0 14px;font-size:15px;overflow:hidden}.tidy-empty{color:var(--accent);flex-direction:column;align-items:center;gap:8px;display:flex}.tidy-empty p{color:var(--text)}.tidy-empty .muted{color:var(--muted)}.map-slot{height:clamp(230px,40vh,400px);margin:2px -4px 16px}.map-root{height:100%}.map-card{background:radial-gradient(120% 90% at 50% 0%, color-mix(in srgb, var(--accent) 10%, var(--card)) 0%, var(--card) 55%), var(--card);height:100%;box-shadow:var(--shadow), inset 0 0 0 1px var(--line);border-radius:22px;position:relative;overflow:hidden}@media (prefers-color-scheme:dark){.map-card{background:radial-gradient(120% 90% at 50% 0,#2a302b 0%,#1b1e1b 70%),#1b1e1b}}.map-card.expanded{z-index:60;box-shadow:none;border-radius:0;position:fixed;inset:0}.map-canvas{opacity:0;transition:opacity .5s}.map-canvas.ready{opacity:1}.map-loading{color:var(--muted);place-items:center;font-size:15px;display:grid;position:absolute;inset:0}.map-button{z-index:30;background:color-mix(in srgb, var(--card) 85%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:40px;height:40px;color:var(--text);cursor:pointer;border:0;border-radius:20px;place-items:center;display:grid;position:absolute;top:10px;right:10px;box-shadow:0 2px 10px #0000001f}.map-card.expanded .map-button{top:calc(env(safe-area-inset-top) + 10px);right:max(12px, env(safe-area-inset-right));border-radius:22px;width:44px;height:44px}.map-label{pointer-events:auto;background:color-mix(in srgb, var(--card) 88%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);max-width:160px;color:var(--text);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;-webkit-user-select:none;user-select:none;border:0;border-radius:999px;padding:3px 9px;font:600 12px/1.3 -apple-system,BlinkMacSystemFont,system-ui,sans-serif;display:inline-block;overflow:hidden;box-shadow:0 1px 6px #00000024}.map-label.room{padding:4px 11px;font-size:13px}.map-label.item{font-size:11px;font-weight:500}.map-label.accent{color:#fff;background:#ff6b3d;padding:4px 11px;font-size:13px;box-shadow:0 4px 14px #ff6b3d73}.map-crumbs{top:calc(env(safe-area-inset-top) + 12px);left:max(12px, env(safe-area-inset-left));z-index:30;scrollbar-width:none;gap:6px;display:flex;position:absolute;right:68px;overflow-x:auto}.map-crumbs::-webkit-scrollbar{display:none}.map-crumb{background:color-mix(in srgb, var(--card) 85%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);min-height:36px;color:var(--muted);cursor:pointer;border:0;border-radius:18px;flex:none;padding:0 12px;font-weight:500;box-shadow:0 2px 10px #0000001a}.map-crumb.on{color:var(--text);font-weight:600}.map-focus{left:max(12px, env(safe-area-inset-left));right:max(12px, env(safe-area-inset-right));bottom:calc(env(safe-area-inset-bottom) + 34px);z-index:30;background:color-mix(in srgb, var(--card) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);align-items:center;gap:10px;max-width:520px;margin:0 auto;padding:10px 10px 10px 12px;display:flex;position:absolute;box-shadow:0 10px 30px #0000002e}.map-hint{left:0;right:0;bottom:calc(env(safe-area-inset-bottom) + 10px);z-index:30;text-align:center;color:var(--muted);pointer-events:none;margin:0;font-size:12px;position:absolute}.hero-photo{cursor:zoom-in;background:0 0;border:0;border-radius:12px;padding:0}.hero-photo .tile{border-radius:14px}.map-labels{z-index:20;pointer-events:none;position:absolute;inset:0;overflow:hidden}.map-labels .map-label{will-change:transform;position:absolute;top:0;left:0}.update-banner{top:calc(env(safe-area-inset-top) + 8px);z-index:130;background:var(--card);white-space:nowrap;border-radius:14px;align-items:center;gap:4px;padding:4px 6px 4px 16px;font-size:15px;animation:.24s ease-out toast-in;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0000002e}a,button,.row,.tile,.thumb,.room-card,.tabbar,.topbar,.map-card,.suggest-chip,.kind,.tag{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}img{-webkit-user-drag:none}.details dd,.tidy-detail{-webkit-user-select:text;user-select:text}.tabbar{padding-left:max(28px, env(safe-area-inset-left));padding-right:max(28px, env(safe-area-inset-right))}@media (hover:none){.row:active,.room-card:active{background-color:var(--press)}}@media (hover:hover) and (pointer:fine){.row:hover,.menu button:hover,.suggest-chip:hover,.tree-row:hover{background-color:var(--press)}.room-card:hover{transform:translateY(-1px);box-shadow:0 6px 20px #00000014}.button:hover{filter:brightness(.97)}.text-button:hover,.link-button:hover{text-underline-offset:3px;text-decoration:underline}a.row:focus-visible,a.room-card:focus-visible,a.result:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}}kbd{border:1px solid var(--line);background:var(--bg);min-width:20px;height:20px;color:var(--muted);border-radius:5px;place-items:center;padding:0 5px;font:600 11px/1 -apple-system,BlinkMacSystemFont,system-ui,sans-serif;display:inline-grid}.layout{grid-template-columns:300px minmax(0,1fr);min-height:100dvh;display:grid}.content{min-width:0}.layout .screen{max-width:820px;padding-bottom:48px}.layout .map-slot{height:clamp(320px,46vh,520px)}.layout .topbar{padding-top:8px}.sidebar{border-right:1px solid var(--line);background:color-mix(in srgb, var(--card) 55%, var(--bg));flex-direction:column;gap:12px;height:100dvh;padding:16px 12px 12px;display:flex;position:sticky;top:0}.sidebar-head{align-items:center;gap:10px;padding:4px 6px;display:flex}.sidebar-head img{border-radius:7px}.sidebar-title{font-size:17px;font-weight:700}.sidebar-search{background:var(--card);min-height:38px;box-shadow:var(--shadow);font-size:15px}.sidebar-search span{flex:1}.sidebar-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.sidebar-actions .button{gap:6px;min-height:40px;font-size:15px}.sidebar-actions .button kbd{border-color:color-mix(in srgb, var(--accent-text) 40%, transparent);color:var(--accent-text);background:0 0}.sidebar-link{background:var(--card);min-height:40px;box-shadow:var(--shadow);color:var(--accent);border-radius:12px;justify-content:center;align-items:center;gap:6px;font-size:15px;font-weight:600;display:flex}.sidebar-link.on{outline:2px solid var(--accent)}.badge{background:var(--accent);min-width:20px;height:20px;color:var(--accent-text);border-radius:10px;place-items:center;padding:0 6px;font-size:12px;font-weight:700;display:inline-grid}.sidebar-tree{flex:1;margin:0 -4px;padding:0 4px;overflow-y:auto}.tree{margin:0;padding:0;list-style:none}.tree-row{border-radius:9px;align-items:center;gap:2px;min-height:34px;padding-right:6px;transition:background-color .1s;display:flex}.tree-row.on{background:color-mix(in srgb, var(--accent) 16%, transparent)}.tree-row.on .tree-name{font-weight:600}.tree-toggle{width:22px;height:22px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;padding:0;transition:transform .15s;display:grid}.tree-toggle.open{transform:rotate(90deg)}.tree-link{flex:1;align-items:center;gap:8px;min-width:0;padding:4px 0;font-size:14px;display:flex}.tree-link .tile{border-radius:6px}.tree-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tree-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.sidebar-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding-top:8px;display:flex}.sidebar-foot .text-button{font-size:14px}.drop-ok{background-color:color-mix(in srgb, var(--accent) 20%, transparent)!important;box-shadow:inset 0 0 0 2px var(--accent)!important}.room-card.drop-ok{transform:scale(1.02)}.breadcrumb a.drop-ok{border-radius:6px;padding:2px 6px}body.dragging-node .tree-row:not(.drop-ok),body.dragging-node .row:not(.drop-ok){transition:opacity .15s}[draggable=true]{-webkit-user-drag:element}.photo-drop.on .strip{outline:2px dashed var(--accent);outline-offset:4px;border-radius:14px}.shortcut-list li{justify-content:space-between;align-items:center;min-height:44px;padding:0 14px;display:flex}.shortcut-list li+li{border-top:1px solid var(--line)}.keys{gap:4px;display:flex}.shortcut-note{margin:14px 4px 0}.phone-sheet{text-align:left;flex-direction:column;align-items:center;gap:16px;display:flex}.qr{width:min(260px,70vw);box-shadow:var(--shadow);background:#fff;border-radius:20px;padding:14px}.qr svg{width:100%;height:auto;display:block}.phone-steps{flex-direction:column;gap:6px;margin:0;padding-left:22px;display:flex}.phone-steps code{background:var(--press);-webkit-user-select:all;user-select:all;border-radius:6px;padding:1px 6px;font-size:14px}.drop-no{opacity:.45}.map-error{text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex}.map-error p{max-width:300px;color:var(--text);margin:0}.map-zoom-hint{z-index:25;color:#fff;white-space:nowrap;pointer-events:none;opacity:0;background:#141614c7;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:500;transition:opacity .2s,transform .2s;position:absolute;bottom:14px;left:50%;transform:translate(-50%,6px)}.map-zoom-hint.show{opacity:1;transform:translate(-50%)}.map-card.expanded .map-zoom-hint{display:none}.map-card:not(.expanded) .map-canvas,.map-card:not(.expanded) .map-canvas *{touch-action:pan-y!important}.map-card.expanded .map-canvas,.map-card.expanded .map-canvas *{touch-action:none!important}.sync-indicator.ok{color:var(--accent)}.sync-indicator.busy{color:var(--muted)}.sync-indicator.busy svg{animation:1.4s linear infinite spin}.sync-indicator.warn{color:#d9822b}.sync-indicator.off{color:var(--muted);opacity:.7}@keyframes spin{to{transform:rotate(360deg)}}.sync-form{flex-direction:column;gap:12px;display:flex}.sync-intro{text-align:center;color:var(--accent);flex-direction:column;align-items:center;gap:6px;padding:8px 8px 4px;display:flex}.sync-intro h3{color:var(--text);margin:4px 0 0;font-size:20px}.sync-intro p{max-width:380px;margin:0}.sync-form input{border:1px solid var(--line);background:var(--card);min-height:50px;color:var(--text);border-radius:12px;padding:0 14px;font-size:17px}.code-input{text-align:center;letter-spacing:.3em;font-variant-numeric:tabular-nums;font-size:26px!important}.choice-list button{padding:12px 16px}.choice-list .menu-detail{white-space:normal}.sync-status{border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);align-items:center;gap:14px;padding:16px;display:flex}.sync-status.ok{color:var(--accent)}.sync-status.warn{color:#d9822b}.sync-status p{margin:0}.sync-status-title{color:var(--text);font-weight:600}.danger-text{color:var(--danger);align-self:center}.photo-drop-overlay{z-index:140;background:color-mix(in srgb, var(--bg) 78%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--accent);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:fixed;inset:0}.photo-drop-overlay:before{content:"";border:3px dashed var(--accent);border-radius:24px;position:absolute;inset:16px}.photo-drop-overlay p{color:var(--text);margin:0;font-size:20px;font-weight:600}.photo-hint{margin:6px 4px 0}
