:root{--ink:#192d28;--muted:#64706a;--green:#205747;--wash:#eff3ee;--paper:#fafaf6;--line:#dedfd6;--orange:#d95b31;--white:#fff;--radius:14px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #d66b38;outline-offset:4px}button svg,a svg{pointer-events:none}svg{vertical-align:middle}.skip{position:fixed;top:-70px;left:16px;background:var(--white);padding:15px;z-index:10}.skip:focus{top:10px}.preview-banner{display:flex;align-items:center;justify-content:center;gap:16px;padding:9px 24px;background:#e9eee6;color:#425648;font-size:12px;border-bottom:1px solid #dbe2d5}.preview-banner>span{opacity:.9}.preview-banner button{border:0;background:none;font-size:12px;text-decoration:underline;text-underline-offset:3px}.site-header{background:var(--paper);border-bottom:1px solid var(--line)}.header-inner{max-width:1328px;margin:auto;padding:22px 36px;display:flex;align-items:center;gap:32px}.wordmark{font-size:27px;letter-spacing:-1.3px;font-weight:800;white-space:nowrap}.brand-dot{color:var(--orange);margin-left:2px}.location{font-size:13px;display:flex;align-items:center;gap:8px;color:var(--muted);border-left:1px solid var(--line);padding-left:24px}.header-links{margin-left:auto;display:flex;align-items:center;gap:28px;font-size:14px;font-weight:550}.header-links a{padding:10px 0}.header-links a.active{color:var(--green);box-shadow:0 2px var(--green)}.button,.header-links .button{display:inline-flex;gap:8px;align-items:center;justify-content:center;min-height:46px;padding:12px 20px;border:1px solid var(--green);border-radius:9px;background:var(--green);color:white;font-weight:650;font-size:14px}.button:hover{background:#123f32}.button.secondary{background:white;color:var(--ink);border-color:var(--line)}.button.secondary:hover{background:var(--wash)}.button.danger{background:#a8342d;border-color:#a8342d}.button.small{padding:8px 14px;min-height:40px}.text-button{border:0;background:none;padding:10px 0;color:var(--green);text-decoration:underline;text-underline-offset:4px}.icon-button{display:inline-grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);background:white;border-radius:50%}.icon-button:hover{background:var(--wash)}.avatar{width:38px;height:38px;display:inline-grid;place-items:center;flex-shrink:0;border-radius:50%;background:#e1e9df;font-weight:700;color:var(--green);font-size:13px}.avatar.orange{background:#f7e6da;color:#9f481e}.badge-count{display:inline-grid;place-items:center;background:var(--orange);color:white;border-radius:20px;font-size:10px;min-width:16px;height:16px;margin-left:3px}.page{max-width:1328px;margin:auto;padding:0 36px;min-height:65vh}h1,h2,h3,p{margin-top:0}h1{font-size:40px;letter-spacing:-1.4px;line-height:1.13;margin-bottom:14px}h2{font-size:24px;letter-spacing:-.6px}h3{font-size:16px;line-height:1.35}p{line-height:1.6}.muted{color:var(--muted)}.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.8px;text-transform:uppercase;color:var(--green);margin-bottom:16px}.hero{padding:44px 0 32px;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:70px}.hero h1{font-size:clamp(36px,4vw,54px);letter-spacing:-2px}.hero h1 em{font-style:normal;color:var(--green)}.hero p{max-width:490px;color:var(--muted);font-size:16px;margin-bottom:0}.hero-note{border-left:1px solid var(--line);padding-left:30px;max-width:370px;margin-left:auto}.hero-note p{font-size:14px}.hero-note strong{display:block;font-size:17px;margin-bottom:8px}.hero-note a{font-weight:650;display:inline-block;margin-top:12px;color:var(--green);font-size:14px}.search{display:flex;gap:10px;background:white;border:1px solid #aeb9af;padding:7px;border-radius:12px;align-items:center}.search>svg{margin:0 6px 0 12px;flex-shrink:0;color:var(--muted)}.search input{min-width:0;flex:1;border:0;padding:9px 3px;background:none;font-size:16px}.search input:focus{outline:none}.browse-bar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:25px 0 20px;border-bottom:1px solid var(--line)}.tabs{display:flex;gap:26px}.tab{position:relative;padding:16px 0;background:none;border:0;color:var(--muted);font-size:15px;font-weight:600}.tab.selected{color:var(--ink)}.tab.selected:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:3px;background:var(--green)}.tabs .number{font-size:12px;color:var(--muted);font-weight:400;margin-left:6px}.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.chip{padding:9px 14px;border:1px solid var(--line);border-radius:30px;background:transparent;font-size:13px;min-height:40px}.chip.selected{background:var(--ink);color:white;border-color:var(--ink)}.results-heading{display:flex;align-items:center;justify-content:space-between;margin:24px 0 17px}.results-heading h2{margin:0;font-size:21px}.results-heading small{color:var(--muted)}.listing-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 22px}.listing-card{min-width:0;position:relative}.listing-image{aspect-ratio:1.18;background:#e9e6dc;border-radius:var(--radius);overflow:hidden;position:relative;display:block}.listing-image>svg,.listing-image>img{width:100%;height:100%;object-fit:cover;display:block}.listing-image .tag{position:absolute;left:12px;bottom:12px;background:white;border-radius:5px;padding:5px 8px;font-size:11px;font-weight:650}.save-button{position:absolute;top:10px;right:10px;border:0;width:36px;height:36px;background:rgba(255,255,255,.94);border-radius:50%;display:grid;place-items:center;box-shadow:0 2px 6px #0000000a}.save-button[aria-pressed=true]{color:var(--orange)}.save-button[aria-pressed=true] svg{fill:currentColor}.listing-card h3{margin:12px 0 4px;font-weight:550}.listing-card .price{font-size:20px;font-weight:750;margin:0 0 7px;letter-spacing:-.4px}.listing-card .meta{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:5px;line-height:1.5}.listing-card:hover h3{text-decoration:underline;text-underline-offset:3px}.page-top{padding:34px 0 25px;display:flex;justify-content:space-between;align-items:center;gap:20px}.page-top h1{font-size:33px;margin-bottom:6px}.page-top p{margin:0;color:var(--muted);font-size:14px}.back{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--muted);margin:26px 0}.detail-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.85fr);gap:50px}.detail-photo{aspect-ratio:1.25;border-radius:18px;overflow:hidden;background:#eee9de}.detail-photo svg,.detail-photo img{width:100%;height:100%;object-fit:contain}.thumbs{display:flex;gap:10px;margin-top:12px}.thumbs button{width:72px;height:65px;border:1px solid var(--line);border-radius:8px;padding:0;overflow:hidden;background:white}.thumbs img{height:100%;width:100%;object-fit:cover}.detail-info{padding:5px 0}.detail-info h1{font-size:32px;line-height:1.2;margin:12px 0}.detail-price{font-size:31px;font-weight:750;margin:14px 0 18px;letter-spacing:-1px}.detail-meta{display:flex;gap:10px;align-items:center;font-size:13px;color:var(--muted)}.status-tag{display:inline-flex;gap:6px;align-items:center;font-size:11px;background:#e8efdf;color:#3a6032;padding:5px 9px;border-radius:5px;font-weight:650}.status-tag.closed{background:#eee;color:#666}.seller{display:flex;gap:12px;align-items:center;padding:22px 0;border-top:1px solid var(--line);margin-top:23px}.seller strong{font-size:14px;display:block;margin-bottom:3px}.seller small{color:var(--muted);font-size:12px}.detail-info .button.full{width:100%;margin-bottom:10px}.fact-row{display:flex;gap:40px;margin:22px 0}.fact-row span{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}.fact-row strong{font-size:14px}.description{border-top:1px solid var(--line);margin-top:28px;padding-top:24px;font-size:14px;max-width:730px}.description h2{font-size:18px}.safety-note{font-size:12px;color:var(--muted);padding:14px;background:var(--wash);border-radius:8px;margin-top:14px}.editor-shell{max-width:1060px;margin:0 auto}.editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:44px}.editor-section{margin-bottom:30px;padding-bottom:26px;border-bottom:1px solid var(--line)}.editor-section h2{font-size:18px;margin-bottom:5px}.editor-section>p{color:var(--muted);font-size:13px;margin-bottom:18px}.upload{position:relative;min-height:150px;display:grid;place-items:center;text-align:center;border:1.5px dashed #8ca495;background:#f1f5ee;border-radius:12px;padding:22px;cursor:pointer}.upload:hover{background:#e8f0e2}.upload input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload:focus-within{outline:3px solid var(--orange);outline-offset:3px}.upload strong{display:block;margin:10px 0 6px;font-size:15px}.upload small{display:block;font-size:12px;color:var(--muted)}.photo-previews{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}.photo-tile{position:relative;aspect-ratio:1.15;overflow:hidden;border-radius:9px;background:#e6e8df}.photo-tile img{width:100%;height:100%;object-fit:cover}.photo-tile .remove{position:absolute;right:5px;top:5px;background:white;border:0;border-radius:50%;width:30px;height:30px}.photo-tile .cover{position:absolute;bottom:5px;left:5px;border:0;background:white;border-radius:4px;padding:6px;font-size:10px}.field{margin-top:18px}.field label{display:block;font-size:13px;font-weight:650;margin-bottom:8px}.field input,.field select,.field textarea{width:100%;background:white;border:1px solid #cbd1c8;border-radius:8px;padding:12px;font-size:14px;min-height:44px;color:var(--ink)}.field textarea{resize:vertical;line-height:1.6}.field small{display:block;color:var(--muted);font-size:11px;margin-top:6px;line-height:1.5}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.preview-card{position:sticky;top:25px;background:white;border:1px solid var(--line);border-radius:14px;padding:18px;align-self:start}.preview-card .eyebrow{font-size:10px;margin-bottom:12px}.preview-card h3{margin-top:14px;margin-bottom:6px}.preview-card .price{font-size:23px;font-weight:750;margin:8px 0}.preview-card .meta{font-size:12px;color:var(--muted)}.preview-card .listing-image{aspect-ratio:1.2}.preview-card>p:last-child{font-size:12px;color:var(--muted);margin:18px 0 0;border-top:1px solid var(--line);padding-top:14px}.editor-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.editor-actions p{font-size:12px;color:var(--muted);margin:0}.error{font-size:13px;color:#a8342d;line-height:1.6}.review-card{max-width:840px;margin:0 auto 35px;background:white;border:1px solid var(--line);border-radius:16px;padding:28px}.review-card .detail-grid{gap:28px;grid-template-columns:1fr 1fr}.review-card .detail-info h1{font-size:25px}.review-card .detail-price{font-size:25px}.review-actions{display:flex;justify-content:space-between;gap:14px;align-items:center;border-top:1px solid var(--line);padding-top:22px;margin-top:20px}.check{display:flex;align-items:start;gap:9px;font-size:13px;margin:22px 0;line-height:1.5}.check input{margin-top:3px;accent-color:var(--green);width:18px;height:18px;flex-shrink:0}.notice{background:#e9f1e4;border:1px solid #cddfc3;border-radius:10px;padding:14px 18px;font-size:14px;margin-bottom:20px}.manage-row{display:grid;grid-template-columns:110px 1fr auto;gap:22px;align-items:center;background:white;border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:13px}.manage-row .listing-image{aspect-ratio:1.1;border-radius:8px}.manage-row h3{margin:8px 0 4px}.manage-row p{margin:0;font-size:13px;color:var(--muted)}.manage-actions{display:flex;gap:8px;flex-wrap:wrap}.empty{padding:65px 24px;text-align:center;border:1px dashed var(--line);border-radius:12px;margin-top:20px}.empty p{color:var(--muted);font-size:14px}.empty h2{font-size:22px}.message-layout{height:620px;min-height:450px;display:grid;grid-template-columns:330px 1fr;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:white;margin-bottom:30px}.inbox{border-right:1px solid var(--line);background:#f7f8f3}.inbox-label{padding:21px 20px;font-weight:650;font-size:14px}.thread-button{width:100%;display:flex;text-align:left;gap:12px;padding:20px;border:0;border-top:1px solid var(--line);background:none}.thread-button.selected{background:#e9efe5;box-shadow:inset 3px 0 var(--green)}.thread-button strong{font-size:14px}.thread-button p{font-size:12px;margin:5px 0 0;color:var(--muted);line-height:1.4}.thread-button small{font-size:10px;color:var(--muted)}.thread-text{min-width:0;flex:1}.thread-text p{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.chat{display:flex;flex-direction:column;min-height:0}.chat-head{display:flex;align-items:center;gap:12px;padding:18px 24px;border-bottom:1px solid var(--line)}.chat-head p{margin:0;font-size:12px;color:var(--muted)}.chat-head strong{font-size:14px}.chat-head .text-button{margin-left:auto;font-size:12px}.chat-history{flex:1;overflow:auto;padding:22px 26px;display:flex;flex-direction:column;gap:14px}.day{text-align:center;color:var(--muted);font-size:11px;margin:0 0 10px}.bubble{align-self:flex-start;max-width:75%;padding:12px 16px;background:#f0f2ec;border-radius:12px 12px 12px 3px;font-size:14px;line-height:1.6;overflow-wrap:anywhere}.bubble.mine{align-self:flex-end;background:var(--green);color:white;border-radius:12px 12px 3px 12px}.bubble small{display:block;font-size:10px;opacity:.65;margin-top:6px}.composer{border-top:1px solid var(--line);padding:16px 22px}.composer form{display:flex;gap:10px}.composer textarea{flex:1;resize:none;border:1px solid #cbd1c8;border-radius:9px;min-width:0;padding:11px;font-size:14px}.composer p{font-size:11px;color:var(--muted);margin:8px 0 0}.mobile-back{display:none}.proposed{font-size:11px;color:var(--muted);max-width:620px;margin:14px 0}.guide-list{padding-left:20px;font-size:14px;line-height:1.8}.guide-list li{margin-bottom:12px}dialog{border:1px solid var(--line);border-radius:16px;padding:28px;width:min(540px,calc(100% - 30px));max-height:85vh;color:var(--ink);box-shadow:0 20px 100px #13231c30}dialog::backdrop{background:#10271c66}dialog h2{font-size:24px;margin-bottom:10px}dialog p{font-size:14px;color:var(--muted)}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,10px);background:var(--ink);color:white;border-radius:10px;padding:13px 20px;font-size:13px;box-shadow:0 6px 25px #0002;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;z-index:20;max-width:90vw}#toast.show{opacity:1;transform:translate(-50%,0)}.site-footer{max-width:1328px;margin:55px auto 0;padding:25px 36px 35px;border-top:1px solid var(--line);display:flex;align-items:center;gap:25px;color:var(--muted);font-size:12px}.site-footer .wordmark{font-size:19px;color:var(--ink)}.site-footer small{margin-left:auto}.mobile-nav{display:none}.separator{margin:0 6px;color:#a6aea4}
@media(min-width:1600px){.page,.header-inner,.site-footer{max-width:1440px}}
@media(max-width:1050px){.header-inner{gap:18px}.location{display:none}.header-links{gap:20px}.listing-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.editor-grid{gap:25px;grid-template-columns:minmax(0,1fr) 280px}.detail-grid{gap:28px}.message-layout{grid-template-columns:280px 1fr}.hero{gap:30px}.hero-note{padding-left:24px}}
@media(max-width:760px){.preview-banner{justify-content:space-between;padding:8px 18px;font-size:10px;gap:8px}.preview-banner>span{display:none}.preview-banner button{font-size:10px}.header-inner{padding:17px 20px;gap:10px}.wordmark{font-size:25px}.header-links{gap:12px}.header-links>a:not(.button){display:none}.header-links .button{font-size:12px;min-height:38px;padding:9px 12px}.page{padding:0 20px}.hero{display:block;padding:28px 0 24px}.hero h1{font-size:39px;letter-spacing:-1.6px}.hero p{font-size:14px}.hero .eyebrow{font-size:10px;margin-bottom:11px}.hero-note{display:none}.search{padding:5px;gap:3px}.search input{font-size:13px}.search>svg{margin:0 5px;width:18px}.search .button{min-height:39px;padding:10px 13px;font-size:12px}.browse-bar{margin-top:12px;display:block}.tabs{gap:25px}.browse-bar>.text-button{display:none}.filters{gap:6px}.chip{padding:8px 12px;font-size:12px}.results-heading{margin-top:22px}.results-heading h2{font-size:19px}.results-heading small{font-size:10px}.listing-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 13px}.listing-card h3{font-size:13px;margin:9px 0 4px}.listing-card .price{font-size:17px;margin-bottom:5px}.listing-card .meta{font-size:10px;display:block}.listing-card .meta svg{width:12px;margin-right:3px}.listing-image{border-radius:10px}.save-button{width:32px;height:32px;top:6px;right:6px}.save-button svg{width:17px}.listing-image .tag{font-size:9px;left:8px;bottom:8px}.page-top{padding:25px 0 20px;align-items:start}.page-top h1{font-size:28px}.page-top p{font-size:12px}.page-top .button{padding:10px;font-size:12px}.detail-grid{display:block}.detail-photo{aspect-ratio:1.2}.detail-info{padding-top:23px}.detail-info h1{font-size:28px}.detail-price{font-size:27px}.back{margin:20px 0}.editor-grid{display:block}.preview-card{display:none}.editor-section{margin-bottom:22px;padding-bottom:22px}.editor-section h2{font-size:17px}.form-row{gap:12px}.editor-actions{position:sticky;bottom:66px;background:var(--paper);padding:14px 0;margin:0;border-top:1px solid var(--line)}.editor-actions p{font-size:10px;max-width:145px}.editor-actions .button{font-size:12px;padding:12px}.review-card{padding:18px}.review-card .detail-grid{display:block}.review-card .detail-photo{max-height:250px}.review-actions{flex-wrap:wrap}.review-actions .button{flex:1}.manage-row{grid-template-columns:75px 1fr;gap:13px;padding:13px}.manage-actions{grid-column:1/-1;border-top:1px solid var(--line);padding-top:12px}.manage-actions .button{font-size:11px;min-height:40px}.manage-actions .text-button{margin-left:auto;font-size:12px}.message-layout{display:block;height:calc(100dvh - 290px);min-height:440px;border-radius:10px}.inbox{height:100%;border:0}.chat{display:none;height:100%}.message-layout.thread-open .inbox{display:none}.message-layout.thread-open .chat{display:flex}.mobile-back{display:inline-grid;border:0;background:none;padding:8px 4px}.chat-head{padding:12px;gap:8px}.chat-head strong{font-size:13px}.chat-head p{font-size:10px}.chat-head .text-button{font-size:10px}.chat-head .avatar{display:none}.chat-history{padding:18px 13px}.bubble{max-width:88%;font-size:13px}.composer{padding:12px}.composer .button{padding:10px}.composer p{font-size:10px}.composer textarea{font-size:16px}.site-footer{margin-top:35px;padding:22px 20px 100px;display:block}.site-footer .wordmark{display:block;margin-bottom:8px}.site-footer small{display:block;margin-top:8px}.mobile-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;background:var(--paper);border-top:1px solid var(--line);padding:8px 5px calc(8px + env(safe-area-inset-bottom));z-index:5}.mobile-nav a{display:flex;flex-direction:column;gap:4px;align-items:center;font-size:10px;padding:4px 10px;min-width:54px;color:var(--muted)}.mobile-nav a.active{color:var(--green);font-weight:700}#toast{bottom:85px;width:max-content;text-align:center}.proposed{font-size:10px}.description{margin-top:20px}.page-top .eyebrow{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.no-photo{height:100%;min-height:150px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:var(--muted);font-size:13px;background:var(--wash)}
.hero h1{font-size:clamp(32px,3.25vw,46px)}
@media(max-width:760px){.hero h1{font-size:34px}}

/* Interaction rules shared by every page; the tokens are on line 1. */
:root {
  --focus: #a44218;
  --soft-green: #e9f0e5;
}

button,
.button,
.button.small,
.icon-button,
.text-button,
.chip,
.save-button {
  min-height: 44px;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
}

button,
.button,
.listing-image,
.thread-button {
  transition: background-color 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
}

button:disabled { opacity: .55; }
.icon-button { min-width: 44px; }
.preview-banner { min-height: 44px; padding-block: 0; }
.preview-banner button { min-height: 44px; padding-inline: 8px; }
.header-inner { padding-block: 17px; }
.header-links > a { display: inline-flex; align-items: center; min-height: 44px; }
.hero { padding: 30px 0 24px; gap: 48px; }
.hero h1 { font-size: clamp(32px, 3vw, 43px); margin-bottom: 12px; }
.hero .eyebrow { margin-bottom: 12px; }
.hero p { max-width: 540px; font-size: 15px; line-height: 1.55; }
.hero-note { max-width: 350px; }
.hero-note p { font-size: 14px; }
.hero-note a { min-height: 44px; display: inline-flex; align-items: center; margin-top: 4px; }
.section-link { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; color: var(--green); font-size: 13px; font-weight: 650; }
.section-link:hover { text-decoration: underline; text-underline-offset: 4px; }

/* Search stays in view as filters are adjusted; every active constraint is removable. */
.search:focus-within { border-color: var(--green); box-shadow: 0 0 0 2px #20574718; }
.search input { min-height: 44px; }
.search input:focus-visible { outline: none; }
.search input::-webkit-search-cancel-button { -webkit-appearance: none; }
.search-clear { flex: 0 0 44px; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; border-radius: 8px; display: inline-grid; place-items: center; color: var(--muted); }
.search-clear:hover { background: var(--wash); color: var(--ink); }
.search-hint { margin: 8px 4px 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.browse-bar { margin: 15px 0; }
.browse-bar .tabs { min-width: 0; }
.tab { min-height: 48px; }
.filters { gap: 8px; }
.chip:hover:not(.selected) { background: #e9eee4; border-color: #b7c3b4; }
.active-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 12px 0 0; }
.active-filters:empty { display: none; }
.active-filters > span { font-size: 12px; color: var(--muted); }
.active-filters button { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border: 1px solid #c5d3bf; border-radius: 8px; background: #edf2e8; font-size: 12px; color: var(--green); }
.active-filters button:hover { border-color: var(--green); background: #e1ebda; }
.active-filters svg { flex-shrink: 0; }
.results-heading { gap: 20px; margin-block: 22px 16px; align-items: center; }
.results-heading > div { min-width: 0; }
.results-heading h2 { overflow-wrap: anywhere; }
.results-heading small { display: inline-block; margin-top: 5px; }
.sort-control { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; font-size: 12px; color: var(--muted); }
.sort-control select { min-height: 44px; max-width: 185px; border: 1px solid var(--line); border-radius: 8px; padding: 10px 30px 10px 12px; background: white; color: var(--ink); font-size: 13px; }
.listing-grid { row-gap: 30px; }
.listing-card h3 { font-size: 15px; line-height: 1.4; }
.listing-card .meta { font-size: 12px; flex-wrap: wrap; gap: 4px; }
.listing-image:hover { box-shadow: 0 0 0 2px #2057471c; }
.save-button { width: 44px; height: 44px; top: 8px; right: 8px; }
.save-button:hover { background: white; box-shadow: 0 2px 10px #192d2820; }
.save-button[aria-pressed="true"] { color: #b54422; background: #fff8f3; }
.empty { padding-block: 42px; }
.empty p { max-width: 440px; margin-inline: auto; }

/* A draft feels like something being prepared, with visible progress and photo tools. */
.editor-progress { display: flex; gap: 20px; padding: 0 0 23px; margin: 0 0 24px; border-bottom: 1px solid var(--line); counter-reset: editor-step; }
.editor-progress > span { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 12px; line-height: 1.4; counter-increment: editor-step; }
.editor-progress > span::before { content: counter(editor-step); display: inline-grid; place-items: center; flex: 0 0 25px; width: 25px; height: 25px; border: 1px solid #bcc8b7; border-radius: 50%; background: white; color: var(--muted); font-size: 11px; font-weight: 650; }
.editor-progress > .complete,
.editor-progress > [data-complete="true"] { color: var(--green); }
.editor-progress > .complete::before,
.editor-progress > [data-complete="true"]::before { content: "✓"; border-color: var(--green); color: white; background: var(--green); }
.draft-status { display: inline-flex; align-items: center; gap: 6px; min-height: 24px; margin: 8px 0 0; color: var(--muted); font-size: 12px; line-height: 1.4; }
.draft-status svg { color: var(--green); flex-shrink: 0; }
.upload { min-height: 156px; }
.upload.drag-over { border-style: solid; border-color: var(--green); background: #dfecd6; box-shadow: 0 0 0 4px #20574712; }
.upload.busy { cursor: progress; background: #e8eee4; border-color: #a4b29e; }
.upload.busy input { cursor: progress; }
.upload.busy strong { color: var(--green); }
.photo-previews { gap: 12px; }
.photo-tile .remove { width: 44px; height: 44px; top: 6px; right: 6px; display: inline-grid; place-items: center; box-shadow: 0 1px 5px #192d2812; }
.photo-tile .cover { min-height: 44px; font-size: 11px; padding: 8px 10px; }
.photo-tile:has(.photo-toolbar) { aspect-ratio: auto; overflow: hidden; background: white; border: 1px solid var(--line); }
.photo-tile:has(.photo-toolbar) > img { display: block; aspect-ratio: 1.2; height: auto; object-fit: cover; }
.photo-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 3px; flex-wrap: wrap; padding: 5px; background: white; border-top: 1px solid var(--line); }
.photo-toolbar .cover { position: static; flex: 1; text-align: left; padding: 8px 6px; color: var(--green); font-weight: 650; }
.photo-toolbar .cover:disabled { opacity: 1; cursor: default; background: #eef4e9; }
.photo-toolbar .photo-move { border: 0; border-radius: 6px; background: var(--wash); width: 44px; min-width: 44px; height: 44px; padding: 0; display: inline-grid; place-items: center; font-size: 16px; }
.photo-toolbar .photo-move:hover:not(:disabled) { background: #dfe9d8; }
.photo-toolbar .photo-move:disabled { opacity: .3; }
.field input,
.field textarea { transition: border-color 140ms ease; }
.field small { font-size: 12px; }
.field input[aria-invalid="true"],
.field select[aria-invalid="true"],
.field textarea[aria-invalid="true"] { border-color: #ad342e; background: #fffafa; }
.editor-section > .error:empty { display: none; }
.editor-actions { border-top: 1px solid var(--line); padding-top: 16px; margin-top: -1px; }
.editor-actions .draft-status { display: block; margin-top: 5px; }
.preview-card { box-shadow: 0 6px 20px #192d2805; }
.review-card .check { padding: 14px; background: var(--wash); border-radius: 9px; }
.review-actions .button { min-height: 48px; }

/* Listing ownership and recovery stay near the thing being managed. */
.mine-tabs { display: flex; gap: 22px; border-bottom: 1px solid var(--line); margin: 0 0 22px; overflow-x: auto; }
.mine-tabs button { border: 0; border-bottom: 3px solid transparent; background: transparent; padding: 12px 0; color: var(--muted); font-size: 14px; white-space: nowrap; }
.mine-tabs button.selected,
.mine-tabs button[aria-pressed="true"],
.mine-tabs button[aria-selected="true"] { color: var(--green); border-bottom-color: var(--green); font-weight: 650; }
.mine-tabs .number { margin-left: 5px; color: var(--muted); font-size: 12px; font-weight: 400; }
.draft-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 19px 20px; background: #edf2e8; border: 1px solid #cbdac3; border-radius: 12px; margin-bottom: 20px; }
.draft-row h3 { margin: 5px 0; }
.draft-row p { margin: 0; font-size: 13px; color: var(--muted); }
.draft-row .listing-image { width: 80px; flex: 0 0 80px; }
.draft-row > div { min-width: 0; }
.draft-row .button { flex-shrink: 0; }
.draft-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-bottom: 24px; }
.draft-grid .draft-row { flex-wrap: wrap; margin: 0; align-items: flex-start; }
.draft-grid .draft-row > div:first-child { flex: 1 1 100%; }
.draft-row .manage-actions,
.draft-row .draft-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.draft-row .draft-actions .text-button { padding-inline: 10px; }
.draft-row .draft-actions [data-action*="delete"],
.draft-row .draft-actions [data-action*="discard"] { color: #a8342d; }
.manage-actions .text-button { padding-inline: 10px; }
.manage-actions [data-action="delete"] { color: #a8342d; }
.manage-row h3 { overflow-wrap: anywhere; }
.thumbs { overflow-x: auto; padding: 3px; margin-inline: -3px; }
.thumbs button { flex-shrink: 0; }
.thumbs button[aria-pressed="true"],
.thumbs button.selected { border: 2px solid var(--green); }
.detail-photo[data-action] { cursor: zoom-in; }
.detail-photo button { border: 0; padding: 0; width: 100%; height: 100%; background: transparent; cursor: zoom-in; }
.gallery-trigger { display: block; position: relative; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.gallery-trigger:focus-visible { outline-offset: -5px; }
.photo-count { position: absolute; right: 12px; bottom: 12px; display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 7px 10px; border-radius: 7px; background: #fffffff2; color: var(--ink); font-size: 12px; box-shadow: 0 1px 8px #192d2815; }
.result-status { color: var(--muted); font-size: 12px; line-height: 1.5; margin: 5px 0 0; }

/* The dialog is a real photo viewer, with persistent navigation and contained images. */
.gallery-dialog { width: min(1050px, calc(100vw - 40px)); max-height: calc(100dvh - 40px); padding: 20px; overflow: auto; }
.gallery-dialog #dialog-content { min-width: 0; }
.gallery-frame { display: grid; place-items: center; min-height: 220px; height: min(65dvh, 680px); border-radius: 10px; overflow: hidden; background: #edf0e9; }
.gallery-frame img,
.gallery-frame > svg { display: block; max-width: 100%; width: 100%; height: 100%; max-height: 100%; object-fit: contain; }
.gallery-controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; }
.gallery-controls > div { display: flex; align-items: center; gap: 8px; }
.gallery-controls button { flex-shrink: 0; }
.gallery-count { color: var(--muted); font-size: 13px; text-align: center; font-variant-numeric: tabular-nums; }
.gallery-dialog h2 { font-size: 18px; margin: 0 0 14px; }
.gallery-dialog .dialog-actions { margin-top: 14px; }

/* Conversations keep context, suggested replies, and the composer within reach. */
.message-layout { height: min(700px, calc(100dvh - 245px)); min-height: 500px; }
.inbox { overflow-y: auto; overscroll-behavior: contain; }
.inbox-label { position: sticky; top: 0; z-index: 1; background: #f7f8f3; border-bottom: 1px solid var(--line); }
.thread-button { padding: 18px; gap: 10px; }
.thread-button:hover:not(.selected) { background: #edf1e8; }
.thread-button p:last-child { color: #47554b; }
.thread-button small { font-size: 11px; white-space: nowrap; }
.chat-head { padding: 15px 20px; }
.chat-head > div { min-width: 0; }
.chat-head strong { font-size: 15px; }
.chat-head p { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chat-listing { display: flex; align-items: center; gap: 11px; margin: 0; padding: 10px 20px; background: #fafbf7; border-bottom: 1px solid var(--line); min-width: 0; }
.chat-listing .chat-thumb { flex: 0 0 46px; width: 46px; height: 44px; overflow: hidden; border-radius: 7px; background: var(--wash); }
.chat-thumb svg,
.chat-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.chat-listing > div { min-width: 0; }
.chat-listing strong { display: block; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chat-listing p,
.chat-listing small { display: block; margin: 3px 0 0; font-size: 12px; color: var(--muted); line-height: 1.4; }
.chat-listing .section-link,
.chat-listing .text-button { margin-left: auto; flex-shrink: 0; font-size: 12px; }
.chat-history { overscroll-behavior: contain; scrollbar-gutter: stable; padding: 20px; gap: 12px; }
.bubble { max-width: 78%; }
.bubble p { white-space: pre-wrap; }
.bubble small,
.message-meta { white-space: normal; }
.thread-draft { color: #a44218; font-size: 11px; font-weight: 650; }
.bubble small,
.message-meta { font-size: 11px; opacity: .85; line-height: 1.4; margin-top: 5px; }
.message-meta { display: flex; gap: 5px; align-items: center; }
.quick-replies { display: flex; gap: 7px; flex-wrap: wrap; padding-bottom: 11px; }
.quick-replies button { min-height: 44px; border: 1px solid #ccd8c6; border-radius: 8px; background: #f5f8f0; color: var(--green); padding: 9px 11px; font-size: 12px; text-align: left; }
.quick-replies button:hover { border-color: #859c7e; background: #e9f0e2; }
.composer { padding: 12px 20px; }
.composer form { align-items: flex-end; }
.composer textarea { min-height: 46px; max-height: 140px; line-height: 1.5; }
.composer form .button { min-height: 46px; }
.composer p { font-size: 11px; line-height: 1.4; }
.composer-hint { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 10px; margin-top: 7px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.composer-hint kbd { font: inherit; border: 1px solid var(--line); padding: 1px 4px; border-radius: 4px; }

/* Undo is interactive only while the toast is visible. */
#toast { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 8px 10px 8px 17px; min-height: 52px; line-height: 1.5; max-width: min(560px, calc(100vw - 30px)); }
#toast.show { pointer-events: auto; }
#toast > span { min-width: 0; }
.toast-action { flex-shrink: 0; border: 1px solid #b0c3b3; border-radius: 7px; background: transparent; padding: 9px 14px; color: white; font-weight: 650; font-size: 13px; }
.toast-action:hover { background: #365043; }
.toast-action:focus-visible { outline-color: #ffc48c; }

@media (max-width: 1050px) {
  .header-links { gap: 17px; }
  .hero { gap: 30px; }
  .photo-previews { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .photo-toolbar { justify-content: flex-start; }
  .message-layout { grid-template-columns: 275px minmax(0, 1fr); }
  .chat-head .text-button { white-space: nowrap; }
}

@media (max-width: 760px) {
  .preview-banner { font-size: 11px; padding-inline: 16px; }
  .preview-banner button { font-size: 11px; }
  .header-inner { padding: 11px 18px; }
  .header-links .button { min-height: 44px; }
  main { padding-inline: 18px; }
  .hero { padding: 23px 0 18px; }
  .hero h1 { font-size: clamp(29px, 7.8vw, 36px); letter-spacing: -1.3px; }
  .hero p { font-size: 14px; line-height: 1.5; }
  .hero .eyebrow { font-size: 10px; letter-spacing: 1.2px; margin-bottom: 10px; }
  .search { gap: 1px; }
  .search input { font-size: 16px; padding-inline: 2px; }
  .search .button { min-height: 44px; padding: 10px 12px; }
  .search-clear { width: 44px; flex-basis: 44px; }
  .search > svg { margin-inline: 4px; }
  .search-hint { font-size: 11px; margin-top: 7px; }
  .browse-bar { margin: 9px 0 13px; }
  .tabs { justify-content: space-between; gap: 16px; }
  .tab { min-height: 48px; font-size: 14px; }
  .filters { gap: 7px; }
  .chip { font-size: 12px; padding: 9px 12px; }
  .active-filters { gap: 6px; margin-top: 10px; }
  .active-filters button { font-size: 11px; padding-inline: 10px; }
  .results-heading { gap: 12px; align-items: flex-end; margin: 20px 0 14px; }
  .results-heading h2 { font-size: 18px; line-height: 1.25; }
  .results-heading small { font-size: 11px; }
  .sort-control { flex-direction: column; align-items: flex-start; gap: 3px; font-size: 10px; }
  .sort-control select { font-size: 12px; max-width: 135px; padding-inline: 8px 24px; }
  .listing-grid { gap: 23px 12px; }
  .listing-card h3 { font-size: 14px; line-height: 1.4; }
  .listing-card .price { font-size: 18px; }
  .listing-card .meta { font-size: 11px; line-height: 1.55; }
  .save-button { width: 44px; height: 44px; top: 6px; right: 6px; }
  .save-button svg { width: 18px; }
  .listing-image .tag { font-size: 10px; }
  .page-top { gap: 12px; }
  .page-top p { font-size: 13px; }
  .page-top .button { min-height: 44px; }
  .editor-progress { gap: 11px; margin-bottom: 20px; padding-bottom: 18px; }
  .editor-progress > span { gap: 5px; font-size: 11px; }
  .editor-progress > span::before { flex-basis: 22px; width: 22px; height: 22px; }
  .editor-section > p { font-size: 13px; }
  .field input,
  .field select,
  .field textarea { font-size: 16px; }
  .field small { font-size: 12px; }
  .photo-previews { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .photo-tile .cover { font-size: 11px; }
  .photo-toolbar { gap: 3px; padding: 4px; }
  .photo-toolbar .cover { flex-basis: 100%; min-height: 44px; }
  .photo-toolbar .photo-move { flex: 1; }
  .editor-actions { z-index: 3; bottom: calc(66px + env(safe-area-inset-bottom)); padding: 12px 0; box-shadow: 0 -8px 15px var(--paper); gap: 12px; }
  .editor-actions p { font-size: 11px; }
  .editor-actions .button { min-height: 48px; flex-shrink: 0; }
  .draft-status { font-size: 11px; }
  .mine-tabs { gap: 22px; margin-bottom: 17px; }
  .mine-tabs button { font-size: 13px; }
  .draft-row { padding: 15px; flex-wrap: wrap; gap: 12px; }
  .draft-row .button { flex: 1; }
  .draft-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .manage-actions .button { min-height: 44px; font-size: 12px; }
  .manage-row p { font-size: 12px; }
  .message-layout { height: calc(100dvh - 258px); min-height: 430px; margin-bottom: 20px; }
  .chat-head { padding: 10px 12px; min-height: 65px; }
  .chat-head strong { font-size: 14px; }
  .chat-head p { font-size: 11px; }
  .chat-head .text-button { font-size: 11px; padding: 8px 3px; }
  .mobile-back { min-width: 44px; min-height: 44px; padding: 8px; margin-left: -5px; }
  .chat-listing { padding: 9px 12px; gap: 9px; }
  .chat-listing .chat-thumb { flex-basis: 40px; width: 40px; height: 40px; }
  .chat-listing strong { font-size: 12px; }
  .chat-listing p,
  .chat-listing small { font-size: 11px; }
  .chat-listing .section-link { font-size: 11px; }
  .chat-history { padding: 15px 12px; gap: 10px; }
  .bubble { max-width: 88%; font-size: 14px; padding: 10px 13px; }
  .bubble small,
  .message-meta { font-size: 10px; }
  .quick-replies { gap: 6px; flex-wrap: nowrap; overflow-x: auto; padding: 0 0 9px; }
  .quick-replies button { flex-shrink: 0; white-space: nowrap; font-size: 11px; padding-inline: 10px; }
  .composer { padding: 10px 12px; }
  .composer form { gap: 8px; }
  .composer textarea { max-height: 100px; font-size: 16px; }
  .composer form .button { min-height: 46px; padding-inline: 13px; }
  .composer p { font-size: 10px; }
  .composer-hint { font-size: 10px; }
  .gallery-dialog { width: calc(100vw - 20px); max-height: calc(100dvh - 20px); padding: 14px; }
  .gallery-frame { height: min(62dvh, 600px); min-height: 180px; }
  .gallery-dialog h2 { font-size: 16px; }
  .gallery-controls { gap: 8px; }
  .gallery-controls .button { padding-inline: 12px; font-size: 12px; }
  .gallery-count { font-size: 12px; }
  #toast { bottom: calc(82px + env(safe-area-inset-bottom)); text-align: left; gap: 12px; width: max-content; font-size: 12px; }
  #mobile-nav a { min-height: 48px; min-width: 52px; padding-inline: 6px; }
  footer { padding-inline: 18px; }
}

@media (max-width: 370px) {
  main { padding-inline: 14px; }
  .hero h1 { font-size: 29px; }
  .search > svg { display: none; }
  .search input { padding-left: 8px; }
  .header-inner { padding-inline: 14px; }
  .header-links .button { padding-inline: 10px; }
  .listing-card h3 { font-size: 13px; }
  .listing-card .meta .separator { display: none; }
  .editor-progress { gap: 7px; }
  .editor-progress > span { font-size: 10px; }
  .form-row { gap: 10px; }
  .results-heading h2 { font-size: 17px; }
  .sort-control select { max-width: 118px; font-size: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* Integration details for the working interaction markup. */
[hidden] { display: none !important; }
.editor-section .photo-count { position: static; margin-left: 8px; padding: 4px 8px; min-height: 0; box-shadow: none; background: var(--wash); vertical-align: middle; }
.photo-tile > .cover { position: static; display: block; width: 100%; border-radius: 0; color: var(--green); margin: 0; }
.photo-tile > .cover[aria-pressed="true"] { background: var(--soft-green); }
.draft-grid > h2, .draft-grid > p { grid-column: 1 / -1; margin: 0; }
.gallery-trigger { height: auto; aspect-ratio: 1.25; }
.gallery-trigger > span { position: absolute; bottom: 14px; right: 14px; background: #ffffffed; padding: 10px 14px; border-radius: 8px; font-size: 12px; }
.chat-listing > span:nth-child(2) { flex: 1; min-width: 0; }
.chat-head, .chat-listing, .composer { flex-shrink: 0; }
.chat, .composer, .composer form { min-width: 0; }
.chat { overflow: hidden auto; }
.composer textarea { width: 0; overflow-x: hidden; }
.chat-history { min-height: 0; }
.message-layout { min-height: 0; }
.mobile-nav > a { position: relative; }
.mobile-nav .badge-count { position: absolute; top: 2px; right: 10px; }
@media (max-width: 760px) {
  .browse-bar > .text-button { display: inline-flex; }
  .browse-bar { flex-wrap: wrap; }
  .is-conversation { padding-bottom: 0; overflow: hidden; }
  .is-conversation .preview-banner, .is-conversation #header, .is-conversation footer,
  .is-conversation #mobile-nav, .is-conversation .page-top { display: none; }
  .is-conversation main { padding: 0; max-width: none; min-height: 0; height: 100dvh; overflow: hidden; }
  .is-conversation .message-layout { height: 100dvh; min-height: 0; margin: 0; border: 0; border-radius: 0; }
  .is-conversation .composer { padding-bottom: max(12px, env(safe-area-inset-bottom)); }
  .is-conversation .composer-hint { display: none; }
  .is-conversation #toast { bottom: 20px; }
}

/* Components connected to the server-rendered pages. */
:root {color-scheme:light;--bg:#fafaf6;--card:#fff;--line:#dedfd6;--text:#192d28;--dim:#64706a;--acc:#205747;--acc2:#e9efe5;--acc-ink:#205747;--tile:#eff3ee;--field-line:#aeb9af;--on-acc:#fff;--shadow:none}
[hidden]{display:none!important}body{background:var(--paper);color:var(--ink)}
.page,.page.wide{max-width:1328px;padding:0 36px 40px;min-height:65vh}.page:not(.wide):not(:has(.message-layout,.editor-shell)){max-width:1000px;padding-top:32px}
.page:has(.message-layout){max-width:1328px}.page h1{font-size:34px}.hero h1{font-size:clamp(36px,4vw,54px)}
a{color:var(--green)}a:hover{text-underline-offset:4px}.card{padding:24px;border:1px solid var(--line);background:white;border-radius:14px;box-shadow:none;margin:0 0 20px}.card.narrow{max-width:640px;margin:0 auto 28px}.card h1{font-size:30px}
.site-header{position:relative;background:var(--paper);border-bottom:1px solid var(--line)}.header-inner{max-width:1396px;gap:24px;padding-block:22px}.header-location{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:13px;color:var(--muted);padding-left:20px;border-left:1px solid var(--line)}.wordmark{color:var(--ink);text-decoration:none}.header-links{gap:22px}.header-links a{white-space:nowrap;color:var(--ink);text-decoration:none}.header-links a[aria-current=page]{color:var(--green);box-shadow:0 2px var(--green)}.header-links .create-link{color:white;padding:11px 15px}.account-link{white-space:nowrap;font-size:14px}.account-link.signed-in{width:38px;height:38px;flex-shrink:0;border-radius:50%;background:#e1e9df;display:grid;place-items:center;font-weight:700;text-decoration:none}.site-footer{margin-top:50px;justify-content:space-between}.site-footer p{margin:6px 0 0}.site-footer nav{display:flex;gap:20px;flex-wrap:wrap}.site-footer a{color:var(--muted);text-decoration:none}
.mobile-nav{display:none}.feedback-launch{position:fixed;right:22px;bottom:20px;background:var(--ink);color:#fff;border-radius:22px;font-size:12px;padding:13px 17px;z-index:20;box-shadow:0 3px 16px #192d281b;text-decoration:none}.feedback-toast{position:fixed;bottom:78px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:14px 20px;border-radius:10px;max-width:90vw;z-index:50;font-size:14px}.feedback-toast:empty{opacity:0;pointer-events:none}
.marketplace-search{display:flex;align-items:center;gap:10px;background:white;border:1px solid #aeb9af;padding:7px;border-radius:12px}.marketplace-search>svg{flex-shrink:0;margin-left:12px;color:var(--dim)}.marketplace-search input{border:0;background:none;flex:1;min-width:0;padding:12px 3px;font-size:16px}.marketplace-search input:focus{outline:none}.marketplace-search:focus-within{box-shadow:0 0 0 2px #20574728;outline:3px solid var(--orange);outline-offset:2px}.search-hint{margin:8px 4px 0}.tabs{border-bottom:0;margin:0;gap:26px}.tabs a{padding:16px 0;border-bottom:3px solid transparent;color:var(--muted);text-decoration:none;font-size:15px}.tabs a[aria-current=page]{border-color:var(--green);color:var(--ink)}.area-link{font-size:13px;font-weight:600;text-decoration:none;display:flex;align-items:center;gap:6px}.rings{display:inline-flex;max-width:100%;margin-bottom:8px;border:0;gap:5px;background:none;flex-wrap:wrap}.rings a{padding:9px 13px;min-height:40px;font-size:12px;border:1px solid var(--line);border-radius:22px;white-space:normal}.rings a[aria-current=true]{background:var(--ink);color:#fff}.ring-label{font-size:12px;color:var(--dim);margin:3px 0 14px}.chip-row{gap:8px}.chip-row>details>summary,.chip-row>a{font-size:13px;padding:9px 14px;min-height:40px}.pop{z-index:12;box-shadow:0 8px 30px #192d2820}.results-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.sort-control{margin-left:auto;display:flex;align-items:center;gap:8px}.sort-control select{width:auto}.save-search{text-align:right;margin:0 0 12px;font-size:13px}
.items-grid,.rooms-list,.listing-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px 22px}.lcard{display:block;border:0;border-radius:0;background:none;box-shadow:none;overflow:visible;text-decoration:none;color:var(--ink);height:100%}.lcard:hover{box-shadow:none;transform:none}.lcard .photo{aspect-ratio:1.18;height:auto;min-height:0;border-radius:14px;position:relative;background:#e9e6dc;border:0;overflow:hidden}.lcard .photo img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:1.18}.lcard .photo.empty{display:grid;place-items:center}.placeholder{display:grid;justify-items:center;gap:8px;color:var(--dim);font-size:12px;padding:20px}.lcard-body{padding:12px 0 0}.lcard h2{font-size:15px;font-weight:550;line-height:1.4;margin:0 0 5px;letter-spacing:0}.lcard-price,.lcard-rent{font-size:21px;line-height:1.4;font-weight:750;margin:0 0 6px}.lcard-price.unknown{font-size:15px}.lcard-place,.lcard-meta{font-size:12px;color:var(--muted);margin:3px 0;line-height:1.5}.lcard-place svg{margin-right:3px}.listing-card:hover .lcard-title{text-decoration:underline}.listing-card .band{position:absolute;bottom:10px;left:10px;top:auto;width:auto;border-radius:5px;background:#fff;color:var(--ink);padding:5px 9px;font-size:11px}.save-control{position:absolute;top:8px;right:8px;z-index:2;margin:0}.save-control .save-button{position:static}.save-button{width:44px;height:44px;color:var(--green);padding:0}[data-inline-save] button[aria-disabled=true]{cursor:progress;opacity:.7}.lcard .chips{margin:6px 0;display:flex;flex-wrap:wrap;gap:4px}.lcard .chip{font-size:10px;min-height:0;padding:4px 7px;border:0;background:var(--wash);border-radius:5px}.request-card{background:white;border:1px solid var(--line);border-radius:12px;padding:18px}.request-card .lcard-body{padding-right:22px}.housing-map-card{min-width:0}.housing-map-list .rooms-list{grid-template-columns:repeat(4,minmax(0,1fr))}.housing-explorer.is-map .rooms-list{grid-template-columns:repeat(2,minmax(0,1fr))}
.back-link{display:inline-flex;align-items:center;gap:8px;font-size:13px;margin:26px 0;text-decoration:none;color:var(--muted)}.detail-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.85fr);gap:44px}.detail-photo{background:#eeece3}.detail-photo .gallery-trigger{height:100%;width:100%;display:block}.detail-photo img{width:100%;height:100%;object-fit:contain}.photo-gallery{display:flex;gap:10px;overflow-x:auto;margin-top:12px}.photo-gallery a{height:70px;flex:0 0 78px;border:1px solid var(--line);border-radius:8px;overflow:hidden}.photo-gallery img{width:100%;height:100%;object-fit:cover}.gallery-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.gallery-heading h2{margin:0}.detail-sidebar .card{padding:22px}.detail-sidebar h1{font-size:30px}.gallery-dialog{color:var(--ink)}
input,select,textarea{background:white;color:var(--ink);border-color:#b8c4b6;border-radius:8px}input[type=checkbox],input[type=radio]{accent-color:var(--green)}.field{margin-top:18px}.field label,fieldset legend{font-size:13px;font-weight:650}.field small,.help{font-size:12px;line-height:1.5;color:var(--muted)}.form input,.form select,.form textarea{font-size:16px}.form input[type=checkbox],.form input[type=radio]{width:auto;min-height:0}.choice{padding:10px 12px;border-radius:8px}.editor-shell{max-width:1060px}.editor-shell>.card{background:none;border:0;padding:0}.editor-progress{list-style:none;padding-left:0;display:flex;gap:20px}.editor-progress li{font-size:13px;color:var(--dim)}.editor-progress li[aria-current=step]{color:var(--green);font-weight:700}.editor-shell .form{max-width:none}.photo-tile form{position:relative;z-index:1}.photo-tile{aspect-ratio:auto;background:white;border:1px solid var(--line)}.photo-tile>img{aspect-ratio:1.18;height:auto}.photo-tile button{min-height:38px}.review-card .photo-previews{margin-top:20px}.manage-list{display:grid;gap:18px}.my-listing{padding:20px}.my-listing-actions,.manage-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.manage-actions form{margin:0}.draft-row .button{white-space:normal}
.message-layout{height:min(760px,calc(100dvh - 230px));min-height:650px;margin-bottom:30px;grid-template-columns:330px minmax(0,1fr)}.chat{min-width:0;background:#fff}.chat-head{background:white}.chat-head h2{font-size:17px;margin:0 0 3px}.chat-history ol{display:flex;flex-direction:column;gap:14px;margin:0;padding:0;list-style:none}.chat-history .bubble{display:block;width:fit-content;max-width:84%;margin:0;box-shadow:none;border:0}.bubble p{margin:0;font-size:14px}.bubble.mine a{color:white;text-decoration:underline}.chat>.note,.chat>p,.chat>[data-read-form]{font-size:11px;margin:0;padding:5px 18px;background:#f7f8f3;flex-shrink:0}.chat>.note{padding:10px 18px}.chat>[data-read-form] .text-button{min-height:28px;padding:2px 0}.chat>.composer{margin-top:auto;padding:14px 18px;background:#fff;flex-shrink:0}.composer form{display:flex;flex-wrap:wrap;align-items:end;gap:8px;margin:0}.composer form>.field{flex:1 1 250px;margin:0}.composer textarea{display:block;width:100%;min-height:48px;max-height:150px;margin:0;font-size:16px}.composer .field label{font-size:11px;margin-bottom:4px}.composer form>.error:empty,.composer form>[data-send-status]:empty{display:none}.composer .quick-replies{display:flex;gap:6px;overflow:auto;flex-wrap:nowrap}.quick-replies button{font-size:11px;min-height:34px;padding:7px 9px;white-space:nowrap}.composer #message-help{font-size:10px;line-height:1.4}.composer-hint{font-size:10px}.chat-history{min-height:260px;overflow-y:auto;flex:1 1 auto;display:block}.chat-listing{display:flex;align-items:center;gap:12px;font-size:12px}.chat-listing>strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-listing span{margin-left:auto;color:var(--dim)}.message-empty{align-items:center;justify-content:center;text-align:center;padding:30px}.thread-button{text-decoration:none;color:var(--ink)}.thread-button[aria-current=page]{background:#e9efe5;box-shadow:inset 3px 0 var(--green)}.thread-text>[data-thread-title],.thread-text>[data-message-preview],.thread-text>small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.thread-text>[data-message-preview]{font-size:12px;color:var(--muted)}.thread-unread{font-size:11px;background:var(--green);color:#fff;border-radius:15px;padding:3px 7px}.message-unread-badge{background:var(--orange);color:#fff;min-width:18px;border-radius:10px;padding:1px 5px;font-size:10px}.feedback-screenshot{max-width:100%;max-height:420px;object-fit:contain}.feedback-preview img{max-width:100%;max-height:240px;object-fit:contain}.inline-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.inline-form select{width:auto}.feedback-launch:focus-visible{outline-color:var(--orange)}
@media(min-width:1600px){.page,.page.wide,.header-inner,.site-footer{max-width:1440px}}
@media(max-width:1120px){.header-location{display:none}.header-links{gap:16px}.header-inner{gap:18px}.items-grid,.rooms-list,.housing-map-list .rooms-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.header-links>a:not(.button){display:none}.header-inner{padding:16px 20px}.header-links{margin-left:auto}.header-links .button{font-size:12px;min-height:40px;padding:9px 12px}.page,.page.wide,.page:not(.wide):not(:has(.message-layout,.editor-shell)){padding:0 20px 28px}.page:not(.wide):not(:has(.message-layout,.editor-shell)){padding-top:24px}.page h1{font-size:29px}.hero h1{font-size:39px}.hero{gap:20px}.hero-note{display:none}.items-grid,.rooms-list,.housing-map-list .rooms-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 13px}.lcard h2{font-size:13px}.lcard-price,.lcard-rent{font-size:18px}.lcard-meta,.lcard-place{font-size:11px}.browse-bar{display:flex;gap:10px;flex-wrap:wrap}.area-link{font-size:11px}.marketplace-search{gap:6px}.marketplace-search .button{padding:10px 13px;font-size:12px}.marketplace-search input{font-size:16px}.results-heading{gap:12px;flex-wrap:wrap}.sort-control{font-size:11px}.sort-control select{max-width:155px;font-size:12px}.site-footer{display:block;margin:20px 20px 0;padding:25px 0 100px}.site-footer nav{margin-top:20px;gap:15px;font-size:11px}.feedback-launch{right:12px;bottom:85px;font-size:11px;padding:11px 13px}.mobile-nav{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);padding:9px 6px calc(9px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fafaf6f5;backdrop-filter:blur(12px);z-index:25}.mobile-nav>a{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;color:var(--muted);text-decoration:none;min-height:44px;font-size:10px}.mobile-nav>a[aria-current=page]{color:var(--green);font-weight:700}.mobile-nav .mobile-create svg{background:var(--green);color:#fff;border-radius:8px;padding:3px;width:27px;height:27px}.detail-grid{display:block}.card{padding:20px}.photo-previews{grid-template-columns:repeat(2,1fr)}.detail-sidebar{margin-top:24px}.gallery-dialog{padding:14px;width:calc(100% - 20px)}.message-layout{display:block;height:auto;min-height:0}.message-layout.thread-open .inbox{display:none}.message-layout.thread-open .chat{display:flex;height:100%}.message-layout:not(.thread-open) .chat{display:none}.page:has(.thread-open){padding:0 8px calc(76px + env(safe-area-inset-bottom))}.page:has(.thread-open)>.page-top{padding:14px 12px}.page:has(.thread-open)>.page-top .eyebrow{display:none}.page:has(.thread-open)>.page-top h1{font-size:24px}.chat-head{padding:10px 12px}.chat-head .mobile-back{display:inline-flex;font-size:23px}.chat>.composer{padding:10px 12px}.chat-history{padding:14px 12px;min-height:40dvh;max-height:60dvh;overflow:auto}.composer #message-help{display:none}.message-layout .bubble{font-size:14px;flex:0 0 auto}.message-layout~details{margin:12px}.page:has(.thread-open)~.feedback-launch{display:none}.page:has(.thread-open)~.site-footer{display:none}.composer form>.field{flex-basis:180px}.composer form>.button{padding:10px 13px}.composer-hint{margin-top:5px!important}.sort-control label{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* File upload is a real multipart form, with an explicit upload button. */
.upload input[type=file]{position:static;inset:auto;width:100%;height:auto;opacity:1;padding:12px;background:white;border:1px solid var(--line);cursor:pointer}.upload{gap:12px;display:flex;flex-direction:column;align-items:stretch}.upload label{font-weight:650}.upload button{align-self:center}.upload progress{width:100%}
/* Match the approved browse proportions and keep results close to discovery. */
.hero{padding:32px 0 24px;gap:45px}.hero h1{font-size:44px;letter-spacing:-1.6px}.hero>.eyebrow,.hero .eyebrow{font-size:11px}.hero .intro-paste{display:block;border:0;border-radius:0;background:none;padding:0;font-size:12px;min-height:0;margin-top:14px}.hero .intro-paste strong{font-size:12px;margin:0}.hero .intro-paste span{display:none}.marketplace-search{max-width:none;width:100%}.browse-bar{margin:15px 0}.rings,.ring-label{display:none}.chip-row{margin-top:14px}.housing-map-toolbar{margin-bottom:12px}.housing-map-toolbar p{font-size:12px}.results-heading{margin-top:22px}.hero-note{padding-block:0}.hero-note p{font-size:14px}
@media(max-width:800px){.hero{padding:26px 0 22px}.hero h1{font-size:36px}.hero p{font-size:14px}.housing-map-toolbar{gap:8px;align-items:start}.housing-map-toolbar p{font-size:11px}.feedback-launch{padding:10px 13px;max-width:175px}.card.narrow{padding:20px}.chip-row{gap:6px}.chip-row>details>summary,.chip-row>a{font-size:12px;padding:9px 12px}}

/* Connected listing markup includes the cover and thumbnails in one wrapper. */
.detail > .detail-photo { aspect-ratio: auto; overflow: visible; background: transparent; }
.detail-photo > .photo { aspect-ratio: 1.25; overflow: hidden; background: #eeece3; border-radius: 14px; }
.detail-photo > .photo .gallery-trigger { width: 100%; height: 100%; }
.detail .photo-gallery { display: flex; gap: 10px; margin-top: 12px; overflow-x: auto; padding: 3px; }
.detail .photo-gallery a { flex: 0 0 76px; border-radius: 8px; overflow: hidden; }
.detail .photo-gallery img { height: 68px; width: 76px; object-fit: cover; }
.detail-side { position: static; gap: 24px; }
.detail-side > .card { padding: 0; border: 0; background: transparent; border-radius: 0; }
.detail-side .detail-information h1 { font-size: 32px; margin: 18px 0 12px; }
.detail-information > .status-tag { margin: 0 0 8px; }
.detail-information .detail-price { font-size: 30px; margin: 12px 0; }
.detail-information .seller-row { border-top: 1px solid var(--line); margin-top: 20px; padding-top: 20px; }
.detail-share { border-top: 1px solid var(--line) !important; padding-top: 22px !important; }
.detail-share h2 { font-size: 16px; margin: 0 0 14px; }
.detail .detail-desc { border: 0; border-top: 1px solid var(--line); border-radius: 0; padding: 24px 0 0; margin: 0; background: transparent; }
.detail .detail-desc h2 { font-size: 20px; margin: 0 0 14px; }
.detail-information .chips .chip { padding: 7px 11px; min-height: 0; font-size: 12px; }
@media (min-width: 900px) {
  .detail { grid-template-columns: minmax(0, 1.3fr) minmax(300px, .85fr); gap: 30px 44px; }
  .detail.detail-request { display: block; max-width: 760px; }
}
@media (max-width: 800px) {
  .listing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 13px; }
  .detail { gap: 24px; }
  .detail-side .detail-information h1 { font-size: 29px; }
  .detail-information .detail-price { font-size: 27px; }
}
.detail-side .button.full { width: 100%; }
.detail-information > .note { padding: 0; background: transparent; color: var(--muted); font-size: 12px; line-height: 1.6; }
.detail-desc p.description { border: 0; padding: 0; margin: 0 0 20px; }
/* The final publication review is content, not the optional editor side preview. */
.preview-card.review-card { display: block; position: static; }
.review-card .photo-previews > img { width: 100%; height: auto; max-height: 320px; aspect-ratio: 1.2; object-fit: contain; border-radius: 9px; background: var(--wash); }
/* Keep the feedback shortcut clear of publication controls, including without JS. */
.page:has(.editor-shell, .paste-form) ~ .feedback-launch { position: static; display: block; width: max-content; max-width: calc(100% - 40px); margin: 0 36px 28px auto; }
@media (max-width: 800px) { .page:has(.editor-shell, .paste-form) ~ .feedback-launch { margin: 0 20px 100px auto; } }
/* Drafts and Trash do not have a thumbnail column. */
ul.plain > li.mine-row, ul.plain > li.mine-row:first-child { padding: 20px; border: 1px solid var(--line); }
.mine-row > div:only-child { grid-column: 1 / -1; }
.mine-row > div { min-width: 0; }
.page > .editor-shell { margin-top: 28px; }

/* Keep the logo, create action and account link inside narrow phone screens. */
@media (max-width: 380px) {
  .header-inner { gap: 8px; padding-inline: 14px; }
  .header-inner .wordmark { font-size: 22px; }
  .header-links .create-link { padding-inline: 10px; }
  .account-link { font-size: 12px; }
}
@media (max-width: 800px) {
  html { scroll-padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
  .page :is(button, input, select, textarea, a) { scroll-margin-bottom: calc(96px + env(safe-area-inset-bottom)); }
}
/* Real posting uses the approved paired editor and draft preview. */
.posting-editor { max-width: 1060px; margin-inline: auto; }
.posting-editor .editor-heading { margin-bottom: 22px; padding: 12px 0 0; }
.posting-editor .editor-heading h1 { margin-bottom: 12px; font-size: 40px; }
.posting-editor .editor-heading p { max-width: 640px; color: var(--muted); }
.posting-editor .editor-heading .eyebrow { color: var(--green); margin-bottom: 12px; }
.posting-editor .editor-heading .privacy-line { background: transparent; padding: 0; font-size: 13px; }
.posting-progress { display: flex; gap: 24px; margin: 0 0 30px; padding: 0 0 22px; border-bottom: 1px solid var(--line); }
.posting-progress li { display: flex; align-items: center; gap: 8px; }
.posting-progress li > span { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #e7ebe4; font-size: 11px; }
.posting-progress li[aria-current] > span { background: var(--green); color: white; }
.posting-grid { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 44px; align-items: start; }
.editor-main { min-width: 0; }
.posting-editor .editor-details { display: grid; gap: 0; }
.posting-editor .editor-section { padding: 0 0 26px; margin: 0 0 28px; }
.posting-editor .editor-section h2 { margin-bottom: 9px; font-size: 19px; }
.posting-editor .editor-section > .field:first-of-type { margin-top: 20px; }
.posting-editor .field { margin-top: 20px; gap: 7px; }
.posting-editor .field .field { margin-top: 0; }
.posting-editor .field > label, .posting-editor .field > legend { font-size: 13px; }
.posting-editor input:not([type=radio]):not([type=checkbox]), .posting-editor select, .posting-editor textarea { min-width: 0; }
.posting-editor .choice { margin: 0; background: white; font-size: 13px; padding: 10px 12px; }
.posting-editor .choice:has(input:checked) { background: var(--wash); border-color: var(--green); }
.condition-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.condition-options .choice { align-items: center; }
.condition-options .choice input { flex-shrink: 0; margin-top: 0; }
.condition-guide { font-size: 12px; color: var(--muted); }
.condition-guide summary { min-height: 36px; padding: 8px 0; }
.condition-guide dl { margin: 8px 0; display: grid; gap: 10px; }
.condition-guide dt { font-weight: 650; color: var(--ink); }
.condition-guide dd { margin: 2px 0 0; line-height: 1.5; }
.option-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.posting-editor .option-grid small { font-size: 11px; line-height: 1.45; margin-top: 4px; }
.posting-editor .choices-inline > .field { flex: 1 1 150px; }
.posting-editor .photo-previews { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.posting-editor .photo-tile { min-width: 0; }
.posting-editor .photo-tile form { padding: 5px; display: flex; gap: 4px; flex-wrap: wrap; }
.posting-editor .photo-tile button { padding: 5px 7px; font-size: 11px; min-height: 34px; }
.posting-editor .upload { margin-top: 14px; padding: 20px; }
.posting-editor .upload > label { font-weight: 650; font-size: 14px; }
.posting-editor .upload input[type=file] { max-width: 100%; font-size: 13px; }
.posting-editor .public-preview { margin: 0 0 22px; }
.posting-editor .rules-box { font-size: 12px; line-height: 1.6; margin-bottom: 22px; }
.posting-editor .editor-actions { position: static; display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-start; align-items: center; padding-top: 18px; margin: 0 0 24px; box-shadow: none; }
.posting-editor .editor-actions .button { min-height: 46px; }
.posting-editor .editor-actions > p { flex-basis: 100%; max-width: none; }
.posting-editor .editor-preview { display: block; position: sticky; top: 24px; padding: 18px; }
.editor-preview .editor-preview-media { aspect-ratio: 1.2; background: #e9eee5; }
.editor-preview-media > img { width: 100%; height: 100%; display: block; object-fit: cover; }
.editor-preview-placeholder { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; text-align: center; padding: 25px; color: var(--muted); font-size: 12px; }
.editor-preview-photo-note { font-size: 10px; color: var(--muted); margin: 6px 0 0; }
.editor-preview-photo-note:empty { display: none; }
.editor-preview .editor-preview-kind { font-size: 10px; color: var(--green); text-transform: uppercase; letter-spacing: 1px; font-weight: 650; margin: 18px 0 8px; }
.editor-preview h2 { font-size: 21px; line-height: 1.3; letter-spacing: -.4px; overflow-wrap: anywhere; margin: 0 0 8px; }
.editor-preview .price { font-size: 25px; margin: 8px 0 16px; line-height: 1.25; }
.editor-preview-facts { display: grid; gap: 10px; margin: 0; font-size: 12px; }
.editor-preview-facts dt { color: var(--muted); font-size: 10px; margin-bottom: 3px; }
.editor-preview-facts dd { margin: 0; line-height: 1.45; overflow-wrap: anywhere; }
.editor-preview-description { font-size: 12px; line-height: 1.55; margin: 16px 0 0; white-space: pre-wrap; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.editor-preview-description:empty { display: none; }
.editor-preview .editor-preview-note { border-top: 1px solid var(--line); margin: 18px 0 0; padding-top: 14px; font-size: 11px; color: var(--muted); }
.editor-preview-jump, .editor-preview-back { display: none; }
@media (max-width: 1100px) and (min-width: 801px) {
  .posting-grid { grid-template-columns: minmax(0, 1fr) 280px; gap: 28px; }
  .condition-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
  .posting-editor .editor-heading { padding-top: 0; }
  .posting-editor .editor-heading h1 { font-size: 32px; }
  .posting-editor .editor-heading p { font-size: 14px; }
  .posting-progress { gap: 14px; padding-bottom: 18px; margin-bottom: 24px; }
  .posting-progress li { font-size: 10px; gap: 5px; }
  .posting-progress li > span { width: 20px; height: 20px; flex-shrink: 0; }
  .posting-grid { display: block; }
  .condition-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .option-grid { grid-template-columns: 1fr; }
  .posting-editor .photo-previews { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .posting-editor .editor-preview { position: static; margin-top: 28px; }
  .editor-preview-jump, .editor-preview-back { display: inline-block; font-size: 12px; }
  .editor-preview-back { margin-top: 16px; }
  .posting-editor .editor-actions .button { flex: 1 1 135px; font-size: 13px; }
}
/* The analytics choice (_analytics_consent.html): a card over the bottom of the page, not a modal. */
.analytics-consent { position: fixed; left: 16px; right: 16px; bottom: 20px; z-index: 40; max-width: 560px; margin: 0 auto; background: var(--paper); color: var(--ink); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 6px 28px #192d2826; padding: 18px 20px; }
.analytics-consent[hidden] { display: none; }
.analytics-consent:focus { outline: none; }
.analytics-consent h2 { font-size: 18px; letter-spacing: -.3px; margin: 0 0 6px; }
.analytics-consent p { font-size: 14px; margin: 0 0 12px; }
.analytics-consent a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
.analytics-consent .choice { background: white; font-size: 13px; }
.analytics-consent-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
@media (max-width: 800px) {
  .analytics-consent { bottom: calc(78px + env(safe-area-inset-bottom)); max-height: calc(100dvh - 120px); overflow-y: auto; padding: 16px; }
  .analytics-consent-actions .button { flex: 1 1 140px; }
}

/* Go-together trips (#72). */
.trip-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 16px; margin: 20px 0 30px; }
.trip-card a { display: block; height: 100%; background: white; border: 1px solid var(--line); border-radius: 12px; padding: 18px; }
.trip-card a:hover h3 { text-decoration: underline; text-underline-offset: 3px; }
.trip-card h3 { margin: 10px 0 4px; font-size: 17px; overflow-wrap: anywhere; }
.trip-card p { margin: 0 0 4px; }
.trip-kind { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.trip-route { font-weight: 650; overflow-wrap: anywhere; }
.trip-when { font-size: 14px; }
.trip-meta { font-size: 12px; color: var(--muted); }
.trip-dates { margin: 14px 0 6px; }
.trip-range { margin-bottom: 10px; max-width: 520px; }
.trip-facts { display: grid; gap: 10px; margin: 22px 0; }
.trip-facts div { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 12px; }
.trip-facts dt { font-size: 12px; color: var(--muted); }
.trip-facts dd { margin: 0; font-size: 14px; overflow-wrap: anywhere; }
.trip-member { border-top: 1px solid var(--line); padding: 14px 0; }
.trip-member blockquote { margin: 0 0 10px; padding-left: 12px; border-left: 3px solid var(--line); overflow-wrap: anywhere; }
.trip-detail .detail-side .manage-actions { margin: 16px 0; }
.trip-detail .safety-note ul { margin: 8px 0 0; padding-left: 18px; }
.plain-list { padding-left: 18px; font-size: 14px; }
.trip-form .check { padding: 14px; background: var(--wash); border-radius: 9px; }
/* Fields the chosen answer does not use are hidden; trips/forms.py ignores them too. Browsers
   without :has() show every field. */
.trip-form fieldset:has([name="date_mode"][value="exact"]:checked) .if-flexible,
.trip-form fieldset:has([name="date_mode"][value="undecided"]:checked) :is(.if-dated, .if-flexible),
.trip-form fieldset:has([name="time_mode"][value="exact"]:checked) .if-window,
.trip-form fieldset:has([name="time_mode"][value="undecided"]:checked) :is(.if-timed, .if-window),
.trip-form fieldset:has([name="return_mode"][value="same"]:checked) .if-overnight,
.trip-form fieldset:has([name="return_mode"]:is([value="oneway"], [value="undecided"]):checked) :is(.if-overnight, .if-return) { display: none; }
/* A trip hides the pickup and moving fields; a pickup or move hides seats and baggage. */
.trip-form:has([name="kind"]:is([value="offer"], [value="outing"], [value="ride_need"]):checked) .if-moving,
.trip-form:has([name="kind"]:is([value="move_need"], [value="move_offer"], [value="move_shared"]):checked) .if-trip { display: none; }
/* Optional parts of the trip form, and each helper's slot form, fold away (native <details>, no script). */
.form-more { margin-top: 18px; }
.form-more > summary, .trip-slot-edit > summary { cursor: pointer; padding: 10px 0; color: var(--green); font-weight: 600; font-size: 14px; }
.trip-cancel { margin-top: 12px; }
.trip-cancel summary { cursor: pointer; color: var(--bad); font-weight: 600; font-size: 14px; }
@media (max-width: 760px) {
  .trip-facts div { grid-template-columns: 1fr; gap: 2px; }
}
@media (max-width: 560px) {
  .trip-form .form-row { grid-template-columns: 1fr; }
}
.trip-poll-date { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid var(--line); }
.trip-poll-date > span { flex: 1 1 200px; }
.trip-calendar { margin: 22px 0 0; }
.status-tag.updated { background: #f7e6da; color: #9f481e; }
.trip-message-block { margin-top: 4px; }
.trip-calendar p { margin: 8px 0 0; }
.trip-choose summary { cursor: pointer; color: var(--green); font-weight: 600; font-size: 14px; }
.trip-choose[open] { flex-basis: 100%; }
.trip-poll-add { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; }
.trip-message { border-top: 1px solid var(--line); padding: 12px 0; overflow-wrap: anywhere; }
.trip-message p { margin: 0 0 6px; }
.trip-message.mine { padding-left: 12px; border-left: 3px solid var(--green); }

/* Browse tabs look like what they are: three buttons, one of them pressed. */
.browse-bar { border-bottom: 0; }
.browse-tabs { display: inline-flex; gap: 4px; padding: 4px; background: var(--wash); border: 1px solid var(--line); border-radius: 12px; }
.browse-tabs a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 18px; border: 0; border-radius: 9px; color: var(--ink); font-size: 15px; font-weight: 600; }
.browse-tabs a:hover { background: #ffffffb3; }
.browse-tabs a[aria-current=page] { background: white; color: var(--green); box-shadow: 0 1px 3px #192d2826, 0 0 0 1px #20574733; }
.browse-tabs.secondary { margin: 0 0 14px; }
.browse-tabs.secondary a { min-height: 40px; font-size: 13px; padding: 0 14px; }

/* The feedback link sits in the footer on phones instead of floating over the page. */
.site-footer .footer-feedback { display: none; }

/* Phones (800 px and below, where the tab bar starts): a listing on the first screen of
   browse, and the listing's price, title and contact action on the first screen of a
   listing page. */
/* A phone turned sideways is wider than 800 px but too short for a floating link too. */
@media (max-width: 800px), (max-height: 500px) {
  .is-web .feedback-launch { display: none !important; }
  .site-footer .footer-feedback { display: flex; align-items: center; justify-content: center; width: fit-content; min-height: 44px; margin: 14px 0 0; padding: 0 18px; border: 1px solid var(--green); border-radius: 22px; background: white; color: var(--green); font-size: 14px; font-weight: 650; }
}
@media (max-width: 800px) {

  .hero { padding: 14px 0 10px; }
  .hero .eyebrow { display: none; }
  .hero h1 { font-size: 27px; line-height: 1.12; letter-spacing: -1px; margin: 0 0 6px; }
  .hero p { font-size: 13px; line-height: 1.45; margin: 0; }
  .browse-page-top { padding: 14px 0 8px; }
  .browse-page-top .eyebrow, .browse-page-top p { display: none; }
  .browse-page-top h1 { font-size: 24px; margin: 0; }

  .browse-bar { margin: 8px 0 10px; gap: 8px; }
  .browse-tabs { display: flex; width: 100%; }
  .browse-tabs a { flex: 1 1 0; padding: 0 8px; font-size: 14px; }
  .marketplace-search { padding: 4px; }
  .marketplace-search input { padding-block: 8px; }
  .search-hint { margin-top: 6px; }
  .browse-links { justify-content: flex-start; gap: 0 18px; margin: 2px 0 0; font-size: 13px; }
  .browse-links a { display: inline-flex; align-items: center; min-height: 44px; }
  .chip-row { margin-top: 8px; }
  /* A long heading wraps beside the sort menu rather than pushing it onto its own row. */
  .results-heading { flex-wrap: nowrap; align-items: flex-end; margin: 14px 0 10px; }
  .results-heading > div { flex: 1 1 auto; }
  .results-heading .sort-control { flex: 0 0 auto; }
  .results-heading .sort-control select { max-width: 132px; }

  .back-link { margin: 10px 0 12px; min-height: 44px; }
  .detail-photo > .photo { aspect-ratio: 4 / 3; }
  .detail .photo-gallery { margin-top: 8px; }
  .detail .photo-gallery a { flex-basis: 60px; height: 52px; }
  .detail .photo-gallery img { width: 60px; height: 52px; }
  .detail-side .detail-information h1 { font-size: 24px; margin: 10px 0 6px; }
  .detail-information > .status-tag { margin: 4px 0 0; }
  .detail-information .detail-price { font-size: 24px; margin: 0 0 12px; }
  .detail-information .detail-contact { margin: 0 0 8px; }
}
/* The posting flow after the Session 8 task tests (T3: a group-chat message to a listing). */
/* The photo step: one large target that opens the picker; the file box and the upload button
   stay visible without JavaScript and step aside once listing-editor.js runs. */
.posting-editor .upload.photo-add { display: flex; flex-direction: column; align-items: stretch; gap: 10px; min-height: 0; padding: 14px; cursor: default; }
.posting-editor .upload.photo-add > .photo-add-target { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-height: 128px; padding: 18px; margin: 0; border: 1.5px solid var(--green); border-radius: 10px; background: white; color: var(--green); font-size: 13px; text-align: center; cursor: pointer; }
.posting-editor .upload.photo-add > .photo-add-target:hover { background: #f4f8f1; }
.photo-add-target strong { margin: 0; font-size: 18px; letter-spacing: -.2px; }
.photo-add-target small { color: var(--muted); font-size: 12px; font-weight: 400; }
.upload.photo-add:focus-within { outline: none; }
.upload.photo-add:focus-within > .photo-add-target { outline: 3px solid var(--focus); outline-offset: 2px; }
.upload.photo-add.is-enhanced input[type=file] { position: absolute; width: 1px; height: 1px; padding: 0; border: 0; opacity: 0; overflow: hidden; clip-path: inset(50%); }
.upload.photo-add > .help { margin: 0; text-align: center; }
.upload.photo-add [data-local-photo-previews]:empty,
.upload.photo-add [data-upload-status]:empty { display: none; }
.upload.photo-add [data-local-photo-previews] img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 8px; }
.upload.photo-add [data-upload-status] { margin: 0; font-size: 13px; text-align: center; }
.upload.photo-add > [data-upload-button][hidden] { display: none; }
.review-no-photo p { margin: 0 0 10px; }
/* A checkbox that must not be missed uses the review page's boxed .check everywhere
   (task tests, Session 8: "the checkbox is not prominent enough and may be overlooked"). */
.check { padding: 14px 16px; margin: 16px 0; background: var(--wash); border: 1px solid #c3d1bd; border-radius: 9px; font-size: 14px; font-weight: 600; color: var(--ink); cursor: pointer; }
.check input[type=checkbox] { width: 22px; height: 22px; min-height: 0; margin: 0; flex-shrink: 0; accent-color: var(--green); cursor: pointer; }
.check > span { min-width: 0; }
.check small { display: block; margin-top: 2px; color: var(--muted); font-size: 12px; font-weight: 400; }
.check:has(input:checked) { border-color: var(--green); background: #e5efe0; }
.check:has(input:focus-visible) { outline: 3px solid var(--focus); outline-offset: 2px; }
.check input:focus-visible { outline: none; }
.error:not([hidden]) + .check { border-color: #ad342e; background: #fffafa; }
.posting-editor .choice input[type=checkbox],
.posting-editor .choice input[type=radio] { width: 20px; height: 20px; flex-shrink: 0; }
/* After publishing: sharing to the group chat is the main action (listing.html). */
.posted-panel { max-width: 720px; margin: 0 0 24px; padding: 20px; background: #e9f1e4; border: 1px solid #cddfc3; border-radius: var(--radius); }
.posted-panel .eyebrow { margin-bottom: 8px; }
.posted-panel h2 { font-size: 22px; margin: 0 0 6px; }
.posted-panel > p { font-size: 14px; margin: 0 0 12px; }
.posted-panel textarea { display: block; width: 100%; min-height: 0; margin: 0 0 12px; padding: 10px 12px; font-size: 14px; line-height: 1.5; resize: none; background: white; border: 1px solid #cddfc3; border-radius: 8px; color: var(--ink); }
.posted-panel .button.full { width: 100%; min-height: 48px; font-size: 15px; }
.posted-panel .posted-next { margin: 14px 0 6px; }
.posted-panel .posted-next .button { white-space: normal; text-align: center; }
.posted-panel .small { margin: 0; }
.paste-next { margin: 4px 0 18px; }
.paste-next .stack { margin: 0; }
.paste-evidence > summary { display: flex; align-items: center; min-height: 44px; color: var(--green); font-size: 13px; font-weight: 600; cursor: pointer; }
.message-emails { margin: 12px 0 0; }
.message-emails a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
/* The place box's own suggestions (place-picker.js): a list floating under the box, so opening and
   closing it never moves the page under a finger; tap targets 44px. */
.place-combo { position: relative; }
.place-suggestions { position: absolute; top: 100%; left: 0; right: 0; z-index: 6; list-style: none; margin: 6px 0 0; padding: 4px; max-height: 264px; overflow-y: auto; background: var(--white); border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 6px 18px #13231c14; }
.place-suggestions[hidden] { display: none; }
.place-suggestions [role=option] { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; min-height: 44px; padding: 10px 12px; border-radius: 6px; font-size: 14px; color: var(--ink); cursor: pointer; }
.place-suggestions [role=option] small { color: var(--muted); font-size: 12px; text-align: right; }
.place-suggestions [role=option]:hover, .place-suggestions [aria-selected=true] { background: var(--wash); }
