@import "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,700;12..96,800&family=Instrument+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans+Thai:wght@400;500;600;700&display=swap";:root{--bg:#f4f5f7;--surface:#fff;--surface-2:#ebedf1;--line:#dde1e7;--line-strong:#c3c9d2;--ink:#121820;--muted:#5b6472;--accent:#e8336d;--accent-ink:#fff;--gold:#f2a93b;--c-music:#e8336d;--c-food:#e78a1e;--c-art:#7a5af8;--c-market:#1e9e6e;--c-nightlife:#2b6cf6;--c-sport:#f0553b;--c-family:#12a7b8;--c-festival:#c99a1a;--c-fairs:#64748b;--shadow:0 10px 30px #1218201a;--display:"Bricolage Grotesque", "IBM Plex Sans Thai", "Helvetica Neue", Arial, sans-serif;--body:"Instrument Sans", "IBM Plex Sans Thai", "Helvetica Neue", Arial, sans-serif;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--pad:clamp(16px, 4vw, 40px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0f1318;--surface:#171c23;--surface-2:#1f252e;--line:#2a313b;--line-strong:#3a4350;--ink:#f1f3f6;--muted:#9aa3b0;--accent:#ff4f84;--accent-ink:#1a0a10;--gold:#f5b64b;--c-music:#ff4f84;--c-nightlife:#5b8be0;--shadow:0 10px 30px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);color:var(--ink);font:15px/1.5 var(--body);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit}img{max-width:100%;display:block}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}h1,h2,h3{font-family:var(--display);text-wrap:balance;letter-spacing:-.02em;margin:0}p{margin:0}.wrap{max-width:1400px;padding-left:var(--pad);padding-right:var(--pad);margin:0 auto}.eyebrow{font:500 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.site-header{z-index:20;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0}.bar{align-items:center;gap:20px;height:60px;display:flex}.logo{font:800 20px/1 var(--display);letter-spacing:-.03em;white-space:nowrap;align-items:center;gap:10px;text-decoration:none;display:flex}.logo svg{flex:none}.logo .pin-body{fill:var(--accent)}.logo .pin-power{stroke:var(--surface)}.nav{gap:4px;margin-left:8px;display:flex}.nav a{color:var(--muted);white-space:nowrap;border-radius:999px;padding:8px 10px;font-weight:500;text-decoration:none}.nav a[aria-current]{color:var(--ink);background:var(--surface-2)}.search{background:var(--surface);border:1px solid var(--line);border-radius:999px;flex:0 300px;align-items:center;gap:8px;min-width:0;height:38px;margin-left:auto;padding:0 12px;display:flex}.search input{color:var(--ink);font:inherit;background:0 0;border:0;outline:none;width:100%;min-width:0}.search svg{color:var(--muted);flex:none}.cta{background:var(--ink);color:var(--bg);white-space:nowrap;border-radius:999px;align-items:center;height:38px;padding:0 16px;font-weight:600;text-decoration:none;display:inline-flex}.lang{flex:none;position:relative}.lang summary{height:38px;font:600 13px/1 var(--body);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 12px;list-style:none;display:inline-flex}.lang summary::-webkit-details-marker{display:none}.lang summary:hover,.lang[open] summary{background:var(--surface-2)}.lang ul{z-index:30;background:var(--surface);border:1px solid var(--line);min-width:160px;box-shadow:var(--shadow);border-radius:12px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);right:0}.lang ul a{border-radius:8px;padding:9px 12px;font-size:14px;text-decoration:none;display:block}.lang ul a:hover{background:var(--surface-2)}.lang ul a[aria-current]{background:var(--surface-2);font-weight:600}.account{white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:6px;height:38px;padding:0 12px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.account:hover,.account[aria-current]{background:var(--surface-2)}.member{white-space:nowrap;flex:none;align-items:center;gap:8px;font-size:14px;font-weight:600;display:inline-flex}.member .avatar{background:var(--accent);width:28px;height:28px;color:var(--accent-ink);border-radius:50%;place-items:center;font-size:13px;display:grid}.member-name{text-overflow:ellipsis;max-width:140px;overflow:hidden}.logout{flex:none;margin:0}.logout button{height:38px;color:var(--muted);white-space:nowrap;padding:0 10px;font-size:14px;font-weight:500}.logout button:hover{color:var(--ink)}.list-icon{width:38px;height:38px;color:var(--ink);border-radius:50%;flex:none;place-items:center;display:none}.signin{background:var(--surface);width:min(400px,100vw - 32px);color:var(--ink);box-shadow:var(--shadow);border:0;border-radius:20px;padding:28px}.signin::backdrop{background:#12182073}.signin h2{margin-top:12px;font-size:22px;font-weight:700}.signin p{color:var(--muted);margin-top:6px}.signin-actions{gap:8px;margin-top:20px;display:flex}.signin-actions .btn{height:42px;padding:0 18px;font-size:14px}@media (width<=860px){.nav,.cta,.logout,.member-name{display:none}.list-icon{display:grid}.search{flex:1}}@media (width<=600px){.bar{flex-wrap:wrap;gap:4px;height:auto;padding-top:8px;padding-bottom:8px}.logo{gap:8px;margin-right:auto;font-size:18px}.search{flex:1 0 100%;order:1;margin:4px 0 0}.lang summary,.account{padding:0 8px}}html,body{overflow-x:clip}.filterbar{height:56px;padding:0 var(--pad);background:var(--surface);border-bottom:1px solid var(--line);scrollbar-width:none;align-items:center;gap:14px;display:flex;overflow-x:auto}.filterbar::-webkit-scrollbar{display:none}.seg{background:var(--surface-2);border-radius:999px;flex:none;padding:3px;display:flex}.seg a{text-decoration:none}.seg :is(button,a){height:32px;color:var(--muted);white-space:nowrap;border-radius:999px;padding:0 14px;font-size:13px;font-weight:600}.seg :is(button,a)[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #1218201f}.filterbar .sep{background:var(--line);flex:none;width:1px;height:24px}.chips{flex-wrap:nowrap;gap:6px;display:flex}.chip{background:var(--surface);border:1px solid var(--line);white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:7px;height:32px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.chip .sw{background:var(--sw);border-radius:50%;width:8px;height:8px}.chip[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.stage{border-bottom:1px solid var(--line);grid-template-columns:440px minmax(0,1fr);height:calc(100vh - 117px);min-height:520px;max-height:900px;display:grid}.map{background:var(--surface-2);min-width:0;position:relative;overflow:hidden}.map #map{position:absolute;inset:0}.pin{background:var(--pc);border:3px solid var(--surface);width:18px;height:18px;box-shadow:0 0 0 2px var(--ink), 0 2px 8px #1218204d;border-radius:50%}.maplibregl-popup{z-index:4}.maplibregl-popup-content{font:14px/1.4 var(--body);color:var(--ink);background:var(--surface);border-radius:16px;width:min(360px,100vw - 32px);padding:0;overflow:hidden;box-shadow:0 16px 40px #12182033}.pop>:not(.pop-more){margin-left:16px;margin-right:16px}.pop-head{align-items:center;gap:8px;padding-top:14px;display:flex}.pop-head .dot{border-radius:50%;flex:none;width:9px;height:9px}.pop-cat{color:var(--muted);font-size:12px;font-weight:600}.pop-now{color:#116b46;background:color-mix(in srgb, var(--c-market) 18%, transparent);border-radius:999px;padding:3px 8px;font-size:11px;font-weight:600}.pop-head .save{width:36px;height:36px;margin-left:auto;position:static}.pop-title{font:700 20px/1.2 var(--display);letter-spacing:-.02em;margin:8px 16px 0}.pop-row{color:var(--ink);grid-template-columns:16px minmax(0,1fr);align-items:start;gap:10px;margin-top:8px;display:grid}.pop-row svg{color:var(--muted);margin-top:2px}.pop-row small{color:var(--muted);font-size:13px;display:block}.pop-blurb{color:var(--muted);margin:12px 16px 0;font-size:14px}.pop-actions{gap:8px;margin-top:14px;display:flex}.pop-actions .btn{flex:1;justify-content:center;height:40px;font-size:14px}.pop-src{color:var(--muted);margin-top:10px;font-size:12px}.pop>:last-child:not(.pop-more){margin-bottom:14px}.pop-more{background:var(--bg);margin-top:14px;padding:12px 16px 14px;font-size:13px}.pop-more-head{color:var(--muted);font-size:12px;font-weight:600}.pop-more ul{margin:4px 0 0;padding:0;list-style:none}.pop-more li a{border-bottom:1px solid var(--line);color:var(--ink);justify-content:space-between;gap:12px;padding:7px 0;text-decoration:none;display:flex}.pop-more li a span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.pop-when{color:var(--muted);white-space:nowrap}.pop-showall{margin-top:8px;padding:0;font-size:13px;font-weight:600;text-decoration:underline}.maplibregl-popup-tip{border-top-color:var(--surface)!important}.rail{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;order:-1;min-width:0;min-height:0;display:flex}.rail .handle{display:none}.rail-head{justify-content:space-between;align-items:baseline;gap:12px;padding:18px 20px 6px;display:flex}.rail-head h2{font-size:22px;font-weight:700}.count{font:500 12px/1 var(--mono);color:var(--muted);white-space:nowrap}.list{flex:1;min-height:0;padding:0 12px 16px;overflow:auto}.day[hidden]{display:none}.day-head{z-index:1;background:var(--surface);font:700 17px/1.3 var(--body);letter-spacing:-.01em;color:var(--ink);padding:16px 12px 6px;position:sticky;top:0}.card{border-radius:12px;transition:background .15s;position:relative}.card[hidden]{display:none}.card:hover{background:var(--bg)}.card.sel{background:var(--bg);box-shadow:inset 0 0 0 1.5px var(--ink)}.card.past{opacity:.6}.card-main{color:var(--ink);grid-template-columns:10px minmax(0,1fr);gap:12px;padding:12px;text-decoration:none;display:grid}.card-main .dot{background:var(--cc);border-radius:50%;width:10px;height:10px;margin-top:6px;position:relative}.card.now .card-main .dot:after{content:"";background:var(--cc);border-radius:50%;animation:2s ease-out infinite pulse;position:absolute;inset:0}@keyframes pulse{0%{opacity:.45;transform:scale(1)}to{opacity:0;transform:scale(3)}}.card .body{flex-direction:column;gap:2px;min-width:0;display:flex}.card .title{font-size:15px;font-weight:600;line-height:1.3}.card .place{color:var(--muted);font-size:13px}.card-main{padding-right:48px}.save{width:40px;height:40px;color:var(--muted);border-radius:50%;place-items:center;display:grid;position:absolute;top:6px;right:6px}.save svg path{fill:none;stroke:currentColor;stroke-width:2px;stroke-linejoin:round}.save:hover{color:var(--ink);background:var(--surface-2)}.save[aria-pressed=true]{color:var(--accent)}.save[aria-pressed=true] svg path{fill:currentColor}.pop-cat .save{width:32px;height:32px;margin-top:-6px;margin-left:auto;margin-right:-6px;position:static}.save-btn{width:auto;height:36px;color:var(--ink);border-radius:999px;display:inline-flex;position:static}.save-btn .on,.save-btn[aria-pressed=true] .off{display:none}.save-btn[aria-pressed=true] .on{display:inline}.saved-list{flex-direction:column;gap:4px;margin-top:20px;display:flex}.saved-list.past{opacity:.6;margin-top:4px}.card .when{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;display:-webkit-box;overflow:hidden}html:is(:lang(th),:lang(zh),:lang(ja),:lang(ko)) :is(.eyebrow,.kv dt){font-family:var(--body);letter-spacing:0}.empty{text-align:center;color:var(--muted);padding:40px 20px}@media (width<=860px){.stage{grid-template-rows:52vh minmax(0,1fr);grid-template-columns:1fr;height:auto;max-height:none}.rail{z-index:3;border-right:0;border-radius:20px 20px 0 0;order:0;max-height:75vh;margin-top:-20px;position:relative;box-shadow:0 -6px 24px #1218201f}.rail .handle{background:var(--line-strong);border-radius:999px;width:40px;height:5px;margin:10px auto 0;display:block}.day-head{top:0}.map .maplibregl-ctrl-bottom-right,.map .maplibregl-ctrl-bottom-left{margin-bottom:20px}}.auth{max-width:440px;padding:40px var(--pad) 64px;margin:0 auto}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:28px}.auth h1{margin-bottom:18px;font-size:26px;font-weight:700}.auth-lead{color:var(--muted);margin-bottom:8px;font-size:14px}.auth-msg{color:#8a5a00;background:color-mix(in srgb, var(--gold) 22%, transparent);border-radius:10px;margin-bottom:16px;padding:12px 14px;font-size:14px}.auth-msg.info{color:var(--ink);background:var(--surface-2)}@media (prefers-color-scheme:dark){.auth-msg{color:var(--gold)}}.social{flex-direction:column;gap:8px;display:flex}.social .btn,.auth .btn.primary{justify-content:center;width:100%;height:44px;font-size:14px}.or{color:var(--muted);align-items:center;gap:12px;margin:18px 0 4px;font-size:13px;display:flex}.or:before,.or:after{content:"";background:var(--line);flex:1;height:1px}.auth label{margin-top:14px;font-size:13px;font-weight:600;display:block}.auth input{border:1px solid var(--line-strong);background:var(--surface);width:100%;height:44px;color:var(--ink);font:inherit;border-radius:10px;margin-top:6px;padding:0 12px;display:block}.auth input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:#0000}.auth .btn.primary{margin-top:18px}.auth-foot{color:var(--muted);text-align:center;margin-top:18px;font-size:14px}.auth-foot.small{margin-top:12px;font-size:13px}.auth-foot a{color:var(--ink);font-weight:600}.blog-index h1{letter-spacing:-.03em;margin-top:10px;font-size:clamp(28px,4vw,40px);font-weight:800}.tagbar{flex-wrap:wrap;margin-top:20px}.tagbar .chip{text-transform:capitalize;text-decoration:none}.posts-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-top:24px;display:grid}.post-row{border:1px solid var(--line);background:var(--surface);border-radius:16px;flex-direction:column;gap:8px;padding:20px;text-decoration:none;display:flex}.post-row:hover{border-color:var(--line-strong)}.post-row h2{font-size:19px;font-weight:700;line-height:1.25}.post-row p{color:var(--muted);font-size:14px}.post-meta{font:500 12px/1.4 var(--mono);color:var(--muted);text-transform:capitalize}.post{max-width:760px;padding-block:32px 64px}.crumbs{color:var(--muted);margin-bottom:14px;font-size:13px}.crumbs a{color:var(--muted)}.post h1{letter-spacing:-.03em;font-size:clamp(30px,4.4vw,44px);font-weight:800;line-height:1.1}.post>.post-meta{margin:12px 0 18px;display:block}.post-map{margin:0 0 8px}.post-map .mini-map{height:280px}.post-map figcaption{margin-top:8px;font-size:13px}.post-map figcaption a{font-weight:600}.prose{margin-top:24px;font-size:17px;line-height:1.65}.prose h2{margin:36px 0 10px;font-size:24px}.prose h3{margin:24px 0 6px;font-size:18px}.prose p{margin:0 0 16px}.prose ul,.prose ol{margin:0 0 16px;padding-left:22px}.prose li{margin-bottom:6px}.prose a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.post-events,.post-related{border-top:1px solid var(--line);margin-top:40px;padding-top:24px}.post-events h2,.post-related h2{margin-bottom:8px;font-size:20px}.post-related ul{padding-left:20px}.post-related li{margin:6px 0}html:is(:lang(th),:lang(zh),:lang(ja),:lang(ko)) .post-meta{font-family:var(--body)}.submit .auth-card{max-width:560px}.auth.submit{max-width:600px}.submit .two{grid-template-columns:1fr 1fr;gap:12px;display:grid}.submit select,.submit textarea{border:1px solid var(--line-strong);background:var(--surface);width:100%;color:var(--ink);font:inherit;border-radius:10px;margin-top:6px;padding:10px 12px;display:block}.submit select{height:44px;padding-block:0}.submit textarea{resize:vertical}.tiers{border:0;gap:8px;margin:20px 0 0;padding:0;display:grid}.tiers legend{margin-bottom:8px;font-size:13px;font-weight:600}.tier{border:1px solid var(--line);cursor:pointer;border-radius:12px;grid-template-columns:20px 1fr;align-items:start;gap:10px;margin:0;padding:12px 14px;font-size:14px;font-weight:400;display:grid}.tier:has(input:checked){border-color:var(--ink);background:var(--bg)}.tier input{width:auto;height:auto;margin:3px 0 0}.tier b{font-size:15px}.tier .fee{font:600 14px/1 var(--mono);color:var(--accent);margin-left:8px}.tier small{color:var(--muted);margin-top:3px;font-size:13px;display:block}.submit .currency select{width:120px}@media (width<=520px){.submit .two{grid-template-columns:1fr}}.band{padding-block:56px}.band.alt{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.band-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.band h2{letter-spacing:-.03em;font-size:clamp(26px,3.4vw,38px);font-weight:800}.band .lead{color:var(--muted);max-width:60ch;margin:6px 0 0}.posts{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.post{border:1px solid var(--line);background:var(--surface);border-radius:16px;flex-direction:column;min-width:0;text-decoration:none;display:flex;overflow:hidden}.post .art{aspect-ratio:16/9;background:var(--surface-2);max-width:100%}.post .body{flex-direction:column;flex:1;gap:8px;padding:16px;display:flex}.post h3{font-size:18px;font-weight:700;line-height:1.2}.post p{color:var(--muted);font-size:14px}.btn{border:1px solid var(--line-strong);background:var(--surface);height:36px;color:var(--ink);border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}footer{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:12px;padding-block:28px;font-size:13px;display:flex}.event-page{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:40px;padding-block:40px;display:grid}.event-page h1{letter-spacing:-.03em;font-size:clamp(28px,4vw,44px);font-weight:800}.event-page .orig-title{color:var(--muted);margin:6px 0 0;font-size:15px}.kv{grid-template-columns:auto minmax(0,1fr);gap:6px 16px;margin-top:20px;font-size:15px;display:grid}.kv dt{color:var(--muted);font:500 11px/1.9 var(--mono);letter-spacing:.08em;text-transform:uppercase}.kv dd{min-width:0;margin:0}.embed{border:1px solid var(--line);background:var(--surface);border-radius:16px;min-height:200px;overflow:hidden}.mini-map{border:1px solid var(--line);border-radius:16px;height:320px;overflow:hidden}@media (width<=860px){.event-page{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.layers{z-index:2;flex-direction:column;gap:8px;display:flex;position:absolute;top:12px;right:12px}.layer{background:var(--surface,#fff);cursor:pointer;color:#b4bac4;border:0;border-radius:50%;place-items:center;width:40px;height:40px;padding:0;display:grid;box-shadow:0 2px 8px #12182024}.layer svg{stroke:currentColor}.layer[aria-pressed=true],.layer:hover{color:var(--ink,#121820)}.chips.near .chip-ic{color:var(--muted);display:inline-flex}.chip[aria-pressed=true] .chip-ic{color:var(--bg)}.chip-add{color:var(--muted);border-style:dashed}.card .dist{font:500 12px/1 var(--mono);color:var(--muted);margin-top:2px}.card .dist:empty{display:none}.pick-hint{z-index:3;background:var(--ink);max-width:calc(100% - 120px);color:var(--bg);box-shadow:var(--shadow);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:600;position:absolute;top:12px;left:50%;transform:translate(-50%)}.places{background:var(--surface);width:min(420px,100vw - 24px);color:var(--ink);box-shadow:var(--shadow);border:0;border-radius:20px;padding:0}.places::backdrop{background:#12182073}.places #places-body{flex-direction:column;gap:8px;max-height:min(80vh,720px);padding:22px 20px 18px;display:flex;overflow:auto}.places h3{font-size:20px;font-weight:700}.places-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.places-head span{color:var(--muted);white-space:nowrap;font-size:12px}.places-lead{color:var(--muted);margin-bottom:4px;font-size:13px}.paths{grid-template-columns:1fr 1fr;gap:10px;display:grid}.path{border:1px solid var(--line);text-align:left;background:var(--surface);border-radius:14px;flex-direction:column;align-items:flex-start;gap:6px;padding:14px;display:flex}.path:hover{border-color:var(--ink)}.path b{font-size:15px}.path small{color:var(--muted);font-size:12.5px;line-height:1.4}.slot{border-bottom:1px solid var(--line);grid-template-columns:36px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:8px 0;display:grid}.slot-ic{background:var(--surface-2);width:36px;height:36px;color:var(--muted);border-radius:50%;place-items:center;display:grid}.slot.is-set .slot-ic{background:var(--ink);color:var(--bg)}.slot-body{flex-direction:column;min-width:0;display:flex}.slot-body b{font-size:14px}.slot-body small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.slot-set{padding:6px 0;font-size:13px;font-weight:600;text-decoration:underline}.slot-rm{width:28px;height:28px;color:var(--muted);border-radius:50%;font-size:18px}.slot-rm:hover{background:var(--surface-2);color:var(--ink)}.places-offer{background:var(--bg);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin-top:8px;padding:12px 14px;font-size:13px;display:flex}.places-offer .btn{flex:none}.places-actions{justify-content:flex-end;align-items:center;gap:8px;margin-top:10px;display:flex}.places-actions .link{color:var(--muted);margin-right:auto;padding:0;font-size:13px;text-decoration:underline}.places label{margin-top:6px;font-size:13px;font-weight:600;display:block}.places input{border:1px solid var(--line-strong);background:var(--surface);width:100%;height:42px;color:var(--ink);font:inherit;border-radius:10px;margin-top:6px;padding:0 12px;display:block}.places .find{align-items:center;gap:8px;display:flex}.places .find input{margin-top:6px}.places .find .btn{flex:none;height:42px;margin-top:6px}.places .two{grid-template-columns:1fr 1fr;gap:8px;display:grid}.places .two .btn{justify-content:center;height:40px}.places-result{color:var(--muted);min-height:18px;padding:6px 0 0;font-size:13px}.places .btn:disabled{opacity:.5;cursor:default}.planner{padding-block:20px 48px}.pl-head{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.pl-head h1{letter-spacing:-.03em;margin-right:4px;font-size:24px;font-weight:800}.pl-views a{align-items:center;gap:4px;text-decoration:none;display:inline-flex}.pl-views .lock{opacity:.6}.pl-nav{align-items:center;gap:8px;margin-left:auto;font-size:14px;font-weight:600;display:flex}.pl-arrow{border:1px solid var(--line);background:var(--surface);border-radius:50%;place-items:center;width:32px;height:32px;font-size:16px;text-decoration:none;display:grid}.pl-range{white-space:nowrap}.pl-cats{scrollbar-width:none;margin-top:14px;padding-bottom:2px;overflow-x:auto}.pl-cats .chip{text-decoration:none}.pl-body{margin-top:16px;position:relative}.pl-body.locked>:not(.pl-lock){filter:blur(1.5px);opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none;max-height:560px;overflow:hidden}.pl-lock{background:var(--surface);text-align:center;border-radius:20px;flex-direction:column;align-items:center;gap:8px;width:min(420px,100vw - 32px);padding:24px 22px;display:flex;position:absolute;top:40px;left:50%;transform:translate(-50%);box-shadow:0 16px 40px #12182038}.pl-lock-icon{background:var(--surface-2);border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.pl-lock h2{font-size:20px;font-weight:700}.pl-lock p{color:var(--muted);font-size:14px}.pl-lock .btn{justify-content:center;width:100%;height:44px;font-size:14px}.pl-lock .btn.primary{margin-top:8px}.pl-lock-foot{color:var(--muted);margin-top:6px;font-size:13px}.pl-lock-foot a{color:var(--ink);font-weight:600}.pl-eyebrow{font:600 11px/1.6 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.pl-hint{color:var(--muted);margin-top:10px;font-size:12.5px}.pl-day{flex-direction:column;gap:18px;display:flex}.pl-allday{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px}.pl-item{color:var(--ink);border-radius:10px;grid-template-columns:10px minmax(0,1fr) auto;align-items:start;gap:12px;padding:10px 6px;text-decoration:none;display:grid}.pl-item:hover{background:var(--bg)}.pl-allday .pl-item:hover{background:var(--surface-2)}.pl-item .dot{background:var(--cc);border-radius:50%;width:10px;height:10px;margin-top:6px}.pl-item-body{flex-direction:column;gap:2px;min-width:0;display:flex}.pl-item-body b{font-size:15px;line-height:1.3}.pl-item-body small{color:var(--muted);font-size:13px}.pl-until{color:var(--muted);white-space:nowrap;font-size:12.5px}.pl-timed .pl-item{grid-template-columns:52px 10px minmax(0,1fr)}.pl-time{font:600 13px/1.5 var(--mono);color:var(--muted)}.pl-cols{grid-template-columns:repeat(var(--cols,7), minmax(0, 1fr));display:grid}.pl-col-head{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:2px;padding:6px 0;font-size:12px;text-decoration:none;display:flex}.pl-col-head .num{width:26px;height:26px;color:var(--ink);border-radius:50%;place-items:center;font-size:13px;font-weight:600;display:grid}.pl-col-head.today .num{background:var(--ink);color:var(--bg)}.pl-cols-bg{position:absolute;inset:0}.pl-col{border-left:1px solid var(--line);min-width:0}.pl-col.weekend{background:color-mix(in srgb, var(--surface-2) 55%, transparent)}.pl-col.today{background:#2b6cf614}.pl-lanes{--lane:26px;height:calc(var(--lanes) * var(--lane) + 8px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:relative}a.bar{box-sizing:border-box;background:var(--cc);color:#fff;white-space:nowrap;text-overflow:ellipsis;width:auto;height:22px;width:calc(var(--w,0%));border-radius:6px;margin:4px 3px 0;padding:0 8px;font-size:11.5px;font-weight:600;line-height:22px;text-decoration:none;position:absolute;overflow:hidden}.bar.cut-l{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0;padding-left:12px}.bar.cut-r{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0}.bar.cut-l:before{content:"‹";position:absolute;left:4px}.bar.cut-r:after{content:"›";background:var(--cc);padding-left:2px;position:absolute;right:4px}a.bar-sm{border-radius:4px;height:14px;margin-top:0;padding:0 5px;font-size:9.5px;line-height:14px}.pl-week .pl-lanes .bar{width:calc(14.2857% - 6px)}.pl-wk{--lane:16px;border-top:1px solid var(--line);height:110px;position:relative}.pl-wk:last-of-type{border-bottom:1px solid var(--line)}.pl-cell{text-decoration:none;position:relative}.pl-cell .num{width:22px;height:22px;color:var(--ink);border-radius:50%;place-items:center;font-size:12px;font-weight:600;display:grid;position:absolute;top:4px;left:50%;transform:translate(-50%)}.pl-cell.other .num{color:var(--line-strong)}.pl-cell.today .num{background:var(--ink);color:var(--bg)}.pl-cell .more{text-align:center;color:var(--muted);font-size:10px;position:absolute;bottom:3px;left:0;right:0}.pl-gantt-wrap{border:1px solid var(--line);background:var(--surface);border-radius:14px;overflow-x:auto}.pl-gantt{min-width:880px}.pl-gantt-row{border-bottom:1px solid var(--line);grid-template-columns:240px minmax(0,1fr);height:40px;display:grid}.pl-gantt-head{background:var(--surface);height:54px}.pl-gantt-head .pl-col-head{padding:8px 0 4px}.pl-name{z-index:1;background:var(--surface);color:var(--ink);border-right:1px solid var(--line);grid-template-columns:10px minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:0 12px;text-decoration:none;display:grid;position:sticky;left:0}.pl-name .dot{background:var(--cc);border-radius:50%;width:10px;height:10px}.pl-name b{white-space:nowrap;text-overflow:ellipsis;font-size:13px;display:block;overflow:hidden}.pl-name small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;display:block;overflow:hidden}.pl-name>:last-child{min-width:0}.pl-gantt-head .pl-name{align-self:end;padding-bottom:8px}.pl-track{min-width:0;position:relative}.pl-track .bar{top:5px}@media (width<=860px){.pl-head h1{width:100%}.pl-nav{width:100%;margin-left:0}.pl-gantt-row{grid-template-columns:132px minmax(0,1fr)}.pl-gantt{width:748px;min-width:132px}.pl-gantt-head .pl-col-head .wd{display:none}.pl-wk{height:96px}.pl-lanes .bar,.pl-track .bar{padding:0 5px;font-size:10.5px}}
