:root {
    --admin-bg: #f4f6f3;
    --admin-bg-soft: #eef1ee;
    --admin-sidebar: #0b100d;
    --admin-surface: #fff;
    --admin-surface-2: #f0f3f0;
    --admin-surface-3: #e7ece7;
    --admin-border: #d2dcd6;
    --admin-border-light: #bccac2;
    --admin-text: #131714;
    --admin-muted: #56635a;
    --admin-green: #3f862f;
    --admin-green-dark: #2f6824;
    --admin-gold: #9b8135;
    --admin-shadow: 0 18px 55px rgba(18, 28, 21, .07);
}
html { color-scheme: light; }
body { background: radial-gradient(circle at 88% -8%,rgba(114,212,74,.10),transparent 27%),var(--admin-bg); }
::selection { background: #bde9e2; color: #071716; }
:focus-visible { outline: 3px solid #2d8e82; outline-offset: 2px; }
input::placeholder,
textarea::placeholder { color: #6d7a71; opacity: 1; }
.admin-sidebar { background: linear-gradient(180deg,#0d130f,#080c09); border-right-color: #202a23; }
.admin-brand { border-bottom-color: rgba(255,255,255,.08); }
.admin-brand strong { color: #fff; }
.admin-brand > span { background: #fff; border-color: #fff; color: #111713; }
.admin-sidebar nav a.active,
.admin-sidebar nav a[aria-current="page"] { background: rgba(255,255,255,.09); color: #fff; box-shadow: inset 3px 0 #72d44a; }
.admin-topbar { background: rgba(255,255,255,.88); border-bottom-color: var(--admin-border); }
.admin-main { background: transparent; }
.admin-panel-card,
.admin-stats-grid article,
.admin-finance-grid article {
    background: #fff;
    border-color: var(--admin-border);
    box-shadow: var(--admin-shadow);
}
.admin-page-heading h1,
.admin-card-header h2,
.admin-panel-card > h2,
.quick-links > h2 { color: var(--admin-text); }
.admin-card-header p,
.muted,
.activity-row small,
.metric-label { color: var(--admin-muted); }
input, select, textarea { background: #f9faf8; border-color: var(--admin-border-light); color: var(--admin-text); }
input:focus, select:focus, textarea:focus { background: #fff; border-color: var(--admin-green); box-shadow: 0 0 0 3px rgba(63,134,47,.11); }
.admin-form-grid label,
.admin-form label,
.admin-login-card label { color: #414a42; }
table th, table td { border-color: var(--admin-border); }
tbody tr:hover { background: #f7f9f7; }
.admin-button,
.button-primary,
.admin-login-card button { background: #111713; color: #fff; }
.admin-button:hover,
.button-primary:hover,
.admin-login-card button:hover { background: #263029; }
.admin-login-body {
    background:
        radial-gradient(circle at 22% 18%,rgba(114,212,74,.18),transparent 32%),
        linear-gradient(145deg,#fff,#e6ebe6);
}
.admin-login-card { background: rgba(255,255,255,.94); border-color: rgba(255,255,255,.82); border-radius: 22px; box-shadow: 0 28px 80px rgba(18,28,21,.12); }
.admin-login-logo { background: #111713; border-color: #111713; color: #fff; }
.admin-login-card h1 { color: var(--admin-text); letter-spacing: -.04em; }
.admin-alert.success { background: #e7f3e8; color: #2f6d39; }
.admin-alert.error { background: #f9e5e4; color: #953f3b; }
.modal-content,
.modal-card { background: #fff; color: var(--admin-text); border-color: var(--admin-border); }
@media (max-width: 860px) {
    .admin-topbar { background: rgba(255,255,255,.94); }
}

/* Identidade Viva Glass — painel */
:root {
    --admin-bg: #f1f5f4;
    --admin-bg-soft: #e9efee;
    --admin-sidebar: #071716;
    --admin-surface: #fff;
    --admin-surface-2: #edf3f2;
    --admin-surface-3: #e2ebea;
    --admin-border: #d7e1df;
    --admin-border-light: #c8d5d3;
    --admin-text: #11201f;
    --admin-muted: #697775;
    --admin-green: #176f65;
    --admin-green-dark: #0f504b;
    --admin-gold: #a68a4d;
    --admin-shadow: 0 18px 55px rgba(10, 35, 32, .08);
}

body { font-family: Inter, "Segoe UI", sans-serif; }
h1, h2, h3, .admin-brand strong { font-family: Manrope, Inter, sans-serif; }
.admin-skip-link {
    position: fixed;
    top: 8px;
    left: 8px;
    z-index: 999;
    padding: 9px 13px;
    transform: translateY(-150%);
    background: #fff;
    border-radius: 8px;
    color: var(--admin-text);
    font-weight: 800;
}
.admin-skip-link:focus { transform: none; }
.admin-sidebar {
    background:
        radial-gradient(circle at 10% 0, rgba(84,203,187,.10), transparent 230px),
        linear-gradient(180deg, #081a18, #06110f);
    border-right-color: #18302d;
}
.admin-brand > span {
    position: relative;
    overflow: hidden;
    background: linear-gradient(145deg, #dff6f2, #fff);
    color: #0f504b;
    border-radius: 13px;
}
.admin-brand > span::after {
    content: "";
    position: absolute;
    inset: -30% auto -30% 58%;
    width: 1px;
    background: rgba(15,80,75,.26);
    transform: rotate(35deg);
}
.admin-brand small { color: #78918d; }
.admin-sidebar nav p { color: #5e7672; letter-spacing: .14em; }
.admin-brand small { color: #91aaa6; }
.admin-sidebar nav p { color: #7f9a95; }
.admin-sidebar nav a { border-radius: 10px; color: #bdcac8; }
.admin-sidebar nav a:hover { background: rgba(255,255,255,.06); color: #fff; }
.sidebar-dropdown-toggle:hover,
.sidebar-dropdown-toggle.has-active { background: rgba(255,255,255,.06); color: #fff; }
.sidebar-dropdown-toggle.has-active { box-shadow: inset 3px 0 #69d5c5; }
.sidebar-dropdown-menu { border-left-color: rgba(105,213,197,.22); }
.admin-sidebar nav a.active,
.admin-sidebar nav a[aria-current="page"] {
    background: rgba(105,213,197,.10);
    color: #fff;
    box-shadow: inset 3px 0 #69d5c5;
}
.admin-sidebar nav a.active svg,
.admin-sidebar nav a[aria-current="page"] svg { color: #79dfd0; }
.admin-logout { color: #9db0ad; border-top-color: rgba(255,255,255,.08); }
.admin-topbar {
    background: rgba(255,255,255,.90);
    backdrop-filter: blur(18px);
}
.admin-topbar > button { cursor: pointer; }
.topbar-user { display: flex !important; align-items: center; gap: 9px; }
.topbar-user > span:last-child { display: block; }
.topbar-user strong, .topbar-user small { display: block; }
.topbar-user small { margin-top: 1px; color: var(--admin-muted); font-size: 9px; }
.topbar-avatar {
    display: grid;
    width: 35px;
    height: 35px;
    place-items: center;
    background: #0d2926;
    border-radius: 50%;
    color: #fff;
    font-weight: 800;
}
.admin-content { background: transparent; }
.admin-page-header > div > span { color: var(--admin-green); }
.admin-page-header h1 { color: var(--admin-text); letter-spacing: -.045em; }
.admin-panel-card,
.admin-stats-grid article,
.admin-finance-grid article {
    border-radius: 15px;
    box-shadow: var(--admin-shadow);
}
.dashboard-kpis article { border-top: 3px solid transparent; }
.dashboard-kpis article:hover { border-top-color: var(--admin-green); }
.admin-primary-button,
.admin-button,
.button-primary {
    background: #0d2926;
    border-color: #0d2926;
    color: #fff;
}
.admin-primary-button:hover,
.admin-button:hover,
.button-primary:hover { background: var(--admin-green); border-color: var(--admin-green); }
.admin-secondary-button { background: #fff; border-color: var(--admin-border-light); color: var(--admin-text); }
.admin-secondary-button:hover { border-color: var(--admin-green); color: var(--admin-green); }
.table-actions a, .table-actions button { border-radius: 9px; }
thead { background: #edf3f2; }
th { color: #687a77; }
th { color: #50615e; font-weight: 800; }
td { color: #26332b; }
tbody tr { transition: background .15s ease; }
tbody tr:hover { background: #f4f8f7; }
.status-badge,
.badge { border-radius: 999px; }
.admin-status {
    background: #dcefe8;
    color: #155b49;
    font-weight: 800;
}
.admin-status.inactive {
    background: #f8dfde;
    color: #8b2d2a;
}

.admin-status.status-neutral {
    background: #deece9;
    color: #18564f;
}

.fc {
    --fc-border-color: #cbd8d5;
    --fc-page-bg-color: #ffffff;
    --fc-neutral-bg-color: #edf3f1;
    --fc-neutral-text-color: #53635f;
    --fc-button-text-color: #18312e;
    --fc-button-bg-color: #ffffff;
    --fc-button-border-color: #b7c9c5;
    --fc-button-hover-bg-color: #e2efec;
    --fc-button-hover-border-color: #7ba89f;
    --fc-button-active-bg-color: #0f504b;
    --fc-button-active-border-color: #0f504b;
    --fc-event-bg-color: #176f65;
    --fc-event-border-color: #176f65;
    --fc-event-text-color: #ffffff;
    --fc-today-bg-color: #e3f2ee;
}

.fc .fc-button-primary {
    background: #ffffff;
    border-color: #b7c9c5;
    color: #18312e;
    box-shadow: none;
    font-weight: 800;
}

.fc .fc-button-primary:hover,
.fc .fc-button-primary:focus {
    background: #e2efec;
    border-color: #7ba89f;
    color: #0b3732;
    box-shadow: 0 0 0 3px rgba(23, 111, 101, 0.14);
}

.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active {
    background: #0f504b;
    border-color: #0f504b;
    color: #ffffff;
}

.fc .fc-button-primary:disabled {
    background: #e7eeec;
    border-color: #c5d2cf;
    color: #51635f;
    opacity: 1;
}

.fc .fc-icon {
    color: currentColor;
}

.fc .fc-toolbar-title {
    color: #101d1b;
    font-family: Manrope, Inter, sans-serif;
    font-weight: 800;
}

.fc .fc-col-header-cell {
    background: #e7efed;
}

.fc .fc-col-header-cell-cushion {
    color: #314440;
    font-weight: 900;
}

.fc .fc-daygrid-day {
    background: #ffffff;
}

.fc .fc-day-other {
    background: #f4f7f6;
}

.fc .fc-day-other .fc-daygrid-day-number {
    color: #879591;
}

.fc .fc-day-today {
    background: #e3f2ee !important;
}

.fc .fc-daygrid-day-number {
    color: #172724;
    font-weight: 800;
}

.fc .fc-event {
    border-radius: 5px;
    padding: 2px 4px;
    font-weight: 800;
}

.fc .fc-event-main,
.fc .fc-event-time,
.fc .fc-event-title {
    color: #ffffff;
}

.department-page-shell {
    display: flex;
    height: calc(100dvh - var(--admin-topbar-height) - 52px);
    min-height: 0;
    flex-direction: column;
    overflow: hidden;
}

.department-page-shell > .admin-page-header {
    flex: 0 0 auto;
}

.department-layout {
    display: grid;
    min-height: 0;
    flex: 1 1 auto;
    grid-template-columns: 290px minmax(0, 1fr);
    align-items: stretch;
    gap: 20px;
    overflow: hidden;
}

.department-selector {
    position: static;
    display: flex;
    min-height: 0;
    flex-direction: column;
    padding: 18px;
    overflow: hidden;
}

.department-selector-heading {
    padding: 4px 5px 12px;
}

.department-selector-heading > span,
.department-card-head > div > span {
    color: var(--admin-green);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .13em;
}

.department-selector-heading h2,
.department-card-head h2 {
    margin: 5px 0 0;
    color: var(--admin-text);
    font-family: Manrope, Inter, sans-serif;
}

.department-list {
    display: grid;
    min-height: 0;
    flex: 1 1 auto;
    align-content: start;
    gap: 7px;
    padding-right: 6px;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.department-list > a,
.department-admin-note {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 18px;
    align-items: center;
    gap: 11px;
    min-height: 68px;
    padding: 11px;
    border: 1px solid var(--admin-border);
    border-radius: 13px;
    background: #fff;
    color: var(--admin-text);
    transition: border-color .18s ease, background .18s ease, transform .18s ease;
}

.department-list > a:hover,
.department-list > a.active {
    border-color: #6da99f;
    background: #e9f3f0;
    transform: translateX(2px);
}

.department-list > a.active {
    box-shadow: inset 3px 0 var(--admin-green);
}

.department-list > a > span:nth-child(2),
.department-admin-note > span:nth-child(2) {
    min-width: 0;
}

.department-list strong,
.department-list small,
.department-admin-note strong,
.department-admin-note small {
    display: block;
}

.department-list strong,
.department-admin-note strong {
    overflow: hidden;
    color: #17211e;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.department-list small,
.department-admin-note small {
    margin-top: 3px;
    color: var(--admin-muted);
    font-size: 9px;
}

.department-list svg {
    width: 16px;
    color: #60726d;
}

.department-icon {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 12px;
    background: #dcece8;
    color: #155c53;
    font: 800 14px Manrope, sans-serif;
}

.department-icon.admin {
    background: #e8e8df;
    color: #6f653e;
}

.department-admin-note {
    grid-template-columns: 42px minmax(0, 1fr);
    margin-top: 14px;
    background: #f3f5f3;
}

.department-access-card {
    display: flex;
    min-height: 0;
    flex-direction: column;
    padding: 25px;
    overflow: hidden;
}

.department-form {
    display: flex;
    min-height: 0;
    flex: 1 1 auto;
    flex-direction: column;
}

.department-permissions-scroll {
    min-height: 0;
    flex: 1 1 auto;
    padding-right: 8px;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.department-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 22px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--admin-border);
}

.department-card-head h2 {
    font-size: 23px;
}

.department-card-head p {
    margin: 5px 0 0;
    color: var(--admin-muted);
    font-size: 11px;
}

.department-active {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--admin-text);
    font-size: 10px;
    font-weight: 800;
    cursor: pointer;
}

.department-active input,
.permission-access-toggle input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.department-active > span,
.permission-access-toggle > i {
    position: relative;
    display: inline-block;
    width: 35px;
    height: 20px;
    flex: 0 0 auto;
    border-radius: 11px;
    background: #cdd7d3;
    transition: background .18s ease;
}

.department-active > span::after,
.permission-access-toggle > i::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .18);
    transition: transform .18s ease;
}

.department-active input:checked + span,
.permission-access-toggle input:checked + i {
    background: var(--admin-green);
}

.department-active input:checked + span::after,
.permission-access-toggle input:checked + i::after {
    transform: translateX(15px);
}

.department-active input:focus-visible + span,
.permission-access-toggle input:focus-visible + i {
    outline: 3px solid rgba(23, 111, 101, .18);
    outline-offset: 2px;
}

.department-details-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 21px 0 25px;
}

.department-details-grid label {
    display: grid;
    gap: 7px;
    color: #33413d;
    font-size: 10px;
    font-weight: 800;
}

.department-permission-group {
    margin: 0 0 24px;
    padding: 0;
    border: 0;
}

.department-permission-group legend {
    margin-bottom: 10px;
    color: #1b2825;
    font: 800 14px Manrope, sans-serif;
}

.department-permission-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.department-permission-item {
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--admin-border);
    border-radius: 13px;
    background: #fafcfb;
}

.department-permission-item > div:first-child {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 13px;
}

.permission-module-icon {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 10px;
    background: #e2efec;
    color: #176f65;
}

.permission-module-icon svg {
    width: 17px;
    height: 17px;
}

.department-permission-item strong,
.department-permission-item small {
    display: block;
}

.department-permission-item strong {
    color: #1c2825;
    font-size: 11px;
}

.department-permission-item small {
    margin-top: 2px;
    color: var(--admin-muted);
    font-size: 8px;
}

.permission-access-toggle {
    display: flex;
    min-height: 38px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 10px;
    border-radius: 10px;
    background: #edf3f1;
    color: #31433f;
    font-size: 9px;
    font-weight: 900;
    cursor: pointer;
}

.permission-access-toggle > i {
    width: 35px;
    height: 20px;
    flex: 0 0 auto;
}

.permission-access-toggle input:checked + i::after {
    transform: translateX(15px);
}

.department-form-actions {
    display: flex;
    justify-content: flex-end;
    padding-top: 4px;
}

.department-delete-form {
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid var(--admin-border);
}

.department-delete-form button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    gap: 7px;
    padding: 10px 14px;
    border: 1px solid #efc7c4;
    border-radius: 10px;
    background: #fff1f0;
    color: #9b3732;
    font-size: 10px;
    font-weight: 900;
    cursor: pointer;
}

.department-delete-form svg {
    width: 16px;
}

.department-create-modal {
    max-width: 560px;
}

.admin-file-dropzone {
    position: relative;
    display: grid;
    min-height: 132px;
    place-items: center;
    padding: 22px;
    overflow: hidden;
    border: 1.5px dashed #91aaa4;
    border-radius: 14px;
    background: #f6faf8;
    color: #28423d;
    text-align: center;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.admin-file-dropzone:hover,
.admin-file-dropzone.is-dragging {
    border-color: var(--admin-green);
    background: #e9f4f1;
    box-shadow: 0 0 0 4px rgba(23, 111, 101, .1);
}

.admin-file-dropzone input[type="file"] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    cursor: pointer;
    opacity: 0;
}

.admin-file-dropzone-content {
    display: grid;
    justify-items: center;
    pointer-events: none;
}

.admin-file-dropzone-content > span:first-child {
    display: grid;
    width: 42px;
    height: 42px;
    margin-bottom: 10px;
    place-items: center;
    border-radius: 12px;
    background: #dcece8;
    color: var(--admin-green);
}

.admin-file-dropzone-content svg {
    width: 20px;
}

.admin-file-dropzone-content strong {
    color: #17322d;
    font-size: 11px;
}

.admin-file-dropzone-content small {
    margin-top: 5px;
    color: var(--admin-muted);
    font-size: 9px;
}

.admin-file-dropzone.is-filled .admin-file-dropzone-content small {
    color: var(--admin-green);
    font-weight: 800;
}

@media (max-width: 1100px) {
    .department-page-shell {
        height: auto;
        min-height: 0;
        overflow: visible;
    }

    .department-layout {
        display: grid;
        overflow: visible;
        grid-template-columns: 1fr;
    }

    .department-selector,
    .department-access-card {
        overflow: visible;
    }

    .department-form {
        display: block;
    }

    .department-list,
    .department-permissions-scroll {
        overflow: visible;
        scrollbar-gutter: auto;
    }

    .department-selector {
        position: static;
    }

    .department-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .department-list,
    .department-details-grid,
    .department-permission-grid {
        grid-template-columns: 1fr;
    }

    .department-access-card {
        padding: 18px;
    }

    .department-card-head {
        align-items: stretch;
        flex-direction: column;
    }

    .department-form-actions .admin-primary-button {
        width: 100%;
    }
}
.messages-box { background: #edf3f2; border-color: var(--admin-border); }
.message { background: #fff; color: var(--admin-text); border: 1px solid var(--admin-border); }
.message.empresa { background: #0f504b; color: #fff; border-color: #0f504b; }
.admin-login-body {
    background:
        linear-gradient(rgba(17,32,31,.025) 1px,transparent 1px),
        linear-gradient(90deg,rgba(17,32,31,.025) 1px,transparent 1px),
        radial-gradient(circle at 22% 18%,rgba(84,203,187,.18),transparent 32%),
        linear-gradient(145deg,#fff,#e6efed);
    background-size: 64px 64px, 64px 64px, auto, auto;
}
.admin-login-logo { background: linear-gradient(145deg, #071716, #176f65); border-color: #176f65; }
.admin-login-card button { background: #0d2926; }
.admin-login-card button:hover { background: var(--admin-green); }
.admin-alert.success { background: #def1ed; border-color: #bddfd9; color: #176f65; }
.admin-page-header p,
.admin-card-header p,
.metric-label,
.muted { color: #56635a; }
.admin-panel-card h2,
.admin-panel-card h3,
.admin-card-header h2 { color: #131714; }

@media (max-width: 560px) {
    .topbar-user > span:last-child { display: none; }
    .topbar-avatar { width: 40px; height: 40px; }
    .admin-page-header > .form-actions,
    .admin-page-header > .admin-primary-button,
    .admin-page-header > .admin-secondary-button {
        width: 100%;
        flex: 0 0 auto;
    }
    .admin-page-header > .admin-primary-button,
    .admin-page-header > .admin-secondary-button {
        min-height: 46px;
    }
}
