@font-face{font-family:Inter;src:url(/assets/Inter-VariableFont_opsz_wght-c8O0ljhh.ttf) format("truetype-variations");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Urbanist;src:url(/assets/Urbanist-VariableFont_wght-DzfMcl07.ttf) format("truetype-variations");font-weight:100 900;font-style:normal;font-display:swap}:root{--redline-red: #F65F61;--redline-plum: #6B3E47;--redline-blush: #FFE3E6;--redline-plum-hover: #824B56;--redline-plum-press: #58333A;--redline-blush-200: #FFC9CE;--redline-plum-900: #3A2226;--redline-plum-800: #55313A;--slate-50: #FAFBFB;--slate-100: #F3F4F6;--slate-200: #E8EAEE;--slate-300: #BEC2CC;--slate-400: #8A8F99;--slate-500: #555A65;--slate-600: #424852;--slate-700: #2D3139;--slate-800: #282B33;--slate-900: #202228;--slate-950: #121417;--rose-500: #f43f5e;--rose-50: #fff1f2;--amber-500: #f59e0b;--amber-50: #fffbeb;--emerald-500: #10b981;--emerald-50: #ecfdf5;--bg: #ffffff;--bg-muted: var(--slate-100);--bg-subtle: var(--slate-50);--surface: #ffffff;--surface-hover: rgba(255, 255, 255, .8);--overlay-scrim: rgba(0, 0, 0, .6);--fg: var(--slate-800);--fg-muted: var(--slate-500);--fg-subtle: var(--slate-400);--fg-disabled: var(--slate-300);--fg-inverse: #ffffff;--border: var(--slate-200);--border-strong: var(--slate-300);--ring: var(--accent);color-scheme:light;--accent: var(--redline-plum);--accent-hover: var(--redline-plum-hover);--accent-pressed: var(--redline-plum-press);--accent-fg: #ffffff;--accent-subtle: var(--redline-blush);--accent-subtle-strong: var(--redline-blush-200);--accent-glow: rgba(107, 62, 71, .35);--accent-glow-soft: rgba(107, 62, 71, .08);--redline-wordmark-fg: var(--redline-plum);--redline-tagline-fg: rgba(107, 62, 71, .6);--badge-success-bg: #F0FDF4;--badge-success-border: #BBF7D0;--badge-success-text: #166534;--badge-warn-bg: #FEF3C7;--badge-warn-text: #D97706;--badge-danger-text: #EF4444;--badge-danger-bg-hover:#FEF2F2;--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: "Urbanist", "Inter", ui-sans-serif, system-ui, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--radius-sm: 4px;--radius: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-xl: 14px;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgba(15,23,42,.05);--shadow-sm: 0 1px 2px 0 rgba(15,23,42,.05), 0 1px 3px 0 rgba(15,23,42,.07);--shadow-md: 0 4px 6px -1px rgba(15,23,42,.08), 0 2px 4px -2px rgba(15,23,42,.06);--shadow-lg: 0 10px 15px -3px rgba(15,23,42,.1), 0 4px 6px -4px rgba(15,23,42,.06);--shadow-focus: 0 0 0 3px rgba(107,62,71,.32);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--dur-fast: .12s;--dur-base: .18s;--dur-slow: .24s}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: var(--slate-950);--bg-muted: var(--slate-900);--bg-subtle: var(--slate-900);--surface: var(--slate-800);--surface-hover: rgba(255, 255, 255, .06);--overlay-scrim: rgba(0, 0, 0, .7);--fg: var(--slate-50);--fg-muted: var(--slate-300);--fg-subtle: var(--slate-400);--fg-disabled: var(--slate-500);--border: var(--slate-700);--border-strong: var(--slate-600);color-scheme:dark;--accent-subtle: var(--redline-plum-900);--accent-subtle-strong: var(--redline-plum-800);--redline-wordmark-fg: var(--redline-blush);--redline-tagline-fg: rgba(255, 227, 230, .6);--badge-success-bg: #10291B;--badge-success-border: #1C4A2C;--badge-success-text: #4ADE80;--badge-warn-bg: #3A2E12;--badge-warn-text: #FBBF24;--badge-danger-text: #F87171;--badge-danger-bg-hover: #3A1618}}:root[data-theme=dark]{--bg: var(--slate-950);--bg-muted: var(--slate-900);--bg-subtle: var(--slate-900);--surface: var(--slate-800);--surface-hover: rgba(255, 255, 255, .06);--overlay-scrim: rgba(0, 0, 0, .7);--fg: var(--slate-50);--fg-muted: var(--slate-300);--fg-subtle: var(--slate-400);--fg-disabled: var(--slate-500);--border: var(--slate-700);--border-strong: var(--slate-600);color-scheme:dark;--accent-subtle: var(--redline-plum-900);--accent-subtle-strong: var(--redline-plum-800);--redline-wordmark-fg: var(--redline-blush);--redline-tagline-fg: rgba(255, 227, 230, .6);--badge-success-bg: #10291B;--badge-success-border: #1C4A2C;--badge-success-text: #4ADE80;--badge-warn-bg: #3A2E12;--badge-warn-text: #FBBF24;--badge-danger-text: #F87171;--badge-danger-bg-hover: #3A1618}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);font-size:16px;line-height:1.5;color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{min-height:100vh}button{font-family:inherit}.btn{border-radius:var(--radius-full);border:none;cursor:pointer;font-family:var(--font-sans);font-weight:400;font-size:15px;transition:all var(--dur-base) var(--ease-in-out)}.btn-primary{background:var(--accent);color:var(--accent-fg)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);transform:scale(1.02)}.btn-primary:active:not(:disabled){background:var(--accent-hover);box-shadow:inset 0 1px 0 0 var(--accent-pressed)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{background:var(--bg-subtle);border:1px solid var(--border);color:var(--fg)}.btn-secondary:hover:not(:disabled){background:var(--surface-hover);transform:scale(1.02)}.btn-secondary:active:not(:disabled){background:var(--surface-hover);box-shadow:inset 0 1px #0000001a}.badge{border-radius:var(--radius);padding:3px 10px;font-size:11px;font-weight:500;display:inline-flex;align-items:center;gap:5px}.badge-success{background:var(--badge-success-bg);border:1px solid var(--badge-success-border);color:var(--badge-success-text)}.badge-neutral{background:var(--bg-muted);border:1px solid var(--border);color:var(--fg-muted)}@keyframes camera-flash{0%{opacity:1}to{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}.redline-logo[data-v-9d8ed3f6]{display:inline-flex;align-items:center;gap:calc(4px * var(--s));line-height:1;white-space:nowrap;-webkit-user-select:none;user-select:none}.symbol[data-v-9d8ed3f6]{display:block;width:calc(28.881px * var(--s));height:calc(28.881px * var(--s));flex-shrink:0}.text[data-v-9d8ed3f6]{display:inline-flex;align-items:baseline;gap:calc(6px * var(--s))}.wordmark[data-v-9d8ed3f6]{font-family:var(--font-sans);font-weight:700;font-size:calc(18px * var(--s));letter-spacing:-.01em}.red[data-v-9d8ed3f6]{color:var(--redline-red)}.line[data-v-9d8ed3f6]{color:var(--redline-wordmark-fg)}.tagline[data-v-9d8ed3f6]{font-family:var(--font-sans);font-weight:400;font-size:calc(12px * var(--s));color:var(--redline-tagline-fg)}.navbar[data-v-d29d7b8e]{background:var(--surface);border-bottom:1px solid var(--border);height:56px;display:flex;align-items:center;padding:0 20px;box-shadow:var(--shadow-sm);flex-shrink:0;position:relative;z-index:10}.logo[data-v-d29d7b8e]{margin-right:20px;flex-shrink:0}.spacer[data-v-d29d7b8e]{flex:1}.help-btn[data-v-d29d7b8e]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin-right:10px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--fg-muted);cursor:pointer;transition:all var(--dur-base) ease;flex-shrink:0}.help-btn[data-v-d29d7b8e]:hover{border-color:var(--accent-subtle-strong);background:var(--accent-subtle);color:var(--accent)}.comments-btn[data-v-d29d7b8e]{display:flex;align-items:center;gap:7px;padding:7px 14px;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);color:var(--fg);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--dur-base) ease}.comments-btn[data-v-d29d7b8e]:hover{border-color:var(--accent-subtle-strong);background:var(--accent-subtle)}.comments-btn.active[data-v-d29d7b8e]{border-color:var(--accent-subtle-strong);background:var(--accent-subtle);color:var(--accent)}.comments-btn.active[data-v-d29d7b8e]:hover{background:var(--accent-subtle-strong)}.submit-btn[data-v-d29d7b8e]{padding:8px 18px;border-radius:var(--radius-full);border:none;background:var(--accent);color:var(--accent-fg);cursor:pointer;font-family:var(--font-sans);font-size:13px;font-weight:500;transition:all var(--dur-base) ease}.submit-btn[data-v-d29d7b8e]:hover:not(:disabled){background:var(--accent-hover);transform:scale(1.02)}.submit-btn[data-v-d29d7b8e]:disabled{opacity:.4;cursor:not-allowed}.fab-wrap[data-v-3849f27f]{position:fixed;bottom:24px;right:24px;z-index:50;transition:opacity var(--dur-base) ease,transform var(--dur-base) ease}.fab-wrap.hidden[data-v-3849f27f]{opacity:0;pointer-events:none;transform:translateY(16px)}.fab[data-v-3849f27f]{width:64px;height:64px;border-radius:50%;border:none;background:var(--accent);color:var(--accent-fg);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px var(--accent-glow);font-family:var(--font-sans);font-size:30px;font-weight:300;transition:all var(--dur-base) ease}.fab[data-v-3849f27f]:hover:not(:disabled){background:var(--accent-hover);transform:scale(1.05)}.fab[data-v-3849f27f]:disabled{cursor:wait;opacity:.7}.plus[data-v-3849f27f]{line-height:1;font-weight:300;font-size:30px;margin-top:-2px}.camera-flash[data-v-f5b885da]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#fff;pointer-events:none;animation:camera-flash .15s ease-out forwards}.toast[data-v-f239a234]{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#1c1f26;color:#fff;font-size:12px;border-radius:var(--radius-md);padding:8px 16px;z-index:400;pointer-events:none;white-space:nowrap;box-shadow:var(--shadow-lg)}.end-screen[data-v-84645987]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;display:flex;align-items:center;justify-content:center;background:var(--bg-subtle);font-family:var(--font-sans);padding:24px}.card[data-v-84645987]{max-width:420px;text-align:center;display:flex;flex-direction:column;align-items:center}.brand[data-v-84645987]{margin-bottom:28px}.check-badge[data-v-84645987]{width:56px;height:56px;border-radius:50%;background:var(--badge-success-bg);color:var(--badge-success-text);display:flex;align-items:center;justify-content:center;margin-bottom:20px}h1[data-v-84645987]{font-family:var(--font-display);font-weight:700;font-size:20px;color:var(--fg);margin:0 0 12px}p[data-v-84645987]{font-size:14px;line-height:1.7;color:var(--fg-muted);margin:0 0 8px}p strong[data-v-84645987]{color:var(--fg)}.muted[data-v-84645987]{color:var(--fg-subtle);font-size:13px}.review-item[data-v-d1e2ac8d]{display:flex;gap:10px;padding:10px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);cursor:pointer;text-align:left;width:100%;transition:all var(--dur-base) ease}.review-item[data-v-d1e2ac8d]:hover{border-color:var(--accent-subtle-strong);box-shadow:0 2px 8px var(--accent-glow-soft)}.thumb[data-v-d1e2ac8d]{width:64px;height:48px;border-radius:var(--radius);overflow:hidden;flex-shrink:0;background:var(--bg-muted);border:1px solid var(--border)}.thumb img[data-v-d1e2ac8d]{width:100%;height:100%;object-fit:cover;display:block}.meta[data-v-d1e2ac8d]{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:3px}.title-row[data-v-d1e2ac8d]{display:flex;align-items:center;gap:6px}.title[data-v-d1e2ac8d]{font-size:12px;font-weight:600;color:var(--fg)}.floor-badge[data-v-d1e2ac8d]{font-size:10px;font-weight:500;color:var(--accent);background:var(--accent-subtle);border-radius:var(--radius-sm);padding:1px 6px;flex-shrink:0}.floor-name[data-v-d1e2ac8d]{flex:1;min-width:0;font-size:11px;color:var(--fg-subtle);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attach-badge[data-v-d1e2ac8d]{display:flex;align-items:center;gap:2px;flex-shrink:0;font-size:10px;font-weight:500;color:var(--fg-subtle);background:var(--bg-muted);border-radius:var(--radius-sm);padding:1px 6px}.excerpt[data-v-d1e2ac8d]{font-size:11px;color:var(--fg-muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.excerpt.empty[data-v-d1e2ac8d]{color:var(--fg-disabled);font-style:italic}.floor-group[data-v-b8d735aa]{margin-bottom:2px}.header[data-v-b8d735aa]{width:100%;display:flex;align-items:center;gap:6px;padding:4px 6px 3px;background:none;border:none;cursor:pointer}.floor-group.indented .header[data-v-b8d735aa]{padding-left:18px}.chevron[data-v-b8d735aa]{color:var(--fg-disabled);transition:transform var(--dur-base) ease}.chevron.collapsed[data-v-b8d735aa]{transform:rotate(-90deg)}.label[data-v-b8d735aa]{font-size:10px;font-weight:600;color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.07em}.count[data-v-b8d735aa]{font-size:10px;color:var(--fg-disabled);margin-left:2px}.items[data-v-b8d735aa]{display:flex;flex-direction:column;gap:4px;padding-bottom:4px}.floor-group.indented .items[data-v-b8d735aa]{padding-left:12px}.building-group[data-v-989409a4]{margin-bottom:4px;background:var(--bg-subtle);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border)}.header[data-v-989409a4]{width:100%;display:flex;align-items:center;gap:7px;padding:7px 8px;background:none;border:none;cursor:pointer}.building-icon[data-v-989409a4]{color:var(--fg-muted)}.chevron[data-v-989409a4]{color:var(--fg-subtle);transition:transform var(--dur-base) ease}.chevron.collapsed[data-v-989409a4]{transform:rotate(-90deg)}.label[data-v-989409a4]{font-size:11px;font-weight:700;color:var(--fg);flex:1;text-align:left}.count[data-v-989409a4]{font-size:10px;color:var(--fg-subtle);background:var(--border);border-radius:var(--radius-full);padding:1px 7px}.floors[data-v-989409a4]{padding:0 6px 6px}.panel[data-v-eeae996e]{width:360px;flex-shrink:0;background:var(--surface);border-left:1px solid var(--border);overflow:hidden;display:flex;flex-direction:column}.panel.mobile[data-v-eeae996e]{position:fixed;top:56px;left:0;right:0;bottom:0;width:auto;z-index:20;display:none}.panel.mobile.open[data-v-eeae996e]{display:flex}.header[data-v-eeae996e]{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;flex-shrink:0}.title[data-v-eeae996e]{font-size:13px;font-weight:600;color:var(--fg);flex:1;text-align:left}.collapse-all-btn[data-v-eeae996e],.close-btn[data-v-eeae996e]{border:none;background:none;cursor:pointer;color:var(--fg-subtle);padding:4px;border-radius:var(--radius);display:flex;flex-shrink:0}.collapse-all-btn[data-v-eeae996e]:hover,.close-btn[data-v-eeae996e]:hover{background:var(--bg-muted);color:var(--fg)}.content[data-v-eeae996e]{flex:1;overflow-y:auto;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.content[data-v-eeae996e]>*{flex-shrink:0}.empty[data-v-eeae996e]{display:flex;flex-direction:column;align-items:center;text-align:center;padding:48px 20px;color:var(--fg-disabled)}.empty-icon[data-v-eeae996e]{color:var(--border-strong);margin-bottom:12px}.empty p[data-v-eeae996e]{font-size:13px;line-height:1.6;margin:0}.empty-hint[data-v-eeae996e]{color:var(--fg-subtle);margin-top:2px}.demo-group[data-v-eeae996e]{margin-bottom:4px}.demo-group-label[data-v-eeae996e]{font-size:10px;font-weight:600;color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.07em;padding:4px 6px 3px;margin:0}.demo-item[data-v-eeae996e]{display:flex;gap:10px;padding:10px;border-radius:var(--radius-lg);border:1px dashed var(--border-strong);background:var(--bg-subtle)}.demo-item .thumb[data-v-eeae996e]{width:64px;height:48px;border-radius:var(--radius);overflow:hidden;flex-shrink:0;background:var(--bg-muted);border:1px solid var(--border)}.demo-item .thumb img[data-v-eeae996e]{width:100%;height:100%;object-fit:cover;display:block}.demo-item .meta[data-v-eeae996e]{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:3px}.demo-item .title-row[data-v-eeae996e]{display:flex;align-items:center;gap:6px}.demo-item .title[data-v-eeae996e]{font-size:12px;font-weight:600;color:var(--fg)}.demo-badge[data-v-eeae996e]{font-size:10px;font-weight:500;color:var(--fg-subtle);background:var(--bg-muted);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1px 6px}.demo-item .excerpt[data-v-eeae996e]{font-size:11px;color:var(--fg-muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.demo-item .excerpt.empty[data-v-eeae996e]{color:var(--fg-disabled);font-style:italic}.footer[data-v-eeae996e]{padding:12px 16px;border-top:1px solid var(--border);flex-shrink:0;background:var(--surface)}.footer-btn[data-v-eeae996e]{width:100%;height:56px;border-radius:var(--radius-full);border:none;background:var(--accent);color:var(--accent-fg);cursor:pointer;font-family:var(--font-sans);font-size:15px;font-weight:500;transition:all var(--dur-base) ease}.footer-btn[data-v-eeae996e]:hover:not(:disabled){background:var(--accent-hover);transform:scale(1.02)}.footer-btn[data-v-eeae996e]:disabled{background:#9ca3af;opacity:.45;cursor:not-allowed}.footer-btn.compact[data-v-eeae996e]{height:auto;padding:9px;font-size:13px}.tool-btn[data-v-497961d3]{width:34px;height:34px;border:none;border-radius:var(--radius-md);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--fg-muted);transition:all var(--dur-base) ease}.tool-btn.active[data-v-497961d3]{background:var(--surface);color:var(--accent);box-shadow:0 1px 3px #0000001a}.tool-btn[data-v-497961d3]:disabled{opacity:.4;cursor:not-allowed}.picker-wrap[data-v-cdd87cea]{position:relative;flex-shrink:0}.swatch-btn[data-v-cdd87cea]{display:flex;align-items:center;gap:5px;padding:5px 10px;border-radius:var(--radius-md);border:1.5px solid var(--border);background:var(--surface);cursor:pointer;transition:all var(--dur-base) ease;color:var(--fg-muted)}.swatch-btn.active[data-v-cdd87cea]{border-color:var(--accent);background:var(--accent-subtle)}.swatch-btn[data-v-cdd87cea]:disabled{opacity:.4;cursor:not-allowed}.swatch[data-v-cdd87cea]{width:18px;height:18px;border-radius:var(--radius-sm);border:1px solid rgba(0,0,0,.1);display:block}.scrim[data-v-cdd87cea]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10}.popover[data-v-cdd87cea]{position:absolute;top:calc(100% + 6px);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px;z-index:20;box-shadow:var(--shadow-lg);min-width:200px}.popover.left[data-v-cdd87cea]{left:0}.popover.right[data-v-cdd87cea]{right:0}.popover-label[data-v-cdd87cea]{font-size:11px;font-weight:600;color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}.grid[data-v-cdd87cea]{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.swatch-option[data-v-cdd87cea]{width:26px;height:26px;border-radius:50%;border:2.5px solid transparent;cursor:pointer;padding:0;transition:all .1s}.swatch-option.selected[data-v-cdd87cea]{border-color:var(--accent);outline:2px solid var(--accent-subtle-strong)}.attachment-list[data-v-33d6e420]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}.attachment[data-v-33d6e420]{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);cursor:pointer;transition:all var(--dur-base) ease}.attachment[data-v-33d6e420]:hover{border-color:var(--accent-subtle-strong)}.thumb[data-v-33d6e420]{width:28px;height:28px;border-radius:var(--radius);overflow:hidden;flex-shrink:0;background:var(--bg-muted);display:flex;align-items:center;justify-content:center;color:var(--fg-subtle)}.thumb img[data-v-33d6e420]{width:100%;height:100%;object-fit:cover;display:block}.meta[data-v-33d6e420]{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.filename[data-v-33d6e420]{font-size:11.5px;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.size[data-v-33d6e420]{font-size:10px;color:var(--fg-subtle)}.remove-btn[data-v-33d6e420]{border:none;background:none;cursor:pointer;color:var(--fg-subtle);padding:3px;border-radius:var(--radius);display:flex;flex-shrink:0}.remove-btn[data-v-33d6e420]:hover{background:var(--bg-muted);color:var(--fg)}.overlay[data-v-01977fe7]{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-scrim);z-index:100;display:flex;align-items:center;justify-content:center;font-family:var(--font-sans);transition:transform .2s ease-out}.sheet[data-v-01977fe7]{background:var(--surface);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg);animation:modal-in .2s ease-out}.sheet.desktop[data-v-01977fe7]{width:90vw;max-width:1000px;height:85vh;display:flex;flex-direction:column}.sheet.mobile[data-v-01977fe7]{width:90vw;height:85vh;position:relative;background:var(--bg-muted)}.toolbar[data-v-01977fe7],.top-bar[data-v-01977fe7]{background:var(--surface);border-bottom:1px solid var(--border);padding:8px 16px;display:flex;align-items:center;gap:10px;flex-shrink:0}.top-bar[data-v-01977fe7]{position:absolute;top:0;left:0;right:0;z-index:10;padding:8px 12px}.tool-group[data-v-01977fe7]{display:flex;gap:2px;background:var(--bg-muted);border-radius:var(--radius-lg);padding:3px}.sep[data-v-01977fe7]{width:1px;height:20px;background:var(--border);flex-shrink:0}.flex-spacer[data-v-01977fe7]{flex:1}.icon-btn[data-v-01977fe7]{border:none;background:none;cursor:pointer;color:var(--fg-subtle);padding:6px 8px;border-radius:var(--radius-md);display:flex;align-items:center;flex-shrink:0}.icon-btn[data-v-01977fe7]:hover{background:var(--bg-muted);color:var(--fg)}.size-slider[data-v-01977fe7]{display:flex;align-items:center;gap:8px;flex:1;max-width:180px}.size-slider.desktop[data-v-01977fe7]{flex:1;max-width:180px}.size-slider .dot[data-v-01977fe7]{border-radius:50%;background:var(--fg-subtle);display:inline-block;flex-shrink:0}.size-slider .dot.small[data-v-01977fe7]{width:5px;height:5px}.size-slider .dot.large[data-v-01977fe7]{width:10px;height:10px}.size-slider input[type=range][data-v-01977fe7]{flex:1;accent-color:var(--accent)}.body[data-v-01977fe7]{display:flex;flex:1;overflow:hidden}.canvas-area[data-v-01977fe7]{flex:2;position:relative;overflow:hidden;background:var(--bg-muted);-webkit-user-select:none;user-select:none;touch-action:none}.sheet.mobile .canvas-area[data-v-01977fe7]{position:absolute;top:0;right:0;bottom:0;left:0}.transform-wrap[data-v-01977fe7]{position:absolute;left:0;top:0;transform-origin:0 0;pointer-events:none}.transform-wrap img[data-v-01977fe7]{display:block;-webkit-user-select:none;user-select:none}.draw-canvas[data-v-01977fe7]{position:absolute;top:0;right:0;bottom:0;left:0;display:block}.float-actions[data-v-01977fe7]{position:absolute;bottom:12px;left:50%;transform:translate(-50%);display:flex;gap:8px;opacity:0;pointer-events:none;transition:opacity .25s ease;z-index:5}.float-actions.visible[data-v-01977fe7]{opacity:1;pointer-events:auto}.pill-btn[data-v-01977fe7]{padding:7px 14px;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);cursor:pointer;font-size:12px;color:var(--fg);font-family:var(--font-sans);box-shadow:var(--shadow-md);display:flex;align-items:center;gap:6px;transition:all var(--dur-base) ease}.pill-btn[data-v-01977fe7]:hover{background:var(--surface-hover);transform:scale(1.02)}.pill-btn.primary[data-v-01977fe7]{border:none;background:var(--accent);color:var(--accent-fg);padding:7px 16px}.pill-btn.primary[data-v-01977fe7]:hover{background:#0a6fe0}.hint[data-v-01977fe7]{position:absolute;bottom:12px;left:50%;transform:translate(-50%);background:#00000073;border-radius:var(--radius-full);padding:5px 12px;font-size:11px;color:#ffffffd9;white-space:nowrap;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:5}.cropped-badge[data-v-01977fe7]{position:absolute;top:10px;right:10px;background:var(--badge-success-bg);border:1px solid var(--badge-success-border);border-radius:var(--radius);padding:3px 10px;font-size:11px;font-weight:500;color:var(--badge-success-text);display:flex;align-items:center;gap:5px;z-index:5}.side-panel[data-v-01977fe7]{flex:1;display:flex;flex-direction:column;border-left:1px solid var(--border);min-width:240px;overflow:hidden}.text-area-wrap[data-v-01977fe7]{flex:1;overflow-y:auto;padding:20px 20px 0}.section-label[data-v-01977fe7]{font-size:12px;font-weight:600;color:var(--fg);margin:0 0 10px}.text-area-wrap textarea[data-v-01977fe7]{width:100%;min-height:120px;font-size:13px;border-radius:var(--radius-lg);border:1px solid var(--border);padding:10px 12px;resize:none;outline:none;font-family:var(--font-sans);color:var(--fg);line-height:1.6;box-sizing:border-box}.text-area-wrap textarea[data-v-01977fe7]:focus{border-color:var(--accent-subtle-strong)}.text-area-wrap textarea[data-v-01977fe7]:disabled{opacity:.6;cursor:not-allowed}.hidden-file-input[data-v-01977fe7]{display:none}.attachments-wrap[data-v-01977fe7]{padding:12px 20px 10px;flex-shrink:0;max-height:160px;overflow-y:auto}.attachments-header[data-v-01977fe7]{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.attachments-header .section-label[data-v-01977fe7]{margin:0}.attach-link[data-v-01977fe7]{display:flex;align-items:center;gap:5px;border:none;background:none;cursor:pointer;color:var(--accent);font-size:12px;font-family:var(--font-sans);padding:2px 4px}.attach-link[data-v-01977fe7]:hover{text-decoration:underline}.attach-link[data-v-01977fe7]:disabled{opacity:.4;cursor:not-allowed;text-decoration:none}.attach-error[data-v-01977fe7]{font-size:11px;color:var(--badge-danger-text);margin:0 0 8px}.side-panel .actions[data-v-01977fe7]{padding:12px 20px 20px;border-top:1px solid var(--border);display:flex;gap:8px;flex-shrink:0}.btn-cancel[data-v-01977fe7]{flex:1;padding:9px;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);cursor:pointer;font-size:13px;color:var(--fg);font-family:var(--font-sans);transition:all var(--dur-base) ease}.btn-cancel[data-v-01977fe7]:hover{background:var(--surface-hover);transform:scale(1.02)}.btn-save[data-v-01977fe7]{flex:2;padding:9px;border-radius:var(--radius-full);border:none;background:var(--accent);cursor:pointer;font-size:13px;color:var(--accent-fg);font-family:var(--font-sans);transition:all var(--dur-base) ease}.btn-save[data-v-01977fe7]:hover{background:#0a6fe0;transform:scale(1.02)}.btn-save[data-v-01977fe7]:disabled{opacity:.4;cursor:not-allowed}.bottom-bar[data-v-01977fe7]{position:absolute;left:0;right:0;bottom:0;z-index:10;background:var(--surface);border-top:1px solid var(--border);padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;gap:10px}.text-input[data-v-01977fe7]{flex:1;font-size:14px;border:1.5px solid var(--border);border-radius:var(--radius-full);padding:10px 16px;outline:none;font-family:var(--font-sans);color:var(--fg);background:var(--bg-subtle)}.text-input[data-v-01977fe7]:focus{border-color:var(--accent-subtle-strong)}.text-input[data-v-01977fe7]:disabled{opacity:.6;cursor:not-allowed}.send-btn[data-v-01977fe7]{width:44px;height:44px;border-radius:50%;border:none;background:var(--accent);color:var(--accent-fg);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px var(--accent-glow)}.send-btn[data-v-01977fe7]:disabled{opacity:.4;cursor:not-allowed}.attach-chips[data-v-01977fe7]{position:absolute;left:0;right:0;bottom:62px;z-index:10;display:flex;gap:6px;padding:0 12px 6px;overflow-x:auto}.chip[data-v-01977fe7]{display:flex;align-items:center;gap:4px;flex-shrink:0;white-space:nowrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-full);padding:4px 8px;font-size:11px;color:var(--fg)}.chip-name[data-v-01977fe7]{max-width:120px;overflow:hidden;text-overflow:ellipsis}.chip-remove[data-v-01977fe7]{border:none;background:none;cursor:pointer;color:var(--fg-subtle);display:flex;padding:0;flex-shrink:0}.attach-error.mobile[data-v-01977fe7]{position:absolute;left:12px;right:12px;bottom:100px;z-index:10;background:#0009;color:#fff;font-size:11px;padding:6px 10px;border-radius:var(--radius);text-align:center}.overlay[data-v-d1d9749e]{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-scrim);z-index:150;display:flex;align-items:center;justify-content:center;font-family:var(--font-sans)}.modal[data-v-d1d9749e]{background:var(--surface);border-radius:var(--radius-xl);width:82vw;max-width:860px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg)}.header[data-v-d1d9749e]{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.title[data-v-d1d9749e]{font-size:14px;font-weight:700;color:var(--fg);font-family:var(--font-display)}.actions[data-v-d1d9749e]{display:flex;gap:6px;align-items:center}.icon-btn[data-v-d1d9749e]{border:none;background:none;cursor:pointer;color:var(--fg-subtle);padding:4px 6px;border-radius:var(--radius);display:flex;align-items:center}.icon-btn[data-v-d1d9749e]:hover{background:var(--bg-muted);color:var(--fg)}.icon-btn[data-v-d1d9749e]:disabled{opacity:.4;cursor:not-allowed}.menu-wrap[data-v-d1d9749e]{position:relative}.menu-scrim[data-v-d1d9749e]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10}.menu[data-v-d1d9749e]{position:absolute;top:calc(100% + 4px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:4px;box-shadow:var(--shadow-lg);z-index:20;min-width:140px}.menu-item[data-v-d1d9749e]{width:100%;display:flex;align-items:center;gap:8px;padding:7px 10px;border:none;background:none;cursor:pointer;font-size:13px;color:var(--fg);border-radius:7px;font-family:var(--font-sans)}.menu-item[data-v-d1d9749e]:hover{background:var(--bg-muted)}.menu-item.danger[data-v-d1d9749e]{color:var(--badge-danger-text)}.menu-item.danger[data-v-d1d9749e]:hover{background:var(--badge-danger-bg-hover)}.menu-item[data-v-d1d9749e]:disabled{opacity:.5;cursor:not-allowed}.menu-item[data-v-d1d9749e]:disabled:hover{background:none}.confirm-delete[data-v-d1d9749e]{padding:24px;overflow-y:auto}.warn-badge[data-v-d1d9749e]{width:48px;height:48px;border-radius:var(--radius-md);background:var(--badge-warn-bg);display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:var(--badge-warn-text)}.confirm-delete h2[data-v-d1d9749e]{font-size:17px;font-weight:700;color:var(--fg);font-family:var(--font-display);margin-bottom:8px}.confirm-delete p[data-v-d1d9749e]{font-size:13px;color:var(--fg-muted);line-height:1.6;margin-bottom:24px}.confirm-actions[data-v-d1d9749e]{display:flex;gap:10px}.btn-cancel[data-v-d1d9749e]{flex:1;padding:10px;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);cursor:pointer;font-size:14px;color:var(--fg);font-family:var(--font-sans);transition:all var(--dur-base) ease}.btn-cancel[data-v-d1d9749e]:hover{background:var(--surface-hover);transform:scale(1.02)}.btn-confirm-danger[data-v-d1d9749e]{flex:2;padding:10px;border-radius:var(--radius-full);border:none;background:var(--badge-danger-text);cursor:pointer;font-size:14px;color:#fff;font-family:var(--font-sans);transition:all var(--dur-base) ease}.btn-confirm-danger[data-v-d1d9749e]:hover{transform:scale(1.02)}.body[data-v-d1d9749e]{display:flex;flex:1;overflow:hidden}.image-col[data-v-d1d9749e]{flex:2;overflow:hidden;background:var(--bg-subtle)}.image-col img[data-v-d1d9749e]{width:100%;height:100%;object-fit:contain;display:block}.text-col[data-v-d1d9749e]{flex:1;padding:20px;overflow-y:auto;border-left:1px solid var(--border);min-width:220px}.section-label[data-v-d1d9749e]{font-size:11px;font-weight:600;color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.description[data-v-d1d9749e]{font-size:13px;color:var(--fg);line-height:1.65}.description.empty[data-v-d1d9749e]{color:var(--fg-disabled);font-style:italic}.attachments-label[data-v-d1d9749e]{margin-top:20px}.overlay[data-v-e5a5d6b0]{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-scrim);z-index:200;display:flex;align-items:center;justify-content:center;font-family:var(--font-sans)}.modal[data-v-e5a5d6b0]{background:var(--surface);border-radius:var(--radius-xl);width:420px;padding:32px;box-shadow:var(--shadow-lg)}.loading[data-v-e5a5d6b0]{display:flex;flex-direction:column;align-items:center;gap:16px;padding:8px 0 16px}.spinner[data-v-e5a5d6b0]{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.loading p[data-v-e5a5d6b0]{font-size:14px;color:var(--fg-muted);margin:0}.warn-badge[data-v-e5a5d6b0]{width:48px;height:48px;border-radius:var(--radius-md);background:var(--badge-warn-bg);display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:var(--badge-warn-text)}h2[data-v-e5a5d6b0]{font-size:17px;font-weight:700;color:var(--fg);font-family:var(--font-display);margin-bottom:8px}p[data-v-e5a5d6b0]{font-size:13px;color:var(--fg-muted);line-height:1.6;margin-bottom:8px}p strong[data-v-e5a5d6b0]{color:var(--fg)}p.last[data-v-e5a5d6b0]{margin-bottom:24px}.actions[data-v-e5a5d6b0]{display:flex;gap:10px}.btn-cancel[data-v-e5a5d6b0]{flex:1;padding:10px;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);cursor:pointer;font-size:14px;color:var(--fg);font-family:var(--font-sans);transition:all var(--dur-base) ease}.btn-cancel[data-v-e5a5d6b0]:hover{background:var(--surface-hover);transform:scale(1.02)}.btn-confirm[data-v-e5a5d6b0]{flex:2;padding:10px;border-radius:var(--radius-full);border:none;background:var(--accent);cursor:pointer;font-size:14px;color:var(--accent-fg);font-family:var(--font-sans);transition:all var(--dur-base) ease}.btn-confirm[data-v-e5a5d6b0]:hover{background:#0a6fe0;transform:scale(1.02)}.btn-confirm[data-v-e5a5d6b0]:disabled{opacity:.4;cursor:not-allowed}.tutorial-overlay[data-v-3e7f96fd]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;font-family:var(--font-sans)}.scrim-full[data-v-3e7f96fd]{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c}.spotlight[data-v-3e7f96fd]{position:fixed;border-radius:var(--radius-lg);box-shadow:0 0 0 9999px #0000008c,0 0 0 3px #ffffffe6;transition:top .2s ease,left .2s ease,width .2s ease,height .2s ease;pointer-events:none}.skip-btn[data-v-3e7f96fd]{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;padding:10px 20px;border-radius:var(--radius-full);border:none;background:var(--rose-500);color:#fff;font-size:14px;font-weight:600;font-family:var(--font-sans);cursor:pointer;box-shadow:0 4px 16px #f43f5e8c;transition:all var(--dur-base) ease}.skip-btn[data-v-3e7f96fd]:hover{background:#e11d48;transform:translate(-50%) scale(1.04)}.bubble[data-v-3e7f96fd]{position:fixed;background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:18px 20px;animation:modal-in .2s ease-out}.step-count[data-v-3e7f96fd]{font-size:11px;font-weight:600;color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px}.bubble h3[data-v-3e7f96fd]{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--fg);margin:0 0 8px}.bubble .body[data-v-3e7f96fd]{font-size:13px;line-height:1.6;color:var(--fg-muted);margin:0 0 18px}.actions[data-v-3e7f96fd]{display:flex;align-items:center;gap:8px}.spacer[data-v-3e7f96fd]{flex:1}.btn-prev[data-v-3e7f96fd],.btn-next[data-v-3e7f96fd]{padding:8px 16px;border-radius:var(--radius-full);font-family:var(--font-sans);font-size:13px;cursor:pointer;transition:all var(--dur-base) ease}.btn-prev[data-v-3e7f96fd]{border:1px solid var(--border);background:var(--surface);color:var(--fg)}.btn-prev[data-v-3e7f96fd]:hover{background:var(--surface-hover);transform:scale(1.02)}.btn-next[data-v-3e7f96fd]{border:none;background:var(--accent);color:#fff}.btn-next[data-v-3e7f96fd]:hover{background:var(--accent-hover);transform:scale(1.02)}.app-root[data-v-2ae69283]{font-family:var(--font-sans);height:100vh;display:flex;flex-direction:column;background:var(--bg)}.body-row[data-v-2ae69283]{flex:1;display:flex;min-height:0}.map-area[data-v-2ae69283]{flex:1;position:relative;overflow:hidden;isolation:isolate}.map-wrapper[data-v-2ae69283]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}
