:root {
  --admin-green-950: #0c2619;
  --admin-green-900: #123522;
  --admin-green-800: #17472d;
  --admin-green-700: #28633d;
  --admin-green-600: #39784b;
  --admin-green-500: #5e8d4b;
  --admin-cream: #f4f0e7;
  --admin-paper: #fbfaf6;
  --admin-white: #fff;
  --admin-ink: #142019;
  --admin-muted: #6d766f;
  --admin-line: rgba(20, 32, 25, .12);
  --admin-display: "Manrope", sans-serif;
  --admin-body-font: "DM Sans", sans-serif;
  --admin-shadow: 0 18px 55px rgba(12, 38, 25, .09);
}

* { box-sizing: border-box; }
body.admin-body { min-height: 100vh; margin: 0; color: var(--admin-ink); background: var(--admin-cream); font-family: var(--admin-body-font); }
.admin-sidebar { position: fixed; z-index: 50; inset: 0 auto 0 0; display: flex; flex-direction: column; width: 278px; padding: 1.4rem 1rem 1rem; color: white; background: var(--admin-green-950); overflow-y: auto; }
.admin-sidebar::before { content: ""; position: absolute; inset: 0; opacity: .08; pointer-events: none; background-image: radial-gradient(circle at 1px 1px, white 1px, transparent 0); background-size: 26px 26px; mask-image: linear-gradient(180deg, black, transparent 75%); }
.admin-brand { position: relative; display: flex; align-items: center; gap: .8rem; margin-bottom: 2.1rem; padding: .25rem .4rem; color: white; text-decoration: none; }
.admin-brand > span { display: grid; place-items: center; width: 3.3rem; height: 3.3rem; overflow: hidden; flex: 0 0 auto; background: white; border-radius: 50%; box-shadow: 0 10px 28px rgba(0,0,0,.2); }.admin-brand img { width: 90%; height: 90%; object-fit: cover; }.admin-brand p, .admin-user p { display: flex; flex-direction: column; margin: 0; line-height: 1.2; }.admin-brand strong { font-family: var(--admin-display); font-size: .95rem; }.admin-brand small { margin-top: .3rem; color: rgba(255,255,255,.48); font-size: .61rem; letter-spacing: .08em; text-transform: uppercase; }
.admin-nav { position: relative; display: flex; flex-direction: column; flex: 1; }.admin-nav-label { margin: 1.2rem .75rem .45rem; color: rgba(255,255,255,.34); font-size: .58rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }.admin-nav-label:first-child { margin-top: 0; }.admin-nav a { display: flex; align-items: center; gap: .8rem; min-height: 2.85rem; padding: .7rem .8rem; color: rgba(255,255,255,.68); border: 1px solid transparent; border-radius: .75rem; font-size: .82rem; font-weight: 600; text-decoration: none; transition: background .2s, color .2s, transform .2s; }.admin-nav a i { display: grid; place-items: center; width: 1.5rem; font-size: 1rem; }.admin-nav a:hover { color: white; background: rgba(255,255,255,.07); transform: translateX(2px); }.admin-nav a.is-active { color: white; background: rgba(180,206,159,.14); border-color: rgba(180,206,159,.15); }.admin-nav a.is-active i { color: #b4ce9f; }
.admin-sidebar-footer { position: relative; display: flex; align-items: center; gap: .5rem; margin-top: 1.5rem; padding: 1rem .55rem .2rem; border-top: 1px solid rgba(255,255,255,.1); }.admin-user { display: flex; align-items: center; gap: .6rem; min-width: 0; flex: 1; }.admin-user > span { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; flex: 0 0 auto; color: var(--admin-green-950); background: #c5d9b6; border-radius: 50%; }.admin-user p { min-width: 0; }.admin-user strong { overflow: hidden; font-size: .71rem; text-overflow: ellipsis; white-space: nowrap; }.admin-user small { margin-top: .15rem; color: rgba(255,255,255,.4); font-size: .58rem; }.admin-sidebar-actions { display: flex; gap: .25rem; }.admin-sidebar-actions a { display: grid; place-items: center; width: 2rem; height: 2rem; color: rgba(255,255,255,.55); border-radius: .5rem; text-decoration: none; }.admin-sidebar-actions a:hover { color: white; background: rgba(255,255,255,.08); }
.admin-shell { min-height: 100vh; margin-left: 278px; }.admin-topbar { position: sticky; z-index: 30; top: 0; display: flex; align-items: center; justify-content: space-between; height: 5rem; padding: 0 clamp(1.25rem, 4vw, 3rem); background: rgba(244,240,231,.88); border-bottom: 1px solid var(--admin-line); backdrop-filter: blur(16px); }.admin-topbar > div { display: flex; flex-direction: column; line-height: 1.2; }.admin-topbar > div span { color: var(--admin-green-700); font-size: .65rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.admin-topbar > div strong { margin-top: .2rem; font-family: var(--admin-display); font-size: .82rem; }.admin-topbar > a { display: inline-flex; align-items: center; gap: .5rem; padding: .58rem .9rem; color: var(--admin-green-800); background: rgba(255,255,255,.6); border: 1px solid var(--admin-line); border-radius: 999px; font-size: .72rem; font-weight: 700; text-decoration: none; }.admin-topbar > a:hover { color: white; background: var(--admin-green-700); }.admin-menu-toggle { display: none; width: 2.7rem; height: 2.7rem; color: var(--admin-green-800); background: white; border: 1px solid var(--admin-line); border-radius: .7rem; font-size: 1.2rem; }
.admin-main { width: min(1180px, calc(100% - clamp(2rem, 6vw, 6rem))); margin: 0 auto; padding: clamp(2rem, 4vw, 3.5rem) 0 5rem; }.admin-main > h2, .admin-main .page-header h2 { margin: 0; color: var(--admin-ink); font-family: var(--admin-display); font-size: clamp(1.65rem, 2.5vw, 2.2rem); font-weight: 750; letter-spacing: -.045em; }.admin-main > h2::before { content: "Painel / "; display: block; margin-bottom: .45rem; color: var(--admin-green-600); font-family: var(--admin-body-font); font-size: .61rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }.admin-main h3, .admin-main h5 { font-family: var(--admin-display); }.admin-main .text-muted { color: var(--admin-muted) !important; }
.admin-alerts { margin-bottom: 1.25rem; }.admin-alerts .alert { border: 0; border-radius: .8rem; box-shadow: 0 10px 30px rgba(12,38,25,.08); }.alert-success { color: #1d5b35; background: #e3efe0; }.alert-danger { color: #7a2e29; background: #f7e4e1; }.alert-warning { color: #70531f; background: #f4ecd7; }

/* Componentes Bootstrap dentro do painel */
.admin-main .card { overflow: hidden; background: rgba(255,255,255,.82); border: 1px solid var(--admin-line); border-radius: 1rem !important; box-shadow: var(--admin-shadow); }.admin-main .card-body { padding: clamp(1.15rem, 2.5vw, 1.7rem); }.admin-main .card .card { box-shadow: none; }
.admin-main .form-label, .admin-main .small-label { margin-bottom: .4rem; color: #344139; font-size: .74rem !important; font-weight: 700 !important; }.admin-main .form-control, .admin-main .form-select, .admin-main .input-group-text { min-height: 2.75rem; color: var(--admin-ink); background-color: var(--admin-white); border-color: var(--admin-line); border-radius: .65rem; font-size: .82rem; }.admin-main textarea.form-control { min-height: auto; }.admin-main .form-control:focus, .admin-main .form-select:focus { border-color: var(--admin-green-600); box-shadow: 0 0 0 .22rem rgba(57,120,75,.11); }.admin-main .input-group .input-group-text { border-radius: .65rem 0 0 .65rem; color: var(--admin-green-600); }.admin-main .input-group .form-control { border-radius: 0 .65rem .65rem 0; }.admin-main .form-check-input:checked { background-color: var(--admin-green-600); border-color: var(--admin-green-600); }
.admin-main .btn { border-radius: .65rem; font-size: .78rem; font-weight: 700; }.admin-main .btn-primary { color: white; background: var(--admin-green-700); border-color: var(--admin-green-700); }.admin-main .btn-primary:hover { background: var(--admin-green-800); border-color: var(--admin-green-800); }.admin-main .btn-outline-primary { color: var(--admin-green-700); border-color: rgba(40,99,61,.45); }.admin-main .btn-outline-primary:hover { color: white; background: var(--admin-green-700); border-color: var(--admin-green-700); }.admin-main .btn-secondary { color: var(--admin-ink); background: #e8e4dc; border-color: #e8e4dc; }.admin-main .btn-outline-secondary { color: #5c665f; border-color: rgba(92,102,95,.35); }.admin-main .btn-danger, .admin-main .btn-outline-danger:hover { color: white; background: #a64a42; border-color: #a64a42; }.admin-main .btn-outline-danger { color: #a64a42; border-color: rgba(166,74,66,.45); }
.admin-main .table-responsive { border: 1px solid var(--admin-line); border-radius: .8rem; }.admin-main .table { margin: 0; color: var(--admin-ink); font-size: .78rem; }.admin-main .table > :not(caption) > * > * { padding: .85rem .75rem; background: transparent; border-bottom-color: var(--admin-line); }.admin-main .table thead th { color: var(--admin-muted); background: #f2f0e9; font-size: .64rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }.admin-main .table tbody tr { transition: background .2s; }.admin-main .table tbody tr:hover { background: rgba(94,141,75,.06); }.admin-main .table tbody tr:last-child td { border-bottom: 0; }
.admin-main .badge.bg-success { background: var(--admin-green-600) !important; }.admin-main .badge.bg-danger { background: #a64a42 !important; }.admin-main .modal-content { border: 0; border-radius: 1rem; box-shadow: 0 30px 90px rgba(12,38,25,.25); }.admin-main .modal-header, .admin-main .modal-footer { border-color: var(--admin-line); }.admin-main .modal-title { font-family: var(--admin-display); font-weight: 750; }.admin-main .note-editor { border-color: var(--admin-line) !important; border-radius: .8rem; overflow: hidden; }.admin-main .note-toolbar { background: #f1eee6; }
.admin-backdrop { display: none; }

/* Dashboard */
.dashboard-welcome { position: relative; overflow: hidden; display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: center; margin-bottom: 1.5rem; padding: clamp(1.5rem, 4vw, 2.5rem); color: white; background: linear-gradient(125deg, var(--admin-green-900), var(--admin-green-700)); border-radius: 1.25rem; box-shadow: 0 24px 65px rgba(12,38,25,.18); }.dashboard-welcome::after { content: ""; position: absolute; right: -5rem; top: -8rem; width: 22rem; height: 22rem; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 3rem rgba(255,255,255,.03), 0 0 0 6rem rgba(255,255,255,.025); }.dashboard-welcome > div { position: relative; z-index: 1; }.dashboard-welcome p { margin: 0 0 .45rem; color: #bad1aa; font-size: .67rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }.dashboard-welcome h1 { margin: 0; font-family: var(--admin-display); font-size: clamp(1.8rem, 4vw, 3rem); letter-spacing: -.055em; }.dashboard-welcome span { display: block; max-width: 40rem; margin-top: .75rem; color: rgba(255,255,255,.66); font-size: .86rem; }.dashboard-welcome > i { position: relative; z-index: 1; font-size: 4rem; opacity: .28; }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1.5rem; }.stat-card { padding: 1.2rem; background: rgba(255,255,255,.82); border: 1px solid var(--admin-line); border-radius: 1rem; box-shadow: 0 12px 38px rgba(12,38,25,.06); }.stat-card > div { display: flex; align-items: center; justify-content: space-between; }.stat-card i { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; color: var(--admin-green-700); background: #e5ede0; border-radius: .7rem; }.stat-card strong { display: block; margin-top: .8rem; font-family: var(--admin-display); font-size: 1.8rem; letter-spacing: -.04em; }.stat-card span { color: var(--admin-muted); font-size: .7rem; font-weight: 600; }
.dashboard-section-title { margin: 2rem 0 .9rem; color: var(--admin-muted); font-size: .63rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }.quick-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }.quick-card { display: flex; align-items: center; gap: 1rem; padding: 1.15rem; color: var(--admin-ink); background: rgba(255,255,255,.78); border: 1px solid var(--admin-line); border-radius: 1rem; text-decoration: none; transition: transform .2s, box-shadow .2s, border .2s; }.quick-card:hover { color: var(--admin-ink); border-color: rgba(57,120,75,.35); transform: translateY(-3px); box-shadow: var(--admin-shadow); }.quick-card > i { display: grid; place-items: center; width: 2.8rem; height: 2.8rem; flex: 0 0 auto; color: white; background: var(--admin-green-700); border-radius: .8rem; }.quick-card p { display: flex; flex-direction: column; margin: 0; }.quick-card strong { font-family: var(--admin-display); font-size: .9rem; }.quick-card span { margin-top: .2rem; color: var(--admin-muted); font-size: .68rem; }

/* Login */
.admin-login-page { min-height: 100vh; margin: 0; color: var(--admin-ink); background: var(--admin-cream); font-family: var(--admin-body-font); }.admin-login-shell { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(420px, .65fr); min-height: 100vh; }.admin-login-visual { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 100%; padding: clamp(2rem, 6vw, 5rem); color: white; overflow: hidden; isolation: isolate; }.admin-login-visual > img { position: absolute; z-index: -3; inset: 0; width: 100%; height: 100%; object-fit: cover; }.admin-login-visual::before { content: ""; position: absolute; z-index: -2; inset: 0; background: linear-gradient(180deg, rgba(8,28,18,.18), rgba(8,28,18,.92)); }.admin-login-visual::after { content: ""; position: absolute; z-index: -1; inset: 0; opacity: .12; background-image: linear-gradient(rgba(255,255,255,.35) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.35) 1px, transparent 1px); background-size: 70px 70px; }.login-visual-brand { position: absolute; top: 2.2rem; left: clamp(2rem, 6vw, 5rem); display: flex; align-items: center; gap: .7rem; }.login-visual-brand span { display: grid; place-items: center; width: 3.3rem; height: 3.3rem; overflow: hidden; background: white; border-radius: 50%; }.login-visual-brand img { width: 90%; }.login-visual-brand p { display: flex; flex-direction: column; margin: 0; line-height: 1.2; }.login-visual-brand strong { font-family: var(--admin-display); }.login-visual-brand small { color: rgba(255,255,255,.58); font-size: .62rem; letter-spacing: .09em; text-transform: uppercase; }.admin-login-visual > div:last-child { max-width: 38rem; }.admin-login-visual > div:last-child p { color: #bad1aa; font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }.admin-login-visual h1 { margin: 0; font-family: var(--admin-display); font-size: clamp(2.7rem, 5vw, 5rem); line-height: .98; letter-spacing: -.065em; }.admin-login-form-side { display: grid; place-items: center; padding: 2rem; background: var(--admin-paper); }.admin-auth-card { width: min(100%, 390px); }.admin-auth-card > p:first-child { margin: 0 0 .45rem; color: var(--admin-green-600); font-size: .65rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }.admin-auth-card h2 { margin: 0; font-family: var(--admin-display); font-size: 2rem; letter-spacing: -.045em; }.admin-auth-card > span { display: block; margin: .6rem 0 2rem; color: var(--admin-muted); font-size: .82rem; }.admin-auth-card .form-label { color: #344139; font-size: .73rem; font-weight: 700; }.admin-auth-card .form-control { min-height: 3rem; border-color: var(--admin-line); border-radius: .7rem; font-size: .85rem; }.admin-auth-card .form-control:focus { border-color: var(--admin-green-600); box-shadow: 0 0 0 .22rem rgba(57,120,75,.11); }.admin-auth-card .btn { min-height: 3rem; color: white; background: var(--admin-green-700); border: 0; border-radius: .7rem; font-weight: 700; }.admin-auth-card .btn:hover { background: var(--admin-green-800); }.admin-login-back { display: inline-flex; align-items: center; gap: .45rem; margin-top: 1.5rem; color: var(--admin-muted); font-size: .72rem; font-weight: 700; text-decoration: none; }.admin-login-back:hover { color: var(--admin-green-700); }

@media (max-width: 1050px) { .stats-grid { grid-template-columns: repeat(2, 1fr); }.quick-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 850px) {
  .admin-sidebar { transform: translateX(-105%); transition: transform .25s ease; }.admin-menu-open .admin-sidebar { transform: translateX(0); }.admin-backdrop { position: fixed; z-index: 40; inset: 0; display: block; background: rgba(5,20,12,.52); opacity: 0; visibility: hidden; transition: opacity .25s, visibility .25s; }.admin-menu-open .admin-backdrop { opacity: 1; visibility: visible; }.admin-menu-open { overflow: hidden; }.admin-shell { margin-left: 0; }.admin-menu-toggle { display: grid; place-items: center; }.admin-topbar > div { display: none; }.admin-main { width: min(100% - 2rem, 1180px); }.admin-login-shell { grid-template-columns: 1fr; }.admin-login-visual { display: none; }.admin-login-form-side { min-height: 100vh; }
}
@media (max-width: 600px) { .admin-topbar { height: 4.4rem; padding-inline: 1rem; }.admin-topbar > a span { display: none; }.admin-main { width: min(100% - 1.25rem, 1180px); padding-top: 1.5rem; }.stats-grid, .quick-grid { grid-template-columns: 1fr; }.dashboard-welcome { grid-template-columns: 1fr; }.dashboard-welcome > i { display: none; }.admin-main .card-body { padding: 1rem; }.admin-main .d-flex.justify-content-between { gap: .75rem; flex-wrap: wrap; }.admin-main .table { min-width: 680px; }.admin-login-form-side { padding: 1.25rem; } }

/* Dashboard analítico */
.dashboard-charts { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(290px, .85fr); gap: 1rem; }
.dashboard-panel { padding: 1.35rem; background: rgba(255,255,255,.84); border: 1px solid var(--admin-line); border-radius: 1rem; box-shadow: 0 14px 42px rgba(12,38,25,.065); }
.dashboard-panel-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.35rem; }
.dashboard-panel-header span { color: var(--admin-green-600); font-size: .59rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.dashboard-panel-header h2 { margin: .25rem 0 0; font-family: var(--admin-display); font-size: 1.08rem; font-weight: 750; letter-spacing: -.025em; }
.dashboard-panel-header > i { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; flex: 0 0 auto; color: var(--admin-green-700); background: #e5ede0; border-radius: .7rem; }
.horizontal-chart { display: grid; gap: .85rem; }
.chart-line > div:first-child { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .35rem; }
.chart-line span, .department-chart-line > span { color: #4d5951; font-size: .69rem; font-weight: 650; }
.chart-line strong, .department-chart-line > strong { font-size: .7rem; }
.chart-track { height: .52rem; overflow: hidden; background: #e8e8df; border-radius: 999px; }
.chart-track > span { display: block; height: 100%; min-width: 2px; background: linear-gradient(90deg, var(--admin-green-700), #80a865); border-radius: inherit; transform-origin: left; animation: admin-chart-grow .65s ease both; }
.department-chart-card { grid-column: 1 / -1; }
.department-chart { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .95rem 1.5rem; }
.department-chart-line { display: grid; grid-template-columns: minmax(6rem, .8fr) minmax(7rem, 1.5fr) 2rem; align-items: center; gap: .7rem; }
.department-chart-line > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.department-chart-line .chart-track > span { background: linear-gradient(90deg, #9a663d, #c49c6b); }
.donut-chart-area { display: flex; align-items: center; justify-content: center; gap: clamp(1.2rem,3vw,2rem); min-height: 12.5rem; }
.donut-chart { position: relative; display: grid; place-items: center; width: 10.5rem; aspect-ratio: 1; flex: 0 0 auto; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(12,38,25,.04); }
.donut-chart::after { content: ""; position: absolute; width: 62%; aspect-ratio: 1; background: var(--admin-paper); border-radius: 50%; box-shadow: 0 0 0 1px rgba(12,38,25,.04); }
.donut-chart > span { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; line-height: 1.05; }
.donut-chart strong { font-family: var(--admin-display); font-size: 1.75rem; }
.donut-chart small { margin-top: .25rem; color: var(--admin-muted); font-size: .58rem; }
.chart-legend { display: grid; gap: .75rem; min-width: 10rem; }
.legend-line { display: grid; grid-template-columns: .6rem 1fr auto; align-items: center; gap: .55rem; }
.legend-dot { width: .55rem; height: .55rem; border-radius: 50%; }
.legend-line p { display: flex; flex-direction: column; margin: 0; }
.legend-line p span { color: var(--admin-ink); font-size: .68rem; font-weight: 700; }
.legend-line p small { color: var(--admin-muted); font-size: .58rem; }
.legend-line > strong { font-size: .7rem; }
.birthday-panel { margin-top: 1rem; }
.birthday-table-wrap { overflow-x: auto; }
.birthday-table { width: 100%; border-collapse: collapse; font-size: .76rem; }
.birthday-table th { padding: 0 .75rem .65rem; color: var(--admin-muted); border-bottom: 1px solid var(--admin-line); font-size: .59rem; font-weight: 800; letter-spacing: .09em; text-align: left; text-transform: uppercase; }
.birthday-table td { padding: .75rem; border-bottom: 1px solid rgba(20,32,25,.075); vertical-align: middle; }
.birthday-table tbody tr:last-child td { border-bottom: 0; }
.birthday-table tbody tr:hover { background: rgba(94,141,75,.045); }
.birthday-person { display: flex; align-items: center; gap: .7rem; min-width: 12rem; color: var(--admin-ink); text-decoration: none; }
.birthday-person > img, .birthday-person > span { width: 2.35rem; height: 2.35rem; flex: 0 0 auto; object-fit: cover; border-radius: 50%; }
.birthday-person > span { display: grid; place-items: center; color: white; background: var(--admin-green-700); font-family: var(--admin-display); font-weight: 800; }
.birthday-person strong { font-size: .73rem; }
.birthday-date { display: flex; flex-direction: column; min-width: 4rem; }
.birthday-date strong { font-size: .7rem; text-transform: uppercase; }
.birthday-date small { color: var(--admin-muted); font-size: .6rem; }
.birthday-proximity { display: inline-flex; padding: .32rem .55rem; color: var(--admin-green-800); background: #e5ede0; border-radius: 999px; font-size: .61rem; font-weight: 800; white-space: nowrap; }
.birthday-proximity.is-soon { color: #765221; background: #f5e8cf; }
.birthday-proximity.is-today { color: white; background: #a96d35; }
.birthday-open { display: grid; place-items: center; width: 2rem; height: 2rem; color: var(--admin-green-700); border: 1px solid var(--admin-line); border-radius: .55rem; text-decoration: none; }
.birthday-open:hover { color: white; background: var(--admin-green-700); }
.dashboard-empty { display: flex; align-items: center; justify-content: center; gap: .7rem; min-height: 6rem; padding: 1rem; color: var(--admin-muted); background: rgba(244,240,231,.55); border: 1px dashed rgba(20,32,25,.15); border-radius: .8rem; text-align: center; }
.dashboard-empty i { color: var(--admin-green-600); font-size: 1.25rem; }
.dashboard-empty p { margin: 0; font-size: .72rem; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
@keyframes admin-chart-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* Marca clara sobre a fotografia escura do acesso */
.login-visual-brand { padding: .55rem .8rem; color: #fff !important; background: rgba(5,25,15,.48); border: 1px solid rgba(255,255,255,.16); border-radius: 999px; box-shadow: 0 .75rem 2rem rgba(0,0,0,.12); text-decoration: none !important; backdrop-filter: blur(12px); }
.login-visual-brand:hover { color: #fff; background: rgba(5,25,15,.6); }
.login-visual-brand strong { color: #fff; font-size: .92rem; }
.login-visual-brand small { color: rgba(255,255,255,.72); }

@media (max-width: 1050px) { .department-chart { grid-template-columns: 1fr; } }
@media (max-width: 720px) { .dashboard-charts { grid-template-columns: 1fr; }.department-chart-card { grid-column: auto; }.donut-chart-area { flex-direction: column; }.birthday-table { min-width: 650px; } }
@media (max-width: 600px) { .department-chart-line { grid-template-columns: minmax(5rem,.8fr) minmax(5rem,1.2fr) 1.5rem; } }

/* Módulos de ministérios, QR Codes e Salinha */
.admin-filter-row { display: flex; gap: .45rem; margin: 1.2rem 0; overflow-x: auto; }.admin-filter-row a { padding: .5rem .75rem; color: var(--admin-muted); background: rgba(255,255,255,.62); border: 1px solid var(--admin-line); border-radius: 999px; font-size: .65rem; font-weight: 700; text-decoration: none; white-space: nowrap; }.admin-filter-row a.active { color: white; background: var(--admin-green-700); border-color: var(--admin-green-700); }.request-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }.request-card { padding: 1.2rem; background: rgba(255,255,255,.84); border: 1px solid var(--admin-line); border-radius: 1rem; box-shadow: 0 14px 38px rgba(12,38,25,.06); }.request-card header { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .7rem; padding-bottom: .85rem; border-bottom: 1px solid var(--admin-line); }.request-avatar { display: grid; place-items: center; width: 2.7rem; height: 2.7rem; overflow: hidden; color: white; background: var(--admin-green-700); border-radius: 50%; font-family: var(--admin-display); font-weight: 800; }.request-avatar img { width: 100%; height: 100%; object-fit: cover; }.request-card header span { color: var(--admin-green-600); font-size: .57rem; font-weight: 800; text-transform: uppercase; }.request-card header h3 { margin: .15rem 0 0; font-size: .85rem; }.request-card header>small { color: var(--admin-muted); font-size: .58rem; }.request-card dl { display: grid; gap: .7rem; margin: .9rem 0; }.request-card dl>div { display: grid; grid-template-columns: 6rem 1fr; gap: .6rem; }.request-card dt { color: var(--admin-muted); font-size: .6rem; }.request-card dd { margin: 0; font-size: .68rem; white-space: pre-line; }.request-card form { display: flex; gap: .5rem; }.admin-empty-wide { grid-column: 1/-1; padding: 4rem 1rem; color: var(--admin-muted); background: rgba(255,255,255,.6); border: 1px dashed var(--admin-line); border-radius: 1rem; text-align: center; }.admin-empty-wide i { color: var(--admin-green-600); font-size: 2rem; }.admin-empty-wide h3 { margin: .5rem 0; color: var(--admin-ink); font-size: 1rem; }.admin-empty-wide p { margin: 0; font-size: .7rem; }.admin-module-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(260px,.65fr); gap: 1rem; margin-top: 1.2rem; }.module-heading { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 1rem; }.module-heading span { color: var(--admin-green-600); font-size: .58rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.module-heading h3 { margin: .2rem 0 0; font-size: 1rem; }.module-heading>i { color: var(--admin-green-600); font-size: 1.5rem; }.module-heading>strong { font-family: var(--admin-display); font-size: 1.5rem; }.teacher-list { display: grid; gap: .55rem; }.teacher-list article { display: flex; align-items: center; gap: .65rem; padding: .65rem; background: #f3f1ea; border-radius: .7rem; }.teacher-list article>img,.teacher-list article>span { display: grid; place-items: center; width: 2.3rem; height: 2.3rem; object-fit: cover; color: white; background: var(--admin-green-700); border-radius: 50%; font-size: .7rem; font-weight: 800; }.teacher-list p { display: flex; flex: 1; flex-direction: column; margin: 0; }.teacher-list strong { font-size: .7rem; }.teacher-list small,.teacher-list em { color: var(--admin-muted); font-size: .58rem; }.admin-qr-callout { display: flex; flex-direction: column; align-items: flex-start; padding: 1.4rem; color: white; background: linear-gradient(145deg,var(--admin-green-950),var(--admin-green-700)); border-radius: 1rem; box-shadow: 0 20px 48px rgba(12,38,25,.16); }.admin-qr-callout>span { color: #bad1aa; font-size: .58rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.admin-qr-callout h3 { margin: .5rem 0; font-size: 1.2rem; }.admin-qr-callout p { color: rgba(255,255,255,.65); font-size: .68rem; }.admin-qr-callout>img { width: 9rem; margin: auto; padding: .4rem; background: white; border-radius: .7rem; }.admin-qr-callout .btn { margin-top: 1rem; }.print-qr-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; margin-top: 1.5rem; }.print-qr-card { display: flex; flex-direction: column; align-items: center; min-height: 700px; padding: 3rem 2rem; text-align: center; background: white; border: 1px solid var(--admin-line); border-radius: 1rem; box-shadow: var(--admin-shadow); }.print-qr-card .print-logo { width: 5rem; height: 5rem; margin-bottom: 2rem; }.print-qr-card>span { color: var(--admin-green-600); font-size: .65rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }.print-qr-card h3 { max-width: 22rem; margin: .6rem 0; font-size: 2rem; line-height: 1.05; }.print-qr-card p { max-width: 24rem; color: var(--admin-muted); font-size: .78rem; line-height: 1.65; }.print-code { width: min(18rem,80%); margin: 1.2rem; }.print-qr-card>small { max-width: 100%; overflow-wrap: anywhere; color: var(--admin-muted); font-size: .55rem; }.print-qr-card.kids { background: linear-gradient(180deg,#fff,#f3eee3); }.print-toolbar { display: flex; justify-content: center; margin-top: 1.2rem; }
@media(max-width:900px){.request-grid,.admin-module-grid,.print-qr-grid{grid-template-columns:1fr}.print-qr-card{min-height:auto}}
@media print{.admin-sidebar,.admin-topbar,.admin-alerts,.page-header,.print-toolbar{display:none!important}.admin-shell{margin:0}.admin-main{width:100%;padding:0}.print-qr-grid{grid-template-columns:repeat(2,1fr);gap:0}.print-qr-card{min-height:100vh;border:0;border-radius:0;box-shadow:none;break-inside:avoid}.print-qr-card.kids{background:white}}
.request-actions { display:flex; align-items:center; justify-content:space-between; gap:.6rem; }.request-actions>form:first-child { flex:1; }.request-actions>form:first-child select { flex:1; }
.birthday-pagination { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-top:1rem; border-top:1px solid var(--admin-line); }.birthday-pagination>span { color:var(--admin-muted); font-size:.62rem; }.birthday-pagination nav { display:flex; gap:.3rem; }.birthday-pagination a { display:grid; place-items:center; min-width:2rem; height:2rem; padding:0 .45rem; color:var(--admin-green-700); border:1px solid var(--admin-line); border-radius:.55rem; font-size:.65rem; font-weight:800; text-decoration:none; }.birthday-pagination a:hover,.birthday-pagination a.is-current { color:white; background:var(--admin-green-700); border-color:var(--admin-green-700); }.birthday-pagination a.is-disabled { opacity:.35; pointer-events:none; }
.audio-recorder { padding:1rem; background:#f3f1ea; border:1px solid var(--admin-line); border-radius:.9rem; }.audio-recorder-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:.9rem; }.audio-recorder-heading>div { display:flex; flex-direction:column; }.audio-recorder-heading span { color:var(--admin-ink); font-family:var(--admin-display); font-size:.85rem; font-weight:750; }.audio-recorder-heading small { margin-top:.2rem; color:var(--admin-muted); font-size:.64rem; }.audio-recorder-heading>i { display:grid; place-items:center; width:2.4rem; height:2.4rem; color:var(--admin-green-700); background:#e1eadb; border-radius:.7rem; }.audio-recorder-actions { display:flex; align-items:center; flex-wrap:wrap; gap:.55rem; margin-top:.75rem; }.audio-recorder-actions>span { color:var(--admin-muted); font-size:.63rem; }.audio-current,.audio-preview { margin-top:.85rem; padding:.75rem; background:white; border:1px solid var(--admin-line); border-radius:.7rem; }.audio-current small,.audio-preview small { display:block; margin-bottom:.45rem; color:var(--admin-green-600); font-size:.58rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.audio-current audio,.audio-preview audio { width:100%; height:2.6rem; }
@media(max-width:600px){.birthday-pagination{align-items:flex-start;flex-direction:column}.audio-recorder-actions .btn{flex:1}}

/* Painel com comportamento de aplicativo em telas pequenas */
.admin-mobile-nav,.admin-auth-mobile-brand { display:none; }
@media (max-width:700px) {
  html { background:var(--admin-cream); }
  .admin-body { padding-bottom:calc(4.75rem + env(safe-area-inset-bottom)); overflow-x:hidden; }
  .admin-shell { width:100%; margin:0; }
  .admin-topbar { position:sticky; z-index:50; top:0; height:4.2rem; padding:0 .8rem; background:rgba(247,244,236,.95); box-shadow:0 1px 0 var(--admin-line); backdrop-filter:blur(18px); }
  .admin-topbar>div span { font-size:.57rem; }
  .admin-topbar>div strong { font-size:.66rem; }
  .admin-topbar>a { width:2.7rem; height:2.7rem; justify-content:center; padding:0; border-radius:50%; }
  .admin-topbar>a span { display:none; }
  .admin-menu-toggle { width:2.7rem; height:2.7rem; border-radius:.75rem; }
  .admin-main { width:100%; padding:1rem .75rem 1.5rem; }
  .admin-main>.page-header,.page-header { align-items:flex-start; flex-direction:column; gap:.8rem; margin-bottom:1rem; }
  .page-header h1 { font-size:clamp(1.75rem,9vw,2.4rem); line-height:1; }
  .page-header .btn { width:100%; min-height:2.9rem; }
  .admin-sidebar { z-index:90; width:min(89vw,22rem); padding-bottom:calc(1rem + env(safe-area-inset-bottom)); box-shadow:2rem 0 5rem rgba(0,0,0,.3); }
  .admin-backdrop { z-index:80; }
  .admin-nav a { min-height:3rem; }
  .admin-mobile-nav { position:fixed; z-index:70; right:0; bottom:0; left:0; display:grid; grid-template-columns:repeat(5,1fr); min-height:4.7rem; padding:.35rem .25rem calc(.35rem + env(safe-area-inset-bottom)); background:rgba(251,250,246,.97); border-top:1px solid var(--admin-line); box-shadow:0 -12px 34px rgba(12,38,25,.1); backdrop-filter:blur(20px); }
  .admin-mobile-nav a,.admin-mobile-nav button { display:flex; min-width:0; min-height:3.65rem; align-items:center; justify-content:center; flex-direction:column; gap:.2rem; padding:.25rem .05rem; color:var(--admin-muted); background:transparent; border:0; border-radius:.75rem; font:700 .49rem var(--admin-body); text-decoration:none; }
  .admin-mobile-nav i { font-size:1.15rem; line-height:1; }
  .admin-mobile-nav a.is-active { color:var(--admin-green-700); background:#e2ebdc; }
  .admin-card,.dashboard-card,.request-card,.audio-recorder { border-radius:1rem; box-shadow:0 .8rem 2rem rgba(12,38,25,.06); }
  .dashboard-stats { display:flex; overflow-x:auto; gap:.75rem; margin-inline:-.75rem; padding:.1rem .75rem .75rem; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .dashboard-stats::-webkit-scrollbar { display:none; }
  .dashboard-stat { flex:0 0 78%; min-height:9rem; scroll-snap-align:start; }
  .dashboard-welcome { min-height:17rem; padding:1.25rem; border-radius:1.15rem; }
  .dashboard-welcome h1 { font-size:2.05rem; }
  .dashboard-charts,.request-grid,.admin-module-grid,.print-qr-grid { grid-template-columns:1fr; }
  .donut-chart-area { align-items:center; flex-direction:column; }
  .quick-links-grid { grid-template-columns:1fr; }
  .quick-link { min-height:5rem; }
  .table-responsive { margin-inline:-.1rem; overflow-x:auto; scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch; border-radius:.9rem; }
  .table-responsive table { min-width:680px; }
  .birthday-table { min-width:650px; }
  .birthday-pagination { align-items:stretch; }
  .birthday-pagination nav { max-width:100%; overflow-x:auto; padding-bottom:.25rem; }
  .birthday-pagination a { min-width:2.45rem; height:2.45rem; }
  .admin-form-grid,.form-grid { grid-template-columns:1fr!important; }
  .form-control,.form-select,input,select,textarea { min-height:3.1rem; font-size:16px!important; }
  textarea.form-control,textarea { min-height:7rem; }
  .btn { min-height:2.85rem; display:inline-flex; align-items:center; justify-content:center; }
  .form-actions { display:grid; grid-template-columns:1fr; }
  .request-card { padding:1rem; }
  .request-card header { grid-template-columns:auto 1fr; }
  .request-card header>small { grid-column:2; }
  .request-card dl>div { grid-template-columns:1fr; gap:.15rem; }
  .request-actions { align-items:stretch; flex-direction:column; }
  .request-actions>form { width:100%; }
  .request-actions>form:first-child { display:grid; grid-template-columns:1fr; }
  .audio-recorder-actions { display:grid; grid-template-columns:1fr 1fr; }
  .audio-recorder-actions>span { grid-column:1/-1; }
  .print-qr-card { min-height:auto; padding:1.5rem 1rem; }
  .print-code { width:min(15rem,82vw); }
  .modal-dialog { width:100%; max-width:none; min-height:100svh; margin:0; }
  .modal-content { min-height:100svh; border:0; border-radius:0; }
  .modal-footer { padding-bottom:calc(1rem + env(safe-area-inset-bottom)); }
  .admin-login-page { min-height:100svh; background:linear-gradient(160deg,var(--admin-green-950),var(--admin-green-700)); }
  .admin-login-shell { display:block; min-height:100svh; }
  .admin-login-visual { display:none; }
  .admin-login-form-side { min-height:100svh; padding:1rem; background:linear-gradient(180deg,rgba(12,38,25,.2),var(--admin-cream) 38%); }
  .admin-auth-card { width:100%; margin:auto; padding:1.2rem; background:rgba(251,250,246,.98); border-radius:1.25rem; box-shadow:0 2rem 5rem rgba(0,0,0,.2); }
  .admin-auth-mobile-brand { display:flex; align-items:center; gap:.7rem; margin-bottom:2rem; color:var(--admin-ink); text-decoration:none; }
  .admin-auth-mobile-brand>span { display:grid; place-items:center; width:3.4rem; height:3.4rem; background:white; border-radius:50%; box-shadow:0 .5rem 1.5rem rgba(12,38,25,.12); }
  .admin-auth-mobile-brand img { width:90%; height:90%; object-fit:contain; }
  .admin-auth-mobile-brand p { display:flex; flex-direction:column; margin:0; }
  .admin-auth-mobile-brand strong { font:800 .82rem var(--admin-display); }
  .admin-auth-mobile-brand small { color:var(--admin-muted); font-size:.52rem; letter-spacing:.08em; text-transform:uppercase; }
  .admin-auth-card h2 { font-size:2rem; }
}
