/* Visual refresh: shared marketplace, account and moderation surfaces. */
:root { --paper:#f6f7f9; --card:#fff; --ink:#22252b; --muted:#606772; --line:#e2e5e9; --mandarin:#b64129; --glass:rgba(255,255,255,.97); --shadow:0 8px 28px rgba(28,37,48,.05); }
body { background:#f6f7f9; }
/* Use the screen for listings instead of a narrow fixed-width column. */
body .wrap { width:calc(100% - 64px); padding-left:env(safe-area-inset-left,0px); padding-right:env(safe-area-inset-right,0px); }
body .page { padding-bottom:28px; }
body .footer { margin-top:24px; padding-bottom:28px; }
.stripe { height:3px; background:var(--mandarin); }
h1,h2,h3,.logo { letter-spacing:-.035em; }
h1 { line-height:1.2; }
h2 { font-size:24px; line-height:1.3; }
.top { background:var(--glass); border-color:var(--line); backdrop-filter:blur(12px); }
.top-inner { min-height:80px; gap:12px; }
.logo { font-size:23px; }
.city-form input,.search input { background:#f3f4f6; border-color:transparent; border-radius:12px; }
.search input { height:48px; }
.btn { border-radius:12px; min-height:44px; letter-spacing:0; font-weight:700; }
.btn-mandarin,.search-go { background:var(--mandarin); box-shadow:none; }
.btn-mandarin:hover,.search-go:hover { background:#98331f; }
.btn-ghost { background:white; }
.search-go { border-radius:9px; height:38px; right:5px; }
.icon-btn { border-radius:12px; }
.page { padding-top:16px; }
.section { margin-top:20px; }
.section-head { gap:14px; align-items:center; }
.section-head h2 { margin:0; }
.market-intro { position:relative; display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); height:auto; min-height:264px; background:#efe6da; border:1px solid #e8ddd0; border-radius:24px; overflow:hidden; padding:0; gap:0; }
.market-copy { padding:22px 28px; z-index:1; align-self:center; }
.market-eyebrow { display:block; color:#814936; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.12em; margin-bottom:12px; }
.market-intro h1 { font-size:clamp(28px,3.2vw,40px); line-height:1.12; max-width:560px; margin:0 0 14px; }
.market-intro p { font-size:15px; line-height:1.65; color:#514a44; max-width:490px; }
.market-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; margin-top:22px; }
.market-browse { font-size:13px; font-weight:700; min-height:44px; display:flex; align-items:center; gap:8px; }
.market-browse:hover { text-decoration:underline; }
.market-art { position:absolute; inset:0 0 0 auto; width:40.8163%; height:100%; min-height:0; object-fit:cover; object-position:center; }
.how-fold { background:transparent; border:0; border-radius:0; box-shadow:none; margin:10px 0 0; }
.how-fold>summary { padding:6px 0; color:var(--muted); font-weight:500; font-size:13px; }
.home-doors .door-grid { gap:12px; }
.home-doors .door { display:flex; align-items:center; justify-content:space-between; height:88px; min-height:88px; border:1px solid var(--line); background:white; border-radius:14px; overflow:hidden; transition:border-color .15s,box-shadow .15s; }
.home-doors .door img { position:static; order:2; width:42%; height:100%; object-fit:cover; opacity:1; }
.home-doors .door span { position:static; order:1; inset:auto; background:none; color:var(--ink); text-shadow:none; padding:12px; font-size:13px; font-weight:700; line-height:1.35; flex:1; }
.home-doors .door:hover { border-color:#c7a598; box-shadow:0 3px 10px #22222208; }
.home-doors .door-all { background:#f0e4de; border-color:#ead6cb; }
.home-doors .door-all span { color:#8e3927; }
#catalog { scroll-margin-top:100px; }
.grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.lot { border:1px solid var(--line); border-radius:16px; background:white; box-shadow:none; overflow:hidden; transition:box-shadow .15s,border-color .15s; }
.lot:hover { box-shadow:var(--shadow); border-color:#ced3da; }
.lot-photo { aspect-ratio:4/3; background:#eceef1; }
.lot-photo img { object-fit:contain; }
.lot-body { padding:14px; }
.lot .price { color:var(--ink); font-size:21px; line-height:1.35; letter-spacing:-.025em; }
.lot-title { font-size:15px; line-height:1.5; font-weight:500; margin:4px 0 8px; }
.lot .meta { font-size:12px; line-height:1.5; }
.lot-fav { width:40px; height:40px; background:rgba(255,255,255,.96); font-size:22px; color:#7e4b42; box-shadow:0 2px 8px #0000000a; }
.badge { font-size:11px; padding:5px 9px; }
.lot.hi { border-color:#d6b285; background:#fffaf0; }
.lot.sold { opacity:.72; }
.gallery { background:#eef0f3; border:1px solid var(--line); border-radius:18px; }
.gallery img { object-fit:contain; }
.lot-side { min-width:0; }
.lot-side>.price { color:var(--ink); font-size:34px; }
.lot-side .actions { gap:10px; }
.lot-side .actions>.btn,.lot-side .actions>.lot-fav-form { width:100%; }
.lot-side .actions>.lot-fav-form .btn { width:100%; }
.lot-page>.lot-side .seller { padding:18px 0; }
.lot-description { line-height:1.8; white-space:pre-wrap; overflow-wrap:anywhere; }
.warn { background:#fff6e9; border-color:#edd8b9; color:#765128; border-radius:12px; }
.ok { background:#edf6f0; color:#315e42; border-color:#cfdfd4; border-radius:12px; }
.err { background:#fff0ee; color:#a03224; border-radius:10px; padding:10px 14px; }
.auth-form { width:100%; max-width:520px; margin:12px auto 32px; padding:30px; border:1px solid var(--line); border-radius:20px; background:white; box-shadow:var(--shadow); gap:16px; }
.auth-form h1 { font-size:30px; margin:0; }
.auth-form p { margin:0; }
.auth-lead { color:var(--muted); font-size:14px; line-height:1.6; }
.auth-terms { font-size:12px; color:var(--muted); line-height:1.6; }
.auth-form a:not(.btn) { color:#9c3825; }
.auth-form a:not(.btn):hover { text-decoration:underline; }
.auth-divider { display:flex; align-items:center; gap:10px; color:var(--muted); font-size:12px; }
.auth-divider::before,.auth-divider::after { content:''; height:1px; flex:1; background:var(--line); }
.auth-link { text-align:center; font-size:14px; }
.auth-form .actions { position:static; padding:0; background:none; }
.auth-form .actions .btn { width:100%; }
.social-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.social-row .btn { padding:0 12px; font-size:13px; }
.form input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),.form select,.form textarea,.sell-field input,.sell-field select,.sell-field textarea { border:1px solid #cdd2d9; border-radius:10px; background:white; min-height:46px; }
.form label,.sell-field { font-size:14px; }
.form .check-line { font-weight:500; }
.form .check-text { line-height:1.6; }
.empty { border:1px dashed #cfd5dd; border-radius:18px; background:white; padding:28px; gap:20px; }
.empty h2 { margin:0 0 8px; font-size:22px; }
.empty p { max-width:540px; line-height:1.6; }
.cab-head { margin-bottom:22px; }
.cab-head h1 { font-size:30px; }
.cab-kicker,.sell-kicker { color:var(--mandarin); letter-spacing:.08em; font-size:12px; }
.cab-stat { border-radius:14px; background:white; padding:18px 22px; }
.cab-stat b { color:var(--ink); font-size:28px; }
.cab-steps { gap:12px; }
.cab-steps div { background:white; border-color:var(--line); }
.cab-root { background:white; border-radius:12px; }
.cab-kid,.tabs a,.chip { border-radius:10px; min-height:40px; }
.tabs a.on,.cab-kid.on { background:#343c46; border-color:#343c46; }
.sell-card,.sell-aside,.cab-pick,.cab-more { box-shadow:none; border-color:var(--line); border-radius:18px; background:white; }
.sell-drop { border:1px dashed #c4cbd4; border-radius:14px; background:#f8fafb; padding:24px; }
.sell-drop b { font-size:20px; }
.sell-drop span { color:var(--muted); }
.sell-root,.sell-section { border-radius:10px; min-height:44px; }
.sell-root.on,.sell-section.on { border-color:var(--mandarin); background:#faf0ec; color:#8d3222; }
.sell-lead,.sell-hint { line-height:1.65; }
.chat-row { background:white; border-color:var(--line); border-radius:14px; padding:16px; }
.chat-row img { border-radius:10px; object-fit:contain; background:#eceef1; }
.thread { background:#f5f7fa; border-color:var(--line); }
.thread-head,.thread-compose { background:white; }
.thread-head { border-color:var(--line); }
.thread-back { min-width:44px; min-height:44px; display:grid; place-items:center; }
.thread-report { min-height:44px; }
.cat-tile { border-color:var(--line); border-radius:14px; }
.cat-tile strong { background:white!important; color:var(--ink); text-shadow:none; font-size:14px; }
.howto { background:#eef2ef; border:1px solid #dce5df; border-radius:20px; box-shadow:none; }
.footer { border-top:1px solid var(--line); margin-top:40px; padding-top:28px; color:var(--muted); }
.footer .logo { color:var(--ink); }
.footer a:hover { color:var(--mandarin); }
.dock { background:rgba(255,255,255,.98); color:#636b75; border-top:1px solid var(--line); box-shadow:0 -4px 20px #22222205; }
.dock a { color:#636b75; }
.dock a.on { background:#f9eee9; color:#a33926; }
.dock .plus { background:var(--mandarin); color:white; border:3px solid white; box-shadow:none; }
.desk-top { background:white; border-bottom:1px solid var(--line); color:var(--ink); }
.desk-top-inner { flex-wrap:wrap; padding:12px 0; gap:12px; }
.desk-nav { flex-wrap:wrap; }
.desk-nav a { min-height:42px; display:inline-flex; align-items:center; border-radius:10px; }
.desk-nav a.on { background:#343c46; color:white; }
.review { gap:20px; padding:20px; border-radius:18px; }
.review>* { min-width:0; }
.review-text,.desk-log,.desk-who,.review .meta { overflow-wrap:anywhere; }
.review-act .btn { white-space:normal; height:auto; padding:10px 14px; }
.desk-main table { width:100%; }
@media (max-width:1100px) { .top-inner { grid-template-columns:auto auto minmax(0,1fr) auto; gap:8px; }.city-form input { width:160px; }.grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }.market-copy { padding:24px; }.market-intro h1 { font-size:32px; }.review { grid-template-columns:1fr; } }
@media (max-width:900px) {
 body .wrap { width:calc(100% - 24px); }
 .market-intro { height:auto; } .market-art { width:43.4783%; }
 .desk-top-inner { display:flex; flex-wrap:wrap; gap:12px; }
 .desk-top-inner>.logo { flex:1; }
 .desk-nav { order:3; flex:0 0 100%; flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px; }
 .desk-nav a { flex-shrink:0; }
 .top-inner,html.is-pwa .top-inner { min-height:64px; padding:10px 0; gap:10px; }
 .city-form input { width:100%; }
 .market-intro { grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); }
 .market-intro h1 { font-size:28px; }
 .market-actions { margin-top:16px; gap:4px 14px; }
 .grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .lot-title { font-size:14px; }
 .lot .price { font-size:19px; }
 .lot-body { padding:11px; }
 .lot-fav { width:38px; height:38px; }
 .cab-head { align-items:flex-start; gap:16px; flex-wrap:wrap; }
 .cab-steps { grid-template-columns:1fr; }
 .desk-nav { width:100%; }
 .desk-top-inner { display:flex; }
 .desk-who { flex-wrap:wrap; font-size:13px; }
}
@media (max-width:600px) {
 .page { padding-top:10px; }
 h2 { font-size:21px; }
 .section { margin-top:16px; }
 .market-intro { display:block; min-height:0; border-radius:18px; }
 .market-copy { padding:16px; }
 .market-eyebrow { font-size:10px; margin-bottom:10px; }
 .market-intro h1 { font-size:24px; max-width:340px; margin-bottom:10px; }
 .market-intro p { font-size:14px; line-height:1.6; }
 .market-actions { margin-top:10px; }
 .market-browse { font-size:12px; }
 .market-art { display:none; }
 .how-fold>summary { font-size:12px; line-height:1.6; }
 .home-doors .door { flex-direction:column; justify-content:flex-start; height:90px; min-height:90px; border-radius:12px; }
 .home-doors .door img { order:0; width:100%; height:58px; }
 .home-doors .door span { flex:none; font-size:11px; padding:6px 4px; text-align:center; }
 .home-doors .door-all { height:40px; min-height:40px; justify-content:center; }
 .home-doors .door-all span { font-size:12px; }
 .lot-photo { aspect-ratio:1; }
 .lot .meta { font-size:11px; }
 .empty { flex-direction:column; align-items:flex-start; padding:22px; }
 .auth-form { padding:22px 18px; margin-top:0; }
 .auth-form h1,.cab-head h1 { font-size:27px; }
 .social-row { gap:8px; }
 .social-row .btn { font-size:12px; padding:0 8px; }
 .cab-actions .btn { font-size:12px; padding:0 12px; }
 .sell-card { padding:18px; }
 .sell-drop { padding:20px 12px; }
 .sell-drop-actions { flex-wrap:wrap; }
 .sell-actions { gap:6px; }
 .sell-actions .btn { font-size:12px; padding:0 8px; white-space:normal; }
 .review { padding:14px; }
 .desk-nav { gap:6px; }
 .desk-nav a { font-size:12px; padding:8px 10px; }
 .thread-head { gap:6px; }
 .thread-lot span { font-size:11px; }
 .thread-who b { font-size:13px; }
 .footer { margin-top:28px; }
}
@media (prefers-reduced-motion:reduce) { .lot,.door { transition:none; } }
.photo-thumb { width:72px; height:72px; padding:0; border:2px solid transparent; background:#eef0f3; border-radius:10px; overflow:hidden; cursor:pointer; flex-shrink:0; }
.thumbs .photo-thumb img { width:100%; height:100%; object-fit:contain; border:0; border-radius:0; }
.photo-thumb[aria-pressed=true] { border-color:var(--mandarin); }
.pw-toggle { width:44px; height:44px; right:2px; }
/* Keep the password text and reveal action inside one full-width field. */
.form.auth-form .pw input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]) { width:100%; min-width:0; padding-right:52px; }
.sell-file { position:absolute; width:1px; height:1px; padding:0; opacity:0; overflow:hidden; }
@media (max-width:600px) { .lot-side .actions { display:flex!important; }.lot-side>.price { display:block!important; font-size:28px; }.lot-page { padding-bottom:20px; }.lot-page>.lot-side .seller { margin-bottom:16px; } }
/* Moderator PWA: short paths to work, persistent navigation, readable actions. */
.mod-dock { display:none; }
.mod-connectivity,.mod-updates { padding:12px 16px; border-radius:12px; margin-bottom:14px; font-size:14px; }
.mod-connectivity { background:#fff1d9; color:#74501d; }
.mod-updates { background:#eaf1ff; color:#304970; }
.mod-updates a { text-decoration:underline; }
.mod-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:24px 0; }
.mod-metrics>a,.mod-metrics>div { padding:20px; background:white; border:1px solid var(--line); border-radius:16px; }
.mod-metrics b { display:block; font-size:28px; }
.mod-metrics span { color:var(--muted); font-size:13px; }
.mod-channel { display:grid; grid-template-columns:120px 1fr; gap:8px; padding:18px 0; border-bottom:1px solid var(--line); }
.mod-channel small { grid-column:2; color:var(--muted); }
.is-desk button:disabled { opacity:.5; cursor:not-allowed; }
@media (max-width:900px) {
 .is-desk { padding-bottom:calc(78px + env(safe-area-inset-bottom,0px)); }
 .desk-top { padding-top:env(safe-area-inset-top,0px); }
 .desk-main { width:calc(100% - 24px); margin-top:16px; }
 .mod-dock { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); position:fixed; inset:auto 0 0; z-index:70; gap:4px; background:#fff; border-top:1px solid var(--line); padding:8px 6px calc(8px + env(safe-area-inset-bottom,0px)); }
 .mod-dock a { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:48px; border-radius:10px; font-size:11px; gap:2px; }
 .mod-dock a[aria-current=page] { background:#eef1f5; color:#252e3a; font-weight:800; }
 .mod-dock b { font-size:14px; }
 .mod-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
 .mod-metrics>a,.mod-metrics>div { padding:14px; }
 .review-form>.actions { position:sticky!important; bottom:calc(74px + env(safe-area-inset-bottom,0px))!important; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); background:white; padding:10px 0; z-index:50; }
 .review-form>.actions .btn { min-height:48px; font-size:12px; padding:8px; }
 .is-desk .desk-page { overflow-x:auto; }
 .mod-channel { grid-template-columns:1fr; }
 .mod-channel small { grid-column:1; }
}

@media (min-width:1500px) { .grid { grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:18px; } .market-intro h1 { max-width:none; } }
@media (max-width:600px) { .home-doors .door-grid { gap:8px; } .how-fold { margin-top:4px; } body.has-mobile-dock .page { padding-bottom:16px; } body.has-mobile-dock .footer { margin-top:16px; padding-top:18px; padding-bottom:18px; } }
