:root{--green:#0a7f55;--green2:#e6f5ee;--ink:#18201c;--muted:#6c756f;--line:#dde3df;--bg:#f6f8f7;--orange:#ef9c16;--red:#d64545;--gray:#7d8681;--shadow:0 8px 24px rgba(10,40,25,.10)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.topbar{height:64px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:28px;padding:0 20px;position:sticky;top:0;z-index:1000}.brand{display:flex;align-items:center;gap:8px;font-weight:800;font-size:22px}.brand-home{border:0;background:transparent;padding:0;color:inherit;cursor:pointer;text-align:left}.brand-home:hover{opacity:.88}.brand-home:focus-visible{outline:3px solid rgba(10,127,85,.25);outline-offset:4px;border-radius:8px}.brand-mark{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff}nav{display:flex;gap:6px;flex:1}.nav-btn,.ghost{border:1px solid transparent;background:transparent;padding:9px 12px;border-radius:10px;cursor:pointer}.nav-btn.active{color:var(--green);background:var(--green2);font-weight:700}.ghost{border-color:var(--line);background:#fff}.filters{background:#fff;border-bottom:1px solid var(--line);padding:10px 16px;display:flex;gap:8px;flex-wrap:wrap;position:sticky;top:64px;z-index:900}.filters input,.filters select{border:1px solid var(--line);border-radius:10px;padding:9px 11px;background:#fff}.filters #searchInput{min-width:250px;flex:1}.layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;height:calc(100vh - 119px)}.map-wrap{position:relative;min-height:400px}#map{height:100%;width:100%}.sidebar{background:#fff;border-left:1px solid var(--line);overflow:auto}.sidebar-head{position:sticky;top:0;background:#fff;padding:12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);z-index:5}.sidebar-head select{border:1px solid var(--line);border-radius:9px;padding:7px}.listings{padding:8px}.card{display:grid;grid-template-columns:116px 1fr;gap:10px;padding:10px;border:1px solid var(--line);border-radius:14px;margin-bottom:8px;background:#fff;cursor:pointer}.card:hover{box-shadow:var(--shadow)}.thumb{width:116px;height:90px;border-radius:10px;object-fit:cover;background:#eef1ef}.thumb.placeholder{display:grid;place-items:center;color:var(--muted);font-size:12px}.card h3{margin:0 0 3px;font-size:16px}.meta{font-size:12px;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap}.price{font-size:18px;font-weight:800;color:var(--green);margin:4px 0}.status{display:inline-flex;padding:3px 8px;border-radius:999px;font-size:12px;background:var(--green2);color:var(--green)}.favorite{float:right;background:none;border:0;font-size:20px;cursor:pointer}.legend{position:absolute;left:14px;bottom:14px;background:#fff;padding:10px 12px;border-radius:12px;box-shadow:var(--shadow);display:grid;gap:5px;font-size:12px;z-index:500}.dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:6px}.green{background:var(--green)}.orange{background:var(--orange)}.gray{background:var(--gray)}.red{background:var(--red)}.fab{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:600;background:var(--green);color:#fff;border:0;border-radius:999px;padding:14px 24px;font-weight:800;box-shadow:var(--shadow);cursor:pointer}.panel{padding:24px;max-width:1100px;margin:auto}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.steps article{background:#fff;padding:18px;border-radius:16px;border:1px solid var(--line)}.steps b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff}dialog{border:0;border-radius:18px;box-shadow:0 24px 80px rgba(0,0,0,.25);width:min(620px,94vw);padding:0}dialog::backdrop{background:rgba(0,0,0,.45)}#addForm{padding:20px}.dialog-head{display:flex;align-items:center;justify-content:space-between}.icon{background:none;border:0;font-size:20px;cursor:pointer}.hint{color:var(--muted);font-size:12px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{display:grid;gap:6px;font-weight:650;font-size:13px;margin-top:12px}label input,label select,label textarea{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff}.actions-row,.dialog-actions{display:flex;gap:10px;align-items:center;margin-top:12px}.dialog-actions{justify-content:flex-end}.primary{background:var(--green);color:#fff;border:0;border-radius:10px;padding:10px 16px;font-weight:800;cursor:pointer}.preview img{width:100%;max-height:260px;object-fit:cover;border-radius:12px}.detail{padding:0 0 18px}.detail-cover{width:100%;height:260px;object-fit:cover;background:#eef1ef}.detail-body{padding:18px}.detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.detail-actions button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 10px;cursor:pointer}.detail-actions button.good{border-color:#8bc7ad;background:#eef9f3}.detail-actions button.bad{border-color:#e6aaaa;background:#fff4f4}.leaflet-div-icon{background:transparent;border:0}.pin{width:32px;height:32px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:grid;place-items:center;color:#fff;border:2px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.25)}.pin span{transform:rotate(45deg);font-size:14px}.pin.green{background:var(--green)}.pin.orange{background:var(--orange)}.pin.red{background:var(--red)}.pin.gray{background:var(--gray)}
@media(max-width:900px){.layout{grid-template-columns:1fr;height:auto}.map-wrap{height:58vh}.sidebar{border-left:0;border-top:1px solid var(--line);max-height:none}.topbar nav{display:none}.steps{grid-template-columns:1fr 1fr}.filters{position:static}.grid2{grid-template-columns:1fr}.legend{display:none}.fab{bottom:14px}.card{grid-template-columns:100px 1fr}.thumb{width:100px;height:82px}}
@media(max-width:560px){.topbar{height:56px;padding:0 12px}.brand{font-size:19px}.filters{padding:8px}.filters>*{flex:1 1 140px}.filters #searchInput{min-width:100%}.map-wrap{height:52vh}.steps{grid-template-columns:1fr}.card{grid-template-columns:88px 1fr}.thumb{width:88px;height:76px}.legend{display:none}}

.multi-preview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:8px}.multi-preview figure{margin:0;position:relative}.multi-preview img{width:100%;height:95px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.multi-preview .primary-tag{position:absolute;left:6px;bottom:6px;background:rgba(10,127,85,.9);color:#fff;font-size:10px;padding:3px 6px;border-radius:999px}.gallery-main{width:100%;height:320px;object-fit:cover;background:#eef1ef}.gallery-thumbs{display:flex;gap:8px;padding:10px 18px 0;overflow:auto}.gallery-thumbs img{width:76px;height:58px;object-fit:cover;border-radius:8px;border:2px solid transparent;cursor:pointer;flex:0 0 auto}.gallery-thumbs img.active{border-color:var(--green)}@media(max-width:560px){.multi-preview{grid-template-columns:repeat(3,minmax(0,1fr))}.multi-preview img{height:80px}.gallery-main{height:240px}}
.danger-btn{border-color:#e6aaaa!important;background:#fff4f4!important;color:#a62525!important}.detail-actions button[data-action="edit"]{border-color:#9bcbb6;background:#f1faf6}.edit-note{font-size:12px;color:var(--muted)}

.community-box{padding:14px;border:1px solid var(--line);border-radius:14px;background:#fafcfb;margin:8px 0 16px}.community-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.community-head span{font-size:12px;color:var(--muted)}.community-votes{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.community-vote{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 10px;cursor:pointer;display:flex;align-items:center;gap:8px}.community-vote b{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#eef1ef;font-size:12px}.community-vote.active{border-color:#75b999;background:#edf8f2;color:#087a50;font-weight:700}.community-vote.active b{background:#d8f0e3}.your-vote{font-size:12px;color:var(--muted);margin:8px 0 0}

/* v0.10 — confiança/frescura comunitária */
.purple{background:#7b61a8}.pin.purple{background:#7b61a8}
.trust-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid transparent}
.trust-badge.green{background:#edf8f2;color:#087a50;border-color:#bfe3cf}
.trust-badge.orange{background:#fff7e8;color:#8a5a00;border-color:#eed7a8}
.trust-badge.gray{background:#f2f4f3;color:#5f6c64;border-color:#d9dfdc}
.trust-badge.red{background:#fff0f0;color:#b42318;border-color:#efc1c1}
.trust-badge.purple{background:#f4effb;color:#6941a5;border-color:#d8c9ee}
.trust-row{margin-top:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.trust-note{font-size:12px;color:var(--muted)}
.trust-box{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;margin:12px 0}.trust-box-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.trust-box p{margin:7px 0 0;font-size:12px;color:var(--muted);line-height:1.45}


/* v0.11 — perfil e reputação */
.profile-shell{max-width:820px;margin:0 auto}.profile-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:var(--shadow)}.profile-top{display:flex;align-items:center;gap:16px}.profile-avatar{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font-size:24px;font-weight:800}.profile-name{font-size:24px;font-weight:800}.profile-level{display:inline-flex;margin-top:4px;padding:4px 9px;border-radius:999px;background:var(--green2);color:var(--green);font-size:12px;font-weight:800}.profile-points{margin-left:auto;text-align:right}.profile-points strong{display:block;font-size:28px;color:var(--green)}.profile-progress{height:10px;border-radius:999px;background:#e8ece9;overflow:hidden;margin:16px 0 6px}.profile-progress>span{display:block;height:100%;background:var(--green);border-radius:999px}.profile-next{font-size:12px;color:var(--muted)}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.profile-stat{padding:14px;border:1px solid var(--line);border-radius:14px;background:#fafcfb;text-align:center}.profile-stat strong{display:block;font-size:22px}.profile-stat span{font-size:12px;color:var(--muted)}.profile-edit{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.profile-edit-row{display:flex;gap:10px;align-items:end}.profile-edit-row label{flex:1;margin:0}.profile-msg{min-height:20px;margin-top:8px;font-size:12px}.profile-msg.ok{color:#067647}.profile-msg.error{color:#b42318}@media(max-width:560px){.profile-top{align-items:flex-start;flex-wrap:wrap}.profile-points{margin-left:0;width:100%;text-align:left}.profile-stats{grid-template-columns:1fr}.profile-edit-row{align-items:stretch;flex-direction:column}}


/* v0.12 — autoria pública e nível do sinalizador */
.reporter-box{display:flex;align-items:center;gap:10px;margin:12px 0;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:#fafcfb}.reporter-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font-weight:800;flex:0 0 auto}.reporter-copy{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.reporter-copy strong{font-size:13px}.reporter-label{display:block;width:100%;font-size:11px;color:var(--muted)}.reporter-level{display:inline-flex;padding:3px 7px;border-radius:999px;background:var(--green2);color:var(--green);font-size:11px;font-weight:800}

/* v0.13 — confiança ponderada por reputação */
.weighted-score{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid #e5e9e6;font-size:12px;color:#657069}.weighted-score span{margin-right:2px}.weighted-score b{font-weight:700;color:#26352d;background:#f4f7f5;border:1px solid #e0e7e3;border-radius:999px;padding:4px 7px}

/* v0.15 — sinalização rápida móvel */
.signal-dialog{width:min(640px,96vw)}
.signal-dialog #addForm{padding:18px}
.signal-subtitle{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.4}
.quick-flow{display:grid;gap:12px;margin-top:14px}
.quick-step{border:1px solid var(--line);border-radius:15px;padding:13px;background:#fbfdfc}
.quick-step-head{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px}
.quick-step-head>div{display:grid;gap:2px}
.quick-step-head strong{font-size:14px}
.quick-step-head small{font-size:12px;color:var(--muted);font-weight:500}
.step-number{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--green);color:#fff;font-size:12px;font-weight:800;flex:0 0 auto}
.photo-picker{margin:0;border:1.5px dashed #8cc7ae;border-radius:12px;padding:14px;display:flex;justify-content:center;align-items:center;text-align:center;background:#f2faf6;color:var(--green);font-weight:800;cursor:pointer}
.photo-picker input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.location-status{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:11px;background:#fff;border:1px solid var(--line);font-size:13px;color:#44534b}
.location-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:0 0 auto}
.location-dot.pending{background:var(--orange);box-shadow:0 0 0 4px rgba(235,157,36,.12)}
.location-dot.ok{background:var(--green);box-shadow:0 0 0 4px rgba(10,127,85,.10)}
.location-dot.error{background:var(--red);box-shadow:0 0 0 4px rgba(205,61,61,.10)}
.location-btn{margin-top:8px;width:100%}
.coords-fields{display:none}
.quick-main-fields label{margin-top:0}
.extra-details{margin-top:12px;border:1px solid var(--line);border-radius:13px;background:#fff;overflow:hidden}
.extra-details summary{cursor:pointer;padding:12px 14px;font-size:13px;font-weight:800;list-style:none;display:flex;justify-content:space-between;gap:10px}
.extra-details summary::-webkit-details-marker{display:none}
.extra-details summary span{font-size:11px;font-weight:600;color:var(--muted)}
.extra-fields{padding:0 14px 14px;border-top:1px solid var(--line)}
.signal-actions{position:sticky;bottom:-18px;background:#fff;padding:12px 0 0;margin-top:6px;border-top:1px solid #eef1ef}
.publish-btn{min-width:180px}
.publish-btn:disabled{opacity:.55;cursor:not-allowed}
#addForm.edit-mode .coords-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
#addForm.edit-mode .quick-step-head .step-number{background:#5f6c64}
@media(max-width:560px){
  .signal-dialog{width:100vw;max-width:none;height:100dvh;max-height:100dvh;border-radius:0;margin:0}
  .signal-dialog #addForm{padding:14px 14px calc(14px + env(safe-area-inset-bottom))}
  .signal-dialog .dialog-head{align-items:flex-start;position:sticky;top:0;background:#fff;z-index:4;padding-top:2px;padding-bottom:8px}
  .quick-flow{gap:10px;margin-top:8px}
  .quick-step{padding:11px}
  .photo-picker{padding:16px 12px}
  .signal-actions{bottom:calc(-14px - env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}
  .signal-actions .publish-btn{flex:1;min-width:0}
  .signal-actions .ghost{padding-left:10px;padding-right:10px}
}

/* v0.16 — câmara web dedicada para iPhone/Safari */
.photo-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.camera-btn,.gallery-picker{min-height:52px;border-radius:12px;font-weight:800}
.camera-btn{border:1.5px solid #0f8b5f;background:#0f8b5f;color:white;cursor:pointer}
.gallery-picker{margin:0}
.camera-dialog{width:min(94vw,560px);border:0;border-radius:18px;padding:0;box-shadow:0 24px 80px rgba(0,0,0,.3)}
.camera-shell{padding:16px}
.camera-head{margin-bottom:12px}
.camera-stage{position:relative;background:#111;border-radius:14px;overflow:hidden;aspect-ratio:3/4;display:grid;place-items:center}
#cameraVideo{width:100%;height:100%;object-fit:cover;background:#111}
.camera-loading{position:absolute;inset:0;display:grid;place-items:center;color:white;background:#111;font-weight:700}
.camera-loading.hidden{display:none}
.camera-actions{display:flex;gap:10px;margin-top:12px}
.camera-actions button{flex:1;min-height:48px}
@media(max-width:620px){.photo-actions{grid-template-columns:1fr}.camera-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;border-radius:0}.camera-shell{height:100%;display:flex;flex-direction:column}.camera-stage{flex:1;aspect-ratio:auto;min-height:0}.camera-actions{padding-bottom:max(8px,env(safe-area-inset-bottom))}}

/* v0.17: native iOS camera file input */
.native-camera-label{cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.native-camera-label input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.camera-fallback-note{margin-top:8px;line-height:1.35}

/* v0.18 — validação por proximidade enquanto a app está aberta */
#proximityBtn.active{border-color:#83c6a8;background:#edf8f2;color:#087a50;font-weight:700}
.nearby-prompt{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:2200;width:min(560px,calc(100vw - 24px));background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 46px rgba(0,0,0,.22);padding:14px}
.nearby-prompt-head{display:flex;align-items:flex-start;gap:10px}.nearby-prompt-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--green2);color:var(--green);font-size:20px;flex:0 0 auto}.nearby-prompt-copy{flex:1}.nearby-prompt-copy strong{display:block;font-size:15px}.nearby-prompt-copy p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.4}.nearby-distance{color:var(--green);font-weight:800}.nearby-prompt-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.nearby-prompt-actions button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 11px;cursor:pointer}.nearby-prompt-actions .positive{border-color:#8bc7ad;background:#eef9f3;color:#087a50;font-weight:700}.nearby-prompt-actions .negative{border-color:#e9b7b7;background:#fff5f5;color:#a62525}.nearby-prompt-close{border:0!important;background:transparent!important;font-size:18px;padding:2px 4px!important;color:var(--muted)}
@media(max-width:560px){.nearby-prompt{bottom:max(12px,env(safe-area-inset-bottom));width:calc(100vw - 16px);padding:12px}.nearby-prompt-actions button{flex:1 1 44%}.nearby-prompt-actions button[data-nearby-action="view"]{flex-basis:100%}}


/* v0.20 — duplicado transforma-se em validação comunitária */
.duplicate-dialog{width:min(560px,94vw)}
.duplicate-shell{padding:20px}
.duplicate-preview{margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:14px;background:#f8faf9;display:grid;grid-template-columns:88px 1fr;gap:12px;align-items:center}
.duplicate-preview img{width:88px;height:72px;object-fit:cover;border-radius:10px;background:#eef1ef}
.duplicate-preview .no-photo{width:88px;height:72px;border-radius:10px;background:#eef1ef;display:grid;place-items:center;color:var(--muted);font-size:11px}
.duplicate-preview h3{margin:0 0 3px;font-size:16px}
.duplicate-preview .price{font-size:16px;margin:3px 0}
.duplicate-question{font-weight:800;margin:14px 0 10px}
.duplicate-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.duplicate-actions .primary{grid-column:1/-1;padding:12px}
.duplicate-help{margin:12px 0 0;line-height:1.45}
@media(max-width:620px){.duplicate-dialog{width:94vw}.duplicate-actions{grid-template-columns:1fr}.duplicate-actions .primary{grid-column:auto}.duplicate-preview{grid-template-columns:72px 1fr}.duplicate-preview img,.duplicate-preview .no-photo{width:72px;height:64px}}


/* v0.21 — sugestões de correção comunitárias */
.suggestion-dialog{width:min(620px,94vw)}
.suggestion-dialog form{padding:20px}
.suggestion-dialog label{display:grid;gap:6px;margin-top:12px;font-weight:700;font-size:13px}
.suggestion-dialog input,.suggestion-dialog select,.suggestion-dialog textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;padding:10px 11px;background:#fff;font:inherit}
.suggestion-dialog textarea{resize:vertical}
.suggestion-summary{margin:12px 0;padding:11px 13px;border:1px solid #ead9ad;background:#fff9e9;border-radius:12px;color:#6f5200;font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.suggestion-summary b{color:#4f3b00}
@media(max-width:620px){.suggestion-dialog{width:100vw;max-width:none;height:100dvh;max-height:100dvh;border-radius:0;margin:0}.suggestion-dialog form{padding:14px 14px calc(14px + env(safe-area-inset-bottom));overflow:auto;height:100%;box-sizing:border-box}}


/* v0.23 — favoritos sincronizados com a conta */
.owner-review-box{margin:12px 0 16px;padding:14px;border:1px solid #cfe0d7;background:#f7fbf9;border-radius:14px}
.owner-review-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}
.owner-review-head strong{font-size:15px}.owner-review-head p{margin:3px 0 0;color:var(--muted);font-size:12px}.owner-review-head>span{min-width:28px;height:28px;border-radius:999px;background:#0c8a5b;color:#fff;display:grid;place-items:center;font-weight:800}
.suggestion-review-card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px;margin-top:10px}
.suggestion-review-meta{display:flex;align-items:center;gap:9px;margin-bottom:9px}.mini-avatar{width:34px;height:34px;border-radius:50%;background:#0c8a5b;color:#fff;display:grid;place-items:center;font-weight:800}.suggestion-review-meta div:last-child{display:grid}.suggestion-review-meta small{color:var(--muted);margin-top:2px}
.suggestion-review-card ul{margin:8px 0 10px;padding-left:20px;font-size:13px;line-height:1.55}.suggestion-note{background:#f5f7f6;border-radius:9px;padding:9px 10px;font-size:13px;margin:8px 0}
.suggestion-review-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.suggestion-review-actions button{font-weight:800}.accept-suggestion{border-color:#a9d8c2!important;background:#eaf8f1!important;color:#066b46!important}.reject-suggestion{border-color:#e5c4c1!important;background:#fff4f3!important;color:#a6362d!important}
@media(max-width:620px){.suggestion-review-actions{display:grid;grid-template-columns:1fr 1fr}.suggestion-review-actions button{width:100%}}

/* v0.24 — alertas e pesquisas guardadas */
#createAlertBtn{white-space:nowrap}
.alerts-shell{max-width:900px;margin:0 auto}.alerts-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.alerts-head h2{margin:0 0 4px}.alerts-list{display:grid;gap:12px}.alert-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:var(--shadow)}.alert-card.inactive{opacity:.68}.alert-card-main{display:flex;align-items:center;justify-content:space-between;gap:16px}.alert-card-main h3{margin:0;font-size:17px}.alert-card-main p{margin:5px 0;color:#44534b}.alert-card-main small{color:var(--muted)}.alert-title-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.new-alert-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#eaf8f1;color:#087a50;font-size:11px;font-weight:800}.alert-actions{display:flex;gap:8px;margin-top:13px;padding-top:12px;border-top:1px solid #edf0ee}.danger-lite{color:#a6362d!important;border-color:#e8cac6!important}.empty-alerts{text-align:center;padding:44px 20px;border:1px dashed #cfd8d3;border-radius:16px;background:#fbfcfb;color:var(--muted)}.empty-alerts strong{display:block;color:#26352d;margin:8px 0 4px}.empty-alerts p{margin:0}.empty-alerts-icon{font-size:32px}
@media(max-width:720px){#createAlertBtn{display:none}.alerts-head{flex-direction:column}.alerts-head .primary{width:100%}.alert-card-main{align-items:flex-start;flex-direction:column}.alert-card-main .open-alert{width:100%}.alert-actions button{flex:1}}


/* v0.26 — denúncias privadas/moderação */
.report-dialog{width:min(560px,94vw)}
.report-dialog form{padding:20px}
.report-dialog label{display:grid;gap:6px;margin-top:12px;font-weight:700;font-size:13px}
.report-dialog select,.report-dialog textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;padding:10px 11px;background:#fff;font:inherit}
.report-dialog textarea{resize:vertical}
.report-submit{border:1px solid #e7b3ae;background:#fff2f0;color:#a42d24;border-radius:10px;padding:10px 16px;font-weight:800;cursor:pointer}
.detail-actions button[data-action="report"]{border-color:#e7c5c1;background:#fff8f7;color:#9c342b}
@media(max-width:620px){.report-dialog{width:94vw}.report-dialog form{padding:16px}}


/* v0.27 — painel de moderação */
.moderation-shell{max-width:1180px;margin:0 auto;padding:8px 0 36px}
.moderation-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.moderation-head h2{margin:0 0 4px}
.moderation-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.moderation-tools select{min-width:150px}
.moderation-summary{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 14px}
.moderation-pill{border:1px solid #dce4df;background:#fff;border-radius:999px;padding:6px 10px;font-size:13px;color:#536058}
.moderation-list{display:grid;gap:12px}
.moderation-card{background:#fff;border:1px solid #dce4df;border-radius:14px;padding:16px;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.moderation-card.pending{border-left:4px solid #d99a18}
.moderation-card.resolved{border-left:4px solid #0a7f55}
.moderation-card.dismissed{border-left:4px solid #8b9490}
.moderation-card-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.moderation-card h3{margin:0 0 5px;font-size:17px}
.moderation-meta{font-size:13px;color:#68736c;display:flex;gap:10px;flex-wrap:wrap;margin-top:5px}
.moderation-reason{display:inline-flex;align-items:center;border-radius:999px;background:#f2f5f3;padding:4px 8px;font-size:12px;font-weight:700;color:#465249}
.moderation-details{margin:12px 0 0;padding:10px 12px;background:#f7f9f8;border-radius:10px;color:#35423a;white-space:pre-wrap}
.moderation-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.moderation-actions button{min-height:38px}
.moderation-empty{background:#fff;border:1px dashed #ccd8d1;border-radius:14px;padding:24px;color:#68736c;text-align:center}
.admin-chip{display:inline-flex;align-items:center;gap:5px;background:#edf8f2;color:#087a50;border:1px solid #cfe8db;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700;margin-left:6px}
@media (max-width:720px){.moderation-head{flex-direction:column}.moderation-tools{width:100%}.moderation-tools select{flex:1}.moderation-card-top{flex-direction:column}}

/* v0.28 — visibilidade por moderação */
.trust-badge.dark{background:#29322d;color:#fff}
.pin.dark{background:#29322d;border-color:#fff}
.moderation-card.property-hidden{background:#f6f7f6;border-color:#aeb8b2}
.moderation-visibility{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-weight:700;font-size:12px}
.moderation-visibility.visible-status{background:#e8f5ef;color:#08724c}
.moderation-visibility.hidden-status{background:#e9ecea;color:#37423c}
.warning-btn{background:#8a5a00;color:#fff;border:1px solid #8a5a00;border-radius:9px;padding:8px 12px;font-weight:700;cursor:pointer}
.warning-btn:hover{filter:brightness(.95)}

/* v0.29 — Novidades */
.recent-shell{max-width:1000px;margin:0 auto}.recent-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.recent-head h2{margin:0 0 4px}.recent-head select{border:1px solid var(--line);border-radius:10px;padding:9px 11px;background:#fff}.recent-summary{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.recent-summary span{display:inline-flex;gap:5px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 11px;font-size:12px;color:var(--muted)}.recent-summary b{color:var(--ink)}.recent-card-wrap{position:relative}.recent-card-wrap .card{height:100%;margin:0}.recent-badge{position:absolute;z-index:2;left:9px;top:9px;background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:999px;padding:4px 7px;font-size:10px;font-weight:800;color:var(--green);box-shadow:0 2px 8px rgba(0,0,0,.08)}
@media(max-width:720px){.recent-head{flex-direction:column}.recent-head select{width:100%}.recent-summary{display:grid;grid-template-columns:1fr 1fr}.recent-summary span{justify-content:center}}


/* v0.30 — histórico do imóvel */
.history-dialog{width:min(700px,95vw)}
.history-shell{padding:18px}
.history-head{align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:4px}
.history-head h2{margin:0 0 3px}
.property-history{padding:10px 2px 4px}
.history-empty{padding:28px 12px;text-align:center;color:var(--muted)}
.history-timeline{position:relative;margin:0;padding:0;list-style:none}
.history-timeline:before{content:"";position:absolute;left:17px;top:20px;bottom:20px;width:2px;background:#dce6e0}
.history-event{position:relative;display:grid;grid-template-columns:36px 1fr;gap:12px;padding:9px 0 13px}
.history-icon{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#eef8f3;border:1px solid #cce4d8;z-index:1;font-size:16px}
.history-event.confirm .history-icon{background:#eef8f3;border-color:#b8dccb}
.history-event.warning .history-icon{background:#fff8e8;border-color:#ead5a5}
.history-event.negative .history-icon{background:#fff1f0;border-color:#ebc2bf}
.history-event.neutral .history-icon{background:#f4f6f5;border-color:#dce2df}
.history-event-body{background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 12px}
.history-event-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.history-event-title{font-weight:800;font-size:14px}
.history-event-time{font-size:11px;color:var(--muted);white-space:nowrap}
.history-event-text{font-size:13px;color:#445149;margin-top:5px;line-height:1.45}
.history-event-text ul{margin:6px 0 0;padding-left:18px}
.history-actor{font-size:11px;color:var(--muted);margin-top:7px}
.detail-actions button[data-action="history"]{border-color:#b7d7c7;background:#f2faf6;color:#086745}
@media(max-width:620px){.history-dialog{width:100vw;max-width:none;height:100dvh;max-height:100dvh;border-radius:0;margin:0}.history-shell{padding:14px 14px calc(18px + env(safe-area-inset-bottom));height:100%;overflow:auto}.history-event-top{display:block}.history-event-time{display:block;margin-top:3px}.history-timeline:before{left:16px}.history-event{grid-template-columns:34px 1fr;gap:9px}.history-icon{width:34px;height:34px}}


/* v0.31 — alterações diretas no histórico */
.history-changes{margin:8px 0 0 18px;padding:0;display:grid;gap:6px}
.history-changes li{line-height:1.4}
.history-old{color:#7a6a6a;text-decoration:line-through;text-decoration-thickness:1px}
.history-arrow{display:inline-block;margin:0 5px;color:#758078}
.history-new{color:#12603f;font-weight:700}


/* v0.32 — instalação como app/PWA */
.install-dialog{width:min(560px,94vw)}
.install-shell{padding:20px}
.install-shell h2{margin:0 0 4px}
.install-steps{display:grid;gap:12px;margin:18px 0}
.install-step{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;background:#f7faf8;border:1px solid var(--line);border-radius:12px;padding:12px}
.install-step b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff}
.share-symbol{display:inline-grid;place-items:center;width:24px;height:24px;border:1px solid var(--line);border-radius:7px;background:#fff;font-weight:800}
@media(max-width:620px){.install-dialog{width:94vw}.install-shell{padding:16px}}

/* v0.35 — privacidade das fotografias */
.privacy-photo-note{margin-top:8px;padding:10px 12px;border:1px solid #d9e8df;background:#f6fbf8;border-radius:10px;line-height:1.4}
.photo-privacy-check{display:flex;align-items:flex-start;gap:9px;margin-top:10px;padding:10px 12px;border:1px solid #d9e0dc;border-radius:10px;font-size:13px;line-height:1.35;background:#fff}
.photo-privacy-check input{width:18px;height:18px;flex:0 0 auto;margin-top:0}

.location-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.location-actions .location-btn{width:100%}@media(max-width:620px){.location-actions{grid-template-columns:1fr}}

/* v0.39 — correção de reivindicação/autenticação */
.claim-status-box{margin:14px 0;padding:12px 14px;border:1px solid #d9e5df;border-radius:14px;background:#f8fbf9;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.claim-status-copy{display:flex;align-items:center;gap:10px;min-width:0}
.claim-status-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e8f7ef;color:#087a50;font-weight:800;flex:none}
.claim-status-box strong{display:block}.claim-status-box small{display:block;color:#6b766f;margin-top:2px}
.claim-verified-badge{display:inline-flex;align-items:center;gap:6px;border:1px solid #b9dfcd;background:#ecfbf3;color:#087a50;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}
.claim-pending-badge{display:inline-flex;align-items:center;gap:6px;border:1px solid #f0d7a0;background:#fff8e8;color:#8a5a00;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}
.claim-dialog form{min-width:min(520px,92vw)}
.claim-privacy-note{margin-top:12px;padding:10px 12px;border-radius:12px;background:#f5f7f6;color:#55625b;font-size:13px;line-height:1.45}
.claims-admin-block{margin-top:28px;padding-top:22px;border-top:1px solid #dfe6e2}
.claims-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.claims-admin-head h3{margin:0 0 4px}
.claim-card{border:1px solid #dce5e0;border-radius:14px;padding:14px;background:#fff;margin-bottom:10px}.claim-card-top{display:flex;justify-content:space-between;gap:12px}.claim-card h4{margin:0 0 4px}.claim-card .claim-type{font-size:12px;font-weight:800;padding:5px 8px;border-radius:999px;background:#eef7f2;color:#0a7650;white-space:nowrap}.claim-card-meta{display:flex;gap:10px;flex-wrap:wrap;color:#66736b;font-size:12px;margin:10px 0}.claim-card-actions{display:flex;gap:8px;flex-wrap:wrap}.claim-card .approve-claim{background:#087a50;color:#fff;border-color:#087a50}.claim-card .reject-claim{border-color:#e1b5b0;color:#a8382d;background:#fff}
@media(max-width:640px){.claim-status-box{align-items:flex-start}.claim-status-box button{width:100%}.claims-admin-head{flex-direction:column}.claim-card-top{flex-direction:column}}

/* v0.41 — logout visível e Como funciona atualizado */
.logout-btn{border-color:#efd0d0!important;color:#a33;background:#fffafa!important}
.logout-btn:hover{background:#fff0f0!important}
.about-shell{max-width:1120px;margin:0 auto}.about-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:22px}.about-hero h2{margin:0 0 8px}.about-lead{margin:0;max-width:760px;color:var(--muted);font-size:15px;line-height:1.55}.about-tag{white-space:nowrap;background:var(--green2);color:var(--green);font-weight:750;font-size:12px;padding:8px 11px;border-radius:999px}.about-steps{margin-bottom:18px}.about-steps article p{color:var(--muted);line-height:1.45;margin-bottom:0}.about-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}.about-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}.about-card h3{margin:0 0 8px}.about-card p{color:var(--muted);line-height:1.5;font-size:13px}.about-note{margin-top:16px;border:1px solid #d6e8df;background:#f4fbf7;border-radius:14px;padding:14px 16px;color:#375146;font-size:13px;line-height:1.5}
@media(max-width:900px){.about-grid{grid-template-columns:1fr}.about-hero{display:block}.about-tag{display:inline-block;margin-top:12px}}
@media(max-width:560px){.account-area{gap:5px}.account-area #syncPill,.account-area #accountBadge{display:none}.account-area .ghost{padding:7px 8px;font-size:12px}.brand span:nth-child(2){max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.about-hero{margin-bottom:14px}.about-lead{font-size:14px}.about-note{font-size:12px}}


/* v0.44 — marcação instantânea */
.fab:disabled{opacity:.7;cursor:wait}
.draft-pin{width:32px;height:32px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:grid;place-items:center;background:#2879d0;color:white;border:2px solid #fff;box-shadow:0 2px 9px rgba(0,0,0,.3)}
.draft-pin span{transform:rotate(45deg);font-size:14px}
.draft-count{position:absolute;left:50%;bottom:72px;transform:translateX(-50%);z-index:601;border:1px solid #b9d5f0;background:#eef6ff;color:#155f9f;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800;box-shadow:0 3px 12px rgba(0,0,0,.08)}
.quick-mark-toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,18px);opacity:0;pointer-events:none;transition:.2s ease;z-index:2600;width:min(620px,calc(100vw - 24px));background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 55px rgba(0,0,0,.24);padding:14px;display:flex;align-items:center;gap:12px}
.quick-mark-toast.show{opacity:1;transform:translate(-50%,0);pointer-events:auto}.quick-mark-toast>div{flex:1}.quick-mark-toast strong{display:block;color:var(--green)}.quick-mark-toast p{margin:3px 0 0;color:var(--muted);font-size:12px}.quick-mark-toast button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 10px;cursor:pointer}.quick-mark-toast button[data-complete-draft]{background:var(--green);border-color:var(--green);color:#fff;font-weight:800}
@media(max-width:560px){.draft-count{bottom:68px}.quick-mark-toast{bottom:max(10px,env(safe-area-inset-bottom));align-items:flex-start;flex-wrap:wrap}.quick-mark-toast>div{flex-basis:100%}.quick-mark-toast button[data-complete-draft]{flex:1}}


/* v0.44 — fechar ficha do imóvel mais visível e intuitivo */
.detail-topbar{display:flex;justify-content:flex-end;margin:-4px 0 10px}.detail-close{display:inline-flex;align-items:center;gap:7px;border:1px solid #cfd7d1;background:#fff;color:#17352a;border-radius:999px;padding:10px 14px;font-size:15px;font-weight:800;line-height:1;box-shadow:0 8px 20px rgba(0,0,0,.08)}.detail-close span{display:inline-block}.detail-close:hover{background:#f6faf8}.detail-close:focus-visible{outline:3px solid rgba(10,127,85,.22);outline-offset:2px}.detail-close{position:sticky;top:8px;z-index:3}@media (max-width:680px){.detail-body{padding:14px}.detail-topbar{margin:-2px 0 12px}.detail-close{width:100%;justify-content:center;padding:12px 16px;font-size:16px}}


/* v0.44 — gesto de fechar ficha e backdrop clicável */
#detailDialog{cursor:default}
#detailDialog::backdrop{cursor:pointer}
.detail-swipe-zone{display:none}
@media(max-width:680px){
  #detailDialog{width:min(620px,96vw);max-height:94dvh;margin:auto auto max(8px,env(safe-area-inset-bottom));border-radius:22px 22px 14px 14px;overflow:auto;overscroll-behavior:contain}
  .detail-swipe-zone{display:flex;height:34px;align-items:center;justify-content:center;background:#fff;position:sticky;top:0;z-index:6;touch-action:none}
  .detail-swipe-zone span{width:46px;height:5px;border-radius:999px;background:#bcc6c0}
  .detail-topbar{position:relative}
}


/* v0.51 — gerir marcações pendentes sem entrar no formulário */
.quick-mark-toast button[data-cancel-draft]{border-color:#e2b4b4;background:#fff7f7;color:#a62525;font-weight:750}
.draft-action-dialog{width:min(520px,94vw);padding:0}
.draft-action-sheet{padding:20px}
.draft-action-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.draft-action-head h2{margin:0;font-size:21px}
.draft-action-head .hint{margin:5px 0 0}
.draft-action-close{min-width:42px;min-height:42px;border:1px solid var(--line);border-radius:50%;background:#fff}
.draft-action-copy{margin:16px 0;color:var(--muted);font-size:14px;line-height:1.5}
.draft-action-buttons{display:grid;gap:9px}
.draft-action-buttons button{width:100%;min-height:46px;border-radius:11px;cursor:pointer}
.draft-delete-btn{border:1px solid #e2b4b4;background:#fff5f5;color:#a62525;font-weight:800}
@media(max-width:680px){
  .draft-action-dialog{width:calc(100vw - 18px);margin:auto 9px 9px;border-radius:18px}
  .draft-action-dialog::backdrop{background:rgba(0,0,0,.46)}
  .draft-action-sheet{padding:18px 16px max(18px,env(safe-area-inset-bottom))}
  .draft-action-buttons button{min-height:50px;font-size:15px}
  .quick-mark-toast button[data-cancel-draft],.quick-mark-toast button[data-complete-draft]{flex:1}
}


/* v0.51 — área de marcações por completar e duplicados na marcação rápida */
.draft-count{padding:8px 13px;font-size:13px;cursor:pointer;transition:.16s ease}.draft-count:hover{transform:translateX(-50%) translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,.12)}
.draft-list-dialog{width:min(760px,94vw);padding:0}.draft-list-sheet{padding:20px}.draft-list-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.draft-list-head h2{margin:0 0 4px}.draft-list-close{min-width:42px;min-height:42px;border:1px solid var(--line);border-radius:50%;background:#fff}.draft-list-items{display:grid;gap:10px;max-height:min(62vh,620px);overflow:auto}.draft-list-card{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid #d8e4ee;background:#f8fbff;border-radius:14px;padding:12px}.draft-list-num{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#2879d0;color:#fff;font-weight:850}.draft-list-copy{display:grid;gap:3px;min-width:0}.draft-list-copy strong{font-size:14px}.draft-list-copy span{font-size:12px;color:var(--muted)}.draft-list-actions{display:flex;gap:7px;align-items:center}.draft-list-actions button{min-height:38px}.draft-list-delete{border:1px solid #e2b4b4;background:#fff7f7;color:#a62525;border-radius:10px;min-width:40px;cursor:pointer}.draft-list-empty{text-align:center;padding:28px 16px;color:var(--muted)}.draft-list-empty strong{display:block;color:var(--ink);margin-bottom:4px}
@media(max-width:680px){.draft-count{bottom:70px;max-width:calc(100vw - 28px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.draft-list-dialog{width:calc(100vw - 18px);margin:auto 9px 9px;border-radius:18px}.draft-list-sheet{padding:18px 14px max(18px,env(safe-area-inset-bottom))}.draft-list-card{grid-template-columns:36px 1fr;align-items:start}.draft-list-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 44px}.draft-list-actions button{min-height:46px}.draft-list-delete{min-height:46px}}


/* v0.51 — estados do mapa mais fáceis de reconhecer */
.blue{background:#2879d0}.legend-draft{border-top:1px solid var(--line);padding-top:5px;margin-top:2px}
.pin,.draft-pin{width:36px;height:36px;border-width:3px;box-shadow:0 3px 10px rgba(0,0,0,.30)}
.pin span,.draft-pin span{font-size:16px;font-weight:900;line-height:1}
.pin.pin-confirmed{box-shadow:0 3px 10px rgba(0,0,0,.28),0 0 0 3px rgba(10,127,85,.14)}
.pin.pin-unavailable{box-shadow:0 3px 10px rgba(0,0,0,.28),0 0 0 3px rgba(196,56,56,.12)}
.pin.pin-contested{box-shadow:0 3px 10px rgba(0,0,0,.28),0 0 0 3px rgba(123,97,168,.13)}
.mobile-map-key{display:none}
@media(max-width:900px){
  .pin,.draft-pin{width:40px;height:40px}
  .pin span,.draft-pin span{font-size:18px}
  .mobile-map-key{position:absolute;left:10px;top:10px;z-index:550;display:flex;gap:5px;background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:999px;padding:5px 7px;box-shadow:0 3px 12px rgba(0,0,0,.12);backdrop-filter:blur(5px)}
  .mobile-map-key .key-item{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:13px;font-weight:900;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.18)}
}


/* v0.51 — estado do imóvel visível nos cartões da lista */
.card-state-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:8px}.card-state-row .trust-row{margin-top:0}.availability-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800;border:1px solid transparent;white-space:nowrap}.availability-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.availability-badge.for-sale{background:#edf8f2;color:#087a50;border-color:#bfe3cf}.availability-badge.sold{background:#fff0f0;color:#b42318;border-color:#efc1c1}.availability-badge.removed{background:#f2f4f3;color:#5f6c64;border-color:#d9dfdc}@media(max-width:680px){.card-state-row{gap:6px}.availability-badge,.card-state-row .trust-badge{font-size:11px;padding:5px 8px}}

/* v0.51 — filtro de confiança */
#trustFilter{min-width:190px}
@media(max-width:760px){#trustFilter{min-width:0;max-width:100%}}


/* v0.51 — fechar ficha sempre presente, mesmo ao fazer scroll ou durante o gesto */
#detailDialog .detail{position:relative}
.detail-sticky-controls{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:flex-end;min-height:58px;padding:9px 12px;background:linear-gradient(#fff 0%,rgba(255,255,255,.96) 72%,rgba(255,255,255,0) 100%);pointer-events:none}
.detail-sticky-controls .detail-close-always{pointer-events:auto;margin-left:auto;background:#fff;border:1px solid #c7d1cb;box-shadow:0 7px 22px rgba(0,0,0,.16)}
.detail-sticky-controls .detail-swipe-zone{pointer-events:auto}
@media(max-width:680px){
  .detail-sticky-controls{height:54px;min-height:54px;padding:5px 8px 7px;justify-content:center;background:rgba(255,255,255,.97);border-bottom:1px solid rgba(221,227,223,.75)}
  .detail-sticky-controls .detail-swipe-zone{display:flex;position:absolute;inset:0 58px 0 0;height:54px;background:transparent;z-index:1}
  .detail-sticky-controls .detail-swipe-zone span{position:absolute;left:50%;top:9px;transform:translateX(-50%);width:46px;height:5px;border-radius:999px;background:#aeb9b2}
  .detail-sticky-controls .detail-close-always{position:absolute;right:8px;top:7px;z-index:2;width:42px;height:42px;min-width:42px;padding:0;border-radius:50%;justify-content:center;font-size:20px}
  .detail-sticky-controls .detail-close-always span{display:none}
  .detail-body{padding-top:12px}
}

/* v0.51 — redes sociais oficiais */
.social-follow{margin-top:18px;padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:22px}
.social-follow-copy{max-width:540px}.social-follow-copy h3{margin:0 0 5px}.social-follow-copy p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.social-links{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.social-link{min-width:105px;display:grid;grid-template-columns:34px auto;grid-template-rows:auto auto;column-gap:8px;align-items:center;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:9px 10px;background:#fff;transition:.16s ease}
.social-link:hover:not(.social-disabled){transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,.09);border-color:#bac8c0}
.social-link>span:not(.social-icon){font-size:12px;font-weight:800;align-self:end}.social-link small{font-size:10px;color:var(--green);align-self:start}
.social-icon{grid-row:1/3;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-weight:900;font-size:20px;border:1px solid #d9dfdc;background:#f6f8f7;position:relative}
.social-disabled{opacity:.55;cursor:default}.social-disabled small{color:var(--muted)}
.social-instagram{border-radius:10px}.social-instagram:before{content:'';position:absolute;width:18px;height:18px;border:2px solid currentColor;border-radius:6px}.social-instagram .ig-lens{position:absolute;width:7px;height:7px;border:2px solid currentColor;border-radius:50%}.social-instagram .ig-dot{position:absolute;width:3px;height:3px;border-radius:50%;background:currentColor;right:8px;top:8px}
.social-facebook{font-family:Arial,sans-serif;font-size:25px;padding-top:4px}.social-tiktok{font-size:23px}.social-linkedin{font-family:Arial,sans-serif;font-size:15px;letter-spacing:-1px}
@media(max-width:760px){.social-follow{align-items:flex-start;flex-direction:column;padding:16px}.social-links{width:100%;display:grid;grid-template-columns:1fr 1fr}.social-link{min-width:0}.social-follow-copy p{font-size:12px}}


/* v0.51 — menu principal no telemóvel */
.mobile-menu-btn{display:none;border:1px solid var(--line);background:#fff;border-radius:12px;min-width:46px;height:42px;padding:0 11px;align-items:center;justify-content:center;gap:7px;font-size:21px;cursor:pointer;color:var(--ink)}
.mobile-menu-label{font-size:13px;font-weight:800}.mobile-nav-overlay{display:none}.mobile-menu-open{overflow:hidden}
@media(max-width:900px){
  .topbar{gap:10px}.topbar>nav{display:none}.mobile-menu-btn{display:inline-flex;margin-left:auto}.topbar .account-area{display:none}
  .mobile-nav-overlay{display:block;position:fixed;inset:0;z-index:5000;pointer-events:none;visibility:hidden}
  .mobile-nav-overlay.open{pointer-events:auto;visibility:visible}
  .mobile-nav-backdrop{position:absolute;inset:0;background:rgba(15,28,22,.42);opacity:0;transition:opacity .18s ease}
  .mobile-nav-overlay.open .mobile-nav-backdrop{opacity:1}
  .mobile-nav-sheet{position:absolute;top:0;right:0;height:100dvh;width:min(88vw,360px);background:#fff;box-shadow:-18px 0 50px rgba(0,0,0,.18);padding:max(18px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom));transform:translateX(104%);transition:transform .22s ease;display:flex;flex-direction:column}
  .mobile-nav-overlay.open .mobile-nav-sheet{transform:translateX(0)}
  .mobile-nav-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 2px 16px;border-bottom:1px solid var(--line)}
  .mobile-nav-head strong{display:block;font-size:18px}.mobile-nav-head span{display:block;margin-top:2px;font-size:12px;color:var(--muted)}
  .mobile-nav-close{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:20px;cursor:pointer}
  .mobile-nav-list{display:grid;gap:7px;padding:14px 0;overflow:auto}
  .mobile-nav-item{display:grid!important;grid-template-columns:38px 1fr;align-items:center;text-align:left;width:100%;padding:12px 13px!important;border:1px solid transparent!important;border-radius:13px!important;background:transparent!important;color:var(--ink)!important}
  .mobile-nav-item>span{font-size:20px;text-align:center}.mobile-nav-item>b{font-size:15px}.mobile-nav-item.active{background:var(--green2)!important;color:var(--green)!important;border-color:#cde6da!important}
  .mobile-nav-footer{margin-top:auto;padding-top:14px;border-top:1px solid var(--line)}
  .mobile-signout{width:100%;border:1px solid #f0c5c5;background:#fff7f7;color:#a62525;border-radius:12px;padding:12px 14px;font-weight:800;cursor:pointer}
}
@media(max-width:560px){.topbar{padding:0 10px}.brand span:nth-child(2){max-width:150px}.mobile-menu-label{display:none}.mobile-menu-btn{width:44px;padding:0}.mobile-nav-sheet{width:min(92vw,350px)}}

/* v0.52 — As minhas contribuições */
.contributions-panel{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 8px 28px rgba(22,52,41,.05)}
.contributions-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}.contributions-head h2{margin:0;font-size:22px}.contributions-head p{margin:4px 0 0;color:var(--muted);font-size:13px}
.contribution-group{border:1px solid var(--line);border-radius:14px;background:#fff;margin-top:10px;overflow:hidden}.contribution-group summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;font-weight:800;background:#fafcfb}.contribution-group summary::-webkit-details-marker{display:none}.contribution-group summary b{min-width:28px;height:28px;border-radius:999px;background:var(--green2);color:var(--green);display:grid;place-items:center;font-size:12px}.contribution-group[open] summary{border-bottom:1px solid var(--line)}
.contribution-list{padding:8px}.contribution-row{display:flex;align-items:center;gap:12px;padding:11px;border-bottom:1px solid #edf1ee}.contribution-row:last-child{border-bottom:0}.contribution-main{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.contribution-main>strong{font-size:14px}.contribution-main>span{font-size:12px;color:var(--muted)}.contribution-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:3px}.contribution-chip,.mini-state{display:inline-flex;align-items:center;width:max-content;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:750;border:1px solid #dce5df;background:#f6f8f7;color:#44534c}.contribution-chip.ok{background:#eef9f3;border-color:#a9d9c2;color:#087a50}.contribution-chip.bad{background:#fff3f3;border-color:#ecc1c1;color:#a62525}.contribution-chip.pending{background:#fff8e9;border-color:#edd39a;color:#8d5c00}.contribution-chip.warn{background:#faf3ff;border-color:#d8bbe8;color:#704087}.contribution-chip.neutral{background:#f5f7f6;color:#5d6963}.mini-state{background:#eef8f3;color:#246849;border-color:#c9e2d5}.contribution-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.contribution-actions button,.contribution-open{white-space:nowrap}.contribution-delete{border:1px solid #edc5c5;background:#fff6f6;color:#a62525;border-radius:10px;padding:9px 10px;cursor:pointer}.contribution-index{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#eaf5ff;color:#176997;font-weight:800;flex:0 0 auto}.contribution-empty{padding:18px;text-align:center;color:var(--muted);font-size:13px}.profile-stats{grid-template-columns:repeat(4,1fr)!important}
@media (max-width:680px){.contributions-panel{padding:12px;margin-top:12px}.contributions-head h2{font-size:20px}.contribution-group summary{padding:13px}.contribution-row{align-items:flex-start;flex-wrap:wrap}.contribution-main{min-width:calc(100% - 44px)}.contribution-actions{width:100%;justify-content:flex-start;padding-left:42px}.contribution-open{width:100%;margin-top:2px}.profile-stats{grid-template-columns:repeat(2,1fr)!important}.contribution-draft .contribution-actions .primary,.contribution-draft .contribution-actions .ghost{flex:1}}


/* v0.55 — faixa lateral de scroll mobile mais larga e visualmente evidente */
@media(max-width:900px){
  .layout{background:#e8f6ef}
  .map-wrap{
    width:calc(100% - 26px);
    margin-right:26px;
    border-right:1px solid #cfe2d8;
    border-bottom-right-radius:12px;
    box-shadow:8px 0 16px rgba(23,53,42,.10);
    overflow:visible;
  }
  #map{overflow:hidden;border-bottom-right-radius:12px}
  .map-wrap::after{
    content:'';
    position:absolute;
    right:-18px;
    top:50%;
    transform:translateY(-50%);
    width:8px;
    height:74px;
    border-radius:999px;
    background:linear-gradient(180deg,#13a06c,#087a50);
    box-shadow:0 3px 10px rgba(8,122,80,.28);
    pointer-events:none;
    z-index:700;
  }
}
@media(max-width:560px){
  .map-wrap{
    width:calc(100% - 26px);
    margin-right:26px;
  }
  .map-wrap::after{width:9px;height:82px;right:-18px}
}


/* v0.55 — onboarding de primeiro acesso */
.about-intro-action{display:flex;justify-content:flex-end;margin:-2px 0 16px}.onboarding-dialog{width:min(620px,94vw);padding:0;border-radius:24px;overflow:hidden}.onboarding-dialog::backdrop{background:rgba(11,31,23,.58);backdrop-filter:blur(3px)}.onboarding-shell{background:#fff;min-height:560px;display:flex;flex-direction:column}.onboarding-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 8px}.onboarding-brand{display:flex;align-items:center;gap:9px;font-weight:850}.onboarding-brand .brand-mark{width:32px;height:32px}.onboarding-skip{border:0;background:transparent;color:var(--muted);font-weight:750;padding:9px 4px;cursor:pointer}.onboarding-slides{flex:1;display:flex;align-items:stretch}.onboarding-slide{display:none;width:100%;padding:20px 34px 10px;text-align:center;animation:onboardingIn .2s ease}.onboarding-slide.active{display:flex;flex-direction:column;align-items:center;justify-content:center}.onboarding-visual{width:92px;height:92px;border-radius:28px;display:grid;place-items:center;background:linear-gradient(145deg,#eaf8f1,#d8f1e5);font-size:43px;box-shadow:inset 0 0 0 1px #cde9db;margin-bottom:20px}.onboarding-kicker{margin:0 0 8px;color:var(--green);font-size:11px;letter-spacing:.12em;font-weight:900}.onboarding-slide h2{font-size:29px;line-height:1.12;margin:0 0 12px;max-width:500px}.onboarding-slide>p:not(.onboarding-kicker){max-width:500px;margin:0;color:#536159;line-height:1.55;font-size:15px}.onboarding-mini{margin-top:24px;border:1px solid #b9dfcc;background:#f1faf5;color:#076f4a;border-radius:999px;padding:11px 16px;display:inline-flex;align-items:center;gap:8px;font-size:14px}.onboarding-mini-blue{background:#f0f6ff;border-color:#bcd3f1;color:#245b91}.onboarding-statuses{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:24px}.onboarding-statuses span{border-radius:999px;padding:7px 10px;color:#fff;font-size:12px;font-weight:800}.onboarding-statuses .green{background:#0a7f55}.onboarding-statuses .orange{background:#d98716}.onboarding-statuses .red{background:#c83f3f}.onboarding-ready{margin-top:24px;padding:12px 16px;border-radius:12px;background:#f1faf5;color:var(--green);font-weight:850;border:1px solid #cbe8d9}.onboarding-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 20px 20px;border-top:1px solid var(--line)}.onboarding-dots{display:flex;gap:7px}.onboarding-dots button{width:8px;height:8px;border:0;border-radius:999px;padding:0;background:#d6ddd9;cursor:pointer;transition:.2s}.onboarding-dots button.active{width:24px;background:var(--green)}.onboarding-actions{display:flex;gap:8px;margin-left:auto}.onboarding-actions button{min-width:104px}.onboarding-actions .primary{padding:11px 17px}.onboarding-dialog.onboarding-finishing .onboarding-actions .primary{min-width:130px}@keyframes onboardingIn{from{opacity:.35;transform:translateX(8px)}to{opacity:1;transform:none}}
@media(max-width:620px){.about-intro-action{justify-content:stretch}.about-intro-action button{width:100%}.onboarding-dialog{width:100vw;height:100dvh;max-width:none;max-height:none;border-radius:0;margin:0}.onboarding-shell{height:100%;min-height:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.onboarding-head{padding:12px 16px 4px}.onboarding-slide{padding:16px 22px 8px}.onboarding-slide h2{font-size:27px}.onboarding-visual{width:84px;height:84px;border-radius:24px;font-size:40px;margin-bottom:18px}.onboarding-footer{padding:14px 16px 16px}.onboarding-actions button{min-width:96px}.onboarding-dots{gap:6px}}


/* Painel administrativo de utilizadores */
.admin-users-block{margin:4px 0 28px;padding:18px;background:#f7fbf9;border:1px solid #d9e8e0;border-radius:18px}.admin-users-head,.admin-users-subhead,.moderation-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.admin-users-head h3,.moderation-section-head h3{margin:0 0 4px}.admin-users-subhead{align-items:center;margin:18px 0 9px}.admin-users-subhead h4{margin:0}.admin-user-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.admin-stat-card{background:#fff;border:1px solid #dce7e1;border-radius:14px;padding:14px;display:grid;gap:3px}.admin-stat-card span{font-size:12px;color:#65736b;font-weight:700}.admin-stat-card strong{font-size:28px;line-height:1.1;color:#17352a}.admin-stat-card small{font-size:11px;color:#7a8780}.admin-stat-card.today{border-color:#9ad2b9;background:#effaf4}.admin-stat-card.today strong{color:#087a50}.admin-recent-users{display:grid;gap:8px}.admin-user-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;background:#fff;border:1px solid #dde7e1;border-radius:13px;padding:11px 13px}.admin-user-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#e6f6ee;color:#087a50;font-weight:900;font-size:12px}.admin-user-main{display:grid;gap:3px}.admin-user-main strong{font-size:14px}.admin-user-main span,.admin-user-meta small{font-size:11px;color:#6d7972}.admin-user-meta{display:grid;gap:4px;justify-items:end;text-align:right}.user-confirmed,.user-unconfirmed{font-size:11px;font-weight:800;border-radius:999px;padding:4px 7px}.user-confirmed{background:#e9f8f0;color:#087a50}.user-unconfirmed{background:#fff7e7;color:#976711}.moderation-section-head{margin:4px 0 10px}@media(max-width:760px){.admin-user-stats{grid-template-columns:1fr 1fr}.admin-user-row{grid-template-columns:42px 1fr}.admin-user-meta{grid-column:2;justify-items:start;text-align:left}.admin-users-head{flex-direction:column}}

/* v0.58 — notificações da conta */
.notification-nav-btn{display:inline-flex;align-items:center;gap:6px}.notification-badge,.mobile-notification-badge{min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#d73535;color:#fff;font-size:10px;font-style:normal;font-weight:900;display:inline-grid;place-items:center;line-height:1}.mobile-nav-item{position:relative}.mobile-notification-badge{position:absolute;right:14px;top:50%;transform:translateY(-50%)}
.notifications-shell{max-width:900px;margin:0 auto}.notifications-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.notifications-head h2{margin:0 0 5px}.notifications-list{display:grid;gap:10px}.notification-card{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:13px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 15px}.notification-card.unread{border-color:#9fd6bd;background:#f5fcf8;box-shadow:0 7px 22px rgba(8,122,80,.07)}.notification-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-size:20px;font-weight:900}.notification-icon.ok{background:#e5f7ee;color:#087a50}.notification-icon.bad{background:#fff0f0;color:#a62525}.notification-main{min-width:0}.notification-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.notification-title-row strong{font-size:15px}.notification-new{font-size:10px;font-weight:900;color:#fff;background:#0a7f55;border-radius:999px;padding:3px 7px}.notification-main p{margin:5px 0;color:#536159;font-size:13px;line-height:1.45}.notification-meta{display:flex;gap:10px;flex-wrap:wrap;color:#7a867f;font-size:11px}.notification-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.notification-read-btn{border:1px solid #cfe1d7;background:#fff;color:#476257;border-radius:10px;padding:9px 10px;cursor:pointer}.notifications-empty{background:#fff;border:1px dashed #cad7d0;border-radius:16px;padding:30px;text-align:center;color:var(--muted);display:grid;gap:5px}.notifications-empty strong{color:var(--ink);font-size:16px}.app-notification-toast{position:fixed;z-index:7000;top:max(78px,calc(env(safe-area-inset-top) + 70px));right:18px;width:min(390px,calc(100vw - 28px));display:flex;align-items:flex-start;gap:11px;text-align:left;border:1px solid #9fd6bd;background:#fff;border-radius:16px;padding:13px 14px;box-shadow:0 18px 55px rgba(0,0,0,.20);transform:translateY(-16px);opacity:0;pointer-events:none;transition:.2s ease;cursor:pointer}.app-notification-toast.show{transform:none;opacity:1;pointer-events:auto}.toast-notification-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e5f7ee;color:#087a50;font-weight:900;flex:0 0 auto}.app-notification-toast strong,.app-notification-toast small{display:block}.app-notification-toast strong{font-size:14px;color:var(--ink)}.app-notification-toast small{font-size:12px;color:var(--muted);margin-top:3px;line-height:1.35}
@media(max-width:680px){.notifications-head{display:grid}.notifications-head button{width:100%}.notification-card{grid-template-columns:42px 1fr;align-items:start;padding:13px}.notification-actions{grid-column:1/-1;justify-content:stretch;padding-left:55px}.notification-actions button{flex:1;min-height:44px}.app-notification-toast{top:max(72px,calc(env(safe-area-inset-top) + 64px));right:10px;width:calc(100vw - 20px)}}


/* v0.59 — captura nativa rápida (oculta visualmente, clicável via gesto real) */
.quick-capture-input{position:fixed;left:-2000px;top:0;width:1px;height:1px;opacity:0;pointer-events:none;z-index:-1}
.draft-action-buttons [data-draft-camera],.draft-action-buttons [data-draft-gallery]{border:1px solid #bcded0;background:#f1faf5;color:#0a704d;font-weight:750}
.quick-mark-toast button[data-draft-photo]{background:#eef9f3;border-color:#9ed0b6;color:#087a50;font-weight:800}
@media(max-width:560px){.quick-mark-toast button[data-draft-photo]{flex:1}}


/* v0.60 — Seguir-me e estado do GPS, acessíveis no PC e no telemóvel */
.follow-map-control{position:absolute;top:14px;right:14px;z-index:750;display:flex;align-items:flex-end;flex-direction:column;gap:8px;pointer-events:none}
.follow-map-btn,.follow-map-status{pointer-events:auto;background:#fff;color:#17352a;border:1px solid #c4dace;border-radius:999px;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.follow-map-btn{min-height:44px;padding:10px 16px;font-size:14px;font-weight:850;cursor:pointer;white-space:nowrap;touch-action:manipulation}
.follow-map-btn.active{background:#0a7f55;border-color:#0a7f55;color:#fff}
.follow-map-btn:focus-visible{outline:3px solid #f5b544;outline-offset:2px}
.follow-map-status{max-width:min(350px,calc(100vw - 95px));padding:8px 12px;font-size:12px;font-weight:650;line-height:1.3;border-radius:12px;text-align:right}
.follow-map-status.hidden{display:none!important}
.my-location-dot{filter:drop-shadow(0 1px 5px rgba(5,75,144,.45))}
@media(max-width:900px){.follow-map-control{right:10px;top:12px}.follow-map-btn{min-height:46px;padding:11px 14px}.follow-map-status{max-width:calc(100vw - 92px)}}


/* v0.61 — eliminação administrativa e gestão de imóveis */
.admin-properties-block{margin:22px 0;padding:18px;border-radius:18px;background:#fff;border:1px solid var(--line)}
.admin-properties-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.admin-properties-head h3{margin:0 0 5px}.admin-properties-head .hint{margin:0}
.admin-properties-head select{border:1px solid var(--line);border-radius:10px;padding:9px;background:#fff}
.admin-properties-list{display:grid;gap:8px;margin:12px 0}
.admin-property-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border-radius:12px;border:1px solid var(--line);background:#fcfdfc}
.admin-property-info{min-width:0;display:grid;gap:5px}.admin-property-info strong{font-size:14px}.admin-property-info small{font-size:12px;color:var(--muted)}
.admin-property-actions{display:flex;gap:7px;flex-shrink:0}.admin-property-actions button,.moderation-actions .danger-btn{padding:9px 12px;border-radius:10px;cursor:pointer}
.admin-property-actions .danger-btn,.moderation-actions .danger-btn,.admin-delete-dialog .danger-btn,.detail-actions button.danger-btn{background:#b42318;color:#fff;border:1px solid #b42318;font-weight:750}
.admin-property-actions .danger-btn:hover,.moderation-actions .danger-btn:hover,.admin-delete-dialog .danger-btn:hover,.detail-actions button.danger-btn:hover{background:#8f1f17}
.admin-delete-dialog{width:min(520px,94vw)}
.admin-delete-dialog form{padding:22px}.admin-delete-dialog h2{font-size:20px;margin:0}
.admin-delete-warning{padding:12px 14px;background:#fff4f2;border:1px solid #f2c3c0;border-radius:12px;color:#7d211c;line-height:1.5}
.admin-delete-dialog button:disabled{opacity:.6;cursor:not-allowed}
@media(max-width:680px){.admin-properties-block{padding:12px}.admin-property-row{flex-wrap:wrap}.admin-property-actions{width:100%}.admin-property-actions button{flex:1}.admin-delete-dialog form{padding:16px}.admin-delete-dialog .dialog-actions{flex-wrap:wrap}.admin-delete-dialog .dialog-actions button{flex:1}}


/* v0.62 — palavra-passe visível e recuperação de conta */
#authDialog form{padding:22px}
#authDialog .dialog-head{margin-bottom:12px}
#authDialog label[for="authPassword"]{display:block;margin:12px 0 6px}
.password-field{display:flex;align-items:stretch;position:relative;width:100%}
.password-field>input{width:100%;min-width:0;min-height:48px;border:1px solid var(--line);border-radius:11px;padding:11px 102px 11px 12px;background:#fff;color:var(--ink);font-size:16px}
.password-field>input:focus{outline:2px solid #65b998;outline-offset:1px}
.password-toggle{position:absolute;top:4px;right:4px;bottom:4px;border:0;border-radius:8px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;gap:5px;background:#eaf6f0;color:#086a49;font-size:14px;font-weight:750;cursor:pointer;min-width:89px}
.password-toggle:hover,.password-toggle:focus-visible{background:#d9f1e5;outline-offset:2px}
.password-toggle span{font-size:12px}
.forgot-password-btn{display:inline-flex;align-items:center;margin:8px 0 2px;padding:7px 0;border:0;background:transparent;color:var(--green);font-size:13px;font-weight:750;text-decoration:underline;cursor:pointer;text-align:left}
.auth-recovery-dialog{width:min(480px,94vw);max-height:90dvh;overflow:auto}
.auth-recovery-dialog form{padding:22px;display:block}
.auth-recovery-dialog h2{font-size:21px;margin:0}
.auth-recovery-dialog .dialog-head{gap:12px}
.auth-recovery-dialog .auth-help{font-size:14px;line-height:1.5;color:var(--muted);margin:14px 0}
.auth-recovery-dialog label{display:block;font-weight:700;margin:14px 0 6px}
.auth-recovery-dialog input[type="email"]{width:100%;min-height:48px;border:1px solid var(--line);border-radius:11px;padding:11px 12px;font-size:16px}
.auth-recovery-dialog .auth-msg{line-height:1.5}
.auth-recovery-dialog .dialog-actions{display:flex;justify-content:space-between;gap:9px;flex-wrap:wrap}
.auth-recovery-dialog button:disabled{opacity:.6;cursor:wait}
@media(max-width:620px){#authDialog form,.auth-recovery-dialog form{padding:18px 16px}.auth-recovery-dialog{width:calc(100vw - 18px)}.auth-recovery-actions button{flex:1}.password-field>input{min-height:50px}}
