/* Grupo Suricatos — interface profissional 2026 */
:root {
    --gs-ink: #17211b;
    --gs-ink-soft: #5f6d63;
    --gs-canvas: #f3f5f1;
    --gs-surface: #ffffff;
    --gs-surface-soft: #f8faf7;
    --gs-line: #dfe6df;
    --gs-line-strong: #cbd6cc;
    --gs-forest: #123c27;
    --gs-forest-deep: #0a291a;
    --gs-green: #23874e;
    --gs-green-bright: #39a967;
    --gs-green-soft: #e8f5ec;
    --gs-orange: #e97d25;
    --gs-orange-soft: #fff0e3;
    --gs-red: #c94545;
    --gs-red-soft: #fceaea;
    --gs-amber: #ad7418;
    --gs-amber-soft: #fff5dc;
    --gs-blue: #3077a8;
    --gs-blue-soft: #eaf3fa;
    --gs-shadow-sm: 0 1px 2px rgba(15, 35, 22, .05), 0 8px 24px rgba(15, 35, 22, .04);
    --gs-shadow-md: 0 16px 40px rgba(15, 35, 22, .09);
    --gs-shadow-lg: 0 28px 72px rgba(6, 29, 17, .18);
    --gs-radius-sm: 10px;
    --gs-radius: 16px;
    --gs-radius-lg: 24px;
    --gs-sidebar-width: 260px;
}

html { background: var(--gs-canvas); }

body {
    background: var(--gs-canvas) !important;
    color: var(--gs-ink) !important;
    font-family: Inter, "Segoe UI", sans-serif;
    font-size: 15px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

::selection { background: rgba(35, 135, 78, .18); }

button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 3px solid rgba(35, 135, 78, .22) !important;
    outline-offset: 2px;
}

/* Estrutura administrativa */
.admin-shell { min-height: 100vh; background: var(--gs-canvas); }

.admin-sidebar {
    display: flex;
    flex-direction: column;
    width: var(--gs-sidebar-width) !important;
    flex-basis: var(--gs-sidebar-width) !important;
    background:
        radial-gradient(circle at 20% 0%, rgba(86, 175, 111, .18), transparent 28%),
        linear-gradient(180deg, var(--gs-forest) 0%, var(--gs-forest-deep) 100%) !important;
    border-right: 0 !important;
    box-shadow: 10px 0 30px rgba(9, 43, 25, .08) !important;
}

.admin-brand {
    min-height: 88px;
    padding: 18px 16px !important;
    border-bottom: 1px solid rgba(255, 255, 255, .09) !important;
}

.admin-brand img {
    width: 50px !important;
    height: 50px !important;
    padding: 2px !important;
    border: 2px solid rgba(255, 255, 255, .8);
    background: #fff;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .18) !important;
}

.admin-brand-text strong {
    color: #fff;
    font-size: 15px;
    letter-spacing: -.01em;
}

.admin-brand-text span {
    color: rgba(235, 248, 239, .7) !important;
    font-size: 11px;
}

.admin-nav {
    gap: 5px !important;
    padding: 18px 12px !important;
}

.admin-nav a,
.admin-nav button {
    min-height: 46px;
    gap: 12px !important;
    padding: 10px 12px !important;
    border: 1px solid transparent !important;
    border-radius: 12px !important;
    color: rgba(238, 249, 241, .72) !important;
    font-size: 14px;
    font-weight: 600;
    transition: background .18s ease, color .18s ease, transform .18s ease !important;
}

.admin-nav a:hover,
.admin-nav button:hover {
    background: rgba(255, 255, 255, .08) !important;
    border-color: rgba(255, 255, 255, .05) !important;
    color: #fff !important;
    transform: translateX(2px);
}

.admin-nav a.active {
    background: #fff !important;
    border-color: #fff !important;
    color: var(--gs-forest) !important;
    box-shadow: 0 8px 22px rgba(0, 0, 0, .14) !important;
}

.admin-nav .nav-icon {
    width: 28px !important;
    height: 28px !important;
    flex: 0 0 28px;
    border-radius: 8px;
    background: rgba(255, 255, 255, .08);
    color: #b9e3c7 !important;
    font-size: 13px;
    font-style: normal;
    font-weight: 800;
}

.admin-nav a.active .nav-icon {
    background: var(--gs-green-soft);
    color: var(--gs-green) !important;
}

.admin-logout-wrap { padding: 12px !important; }
.admin-logout-wrap .btn {
    background: rgba(255, 255, 255, .08) !important;
    border: 1px solid rgba(255, 255, 255, .1) !important;
    color: #fff !important;
    box-shadow: none !important;
}

.admin-main {
    margin-left: var(--gs-sidebar-width) !important;
    width: calc(100% - var(--gs-sidebar-width)) !important;
    background: var(--gs-canvas);
}

.admin-topbar {
    min-height: 88px;
    padding: 17px 28px !important;
    background: rgba(255, 255, 255, .92) !important;
    border-bottom: 1px solid rgba(203, 214, 204, .82);
    box-shadow: 0 5px 20px rgba(20, 45, 29, .035);
    backdrop-filter: blur(14px) !important;
}

.admin-page-title {
    color: var(--gs-ink) !important;
    font-size: clamp(22px, 2.2vw, 28px) !important;
    font-weight: 760;
    letter-spacing: -.035em;
}

.admin-page-subtitle {
    color: var(--gs-ink-soft) !important;
    font-size: 13px !important;
}

.admin-user {
    padding: 8px 12px 8px 8px !important;
    background: var(--gs-surface-soft) !important;
    border: 1px solid var(--gs-line) !important;
    border-radius: 13px !important;
    color: var(--gs-ink-soft) !important;
}

.admin-user-badge {
    width: 36px !important;
    height: 36px !important;
    background: var(--gs-forest) !important;
    color: #fff !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14);
}

.admin-user #userName { color: var(--gs-ink) !important; font-size: 13px; }
.admin-user #userName + div { color: var(--gs-ink-soft) !important; }
.content, .admin-page { padding: 26px 28px 36px !important; }

/* Superfícies, cartões e indicadores */
.panel,
.card,
.dashboard-card,
.link-card,
.quick-member-card,
.documents-box,
.planner-calendar,
.calendar,
.event-list-item,
.annuities-box,
.planner-highlight-box {
    background: var(--gs-surface) !important;
    border: 1px solid var(--gs-line) !important;
    color: var(--gs-ink) !important;
    box-shadow: var(--gs-shadow-sm) !important;
}

.panel {
    padding: 22px !important;
    margin-bottom: 18px !important;
    border-radius: var(--gs-radius) !important;
}

.panel-header { margin-bottom: 18px; }
.panel-header h1, .panel-header h2, .panel-header h3 { margin: 0; }

.panel h1, .panel h2, .panel h3,
.card h1, .card h2, .card h3,
.dashboard-card-value, .dashboard-card-title,
.member-name {
    color: var(--gs-ink) !important;
}

.panel p, .muted, .hint, .dashboard-card-sub, .card-label,
.user-box, .link-card .muted, .member-doc-empty {
    color: var(--gs-ink-soft) !important;
}

.dashboard-grid { gap: 14px !important; margin-bottom: 18px !important; }
.dashboard-card {
    position: relative;
    min-height: 132px;
    padding: 20px 20px 18px !important;
    overflow: hidden;
    border-radius: var(--gs-radius) !important;
}

.dashboard-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: var(--gs-green);
}

.dashboard-card:nth-child(4n+2)::before { background: var(--gs-orange); }
.dashboard-card:nth-child(4n+3)::before { background: var(--gs-blue); }
.dashboard-card:nth-child(4n+4)::before { background: #7b68ad; }
.dashboard-card-title {
    margin-bottom: 13px !important;
    color: var(--gs-ink-soft) !important;
    font-size: 11px !important;
    font-weight: 750 !important;
    letter-spacing: .09em !important;
}
.dashboard-card-value {
    color: var(--gs-ink) !important;
    font-size: clamp(26px, 3vw, 34px) !important;
    font-weight: 780 !important;
}
.dashboard-card-sub { font-size: 12px !important; }

/* Formulários */
.form-group { margin-bottom: 16px; }
.form-group label, label {
    display: inline-block;
    margin-bottom: 7px;
    color: #344238 !important;
    font-size: 12px;
    font-weight: 700 !important;
    letter-spacing: .015em;
}

input, select, textarea,
.form-group input, .form-group select, .form-group textarea {
    min-height: 44px;
    padding: 10px 12px !important;
    background: #fff !important;
    border: 1px solid var(--gs-line-strong) !important;
    border-radius: var(--gs-radius-sm) !important;
    color: var(--gs-ink) !important;
    font-size: 14px;
    box-shadow: 0 1px 2px rgba(11, 35, 20, .02) !important;
}

textarea { min-height: 104px; resize: vertical; }
input::placeholder, textarea::placeholder { color: #98a49b !important; }
input:focus, select:focus, textarea:focus {
    border-color: var(--gs-green) !important;
    box-shadow: 0 0 0 3px rgba(35, 135, 78, .12) !important;
}
input[type="file"] { padding: 8px !important; }
input[type="checkbox"], input[type="radio"] { min-height: 0; accent-color: var(--gs-green); }

/* Botões e abas */
.btn, .planner-btn, .members-tabs button, .tabs button {
    min-height: 42px;
    padding: 10px 15px !important;
    border-radius: 10px !important;
    font-size: 13px;
    font-weight: 720 !important;
    letter-spacing: -.005em;
    box-shadow: none !important;
    transition: transform .16s ease, box-shadow .16s ease, background .16s ease !important;
}

.btn, .btn-primary, .planner-btn:not(.secondary),
.members-tabs button.active, .tabs button.active {
    background: var(--gs-green) !important;
    border: 1px solid var(--gs-green) !important;
    color: #fff !important;
}

.btn:hover, .btn-primary:hover, .planner-btn:hover {
    transform: translateY(-1px) !important;
    filter: none !important;
    box-shadow: 0 8px 18px rgba(35, 135, 78, .18) !important;
}

.btn-secondary, .planner-btn.secondary,
.tabs button:not(.active), .members-tabs button:not(.active) {
    background: #fff !important;
    border: 1px solid var(--gs-line-strong) !important;
    color: #3e4a41 !important;
}
.btn-secondary:hover { background: var(--gs-surface-soft) !important; box-shadow: var(--gs-shadow-sm) !important; }
.btn-success { background: var(--gs-green) !important; border-color: var(--gs-green) !important; color: #fff !important; }
.btn-danger { background: #fff !important; border: 1px solid #efbcbc !important; color: var(--gs-red) !important; }
.btn-danger:hover { background: var(--gs-red-soft) !important; box-shadow: none !important; }
.btn-full { width: 100%; }
.form-actions { gap: 10px !important; }

.members-tabs, .tabs {
    gap: 6px !important;
    padding: 5px !important;
    background: #edf1ed;
    border-radius: 13px;
}
.members-tabs button, .tabs button { border-color: transparent !important; }
.members-tabs button.active, .tabs button.active { box-shadow: 0 5px 14px rgba(35, 135, 78, .18) !important; }

/* Tabelas */
.table-wrap, .transactions-table-wrap, .members-table-wrap {
    overflow: auto;
    border: 1px solid var(--gs-line);
    border-radius: 13px !important;
    background: #fff;
}

table, .table { background: #fff !important; }
.table th, .table td, table th, table td {
    padding: 13px 14px !important;
    border-bottom: 1px solid #e8ece8 !important;
    color: var(--gs-ink) !important;
    font-size: 13px;
    vertical-align: middle;
}
.table thead th, table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #f6f8f5 !important;
    color: #657167 !important;
    font-size: 10px !important;
    font-weight: 780 !important;
    letter-spacing: .09em !important;
}
.table tbody tr:hover, table tbody tr:hover { background: #f8fbf8 !important; }
.table tbody tr:last-child td, table tbody tr:last-child td { border-bottom: 0 !important; }

/* Estados */
.badge, .status-pill {
    padding: 5px 9px !important;
    border-radius: 999px !important;
    font-size: 11px !important;
    line-height: 1.2;
}
.badge.active, .status-pill.pago, .badge.pago {
    background: var(--gs-green-soft) !important;
    color: #17653a !important;
    border: 1px solid #bee0c8 !important;
}
.badge.pending, .badge.pendente, .status-pill.pendente {
    background: var(--gs-amber-soft) !important;
    color: #845817 !important;
    border: 1px solid #ecd59e !important;
}
.badge.inactive, .status-pill.rejeitado, .badge.rejeitado {
    background: var(--gs-red-soft) !important;
    color: #a23838 !important;
    border: 1px solid #efc1c1 !important;
}

.message-box { border-radius: 11px !important; font-size: 13px; }
.message-box.success { background: var(--gs-green-soft) !important; color: #17653a !important; border-color: #bee0c8 !important; }
.message-box.error, .dashboard-error { background: var(--gs-red-soft) !important; color: #9f3737 !important; border-color: #efc1c1 !important; }
.message-box.info { background: var(--gs-blue-soft) !important; color: #245e85 !important; border-color: #c7dfee !important; }

/* Agenda administrativa */
.planner-calendar, .calendar-shell { background: #fff !important; border-color: var(--gs-line) !important; }
.planner-weekdays, .calendar-weekdays { background: #f6f8f5 !important; }
.planner-weekdays div, .calendar-weekdays div {
    background: #f6f8f5 !important;
    border-color: var(--gs-line) !important;
    color: #58655b !important;
    font-size: 11px !important;
}
.planner-day, .calendar-day {
    background: #fff !important;
    border-color: #e7ece7 !important;
    color: var(--gs-ink) !important;
}
.planner-day:hover, .calendar-day.has-events:hover { background: #f9fbf9 !important; }
.planner-day.muted, .calendar-day.muted { opacity: .42 !important; }
.planner-day.today, .calendar-day.today {
    background: #eef8f1 !important;
    box-shadow: inset 0 0 0 1px #acd6b9 !important;
}
.planner-day-number, .day-number { color: #354139 !important; }
.planner-day.today .planner-day-number, .calendar-day.today .day-number {
    background: var(--gs-green) !important;
    color: #fff !important;
    box-shadow: none !important;
}
.planner-event, .day-event {
    background: var(--gs-green-soft) !important;
    border-color: #c7e2cf !important;
    color: #245d38 !important;
    box-shadow: none !important;
}
.planner-event-meta, .day-event-meta { color: #597562 !important; }

/* Login */
.login-wrapper {
    position: relative;
    align-items: stretch !important;
    justify-content: flex-end !important;
    padding: 0 !important;
    background:
        linear-gradient(90deg, rgba(8, 42, 25, .97), rgba(16, 67, 39, .86)),
        radial-gradient(circle at 20% 20%, #2d8b52, #0a291a) !important;
    overflow: hidden;
}

.login-wrapper::before {
    content: "Organização e transparência para o Grupo Suricatos.";
    position: absolute;
    left: clamp(42px, 8vw, 124px);
    top: 50%;
    width: min(500px, 42vw);
    transform: translateY(-50%);
    color: #fff;
    font-size: clamp(36px, 5vw, 68px);
    font-weight: 780;
    line-height: 1.02;
    letter-spacing: -.055em;
}

.login-card {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: min(520px, 45vw) !important;
    max-width: none !important;
    min-height: 100vh;
    margin: 0 !important;
    padding: clamp(42px, 6vw, 82px) !important;
    border: 0 !important;
    border-radius: 28px 0 0 28px !important;
    background: #fff !important;
    box-shadow: -24px 0 70px rgba(0, 0, 0, .2) !important;
}
.login-logo { width: 78px !important; height: 78px !important; margin: 0 0 28px !important; box-shadow: var(--gs-shadow-md) !important; }
.login-card h1 { color: var(--gs-ink) !important; text-align: left !important; font-size: clamp(34px, 4vw, 48px) !important; }
.login-subtitle { color: var(--gs-ink-soft) !important; text-align: left !important; margin-bottom: 30px !important; }
.login-card .btn { margin-top: 5px; }

/* Site público */
body.public-page,
body:has(.public-topbar) {
    background:
        radial-gradient(circle at 10% 0%, rgba(35, 135, 78, .09), transparent 26%),
        var(--gs-canvas) !important;
}

.public-topbar {
    background: rgba(250, 252, 249, .94) !important;
    border-bottom: 1px solid rgba(203, 214, 204, .85) !important;
    backdrop-filter: blur(15px) !important;
}
.public-topbar-inner { min-height: 80px; padding: 12px 0 !important; }
.public-brand img { width: 52px !important; height: 52px !important; border: 1px solid var(--gs-line); }
.public-brand-title { color: var(--gs-ink) !important; font-size: 18px !important; }
.public-brand-title span { color: var(--gs-green) !important; }
.public-brand-sub { color: var(--gs-ink-soft) !important; font-size: 12px !important; }
.public-nav { gap: 4px !important; }
.public-nav a, .public-nav button {
    min-height: 40px;
    padding: 9px 13px !important;
    background: transparent !important;
    border: 1px solid transparent !important;
    border-radius: 10px !important;
    color: #435147 !important;
    font-size: 13px;
    font-weight: 650;
}
.public-nav a:hover { background: #edf3ed !important; }
.public-nav a.primary {
    margin-left: 5px;
    background: var(--gs-forest) !important;
    border-color: var(--gs-forest) !important;
    color: #fff !important;
    box-shadow: none !important;
}

.public-container { width: min(1240px, calc(100% - 40px)) !important; padding: 34px 0 64px !important; }
.public-card {
    background: var(--gs-surface) !important;
    border: 1px solid var(--gs-line) !important;
    border-radius: var(--gs-radius-lg) !important;
    box-shadow: var(--gs-shadow-sm) !important;
    color: var(--gs-ink) !important;
}
.public-light-card {
    border: 1px solid var(--gs-line) !important;
    border-radius: var(--gs-radius-lg) !important;
    box-shadow: var(--gs-shadow-sm) !important;
}

.public-hero {
    padding: clamp(28px, 4vw, 52px) !important;
    background:
        radial-gradient(circle at 90% 0%, rgba(233, 125, 37, .18), transparent 22%),
        linear-gradient(135deg, #123c27 0%, #0a291a 66%, #061f13 100%) !important;
    border: 0 !important;
    box-shadow: var(--gs-shadow-lg) !important;
}
.public-hero::after { display: none; }
.public-grid { grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr) !important; gap: clamp(28px, 5vw, 68px) !important; }
.hero-copy { position: relative; z-index: 1; align-self: center; }
.hero-copy .public-brand-sub { color: #9fe0b5 !important; font-size: 12px !important; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.hero-copy h1 {
    max-width: 700px;
    margin-bottom: 22px !important;
    color: #fff !important;
    font-size: clamp(48px, 6.3vw, 78px) !important;
    line-height: .98 !important;
    letter-spacing: -.065em !important;
}
.hero-copy h1 span { color: #9bd1aa !important; }
.hero-copy p { max-width: 620px !important; color: rgba(240, 249, 243, .72) !important; font-size: 17px !important; }
.hero-traits { margin-top: 28px !important; gap: 10px !important; }
.trait {
    padding: 8px 11px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 999px;
    background: rgba(255, 255, 255, .06);
    color: rgba(244, 252, 246, .84) !important;
    font-size: 12px;
}
.trait i { color: #75c98d !important; }

.cta-grid { grid-template-columns: 1fr !important; gap: 12px !important; align-content: center; }
.cta-card {
    min-height: 0 !important;
    padding: 21px !important;
    border: 1px solid rgba(255, 255, 255, .12) !important;
    border-radius: 18px !important;
    background: rgba(255, 255, 255, .075) !important;
    box-shadow: none !important;
    backdrop-filter: blur(6px);
}
.cta-card::before { display: none; }
.cta-card h3 { margin: 0 0 5px !important; color: #fff !important; font-size: 20px !important; letter-spacing: -.025em !important; }
.cta-card p { margin: 0 0 17px; color: rgba(238, 248, 241, .66) !important; font-size: 13px !important; }
.cta-icon {
    float: left;
    width: 42px !important;
    height: 42px !important;
    margin-right: 14px;
    border: 1px solid rgba(255, 255, 255, .13) !important;
    border-radius: 12px !important;
    background: rgba(255, 255, 255, .08) !important;
    color: #b9e3c7;
    font-size: 15px !important;
    font-weight: 800;
    box-shadow: none !important;
}
.hero-action {
    margin-top: 0 !important;
    padding: 9px 13px !important;
    border-radius: 9px !important;
    background: #fff !important;
    color: var(--gs-forest) !important;
    font-size: 12px;
    box-shadow: none !important;
}
.hero-action.secondary { background: transparent !important; border: 1px solid rgba(255, 255, 255, .26) !important; color: #fff !important; }

.public-planner {
    margin-top: 28px !important;
    padding: clamp(22px, 3vw, 32px) !important;
    background: #fff !important;
    border: 1px solid var(--gs-line) !important;
    box-shadow: var(--gs-shadow-sm) !important;
}
.public-planner .public-brand-sub { color: var(--gs-green) !important; font-weight: 750; text-transform: uppercase; letter-spacing: .1em; }
.public-planner #plannerMonthText { color: var(--gs-ink); font-size: clamp(25px, 3vw, 34px) !important; }
.planner-month-switch .nav-btn {
    width: auto !important;
    min-width: 42px;
    height: 42px !important;
    padding: 0 12px;
    background: #fff !important;
    border: 1px solid var(--gs-line-strong) !important;
    border-radius: 10px !important;
    color: var(--gs-ink) !important;
}
.planner-month-switch .nav-btn:hover { background: var(--gs-surface-soft) !important; }
.planner-month-switch .month-pill {
    padding: 9px 14px !important;
    background: var(--gs-green-soft) !important;
    border: 1px solid #c8e1cf !important;
    border-radius: 10px !important;
    color: #1d683b !important;
    font-size: 13px !important;
}
.public-planner .light-btn {
    background: #f6f8f5 !important;
    border-color: var(--gs-line) !important;
    color: var(--gs-ink) !important;
}
.public-planner .light-btn strong { color: var(--gs-ink) !important; }
.public-planner .light-btn span { color: var(--gs-ink-soft) !important; }
.legend { color: var(--gs-ink-soft) !important; font-size: 12px; }
.public-footer { color: var(--gs-ink-soft) !important; }

.public-section-icon { background: var(--gs-green-soft) !important; color: var(--gs-green) !important; }
.public-section-title h1, .public-section-title h2 { color: var(--gs-ink) !important; }
.public-section-title h1 { font-size: clamp(28px, 4.5vw, 48px) !important; }
.public-light-card input, .public-light-card select, .public-light-card textarea { background: #fff !important; color: var(--gs-ink) !important; }
.balance-stat { border: 1px solid var(--gs-line) !important; box-shadow: var(--gs-shadow-sm) !important; }

/* Modais e documentos */
.modal-content, .event-modal {
    background: #fff !important;
    border: 1px solid var(--gs-line) !important;
    color: var(--gs-ink) !important;
    box-shadow: var(--gs-shadow-lg) !important;
}
.member-doc-card, .member-doc-item, .link-card, .event-list-item {
    background: #fff !important;
    border-color: var(--gs-line) !important;
    color: var(--gs-ink) !important;
}
.member-doc-thumb { background: #f2f5f2 !important; border-color: var(--gs-line) !important; color: var(--gs-ink-soft) !important; }

/* Responsividade */
@media (max-width: 1200px) {
    .admin-sidebar { width: 82px !important; flex-basis: 82px !important; }
    .admin-main { margin-left: 82px !important; width: calc(100% - 82px) !important; }
    .admin-brand { justify-content: center; }
    .admin-brand img { width: 46px !important; height: 46px !important; }
    .admin-nav a { justify-content: center; }
    .admin-nav .nav-icon { display: inline-flex !important; }
    .admin-nav .nav-icon { width: 32px !important; height: 32px !important; flex-basis: 32px; }
}

@media (max-width: 900px) {
    .public-grid { grid-template-columns: 1fr !important; }
    .cta-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
    .login-wrapper { justify-content: center !important; padding: 24px !important; }
    .login-wrapper::before { display: none; }
    .login-card {
        width: min(480px, 100%) !important;
        min-height: 0;
        margin: auto !important;
        padding: 38px !important;
        border-radius: 24px !important;
        box-shadow: var(--gs-shadow-lg) !important;
    }
}

@media (max-width: 860px) {
    .admin-sidebar {
        width: 100% !important;
        background: linear-gradient(135deg, var(--gs-forest), var(--gs-forest-deep)) !important;
        box-shadow: 0 8px 28px rgba(9, 43, 25, .13) !important;
    }
    .admin-main { margin-left: 0 !important; width: 100% !important; }
    .admin-brand { justify-content: space-between; min-height: 72px; }
    .admin-brand img { width: 46px !important; height: 46px !important; }
    .admin-nav a { justify-content: flex-start; }
    .admin-menu-toggle { background: rgba(255, 255, 255, .1) !important; border-color: rgba(255, 255, 255, .12) !important; }
    .admin-topbar { min-height: 78px; padding: 15px 16px !important; }
    .content, .admin-page { padding: 18px 14px 28px !important; }
    .admin-user { display: none; }
}

@media (max-width: 680px) {
    .public-container { width: min(100% - 24px, 1240px) !important; padding-top: 18px !important; }
    .public-brand-sub { display: none; }
    .public-nav a:not(.primary) { display: none; }
    .public-nav a.primary { margin-left: 0; }
    .public-hero { padding: 28px 22px !important; border-radius: 20px !important; }
    .hero-copy h1 { font-size: clamp(42px, 14vw, 58px) !important; }
    .hero-copy p { font-size: 15px !important; }
    .hero-traits { gap: 7px !important; }
    .trait { font-size: 11px; }
    .cta-grid { grid-template-columns: 1fr !important; }
    .public-planner { margin-top: 18px !important; border-radius: 20px !important; }
    .planner-toolbar { align-items: flex-start !important; }
    .planner-month-switch { width: 100%; display: grid !important; grid-template-columns: auto 1fr auto auto; gap: 6px !important; }
    .planner-month-switch .month-pill { display: flex; align-items: center; justify-content: center; padding-inline: 6px !important; text-align: center; }
    .panel { padding: 16px !important; }
    .dashboard-card { min-height: 118px; }
    .form-actions .btn { flex: 1 1 100%; }
    .login-wrapper { padding: 12px !important; }
    .login-card { padding: 28px 22px !important; }
    .login-logo { width: 66px !important; height: 66px !important; margin-bottom: 22px !important; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* =========================================================
   Tema administrativo escuro — alto contraste
   ========================================================= */
body.admin-interface {
    --gs-text: #f1f6f2;
    --gs-text-soft: #aebbb2;
    --gs-text-dim: #89988e;
    --gs-border: rgba(178, 201, 185, .15);
    --gs-border-strong: rgba(91, 190, 124, .34);
    background:
        radial-gradient(circle at 84% 0%, rgba(31, 125, 72, .11), transparent 28%),
        #07100c !important;
    color: #f1f6f2 !important;
}

body.admin-interface .admin-shell,
body.admin-interface .admin-main {
    background: transparent !important;
}

body.admin-interface .admin-sidebar {
    background:
        radial-gradient(circle at 15% 0%, rgba(88, 188, 119, .18), transparent 30%),
        linear-gradient(180deg, #102d20 0%, #071b12 100%) !important;
    border-right: 1px solid rgba(173, 205, 182, .1) !important;
    box-shadow: 12px 0 34px rgba(0, 0, 0, .2) !important;
}

body.admin-interface .admin-topbar {
    background: rgba(9, 22, 15, .93) !important;
    border-bottom-color: rgba(178, 201, 185, .13) !important;
    box-shadow: 0 8px 28px rgba(0, 0, 0, .13) !important;
}

body.admin-interface .admin-page-title,
body.admin-interface .admin-user #userName {
    color: #f5faf6 !important;
}

body.admin-interface .admin-page-subtitle,
body.admin-interface .admin-user #userName + div {
    color: #aebbb2 !important;
}

body.admin-interface .admin-user {
    background: #102219 !important;
    border-color: #293b30 !important;
    color: #b5c3b9 !important;
}

body.admin-interface .admin-user-badge {
    background: #2b9557 !important;
    color: #fff !important;
}

body.admin-interface .panel,
body.admin-interface .card,
body.admin-interface .dashboard-card,
body.admin-interface .link-card,
body.admin-interface .quick-member-card,
body.admin-interface .documents-box,
body.admin-interface .planner-calendar,
body.admin-interface .calendar,
body.admin-interface .event-list-item,
body.admin-interface .annuities-box,
body.admin-interface .planner-highlight-box {
    background: linear-gradient(180deg, #111f18 0%, #0d1a14 100%) !important;
    border-color: #29392f !important;
    color: #eef5f0 !important;
    box-shadow: 0 14px 34px rgba(0, 0, 0, .16) !important;
}

body.admin-interface .panel h1,
body.admin-interface .panel h2,
body.admin-interface .panel h3,
body.admin-interface .card h1,
body.admin-interface .card h2,
body.admin-interface .card h3,
body.admin-interface .dashboard-card-value,
body.admin-interface .dashboard-card-title,
body.admin-interface .member-name,
body.admin-interface .users-table strong,
body.admin-interface .members-table-wrap strong,
body.admin-interface .transactions-table-wrap strong {
    color: #f6faf7 !important;
}

body.admin-interface .panel p,
body.admin-interface .muted,
body.admin-interface .hint,
body.admin-interface .dashboard-card-sub,
body.admin-interface .card-label,
body.admin-interface .user-box,
body.admin-interface .link-card .muted,
body.admin-interface .member-doc-empty,
body.admin-interface .users-summary {
    color: #aebbb2 !important;
}

body.admin-interface .dashboard-card::before { background: #43ad6b !important; }
body.admin-interface .dashboard-card:nth-child(4n+2)::before { background: #e58a3a !important; }
body.admin-interface .dashboard-card:nth-child(4n+3)::before { background: #4d93c2 !important; }
body.admin-interface .dashboard-card:nth-child(4n+4)::before { background: #9a85d2 !important; }
body.admin-interface .dashboard-card-title { color: #a9b8ae !important; }

body.admin-interface .table-wrap,
body.admin-interface .transactions-table-wrap,
body.admin-interface .members-table-wrap {
    background: #0c1712 !important;
    border-color: #2a3b31 !important;
}

body.admin-interface table,
body.admin-interface .table,
body.admin-interface .table tbody,
body.admin-interface table tbody {
    background: #0c1712 !important;
    color: #edf4ef !important;
}

body.admin-interface .table th,
body.admin-interface .table td,
body.admin-interface table th,
body.admin-interface table td,
body.admin-interface .users-table td,
body.admin-interface .members-table-wrap td,
body.admin-interface .transactions-table-wrap td {
    border-color: #26362d !important;
    color: #e8f0ea !important;
    opacity: 1 !important;
}

body.admin-interface .users-table td:not(:last-child),
body.admin-interface .users-table td:not(:last-child) *,
body.admin-interface .members-table-wrap td:not(:last-child),
body.admin-interface .transactions-table-wrap td:not(:last-child) {
    color: #e8f0ea !important;
    opacity: 1 !important;
}

body.admin-interface .users-table td .muted,
body.admin-interface .members-table-wrap td .muted,
body.admin-interface .transactions-table-wrap td .muted {
    color: #aab8ae !important;
}

body.admin-interface .table thead th,
body.admin-interface table thead th {
    background: #14241c !important;
    color: #b9c7bd !important;
    border-bottom-color: #314339 !important;
}

body.admin-interface .table tbody tr,
body.admin-interface table tbody tr {
    background: transparent !important;
}

body.admin-interface .table tbody tr:hover,
body.admin-interface table tbody tr:hover {
    background: #13251b !important;
}

body.admin-interface .form-group label,
body.admin-interface label {
    color: #d9e4dc !important;
}

body.admin-interface input,
body.admin-interface select,
body.admin-interface textarea,
body.admin-interface .form-group input,
body.admin-interface .form-group select,
body.admin-interface .form-group textarea {
    background: #0a1610 !important;
    border-color: #34483b !important;
    color: #f2f7f3 !important;
    color-scheme: dark;
}

body.admin-interface input::placeholder,
body.admin-interface textarea::placeholder {
    color: #728278 !important;
}

body.admin-interface input:focus,
body.admin-interface select:focus,
body.admin-interface textarea:focus {
    border-color: #4db778 !important;
    box-shadow: 0 0 0 3px rgba(77, 183, 120, .16) !important;
}

body.admin-interface .btn,
body.admin-interface .btn-primary,
body.admin-interface .planner-btn:not(.secondary),
body.admin-interface .members-tabs button.active,
body.admin-interface .tabs button.active {
    background: #258e51 !important;
    border-color: #2fa25e !important;
    color: #fff !important;
}

body.admin-interface .btn-secondary,
body.admin-interface .planner-btn.secondary,
body.admin-interface .tabs button:not(.active),
body.admin-interface .members-tabs button:not(.active) {
    background: #182820 !important;
    border-color: #3a4b41 !important;
    color: #e4ede7 !important;
}

body.admin-interface .btn-secondary:hover {
    background: #203329 !important;
    border-color: #51645a !important;
}

body.admin-interface .btn-danger {
    background: rgba(201, 69, 69, .1) !important;
    border-color: rgba(232, 112, 112, .52) !important;
    color: #ffaaaa !important;
}

body.admin-interface .btn-danger:hover {
    background: rgba(201, 69, 69, .2) !important;
}

body.admin-interface .members-tabs,
body.admin-interface .tabs {
    background: #0b1711 !important;
    border: 1px solid #293a30;
}

body.admin-interface .badge.active,
body.admin-interface .status-pill.pago,
body.admin-interface .badge.pago {
    background: rgba(52, 172, 96, .14) !important;
    color: #8ce2aa !important;
    border-color: rgba(82, 190, 121, .34) !important;
}

body.admin-interface .badge.pending,
body.admin-interface .badge.pendente,
body.admin-interface .status-pill.pendente {
    background: rgba(217, 154, 48, .13) !important;
    color: #f1c572 !important;
    border-color: rgba(217, 154, 48, .3) !important;
}

body.admin-interface .badge.inactive,
body.admin-interface .status-pill.rejeitado,
body.admin-interface .badge.rejeitado {
    background: rgba(201, 69, 69, .13) !important;
    color: #f1a0a0 !important;
    border-color: rgba(201, 69, 69, .3) !important;
}

body.admin-interface .message-box.success {
    background: rgba(52, 172, 96, .12) !important;
    color: #9be4b5 !important;
    border-color: rgba(82, 190, 121, .3) !important;
}

body.admin-interface .message-box.error,
body.admin-interface .dashboard-error {
    background: rgba(201, 69, 69, .12) !important;
    color: #ffb0b0 !important;
    border-color: rgba(201, 69, 69, .3) !important;
}

body.admin-interface .message-box.info,
body.admin-interface .permission-help {
    background: rgba(64, 142, 194, .12) !important;
    color: #a9d5f2 !important;
    border-color: rgba(88, 159, 207, .28) !important;
}

body.admin-interface .planner-calendar,
body.admin-interface .calendar-shell {
    background: #0b1711 !important;
    border-color: #2a3b31 !important;
}

body.admin-interface .planner-weekdays,
body.admin-interface .calendar-weekdays,
body.admin-interface .planner-weekdays div,
body.admin-interface .calendar-weekdays div {
    background: #14241c !important;
    border-color: #2b3d32 !important;
    color: #bcc9bf !important;
}

body.admin-interface .planner-day,
body.admin-interface .calendar-day {
    background: #0e1b15 !important;
    border-color: #26372d !important;
    color: #edf4ef !important;
}

body.admin-interface .planner-day:hover,
body.admin-interface .calendar-day.has-events:hover {
    background: #14271c !important;
}

body.admin-interface .planner-day.today,
body.admin-interface .calendar-day.today {
    background: rgba(43, 149, 83, .16) !important;
    box-shadow: inset 0 0 0 1px rgba(79, 190, 120, .5) !important;
}

body.admin-interface .planner-day-number,
body.admin-interface .day-number {
    color: #eef5f0 !important;
}

body.admin-interface .planner-event,
body.admin-interface .day-event {
    background: rgba(47, 158, 89, .13) !important;
    border-color: rgba(76, 185, 116, .3) !important;
    color: #b9ebca !important;
}

body.admin-interface .planner-event-meta,
body.admin-interface .day-event-meta {
    color: #91aa99 !important;
}

body.admin-interface .modal-content,
body.admin-interface .user-modal,
body.admin-interface .event-modal {
    background: linear-gradient(180deg, #14231c, #0d1913) !important;
    border-color: #35473c !important;
    color: #edf4ef !important;
}

body.admin-interface .user-modal-title,
body.admin-interface .permission-group-title,
body.admin-interface .user-member-preview strong {
    color: #f5faf6 !important;
}

body.admin-interface .user-modal-subtitle,
body.admin-interface .permission-check-row {
    color: #b6c4ba !important;
}

body.admin-interface .user-member-preview,
body.admin-interface .permission-tabs,
body.admin-interface .permission-panel,
body.admin-interface .permission-group-card {
    background: #0b1711 !important;
    border-color: #304237 !important;
}

body.admin-interface .permission-tab-button {
    background: #17271f !important;
    border-color: #394b40 !important;
    color: #dfe9e2 !important;
}

body.admin-interface .permission-tab-button.active {
    background: #258e51 !important;
    border-color: #2fa25e !important;
    color: #fff !important;
}

body.admin-interface .member-doc-card,
body.admin-interface .member-doc-item,
body.admin-interface .link-card,
body.admin-interface .event-list-item {
    background: #101e17 !important;
    border-color: #2c3d33 !important;
    color: #edf4ef !important;
}

body.admin-interface .member-doc-thumb {
    background: #0a1610 !important;
    border-color: #304238 !important;
    color: #aab8ae !important;
}

/* Login totalmente escuro */
body.login-page .login-card {
    background: linear-gradient(180deg, #12231a, #0b1912) !important;
    border-left: 1px solid rgba(174, 205, 183, .15) !important;
}

body.login-page .login-card h1 { color: #f5faf6 !important; }
body.login-page .login-subtitle { color: #adbbb1 !important; }
body.login-page .form-group label { color: #dce7df !important; }
body.login-page input {
    background: #08140e !important;
    border-color: #34483b !important;
    color: #f3f8f4 !important;
    color-scheme: dark;
}
body.login-page input::placeholder { color: #74847a !important; }
body.login-page input:focus { border-color: #4db778 !important; box-shadow: 0 0 0 3px rgba(77, 183, 120, .16) !important; }

@media (max-width: 860px) {
    body.admin-interface .admin-sidebar {
        background: linear-gradient(135deg, #123321, #071b12) !important;
    }
}
