@font-face{font-family:Trip Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../../../fonts/noto-0.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Trip Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../../../fonts/noto-1.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Trip Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../../../fonts/noto-2.woff2) format("woff2");unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Trip Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../../../fonts/noto-3.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Trip Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../../../fonts/noto-4.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Trip Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../../../fonts/noto-5.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:Trip Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../../../fonts/noto-6.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Trip Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../../../fonts/noto-7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Trip Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../../../fonts/noto-0.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Trip Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../../../fonts/noto-1.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Trip Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../../../fonts/noto-2.woff2) format("woff2");unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Trip Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../../../fonts/noto-3.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Trip Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../../../fonts/noto-4.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Trip Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../../../fonts/noto-5.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:Trip Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../../../fonts/noto-6.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Trip Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../../../fonts/noto-7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Trip Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../../../fonts/noto-8.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Trip Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../../../fonts/noto-9.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Trip Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../../../fonts/noto-10.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Trip Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../../../fonts/noto-8.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Trip Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../../../fonts/noto-9.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Trip Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../../../fonts/noto-10.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:Trip Sans,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#eeeede;background:#141a17;font-synthesis:none;font-weight:400;--bg:#171e1a;--panel:#1b231ef5;--raised:#252f27;--line:#ffffff13;--text:#eeeede;--muted:#9aa698;--accent:#d9ef9a;--accent-dark:#1f2c13;--danger:#f5a796;--shadow:0 20px 80px #0004;color-scheme:dark}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.42;cursor:default}button,a{touch-action:manipulation}button{border:0;background:none;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}a{color:inherit;text-decoration:none}p{font-size:14px;line-height:1.65}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.035em}h1{font-size:36px;line-height:1.12;font-weight:550;margin-bottom:14px}h2{font-size:22px;font-weight:550}h3{font-size:16px;font-weight:550;margin:0 0 12px}small{font-size:11px;line-height:1.5;color:var(--muted)}em{font-family:Georgia,Times New Roman,serif;font-weight:400;letter-spacing:-.04em;color:var(--accent)}svg{flex-shrink:0}input,select,textarea{border:1px solid var(--line);background:var(--raised);border-radius:11px;color:var(--text);padding:12px 13px;width:100%;font-size:14px;min-height:45px;outline:none}input::placeholder,textarea::placeholder{color:#839080}textarea{resize:vertical;line-height:1.6}input[type=checkbox]{width:17px;min-height:17px;height:17px;accent-color:var(--accent);cursor:pointer}select{appearance:auto}input[type=date],input[type=time]{max-width:100%;color-scheme:dark}label,.field-label{font-size:12px;font-weight:500;display:block;letter-spacing:.01em;margin-bottom:7px}.muted{color:var(--muted);font-size:13px}.eyebrow{font-size:9px;letter-spacing:.16em;text-transform:uppercase;font-weight:650;line-height:1.6;display:flex;align-items:center;gap:7px;color:var(--muted)}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);display:inline-block;box-shadow:0 0 9px #d9ef9a26;flex-shrink:0}.layer-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:10px;min-height:44px;padding:11px 15px;font-size:12px;font-weight:550;text-align:center;transition:background .15s,transform .15s}.primary{background:var(--accent);color:var(--accent-dark)}.primary:hover{background:#e3f9a7}.secondary{background:var(--raised);border:1px solid var(--line);color:var(--text)}.secondary:hover{background:#35402f}.full{width:100%}.icon-button{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:9px}.icon-button:hover{background:var(--line)}.icon-button.primary{background:var(--accent);color:var(--accent-dark)}.icon-button.bordered{border:1px solid var(--line);height:44px;width:44px}.text-button{display:inline-flex;align-items:center;gap:7px;padding:8px 0;font-size:12px;text-align:left;min-height:34px;color:var(--muted)}.text-button:hover{color:var(--text)}.danger{color:var(--danger)!important}.inline-link{color:var(--accent);padding:0;text-decoration:underline;text-underline-offset:3px}.button-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.wide{grid-column:1/-1}.mono{font-family:ui-monospace,monospace}.preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}.fine-print{font-size:10px;line-height:1.6;color:var(--muted);margin:14px 0}.error-message{color:var(--danger);font-size:12px;background:#d3634412;border:1px solid #d3634430;border-radius:8px;padding:10px;overflow-wrap:anywhere}.spin{animation:spin 1.1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px}.loading-screen p{color:var(--muted)}.brand-mark,.wordmark{font-weight:800;font-size:32px;letter-spacing:-.09em;display:flex;align-items:baseline;gap:4px}.wordmark span,.brand-mark span{font-size:20px;color:var(--accent);letter-spacing:-.07em}.brand-mark{font-size:60px}.brand-mark span{font-size:34px}.login-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:radial-gradient(ellipse at 78% 25%,#293627 0,transparent 55%),#151c18}.login-grid{position:absolute;inset:0;background-image:linear-gradient(#a7c69306 1px,transparent 1px),linear-gradient(90deg,#a7c69306 1px,transparent 1px);background-size:72px 72px;pointer-events:none}.login-grid span{position:absolute;top:38px;left:38px;font-size:10px;letter-spacing:.16em;color:#91a087}.login-grid span+span{left:auto;right:38px}.login-orbit{position:absolute;border:1px solid #b1c89914;width:680px;height:680px;top:-230px;right:-150px;border-radius:50%;box-shadow:0 0 0 100px #b1c89904,0 0 0 200px #b1c89903}.login-card{position:relative;width:490px;padding:30px;z-index:1}.login-card>.eyebrow{margin-bottom:38px}.login-card h1{font-size:66px;line-height:1.04;letter-spacing:-.06em;margin-bottom:24px}.login-card h1 em{letter-spacing:-.045em}.login-intro{color:#acb7a6;line-height:1.8;margin-bottom:38px}.login-input{display:flex;align-items:center;border:1px solid #d9ef9a30;border-radius:13px;padding:5px;background:#202b22}.login-input input{background:none;border:0;height:46px;font-size:16px}.login-input button{height:44px;width:47px}.login-card form label{font-size:11px;color:var(--muted)}.login-hint{font-size:12px;color:var(--muted);margin-top:19px}.login-screen footer{position:absolute;left:40px;bottom:30px;right:40px;display:flex;align-items:center;justify-content:space-between;color:#91a087;font-size:9px;letter-spacing:.12em}.login-screen footer .wordmark{color:var(--text);letter-spacing:-.08em}.app-shell{width:100%;height:100dvh;position:relative;overflow:hidden}.map-stage{position:absolute;inset:0;background:#141d19}.map-stage:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0a120b26,transparent 45%)}.rail{position:absolute;z-index:15;top:0;left:0;width:73px;bottom:0;border-right:1px solid var(--line);background:#151c17f5;display:flex;align-items:center;flex-direction:column;padding:24px 0 22px}.rail-brand{font-size:43px;padding:0}.rail-brand span{font-size:18px}.rail-nav{display:flex;flex-direction:column;gap:10px;margin-top:46px}.rail-button{height:44px;width:44px;border-radius:12px;color:#8e9c88;display:flex;align-items:center;justify-content:center;position:relative}.rail-button:hover{background:#ffffff06;color:var(--text)}.rail-button.active{background:#d9ef9a16;color:var(--accent)}.rail-button.active:before{content:"";position:absolute;height:18px;width:2px;left:-14px;background:var(--accent);border-radius:3px}.rail-bottom{margin-top:auto}.panel{position:absolute;z-index:12;left:91px;top:24px;bottom:24px;width:398px;border:1px solid #ffffff12;background:var(--panel);box-shadow:var(--shadow);border-radius:20px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);overflow:hidden}.panel-scroll{height:100%;overflow:auto;overscroll-behavior:contain;padding:26px 25px 28px;scrollbar-width:thin;scrollbar-color:#9bb18a24 transparent}.panel-heading{padding:2px 0 18px}.panel-heading>.eyebrow{margin-bottom:24px}.panel-heading h1{font-size:36px;line-height:1.08;margin:0 0 14px;letter-spacing:-.055em}.panel-heading p{font-size:12px;color:var(--muted);margin-bottom:0}.mobile-top,.mobile-nav,.sheet-handle{display:none}.map-topline{position:absolute;z-index:10;top:28px;left:518px;right:26px;display:flex;align-items:center;justify-content:space-between;gap:20px;pointer-events:none}.map-city{color:#d6e2cfaa;font-size:16px;display:flex;flex-direction:column;gap:5px;text-shadow:0 1px 5px #000a}.map-city>span{font-size:8px;letter-spacing:.2em;color:#b2c1a9}.sync-pill{border:1px solid #ffffff17;background:#1a231dda;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:30px;min-height:33px;display:flex;align-items:center;gap:7px;padding:8px 13px;font-size:10px;color:#c5ceba;pointer-events:auto}.map-tools{position:absolute;z-index:10;right:26px;bottom:56px;display:flex;flex-direction:column;gap:8px;align-items:flex-end}.map-control{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#1b241eef;border:1px solid #ffffff20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 4px 20px #0002;border-radius:13px;color:#d9e6d1}.map-control:hover{background:#35442d}.geo-label{background:#182119e8;border:1px solid #ffffff20;padding:6px 9px;border-radius:6px;color:#b9c6b3;font-size:10px;white-space:nowrap}.maplibregl-ctrl-group{background:#1b241e!important}.maplibregl-ctrl-group button{filter:invert(1)}.maplibregl-ctrl-bottom-right{right:20px!important}.maplibregl-ctrl-attrib{font-size:9px!important;background:#1b241edb!important;color:#c3d0b9!important;border-radius:5px!important}.maplibregl-ctrl-attrib a{color:#c3d0b9!important}.search-row{display:flex;align-items:center;gap:8px;background:#2a332c;border:1px solid #ffffff0d;border-radius:11px;padding-left:12px;color:#a5b29c;height:46px}.search-row input{border:0;background:none;min-width:0;padding:10px 0;font-size:11px;height:40px;min-height:40px}.search-row .icon-button{width:32px;height:34px}.search-row kbd{font-family:inherit;border:1px solid #ffffff13;white-space:nowrap;border-radius:4px;font-size:9px;padding:3px;color:#74816e}.search-row>.icon-button:last-child{border-left:1px solid #ffffff12;border-radius:0 9px 9px 0;width:38px;margin-left:1px}.layer-chips{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0 19px}.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #ffffff13;background:#2d362a77;border-radius:7px;min-height:29px;padding:7px 9px;font-size:10px;color:#d4ddcb;white-space:nowrap}.chip.off{opacity:.4;background:transparent}.chip:hover{border-color:#d9ef9a66}.layer-details{padding:10px 12px;border:1px solid var(--line);border-radius:10px;margin-bottom:16px}.check-label{display:flex;align-items:center;gap:10px;font-size:12px;min-height:32px;margin:0}.check-label span{min-width:0}.check-label small{display:block;font-weight:400}.layer-details .check-label{padding:8px 0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:17px 0 10px}.section-heading h2{font-size:14px;letter-spacing:-.015em;margin:0}.section-heading h3{margin:0}.section-heading>span{font-size:10px;color:var(--muted)}.list-heading{padding-top:4px}.place-list{display:flex;flex-direction:column}.place-card{display:flex;align-items:flex-start;gap:13px;padding:17px 0;width:100%;text-align:left;border-bottom:1px solid var(--line);position:relative}.place-card:hover .place-card-body>strong{color:var(--accent)}.place-glyph{flex-shrink:0;display:flex;align-items:center;justify-content:center;position:relative;width:55px;height:62px;border-radius:11px;background:color-mix(in srgb,var(--place-color) 13%,#232e24);color:var(--place-color);border:1px solid color-mix(in srgb,var(--place-color) 14%,transparent);overflow:hidden}.place-glyph:before{position:absolute;content:"";width:45px;height:45px;border-radius:50%;border:1px solid currentColor;opacity:.1;right:-14px;bottom:-18px}.place-glyph>span{font-size:36px;font-weight:300;line-height:1}.place-card-body{min-width:0;display:flex;flex-direction:column;gap:5px;flex:1}.place-category{font-size:8px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.place-card-body>strong{font-size:14px;font-weight:520;line-height:1.25;letter-spacing:-.015em;transition:color .15s}.place-summary{font-size:10px;line-height:1.5;color:#a0ac97;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.place-card-meta{display:flex;align-items:center;gap:6px;color:#c0ceae;font-size:9px}.place-card-meta:empty{display:none}.place-card-meta>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px}.place-arrow{color:#8f9d82;margin-top:5px;width:15px}.catalog-note{padding-top:28px}.catalog-note span{font-size:8px;letter-spacing:.14em;color:#78886d}.catalog-note p{font-size:10px;color:#7d8c75;margin-top:7px;line-height:1.6}.segmented{display:flex;background:#0e160e45;border:1px solid var(--line);border-radius:10px;padding:4px;margin:20px 0;gap:3px}.segmented button{flex:1;border-radius:7px;padding:9px 8px;font-size:10px;color:var(--muted);white-space:nowrap;min-height:34px}.segmented button.active{color:var(--accent);background:#d9ef9a12}.scroll-segment{overflow-x:auto;scrollbar-width:none}.scroll-segment button{flex:none}.filter-row{display:flex;gap:7px;margin:14px 0}.filter-row select{font-size:11px;min-width:0}.empty-state{text-align:center;padding:40px 8px;color:var(--muted)}.empty-state>svg{margin-bottom:17px;color:#afc697}.empty-state h3{color:var(--text);font-size:18px;margin-bottom:10px}.empty-state p{font-size:12px;line-height:1.7;max-width:260px;margin:0 auto 18px}.detail-top{display:flex;align-items:center;justify-content:space-between;margin:-7px 0 24px;gap:6px}.detail-top .eyebrow{font-size:8px}.place-hero{padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:18px}.place-hero .eyebrow{margin-bottom:17px}.place-hero h1{font-size:34px;overflow-wrap:anywhere}.thai-name{font-size:16px;color:#a6b899;margin:-5px 0 17px}.place-hero p{font-size:13px;color:var(--muted);margin-bottom:16px}.tag-row{display:flex;gap:5px;flex-wrap:wrap;margin:10px 0}.tag{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-size:9px;padding:5px 7px;border:1px solid var(--line);border-radius:5px;color:var(--muted)}.tag.visited{color:var(--accent);background:#d9ef9a09}.tag.demo{color:#c7bca4;background:#d2b88209}.quick-actions{display:flex;gap:8px;margin-bottom:12px}.quick-actions button{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;background:var(--raised);border:1px solid var(--line);border-radius:10px;min-height:48px;font-size:11px}.quick-actions button.chosen{color:var(--accent);border-color:#d9ef9a33}.quick-actions button:hover{background:#394430}.place-links{display:flex;gap:8px;margin:10px 0 22px}.place-links>.secondary{flex:1;font-size:10px;padding:10px 8px;white-space:nowrap}.detail-section{margin:23px 0;border-top:1px solid var(--line);padding-top:17px}.detail-section>.section-heading:first-child{margin-top:0}.dish{display:flex;align-items:center;gap:9px;font-size:13px;margin-bottom:9px}.dish>span{color:var(--accent)}.info-line{display:flex;gap:10px;align-items:flex-start;background:#d9ef9a09;border:1px solid #d9ef9a14;padding:12px;border-radius:9px;margin:18px 0;color:#c5d4b4}.info-line p{font-size:12px;margin:0}.article-content{font-size:13px;line-height:1.75;color:#bcc8b2;overflow-wrap:anywhere;margin:20px 0}.article-content h1,.article-content h2,.article-content h3{color:var(--text);font-size:18px;margin:23px 0 12px}.article-content h1{font-size:24px}.article-content p{font-size:13px}.article-content ul,.article-content ol{padding-left:20px}.article-content li{margin-bottom:7px}.article-content a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.article-content blockquote{border-left:2px solid #d9ef9a44;margin:15px 0;padding:4px 0 4px 14px;color:var(--muted)}.article-content code{font-size:11px;padding:2px 5px;background:#ffffff08;border-radius:4px}.article-content table{border-collapse:collapse;font-size:11px;display:block;max-width:100%;overflow-x:auto}.article-content th,.article-content td{padding:8px;border:1px solid var(--line);text-align:left}.source-link{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:6px;margin-bottom:25px}.source-link:hover{color:var(--accent)}.source-link span{margin-left:auto;font-size:9px}.linked-row{display:flex;align-items:center;gap:10px;width:100%;padding:14px 0;border-bottom:1px solid var(--line);text-align:left;font-size:12px;min-height:54px}.linked-row>span:first-child{flex:1;min-width:0}.linked-row strong{display:block;font-size:12px;font-weight:550;overflow-wrap:anywhere}.linked-row small{display:block;margin-top:4px;font-size:10px}.linked-row>span+span{font-size:12px;white-space:nowrap}.linked-row>.icon-button{width:28px;height:30px}.linked-row:hover strong{color:var(--accent)}.journal-hero>.eyebrow{margin-bottom:17px}.journal-hero h1{font-size:30px}.journal-hero>.text-button{padding-top:0}.journal-hero>.preserve-lines{color:#c9d3bf;font-size:14px;margin-top:18px}.rating-display{display:inline-flex;align-items:center;gap:4px;color:var(--accent);font-size:12px}.journal-hero>.rating-display{display:flex;margin:17px 0}.cost-line{display:flex;align-items:baseline;justify-content:space-between;gap:7px;flex-wrap:wrap;margin:10px 0 7px}.cost-line strong{font-size:25px;font-weight:500;letter-spacing:-.04em}.cost-line .muted{font-size:10px}.refund{color:var(--accent)}.attachments-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.attachments-grid>.muted{grid-column:1/-1}.attachment-card{padding:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;text-align:left;min-width:0;background:#ffffff04}.attachment-card img,.attachment-placeholder{width:100%;height:110px;object-fit:cover;display:flex;align-items:center;justify-content:center;background:#ffffff05}.attachment-name{font-size:10px;display:block;padding:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-name small{font-size:8px;display:flex;align-items:center;gap:5px;margin-top:4px}.upload-button{position:relative;cursor:pointer;overflow:hidden}.upload-button input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;font-size:0}.upload-button:focus-within{outline:2px solid var(--accent);outline-offset:3px}.date-selector{display:flex;align-items:center;gap:10px;padding:9px 0 20px;color:var(--accent)}.date-selector input{padding:10px;font-size:13px;max-width:185px}.date-selector>span{font-size:10px;color:var(--muted);margin-left:auto}.plan-list{margin-top:24px}.plan-card{position:relative;display:flex;align-items:flex-start;gap:12px;min-height:114px;padding-bottom:19px;margin-bottom:10px}.plan-card:not(:last-child):before{content:"";position:absolute;width:1px;background:#b3c89836;top:34px;bottom:-7px;left:15px}.stop-number{width:31px;height:31px;background:var(--accent);border-radius:50%;color:var(--accent-dark);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-weight:650;font-size:12px;box-shadow:0 0 0 5px var(--bg);margin-top:3px}.plan-card.done .stop-number{background:#91a978}.plan-content{flex:1;min-width:0}.plan-time{display:block;color:var(--muted);font-size:10px;line-height:1.4;margin-bottom:7px}.plain-title{font-weight:550;font-size:15px;display:block;padding:0;text-align:left;line-height:1.4}.plain-title:hover{color:var(--accent)}.plan-content>p{font-size:11px;color:var(--muted);margin-top:6px;margin-bottom:4px}.plan-actions{display:flex;align-items:center;gap:7px;margin-top:4px}.plan-actions>.text-button{font-size:10px;color:#c3d7ac;margin-right:auto}.plan-actions>.icon-button{height:29px;width:28px;color:#87997c}.reorder-buttons{display:flex;align-items:center;flex-direction:column;gap:0;color:#778a6c;padding-top:0}.reorder-buttons>.icon-button{width:25px;height:26px}.muted-plan{opacity:.5}.journal-top-actions{display:flex;align-items:center;gap:8px;margin:4px 0 18px}.journal-top-actions>.primary{flex:1}.journal-top-actions>.secondary{font-size:11px;padding:10px}.journal-filters{border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:15px}.journal-filters summary{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted);cursor:pointer;padding:2px 0;list-style:none}.filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.filter-grid label{font-size:10px;margin:0}.filter-grid input,.filter-grid select{font-size:11px;padding:9px;margin-top:5px}.filter-grid>.text-button{grid-column:1/-1}.timeline-date{text-transform:uppercase;font-size:8px;letter-spacing:.12em;color:#9bb18d;padding:20px 0 13px}.event-card{display:flex;width:100%;padding:13px 0 18px;border-bottom:1px solid var(--line);text-align:left;align-items:flex-start;gap:12px}.event-time{font-size:10px;min-width:35px;color:#87977b;padding-top:4px;font-variant-numeric:tabular-nums}.event-body{display:flex;flex-direction:column;flex:1;gap:5px;min-width:0}.event-body>strong{font-size:15px;font-weight:550}.event-body>span{font-size:10px;color:var(--muted)}.event-body>p{margin:4px 0 0;color:#b7c4ac;font-size:12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.event-card>svg{margin-top:3px;color:#768c68}.event-meta{display:flex;align-items:center;gap:12px;margin-top:5px}.event-meta .rating-display{font-size:10px}.money-summary{border:1px solid #d9ef9a14;background:linear-gradient(135deg,#d9ef9a0c,transparent);border-radius:15px;padding:24px;margin:10px 0 18px}.money-summary>.eyebrow{margin-bottom:13px}.money-summary h2{font-size:32px;color:var(--accent);margin:8px 0 9px}.money-summary p{font-size:11px;color:var(--muted)}.money-summary small{font-size:9px}.person-row{display:flex;align-items:center;gap:13px;text-align:left;width:100%;padding:18px 0;border-bottom:1px solid var(--line)}.person-row>span:nth-child(2){display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}.person-row strong{font-size:14px;font-weight:550}.person-row small{font-size:10px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.person-avatar{height:47px;width:47px;border:1px solid #d9ef9a21;border-radius:50%;background:linear-gradient(135deg,#d9ef9a18,#d9ef9a04);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:20px;font-family:Georgia,serif;flex-shrink:0}.person-avatar.large{height:76px;width:76px;font-size:33px;margin:8px 0 20px}.encounter-card{width:100%;border:1px solid var(--line);border-radius:12px;padding:17px;margin:0 0 12px;text-align:left;position:relative}.encounter-card>.eyebrow{font-size:8px;margin-bottom:9px}.encounter-card>strong{display:block;font-size:14px;margin-bottom:8px}.encounter-card>span:not(.eyebrow){font-size:11px;color:var(--muted);display:block;padding-right:20px}.encounter-card>p{font-size:12px;margin:10px 0 0;color:var(--muted)}.encounter-card>svg{position:absolute;right:15px;bottom:17px;color:#8fa07f}.settings-section{padding:20px 0;border-bottom:1px solid var(--line)}.settings-section:first-of-type{padding-top:6px}.settings-section>.secondary+.secondary{margin-top:8px}.settings-section>.text-button{display:flex;font-size:11px}.settings-section>.section-heading{margin-top:0}.settings-section h3{font-size:15px}.settings-section p{font-size:12px}.offline-card{border:1px solid #d9ef9a20;background:#d9ef9a06;border-radius:12px;padding:17px;margin:15px 0 8px}.offline-card>div{position:relative;padding-left:47px;margin-bottom:17px;min-height:36px}.offline-icon{position:absolute;left:0;top:1px;color:var(--accent)}.offline-card strong{display:block;font-size:12px;font-weight:550;margin-bottom:6px}.offline-card small{font-size:9px;display:block}.offline-card progress{appearance:none;width:100%;height:4px;background:#ffffff0d;margin-bottom:15px;border-radius:3px;overflow:hidden}.offline-card progress::-webkit-progress-value{background:var(--accent)}.offline-card progress::-webkit-progress-bar{background:#ffffff0d}.inline-form{display:flex;gap:7px;margin:13px 0 9px}.inline-form>input{min-width:0}.inline-form>.secondary{padding:10px 13px}.device-row{display:flex;justify-content:space-between;font-size:12px;margin-top:13px;gap:10px;color:var(--muted)}.device-row small{font-family:ui-monospace,monospace}.switch-row{display:flex;align-items:center;justify-content:space-between;font-size:12px;gap:18px;padding:11px 0;line-height:1.6;color:#c3d0b8}.switch-row input{flex-shrink:0;width:18px;height:18px}.conflict-card{padding:12px;background:#ffffff04;border:1px solid var(--line);border-radius:9px;margin-top:13px}.conflict-card>strong{font-size:12px}.conflict-card pre,.import-preview pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:170px;overflow:auto;font-size:9px;color:var(--muted);line-height:1.5}.conflict-card .secondary{font-size:10px}.import-preview{margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:8px}.modal-backdrop{position:fixed;z-index:50;inset:0;background:#080f0ad9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;padding:26px;overscroll-behavior:contain}.editor-modal{width:510px;max-height:90dvh;overflow-y:auto;overscroll-behavior:contain;background:var(--bg);border:1px solid #ffffff1a;box-shadow:0 25px 90px #0008;padding:26px;border-radius:20px;scrollbar-width:thin}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:23px}.modal-heading h2{margin:8px 0 0;font-size:25px}.modal-heading .eyebrow{font-size:8px}.modal-heading>.icon-button{background:var(--raised)}.record-form{display:grid;grid-template-columns:1fr 1fr;gap:16px 13px}.record-form>.field{min-width:0}.record-form>.field:first-child{grid-column:1/-1}.record-form .field-label,.record-form label{font-size:11px;color:#becab4}.record-form .field small{display:block;font-size:10px;margin-top:6px}.record-form .check-label{margin-top:8px}.record-form .multi-options{max-height:190px;overflow-y:auto;border:1px solid var(--line);border-radius:10px;padding:8px 13px;background:var(--raised)}.record-form .multi-options .check-label{margin-top:0;min-height:36px;font-size:12px}.star-picker{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.star-picker>button{width:38px;height:42px;padding:5px;color:#627558;display:flex;align-items:center;justify-content:center}.star-picker>button.chosen{color:var(--accent)}.star-picker .muted{font-size:10px;margin-left:6px}.amount-input{font-size:24px;font-weight:500;letter-spacing:-.04em}.detail-toggle{border-top:1px solid var(--line);padding-top:13px;font-size:11px}.detail-toggle>svg{transition:transform .15s}.save-button{margin-top:6px;min-height:47px}.taxi-card{max-width:600px;width:100%;max-height:90dvh;overflow:auto;border-radius:22px;background:#f4f4e7;color:#172014;padding:30px;box-shadow:var(--shadow);--text:#172014;--muted:#6e7864;--raised:#e8ebdb;--line:#1720141a;--accent:#384f24}.taxi-card>.modal-heading{margin-bottom:35px}.taxi-card>.modal-heading>.eyebrow{font-size:9px;color:#70795f}.taxi-card>svg{color:#68814c;margin-bottom:15px}.taxi-card h1{font-size:44px;line-height:1.3;overflow-wrap:anywhere;margin-bottom:10px}.taxi-card h2{font-size:20px;color:#5a684b;margin-bottom:23px}.thai-address{font-size:25px;line-height:1.7;margin-top:26px}.english-address{font-size:16px;margin:25px 0 13px}.taxi-card>.secondary{font-size:11px}.taxi-bottom{display:flex;gap:10px;border-top:1px solid #1720141a;padding-top:23px;margin-top:29px}.taxi-bottom .primary{background:#263b1c;color:#e4f1cb;flex:1}.taxi-bottom .secondary{flex:1}.toast{position:fixed;z-index:100;left:50%;bottom:28px;transform:translate(-50%);display:flex;align-items:center;gap:10px;background:#e1edcf;color:#26351b;border:1px solid #f4ffe860;border-radius:12px;box-shadow:0 10px 50px #0007;padding:11px 12px 11px 16px;font-size:12px;max-width:calc(100vw - 30px);width:max-content}.toast>span{max-width:460px}.toast>button:not(.icon-button){text-decoration:underline;font-size:11px;font-weight:600;padding:3px;white-space:nowrap}.toast>.icon-button{width:24px;height:24px}:root[data-theme=light]{--bg:#f0f0e4;--panel:#f3f3e8f5;--raised:#e6e8db;--line:#27351d18;--text:#25341d;--muted:#6f7d64;--accent:#547631;--accent-dark:#f4f7e8;--danger:#b94431;color-scheme:light}:root[data-theme=light] .panel .search-row{background:#e3e6d7}:root[data-theme=light] .panel .chip{background:#e3e6d7;color:#344627}:root[data-theme=light] .panel .place-summary,:root[data-theme=light] .panel .article-content{color:#6a765f}:root[data-theme=light] .panel .place-glyph{background:color-mix(in srgb,var(--place-color) 20%,#d5d8c8);color:#4d6635}:root[data-theme=light] .panel .switch-row,:root[data-theme=light] .record-form label,:root[data-theme=light] .record-form .field-label{color:#526446}:root[data-theme=light] input[type=date],:root[data-theme=light] input[type=time]{color-scheme:light}:root[data-theme=light] .rail,:root[data-theme=light] .mobile-nav,:root[data-theme=light] .mobile-top{background:#edefe4;color:#26351b}:root[data-theme=light] .secondary:hover{background:#d5ddc7}:root[data-theme=light] .primary:hover{background:#668b40}@media(min-width:1440px){.panel{left:99px;width:428px;top:30px;bottom:30px}.panel-scroll{padding:29px}.map-topline{left:561px;top:36px}.panel-heading h1{font-size:40px}.place-card{padding:19px 0}.place-card-body>strong{font-size:15px}}@media(max-width:1000px)and (min-width:701px){.rail{width:61px}.panel{left:77px;width:345px;top:17px;bottom:17px}.panel-scroll{padding:22px 20px}.panel-heading h1{font-size:32px}.map-topline{left:442px;right:20px}.map-city{display:none}.map-topline{justify-content:flex-end}.place-links>.secondary{font-size:9px}.place-links{gap:5px}.place-card{gap:10px}}@media(max-width:700px){:root{--panel:#1c251ff8}h1{font-size:30px}.app-shell{height:100dvh}.rail{display:none}.mobile-top{position:absolute;display:flex;align-items:center;justify-content:space-between;top:0;left:0;right:0;padding:calc(env(safe-area-inset-top) + 10px) 18px 10px;z-index:14;background:linear-gradient(#172119ef,#17211900);pointer-events:none}.mobile-top>*{pointer-events:auto}.mobile-top .wordmark{font-size:29px;line-height:36px}.mobile-top .wordmark>span{font-size:16px}.mobile-top>span{font-size:9px;letter-spacing:.18em;color:#c8d8bb}.mobile-top>.icon-button{height:34px;width:34px;background:#1e2a20c9;color:#c8d8bb;border:1px solid #ffffff13;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.map-topline{top:calc(env(safe-area-inset-top) + 66px);right:17px;left:auto}.map-city{display:none}.sync-pill{font-size:9px;min-height:28px;padding:7px 10px}.map-tools{bottom:calc(307px + env(safe-area-inset-bottom));right:17px;gap:7px}.map-control{width:41px;height:41px;border-radius:12px}.map-control>svg{width:19px;height:19px}.geo-label{font-size:9px}.panel{left:0;right:0;top:auto;bottom:calc(60px + env(safe-area-inset-bottom));width:auto;height:230px;border-radius:22px 22px 0 0;border:1px solid #ffffff16;border-bottom:0;transition:height .25s cubic-bezier(.2,.8,.2,1);box-shadow:0 -8px 40px #0003;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);overflow:hidden}.panel.expanded{height:min(77dvh,800px)}.panel-scroll{padding:3px 20px 24px;height:calc(100% - 24px);scrollbar-width:none}.sheet-handle{display:flex;height:24px;width:100%;justify-content:center;align-items:center;touch-action:none;cursor:ns-resize}.sheet-handle>span{height:4px;width:32px;background:#71856377;border-radius:4px}.panel-heading{padding:0 0 16px}.panel-heading>.eyebrow{font-size:8px;margin-bottom:13px}.panel-heading h1{font-size:32px;line-height:1.06;letter-spacing:-.05em}.panel-heading p{font-size:11px}.panel:not(.expanded) .panel-heading>.eyebrow,.panel:not(.expanded) .panel-heading p{display:none}.panel:not(.expanded) .panel-heading{padding-bottom:13px}.panel:not(.expanded) .panel-heading h1{font-size:24px;display:block;margin:0}.panel:not(.expanded) .panel-heading h1 br{display:none}.panel:not(.expanded) .panel-heading h1 em{margin-left:5px}.panel:not(.expanded) .panel-scroll{overflow:hidden}.panel:not(.expanded) .layer-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-bottom:15px}.panel:not(.expanded) .detail-top{margin:0 0 14px}.panel:not(.expanded) .place-hero h1{font-size:27px}.panel.expanded~.mobile-nav{box-shadow:0 -5px 24px #0002}.mobile-nav{position:absolute;z-index:20;display:flex;bottom:0;left:0;right:0;height:calc(60px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);border-top:1px solid #ffffff0b;background:#18221c;align-items:center;justify-content:space-around}.mobile-nav button{flex:1;height:60px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;font-size:9px;color:#85967b;letter-spacing:.01em;position:relative}.mobile-nav button.active{color:var(--accent)}.mobile-nav button.active:before{content:"";position:absolute;width:21px;height:2px;top:0;background:var(--accent);border-radius:2px}.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-bottom-left{bottom:calc(296px + env(safe-area-inset-bottom))!important;right:10px!important}.maplibregl-ctrl-attrib{font-size:8px!important}.search-row{height:46px}.search-row input{font-size:12px}.search-row kbd{display:none}.layer-chips{gap:6px}.chip{font-size:10px;padding:8px 10px;min-height:31px}.place-card{padding:18px 0;gap:13px}.place-card-body>strong{font-size:15px}.place-summary{font-size:11px}.place-glyph{width:57px;height:65px}.detail-top{margin:0 0 20px}.place-hero h1{font-size:34px}.quick-actions button{min-height:47px;font-size:12px}.place-links>.secondary{font-size:11px}.section-heading h2{font-size:15px}.modal-backdrop{align-items:flex-end;padding:0;background:#08110bdd}.editor-modal{width:100%;max-height:91dvh;border-radius:22px 22px 0 0;padding:24px 22px calc(26px + env(safe-area-inset-bottom));border:1px solid #ffffff15;border-bottom:0}.record-form{gap:16px 11px}.record-form input,.record-form select,.record-form textarea{font-size:16px}.record-form .field label,.record-form .field-label{font-size:11px}.record-form .amount-input{font-size:26px}.star-picker>button{width:38px}.star-picker>.muted{font-size:9px;margin-left:1px}.save-button{position:sticky;bottom:0;box-shadow:0 -10px 16px var(--bg)}.taxi-card{max-height:100dvh;border-radius:22px 22px 0 0;padding:25px 22px calc(26px + env(safe-area-inset-bottom))}.taxi-card>.modal-heading{margin-bottom:25px}.taxi-card h1{font-size:38px}.taxi-card h2{font-size:18px}.thai-address{font-size:26px}.toast{bottom:calc(78px + env(safe-area-inset-bottom));font-size:11px;padding:11px 10px 11px 13px;gap:8px}.toast>span{max-width:260px}.login-card{padding:28px;width:min(100%,440px)}.login-card>.eyebrow{font-size:8px;margin-bottom:32px}.login-card h1{font-size:55px}.login-intro{font-size:13px;line-height:1.85}.login-screen footer{left:25px;right:25px;bottom:23px}.login-screen footer>span:last-child{display:none}.login-grid{background-size:54px 54px}.login-grid span{font-size:8px;top:24px;left:25px}.login-grid span+span{right:25px}.login-orbit{height:450px;width:450px;top:-100px;right:-230px}.login-input input{font-size:16px}.login-card form label,.login-hint{font-size:11px}.attachments-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.attachment-card img,.attachment-placeholder{height:125px}.person-row{min-height:86px}.plan-actions .icon-button{height:37px;width:32px}.reorder-buttons .icon-button{height:32px;width:27px}.filter-grid input,.filter-grid select{font-size:14px}.sync-pill>span{white-space:nowrap}}@media(max-width:360px){.panel-scroll{padding-left:15px;padding-right:15px}.panel-heading h1{font-size:28px}.panel:not(.expanded) .panel-heading h1{font-size:22px}.place-card{gap:10px}.place-glyph{width:49px;height:60px}.login-card h1{font-size:46px}.record-form{grid-template-columns:1fr}.record-form .field{grid-column:1/-1}.star-picker>.muted{font-size:10px;margin-left:5px}.place-links>.secondary{font-size:10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.attachment-wrap{position:relative;min-width:0}.attachment-wrap>.attachment-card{width:100%;height:100%}.attachment-edit{position:absolute;top:6px;right:6px;background:#152016d9;width:27px;height:27px;border:1px solid #ffffff20;color:#e1edcf}.attachment-caption{display:flex;gap:4px;margin-top:6px}.attachment-caption input{min-width:0;min-height:35px;padding:7px;font-size:11px}.attachment-caption .icon-button{width:29px;height:35px}
