/* Open Sweet Home marketplace – design system v2. REQUIRES /mp/chrome.css loaded first (colour tokens, header/footer, .btn base).
   Tokens follow the dashboard (index.html) so both feel like one product; components follow the conventions of leading
   property portals: sticky header, filter bar, listing cards with price-first hierarchy, gallery hero, key-facts strip,
   sticky contact card, stepper form, status badges. Own CSS – no framework. */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;overflow-x:hidden;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.55}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
img{max-width:100%;display:block}
h1,h2,h3{margin:0;line-height:1.25;font-weight:700}h1{font-size:24px}h2{font-size:18px}h3{font-size:15px}
p{margin:0 0 10px}
.muted{color:var(--muted)}.small{font-size:13px}.xs{font-size:12px}.mono{font-family:var(--mono)}.center{text-align:center}.nowrap{white-space:nowrap}
.hidden,[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
h1 .ic,h2 .ic,h3 .ic{width:1.05em;height:1.05em;margin-right:2px}

/* ---------------------------------------------------------------- layout */
.container{max-width:1180px;margin:0 auto;padding:0 20px}
.page{padding-block:22px 80px}
.grid{display:grid;gap:16px}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.g3,.g4{grid-template-columns:1fr 1fr}}@media (max-width:600px){.g2,.g3,.g4{grid-template-columns:1fr}}
.stack{display:flex;flex-direction:column;gap:16px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.sp{flex:1}


/* ---------------------------------------------------------------- buttons */
.btn-secondary{background:var(--accent-soft);border-color:transparent;color:var(--accent)}.btn-secondary:hover{background:var(--accent-soft);filter:brightness(.97)}
.btn-danger{color:var(--bad)}.btn-danger:hover{background:var(--bad-soft)}
.btn-sm{height:32px;padding:0 11px;font-size:13px;border-radius:8px}.btn-lg{height:48px;padding:0 22px;font-size:15px}.btn-block{width:100%}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}
.link-btn{background:none;border:0;padding:0;color:var(--accent);font:inherit;cursor:pointer}

/* ---------------------------------------------------------------- badges & chips */
.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:var(--r-pill);font-size:12px;font-weight:600;line-height:1.6;background:var(--panel2);border:1px solid var(--line);color:var(--muted)}
.badge.green{background:var(--good-soft);border-color:transparent;color:var(--good)}.badge.amber{background:var(--mid-soft);border-color:transparent;color:#8a5a00}.badge.red{background:var(--bad-soft);border-color:transparent;color:var(--bad)}
.badge.red{background:var(--bad-soft,rgba(192,57,43,.12));border-color:transparent;color:var(--bad,#c0392b)}.badge.muted{background:var(--panel2);border-color:var(--line);color:var(--muted)}.badge.resp{font-weight:600}
.badge.blue{background:var(--info-soft);border-color:transparent;color:var(--info)}.badge.dark{background:var(--text);border-color:transparent;color:var(--bg)}
:root[data-theme="dark"] .badge.amber{color:#ffd27a}
.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--panel);cursor:pointer;font-size:13px;color:var(--text);user-select:none}
.chip:hover{background:var(--panel2);text-decoration:none}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.chip input{display:none}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.tag{display:inline-block;padding:3px 10px;border-radius:8px;background:var(--panel2);border:1px solid var(--line2);font-size:12.5px;color:var(--text)}

/* ---------------------------------------------------------------- cards & sections */
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1)}
.card.pad{padding:20px 22px}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px;border-bottom:1px solid var(--line2)}
.card-h h2{font-size:16px}.card-b{padding:18px 22px}
.section{margin-top:22px}.section>h2{margin-bottom:12px;display:flex;align-items:center;gap:8px}
.note{background:var(--panel2);border-left:3px solid var(--accent);border-radius:10px;padding:10px 14px;font-size:13.5px}
.note.warn{border-left-color:var(--mid);background:var(--mid-soft)}.note.danger{border-left-color:var(--bad);background:var(--bad-soft)}
.divider{height:1px;background:var(--line2);margin:14px 0}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:13.5px}.kv dt{color:var(--muted)}.kv dd{margin:0}
@media (max-width:600px){.card.pad,.card-b,.card-h{padding-left:16px;padding-right:16px}}

/* ---------------------------------------------------------------- forms */
.field{display:flex;flex-direction:column;gap:5px}
.label{font-size:13px;font-weight:600;color:var(--text)}.label .req{color:var(--bad)}.label .opt{color:var(--muted);font-weight:400}
.label .rec{display:inline-block;font-size:10.5px;font-weight:600;line-height:1;padding:3px 6px;border-radius:4px;background:var(--accent-soft);color:var(--accent);vertical-align:1px}.field.miss .input,.field.miss .select,.field.miss .textarea,.field.miss .chips{border-color:var(--bad);box-shadow:0 0 0 3px color-mix(in srgb,var(--bad) 18%,transparent)}.field.miss .chips{border:1px solid var(--bad);border-radius:var(--r);padding:6px}
.chip.chip-ok.on{background:var(--good);border-color:var(--good)}
.input,.select,.textarea{width:100%;font:inherit;font-size:15px;padding:0 12px;height:42px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);transition:border-color .12s,box-shadow .12s}
.textarea{height:auto;min-height:120px;padding:10px 12px;resize:vertical;line-height:1.5}
.input:focus,.select:focus,.textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.input.err,.select.err{border-color:var(--bad)}
.input-group{display:flex;align-items:stretch}.input-group .input{border-radius:10px 0 0 10px}.input-group .addon{display:flex;align-items:center;padding:0 12px;border:1px solid var(--line);border-left:0;border-radius:0 10px 10px 0;background:var(--panel2);color:var(--muted);font-size:13px;white-space:nowrap}
.hint{font-size:12.5px;color:var(--muted)}.hint.err{color:var(--bad)}.hint.ok{color:var(--good)}
.form-grid{display:grid;gap:16px;grid-template-columns:1fr 1fr}.form-grid .full{grid-column:1/-1}
.area-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
@media (max-width:640px){.form-grid{grid-template-columns:1fr}}
.checkbox{display:flex;gap:8px;align-items:flex-start;font-size:14px}
.stepper{display:flex;gap:0;margin-bottom:18px;counter-reset:s}
.stepper .s{flex:1;display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:3px solid var(--line);color:var(--muted);font-size:13.5px;cursor:pointer}
.stepper .s b{width:26px;height:26px;border-radius:50%;background:var(--line);color:var(--text);display:inline-flex;align-items:center;justify-content:center;font-size:12.5px;flex:none}
.stepper .s.on{border-bottom-color:var(--accent);color:var(--text);font-weight:600}.stepper .s.on b{background:var(--accent);color:#fff}
.stepper .s.done b{background:var(--good-soft);color:var(--good)}
@media (max-width:640px){.stepper .s span{display:none}.stepper .s.on span{display:inline}}
.action-bar{position:sticky;bottom:0;z-index:30;margin-top:18px;padding:12px 0;background:linear-gradient(to top,var(--bg) 70%,transparent);display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}

/* ---------------------------------------------------------------- listing card */
.lgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.lcard{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;color:var(--text);box-shadow:var(--sh-1);transition:box-shadow .15s,transform .15s}
.lcard:hover{box-shadow:var(--sh-2);transform:translateY(-2px);text-decoration:none}
.lcard .im{position:relative;aspect-ratio:4/3;background:var(--panel2);overflow:hidden}
.lcard .im img{width:100%;height:100%;object-fit:cover}
.lcard .im .noimg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted2);font-size:13px;background:repeating-linear-gradient(45deg,var(--panel2),var(--panel2) 10px,var(--line2) 10px,var(--line2) 20px)}
.lcard .im .ribbon{position:absolute;left:10px;top:10px;display:flex;gap:6px}
.lcard .im .cnt{position:absolute;right:10px;bottom:10px;background:rgba(0,0,0,.55);color:#fff;font-size:11.5px;padding:2px 8px;border-radius:var(--r-pill)}
.lcard .b{padding:12px 14px 14px;display:flex;flex-direction:column;gap:5px;flex:1}
.lcard .price{font-family:var(--mono);font-weight:700;font-size:19px;color:var(--text);letter-spacing:-.3px}
.lcard .price small{font-family:var(--font);font-weight:500;font-size:12.5px;color:var(--muted);margin-left:6px}
.lcard .t{font-weight:600;font-size:14.5px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.specs{display:flex;gap:12px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}.specs span{display:inline-flex;align-items:center;gap:4px}.specs .ic{width:14px;height:14px;opacity:.8}
.lcard .loc{display:flex;align-items:center;gap:4px;font-size:12.5px;color:var(--muted);margin-top:auto;padding-top:6px;border-top:1px solid var(--line2)}
.lcard .loc .ic{width:14px;height:14px}

/* ---------------------------------------------------------------- browse page */
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:end;padding:14px 16px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1)}
.filters .field{min-width:150px;flex:1}.filters .field.sm{flex:0 0 130px;min-width:110px}
.results-head{display:flex;align-items:baseline;gap:12px;margin:18px 0 12px;flex-wrap:wrap}.results-head h1{font-size:20px}
.pager{display:flex;gap:8px;justify-content:center;margin-top:24px}
.empty{padding:48px 20px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--r-lg);background:var(--panel2)}
.empty .em{font-size:40px;margin-bottom:8px}
.skeleton{background:linear-gradient(90deg,var(--panel2) 25%,var(--line2) 37%,var(--panel2) 63%);background-size:400% 100%;animation:sk 1.2s infinite;border-radius:8px}
@keyframes sk{0%{background-position:100% 0}100%{background-position:0 0}}
.sk-card{height:290px;border-radius:var(--r-lg)}

/* ---------------------------------------------------------------- listing detail */
.crumbs{font-size:13px;color:var(--muted);margin-bottom:12px;display:flex;gap:6px;flex-wrap:wrap}.crumbs a{color:var(--muted)}.crumbs b{color:var(--text);font-weight:500}
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:230px 230px;gap:8px;border-radius:var(--r-lg);overflow:hidden;position:relative;background:var(--panel2)}
.gallery img{width:100%;height:100%;object-fit:cover;cursor:zoom-in}
.gallery .main{grid-row:1/3;grid-column:1}
.gallery .more{position:absolute;right:14px;bottom:14px}.gallery .more.vid{right:auto;left:14px}
.gallery.single{grid-template-columns:1fr;grid-template-rows:420px}
.gallery.two{grid-template-columns:1fr 1fr;grid-template-rows:360px}.gallery.two .main{grid-row:auto}
@media (max-width:800px){.gallery,.gallery.two{grid-template-columns:1fr;grid-template-rows:260px}.gallery img:not(.main){display:none}.gallery .main{grid-row:auto}}
.detail{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px;margin-top:20px;align-items:start}
@media (max-width:960px){.detail{grid-template-columns:minmax(0,1fr)}.sticky{position:static}}
.sticky{position:sticky;top:calc(var(--mp-hdr) + 16px)}
.title-block h1{font-size:23px;margin:4px 0 6px}
.price-lg{font-family:var(--mono);font-weight:700;font-size:30px;letter-spacing:-.5px;color:var(--accent)}.price-lg small{font-family:var(--font);font-size:13px;color:var(--muted);font-weight:500;margin-left:8px}
.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin:16px 0}
.fact{background:var(--panel2);border:1px solid var(--line2);border-radius:12px;padding:10px 12px}
.fact .l{font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:5px}.fact .l .ic{width:14px;height:14px}.fact .v{font-weight:700;font-size:15px;margin-top:2px}
@media (max-width:640px){.facts{grid-template-columns:1fr 1fr}}
.desc{white-space:pre-line;font-size:15px;line-height:1.7}
.map{height:340px;border-radius:12px;border:1px solid var(--line);overflow:hidden;background:var(--panel2)}.map.sm{height:240px}
.contact-card .agent{display:flex;gap:12px;align-items:center;margin-bottom:14px}
.contact-card .agent .n{font-weight:700}.contact-card .agent .c{font-size:12.5px;color:var(--muted)}
.contact-lines{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.contact-lines a{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--text);font-weight:600}
.contact-lines a:hover{border-color:var(--accent);text-decoration:none}.contact-lines .ic{width:18px;height:18px;color:var(--accent)}
.trust{display:flex;flex-direction:column;gap:8px;font-size:13.5px}.trust li{display:flex;gap:8px;align-items:flex-start}.trust .ic{width:16px;height:16px;color:var(--good);flex:none;margin-top:3px}
.trust ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}

/* ---------------------------------------------------------------- parcel card v2 */
.pc-head{display:flex;gap:16px;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line2)}
.ring{--p:0;width:72px;height:72px;border-radius:50%;background:conic-gradient(var(--ring,var(--accent)) calc(var(--p)*1%),var(--line2) 0);display:grid;place-items:center;flex:none}
.ring i{width:56px;height:56px;border-radius:50%;background:var(--panel);display:grid;place-items:center;font-family:var(--mono);font-weight:700;font-size:20px;font-style:normal}
.pc-head h2{font-size:17px}.pc-head .sub{font-size:13px;color:var(--muted)}
.pc-sec{padding:16px 22px;border-bottom:1px solid var(--line2)}.pc-sec:last-child{border-bottom:0}
.pc-sec h3{font-size:13px;text-transform:none;color:var(--muted);font-weight:600;margin-bottom:10px;display:flex;align-items:center;gap:6px}.pc-sec h3 .ic{width:15px;height:15px}
.dims{display:grid;grid-template-columns:1fr 1fr;gap:6px 22px}
.dim{display:grid;grid-template-columns:118px 1fr 34px;align-items:center;gap:8px;font-size:13px}
.dim .bar{height:8px;border-radius:4px;background:var(--line2);overflow:hidden}.dim .bar i{display:block;height:100%;border-radius:4px}
.dim b{font-family:var(--mono);font-weight:600;text-align:right;font-size:12.5px}
@media (max-width:640px){.dims{grid-template-columns:1fr}}
.frow{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:4px 14px;padding:8px 0;border-top:1px solid var(--line2);font-size:13.5px;align-items:baseline}
.frow:first-of-type{border-top:0}.frow .k{color:var(--muted)}.frow .v{font-weight:600}.frow .v small{display:block;font-weight:400;color:var(--muted);font-size:12px;margin-top:1px}
.frow .v.warn{color:var(--bad)}.frow .v.good{color:var(--good)}
@media (max-width:520px){.frow{grid-template-columns:1fr}}
.pc-foot{padding:12px 22px;font-size:12px;color:var(--muted);background:var(--panel2);border-radius:0 0 var(--r-lg) var(--r-lg)}

/* ---------------------------------------------------------------- broker portal */
.portal{display:grid;grid-template-columns:230px minmax(0,1fr);min-width:0;gap:24px;margin-top:20px;align-items:start}
.side-nav{position:sticky;top:calc(var(--mp-hdr) + 16px);display:flex;flex-direction:column;gap:2px}
.side-nav a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:var(--text);font-weight:500;font-size:14px}
.side-nav a:hover{background:var(--panel);text-decoration:none}.side-nav a.active{background:var(--panel);color:var(--accent);box-shadow:var(--sh-1);font-weight:600}
.side-nav .ic{width:18px;height:18px}.side-nav .cnt{margin-left:auto;background:var(--bad);color:#fff;font-size:11px;padding:0 7px;border-radius:var(--r-pill);font-weight:700}
.side-nav .cta{margin:8px 0 12px}
@media (max-width:860px){.portal{grid-template-columns:minmax(0,1fr)}.side-nav{position:sticky;top:var(--mp-hdr);z-index:20;background:var(--bg);margin:0 -20px;padding:8px 20px 6px;flex-direction:row;overflow:auto;gap:6px;scrollbar-width:none}.side-nav::-webkit-scrollbar{display:none}.side-nav .cta{flex:none;width:auto}.side-nav a{white-space:nowrap;background:var(--panel);border:1px solid var(--line);flex:none;justify-content:center;min-width:var(--navw,auto);height:44px;padding:0 14px}.side-nav a.active{border-color:var(--accent)}.side-nav .cta{margin:0}}
.stat-tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;box-shadow:var(--sh-1)}
.stat.stat-link{cursor:pointer}.stat.stat-link:hover{border-color:var(--accent)}.stat .stat-a{color:var(--accent);font-weight:600}.stat .stat-a .ic{width:12px;height:12px;vertical-align:-1px}
.stat .l{font-size:12px;color:var(--muted)}.stat .v{font-family:var(--mono);font-weight:700;font-size:24px;margin-top:2px}.stat .s{font-size:12px;color:var(--muted)}
@media (max-width:860px){.stat-tiles{grid-template-columns:repeat(3,1fr)}}@media (max-width:520px){.stat-tiles{grid-template-columns:1fr 1fr}}
.mylist{display:flex;flex-direction:column;gap:12px}
.mitem{display:grid;grid-template-columns:130px minmax(0,1fr) auto;gap:16px;padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);align-items:center}
.mitem .th{aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--panel2);position:relative}.mitem .th img{width:100%;height:100%;object-fit:cover}
.mitem .th .noimg{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted2);font-size:12px}
.mitem .t{font-weight:600;font-size:15px;margin:4px 0 2px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.mitem .metrics{display:flex;gap:14px;font-size:12.5px;color:var(--muted);margin-top:6px;flex-wrap:wrap}.mitem .metrics b{color:var(--text);font-family:var(--mono);font-weight:600}
.mitem .acts{display:flex;flex-direction:column;gap:6px;align-items:stretch;min-width:120px}
@media (max-width:640px){.mitem{grid-template-columns:100px minmax(0,1fr)}.mitem .acts{grid-column:1/-1;flex-direction:row;flex-wrap:wrap}}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.ph{position:relative;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--panel2);border:1px solid var(--line)}
.ph img{width:100%;height:100%;object-fit:cover}
.ph .x,.ph .cover-btn{position:absolute;border:0;border-radius:7px;padding:3px 8px;cursor:pointer;font:inherit;font-size:11.5px;color:#fff;background:rgba(0,0,0,.55)}
.ph .x{top:6px;right:6px}.ph .cover-btn{left:6px;bottom:6px}.ph .cover-btn:hover,.ph .x:hover{background:rgba(0,0,0,.75)}
.ph .n{position:absolute;left:6px;top:6px;background:rgba(0,0,0,.55);color:#fff;border-radius:7px;padding:1px 7px;font-size:11px}
.ph.cover .n{background:var(--accent)}.ph.uploading{opacity:.55}
.dropzone{border:2px dashed var(--line);border-radius:12px;padding:22px;text-align:center;color:var(--muted);cursor:pointer;background:var(--panel2)}.dropzone:hover,.dropzone.over{border-color:var(--accent);color:var(--accent)}
.msg{padding:14px 16px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px}
.msg.unread{border-left:3px solid var(--accent)}.msg .meta{font-size:12.5px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap}.msg .body{white-space:pre-line;margin-top:4px}
.msg .links{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}

/* ---------------------------------------------------------------- tables / admin */
.tbl-wrap{overflow:auto;-webkit-overflow-scrolling:touch}
table.tbl{width:100%;border-collapse:collapse;font-size:13.5px}.tbl th,.tbl td{padding:10px 12px;border-bottom:1px solid var(--line2);text-align:left;vertical-align:middle}
.tbl th{font-size:12px;color:var(--muted);font-weight:600;background:var(--panel2);position:sticky;top:0}.tbl tr:hover td{background:var(--panel2)}
.tbl td.num,.tbl th.num{text-align:right;font-family:var(--mono)}
.tbl .thumb{width:64px;height:48px;border-radius:8px;object-fit:cover;background:var(--panel2)}
.drawer-bg{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:80}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(600px,100vw);background:var(--panel);border-left:1px solid var(--line);z-index:90;overflow:auto;box-shadow:var(--sh-3)}
.drawer .d-h{position:sticky;top:0;background:var(--panel);border-bottom:1px solid var(--line2);padding:12px 18px;display:flex;gap:10px;align-items:center;z-index:1}
.drawer .d-b{padding:18px}

/* ---------------------------------------------------------------- misc */
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--text);color:var(--bg);padding:11px 18px;border-radius:12px;font-size:13.5px;z-index:200;box-shadow:var(--sh-3);max-width:90vw;display:flex;gap:8px;align-items:center}
.toast.err{background:var(--bad);color:#fff}.toast.ok{background:var(--good);color:#fff}
.footer{margin-top:60px;padding:24px 0;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted)}
.footer .inner{max-width:1180px;margin:0 auto;padding:0 20px;display:flex;gap:16px;flex-wrap:wrap;justify-content:space-between}
.leaflet-container{font:inherit;z-index:1}
.embed-block{margin-top:28px}

/* ---------------------------------------------------------------- map-first browse */
.browse{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:20px;align-items:start}
.browse .mapcol{position:sticky;top:calc(var(--mp-hdr) + 16px)}
.mapcard{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);overflow:hidden}
.mapcard .mh{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line2);font-size:13.5px}
.mapcard .mh b{font-size:15px;white-space:nowrap}.mapcard .mh .muted{font-size:12px;line-height:1.3}
.mapcard .echart{height:520px;width:100%}
.dimchips{display:flex;flex-wrap:wrap;gap:6px;padding:12px 14px;border-top:1px solid var(--line2)}
.dimchips .chip{padding:5px 10px;font-size:12.5px}.dimchips .chip i{width:8px;height:8px;border-radius:50%;display:inline-block}
.legend{display:flex;align-items:center;gap:8px;padding:0 14px 12px;font-size:11.5px;color:var(--muted)}
.legend .grad{flex:1;height:8px;border-radius:4px;background:linear-gradient(90deg,#c0392b,#e08a4a,#f2d074,#a9d48b,#2e8b57)}
.sel-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 8px 5px 12px;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent);font-weight:600;font-size:13px}
.sel-chip button{border:0;background:var(--accent);color:#fff;width:20px;height:20px;border-radius:50%;cursor:pointer;display:grid;place-items:center;padding:0}
.view-toggle{display:none}
@media (max-width:960px){.browse{grid-template-columns:minmax(0,1fr)}.browse .mapcol{position:static}.mapcard .echart{height:420px}.view-toggle{display:flex;gap:6px;margin-bottom:12px;position:sticky;top:var(--mp-hdr);z-index:20;background:var(--bg);padding:8px 0}.browse[data-view="list"] .mapcol{display:none}.browse[data-view="map"] .listcol{display:none}}
/* dimension chips double as sliders: tap = view that dimension, press-and-drag left/right = weight; fill = share of total weight */
.dimchips .chip{position:relative;overflow:hidden;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:pointer;padding:6px 10px;gap:6px}
.dimchips .chip .fill{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--accent-soft);transition:width .08s}
.dimchips .chip .lbl,.dimchips .chip .pct{position:relative}.dimchips .chip .pct{font-family:var(--mono);font-size:11px;color:var(--muted)}
.dimchips .chip.on .fill{background:var(--accent-h)}.dimchips .chip.on{background:var(--accent);color:#fff}.dimchips .chip.on .pct{color:rgba(255,255,255,.85)}
.dimchips .chip.dragging{cursor:ew-resize;box-shadow:0 0 0 3px var(--accent-soft)}
.dimchips .chip.zero{opacity:.55}.dimchips .chip.zero.on{opacity:1}
.dimchips .chip.hot .lbl{color:#fff;font-weight:600}.dimchips .chip.hot .pct{color:rgba(255,255,255,.9)}
.dimhint{display:flex;justify-content:space-between;gap:10px;padding:0 14px 10px;font-size:11.5px;color:var(--muted)}
/* inline weight slider for the tapped dimension */
.dimctl{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:8px 14px 12px;font-size:13px}
.dimctl b{white-space:nowrap}.dimctl .val{font-family:var(--mono);font-weight:600;min-width:42px;text-align:right}
.dimctl input[type=range]{width:100%;accent-color:var(--accent);height:28px;cursor:pointer}
.dimctl .quick{display:flex;gap:4px}.dimctl .quick button{padding:0 8px;height:26px;font-size:12px}
/* two explicit map modes: weighted (chips are sliders) vs single dimension (chips are buttons) */
.modebar{display:flex;gap:6px;padding:12px 14px 4px;align-items:center;flex-wrap:wrap}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel2)}
.seg button{border:0;background:transparent;font:inherit;font-size:13px;font-weight:600;padding:7px 12px;cursor:pointer;color:var(--muted)}
.seg button.on{background:var(--accent);color:#fff}
.modebar .ex{font-size:12px;color:var(--muted)}
.dimchips.single .chip .fill,.dimchips.single .chip .pct{display:none}
.dimchips.single .chip{cursor:pointer}.dimchips.single .chip.zero{opacity:1}
/* weighted mode: dashboard-style slider list */
.wlist{display:flex;flex-direction:column;gap:6px;padding:10px 14px 4px}
.wrow{display:grid;grid-template-columns:16px 10px minmax(0,1fr) 20px minmax(0,1.6fr) 44px;gap:8px;align-items:center;padding:7px 10px;border:1px solid var(--line2);border-left:3px solid var(--dc,var(--accent));border-radius:10px;background:var(--panel2);font-size:13.5px}
.wrow .caret{width:16px;height:16px;border:0;background:none;padding:0;cursor:pointer;color:var(--muted);font-size:11px}.wrow .caret.open{transform:rotate(90deg)}
.wrow .dot{width:10px;height:10px;border-radius:50%;background:var(--dc,var(--accent))}
.wrow .nm{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wrow .info{width:18px;height:18px;border:1px solid var(--line);border-radius:50%;background:var(--panel);color:var(--muted);font-size:11px;display:grid;place-items:center;cursor:help}
.wrow input[type=range]{width:100%;accent-color:var(--accent);height:24px;margin:0;cursor:pointer}
.wrow .v{font-family:var(--mono);font-weight:700;font-size:13px;text-align:right}
.wrow.sub{margin-left:22px;border-left-width:2px;background:transparent;padding:4px 10px;font-size:13px}.wrow.sub .nm{font-weight:500;color:var(--muted)}.wrow.sub .v{font-weight:500;color:var(--muted)}
.wrow.off{opacity:.5}
.presets{display:flex;gap:6px;flex-wrap:wrap;padding:8px 14px 0}.presets .chip{padding:5px 10px;font-size:12.5px}
.wfoot{padding:6px 14px 10px;font-size:11.5px;color:var(--muted);display:flex;justify-content:space-between;gap:10px}
/* filter panel sits ABOVE the map inside the sticky column: both stay on screen; panel scrolls internally, map shrinks while it is open */
.mapcard .echart{height:calc(100vh - 230px);min-height:360px;max-height:680px;transition:height .15s}
.mapcard.fopen .echart{height:calc(100vh - 230px - 38vh);min-height:300px}
.fpanel{max-height:38vh;overflow:auto;border-bottom:1px solid var(--line2);background:var(--panel2)}
.fpanel[hidden]{display:none}
.fpanel .modebar{padding:10px 12px 4px}.fpanel .presets{padding:6px 12px 0}.fpanel .wlist{padding:8px 12px 4px;gap:4px}.fpanel .wrow{padding:4px 8px}.fpanel .wfoot{padding:4px 12px 8px}.fpanel .dimchips{padding:10px 12px}
.mh .ftoggle{margin-left:auto}
.mh .fsum{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
@media (max-width:960px){.mapcard .echart,.mapcard.fopen .echart{height:52vh;min-height:320px}.fpanel{max-height:45vh}}
/* SEO-friendly site footer (static markup in the HTML, same content everywhere) */
/* search + numeric filters above the results */
.searchbar{display:flex;flex-direction:column;gap:10px;padding:12px 14px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);margin-bottom:14px}
.searchbar .q{display:flex;gap:8px}.searchbar .q .input{flex:1;height:44px;font-size:15px;padding-left:38px;background:var(--panel) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7570' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/></svg>") 12px center/18px no-repeat}
.searchbar .frow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:8px;align-items:end}
.searchbar .frow .field .label{font-size:12px}.searchbar .input,.searchbar .select{height:38px;font-size:14px}
.searchbar .quick{display:flex;gap:6px;flex-wrap:wrap}.searchbar .quick .chip{padding:4px 10px;font-size:12px}
.searchbar details summary{cursor:pointer;font-size:13px;color:var(--accent);list-style:none;display:inline-flex;gap:6px;align-items:center}.searchbar details summary::-webkit-details-marker{display:none}
@media (max-width:700px){.searchbar .frow{grid-template-columns:1fr 1fr}}
/* form groups (Tier 1) */
.fgroup{border:1px solid var(--line);border-radius:12px;background:var(--panel2);margin-top:14px}
.fgroup>summary{list-style:none;cursor:pointer;padding:12px 14px;display:flex;align-items:center;gap:10px;font-weight:600}.fgroup>summary::-webkit-details-marker{display:none}
.fgroup>summary .muted{font-weight:400;font-size:12.5px}.fgroup>summary .chev{margin-left:auto;transition:transform .15s}.fgroup[open]>summary .chev{transform:rotate(90deg)}
.fgroup .form-grid{padding:4px 14px 14px}
.zdot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px}
.meter{display:flex;align-items:center;gap:10px;font-size:13px}.meter .bar{flex:1;height:8px;border-radius:4px;background:var(--line2);overflow:hidden;min-width:80px}.meter .bar i{display:block;height:100%;background:var(--accent);border-radius:4px;transition:width .2s}
.meter b{font-family:var(--mono)}
.docgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.doc{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--panel2);font-size:12.5px;display:flex;flex-direction:column;gap:6px}
.doc .k{font-weight:600}.doc img{aspect-ratio:4/3;object-fit:cover;border-radius:8px;width:100%}
.expiry{font-size:12px;color:var(--muted)}.expiry.soon{color:var(--bad);font-weight:600}
/* polygon tool */
.maptools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0}
.maptools .btn.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.areaout{font-size:13px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}.areaout b{font-family:var(--mono)}
.vtx{width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 0 0 2px rgba(0,0,0,.15);cursor:move}
.video{aspect-ratio:16/9;width:100%;border:0;border-radius:12px;background:#000}
/* duplicates panel */
.dupbox{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--panel2)}.dupbox li{margin:4px 0}
/* ---- ground truth (รายงานจากพื้นที่จริง) */
.gt-head{margin-bottom:12px}.gt-prog{display:flex;align-items:center;gap:10px;font-size:13px;margin-top:10px}.gt-prog .bar{flex:1;height:8px;border-radius:4px;background:var(--line2);overflow:hidden}.gt-prog .bar i{display:block;height:100%;background:var(--accent);border-radius:4px;transition:width .2s}
.gt-sec summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.gt-sec .gt-t{font-weight:600}.gt-sec .gt-dims{display:flex;flex-wrap:wrap;gap:6px 14px;margin-left:auto}.gt-dim{display:inline-flex;flex-direction:column;gap:2px}
.gt-delta{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:2px 8px;border-radius:var(--r-pill);background:var(--panel2);border:1px solid var(--line);white-space:nowrap}.gt-delta i{font-style:normal;font-weight:600}
.gt-delta.ok{background:var(--good-soft);border-color:transparent;color:var(--good)}.gt-delta.some{background:var(--mid-soft);border-color:transparent;color:#8a5a00}.gt-delta.big{background:var(--bad-soft);border-color:transparent;color:var(--bad)}
:root[data-theme="dark"] .gt-delta.some{color:#ffd27a}
.gt-body{display:grid;gap:12px}.gt-q .chips{margin-top:2px}.gt-sec.gt-empty>summary .gt-t::after,.gt-sec.gt-partial>summary .gt-t::after{content:" *";color:var(--bad)}
.gt-expl{margin-top:12px;padding:12px;border:1px dashed var(--bad);border-radius:var(--r);background:var(--bad-soft)}.gt-expl .textarea{background:var(--panel)}
.gt-attest{display:flex;gap:10px;align-items:flex-start;margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel2);font-size:13px;line-height:1.5;cursor:pointer}.gt-attest input{margin-top:3px;width:18px;height:18px;flex:0 0 auto}.gt-attest.miss{border-color:var(--bad);box-shadow:0 0 0 3px color-mix(in srgb,var(--bad) 18%,transparent)}
.gt-status{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.gt-grid{display:grid;gap:6px}.gt-row{display:grid;grid-template-columns:120px 1fr auto;gap:10px;align-items:center;font-size:13px;padding:6px 0;border-top:1px solid var(--line2)}.gt-row:first-child{border-top:0}.gt-row .k{color:var(--muted)}
.gt-row .bars{display:grid;gap:3px}.gt-row .b{display:grid;grid-template-columns:86px 1fr 30px;gap:8px;align-items:center}.gt-row .b .bar{height:7px;border-radius:4px;background:var(--line2);overflow:hidden}.gt-row .b .bar i{display:block;height:100%;border-radius:4px}.gt-row .b b{font-family:var(--mono);font-size:12px;text-align:right}
.gt-expl-view{margin:10px 0;padding:10px 12px;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 var(--r) var(--r) 0;font-size:13.5px}
.gt-answers{display:grid;gap:2px}.gt-ah{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-top:10px;padding-bottom:4px;border-bottom:1px solid var(--line)}.gt-answers .frow .v input{margin-right:8px;vertical-align:middle}
@media (max-width:640px){.gt-row{grid-template-columns:1fr;gap:4px}.gt-sec .gt-dims{margin-left:0}}

/* ---- ground-truth wizard + step-2 tabs */
.mtabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:14px}.mtabs button{background:none;border:0;border-bottom:2px solid transparent;padding:10px 14px;font:inherit;font-weight:600;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:8px;margin-bottom:-1px}.mtabs button.on{color:var(--accent);border-bottom-color:var(--accent)}.mtabs button .badge{font-size:11px}
.pc-collapsed .pc-sec:not(.pc-keep){display:none}.pc-toggle{margin:8px 0 0}
.gtw-top{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;font-size:13px;margin-bottom:14px}.gtw-top .bar{height:8px;border-radius:4px;background:var(--line2);overflow:hidden}.gtw-top .bar i{display:block;height:100%;background:var(--accent);border-radius:4px;transition:width .25s}
.gtw-box{padding:18px 20px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel2);min-height:220px}.gtw-ctx{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.gtw-q{font-size:18px;font-weight:700;margin:0 0 12px;line-height:1.35}
.gtw-opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.gtw-opt{display:flex;align-items:center;gap:10px;text-align:left;padding:12px 14px;border:1.5px solid var(--line);border-radius:var(--r);background:var(--panel);font:inherit;font-size:14px;color:var(--text);cursor:pointer;transition:border-color .12s,background .12s}
.gtw-opt:hover{border-color:var(--accent)}.gtw-opt i{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.gtw-opt i .ic{width:12px;height:12px;stroke-width:3}.gtw-opt.on{border-color:var(--accent);background:var(--accent-soft)}.gtw-opt.on i{background:var(--accent);border-color:var(--accent);color:#fff}.gtw-opt.ok.on{border-color:var(--good);background:var(--good-soft)}.gtw-opt.ok.on i{background:var(--good);border-color:var(--good)}
.gtw-nav{display:flex;align-items:center;gap:8px;margin-top:12px}.gtw-nav .sp{flex:1}
.gtw-sum{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px 14px;margin-bottom:14px}.gtw-sum-row{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;padding:6px 0;border-bottom:1px solid var(--line2)}.gtw-sum-row .k{color:var(--muted)}
.gtw-answers{display:grid;gap:4px}.gtw-ans{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;text-align:left;padding:8px 10px;border:1px solid var(--line2);border-radius:8px;background:var(--panel);font:inherit;font-size:13px;color:var(--text);cursor:pointer}.gtw-ans:hover{border-color:var(--accent)}.gtw-ans .k{color:var(--muted)}.gtw-ans .v{font-weight:600}.gtw-ans .e{color:var(--muted)}.gtw-ans.miss{border-color:var(--bad)}.gtw-ans.miss .v{color:var(--bad)}
.input-lg{font-size:18px;padding:12px 14px}
@media (max-width:640px){.gtw-top{grid-template-columns:1fr auto}.gtw-top .bar{grid-column:1/-1}.gtw-opts{grid-template-columns:1fr}}
.miss-box{border-color:var(--bad)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--bad) 18%,transparent)}
.btn.pulse{animation:pulse 1.4s ease-in-out infinite;position:relative}@keyframes pulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent)}50%{box-shadow:0 0 0 10px transparent}}
.pc-stale{margin-bottom:10px}
.modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,calc(100vw - 32px));max-height:90vh;overflow:auto;z-index:90;box-shadow:var(--sh-3)}
.zoomhint{background:rgba(255,255,255,.92);color:#1a1a1a;font:12px/1.4 Sarabun,system-ui;padding:4px 8px;border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,.25);max-width:280px}.zoomhint.warn{background:#fff3d6;color:#7a4b00;font-weight:600}
.leaflet-control-layers{font:12px Sarabun,system-ui}
.mapcard .leaf{height:520px;width:100%;background:var(--panel2)}
.pin-wrap{background:none;border:0}.pin-price{position:absolute;transform:translate(-50%,-100%);white-space:nowrap;background:#fff;color:#1a1a1a;border:2px solid var(--accent);border-radius:14px;padding:2px 8px;font:600 12px/1.4 Sarabun,system-ui;box-shadow:0 1px 4px rgba(0,0,0,.3);cursor:pointer}
.pin-price::after{content:"";position:absolute;left:50%;bottom:-6px;width:8px;height:8px;background:#fff;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:translateX(-50%) rotate(45deg)}
.pin-price.on{background:var(--accent2);border-color:var(--accent2);color:#fff}.pin-price.on::after{background:var(--accent2);border-color:var(--accent2)}
.pin-price.demo{position:static;transform:none;display:inline-block;margin:0 2px}.pin-price.demo::after{display:none}
.tamlegend{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 14px;font-size:12px;color:var(--muted);border-top:1px solid var(--line2)}
.tam-label-wrap{background:none;border:0}.tam-label{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;font:600 11px/1.3 Sarabun,system-ui;color:#1e3a8a;background:rgba(255,255,255,.85);padding:1px 6px;border-radius:8px;border:1px solid rgba(30,58,138,.35);pointer-events:none}
.tam-label b{display:inline-block;margin-left:4px;background:#1e3a8a;color:#fff;border-radius:8px;padding:0 5px;font-size:10px}

/* =====================================================================================================================
   MOBILE (≤700 / ≤640 / ≤520) – phone-width rules only; nothing above these widths changes.  Verified by `make local-mobile`. */
.input-group .input{min-width:0}                                  /* number inputs have an intrinsic min-width that overflows 3-up rows */
@media (max-width:960px){.mapcard .leaf{height:min(52dvh,480px);min-height:300px}}
@media (max-width:700px){
  /* iOS zooms the page when a focused field is < 16px */
  .input,.select,.textarea,.searchbar .input,.searchbar .select,.input-lg{font-size:16px}
  /* safe areas (notch / home indicator) */
  .action-bar{padding-bottom:calc(12px + env(safe-area-inset-bottom));gap:8px}
  .toast{bottom:calc(16px + env(safe-area-inset-bottom))}
  .drawer .d-h{padding-top:calc(12px + env(safe-area-inset-top));flex-wrap:wrap}
  .drawer .d-b{padding-bottom:calc(16px + env(safe-area-inset-bottom))}
  .modal{max-height:calc(100dvh - 24px)}
  /* rows that must never push the page sideways */
  .area-3{gap:6px}.area-3 .input{padding:0 8px}.area-3 .addon{padding:0 6px;font-size:12px}
  .lcard .im .ribbon{flex-wrap:wrap;max-width:calc(100% - 20px)}
  .mtabs{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.mtabs::-webkit-scrollbar{display:none}.mtabs button{white-space:nowrap;flex:none;padding:10px 10px}
  .mapcard .mh{flex-wrap:wrap}.mapcard .mh .muted{flex:1 1 100%}
  .gtw-nav{flex-wrap:wrap}.gtw-nav .btn-primary{flex:1 1 100%;order:2;height:44px}
  .results-head h1{font-size:18px}
  .note,.kv dd,.mono,.desc,.msg .body,.mitem .t,.lcard .t,.title-block h1,h1,h2,.mitem .small,.msg .meta{overflow-wrap:anywhere}
  .btn.pc-toggle,.btn-block{white-space:normal;text-align:center}
  .kv{grid-template-columns:1fr;gap:2px 0}.kv dt{margin-top:6px}
  .row.pair>*{flex:1;min-width:0}.row.pair .w150{flex:0 0 118px}
  .zoomhint{max-width:calc(100vw - 96px);font-size:11px}
  .map.pin{height:calc(100dvh - 240px);min-height:300px;max-height:460px}
  /* touch targets ≥ 40px (chips, small buttons, clear ×, photo controls, weight rows, map pins) */
  .chip,.dimchips .chip,.quick .chip,.presets .chip,.seg button,.searchbar .quick .chip{min-height:40px;padding-top:8px;padding-bottom:8px}
  .sel-chip{padding:6px 6px 6px 12px}.sel-chip button{width:28px;height:28px}
  .ph .x,.ph .cover-btn{min-width:32px;min-height:32px;padding:4px 10px;font-size:12px}
  .wrow{grid-template-columns:28px 10px minmax(0,1fr) 20px minmax(0,1.6fr) 44px}.wrow .caret{width:28px;height:28px;font-size:14px}.wrow input[type=range]{height:36px}
  .pin-price{padding:5px 10px;font-size:13px}
  .btn-sm{min-height:36px}.side-nav a{min-height:44px}.link-btn{padding:6px 0}
  .searchbar details summary{padding:8px 0}
  .pc-head{padding:14px 16px}.pc-sec{padding:12px 16px}
  .stat .v{font-size:20px}
}
@media (max-width:640px){
  .map{height:min(60dvh,300px)}
  .action-bar .btn{flex:1 1 40%;height:44px;white-space:normal}.action-bar .btn-primary{flex-basis:100%;order:2}
  .mitem .acts .btn{flex:1 1 45%;min-height:40px;justify-content:center}.mitem .acts .btn-primary{flex-basis:100%}
  .drawer .row .btn-lg{flex:1 1 100%}
}
@media (max-width:520px){.mtabs .muted.xs{display:none}.stat-tiles{gap:8px}}
/* ---- shared overlays (UI.lightbox / UI.confirm / UI.prompt) */
.modal.lightbox{left:0;top:0;transform:none;width:100vw;height:100dvh;max-height:none;border:0;border-radius:0;padding:0;background:#000;color:#fff;z-index:130;overflow:hidden;box-shadow:none}
.lb-stage{position:absolute;inset:0;display:grid;place-items:center;padding:0}.modal.lightbox img,.modal.lightbox video{max-width:100vw;max-height:100dvh;width:auto;height:auto;object-fit:contain;display:block;background:#000}.modal.lightbox video{width:min(100vw,1280px)}
.lb-bar{position:absolute;left:0;right:0;top:0;display:flex;align-items:center;gap:10px;padding:10px 12px;background:linear-gradient(rgba(0,0,0,.55),transparent);pointer-events:none}.lb-bar>*{pointer-events:auto}
.lb-top{width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.15);color:#fff;display:grid;place-items:center;cursor:pointer}.lb-top:hover{background:rgba(255,255,255,.3)}.lb-top .ic{width:20px;height:20px}
.lb-cnt{font-family:var(--mono);font-size:13px;min-width:56px;text-align:center;background:rgba(0,0,0,.45);padding:6px 10px;border-radius:12px}
.lb-side{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.85);color:#222;display:grid;place-items:center;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.4)}.lb-side:hover{background:#fff}.lb-side .ic{width:20px;height:20px}.lb-side.prev{left:12px}.lb-side.next{right:12px}
@media (max-width:700px){.lb-side{width:38px;height:38px;background:rgba(255,255,255,.7)}}
.modal.lightbox + .drawer-bg,.drawer-bg:has(+ .modal.lightbox){z-index:129}
.modal.dialog .dlg-msg{font-size:15px;line-height:1.55;margin:0 0 14px;white-space:pre-line}.modal.dialog .dlg-btns{justify-content:flex-end;margin-top:14px}.modal.dialog .dlg-btns .btn{min-height:44px;min-width:96px}.modal.dialog .input,.modal.dialog .textarea{width:100%}
@media (max-width:520px){.modal.dialog .dlg-btns .btn{flex:1}}
/* ---- listing page: phone contact bar */
.cbar{display:none}
@media (max-width:960px){
  .cbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;gap:8px;align-items:center;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--line);box-shadow:0 -4px 16px rgba(0,0,0,.12)}
  .cbar .price{font-family:var(--mono);font-weight:700;font-size:17px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cbar .price small{display:block;font-family:var(--font);font-weight:400;font-size:11px;color:var(--muted)}
  .cbar .btn{height:44px;white-space:nowrap}.cbar .cbar-links{display:flex;gap:6px}
  body.has-cbar{padding-bottom:calc(84px + env(safe-area-inset-bottom))}body.has-cbar .toast{bottom:calc(96px + env(safe-area-inset-bottom))}
}
.row.pair{flex-wrap:nowrap}.row.pair>*{min-width:0}.input-group.w150{flex:0 0 150px}
/* ---- admin queue: rows become cards on phones (7 columns cannot fit 390px) */
@media (max-width:700px){
  .tbl-cards thead{display:none}.tbl-cards,.tbl-cards tbody{display:block}
  .tbl-cards tr{display:grid;grid-template-columns:64px minmax(0,1fr);gap:2px 12px;padding:12px 14px;border-bottom:1px solid var(--line2);cursor:pointer}.tbl-cards tr:active{background:var(--panel2)}
  .tbl-cards td{display:block;border:0;padding:0;font-size:13px}.tbl-cards td:nth-child(1){grid-row:1/5}.tbl-cards td:nth-child(1) .thumb{width:64px;height:48px}
  .tbl-cards td:nth-child(3),.tbl-cards td:nth-child(6){font-size:12px;color:var(--muted)}.tbl-cards td:nth-child(3) div{display:inline}.tbl-cards td:nth-child(3) div+div::before{content:" · "}
  .tbl-cards td:nth-child(4){margin-top:4px}.tbl-cards td.num{text-align:left;font-weight:700;font-family:var(--mono)}
  .tbl-cards td:nth-child(7){grid-column:1/-1;margin-top:8px}.tbl-cards td:nth-child(7) .btn{width:100%;min-height:44px;justify-content:center}
  .tbl tr:hover td{background:transparent}
}
@media (max-width:640px){.stepper .s span{font-size:12px;white-space:nowrap}}
/* ---- social action row (cards + listing page) */
.lwrap{display:flex;flex-direction:column;min-width:0}.lwrap .lcard{flex:1;border-radius:var(--r-lg) var(--r-lg) 0 0;border-bottom:0}
.social{display:flex;background:var(--panel);border:1px solid var(--line);border-top:1px solid var(--line2);border-radius:0 0 var(--r-lg) var(--r-lg);box-shadow:var(--sh-1)}
.sbtn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:6px 8px;background:none;border:0;font:inherit;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;border-radius:8px;text-decoration:none}
.sbtn .ic{width:17px;height:17px}.sbtn b{font-family:var(--mono);font-weight:600;color:var(--text)}.sbtn:hover{background:var(--panel2);text-decoration:none}.sbtn.on{color:var(--bad)}.sbtn.on .ic{fill:var(--bad)}
.social.lg .sbtn{min-height:44px;font-size:14px}
.sbtn.confirm.on{color:var(--good)}.sbtn.confirm.on .ic{fill:none;stroke:var(--good)}.sbtn.confirm.ro{cursor:default}.sbtn.confirm.ro:hover{background:none}
.confirmed{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--good);background:var(--good-soft);border-radius:var(--r-pill);padding:2px 9px}.confirmed .ic{width:12px;height:12px}.confirmed[hidden]{display:none}.confirmed.sm{padding:0 6px;font-size:11px}
@media (max-width:700px){.lgrid{gap:14px}.lcard .im{aspect-ratio:4/3}.sbtn span{font-size:13px}}
/* ---- comments */
.title-block .social{margin-top:12px;border-radius:var(--r);border-top:1px solid var(--line)}
.clist{display:grid;gap:10px;margin:10px 0 14px}.cmt{display:grid;grid-template-columns:36px 1fr;gap:10px}.cmt .avatar{width:36px;height:36px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:700}
.cmt .cb{min-width:0}.cmt .ch{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px}.cmt .ct{background:var(--panel2);border-radius:12px;padding:8px 12px;margin:4px 0;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.cmt.owner .ct{background:var(--accent-soft)}.creplies{grid-column:2;display:grid;gap:8px}.cform{display:grid;gap:8px}
.cmt .cact{display:flex;gap:14px;align-items:center;margin:0 4px}.cmt .cact .link-btn{display:inline-flex;align-items:center;gap:4px;color:var(--muted)}.cmt .cact .link-btn:hover{color:var(--accent)}
.clike svg{width:15px;height:15px}.clike.on{color:var(--bad)}.clike.on svg{fill:currentColor}.clike b{font-weight:600;font-size:12px}
.cmore{display:inline-flex;align-items:center;gap:6px;font-size:13px;margin:2px 0 6px}.cmore svg{width:15px;height:15px}.clist .cmt.flash .ct{box-shadow:0 0 0 2px var(--accent);animation:cflash 2.4s ease-out forwards}@keyframes cflash{0%,60%{box-shadow:0 0 0 2px var(--accent)}100%{box-shadow:none}}
.creply-note{display:flex;gap:8px;align-items:center}
/* ---- browse search bar: collapsible filters + hide-on-scroll (phones) */
.sb-line{display:none}
@media (max-width:960px){
  .sb-wrap{position:sticky;top:var(--mp-hdr);z-index:25;transition:transform .25s ease,opacity .25s ease;background:var(--bg);padding-bottom:4px}
  .sb-wrap.away{transform:translateY(calc(-100% - var(--mp-hdr)));opacity:0;pointer-events:none}
  .searchbar{margin-bottom:8px;padding:10px 12px}
  .sb-line{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.sb-line .sb-sum{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sb-toggle .cnt{background:var(--accent);color:#fff;border-radius:9px;padding:0 6px;font-size:11px;margin-left:2px}
  .searchbar .sb-more{display:none}.searchbar.open .sb-more{display:flex;flex-direction:column;gap:10px}.searchbar .frow{grid-template-columns:1fr 1fr}
}
/* ---- listing page on phones: close button + comments bottom sheet (Facebook-style) */
.page-close,.sheet-open-btn{display:none}
@media (max-width:960px){
  .page-close{display:inline-flex;position:fixed;top:calc(var(--mp-hdr) + 8px + env(safe-area-inset-top));right:12px;z-index:45;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--text);align-items:center;justify-content:center;box-shadow:var(--sh-2);cursor:pointer}
  #comments{display:none}                                        /* phones: comments live in the sheet only (opened from the ความคิดเห็น button) */
  .sheet-bg{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:80;animation:fadein .2s}.sheet-bg.out{opacity:0;transition:opacity .2s}
  .sheet{position:fixed;left:0;right:0;bottom:0;height:88dvh;background:var(--panel);border-radius:18px 18px 0 0;z-index:90;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .22s ease;box-shadow:0 -8px 30px rgba(0,0,0,.25);touch-action:pan-y}
  .sheet.in{transform:translateY(0)}
  .sheet-head{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:6px 8px 8px 16px;border-bottom:1px solid var(--line);position:relative}
  .sheet-head .handle{grid-column:1/-1;justify-self:center;width:40px;height:5px;border-radius:3px;background:var(--line);margin:4px 0 6px}.sheet-head b{font-size:16px}
  .sheet-body{flex:1;overflow:auto;padding:12px 16px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.sheet-body .clist{display:grid;margin:0}
  .sheet-foot{padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--panel)}.sheet-foot .cform{display:grid}
  body.sheet-open{overflow:hidden}body.sheet-open .cbar{display:none}
}
@keyframes fadein{from{opacity:0}to{opacity:1}}
/* ---- message-only contact: buyer thread page + seller inbox */
.thread{display:flex;flex-direction:column;gap:10px;margin:14px 0}
.thread .bubble{max-width:85%;padding:10px 14px;border-radius:14px;background:var(--panel2);border:1px solid var(--line);white-space:pre-wrap;word-break:break-word}
.thread .bubble.seller{align-self:flex-start;border-bottom-left-radius:4px}.thread .bubble.buyer{align-self:flex-end;background:var(--good-soft);border-color:transparent;border-bottom-right-radius:4px}
.thread .bubble .who{display:block;font-size:11px;color:var(--muted);margin-bottom:3px}
.due{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:2px 9px;border-radius:var(--r-pill)}
.due.ok{background:var(--good-soft);color:var(--good)}.due.soon{background:var(--mid-soft);color:#8a5a00}.due.late{background:var(--bad-soft,rgba(192,57,43,.12));color:var(--bad,#c0392b)}.due.done{background:var(--panel2);color:var(--muted)}
:root[data-theme="dark"] .due.soon{color:#ffd27a}
.locked{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12.5px;padding:8px 10px;border:1px dashed var(--line);border-radius:10px}
.msg .reply-box{margin-top:10px;display:none;gap:8px;flex-direction:column}.msg .reply-box.open{display:flex}
.thread-status{padding:10px 14px;border-radius:12px;border:1px solid var(--line);background:var(--panel2);font-size:13.5px}
.thread-status.late{border-color:var(--bad,#c0392b)}.thread-status.ok{border-color:var(--good)}
.modal.login-dlg{text-align:center}.modal.login-dlg .em{font-size:38px}.modal.login-dlg h3{margin:4px 0 8px}.modal.login-dlg .btn-block{margin-top:8px}
/* ---- in-app chat (mp/chat.js): thread view + inbox rows */
.chat{display:flex;flex-direction:column;min-height:0;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);overflow:hidden}
.chat-head{display:grid;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--panel2)}.chat-head .ell a{color:inherit}
.chat-list{flex:1;min-height:180px;max-height:52vh;overflow:auto;padding:12px 14px;display:flex;flex-direction:column;gap:6px;-webkit-overflow-scrolling:touch}
.chat-list .day{align-self:center;font-size:11px;color:var(--muted);margin:6px 0 2px}
.chat-list .bubble{max-width:82%;padding:8px 12px;border-radius:16px;display:grid;gap:2px;word-break:break-word}
.chat-list .bubble .txt{white-space:pre-wrap;font-size:14.5px}.chat-list .bubble .who{font-size:11px;color:var(--muted)}.chat-list .bubble .ts{font-size:10.5px;color:var(--muted);justify-self:end}
.chat-list .bubble.them{align-self:flex-start;background:var(--panel2);border:1px solid var(--line);border-bottom-left-radius:4px}
.chat-list .bubble.me{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px}.chat-list .bubble.me .ts{color:rgba(255,255,255,.75)}
.chat-foot{display:grid;grid-template-columns:auto 1fr 44px;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);align-items:end}
.chat-foot .textarea{min-height:44px;max-height:120px;resize:none;padding:11px 12px}.chat-foot .btn{height:44px;width:44px;padding:0;border-radius:50%}
.chat-head .locked{font-size:12px;color:var(--muted);display:inline-flex;gap:6px;align-items:center}
.trows{display:grid;gap:8px}
.trow{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;text-align:left;padding:12px 14px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);cursor:pointer;font:inherit;color:inherit}
.trow:hover{border-color:var(--accent)}.trow.unread{border-left:3px solid var(--accent)}.trow.unread .pv{font-weight:700}.trow .tb{display:grid;gap:3px;min-width:0}.trow .pv{font-size:13.5px;color:var(--ink)}
.trow .cnt{min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--accent);color:#fff;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.ell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block}
.chat-inline{margin-top:12px}.chat-inline .chat-list{max-height:40vh}
.chat-page{display:grid;gap:10px}.chat-page .chat-list{max-height:none;min-height:0}
.chat-page .chat{height:calc(100vh - 200px);min-height:380px}
@media (max-width:960px){.chat-page .chat{height:calc(100dvh - 330px);min-height:340px}}
.sheet-body.chat-sheet{display:flex;flex-direction:column;padding:0}.chat-sheet .chat{border:0;border-radius:0;flex:1;min-height:0}.chat-sheet .chat-list{max-height:none}
/* ---- location groups (mp/groups.js) */
.grows{display:grid;gap:8px}.grow{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r)}
.grow .gl{display:flex;align-items:center;gap:10px;flex:1;min-width:0;color:inherit}.grow .gl:hover{text-decoration:none}.grow .gt{display:grid;min-width:0}.grow .gt b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grow .gt small{line-height:1.35}
.grow .follow{flex:none}.btn.follow.on{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.preg{margin-top:14px}.preg h3{font-size:13px;color:var(--muted);text-transform:none;margin:0 0 8px;font-weight:600}
.ppills{display:flex;flex-wrap:wrap;gap:8px}.ppill{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border-radius:var(--r-pill);background:var(--panel);border:1px solid var(--line);color:var(--text);font-weight:600;font-size:14px}
.ppill:hover{border-color:var(--accent);text-decoration:none}.ppill.on{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.ppill .n{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--accent);color:#fff;font-size:11.5px;display:inline-flex;align-items:center;justify-content:center}.ppill .n.dim{background:var(--line);color:var(--muted)}.grow .gt small.live{color:var(--accent)}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.pcell{display:grid;gap:2px;padding:12px 14px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);color:inherit;min-height:44px}.pcell:hover{border-color:var(--accent);text-decoration:none}.pcell small{color:var(--muted);font-size:12px}
.ghead .chips{gap:6px}.ghead .chip{font-size:13px}
@media (max-width:700px){.pgrid{grid-template-columns:1fr 1fr}}
/* ---- community feed (mp/feed.js) + composer (mp/compose.js) */
.feedwrap{width:100%;max-width:680px;margin:0 auto;overflow-anchor:none}.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.plist{display:grid;gap:12px;margin-top:12px}.tagfilter{margin-top:10px;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;padding-bottom:2px}.tagfilter::-webkit-scrollbar{display:none}.tagfilter .chip{flex:none}
.post{padding:14px 16px}.post .post-h{display:flex;gap:10px;align-items:center}.post .post-w{flex:1;min-width:0}.post .post-w b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.post .post-w .xs a{color:var(--muted)}
.tagchips{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end;max-width:45%}
.tagchip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--r-pill);font-size:12px;font-weight:600;background:var(--panel2);color:var(--text);border:1px solid var(--line);white-space:nowrap;flex:none}
.tagchip.t-flood,.tagchip.t-rain{background:var(--info-soft);color:var(--info);border-color:transparent}.tagchip.t-fire_smoke,.tagchip.t-safety,.tagchip.t-warning{background:var(--bad-soft);color:var(--bad);border-color:transparent}.tagchip.t-power,.tagchip.t-drought{background:var(--mid-soft);color:#8a5a00;border-color:transparent}.tagchip.t-earthquake{background:var(--bad-soft);color:#7b3f00;border-color:transparent}.tagchip.t-forest{background:var(--good-soft);color:#4f7a1f;border-color:transparent}.tagchip.t-shelter{background:var(--good-soft);color:var(--good);border-color:transparent}.tagchip.t-news{background:var(--info-soft);color:#2c5f8a;border-color:transparent}.tagchip.t-festival{background:var(--accent-soft);color:#a8306a;border-color:transparent}.tagchip.t-food{background:var(--mid-soft);color:#a0501a;border-color:transparent}.tagchip.t-landprice{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.post .post-b{margin-top:10px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px;line-height:1.55}.post .post-b.clamp{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.pmedia{margin:10px -16px 0}.pmedia [class^="pgrid-"]{display:grid;gap:2px}
/* Facebook-style collage: 2 side by side (rows when both landscape) · 3 = one tall + two · 4 = 2x2 · 5+ = 2 over 3 with "+N" on the last tile */
.pgrid-2{grid-template-columns:1fr 1fr}.pgrid-2 .pcellimg{aspect-ratio:1}.pgrid-2r{grid-template-columns:1fr}.pgrid-2r .pcellimg{aspect-ratio:16/9}
.pgrid-3{grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr}.pgrid-3 .pcellimg:first-child{grid-row:1/3;aspect-ratio:auto;height:100%}.pgrid-3 .pcellimg{aspect-ratio:1}
.pgrid-4{grid-template-columns:1fr 1fr}.pgrid-4 .pcellimg{aspect-ratio:4/3}
.pgrid-5{grid-template-columns:repeat(6,1fr)}.pgrid-5 .pcellimg{aspect-ratio:1}.pgrid-5 .pcellimg:nth-child(-n+2){grid-column:span 3;aspect-ratio:4/3}.pgrid-5 .pcellimg:nth-child(n+3){grid-column:span 2}
.pcellimg video{width:100%;height:100%;object-fit:cover;display:block;background:#000}.pcellimg .play{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}.pcellimg .play i{width:52px;height:52px;border-radius:50%;background:rgba(0,0,0,.55);display:grid;place-items:center;color:#fff}.pcellimg .play i svg{width:26px;height:26px;margin-left:3px}
.pcellimg .dur{position:absolute;right:8px;bottom:8px;background:rgba(0,0,0,.6);color:#fff;font-size:12px;padding:2px 7px;border-radius:6px;font-family:var(--mono)}.pcellimg.playing .play{opacity:0}.pcellimg video[poster]{object-fit:cover}
.pcellimg{position:relative;padding:0;border:0;background:var(--panel2);cursor:pointer;aspect-ratio:4/3;overflow:hidden;display:block;width:100%}.pgrid-1 .pcellimg{aspect-ratio:auto;max-height:520px}.pcellimg img{width:100%;height:100%;object-fit:cover;display:block}.pgrid-1 .pcellimg img{object-fit:contain;background:#111;max-height:520px}
.pcellimg .more{position:absolute;inset:0;display:grid;place-items:center;background:rgba(0,0,0,.45);color:#fff;font-size:26px;font-weight:700}
.pvideo{width:100%;max-height:480px;background:#000;display:block;margin-top:2px}.pvideo.portrait{width:auto;max-width:100%;height:480px;max-height:70vh;margin:2px auto 0}
.pvwrap{position:relative;background:#000}.pvwrap .play{position:absolute;inset:0;display:grid;place-items:center;background:none;border:0;padding:0;cursor:pointer}.pvwrap .play i{width:64px;height:64px;border-radius:50%;background:rgba(0,0,0,.55);display:grid;place-items:center;color:#fff;box-shadow:0 2px 10px rgba(0,0,0,.4)}.pvwrap .play i svg{width:30px;height:30px;margin-left:4px}
.pvwrap .dur{position:absolute;right:10px;bottom:10px;background:rgba(0,0,0,.6);color:#fff;font-size:12px;padding:2px 7px;border-radius:6px;font-family:var(--mono);pointer-events:none}
.pvwrap.playing .play,.pvwrap.full .play,.pvwrap.full .dur{display:none}
.post .social{margin-top:10px}
.cprompt{display:flex;gap:10px;align-items:center;padding:12px 14px;margin-bottom:12px}.cfake{flex:1;text-align:left;font:inherit;font-size:15px;color:var(--muted);background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-pill);padding:11px 16px;cursor:pointer;min-height:44px}.cfake:hover{background:var(--line2)}
.prec{margin-top:8px}.prec.note{padding:8px 10px}.prec b{font-weight:700}
.compose .chips{margin-top:6px}.csel{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px}@media (max-width:700px){.csel{grid-template-columns:1fr}}
.pinbox{margin-top:10px;display:grid;gap:6px}.cthumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.cth{position:relative;width:84px;height:84px;border-radius:10px;overflow:hidden;background:var(--panel2)}.cth img,.cth video{width:100%;height:100%;object-fit:cover;display:block}.cth .rm{position:absolute;top:2px;right:2px;width:26px;height:26px;border-radius:50%;border:0;background:rgba(0,0,0,.6);color:#fff;display:grid;place-items:center;cursor:pointer}
.cvideo{margin-top:10px;display:grid;gap:6px}.vidbox video{display:block;max-width:100%;max-height:220px;border-radius:10px;background:#000}.cbar{height:6px;border-radius:999px;background:var(--line2);overflow:hidden}.cbar i{display:block;height:100%;width:0;background:var(--accent);transition:width .2s}.cprog{margin-top:10px;padding:8px 12px;border-radius:10px;background:var(--accent-soft);color:var(--accent);font-size:13.5px;font-weight:600}
.modal.compose-dlg{width:min(720px,calc(100vw - 32px))}.sheet-body.compose-body{padding-bottom:20px}
@media (max-width:700px){.plist{gap:8px}}
/* ---- notifications (mp/notif.js) */
.nhead{display:flex;align-items:center;justify-content:space-between;gap:10px;max-width:680px}.nhead h1{margin:0}.nhead .icon-btn{width:36px;height:36px;border-radius:50%;padding:0}.nmenu-wrap{position:relative}
.nmenu{position:absolute;right:0;top:calc(100% + 6px);min-width:240px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-3);padding:6px;z-index:30}.nmenu[hidden]{display:none}
.nmenu button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:0;background:none;border-radius:8px;font:inherit;font-weight:600;font-size:14px;color:var(--text);cursor:pointer;text-align:left}.nmenu button:hover{background:var(--panel2)}.nmenu .ic{width:16px;height:16px}
.ntabs{margin:10px 0 6px;max-width:680px}.ntabs .chip b{font-family:var(--mono);margin-left:4px}
.nsec{font-weight:700;font-size:15px;margin:10px 4px 2px;max-width:680px}.nsec:first-child{margin-top:4px}
.nlist{display:grid;gap:4px;max-width:680px}
.nrow{display:grid;grid-template-columns:52px minmax(0,1fr) 14px;gap:12px;align-items:center;padding:10px 12px;border-radius:var(--r);color:inherit;border:1px solid transparent}
.nrow:hover{background:var(--panel2);text-decoration:none}.nrow.unread{background:var(--accent-soft)}.nrow.unread:hover{background:var(--line2)}
.nrow .nb{display:grid;gap:2px;min-width:0}.nrow .nb span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nrow .nt{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal!important;font-size:14.5px;line-height:1.35;color:var(--muted)}.nrow .nt b{color:var(--text);font-weight:700}.nrow.unread .nt{color:var(--text)}
.nrow .nago{color:var(--muted)}.nrow.unread .nago{color:var(--accent);font-weight:600}
.nav{position:relative;width:52px;height:52px;display:block}.nav .avatar.lg{width:52px;height:52px;font-size:20px}
.nic{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--panel2);color:var(--muted)}.nic .ic{width:24px;height:24px}
.nic.sm{position:absolute;right:-4px;bottom:-4px;width:24px;height:24px;border:2px solid var(--panel)}.nic.sm .ic{width:12px;height:12px}
.nic.post_like,.nic.listing_like{background:var(--bad-soft);color:var(--bad)}.nic.post_confirm{background:var(--good-soft);color:var(--good)}.nic.post_comment,.nic.listing_comment{background:var(--info-soft);color:var(--info)}.nic.chat_message{background:var(--accent-soft);color:var(--accent)}.nic.group_digest{background:var(--mid-soft);color:#8a5a00}.nic.listing_status,.nic.report_outcome{background:var(--good-soft);color:var(--good)}.nic.admin_notice{background:var(--bad-soft);color:var(--bad)}
.nrow .dot{width:10px;height:10px;border-radius:50%;background:var(--accent);visibility:hidden}.nrow.unread .dot{visibility:visible}
/* ---- phone select picker (mp/ui.js pickers): replaces the browser's <select> popup ≤960px */
.picker-bg{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:120;animation:fadein .15s}
.picker{position:fixed;left:0;right:0;bottom:0;max-height:70dvh;background:var(--panel);border-radius:18px 18px 0 0;z-index:121;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .18s ease;box-shadow:0 -8px 30px rgba(0,0,0,.25);padding-bottom:env(safe-area-inset-bottom)}
.picker.in{transform:translateY(0)}
.picker-head{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:6px 8px 8px 16px;border-bottom:1px solid var(--line)}.picker-head .handle{grid-column:1/-1;justify-self:center;width:40px;height:5px;border-radius:3px;background:var(--line);margin:4px 0 6px}.picker-head b{font-size:16px}
.picker-list{overflow:auto;padding:6px 8px 10px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.picker-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:48px;padding:10px 14px;border:0;border-radius:10px;background:none;font:inherit;font-size:16px;color:var(--text);text-align:left;cursor:pointer}
.picker-opt:hover{background:var(--panel2)}.picker-opt.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.picker-opt.dis{color:var(--muted2)}
/* ---- /g/browse tabs + my-groups sections */
.gtabs{margin-top:6px}.gtabs button{display:inline-flex;align-items:center;gap:6px}.gtabs .cnt{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--accent);color:#fff;font-size:11.5px;display:inline-flex;align-items:center;justify-content:center}
.gsec{margin-top:14px}.gsec h3{display:flex;align-items:center;gap:6px;font-size:14px;margin:0 0 8px;color:var(--text)}
/* ---- event dashboard (/e/, mp/events.js) */
.evhead{margin-bottom:12px}.evhead h1{margin:0 0 2px}
.daystrip{padding:12px 14px 10px}.daystrip .bars{display:flex;gap:4px;align-items:flex-end;margin-top:10px;height:78px}
.daystrip .bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:2px;height:100%;padding:0;border:0;background:none;cursor:pointer;font:inherit;color:var(--muted);border-radius:8px;min-width:0}
.daystrip .bar i{display:block;width:100%;max-width:26px;border-radius:4px 4px 2px 2px;background:var(--accent-soft);transition:background .15s}.daystrip .bar.zero i{background:var(--line2)}
.daystrip .bar .n{font-size:11px;font-weight:700;color:var(--accent);line-height:1;height:12px}.daystrip .bar small{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.daystrip .bar:hover i,.daystrip .bar.on i{background:var(--accent)}.daystrip .bar.on{background:var(--panel2);color:var(--text)}.daystrip .bar.on small{font-weight:700}
.datelbl{display:inline-flex;align-items:center;gap:6px;position:relative;padding:0 10px;height:36px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);font-size:14px;cursor:pointer}.datelbl .dateinp{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer;font-size:16px}
.seg .segb{font:inherit;font-size:13px;font-weight:600;padding:0 12px;height:34px;border:0;background:none;color:var(--muted);cursor:pointer}.seg .segb.on{background:var(--accent);color:#fff}
.chip.faint{opacity:.55}.chip b{margin-left:2px}
.evwrap{margin-top:14px}.evlegend .grad{background:linear-gradient(90deg,var(--line2),var(--accent-soft),var(--accent));max-width:140px}
.evpin-wrap{background:none;border:0}
.evpin{position:absolute;left:0;top:0;transform:translate(-50%,-50%);width:26px;height:26px;border-radius:50%;background:var(--c,var(--accent));color:#fff;display:grid;place-items:center;border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.35);cursor:pointer}
.evpin .ic{width:14px;height:14px}.evpin.approx{background:#fff;color:var(--c,var(--accent));border:2px dashed var(--c,var(--accent))}.evpin.on{transform:translate(-50%,-50%) scale(1.25);z-index:5}
.evpin.area{background:#fff;color:var(--c,var(--accent));border:2px dotted var(--c,var(--accent));border-radius:6px;opacity:.9}
.evarea{position:absolute;left:58px;top:10px;z-index:800;max-width:calc(100% - 128px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;gap:4px;font:600 12px/1.3 Sarabun,system-ui;color:#1e3a8a;background:rgba(255,255,255,.94);border:1.5px dotted #1e3a8a;border-radius:10px;padding:5px 10px;box-shadow:0 2px 6px rgba(0,0,0,.2);cursor:pointer}.evarea .evpin{position:static;transform:none;width:20px;height:20px;box-shadow:none}.evarea .evpin .ic{width:11px;height:11px}.evarea b{margin-left:2px}.evarea.flash{background:var(--mid-soft);border-color:var(--mid)}
.evpin.demo,.evpost .evpin{position:static;transform:none;width:36px;height:36px;flex:none}.evpin.demo{width:18px;height:18px;display:inline-grid;vertical-align:middle;margin:0 2px}.evpin.demo .ic{width:9px;height:9px}
.evrow{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}.evrow .cnt{min-width:28px;height:28px;padding:0 8px;border-radius:14px;background:#1e3a8a;color:#fff;font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-size:13px}.evrow:hover{border-color:var(--accent)}
.evpost.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.evfoot{display:flex;align-items:center;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line2)}.evfoot .evpin.sm{position:static;transform:none;width:22px;height:22px;flex:none}.evfoot .evpin.sm .ic{width:11px;height:11px}.evpost .post-b{margin-top:8px;white-space:pre-wrap}.evpost .post-b:hover{text-decoration:none;color:var(--accent)}
.evcover{display:block;position:relative;margin-top:10px;border-radius:10px;overflow:hidden;max-height:220px}.evcover img{width:100%;height:100%;max-height:220px;object-fit:cover;display:block}.evcover .cnt{position:absolute;right:8px;bottom:8px;background:rgba(0,0,0,.6);color:#fff;font-size:11px;padding:2px 8px;border-radius:10px}
@media (max-width:700px){.daystrip .bars{height:64px}.daystrip .bar small{font-size:9px}.daystrip .bar:nth-child(odd) small{visibility:hidden}}
.evtoday{display:flex;align-items:center;gap:12px;margin-bottom:0;color:inherit;padding:12px 14px}.evtoday:hover{text-decoration:none;border-color:var(--accent)}.evtoday .em{font-size:26px}.evtoday .t{flex:1;min-width:0;display:grid}.evtoday .t small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.evtoday .go{color:var(--accent);font-weight:600;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}

/* ---- popup (UI.sheet) on desktop: the same nodes, shown as a centred modal instead of a bottom sheet (phones: see the max-width:960px block) */
@media (min-width:961px){
  .sheet-bg{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:80;animation:fadein .2s}.sheet-bg.out{opacity:0;transition:opacity .2s}
  .sheet{position:fixed;left:50%;top:50%;width:min(720px,94vw);max-height:88vh;background:var(--panel);border-radius:16px;z-index:90;display:flex;flex-direction:column;
    transform:translate(-50%,-50%) scale(.97);opacity:0;transition:transform .18s ease,opacity .18s ease;box-shadow:0 20px 60px rgba(0,0,0,.35)}
  .sheet.in{opacity:1;transform:translate(-50%,-50%)}
  .sheet-head{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:10px 8px 10px 18px;border-bottom:1px solid var(--line)}.sheet-head .handle{display:none}.sheet-head b{font-size:16px}
  .sheet-body{flex:1;overflow:auto;padding:14px 18px;overscroll-behavior:contain}.sheet-body .clist{display:grid;margin:0}
  .sheet-foot{padding:10px 14px;border-top:1px solid var(--line);background:var(--panel)}.sheet-foot .cform{display:grid}
  body.sheet-open{overflow:hidden}
}
.sheet-body .card.post{box-shadow:none;border:0;padding:0;margin:0}.sheet-body .popup-comments{margin-top:14px}.sheet-body .popup-comments h2{font-size:15px;margin:0 0 8px}
/* profile picture editor (portal/profile) + large avatar */
.avatar.xl{width:128px;height:128px;font-size:48px;flex:none;box-shadow:0 0 0 4px var(--panel),0 0 0 5px var(--line)}
.avatar-edit{display:flex;gap:22px;align-items:center;margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid var(--line)}.avatar-actions{display:grid;gap:8px;min-width:0}.avatar-actions b{font-size:18px}
@media (max-width:600px){.avatar-edit{gap:14px}.avatar.xl{width:96px;height:96px;font-size:36px}}
.crop-body{display:grid;justify-items:center}.crop-wrap{position:relative;overflow:hidden;border-radius:12px;background:#111;touch-action:none;cursor:grab;user-select:none}.crop-wrap:active{cursor:grabbing}.crop-cv{display:block}
.crop-mask{position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 999px rgba(0,0,0,.6);pointer-events:none;border:2px solid rgba(255,255,255,.8)}.crop-zoom{width:220px;accent-color:var(--accent)}
/* portal dashboard: community + listings sections, recent activity */
.side-nav .cta2{margin:0 0 12px;background:var(--panel);border:1px solid var(--accent);color:var(--accent)}
.stat-tiles.four{grid-template-columns:repeat(4,1fr)}@media (max-width:860px){.stat-tiles.four{grid-template-columns:repeat(2,1fr)}}
.sec-h{display:flex;align-items:center;justify-content:space-between;margin:6px 0 -2px}.sec-h h2{font-size:16px;display:inline-flex;align-items:center;gap:6px;margin:0}.sec-h h2 svg{width:18px;height:18px;color:var(--accent)}
.recent-grid{display:grid;gap:16px}.start-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width:860px){.start-grid{grid-template-columns:1fr}}
.recent-post{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}.recent-post:last-child{border-bottom:0}.recent-post .rp-b{min-width:0}.recent-post .rp-t{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px}.recent-post .tagchip{flex:none;align-self:flex-start}
.start-grid .empty{padding:28px 16px}
/* home feed: "map of today" + tag filter pinned under the site header; the block paints the page background so cards slide beneath it */
.feedstick{position:sticky;top:var(--mp-hdr);z-index:20;background:var(--bg);padding:6px 0 8px;margin:-6px 0 4px}
.feedstick .tagfilter{margin-top:8px}.feedstick.stuck{box-shadow:0 8px 12px -10px rgba(0,0,0,.25)}
.feedstick{transition:transform .25s ease,opacity .2s ease}.feedstick.hide{transform:translateY(-110%);opacity:0;pointer-events:none}
@media (max-width:700px){.feedstick.stuck .evtoday{padding:8px 12px}.feedstick.stuck .evtoday .em{font-size:20px}.feedstick.stuck .evtoday .t small{display:none}.feedstick.stuck .evtoday .t b{font-size:14px}}
/* members: profile page, links on names/avatars, block dialog */
.alink{color:inherit;text-decoration:none}.alink:hover b,.alink.n:hover{text-decoration:underline}
.member-head{display:flex;gap:20px;align-items:flex-start}.member-info{min-width:0;flex:1;display:grid;gap:8px}.member-info .row{margin-top:6px}
@media (max-width:600px){.member-head{gap:14px}.member-head .avatar.xl{width:84px;height:84px;font-size:32px}}
.block-dlg .radio-row{display:flex;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px;cursor:pointer}.block-dlg .radio-row:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.block-dlg .label{font-weight:600;font-size:13px;margin:10px 0 6px}.block-dlg .textarea{margin-top:10px}
.blist{display:grid;gap:8px}.blist .brow{display:flex;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px}.blist .brow .bi{min-width:0;flex:1}.blist .brow small{display:block;color:var(--muted)}
.trow .tb .badge.blue{background:var(--accent-soft);color:var(--accent);border-color:transparent}

/* chat attachments: tool buttons, pending strip, media / map bubbles, location sheet */
.chat-tools{display:flex;gap:2px;align-items:center;padding-bottom:2px}.chat-tools .abtn{width:36px;height:36px;border-radius:50%;color:var(--muted)}.chat-tools .abtn:hover{color:var(--accent)}.chat-tools .abtn:disabled{opacity:.35}
.chat-attach{display:flex;gap:8px;flex-wrap:wrap;padding:8px 12px 0}.achip{position:relative;display:inline-flex;align-items:center;gap:6px;padding:4px 26px 4px 6px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);font-size:12px;max-width:260px}
.achip img{width:44px;height:44px;object-fit:cover;border-radius:6px}.achip .x{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:20px;height:20px;border-radius:50%;border:0;background:var(--line);color:var(--text);cursor:pointer;line-height:1}
.chat-list .bubble.rich{max-width:min(82%,360px);padding:6px}.chat-list .bubble.rich .txt{padding:2px 6px}.chat-list .bubble.rich .who{padding:2px 6px}.chat-list .bubble.rich .ts{padding:0 6px 2px}
.bmedia{display:block;border-radius:12px;overflow:hidden}.bmedia .pcellimg{display:block;width:100%;border:0;padding:0;background:#000;cursor:zoom-in;overflow:hidden}.bmedia .pcellimg img{width:100%;height:100%;object-fit:cover;display:block}
.bmedia .pgrid-1 .pcellimg img{max-height:320px;object-fit:cover}.bmedia .pgrid-2,.bmedia .pgrid-3,.bmedia .pgrid-4,.bmedia .pgrid-5{display:grid;gap:2px}
.bmedia .bvideo{display:block;width:100%;max-height:360px;background:#000;border-radius:12px}.bmedia .bvideo.portrait{max-width:240px}
.bmap{display:block;border-radius:12px;overflow:hidden;border:1px solid var(--line);text-decoration:none;color:inherit;background:var(--panel)}.bmap-map{height:140px;background:var(--panel2)}.bmap-t{display:grid;gap:2px;padding:8px 10px}.bmap-t b{display:inline-flex;align-items:center;gap:4px;font-size:13px}
.loc-map{height:min(320px,50vh);border-radius:12px;overflow:hidden;border:1px solid var(--line)}
/* follow members: counts row, follow button state, people list */
.member-counts{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin:2px 0 4px}.cnt-btn{background:none;border:0;padding:0;font:inherit;color:var(--muted);cursor:default;font-size:13px}.cnt-btn b{color:var(--text);font-size:15px;margin-right:3px}button.cnt-btn{cursor:pointer}button.cnt-btn:hover b{text-decoration:underline}
.follow-m.on{background:var(--panel2);border-color:var(--line);color:var(--text)}
.plist-people{display:grid;gap:8px}.prow{display:flex;gap:10px;align-items:center;padding:8px 6px;border-bottom:1px solid var(--line)}.prow:last-child{border-bottom:0}
.post-h .fchip{font-size:11px;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:1px 7px;margin-left:6px;vertical-align:middle}
.feedtabs{display:flex;gap:6px;margin:6px 0 4px}.ftab{background:none;border:0;padding:6px 10px;font:inherit;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;cursor:pointer}.ftab.on{color:var(--accent);border-bottom-color:var(--accent)}
/* post popup photo viewer (one at a time, ← → like Facebook) */
.pviewer{position:relative;background:#111;outline:none;user-select:none}.pviewer .pv-stage{display:grid;place-items:center;min-height:240px;max-height:min(70vh,640px)}
.pviewer .pv-stage img,.pviewer .pv-stage video{max-width:100%;max-height:min(70vh,640px);width:auto;height:auto;display:block;cursor:zoom-in}.pviewer .pv-stage video{cursor:default;width:100%}
.pv-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.9);color:#222;display:grid;place-items:center;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.35)}.pv-nav .ic{width:18px;height:18px}
.pv-nav.prev{left:10px}.pv-nav.next{right:10px}.pv-nav:hover{background:#fff}
.pv-cnt{position:absolute;top:10px;right:12px;background:rgba(0,0,0,.55);color:#fff;font:600 12px/1 var(--mono);padding:5px 8px;border-radius:10px}
.pv-dots{position:absolute;left:0;right:0;bottom:8px;display:flex;justify-content:center;gap:5px;pointer-events:none}.pv-dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.45)}.pv-dots i.on{background:#fff}
@media (max-width:700px){.pv-nav{width:34px;height:34px}.pviewer .pv-stage,.pviewer .pv-stage img,.pviewer .pv-stage video{max-height:60vh}}
