/* CERCA — COMPONENTS
   Tarjetas, botones, formularios, modales y componentes reutilizables. */

.btn-icon { background: transparent; border: none; color: #ef4444; cursor: pointer; display: none; align-items: center; padding: 6px; border-radius: 8px; }
        .btn-icon:hover { background: rgba(239, 68, 68, 0.1); }

        .btn-refresh-global {
            background: rgba(245, 158, 11, 0.15); border: 1px solid rgba(245, 158, 11, 0.3);
            color: #f59e0b; border-radius: 50%; width: 34px; height: 34px;
            display: flex; align-items: center; justify-content: center; cursor: pointer;
            transition: all 0.2s; flex-shrink: 0;
        }
        .btn-refresh-global:hover { background: rgba(245, 158, 11, 0.3); }
        @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

        /* BANNERS Y CLIMA REAL */
        .weather-banner {
            background: linear-gradient(135deg, #1e3a8a 0%, #0284c7 100%);
            border-radius: 16px; padding: 16px 20px; display: flex;
            justify-content: space-between; align-items: center; gap: 12px;
            box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.3);
            border: 1px solid rgba(255, 255, 255, 0.15); position: relative;
            overflow: hidden; min-height: 105px; color: #ffffff;
        }

        .weather-info { flex: 1; min-width: 0; }
        .weather-info h3 { font-size: 1.2rem; font-weight: 800; line-height: 1.2; color: #ffffff; }
        .weather-info p#weatherMunicipality {
            font-size: 0.85rem; opacity: 0.92; margin-top: 3px;
            white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 600; color: #ffffff;
        }
        .weather-desc { font-size: 0.78rem; opacity: 0.85; margin-top: 4px; display: flex; align-items: center; gap: 4px; color: #ffffff; }
        .weather-temp { font-size: 2rem; font-weight: 800; text-align: right; text-shadow: 0 2px 4px rgba(0,0,0,0.2); white-space: nowrap; line-height: 1; color: #ffffff; }

        .btn-refresh-weather {
            background: rgba(255, 255, 255, 0.15); border: none; color: #fff; border-radius: 50%; width: 30px; height: 30px;
            display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background 0.2s; flex-shrink: 0;
        }
        .btn-refresh-weather:hover { background: rgba(255, 255, 255, 0.3); }

        /* CONMUTADOR DE INICIO */
        .home-tab-switcher {
            display: flex; background: rgba(150, 150, 150, 0.08);
            border: 1px solid var(--border-color); border-radius: 12px; padding: 3px; gap: 4px;
        }
        .home-tab-btn {
            flex: 1; background: transparent; border: none; color: var(--text-secondary);
            padding: 8px 12px; border-radius: 9px; font-size: 0.82rem; font-weight: 700;
            cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 6px; transition: all 0.2s ease;
        }
        .home-tab-btn.active {
            background: #f59e0b; color: #0f172a; box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3);
        }

        /* BARRA DE FILTROS ELEGANTE CON SCROLL */
        .filter-bar {
            display: flex; gap: 6px; overflow-x: auto; padding: 4px 2px 8px 2px;
            scrollbar-width: none; -webkit-overflow-scrolling: touch;
        }
        .filter-bar::-webkit-scrollbar { display: none; }

        .chip-filter {
            background: var(--bg-card); backdrop-filter: blur(12px); border: 1px solid var(--border-color);
            color: var(--text-secondary); padding: 7px 14px; border-radius: 25px; font-size: 0.78rem; font-weight: 700;
            white-space: nowrap; cursor: pointer; transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
            box-shadow: 0 2px 6px rgba(0,0,0,0.15); display: flex; align-items: center; gap: 5px; flex-shrink: 0;
        }
        .chip-filter:hover { border-color: rgba(245, 158, 11, 0.5); color: var(--text-primary); }

        .chip-filter.active {
            background: linear-gradient(135deg, #f59e0b, #d97706); color: #0f172a;
            border-color: #f59e0b; box-shadow: 0 4px 12px rgba(245, 158, 11, 0.35); transform: translateY(-1px);
        }

        .chip-filter.mui-active {
            background: linear-gradient(135deg, #0284c7, #0369a1); color: #ffffff;
            border-color: #38bdf8; box-shadow: 0 4px 12px rgba(2, 132, 199, 0.35);
        }

        /* TARJETAS DE ALERTAS Y NOTICIAS */
        .card-alert {
            background: var(--bg-card); border: 1px solid var(--border-color);
            border-radius: 14px; padding: 14px 16px; transition: transform 0.15s ease; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1);
            position: relative;
        }
        .card-alert.warning { border-left: 4px solid #f59e0b; }
        .card-alert.danger { border-left: 4px solid #ef4444; }
        .card-alert.info { border-left: 4px solid #3b82f6; }
        .card-alert.inundacion { border-left: 4px solid #0284c7; }
        .card-alert.seguridad { border-left: 4px solid #7c3aed; }
        .card-alert.alumbrado { border-left: 4px solid #eab308; }
        .card-alert.arbol { border-left: 4px solid #10b981; }
        .card-alert.basura { border-left: 4px solid #64748b; }
        .card-alert.sos { border-left: 4px solid #dc2626; background: rgba(220, 38, 38, 0.12); }

        .card-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
        .card-title { font-size: 0.95rem; font-weight: 700; color: var(--text-primary); display: flex; align-items: center; gap: 6px; }
        .card-time { font-size: 0.72rem; color: var(--text-secondary); font-weight: 500; }
        .card-body { font-size: 0.88rem; color: var(--card-body-color); line-height: 1.45; white-space: pre-line; }
        .card-footer { font-size: 0.75rem; color: #f59e0b; margin-top: 8px; font-weight: 600; display: flex; justify-content: space-between; align-items: center; }

        .btn-delete-report {
            background: rgba(239, 68, 68, 0.15); border: 1px solid rgba(239, 68, 68, 0.3);
            color: #ef4444; padding: 4px 8px; border-radius: 6px; cursor: pointer;
            display: flex; align-items: center; gap: 4px; font-size: 0.72rem; font-weight: 600; transition: all 0.2s;
        }
        .btn-delete-report:hover { background: #ef4444; color: #fff; }

        /* FORMULARIO REPORTE Y GRID ESPACIADO */
        .report-form {
            background: var(--bg-card); border: 1px solid var(--border-color);
            border-radius: 16px; padding: 20px; display: flex; flex-direction: column; gap: 12px;
            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); margin-top: 10px;
        }
        .report-input, .report-textarea {
            background: rgba(150, 150, 150, 0.08); border: 1px solid var(--border-color);
            border-radius: 10px; padding: 12px; color: var(--text-primary); font-size: 0.9rem; outline: none; transition: border-color 0.2s; width: 100%;
        }
        .report-input:focus, .report-textarea:focus { border-color: #f59e0b; }
        .report-textarea { resize: none; height: 80px; }

        .category-grid-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 4px; }
        .cat-card-item {
            background: rgba(150, 150, 150, 0.08); border: 1px solid var(--border-color);
            border-radius: 12px; padding: 10px 4px; display: flex; flex-direction: column;
            align-items: center; justify-content: center; gap: 4px; cursor: pointer; transition: all 0.2s ease; color: var(--text-secondary);
        }
        .cat-card-item .material-icons-round { font-size: 22px; }
        .cat-card-item span { font-size: 0.7rem; font-weight: 600; text-align: center; line-height: 1.1; }
        .cat-card-item.active { background: rgba(245, 158, 11, 0.15); border-color: #f59e0b; color: #f59e0b; transform: scale(1.02); }

        .upload-photo-box {
            background: rgba(150, 150, 150, 0.04); border: 1px dashed var(--border-color);
            border-radius: 10px; padding: 12px; display: flex; justify-content: center; align-items: center; transition: border-color 0.2s;
        }
        .upload-photo-box:hover { border-color: #3b82f6; }

        .btn-report {
            background: linear-gradient(135deg, #f59e0b, #d97706); color: #fff; border: none;
            padding: 14px; border-radius: 10px; font-weight: 700; cursor: pointer; display: flex; justify-content: center; align-items: center; gap: 8px;
            box-shadow: 0 4px 12px rgba(245, 158, 11, 0.25); transition: opacity 0.2s; font-size: 0.95rem;
        }
        .btn-report:active { opacity: 0.85; }

        /* ESTILOS INTERRUPTOR TEMA (SWITCH) */
        .switch-theme { position: relative; display: inline-block; width: 46px; height: 24px; }
        .switch-theme input { opacity: 0; width: 0; height: 0; }
        .slider-theme {
            position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0;
            background-color: #334155; transition: .3s; border-radius: 24px; border: 1px solid var(--border-color);
        }
        .slider-theme:before {
            position: absolute; content: ""; height: 18px; width: 18px; left: 2px; bottom: 2px;
            background-color: white; transition: .3s; border-radius: 50%;
        }
        input:checked + .slider-theme { background-color: #3b82f6; }
        input:checked + .slider-theme:before { transform: translateX(22px); }

        .centered-view { padding: 20px; overflow-y: auto; }
        .badge-pill { background: rgba(59, 130, 246, 0.15); border: 1px solid rgba(59, 130, 246, 0.3); padding: 6px 14px; border-radius: 20px; font-weight: 600; font-size: 0.8rem; color: #60a5fa; margin-top: 10px; display: inline-block; }

        /* MODALES Y OVERLAYS */
        .auth-overlay {
            position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            background-color: rgba(9, 13, 22, 0.85); backdrop-filter: blur(8px);
            z-index: 100; display: none; justify-content: center; align-items: center;
        }
        .auth-card {
            background-color: var(--bg-nav); border: 1px solid var(--border-color);
            padding: 30px 24px; border-radius: 20px; width: 90%; max-width: 420px; text-align: left; position: relative;
            box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.5); max-height: 85vh; overflow-y: auto;
        }
        .auth-card h2 { font-size: 1.2rem; margin-bottom: 12px; color: var(--text-primary); line-height: 1.4; word-break: break-word; }
        .auth-form { display: flex; flex-direction: column; gap: 10px; }
        .auth-input { background: rgba(150, 150, 150, 0.08); border: 1px solid var(--border-color); padding: 12px; border-radius: 10px; color: var(--text-primary); outline: none; font-size: 0.9rem; }
        .auth-input:focus { border-color: #f59e0b; }
        .register-only { display: none; }
        .btn-auth { background: linear-gradient(135deg, #3b82f6, #2563eb); color: #fff; border: none; padding: 12px; border-radius: 10px; font-weight: 700; cursor: pointer; font-size: 0.95rem; margin-top: 6px; }
        .auth-toggle { margin-top: 15px; font-size: 0.82rem; color: var(--text-secondary); text-align: center; }
        .auth-toggle span { color: #f59e0b; cursor: pointer; text-decoration: underline; font-weight: 600; }
        .btn-close-modal { position: absolute; top: 14px; right: 14px; background: transparent; border: none; color: var(--text-secondary); cursor: pointer; }

        /* ==========================================================
   CERCA — SISTEMA PREMIUM DE AVISOS
   ========================================================== */

.toast-container {
    position: fixed;
    top: calc(16px + env(safe-area-inset-top));
    left: 50%;
    transform: translateX(-50%);
    z-index: 30000;
    width: calc(100% - 24px);
    max-width: 390px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    pointer-events: none;
}

.toast {
    --toast-color: #3b82f6;
    --toast-glow: rgba(59, 130, 246, .22);
    position: relative;
    overflow: hidden;
    width: 100%;
    min-height: 68px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 18px;
    background: linear-gradient(145deg, rgba(22, 27, 39, .96), rgba(10, 14, 23, .97));
    border: 1px solid rgba(255,255,255,.10);
    box-shadow: 0 15px 40px rgba(0,0,0,.38), 0 0 28px var(--toast-glow);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    color: #fff;
    opacity: 0;
    transform: translateY(-18px) scale(.96);
    transition: opacity .28s ease, transform .32s cubic-bezier(.22,.9,.3,1);
    pointer-events: auto;
}

.toast.show {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.toast::before {
    content: "";
    position: absolute;
    left: 0;
    top: 12px;
    bottom: 12px;
    width: 4px;
    border-radius: 0 8px 8px 0;
    background: var(--toast-color);
    box-shadow: 0 0 14px var(--toast-color);
}

.toast-icon {
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: var(--toast-glow);
    color: var(--toast-color);
}

.toast-icon .material-icons-round { font-size: 23px; }

.toast-content { flex: 1; min-width: 0; }

.toast-title {
    display: block;
    margin-bottom: 3px;
    font-size: .78rem;
    font-weight: 850;
    letter-spacing: .03em;
    color: #fff;
}

.toast-message {
    display: block;
    font-size: .76rem;
    font-weight: 500;
    line-height: 1.35;
    color: rgba(255,255,255,.72);
    overflow-wrap: anywhere;
}

.toast-close {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    background: rgba(255,255,255,.06);
    color: rgba(255,255,255,.55);
    cursor: pointer;
}

.toast-close .material-icons-round { font-size: 18px; }

.toast-progress {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 3px;
    transform-origin: left;
    background: var(--toast-color);
    opacity: .9;
}

.toast.success { --toast-color: #10b981; --toast-glow: rgba(16,185,129,.20); }
.toast.error { --toast-color: #ef4444; --toast-glow: rgba(239,68,68,.22); }
.toast.warning { --toast-color: #f59e0b; --toast-glow: rgba(245,158,11,.20); }
.toast.info { --toast-color: #3b82f6; --toast-glow: rgba(59,130,246,.20); }
.toast.sos {
    --toast-color: #ff2d55;
    --toast-glow: rgba(255,45,85,.30);
    animation: cercaToastSOS 1.25s infinite alternate;
}

@keyframes cercaToastSOS {
    from { box-shadow: 0 15px 40px rgba(0,0,0,.38), 0 0 20px rgba(255,45,85,.18); }
    to { box-shadow: 0 15px 40px rgba(0,0,0,.38), 0 0 38px rgba(255,45,85,.42); }
}

/* CONFIRMACIÓN PREMIUM CERCA */
.confirm-overlay {
    position: fixed;
    inset: 0;
    z-index: 31000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(3, 7, 18, .78);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.confirm-overlay.show { display: flex; }

.confirm-card {
    width: 100%;
    max-width: 345px;
    padding: 24px 20px 18px;
    border-radius: 24px;
    text-align: center;
    background: linear-gradient(145deg, rgba(25,30,43,.98), rgba(9,13,22,.99));
    border: 1px solid rgba(255,255,255,.10);
    box-shadow: 0 28px 80px rgba(0,0,0,.55);
    animation: cercaConfirmEntrada .32s cubic-bezier(.22,.9,.3,1);
}

@keyframes cercaConfirmEntrada {
    from { opacity: 0; transform: scale(.90) translateY(16px); }
    to { opacity: 1; transform: scale(1) translateY(0); }
}

.confirm-icon {
    width: 62px;
    height: 62px;
    margin: 0 auto 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 20px;
    background: rgba(245,158,11,.13);
    color: #f59e0b;
    box-shadow: 0 0 30px rgba(245,158,11,.12);
}

.confirm-icon .material-icons-round { font-size: 32px; }

.confirm-card h3 {
    margin: 0 0 7px;
    color: #fff;
    font-size: 1.08rem;
    font-weight: 850;
}

.confirm-card p {
    margin: 0 5px 21px;
    color: rgba(255,255,255,.62);
    font-size: .80rem;
    line-height: 1.45;
}

.confirm-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.btn-confirm-cancel,
.btn-confirm-danger {
    min-height: 46px;
    border-radius: 14px;
    font-size: .80rem;
    font-weight: 800;
    cursor: pointer;
    transition: transform .18s ease, opacity .18s ease;
}

.btn-confirm-cancel:active,
.btn-confirm-danger:active { transform: scale(.96); }

.btn-confirm-cancel {
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.10);
    color: rgba(255,255,255,.82);
}

.btn-confirm-danger {
    border: none;
    background: linear-gradient(135deg, #f59e0b, #ea580c);
    color: #fff;
    box-shadow: 0 8px 20px rgba(245,158,11,.20);
}

.confirm-card.danger .confirm-icon {
    color: #ef4444;
    background: rgba(239,68,68,.14);
    box-shadow: 0 0 30px rgba(239,68,68,.14);
}

.confirm-card.danger .btn-confirm-danger {
    background: linear-gradient(135deg, #ef4444, #dc2626);
    box-shadow: 0 8px 20px rgba(239,68,68,.22);
}

.confirm-card.sos .confirm-icon {
    color: #ff2d55;
    background: rgba(255,45,85,.14);
}

.confirm-card.sos .btn-confirm-danger {
    background: linear-gradient(135deg, #ff2d55, #dc143c);
}

@media (max-width: 480px) {
    .toast-container { top: calc(10px + env(safe-area-inset-top)); }
    .toast { min-height: 64px; border-radius: 17px; }
    .confirm-card { max-width: 330px; }
}

        /* ESTILOS DE ACOMPÁÑAME */
        .card-recorrido {
            background: linear-gradient(135deg, rgba(16, 185, 129, 0.12), rgba(6, 95, 70, 0.2));
            border: 1px solid rgba(16, 185, 129, 0.4); border-radius: 16px; padding: 16px;
            display: flex; flex-direction: column; gap: 10px; margin-bottom: 16px;
        }
        .btn-recorrido-start {
            background: linear-gradient(135deg, #10b981, #059669); color: #fff; border: none;
            padding: 12px; border-radius: 10px; font-weight: 800; cursor: pointer;
            display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 0.9rem;
            box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3); transition: all 0.2s;
        }
        .btn-recorrido-stop {
            background: linear-gradient(135deg, #ef4444, #dc2626); color: #fff; border: none;
            padding: 12px; border-radius: 10px; font-weight: 800; cursor: pointer;
            display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 0.9rem;
            box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3); transition: all 0.2s;
        }
        .btn-share-whatsapp {
            background: #25D366; color: #000; border: none; padding: 10px; border-radius: 8px;
            font-weight: 700; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 0.8rem;
        }

        /* TIMELINE ESTILOS EN MODAL MAPA */
        .timeline-container {
            margin-top: 10px; max-height: 140px; overflow-y: auto; padding: 10px;
            background: rgba(15, 23, 42, 0.8); border-radius: 8px; border: 1px solid var(--border-color);
        }
        .timeline-item {
            font-size: 0.75rem; color: var(--text-primary); margin-bottom: 6px;
            display: flex; align-items: flex-start; gap: 8px;
        }
        .timeline-item .material-icons-round { font-size: 16px; margin-top: 2px; }

        /* --- SECCIÓN MÁS --- */
        #view-mas {
            overflow-y: auto;
        }
        .mas-container {
            padding: 16px;
            max-width: 800px;
            margin: 0 auto;
            width: 100%;
        }
        .mas-header h2 {
            font-size: 1.3rem;
            margin-bottom: 4px;
        }
        .mas-header p {
            color: var(--text-secondary);
            font-size: 0.85rem;
            margin-bottom: 16px;
        }
        .mas-search-box input {
            width: 100%;
            padding: 12px 16px;
            border-radius: 12px;
            border: 1px solid var(--border-color);
            background: var(--bg-card);
            color: var(--text-primary);
            font-size: 0.9rem;
            margin-bottom: 20px;
            outline: none;
        }
        .mas-category {
            margin-bottom: 20px;
        }
        .mas-category h3 {
            font-size: 0.95rem;
            margin-bottom: 10px;
            color: var(--text-primary);
        }
        .mas-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
            gap: 10px;
        }
        .mas-card {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 12px;
            border-radius: 12px;
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            cursor: pointer;
            transition: transform 0.15s ease, box-shadow 0.15s ease;
        }
        .mas-card:hover {
            transform: translateY(-2px);
            border-color: rgba(245, 158, 11, 0.4);
        }
        .mas-icon {
            font-size: 1.6rem;
            line-height: 1;
        }
        .mas-info h4 {
            margin: 0 0 2px 0;
            font-size: 0.9rem;
            color: var(--text-primary);
        }
        .mas-info p {
            margin: 0;
            font-size: 0.75rem;
            color: var(--text-secondary);
        }
.weather-banner{border:1px solid rgba(255,255,255,.09)!important;box-shadow:var(--aj-shadow);background:linear-gradient(135deg,rgba(30,41,59,.82),rgba(15,23,42,.62))!important;position:relative;overflow:hidden;}
.weather-banner::after{content:"";position:absolute;width:130px;height:130px;right:-45px;top:-55px;border-radius:50%;background:rgba(245,158,11,.10);filter:blur(3px);}
.light-theme .weather-banner{background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(241,245,249,.90))!important;}

/* Dashboard principal */
.aj-dashboard{display:flex;flex-direction:column;gap:12px;margin:12px 0 14px;}
.aj-live-card{position:relative;overflow:hidden;border:1px solid rgba(245,158,11,.24);border-radius:22px;padding:16px;background:linear-gradient(135deg,rgba(245,158,11,.12),rgba(15,23,42,.72) 48%,rgba(59,130,246,.10));box-shadow:var(--aj-shadow);}
.aj-live-card::before{content:"";position:absolute;inset:auto -40px -70px auto;width:180px;height:180px;border-radius:50%;background:rgba(59,130,246,.12);filter:blur(20px);}
.light-theme .aj-live-card{background:linear-gradient(135deg,rgba(255,247,237,.95),rgba(255,255,255,.96) 55%,rgba(239,246,255,.94));}
.aj-live-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;position:relative;z-index:1;}
.aj-kicker{display:flex;align-items:center;gap:7px;color:#fbbf24;font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.11em;}
.aj-kicker-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 5px rgba(34,197,94,.10),0 0 16px rgba(34,197,94,.7);animation:ajPulse 1.7s infinite;}
@keyframes ajPulse{50%{transform:scale(.75);opacity:.55}}
.aj-live-title{margin:7px 0 4px;font-size:1.3rem;font-weight:900;letter-spacing:-.035em;color:var(--text-primary);}
.aj-live-sub{margin:0;color:var(--text-secondary);font-size:.76rem;line-height:1.4;max-width:330px;}
.aj-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:14px;position:relative;z-index:1;}
.aj-stat{padding:10px;border-radius:14px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.07);min-width:0;}
.light-theme .aj-stat{background:rgba(15,23,42,.035);border-color:rgba(15,23,42,.08);}
.aj-stat strong{display:block;font-size:1rem;color:var(--text-primary);}
.aj-stat span{display:block;margin-top:2px;font-size:.6rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.aj-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.aj-action{border:1px solid var(--border-color);background:rgba(255,255,255,.045);color:var(--text-primary);border-radius:17px;min-height:72px;padding:8px 5px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;transition:.18s ease;box-shadow:0 8px 25px rgba(0,0,0,.08);}
.aj-action:hover{transform:translateY(-2px);border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.08);}
.aj-action:active{transform:scale(.96);}
.aj-action .material-icons-round{font-size:22px;color:#fbbf24;}
.aj-action span:last-child{font-size:.61rem;font-weight:800;}
.aj-action-danger{border-color:rgba(239,68,68,.25);background:rgba(239,68,68,.07);}
.aj-action-danger .material-icons-round{color:#f87171;}
.aj-action-services .material-icons-round{color:#34d399;}
.aj-location-strip{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid rgba(56,189,248,.18);background:rgba(14,165,233,.06);border-radius:15px;color:var(--text-secondary);font-size:.7rem;}
.aj-location-strip .material-icons-round{font-size:18px;color:#38bdf8;}
.aj-location-strip strong{color:var(--text-primary);}
.aj-location-refresh{margin-left:auto;border:0;background:transparent;color:#38bdf8;cursor:pointer;display:flex;}

/* Tabs / filtros */
.home-tab-switcher{position:sticky;top:0;z-index:4;padding:5px!important;background:rgba(9,13,22,.76)!important;backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.06)!important;box-shadow:0 8px 25px rgba(0,0,0,.14);}
.light-theme .home-tab-switcher{background:rgba(255,255,255,.78)!important;}
.home-tab-btn{border-radius:13px!important;min-height:40px;}
.chip-filter{transition:.18s ease!important;}
.chip-filter:hover{transform:translateY(-1px);}
.card-alert{box-shadow:0 10px 30px rgba(0,0,0,.10)!important;border-radius:17px!important;}
.card-alert:hover{transform:translateY(-1px);}

/* Reportes */
.report-form{border:1px solid rgba(255,255,255,.08)!important;border-radius:22px!important;box-shadow:var(--aj-shadow);background:linear-gradient(145deg,rgba(30,41,59,.76),rgba(15,23,42,.65))!important;}
.light-theme .report-form{background:rgba(255,255,255,.94)!important;}
.category-grid-container{gap:8px!important;}
.cat-card-item{min-height:72px!important;border-radius:15px!important;transition:.18s ease!important;}
.cat-card-item:hover{transform:translateY(-2px);}
.btn-report{border-radius:15px!important;box-shadow:0 10px 25px rgba(245,158,11,.18);font-weight:900!important;}

/* SOS flotante */
.aj-floating-sos{position:fixed;right:16px;bottom:92px;z-index:80;width:58px;height:58px;border-radius:50%;border:2px solid rgba(255,255,255,.20);background:linear-gradient(145deg,#ef4444,#b91c1c);color:white;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(239,68,68,.38),0 0 0 7px rgba(239,68,68,.08);cursor:pointer;touch-action:none;user-select:none;}
.aj-floating-sos .material-icons-round{font-size:28px;}
.aj-floating-sos::after{content:"SOS";position:absolute;bottom:-17px;font-size:.55rem;font-weight:900;letter-spacing:.08em;color:#f87171;}
.aj-floating-sos.holding{animation:ajSosHold 1.5s linear forwards;}
@keyframes ajSosHold{from{box-shadow:0 10px 30px rgba(239,68,68,.38),0 0 0 7px rgba(239,68,68,.08)}to{box-shadow:0 10px 30px rgba(239,68,68,.55),0 0 0 16px rgba(239,68,68,.18)}}

/* Estados / accesibilidad */
button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #38bdf8;outline-offset:2px;}
.aj-severity{display:inline-flex;align-items:center;gap:4px;font-size:.62rem;font-weight:900;text-transform:uppercase;letter-spacing:.3px;margin-left:5px}.aj-severity-dot{width:6px;height:6px;border-radius:50%;display:inline-block}
.aj-confirm-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px}.aj-confirm-btn{border:1px solid rgba(16,185,129,.25);background:rgba(16,185,129,.09);color:#34d399;border-radius:999px;padding:6px 10px;font-size:.68rem;font-weight:850;cursor:pointer}.aj-confirm-btn.confirmed{background:#10b981;color:#052e16;border-color:#10b981}.aj-confirm-btn:disabled{opacity:.75;cursor:default}.aj-confirm-total{font-size:.65rem;color:var(--text-secondary)}
.aj-trust-line{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:7px;font-size:.68rem;color:var(--text-secondary)}
.aj-trust-line strong{color:var(--text-primary)}
.aj-critical-pulse{animation:ajPulse 1.6s infinite}
@keyframes ajPulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.0)}50%{box-shadow:0 0 0 8px rgba(239,68,68,.14)}}
.aj-event-badge{display:inline-flex;align-items:center;gap:4px;margin-left:6px;padding:3px 6px;border-radius:999px;background:rgba(34,197,94,.10);border:1px solid rgba(34,197,94,.20);color:#4ade80;font-size:.61rem;font-weight:900}
.aj-floating-sos::after{display:none!important}.aj-floating-sos .aj-sos-label{position:absolute;top:calc(100% + 7px);left:50%;transform:translateX(-50%);display:block;padding:3px 8px;border-radius:999px;background:rgba(127,29,29,.94);border:1px solid rgba(255,255,255,.18);color:#fff;font-size:.56rem;font-weight:950;letter-spacing:.08em;line-height:1;box-shadow:0 6px 18px rgba(0,0,0,.24);pointer-events:none}.aj-floating-sos.holding{animation:ajSosHoldV5 1.5s linear forwards}@keyframes ajSosHoldV5{from{box-shadow:0 12px 34px rgba(239,68,68,.42),0 0 0 8px rgba(239,68,68,.10)}to{box-shadow:0 12px 34px rgba(239,68,68,.60),0 0 0 20px rgba(239,68,68,.18)}}
.aj-floating-sos.aj-dragging{cursor:grabbing!important;transform:scale(.96);transition:none!important;}
.aj-floating-sos .aj-sos-label{pointer-events:none;}
.centered-view{
  padding-bottom:28px!important;
}
#view-mas{
  padding-bottom:0!important;
}
.mas-container{
  padding-bottom:28px!important;
}
/* Evita que el SOS quede detrás del teclado/nav y conserva el arrastre */
.aj-floating-sos{
  z-index:5000!important;
}
html,body{max-width:100%;overflow-x:hidden;}

/* Panel de ruta segura */
.aj-safe-controls{display:flex;flex-direction:column;gap:9px;padding:10px 12px;border-bottom:1px solid rgba(148,163,184,.14)}
.aj-safe-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid rgba(34,197,94,.20);background:rgba(34,197,94,.07);border-radius:12px;padding:8px 10px}
.aj-safe-toggle-copy{min-width:0}.aj-safe-toggle-copy strong{display:flex;align-items:center;gap:5px;font-size:.69rem;color:#4ade80}.aj-safe-toggle-copy span{display:block;font-size:.57rem;color:var(--text-secondary);margin-top:2px;line-height:1.3}
.aj-safe-switch{position:relative;width:42px;height:24px;flex:0 0 auto}.aj-safe-switch input{position:absolute;opacity:0;pointer-events:none}.aj-safe-slider{position:absolute;inset:0;border-radius:999px;background:#334155;border:1px solid rgba(148,163,184,.25);cursor:pointer}.aj-safe-slider:before{content:"";position:absolute;width:18px;height:18px;left:2px;top:2px;border-radius:50%;background:#fff;transition:.18s}.aj-safe-switch input:checked+.aj-safe-slider{background:#16a34a}.aj-safe-switch input:checked+.aj-safe-slider:before{transform:translateX(18px)}
.aj-safe-status{display:none;margin:0 12px 10px;padding:9px 10px;border-radius:12px;border:1px solid rgba(34,197,94,.18);background:rgba(34,197,94,.07);font-size:.63rem;line-height:1.4;color:var(--text-secondary)}
.aj-safe-status.show{display:block}.aj-safe-status strong{color:#4ade80}.aj-safe-status.warn{border-color:rgba(245,158,11,.24);background:rgba(245,158,11,.08)}.aj-safe-status.warn strong{color:#f59e0b}.aj-safe-status.danger{border-color:rgba(239,68,68,.24);background:rgba(239,68,68,.08)}.aj-safe-status.danger strong{color:#ef4444}

/* El SOS arrastrable siempre queda dentro del área visible */
.aj-floating-sos{max-width:68px!important;max-height:68px!important;}

.aj-filter-sheet-backdrop{
    position:absolute;
    inset:0;
    z-index:5600;
    background:rgba(2,6,23,.58);
    backdrop-filter:blur(2px);
    opacity:0;
    pointer-events:none;
    transition:opacity .22s ease;
}
.aj-filter-sheet-backdrop.show{opacity:1;pointer-events:auto}

.aj-filter-sheet{
    position:absolute;
    z-index:5700;
    left:8px;
    right:8px;
    bottom:8px;
    max-height:min(78%,650px);
    display:flex;
    flex-direction:column;
    border-radius:24px 24px 18px 18px;
    background:rgba(10,17,30,.985);
    border:1px solid rgba(255,255,255,.13);
    box-shadow:0 -20px 60px rgba(0,0,0,.42);
    color:#fff;
    transform:translateY(calc(100% + 24px));
    opacity:0;
    pointer-events:none;
    transition:transform .25s ease,opacity .2s ease;
    overflow:hidden;
}
.aj-filter-sheet.show{transform:translateY(0);opacity:1;pointer-events:auto}
body.light-theme .aj-filter-sheet{background:rgba(255,255,255,.99);color:#0f172a;border-color:rgba(15,23,42,.12)}
.aj-filter-sheet-handle{width:42px;height:4px;border-radius:99px;background:#64748b;margin:8px auto 2px;opacity:.7}
.aj-filter-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:10px 14px 12px;border-bottom:1px solid rgba(148,163,184,.15)}
.aj-filter-sheet-head h3{margin:0;display:flex;align-items:center;gap:7px;font-size:.98rem}
.aj-filter-sheet-head h3 .material-icons-round{color:#f59e0b}
.aj-filter-sheet-head p{margin:4px 0 0;color:var(--text-secondary);font-size:.66rem}
.aj-filter-sheet-head button{border:0;background:transparent;color:inherit;padding:5px;display:flex;cursor:pointer}

.aj-filter-sheet-grid{
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding:10px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px;
}
.aj-filter-option{
    width:100%;
    min-width:0;
    border:1px solid rgba(148,163,184,.16);
    background:rgba(255,255,255,.035);
    color:inherit;
    border-radius:15px;
    padding:10px;
    display:grid;
    grid-template-columns:34px minmax(0,1fr);
    gap:9px;
    align-items:center;
    text-align:left;
    cursor:pointer;
}
body.light-theme .aj-filter-option{background:rgba(15,23,42,.025)}
.aj-filter-option>.material-icons-round{
    width:34px;height:34px;border-radius:11px;
    display:flex;align-items:center;justify-content:center;
    background:rgba(59,130,246,.12);color:#60a5fa;font-size:20px;
}
.aj-filter-option strong{display:block;font-size:.72rem;line-height:1.15}
.aj-filter-option small{display:block;margin-top:3px;font-size:.56rem;line-height:1.25;color:var(--text-secondary)}
.aj-filter-option.active{border-color:#f59e0b;background:rgba(245,158,11,.10)}
.aj-filter-option.active>.material-icons-round{background:rgba(245,158,11,.18);color:#f59e0b}
.aj-destination-sheet{
    position:absolute;z-index:5800;left:8px;right:8px;bottom:8px;
    max-height:min(84%,700px);display:flex;flex-direction:column;
    border-radius:24px 24px 18px 18px;background:rgba(10,17,30,.99);
    border:1px solid rgba(255,255,255,.13);box-shadow:0 -20px 60px rgba(0,0,0,.45);
    color:#fff;transform:translateY(calc(100% + 30px));opacity:0;pointer-events:none;
    transition:transform .25s ease,opacity .2s ease;overflow:hidden;
}
.aj-destination-sheet.show{transform:translateY(0);opacity:1;pointer-events:auto}
body.light-theme .aj-destination-sheet{background:rgba(255,255,255,.99);color:#0f172a;border-color:rgba(15,23,42,.12)}
.aj-destination-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:14px;border-bottom:1px solid rgba(148,163,184,.15)}
.aj-destination-head h3{margin:0;display:flex;align-items:center;gap:7px;font-size:1rem}
.aj-destination-head h3 .material-icons-round{color:#4ade80}
.aj-destination-head p{margin:4px 0 0;color:var(--text-secondary);font-size:.67rem}
.aj-destination-head button{border:0;background:transparent;color:inherit;cursor:pointer;padding:4px}
.aj-destination-body{padding:12px;overflow-y:auto}
.aj-destination-search{display:flex;gap:7px}
.aj-destination-searchbox{flex:1;min-width:0;position:relative}
.aj-destination-searchbox .material-icons-round{position:absolute;left:11px;top:50%;transform:translateY(-50%);font-size:19px;color:#94a3b8}
#ajDestinationInput{width:100%;height:46px;border-radius:13px;border:1px solid rgba(148,163,184,.22);background:rgba(255,255,255,.055);color:inherit;padding:0 12px 0 38px;outline:none;font-size:.78rem}
body.light-theme #ajDestinationInput{background:#f8fafc}
#ajDestinationInput:focus{border-color:#4ade80;box-shadow:0 0 0 3px rgba(74,222,128,.10)}
#ajDestinationSearchBtn{width:46px;height:46px;border:0;border-radius:13px;background:#16a34a;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}
.aj-destination-results{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.aj-destination-result{width:100%;border:1px solid rgba(148,163,184,.16);background:rgba(255,255,255,.035);color:inherit;border-radius:13px;padding:9px 10px;display:grid;grid-template-columns:32px minmax(0,1fr);gap:8px;text-align:left;cursor:pointer}
body.light-theme .aj-destination-result{background:rgba(15,23,42,.025)}
.aj-destination-result .material-icons-round{width:32px;height:32px;border-radius:10px;background:rgba(59,130,246,.12);color:#60a5fa;display:flex;align-items:center;justify-content:center;font-size:18px}
.aj-destination-result strong{display:block;font-size:.71rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aj-destination-result small{display:block;margin-top:2px;color:var(--text-secondary);font-size:.57rem;line-height:1.25}
.aj-selected-destination{display:none;margin-top:10px;padding:10px;border-radius:13px;background:rgba(59,130,246,.08);border:1px solid rgba(59,130,246,.20)}
.aj-selected-destination.show{display:flex;align-items:center;gap:9px}
.aj-selected-destination>.material-icons-round{color:#60a5fa}
.aj-selected-destination strong{display:block;font-size:.72rem}
.aj-selected-destination small{display:block;color:var(--text-secondary);font-size:.58rem;margin-top:2px}
.aj-travel-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:11px}
.aj-travel-mode{min-height:42px;border-radius:12px;border:1px solid rgba(148,163,184,.17);background:rgba(255,255,255,.035);color:inherit;display:flex;align-items:center;justify-content:center;gap:5px;font-size:.65rem;font-weight:800;cursor:pointer}
.aj-travel-mode.active{border-color:#4ade80;background:rgba(74,222,128,.10);color:#86efac}


/* V8.1 — PRIVACIDAD / SEGUIMIENTO TEMPORAL */
.aj-tracking-viewer{position:fixed;inset:0;z-index:10000;background:var(--bg-main);color:var(--text-primary);display:none;flex-direction:column}
.aj-tracking-viewer.show{display:flex}
.aj-tracking-top{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 14px 12px;background:var(--bg-nav);border-bottom:1px solid var(--border-color)}
.aj-tracking-kicker{display:flex;align-items:center;gap:7px;color:#4ade80;font-size:.62rem;font-weight:900;letter-spacing:.08em}
.aj-tracking-kicker span{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 5px rgba(34,197,94,.12)}
.aj-tracking-top h2{margin:5px 0 2px;font-size:1rem}.aj-tracking-top p{margin:0;color:var(--text-secondary);font-size:.67rem}
.aj-tracking-top button{border:0;background:rgba(148,163,184,.10);color:inherit;width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.aj-tracking-info{flex:0 0 auto;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px}
.aj-tracking-info>div{min-width:0;display:grid;grid-template-columns:30px minmax(0,1fr);gap:7px;align-items:center;padding:9px;border:1px solid var(--border-color);border-radius:13px;background:var(--bg-card)}
.aj-tracking-info .material-icons-round{color:#38bdf8;font-size:20px}.aj-tracking-info small{display:block;color:var(--text-secondary);font-size:.55rem}
.aj-tracking-info strong{display:block;margin-top:2px;font-size:.68rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aj-tracking-privacy .material-icons-round{font-size:17px;color:#4ade80}


/* ============================================================
   CERCA V9 BETA — ESTADOS + OPS V2 + RUTA CERCA V2
   ============================================================ */
.aj-v9-state{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:999px;font-size:.57rem;font-weight:950;letter-spacing:.035em;text-transform:uppercase;border:1px solid transparent}
.aj-v9-state.nuevo{color:#60a5fa;background:rgba(59,130,246,.10);border-color:rgba(59,130,246,.24)}
.aj-v9-state.confirmado{color:#34d399;background:rgba(16,185,129,.10);border-color:rgba(16,185,129,.24)}
.aj-v9-state.atencion{color:#fbbf24;background:rgba(245,158,11,.10);border-color:rgba(245,158,11,.24)}
.aj-v9-state.resuelto{color:#94a3b8;background:rgba(148,163,184,.10);border-color:rgba(148,163,184,.20)}
.aj-v9-resolve{margin-top:7px;width:100%;border:1px solid rgba(16,185,129,.24);background:rgba(16,185,129,.08);color:#34d399;border-radius:10px;padding:7px;font-size:.65rem;font-weight:900;cursor:pointer}


/* ============================================================
   CERCA V1 — IDENTIDAD / MISIÓN CIUDADANA
   ============================================================ */
.cerca-brand-word{font-weight:1000;letter-spacing:-.045em}.cerca-brand-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 5px rgba(34,197,94,.10);margin-left:5px;vertical-align:middle}
.cerca-mission{margin:10px 12px 12px;padding:14px;border:1px solid rgba(56,189,248,.16);border-radius:18px;background:linear-gradient(135deg,rgba(14,165,233,.10),rgba(34,197,94,.055));overflow:hidden;position:relative}
.cerca-mission:after{content:"";position:absolute;width:130px;height:130px;border-radius:50%;right:-55px;top:-65px;background:rgba(56,189,248,.08)}
.cerca-mission-kicker{font-size:.58rem;font-weight:950;letter-spacing:.11em;color:#38bdf8;text-transform:uppercase}.cerca-mission h2{font-size:1.08rem;margin:5px 0 4px;line-height:1.08}.cerca-mission p{font-size:.67rem;color:var(--text-secondary);line-height:1.4;margin:0;max-width:88%}
.cerca-quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:12px}.cerca-quick{border:1px solid var(--border-color);background:rgba(255,255,255,.035);color:var(--text-primary);border-radius:13px;padding:9px 5px;text-align:center;cursor:pointer;font:inherit}.cerca-quick .material-icons-round{display:block;font-size:21px;margin-bottom:4px;color:#38bdf8}.cerca-quick b{font-size:.58rem;display:block}.cerca-quick.sos .material-icons-round{color:#fb7185}.cerca-quick.help .material-icons-round{color:#4ade80}
.cerca-source-tabs{display:flex;gap:7px;margin:8px 12px 10px;overflow-x:auto;scrollbar-width:none}.cerca-source-tabs::-webkit-scrollbar{display:none}.cerca-source-tab{flex:0 0 auto;border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-secondary);border-radius:999px;padding:7px 11px;font-size:.62rem;font-weight:900;cursor:pointer}.cerca-source-tab.active{color:#fff;border-color:rgba(56,189,248,.35);background:rgba(56,189,248,.12)}
.cerca-help-sheet{position:fixed;inset:0;z-index:10020;background:rgba(2,6,23,.72);backdrop-filter:blur(8px);display:none;align-items:flex-end;justify-content:center}.cerca-help-sheet.show{display:flex}.cerca-help-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.cerca-help-head h3{margin:0;font-size:1rem}.cerca-help-head p{margin:4px 0 0;color:var(--text-secondary);font-size:.65rem}.cerca-help-close{border:0;background:rgba(148,163,184,.1);color:inherit;border-radius:11px;width:38px;height:38px}.cerca-help-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px}.cerca-help-action{border:1px solid var(--border-color);border-radius:14px;background:var(--bg-card);padding:12px;text-align:left;color:inherit;cursor:pointer}.cerca-help-action .material-icons-round{font-size:24px;color:#4ade80}.cerca-help-action strong{display:block;font-size:.72rem;margin-top:5px}.cerca-help-action span:last-child{display:block;color:var(--text-secondary);font-size:.59rem;margin-top:2px;line-height:1.3}
.cerca-disclaimer{margin:10px 12px 0;color:var(--text-secondary);font-size:.55rem;line-height:1.35;text-align:center}
#cercaMission{display:none!important}
.cerca-app-logo{
    width:35px;height:35px;border-radius:12px;flex:0 0 auto;
    display:flex;align-items:center;justify-content:center;
    background:linear-gradient(145deg,#22c55e,#0891b2);
    color:#fff;box-shadow:0 6px 18px rgba(8,145,178,.22);
}
.cerca-app-logo .material-icons-round{
    font-size:21px!important;color:#fff!important;filter:none!important
}
.cerca-app-title{
    display:flex;flex-direction:column;justify-content:center;min-width:0;line-height:1
}
.cerca-app-title h1{
    margin:0!important;font-size:1.04rem!important;line-height:1!important;
    letter-spacing:.055em!important;font-weight:1000!important;
    background:none!important;-webkit-text-fill-color:currentColor!important;
    color:var(--text-primary)!important
}
.cerca-app-title>span{
    margin-top:4px;font-size:.53rem;font-weight:850;letter-spacing:.06em;
    text-transform:uppercase;color:#4ade80;white-space:nowrap
}
.btn-refresh-global{width:32px!important;height:32px!important}

/* Acciones principales viven dentro de Inicio */
.cerca-home-tools{
    border:1px solid var(--border-color);
    border-radius:18px;padding:12px;
    background:linear-gradient(145deg,rgba(30,41,59,.70),rgba(15,23,42,.62));
    box-shadow:0 10px 28px rgba(0,0,0,.10)
}
body.light-theme .cerca-home-tools{background:#fff}
.cerca-home-tools-head{
    display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px
}
.cerca-home-tools-head>div{min-width:0}
.cerca-home-tools-head span:first-child{
    display:block;color:#38bdf8;font-size:.54rem;font-weight:950;letter-spacing:.10em
}
.cerca-home-tools-head strong{
    display:block;margin-top:3px;font-size:.80rem;line-height:1.15
}
.cerca-home-tools-head>.material-icons-round{font-size:20px;color:#38bdf8}
.cerca-home-tools-grid{
    display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px
}
.cerca-home-tools-grid button{
    min-width:0;min-height:70px;border:1px solid var(--border-color);border-radius:14px;
    background:rgba(255,255,255,.035);color:var(--text-primary);
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
    padding:7px 3px;cursor:pointer;font:inherit
}
body.light-theme .cerca-home-tools-grid button{background:rgba(15,23,42,.025)}
.cerca-home-tools-grid .material-icons-round{font-size:21px;color:#38bdf8}
.cerca-home-tools-grid button.help .material-icons-round{color:#4ade80}
.cerca-home-tools-grid button.sos .material-icons-round{color:#fb7185}
.cerca-home-tools-grid b{font-size:.59rem;line-height:1.1}
.cerca-home-tools-grid small{
    font-size:.48rem;color:var(--text-secondary);line-height:1.1;text-align:center
}

/* El clima ahora es contenido, no otro encabezado */
.weather-banner{
    min-height:84px!important;padding:12px 13px!important;margin:0!important;
    border-radius:17px!important
}
.weather-info h3{font-size:.98rem!important}
.weather-temp{font-size:1.6rem!important}


/* ============================================================
   CERCA V1.2 — TRES MAPAS, TRES OBJETIVOS
   ============================================================ */
.cerca-special-view{position:fixed;inset:0;z-index:12000;background:var(--bg-main);color:var(--text-primary);display:none;flex-direction:column;overflow:hidden}
.cerca-special-view.show{display:flex}
.cerca-special-header{flex:0 0 auto;min-height:68px;display:grid;grid-template-columns:40px minmax(0,1fr) 34px;gap:9px;align-items:center;padding:9px 10px;background:rgba(7,12,22,.97);border-bottom:1px solid var(--border-color);backdrop-filter:blur(20px)}
body.light-theme .cerca-special-header{background:rgba(255,255,255,.98)}
.cerca-special-back{width:38px;height:38px;border:0;border-radius:12px;background:rgba(148,163,184,.10);color:inherit;display:flex;align-items:center;justify-content:center;cursor:pointer}
.cerca-special-header small{display:block;color:#38bdf8;font-size:.49rem;font-weight:950;letter-spacing:.11em}.cerca-special-header h2{margin:2px 0 1px;font-size:.96rem;line-height:1}.cerca-special-header p{margin:0;color:var(--text-secondary);font-size:.55rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cerca-special-headicon{font-size:25px;color:#38bdf8}.cerca-special-headicon.help{color:#4ade80}

/* Ayuda CERCA: solo carga puntos después de elegir tipo */
.cerca-help-types12{flex:0 0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:8px;background:var(--bg-main);border-bottom:1px solid var(--border-color)}.cerca-help-types12 button{min-width:0;border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-primary);border-radius:13px;padding:8px 3px;display:flex;flex-direction:column;align-items:center;gap:3px;font:inherit}.cerca-help-types12 .material-icons-round{font-size:21px;color:#4ade80}.cerca-help-types12 b{font-size:.52rem;white-space:nowrap}.cerca-help-types12 button.active{border-color:rgba(74,222,128,.38);background:rgba(74,222,128,.09)}.cerca-help-empty12{text-align:center;padding:8px;color:var(--text-secondary)}.cerca-help-empty12 .material-icons-round{font-size:23px;color:#4ade80}.cerca-help-empty12 strong{display:block;color:var(--text-primary);font-size:.72rem;margin-top:3px}.cerca-help-empty12 p{font-size:.55rem;margin:3px 0 0}.cerca-other-title12{font-size:.54rem;font-weight:900;color:var(--text-secondary);margin:10px 2px 5px}.cerca-other-place12{width:100%;border:1px solid var(--border-color);background:var(--bg-card);color:inherit;border-radius:11px;padding:8px;margin-top:5px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;text-align:left}.cerca-other-place12 strong{font-size:.60rem;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cerca-other-place12 small{font-size:.50rem;color:var(--text-secondary)}.cerca-other-place12 b{font-size:.55rem;color:#4ade80;align-self:center}


/* ============================================================
   CERCA V1.3 — GOOGLE PLACES PARA AYUDA CERCA
   ============================================================ */
.cerca-places-source13{
    flex:0 0 auto;
    display:flex;align-items:center;justify-content:center;gap:5px;
    padding:5px 8px;
    border-bottom:1px solid var(--border-color);
    color:var(--text-secondary);
    background:rgba(34,197,94,.035);
    font-size:.50rem;font-weight:800;
}
.cerca-places-source13 .material-icons-round{font-size:14px;color:#4ade80}
.cerca-help-radius13{
    display:flex;align-items:center;justify-content:space-between;gap:8px;
    margin-top:6px;padding:6px 8px;border-radius:10px;
    border:1px solid var(--border-color);background:rgba(255,255,255,.025);
    font-size:.51rem;color:var(--text-secondary)
}
.cerca-help-radius13 strong{color:var(--text-primary)}
.cerca-place-badge13{
    display:inline-flex;align-items:center;gap:3px;
    padding:2px 5px;border-radius:999px;
    background:rgba(56,189,248,.09);color:#38bdf8;
    border:1px solid rgba(56,189,248,.17);
    font-size:.45rem;font-weight:900;margin-left:5px
}
.cerca-place-rating13{color:#fbbf24;font-weight:900}
@keyframes cercaTrafficPulse14{50%{opacity:.35}}
.cerca-google-user14{
    width:18px;height:18px;border-radius:50%;
    border:3px solid #fff;background:#38bdf8;
    box-shadow:0 0 0 6px rgba(56,189,248,.16),0 4px 12px rgba(0,0,0,.25)
}

.cerca-home-tools-grid{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
}

/* Pantallas independientes */
.cerca-feed-view15{
    position:fixed;
    inset:0;
    z-index:12500;
    background:var(--bg-main);
    color:var(--text-primary);
    display:none;
    flex-direction:column;
    overflow:hidden;
}
.cerca-feed-view15.show{display:flex}

.cerca-feed-head15{
    flex:0 0 auto;
    min-height:68px;
    display:grid;
    grid-template-columns:40px minmax(0,1fr) 34px;
    gap:9px;
    align-items:center;
    padding:9px 10px;
    background:rgba(7,12,22,.98);
    border-bottom:1px solid var(--border-color);
}
body.light-theme .cerca-feed-head15{background:rgba(255,255,255,.98)}

.cerca-feed-head15 button{
    width:38px;height:38px;border:0;border-radius:12px;
    background:rgba(148,163,184,.10);
    color:inherit;
    display:flex;align-items:center;justify-content:center;
}
.cerca-feed-head15>span{font-size:25px;color:#fbbf24}
.cerca-feed-head15.near>span{color:#38bdf8}
.cerca-feed-head15 small{
    display:block;font-size:.47rem;font-weight:950;letter-spacing:.10em;color:#fbbf24
}
.cerca-feed-head15.near small{color:#38bdf8}
.cerca-feed-head15 h2{margin:2px 0 1px;font-size:1rem;line-height:1}
.cerca-feed-head15 p{
    margin:0;font-size:.54rem;color:var(--text-secondary);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.cerca-feed-tabs15 button.active{
    background:rgba(245,158,11,.12);
    border-color:rgba(245,158,11,.35);
    color:#fbbf24
}

.cerca-hero-now15{
    border:1px solid rgba(245,158,11,.20);
    border-radius:18px;
    padding:13px;
    margin-bottom:10px;
    background:linear-gradient(145deg,rgba(245,158,11,.10),rgba(15,23,42,.42))
}
.cerca-hero-now15 small{
    font-size:.48rem;font-weight:950;letter-spacing:.10em;color:#fbbf24
}
.cerca-hero-now15 h3{font-size:.92rem;margin:4px 0}
.cerca-hero-now15 p{
    font-size:.57rem;color:var(--text-secondary);margin:0;line-height:1.4
}

.cerca-summary-grid15{
    display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:12px
}
.cerca-summary15{
    border:1px solid var(--border-color);
    background:var(--bg-card);
    border-radius:14px;
    padding:9px;
    text-align:center
}
.cerca-summary15 b{display:block;font-size:1rem}
.cerca-summary15 span{
    display:block;font-size:.48rem;color:var(--text-secondary);margin-top:2px
}

.cerca-section15{
    margin:13px 0 7px;
    display:flex;align-items:end;justify-content:space-between;gap:8px
}
.cerca-section15 div small{
    display:block;font-size:.45rem;font-weight:950;letter-spacing:.10em;color:#38bdf8
}
.cerca-section15 h3{margin:2px 0 0;font-size:.73rem}
.cerca-section15>button{
    border:0;background:transparent;color:#38bdf8;font-size:.52rem;font-weight:900
}

.cerca-event15{
    width:100%;
    border:1px solid var(--border-color);
    background:var(--bg-card);
    color:inherit;
    border-radius:14px;
    padding:10px;
    margin-bottom:7px;
    text-align:left;
    display:grid;
    grid-template-columns:35px minmax(0,1fr) auto;
    gap:8px;
    align-items:center
}
.cerca-event-icon15{
    width:35px;height:35px;border-radius:11px;
    display:flex;align-items:center;justify-content:center;
    background:rgba(56,189,248,.08);color:#38bdf8
}
.cerca-event15.security .cerca-event-icon15{
    background:rgba(239,68,68,.09);color:#fb7185
}
.cerca-event15.vial .cerca-event-icon15{
    background:rgba(245,158,11,.09);color:#fbbf24
}
.cerca-event15 strong{
    display:block;font-size:.63rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.cerca-event15 p{
    margin:2px 0 0;font-size:.51rem;color:var(--text-secondary);line-height:1.3;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden
}
.cerca-event15 time{
    font-size:.46rem;color:var(--text-secondary);white-space:nowrap
}
.cerca-source15{
    display:inline-flex;margin-top:4px;font-size:.43rem;font-weight:900;
    letter-spacing:.06em;color:#38bdf8
}

.cerca-empty15{
    text-align:center;padding:30px 15px;color:var(--text-secondary)
}
.cerca-empty15 .material-icons-round{font-size:32px;color:#38bdf8}
.cerca-empty15 strong{
    display:block;color:var(--text-primary);font-size:.72rem;margin-top:5px
}
.cerca-empty15 p{font-size:.55rem;line-height:1.4}


/* CERCA V1.6 */
.cerca-tools-entry16{
 width:calc(100% - 20px);margin:9px 10px 3px;padding:11px;border:1px solid rgba(56,189,248,.18);
 border-radius:16px;background:linear-gradient(135deg,rgba(56,189,248,.09),rgba(99,102,241,.06));
 color:var(--text-primary);display:grid;grid-template-columns:38px minmax(0,1fr) 24px;gap:9px;align-items:center;text-align:left
}
.cerca-tools-entry-icon16{width:38px;height:38px;border-radius:12px;background:rgba(56,189,248,.12);color:#38bdf8;display:flex;align-items:center;justify-content:center}
.cerca-tools-entry-copy16 small{display:block;font-size:.43rem;font-weight:950;letter-spacing:.09em;color:#38bdf8}
.cerca-tools-entry-copy16 strong{display:block;font-size:.68rem;margin-top:2px}.cerca-tools-entry-copy16 em{display:block;font-style:normal;font-size:.49rem;color:var(--text-secondary);margin-top:2px}
.cerca-v16-view{position:fixed;inset:0;z-index:12600;background:var(--bg-main);color:var(--text-primary);display:none;flex-direction:column;overflow:hidden}
.cerca-v16-view.show{display:flex}
.cerca-v16-head{display:grid;grid-template-columns:40px minmax(0,1fr) 34px;gap:9px;align-items:center;padding:9px 10px;border-bottom:1px solid var(--border-color);background:rgba(7,12,22,.98)}
body.light-theme .cerca-v16-head{background:rgba(255,255,255,.98)}
.cerca-v16-head button{width:38px;height:38px;border:0;border-radius:12px;background:rgba(148,163,184,.1);color:inherit;display:flex;align-items:center;justify-content:center}
.cerca-v16-head>span{font-size:25px;color:#38bdf8}
.cerca-v16-head small{display:block;font-size:.45rem;font-weight:950;letter-spacing:.09em;color:#38bdf8}
.cerca-v16-head h2{font-size:.95rem;margin:2px 0 1px}.cerca-v16-head p{font-size:.52rem;color:var(--text-secondary);margin:0}
.cerca-tools-search16{margin:8px 10px 0;border:1px solid var(--border-color);background:var(--bg-card);border-radius:14px;padding:0 10px;display:flex;align-items:center;gap:7px}
.cerca-tools-search16 span{font-size:19px;color:var(--text-secondary)}.cerca-tools-search16 input{width:100%;height:42px;border:0;outline:0;background:transparent;color:var(--text-primary);font:inherit;font-size:.58rem}
.cerca-tool-section16{margin:8px 0 13px}.cerca-tool-section16 h3{font-size:.52rem;letter-spacing:.1em;color:var(--text-secondary);margin:0 0 7px}
.cerca-tool-grid16{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.cerca-tool16{border:1px solid var(--border-color);background:var(--bg-card);color:inherit;border-radius:15px;padding:10px;text-align:left;min-height:82px}
.cerca-tool16 .material-icons-round{font-size:22px;color:#38bdf8}.cerca-tool16 strong{display:block;font-size:.60rem;margin-top:6px}.cerca-tool16 small{display:block;font-size:.47rem;color:var(--text-secondary);margin-top:2px;line-height:1.3}
.cerca-tool16.future{opacity:.55}.cerca-tool16.future:after{content:"PRÓXIMAMENTE";display:inline-block;margin-top:5px;font-size:.38rem;font-weight:950;letter-spacing:.06em;color:#a78bfa}

/* Base */
body, button, input, select, textarea{
  font-size: var(--cerca-fs-md)!important;
}

/* Header / navegación */
.cerca-app-title h1{
  font-size: clamp(17px, 4.6vw, 20px)!important;
}
.cerca-app-title>span{
  font-size: var(--cerca-fs-xs)!important;
}

/* Inicio */
.cerca-home-tools-head span:first-child{
  font-size: var(--cerca-fs-xs)!important;
}
.cerca-home-tools-head strong{
  font-size: var(--cerca-fs-lg)!important;
}
.cerca-home-tools-grid button{
  min-height: 76px!important;
  padding: 10px 8px!important;
}
.cerca-home-tools-grid b{
  font-size: var(--cerca-fs-sm)!important;
}
.cerca-home-tools-grid small{
  font-size: var(--cerca-fs-xs)!important;
  line-height: 1.35!important;
}
.cerca-tools-entry-copy16 small,
.cerca-tools-entry-copy16 em{
  font-size: var(--cerca-fs-xs)!important;
}
.cerca-tools-entry-copy16 strong{
  font-size: var(--cerca-fs-md)!important;
}

/* Clima */
.weather-info h3{
  font-size: var(--cerca-fs-lg)!important;
}
.weather-info p,
.weather-desc,
.weather-humidity{
  font-size: var(--cerca-fs-sm)!important;
}
.weather-temp{
  font-size: clamp(26px, 7vw, 34px)!important;
}
.cerca-feed-head15 h2{
  font-size: var(--cerca-fs-xl)!important;
}
.cerca-event15{
  min-height: 74px!important;
  padding: 12px!important;
}
.cerca-event15 strong{
  font-size: var(--cerca-fs-md)!important;
}
.cerca-special-header h2{
  font-size: var(--cerca-fs-xl)!important;
}
.cerca-special-header p{
  font-size: var(--cerca-fs-sm)!important;
}
.cerca-help-types12 button{
  min-height: 62px!important;
  padding: 9px 5px!important;
}

/* Herramientas */
.cerca-v16-head small,
.cerca-tool-section16 h3,
.cerca-tool16 small{
  font-size: var(--cerca-fs-xs)!important;
}
.cerca-v16-head h2{
  font-size: var(--cerca-fs-xl)!important;
}
.cerca-v16-head p,
.cerca-tools-search16 input{
  font-size: var(--cerca-fs-sm)!important;
}
.cerca-tool16 strong{
  font-size: var(--cerca-fs-md)!important;
}
.cerca-tool16{
  min-height: 94px!important;
  padding: 12px!important;
}

/* Reportar */
#view-reportar label,
#view-reportar .form-label,
#view-reportar .report-category-label,
#view-reportar small,
#view-reportar p{
  font-size: var(--cerca-fs-sm)!important;
}
#view-reportar input,
#view-reportar textarea,
#view-reportar select,
#view-reportar button{
  font-size: var(--cerca-fs-md)!important;
  min-height: var(--cerca-touch);
}
#view-reportar textarea{
  line-height: 1.45!important;
}

/* Perfil */
#view-perfil,
#view-perfil p,
#view-perfil small,
#view-perfil label{
  font-size: var(--cerca-fs-sm)!important;
}
#view-perfil h2,
#view-perfil h3{
  font-size: var(--cerca-fs-lg)!important;
}
#view-perfil button,
#view-perfil input{
  min-height: var(--cerca-touch)!important;
  font-size: var(--cerca-fs-md)!important;
}
.aj-filter-sheet-head h3,
.aj-destination-head h3{
  font-size: var(--cerca-fs-lg)!important;
}
.aj-filter-option{
  min-height: 60px!important;
}

/* Inputs globales */
input, textarea, select{
  min-height: var(--cerca-touch);
}
textarea{min-height: 96px!important}

/* ==========================================================
   CERCA_V623_CONFIRM_OVERLAY_TOP
   El overlay de confirmacion debe vivir por encima de las
   paginas cp6 (Perfil/Mis Reportes) y overlays de funciones.
   V622 si recibia el click; el dialogo quedaba oculto debajo
   de la pagina por una colision de z-index.
   ========================================================== */
.confirm-overlay {
    z-index: 2147483200 !important;
    pointer-events: auto !important;
}

.confirm-overlay.show {
    display: flex !important;
    pointer-events: auto !important;
}

#btnOkConfirm,
#btnCancelConfirm {
    pointer-events: auto !important;
    touch-action: manipulation;
}
