:root {
    --ipc-primary: #155e75;
    --ipc-primary-dark: #0f3f4f;
    --ipc-accent: #22c55e;
    --ipc-soft: #f1f8fb;
    --ipc-text: #243042;
}

body {
    background: linear-gradient(135deg, #f7fbfd 0%, #eef7f3 100%);
    color: var(--ipc-text);
}

body[data-sidebar="dark"] .vertical-menu {
    background: linear-gradient(180deg, var(--ipc-primary-dark) 0%, #082f3c 100%);
    box-shadow: 12px 0 32px rgba(15, 63, 79, .12);
}

body[data-sidebar="dark"] .navbar-brand-box {
    background: rgba(8, 47, 60, .45);
}

#sidebar-menu .menu-title {
    color: rgba(255, 255, 255, .58) !important;
    letter-spacing: .08em;
}

#sidebar-menu ul li a {
    border-radius: 10px;
    margin: 2px 10px;
    transition: all .2s ease-in-out;
}

#sidebar-menu ul li a:hover,
#sidebar-menu ul li.mm-active > a,
#sidebar-menu ul li a.active {
    background: rgba(255, 255, 255, .12);
    color: #fff !important;
}

#sidebar-menu ul li a i {
    color: rgba(255, 255, 255, .82) !important;
}

.navbar-header {
    box-shadow: 0 8px 28px rgba(31, 45, 61, .06);
}

.page-content {
    padding-top: 92px;
}

.page-title-box h4,
.breadcrumb-item.active {
    color: var(--ipc-primary-dark);
}

.card,
.modal-content,
.dropdown-menu {
    border: 0;
    border-radius: 18px;
    box-shadow: 0 16px 38px rgba(15, 63, 79, .08);
}

.card-header {
    background: #fff;
    border-bottom: 1px solid #edf2f7;
    border-radius: 18px 18px 0 0 !important;
}

.btn {
    border-radius: 10px;
    font-weight: 600;
}

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

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

.table {
    vertical-align: middle;
}

.table thead th {
    background: var(--ipc-soft);
    color: var(--ipc-primary-dark);
    border-bottom: 0;
    font-size: .78rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.dataTables_wrapper .dataTables_filter input,
.form-control,
.form-select,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
    border-radius: 10px !important;
    border-color: #dbe7ee !important;
}

.ipc-hero {
    position: relative;
    overflow: hidden;
    border-radius: 24px;
    padding: 32px;
    color: #fff;
    background: radial-gradient(circle at top right, rgba(34, 197, 94, .55), transparent 32%),
                linear-gradient(135deg, var(--ipc-primary-dark), var(--ipc-primary));
    box-shadow: 0 18px 45px rgba(15, 63, 79, .22);
}

.ipc-hero:after {
    content: "";
    position: absolute;
    right: -80px;
    bottom: -80px;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .12);
}

.ipc-hero h1,
.ipc-hero p {
    position: relative;
    z-index: 1;
}

.ipc-stat-card {
    min-height: 132px;
}

.ipc-stat-icon {
    width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: var(--ipc-soft);
    color: var(--ipc-primary);
    font-size: 24px;
}

.ipc-quick-action {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px;
    border-radius: 16px;
    border: 1px solid #e8f0f4;
    color: var(--ipc-text);
    transition: all .2s ease-in-out;
}

.ipc-quick-action:hover {
    transform: translateY(-2px);
    color: var(--ipc-primary);
    border-color: rgba(21, 94, 117, .25);
    box-shadow: 0 10px 24px rgba(15, 63, 79, .08);
}

@media (max-width: 767.98px) {
    .page-content {
        padding-top: 76px;
    }

    .ipc-hero {
        padding: 24px;
    }
}


/* ===================== IPC UI polish - forms and nursing ===================== */
@keyframes ipcFadeUp {
    from { opacity: 0; transform: translateY(14px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes ipcSoftPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(21, 94, 117, .20); }
    50% { box-shadow: 0 0 0 8px rgba(21, 94, 117, 0); }
}

.card,
.ipc-animated,
.ipc-form-card,
.ipc-resident-profile-card {
    animation: ipcFadeUp .38s ease both;
}

.form-control,
.form-select,
textarea.form-control {
    min-height: 48px;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease, background-color .2s ease;
}

.form-control:focus,
.form-select:focus,
textarea.form-control:focus {
    border-color: rgba(21, 94, 117, .65) !important;
    box-shadow: 0 0 0 .22rem rgba(21, 94, 117, .12) !important;
    transform: translateY(-1px);
}

.form-floating > label {
    color: #5f6f7d;
}

.ipc-form-card {
    overflow: hidden;
    border: 1px solid rgba(21, 94, 117, .06);
}

.ipc-form-card > .card-header,
.ipc-form-header {
    padding: 22px 26px;
    background: radial-gradient(circle at top right, rgba(34, 197, 94, .20), transparent 28%), linear-gradient(135deg, #ffffff, #f4fbfd);
}

.ipc-form-title {
    margin: 0;
    color: var(--ipc-primary-dark);
    font-size: 1.08rem;
    font-weight: 800;
    letter-spacing: .02em;
}

.ipc-form-subtitle {
    margin: 4px 0 0;
    color: #718096;
    font-size: .88rem;
}

.ipc-form-card .card-body.bg-primary,
.ipc-reception-form .card-body.bg-primary {
    background: #fff !important;
    padding: 26px;
}

.ipc-form-card hr.bg-white,
.ipc-reception-form hr.bg-white {
    background-color: transparent !important;
    border-top: 1px dashed #d8e7ee !important;
    opacity: 1;
}

.ipc-form-card .card-title-desc,
.ipc-reception-form .card-title-desc {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 9px 14px;
    margin: 14px 0;
    border-radius: 999px;
    background: rgba(21, 94, 117, .08);
    color: var(--ipc-primary-dark) !important;
    font-size: .78rem;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.ipc-form-card .card-title-desc::before,
.ipc-reception-form .card-title-desc::before {
    content: "";
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--ipc-accent);
}

.ipc-form-card .row,
.ipc-reception-form .row {
    animation: ipcFadeUp .35s ease both;
}

.ipc-form-card .row:nth-of-type(2),
.ipc-reception-form .row:nth-of-type(2) { animation-delay: .03s; }
.ipc-form-card .row:nth-of-type(3),
.ipc-reception-form .row:nth-of-type(3) { animation-delay: .06s; }
.ipc-form-card .row:nth-of-type(4),
.ipc-reception-form .row:nth-of-type(4) { animation-delay: .09s; }

#camera,
#preview-container {
    border: 1px solid rgba(21, 94, 117, .18) !important;
    border-radius: 18px !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .45), 0 14px 28px rgba(15, 63, 79, .08);
}

#preview-container {
    background: linear-gradient(135deg, #ffffff, #f4fbfd) !important;
}

#btn-capturar {
    min-height: 64px;
    border: 0;
    color: #fff !important;
    background: linear-gradient(135deg, var(--ipc-primary), var(--ipc-primary-dark)) !important;
    box-shadow: 0 12px 24px rgba(15, 63, 79, .18);
    transition: transform .2s ease, box-shadow .2s ease;
}

#btn-capturar:hover {
    transform: translateY(-2px) scale(1.01);
    box-shadow: 0 16px 30px rgba(15, 63, 79, .24);
}

.ipc-form-card .card-footer,
.ipc-reception-form .card-footer {
    background: #fff;
    border-top: 1px solid #edf2f7;
    padding: 18px 26px;
}

.ipc-form-card .card-footer .d-flex,
.ipc-reception-form .card-footer .d-flex {
    gap: 12px;
}

.ipc-form-card .btn,
.ipc-reception-form .btn {
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.ipc-form-card .btn:hover,
.ipc-reception-form .btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(15, 63, 79, .12);
}

.ipc-nursing-header {
    position: relative;
    overflow: hidden;
    padding: 24px !important;
    color: #fff;
    background: radial-gradient(circle at top right, rgba(34, 197, 94, .38), transparent 32%), linear-gradient(135deg, var(--ipc-primary-dark), var(--ipc-primary)) !important;
}

.ipc-nursing-header::after {
    content: "";
    position: absolute;
    right: -42px;
    top: -42px;
    width: 132px;
    height: 132px;
    border-radius: 50%;
    background: rgba(255,255,255,.12);
}

.ipc-resident-profile-card {
    display: flex;
    align-items: center;
    gap: 16px;
    position: relative;
    z-index: 1;
}

.ipc-resident-avatar {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: 20px;
    border: 3px solid rgba(255,255,255,.65);
    box-shadow: 0 12px 28px rgba(0,0,0,.16);
}

.ipc-resident-name {
    margin: 0;
    font-size: 1.28rem;
    font-weight: 800;
    color: #fff;
}

.ipc-resident-meta {
    margin: 5px 0 12px;
    color: rgba(255,255,255,.82);
}

.ipc-nursing-header .btn {
    background: rgba(255,255,255,.16) !important;
    border: 1px solid rgba(255,255,255,.28) !important;
    color: #fff !important;
    backdrop-filter: blur(8px);
}

.ipc-nursing-tabs .nav-tabs {
    gap: 8px;
    padding: 12px;
    border: 0;
    background: #f8fbfd;
}

.ipc-nursing-tabs .nav-tabs .nav-link {
    border: 0 !important;
    border-radius: 14px !important;
    color: #1f3340 !important;
    box-shadow: 0 8px 18px rgba(15, 63, 79, .06);
}

.ipc-nursing-tabs .nav-tabs .nav-link.active {
    color: #fff !important;
    transform: translateY(-2px);
    box-shadow: 0 14px 26px rgba(15, 63, 79, .12);
}

.ipc-nursing-tabs .tab-content {
    border: 0 !important;
    background: #fff;
}

.ipc-resident-cell {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 230px;
}

.ipc-resident-cell-avatar {
    width: 42px;
    height: 42px;
    object-fit: cover;
    border-radius: 14px;
    border: 2px solid #e7f1f5;
}

.ipc-resident-cell-name {
    display: block;
    color: var(--ipc-primary-dark);
    font-weight: 800;
    line-height: 1.15;
}

.ipc-resident-cell-meta {
    display: block;
    margin-top: 3px;
    color: #718096;
    font-size: .76rem;
}

.table-hover tbody tr,
#datatable tbody tr {
    transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

#datatable tbody tr:hover {
    background: #f7fbfd;
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(15, 63, 79, .06);
}

@media (max-width: 767.98px) {
    .ipc-form-card .card-body.bg-primary,
    .ipc-reception-form .card-body.bg-primary {
        padding: 18px;
    }

    .ipc-form-card .card-footer .d-flex,
    .ipc-reception-form .card-footer .d-flex {
        flex-direction: column-reverse;
    }

    .ipc-form-card .card-footer .btn,
    .ipc-reception-form .card-footer .btn {
        width: 100%;
    }

    .ipc-resident-profile-card {
        align-items: flex-start;
    }

    .ipc-resident-avatar {
        width: 58px;
        height: 58px;
        border-radius: 16px;
    }
}

/* ===================== IPC full polish pass ===================== */
:root {
    --ipc-radius: 18px;
    --ipc-muted: #64748b;
    --ipc-border: #dbe7ee;
    --ipc-danger: #dc2626;
    --ipc-warning: #f59e0b;
    --ipc-success: #16a34a;
}

html { scroll-behavior: smooth; }
body { overflow-x: hidden; }

.main-content { min-height: 100vh; }
.page-content {
    padding-top: 112px !important;
    padding-bottom: 34px;
}
.container-fluid { max-width: 1540px; }

.navbar-header {
    min-height: 72px;
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(219, 231, 238, .8);
    z-index: 1038;
}
#page-topbar { z-index: 1039 !important; }
.header-item { transition: transform .18s ease, background-color .18s ease; }
.header-item:hover { transform: translateY(-1px); background: #f1f8fb; }
.header-profile-user { border: 2px solid #d9f5e4; }

.ipc-alert-stack {
    position: sticky;
    top: 84px;
    z-index: 1037;
    margin-bottom: 18px;
}
.ipc-alert-stack .alert,
.alert {
    border: 0;
    border-radius: 16px;
    box-shadow: 0 16px 35px rgba(15,63,79,.13);
}
.alert-success { background: #ecfdf3; color: #14532d; }
.alert-danger { background: #fff1f2; color: #7f1d1d; }
.alert-warning { background: #fffbeb; color: #78350f; }

.ipc-hero,
.ipc-hero h1,
.ipc-hero h2,
.ipc-hero h3,
.ipc-hero h4,
.ipc-hero p,
.ipc-hero span {
    color: #ffffff !important;
}
.ipc-hero h1 { font-weight: 850; letter-spacing: -.03em; }
.ipc-hero p { color: rgba(255,255,255,.86) !important; }

.page-title-box {
    padding: 0 0 20px 0;
}
.page-title-box h4 {
    font-weight: 850;
    letter-spacing: -.02em;
}
.breadcrumb {
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(219,231,238,.85);
}

.card,
.modal-content,
.dropdown-menu {
    border: 1px solid rgba(219,231,238,.82) !important;
}
.card { overflow: hidden; }
.card-header.bg-primary,
.modal-header.bg-primary,
.modal-header.panel-heading.bg-primary {
    color: #fff !important;
    background: radial-gradient(circle at top right, rgba(34,197,94,.28), transparent 30%), linear-gradient(135deg, var(--ipc-primary-dark), var(--ipc-primary)) !important;
    border-bottom: 0 !important;
}
.card-header.bg-primary *,
.modal-header.bg-primary *,
.modal-header.panel-heading.bg-primary * { color: #fff !important; }
.card-header .btn-outline-light,
.card-header .btn.text-bg-primary {
    color: #fff !important;
    background: rgba(255,255,255,.14) !important;
    border-color: rgba(255,255,255,.35) !important;
}

.form-control,
.form-select,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
    background-color: #fbfdff !important;
    border: 1px solid var(--ipc-border) !important;
    color: #0f172a !important;
}
.form-control::placeholder { color: #94a3b8; }
.form-floating > label { padding-left: 1rem; }
.form-floating > .form-control:focus ~ label,
.form-floating > .form-control:not(:placeholder-shown) ~ label,
.form-floating > .form-select ~ label { color: var(--ipc-primary); font-weight: 700; }
textarea.form-control { min-height: 112px; }
.invalid-feedback { font-weight: 600; }
.is-invalid { animation: ipcSoftPulse .75s ease; }

.ipc-form-card .card-header:not(.ipc-form-header),
.card > .card-header:not(.bg-primary):not(.ipc-nursing-header) {
    background: radial-gradient(circle at top right, rgba(34,197,94,.16), transparent 24%), linear-gradient(135deg, #ffffff, #f5fbfd) !important;
    color: var(--ipc-primary-dark);
    font-weight: 850;
}

/* DataTables */
.ipc-datatable-shell,
.dataTables_wrapper {
    width: 100%;
}
.table-responsive,
.dataTables_wrapper .row:nth-child(2) .col-sm-12 {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
#datatable,
table.dataTable {
    border: 0 !important;
    border-radius: 16px;
    overflow: hidden;
}
.table-bordered td,
.table-bordered th { border-color: #e8f0f4 !important; }
table.dataTable thead td {
    background: #fff;
    border-bottom: 1px solid #edf2f7 !important;
    padding: 10px 8px;
}
table.dataTable thead td input,
table.dataTable thead td select { min-width: 150px; }
.dataTables_filter label,
.dataTables_length label,
.dataTables_info { color: var(--ipc-muted); font-weight: 600; }
.dt-buttons { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.dt-buttons .btn { border-radius: 999px !important; padding: 7px 13px; }
.dataTables_paginate .paginate_button .page-link,
.pagination .page-link {
    border: 0;
    margin: 0 3px;
    border-radius: 10px !important;
    color: var(--ipc-primary);
}
.page-item.active .page-link { background: var(--ipc-primary) !important; color: #fff !important; }

/* Calendar */
.ipc-calendar-layout .card,
.ipc-calendar-sidebar,
.ipc-calendar-card { height: 100%; }
#calendar {
    background: #fff;
    border-radius: 18px;
    padding: 14px;
    min-height: 650px;
}
.fc .fc-toolbar {
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 18px !important;
}
.fc .fc-toolbar-title {
    color: var(--ipc-primary-dark);
    font-weight: 850;
    letter-spacing: -.02em;
    text-transform: capitalize;
}
.fc .fc-button-primary {
    border: 0 !important;
    border-radius: 12px !important;
    background: var(--ipc-primary) !important;
    box-shadow: 0 9px 18px rgba(15,63,79,.12);
}
.fc .fc-button-primary:hover { background: var(--ipc-primary-dark) !important; }
.fc .fc-daygrid-day,
.fc .fc-timegrid-slot { transition: background-color .18s ease; }
.fc .fc-daygrid-day:hover { background: #f7fbfd; }
.fc .fc-event {
    border: 0 !important;
    border-radius: 10px !important;
    padding: 3px 6px;
    box-shadow: 0 7px 16px rgba(15,63,79,.14);
}
#agendaTab {
    border: 0;
    gap: 8px;
    padding: 8px;
    background: #f1f8fb;
    border-radius: 16px;
}
#agendaTab .nav-link {
    border: 0 !important;
    border-radius: 12px !important;
    color: var(--ipc-primary-dark) !important;
    font-weight: 800;
}
#agendaTab .nav-link.active {
    background: var(--ipc-primary) !important;
    color: #fff !important;
    box-shadow: 0 10px 20px rgba(15,63,79,.14);
}
#previewContainer { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
#previewContainer img { object-fit: cover !important; border-radius: 14px !important; }

/* Nursing / Folha de rosto */
#modalFolhaRosto .modal-content { border-radius: 24px; }
#modalFolhaRosto .modal-header {
    background: linear-gradient(135deg, var(--ipc-primary-dark), var(--ipc-primary));
    color: #fff;
}
#modalFolhaRosto .modal-title { color: #fff; font-weight: 850; }
#printArea {
    background: linear-gradient(180deg, #ffffff, #f8fbfd);
    border-radius: 18px;
    padding: 28px;
    color: #0f172a;
}
#printArea h2 {
    color: var(--ipc-primary-dark);
    font-weight: 900;
    letter-spacing: .04em;
}
#printArea h3 { color: #0f172a; font-weight: 850; }
#printArea img { border: 4px solid #e6f3f7 !important; box-shadow: 0 14px 28px rgba(15,63,79,.12); }
#printArea .table th { background: #f1f8fb !important; color: var(--ipc-primary-dark); width: 34%; }
#printArea .table td { background: #fff; }

/* Stock */
body:has([href*="estoque"]),
body:has([action*="estoque"]) { --ipc-primary: #166534; --ipc-primary-dark: #14532d; --ipc-soft: #f0fdf4; }
.btn-history, .btn-stock, .btn-movement { border-radius: 999px !important; }
.badge, .label { border-radius: 999px; padding: .45em .7em; }

/* Modal mobile and smoothness */
.modal.fade .modal-dialog { transform: translateY(18px) scale(.98); transition: transform .22s ease-out; }
.modal.show .modal-dialog { transform: translateY(0) scale(1); }
.modal-xl .modal-dialog { max-width: min(1140px, calc(100vw - 24px)); }
.modal-body.bg-body-tertiary { background: #f7fbfd !important; }
.modal-footer { border-top: 1px solid #e8f0f4; flex-wrap: wrap; gap: 8px; }

@media (max-width: 991.98px) {
    .page-content { padding-top: 96px !important; }
    .navbar-brand-box { width: 82px !important; }
    .logo-lg { display: none !important; }
    .logo-sm { display: inline-block !important; }
    .page-title-box { display: block !important; }
    .page-title-right { margin-top: 10px; width: 100%; }
    .breadcrumb { justify-content: flex-start; white-space: nowrap; overflow-x: auto; }
    .ipc-hero { border-radius: 20px; padding: 24px 20px; }
    .ipc-hero h1 { font-size: 1.75rem; }
    .card-header.d-flex { align-items: flex-start !important; }
    .card-header .btn { width: 100%; margin-top: 8px; }
    #calendar { min-height: 540px; padding: 8px; }
    .fc .fc-toolbar { display: grid; grid-template-columns: 1fr; text-align: center; }
    .fc .fc-toolbar-chunk { display: flex; justify-content: center; flex-wrap: wrap; }
    .fc .fc-toolbar-title { font-size: 1.2rem; }
    .fc .fc-button { padding: .35rem .55rem !important; font-size: .78rem !important; }
    .modal-footer .btn { width: 100%; }
    #agendaTab .nav-item { width: 100%; }
    #agendaTab .nav-link { width: 100%; }
}

@media (max-width: 575.98px) {
    .container-fluid { padding-left: 12px; padding-right: 12px; }
    .page-content { padding-top: 88px !important; }
    .ipc-alert-stack { top: 74px; }
    .card, .modal-content { border-radius: 16px !important; }
    .card-body { padding: 16px; }
    .card-header { padding: 16px; }
    .form-floating { margin-bottom: 12px !important; }
    .form-control, .form-select { min-height: 46px; }
    .dt-buttons .btn { flex: 1 1 auto; }
    .dataTables_filter, .dataTables_length { text-align: left !important; margin-bottom: 8px; }
    .dataTables_filter input { width: 100% !important; margin: 6px 0 0 0 !important; }
    table.dataTable thead td input,
    table.dataTable thead td select { min-width: 190px; }
    .ipc-resident-profile-card { flex-direction: column; text-align: left; }
    .ipc-nursing-tabs .nav-tabs { overflow-x: auto; flex-wrap: nowrap !important; }
    .ipc-nursing-tabs .nav-tabs .nav-item { min-width: 210px; }
    #printArea { padding: 18px; }
    #printArea h2 { font-size: 1.35rem; }
}

/* Legacy form cleanup across all create/edit screens */
.card form .card-body.bg-primary,
.card form .card-body.bg-success,
.card form .card-body.bg-info,
.card form .card-body.bg-warning,
.card form .card-body.bg-danger {
    background: #ffffff !important;
    color: var(--ipc-text) !important;
}
.card form .card-body.bg-primary *,
.card form .card-body.bg-success *,
.card form .card-body.bg-info *,
.card form .card-body.bg-warning *,
.card form .card-body.bg-danger * {
    color: inherit;
}
.card form .card-body .text-white:not(.btn):not(.badge) {
    color: var(--ipc-primary-dark) !important;
}
.card form hr.bg-white {
    background-color: transparent !important;
    border-top: 1px dashed #d8e7ee !important;
    opacity: 1;
}
.card form .card-title-desc {
    color: var(--ipc-primary-dark) !important;
}

/* ===================== Correções finais: alertas, login e modal da agenda ===================== */
.ipc-alert-stack {
    position: fixed !important;
    top: 88px !important;
    right: 24px !important;
    left: auto !important;
    width: min(430px, calc(100vw - 32px));
    z-index: 3000 !important;
    margin: 0 !important;
    pointer-events: none;
}
.ipc-alert-stack .alert {
    pointer-events: auto;
    margin-bottom: 12px;
    animation: ipcToastIn .28s ease both;
    border-left: 5px solid currentColor;
}
@keyframes ipcToastIn {
    from { opacity: 0; transform: translateY(-12px) translateX(16px); }
    to { opacity: 1; transform: translateY(0) translateX(0); }
}

.ipc-auth-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #052f3b 0%, #0f5f6f 48%, #0f766e 100%) !important;
    color: #0f172a;
    overflow-x: hidden;
}
.ipc-auth-bg {
    position: fixed;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 18% 18%, rgba(34,197,94,.34), transparent 28%),
        radial-gradient(circle at 82% 12%, rgba(255,255,255,.18), transparent 26%),
        radial-gradient(circle at 55% 90%, rgba(14,165,233,.20), transparent 30%);
}
.ipc-auth-wrapper { position: relative; z-index: 1; margin: 0 !important; padding: 0 !important; }
.ipc-auth-card {
    border: 1px solid rgba(255,255,255,.36) !important;
    border-radius: 28px !important;
    background: rgba(255,255,255,.94) !important;
    backdrop-filter: blur(16px);
    box-shadow: 0 28px 70px rgba(0,0,0,.22) !important;
    overflow: hidden;
}
.ipc-auth-card::before {
    content: "";
    display: block;
    height: 6px;
    background: linear-gradient(90deg, var(--ipc-primary-dark), var(--ipc-primary), var(--ipc-accent));
}
.ipc-auth-logo-wrap {
    width: 112px;
    height: 112px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 28px;
    background: linear-gradient(135deg, #ffffff, #effaf6);
    border: 1px solid #dbe7ee;
    box-shadow: 0 16px 34px rgba(15,63,79,.12);
}
.ipc-auth-logo { max-width: 86px; max-height: 86px; object-fit: contain; }
.ipc-auth-title {
    margin: 0;
    color: var(--ipc-primary-dark);
    font-size: 1.65rem;
    font-weight: 900;
    letter-spacing: -.03em;
}
.ipc-auth-subtitle { margin: 8px 0 0; color: #64748b; font-weight: 600; }
.ipc-login-form .form-control {
    min-height: 56px;
    border-radius: 16px !important;
    background: #f8fbfd !important;
}
.ipc-login-form .form-floating > label { color: #64748b; font-weight: 700; }
.ipc-auth-link { color: var(--ipc-primary); font-weight: 800; }
.ipc-auth-link:hover { color: var(--ipc-primary-dark); }
.ipc-login-button {
    min-height: 54px;
    border-radius: 16px !important;
    background: linear-gradient(135deg, var(--ipc-primary), var(--ipc-primary-dark)) !important;
    border: 0 !important;
    box-shadow: 0 14px 26px rgba(15,63,79,.22);
}
.ipc-auth-footer { color: rgba(255,255,255,.82); font-weight: 600; }

.ipc-calendar-modal {
    overflow: hidden !important;
    border-radius: 24px !important;
    border: 1px solid rgba(219,231,238,.92) !important;
}
.ipc-calendar-modal .modal-header {
    padding: 20px 24px !important;
    border-radius: 24px 24px 0 0 !important;
    align-items: center;
}
.ipc-calendar-modal .modal-body {
    padding: 24px !important;
    background: #f7fbfd !important;
}
.ipc-calendar-modal #eventForm {
    background: #fff;
    border: 1px solid #e8f0f4;
    border-radius: 20px;
    padding: 18px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
.ipc-calendar-modal #agendaTab {
    margin: 0 0 18px !important;
    padding: 10px !important;
    border-radius: 18px !important;
    overflow: visible;
}
.ipc-calendar-modal .tab-content {
    padding-top: 0 !important;
}
.ipc-calendar-modal .modal-footer {
    margin: 18px -18px -18px;
    padding: 18px;
    background: #f8fbfd !important;
    border-radius: 0 0 20px 20px;
}
.ipc-calendar-modal .btn-close-white { filter: invert(1) grayscale(100%) brightness(200%); opacity: .95; }
.modal-backdrop { z-index: 2040 !important; }
.modal { z-index: 2050 !important; }

@media (max-width: 575.98px) {
    .ipc-alert-stack {
        top: 76px !important;
        right: 12px !important;
        width: calc(100vw - 24px);
    }
    .ipc-auth-card { border-radius: 22px !important; }
    .ipc-auth-card .card-body { padding: 28px 20px !important; }
    .ipc-auth-logo-wrap { width: 92px; height: 92px; border-radius: 22px; }
    .ipc-auth-title { font-size: 1.35rem; }
    .ipc-calendar-modal .modal-body { padding: 14px !important; }
    .ipc-calendar-modal #eventForm { padding: 12px; border-radius: 16px; }
    .ipc-calendar-modal .modal-footer { margin: 14px -12px -12px; padding: 14px; }
}

/* ===================== Revisão final solicitada: alertas, modal agenda e botões textarea ===================== */
#layout-wrapper,
.main-content,
.page-content,
.container-fluid {
    overflow: visible !important;
}

.ipc-alert-stack {
    position: fixed !important;
    top: 104px !important;
    right: 22px !important;
    left: auto !important;
    width: min(460px, calc(100vw - 28px)) !important;
    z-index: 2147483000 !important;
    isolation: isolate;
    transform: translateZ(0);
}
.ipc-alert-stack .alert {
    position: relative;
    z-index: 2147483001 !important;
    border-radius: 18px !important;
    border: 1px solid rgba(255,255,255,.72) !important;
    border-left: 6px solid currentColor !important;
    box-shadow: 0 24px 60px rgba(2, 44, 34, .26), 0 6px 18px rgba(15,63,79,.14) !important;
    backdrop-filter: blur(12px);
}
#page-topbar,
.navbar-header {
    z-index: 1030 !important;
}

/* Modal agenda sem vão morto e sem recorte estranho */
.ipc-calendar-modal {
    border-radius: 22px !important;
    overflow: hidden !important;
}
.ipc-calendar-modal .modal-header {
    border-radius: 0 !important;
    padding: 18px 22px !important;
}
.ipc-calendar-modal .modal-body {
    padding: 0 !important;
    background: #ffffff !important;
}
.ipc-calendar-modal #eventForm {
    margin: 0 !important;
    padding: 16px 18px 18px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    box-shadow: none !important;
}
.ipc-calendar-modal #agendaTab {
    margin: 0 0 14px !important;
    padding: 8px !important;
    border-radius: 16px !important;
    background: #eef8f5 !important;
    border: 1px solid #dff1ea !important;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    white-space: nowrap;
    flex-wrap: nowrap;
}
.ipc-calendar-modal #agendaTab .nav-link {
    padding: 11px 18px !important;
    white-space: nowrap;
}
.ipc-calendar-modal .tab-content {
    padding: 0 !important;
}
.ipc-calendar-modal .modal-footer {
    margin: 0 -18px -18px !important;
    padding: 14px 18px !important;
    border-radius: 0 !important;
}

/* Botões de salvar ao lado dos textareas: altura proporcional e bordas elegantes */
.input-group:has(textarea) {
    align-items: stretch;
    gap: 10px;
}
.input-group:has(textarea) textarea.form-control {
    border-radius: 14px !important;
    min-height: 108px;
    height: 108px !important;
    resize: vertical;
}
.input-group:has(textarea) .btn {
    align-self: stretch;
    min-width: 108px;
    max-height: 108px;
    padding: 0 22px !important;
    border-radius: 14px !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    line-height: 1.1;
    box-shadow: 0 10px 22px rgba(5, 150, 105, .18);
}
.input-group:has(textarea) .btn-success {
    background: linear-gradient(135deg, #10b981, #047857) !important;
    border: 0 !important;
}
.input-group:has(textarea) .btn-success:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(5, 150, 105, .24);
}

@media (max-width: 767.98px) {
    .ipc-alert-stack {
        top: 82px !important;
        right: 10px !important;
        width: calc(100vw - 20px) !important;
    }
    .ipc-calendar-modal #eventForm {
        padding: 12px !important;
    }
    .ipc-calendar-modal #agendaTab {
        border-radius: 14px !important;
        padding: 7px !important;
    }
    .input-group:has(textarea) {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }
    .input-group:has(textarea) textarea.form-control {
        width: 100% !important;
        min-height: 112px;
        height: 112px !important;
        border-radius: 14px !important;
    }
    .input-group:has(textarea) .btn {
        width: 100%;
        min-height: 48px;
        max-height: none;
        border-radius: 14px !important;
    }
}


/* ===================== Hotfix real no último ZIP: botões, folha de rosto, estoque e login ===================== */
:root { --ipc-btn-h: 48px; }

/* Botões alinhados com selects/inputs em filtros */
.row .d-flex.align-items-end .btn,
.ipc-filter-card .btn,
#btnFiltrarHistorico,
#btnExportarHistorico,
#btnMedFilter,
#btnAddHour,
button[id*="Consultar"],
a[id*="Exportar"] {
    min-height: var(--ipc-btn-h) !important;
    height: var(--ipc-btn-h) !important;
    padding: 0 22px !important;
    border-radius: 12px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    white-space: nowrap !important;
}
.form-select, .form-control { min-height: var(--ipc-btn-h); }
.btn-sm { min-height: 38px !important; height: 38px !important; border-radius: 10px !important; padding: 0 14px !important; }

/* Alert realmente acima de tudo, mesmo com topbar fixa */
.ipc-alert-stack, .alert.position-fixed, .toast-container, .swal2-container {
    z-index: 2147483647 !important;
}
#page-topbar, .navbar-header, .vertical-menu { z-index: 1000 !important; }

/* Folha de rosto no mesmo padrão polido do calendário */
#modalFolhaRosto .modal-dialog { max-width: 860px; }
.ipc-cover-modal-content {
    border: 0 !important;
    border-radius: 22px !important;
    overflow: hidden !important;
    box-shadow: 0 28px 70px rgba(0, 28, 20, .32) !important;
}
.ipc-cover-modal-header {
    background: linear-gradient(135deg, #065f46, #047857) !important;
    color: #fff !important;
    padding: 18px 24px !important;
    border: 0 !important;
}
.ipc-cover-modal-body {
    padding: 28px 30px 24px !important;
    background: linear-gradient(180deg, #ffffff 0%, #f7fbf9 100%) !important;
}
.ipc-cover-hero { margin-bottom: 18px; }
.ipc-cover-pill {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 6px 14px; border-radius: 999px;
    background: #d1fae5; color: #047857;
    font-weight: 900; font-size: .72rem; letter-spacing: .03em;
}
.ipc-cover-hero h2 {
    margin: 12px 0 6px; color: #064e3b; font-weight: 950;
    letter-spacing: .13em; font-size: clamp(1.45rem, 3vw, 2rem);
}
.ipc-cover-hero p { color: #64748b; font-weight: 600; margin: 0; }
.ipc-cover-person { margin-bottom: 22px; }
.ipc-cover-avatar {
    width: 96px !important; height: 96px !important; object-fit: cover;
    border-radius: 28px !important; border: 6px solid #ecfdf5 !important;
    box-shadow: 0 14px 34px rgba(4,120,87,.16);
}
.ipc-cover-person h3 { color: #0f172a; font-weight: 900; margin: 0; }
.ipc-cover-table {
    overflow: hidden; border-radius: 16px; border: 1px solid #dbeee7 !important;
    box-shadow: 0 12px 30px rgba(15,63,79,.06);
}
.ipc-cover-table th {
    width: 34%; background: #ecfdf5 !important; color: #065f46 !important;
    font-weight: 900 !important; padding: 16px 18px !important;
}
.ipc-cover-table td { padding: 16px 18px !important; color: #1f2937 !important; background: #fff !important; }
.ipc-cover-footer {
    padding: 16px 24px !important; background: #f8fafc !important; border-top: 1px solid #e5eef2 !important;
}
.ipc-cover-footer .btn { min-height: 44px !important; height: 44px !important; border-radius: 12px !important; padding: 0 22px !important; }

/* SweetAlert cadastro de produto - menos branco, mais estrutura */
.ipc-stock-swal {
    width: min(560px, calc(100vw - 28px)) !important;
    padding: 0 !important;
    border-radius: 22px !important;
    overflow: hidden !important;
    border: 1px solid #dbeee7 !important;
    box-shadow: 0 26px 70px rgba(0, 28, 20, .28) !important;
}
.ipc-stock-swal .swal2-title {
    margin: 0 !important; padding: 26px 28px 10px !important;
    color: #064e3b !important; font-weight: 950 !important; letter-spacing: -.02em;
}
.ipc-stock-swal .swal2-html-container { margin: 0 !important; padding: 0 28px 18px !important; overflow: visible !important; }
.ipc-stock-form .ipc-stock-icon {
    width: 58px; height: 58px; margin: 0 auto 14px;
    display:flex; align-items:center; justify-content:center;
    border-radius: 20px; background: #d1fae5; color:#047857; font-size: 1.8rem;
    box-shadow: 0 12px 26px rgba(4,120,87,.12);
}
.ipc-stock-form label { color: #374151; font-weight: 900; margin-bottom: 7px; }
.ipc-stock-form .form-control, .ipc-stock-form .form-select {
    border-radius: 14px !important; border: 1px solid #d7e7ee !important;
    background: #f8fbfd !important; min-height: 50px !important;
    box-shadow: none !important;
}
.ipc-stock-form .form-control:focus, .ipc-stock-form .form-select:focus {
    border-color: #10b981 !important; box-shadow: 0 0 0 .2rem rgba(16,185,129,.12) !important;
}
.ipc-stock-swal .swal2-actions {
    margin: 0 !important; padding: 18px 28px !important;
    width: 100%; background: #f8fafc; border-top: 1px solid #e5eef2;
    display: grid !important; grid-template-columns: 1fr 1fr; gap: 12px;
}
.ipc-swal-save, .ipc-swal-cancel {
    min-height: 48px !important; height: 48px !important; border-radius: 13px !important;
    font-weight: 900 !important; border: 0 !important;
}
.ipc-swal-save { background: linear-gradient(135deg, #10b981, #047857) !important; color: #fff !important; }
.ipc-swal-cancel { background: #fff !important; color: #334155 !important; border: 1px solid #dbe7ee !important; }

/* Login v2: menos área branca, painel lateral institucional */
.ipc-auth-page-v2 { background: #eef8f5 !important; }
.ipc-auth-v2-bg { position: fixed; inset: 0; background: radial-gradient(circle at 15% 15%, rgba(16,185,129,.20), transparent 28%), radial-gradient(circle at 88% 78%, rgba(6,95,70,.16), transparent 30%); pointer-events:none; }
.ipc-auth-v2-shell { min-height: 100vh; display:flex; align-items:center; justify-content:center; padding: 28px; position:relative; z-index:1; }
.ipc-auth-v2-card { width:min(960px, 100%); min-height: 560px; display:grid; grid-template-columns: 1.05fr .95fr; background:#fff; border-radius:28px; overflow:hidden; box-shadow:0 26px 70px rgba(0, 28, 20, .18); border:1px solid rgba(219,238,231,.9); }
.ipc-auth-v2-brand { position:relative; color:#fff; padding:42px; display:flex; flex-direction:column; justify-content:space-between; background:linear-gradient(150deg,#064e3b,#047857 58%,#065f46); overflow:hidden; }
.ipc-auth-v2-brand:before { content:""; position:absolute; inset:auto -80px -120px auto; width:330px; height:330px; border-radius:50%; background:rgba(255,255,255,.08); }
.ipc-auth-v2-logo-box { width:92px; height:92px; border-radius:24px; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.13); border:1px solid rgba(255,255,255,.25); margin-bottom:18px; }
.ipc-auth-v2-logo-box img { max-width:70px; max-height:70px; object-fit:contain; }
.ipc-auth-v2-brand h1 { font-size:2.4rem; font-weight:950; margin:0; color:#fff; }
.ipc-auth-v2-brand p { color:rgba(255,255,255,.82); font-weight:600; }
.ipc-auth-v2-badge { display:inline-flex; gap:7px; align-items:center; padding:7px 12px; border-radius:999px; background:rgba(255,255,255,.14); font-weight:900; margin-bottom:16px; }
.ipc-auth-v2-message h2 { color:#fff; font-weight:950; margin:0 0 10px; }
.ipc-auth-v2-features { display:flex; gap:10px; flex-wrap:wrap; }
.ipc-auth-v2-features span { display:inline-flex; gap:7px; align-items:center; padding:10px 12px; border-radius:14px; background:rgba(255,255,255,.12); font-weight:800; }
.ipc-auth-v2-form-panel { padding:48px 46px; display:flex; flex-direction:column; justify-content:center; }
.ipc-auth-v2-form-head { margin-bottom:24px; text-align:center; }
.ipc-auth-v2-form-head h2 { color:#0f172a; font-weight:950; margin:0 0 8px; }
.ipc-auth-v2-form-head p { color:#64748b; font-weight:600; margin:0; }
.ipc-auth-v2-footer { margin-top:22px; text-align:center; color:#94a3b8; font-weight:700; font-size:.82rem; }
.ipc-auth-page-v2 .ipc-login-form .form-control { background:#f8fbfd !important; border:1px solid #d7e7ee !important; }
.ipc-auth-page-v2 .ipc-login-button { min-height:52px !important; }

@media (max-width: 991.98px) {
    .ipc-auth-v2-card { grid-template-columns:1fr; max-width:560px; }
    .ipc-auth-v2-brand { padding:28px; min-height:260px; }
    .ipc-auth-v2-form-panel { padding:34px 26px; }
}
@media (max-width: 767.98px) {
    :root { --ipc-btn-h: 44px; }
    .row .d-flex.align-items-end .btn, #btnFiltrarHistorico, #btnExportarHistorico { width:100% !important; margin-top:6px; }
    .ipc-cover-modal-body { padding:20px 16px !important; }
    .ipc-cover-table th, .ipc-cover-table td { display:block; width:100%; padding:12px 14px !important; }
    .ipc-stock-swal .swal2-actions { grid-template-columns:1fr; }
    .ipc-auth-v2-shell { padding:14px; }
    .ipc-auth-v2-brand { padding:24px; }
}

/* ===================== Correção solicitada: é código, não imagem ===================== */
/* Ações dos grids/datatable: botões menores, alinhados e com aparência consistente */
.ipc-action-buttons,
td .ipc-action-buttons {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    white-space: nowrap !important;
}
.ipc-action-buttons form { display: inline-flex !important; }
.ipc-action-btn,
td .btn.ipc-action-btn {
    width: 38px !important;
    min-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 12px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    font-size: 16px !important;
    box-shadow: 0 8px 18px rgba(15, 23, 42, .12) !important;
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease !important;
}
.ipc-action-btn:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 12px 24px rgba(15, 23, 42, .18) !important;
    filter: brightness(.98);
}
.ipc-action-edit,
.btn-warning.ipc-action-btn {
    background: linear-gradient(135deg, #fbbf24, #f59e0b) !important;
    color: #fff !important;
}
.ipc-action-delete,
.btn-danger.ipc-action-btn {
    background: linear-gradient(135deg, #fb7185, #e11d48) !important;
    color: #fff !important;
}
.ipc-action-password,
.btn-primary.ipc-action-btn {
    background: linear-gradient(135deg, #0ea5e9, #0369a1) !important;
    color: #fff !important;
}
.table td:last-child,
table.dataTable td:last-child {
    vertical-align: middle !important;
}

/* Alertas/notifications Laravel sempre sobre header, modal, backdrop e qualquer plugin de toast */
.ipc-alert-stack {
    position: fixed !important;
    top: 14px !important;
    right: 18px !important;
    left: auto !important;
    width: min(440px, calc(100vw - 28px)) !important;
    z-index: 2147483647 !important;
    pointer-events: none !important;
    margin: 0 !important;
}
.ipc-alert-stack .alert {
    pointer-events: auto !important;
    position: relative !important;
    z-index: 2147483647 !important;
    margin-bottom: 10px !important;
    padding: 15px 46px 15px 18px !important;
    border-radius: 18px !important;
    border: 1px solid rgba(255,255,255,.8) !important;
    box-shadow: 0 26px 70px rgba(0, 28, 20, .34), 0 8px 22px rgba(15, 63, 79, .16) !important;
    backdrop-filter: blur(14px) !important;
    font-weight: 700 !important;
}
#page-topbar,
.navbar-header,
.vertical-menu,
.main-content,
.page-content,
.container-fluid {
    transform: none !important;
}
#page-topbar,
.navbar-header { z-index: 1000 !important; }
.vertical-menu { z-index: 999 !important; }
.toast,
.toast-container,
.jq-toast-wrap,
.notify,
.notifyjs-corner,
.notyf,
.notyf__toast,
.iziToast-wrapper,
.pnotify,
.pnotify-container,
.alert.position-fixed {
    z-index: 2147483647 !important;
}

/* Login v3: mantém o conceito aprovado, mas reduz área branca e melhora leitura dos campos */
.ipc-auth-page-v2 {
    min-height: 100vh !important;
    background:
        radial-gradient(circle at 8% 12%, rgba(16,185,129,.16), transparent 26%),
        radial-gradient(circle at 92% 86%, rgba(6,95,70,.14), transparent 28%),
        linear-gradient(135deg, #eef8f5 0%, #f8fcfb 100%) !important;
}
.ipc-auth-v2-shell {
    padding: 18px !important;
}
.ipc-auth-v2-card {
    width: min(980px, calc(100vw - 34px)) !important;
    min-height: 520px !important;
    grid-template-columns: 1fr .88fr !important;
    border-radius: 30px !important;
    box-shadow: 0 28px 80px rgba(0, 28, 20, .20) !important;
}
.ipc-auth-v2-brand {
    padding: 40px 42px !important;
    background:
        radial-gradient(circle at 85% 80%, rgba(255,255,255,.13), transparent 32%),
        linear-gradient(150deg, #064e3b 0%, #047857 58%, #065f46 100%) !important;
}
.ipc-auth-v2-logo-box {
    width: 104px !important;
    height: 104px !important;
    border-radius: 28px !important;
    background: rgba(255,255,255,.16) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 18px 34px rgba(0,0,0,.10) !important;
}
.ipc-auth-v2-logo-box img {
    max-width: 82px !important;
    max-height: 82px !important;
}
.ipc-auth-v2-brand h1 { font-size: 2.55rem !important; letter-spacing: -.04em; }
.ipc-auth-v2-message h2 { font-size: 1.65rem !important; }
.ipc-auth-v2-form-panel {
    padding: 42px 46px !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,252,251,.98)) !important;
}
.ipc-auth-v2-form-head { margin-bottom: 22px !important; }
.ipc-auth-v2-form-head h2 { font-size: 1.55rem !important; }
.ipc-login-form-v3 .ipc-login-field {
    position: relative;
}
.ipc-login-form-v3 .form-label {
    margin-bottom: 8px !important;
    color: #075985 !important;
    font-weight: 900 !important;
    font-size: .84rem !important;
    letter-spacing: .01em;
}
.ipc-login-form-v3 .form-control {
    min-height: 54px !important;
    height: 54px !important;
    border-radius: 16px !important;
    background: #f8fbfd !important;
    border: 1px solid #d6e5ec !important;
    padding: 0 16px !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9) !important;
}
.ipc-login-form-v3 .form-control:focus {
    background: #fff !important;
    border-color: #047857 !important;
    box-shadow: 0 0 0 .22rem rgba(4,120,87,.13), 0 10px 24px rgba(15,63,79,.08) !important;
}
.ipc-login-tools {
    font-size: .84rem;
    color: #64748b;
    font-weight: 700;
    gap: 10px;
}
.ipc-login-tools span {
    display: inline-flex;
    align-items: center;
    color: #047857;
}
.ipc-auth-page-v2 .ipc-login-button {
    min-height: 54px !important;
    height: 54px !important;
    border-radius: 16px !important;
    background: linear-gradient(135deg, #047857, #064e3b) !important;
    box-shadow: 0 18px 34px rgba(4,120,87,.24) !important;
}
.ipc-auth-v2-footer {
    margin-top: 20px !important;
    padding-top: 18px;
    border-top: 1px solid #eef3f6;
}

@media (max-width: 991.98px) {
    .ipc-auth-v2-card {
        grid-template-columns: 1fr !important;
        max-width: 600px !important;
    }
    .ipc-auth-v2-brand {
        min-height: 230px !important;
        padding: 28px !important;
    }
    .ipc-auth-v2-features { margin-top: 10px; }
    .ipc-auth-v2-form-panel { padding: 32px 26px !important; }
}
@media (max-width: 575.98px) {
    .ipc-alert-stack {
        top: 10px !important;
        right: 10px !important;
        width: calc(100vw - 20px) !important;
    }
    .ipc-action-btn,
    td .btn.ipc-action-btn {
        width: 36px !important;
        min-width: 36px !important;
        height: 36px !important;
        min-height: 36px !important;
        border-radius: 11px !important;
    }
    .ipc-auth-v2-shell { padding: 10px !important; align-items: flex-start !important; }
    .ipc-auth-v2-card { width: 100% !important; border-radius: 24px !important; }
    .ipc-auth-v2-brand { min-height: 245px !important; }
    .ipc-auth-v2-brand h1 { font-size: 2rem !important; }
    .ipc-login-tools { flex-direction: column; align-items: flex-start !important; }
}

/* Correção definitiva do flash do redirect()->with('success'): acima do header/topbar */
body > .ipc-alert-stack.ipc-flash-stack {
    position: fixed !important;
    top: 18px !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    width: min(520px, calc(100vw - 28px)) !important;
    z-index: 2147483647 !important;
    pointer-events: none !important;
}
body > .ipc-alert-stack.ipc-flash-stack .alert {
    z-index: 2147483647 !important;
    pointer-events: auto !important;
    border-radius: 16px !important;
    background: rgba(255,255,255,.98) !important;
    color: #0f172a !important;
    border: 1px solid rgba(255,255,255,.88) !important;
    border-left: 6px solid #059669 !important;
    box-shadow: 0 28px 80px rgba(0, 28, 20, .34), 0 10px 26px rgba(15, 23, 42, .14) !important;
}
#page-topbar, .navbar-header, .vertical-menu {
    z-index: 1000 !important;
}
@media (max-width: 575.98px) {
    body > .ipc-alert-stack.ipc-flash-stack {
        top: 10px !important;
        width: calc(100vw - 20px) !important;
    }
}


/* ===================== Ajuste final: medicamentos igual estoque, ícones e flash visível ===================== */
/* Em vez de disputar com o header fixo, o flash fica logo abaixo dele e nunca some atrás. */
body > .ipc-alert-stack.ipc-flash-stack,
.ipc-alert-stack.ipc-flash-stack {
    position: fixed !important;
    top: 86px !important;
    left: auto !important;
    right: 22px !important;
    transform: none !important;
    width: min(460px, calc(100vw - 28px)) !important;
    z-index: 2147483647 !important;
    pointer-events: none !important;
    margin: 0 !important;
}
body > .ipc-alert-stack.ipc-flash-stack .alert,
.ipc-alert-stack.ipc-flash-stack .alert {
    pointer-events: auto !important;
    position: relative !important;
    z-index: 2147483647 !important;
    min-height: 58px !important;
    padding: 16px 48px 16px 18px !important;
    border-radius: 18px !important;
    background: #ffffff !important;
    color: #0f172a !important;
    border: 1px solid rgba(219, 238, 231, .95) !important;
    border-left: 6px solid #059669 !important;
    box-shadow: 0 24px 70px rgba(0, 28, 20, .28), 0 8px 22px rgba(15, 63, 79, .18) !important;
    font-weight: 800 !important;
}
body > .ipc-alert-stack.ipc-flash-stack .alert-danger,
.ipc-alert-stack.ipc-flash-stack .alert-danger { border-left-color:#e11d48 !important; }
#page-topbar,
.navbar-header,
.vertical-menu,
.main-content,
.page-content,
.container-fluid,
.card,
.table-responsive,
.dataTables_wrapper { transform: none !important; }
#page-topbar, .navbar-header { z-index: 1020 !important; }
.vertical-menu { z-index: 1010 !important; }
.swal2-container { z-index: 2147483600 !important; }
.swal2-popup { z-index: 2147483601 !important; }
.modal-backdrop { z-index: 1040 !important; }
.modal { z-index: 1055 !important; }

/* Botões de ação: mais elegantes e sem parecer bloco pesado */
.ipc-action-buttons,
td .ipc-action-buttons {
    gap: 7px !important;
    justify-content: center !important;
}
.ipc-action-btn,
td .btn.ipc-action-btn {
    width: 34px !important;
    min-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    border-radius: 11px !important;
    font-size: 15px !important;
    box-shadow: 0 7px 16px rgba(15, 23, 42, .10) !important;
}
.ipc-action-buttons .btn + .btn,
.ipc-action-buttons form + form,
.ipc-action-buttons a + form { margin-left: 0 !important; }

/* SweetAlert compartilhado para Estoque e Controle de Medicamentos */
.ipc-stock-swal,
.ipc-medicine-swal {
    width: min(560px, calc(100vw - 24px)) !important;
    padding: 0 !important;
    border-radius: 22px !important;
    overflow: hidden !important;
    border: 1px solid #dbeee7 !important;
    box-shadow: 0 26px 70px rgba(0, 28, 20, .28) !important;
}
.ipc-stock-swal .swal2-title,
.ipc-medicine-swal .swal2-title {
    margin: 0 !important;
    padding: 24px 28px 8px !important;
    color: #064e3b !important;
    font-weight: 950 !important;
    letter-spacing: -.02em !important;
    font-size: 1.35rem !important;
}
.ipc-stock-swal .swal2-html-container,
.ipc-medicine-swal .swal2-html-container {
    margin: 0 !important;
    padding: 0 28px 18px !important;
    overflow: visible !important;
}
.ipc-stock-form,
.ipc-medicine-form { text-align: left !important; }
.ipc-stock-icon,
.ipc-medicine-icon {
    width: 58px !important;
    height: 58px !important;
    margin: 0 auto 14px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 20px !important;
    background: #d1fae5 !important;
    color: #047857 !important;
    box-shadow: 0 12px 26px rgba(4,120,87,.12) !important;
}
.ipc-stock-icon svg,
.ipc-medicine-icon svg {
    width: 30px !important;
    height: 30px !important;
    stroke: currentColor !important;
    fill: none !important;
    stroke-width: 2.2 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}
.ipc-stock-form label,
.ipc-medicine-form label {
    display: block !important;
    color: #374151 !important;
    font-weight: 900 !important;
    margin: 0 0 7px !important;
}
.ipc-stock-form .form-control,
.ipc-stock-form .form-select,
.ipc-medicine-form .form-control,
.ipc-medicine-form .form-select {
    width: 100% !important;
    min-height: 50px !important;
    height: 50px !important;
    margin: 0 0 14px !important;
    padding: 0 14px !important;
    border-radius: 14px !important;
    border: 1px solid #d7e7ee !important;
    background: #f8fbfd !important;
    color: #0f172a !important;
    box-shadow: none !important;
    font-size: .95rem !important;
}
.ipc-stock-form .form-control:focus,
.ipc-stock-form .form-select:focus,
.ipc-medicine-form .form-control:focus,
.ipc-medicine-form .form-select:focus {
    background: #fff !important;
    border-color: #10b981 !important;
    box-shadow: 0 0 0 .2rem rgba(16,185,129,.12) !important;
}
.ipc-stock-swal .swal2-actions,
.ipc-medicine-swal .swal2-actions {
    margin: 0 !important;
    padding: 18px 28px !important;
    width: 100% !important;
    background: #f8fafc !important;
    border-top: 1px solid #e5eef2 !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
}
.ipc-swal-save,
.ipc-swal-cancel,
.swal2-confirm.ipc-swal-save,
.swal2-cancel.ipc-swal-cancel {
    width: 100% !important;
    min-height: 48px !important;
    height: 48px !important;
    border-radius: 13px !important;
    font-weight: 900 !important;
    border: 0 !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
}
.ipc-swal-save,
.swal2-confirm.ipc-swal-save { background: linear-gradient(135deg, #10b981, #047857) !important; color: #fff !important; }
.ipc-swal-cancel,
.swal2-cancel.ipc-swal-cancel { background: #fff !important; color: #334155 !important; border: 1px solid #dbe7ee !important; }
.ipc-medicine-help {
    margin: -2px 0 14px !important;
    color: #64748b !important;
    font-size: .84rem !important;
    font-weight: 600 !important;
    text-align: center !important;
}

@media (max-width: 575.98px) {
    body > .ipc-alert-stack.ipc-flash-stack,
    .ipc-alert-stack.ipc-flash-stack {
        top: 74px !important;
        right: 10px !important;
        width: calc(100vw - 20px) !important;
    }
    .ipc-stock-swal .swal2-actions,
    .ipc-medicine-swal .swal2-actions { grid-template-columns: 1fr !important; }
    .ipc-stock-swal .swal2-html-container,
    .ipc-medicine-swal .swal2-html-container { padding: 0 18px 16px !important; }
    .ipc-stock-swal .swal2-title,
    .ipc-medicine-swal .swal2-title { padding: 22px 18px 8px !important; }
}

/* Ajustes finais Estoque: modal histórico, baixar, adicionar e excluir */
.modal.ipc-stock-modal {
    z-index: 2147483000 !important;
}
.modal-backdrop {
    z-index: 2147482990 !important;
}
.ipc-stock-modal-dialog {
    max-width: min(860px, calc(100vw - 22px)) !important;
    margin: 1rem auto !important;
}
.ipc-stock-modal-content {
    border: 0 !important;
    border-radius: 18px !important;
    overflow: hidden !important;
    box-shadow: 0 28px 75px rgba(0, 28, 20, .34) !important;
    background: #fff !important;
}
.ipc-stock-modal-header {
    min-height: 58px !important;
    padding: 16px 20px !important;
    background: linear-gradient(135deg, #047857, #065f46) !important;
    border: 0 !important;
    display: flex !important;
    align-items: center !important;
}
.ipc-stock-modal-header .modal-title {
    color: #fff !important;
    font-weight: 900 !important;
    letter-spacing: .01em !important;
    font-size: 1.05rem !important;
}
.ipc-stock-modal-header .btn-close {
    opacity: .86 !important;
    box-shadow: none !important;
}
.ipc-stock-modal-body {
    padding: 18px !important;
    background: #f8fbfa !important;
    max-height: min(62vh, 560px) !important;
    overflow: auto !important;
}

.ipc-stock-history-product,
.ipc-stock-product-box,
.ipc-stock-product-name {
    width: 100% !important;
    border: 1px solid #dcefe8 !important;
    background: linear-gradient(135deg, #f0fdf4, #ffffff) !important;
    border-radius: 14px !important;
    padding: 12px 14px !important;
    margin: 0 0 16px !important;
    text-align: left !important;
    box-shadow: 0 10px 24px rgba(5, 150, 105, .06) !important;
}
.ipc-stock-product-name {
    text-align: center !important;
    color: #064e3b !important;
    font-size: 1rem !important;
    font-weight: 950 !important;
}
.ipc-stock-history-product span,
.ipc-stock-product-box span {
    display: block !important;
    margin-bottom: 3px !important;
    color: #64748b !important;
    font-size: .73rem !important;
    font-weight: 900 !important;
    letter-spacing: .05em !important;
    text-transform: uppercase !important;
}
.ipc-stock-history-product strong,
.ipc-stock-product-box strong {
    display: block !important;
    color: #064e3b !important;
    font-size: 1rem !important;
    font-weight: 950 !important;
    line-height: 1.25 !important;
    word-break: break-word !important;
}

.ipc-stock-history-table {
    width: 100% !important;
    margin: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    overflow: hidden !important;
    border: 1px solid #dcefe8 !important;
    border-radius: 14px !important;
    background: #fff !important;
}
.ipc-stock-history-table th {
    background: #ecfdf5 !important;
    color: #064e3b !important;
    font-size: .78rem !important;
    letter-spacing: .05em !important;
    text-transform: uppercase !important;
    font-weight: 950 !important;
    padding: 14px 16px !important;
    border-color: #dcefe8 !important;
}
.ipc-stock-history-table td {
    padding: 14px 16px !important;
    vertical-align: middle !important;
    border-color: #e8f1ef !important;
    color: #334155 !important;
    font-weight: 700 !important;
}
.ipc-stock-history-table .text-success { color: #059669 !important; }
.ipc-stock-history-table .text-danger { color: #e11d48 !important; }
.ipc-stock-movement-swal,
.ipc-stock-confirm-swal {
    width: min(520px, calc(100vw - 24px)) !important;
}
.ipc-stock-action-form {
    padding-top: 4px !important;
}
.ipc-stock-action-form .ipc-medicine-icon {
    margin-bottom: 12px !important;
}
.ipc-stock-action-form .form-control,
.ipc-stock-action-form .form-select {
    margin-bottom: 14px !important;
}
.ipc-stock-warning-icon {
    background: #fff7ed !important;
    color: #c2410c !important;
    box-shadow: 0 12px 26px rgba(194, 65, 12, .12) !important;
}
.ipc-stock-danger-icon {
    background: #ffe4e6 !important;
    color: #e11d48 !important;
    box-shadow: 0 12px 26px rgba(225, 29, 72, .14) !important;
}
.ipc-swal-danger,
.swal2-confirm.ipc-swal-danger {
    width: 100% !important;
    min-height: 48px !important;
    height: 48px !important;
    border-radius: 13px !important;
    font-weight: 900 !important;
    border: 0 !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    background: linear-gradient(135deg, #fb7185, #e11d48) !important;
    color: #fff !important;
}
.swal2-container {
    z-index: 2147483500 !important;
}

@media (max-width: 575.98px) {
    .ipc-stock-modal-dialog {
        width: calc(100vw - 14px) !important;
        margin: .5rem auto !important;
    }
    .ipc-stock-modal-header {
        padding: 14px 15px !important;
    }
    .ipc-stock-modal-body {
        padding: 12px !important;
        max-height: 68vh !important;
    }
    .ipc-stock-history-table th,
    .ipc-stock-history-table td {
        padding: 11px 10px !important;
        font-size: .82rem !important;
        white-space: nowrap !important;
    }
}

/* ===================== Correção real de máscara sobre modal =====================
   O backdrop do Bootstrap estava sendo criado no <body>, enquanto alguns modais
   continuavam dentro de wrappers do layout que criam stacking context. Resultado:
   a máscara ficava na frente do formulário. Estas regras mantêm todos os modais
   acima da máscara e removem transparências duplicadas presas na tela. */
body.modal-open {
    overflow: hidden !important;
}
.modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147482500 !important;
    pointer-events: none !important;
}
.modal.show {
    display: block !important;
    pointer-events: auto !important;
}
.modal .modal-dialog {
    position: relative !important;
    z-index: 2147482600 !important;
    pointer-events: auto !important;
}
.modal .modal-content {
    position: relative !important;
    z-index: 2147482601 !important;
    pointer-events: auto !important;
}
.modal-backdrop {
    z-index: 2147482000 !important;
    opacity: .58 !important;
}
.modal-backdrop.show + .modal-backdrop.show {
    opacity: .18 !important;
}
body:not(.modal-open) .modal-backdrop {
    display: none !important;
}

/* Correção Select2 dentro do modal de agenda
   O modal é movido para o body para corrigir a máscara. Com isso, o dropdown
   do Select2 precisava sair do stacking context do modal e ficar acima do backdrop. */
.select2-container--open,
.select2-container--open .select2-dropdown,
.select2-dropdown {
    z-index: 2147483600 !important;
}
.select2-container--default .select2-results > .select2-results__options {
    max-height: 260px !important;
}
.select2-container--default .select2-results__option {
    padding: 10px 14px !important;
    font-weight: 700 !important;
    color: #334155 !important;
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background: #047857 !important;
    color: #fff !important;
}
#exampleModal1 .select2-container {
    width: 100% !important;
}
#exampleModal1 .select2-container--default .select2-selection--multiple {
    min-height: 48px !important;
    border-radius: 10px !important;
    border: 1px solid #cfe1ed !important;
    background: #f8fbfd !important;
    display: flex !important;
    align-items: center !important;
}
#exampleModal1 .select2-container--default.select2-container--focus .select2-selection--multiple {
    border-color: #7dbce5 !important;
    box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .12) !important;
}

/* ===================== Home: Próximos eventos com scroll real =====================
   O card anterior crescia junto com a lista. Agora o card tem altura limitada e
   somente a lista interna rola quando existirem muitos eventos. */
.ipc-upcoming-events-card {
    height: 560px !important;
    max-height: 560px !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
}
.ipc-upcoming-events-card .ipc-upcoming-events-header {
    flex: 0 0 auto !important;
}
.ipc-upcoming-events-card .ipc-upcoming-events-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}
.ipc-upcoming-events-scroll {
    height: 100% !important;
    max-height: 100% !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 20px 20px 10px 20px !important;
    overscroll-behavior: contain !important;
    scrollbar-width: thin;
    scrollbar-color: #047857 #eef7f1;
}
.ipc-upcoming-events-scroll::-webkit-scrollbar {
    width: 8px;
}
.ipc-upcoming-events-scroll::-webkit-scrollbar-track {
    background: #eef7f1;
    border-radius: 999px;
}
.ipc-upcoming-events-scroll::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #059669, #064e3b);
    border-radius: 999px;
}
.ipc-upcoming-event-item {
    padding: 0 0 18px 0 !important;
    margin-bottom: 18px !important;
    border-bottom: 1px solid #e5edf3 !important;
}
.ipc-upcoming-event-item:last-child {
    margin-bottom: 0 !important;
}
.ipc-upcoming-event-info {
    min-width: 0 !important;
}
.ipc-upcoming-event-info strong {
    display: block !important;
    color: #1f2937 !important;
    line-height: 1.25 !important;
    overflow-wrap: anywhere !important;
}
@media (max-width: 1199.98px) {
    .ipc-upcoming-events-card {
        height: 430px !important;
        max-height: 430px !important;
    }
}
@media (max-width: 575.98px) {
    .ipc-upcoming-events-card {
        height: 380px !important;
        max-height: 380px !important;
    }
    .ipc-upcoming-events-scroll {
        padding: 16px 14px 8px 14px !important;
    }
}

/* ===================== Home: Próximos eventos - altura fixa com scroll interno =====================
   Mantém o card alinhado com Ações rápidas e rola somente a lista de eventos. */
.ipc-upcoming-events-card {
    height: 310px !important;
    max-height: 310px !important;
    min-height: 310px !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
}

.ipc-upcoming-events-card .ipc-upcoming-events-header {
    height: 58px !important;
    min-height: 58px !important;
    flex: 0 0 58px !important;
    display: flex !important;
    align-items: center !important;
}

.ipc-upcoming-events-card .ipc-upcoming-events-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: calc(310px - 58px) !important;
    max-height: calc(310px - 58px) !important;
    padding: 0 !important;
    overflow: hidden !important;
}

.ipc-upcoming-events-card .ipc-upcoming-events-scroll {
    height: 100% !important;
    max-height: 100% !important;
    overflow-y: scroll !important;
    overflow-x: hidden !important;
    padding: 20px 20px 12px 20px !important;
    overscroll-behavior: contain !important;
    scrollbar-gutter: stable !important;
    scrollbar-width: thin !important;
    scrollbar-color: #047857 #edf8f2 !important;
}

.ipc-upcoming-events-card .ipc-upcoming-events-scroll::-webkit-scrollbar {
    width: 8px !important;
}

.ipc-upcoming-events-card .ipc-upcoming-events-scroll::-webkit-scrollbar-track {
    background: #edf8f2 !important;
    border-radius: 999px !important;
}

.ipc-upcoming-events-card .ipc-upcoming-events-scroll::-webkit-scrollbar-thumb {
    background: #047857 !important;
    border-radius: 999px !important;
}

.ipc-upcoming-events-card .ipc-upcoming-event-item {
    padding-bottom: 18px !important;
    margin-bottom: 18px !important;
    border-bottom: 1px solid #e5edf3 !important;
}

@media (max-width: 991.98px) {
    .ipc-upcoming-events-card {
        height: 340px !important;
        max-height: 340px !important;
        min-height: 340px !important;
    }

    .ipc-upcoming-events-card .ipc-upcoming-events-body {
        height: calc(340px - 58px) !important;
        max-height: calc(340px - 58px) !important;
    }
}

/* Nutrição: modal padronizado com o mesmo visual de Estoque/Medicamentos */
.ipc-nutrition-modal-dialog {
    max-width: min(560px, calc(100vw - 22px)) !important;
}
.ipc-nutrition-modal-content {
    border-radius: 20px !important;
    overflow: hidden !important;
}
.ipc-nutrition-modal-header {
    background: linear-gradient(135deg, #166534, #047857) !important;
}
.ipc-nutrition-modal-body {
    background: #f8fbfa !important;
    padding: 20px 22px !important;
    max-height: none !important;
}
.ipc-nutrition-modal-body .form-label {
    color: #243041 !important;
    font-weight: 800 !important;
    margin-bottom: 8px !important;
}
.ipc-nutrition-modal-body .form-control {
    min-height: 48px !important;
    border-radius: 12px !important;
    border-color: #d8e7e2 !important;
    background: #fff !important;
    box-shadow: none !important;
}
.ipc-nutrition-modal-body .form-control:focus {
    border-color: #047857 !important;
    box-shadow: 0 0 0 .2rem rgba(4, 120, 87, .12) !important;
}
.ipc-nutrition-modal-footer {
    border-top: 1px solid #e6f0ec !important;
    background: #fff !important;
    padding: 16px 18px !important;
    gap: 10px !important;
}
.ipc-nutrition-modal-footer .btn {
    min-height: 40px !important;
    border-radius: 12px !important;
    font-weight: 800 !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
}
.ipc-nutrition-modal-footer .btn-success {
    border: 0 !important;
    background: linear-gradient(135deg, #047857, #166534) !important;
}
@media (max-width: 575.98px) {
    .ipc-nutrition-modal-body { padding: 16px !important; }
    .ipc-nutrition-modal-footer { padding: 14px 16px !important; }
    .ipc-nutrition-modal-footer .btn { width: 100% !important; }
}


/* Ajuste Enfermagem: ações compactas na grade e exclusões Swal2 padronizadas */
.medicine-table-actions,
td .medicine-table-actions {
    gap: 5px !important;
}
.ipc-med-mini-btn,
td .btn.ipc-med-mini-btn {
    width: 30px !important;
    min-width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;
    padding: 0 !important;
    border-radius: 10px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    font-size: 14px !important;
    font-weight: 800 !important;
}
.ipc-med-mini-btn i {
    font-size: 14px !important;
    line-height: 1 !important;
}
.ipc-med-mini-btn.add-med-on-hour {
    font-size: 15px !important;
}
.ipc-medicine-confirm-swal .swal2-icon {
    margin: 20px auto 10px !important;
}
.ipc-medicine-confirm-swal .swal2-title {
    padding-top: 12px !important;
}
.ipc-medicine-confirm-swal .swal2-html-container {
    text-align: center !important;
    color: #64748b !important;
    font-weight: 500 !important;
}
.ipc-swal-delete,
.swal2-confirm.ipc-swal-delete {
    width: 100% !important;
    min-height: 48px !important;
    height: 48px !important;
    border-radius: 13px !important;
    border: 0 !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    background: linear-gradient(135deg, #fb7185, #e11d48) !important;
    color: #fff !important;
    font-weight: 900 !important;
    box-shadow: none !important;
}
@media (max-width: 575.98px) {
    .ipc-med-mini-btn,
    td .btn.ipc-med-mini-btn {
        width: 28px !important;
        min-width: 28px !important;
        height: 28px !important;
        min-height: 28px !important;
        border-radius: 9px !important;
    }
}

/* Enfermagem: grade mais limpa, ícones mínimos e área maior para medicamento */
.ipc-medicine-table-responsive {
    overflow-x: auto !important;
}
.ipc-medicine-control-table {
    table-layout: auto !important;
}
.ipc-medicine-control-table th,
.ipc-medicine-control-table td {
    vertical-align: middle !important;
}
.ipc-medicine-control-table .ipc-med-hour-col {
    min-width: 92px !important;
    width: 92px !important;
}
.ipc-medicine-control-table .ipc-med-name-col {
    min-width: 380px !important;
    width: 380px !important;
}
.ipc-medicine-control-table .ipc-med-day-col,
.ipc-medicine-control-table .ipc-med-day-cell {
    min-width: 34px !important;
    width: 34px !important;
    padding-left: 4px !important;
    padding-right: 4px !important;
}
.ipc-med-hour-cell {
    padding: 8px 6px !important;
}
.ipc-med-hour-wrap {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    flex-wrap: wrap !important;
}
.ipc-med-hour-text {
    font-size: .86rem !important;
    font-weight: 900 !important;
    color: #374151 !important;
}
.ipc-med-action-row {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 3px !important;
    flex-wrap: nowrap !important;
}
.ipc-med-name-cell {
    min-width: 380px !important;
    padding: 10px 12px !important;
}
.ipc-med-name-wrap {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
}
.ipc-med-name-text {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    line-height: 1.35 !important;
    word-break: break-word !important;
}
.ipc-med-action-row-name {
    flex: 0 0 auto !important;
}
.ipc-med-mini-btn,
td .btn.ipc-med-mini-btn,
.ipc-medicine-control-table .btn.ipc-med-mini-btn {
    width: 22px !important;
    min-width: 22px !important;
    height: 22px !important;
    min-height: 22px !important;
    padding: 0 !important;
    border-radius: 7px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    box-shadow: none !important;
}
.ipc-med-mini-btn i,
.ipc-medicine-control-table .btn.ipc-med-mini-btn i {
    font-size: 11px !important;
    line-height: 1 !important;
}
.ipc-med-mini-btn.add-med-on-hour {
    font-size: 12px !important;
}
.ipc-med-locked-check {
    cursor: not-allowed !important;
    color: #334155 !important;
    background: #fafafa !important;
}
.ipc-medicine-control-table .td-click {
    cursor: pointer !important;
    user-select: none !important;
    font-weight: 800 !important;
}
@media (max-width: 767.98px) {
    .ipc-medicine-control-table .ipc-med-name-col,
    .ipc-medicine-control-table .ipc-med-name-cell {
        min-width: 300px !important;
        width: 300px !important;
    }
    .ipc-medicine-control-table .ipc-med-hour-col {
        min-width: 82px !important;
        width: 82px !important;
    }
}
/* Notificação padrão IPC em popup central, sem botão OK */
.ipc-notify-swal {
    width: min(360px, calc(100vw - 32px)) !important;
    padding: 24px 22px 18px !important;
    border-radius: 20px !important;
    text-align: center !important;
}
.ipc-notify-swal .swal2-icon {
    margin: 0 auto 12px !important;
}
.ipc-notify-swal .swal2-title {
    padding: 0 !important;
    margin: 0 !important;
    font-size: 1rem !important;
    line-height: 1.35 !important;
    color: #064e3b !important;
}
.ipc-notify-swal .swal2-html-container,
.ipc-notify-swal .swal2-actions,
.ipc-notify-swal .swal2-confirm,
.ipc-notify-swal .swal2-cancel {
    display: none !important;
}
.ipc-notify-swal .swal2-timer-progress-bar {
    background: rgba(16, 185, 129, .45) !important;
}
.ipc-notify-swal.swal2-icon-error .swal2-title {
    color: #991b1b !important;
}
.ipc-notify-swal.swal2-icon-warning .swal2-title {
    color: #92400e !important;
}

/* =========================================================
   Acessibilidade global IPC: contraste e tamanho de fonte
   ========================================================= */
html.ipc-font-sm { font-size: 14px !important; }
html.ipc-font-md { font-size: 16px !important; }
html.ipc-font-lg { font-size: 18px !important; }
html.ipc-font-xl { font-size: 20px !important; }

.ipc-accessibility-widget {
    position: fixed !important;
    right: 18px !important;
    top: auto !important;
    bottom: 72px !important;
    transform: none !important;
    z-index: 2147481000 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    padding: 8px 7px !important;
    border-radius: 16px !important;
    background: rgba(255,255,255,.92) !important;
    border: 1px solid rgba(15,23,42,.10) !important;
    box-shadow: 0 12px 32px rgba(0,0,0,.14) !important;
    opacity: .82 !important;
    transition: opacity .18s ease, transform .18s ease !important;
}
.ipc-accessibility-widget:hover,
.ipc-accessibility-widget:focus-within {
    opacity: 1 !important;
}
.ipc-accessibility-widget.is-collapsed .ipc-accessibility-action:not(.ipc-accessibility-toggle) {
    display: none !important;
}
.ipc-accessibility-action {
    width: 34px !important;
    height: 34px !important;
    border: 0 !important;
    border-radius: 12px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    color: #6fa852 !important;
    font-weight: 900 !important;
    font-size: 15px !important;
    line-height: 1 !important;
    cursor: pointer !important;
    transition: transform .15s ease, background-color .15s ease, color .15s ease !important;
}
.ipc-accessibility-action:hover,
.ipc-accessibility-action:focus {
    background: rgba(111,168,82,.13) !important;
    color: #4f8737 !important;
    transform: translateY(-1px) !important;
    outline: 2px solid rgba(111,168,82,.35) !important;
    outline-offset: 2px !important;
}
.ipc-accessibility-action.is-active {
    background: #111 !important;
    color: #fff200 !important;
}
.ipc-accessibility-action .ipc-icon-text {
    display: inline-block !important;
    border-bottom: 2px solid currentColor !important;
    padding-bottom: 1px !important;
}
.ipc-accessibility-action i {
    font-size: 20px !important;
    line-height: 1 !important;
}

body.ipc-high-contrast,
body.ipc-high-contrast .main-content,
body.ipc-high-contrast .page-content,
body.ipc-high-contrast .container-fluid,
body.ipc-high-contrast .card,
body.ipc-high-contrast .card-body,
body.ipc-high-contrast .card-header,
body.ipc-high-contrast .card-footer,
body.ipc-high-contrast .modal-content,
body.ipc-high-contrast .dropdown-menu,
body.ipc-high-contrast .table,
body.ipc-high-contrast .table tbody,
body.ipc-high-contrast .table td,
body.ipc-high-contrast .table th,
body.ipc-high-contrast .dataTables_wrapper,
body.ipc-high-contrast .select2-container .select2-selection,
body.ipc-high-contrast .select2-dropdown {
    background: #000 !important;
    color: #fff200 !important;
    border-color: #fff200 !important;
}
body.ipc-high-contrast #page-topbar,
body.ipc-high-contrast .navbar-header,
body.ipc-high-contrast .vertical-menu,
body.ipc-high-contrast .topnav,
body.ipc-high-contrast .footer {
    background: #000 !important;
    color: #fff200 !important;
    border-color: #fff200 !important;
}
body.ipc-high-contrast a,
body.ipc-high-contrast label,
body.ipc-high-contrast p,
body.ipc-high-contrast span,
body.ipc-high-contrast h1,
body.ipc-high-contrast h2,
body.ipc-high-contrast h3,
body.ipc-high-contrast h4,
body.ipc-high-contrast h5,
body.ipc-high-contrast h6,
body.ipc-high-contrast .card-title,
body.ipc-high-contrast .card-title-desc,
body.ipc-high-contrast .form-label,
body.ipc-high-contrast .form-floating > label,
body.ipc-high-contrast .menu-title,
body.ipc-high-contrast .navbar-brand-box,
body.ipc-high-contrast .breadcrumb-item,
body.ipc-high-contrast .page-title-box,
body.ipc-high-contrast .text-muted,
body.ipc-high-contrast .text-white,
body.ipc-high-contrast .text-dark,
body.ipc-high-contrast .text-primary,
body.ipc-high-contrast .text-secondary,
body.ipc-high-contrast .text-success,
body.ipc-high-contrast .text-danger,
body.ipc-high-contrast .text-warning,
body.ipc-high-contrast .text-info {
    color: #fff200 !important;
}
body.ipc-high-contrast input,
body.ipc-high-contrast select,
body.ipc-high-contrast textarea,
body.ipc-high-contrast .form-control,
body.ipc-high-contrast .form-select,
body.ipc-high-contrast .select2-container--default .select2-selection--single,
body.ipc-high-contrast .select2-container--default .select2-selection--multiple {
    background-color: #050505 !important;
    color: #fff !important;
    border: 2px solid #fff200 !important;
    box-shadow: none !important;
}
body.ipc-high-contrast input::placeholder,
body.ipc-high-contrast textarea::placeholder {
    color: #e5e5e5 !important;
    opacity: 1 !important;
}
body.ipc-high-contrast .btn,
body.ipc-high-contrast button,
body.ipc-high-contrast .page-link,
body.ipc-high-contrast .dt-button {
    background: #000 !important;
    color: #fff200 !important;
    border: 2px solid #fff200 !important;
    box-shadow: none !important;
}
body.ipc-high-contrast .btn:hover,
body.ipc-high-contrast button:hover,
body.ipc-high-contrast .page-link:hover,
body.ipc-high-contrast .dt-button:hover {
    background: #fff200 !important;
    color: #000 !important;
}
body.ipc-high-contrast hr,
body.ipc-high-contrast .dropdown-divider,
body.ipc-high-contrast .border,
body.ipc-high-contrast .border-light,
body.ipc-high-contrast .border-2 {
    border-color: #fff200 !important;
    background-color: #fff200 !important;
}
body.ipc-high-contrast .badge,
body.ipc-high-contrast .alert,
body.ipc-high-contrast .swal2-popup {
    background: #000 !important;
    color: #fff200 !important;
    border: 2px solid #fff200 !important;
}
body.ipc-high-contrast .ipc-accessibility-widget {
    background: #000 !important;
    border: 2px solid #fff200 !important;
}
body.ipc-high-contrast .ipc-accessibility-action {
    color: #fff200 !important;
}
body.ipc-high-contrast .ipc-accessibility-action:hover,
body.ipc-high-contrast .ipc-accessibility-action:focus,
body.ipc-high-contrast .ipc-accessibility-action.is-active {
    background: #fff200 !important;
    color: #000 !important;
}

@media (max-width: 767.98px) {
    .ipc-accessibility-widget {
        right: 10px !important;
        top: auto !important;
        bottom: 18px !important;
        transform: none !important;
        padding: 8px !important;
        border-radius: 18px !important;
    }
    .ipc-accessibility-action {
        width: 32px !important;
        height: 32px !important;
        font-size: 14px !important;
    }
    .ipc-accessibility-action i {
        font-size: 18px !important;
    }
}

/* =========================================================
   Relatório de estoque: filtros, botões e tabela
   ========================================================= */
.ipc-report-page .ipc-report-card {
    border-radius: 18px !important;
    overflow: hidden !important;
    background: #fff !important;
}
.ipc-report-header {
    background: linear-gradient(135deg, #006837, #008b4a) !important;
    padding: 14px 20px !important;
    border: 0 !important;
    font-size: .95rem !important;
    letter-spacing: .02em !important;
}
.ipc-report-header-icon {
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(255,255,255,.18);
}
.ipc-report-count-badge {
    background: rgba(255,255,255,.16) !important;
    color: #fff !important;
    border: 1px solid rgba(255,255,255,.25) !important;
    font-weight: 700 !important;
}
.ipc-report-filter-card {
    border: 1px solid #d8e7ee !important;
    border-radius: 18px !important;
    padding: 20px !important;
    background: linear-gradient(180deg, #fff, #f8fbfd) !important;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .05) !important;
}
.ipc-report-filter-card .form-label {
    color: #0f5132 !important;
    font-size: .82rem !important;
    margin-bottom: 8px !important;
}
.ipc-report-control {
    min-height: 46px !important;
    border-radius: 10px !important;
    border-color: #cfdee7 !important;
    background-color: #f8fbfd !important;
    box-shadow: none !important;
}
.ipc-report-control:focus {
    border-color: #00b76f !important;
    box-shadow: 0 0 0 .18rem rgba(0, 183, 111, .13) !important;
}
.ipc-report-actions {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
}
.ipc-report-btn {
    min-height: 46px !important;
    min-width: 170px !important;
    border-radius: 10px !important;
    border: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    font-weight: 800 !important;
    padding: 10px 18px !important;
    box-shadow: 0 10px 18px rgba(15, 23, 42, .08) !important;
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease !important;
}
.ipc-report-btn:hover:not(:disabled) {
    transform: translateY(-1px) !important;
    box-shadow: 0 14px 24px rgba(15, 23, 42, .12) !important;
    filter: brightness(1.02) !important;
}
.ipc-report-btn-primary {
    background: #006837 !important;
    color: #fff !important;
}
.ipc-report-btn-success {
    background: #00bf72 !important;
    color: #fff !important;
}
.ipc-report-btn-muted {
    background: #edf3f6 !important;
    color: #7a8b97 !important;
    box-shadow: none !important;
    cursor: not-allowed !important;
}
.ipc-report-table-wrap {
    border: 1px solid #d8e7ee !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    background: #fff !important;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .04) !important;
}
.ipc-report-table-wrap .table {
    margin-bottom: 0 !important;
}
.ipc-report-table-wrap .table thead th {
    background: #e9fbf2 !important;
    color: #005b37 !important;
    border-color: #cce9dc !important;
    text-transform: uppercase !important;
    font-size: .78rem !important;
    letter-spacing: .06em !important;
    padding: 14px 12px !important;
}
.ipc-report-table-wrap .table tbody td {
    vertical-align: middle !important;
    padding: 13px 12px !important;
    border-color: #e5eef3 !important;
}
.ipc-report-table-wrap .table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: #f2f6fa !important;
}
.ipc-report-empty-state {
    border: 1px dashed #cfe0e8 !important;
    border-radius: 18px !important;
    padding: 38px 20px !important;
    background: #f8fbfd !important;
    color: #5f7180 !important;
}
.ipc-report-empty-state i {
    display: inline-flex !important;
    width: 54px !important;
    height: 54px !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 18px !important;
    background: rgba(0, 104, 55, .09) !important;
    color: #006837 !important;
    font-size: 28px !important;
    margin-bottom: 12px !important;
}
.ipc-report-empty-state h5 {
    color: #0f5132 !important;
    font-weight: 800 !important;
}
@media (max-width: 767.98px) {
    .ipc-report-filter-card {
        padding: 16px !important;
    }
    .ipc-report-actions,
    .ipc-report-btn {
        width: 100% !important;
    }
}

/* ===== Psicologia - área de tratamento ===== */
.ipc-icon-action {
    width: 38px;
    height: 38px;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    border-radius: 12px !important;
    padding: 0 !important;
    font-size: 1.1rem;
    white-space: nowrap;
}

.ipc-psychology-treatment {
    border: 0;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 18px 40px rgba(15, 63, 79, .10);
}

.ipc-psychology-header {
    min-height: 132px;
    display: flex;
    align-items: center;
}

.ipc-header-pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 5px 12px;
    margin-bottom: 8px;
    border-radius: 999px;
    background: rgba(255,255,255,.18);
    color: #fff;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.ipc-psychology-treatment .psych-tabs .nav-link {
    min-height: 48px;
    font-weight: 800;
    padding: .72rem .9rem;
    white-space: nowrap;
}

.ipc-psychology-treatment .tab-geral { background: #6aa5b5 !important; }
.ipc-psychology-treatment .tab-atendimento { background: #7db35c !important; }
.ipc-psychology-treatment .tab-historico { background: #8b9dc3 !important; }
.ipc-psychology-treatment .tab-evolucao { background: #b58ec3 !important; }
.ipc-psychology-treatment .tab-sigilo { background: #c38e8e !important; }

.psych-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 16px;
}

.psych-section-heading span {
    color: var(--ipc-primary, #006b3f);
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-size: .78rem;
}

.psych-section-heading h4 {
    margin: 3px 0 0;
    color: #5f98a8;
    font-size: 1.25rem;
    font-weight: 900;
}

.psych-section-heading > i {
    width: 44px;
    height: 44px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #eef8f3;
    color: var(--ipc-primary, #006b3f);
    font-size: 1.35rem;
}

.psych-info-card,
.psych-form-card,
.psych-record-item,
.psych-secret-item {
    border: 1px solid #dcecf2;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(15, 63, 79, .05);
}

.psych-info-card {
    padding: 18px;
}

.psych-info-card span {
    display: block;
    color: #617184;
    font-size: .78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .03em;
    margin-bottom: 4px;
}

.psych-info-card strong {
    display: block;
    color: #293642;
    font-weight: 700;
    word-break: break-word;
}

.psych-form-card {
    padding: 18px;
}

.psych-textarea {
    min-height: 210px;
    resize: vertical;
}

.psych-save-btn {
    min-width: 190px;
    border-radius: 12px;
    font-weight: 800;
}

.psych-scroll-box {
    max-height: 470px;
    overflow-y: auto;
    padding-right: 8px;
}

.psych-record-item {
    padding: 16px;
    margin-bottom: 12px;
}

.psych-record-head {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 12px;
    color: #627386;
    font-size: .86rem;
    font-weight: 700;
}

.psych-record-body strong {
    display: block;
    color: var(--ipc-primary, #006b3f);
    margin-bottom: 4px;
}

.psych-record-body p {
    color: #2f3a46;
    margin-bottom: 12px;
    white-space: pre-line;
}

.psych-input-group textarea {
    resize: vertical;
    border-radius: 12px 0 0 12px !important;
}

.psych-input-group .btn {
    min-width: 135px;
    font-weight: 800;
    border-radius: 0 12px 12px 0 !important;
}

.psych-readonly-textarea {
    height: 260px;
    overflow-y: auto;
    white-space: pre-line;
    background: #fbfdfe;
    border-color: #b8d7e1 !important;
    border-radius: 14px;
    padding: 14px;
    color: #2f3a46;
}

.psych-secret-list {
    display: grid;
    gap: 12px;
}

.psych-secret-item {
    padding: 14px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.psych-secret-item strong {
    display: block;
    color: #5f98a8;
    font-size: 1rem;
}

.psych-secret-item small {
    display: block;
    color: #7a8793;
    margin-top: 3px;
}

.psych-secret-content {
    max-height: 340px;
    overflow-y: auto;
    padding: 14px;
    border: 1px solid #dcecf2;
    border-radius: 14px;
    background: #fbfdfe;
    color: #2f3a46;
    white-space: pre-line;
}

.swal2-popup .btn + .btn,
.swal2-actions .btn + .btn {
    margin-left: 10px;
}

@media (max-width: 991.98px) {
    .ipc-psychology-treatment .psych-tabs {
        overflow-x: auto;
        flex-wrap: nowrap !important;
    }
    .ipc-psychology-treatment .psych-tabs .nav-item {
        min-width: 220px;
    }
}

@media (max-width: 575.98px) {
    .psych-section-heading {
        align-items: flex-start;
        flex-direction: column;
    }
    .psych-input-group {
        display: block;
    }
    .psych-input-group textarea,
    .psych-input-group .btn {
        width: 100%;
        border-radius: 12px !important;
    }
    .psych-input-group .btn {
        margin-top: 10px;
    }
    .psych-secret-item {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* ===== Ajustes finos Psicologia ===== */
.ipc-psychology-treatment .psych-tabs {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0 !important;
    padding: 12px !important;
    background: #f4f8fa !important;
    border: 0 !important;
}
.ipc-psychology-treatment .psych-tabs .nav-item {
    width: 100% !important;
    margin: 0 !important;
}
.ipc-psychology-treatment .psych-tabs .nav-link {
    width: 100% !important;
    min-height: 54px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    box-shadow: none !important;
}
.ipc-psychology-treatment .psych-tabs .nav-item:first-child .nav-link {
    border-radius: 14px 0 0 14px !important;
}
.ipc-psychology-treatment .psych-tabs .nav-item:last-child .nav-link {
    border-radius: 0 14px 14px 0 !important;
}
.ipc-psychology-treatment textarea.form-control,
.ipc-psychology-treatment textarea.form-control:focus,
.ipc-psychology-treatment .psych-textarea-clean,
.ipc-psychology-treatment .psych-textarea-clean:focus {
    box-shadow: none !important;
    outline: 0 !important;
}
.ipc-psychology-treatment .psych-textarea-clean {
    min-height: 112px !important;
    resize: vertical !important;
    border: 1px solid #d7e7ee !important;
    border-radius: 14px !important;
    background: #f8fbfd !important;
    padding: 14px !important;
}
.ipc-psychology-treatment .psych-textarea-clean:focus {
    background: #fff !important;
    border-color: #10b981 !important;
}
.ipc-psychology-treatment .psych-save-btn {
    min-width: 168px !important;
    min-height: 46px !important;
    height: 46px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.ipc-psychology-swal .ipc-medicine-icon i {
    font-size: 30px !important;
    line-height: 1 !important;
}
.ipc-psychology-secret-form textarea.form-control {
    height: 150px !important;
    min-height: 150px !important;
    padding: 14px !important;
    resize: vertical !important;
    line-height: 1.45 !important;
}
.ipc-psychology-secret-form textarea.form-control:focus,
.ipc-psychology-secret-form input.form-control:focus {
    box-shadow: 0 0 0 .2rem rgba(16,185,129,.12) !important;
}
.ipc-psychology-swal .psych-secret-content {
    margin-top: 10px !important;
    text-align: left !important;
}
@media (max-width: 991.98px) {
    .ipc-psychology-treatment .psych-tabs {
        display: flex !important;
        overflow-x: auto !important;
        flex-wrap: nowrap !important;
    }
    .ipc-psychology-treatment .psych-tabs .nav-item {
        min-width: 220px !important;
    }
    .ipc-psychology-treatment .psych-tabs .nav-link {
        border-radius: 0 !important;
    }
    .ipc-psychology-treatment .psych-tabs .nav-item:first-child .nav-link {
        border-radius: 14px 0 0 14px !important;
    }
    .ipc-psychology-treatment .psych-tabs .nav-item:last-child .nav-link {
        border-radius: 0 14px 14px 0 !important;
    }
}

/* ===== Psicologia - refinamentos solicitados ===== */
.ipc-psychology-treatment .psych-tabs {
    display: flex !important;
    width: 100% !important;
    gap: 8px !important;
    padding: 12px !important;
    background: #f8fbfd !important;
    border: 0 !important;
    flex-wrap: nowrap !important;
}
.ipc-psychology-treatment .psych-tabs .nav-item {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
}
.ipc-psychology-treatment .psych-tabs .nav-link {
    width: 100% !important;
    min-height: 48px !important;
    height: 48px !important;
    padding: .6rem 1rem !important;
    border: 0 !important;
    border-radius: 14px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    color: #1f3340 !important;
    font-weight: 800 !important;
    box-shadow: 0 8px 18px rgba(15, 63, 79, .06) !important;
    white-space: nowrap !important;
}
.ipc-psychology-treatment .psych-tabs .nav-item:first-child .nav-link,
.ipc-psychology-treatment .psych-tabs .nav-item:last-child .nav-link {
    border-radius: 14px !important;
}
.ipc-psychology-treatment .psych-tabs .nav-link.active {
    color: #fff !important;
    transform: translateY(-2px);
    box-shadow: 0 14px 26px rgba(15, 63, 79, .12) !important;
}
.ipc-psychology-swal {
    padding: 24px 24px 16px !important;
    border-radius: 18px !important;
    overflow: visible !important;
}
.ipc-psychology-swal .swal2-title {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    color: #005b3a !important;
    font-weight: 900 !important;
    font-size: 1.35rem !important;
    padding: 0 !important;
    margin-bottom: 14px !important;
}
.ipc-psychology-swal .swal2-title::before {
    content: "\F0341";
    font-family: "Material Design Icons";
    font-size: 1.3rem;
    color: #00a66f;
}
.ipc-psychology-swal .swal2-html-container {
    margin: 0 !important;
    overflow: visible !important;
}
.ipc-psychology-swal .swal2-actions {
    width: 100% !important;
    display: flex !important;
    gap: 10px !important;
    margin: 20px 0 0 !important;
    padding: 14px 0 0 !important;
    border-top: 1px solid #e5edf1 !important;
    align-items: stretch !important;
}
.ipc-psychology-swal .swal2-actions button {
    flex: 1 1 0 !important;
    height: 46px !important;
    min-height: 46px !important;
    border-radius: 12px !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-weight: 900 !important;
}
.ipc-psychology-view-swal .swal2-actions {
    display: block !important;
}
.ipc-psychology-view-swal .swal2-actions button,
.ipc-psychology-view-swal .ipc-swal-full {
    width: 100% !important;
    max-width: none !important;
}
.psych-secret-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 12px;
    color: #6b7280;
    font-size: .92rem;
}
.psych-secret-meta > div:first-child {
    text-align: left;
    flex: 1 1 50%;
}
.psych-secret-meta > div:last-child {
    text-align: right;
    flex: 1 1 50%;
}
.psych-secret-meta strong {
    color: #6b7280;
    font-weight: 900;
}
.ipc-psychology-swal .psych-secret-content {
    min-height: 220px !important;
    max-height: 420px !important;
    overflow-y: auto !important;
    padding: 18px !important;
    border: 1px solid #d7e7ee !important;
    border-radius: 14px !important;
    background: #f8fbfd !important;
    color: #2f3a46 !important;
    font-size: 15px !important;
    line-height: 1.7 !important;
    white-space: pre-line !important;
}
.ipc-psychology-secret-form textarea.form-control {
    height: 210px !important;
    min-height: 210px !important;
}
@media (max-width: 991.98px) {
    .ipc-psychology-treatment .psych-tabs {
        overflow-x: auto !important;
    }
    .ipc-psychology-treatment .psych-tabs .nav-item {
        flex: 0 0 220px !important;
    }
}
@media (max-width: 575.98px) {
    .psych-secret-meta {
        display: block;
    }
    .psych-secret-meta > div:last-child {
        text-align: left;
        margin-top: 4px;
    }
    .ipc-psychology-swal .swal2-actions {
        flex-direction: column-reverse !important;
    }
}

/* ===== Psicologia - correção final de layout, cores e modais ===== */
.ipc-psychology-list-card .ipc-form-header,
.ipc-psychology-treatment .ipc-psychology-header {
    background: linear-gradient(135deg, #006b3f 0%, #009b66 55%, #00b57a 100%) !important;
    color: #fff !important;
    border: 0 !important;
}

.ipc-psychology-treatment .psych-tabs {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    padding: 12px !important;
    background: #f4faf7 !important;
    overflow-x: auto !important;
}

.ipc-psychology-treatment .psych-tabs .nav-item {
    flex: 1 1 0 !important;
    min-width: 190px !important;
}

.ipc-psychology-treatment .psych-tabs .nav-link {
    height: 52px !important;
    min-height: 52px !important;
    border-radius: 14px !important;
    color: #fff !important;
    font-weight: 900 !important;
    letter-spacing: .01em !important;
    box-shadow: 0 10px 22px rgba(15, 63, 79, .10) !important;
    opacity: .96 !important;
}

.ipc-psychology-treatment .psych-tabs .nav-link i {
    color: #fff !important;
    font-size: 1.05rem !important;
}

.ipc-psychology-treatment .psych-tabs .nav-link.active {
    opacity: 1 !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 16px 30px rgba(15, 63, 79, .18) !important;
}

.ipc-psychology-treatment .tab-geral { background: linear-gradient(135deg, #1997b3, #2eb8d6) !important; }
.ipc-psychology-treatment .tab-atendimento { background: linear-gradient(135deg, #42a832, #72c657) !important; }
.ipc-psychology-treatment .tab-historico { background: linear-gradient(135deg, #526fa8, #819ad0) !important; }
.ipc-psychology-treatment .tab-evolucao { background: linear-gradient(135deg, #9b4fb3, #c47ad4) !important; }
.ipc-psychology-treatment .tab-sigilo { background: linear-gradient(135deg, #b94e55, #d68186) !important; }

.psych-section-heading {
    padding-bottom: 10px !important;
    border-bottom: 1px solid #e5f0ec !important;
}

.psych-section-heading h4 {
    color: #137a5a !important;
}

.psych-evolution-card .psych-input-group {
    display: flex !important;
    align-items: stretch !important;
}

.ipc-psychology-treatment .psych-evolution-card .psych-textarea-clean {
    height: 92px !important;
    min-height: 92px !important;
    border-radius: 14px 0 0 14px !important;
}

.ipc-psychology-treatment .psych-evolution-card .psych-save-btn {
    width: 155px !important;
    min-width: 155px !important;
    height: auto !important;
    border-radius: 0 14px 14px 0 !important;
    background: linear-gradient(135deg, #10b981, #047857) !important;
    border: 0 !important;
}

.psych-secret-item {
    border: 1px solid #cae6f0 !important;
    background: #fff !important;
    border-radius: 16px !important;
    padding: 14px 16px !important;
}

.psych-secret-main {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    min-width: 0 !important;
}

.psych-secret-icon {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    border-radius: 14px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: linear-gradient(135deg, #dffcf1, #b9f4dc) !important;
    color: #008b63 !important;
    font-size: 1.35rem !important;
}

.psych-secret-item strong {
    color: #258aa3 !important;
    font-weight: 900 !important;
}

.psych-secret-item .btn-access-secret {
    min-width: 118px !important;
    height: 40px !important;
    border-radius: 12px !important;
    font-weight: 900 !important;
    background: linear-gradient(135deg, #10b981, #047857) !important;
    border: 0 !important;
}

.ipc-psychology-swal {
    width: min(640px, calc(100vw - 28px)) !important;
    max-width: calc(100vw - 28px) !important;
    padding: 26px !important;
    border-radius: 18px !important;
    overflow: hidden !important;
}

.ipc-psychology-view-swal {
    width: min(720px, calc(100vw - 28px)) !important;
}

.ipc-psychology-swal .swal2-html-container {
    overflow: visible !important;
    width: 100% !important;
}

.ipc-psychology-swal .swal2-deny,
.ipc-psychology-swal button.swal2-deny {
    display: none !important;
}

.ipc-psychology-swal .swal2-actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    width: 100% !important;
    margin-top: 22px !important;
    padding-top: 14px !important;
    border-top: 1px solid #e6eff3 !important;
}

.ipc-psychology-swal .swal2-actions button {
    width: 100% !important;
    height: 46px !important;
    min-height: 46px !important;
    margin: 0 !important;
    border-radius: 12px !important;
    font-weight: 900 !important;
}

.ipc-psychology-view-swal .swal2-actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.ipc-psychology-view-swal .swal2-cancel {
    grid-column: auto !important;
    background: #fff !important;
    color: #334155 !important;
    border: 1px solid #dbe7ee !important;
}

.ipc-psychology-view-swal .swal2-confirm {
    grid-column: auto !important;
    background: linear-gradient(135deg, #10b981, #047857) !important;
    color: #fff !important;
    border: 0 !important;
}

.ipc-psychology-secret-form label {
    display: block !important;
    text-align: left !important;
    margin: 12px 0 6px !important;
    font-weight: 900 !important;
    color: #334155 !important;
}

.ipc-psychology-secret-form input.form-control,
.ipc-psychology-secret-form textarea.form-control {
    border-radius: 14px !important;
    border: 1px solid #cfe3ec !important;
    background: #f8fbfd !important;
    box-shadow: none !important;
}

.ipc-psychology-secret-form textarea.form-control {
    min-height: 210px !important;
    height: 210px !important;
}

.ipc-psychology-swal .psych-secret-content {
    min-height: 220px !important;
    max-height: 360px !important;
    overflow-y: auto !important;
    text-align: left !important;
}

@media (max-width: 575.98px) {
    .ipc-psychology-swal .swal2-actions,
    .ipc-psychology-view-swal .swal2-actions {
        grid-template-columns: 1fr !important;
    }
    .psych-evolution-card .psych-input-group {
        display: block !important;
    }
    .ipc-psychology-treatment .psych-evolution-card .psych-textarea-clean,
    .ipc-psychology-treatment .psych-evolution-card .psych-save-btn {
        width: 100% !important;
        min-width: 100% !important;
        border-radius: 14px !important;
    }
    .ipc-psychology-treatment .psych-evolution-card .psych-save-btn {
        min-height: 46px !important;
        margin-top: 10px !important;
    }
}

/* =========================================================
   Ajuste final solicitado: sem degrade e SweetAlert sem recortes
   ========================================================= */
:root {
    --ipc-green: #009b66;
    --ipc-green-dark: #006b3f;
    --ipc-green-soft: #dffcf1;
    --ipc-blue: #1997b3;
    --ipc-blue-soft: #e7f7fb;
    --ipc-lime: #62b84b;
    --ipc-slate: #6f7890;
    --ipc-purple: #9b4fb3;
    --ipc-red: #b94e55;
}

/* Remove degradê dos botões/componentes do sistema sem mexer em imagem de usuário */
.btn,
button,
.swal2-popup button,
.ipc-swal-save,
.swal2-confirm.ipc-swal-save,
.ipc-swal-cancel,
.swal2-cancel.ipc-swal-cancel,
.ipc-psychology-treatment .psych-tabs .nav-link,
.ipc-psychology-treatment .ipc-psychology-header,
.ipc-psychology-treatment .psych-save-btn,
.ipc-psychology-treatment .psych-evolution-card .psych-save-btn,
.psych-secret-icon,
.psych-secret-item .btn-access-secret,
.ipc-stock-swal .swal2-confirm,
.ipc-medicine-swal .swal2-confirm,
.ipc-psychology-swal .swal2-confirm,
.ipc-psychology-view-swal .swal2-confirm {
    background-image: none !important;
    filter: none !important;
}

.ipc-psychology-treatment .ipc-psychology-header {
    background: var(--ipc-green-dark) !important;
}

.ipc-psychology-treatment .tab-geral { background: var(--ipc-blue) !important; }
.ipc-psychology-treatment .tab-atendimento { background: var(--ipc-lime) !important; }
.ipc-psychology-treatment .tab-historico { background: var(--ipc-slate) !important; }
.ipc-psychology-treatment .tab-evolucao { background: var(--ipc-purple) !important; }
.ipc-psychology-treatment .tab-sigilo { background: var(--ipc-red) !important; }

.btn-success,
.ipc-swal-save,
.swal2-confirm.ipc-swal-save,
.ipc-psychology-treatment .psych-save-btn,
.ipc-psychology-treatment .psych-evolution-card .psych-save-btn,
.psych-secret-item .btn-access-secret,
.ipc-psychology-view-swal .swal2-confirm {
    background: var(--ipc-green) !important;
    border-color: var(--ipc-green) !important;
    color: #fff !important;
}

.btn-success:hover,
.ipc-swal-save:hover,
.swal2-confirm.ipc-swal-save:hover,
.ipc-psychology-treatment .psych-save-btn:hover,
.ipc-psychology-treatment .psych-evolution-card .psych-save-btn:hover,
.psych-secret-item .btn-access-secret:hover,
.ipc-psychology-view-swal .swal2-confirm:hover {
    background: var(--ipc-green-dark) !important;
    border-color: var(--ipc-green-dark) !important;
    color: #fff !important;
}

.psych-secret-icon {
    background: var(--ipc-green-soft) !important;
    color: var(--ipc-green-dark) !important;
}

/* SweetAlert: tira recorte lateral, mantém largura dentro da tela e botões alinhados */
.swal2-container {
    padding: 16px !important;
    overflow-x: hidden !important;
}

.swal2-popup,
.ipc-stock-swal,
.ipc-medicine-swal,
.ipc-psychology-swal,
.ipc-psychology-view-swal {
    box-sizing: border-box !important;
    max-width: calc(100vw - 32px) !important;
    padding: 0 !important;
    border-radius: 22px !important;
    overflow: visible !important;
    background: #fff !important;
}

.ipc-psychology-swal {
    width: min(640px, calc(100vw - 32px)) !important;
}

.ipc-psychology-view-swal {
    width: min(720px, calc(100vw - 32px)) !important;
}

.ipc-stock-swal .swal2-title,
.ipc-medicine-swal .swal2-title,
.ipc-psychology-swal .swal2-title {
    padding: 24px 28px 8px !important;
}

.ipc-stock-swal .swal2-html-container,
.ipc-medicine-swal .swal2-html-container,
.ipc-psychology-swal .swal2-html-container {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 28px 18px !important;
    overflow: visible !important;
}

.ipc-stock-swal .swal2-actions,
.ipc-medicine-swal .swal2-actions,
.ipc-psychology-swal .swal2-actions,
.ipc-psychology-view-swal .swal2-actions {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 18px 28px !important;
    background: #f8fafc !important;
    border-top: 1px solid #e5eef2 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
}

.ipc-stock-swal .swal2-actions button,
.ipc-medicine-swal .swal2-actions button,
.ipc-psychology-swal .swal2-actions button,
.ipc-psychology-view-swal .swal2-actions button {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}

.ipc-swal-cancel,
.swal2-cancel.ipc-swal-cancel,
.ipc-psychology-view-swal .swal2-cancel {
    background: #fff !important;
    color: #334155 !important;
    border: 1px solid #dbe7ee !important;
}

@media (max-width: 575.98px) {
    .swal2-container { padding: 10px !important; }
    .swal2-popup,
    .ipc-stock-swal,
    .ipc-medicine-swal,
    .ipc-psychology-swal,
    .ipc-psychology-view-swal {
        width: calc(100vw - 20px) !important;
        max-width: calc(100vw - 20px) !important;
        border-radius: 18px !important;
    }
    .ipc-stock-swal .swal2-title,
    .ipc-medicine-swal .swal2-title,
    .ipc-psychology-swal .swal2-title {
        padding: 22px 18px 8px !important;
    }
    .ipc-stock-swal .swal2-html-container,
    .ipc-medicine-swal .swal2-html-container,
    .ipc-psychology-swal .swal2-html-container {
        padding: 0 18px 16px !important;
    }
    .ipc-stock-swal .swal2-actions,
    .ipc-medicine-swal .swal2-actions,
    .ipc-psychology-swal .swal2-actions,
    .ipc-psychology-view-swal .swal2-actions {
        padding: 14px 18px !important;
        grid-template-columns: 1fr !important;
    }
}

/* =========================================================
   Correção rápida 10/06: SweetAlert sem pontas e abas compactas
   ========================================================= */
.swal2-popup,
.ipc-stock-swal,
.ipc-medicine-swal,
.ipc-psychology-swal,
.ipc-psychology-view-swal,
.ipc-notify-swal,
.ipc-medicine-confirm-swal {
    border-radius: 22px !important;
    overflow: hidden !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

.swal2-popup .swal2-actions,
.ipc-stock-swal .swal2-actions,
.ipc-medicine-swal .swal2-actions,
.ipc-psychology-swal .swal2-actions,
.ipc-psychology-view-swal .swal2-actions,
.ipc-notify-swal .swal2-actions,
.ipc-medicine-confirm-swal .swal2-actions {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 16px 28px 20px !important;
    box-sizing: border-box !important;
    border-radius: 0 0 22px 22px !important;
    overflow: hidden !important;
    background: #f8fafc !important;
    border-top: 1px solid #e5eef2 !important;
}

.swal2-popup .swal2-actions::before,
.swal2-popup .swal2-actions::after,
.swal2-popup::before,
.swal2-popup::after {
    display: none !important;
    content: none !important;
}

.swal2-popup .swal2-html-container,
.ipc-stock-swal .swal2-html-container,
.ipc-medicine-swal .swal2-html-container,
.ipc-psychology-swal .swal2-html-container,
.ipc-psychology-view-swal .swal2-html-container {
    overflow: visible !important;
    box-sizing: border-box !important;
}

/* Botões das abas da Psicologia com altura igual ao padrão da Enfermagem */
.ipc-psychology-treatment .psych-tabs {
    gap: 8px !important;
    padding: 10px 12px !important;
}

.ipc-psychology-treatment .psych-tabs .nav-link {
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 14px !important;
    border-radius: 12px !important;
    font-size: 13px !important;
    line-height: 1.1 !important;
    transform: none !important;
}

.ipc-psychology-treatment .psych-tabs .nav-link.active {
    transform: none !important;
}

/* Mantém as cores vivas, mas sempre sólidas, sem degradê nos controles */
.btn,
button,
.card-header,
.nav-tabs .nav-link,
.swal2-styled,
.swal2-popup button,
.ipc-swal-save,
.ipc-swal-delete,
.ipc-swal-danger,
.ipc-psychology-treatment .psych-tabs .nav-link,
.ipc-psychology-treatment .psych-save-btn,
.psych-secret-icon,
.psych-secret-item .btn-access-secret {
    background-image: none !important;
    filter: none !important;
}

.ipc-psychology-treatment .tab-geral { background: #1997b3 !important; }
.ipc-psychology-treatment .tab-atendimento { background: #62b84b !important; }
.ipc-psychology-treatment .tab-historico { background: #6f7890 !important; }
.ipc-psychology-treatment .tab-evolucao { background: #9b4fb3 !important; }
.ipc-psychology-treatment .tab-sigilo { background: #b94e55 !important; }
.ipc-psychology-treatment .ipc-psychology-header,
.ipc-nursing-header.ipc-psychology-header { background: #006b3f !important; }

@media (max-width: 575.98px) {
    .swal2-popup .swal2-actions,
    .ipc-stock-swal .swal2-actions,
    .ipc-medicine-swal .swal2-actions,
    .ipc-psychology-swal .swal2-actions,
    .ipc-psychology-view-swal .swal2-actions {
        padding: 14px 18px 18px !important;
        border-radius: 0 0 18px 18px !important;
    }

    .ipc-psychology-treatment .psych-tabs .nav-link {
        height: 42px !important;
        min-height: 42px !important;
        font-size: 12.5px !important;
    }
}

/* Ajustes finais Psicologia - cadastro geral com recolhidos */
.ipc-psychology-treatment .psych-tabs .nav-link{
    height:48px!important;
    min-height:48px!important;
    padding:0 16px!important;
    border-radius:14px!important;
    background-image:none!important;
}
.ipc-psychology-treatment .tab-geral{background:#1997b3!important;}
.ipc-psychology-treatment .tab-atendimento{background:#42a832!important;}
.ipc-psychology-treatment .tab-historico{background:#526fa8!important;}
.ipc-psychology-treatment .tab-evolucao{background:#9b4fb3!important;}
.ipc-psychology-treatment .tab-sigilo{background:#b94e55!important;}
.psych-accordion{display:flex;flex-direction:column;gap:14px;}
.psych-collapse-card{border:1px solid #d9e4e9;border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 6px 18px rgba(13,86,57,.05);}
.psych-collapse-header{width:100%;height:44px;border:0;color:#fff;font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;text-align:left;}
.psych-collapse-header.bg-blue{background:#2f91c8;}
.psych-collapse-header.bg-green{background:#82b35a;}
.psych-collapse-header.bg-gold{background:#d3b545;}
.psych-collapse-header .mdi-chevron-down{transition:.2s ease;}
.psych-collapse-header:not(.collapsed) .mdi-chevron-down{transform:rotate(180deg);}
.psych-collapse-body{padding:18px;background:#fff;}
.psych-subtitle{font-weight:900;color:#00633f;text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px;border-left:4px solid #006b3f;padding-left:10px;}
.psych-question-block{border:1px solid #dcebf1;border-radius:14px;padding:14px;margin-bottom:12px;background:#fbfdfe;}
.psych-check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
.psych-check-grid.three{grid-template-columns:repeat(3,minmax(0,1fr));}
.psych-check{border:1px solid #d6e8ee;border-radius:10px;padding:9px 11px;background:#fff;color:#304057;font-weight:600;display:flex;gap:8px;align-items:center;min-height:42px;}
.psych-yes-no{display:flex;gap:10px;}
.psych-yes-no label{border:1px solid #d6e8ee;border-radius:10px;padding:8px 14px;background:#fff;font-weight:700;}
.psych-form-actions{display:flex;justify-content:flex-end;margin-top:18px;padding-top:16px;border-top:1px solid #e4edf1;}
.psych-family-table .table thead th{background:#00633f;color:#fff;font-size:12px;text-transform:uppercase;white-space:nowrap;}
.psych-family-table .form-control{min-width:120px;}
.psych-family-table td:first-child .form-control{min-width:56px;}
.psych-expense-row{display:grid;grid-template-columns:1fr 110px 140px;gap:10px;align-items:center;border:1px solid #e0edf2;border-radius:12px;padding:10px;margin-bottom:10px;background:#fbfdfe;}
.psych-expense-row span{font-weight:700;color:#304057;}
.ipc-psychology-swal,.swal2-popup.ipc-psychology-swal{overflow:hidden!important;border-radius:20px!important;padding-bottom:0!important;}
.ipc-psychology-swal .swal2-actions{box-sizing:border-box!important;padding:16px 24px 22px!important;margin:0!important;width:100%!important;}
@media(max-width: 991px){.psych-check-grid,.psych-check-grid.three{grid-template-columns:repeat(2,minmax(0,1fr));}.psych-expense-row{grid-template-columns:1fr;}}
@media(max-width: 575px){.psych-check-grid,.psych-check-grid.three{grid-template-columns:1fr;}.psych-collapse-header{height:auto;min-height:44px;padding:10px 14px;}}


/* ===== Ajuste fino do menu recolhido IPC ===== */
@media (min-width: 992px) {
    body.ipc-sidebar-fixed-collapsed .vertical-menu {
        width: 72px !important;
        overflow: visible !important;
        background: #005934 !important;
    }

    body.ipc-sidebar-fixed-collapsed .main-content {
        margin-left: 72px !important;
    }

    body.ipc-sidebar-fixed-collapsed .navbar-brand-box {
        width: 72px !important;
    }

    body.ipc-sidebar-fixed-collapsed #page-topbar {
        left: 72px !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu {
        padding: 12px 0 !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu .menu-title,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a span,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu .has-arrow:after {
        display: none !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li {
        position: relative !important;
        width: 72px !important;
        min-height: 58px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        margin: 4px 0 !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a {
        width: 48px !important;
        height: 48px !important;
        min-height: 48px !important;
        padding: 0 !important;
        margin: 0 auto !important;
        border-radius: 12px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        color: rgba(255,255,255,.72) !important;
        line-height: 1 !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a i {
        width: 48px !important;
        min-width: 48px !important;
        height: 48px !important;
        margin: 0 !important;
        padding: 0 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 22px !important;
        line-height: 48px !important;
        color: inherit !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover > a,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a:hover,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a:focus {
        background: rgba(255,255,255,.13) !important;
        color: #fff !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu {
        position: absolute !important;
        left: 70px !important;
        top: 4px !important;
        min-width: 245px !important;
        display: none !important;
        padding: 10px !important;
        border-radius: 14px !important;
        background: #ffffff !important;
        box-shadow: 0 18px 45px rgba(15, 23, 42, .22) !important;
        border: 1px solid rgba(0, 89, 52, .10) !important;
        z-index: 3000 !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover > ul.sub-menu,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:focus-within > ul.sub-menu {
        display: block !important;
        height: auto !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li::after {
        content: '';
        position: absolute;
        left: 58px;
        top: 0;
        width: 22px;
        height: 100%;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu ul.sub-menu li a {
        height: 42px !important;
        min-height: 42px !important;
        padding: 0 12px !important;
        border-radius: 10px !important;
        display: flex !important;
        align-items: center !important;
        gap: 9px !important;
        color: #334155 !important;
        font-size: 13px !important;
        font-weight: 700 !important;
        white-space: nowrap !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu ul.sub-menu li a i {
        width: 20px !important;
        min-width: 20px !important;
        margin: 0 !important;
        font-size: 18px !important;
        color: #007a49 !important;
        display: inline-flex !important;
        justify-content: center !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu ul.sub-menu li a:hover {
        background: #e8f7ef !important;
        color: #005934 !important;
    }
}

/* Ícones e altura padronizada no menu da Psicologia */
.psych-tabs .nav-link {
    height: 48px !important;
    min-height: 48px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
}
.psych-tabs .nav-link i,
.psych-collapse-header i:first-child {
    font-size: 18px !important;
    line-height: 1 !important;
}
.psych-collapse-header {
    min-height: 48px !important;
}

/* ===== Sidebar: abre pelo botão, mas inicia recolhido ===== */
@media (min-width: 992px) {
    body.ipc-sidebar-expanded .vertical-menu {
        width: 250px !important;
        overflow: visible !important;
        background: #005934 !important;
    }

    body.ipc-sidebar-expanded .main-content {
        margin-left: 250px !important;
    }

    body.ipc-sidebar-expanded .navbar-brand-box {
        width: 250px !important;
    }

    body.ipc-sidebar-expanded #page-topbar {
        left: 250px !important;
    }

    body.ipc-sidebar-expanded #sidebar-menu .menu-title,
    body.ipc-sidebar-expanded #sidebar-menu > ul > li > a span,
    body.ipc-sidebar-expanded #sidebar-menu .has-arrow:after {
        display: initial !important;
    }

    body.ipc-sidebar-expanded #sidebar-menu > ul > li,
    body.ipc-sidebar-expanded #sidebar-menu > ul > li > a {
        width: auto !important;
        min-height: unset !important;
        display: block !important;
        margin: 0 !important;
    }

    body.ipc-sidebar-expanded #sidebar-menu > ul > li > a {
        height: auto !important;
        padding: .625rem 1.5rem !important;
        border-radius: 0 !important;
        color: rgba(255,255,255,.78) !important;
    }

    body.ipc-sidebar-expanded #sidebar-menu > ul > li > a i {
        width: 20px !important;
        min-width: 20px !important;
        height: auto !important;
        margin-right: 10px !important;
        font-size: 18px !important;
        line-height: 1 !important;
        vertical-align: middle !important;
    }

    body.ipc-sidebar-expanded #sidebar-menu > ul > li > ul.sub-menu {
        position: static !important;
        left: auto !important;
        top: auto !important;
        min-width: auto !important;
        display: none;
        padding: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        border: 0 !important;
    }

    body.ipc-sidebar-expanded #sidebar-menu > ul > li.mm-active > ul.sub-menu,
    body.ipc-sidebar-expanded #sidebar-menu > ul > li > ul.sub-menu.mm-show {
        display: block !important;
    }

    body.ipc-sidebar-expanded #sidebar-menu ul.sub-menu li a {
        color: rgba(255,255,255,.72) !important;
        padding: .45rem 1.5rem .45rem 3.4rem !important;
        border-radius: 0 !important;
        height: auto !important;
        min-height: 34px !important;
        display: block !important;
        font-weight: 500 !important;
        white-space: normal !important;
    }

    body.ipc-sidebar-expanded #sidebar-menu ul.sub-menu li a i {
        margin-right: 8px !important;
        color: rgba(255,255,255,.72) !important;
    }
}

/* ===== Correção menu recolhido/expandido IPC ===== */
@media (min-width: 992px) {
    body.ipc-sidebar-expanded .vertical-menu,
    body:not(.ipc-sidebar-fixed-collapsed):not(.vertical-collpsed) .vertical-menu {
        width: 250px !important;
        overflow: hidden !important;
        background: #005934 !important;
    }

    body.ipc-sidebar-expanded .main-content,
    body:not(.ipc-sidebar-fixed-collapsed):not(.vertical-collpsed) .main-content {
        margin-left: 250px !important;
    }

    body.ipc-sidebar-expanded .navbar-brand-box,
    body:not(.ipc-sidebar-fixed-collapsed):not(.vertical-collpsed) .navbar-brand-box {
        width: 250px !important;
        padding: 0 1.5rem !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    body.ipc-sidebar-expanded .logo span.logo-lg,
    body:not(.ipc-sidebar-fixed-collapsed):not(.vertical-collpsed) .logo span.logo-lg {
        display: inline-block !important;
    }

    body.ipc-sidebar-expanded .logo span.logo-sm,
    body:not(.ipc-sidebar-fixed-collapsed):not(.vertical-collpsed) .logo span.logo-sm {
        display: none !important;
    }

    body.ipc-sidebar-expanded #page-topbar,
    body:not(.ipc-sidebar-fixed-collapsed):not(.vertical-collpsed) #page-topbar {
        left: 0 !important;
    }

    body.ipc-sidebar-expanded #sidebar-menu ul li a,
    body:not(.ipc-sidebar-fixed-collapsed):not(.vertical-collpsed) #sidebar-menu ul li a {
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    body.ipc-sidebar-expanded #sidebar-menu ul li a span,
    body:not(.ipc-sidebar-fixed-collapsed):not(.vertical-collpsed) #sidebar-menu ul li a span {
        white-space: nowrap !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li {
        min-height: 56px !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a span,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu .has-arrow:after {
        display: none !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover > a,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:focus-within > a {
        position: absolute !important;
        left: 70px !important;
        top: 4px !important;
        width: 245px !important;
        height: 46px !important;
        min-height: 46px !important;
        padding: 0 14px !important;
        margin: 0 !important;
        border-radius: 14px !important;
        background: #006b3f !important;
        color: #fff !important;
        box-shadow: 0 12px 30px rgba(0, 45, 28, .22) !important;
        justify-content: flex-start !important;
        gap: 10px !important;
        z-index: 3002 !important;
        white-space: nowrap !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover > a span,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:focus-within > a span {
        display: inline-block !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        white-space: nowrap !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover > a i,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:focus-within > a i {
        width: 22px !important;
        min-width: 22px !important;
        height: 22px !important;
        line-height: 22px !important;
        font-size: 20px !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu {
        left: 70px !important;
        top: 54px !important;
        min-width: 245px !important;
        border-top-left-radius: 10px !important;
        border-top-right-radius: 10px !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li::after {
        left: 58px !important;
        top: 0 !important;
        width: 26px !important;
        height: calc(100% + 70px) !important;
        z-index: 3001 !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu ul.sub-menu li a {
        white-space: nowrap !important;
    }
}

/* ===== FIX FINAL: menu recolhido com hover usável e logo alinhada ===== */
@media (min-width: 992px) {
    body.ipc-sidebar-fixed-collapsed .navbar-brand-box,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed .navbar-brand-box {
        width: 72px !important;
        height: 72px !important;
        min-height: 72px !important;
        padding: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        left: 0 !important;
        top: 0 !important;
        position: fixed !important;
        z-index: 1002 !important;
    }

    body.ipc-sidebar-fixed-collapsed .navbar-brand-box .logo,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed .navbar-brand-box .logo {
        width: 72px !important;
        height: 72px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    body.ipc-sidebar-fixed-collapsed .logo span.logo-sm,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed .logo span.logo-sm {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 72px !important;
        height: 72px !important;
    }

    body.ipc-sidebar-fixed-collapsed .logo span.logo-lg,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed .logo span.logo-lg {
        display: none !important;
    }

    body.ipc-sidebar-fixed-collapsed .vertical-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed .vertical-menu {
        width: 72px !important;
        overflow: visible !important;
        padding-top: 72px !important;
    }

    body.ipc-sidebar-fixed-collapsed #page-topbar,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #page-topbar {
        left: 72px !important;
    }

    body.ipc-sidebar-fixed-collapsed .main-content,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed .main-content {
        margin-left: 72px !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li {
        width: 72px !important;
        min-height: 56px !important;
        position: relative !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        overflow: visible !important;
        z-index: 10 !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:focus-within,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:focus-within {
        z-index: 4000 !important;
    }

    /* mantém o ícone no lugar; não move mais o botão principal */
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover > a,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover > a,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:focus-within > a,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:focus-within > a {
        position: relative !important;
        left: auto !important;
        top: auto !important;
        width: 48px !important;
        height: 48px !important;
        min-height: 48px !important;
        padding: 0 !important;
        margin: 0 auto !important;
        border-radius: 12px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        background: transparent !important;
        box-shadow: none !important;
        color: rgba(255,255,255,.76) !important;
        overflow: visible !important;
        white-space: nowrap !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover > a,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover > a,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:focus-within > a,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:focus-within > a {
        background: rgba(255,255,255,.14) !important;
        color: #fff !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a i,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a i,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover > a i,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover > a i,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:focus-within > a i,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:focus-within > a i {
        width: 48px !important;
        min-width: 48px !important;
        height: 48px !important;
        margin: 0 !important;
        padding: 0 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 21px !important;
        line-height: 48px !important;
        color: inherit !important;
        opacity: 1 !important;
    }

    /* título do menu principal ao passar o mouse */
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a span,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a span {
        display: none !important;
        position: absolute !important;
        left: 58px !important;
        top: 1px !important;
        width: 245px !important;
        height: 46px !important;
        padding: 0 16px 0 54px !important;
        border-radius: 14px !important;
        background: #007a49 !important;
        color: #fff !important;
        box-shadow: 0 12px 30px rgba(0,45,28,.22) !important;
        align-items: center !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        line-height: 46px !important;
        pointer-events: none !important;
        z-index: -1 !important;
        white-space: nowrap !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover > a span,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover > a span,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:focus-within > a span,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:focus-within > a span {
        display: flex !important;
    }

    /* área invisível de ponte para não sumir antes de chegar no submenu */
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li::after,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li::after {
        content: '' !important;
        position: absolute !important;
        left: 54px !important;
        top: 0 !important;
        width: 280px !important;
        height: 118px !important;
        background: transparent !important;
        z-index: 1 !important;
        pointer-events: auto !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu {
        position: absolute !important;
        left: 72px !important;
        top: 52px !important;
        min-width: 245px !important;
        display: none !important;
        padding: 10px !important;
        border-radius: 0 0 14px 14px !important;
        background: #fff !important;
        box-shadow: 0 18px 45px rgba(15,23,42,.22) !important;
        border: 1px solid rgba(0,89,52,.10) !important;
        z-index: 4002 !important;
        overflow: visible !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover > ul.sub-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover > ul.sub-menu,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:focus-within > ul.sub-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:focus-within > ul.sub-menu {
        display: block !important;
        height: auto !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a.has-arrow::after,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a.has-arrow::after {
        display: none !important;
    }
}

/* ===== FIX DEFINITIVO HEADER/SIDEBAR - logo única e hover estável ===== */
@media (min-width: 992px) {
    /* O header fica inteiro na tela; quem reserva espaço é o padding interno */
    body.ipc-sidebar-fixed-collapsed #page-topbar,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #page-topbar,
    body.ipc-sidebar-expanded #page-topbar {
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
    }

    body.ipc-sidebar-fixed-collapsed #page-topbar .navbar-header,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #page-topbar .navbar-header {
        padding-left: 72px !important;
    }

    body.ipc-sidebar-expanded #page-topbar .navbar-header {
        padding-left: 250px !important;
    }

    /* Logo fixa no canto esquerdo, sem duplicar nem deslocar */
    #page-topbar .navbar-brand-box {
        position: fixed !important;
        left: 0 !important;
        top: 0 !important;
        z-index: 1100 !important;
        padding: 0 !important;
        margin: 0 !important;
        background: #9baeb2 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        overflow: hidden !important;
    }

    body.ipc-sidebar-fixed-collapsed #page-topbar .navbar-brand-box,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #page-topbar .navbar-brand-box {
        width: 72px !important;
        height: 72px !important;
        min-width: 72px !important;
    }

    body.ipc-sidebar-expanded #page-topbar .navbar-brand-box {
        width: 250px !important;
        height: 72px !important;
        min-width: 250px !important;
    }

    /* Evita aparecer logo dark + light ao mesmo tempo */
    #page-topbar .navbar-brand-box .logo.logo-dark {
        display: none !important;
    }

    #page-topbar .navbar-brand-box .logo.logo-light {
        display: flex !important;
        width: 100% !important;
        height: 72px !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    body.ipc-sidebar-fixed-collapsed #page-topbar .logo-light .logo-sm,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #page-topbar .logo-light .logo-sm {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    body.ipc-sidebar-fixed-collapsed #page-topbar .logo-light .logo-lg,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #page-topbar .logo-light .logo-lg {
        display: none !important;
    }

    body.ipc-sidebar-expanded #page-topbar .logo-light .logo-sm {
        display: none !important;
    }

    body.ipc-sidebar-expanded #page-topbar .logo-light .logo-lg {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    /* Remove qualquer logo antiga dentro da lateral, caso o template carregue outra */
    .vertical-menu .navbar-brand-box,
    .vertical-menu .logo {
        display: none !important;
    }

    /* Botão hamburguer nunca entra por baixo da logo */
    #vertical-menu-btn {
        margin-left: 10px !important;
        position: relative !important;
        z-index: 1200 !important;
    }

    /* Menu recolhido: ícone sempre visível e centralizado */
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a {
        position: relative !important;
        z-index: 5 !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a i,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a i {
        opacity: 1 !important;
        visibility: visible !important;
        color: rgba(255,255,255,.82) !important;
        z-index: 6 !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover > a i,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover > a i,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:focus-within > a i,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:focus-within > a i {
        color: #fff !important;
    }

    /* Nome do menu ao lado, sem cobrir/apagar o ícone */
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a span,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a span {
        left: 58px !important;
        padding-left: 20px !important;
        z-index: 4 !important;
        pointer-events: none !important;
    }

    /* Ponte maior entre principal e submenu para não sumir no caminho */
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li::after,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li::after {
        left: 54px !important;
        top: -2px !important;
        width: 285px !important;
        height: 140px !important;
        z-index: 3 !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu {
        left: 72px !important;
        top: 50px !important;
        z-index: 7 !important;
    }
}

/* ===== CORREÇÃO FINAL - submenu recolhido alinhado e sub-submenu interno ===== */
@media (min-width: 992px) {
    body.ipc-sidebar-fixed-collapsed .vertical-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed .vertical-menu,
    body.ipc-sidebar-fixed-collapsed .vertical-menu .simplebar-wrapper,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed .vertical-menu .simplebar-wrapper,
    body.ipc-sidebar-fixed-collapsed .vertical-menu .simplebar-mask,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed .vertical-menu .simplebar-mask,
    body.ipc-sidebar-fixed-collapsed .vertical-menu .simplebar-offset,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed .vertical-menu .simplebar-offset,
    body.ipc-sidebar-fixed-collapsed .vertical-menu .simplebar-content-wrapper,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed .vertical-menu .simplebar-content-wrapper,
    body.ipc-sidebar-fixed-collapsed .vertical-menu .simplebar-content,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed .vertical-menu .simplebar-content,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu,
    body.ipc-sidebar-fixed-collapsed #side-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #side-menu {
        overflow: visible !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li {
        position: relative !important;
        width: 72px !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a {
        position: relative !important;
        z-index: 4100 !important;
    }

    /* Não mostra nome ao passar mouse nos itens que NÃO têm submenu */
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:not(:has(> ul.sub-menu)):hover > a span,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:not(:has(> ul.sub-menu)):hover > a span,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:not(:has(> ul.sub-menu)):focus-within > a span,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:not(:has(> ul.sub-menu)):focus-within > a span {
        display: none !important;
    }

    /* Cabeçalho verde do popover: mesmo left e mesma largura do submenu branco */
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:has(> ul.sub-menu) > a span,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:has(> ul.sub-menu) > a span {
        display: none !important;
        position: absolute !important;
        left: 60px !important;
        top: 0 !important;
        width: 260px !important;
        height: 52px !important;
        min-height: 52px !important;
        padding: 0 18px !important;
        margin: 0 !important;
        border-radius: 16px 16px 0 0 !important;
        background: #007a49 !important;
        color: #ffffff !important;
        box-shadow: 0 16px 38px rgba(0,45,28,.18) !important;
        align-items: center !important;
        justify-content: flex-start !important;
        font-size: 14px !important;
        font-weight: 800 !important;
        line-height: 52px !important;
        white-space: nowrap !important;
        pointer-events: none !important;
        z-index: 4300 !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:has(> ul.sub-menu):hover > a span,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:has(> ul.sub-menu):hover > a span,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:has(> ul.sub-menu):focus-within > a span,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:has(> ul.sub-menu):focus-within > a span {
        display: flex !important;
    }

    /* Ponte somente nos itens com submenu, sem abrir quando passa longe */
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li::after,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li::after {
        display: none !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:has(> ul.sub-menu)::after,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:has(> ul.sub-menu)::after {
        content: '' !important;
        display: block !important;
        position: absolute !important;
        left: 54px !important;
        top: 0 !important;
        width: 278px !important;
        height: 100% !important;
        min-height: 132px !important;
        background: transparent !important;
        z-index: 4050 !important;
        pointer-events: auto !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu {
        position: absolute !important;
        left: 72px !important;
        top: 52px !important;
        width: 260px !important;
        min-width: 260px !important;
        max-width: 260px !important;
        display: none !important;
        padding: 10px !important;
        margin: 0 !important;
        border-radius: 0 0 16px 16px !important;
        background: #ffffff !important;
        box-shadow: 0 18px 45px rgba(15,23,42,.20) !important;
        border: 1px solid rgba(0,89,52,.10) !important;
        border-top: 0 !important;
        overflow: visible !important;
        z-index: 4200 !important;
        height: auto !important;
        max-height: none !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover > ul.sub-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover > ul.sub-menu,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:focus-within > ul.sub-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:focus-within > ul.sub-menu {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu > li,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu > li {
        position: relative !important;
        width: 100% !important;
        margin: 0 !important;
        overflow: visible !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu ul.sub-menu li a,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu ul.sub-menu li a {
        width: 100% !important;
        height: 44px !important;
        min-height: 44px !important;
        padding: 0 12px !important;
        margin: 0 !important;
        border-radius: 11px !important;
        display: flex !important;
        align-items: center !important;
        gap: 10px !important;
        color: #334155 !important;
        font-size: 13px !important;
        font-weight: 800 !important;
        line-height: 1.2 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        background: transparent !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu ul.sub-menu li a i,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu ul.sub-menu li a i {
        width: 22px !important;
        min-width: 22px !important;
        height: 22px !important;
        margin: 0 !important;
        padding: 0 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        color: #007a49 !important;
        font-size: 18px !important;
        line-height: 1 !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu ul.sub-menu li a:hover,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu ul.sub-menu li a:hover,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu ul.sub-menu li.mm-active > a,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu ul.sub-menu li.mm-active > a {
        background: #e8f7ef !important;
        color: #005934 !important;
    }

    /* Segundo nível: abre DENTRO do card branco, abaixo do item pai. Não abre para fora. */
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu ul.sub-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu ul.sub-menu {
        position: static !important;
        left: auto !important;
        top: auto !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        display: none !important;
        padding: 4px 0 6px 32px !important;
        margin: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        background: transparent !important;
        overflow: visible !important;
        height: auto !important;
        max-height: none !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu li:hover > ul.sub-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu li:hover > ul.sub-menu,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu li:focus-within > ul.sub-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu li:focus-within > ul.sub-menu,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu li.mm-active > ul.sub-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu li.mm-active > ul.sub-menu {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu ul.sub-menu li a,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu ul.sub-menu li a {
        height: 36px !important;
        min-height: 36px !important;
        padding: 0 10px !important;
        font-size: 12.5px !important;
        font-weight: 700 !important;
        background: #f7fbf8 !important;
    }

    /* Seta do item pai dentro do submenu, sem quebrar layout */
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu > li > a.has-arrow::after,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu > li > a.has-arrow::after {
        display: inline-block !important;
        position: static !important;
        margin-left: auto !important;
        transform: rotate(90deg) !important;
        color: #007a49 !important;
        opacity: .8 !important;
    }
}

/* ===== FIX REAL MENU RECOLHIDO: hover somente no ícone + subnível por clique ===== */
@media (min-width: 992px) {
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li::after,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li::after,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:has(> ul.sub-menu)::after,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:has(> ul.sub-menu)::after {
        display: none !important;
        content: none !important;
        width: 0 !important;
        height: 0 !important;
        pointer-events: none !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li {
        width: 72px !important;
        max-width: 72px !important;
        min-height: 56px !important;
        pointer-events: none !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu {
        pointer-events: auto !important;
    }

    /* abre somente quando o mouse está no ícone/item real, não no vazio ao lado */
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:has(> ul.sub-menu):hover > a span,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:has(> ul.sub-menu):hover > a span,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:has(> ul.sub-menu):focus-within > a span,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:has(> ul.sub-menu):focus-within > a span {
        display: flex !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover > ul.sub-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:hover > ul.sub-menu,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:focus-within > ul.sub-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:focus-within > ul.sub-menu {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    /* sub do sub não abre mais por hover; fica aberto só quando clicar no item pai */
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu li:hover > ul.sub-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu li:hover > ul.sub-menu,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu li:focus-within > ul.sub-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu li:focus-within > ul.sub-menu {
        display: none !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu li.ipc-sub-open > ul.sub-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu li.ipc-sub-open > ul.sub-menu,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu li.mm-active.ipc-sub-open > ul.sub-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu li.mm-active.ipc-sub-open > ul.sub-menu {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu > li.ipc-sub-open > a.has-arrow::after,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu > li.ipc-sub-open > a.has-arrow::after {
        transform: rotate(-90deg) !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu ul.sub-menu li a i,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu ul.sub-menu li a i,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a i,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a i {
        display: inline-flex !important;
        opacity: 1 !important;
        visibility: visible !important;
    }
}

/* ===== FIX DEFINITIVO 2026-06-10 - menu recolhido acessível ===== */
@media (min-width: 992px) {
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li {
        pointer-events: none !important;
        overflow: visible !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a {
        pointer-events: auto !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu {
        pointer-events: auto !important;
        left: 72px !important;
        top: 52px !important;
        width: 260px !important;
        min-width: 260px !important;
        max-width: 260px !important;
        border-radius: 0 0 16px 16px !important;
        overflow: visible !important;
    }

    /* Abre pelo JS e permanece aberto durante a travessia ícone -> card */
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li.ipc-hover-open > ul.sub-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li.ipc-hover-open > ul.sub-menu {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li.ipc-hover-open > a span,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li.ipc-hover-open > a span {
        display: flex !important;
        pointer-events: auto !important;
    }

    /* Item sem submenu nunca mostra o nome lateral */
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:not(.ipc-has-submenu) > a span,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:not(.ipc-has-submenu) > a span,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:not(.ipc-has-submenu):hover > a span,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:not(.ipc-has-submenu):hover > a span,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:not(.ipc-has-submenu).ipc-hover-open > a span,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li:not(.ipc-has-submenu).ipc-hover-open > a span {
        display: none !important;
    }

    /* Subníveis só abrem por clique, dentro do card */
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu li > ul.sub-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu li > ul.sub-menu {
        display: none !important;
        position: static !important;
        width: 100% !important;
        padding: 4px 0 6px 32px !important;
        margin: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        border: 0 !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu li.ipc-sub-open > ul.sub-menu,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > ul.sub-menu li.ipc-sub-open > ul.sub-menu {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    body.ipc-sidebar-fixed-collapsed #sidebar-menu ul.sub-menu li a i,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu ul.sub-menu li a i,
    body.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a i,
    body.vertical-collpsed.ipc-sidebar-fixed-collapsed #sidebar-menu > ul > li > a i {
        display: inline-flex !important;
        opacity: 1 !important;
        visibility: visible !important;
    }
}


/* ===== Correção Psicologia: tabs reais + ícones existentes ===== */
.ipc-psychology-treatment #psychTabsContent > .tab-pane {
    display: none !important;
}
.ipc-psychology-treatment #psychTabsContent > .tab-pane.active,
.ipc-psychology-treatment #psychTabsContent > .tab-pane.show.active {
    display: block !important;
}
.ipc-psychology-treatment .psych-tabs .nav-link i,
.ipc-psychology-treatment .psych-collapse-header i,
#sidebar-menu a i {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: 1 !important;
    visibility: visible !important;
}
.ipc-psychology-treatment .psych-tabs .tab-geral i::before {
    content: "\F1372"; /* mdi-account-details-outline */
}
.ipc-psychology-treatment .psych-tabs .tab-evolucao i::before {
    content: "\F06BC"; /* mdi-account-edit */
}

/* ===== Correção final: cabeçalho Enfermagem sem degradê e tabs Psicologia isoladas ===== */
.ipc-nursing-header,
.card-header.ipc-nursing-header {
    background: #006b3f !important;
    background-color: #006b3f !important;
    background-image: none !important;
    color: #ffffff !important;
    min-height: 150px;
    display: flex;
    align-items: center;
}
.ipc-nursing-header *,
.card-header.ipc-nursing-header * {
    color: #ffffff !important;
}
.ipc-nursing-header::after {
    display: block !important;
    background: rgba(255,255,255,.12) !important;
}
.ipc-psychology-treatment #psychTabsContent > .tab-pane:not(.active) {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    height: 0 !important;
    overflow: hidden !important;
}
.ipc-psychology-treatment #psychTabsContent > .tab-pane.active {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    height: auto !important;
    overflow: visible !important;
}
.ipc-psychology-treatment .psych-tabs .nav-link i,
.ipc-psychology-treatment .psych-section-heading i,
.ipc-psychology-treatment .psych-collapse-header i {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: 1 !important;
    visibility: visible !important;
    width: 18px;
    min-width: 18px;
}

/* Correção: botões de exclusão do SweetAlert na enfermagem devem permanecer vermelhos */
.ipc-medicine-swal .swal2-confirm.ipc-swal-delete,
.swal2-popup .swal2-confirm.ipc-swal-delete,
.swal2-confirm.ipc-swal-delete,
.ipc-swal-delete {
    background: #e11d48 !important;
    background-color: #e11d48 !important;
    background-image: none !important;
    border: 1px solid #e11d48 !important;
    color: #ffffff !important;
    opacity: 1 !important;
}

.ipc-medicine-swal .swal2-confirm.ipc-swal-delete:hover,
.swal2-popup .swal2-confirm.ipc-swal-delete:hover,
.swal2-confirm.ipc-swal-delete:hover,
.ipc-swal-delete:hover {
    background: #be123c !important;
    background-color: #be123c !important;
    border-color: #be123c !important;
    color: #ffffff !important;
}

.ipc-medicine-swal .swal2-confirm.ipc-swal-delete:disabled,
.swal2-popup .swal2-confirm.ipc-swal-delete:disabled,
.swal2-confirm.ipc-swal-delete:disabled,
.ipc-swal-delete:disabled {
    background: #e11d48 !important;
    background-color: #e11d48 !important;
    border-color: #e11d48 !important;
    color: #ffffff !important;
    opacity: .85 !important;
}

/* Ajuste: mantém textos/ícones dos botões de ação do formulário de visitante sempre claros */
.ipc-reception-form .card-footer .btn,
.ipc-reception-form .card-footer .btn i,
.ipc-form-card .card-footer .btn,
.ipc-form-card .card-footer .btn i {
    color: #ffffff !important;
}

.ipc-reception-form .card-footer .btn:hover,
.ipc-reception-form .card-footer .btn:focus,
.ipc-reception-form .card-footer .btn:hover i,
.ipc-reception-form .card-footer .btn:focus i,
.ipc-form-card .card-footer .btn:hover,
.ipc-form-card .card-footer .btn:focus,
.ipc-form-card .card-footer .btn:hover i,
.ipc-form-card .card-footer .btn:focus i {
    color: #ffffff !important;
}

/* Correção Folha de Rosto Enfermagem: SweetAlert dentro do modal Bootstrap */
#modalFolhaRosto .swal2-container {
    position: absolute !important;
    z-index: 1065 !important;
    padding: 18px !important;
}
#modalFolhaRosto .ipc-clinical-cover-swal {
    width: min(760px, calc(100vw - 42px)) !important;
    padding: 22px 28px 24px !important;
    border-radius: 22px !important;
    pointer-events: auto !important;
}
#modalFolhaRosto .ipc-clinical-cover-swal .swal2-html-container {
    overflow: visible !important;
    padding: 0 !important;
}
#modalFolhaRosto .clinical-cover-editor,
#modalFolhaRosto .clinical-cover-row,
#modalFolhaRosto .clinical-cover-input {
    pointer-events: auto !important;
}
#modalFolhaRosto .clinical-cover-input {
    position: relative !important;
    z-index: 2 !important;
    background: #fff !important;
    color: #0f172a !important;
}
#modalFolhaRosto .ipc-cover-close-btn,
#modalFolhaRosto .ipc-cover-footer .btn-secondary {
    background: #64748b !important;
    border-color: #64748b !important;
    color: #fff !important;
}
#modalFolhaRosto .ipc-cover-close-btn:hover,
#modalFolhaRosto .ipc-cover-footer .btn-secondary:hover {
    background: #475569 !important;
    border-color: #475569 !important;
    color: #fff !important;
}
#modalFolhaRosto .ipc-clinical-cover-swal .swal2-actions {
    gap: 10px !important;
}
#modalFolhaRosto .ipc-clinical-cover-swal .ipc-swal-cancel {
    background: #64748b !important;
    border-color: #64748b !important;
    color: #fff !important;
}
#modalFolhaRosto .ipc-clinical-cover-swal .ipc-swal-save {
    background: #047857 !important;
    border-color: #047857 !important;
    color: #fff !important;
}

/* Folha de rosto 100% SweetAlert2: sem modal Bootstrap para evitar conflito de z-index/foco */
.ipc-cover-swal-popup {
    width: min(920px, calc(100vw - 28px)) !important;
    padding: 0 !important;
    border-radius: 22px !important;
    overflow: hidden !important;
    border: 0 !important;
    box-shadow: 0 28px 70px rgba(0, 28, 20, .32) !important;
}
.ipc-cover-swal-popup .swal2-html-container {
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
}
.ipc-cover-swal-header {
    background: linear-gradient(135deg, #065f46, #047857) !important;
    color: #fff !important;
    padding: 18px 24px !important;
    font-size: 1.05rem !important;
    font-weight: 900 !important;
    text-align: left !important;
}
.ipc-cover-swal-x {
    color: #fff !important;
    opacity: 1 !important;
}
.ipc-cover-swal-wrapper .ipc-cover-footer {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
}
.ipc-cover-close-btn,
.ipc-cover-footer .btn-secondary,
.ipc-clinical-cover-swal .ipc-swal-cancel {
    background: #64748b !important;
    border-color: #64748b !important;
    color: #fff !important;
}
.ipc-cover-close-btn:hover,
.ipc-cover-footer .btn-secondary:hover,
.ipc-clinical-cover-swal .ipc-swal-cancel:hover {
    background: #475569 !important;
    border-color: #475569 !important;
    color: #fff !important;
}
.ipc-clinical-cover-swal {
    z-index: 2147483647 !important;
    border-radius: 22px !important;
}
.ipc-clinical-cover-swal .swal2-html-container {
    overflow: visible !important;
    padding: 0 !important;
}
.ipc-clinical-cover-swal .clinical-cover-editor,
.ipc-clinical-cover-swal .clinical-cover-row,
.ipc-clinical-cover-swal .clinical-cover-input {
    pointer-events: auto !important;
}
.ipc-clinical-cover-swal .clinical-cover-input {
    position: relative !important;
    z-index: 2 !important;
    background: #fff !important;
    color: #0f172a !important;
}
.ipc-clinical-cover-swal .swal2-actions {
    gap: 10px !important;
}
.ipc-clinical-cover-swal .ipc-swal-save {
    background: #047857 !important;
    border-color: #047857 !important;
    color: #fff !important;
}
@media (max-width: 768px) {
    .ipc-cover-swal-wrapper .ipc-cover-footer .btn {
        width: 100% !important;
    }
}


/* Ajuste final - Folha de Rosto Sweet compacta e editor clínico polido */
.ipc-cover-swal-popup {
    width: min(820px, calc(100vw - 32px)) !important;
    border-radius: 18px !important;
}
.ipc-cover-swal-header {
    padding: 13px 22px !important;
    font-size: .98rem !important;
}
.ipc-cover-modal-body {
    padding: 18px 28px 16px !important;
}
.ipc-cover-hero {
    margin-bottom: 12px !important;
}
.ipc-cover-pill {
    padding: 4px 12px !important;
    font-size: .66rem !important;
}
.ipc-cover-hero h2 {
    margin: 9px 0 3px !important;
    font-size: 1.55rem !important;
    letter-spacing: .10em !important;
}
.ipc-cover-hero p {
    font-size: .9rem !important;
}
.ipc-cover-person {
    margin-bottom: 14px !important;
}
.ipc-cover-avatar {
    width: 72px !important;
    height: 72px !important;
    border-radius: 20px !important;
    border-width: 4px !important;
    margin-bottom: 8px !important;
}
.ipc-cover-person h3 {
    font-size: 1.25rem !important;
}
.ipc-cover-table {
    margin-bottom: 0 !important;
    border-radius: 14px !important;
}
.ipc-cover-table th,
.ipc-cover-table td {
    padding: 10px 14px !important;
    font-size: .92rem !important;
    vertical-align: middle !important;
}
.ipc-cover-table th {
    width: 32% !important;
}
.ipc-cover-table .badge {
    font-size: .72rem !important;
    padding: 5px 9px !important;
    border-radius: 999px !important;
}
.ipc-cover-swal-wrapper .ipc-cover-footer {
    padding: 12px 22px !important;
    gap: 10px !important;
}
.ipc-cover-swal-wrapper .ipc-cover-footer .btn {
    min-height: 38px !important;
    height: 38px !important;
    border-radius: 10px !important;
    padding: 0 16px !important;
    font-size: .86rem !important;
}

.ipc-clinical-cover-swal {
    width: min(680px, calc(100vw - 28px)) !important;
    padding: 22px 26px 20px !important;
    border-radius: 20px !important;
}
.ipc-clinical-cover-swal .swal2-title {
    font-size: 1.35rem !important;
    margin-bottom: 14px !important;
    color: #0f172a !important;
}
.ipc-clinical-cover-swal .swal2-html-container {
    margin: 0 !important;
}
.ipc-clinical-cover-swal .clinical-cover-editor label {
    color: #475569 !important;
    font-size: .9rem !important;
}
.ipc-clinical-cover-swal .clinical-cover-editor .mb-3 {
    margin-bottom: 14px !important;
}
.ipc-clinical-cover-swal .clinical-cover-row {
    display: grid !important;
    grid-template-columns: 1fr 44px !important;
    gap: 8px !important;
    align-items: center !important;
    margin-bottom: 8px !important;
}
.ipc-clinical-cover-swal .clinical-cover-input {
    min-height: 42px !important;
    height: 42px !important;
    border-radius: 10px !important;
    border: 1px solid #cfe2ee !important;
    padding: 0 12px !important;
    font-size: .92rem !important;
    box-shadow: none !important;
}
.ipc-clinical-cover-swal .clinical-cover-input:focus {
    border-color: #047857 !important;
    box-shadow: 0 0 0 3px rgba(4,120,87,.12) !important;
}
.ipc-clinical-cover-swal .clinical-cover-add {
    min-height: 36px !important;
    height: 36px !important;
    border-radius: 10px !important;
    padding: 0 12px !important;
    font-size: .78rem !important;
    font-weight: 800 !important;
}
.ipc-clinical-cover-swal .clinical-cover-remove {
    width: 44px !important;
    min-width: 44px !important;
    height: 42px !important;
    min-height: 42px !important;
    padding: 0 !important;
    border-radius: 10px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.ipc-clinical-cover-swal .swal2-actions {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    margin-top: 16px !important;
}
.ipc-clinical-cover-swal .swal2-actions .btn {
    width: 100% !important;
    min-height: 44px !important;
    height: 44px !important;
    border-radius: 10px !important;
    font-size: .9rem !important;
    font-weight: 800 !important;
}
@media (max-width: 768px) {
    .ipc-cover-modal-body { padding: 16px 14px 14px !important; }
    .ipc-cover-table th,
    .ipc-cover-table td { display: table-cell !important; padding: 9px 10px !important; font-size: .84rem !important; }
    .ipc-cover-swal-wrapper .ipc-cover-footer .btn { width: 100% !important; }
    .ipc-clinical-cover-swal .swal2-actions { grid-template-columns: 1fr !important; }
}

/* =========================================================
   Ajuste 16/06: SweetAlert padrão do sistema para reset/senha de usuários
   ========================================================= */
.ipc-user-password-swal .swal2-title {
    padding: 24px 28px 10px !important;
    margin: 0 !important;
    color: #064e3b !important;
    font-size: 1.35rem !important;
    font-weight: 900 !important;
}

.ipc-user-password-swal .swal2-html-container {
    margin: 0 !important;
    padding: 0 28px 8px !important;
}

.ipc-user-password-form .ipc-medicine-icon i {
    font-size: 30px !important;
    line-height: 1 !important;
}

.ipc-user-password-user {
    width: 100% !important;
    padding: 12px 14px !important;
    margin: 0 0 16px !important;
    border-radius: 14px !important;
    background: #f0fdf4 !important;
    border: 1px solid #bbf7d0 !important;
    color: #064e3b !important;
}

.ipc-user-password-user span {
    display: block !important;
    font-size: .75rem !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
    opacity: .75 !important;
}

.ipc-user-password-user strong {
    display: block !important;
    margin-top: 2px !important;
    font-size: .98rem !important;
    font-weight: 900 !important;
    word-break: break-word !important;
}

.ipc-user-password-help {
    margin: 0 !important;
    padding: 12px 14px !important;
    border-radius: 14px !important;
    background: #f8fafc !important;
    border: 1px solid #e5eef2 !important;
    color: #475569 !important;
    font-size: .92rem !important;
    line-height: 1.45 !important;
}

.ipc-user-password-swal .swal2-validation-message {
    margin: 8px 28px 0 !important;
    border-radius: 12px !important;
    background: #fff7ed !important;
    color: #9a3412 !important;
    font-weight: 800 !important;
}

/* =========================================================
   Histórico de atendimentos e evolução diária/médica
   ========================================================= */
.ipc-history-item {
    border: 1px solid #dcecf2 !important;
    border-radius: 18px !important;
    background: #fff !important;
    padding: 16px !important;
    margin-bottom: 14px !important;
    box-shadow: 0 8px 22px rgba(16, 24, 40, .05) !important;
    white-space: normal !important;
    height: auto !important;
}
.ipc-history-header {
    display: flex !important;
    justify-content: space-between !important;
    gap: 10px !important;
    align-items: flex-start !important;
    padding-bottom: 12px !important;
    margin-bottom: 12px !important;
    border-bottom: 1px solid #e7f0f4 !important;
}
.ipc-history-header strong {
    display: block !important;
    color: #006b45 !important;
    font-size: 15px !important;
    font-weight: 900 !important;
}
.ipc-history-header span {
    display: block !important;
    color: #718096 !important;
    font-size: 12px !important;
    font-weight: 800 !important;
}
.ipc-history-header small {
    color: #64748b !important;
    font-weight: 800 !important;
    white-space: nowrap !important;
}
.ipc-history-section {
    padding: 12px 0 !important;
    border-bottom: 1px dashed #dbe8ef !important;
}
.ipc-history-section:last-child {
    border-bottom: 0 !important;
    padding-bottom: 0 !important;
}
.ipc-history-section h6 {
    margin: 0 0 10px !important;
    color: #004f34 !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
}
.ipc-history-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)) !important;
    gap: 10px !important;
}
.ipc-history-grid.one-column {
    grid-template-columns: 1fr !important;
}
.ipc-history-field {
    background: #f8fcff !important;
    border: 1px solid #e0eef5 !important;
    border-radius: 14px !important;
    padding: 10px 12px !important;
}
.ipc-history-field span {
    display: block !important;
    color: #526174 !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: .02em !important;
    margin-bottom: 5px !important;
}
.ipc-history-field p {
    margin: 0 !important;
    color: #1f2937 !important;
    font-weight: 600 !important;
    line-height: 1.45 !important;
    white-space: normal !important;
}
.ipc-evolution-item {
    border: 1px solid #dcecf2 !important;
    border-radius: 16px !important;
    background: #fff !important;
    padding: 14px !important;
    margin-bottom: 12px !important;
    box-shadow: 0 8px 18px rgba(16, 24, 40, .045) !important;
    white-space: normal !important;
}
.ipc-evolution-head {
    display: flex !important;
    justify-content: space-between !important;
    gap: 10px !important;
    align-items: flex-start !important;
    margin-bottom: 10px !important;
    padding-bottom: 10px !important;
    border-bottom: 1px solid #edf4f7 !important;
}
.ipc-evolution-user {
    display: flex !important;
    gap: 9px !important;
    align-items: center !important;
}
.ipc-evolution-user > i {
    width: 34px !important;
    height: 34px !important;
    border-radius: 12px !important;
    background: rgba(0, 163, 108, .12) !important;
    color: #009b66 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 18px !important;
}
.ipc-evolution-user strong {
    display: block !important;
    color: #064e3b !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
}
.ipc-evolution-user span,
.ipc-evolution-head small {
    color: #64748b !important;
    font-size: 12px !important;
    font-weight: 800 !important;
}
.ipc-evolution-body {
    color: #1f2937 !important;
    font-size: .95rem !important;
    font-weight: 600 !important;
    line-height: 1.55 !important;
    background: #f8fcff !important;
    border: 1px solid #e6f0f5 !important;
    border-radius: 13px !important;
    padding: 10px 12px !important;
    text-align: left !important;
}
.ipc-evolution-medical .ipc-evolution-user > i {
    background: rgba(14, 165, 233, .12) !important;
    color: #0284c7 !important;
}
.ipc-evolution-medicine .ipc-evolution-user > i {
    background: rgba(245, 158, 11, .12) !important;
    color: #b45309 !important;
}
.psych-readonly-textarea,
#historicoEvolucao,
#historicoEvolucaoProntuario {
    background: #f8fbfc !important;
    border: 1px solid #d8e8ef !important;
    border-radius: 16px !important;
    padding: 14px !important;
    white-space: normal !important;
    height: auto !important;
    min-height: 220px !important;
    overflow-y: auto !important;
}


.psych-readonly-textarea,
#historicoEvolucao,
#historicoEvolucaoProntuario,
#historicoJustificativa {
    background: #f8fbfc !important;
    border: 1px solid #d8e8ef !important;
    border-radius: 16px !important;
    padding: 14px !important;
    white-space: normal !important;
    height: auto !important;
    min-height: 220px !important;
    max-height: 560px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding-right: 10px !important;
}

.psych-readonly-textarea::-webkit-scrollbar,
#historicoEvolucao::-webkit-scrollbar,
#historicoEvolucaoProntuario::-webkit-scrollbar,
#historicoJustificativa::-webkit-scrollbar {
    width: 8px;
}

.psych-readonly-textarea::-webkit-scrollbar-track,
#historicoEvolucao::-webkit-scrollbar-track,
#historicoEvolucaoProntuario::-webkit-scrollbar-track,
#historicoJustificativa::-webkit-scrollbar-track {
    background: transparent;
}

.psych-readonly-textarea::-webkit-scrollbar-thumb,
#historicoEvolucao::-webkit-scrollbar-thumb,
#historicoEvolucaoProntuario::-webkit-scrollbar-thumb,
#historicoJustificativa::-webkit-scrollbar-thumb {
    background: #c8d8e5;
    border-radius: 10px;
}

/* Psicologia - busca/cadastro rápido de paciente */
.ipc-compact-swal .swal2-title{font-size:1.15rem!important;margin-bottom:.25rem!important;}
.ipc-psych-quick-form{display:grid;gap:7px;}
.ipc-psych-quick-form label{font-size:12px;font-weight:700;color:#425466;margin-bottom:-3px;}
.ipc-psych-quick-form .form-control,.ipc-psych-quick-form .form-select{height:38px;font-size:13px;border-radius:10px;}
.ipc-psych-patient-list{display:flex;flex-direction:column;gap:8px;max-height:340px;overflow-y:auto;padding-right:4px;}
.ipc-psych-patient-option{width:100%;border:1px solid #dce6f0;background:#fff;border-radius:12px;padding:8px 10px;display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer;transition:.15s;}
.ipc-psych-patient-option:hover,.ipc-psych-patient-option.is-selected{border-color:#0d6efd;background:#f3f8ff;}
.ipc-psych-patient-option img{width:38px;height:38px;border-radius:50%;object-fit:cover;}
.ipc-psych-patient-option strong{display:block;font-size:13px;line-height:1.2;color:#1f2937;}
.ipc-psych-patient-option small{display:block;font-size:11px;color:#6c757d;}
.psych-dynamic-list{display:flex;flex-direction:column;gap:8px;}
.psych-dynamic-row{display:flex;gap:8px;align-items:center;}
.psych-dynamic-row .form-control{flex:1;}
.psych-dynamic-row .btn{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;padding:0;}

/* Psicologia - ajustes finais: anexos, registro psicológico e sigilo */
.psych-attachments-list{display:flex;flex-direction:column;gap:8px;width:100%;}
.psych-attachment-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #dbe8ef;border-radius:12px;background:#fff;padding:8px 10px;}
.psych-attachment-item span{font-size:.9rem;font-weight:600;color:#314455;word-break:break-word;}
.psych-registration-section{border:1px solid #dcebf1;border-radius:16px;background:#fbfdfe;padding:16px;margin-bottom:16px;}
.psych-registration-section .psych-subtitle{margin-top:0!important;margin-bottom:14px!important;}
.psych-registration-section .form-label{font-weight:600;color:#314455;font-size:.88rem;}
.psych-registration-section textarea{min-height:92px;}
.psych-registration-section textarea.psych-large-textarea{min-height:130px;}
.psych-dynamic-row{margin-bottom:8px;}
.psych-dynamic-row:first-child{margin-top:0;}
.ipc-psychology-swal .ipc-swal-danger,.swal2-deny.ipc-swal-danger{background:#dc3545!important;color:#fff!important;border:none!important;border-radius:10px!important;padding:.65rem 1rem!important;font-weight:700!important;}
@media (max-width: 768px){.psych-attachment-item{align-items:flex-start;flex-direction:column}.psych-attachment-item .d-flex{width:100%;}.psych-attachment-item .btn{flex:1;}}


.psych-upload-box{border:1px dashed #b8d9e6;border-radius:14px;background:#f8fcfd;padding:10px 12px;display:flex;flex-direction:column;gap:6px;}
.psych-upload-trigger{align-self:flex-start;border-radius:10px;font-weight:700;}
.psych-selected-attachments{display:flex;flex-direction:column;gap:7px;}
.psych-selected-attachment-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #dbe8ef;border-radius:10px;background:#fff;padding:7px 9px;}
.psych-selected-attachment-item span{font-size:13px;font-weight:700;color:#314455;word-break:break-word;}
.psych-selected-attachment-item small{font-weight:600;color:#7a8b9b;margin-left:4px;}
.psych-secret-item .btn-outline-danger{border-color:#f0b5bd;color:#dc3545;background:#fff;}
.psych-secret-item .btn-outline-danger:hover{background:#dc3545;color:#fff;border-color:#dc3545;}
@media (max-width: 768px){.psych-selected-attachment-item{align-items:flex-start;flex-direction:column}.psych-selected-attachment-item .btn{width:100%;}}
