:root {
    --app-primary: #26547c;
    --app-primary-dark: #17334d;
    --app-accent: #06a77d;
    --app-warning: #f6ae2d;
    --app-bg: #f4f7fb;
    --app-text: #1d2733;
}

body {
    background: var(--app-bg);
    color: var(--app-text);
}

.app-navbar {
    background: linear-gradient(135deg, var(--app-primary-dark), var(--app-primary));
    box-shadow: 0 10px 26px rgba(23, 51, 77, .18);
}

.page-hero {
    background: #fff;
    border: 1px solid rgba(38, 84, 124, .09);
    border-radius: 8px;
    box-shadow: 0 16px 40px rgba(29, 39, 51, .08);
    padding: 1.25rem;
}

.app-card {
    background: #fff;
    border: 1px solid rgba(38, 84, 124, .09);
    border-radius: 8px;
    box-shadow: 0 12px 32px rgba(29, 39, 51, .07);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.app-card:hover {
    transform: translateY(-3px);
    border-color: rgba(6, 167, 125, .28);
    box-shadow: 0 18px 42px rgba(29, 39, 51, .12);
}

.btn,
.form-control,
.form-select {
    border-radius: 7px;
}

.btn {
    transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease, border-color .16s ease;
}

.btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(29, 39, 51, .14);
}

.btn-primary {
    background-color: var(--app-primary);
    border-color: var(--app-primary);
}

.btn-primary:hover,
.btn-primary:focus {
    background-color: var(--app-primary-dark);
    border-color: var(--app-primary-dark);
}

.btn-success {
    background-color: var(--app-accent);
    border-color: var(--app-accent);
}

.badge-soft {
    background: rgba(6, 167, 125, .12);
    color: #04795b;
}

.status-badge {
    border-radius: 999px;
    padding: .42rem .7rem;
    font-weight: 700;
}

.table {
    vertical-align: middle;
}

.table thead th {
    color: #5f6f80;
    font-size: .78rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    border-bottom-width: 1px;
}

.form-label {
    color: #33475b;
    font-weight: 700;
}

.small-muted {
    color: #66788a;
    font-size: .9rem;
}

.min-w-0 {
    min-width: 0;
}

.anexo-chip {
    align-items: center;
    border: 1px solid rgba(38, 84, 124, .12);
    border-radius: 8px;
    display: flex;
    gap: .65rem;
    padding: .75rem;
}

.fade-in {
    animation: fadeIn .24s ease both;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 575.98px) {
    .page-hero {
        padding: 1rem;
    }

    .table-responsive {
        border-radius: 8px;
    }

    .btn {
        white-space: normal;
    }
}
