.notification-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:20px 0}.notification-stats article{background:#fff;border:1px solid #e8e8ee;border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:6px}.notification-stats span{color:#6f7280;font-size:.88rem}.notification-stats strong{font-size:1.8rem}.notification-toolbar{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin-bottom:18px}.notification-toolbar input,.notification-toolbar select,.notification-modal input,.notification-modal select,.notification-modal textarea{width:100%;box-sizing:border-box;border:1px solid #dfe1e8;border-radius:10px;padding:12px;background:#fff;font:inherit}.notification-grid{display:grid;gap:14px}.notification-card{background:#fff;border:1px solid #e4e6ed;border-left:5px solid #6b7280;border-radius:14px;padding:18px;overflow:hidden}.notification-card.type-promocao{border-left-color:#e11d48}.notification-card.type-alerta{border-left-color:#f59e0b}.notification-card.type-assinatura{border-left-color:#7c3aed}.notification-card.type-cupom{border-left-color:#059669}.notification-card.is-read{opacity:.72}.notification-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.notification-card h3{margin:6px 0 0}.notification-card p{color:#555b68;line-height:1.55}.notification-badge{font-size:.72rem;font-weight:800;letter-spacing:.08em;color:#5a6070}.notification-status{border-radius:999px;padding:5px 10px;font-size:.75rem;font-weight:700;text-transform:capitalize}.notification-status.publicada{background:#dcfce7;color:#166534}.notification-status.agendada{background:#fef3c7;color:#92400e}.notification-status.inativa{background:#f1f5f9;color:#475569}.notification-meta{display:flex;flex-wrap:wrap;gap:16px;color:#747987;font-size:.84rem;margin:12px 0}.notification-actions{display:flex;gap:8px;flex-wrap:wrap}.notification-actions button,.notification-actions a{border:1px solid #dfe1e8;background:#fff;border-radius:9px;padding:9px 12px;cursor:pointer;text-decoration:none;color:#222}.notification-actions .danger{color:#b91c1c}.notification-modal{position:fixed;inset:0;background:rgba(15,23,42,.55);display:grid;place-items:center;padding:18px;z-index:50}.notification-modal-card{background:#fff;width:min(720px,100%);max-height:90vh;overflow:auto;border-radius:18px;padding:24px;position:relative}.notification-close{position:absolute;right:16px;top:12px;border:0;background:none;font-size:2rem;cursor:pointer}.notification-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.notification-modal label{display:grid;gap:6px;margin:12px 0;font-weight:600}.notification-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center}.notification-check input{width:auto}.notification-primary{width:100%;padding:13px;border:0;border-radius:10px;background:#e11d48;color:#fff;font-weight:800;cursor:pointer}.notification-empty{text-align:center}.company-notification-stats{grid-template-columns:repeat(2,minmax(0,220px))}.public-notification-section{padding:24px 0;background:#fff7ed}.public-notification-list{display:grid;gap:12px}.public-notification-card{display:flex;justify-content:space-between;gap:18px;align-items:center;background:#fff;border:1px solid #fed7aa;border-radius:16px;padding:18px}.public-notification-card span{font-size:.72rem;font-weight:800;color:#c2410c}.public-notification-card h3{margin:5px 0}.public-notification-card p{margin:0;color:#60646f}.public-notification-card a{white-space:nowrap;background:#e11d48;color:#fff;padding:10px 14px;border-radius:10px;text-decoration:none;font-weight:700}@media(max-width:800px){.notification-stats{grid-template-columns:1fr 1fr}.notification-toolbar,.notification-form-grid{grid-template-columns:1fr}.public-notification-card{align-items:flex-start;flex-direction:column}.company-notification-stats{grid-template-columns:1fr 1fr}}@media(max-width:480px){.notification-stats{grid-template-columns:1fr}.company-notification-stats{grid-template-columns:1fr}}
/* ETAPA 18.2.7 - Painel de distribuição para o aplicativo */
.notification-dev-note{display:flex;gap:8px;flex-wrap:wrap;align-items:center;background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a8a;border-radius:14px;padding:14px 16px;margin:18px 0}.notification-help{margin:8px 0 14px;padding:12px;background:#f8fafc;border-radius:10px;color:#475569;line-height:1.45}.notification-status.enviada{background:#dcfce7;color:#166534}.notification-status.parcial{background:#fef3c7;color:#92400e}.notification-status.falha{background:#fee2e2;color:#991b1b}.notification-primary:disabled{opacity:.65;cursor:wait}

/* ==========================================================
   NOTIFICAÇÕES — PAINEL DA EMPRESA

   Escopado em .notif-empresa porque este arquivo também veste
   as notificações do admin e a aba do aplicativo do cliente.
   ========================================================== */

.notif-empresa .notif-message {
    margin-bottom: 18px;
    padding: 13px 16px;
    border: 1px solid transparent;
    border-radius: 12px;
    font-size: .92rem;
    font-weight: 800;
    line-height: 1.5;
}

.notif-empresa .notif-message.is-hidden {
    display: none;
}

.notif-empresa .notif-message.is-success {
    background: #ebf8ef;
    border-color: #c8ead5;
    color: #176c39;
}

.notif-empresa .notif-message.is-error {
    background: #fff0f0;
    border-color: #f4cfcf;
    color: #a22626;
}

/* ---------- Indicadores ---------- */

.notif-empresa .company-notification-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 22px;
}

.notif-empresa .company-notification-stats article {
    position: relative;
    padding: 20px 20px 20px 24px;
    border: 1px solid var(--dashboard-border, #e8e8e8);
    border-radius: 16px;
    background: #fff;
    overflow: hidden;
}

.notif-empresa .company-notification-stats article::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: var(--dashboard-orange, #ff6500);
}

.notif-empresa .company-notification-stats span {
    display: block;
    color: var(--dashboard-muted, #737373);
    font-size: .73rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.notif-empresa .company-notification-stats strong {
    display: block;
    margin-top: 6px;
    font-size: 1.85rem;
    font-weight: 900;
    line-height: 1.1;
}

/* ---------- Cartões ---------- */

.notif-empresa .notification-grid {
    display: grid;
    gap: 14px;
}

.notif-empresa .notification-grid .notification-card {
    padding: 18px 20px;
    border: 1px solid #ececec;
    border-radius: 16px;
    background: #fff;
    transition: border-color .18s ease, box-shadow .18s ease;
}

.notif-empresa .notification-grid .notification-card:hover {
    border-color: #ddd;
    box-shadow: 0 6px 20px rgba(0, 0, 0, .05);
}

/* Não lida ganha uma faixa laranja à esquerda */
.notif-empresa .notification-grid .notification-card.is-unread {
    border-left: 4px solid var(--dashboard-orange, #ff6500);
    background: #fffdfb;
}

.notif-empresa .notification-grid .notification-card.is-read {
    opacity: .82;
}

.notif-empresa .notification-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 10px;
}

.notif-empresa .notification-card-head h3 {
    margin: 7px 0 0;
    font-size: 1.05rem;
    overflow-wrap: anywhere;
}

.notif-empresa .notification-badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 999px;
    background: #f4f5f7;
    color: #5b5b5b;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .05em;
}

.notif-empresa .notification-status {
    flex: 0 0 auto;
    padding: 5px 11px;
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 900;
    white-space: nowrap;
}

.notif-empresa .notification-status.agendada {
    background: #fff0e3;
    color: #c24c00;
}

.notif-empresa .notification-status.publicada {
    background: #f1f1f1;
    color: #6f6f6f;
}

.notif-empresa .notification-grid .notification-card p {
    margin: 0 0 12px;
    color: #4b4b4b;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.notif-empresa .notification-meta {
    margin-bottom: 12px;
    color: var(--dashboard-muted, #737373);
    font-size: .8rem;
}

.notif-empresa .notification-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.notif-empresa .notification-actions a,
.notif-empresa .notification-actions button {
    min-height: 40px;
    padding: 0 16px;
    display: inline-flex;
    align-items: center;
    border: 1px solid #ddd;
    border-radius: 10px;
    background: #fff;
    color: var(--dashboard-text, #232323);
    font: inherit;
    font-size: .86rem;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
    transition: background .18s ease;
}

.notif-empresa .notification-actions a {
    border-color: #ffd0ad;
    color: var(--dashboard-orange-dark, #e95000);
}

.notif-empresa .notification-actions a:hover,
.notif-empresa .notification-actions button:hover:not(:disabled) {
    background: #f6f7f9;
}

.notif-empresa .notification-actions button:disabled {
    opacity: .6;
    cursor: wait;
}

/* ---------- Estado vazio ---------- */

.notif-empresa .notification-empty {
    padding: 44px 24px;
    border: 1px dashed #dcdcdc;
    border-radius: 16px;
    background: #fafafa;
    text-align: center;
}

.notif-empresa .notification-empty h3 {
    margin: 0 0 6px;
    font-size: 1.02rem;
}

.notif-empresa .notification-empty p {
    max-width: 420px;
    margin: 0 auto;
    color: var(--dashboard-muted, #737373);
    font-size: .9rem;
    line-height: 1.55;
}

.notif-empresa #mark-all:disabled {
    opacity: .5;
    cursor: not-allowed;
}

@media (max-width: 700px) {
    .notif-empresa .company-notification-stats {
        grid-template-columns: 1fr;
    }

    .notif-empresa .notification-card-head {
        flex-direction: column;
        gap: 8px;
    }
}
