:root {
    --positivo-navy: #203156;
    --positivo-navy-dark: #17243f;
    --positivo-accent: #2f80ed;   /* buttons / focus */
    --positivo-bg: #f4f7fb;

    /* Table palette (so it’s easy to tune later) */
    --p-table-head-bg: #eef4ff;
    --p-table-border: #e8edf5;
    --p-table-head-border: #d8e2f2;
    --p-table-hover: #f7faff;
    --p-table-group-bg: #fbfcff;
    --p-text: #0f172a;
    --p-muted: #475569;
}

/* Ensure full height for sticky footer */
html, body {
    height: 100%;
    margin: 0;
}

/* Main wrapper to push footer down */
.wrapper {
    display: flex;
    flex-direction: column;
    min-height: 100vh; /* Full viewport height */
}

body.wrapper {
    background-color: #f6f7fb;   /* very light neutral */
}

/* Content section grows to push footer down */
.content {
    flex: 1;
}

/* Navbar */
.navbar.bg-dark {
    background-color: var(--positivo-navy) !important;
}

/* Navbar logo */
.navbar-logo {
    height: 32px;        /* adjust if needed */
    width: auto;
    display: block;
}

/* Login card */
.login-container {
    max-width: 420px;
    margin: 110px auto 0;
    padding: 28px;
    border-radius: 14px;
    background: white;
    border: 1px solid #e6ecf5;
    box-shadow: 0 12px 30px rgba(32, 49, 86, 0.18);
}

/* Primary button */
.btn-primary {
    background-color: var(--positivo-accent) !important;
    border-color: var(--positivo-accent) !important;
    font-weight: 600;
}

.btn-primary:hover {
    background-color: #1e6fe0 !important;
    border-color: #1e6fe0 !important;
}

/* Footer styles */
.footer {
    background-color: var(--positivo-navy);
    color: white;
    text-align: center;
    padding: 10px 0;
}

/* No borders for some tables (such as the sub-campaign summary report) */
.no-borders,
.no-borders td,
.no-borders th {
    border: none !important;
}

.no-row-lines tr {
    border-bottom: none !important;
}

/* ============================================================
   Reusable "Positivo table" styling
   Usage:
     <table class="table table-hover align-middle mb-0 p-table">...</table>
   ============================================================ */

.p-table {
    border-collapse: separate;
    border-spacing: 0;
}

.p-table thead th {
    background: var(--p-table-head-bg);
    border-bottom: 1px solid var(--p-table-head-border) !important;
    color: var(--p-text);
    font-weight: 700;
    vertical-align: middle;
    white-space: nowrap;
}

.p-table td,
.p-table th {
    border-color: var(--p-table-border) !important;
    padding: 0.75rem 0.85rem;
}

.p-table tbody tr:hover {
    background: var(--p-table-hover);
}

/* Icon columns: consistent width + centered */
.p-table .col-icon {
    width: 46px;
    text-align: center;
    padding-left: 0.35rem;
    padding-right: 0.35rem;
}

/* Numeric/date/time columns: right aligned, stable numerals */
.p-table .col-num,
.p-table .col-date,
.p-table .col-time {
    text-align: right;
    white-space: nowrap;
    width: 1%;
    font-variant-numeric: tabular-nums;
    min-width: 4.5rem; /* helps when values are 10,000+ */
}

/* Actions column */
.p-table .col-actions {
    text-align: right;
    white-space: nowrap;
    width: 1%;
}

/* Generic “pill” actions (works for Send/Delete/Summary/etc.) */
.p-table .action-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.28rem 0.6rem;
    border-radius: 999px;
    text-decoration: none !important;
    font-weight: 600;
}

.p-table .action-primary {
    background: rgba(47, 128, 237, 0.14);
}

.p-table .action-danger {
    background: rgba(220, 53, 69, 0.12);
}

/* Optional helpers for “grouped” tables (like Campaign → Subcampaign) */
.p-table .group-row td {
    background: var(--p-table-group-bg);
    font-weight: 600;
}

.p-table .sub-name {
    padding-left: 1.25rem !important;
    color: var(--p-muted);
}

/* ============================================================
   Backwards compatibility: keep existing campaign-table working
   (so you can migrate page-by-page)
   ============================================================ */
.campaign-table { }
.campaign-table thead th { }
.campaign-table td, .campaign-table th { }
.campaign-table tbody tr:hover { }
.campaign-table .col-icon { }
.campaign-table .col-num, .campaign-table .col-date, .campaign-table .col-time { }
.campaign-table .col-actions { }
.campaign-table .campaign-row td { }
.campaign-table .action-pill { }
.campaign-table .action-send { }
.campaign-table .action-delete { }
.campaign-table .sub-name { }

/* Make campaign-table behave like p-table without touching markup */
.campaign-table { border-collapse: separate; border-spacing: 0; }
.campaign-table thead th {
    background: var(--p-table-head-bg);
    border-bottom: 1px solid var(--p-table-head-border) !important;
    color: var(--p-text);
    font-weight: 700;
    vertical-align: middle;
    white-space: nowrap;
}
.campaign-table td, .campaign-table th {
    border-color: var(--p-table-border) !important;
    padding: 0.75rem 0.85rem;
}
.campaign-table tbody tr:hover { background: var(--p-table-hover); }
.campaign-table .col-icon { width: 46px; text-align: center; padding-left: 0.35rem; padding-right: 0.35rem; }
.campaign-table .col-num, .campaign-table .col-date, .campaign-table .col-time {
    text-align: right; white-space: nowrap; width: 1%;
    font-variant-numeric: tabular-nums; min-width: 4.5rem;
}
.campaign-table .col-actions { text-align: right; white-space: nowrap; width: 1%; }
.campaign-table .campaign-row td { background: var(--p-table-group-bg); font-weight: 600; }
.campaign-table .action-pill { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.28rem 0.6rem; border-radius: 999px; text-decoration: none !important; font-weight: 600; }
.campaign-table .action-send { background: rgba(47, 128, 237, 0.14); }
.campaign-table .action-delete { background: rgba(220, 53, 69, 0.12); }
.campaign-table .sub-name { padding-left: 1.25rem !important; color: var(--p-muted); }

/* Allow wrapping + constrain wide text columns */
.p-table .col-wrap {
    white-space: normal !important;
    word-break: break-word;
    overflow-wrap: anywhere;
    max-width: 420px;      /* adjust as needed */
}

.card {
  border: 1px solid #e6ecf5;
  border-radius: 14px;
}
.card-footer {
  border-bottom-left-radius: 14px;
  border-bottom-right-radius: 14px;
}
