:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}body{margin:0}*{box-sizing:border-box}:root{--primary:#2563eb;--primary-dark:#1d4ed8;--primary-light:#eff6ff;--text:#0f172a;--text-muted:#64748b;--bg:#f3f5f9;--card-bg:#fff;--border:#e6e9f0;--danger:#dc2626;--danger-bg:#fef2f2;--success:#16a34a;--success-bg:#dcfce7;--radius-sm:8px;--radius-md:14px;--radius-lg:18px;--shadow-sm:0 1px 3px #0f172a0f;--shadow-md:0 6px 20px #0f172a14;--shadow-lg:0 16px 40px #0f172a29}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif}.app{flex-direction:column;min-height:100vh;display:flex;position:relative}.app-header{color:#fff;box-shadow:var(--shadow-md);z-index:5;background:linear-gradient(135deg,#111827 0%,#1f2937 100%);padding:22px 28px;position:relative}.app-header h1{letter-spacing:-.02em;margin:0 0 4px;font-size:24px;font-weight:700}.app-header p{opacity:.65;margin:0 0 16px;font-size:13px}.header-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.header-right{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.lang-switcher{background:#ffffff0f;border-radius:999px;gap:4px;padding:3px;display:flex}.lang-switcher button{color:#ffffffb3;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:500;transition:background .15s,color .15s}.lang-switcher button:hover{color:#fff}.lang-switcher button.active{background:var(--primary);color:#fff}.auth-panel{align-items:center;gap:8px;font-size:13px;display:flex}.auth-panel>button{color:#fff;border-radius:var(--radius-sm);cursor:pointer;background:#ffffff14;border:1px solid #ffffff26;padding:8px 14px;font-size:13px;font-weight:500;transition:background .15s}.auth-panel>button:hover{background:#ffffff29}.auth-form{border-radius:var(--radius-md);width:240px;box-shadow:var(--shadow-lg);background:#111827;border:1px solid #ffffff14;flex-direction:column;gap:8px;padding:14px;display:flex}.auth-tabs{border-radius:var(--radius-sm);background:#ffffff0d;gap:6px;padding:3px;display:flex}.auth-tabs button{color:#9ca3af;cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;padding:7px;font-size:12px;font-weight:500;transition:background .15s,color .15s}.auth-tabs button.active{background:var(--primary);color:#fff}.auth-form input{border-radius:var(--radius-sm);color:#fff;background:#1f2937;border:1px solid #374151;padding:9px 10px;font-size:13px}.auth-form input:focus{outline:2px solid var(--primary);outline-offset:1px}.auth-actions{gap:6px;display:flex}.auth-actions button{border-radius:var(--radius-sm);cursor:pointer;border:none;flex:1;padding:8px;font-size:13px;font-weight:500;transition:filter .15s}.auth-actions button:hover{filter:brightness(1.08)}.auth-actions button[type=submit]{background:var(--success);color:#fff}.auth-actions button[type=button]{color:#fff;background:#374151}.auth-message{color:#fbbf24;margin:0;font-size:12px}.login-hint{color:var(--text-muted);font-size:13px}.search-row{flex-wrap:wrap;gap:8px;max-width:680px;display:flex}.search-input,.colonia-filter{border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);background:#fff;border:1px solid #0000;padding:11px 14px;font-size:14px;transition:box-shadow .15s}.search-input{flex:1;min-width:200px}.colonia-filter{min-width:160px}.search-input:focus,.colonia-filter:focus{outline:none;box-shadow:0 0 0 3px #2563eb59}.ad-banner{border-radius:var(--radius-sm);color:#94a3b8;letter-spacing:.05em;text-transform:uppercase;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px dashed #cbd5e1;justify-content:center;align-items:center;margin:12px auto;font-size:11px;font-weight:600;display:flex}.app-body{flex:1;grid-template-columns:300px 1fr 360px;gap:16px;min-height:520px;padding:16px 24px;display:grid}.sidebar,.map-section,.detail-panel{background:var(--card-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border)}.sidebar{padding:16px;overflow-y:auto}.sidebar-header{margin-bottom:10px}.sidebar-header h2{margin:0 0 10px;font-size:16px;font-weight:700}.add-property-btn{background:linear-gradient(135deg, var(--success), #15803d);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;width:100%;margin-bottom:12px;padding:10px;font-size:13px;font-weight:600;transition:transform .1s,box-shadow .15s;box-shadow:0 4px 10px #16a34a40}.add-property-btn:hover{transform:translateY(-1px);box-shadow:0 6px 14px #16a34a52}.property-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.property-list li{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;padding:12px;transition:background .15s,border-color .15s,transform .1s}.property-list li:hover{background:#f8fafc;transform:translate(1px)}.property-list li.active{background:var(--primary-light);border-color:#bfdbfe;border-left:3px solid var(--primary)}.property-list li strong{font-size:14px}.property-list .meta{color:var(--text-muted);margin-top:4px;font-size:12px}.pagination{color:var(--text-muted);justify-content:space-between;align-items:center;gap:6px;margin:10px 0;font-size:11px;display:flex}.pagination button{cursor:pointer;color:var(--text);background:#f1f5f9;border:none;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:600;transition:background .15s}.pagination button:hover:not(:disabled){background:#e2e8f0}.pagination button:disabled{opacity:.4;cursor:default}.map-section{min-height:400px;overflow:hidden}.map-placeholder{color:var(--text-muted);padding:20px;font-size:13px}.fallback-list{padding:0;list-style:none}.fallback-list li{border-radius:var(--radius-sm);cursor:pointer;padding:8px}.fallback-list li:hover,.fallback-list li.active{background:#f1f5f9}.detail-panel{padding:20px;overflow-y:auto}.detail-panel h2{margin-top:0;font-size:19px;font-weight:700}.detail-panel>.meta{color:var(--text-muted);font-size:13px}.property-header-row{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.property-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.property-actions .report-review-btn{background:var(--danger-bg);color:#991b1b;opacity:1;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:500}.write-review-btn{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;margin:14px 0;padding:10px 16px;font-size:13px;font-weight:600;transition:transform .1s,box-shadow .15s;box-shadow:0 4px 10px #2563eb40}.write-review-btn:hover{transform:translateY(-1px);box-shadow:0 6px 14px #2563eb52}.review-form{border-radius:var(--radius-md);border:1px solid var(--border);background:#f8fafc;flex-direction:column;gap:10px;margin-bottom:16px;padding:16px;display:flex}.review-form h3{margin:0 0 2px;font-size:15px}.review-form label{color:#334155;flex-direction:column;gap:4px;font-size:13px;font-weight:500;display:flex}.review-form input[type=text],.review-form textarea{border-radius:var(--radius-sm);border:1px solid #d6dbe3;padding:9px 10px;font-family:inherit;font-size:13px}.review-form input:focus,.review-form textarea:focus,.review-form select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #2563eb33}.checkbox-row{align-items:center;flex-direction:row!important;gap:8px!important}.form-actions{gap:8px;display:flex}.form-actions button{border-radius:var(--radius-sm);cursor:pointer;border:none;padding:9px 14px;font-size:13px;font-weight:600;transition:filter .15s}.form-actions button:hover{filter:brightness(1.05)}.form-actions button[type=submit]{background:var(--success);color:#fff}.form-actions button[type=button]{color:#374151;background:#e5e7eb}.review-list{flex-direction:column;gap:10px;padding:0;list-style:none;display:flex}.review-item{border:1px solid var(--border);border-radius:var(--radius-md);background:#fcfcfd;padding:14px}.review-head{align-items:center;gap:8px;font-size:14px;display:flex}.review-head strong{font-weight:600}.review-head .date{color:#a3a9b5;margin-left:auto;font-size:12px}.review-tags{flex-wrap:wrap;gap:6px;margin:8px 0;font-size:11px;display:flex}.review-tags span{background:#f1f5f9;border-radius:999px;padding:3px 8px;font-weight:500}.review-tags .ok{background:var(--success-bg);color:#166534}.review-tags .bad{background:var(--danger-bg);color:#991b1b}.app-footer{text-align:center;color:var(--text-muted);border-top:1px solid var(--border);background:var(--card-bg);padding:18px;font-size:12px}.delete-review-btn{cursor:pointer;opacity:.45;background:0 0;border:none;margin-left:auto;font-size:14px;transition:opacity .15s}.delete-review-btn:hover{opacity:1}.report-review-btn{cursor:pointer;opacity:.45;background:0 0;border:none;font-size:13px;transition:opacity .15s}.report-review-btn:hover{opacity:1}.reported-label{color:var(--text-muted);font-size:11px}.report-form{background:var(--danger-bg);border:1px solid #fecaca;border-left:3px solid var(--danger);border-radius:var(--radius-sm);flex-direction:column;gap:6px;margin-top:10px;padding:12px;display:flex}.report-title{color:#991b1b;margin:0;font-size:12px;font-weight:600}.report-form select,.report-form textarea{border:1px solid #f3c6c6;border-radius:6px;padding:7px 8px;font-family:inherit;font-size:12px}.translate-block{margin-top:8px}.translate-btn{color:var(--primary);cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:600;transition:background .15s,box-shadow .15s}.translate-btn:hover:not(:disabled){background:var(--primary-light)}.translate-btn:disabled{opacity:.6;cursor:default}.translated-text{background:var(--primary-light);border-radius:var(--radius-sm);color:#1e3a5f;border-left:3px solid var(--primary);margin-top:8px;padding:10px 12px;font-size:13px}.translate-error{color:#991b1b;margin-left:6px;font-size:11px}.review-photo{border-radius:var(--radius-sm);max-width:100%;max-height:240px;box-shadow:var(--shadow-sm);margin-top:10px;display:block}.feedback-fab{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;cursor:pointer;box-shadow:var(--shadow-lg);z-index:50;border:none;border-radius:999px;padding:12px 18px;font-size:13px;font-weight:600;transition:transform .15s;position:fixed;bottom:22px;right:22px}.feedback-fab:hover{transform:translateY(-2px)scale(1.02)}.feedback-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;background:#0f172a80;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.feedback-form{border-radius:var(--radius-lg);width:320px;box-shadow:var(--shadow-lg);background:#fff;flex-direction:column;gap:12px;padding:20px;display:flex}.feedback-form h3{margin:0;font-size:15px}.feedback-form textarea{border-radius:var(--radius-sm);border:1px solid #d6dbe3;padding:10px;font-family:inherit;font-size:13px}.feedback-form textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #2563eb33}@media (width<=900px){.app-body{grid-template-columns:1fr}.sidebar{order:1}.detail-panel{order:2}.map-section{order:3;min-height:280px}.app-header{padding:16px 18px}.app-header h1{font-size:20px}.ad-banner{height:56px!important}.app-body{gap:12px;padding:12px 14px}}
