@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/bvp-400-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/bvp-400-latin.woff2') format('woff2')}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/bvp-600-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/bvp-600-latin.woff2') format('woff2')}
:root{color-scheme:light;--page:#f6f5f2;--surface:#fff;--ink:#25231f;--muted:#625d55;--line:#ddd8cf;--accent:#a64908;--accent-soft:#fff0e4;--focus:#b95c20;--warn:#765017;--warn-bg:#fff4da;--radius:8px;--header:70px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--page);color:var(--ink);font:14px/1.55 "Be Vietnam Pro",sans-serif}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:var(--accent);text-underline-offset:3px}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.symbols,[hidden]{display:none!important}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}::selection{background:#f7d5ba;color:#35240f}input,textarea{caret-color:var(--accent)}*{scrollbar-width:thin;scrollbar-color:#aca49a var(--page)}h1,h2,h3,p{margin:0}h1,h2,h3,strong{font-weight:600}input::placeholder,textarea::placeholder{color:#756b60;opacity:1}
.topbar{height:var(--header);padding:0 28px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;line-height:1.35}.brand-mark{display:grid;place-items:center;width:36px;height:36px;background:var(--accent-soft);color:var(--accent);border-radius:6px}.brand-mark svg{width:25px;height:25px}.brand strong{font-size:16px;letter-spacing:-.02em}.brand-sub{display:block;font-size:12px;color:var(--muted)}.header-right{display:flex;align-items:center;gap:24px}.period{font-size:12px;color:var(--muted)}.account{position:relative;font-size:12px}.account summary{cursor:pointer;padding:12px 4px}.account-menu{position:absolute;right:0;top:100%;width:210px;padding:14px;background:var(--surface);box-shadow:0 8px 24px #302a1f24;border-radius:var(--radius)}.account-menu span{display:block;color:var(--muted);overflow-wrap:anywhere}.account-menu button{border:0;background:transparent;display:block;text-align:left;padding:12px 0;color:var(--accent);width:100%}
.button{min-height:44px;padding:11px 16px;border-radius:6px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font-weight:600;font-size:13px;transition:background-color .16s,color .16s}.primary{background:var(--accent);color:#fff}.primary:hover{background:#853806}.outline{background:var(--surface);border-color:var(--line)}.outline:hover,.quiet:hover{background:#eeeae4}.quiet{background:transparent;color:var(--muted)}.text-button{border:0;background:transparent;color:var(--accent);padding:8px 0;min-height:36px;font-size:12px;display:inline-flex;align-items:center;gap:5px}.text-button:hover{text-decoration:underline;text-underline-offset:3px}.text-button svg{width:16px;height:16px}.icon-button{display:inline-grid;place-items:center;min-width:44px;height:44px;background:transparent;border:0;border-radius:6px}.icon-button:hover{background:#ece7df}.icon-button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}
.login{max-width:1080px;margin:100px auto;display:grid;grid-template-columns:1.15fr .85fr;gap:100px;padding:24px 32px}.login-intro h1{font-size:38px;line-height:1.25;letter-spacing:-.03em;margin-bottom:24px}.login-intro>p{font-size:16px;color:var(--muted);max-width:47ch}.login-intro .login-note{margin:28px 0 12px;font-size:13px}.login-intro .login-help{font-size:12px;margin-top:16px;max-width:45ch}.login-details{padding-top:18px}.login-details h2{font-size:20px;margin-bottom:26px}.login-details dl{margin:0}.login-details dl>div{padding:22px 0;border-top:1px solid var(--line)}.login-details dt{font-weight:600;font-size:15px;margin-bottom:6px}.login-details dd{margin:0;color:var(--muted);max-width:35ch}
.workspace{display:grid;grid-template-columns:270px minmax(0,1fr);gap:32px;max-width:1520px;margin:auto;padding:28px}.filters{align-self:start;position:sticky;top:calc(var(--header) + 20px);max-height:calc(100dvh - var(--header) - 40px);overflow-y:auto;padding-right:14px}.filter-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.filter-heading h2{font-size:18px;letter-spacing:-.02em}fieldset{border:0;margin:0 0 22px;padding:0;min-width:0}legend,.field-label{font-weight:600;font-size:12px;margin-bottom:9px;display:block;width:100%}legend{padding:0}legend>span{font-size:12px;color:var(--accent);font-weight:400;margin-left:6px}.segments{display:flex;gap:2px;background:#eae6df;border-radius:7px;padding:3px}.segments label{flex:1;text-align:center;position:relative}.segments input{position:absolute;opacity:0;inset:0;margin:0;width:100%;height:100%;cursor:pointer}.segments span{display:block;padding:9px 3px;font-size:12px;border-radius:4px}.segments input:checked+span{background:var(--surface);font-weight:600}.segments input:focus-visible+span{outline:2px solid var(--focus)}.tower-group+.tower-group{margin-top:10px}.tower-group-name{font-size:12px;color:var(--muted);margin-bottom:6px}.check-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.tower-group .check-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.check-chip{position:relative;display:block}.check-chip input{position:absolute;opacity:0;inset:0;margin:0;width:100%;height:100%;cursor:pointer}.check-chip span{display:block;border:1px solid var(--line);border-radius:5px;background:var(--surface);text-align:center;font-size:12px;line-height:36px;white-space:nowrap}.check-chip input:checked+span{color:var(--accent);border-color:var(--accent);background:var(--accent-soft);font-weight:600}.check-chip input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}.range{display:grid;grid-template-columns:1fr 1fr;gap:8px}.range label>span{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}input:not([type=checkbox]):not([type=radio]),select,textarea{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:10px 11px;width:100%;min-height:44px;max-width:100%;font-size:14px}input[type=number]{appearance:textfield}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}fieldset legend select{width:auto;min-height:24px;padding:0 5px;border:0;font-size:12px;margin-left:5px;color:var(--accent)}.range input{font-size:12px!important;padding:10px 8px!important}.strict{display:flex;align-items:center;gap:7px;font-size:12px;margin-top:9px;color:var(--muted)}.strict input{accent-color:var(--accent);width:15px;height:15px}.more-filters{margin-top:18px}.more-filters>summary{font-size:12px;font-weight:600;cursor:pointer;min-height:40px;line-height:40px}.more-filters .field-label{margin-top:14px}.field-help{font-size:12px;color:var(--muted);margin:7px 0 14px}.filter-actions{display:grid;grid-template-columns:1fr;gap:4px;margin-top:18px}.saved-section{margin-top:22px;border-top:1px solid var(--line);padding-top:16px}.saved-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.saved-heading h3{font-size:12px}.saved-section select{font-size:12px}.scope-note{margin-top:22px;font-size:12px;line-height:1.6;color:var(--muted)}
.results-pane{min-width:0}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.page-heading h1{font-size:25px;letter-spacing:-.025em;line-height:1.3}.page-heading p{color:var(--muted);font-size:12px;margin-top:6px;font-variant-numeric:tabular-nums}.ai-form{background:var(--surface);border:1px solid var(--line);padding:18px;border-radius:8px}.ai-form>label{display:block;font-size:12px;font-weight:600;margin-bottom:9px}.ai-input-row{display:flex;align-items:stretch;gap:10px}.ai-input-row textarea{flex:1;resize:vertical;line-height:1.6;min-height:72px}.ai-input-row .button{align-self:stretch;flex-shrink:0;padding:10px 17px}.ai-examples{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:var(--muted)}.ai-examples button{background:#f4f1ed;border:0;border-radius:4px;padding:7px 9px;font-size:12px;min-height:32px}.ai-examples button:hover{color:var(--accent);background:var(--accent-soft)}.ai-examples>span{margin-left:2px}.active-filters{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0 4px;font-size:12px;color:var(--muted)}.active-filters>span{overflow-wrap:anywhere}.active-filters button{white-space:nowrap}.notice{padding:12px 14px;background:var(--warn-bg);color:var(--warn);border-radius:6px;font-size:12px;margin-top:16px;line-height:1.65}.notice.error{background:#ffebe8;color:#9d261a}.loading{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted);padding:18px 0}.loading progress{width:70px;height:5px;accent-color:var(--accent)}.results-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;border-bottom:1px solid var(--line);background:var(--page);position:sticky;top:var(--header);z-index:10}.result-tabs{display:flex;gap:20px}.result-tabs button{border:0;border-bottom:2px solid transparent;padding:14px 0;background:transparent;color:var(--muted);font-size:13px}.result-tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.result-tabs span{display:inline-block;font-size:12px;margin-left:5px;padding:1px 6px;background:#e9e5de;border-radius:4px;font-variant-numeric:tabular-nums}.result-tabs button[aria-selected=true] span{background:var(--accent-soft);color:var(--accent)}.view-toggle{display:flex;gap:2px}.result-context{font-size:12px;color:var(--muted);padding:12px 0;line-height:1.6}.empty{text-align:center;max-width:480px;padding:75px 20px;margin:auto}.empty>svg{width:32px;height:32px;color:#898073;margin-bottom:18px}.empty h2{font-size:18px;margin-bottom:10px}.empty p{font-size:13px;color:var(--muted);max-width:38ch;margin:auto}.results{background:var(--surface);border-radius:8px;overflow:hidden}.source{padding:24px 26px;border-bottom:1px solid var(--line)}.source:last-child{border-bottom:0}.source-head{display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--muted);font-size:12px;margin-bottom:16px;font-variant-numeric:tabular-nums}.source-head button{min-height:36px;min-width:36px}.source-text{white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;font-size:15px;line-height:1.75;max-width:72ch;margin:0}.source-image{margin:18px 0 0;border:0;background:#f1eee8;display:block;padding:0;max-width:420px;width:100%;cursor:zoom-in;border-radius:6px;overflow:hidden}.source-image img{width:100%;max-height:360px;display:block;object-fit:contain}.image-error{margin-top:12px;color:var(--muted);font-size:12px}.missing-note{font-size:12px;color:var(--warn);background:var(--warn-bg);padding:8px 10px;border-radius:4px;margin-bottom:14px}.table-wrap{overflow-x:auto}.source-table{width:100%;border-collapse:collapse;font-size:12px}.source-table th{text-align:left;background:#ece8e1;padding:12px 14px;font-weight:600;color:#484238;white-space:nowrap}.source-table td{padding:20px 14px;vertical-align:top;border-bottom:1px solid var(--line)}.source-table tbody tr:last-child td{border-bottom:0}.source-table .original-cell{min-width:320px;width:62%}.source-table .original-cell .source-text{font-size:14px}.source-table .meta-cell{font-variant-numeric:tabular-nums;min-width:75px;max-width:120px;overflow-wrap:anywhere}.meta-day{white-space:nowrap;font-size:12px;color:var(--muted)}.table-source-actions{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.source-table .source-image{max-width:280px}.scroll-sentinel{height:1px}.end-note{color:var(--muted);text-align:center;padding:22px 0 40px;font-size:12px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:80;padding:12px 18px;background:var(--ink);color:#fff;border-radius:6px;font-size:13px;box-shadow:0 5px 16px #302a1f24;max-width:calc(100% - 32px);white-space:nowrap}.image-dialog{padding:46px 12px 12px;background:var(--surface);border:0;border-radius:10px;max-width:96vw;max-height:94dvh}.image-dialog::backdrop{background:#211b13b3}.image-dialog img{display:block;max-width:calc(96vw - 24px);max-height:calc(94dvh - 70px);object-fit:contain}.image-dialog>.icon-button{position:absolute;right:5px;top:2px}.mobile-only{display:none}
@media(max-width:1100px){.workspace{grid-template-columns:240px minmax(0,1fr);gap:22px;padding:24px 20px}.source-table td,.source-table th{padding-left:10px;padding-right:10px}.source-table .original-cell{min-width:300px}.login{gap:50px;margin-top:65px}.ai-examples>span{width:100%;margin-top:3px}}
@media(max-width:760px){:root{--header:64px}.topbar{padding:0 16px;gap:10px}.brand{gap:9px}.brand strong{font-size:14px}.brand-sub{font-size:12px}.brand-mark{width:32px;height:32px}.header-right{gap:8px}.period{display:none}.account summary{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace{display:block;padding:20px 16px}.mobile-only{display:inline-flex}.filters{display:none;position:fixed;z-index:60;left:0;top:0;bottom:0;width:min(360px,92vw);padding:20px 24px 30px;background:var(--page);max-height:100dvh;overflow-y:auto}.filters.open{display:block}.filter-backdrop{position:fixed;inset:0;background:#25201585;z-index:50}.filter-heading{position:sticky;top:-20px;padding:12px 0;background:var(--page);z-index:2}.filters input:not([type=radio]):not([type=checkbox]),.filters select{font-size:16px}.filters .range input{font-size:16px!important}.filters legend select{font-size:13px;min-height:32px}.filter-actions{position:sticky;bottom:-30px;background:var(--page);padding:12px 0 16px;z-index:1}.page-heading{margin-bottom:18px}.page-heading h1{font-size:23px}.page-heading p{font-size:12px;max-width:35ch}.page-heading .button{padding:10px 12px;min-width:76px}.ai-form{padding:14px}.ai-input-row{display:block}.ai-input-row textarea{font-size:16px;min-height:94px}.ai-input-row .button{margin-top:8px;width:100%;min-height:44px}.ai-examples{gap:6px}.ai-examples>span{display:none}.active-filters{font-size:12px;gap:8px}.active-filters .text-button{font-size:12px}.result-tabs{gap:16px}.result-tabs button{font-size:12px}.results-toolbar{margin-top:14px}.view-toggle .icon-button{min-width:36px;width:36px;height:40px}.source{padding:19px 17px}.source-text{font-size:15px;line-height:1.75}.source-head{margin-bottom:12px}.results{border-radius:6px}.source-image{max-width:100%}.source-image img{max-height:420px}.source-table .original-cell{min-width:300px}.source-table td{padding-top:16px;padding-bottom:16px}.empty{padding:54px 14px}.empty p{font-size:13px}.login{display:block;margin:44px auto;padding:20px 24px;max-width:530px}.login-intro h1{font-size:31px}.login-intro>p{font-size:15px}.login-details{margin-top:48px}.login-details h2{font-size:18px}.login-details dl>div{padding:18px 0}.toast{bottom:calc(20px + env(safe-area-inset-bottom));white-space:normal;text-align:center}.image-dialog{max-width:96vw}.scope-note{font-size:12px}.strict{font-size:12px;min-height:32px}.result-context{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
@media(max-width:760px){body.filter-is-open{overflow:hidden}}
+.source-image img{aspect-ratio:3/2;height:auto}

/* Separate requirement forms retain their own inputs and budget units. */
.filters{display:flex;flex-direction:column;max-height:calc(100dvh - var(--header) - 48px);overflow:hidden}.filter-heading,.requirement-modes,.filter-actions,.saved-section,.scope-note{flex:none}.filter-scroll{min-height:0;overflow-y:auto;padding-right:8px;margin-top:16px;scrollbar-color:var(--line) transparent}.requirement-modes{padding:4px;display:flex;gap:4px}.requirement-modes button{flex:1;border:0;background:transparent;min-height:44px;padding:8px 6px;font-size:13px;color:var(--muted);border-radius:6px}.requirement-modes button[aria-pressed=true]{background:var(--surface);color:var(--ink);font-weight:600}.requirement-section{margin:0 0 26px;padding:0;border:0}.requirement-section legend{font-size:14px;margin-bottom:12px}.requirement-section .field-label{margin-top:14px}.requirement-section select,.requirement-section input:not([type=checkbox]){width:100%}.requirement-section .range input{width:100%}.zone-shortcut{display:block;width:100%;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);padding:10px 12px;margin-bottom:8px;text-align:left;min-height:44px;font-size:13px;font-weight:600;cursor:pointer}.zone-shortcut:hover{border-color:var(--accent);color:var(--accent)}.zone-shortcut[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.zone-shortcut:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.tower-group{margin-bottom:12px}.choice-label{font-size:12px;color:var(--muted);margin:14px 0 8px}.budget-preview{font-size:12px;color:var(--accent);margin:8px 0;line-height:1.6;min-height:0}.filter-actions{padding-top:12px;margin-top:0;border-top:1px solid var(--line)}.saved-section{margin-top:12px;padding-top:8px}.scope-note{margin-top:12px}.manual-intro{color:var(--muted);font-size:13px;line-height:1.65;max-width:65ch;margin:0 0 20px}.filters .strict{align-items:flex-start;line-height:1.6;padding:6px 0;min-height:44px}.filters .strict input{margin-top:4px;flex:none}.filters input{caret-color:var(--accent)}::selection{background:#f5d5bd;color:var(--ink)}
@media(max-width:760px){.filters{max-height:100dvh;padding:12px 20px 16px}.filters.open{display:flex}.filter-heading{position:static;padding:6px 0}.filter-scroll{padding-right:5px;margin-top:12px}.filter-actions{position:static;padding:12px 0 0}.requirement-modes button{font-size:14px}.manual-intro{font-size:13px}.scope-note{font-size:12px;margin-bottom:0}.requirement-section legend{font-size:15px}.requirement-section .check-chip span{font-size:12px}.filter-heading h2{font-size:20px}}

.requirement-section{min-width:0}.requirement-section .check-chip span{white-space:normal;overflow-wrap:anywhere;text-align:center}.requirement-section [data-choicegroup=view],.requirement-section [data-choicegroup=direction],.requirement-section [data-choicegroup=special]{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-scroll{overflow-x:hidden}
@media(max-width:760px){.filters:not(.open){display:none}}

.requirement-section .check-chip span{min-height:44px}.zone-shortcut{min-height:44px}

/* One choice across bedrooms and special property types. */
.requirement-section .bedroom-options{grid-template-columns:repeat(4,minmax(0,1fr))}.requirement-section .unit-type-options{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:8px}.requirement-section .unit-type-options span{overflow-wrap:normal;line-height:1.3;min-height:44px;display:flex;align-items:center;justify-content:center;padding:6px 2px}
