:root{--paper: #f4f1e5;--surface: #f1ecdb;--card: #ffffff;--ink: #191c1a;--ink-soft: #667069;--line: #e3decb;--accent: #2f6f4e;--accent-ink: #ffffff;--shadow: 0 1px 2px rgba(20, 30, 25, .04), 0 1px 3px rgba(20, 30, 25, .06);--fit-high: #2f6f4e;--fit-mid: #c08a2e;--fit-low: #a8564a;--display: "EB Garamond", ui-serif, Georgia, serif;--ui: "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif;--body: "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif;--data: "JetBrains Mono", ui-monospace, monospace;--radius: 14px;--radius-sm: 10px;--pad: 16px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}.app{max-width:480px;margin:0 auto;padding:24px var(--pad) 64px}.masthead{margin-bottom:20px}.wordmark{font-family:var(--display);font-weight:600;font-size:32px;letter-spacing:-.005em;margin:0}.wordmark-btn{font:inherit;color:inherit;letter-spacing:inherit;padding:0;background:none;border:none;cursor:pointer}.tagline{color:var(--ink-soft);margin:4px 0 0;font-size:15px}.hero{min-height:72vh;display:flex;flex-direction:column;justify-content:center;padding:8px 0 20px}.hero-eyebrow{font-family:var(--data);font-weight:500;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 14px}.hero-title{font-family:var(--display);font-weight:600;font-size:44px;line-height:1.08;letter-spacing:-.01em;margin:0}.hero-lede{color:var(--ink-soft);font-size:17px;line-height:1.45;margin:14px 0 0;max-width:34ch}.value-props{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-direction:column;gap:14px}.value-prop{position:relative;padding-left:26px;font-size:15px;line-height:1.4}.value-prop:before{content:"";position:absolute;left:0;top:8px;width:8px;height:8px;border-radius:2px;background:var(--accent)}.value-prop strong{font-weight:600}.nobreak{white-space:nowrap}.scroll-cue{margin:30px 0 6px;font-size:13px;letter-spacing:.02em;color:var(--ink-soft)}.loading{display:flex;flex-direction:column;align-items:center;text-align:center;padding:64px 0}.spinner{width:56px;height:56px;border-radius:50%;border:5px solid var(--line);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-title{font-family:var(--ui);font-weight:700;font-size:19px;letter-spacing:-.01em;margin:22px 0 4px}.loading-sub{color:var(--ink-soft);font-size:14px;margin:0}.tabs{display:flex;gap:6px;margin-bottom:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:4px}.tab{flex:1;min-width:0;padding:9px 4px;font-family:var(--body);font-weight:600;font-size:13px;white-space:nowrap;color:var(--ink-soft);background:transparent;border:none;border-radius:8px;cursor:pointer}.tab.active{color:var(--ink);background:var(--card);box-shadow:var(--shadow)}.form-title{font-family:var(--ui);font-weight:700;font-size:20px;letter-spacing:-.02em;margin:0 0 16px}.name-step-title{text-align:center;margin-bottom:24px}.form-actions{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:4px}.listing-traits{font-size:13px;color:var(--ink-soft);margin:8px 0 0}.listing-actions{display:flex;align-items:center;gap:16px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.confirm-q{font-size:14px;margin-right:auto}.linkish.danger{color:var(--fit-low)}.linkish:disabled{opacity:.5;cursor:default}.status-tag{display:block;width:fit-content;margin:6px 0 0;padding:2px 8px;font-size:11px;font-weight:600;letter-spacing:.03em;color:var(--ink-soft);background:var(--surface);border:1px solid var(--line);border-radius:999px}.admin-block{margin:0 0 22px;padding:12px;border:1px dashed var(--line);border-radius:var(--radius-sm)}.admin-block-top{margin-bottom:18px}.admin-field{margin:14px 0 0}.admin-hint{display:block;margin-top:6px;font-size:12px;color:var(--ink-soft)}.admin-row{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}.admin-row-main{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px}.link-status{font-size:13px;color:var(--ink-soft)}.claim-banner{margin:0 0 18px;padding:12px 14px;font-size:14px;line-height:1.45;background:#2f6f4e12;border-left:3px solid var(--accent);border-radius:var(--radius-sm)}.claim-note{margin:0;font-size:13px;color:var(--ink-soft);text-align:center}.notice.notice-ok{border-left-color:var(--fit-high);margin-bottom:14px}.sheet-spacer{width:32px}.share-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-meta{margin:6px 0 0}.share-foot{display:flex;align-items:center;gap:16px;padding-top:12px;border-top:1px solid var(--line)}.share-close{margin-left:auto}.copy-row{display:flex;gap:8px}.copy-row input{flex:1;min-width:0}.copy-row input[type=text]{font-family:var(--data);font-size:13px}.copy-btn{flex-shrink:0;display:inline-grid;place-items:center;min-width:72px;padding:0 12px;font-family:var(--body);font-weight:600;font-size:14px;color:var(--accent);text-decoration:none;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer}.avatar{display:inline-grid;place-items:center;border-radius:50%;object-fit:cover;flex-shrink:0;background:var(--surface)}.avatar-initials{font-family:var(--ui);font-weight:700;line-height:1;-webkit-user-select:none;user-select:none}.who{display:inline-flex;align-items:center;gap:7px;padding:0;font-family:var(--body);font-size:13px;color:var(--ink-soft);background:none;border:none;cursor:pointer;vertical-align:middle}.who-name{text-decoration:underline;text-underline-offset:2px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:flex-end;justify-content:center;background:#141e1959}.sheet{width:100%;max-width:480px;max-height:92vh;overflow-y:auto;background:var(--card);border-radius:var(--radius) var(--radius) 0 0;padding:0 var(--pad) calc(var(--pad) + env(safe-area-inset-bottom))}.sheet-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;background:var(--card);border-bottom:1px solid var(--line)}.sheet-title{font-family:var(--ui);font-weight:700;font-size:16px}.sheet-close{width:32px;height:32px;font-size:16px;color:var(--ink);background:none;border:none;cursor:pointer}.sheet-save{padding:8px 16px;font-family:var(--ui);font-weight:700;font-size:14px;color:var(--accent-ink);background:var(--accent);border:none;border-radius:999px;cursor:pointer}.sheet-save:disabled{opacity:.5;cursor:default}.sheet-body{padding-top:20px}.avatar-preview{display:flex;justify-content:center;margin-bottom:22px}.avatar-options{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:8px}.avatar-option{display:grid;place-items:center;width:52px;height:52px;font-family:var(--ui);font-weight:700;font-size:20px;background:var(--surface);border:2px solid transparent;border-radius:50%;cursor:pointer}.avatar-option.on{border-color:var(--ink)}.avatar-option input{display:none}.avatar-hint{text-align:center;margin:0 0 18px}.owner-row{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:14px}.owner-name{font-weight:600}.owner-msg{margin-left:auto;font-weight:600}.sample-tag{display:block;width:fit-content;margin:12px 0 0;padding:3px 9px;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);background:var(--surface);border:1px solid var(--line);border-radius:999px}.thread-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.thread-row{width:100%;display:flex;align-items:flex-start;gap:12px;padding:var(--pad);text-align:left;font-family:var(--body);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer}.thread-row.unread{border-color:var(--accent)}.thread-main{flex:1;min-width:0}.thread-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.thread-name{font-weight:700;font-size:15px;color:var(--ink)}.thread-time{font-size:12px;color:var(--ink-soft);flex-shrink:0}.thread-room{display:block;font-family:var(--data);font-size:12px;color:var(--ink-soft);margin:2px 0 4px}.thread-snippet{display:block;font-size:14px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.thread-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-left:7px;vertical-align:middle}.thread-item{position:relative}.thread-row{padding-right:42px}.thread-delete{position:absolute;right:10px;bottom:10px;width:28px;height:28px;display:grid;place-items:center;font-size:13px;line-height:1;color:var(--ink-soft);background:transparent;border:none;border-radius:50%;cursor:pointer}.thread-delete:hover{color:var(--fit-low);background:var(--surface)}.thread-confirm{position:absolute;right:10px;bottom:8px;display:flex;align-items:center;gap:10px;padding:5px 10px;font-size:13px;background:var(--card);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow)}.thread-head{margin-bottom:12px}.thread-about{display:flex;align-items:center;gap:12px}.thread-about-photo{width:56px;height:42px;object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0}.thread-about-name{display:flex;align-items:center;gap:7px;font-weight:700;margin:0 0 2px}.bubbles{display:flex;flex-direction:column;gap:8px;margin:16px 0}.bubble{max-width:82%;align-self:flex-start;padding:10px 13px;background:var(--surface);border:1px solid var(--line);border-radius:14px 14px 14px 4px}.bubble.mine{align-self:flex-end;color:var(--accent-ink);background:var(--accent);border-color:var(--accent);border-radius:14px 14px 4px}.bubble p{margin:0;font-size:15px;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}.bubble-time{display:block;margin-top:4px;font-size:11px;opacity:.7}.composer{display:flex;align-items:flex-end;gap:8px}.composer textarea{flex:1;min-width:0;padding:11px 12px;font-family:var(--body);font-size:16px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);resize:none}.composer .composer-send{width:auto;flex-shrink:0;padding:12px 18px}.card-media{position:relative}.save-btn{position:absolute;top:10px;right:10px;z-index:1;width:36px;height:36px;display:grid;place-items:center;font-size:18px;line-height:1;color:var(--ink);background:#ffffffeb;border:1px solid var(--line);border-radius:50%;box-shadow:var(--shadow);cursor:pointer;transition:transform .12s ease,color .12s ease}.save-btn:hover{transform:scale(1.06)}.save-btn.on{color:var(--fit-low)}.excluded-head{margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}.room-photo{display:block;width:100%;aspect-ratio:3 / 2;object-fit:cover;border-radius:var(--radius-sm);background:var(--surface);margin-bottom:12px}.room-photo-empty{display:grid;place-items:center;color:var(--ink-soft);font-size:13px;border:1px dashed var(--line)}.listing .room-photo{aspect-ratio:16 / 9}.gallery{margin-bottom:12px}.gallery-strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;border-radius:var(--radius-sm)}.gallery-strip::-webkit-scrollbar{display:none}.gallery-strip .room-photo{flex:0 0 100%;scroll-snap-align:center;margin-bottom:0;border-radius:0}.gallery-dots{display:flex;justify-content:center;gap:6px;margin-top:8px}.gallery-dots .dot{width:6px;height:6px;border-radius:50%;background:var(--line);transition:background .16s ease}.gallery-dots .dot.on{background:var(--accent)}.photo-grid{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:10px}.photo-item{position:relative;display:flex;align-items:center;gap:12px}.photo-item img{width:88px;height:66px;object-fit:cover;border-radius:var(--radius-sm);background:var(--surface);flex-shrink:0}.cover-badge{position:absolute;top:4px;left:4px;padding:2px 6px;font-size:10px;font-weight:600;letter-spacing:.04em;color:var(--accent-ink);background:var(--accent);border-radius:4px}.photo-item-actions{display:flex;gap:14px}.photo-actions{display:flex;align-items:center;gap:16px}.photo-pick{font-family:var(--body);font-weight:600;font-size:14px;color:var(--accent);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.photo-pick input{display:none}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.field{margin-bottom:18px}.field:last-of-type{margin-bottom:22px}.field>label,.field>.field-label{display:block;font-weight:600;font-size:14px;margin-bottom:6px}.hint{display:block;font-weight:400;color:var(--ink-soft);font-size:13px;margin-bottom:8px}textarea{display:block;width:100%;padding:12px;font-family:var(--body);font-size:16px;line-height:1.5;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);resize:vertical}.char-count{display:block;margin-top:6px;font-size:12px;color:var(--ink-soft);text-align:right}input[type=number],input[type=text],select{width:100%;padding:12px;font-family:var(--body);font-size:16px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm)}.budget-input{display:flex;align-items:stretch;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.budget-input:focus-within{outline:2px solid var(--accent);outline-offset:2px}.budget-prefix{display:flex;align-items:center;padding-left:12px;color:var(--ink-soft);font-size:16px}.budget-input input{flex:1;width:auto;min-width:0;padding:12px 8px;background:transparent;border:none;border-radius:0}.budget-input input:focus-visible{outline:none}.budget-input input[type=number]::-webkit-outer-spin-button,.budget-input input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.budget-input input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.stepper{display:flex;flex-direction:column;border-left:1px solid var(--line)}.stepper button{flex:1;padding:0 13px;font-size:9px;line-height:1;color:var(--ink-soft);background:transparent;border:none;cursor:pointer}.stepper button:first-child{border-bottom:1px solid var(--line)}.stepper button:hover{color:var(--accent-ink);background:var(--accent)}.range-wrap{--thumb: 22px;position:relative;padding-top:34px}.range{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:8px;margin:0;border-radius:999px;outline:none;cursor:pointer;background:linear-gradient(to right,var(--accent) calc(var(--pct) * 1%),var(--line) calc(var(--pct) * 1%))}.range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:var(--thumb);height:var(--thumb);border-radius:50%;background:var(--card);border:3px solid var(--accent);box-shadow:var(--shadow);cursor:pointer}.range::-moz-range-thumb{width:var(--thumb);height:var(--thumb);border-radius:50%;background:var(--card);border:3px solid var(--accent);box-shadow:var(--shadow);cursor:pointer}.range::-moz-range-track{background:transparent}.range-bubble{position:absolute;top:0;left:calc(var(--pct) * (100% - var(--thumb)) / 100 + var(--thumb) / 2);transform:translate(-50%);padding:4px 9px;font-family:var(--data);font-weight:700;font-size:13px;line-height:1;color:var(--paper);background:var(--ink);border-radius:8px;pointer-events:none}.range-bubble:after{content:"";position:absolute;left:50%;bottom:-3px;width:8px;height:8px;background:var(--ink);transform:translate(-50%) rotate(45deg)}.range-wrap.is-unset .range{background:var(--line)}.range-wrap.is-unset .range::-webkit-slider-thumb{border-color:var(--ink-soft)}.range-wrap.is-unset .range::-moz-range-thumb{border-color:var(--ink-soft)}.range-wrap.is-unset .range-bubble,.range-wrap.is-unset .range-bubble:after{background:var(--ink-soft)}.scale-ends{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-soft);margin-top:8px}.checks{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}.check{display:flex;align-items:center;gap:10px;font-size:15px;cursor:pointer}.check input{width:18px;height:18px;accent-color:var(--fit-high)}.submit{width:100%;padding:14px;font-family:var(--ui);font-weight:700;font-size:16px;letter-spacing:-.01em;color:var(--accent-ink);background:var(--accent);border:none;border-radius:var(--radius-sm);cursor:pointer}.submit:disabled{opacity:.55;cursor:default}.linkish{background:none;border:none;padding:0;font-family:var(--body);font-size:14px;color:var(--accent);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.results-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:8px 0 14px}.results-count{font-family:var(--ui);font-weight:700;font-size:19px;letter-spacing:-.02em;margin:0}.filtered-note{font-size:13px;color:var(--ink-soft);margin:-6px 0 16px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--pad);margin-bottom:12px}.card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.room-title{font-family:var(--ui);font-weight:700;font-size:17px;line-height:1.25;letter-spacing:-.01em;margin:0 0 4px}.room-meta{font-family:var(--data);font-size:13px;color:var(--ink-soft);margin:0}.gauge{position:relative;width:60px;height:60px;flex-shrink:0}.gauge-hero{width:96px;height:96px}.gauge svg{width:100%;height:100%;transform:rotate(-90deg)}.gauge-track{fill:none;stroke:var(--line);stroke-width:8}.gauge-fill{fill:none;stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset .52s ease-out}.gauge-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.gauge-num{font-family:var(--data);font-weight:700;font-size:18px;line-height:1}.gauge-hero .gauge-num{font-size:30px}.gauge-cap{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin-top:2px}.gauge-hero .gauge-cap{font-size:11px}.over-budget-tag{display:inline-block;margin:6px 0 0;padding:2px 8px;font-size:11px;font-weight:600;letter-spacing:.03em;color:var(--fit-low);background:#a8564a1a;border-radius:999px}.receipt{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.factor{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center;margin-bottom:14px}.factor:last-child{margin-bottom:0}.factor-name{font-size:14px;font-weight:600}.factor-pts{font-family:var(--data);font-size:13px;color:var(--ink-soft)}.bar{grid-column:1 / -1;height:8px;border-radius:999px;background:var(--line);overflow:visible;margin:7px 0 8px}.bar>span{display:block;height:100%;border-radius:999px;background:var(--fill);position:relative;transition:width .26s ease-out}.bar>span:after{content:"";position:absolute;right:0;top:50%;width:14px;height:14px;border-radius:50%;background:var(--card);border:3px solid var(--fill);transform:translate(50%,-50%);box-shadow:var(--shadow)}.factor-reason{grid-column:1 / -1;font-size:13px;color:var(--ink-soft)}.toggle{margin-top:12px;background:none;border:none;padding:0;font-family:var(--body);font-weight:600;font-size:14px;color:var(--ink);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.toggle-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:12px}.toggle-row .toggle{margin-top:0}.room-desc{margin-top:14px;border-top:1px solid var(--line);padding-top:12px;font-size:14px;line-height:1.55;white-space:pre-line;overflow-wrap:anywhere}.notice{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--fit-low);border-radius:var(--radius);padding:var(--pad);font-size:15px}.notice p{margin:0 0 10px}.notice p:last-child{margin-bottom:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.signed-in{font-size:13px;color:var(--ink-soft);margin:10px 0 0}input[type=email],input[type=password]{width:100%;padding:12px;font-family:var(--body);font-size:16px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm)}.auth-error,.auth-info{font-size:14px;margin:12px 0 0}.auth-error{color:var(--fit-low)}.auth-info{color:var(--fit-high)}.auth-switch{font-size:14px;color:var(--ink-soft);margin:16px 0 0;text-align:center}.auth-forgot{margin:16px 0 0;text-align:center}.auth-forgot .linkish{font-weight:600}.password-input{display:flex;align-items:stretch;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.password-input:focus-within{outline:2px solid var(--accent);outline-offset:2px}.password-input input{flex:1;width:auto;min-width:0;background:transparent;border:none;border-radius:0}.password-input input:focus-visible{outline:none}.peek{padding:0 14px;font-family:var(--body);font-weight:600;font-size:13px;color:var(--ink-soft);background:transparent;border:none;border-left:1px solid var(--line);cursor:pointer}.peek:hover{color:var(--accent)}
