:root{
  --pf-bg:#f5f6f4;--pf-panel:rgba(255,255,255,.96);--pf-text:#171817;
  --pf-muted:#6a6f6a;--pf-border:#dfe3dd;--pf-offer:#2f9e5b;--pf-wanted:#d84a4a;
  --pf-shadow:0 10px 32px rgba(0,0,0,.13)
}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--pf-text);background:var(--pf-bg)}
button,input{font:inherit}
.pf-app{position:relative;width:100%;height:100dvh;overflow:hidden}
.pf-map{position:absolute;inset:0;z-index:1}
.pf-topbar{position:absolute;z-index:500;top:max(12px,env(safe-area-inset-top));left:12px;right:12px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}
.pf-brand,.pf-lang-btn,.pf-status-card,.pf-manual-card,.pf-filterbar{pointer-events:auto;background:var(--pf-panel);backdrop-filter:blur(10px);border:1px solid var(--pf-border);box-shadow:var(--pf-shadow)}
.pf-brand{display:flex;align-items:center;gap:8px;border-radius:999px;padding:9px 13px;font-weight:760}
.pf-logo{font-size:19px}.pf-lang-btn{border-radius:999px;padding:8px 12px;cursor:pointer}
.pf-status-card{position:absolute;z-index:450;top:66px;left:12px;max-width:min(430px,calc(100vw - 24px));border-radius:12px;padding:10px 12px}
.pf-status-main{font-weight:700;font-size:14px}.pf-status-sub{font-size:12px;color:var(--pf-muted);margin-top:2px}
.pf-manual-card{position:absolute;z-index:470;top:118px;left:12px;right:12px;max-width:520px;border-radius:14px;padding:13px}
.pf-manual-title{font-weight:700;font-size:14px;margin-bottom:8px}.pf-manual-row{display:flex;gap:7px}
.pf-manual-row input{flex:1;min-width:0;border:1px solid var(--pf-border);border-radius:9px;padding:10px}
.pf-manual-row button{border:0;border-radius:9px;background:#1e211e;color:#fff;padding:10px 15px;cursor:pointer}
.pf-manual-hint{font-size:12px;color:var(--pf-muted);margin-top:7px}
.pf-filterbar{position:absolute;z-index:440;left:12px;right:12px;bottom:max(14px,env(safe-area-inset-bottom));width:max-content;max-width:calc(100vw - 24px);display:flex;gap:6px;align-items:center;padding:7px;border-radius:14px;overflow-x:auto}
.pf-pill{white-space:nowrap;border:1px solid var(--pf-border);background:#fff;border-radius:999px;padding:7px 10px;font-size:12px;cursor:pointer}.pf-count{font-size:12px;color:var(--pf-muted);padding:0 6px;white-space:nowrap}
.pf-hidden{display:none!important}
.pf-marker{width:26px;height:26px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:2px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.pf-marker-offer{background:var(--pf-offer)}.pf-marker-wanted{background:var(--pf-wanted)}
.leaflet-popup-content-wrapper{border-radius:12px!important}.leaflet-popup-content{margin:12px!important;min-width:220px}.leaflet-popup-tip-container{margin-top:-1px}
.pf-popup-date{font-size:11px;color:var(--pf-muted);margin-bottom:5px}.pf-popup-main{font-weight:750;line-height:1.35}.pf-popup-contact{font-size:12px;color:var(--pf-muted);margin-top:6px}
.pf-popup-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}.pf-popup-seller{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pf-popup-detail{border:0;background:none;text-decoration:underline;font-weight:650;cursor:pointer;padding:0}
.pf-detail{position:fixed;z-index:1000;top:max(10px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(620px,calc(100vw - 20px));height:min(64dvh,610px);background:#fff;border:1px solid var(--pf-border);border-radius:18px;box-shadow:0 16px 44px rgba(0,0,0,.22);overflow:hidden}
.pf-detail-close{position:absolute;z-index:2;right:10px;top:10px;width:34px;height:34px;border:0;border-radius:50%;background:rgba(255,255,255,.92);font-size:24px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.pf-detail-image-wrap{height:190px;background:#e7e9e6;overflow:hidden}.pf-detail-image{width:100%;height:100%;object-fit:cover;display:block}.pf-detail-placeholder{height:100%;display:grid;place-items:center;color:#777;font-weight:650}
.pf-detail-scroll{height:calc(100% - 190px);overflow:auto;padding:16px}.pf-detail-topline{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.pf-detail-price{font-size:13px;color:var(--pf-muted);font-weight:800}.pf-detail-actual-price{font-size:13px;color:var(--pf-muted);margin-top:4px}.pf-detail-title{font-size:20px;line-height:1.25;margin:2px 0 0}.pf-fav-btn{border:1px solid var(--pf-border);background:#fff;border-radius:50%;width:40px;height:40px;font-size:24px;cursor:pointer}.pf-detail-summary{line-height:1.55;white-space:pre-wrap}.pf-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.pf-meta-grid>div{background:#f7f8f6;border-radius:10px;padding:10px;min-width:0}.pf-meta-grid span{display:block;font-size:11px;color:var(--pf-muted);margin-bottom:3px}.pf-meta-grid strong{font-size:13px;overflow-wrap:anywhere}.pf-source-link{display:inline-block;color:inherit;font-weight:750;margin:4px 0 16px}.pf-toast{position:fixed;z-index:2000;left:50%;bottom:72px;transform:translateX(-50%);background:#1d1f1d;color:#fff;border-radius:999px;padding:9px 14px;font-size:13px}
@media(max-width:600px){.pf-detail{height:58dvh;width:calc(100vw - 14px);top:max(7px,env(safe-area-inset-top));border-radius:15px}.pf-detail-image-wrap{height:155px}.pf-detail-scroll{height:calc(100% - 155px);padding:14px}.pf-detail-title{font-size:18px}}
@media(min-width:900px){.pf-filterbar{left:50%;right:auto;transform:translateX(-50%)}}

.pf-pill-action{font-weight:720}
.pf-detail-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pf-primary-btn{border:0;border-radius:10px;background:#1d1f1d;color:#fff;padding:10px 14px;font-weight:700;cursor:pointer}
.pf-primary-btn:disabled{opacity:.45;cursor:not-allowed}

.pf-sheet{
  position:fixed;z-index:1300;left:50%;bottom:max(8px,env(safe-area-inset-bottom));
  transform:translateX(-50%);width:min(620px,calc(100vw - 14px));max-height:78dvh;
  background:#fff;border:1px solid var(--pf-border);border-radius:18px;
  box-shadow:0 18px 50px rgba(0,0,0,.25);padding:16px;overflow:auto
}
.pf-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:10px;position:sticky;top:-16px;background:#fff;padding:12px 0 10px;z-index:2}
.pf-sheet-head h2{margin:0;font-size:20px}
.pf-sheet-close{width:34px;height:34px;border:0;border-radius:50%;background:#f1f2ef;font-size:24px;cursor:pointer}
.pf-form{display:grid;gap:8px}
.pf-form label{font-size:12px;color:var(--pf-muted);font-weight:700;margin-top:3px}
.pf-form input,.pf-form textarea,.pf-form select,.pf-inline-row input,.pf-chat-compose input{
  width:100%;border:1px solid var(--pf-border);border-radius:10px;padding:10px 11px;background:#fff;color:var(--pf-text)
}
.pf-form textarea{resize:vertical;min-height:90px}
.pf-form-note{font-size:12px;color:var(--pf-muted);line-height:1.45}
.pf-identity-box{background:#f7f8f6;border-radius:12px;padding:10px;margin-bottom:6px}
.pf-inline-row{display:flex;gap:8px;align-items:center}
.pf-inline-row input{flex:1;min-width:0}

.pf-sheet-list{display:grid;gap:9px}
.pf-list-card{border:1px solid var(--pf-border);border-radius:12px;padding:11px;background:#fafbf9;cursor:pointer}
.pf-list-card-title{font-weight:750;line-height:1.3}
.pf-list-card-meta{font-size:12px;color:var(--pf-muted);margin-top:4px}
.pf-empty{font-size:13px;color:var(--pf-muted);padding:16px 4px;text-align:center}

.pf-chat-title{font-weight:800;margin:4px 0 10px}
.pf-back-btn{border:0;background:none;padding:2px 0 8px;font-weight:700;cursor:pointer}
.pf-chat-messages{display:flex;flex-direction:column;gap:8px;min-height:220px;max-height:45dvh;overflow:auto;padding:6px 1px 10px}
.pf-msg{max-width:82%;padding:9px 11px;border-radius:12px;background:#f0f1ef;align-self:flex-start}
.pf-msg-own{align-self:flex-end;background:#e7f5ec}
.pf-msg-name{font-size:10px;color:var(--pf-muted);margin-bottom:3px}
.pf-msg-time{font-size:10px;color:var(--pf-muted);margin-top:4px}
.pf-chat-compose{display:flex;gap:8px;position:sticky;bottom:-16px;background:#fff;padding:10px 0 2px}
.pf-chat-compose input{flex:1;min-width:0}

@media(max-width:600px){
  .pf-sheet{max-height:82dvh;border-radius:16px}
  .pf-filterbar{max-width:calc(100vw - 18px);left:9px;right:9px}
}

/* V1.4 anti-abuse / feedback UI */
.pf-top-actions{display:flex;gap:6px;align-items:center}
.pf-secondary-btn{border:1px solid var(--pf-border);border-radius:10px;background:#fff;color:var(--pf-text);padding:10px 14px;font-weight:700;cursor:pointer}
.pf-honeypot{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
.pf-moderation-note{font-size:12px;color:var(--pf-muted);line-height:1.4}

/* V1.5 visited markers + two-image detail carousel */
:root{
  --pf-offer-visited:#91cfa7;
  --pf-wanted-visited:#efa0a0;
}
.pf-marker-offer-visited{background:var(--pf-offer-visited)}
.pf-marker-wanted-visited{background:var(--pf-wanted-visited)}
.pf-detail-image-wrap{position:relative}
.pf-image-nav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:34px;height:42px;border:0;border-radius:10px;background:rgba(255,255,255,.86);
  box-shadow:0 2px 8px rgba(0,0,0,.18);font-size:28px;line-height:1;cursor:pointer
}
.pf-image-prev{left:9px}.pf-image-next{right:9px}
.pf-image-dots{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);display:flex;gap:5px;z-index:3}
.pf-image-dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.6);box-shadow:0 1px 4px rgba(0,0,0,.25)}
.pf-image-dot-active{background:#fff;transform:scale(1.18)}


.pf-top-link{
  text-decoration:none;
  display:inline-flex;
  align-items:center;
}
.pf-account-row{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  padding:10px 0;
  border-bottom:1px solid var(--pf-border);
  margin-bottom:10px;
}
.pf-consent{
  position:fixed;
  z-index:1450;
  left:50%;
  bottom:max(76px,calc(env(safe-area-inset-bottom) + 76px));
  transform:translateX(-50%);
  width:min(620px,calc(100vw - 18px));
  background:#fff;
  border:1px solid var(--pf-border);
  border-radius:14px;
  box-shadow:0 12px 34px rgba(0,0,0,.22);
  padding:12px 14px;
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:space-between;
}
.pf-consent-text{
  display:flex;
  flex-direction:column;
  gap:3px;
  font-size:12px;
  line-height:1.35;
}
.pf-consent-text a{color:inherit;text-decoration:underline}
.pf-consent-actions{
  display:flex;
  gap:7px;
  flex-shrink:0;
}
@media(max-width:620px){
  .pf-consent{align-items:stretch;flex-direction:column}
  .pf-consent-actions{justify-content:flex-end}
  .pf-top-actions{gap:3px}
  .pf-top-actions .pf-lang-btn{padding-left:7px;padding-right:7px}
}


.pf-auth-tabs{
  display:flex;
  gap:6px;
  margin-bottom:14px;
  border-bottom:1px solid var(--pf-border);
}
.pf-auth-tab{
  border:0;
  background:transparent;
  padding:8px 12px;
  cursor:pointer;
  font-weight:700;
  color:var(--pf-muted);
  border-bottom:2px solid transparent;
}
.pf-auth-tab-active{
  color:var(--pf-text);
  border-bottom-color:var(--pf-text);
}
.pf-link-btn{
  border:0;
  background:transparent;
  padding:6px 0;
  text-align:left;
  color:var(--pf-muted);
  text-decoration:underline;
  cursor:pointer;
}


/* Account UX */
.pf-account-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:12px 0;
}
.pf-account-actions .pf-secondary-btn{flex:1 1 140px}
.pf-account-logout{width:100%;margin-top:14px}
#editNicknameBox,#changePasswordBox{
  margin:12px 0;
  padding:12px;
  border:1px solid var(--pf-border);
  border-radius:12px;
  background:#fafbf9;
}
.pf-auth-notice-success{
  margin-top:12px;
  padding:11px 12px;
  border-radius:10px;
  background:#eef8f1;
  color:#235c35;
  font-weight:700;
}
.pf-auth-notice-error{
  margin-top:12px;
  padding:11px 12px;
  border-radius:10px;
  background:#fff1f1;
  color:#8a2525;
  font-weight:700;
}
