@charset "UTF-8";:root,[data-theme=weave]{--bg: #f3f4f9;--surface: #fcfcff;--surface-2: #eceef6;--surface-3: #e3e6f2;--line: #dfe2ee;--line-strong: #c9cde0;--ink: #1e2142;--ink-2: #4b5070;--ink-3: #636888;--primary: #3d42a0;--primary-ink: #ffffff;--primary-soft: #e6e7f7;--accent: #d9a03a;--accent-ink: #2b1d00;--accent-soft: #f8ecd2;--accent-text: #7a5410;--good: #1f7a6c;--good-soft: #dcefeb;--danger: #b2434f;--danger-soft: #f8e3e5;--glow-1: color-mix(in srgb, #3d42a0 9%, transparent);--glow-2: color-mix(in srgb, #d9a03a 11%, transparent);--scrim: rgba(20, 22, 40, .32);--shadow-sm: 0 1px 2px color-mix(in srgb, #1e2142 6%, transparent);--shadow: 0 1px 2px color-mix(in srgb, #1e2142 5%, transparent), 0 8px 24px color-mix(in srgb, #1e2142 6%, transparent);--shadow-lg: 0 20px 50px color-mix(in srgb, #1e2142 14%, transparent);color-scheme:light}[data-theme=sage]{--bg: #eef2ec;--surface: #fafcf8;--surface-2: #e5ebe2;--surface-3: #dce4d8;--line: #d6dfd2;--line-strong: #bfcbba;--ink: #1f2b23;--ink-2: #4a5a4f;--ink-3: #5f6f64;--primary: #3f7656;--primary-ink: #ffffff;--primary-soft: #e0ece3;--accent: #c28b45;--accent-ink: #2a1a05;--accent-soft: #f3e7d4;--accent-text: #7a5320;--good: #2f7d6f;--good-soft: #dbede8;--danger: #ad4c47;--danger-soft: #f5e1df;--glow-1: color-mix(in srgb, #3f7656 9%, transparent);--glow-2: color-mix(in srgb, #c28b45 11%, transparent);--scrim: rgba(20, 22, 40, .32);--shadow-sm: 0 1px 2px color-mix(in srgb, #1f2b23 6%, transparent);--shadow: 0 1px 2px color-mix(in srgb, #1f2b23 5%, transparent), 0 8px 24px color-mix(in srgb, #1f2b23 6%, transparent);--shadow-lg: 0 20px 50px color-mix(in srgb, #1f2b23 14%, transparent);color-scheme:light}[data-theme=paper]{--bg: #f5efe4;--surface: #fcf8f1;--surface-2: #eee6d7;--surface-3: #e6dccb;--line: #e3d8c5;--line-strong: #cfc0a6;--ink: #2f271c;--ink-2: #5d5141;--ink-3: #73654f;--primary: #985d33;--primary-ink: #ffffff;--primary-soft: #f1e2d3;--accent: #bf8f35;--accent-ink: #2a1c03;--accent-soft: #f2e5c8;--accent-text: #775619;--good: #3f7a62;--good-soft: #e0ecdf;--danger: #b04a3a;--danger-soft: #f6e0da;--glow-1: color-mix(in srgb, #985d33 9%, transparent);--glow-2: color-mix(in srgb, #bf8f35 11%, transparent);--scrim: rgba(20, 22, 40, .32);--shadow-sm: 0 1px 2px color-mix(in srgb, #2f271c 6%, transparent);--shadow: 0 1px 2px color-mix(in srgb, #2f271c 5%, transparent), 0 8px 24px color-mix(in srgb, #2f271c 6%, transparent);--shadow-lg: 0 20px 50px color-mix(in srgb, #2f271c 14%, transparent);color-scheme:light}[data-theme=mist]{--bg: #edf1f5;--surface: #f9fbfd;--surface-2: #e3e9f0;--surface-3: #d9e1ea;--line: #d6dee8;--line-strong: #bcc8d6;--ink: #1b2733;--ink-2: #475768;--ink-3: #5f7084;--primary: #336f9c;--primary-ink: #ffffff;--primary-soft: #dfeaf3;--accent: #cf9a45;--accent-ink: #2a1b03;--accent-soft: #f5e8d1;--accent-text: #7a5518;--good: #2c8072;--good-soft: #dbefeb;--danger: #b14a58;--danger-soft: #f6e1e5;--glow-1: color-mix(in srgb, #336f9c 9%, transparent);--glow-2: color-mix(in srgb, #cf9a45 11%, transparent);--scrim: rgba(20, 22, 40, .32);--shadow-sm: 0 1px 2px color-mix(in srgb, #1b2733 6%, transparent);--shadow: 0 1px 2px color-mix(in srgb, #1b2733 5%, transparent), 0 8px 24px color-mix(in srgb, #1b2733 6%, transparent);--shadow-lg: 0 20px 50px color-mix(in srgb, #1b2733 14%, transparent);color-scheme:light}[data-theme=dusk]{--bg: #14162c;--surface: #1b1e3a;--surface-2: #232747;--surface-3: #2a2f55;--line: #2f345c;--line-strong: #41477a;--ink: #e5e7f5;--ink-2: #b0b4d3;--ink-3: #8f93b6;--primary: #9da3f5;--primary-ink: #14162c;--primary-soft: #2a2e5c;--accent: #e3b456;--accent-ink: #241800;--accent-soft: #3a311a;--accent-text: #f0cd85;--good: #6fcfbd;--good-soft: #183a37;--danger: #f1909d;--danger-soft: #3d1f2a;--glow-1: color-mix(in srgb, #9da3f5 14%, transparent);--glow-2: color-mix(in srgb, #e3b456 10%, transparent);--scrim: rgba(0, 0, 0, .55);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .28);--shadow: 0 1px 2px rgba(0, 0, 0, .25), 0 8px 24px rgba(0, 0, 0, .22);--shadow-lg: 0 18px 50px rgba(0, 0, 0, .45);color-scheme:dark}[data-theme=forest]{--bg: #131b17;--surface: #19231e;--surface-2: #202c26;--surface-3: #26342d;--line: #2b3a32;--line-strong: #3d5045;--ink: #e2eae3;--ink-2: #b0c0b4;--ink-3: #8ea093;--primary: #8ccaa3;--primary-ink: #10201a;--primary-soft: #22392d;--accent: #dcb766;--accent-ink: #241a03;--accent-soft: #383019;--accent-text: #ecd294;--good: #7fd0be;--good-soft: #1a3a33;--danger: #ec9a95;--danger-soft: #3c2422;--glow-1: color-mix(in srgb, #8ccaa3 14%, transparent);--glow-2: color-mix(in srgb, #dcb766 10%, transparent);--scrim: rgba(0, 0, 0, .55);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .28);--shadow: 0 1px 2px rgba(0, 0, 0, .25), 0 8px 24px rgba(0, 0, 0, .22);--shadow-lg: 0 18px 50px rgba(0, 0, 0, .45);color-scheme:dark}[data-theme=ember]{--bg: #1b1714;--surface: #231e1a;--surface-2: #2b2520;--surface-3: #332c26;--line: #3a322b;--line-strong: #4f453b;--ink: #ede4d8;--ink-2: #c4b8a8;--ink-3: #a09484;--primary: #e2ab79;--primary-ink: #23170c;--primary-soft: #3d2e21;--accent: #d6b46b;--accent-ink: #241a05;--accent-soft: #3a321e;--accent-text: #e9cf94;--good: #9fcf9e;--good-soft: #263723;--danger: #ee9a8c;--danger-soft: #40251f;--glow-1: color-mix(in srgb, #e2ab79 14%, transparent);--glow-2: color-mix(in srgb, #d6b46b 10%, transparent);--scrim: rgba(0, 0, 0, .55);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .28);--shadow: 0 1px 2px rgba(0, 0, 0, .25), 0 8px 24px rgba(0, 0, 0, .22);--shadow-lg: 0 18px 50px rgba(0, 0, 0, .45);color-scheme:dark}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:11px;padding:10px 18px;min-height:42px;font-weight:600;font-size:14px;line-height:1.2;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease),box-shadow .18s var(--ease),transform .18s var(--ease)}.btn:active:not([disabled]){transform:translateY(1px)}.btn[disabled]{opacity:.5;cursor:not-allowed}.btn svg{flex:none}.btn-primary{background:var(--primary);color:var(--primary-ink);box-shadow:0 1px 2px color-mix(in srgb,var(--primary) 30%,transparent)}.btn-primary:hover:not([disabled]){background:color-mix(in srgb,var(--primary) 88%,var(--ink))}.btn-accent{background:var(--accent);color:var(--accent-ink)}.btn-accent:hover:not([disabled]){background:color-mix(in srgb,var(--accent) 88%,var(--ink))}.btn-ghost{background:var(--surface);border-color:var(--line);color:var(--ink)}.btn-ghost:hover:not([disabled]){border-color:var(--line-strong);background:var(--surface-2)}.btn-soft{background:var(--primary-soft);color:var(--primary)}.btn-soft:hover:not([disabled]){background:color-mix(in srgb,var(--primary-soft) 80%,var(--primary))}.btn-danger-soft{background:var(--danger-soft);color:var(--danger)}.btn-danger-soft:hover:not([disabled]){background:color-mix(in srgb,var(--danger-soft) 80%,var(--danger))}.btn-sm{min-height:34px;padding:6px 12px;font-size:13px;border-radius:9px}.btn-icon{width:40px;height:40px;min-height:0;padding:0;border-radius:11px;background:transparent;border:1px solid transparent;color:var(--ink-2);cursor:pointer;display:inline-grid;place-items:center}.btn-icon:hover{background:var(--surface-2);color:var(--ink)}.btn-icon[aria-expanded=true]{background:var(--surface-2);color:var(--ink);border-color:var(--line)}.link-btn{background:none;border:0;padding:0;color:var(--primary);font-weight:600;cursor:pointer;font-size:13px}.inp{width:100%;min-width:0;border:1px solid var(--line);background:var(--surface);border-radius:11px;padding:11px 13px;font-size:15px;font-weight:400;color:var(--ink);transition:border-color .15s var(--ease),box-shadow .15s var(--ease),background-color .15s var(--ease)}.inp::placeholder{color:var(--ink-3);opacity:.85}.inp:hover{border-color:var(--line-strong)}.inp:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 16%,transparent)}.inp.ng-invalid.ng-touched{border-color:var(--danger)}select.inp{appearance:none;padding-right:36px;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);background-position:calc(100% - 18px) 52%,calc(100% - 13px) 52%;background-size:5px 5px;background-repeat:no-repeat}textarea.inp{min-height:130px;resize:vertical;line-height:1.6}label.l{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:4px;row-gap:7px;font-size:13px;font-weight:600;color:var(--ink-2)}label.l>.inp,label.l>.hint,label.l>input,label.l>select,label.l>textarea{flex:0 0 100%}.req{color:var(--danger)}.hint{font-weight:400;color:var(--ink-3);font-size:12.5px}.err{color:var(--danger);font-size:13px;font-weight:500}.note{font-size:13px;color:var(--ink-3)}.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.fgrid .full{grid-column:1/-1}@media(max-width:600px){.fgrid{grid-template-columns:1fr}}.check{display:flex;align-items:center;gap:10px;padding:5px 6px;margin-inline:-6px;border-radius:8px;font-size:14px;cursor:pointer;color:var(--ink-2)}.check:hover{background:var(--surface-2);color:var(--ink)}.check input{accent-color:var(--primary);width:16px;height:16px;margin:0}.check .n{margin-left:auto;font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}.option-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.option-cards label{border:1px solid var(--line);border-radius:11px;padding:11px 13px;cursor:pointer;font-size:14px;display:flex;gap:9px;align-items:center;background:var(--surface);transition:border-color .15s var(--ease),background-color .15s var(--ease)}.option-cards label:hover{border-color:var(--line-strong)}.option-cards label:has(input:checked){border-color:var(--primary);background:var(--primary-soft);color:var(--ink)}.option-cards input{accent-color:var(--primary);margin:0}.seg{display:inline-flex;background:var(--surface-2);border-radius:13px;padding:4px;gap:4px;flex-wrap:wrap}.seg button{border:0;background:none;border-radius:10px;padding:9px 18px;font-weight:600;cursor:pointer;color:var(--ink-2);transition:background-color .18s var(--ease),color .18s var(--ease),box-shadow .18s var(--ease)}.seg button:hover{color:var(--ink)}.seg button[aria-pressed=true]{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-sm)}.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 13px;font-size:13px;cursor:pointer;color:var(--ink-2);font-weight:500;transition:all .15s var(--ease)}.chip:hover{border-color:var(--primary);color:var(--primary)}.chip[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{background:var(--surface-2);color:var(--ink-2);border-radius:7px;padding:3px 9px;font-size:12px;font-weight:500}.pill{border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;line-height:1.6;white-space:nowrap}.pill-type{background:var(--accent-soft);color:var(--accent-text)}.pill-ex{background:transparent;color:var(--ink-3);border:1px dashed var(--line-strong)}.pill-new{background:var(--good-soft);color:var(--good)}.verified{color:var(--good);font-weight:600;display:inline-flex;align-items:center;gap:4px}.surface{background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;display:grid;gap:11px;transition:border-color .18s var(--ease),box-shadow .18s var(--ease),transform .18s var(--ease)}.card.is-link{cursor:pointer;text-decoration:none;color:inherit}.card.is-link:hover{border-color:color-mix(in srgb,var(--primary) 45%,var(--line));box-shadow:var(--shadow);transform:translateY(-1px)}@media(max-width:560px){.card{padding:16px}}.meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:var(--ink-3);align-items:center}.meta>span{display:inline-flex;align-items:center;gap:5px}.price{font-family:var(--f-mono);font-weight:500;font-size:15px;white-space:nowrap;color:var(--ink);font-variant-numeric:tabular-nums}.avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;flex:none;font-family:var(--f-display);font-weight:700;color:#fff;font-size:17px;letter-spacing:.02em;box-shadow:inset 0 0 0 2px color-mix(in srgb,#fff 18%,transparent)}.stars{color:var(--accent);letter-spacing:1px}.empty{background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--r);padding:44px 20px;text-align:center;color:var(--ink-2)}.empty b{display:block;font-family:var(--f-display);font-size:18px;color:var(--ink);margin-bottom:6px}.banner{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:var(--accent-soft);color:var(--accent-text);border-radius:12px;padding:12px 16px;font-size:14px;margin-bottom:18px}.banner .btn{margin-left:auto}.facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.facts>div{background:var(--surface-2);border-radius:12px;padding:11px 13px;min-width:0}.facts span{display:block;font-size:12px;color:var(--ink-3)}.facts b{font-size:14px;font-weight:600;overflow-wrap:anywhere}.section-t{font-family:var(--f-display);font-size:17px;font-weight:700;margin:26px 0 10px;color:var(--ink)}.contact{display:flex;gap:8px;align-items:center;background:var(--surface-2);border-radius:12px;padding:10px 12px;font-family:var(--f-mono);font-size:14px;word-break:break-all}.contact span{-webkit-user-select:all;user-select:all}.contact .btn{margin-left:auto;font-family:var(--f-body)}.skeleton{background:linear-gradient(90deg,var(--surface-2) 0%,var(--surface-3) 50%,var(--surface-2) 100%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite;border-radius:var(--r)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.popover{position:absolute;top:calc(100% + 8px);right:0;z-index:50;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);padding:8px;min-width:240px;animation:pop .16s var(--ease)}@keyframes pop{0%{opacity:0;transform:translateY(-4px) scale(.98)}}.menu-item{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;text-align:left;text-decoration:none;color:var(--ink);padding:9px 10px;border-radius:10px;cursor:pointer;font-size:14px;font-weight:500}.menu-item:hover{background:var(--surface-2)}.menu-item[aria-checked=true]{background:var(--primary-soft)}.menu-label{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);padding:8px 10px 4px}html[lang=lo] .menu-label{text-transform:none;letter-spacing:0;font-size:12.5px}.menu-sep{height:1px;background:var(--line);margin:6px 4px}.results{display:grid;grid-template-columns:268px minmax(0,1fr);gap:28px;align-items:start;padding-top:10px;padding-bottom:64px}.results .main{min-width:0;scroll-margin-top:calc(var(--header-h) + 12px)}.bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}.bar h2{font-size:22px}.bar .count{color:var(--ink-3);font-size:14px}.bar .sort{width:auto;padding-block:8px;font-size:13.5px}.bar .filter-btn{display:none}.bar .badge{background:var(--primary);color:var(--primary-ink);border-radius:999px;font-size:11px;padding:0 7px;line-height:18px}.list{display:grid;gap:12px;transition:opacity .2s var(--ease)}.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px;transition:opacity .2s var(--ease)}.dim{opacity:.55}.more{display:flex;justify-content:center;margin-top:20px}.foot-note{margin-top:18px}@media(max-width:900px){.results{grid-template-columns:1fr;gap:14px}.bar .filter-btn{display:inline-flex}}.page{padding-top:34px;padding-bottom:64px}.page-h{font-size:clamp(26px,3.6vw,38px);margin-bottom:8px}.page-p{color:var(--ink-2);font-size:15.5px;margin:0 0 22px;max-width:62ch}:root{--f-display: "Bricolage Grotesque", "Noto Sans Lao", system-ui, sans-serif;--f-body: "Noto Sans", "Noto Sans Lao", system-ui, -apple-system, "Segoe UI", sans-serif;--f-mono: "IBM Plex Mono", "Noto Sans Lao", ui-monospace, monospace;--r-sm: 8px;--r: 14px;--r-lg: 20px;--header-h: 64px;--ease: cubic-bezier(.2, .7, .2, 1)}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}img{max-width:100%}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 12px)}body{margin:0;min-height:100dvh;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color .3s var(--ease),color .3s var(--ease)}html[lang=lo] body{line-height:1.75}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--primary);text-underline-offset:3px}::selection{background:var(--accent-soft);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0;letter-spacing:-.015em;color:var(--ink)}html[lang=lo] :is(h1,h2,h3){letter-spacing:0}p{text-wrap:pretty}.wrap{max-width:1200px;margin:0 auto;padding-inline:20px}@media(max-width:560px){.wrap{padding-inline:16px}}.spacer{flex:1}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
