:root {
    --propp-primary: #0b5cab;
    --propp-primary-strong: #083b70;
    --propp-primary-soft: #eaf3fc;
    --propp-accent: #0aa2c0;
    --propp-success: #15803d;
    --propp-warning: #b7791f;
    --propp-danger: #b42318;
    --propp-info: #2563eb;
    --propp-bg: #f4f7fb;
    --propp-surface: #ffffff;
    --propp-surface-soft: #f8fafc;
    --propp-border: #dde5ef;
    --propp-text: #1f2f46;
    --propp-muted: #6a7890;
    --propp-radius-sm: 12px;
    --propp-radius: 18px;
    --propp-radius-lg: 28px;
    --propp-shadow-sm: 0 8px 24px rgba(31, 47, 70, .07);
    --propp-shadow: 0 18px 48px rgba(31, 47, 70, .11);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    min-height: 100vh;
    background:
        radial-gradient(circle at 5% 0%, rgba(10,162,192,.055), transparent 24rem),
        radial-gradient(circle at 100% 30%, rgba(11,92,171,.05), transparent 28rem),
        var(--propp-bg);
    color: var(--propp-text);
    font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
}

a { color: var(--propp-primary); }
a:hover { color: var(--propp-primary-strong); }

/* Navegação */
.navbar {
    min-height: 68px;
    background: rgba(255,255,255,.97) !important;
    border-bottom: 1px solid rgba(221,229,239,.95);
    box-shadow: 0 8px 28px rgba(31,47,70,.055) !important;
}
.navbar-brand {
    display: inline-flex;
    align-items: center;
    color: var(--propp-primary-strong) !important;
    font-weight: 800 !important;
    letter-spacing: -.025em;
}
.navbar-brand img {
    object-fit: contain;
    background: #fff;
    border: 1px solid var(--propp-border);
    border-radius: 10px;
    padding: 2px;
}
.nav-link {
    color: #46556b !important;
    border-radius: 10px;
    padding: .56rem .82rem !important;
    font-weight: 650;
    transition: background .18s ease, color .18s ease;
}
.nav-link:hover,
.nav-link.active {
    background: var(--propp-primary-soft);
    color: var(--propp-primary) !important;
}
.nav-link.text-danger { color: var(--propp-danger) !important; }

/* Hero */
.header-section,
#title {
    position: relative;
    overflow: hidden;
    background: linear-gradient(125deg, #083b70 0%, #0b5cab 58%, #0aa2c0 100%) !important;
    color: #fff !important;
    border-radius: 0 0 34px 34px !important;
    box-shadow: 0 18px 42px rgba(8,59,112,.20);
}
.header-section::after,
#title::after {
    content: "";
    position: absolute;
    width: 360px;
    height: 360px;
    right: -160px;
    top: -190px;
    border: 55px solid rgba(255,255,255,.065);
    border-radius: 50%;
    pointer-events: none;
}
.header-section { padding: 2.8rem 0 !important; margin-bottom: 2rem !important; }
.header-section h1,
.header-section h2,
#title h1,
#title h2 {
    margin: 0;
    font-weight: 800 !important;
    letter-spacing: -.035em;
}
.header-section .lead { max-width: 760px; }
#title { width: 100%; padding: 26px 20px; text-align: center; }

/* Superfícies */
.card,
#box_form,
#lista,
.propp-panel {
    background: var(--propp-surface) !important;
    border: 1px solid var(--propp-border) !important;
    border-radius: var(--propp-radius) !important;
    box-shadow: var(--propp-shadow-sm) !important;
}
.card { overflow: hidden; }
.card-header {
    background: linear-gradient(180deg, #fff 0%, #fbfdff 100%) !important;
    color: var(--propp-primary-strong) !important;
    border-bottom: 1px solid var(--propp-border) !important;
    padding: 1.15rem 1.4rem !important;
    font-weight: 750 !important;
}
.card-body { color: var(--propp-text); }

.propp-page { width: min(1220px, calc(100% - 30px)); margin: 30px auto; }
.propp-panel { padding: 24px; }
.propp-toolbar { display:flex; gap:12px; flex-wrap:wrap; align-items:center; justify-content:space-between; margin-bottom:18px; }
.propp-kicker { color: var(--propp-accent); font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.propp-title { color: var(--propp-primary-strong); font-weight:800; letter-spacing:-.025em; }
.propp-muted { color: var(--propp-muted); }

/* Layout legado modernizado */
#menu {
    width: min(1180px, calc(100% - 30px));
    margin: 18px auto 0;
    padding: 8px;
    background: #fff;
    border: 1px solid var(--propp-border);
    border-radius: 15px;
    box-shadow: var(--propp-shadow-sm);
}
#menu ul { margin:0; padding:0; list-style:none; display:flex; gap:8px; flex-wrap:wrap; justify-content:center; }
#menu ul li { display:block; }
#menu ul li a { display:block; padding:9px 14px; border-radius:10px; text-decoration:none; color:var(--propp-primary); font-weight:700; }
#menu ul li a:hover { background:var(--propp-primary-soft); }

.centralizar,
.centralizar1 {
    position: static !important;
    left: auto !important;
    width: min(1180px, calc(100% - 30px)) !important;
    margin: 28px auto !important;
}
#box_form {
    width: min(820px, calc(100% - 30px)) !important;
    height: auto !important;
    margin: 28px auto !important;
    padding-bottom: 18px;
}
#lista { overflow-x:auto; }
#cabecalho {
    background: linear-gradient(180deg,#fff,#f7fbff) !important;
    color: var(--propp-primary-strong) !important;
    border: 0 !important;
    border-bottom: 1px solid var(--propp-border) !important;
    border-radius: 18px 18px 0 0 !important;
    padding: 16px 18px !important;
    font-weight:800 !important;
}
#cabecalho p { margin:0; }
#formulario,
#formularioinfo { margin:0 !important; padding:24px !important; }

/* Formulários */
.form-label,
.campo label {
    color: #435269 !important;
    font-weight: 700 !important;
    font-size: .86rem;
    margin-bottom: .45rem;
}
.form-control,
.form-select,
input[type="text"],
input[type="textfield"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="date"],
select,
textarea {
    width: 100%;
    min-height: 46px;
    border: 1px solid #d3dde9 !important;
    border-radius: 12px !important;
    background: #fff !important;
    color: var(--propp-text) !important;
    padding: .68rem .82rem !important;
    box-shadow: none !important;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
textarea { min-height: 110px; }
.form-control:focus,
.form-select:focus,
input:focus,
select:focus,
textarea:focus {
    outline: none !important;
    border-color: #72afd9 !important;
    box-shadow: 0 0 0 4px rgba(11,92,171,.10) !important;
}
.input-group-text {
    border-color:#d3dde9 !important;
    background:#f7faff !important;
    color:var(--propp-primary) !important;
}
.form-check-input:checked { background-color:var(--propp-primary); border-color:var(--propp-primary); }

/* Botões */
.btn,
button,
input[type="submit"],
.botao {
    border-radius: 11px !important;
    font-weight: 700 !important;
    transition: transform .16s ease, box-shadow .16s ease, filter .16s ease !important;
}
.btn:hover,
button:hover,
input[type="submit"]:hover,
.botao:hover { transform: translateY(-1px); }
.btn-primary,
.btn-search { background:var(--propp-primary) !important; border-color:var(--propp-primary) !important; }
.btn-primary:hover,
.btn-search:hover { background:var(--propp-primary-strong) !important; border-color:var(--propp-primary-strong) !important; }
.btn-success,
.btn-add,
.btn-save { background:var(--propp-success) !important; border-color:var(--propp-success) !important; }
.btn-outline-primary { color:var(--propp-primary) !important; border-color:#91b8dc !important; }
.btn-outline-primary:hover { color:#fff !important; background:var(--propp-primary) !important; border-color:var(--propp-primary) !important; }

/* Tabelas */
.table-responsive { border-radius: 14px; }
table {
    width:100%;
    border-collapse:separate !important;
    border-spacing:0 !important;
    background:#fff;
    font-family:inherit !important;
    text-align:left !important;
}
table th {
    background:#f0f5fa !important;
    color:#33465e !important;
    border:0 !important;
    border-bottom:1px solid var(--propp-border) !important;
    padding:12px 14px !important;
    font-size:.76rem !important;
    text-transform:uppercase;
    letter-spacing:.055em;
    white-space:nowrap;
}
table td {
    background:#fff !important;
    color:#425168 !important;
    border:0 !important;
    border-bottom:1px solid #edf1f5 !important;
    padding:12px 14px !important;
    vertical-align:middle;
}
table tbody tr:hover td { background:#f8fbfe !important; }
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select { border:1px solid #d3dde9 !important; border-radius:10px !important; padding:6px 9px !important; }
.page-link { color:var(--propp-primary); }
.active > .page-link, .page-link.active { background:var(--propp-primary); border-color:var(--propp-primary); }

/* Abas */
.nav-tabs { border-bottom: 0 !important; gap:.45rem; }
.nav-tabs .nav-link {
    border:1px solid transparent !important;
    color:#637188 !important;
    background:#edf2f7 !important;
    border-radius:12px 12px 0 0 !important;
    font-weight:700;
}
.nav-tabs .nav-link.active {
    background:#fff !important;
    color:var(--propp-primary) !important;
    border-color:var(--propp-border) !important;
    border-bottom-color:#fff !important;
}
.tab-content { border-radius:0 var(--propp-radius) var(--propp-radius) var(--propp-radius) !important; }

/* Alertas / badges */
.alert { border:0 !important; border-radius:13px !important; }
.badge { border-radius:999px !important; font-weight:700; }
.status-badge { display:inline-flex; align-items:center; min-height:28px; padding:.34rem .7rem; border-radius:999px; font-size:.72rem; font-weight:750; }

/* Rodapé */
#rodape,
footer#rodape {
    width:100%;
    margin-top:48px !important;
    padding:28px 16px !important;
    background:transparent !important;
    color:var(--propp-muted) !important;
    text-align:center;
}
#rodape p { margin:0; color:var(--propp-muted) !important; font-size:.88rem !important; }

/* Utilitários */
.propp-stat {
    height:100%;
    padding:18px;
    background:linear-gradient(180deg,#fff,#fbfdff);
    border:1px solid var(--propp-border);
    border-radius:16px;
}
.propp-stat strong { display:block; font-size:1.5rem; color:var(--propp-primary-strong); }
.propp-empty { text-align:center; padding:48px 20px; color:var(--propp-muted); }
.propp-empty i { display:block; margin-bottom:12px; font-size:2rem; color:#9eb0c4; }

@media (max-width: 991.98px) {
    .navbar-collapse { padding-top:10px; }
    .header-section { padding:2.2rem 0 !important; }
}
@media (max-width: 767.98px) {
    .header-section, #title { border-radius:0 0 24px 24px !important; }
    .header-section { text-align:center; }
    .card-body { padding:1.15rem !important; }
    #formulario, #formularioinfo { padding:16px !important; }
    fieldset.grupo .campo { float:none !important; width:100% !important; margin-right:0 !important; }
    table { min-width:720px; }
    .propp-page, .centralizar, .centralizar1 { width:min(100% - 20px, 1180px) !important; }
}
