/* Panel de administración de 1111Soft (/admin).
   ---------------------------------------------------------------------------
   CSS propio, namespace `adm-`, por lo que el bloque del analizador (`.az-*`) y
   el resto de la home no pisan acá. Hereda tokens de color de style.css
   (`--bg`, `--card`, `--border`, `--text`, `--text-2`, `--green`).
*/

/* ---------- Base ---------- */
body.adm-body-page {
    background: var(--bg);
    color: var(--text);
    font-family: 'Inter', system-ui, sans-serif;
    margin: 0;
}
.adm-wrapper {
    max-width: 1100px;
    margin: 0 auto;
    padding: 3rem 1.25rem 5rem;
    min-height: 100vh;
}

/* ---------- Login / Denegado ---------- */
.adm-login {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 70vh;
}
.adm-login-card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 20px;
    padding: 2.5rem 2rem;
    max-width: 420px;
    width: 100%;
    text-align: center;
    box-shadow: 0 20px 60px rgba(0,0,0,0.25);
}
.adm-login-logo { height: 42px; margin-bottom: 1rem; }
.adm-login-card h1 { font-size: 1.5rem; margin: 0 0 0.4rem; }
.adm-login-sub { color: var(--text-2); font-size: 0.95rem; margin: 0 0 1.4rem; }
.adm-login-err { color: var(--red); font-size: 0.85rem; min-height: 1.1em; margin-top: 1rem; }
.adm-denegado-icon { font-size: 2rem; color: var(--amber, #eab308); margin: 0 0 0.6rem; }
.adm-login-mail { color: var(--text-2); font-size: 0.9rem; margin: 0 0 1.2rem; word-break: break-word; }

/* ---------- Topbar ---------- */
.adm-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.9rem 0;
    border-bottom: 1px solid var(--border);
    margin-bottom: 1.6rem;
    gap: 1rem;
    flex-wrap: wrap;
}
.adm-topbar-left { display: flex; align-items: center; gap: 0.6rem; font-weight: 600; }
.adm-top-logo { height: 30px; }
.adm-topbar-right { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.adm-user { color: var(--text-2); font-size: 0.85rem; margin-right: 0.5rem; }

/* ---------- Título y tabs ---------- */
.adm-title { font-size: 1.8rem; margin: 0 0 1.2rem; }
.adm-tabs { display: flex; gap: 0.4rem; border-bottom: 1px solid var(--border); margin-bottom: 1.5rem; }
.adm-tab {
    background: none; border: none; cursor: pointer;
    padding: 0.7rem 1rem; font: inherit; font-weight: 600;
    color: var(--text-2); border-bottom: 2px solid transparent;
    border-radius: 8px 8px 0 0;
}
.adm-tab:hover { color: var(--text); }
.adm-tab.active { color: var(--green); border-bottom-color: var(--green); }
.adm-tab-pane.hidden { display: none; }

/* ---------- Cards ---------- */
.adm-card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 1.5rem;
}
.adm-card-head {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 1rem; margin-bottom: 1.2rem; flex-wrap: wrap;
}
.adm-card-head h2 { font-size: 1.2rem; margin: 0 0 0.3rem; }
.adm-muted { color: var(--text-2); font-size: 0.9rem; margin: 0; }
.adm-nota { font-size: 0.82rem; color: var(--text-2); margin: 0 0 0.4rem; }
.adm-card-foot { display: flex; align-items: center; gap: 1rem; margin-top: 1.4rem; }
.adm-save-msg { font-size: 0.85rem; color: var(--green); min-height: 1.1em; }
.adm-save-msg.err { color: var(--red); }

/* ---------- Tarifario ---------- */
.adm-precios-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 0.8rem; margin-top: 0.8rem;
}
.adm-precio-item {
    display: flex; align-items: center; justify-content: space-between;
    gap: 0.8rem; padding: 0.6rem 0.8rem;
    border: 1px solid var(--border); border-radius: 10px;
    background: var(--bg);
}
.adm-precio-item .adm-precio-txt { flex: 1; min-width: 0; }
.adm-precio-item .adm-precio-id { display: block; font-size: 0.78rem; color: var(--text-2); font-family: monospace; }
.adm-precio-item input {
    width: 90px; text-align: right;
    background: var(--bg); color: var(--text);
    border: 1px solid var(--border); border-radius: 8px; padding: 0.45rem 0.6rem;
}
.adm-precio-item input:focus { outline: none; border-color: var(--green); }

/* ---------- Catálogo ---------- */
.adm-proyectos { display: flex; flex-direction: column; gap: 0.7rem; margin-top: 0.6rem; }
.adm-proyecto {
    display: flex; align-items: center; justify-content: space-between;
    gap: 1rem; padding: 0.9rem 1rem; flex-wrap: wrap;
    border: 1px solid var(--border); border-radius: 12px; background: var(--bg);
}
.adm-proyecto-info { flex: 1; min-width: 220px; }
.adm-proyecto-info b { font-size: 0.95rem; display: block; }
.adm-proyecto-info .adm-muted { font-size: 0.82rem; }
.adm-proyecto-precio { font-weight: 700; color: var(--green); white-space: nowrap; }
.adm-proyecto-actions { display: flex; gap: 0.4rem; }
.adm-badge { display: inline-block; font-size: 0.7rem; padding: 0.15rem 0.5rem; border-radius: 20px; margin-top: 0.25rem; }
.adm-badge.pub { color: var(--green); background: rgba(57,208,87,0.12); }
.adm-badge.draft { color: var(--text-2); background: rgba(255,255,255,0.06); }

/* ---------- Modal ---------- */
.adm-modal {
    position: fixed; inset: 0; z-index: 1000;
    display: flex; align-items: center; justify-content: center;
    background: rgba(0,0,0,0.6); padding: 1rem;
}
.adm-modal.hidden { display: none; }
.adm-modal-box {
    background: var(--card); border: 1px solid var(--border);
    border-radius: 16px; padding: 1.8rem; width: 100%; max-width: 520px;
    position: relative; max-height: 90vh; overflow: auto;
}
.adm-modal-close {
    position: absolute; top: 0.9rem; right: 1rem;
    background: none; border: none; color: var(--text-2);
    font-size: 1.1rem; cursor: pointer;
}
.adm-modal-box h2 { margin: 0 0 1.2rem; font-size: 1.25rem; }
.adm-form label { display: block; margin-bottom: 0.9rem; font-size: 0.88rem; color: var(--text-2); }
.adm-form input[type=text], .adm-form input[type=number], .adm-form textarea {
    width: 100%; margin-top: 0.3rem; box-sizing: border-box;
    background: var(--bg); color: var(--text);
    border: 1px solid var(--border); border-radius: 8px; padding: 0.6rem 0.7rem;
    font: inherit;
}
.adm-form input:focus, .adm-form textarea:focus { outline: none; border-color: var(--green); }
.adm-form .adm-check { display: flex; align-items: center; gap: 0.5rem; }
.adm-form .adm-check input { width: auto; accent-color: var(--green); }
.adm-form-foot { display: flex; align-items: center; justify-content: flex-end; gap: 1rem; margin-top: 0.6rem; }

/* ---------- Utilidades ---------- */
.btn { display: inline-flex; align-items: center; gap: 0.4rem; cursor: pointer; text-decoration: none; }
.btn-sm { padding: 0.4rem 0.8rem; font-size: 0.85rem; }
[hidden] { display: none !important; }