/* =========================================================
   CRM Inmobiliario — Frontend Portal [crm_acceso_agente]
   vendertucasa.com
   ========================================================= */

:root {
    --crm-navy:   #0B2445;
    --crm-gold:   #C9A84C;
    --crm-white:  #ffffff;
    --crm-grey:   #F4F5F7;
    --crm-border: #DDE1E7;
    --crm-text:   #1A1A2E;
    --crm-muted:  #6B7280;
    --crm-ok:     #2E7D32;
    --crm-error:  #C62828;
    --crm-radius: 10px;
    --crm-shadow: 0 2px 16px rgba(11,36,69,.10);
}

/* ── Base ─────────────────────────────────────────────── */
.crm-fe-wrap {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: var(--crm-text);
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 16px 48px;
    font-size: 14px;
    line-height: 1.5;
}
.crm-fe-wrap *, .crm-fe-wrap *::before, .crm-fe-wrap *::after { box-sizing: border-box; }

/* ── LOGIN ────────────────────────────────────────────── */
.crm-fe-login-wrap { display:flex; justify-content:center; padding:48px 16px; }
.crm-fe-login-box  {
    background:var(--crm-white); border-radius:var(--crm-radius);
    box-shadow:var(--crm-shadow); padding:40px 36px;
    width:100%; max-width:420px; border-top:4px solid var(--crm-gold);
}
.crm-fe-login-logo { text-align:center; margin-bottom:28px; }
.crm-fe-logo-icon  { font-size:40px; display:block; margin-bottom:8px; }
.crm-fe-login-logo h2 { color:var(--crm-navy); font-size:22px; margin:0 0 6px; }
.crm-fe-login-logo p  { color:var(--crm-muted); font-size:13px; margin:0; }
.crm-fe-login-box #loginform p { margin:0 0 12px; }
.crm-fe-login-box #loginform label { font-size:12px; font-weight:700; color:var(--crm-navy); text-transform:uppercase; letter-spacing:.4px; }
.crm-fe-login-box #loginform input[type="text"],
.crm-fe-login-box #loginform input[type="password"] {
    width:100%; padding:10px 14px; border:1.5px solid var(--crm-border);
    border-radius:7px; font-size:14px; margin-top:4px; transition:border-color .2s;
}
.crm-fe-login-box #loginform input:focus { border-color:var(--crm-navy); outline:none; }
.crm-fe-login-box #loginform input[type="submit"] {
    width:100%; background:var(--crm-navy); color:var(--crm-gold);
    border:none; border-radius:7px; padding:12px; font-size:15px;
    font-weight:700; cursor:pointer; margin-top:8px; transition:opacity .2s;
}
.crm-fe-login-box #loginform input[type="submit"]:hover { opacity:.88; }

/* ── DENEGADO ─────────────────────────────────────────── */
.crm-fe-denegado { text-align:center; padding:60px 20px; background:var(--crm-white); border-radius:var(--crm-radius); box-shadow:var(--crm-shadow); margin-top:24px; }
.crm-fe-denegado span { font-size:48px; }
.crm-fe-denegado h3 { color:var(--crm-navy); margin:12px 0 8px; }
.crm-fe-denegado p  { color:var(--crm-muted); }

/* ── CABECERA ─────────────────────────────────────────── */
.crm-fe-header {
    display:flex; align-items:center; justify-content:space-between;
    background:var(--crm-navy); border-radius:var(--crm-radius);
    padding:14px 22px; margin:8px 0 14px; flex-wrap:wrap; gap:10px;
}
.crm-fe-header-logo { display:flex; align-items:center; gap:10px; color:var(--crm-gold); font-size:17px; font-weight:800; }
.crm-fe-header-logo span { font-size:22px; }
.crm-fe-badge-admin { background:var(--crm-gold); color:var(--crm-navy); font-size:10px; font-weight:700; padding:2px 8px; border-radius:12px; }
.crm-fe-header-user { display:flex; align-items:center; gap:14px; }
.crm-fe-username    { color:rgba(255,255,255,.85); font-size:13px; }
.crm-fe-btn-logout  { color:#ffb3b3; font-size:13px; text-decoration:none; padding:5px 12px; border:1px solid rgba(255,100,100,.4); border-radius:6px; transition:all .2s; }
.crm-fe-btn-logout:hover { background:rgba(198,40,40,.5); color:#fff; border-color:transparent; }

/* ── FILTRO DE AGENTE (Agencia) ──────────────────────────── */
.crm-fe-filtro-agente-wrap {
    display:flex; align-items:center; gap:10px; background:var(--crm-white);
    border-radius:var(--crm-radius); box-shadow:var(--crm-shadow);
    padding:10px 16px; margin-bottom:14px; flex-wrap:wrap;
}
.crm-fe-filtro-agente-wrap label { font-weight:700; color:var(--crm-navy); font-size:13px; }
.crm-fe-filtro-agente-wrap select {
    padding:6px 10px; border-radius:6px; border:1px solid var(--crm-border);
    font-size:13px; min-width:220px;
}

/* ── REASIGNAR FICHA (Agencia) ───────────────────────────── */
.crm-fe-reasignar {
    margin-top:4px; display:block; padding:3px 6px; border-radius:5px;
    border:1px solid var(--crm-border); font-size:12px; max-width:160px;
}

/* ── STATS ────────────────────────────────────────────── */
.crm-fe-stats { display:flex; gap:12px; margin-bottom:14px; flex-wrap:wrap; }
.crm-fe-stat  { flex:1; min-width:100px; background:var(--crm-white); border-radius:var(--crm-radius); box-shadow:var(--crm-shadow); padding:16px 12px; text-align:center; border-bottom:3px solid var(--crm-border); }
.crm-fe-stat-alert { border-bottom-color:#E53935; background:#FFF8F8; }
.crm-fe-stat-num   { display:block; font-size:28px; font-weight:800; color:var(--crm-navy); line-height:1; margin-bottom:4px; }
.crm-fe-stat-label { font-size:11px; color:var(--crm-muted); font-weight:600; text-transform:uppercase; letter-spacing:.4px; }

/* ── NAV ──────────────────────────────────────────────── */
.crm-fe-nav { display:flex; gap:6px; margin-bottom:14px; flex-wrap:wrap; }
.crm-fe-nav-btn { background:var(--crm-white); border:1.5px solid var(--crm-border); border-radius:8px; padding:9px 18px; font-size:13px; font-weight:600; cursor:pointer; color:var(--crm-muted); transition:all .2s; display:flex; align-items:center; gap:6px; }
.crm-fe-nav-btn:hover,.crm-fe-nav-btn.active { background:var(--crm-navy); color:var(--crm-gold); border-color:var(--crm-navy); }
.crm-fe-nav-badge { background:#E53935; color:#fff; border-radius:50%; min-width:18px; height:18px; font-size:11px; display:inline-flex; align-items:center; justify-content:center; font-weight:700; }

/* ── SECCIONES ────────────────────────────────────────── */
.crm-fe-section { display:none; }
.crm-fe-section.active { display:block; }
.crm-fe-section-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; flex-wrap:wrap; gap:8px; }
.crm-fe-section-header h3 { color:var(--crm-navy); font-size:16px; margin:0; font-weight:700; }

/* ── EMPTY ────────────────────────────────────────────── */
.crm-fe-empty { text-align:center; padding:48px 20px; color:var(--crm-muted); background:var(--crm-white); border-radius:var(--crm-radius); box-shadow:var(--crm-shadow); }
.crm-fe-empty span { font-size:38px; display:block; margin-bottom:10px; }

/* ── MATCHES ──────────────────────────────────────────── */
.crm-fe-match-card { display:flex; gap:14px; align-items:flex-start; background:var(--crm-white); border-radius:var(--crm-radius); box-shadow:var(--crm-shadow); padding:16px 18px; border-left:5px solid var(--crm-gold); margin-bottom:10px; }
.crm-fe-match-card.crm-fe-match-neg { border-left-color:#FF8F00; background:#FFFDF5; }
.crm-fe-match-icon { font-size:26px; flex-shrink:0; }
.crm-fe-match-body { flex:1; }
.crm-fe-match-tipo { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0 0 6px; font-size:13px; }
.crm-fe-match-pct  { background:var(--crm-navy); color:var(--crm-gold); font-size:11px; font-weight:700; padding:2px 8px; border-radius:12px; }
.crm-fe-match-fecha { color:var(--crm-muted); font-size:11px; }
.crm-fe-match-msg  { font-size:13px; line-height:1.5; margin:0 0 10px; }
.crm-fe-match-actions { display:flex; flex-wrap:wrap; gap:6px; }

/* ── BOTONES ──────────────────────────────────────────── */
.crm-fe-btn         { display:inline-flex; align-items:center; gap:5px; padding:9px 16px; border-radius:7px; font-size:13px; font-weight:600; text-decoration:none; border:1.5px solid transparent; cursor:pointer; transition:all .2s; background:var(--crm-grey); color:var(--crm-navy); }
.crm-fe-btn-primary { background:var(--crm-navy); color:var(--crm-gold); }
.crm-fe-btn-primary:hover { opacity:.88; color:var(--crm-gold); }
.crm-fe-btn-outline { background:transparent; border-color:var(--crm-navy); color:var(--crm-navy); }
.crm-fe-btn-sm      { padding:5px 11px; font-size:12px; }
.crm-fe-btn-descartar { background:#FFF0F0; color:var(--crm-error); border-color:#FFCDD2; }
.crm-fe-btn-descartar:hover { background:var(--crm-error); color:#fff; }
.crm-fe-btn:disabled { opacity:.5; cursor:not-allowed; }

/* ── BUSCADOR ─────────────────────────────────────────── */
.crm-fe-search { width:100%; padding:9px 14px; border:1.5px solid var(--crm-border); border-radius:8px; font-size:13px; transition:border-color .2s; }
.crm-fe-search:focus { border-color:var(--crm-navy); outline:none; }

/* ── TABLA ────────────────────────────────────────────── */
.crm-fe-tabla-wrap { overflow-x:auto; border-radius:var(--crm-radius); box-shadow:var(--crm-shadow); }
.crm-fe-tabla { width:100%; border-collapse:collapse; background:var(--crm-white); font-size:13px; }
.crm-fe-tabla thead th { background:var(--crm-navy); color:#fff; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; padding:11px 14px; text-align:left; white-space:nowrap; }
.crm-fe-tabla tbody td { padding:11px 14px; border-bottom:1px solid var(--crm-border); vertical-align:middle; }
.crm-fe-tabla tbody tr:last-child td { border-bottom:none; }
.crm-fe-tabla tbody tr:hover td { background:#F0F4FB; }
.crm-fe-tabla a { color:var(--crm-navy); }

/* ── BADGES ───────────────────────────────────────────── */
.crm-fe-badge   { display:inline-block; padding:3px 9px; border-radius:12px; font-size:11px; font-weight:700; background:var(--crm-grey); color:var(--crm-muted); }
.crm-fe-badge-a { background:#FFE0B2; color:#E65100; }
.crm-fe-badge-b { background:#FFF9C4; color:#F57F17; }
.crm-fe-badge-c { background:#E3F2FD; color:#1565C0; }
.crm-fe-badge-vtc { background:#E8F5E9; color:#2E7D32; font-size:10px; font-weight:700; padding:1px 6px; border-radius:10px; margin-left:4px; }
.crm-fe-sin-seg { cursor:help; font-size:14px; }

/* ── MODAL ────────────────────────────────────────────── */
/* display se gestiona por JS con inline style para máxima prioridad */
.crm-fe-modal { display:none; }
.crm-fe-modal.crm-fe-modal-open { display:flex !important; }
.crm-fe-modal-overlay {
    position:absolute !important; top:0 !important; left:0 !important;
    width:100% !important; height:100% !important;
    background:rgba(0,0,0,.55); cursor:pointer;
}
.crm-fe-modal-box {
    position:relative !important; z-index:10 !important;
    background:#ffffff !important;
    border-radius:14px; box-shadow:0 8px 40px rgba(0,0,0,.22);
    width:min(860px, 95vw); max-height:88vh;
    display:flex !important; flex-direction:column !important; overflow:hidden;
    margin:auto;
}
.crm-fe-modal-header { display:flex; align-items:center; justify-content:space-between; padding:18px 24px 14px; border-bottom:1px solid var(--crm-border); flex-shrink:0; }
.crm-fe-modal-header h3 { margin:0; color:var(--crm-navy); font-size:17px; }
.crm-fe-modal-close { background:none; border:none; font-size:18px; cursor:pointer; color:var(--crm-muted); padding:4px 8px; border-radius:6px; line-height:1; }
.crm-fe-modal-close:hover { background:var(--crm-grey); color:var(--crm-text); }
.crm-fe-modal-body { padding:20px 24px; overflow-y:auto; flex:1; }
.crm-fe-modal-footer { display:flex; align-items:center; gap:10px; justify-content:flex-end; padding:14px 24px; border-top:1px solid var(--crm-border); flex-shrink:0; flex-wrap:wrap; }
.crm-fe-form-msg { flex:1; font-size:13px; font-weight:600; }
body.crm-fe-no-scroll { overflow:hidden; }

/* ── FORMULARIO INTERNO ───────────────────────────────── */
.crm-fe-form-section { margin-bottom:20px; }
.crm-fe-form-section h4 { color:var(--crm-navy); font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; margin:0 0 12px; padding-bottom:6px; border-bottom:2px solid var(--crm-gold); }
.crm-fe-form-row { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:12px; }
.crm-fe-form-col { flex:1; min-width:160px; display:flex; flex-direction:column; gap:4px; }
.crm-fe-form-col label, .crm-fe-lbl-block { font-size:11px; font-weight:700; color:var(--crm-navy); text-transform:uppercase; letter-spacing:.3px; display:block; margin-bottom:4px; }
.crm-fe-form-col input[type="text"],
.crm-fe-form-col input[type="tel"],
.crm-fe-form-col input[type="email"],
.crm-fe-form-col input[type="number"],
.crm-fe-form-col select,
.crm-fe-modal-body textarea {
    width:100%; padding:8px 12px; border:1.5px solid var(--crm-border);
    border-radius:7px; font-size:13px; background:#fff; transition:border-color .2s;
}
.crm-fe-form-col input:focus,.crm-fe-form-col select:focus,.crm-fe-modal-body textarea:focus {
    border-color:var(--crm-navy); outline:none;
}
.crm-fe-modal-body textarea { width:100%; resize:vertical; min-height:72px; }
.crm-fe-condicional { background:var(--crm-grey); border-radius:8px; padding:12px; margin-top:10px; }

/* ── CHECKBOXES ───────────────────────────────────────── */
.crm-fe-checks-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:6px 10px; margin-top:4px; }
.crm-fe-checks-grid-3 { grid-template-columns:repeat(3,1fr); }
.crm-fe-checks-inline { display:flex; flex-wrap:wrap; gap:8px; margin-top:4px; }
.crm-fe-chk { display:flex; align-items:center; gap:6px; font-size:12px; cursor:pointer; padding:4px 6px; border-radius:5px; transition:background .15s; }
.crm-fe-chk:hover { background:rgba(11,36,69,.06); }
.crm-fe-chk input[type="checkbox"] { accent-color:var(--crm-navy); width:13px; height:13px; cursor:pointer; }

/* ── ZONAS EN CASCADA (FRONTEND) ──────────────────────── */
.crm-fe-zona-cascade { background:var(--crm-grey); border-radius:8px; padding:12px; }
.crm-fe-zona-row { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:8px; }
.crm-fe-zona-row select { flex:1; min-width:130px; padding:7px 10px; border:1.5px solid var(--crm-border); border-radius:7px; font-size:13px; background:#fff; }
.crm-fe-zona-row select:focus { border-color:var(--crm-navy); outline:none; }
.crm-fe-zona-chips { display:flex; flex-wrap:wrap; gap:6px; min-height:24px; }
.crm-fe-chip { display:inline-flex; align-items:center; gap:5px; background:var(--crm-navy); color:#fff; padding:4px 10px; border-radius:20px; font-size:12px; font-weight:500; }
.crm-fe-chip-remove { background:none; border:none; color:rgba(255,255,255,.7); font-size:14px; cursor:pointer; padding:0; line-height:1; }
.crm-fe-chip-remove:hover { color:#fff; }

/* ── RESPONSIVE ───────────────────────────────────────── */
@media (max-width:640px) {
    .crm-fe-modal-box { max-height:96vh; }
    .crm-fe-stats .crm-fe-stat { min-width:80px; padding:12px 8px; }
    .crm-fe-stat-num { font-size:22px; }
    .crm-fe-tabla thead { display:none; }
    .crm-fe-tabla tbody tr { display:block; margin-bottom:10px; border:1px solid var(--crm-border); border-radius:8px; padding:8px; }
    .crm-fe-tabla tbody td { display:flex; justify-content:space-between; border-bottom:1px solid var(--crm-border); padding:7px 4px; font-size:12px; }
    .crm-fe-tabla tbody td:last-child { border-bottom:none; }
    .crm-fe-checks-grid { grid-template-columns:repeat(2,1fr); }
    .crm-fe-match-card { flex-direction:column; }
    .crm-fe-form-col { min-width:100%; }
}

/* =========================================================
   FICHA DE CRUCE (datos inmueble/búsqueda + contacto agente)
   ========================================================= */

.crm-fe-ficha-loading { text-align:center; padding:30px; color:var(--crm-muted); }

.crm-ficha-cruce { margin-bottom:16px; }

.crm-ficha-tipo {
    display:flex; align-items:center; gap:12px;
    padding-bottom:12px; margin-bottom:12px;
    border-bottom:2px solid var(--crm-gold);
}
.crm-ficha-icono { font-size:28px; }
.crm-ficha-tipo strong { display:block; color:var(--crm-navy); font-size:16px; margin-bottom:4px; }

.crm-ficha-row {
    display:flex; align-items:center; gap:10px; flex-wrap:wrap;
    padding:8px 0; border-bottom:1px solid var(--crm-border);
    font-size:13px;
}
.crm-ficha-label { font-weight:700; color:var(--crm-muted); font-size:11px; text-transform:uppercase; letter-spacing:.3px; min-width:110px; }
.crm-ficha-precio { color:var(--crm-navy); font-weight:800; font-size:15px; }

.crm-ficha-extras { padding:10px 0; }
.crm-ficha-chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.crm-ficha-chip { background:var(--crm-grey); color:var(--crm-navy); font-size:11px; font-weight:600; padding:3px 10px; border-radius:12px; }

.crm-ficha-agente {
    background:var(--crm-grey); border-radius:10px; padding:16px;
    border-left:4px solid var(--crm-navy);
}
.crm-ficha-agente h4 { margin:0 0 10px; color:var(--crm-navy); font-size:12px; text-transform:uppercase; letter-spacing:.4px; }
.crm-ficha-agente-info { display:flex; gap:12px; align-items:flex-start; }
.crm-ficha-agente-avatar { font-size:32px; flex-shrink:0; }
.crm-ficha-agente-info strong { display:block; color:var(--crm-navy); font-size:15px; margin-bottom:6px; }
.crm-ficha-tel { font-size:13px; margin-bottom:4px; }
.crm-ficha-tel a { color:var(--crm-navy); font-weight:600; text-decoration:none; }
.crm-ficha-tel a:hover { text-decoration:underline; }
.crm-ficha-tel-label { color:var(--crm-muted); font-size:11px; margin-left:4px; }

/* =========================================================
   HISTORIAL DE NOTAS DE SEGUIMIENTO (Frontend)
   ========================================================= */

.crm-fe-notas-historial {
    max-height: 220px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-right: 4px;
    margin-bottom: 4px;
}

.crm-fe-nota-item {
    background: var(--crm-grey);
    border-left: 4px solid var(--crm-gold);
    border-radius: 0 8px 8px 0;
    padding: 8px 12px;
}

.crm-fe-nota-meta {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-bottom: 4px;
    font-size: 11px;
}
.crm-fe-nota-meta strong { color: var(--crm-navy); }
.crm-fe-nota-fecha, .crm-fe-nota-hora {
    background: #e0e0e0; color: #666;
    padding: 1px 6px; border-radius: 10px; font-size: 10px;
}
.crm-fe-nota-texto { font-size: 13px; color: var(--crm-text); line-height: 1.5; }
.crm-fe-notas-vacio { color: #999; font-style: italic; font-size: 12px; margin: 0; }

/* =========================================================
   BOTONES "AÑADIR PROVINCIA/POBLACIÓN/BARRIO" (Frontend)
   ========================================================= */

.crm-fe-zona-crear {
    background: #fff;
    border: 1.5px dashed var(--crm-navy);
    color: var(--crm-navy);
    font-weight: 700;
    flex-shrink: 0;
}
.crm-fe-zona-crear:hover { background: var(--crm-navy); color: #fff; }

.crm-fe-zona-new-form {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 8px 0;
    padding: 10px 12px;
    background: #EEF3FB;
    border: 1px dashed var(--crm-navy);
    border-radius: 8px;
    flex-wrap: wrap;
}
.crm-fe-zona-new-input {
    flex: 1;
    min-width: 160px;
    padding: 6px 10px;
    border: 1px solid var(--crm-border);
    border-radius: 7px;
    font-size: 13px;
}
.crm-fe-zona-new-msg { font-size: 12px; font-style: italic; }

/* =========================================================
   TOOLBAR: Buscador + Ordenar
   ========================================================= */

.crm-fe-toolbar {
    display: flex;
    gap: 10px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}

.crm-fe-toolbar .crm-fe-search {
    flex: 2;
    min-width: 200px;
    margin-bottom: 0;
}

.crm-fe-ordenar {
    flex: 1;
    min-width: 180px;
    padding: 9px 14px;
    border: 1.5px solid var(--crm-border);
    border-radius: 8px;
    font-size: 13px;
    background: #fff;
    color: var(--crm-navy);
    cursor: pointer;
    transition: border-color .2s;
}
.crm-fe-ordenar:focus { border-color: var(--crm-navy); outline: none; }

@media (max-width: 640px) {
    .crm-fe-toolbar { flex-direction: column; }
    .crm-fe-toolbar .crm-fe-search, .crm-fe-ordenar { min-width: 100%; }
}

/* =========================================================
   Campo ancho completo + Enlace Anuncio clicable
   ========================================================= */

.crm-fe-form-col-full { flex: 1 1 100%; min-width: 100%; }

.crm-fe-enlace-row {
    display: flex;
    gap: 8px;
    align-items: center;
}
.crm-fe-enlace-row input[type="url"] { flex: 1; }
.crm-fe-enlace-row .crm-fe-btn { flex-shrink: 0; white-space: nowrap; }

/* =========================================================
   EMBUDO DE CAPTACIÓN (Frontend)
   ========================================================= */

.crm-fe-embudo-hint {
    font-size: 12px;
    color: var(--crm-muted);
    margin: -4px 0 12px;
}

.crm-fe-embudo-etapa {
    background: var(--crm-grey);
    border-radius: 8px;
    padding: 12px 14px;
    margin-bottom: 12px;
}
.crm-fe-embudo-etapa:last-child { margin-bottom: 0; }

.crm-fe-embudo-historial {
    max-height: 160px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 6px 0 8px;
}

.crm-fe-embudo-etapa textarea {
    width: 100%;
    padding: 8px 12px;
    border: 1.5px solid var(--crm-border);
    border-radius: 7px;
    font-size: 13px;
    resize: vertical;
}
.crm-fe-embudo-etapa textarea:focus { border-color: var(--crm-navy); outline: none; }
