/* =====================================================================
   Gaceta Tributaria - GADM Latacunga
   Estilos compartidos (público + administración)
   ===================================================================== */
:root{
    --azul:#1e5fa8; --azul-osc:#17497f; --navy:#1a2456; --dorado:#a78112;
    --bg:#f4f6f8; --card:#ffffff; --texto:#2b3340; --gris:#6b7480;
    --borde:#e4e8ec; --rojo:#c0392b;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--bg);
     color:var(--texto);line-height:1.5;display:flex;flex-direction:column}
main{flex:1}
a{color:var(--azul)}

/* ---- Encabezado ---- */
.cab{background:var(--azul);color:#fff;padding:14px 24px;display:flex;
     align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.cab-izq{display:flex;align-items:center;gap:14px;min-width:0}
.volver{color:#fff;text-decoration:none;font-size:1.5rem;line-height:1;width:40px;height:40px;
        border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.12)}
.volver:hover{background:rgba(255,255,255,.24)}
.marca{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff;min-width:0}
.logo{height:46px;width:auto;display:block}
.logo-fallback{display:none;width:46px;height:46px;border-radius:50%;background:#fff;
        color:var(--azul);align-items:center;justify-content:center;font-weight:800;font-size:20px}
.marca-txt{display:flex;flex-direction:column;min-width:0}
.marca-txt strong{font-size:1.2rem;line-height:1.2}
.marca-txt small{font-size:.82rem;opacity:.9}
.cab-der{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.nav a{color:#fff;text-decoration:none;padding:8px 14px;border-radius:8px;font-size:.92rem}
.nav a:hover,.nav a.activo{background:rgba(255,255,255,.16)}
.btn-cab{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.5);
        padding:8px 16px;border-radius:8px;text-decoration:none;font-size:.9rem;white-space:nowrap}
.btn-cab:hover{background:rgba(255,255,255,.22)}
.usuario-cab{font-size:.85rem;opacity:.9}

/* ---- Contenedor ---- */
.contenedor{max-width:960px;margin:0 auto;padding:28px 20px 40px;width:100%}
.contenedor.ancho{max-width:1100px}

/* ---- Bloques ---- */
.bloque{background:var(--card);border:1px solid var(--borde);border-radius:14px;padding:24px 26px;margin-bottom:22px}
.bloque.dorado{border-top:4px solid var(--dorado)}
.titulo-navy{color:var(--navy);font-size:1.35rem;margin-bottom:8px}
.sub{color:var(--gris);max-width:680px}

/* ---- Buscador ---- */
.buscador{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
.buscador input{flex:1;min-width:200px;padding:13px 16px;border:1px solid var(--borde);border-radius:10px;font-size:1rem;color:var(--texto)}
.buscador input:focus{outline:none;border-color:var(--azul);box-shadow:0 0 0 3px rgba(30,95,168,.15)}

/* ---- Botones ---- */
.btn{display:inline-block;border:none;border-radius:10px;padding:12px 24px;font-size:.98rem;font-weight:600;cursor:pointer;text-decoration:none;text-align:center}
.btn-azul{background:var(--azul);color:#fff}.btn-azul:hover{background:var(--azul-osc)}
.btn-dorado{background:var(--dorado);color:#fff}.btn-dorado:hover{filter:brightness(.93)}
.btn-gris{background:#eef0f2;color:var(--texto)}.btn-gris:hover{background:#e2e6ea}
.btn-rojo{background:#fdecec;color:var(--rojo)}.btn-rojo:hover{background:#f9d9d9}
.btn-sm{padding:7px 14px;font-size:.86rem;border-radius:8px}

/* ---- Avisos ---- */
.aviso{padding:14px 18px;border-radius:10px;margin-bottom:18px;font-size:.95rem}
.aviso-info{background:#eef4fb;border:1px solid #c9dcf0;color:#1c5286}
.aviso-ok{background:#e9f6ee;border:1px solid #b8e0c6;color:#1e7d3c}
.aviso-error{background:#fdecec;border:1px solid #f2c4c4;color:#b0332a}
.aviso-warn{background:#fff8e6;border:1px solid #f0dca6;color:#8a6d1a}

/* ---- Resultado público ---- */
.resultado{background:var(--card);border:1px solid var(--borde);border-radius:14px;margin-bottom:22px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.resultado-cab{background:var(--navy);color:#fff;padding:18px 26px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.resultado-cab h3{font-size:1.12rem}
.resultado-cab small{opacity:.8;font-weight:400;display:block;font-size:.8rem}
.datos{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--borde)}
.dato{background:#fff;padding:16px 26px}
.dato .etq{font-size:.74rem;text-transform:uppercase;letter-spacing:.5px;color:var(--gris);margin-bottom:4px}
.dato .val{font-size:1rem;word-break:break-word}
.dato.ancho{grid-column:1/-1}
.resolucion{padding:20px 26px;border-top:1px solid var(--borde);display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.resolucion .txt{color:var(--gris);font-size:.92rem}
.sin-resolucion{color:var(--gris);font-size:.92rem;font-style:italic}

/* ---- Etiqueta de estado (neutra; el texto llega del SRI) ---- */
.badge-estado{display:inline-block;padding:4px 12px;border-radius:999px;font-size:.8rem;font-weight:600;
        background:#eef0f2;color:var(--navy);border:1px solid var(--borde)}
.resultado-cab .badge-estado{background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.35)}

/* ---- Tablas ---- */
.tabla{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--borde);border-radius:12px;overflow:hidden}
.tabla th,.tabla td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--borde);font-size:.92rem}
.tabla th{background:#f7f9fb;color:var(--gris);font-weight:600;text-transform:uppercase;font-size:.74rem;letter-spacing:.4px}
.tabla tr:last-child td{border-bottom:none}
.tabla tr:hover td{background:#fafbfc}
.acciones{display:flex;gap:6px;flex-wrap:wrap}
.vacio{text-align:center;color:var(--gris);padding:36px 20px;font-style:italic}

/* ---- Paginación ---- */
.paginacion{display:flex;gap:6px;justify-content:center;margin-top:20px;flex-wrap:wrap}
.paginacion a,.paginacion span{padding:8px 13px;border-radius:8px;text-decoration:none;border:1px solid var(--borde);color:var(--texto);font-size:.9rem;background:#fff}
.paginacion .actual{background:var(--azul);color:#fff;border-color:var(--azul)}

/* ---- Formularios ---- */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px}
.campo{display:flex;flex-direction:column;gap:6px}
.campo.ancho{grid-column:1/-1}
.campo label{font-size:.86rem;font-weight:600;color:var(--texto)}
.campo input,.campo select,.campo textarea{padding:11px 14px;border:1px solid var(--borde);border-radius:9px;font-size:.96rem;font-family:inherit;color:var(--texto)}
.campo input:focus,.campo select:focus{outline:none;border-color:var(--azul);box-shadow:0 0 0 3px rgba(30,95,168,.15)}
.campo .pista{font-size:.78rem;color:var(--gris)}
.form-acciones{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}

/* ---- Barra de herramientas ---- */
.barra{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;flex-wrap:wrap}
.barra .buscar{display:flex;gap:8px;flex:1;min-width:220px}
.barra .buscar input{flex:1;padding:10px 14px;border:1px solid var(--borde);border-radius:9px;font-size:.94rem}

/* ---- Login ---- */
.login-wrap{max-width:400px;margin:60px auto;padding:0 20px}
.login-card{background:#fff;border:1px solid var(--borde);border-radius:14px;padding:32px 30px;border-top:4px solid var(--dorado)}
.login-card h2{color:var(--navy);margin-bottom:6px;text-align:center}
.login-card p{color:var(--gris);text-align:center;margin-bottom:22px;font-size:.9rem}

/* ---- Pie global ---- */
footer{background:var(--azul);color:#fff;text-align:center;font-size:.85rem;padding:18px 20px}
footer .dorado-linea{display:block;width:60px;height:3px;background:var(--dorado);margin:0 auto 10px;border-radius:2px}

/* ---- Responsivo ---- */
@media(max-width:680px){
    .datos{grid-template-columns:1fr}
    .dato.ancho{grid-column:auto}
    .form-grid{grid-template-columns:1fr}
    .marca-txt strong{font-size:1.05rem}
    .tabla thead{display:none}
    .tabla tr{display:block;border-bottom:1px solid var(--borde);padding:8px 0}
    .tabla td{display:flex;justify-content:space-between;border:none;padding:6px 16px}
    .tabla td::before{content:attr(data-etq);font-weight:600;color:var(--gris);text-transform:uppercase;font-size:.72rem}
}

/* ---- Sección actualizar datos ---- */
.actualizar{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap}
.actualizar-info{flex:1;min-width:260px}
.actualizar-info .btn{margin-top:16px}
.actualizar-qr{display:flex;flex-direction:column;align-items:center;gap:8px}
.actualizar-qr img{width:150px;height:150px;border:1px solid var(--borde);border-radius:10px;padding:6px;background:#fff}
.actualizar-qr small{color:var(--gris);font-size:.8rem}

.lopdp-overlay {
    position: fixed;
    inset: 0;
    background: rgba(13, 42, 76, 0.55);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    padding: 16px;
}
.lopdp-overlay.lopdp-visible { display: flex; }
.lopdp-modal {
    background: #ffffff;
    max-width: 640px;
    width: 100%;
    border-radius: 10px;
    border-top: 4px solid #c9a227; /* acento dorado institucional */
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
    padding: 28px 32px;
    font-family: inherit;
    max-height: 90vh;
    overflow-y: auto;
}
.lopdp-modal h2 {
    margin: 0 0 12px;
    color: #123a6b; /* azul institucional */
    font-size: 1.25rem;
}
.lopdp-modal p {
    margin: 0 0 12px;
    color: #333;
    font-size: 0.92rem;
    line-height: 1.55;
    text-align: justify;
}
.lopdp-modal .lopdp-acciones {
    margin-top: 18px;
    display: flex;
    justify-content: flex-end;
}
.lopdp-modal button {
    background: #1a5da6;
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 10px 26px;
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
}
.lopdp-modal button:hover { background: #144a85; }
.lopdp-modal button:focus-visible { outline: 3px solid #c9a227; outline-offset: 2px; }
@media (max-width: 480px) {
    .lopdp-modal { padding: 20px; }
}
