        :root {
            /* Paleta extraída da logo Instituto Práxis */
            --portal-blue: #7BA0CC;
            --portal-teal: #4DB8C1;
            --portal-lime: #99CC4C;
            --portal-green: #2D5A27;
            --portal-green-dark: #1a3d18;
            --portal-accent: var(--portal-lime);
            --portal-primary: var(--portal-teal);
            --portal-primary-hover: #3aa8b1;
            --portal-header-gradient: linear-gradient(
                118deg,
                #1a3530 0%,
                #1f453c 28%,
                #245a52 55%,
                #2a5540 78%,
                #1e3f32 100%
            );
            --portal-header-gradient-mobile: linear-gradient(
                160deg,
                #1a3530 0%,
                #1f453c 40%,
                #245a52 70%,
                #2a5540 100%
            );
        }

        html,
        body,
        #portal-header {
            font-family: 'Inter', sans-serif;
        }

        /* Bordas quadradas em todo o portal (exceto banner LGPD e busca global) */
        body [class*="rounded"]:not(.portal-header-search__box):not(.portal-header-search__btn):not(.portal-search-results):not(.portal-search-result):not(.portal-search-result__icon):not(.portal-search__input),
        body button:not(.cookie-banner__btn):not(.cookie-banner-tab):not(.cookie-banner__close):not(.portal-header-search__btn):not(.portal-search-result):not(.cont-agir-download-btn),
        body input:not([type="checkbox"]):not([type="radio"]):not(.portal-header-search__input):not(.portal-search__input),
        body select,
        body textarea,
        body .page-btn,
        body #btn-back-to-top {
            border-radius: 0 !important;
        }

        .sr-only {
            position: absolute;
            width: 1px;
            height: 1px;
            padding: 0;
            margin: -1px;
            overflow: hidden;
            clip: rect(0, 0, 0, 0);
            white-space: nowrap;
            border: 0;
        }

        #portal-header.header-scrolled {
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
        }

        #portal-header.header-compact #portal-header-main .portal-header-inner {
            padding: 0.5rem 0;
            transition: padding 0.25s ease;
        }

        #portal-header #portal-header-main .portal-header-inner {
            transition: padding 0.25s ease;
        }

        #portal-header.header-compact .portal-logo--hero {
            height: 3.75rem;
            max-height: 3.75rem;
            transition: height 0.25s ease, max-height 0.25s ease;
        }

        #portal-header.header-compact .portal-wordmark__brand { font-size: 1.125rem; }
        #portal-header.header-compact .portal-wordmark__da { font-size: 0.875rem; }
        #portal-header.header-compact .portal-wordmark__suffix { font-size: 1rem; }
        #portal-header.header-compact .portal-header-subtitle { display: none !important; }
        #portal-header.header-compact .portal-header-search__label { display: none; }

        @media (min-width: 768px) {
            #portal-header.header-compact .portal-logo--hero {
                height: 4.5rem;
                max-height: 4.5rem;
            }
            #portal-header.header-compact .portal-wordmark__brand { font-size: 1.375rem; }
            #portal-header.header-compact .portal-wordmark__da { font-size: 1rem; }
            #portal-header.header-compact .portal-wordmark__suffix { font-size: 1.25rem; }
        }

        .portal-logo--hero {
            transition: height 0.25s ease, max-height 0.25s ease;
        }

        .portal-wordmark__brand,
        .portal-wordmark__da,
        .portal-wordmark__suffix {
            transition: font-size 0.25s ease;
        }

        /* Barra superior escura */
        .portal-header-top {
            background: var(--portal-green-dark);
            color: #fff;
            font-size: 0.75rem;
            padding: 0.45rem 0;
        }

        .portal-header-top a {
            color: #fff;
            text-decoration: none;
            transition: color 0.2s;
        }

        .portal-header-top a:hover,
        .portal-header-top a:focus-visible {
            color: var(--portal-lime);
        }

        .portal-header-top__badge {
            background: rgba(255, 255, 255, 0.18);
            padding: 0 0.35rem;
            margin-left: 0.25rem;
        }

        .portal-header-top__btn {
            display: flex;
            align-items: center;
            background: transparent;
            border: none;
            color: #fff;
            font-weight: 700;
            cursor: pointer;
            padding: 0.25rem;
            transition: color 0.2s;
        }

        .portal-header-top__btn:hover {
            color: var(--portal-lime);
        }

        .portal-header-top__font-btn {
            width: 1.75rem;
            height: 1.75rem;
            display: flex;
            align-items: center;
            justify-content: center;
            background: rgba(255, 255, 255, 0.1);
            border: none;
            color: #fff;
            font-weight: 700;
            font-size: 0.8rem;
            cursor: pointer;
            transition: background 0.2s;
        }

        .portal-header-top__font-btn:hover {
            background: rgba(255, 255, 255, 0.2);
        }

        /* Faixa principal — tom mais profundo da paleta para a logo respirar */
        #portal-header-main {
            position: relative;
            z-index: 10;
            background: #1f453c;
            overflow: visible;
        }

        #portal-header {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            z-index: 40;
            width: 100%;
            overflow: visible;
        }

        body {
            padding-top: var(--portal-header-height, 8.5rem);
        }

        #main-content,
        .portal-main {
            width: min(90%, 100%);
            max-width: 100%;
        }

        #main-content {
            scroll-margin-top: var(--portal-header-height, 8.5rem);
        }

        @media (max-width: 767px) {
            body {
                padding-top: var(--portal-header-height, 6.5rem);
            }
        }

        .portal-sticky-sidebar {
            position: static;
        }

        @media (min-width: 1024px) {
            .portal-sticky-sidebar {
                position: sticky;
                top: var(--portal-header-height, 8.5rem);
                z-index: 10;
            }
        }

        #portal-header-main::before {
            content: '';
            position: absolute;
            inset: 0;
            background: var(--portal-header-gradient);
            opacity: 0.72;
            z-index: 0;
        }

        #portal-header-main::after {
            content: '';
            position: absolute;
            inset: 0;
            background:
                radial-gradient(ellipse 50% 130% at 10% 50%, rgba(77, 184, 193, 0.14), transparent 62%),
                linear-gradient(
                    180deg,
                    rgba(255, 255, 255, 0.06) 0%,
                    transparent 45%,
                    rgba(0, 0, 0, 0.08) 100%
                );
            z-index: 0;
            pointer-events: none;
        }

        #portal-header-main .portal-header-inner {
            position: relative;
            z-index: 1;
            padding: 1.35rem 0;
        }

        @media (min-width: 768px) {
            #portal-header-main .portal-header-inner {
                padding: 1.65rem 0;
            }
        }

        .portal-header-hero {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 0.85rem 1.75rem;
        }

        .portal-header-brand {
            display: flex;
            align-items: center;
            gap: 0.85rem 1.1rem;
            min-width: 0;
            flex: 1 1 auto;
        }

        .portal-header-brand .portal-header-logo-link {
            margin-right: 0;
        }

        .portal-header-brand .portal-header-identity {
            flex: 1 1 auto;
        }

        @media (max-width: 767px) {
            html {
                font-size: 16px !important;
            }

            #portal-header-main {
                overflow: hidden;
            }

            #portal-header-main::before {
                background: var(--portal-header-gradient-mobile);
                opacity: 0.58;
            }

            #portal-header-main::after {
                background:
                    radial-gradient(ellipse 60% 110% at 16% 42%, rgba(77, 184, 193, 0.12), transparent 62%),
                    linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0%, transparent 50%, rgba(0, 0, 0, 0.08) 100%);
            }

            #portal-header-main .portal-header-inner {
                padding: 0.9rem 0 1.05rem;
                width: min(94%, 100%);
            }

            .portal-header-hero {
                display: grid;
                grid-template-columns: auto 1fr;
                grid-template-rows: auto;
                align-items: center;
                gap: 0.65rem 0.75rem;
            }

            .portal-header-hero .portal-menu-btn {
                grid-column: 1;
                grid-row: 1;
                align-self: center;
                width: 2.55rem;
                height: 2.55rem;
                background: rgba(255, 255, 255, 0.12);
                border: 1px solid rgba(255, 255, 255, 0.2);
                color: #fff;
                backdrop-filter: blur(6px);
            }

            .portal-header-hero .portal-header-brand {
                grid-column: 2;
                grid-row: 1;
                display: flex;
                align-items: center;
                gap: 0.65rem;
                min-width: 0;
            }

            .portal-header-hero .portal-header-logo-link {
                display: flex;
                flex-shrink: 0;
                margin-right: 0;
                padding: 0;
                background: transparent;
                border: none;
                box-shadow: none;
            }

            .portal-header-hero .portal-logo--hero {
                height: 4.5rem;
                max-height: 4.5rem;
                width: auto;
                mix-blend-mode: normal;
                filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.28));
            }

            .portal-header-hero .portal-logo--com-sombra {
                filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.32));
            }

            .portal-header-hero .portal-header-identity {
                flex: 1;
                min-width: 0;
                margin-left: 0;
                padding-left: 0;
                border-left: none;
                align-self: center;
            }

            .portal-header-hero .portal-header-search {
                display: none !important;
            }

            .portal-wordmark:not(.portal-wordmark--stacked) {
                flex-direction: column;
                align-items: flex-start;
                gap: 0.05rem;
            }

            .portal-wordmark:not(.portal-wordmark--stacked) .portal-wordmark__da {
                display: none;
            }

            .portal-wordmark__brand {
                font-size: 0.92rem;
                line-height: 1.15;
                letter-spacing: 0.01em;
                text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
            }

            .portal-wordmark__suffix {
                font-size: 0.78rem;
                line-height: 1.2;
                opacity: 0.95;
                text-shadow: 0 1px 2px rgba(0, 0, 0, 0.18);
            }

            .portal-wordmark--stacked .portal-wordmark__brand {
                font-size: 0.92rem;
            }

            .portal-wordmark--stacked .portal-wordmark__suffix {
                font-size: 0.78rem;
            }

            .portal-header-subtitle {
                font-size: 0.62rem;
                margin-top: 0.15rem;
                line-height: 1.25;
                opacity: 0.9;
                display: -webkit-box;
                -webkit-line-clamp: 2;
                -webkit-box-orient: vertical;
                overflow: hidden;
            }

            #portal-header.header-compact #portal-header-main .portal-header-inner {
                padding: 0.45rem 0;
            }

            #portal-header.header-compact .portal-logo--hero {
                height: 3.5rem;
                max-height: 3.5rem;
            }

            #portal-header.header-compact .portal-header-hero .portal-header-logo-link {
                padding: 0;
            }

            #portal-header.header-compact .portal-wordmark__brand { font-size: 0.82rem; }
            #portal-header.header-compact .portal-wordmark__suffix { font-size: 0.72rem; }
            #portal-header.header-compact .portal-header-subtitle { display: none !important; }
        }

        .portal-header-logo-link {
            position: relative;
            display: flex;
            align-items: center;
            flex-shrink: 0;
            text-decoration: none;
            margin-right: 0.35rem;
            padding: 0;
            background: transparent;
            border: none;
            box-shadow: none;
        }

        .portal-header-logo-link:focus-visible {
            outline: 2px solid #fff;
            outline-offset: 3px;
        }

        .portal-header-identity {
            flex: 1;
            min-width: 0;
            margin-left: 0.5rem;
            padding-left: 1.15rem;
            border-left: 1px solid rgba(255, 255, 255, 0.22);
        }

        .portal-logo--hero {
            height: 5.75rem;
            max-height: 5.75rem;
            width: auto;
            display: block;
            object-fit: contain;
            mix-blend-mode: normal;
            filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.28));
        }

        .portal-logo--com-sombra {
            filter: drop-shadow(0 3px 10px rgba(0, 0, 0, 0.35));
        }

        .portal-logo-footer {
            height: auto;
            max-height: 3.5rem;
            width: auto;
            max-width: 220px;
            display: block;
            object-fit: contain;
            opacity: 0.95;
        }

        @media (min-width: 640px) {
            .portal-logo-footer {
                max-height: 4rem;
            }
        }

        @media (min-width: 768px) {
            .portal-logo-footer {
                max-height: 5rem;
            }
        }

        @media (min-width: 640px) {
            .portal-logo--hero {
                height: 7rem;
                max-height: 7rem;
            }
        }

        @media (min-width: 1024px) {
            .portal-header-hero {
                flex-wrap: nowrap;
                gap: 1.25rem 2rem;
            }

            .portal-logo--hero {
                height: 8rem;
                max-height: 8rem;
            }
        }

        .portal-wordmark__da--empty,
        .portal-wordmark__suffix--empty {
            display: none;
        }

        .portal-wordmark {
            margin: 0;
            line-height: 1.05;
            display: flex;
            flex-wrap: wrap;
            align-items: baseline;
            gap: 0.25rem 0.65rem;
        }

        .portal-wordmark--stacked {
            flex-direction: column;
            flex-wrap: nowrap;
            align-items: flex-start;
            gap: 0.15rem;
        }

        .portal-wordmark--stacked .portal-wordmark__da {
            display: none !important;
        }

        .portal-wordmark--stacked .portal-wordmark__brand,
        .portal-wordmark--stacked .portal-wordmark__suffix {
            display: block;
        }

        .portal-wordmark__brand {
            font-size: 1.625rem;
            font-weight: 900;
            color: var(--portal-titulo-marca, #fff);
            letter-spacing: 0.01em;
            text-transform: uppercase;
            text-shadow: 0 1px 2px rgba(0, 0, 0, 0.18);
        }

        .portal-wordmark__da {
            font-size: 1.125rem;
            font-weight: 600;
            color: var(--portal-titulo-conector, #b8f0f8);
            text-transform: lowercase;
            text-shadow: none;
        }

        .portal-wordmark__suffix {
            font-size: 1.375rem;
            font-weight: 700;
            color: var(--portal-titulo-sufixo, #fff);
            letter-spacing: 0.01em;
            text-shadow: 0 1px 2px rgba(0, 0, 0, 0.18);
        }

        @media (min-width: 640px) {
            .portal-wordmark__brand { font-size: 2rem; }
            .portal-wordmark__da { font-size: 1.375rem; }
            .portal-wordmark__suffix { font-size: 1.625rem; }
        }

        @media (min-width: 1024px) {
            .portal-wordmark__brand { font-size: 2.5rem; }
            .portal-wordmark__da { font-size: 1.625rem; }
            .portal-wordmark__suffix { font-size: 2rem; }
        }

        .portal-header-subtitle {
            font-size: 0.7rem;
            color: rgba(255, 255, 255, 0.85);
            font-weight: 500;
            line-height: 1.35;
            margin-top: 0.35rem;
        }

        @media (min-width: 640px) {
            .portal-header-subtitle { font-size: 0.8125rem; }
        }

        @media (min-width: 768px) {
            .portal-header-subtitle { font-size: 0.875rem; }
        }

        /* Busca no header (desktop/tablet) */
        .portal-header-search {
            width: 100%;
            position: relative;
            z-index: 30;
        }

        @media (min-width: 768px) {
            .portal-header-search {
                display: block;
                min-width: min(100%, 360px);
                flex: 1 1 360px;
            }
        }

        @media (min-width: 1024px) {
            .portal-header-search {
                width: auto;
                min-width: 440px;
                max-width: 560px;
                flex: 1 1 440px;
            }
        }

        .portal-header-search__label {
            display: block;
            color: rgba(255, 255, 255, 0.95);
            font-size: 0.92rem;
            font-weight: 700;
            letter-spacing: -0.01em;
            margin-bottom: 0.55rem;
            text-shadow: 0 1px 2px rgba(0, 0, 0, 0.18);
        }

        .portal-header-search__field {
            position: relative;
            z-index: 2;
        }

        .portal-header-search__box {
            display: flex;
            align-items: stretch;
            position: relative;
            background: rgba(255, 255, 255, 0.98);
            border: 1px solid rgba(255, 255, 255, 0.35);
            border-radius: 16px;
            overflow: hidden;
            box-shadow:
                0 14px 32px -18px rgba(0, 0, 0, 0.45),
                inset 0 1px 0 rgba(255, 255, 255, 0.9);
            transition: box-shadow 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
        }

        .portal-header-search__box:focus-within {
            border-color: rgba(153, 204, 76, 0.75);
            box-shadow:
                0 16px 36px -16px rgba(0, 0, 0, 0.5),
                0 0 0 3px rgba(153, 204, 76, 0.22);
        }

        .portal-header-search__input {
            flex: 1;
            min-width: 0;
            height: 3.35rem;
            padding: 0 1.1rem;
            border: none;
            outline: none;
            font-size: 1rem;
            color: #0f172a;
            background: transparent;
            border-radius: 0;
        }

        .portal-header-search__input::placeholder {
            color: #94a3b8;
        }

        .portal-header-search__btn {
            width: 3.35rem;
            height: 3.35rem;
            flex-shrink: 0;
            display: flex;
            align-items: center;
            justify-content: center;
            background: linear-gradient(160deg, #a8d85a 0%, var(--portal-lime) 55%, #86b83a 100%);
            border: none;
            border-radius: 0;
            color: var(--portal-green-dark);
            cursor: pointer;
            transition: background 0.2s ease, color 0.2s ease, filter 0.2s ease;
        }

        .portal-header-search__btn:hover {
            background: linear-gradient(160deg, #b5e266 0%, #a8d85a 50%, var(--portal-lime) 100%);
            filter: brightness(1.04);
        }

        .portal-header-search__btn:active {
            filter: brightness(0.96);
        }

        .portal-search-hint {
            flex: 0 0 auto;
            padding: 0.7rem 1rem 0.55rem;
            font-size: 0.68rem;
            font-weight: 800;
            text-transform: uppercase;
            letter-spacing: 0.06em;
            color: #1f7a9a;
            background: linear-gradient(180deg, #f4f9fc 0%, #eef6fa 100%);
            border-bottom: 1px solid rgba(31, 122, 154, 0.12);
            border-radius: 12px 12px 0 0;
        }

        .portal-search-results {
            position: absolute;
            top: calc(100% + 8px);
            left: 0;
            right: 0;
            display: flex;
            flex-direction: column;
            align-items: stretch;
            gap: 0.2rem;
            background:
                linear-gradient(165deg, rgba(255, 255, 255, 0.99) 0%, rgba(244, 249, 252, 0.98) 100%);
            border: 1px solid rgba(31, 122, 154, 0.16);
            border-radius: 16px;
            box-shadow:
                0 22px 48px -20px rgba(15, 23, 42, 0.45),
                inset 0 1px 0 rgba(255, 255, 255, 0.95);
            overflow-x: hidden;
            overflow-y: auto;
            max-height: min(26rem, 62vh);
            z-index: 250;
            padding: 0.4rem;
        }

        .portal-header-search .portal-search-results {
            top: calc(100% + 8px);
        }

        .portal-search-results.hidden {
            display: none !important;
        }

        .portal-search-results__empty {
            padding: 1.35rem 1rem;
            text-align: center;
            color: #64748b;
            font-size: 0.86rem;
            font-weight: 600;
            line-height: 1.45;
        }

        .portal-search-results__empty b {
            color: #0f172a;
            font-weight: 800;
        }

        .portal-search-result {
            position: relative;
            isolation: isolate;
            box-sizing: border-box;
            display: grid !important;
            grid-template-columns: 2.55rem minmax(0, 1fr) 1rem;
            align-items: start;
            column-gap: 0.85rem;
            width: 100%;
            min-height: 3.75rem;
            height: auto !important;
            margin: 0;
            padding: 0.75rem 0.8rem;
            border: 0;
            border-radius: 12px;
            background: transparent;
            text-align: left;
            cursor: pointer;
            font: inherit;
            line-height: 1.35 !important;
            color: inherit;
            overflow: visible;
            flex: 0 0 auto;
            appearance: none;
            -webkit-appearance: none;
            transition: background 0.2s ease;
        }

        .portal-search-result::after {
            content: "";
            position: absolute;
            inset: 0;
            z-index: 0;
            pointer-events: none;
            border-radius: inherit;
            background:
                radial-gradient(120% 90% at 50% 100%, rgba(31, 122, 154, 0.2) 0%, rgba(31, 122, 154, 0.07) 42%, rgba(31, 122, 154, 0) 74%),
                linear-gradient(0deg, rgba(31, 122, 154, 0.1) 0%, rgba(31, 122, 154, 0.03) 45%, rgba(255, 255, 255, 0) 100%);
            opacity: 0;
            transition: opacity 0.28s ease;
        }

        .portal-search-result:hover,
        .portal-search-result:focus-visible {
            outline: none;
            background: rgba(31, 122, 154, 0.04);
        }

        .portal-search-result:hover::after,
        .portal-search-result:focus-visible::after {
            opacity: 1;
        }

        .portal-search-result__icon,
        .portal-search-result__body,
        .portal-search-result__chevron {
            position: relative;
            z-index: 1;
        }

        .portal-search-result__icon {
            width: 2.55rem;
            height: 2.55rem;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 12px;
            background: rgba(31, 122, 154, 0.1);
            color: #1f7a9a;
            border: 1px solid rgba(31, 122, 154, 0.14);
            transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
        }

        .portal-search-result:hover .portal-search-result__icon,
        .portal-search-result:focus-visible .portal-search-result__icon {
            background: #1f7a9a;
            color: #fff;
            border-color: transparent;
        }

        .portal-search-result__icon i,
        .portal-search-result__icon svg {
            width: 1.15rem;
            height: 1.15rem;
            display: block;
        }

        .portal-search-result__body {
            min-width: 0;
            display: block !important;
            position: static !important;
            padding-top: 0.1rem;
        }

        .portal-search-result__title,
        .portal-search-result__desc {
            position: static !important;
            display: block !important;
            float: none !important;
            width: auto !important;
            max-width: 100%;
            height: auto !important;
            max-height: none !important;
            margin: 0;
            padding: 0;
            transform: none !important;
            white-space: normal;
            overflow-wrap: anywhere;
        }

        .portal-search-result__title {
            font-size: 0.9rem;
            font-weight: 800;
            color: #0f172a;
            line-height: 1.35 !important;
            letter-spacing: -0.01em;
            margin-bottom: 0.2rem;
        }

        .portal-search-result__desc {
            font-size: 0.76rem;
            font-weight: 500;
            color: #64748b;
            line-height: 1.4 !important;
        }

        .portal-search-result__chevron {
            width: 1rem;
            height: 1rem;
            margin-top: 0.35rem;
            color: #94a3b8;
            opacity: 0;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            transition: opacity 0.2s ease, color 0.2s ease;
        }

        .portal-search-result__chevron svg {
            width: 1rem;
            height: 1rem;
            display: block;
        }

        .portal-search-result:hover .portal-search-result__chevron,
        .portal-search-result:focus-visible .portal-search-result__chevron {
            opacity: 1;
            color: #1f7a9a;
        }

        .portal-search--sidebar {
            position: relative;
            overflow: visible;
        }

        .portal-search__input {
            width: 100%;
            height: 2.65rem;
            padding: 0 0.85rem 0 2.45rem;
            border: 1px solid rgba(31, 122, 154, 0.18);
            border-radius: 12px;
            outline: none;
            font-size: 0.875rem;
            color: #0f172a;
            background: #fff;
            box-shadow: 0 8px 18px -14px rgba(15, 23, 42, 0.3);
            transition: border-color 0.2s ease, box-shadow 0.2s ease;
        }

        .portal-search__input:focus {
            border-color: rgba(31, 122, 154, 0.45);
            box-shadow: 0 0 0 3px rgba(31, 122, 154, 0.14);
        }

        .portal-search__icon {
            position: absolute;
            left: 0.8rem;
            top: 50%;
            transform: translateY(-50%);
            color: #1f7a9a;
            pointer-events: none;
            opacity: 0.75;
        }

        .portal-search--sidebar .portal-search-results {
            top: calc(100% + 8px);
        }

        /* Navegação horizontal */
        .portal-header-nav {
            position: relative;
            z-index: 5;
            background: #fff;
            border-bottom: 3px solid var(--portal-lime);
            overflow: hidden;
        }

        .portal-header-nav__inner {
            display: flex;
            flex-wrap: wrap;
            gap: 0;
            width: 100%;
            min-width: 0;
        }

        .header-nav-btn {
            flex: 1 1 auto;
            min-width: 0;
            padding: 0.875rem 0.85rem;
            border: none;
            background: transparent;
            color: #475569;
            font-size: 0.8125rem;
            font-weight: 700;
            cursor: pointer;
            white-space: nowrap;
            text-align: center;
            border-bottom: 3px solid transparent;
            margin-bottom: -3px;
            transition: color 0.2s, border-color 0.2s, background 0.2s;
        }

        @media (min-width: 1100px) {
            .header-nav-btn {
                padding: 0.875rem 1.125rem;
            }
        }

        .header-nav-btn:hover {
            color: var(--portal-green);
            background: #f0fdf4;
        }

        .header-nav-btn.active {
            color: var(--portal-green-dark);
            border-bottom-color: var(--portal-green);
            background: #f0fdf4;
        }

        .header-nav-btn--accent {
            color: var(--portal-green);
        }

        .header-nav-btn--accent.active {
            color: var(--portal-green-dark);
        }

        @media (max-width: 767px) {
            .portal-header-nav {
                display: none;
            }
        }

        .portal-menu-btn--hero {
            border-color: rgba(255, 255, 255, 0.35) !important;
            background: rgba(255, 255, 255, 0.12) !important;
            color: #fff !important;
        }

        .portal-menu-btn--hero:hover {
            background: rgba(255, 255, 255, 0.22) !important;
            border-color: rgba(255, 255, 255, 0.5) !important;
            color: #fff !important;
        }

        .portal-logo {
            max-height: 9rem;
        }

        .portal-logo-footer {
            max-height: 5rem;
        }

        /* Botão hambúrguer (estilo gov.br) */
        .portal-menu-btn {
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 0;
            border: none;
            background: transparent;
            color: #4A90E2;
            cursor: pointer;
            transition: background 0.2s, color 0.2s, border-color 0.2s;
        }

        /* Botão menu — ao lado da logo (todos os tamanhos de tela) */
        .portal-menu-btn--header {
            width: 2.25rem;
            height: 2.25rem;
            flex-shrink: 0;
            border: 1px solid #e2e8f0;
            background: #f8fafc;
            color: #64748b;
            display: flex;
        }

        .portal-menu-btn--header:hover {
            background: #eff6ff;
            color: #4A90E2;
            border-color: #93c5fd;
        }

        .portal-menu-btn--header:focus-visible {
            outline: 2px solid #4A90E2;
            outline-offset: 2px;
        }

        /* Título do header */
        .portal-header-title {
            font-family: 'Source Serif 4', Georgia, 'Times New Roman', serif;
            font-size: 1.125rem;
            font-weight: 600;
            color: #0f172a;
            line-height: 1.25;
            letter-spacing: -0.015em;
        }

        @media (min-width: 480px) {
            .portal-header-title { font-size: 1.25rem; }
        }

        @media (min-width: 640px) {
            .portal-header-title { font-size: 1.5rem; }
        }

        @media (min-width: 768px) {
            .portal-header-title { font-size: 1.875rem; }
        }

        @media (min-width: 1024px) {
            .portal-header-title { font-size: 2.125rem; }
        }

        .portal-header-subtitle {
            font-size: 0.7rem;
            color: #64748b;
            font-weight: 500;
            line-height: 1.35;
            margin-top: 0.2rem;
        }

        @media (min-width: 640px) {
            .portal-header-subtitle { font-size: 0.8125rem; }
        }

        @media (min-width: 768px) {
            .portal-header-subtitle { font-size: 0.9375rem; }
        }

        .portal-header-content--no-subtitle .portal-header-title {
            margin: 0;
        }

        .portal-header-content--no-subtitle > div {
            align-items: center;
        }

        /* Header — mobile: menu + logo + título na mesma linha */
        .portal-header-grid {
            display: grid;
            grid-template-columns: auto auto 1fr;
            align-items: center;
            gap: 0.5rem;
        }

        .portal-header-brand {
            display: contents;
        }

        .portal-header-brand .portal-menu-btn--header {
            grid-column: 1;
        }

        .portal-header-brand > a {
            grid-column: 2;
            min-width: 0;
        }

        .portal-header-content {
            grid-column: 3;
            min-width: 0;
        }

        .portal-header-brand .portal-logo {
            height: 2.5rem;
            max-height: 2.5rem;
        }

        @media (min-width: 480px) {
            .portal-header-grid { gap: 0.75rem; }

            .portal-header-brand .portal-logo {
                height: 3rem;
                max-height: 3rem;
            }
        }

        /* Header — desktop: duas colunas */
        @media (min-width: 768px) {
            .portal-header-grid {
                grid-template-columns: minmax(160px, 20%) 1fr;
                gap: 2rem;
            }

            .portal-header-brand {
                display: flex;
                grid-column: auto;
            }

            .portal-header-brand .portal-menu-btn--header,
            .portal-header-brand > a {
                grid-column: auto;
            }

            .portal-header-content {
                grid-column: auto;
            }

            .portal-header-brand .portal-logo {
                height: auto;
                max-height: 4.5rem;
            }
        }

        @media (min-width: 1024px) {
            .portal-header-grid { gap: 2.5rem; }
        }

        /* Busca no sidebar — somente modo responsivo */
        .portal-sidebar-search--mobile {
            display: none;
        }

        @media (max-width: 767px) {
            .portal-sidebar-search--mobile { display: block; }
        }

        .portal-sidebar-search {
            padding: 0.95rem 1.15rem;
            border-bottom: 1px solid rgba(31, 122, 154, 0.12);
            flex-shrink: 0;
            background: linear-gradient(180deg, #f8fafc 0%, #f1f7fa 100%);
            overflow: visible;
            position: relative;
            z-index: 5;
        }

        .portal-sidebar-search__label {
            display: block;
            font-size: 0.72rem;
            font-weight: 800;
            letter-spacing: 0.02em;
            text-transform: none;
            color: #0f172a;
            margin-bottom: 0.5rem;
        }

        .portal-sidebar .portal-sidebar-nav {
            flex: 1;
            overflow-y: auto;
        }

        /* Menu drawer (abre pelo hambúrguer) */
        .portal-sidebar {
            position: fixed;
            left: 0;
            top: 0;
            height: 100vh;
            width: 280px;
            max-width: 85vw;
            background: #fff;
            border-right: 1px solid #d1d5db;
            z-index: 50;
            transform: translateX(-100%);
            transition: transform 0.3s ease;
            display: flex;
            flex-direction: column;
            box-shadow: none;
        }

        .portal-sidebar.open {
            transform: translateX(0);
            box-shadow: 4px 0 24px rgba(0, 0, 0, 0.15);
        }

        .portal-sidebar-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 1rem 1.25rem;
            background: var(--portal-green);
            color: #fff;
            border-bottom: 1px solid var(--portal-green-dark);
        }

        .portal-sidebar-title {
            font-size: 0.9375rem;
            font-weight: 700;
        }

        .portal-sidebar-close {
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 0.25rem;
            border: none;
            background: transparent;
            color: #fff;
            cursor: pointer;
            opacity: 0.9;
        }
        .portal-sidebar-close:hover { opacity: 1; }

        .portal-sidebar-nav {
            display: flex;
            flex-direction: column;
            flex: 1;
            overflow-y: auto;
            padding: 0.5rem 0;
        }

        .portal-sidebar-a11y {
            padding: 0.875rem 1.25rem 1rem;
            border-top: 1px solid #e2e8f0;
            background: #f8fafc;
        }
        .portal-sidebar-a11y__label {
            display: block;
            font-size: 0.625rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            color: #94a3b8;
            margin-bottom: 0.5rem;
        }
        .portal-sidebar-a11y__actions {
            display: flex;
            gap: 0.5rem;
            align-items: center;
        }
        .portal-sidebar-a11y__btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-width: 2.25rem;
            height: 2.25rem;
            padding: 0 0.5rem;
            font-size: 0.75rem;
            font-weight: 700;
            color: #475569;
            background: #fff;
            border: 1px solid #e2e8f0;
            cursor: pointer;
        }
        .portal-sidebar-a11y__btn:hover {
            background: #f1f5f9;
            color: #1e293b;
        }

        .sidebar-nav-btn {
            display: flex;
            align-items: center;
            width: 100%;
            padding: 0.875rem 1.25rem;
            color: #374151;
            font-size: 0.875rem;
            font-weight: 600;
            text-align: left;
            border: none;
            border-left: 4px solid transparent;
            background: transparent;
            cursor: pointer;
            transition: background 0.15s, color 0.15s, border-color 0.15s;
        }

        .sidebar-nav-btn:hover {
            background: #f0fdf4;
            color: var(--portal-green);
        }

        .sidebar-nav-btn.active {
            background: #f0fdf4;
            color: var(--portal-green-dark);
            border-left-color: var(--portal-green);
            font-weight: 700;
        }

        .sidebar-icon {
            width: 1.25rem;
            height: 1.25rem;
            flex-shrink: 0;
        }

        .sidebar-label {
            margin-left: 0.75rem;
        }

        .sidebar-overlay {
            display: none;
            position: fixed;
            inset: 0;
            background: rgba(15, 23, 42, 0.45);
            z-index: 49;
        }

        .sidebar-overlay.open { display: block; }

        body.sidebar-open { overflow: hidden; }

        /* Toolbar busca + social */
        .portal-search input:focus { outline: 2px solid #4A90E2; outline-offset: -2px; }

        /* Ícones de redes sociais — bordas arredondadas (exceção às bordas quadradas) */
        body a.portal-social-btn,
        body a.footer-social-link {
            border-radius: 9999px !important;
            flex-shrink: 0;
        }

        /* Banner da página inicial */
        .portal-home-hero {
            position: relative;
            overflow: hidden;
            border: 1px solid #dbe7f3;
            background:
                linear-gradient(135deg, rgba(74, 144, 226, 0.09) 0%, rgba(38, 198, 218, 0.08) 48%, rgba(139, 195, 74, 0.06) 100%),
                #f4f9fc;
            padding: 1.75rem 1.25rem;
        }

        @media (min-width: 768px) {
            .portal-home-hero { padding: 2.25rem 2rem; }
        }

        .portal-home-hero__glow {
            position: absolute;
            width: 22rem;
            height: 22rem;
            right: -6rem;
            top: -8rem;
            border-radius: 50%;
            background: radial-gradient(circle, rgba(74, 144, 226, 0.22) 0%, rgba(74, 144, 226, 0) 70%);
            pointer-events: none;
        }

        .portal-home-hero__inner {
            position: relative;
            z-index: 1;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 1.75rem;
        }

        @media (min-width: 1024px) {
            .portal-home-hero__inner {
                flex-direction: row;
                align-items: center;
                gap: 2.5rem;
            }
        }

        .portal-home-hero__copy {
            flex: 1;
            min-width: 0;
            text-align: center;
        }

        @media (min-width: 768px) {
            .portal-home-hero__copy { text-align: left; }
        }

        .portal-home-hero__badge {
            display: inline-flex;
            align-items: center;
            margin-bottom: 1rem;
            padding: 0.4rem 0.85rem;
            font-size: 0.7rem;
            font-weight: 800;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            color: #1d6bb8;
            background: rgba(255, 255, 255, 0.85);
            border: 1px solid rgba(74, 144, 226, 0.28);
        }

        .portal-home-hero__title {
            margin: 0 0 1rem;
            font-size: clamp(1.65rem, 3.2vw, 2.35rem);
            font-weight: 800;
            line-height: 1.15;
            letter-spacing: -0.02em;
            color: #1e293b;
        }

        .portal-home-hero__text {
            margin: 0 0 1.5rem;
            max-width: 42rem;
            font-size: 1rem;
            line-height: 1.65;
            color: #475569;
        }

        @media (min-width: 768px) {
            .portal-home-hero__text { font-size: 1.0625rem; }
        }

        .portal-home-hero__actions {
            display: flex;
            flex-direction: column;
            gap: 0.75rem;
            justify-content: center;
        }

        @media (min-width: 640px) {
            .portal-home-hero__actions {
                flex-direction: row;
                flex-wrap: wrap;
                justify-content: flex-start;
            }
        }

        .portal-home-hero__btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.55rem;
            min-height: 3.15rem;
            padding: 0.85rem 1.35rem;
            font-size: 0.9rem;
            font-weight: 700;
            border: 1px solid transparent;
            cursor: pointer;
            transition: transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
        }

        .portal-home-hero__btn--primary {
            color: #fff;
            background: linear-gradient(135deg, #4A90E2 0%, #2f7fd6 100%);
            box-shadow: 0 10px 22px rgba(74, 144, 226, 0.28);
        }

        .portal-home-hero__btn--primary:hover {
            transform: translateY(-2px);
            box-shadow: 0 14px 26px rgba(74, 144, 226, 0.34);
        }

        .portal-home-hero__btn--ghost {
            color: #334155;
            background: rgba(255, 255, 255, 0.92);
            border-color: #d5dee8;
        }

        .portal-home-hero__btn--ghost:hover {
            color: #1d6bb8;
            border-color: #4A90E2;
            transform: translateY(-2px);
        }

        .portal-home-hero__visual {
            display: none;
            flex-shrink: 0;
            width: min(100%, 16rem);
            justify-content: center;
        }

        @media (min-width: 1024px) {
            .portal-home-hero__visual { display: flex; }
        }

        .portal-home-hero__panel {
            position: relative;
            width: 11.5rem;
            height: 11.5rem;
            display: flex;
            align-items: center;
            justify-content: center;
            background: rgba(255, 255, 255, 0.78);
            border: 1px solid rgba(74, 144, 226, 0.18);
            box-shadow: 0 18px 40px rgba(30, 64, 105, 0.12);
        }

        .portal-home-hero__ring {
            position: absolute;
            inset: 0.85rem;
            border: 1px dashed rgba(74, 144, 226, 0.35);
            animation: portalHomeRing 8s linear infinite;
        }

        .portal-home-hero__icon {
            width: 4.5rem;
            height: 4.5rem;
            color: #4A90E2;
            position: relative;
            z-index: 1;
        }

        @keyframes portalHomeRing {
            from { transform: rotate(0deg); }
            to { transform: rotate(360deg); }
        }

        /* Consultas disponíveis */
        .portal-consultas {
            border: 1px solid #e2e8f0;
            background: #f1f5f9;
            padding: 1.25rem 1rem 1.5rem;
        }

        @media (min-width: 768px) {
            .portal-consultas { padding: 1.5rem 1.5rem 1.75rem; }
        }

        .portal-consultas__header {
            padding-bottom: 0.875rem;
            border-bottom: 3px solid #4A90E2;
        }

        .portal-consultas__header h2 {
            font-size: 1.125rem;
            font-weight: 700;
            color: #1e293b;
            letter-spacing: 0.01em;
        }

        @media (min-width: 768px) {
            .portal-consultas__header h2 { font-size: 1.375rem; }
        }

        .portal-consultas__grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 0.625rem;
            padding-top: 1.25rem;
        }

        @media (min-width: 640px) {
            .portal-consultas__grid {
                grid-template-columns: repeat(3, 1fr);
                gap: 0.75rem;
            }
        }

        @media (min-width: 1024px) {
            .portal-consultas__grid {
                grid-template-columns: repeat(5, 1fr);
                gap: 1rem;
            }
        }

        .portal-consulta-card {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            min-height: 132px;
            padding: 1.25rem 0.75rem;
            background: #fff;
            border: 1px solid #e2e8f0;
            cursor: pointer;
            text-align: center;
            position: relative;
            overflow: hidden;
            transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
        }

        .portal-consulta-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 3px;
            background: #4A90E2;
            transform: scaleX(0);
            transform-origin: left;
            transition: transform 0.25s ease;
        }

        .portal-consulta-card:hover {
            border-color: #4A90E2;
            box-shadow: 0 6px 16px rgba(74, 144, 226, 0.12);
            transform: translateY(-2px);
        }

        .portal-consulta-card:hover::before {
            transform: scaleX(1);
        }

        .portal-consulta-card__icon {
            width: 3.5rem;
            height: 3.5rem;
            background: #eff6ff;
            color: #4A90E2;
            margin-bottom: 0.75rem;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: background 0.25s ease, color 0.25s ease;
        }

        .portal-consulta-card:hover .portal-consulta-card__icon {
            background: #4A90E2;
            color: #fff;
        }

        .portal-consulta-card__label {
            font-size: 0.8125rem;
            font-weight: 700;
            color: #334155;
            text-transform: uppercase;
            letter-spacing: 0.03em;
            line-height: 1.4;
            max-width: 150px;
            transition: color 0.25s ease;
        }

        .portal-consulta-card:hover .portal-consulta-card__label {
            color: #4A90E2;
        }

        @media (min-width: 768px) {
            .portal-consulta-card {
                min-height: 152px;
                padding: 1.5rem 1rem;
            }

            .portal-consulta-card__icon {
                width: 3.75rem;
                height: 3.75rem;
            }

            .portal-consulta-card__label { font-size: 0.9375rem; max-width: 160px; }
        }

        /* Loader — suave e harmônico */
        @keyframes portal-spin {
            to { transform: rotate(360deg); }
        }

        @keyframes portal-loader-pulse {
            0%, 100% { transform: scale(1); opacity: 1; }
            50% { transform: scale(0.92); opacity: 0.75; }
        }

        .portal-loader {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 0.85rem;
        }

        .portal-loader__spinner {
            width: 2.35rem;
            height: 2.35rem;
            border: 2.5px solid rgba(74, 144, 226, 0.16);
            border-top-color: #4A90E2;
            border-right-color: rgba(38, 198, 218, 0.55);
            border-radius: 50%;
            animation: portal-spin 0.75s cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite;
            box-shadow: 0 0 0 6px rgba(74, 144, 226, 0.06);
        }

        .portal-loader__text {
            font-family: 'Inter', sans-serif;
            font-size: 0.8125rem;
            font-weight: 600;
            color: #64748b;
            letter-spacing: 0.02em;
            animation: portal-loader-pulse 1.6s ease-in-out infinite;
        }

        .portal-loader--page {
            position: fixed;
            inset: 0;
            z-index: 45;
            background: linear-gradient(160deg, rgba(248, 250, 252, 0.72) 0%, rgba(241, 245, 249, 0.88) 100%);
            backdrop-filter: blur(8px) saturate(1.05);
            -webkit-backdrop-filter: blur(8px) saturate(1.05);
            opacity: 1;
            visibility: visible;
            transition: opacity 0.28s ease, visibility 0.28s ease;
        }

        .portal-loader--page.portal-loader--hidden {
            opacity: 0;
            visibility: hidden;
            pointer-events: none;
        }

        .portal-loader--overlay {
            position: absolute;
            inset: 0;
            z-index: 20;
            background: rgba(255, 255, 255, 0.7);
            backdrop-filter: blur(2px);
            -webkit-backdrop-filter: blur(2px);
        }

        .portal-loader--overlay .portal-loader__text {
            position: absolute;
            width: 1px;
            height: 1px;
            padding: 0;
            margin: -1px;
            overflow: hidden;
            clip: rect(0, 0, 0, 0);
            white-space: nowrap;
            border: 0;
            animation: none;
        }

        .portal-loader--overlay .portal-loader__spinner {
            width: 1.625rem;
            height: 1.625rem;
            border-width: 2px;
            box-shadow: none;
        }

        .portal-loader--overlay.hidden,
        .portal-loader--page[style*="display: none"] {
            display: none !important;
        }

        .cookie-banner {
            left: 1rem;
            right: 1rem;
            bottom: 1.25rem;
            width: auto;
            max-width: 34rem;
            margin-inline: auto;
            transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s ease;
            pointer-events: none;
        }

        .cookie-banner.visible {
            transform: translateY(0);
            opacity: 1;
            pointer-events: auto;
        }

        .cookie-banner__card {
            background: #ffffff;
            color: #475569;
            border: 1px solid #e2e8f0;
            border-top: 3px solid #4A90E2;
            border-radius: 16px !important;
            box-shadow: 0 24px 50px rgba(15, 23, 42, 0.22);
            padding: 1.15rem 1.35rem 1.25rem;
        }

        .cookie-banner__top {
            display: flex;
            align-items: center;
            gap: 0.85rem;
            padding-bottom: 0.9rem;
            margin-bottom: 0.9rem;
            border-bottom: 1px solid #eef2f7;
        }

        .cookie-banner__logo {
            height: 2.5rem;
            width: auto;
            max-width: 7rem;
            object-fit: contain;
            flex-shrink: 0;
        }

        .cookie-banner__title {
            flex: 1;
            min-width: 0;
            text-align: center;
            font-size: 1rem;
            font-weight: 700;
            color: #1e293b;
            line-height: 1.3;
        }

        .cookie-banner__close {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 2rem;
            height: 2rem;
            flex-shrink: 0;
            color: #64748b;
            background: transparent;
            border: none;
            border-radius: 8px !important;
            cursor: pointer;
            transition: color 0.2s ease, background-color 0.2s ease;
        }

        .cookie-banner__close:hover {
            color: #1e293b;
            background: #f1f5f9;
        }

        .cookie-banner__body {
            font-size: 0.85rem;
            line-height: 1.6;
            color: #475569;
            margin-bottom: 1.1rem;
        }

        .cookie-banner__body strong {
            color: #1e293b;
            font-weight: 700;
        }

        .cookie-banner__inline-link {
            display: inline;
            padding: 0;
            font: inherit;
            font-weight: 700;
            color: #1e293b;
            background: none;
            border: none;
            cursor: pointer;
            text-underline-offset: 2px;
        }

        .cookie-banner__inline-link:hover {
            color: #4A90E2;
            text-decoration: underline;
        }

        .cookie-banner__actions {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 0.75rem;
        }

        .cookie-banner__btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            flex: 1 1 9rem;
            min-height: 2.9rem;
            padding: 0.7rem 1.25rem;
            border: 1px solid transparent;
            cursor: pointer;
            transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
            font-size: 0.9rem;
            font-weight: 700;
            line-height: 1;
            border-radius: 10px !important;
        }

        .cookie-banner__btn--primary {
            color: #ffffff;
            background: #4A90E2;
            border-color: #4A90E2;
        }

        .cookie-banner__btn--primary:hover {
            background: #3a78c4;
            border-color: #3a78c4;
        }

        .cookie-banner__btn--ghost {
            color: #334155;
            background: #f1f5f9;
            border-color: #e2e8f0;
        }

        .cookie-banner__btn--ghost:hover {
            background: #e2e8f0;
            border-color: #cbd5e1;
        }

        .cookie-banner__links {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            justify-content: center;
            gap: 0.5rem;
            margin-top: 1rem;
            font-size: 0.78rem;
            color: #94a3b8;
        }

        .cookie-banner__links button {
            padding: 0;
            font: inherit;
            font-weight: 600;
            color: #4A90E2;
            background: none;
            border: none;
            cursor: pointer;
            text-decoration: underline;
            text-underline-offset: 2px;
        }

        .cookie-banner__links button:hover {
            color: #004282;
        }

        @media (max-width: 480px) {
            .cookie-banner__title {
                font-size: 0.9rem;
            }

            .cookie-banner__btn {
                flex: 1 1 100%;
            }
        }

        .cookie-banner-tab--float {
            left: 1.25rem;
            right: auto;
            bottom: 1.25rem;
            width: auto;
            padding: 0.65rem 1rem;
            font-size: 0.72rem;
            font-weight: 700;
            letter-spacing: 0.02em;
            color: #c5d4e4;
            background: #152033;
            border: 1px solid rgba(74, 144, 226, 0.28);
            border-radius: 999px !important;
            box-shadow: 0 10px 28px rgba(15, 23, 42, 0.4);
            cursor: pointer;
            transition: color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
        }

        .cookie-banner-tab--float:hover {
            color: #f1f5f9;
            background: #1a2940;
            transform: translateY(-1px);
        }

        .cookie-banner-tab.visible {
            display: flex;
        }

        @media (max-width: 640px) {
            .cookie-banner-tab--float {
                left: 0.85rem;
                bottom: 0.85rem;
            }
        }

        /* ==========================================================
           PÁGINA DE PRIVACIDADE E COOKIES
           ========================================================== */

        .privacidade-hero {
            position: relative;
            overflow: hidden;
            padding: 2.5rem 2rem;
            margin-bottom: 1.75rem;
            color: #e2e8f0;
            background: linear-gradient(135deg, #1e293b 0%, #24344d 55%, #2f4a6d 100%);
            border-left: 4px solid #4A90E2;
        }

        .privacidade-hero::after {
            content: '';
            position: absolute;
            top: -40%;
            right: -6%;
            width: 20rem;
            height: 20rem;
            border-radius: 50%;
            background: radial-gradient(circle, rgba(74, 144, 226, 0.22) 0%, transparent 68%);
            pointer-events: none;
        }

        .privacidade-hero__badge {
            position: relative;
            z-index: 1;
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            padding: 0.4rem 0.85rem;
            margin-bottom: 1rem;
            font-size: 0.68rem;
            font-weight: 700;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            color: #b8f0f8;
            background: rgba(74, 144, 226, 0.16);
            border: 1px solid rgba(74, 144, 226, 0.35);
        }

        .privacidade-hero__title {
            position: relative;
            z-index: 1;
            font-size: clamp(1.6rem, 3.2vw, 2.25rem);
            font-weight: 900;
            line-height: 1.15;
            color: #ffffff;
        }

        .privacidade-hero__subtitle {
            position: relative;
            z-index: 1;
            max-width: 46rem;
            margin-top: 0.7rem;
            font-size: 0.95rem;
            line-height: 1.6;
            color: #b7c8dd;
        }

        .privacidade-hero__breadcrumb {
            position: relative;
            z-index: 1;
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 0.5rem;
            margin-top: 1.35rem;
            font-size: 0.78rem;
            color: #8ba4c0;
        }

        .privacidade-hero__breadcrumb button {
            padding: 0;
            font: inherit;
            color: #8ba4c0;
            background: none;
            border: none;
            cursor: pointer;
            transition: color 0.2s ease;
        }

        .privacidade-hero__breadcrumb button:hover {
            color: #ffffff;
            text-decoration: underline;
        }

        .privacidade-hero__breadcrumb strong {
            font-weight: 700;
            color: #e2e8f0;
        }

        .privacidade-switcher {
            display: flex;
            flex-wrap: wrap;
            gap: 0.5rem;
            margin-bottom: 1.75rem;
        }

        .privacidade-switcher__btn {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            padding: 0.75rem 1.25rem;
            font-size: 0.85rem;
            font-weight: 700;
            color: #475569;
            background: #ffffff;
            border: 2px solid #e2e8f0;
            cursor: pointer;
            transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
        }

        .privacidade-switcher__btn:hover {
            color: #1e293b;
            border-color: #cbd5e1;
        }

        .privacidade-switcher__btn.active {
            color: #ffffff;
            background: #4A90E2;
            border-color: #4A90E2;
        }

        .privacidade-pagina {
            display: none;
        }

        .privacidade-pagina.active {
            display: block;
        }

        .privacidade-sumario {
            display: flex;
            flex-direction: column;
            gap: 0.15rem;
            max-height: 26rem;
            overflow-y: auto;
        }

        .privacidade-sumario button {
            display: flex;
            align-items: flex-start;
            gap: 0.65rem;
            width: 100%;
            padding: 0.55rem 0.5rem;
            font-size: 0.82rem;
            font-weight: 600;
            line-height: 1.4;
            text-align: left;
            color: #475569;
            background: none;
            border: none;
            border-left: 2px solid transparent;
            cursor: pointer;
            transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
        }

        .privacidade-sumario button:hover {
            color: #1e293b;
            background: #f8fafc;
            border-left-color: #4A90E2;
        }

        .privacidade-sumario__num {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 1.35rem;
            height: 1.35rem;
            flex-shrink: 0;
            font-size: 0.68rem;
            font-weight: 800;
            color: #4A90E2;
            background: #eff6ff;
        }

        .privacidade-sumario__foot {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            margin-top: 1.25rem;
            padding-top: 1rem;
            font-size: 0.72rem;
            font-weight: 600;
            color: #94a3b8;
            border-top: 1px solid #e2e8f0;
        }

        .privacidade-secao {
            scroll-margin-top: 7rem;
            padding: 0.25rem;
            transition: background-color 0.5s ease;
        }

        .privacidade-secao.is-highlighted {
            background: #eff6ff;
        }

        .privacidade-secao__titulo {
            display: flex;
            align-items: center;
            gap: 0.7rem;
            margin-bottom: 0.9rem;
            font-size: 1.05rem;
            font-weight: 800;
            line-height: 1.35;
            color: #1e293b;
        }

        .privacidade-secao__icon {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 2rem;
            height: 2rem;
            flex-shrink: 0;
            color: #4A90E2;
            background: #eff6ff;
            border: 1px solid #dbeafe;
        }

        .privacidade-secao__corpo {
            padding-left: 2.7rem;
        }

        @media (max-width: 640px) {
            .privacidade-secao__corpo {
                padding-left: 0;
            }
        }

        .privacidade-cta {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            justify-content: space-between;
            gap: 1rem;
            padding: 1.5rem 1.75rem;
            background: #f8fafc;
            border-top: 1px solid #e2e8f0;
        }

        .privacidade-cta__texto {
            display: flex;
            flex-direction: column;
            gap: 0.2rem;
            font-size: 0.85rem;
            color: #64748b;
        }

        .privacidade-cta__texto strong {
            font-size: 0.95rem;
            font-weight: 800;
            color: #1e293b;
        }

        .privacidade-cta__btn {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            padding: 0.85rem 1.5rem;
            font-size: 0.85rem;
            font-weight: 800;
            color: #ffffff;
            background: #4A90E2;
            border: none;
            cursor: pointer;
            box-shadow: 0 4px 12px rgba(74, 144, 226, 0.28);
            transition: background-color 0.2s ease, transform 0.2s ease;
        }

        .privacidade-cta__btn:hover {
            background: #3a78c4;
            transform: translateY(-2px);
        }

        .privacidade-empty {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 1rem;
            padding: 4rem 2rem;
            text-align: center;
            color: #94a3b8;
            background: #ffffff;
            border: 1px solid #e2e8f0;
        }

        /* Tipografia do conteúdo produzido no editor do manager */
        .rich-text {
            font-size: 0.92rem;
            line-height: 1.75;
            color: #475569;
        }

        .rich-text > * + * {
            margin-top: 0.9rem;
        }

        .rich-text strong,
        .rich-text b {
            font-weight: 700;
            color: #1e293b;
        }

        .rich-text a {
            color: #4A90E2;
            font-weight: 600;
            text-decoration: underline;
            text-underline-offset: 2px;
        }

        .rich-text a:hover {
            color: #004282;
        }

        .rich-text h1,
        .rich-text h2,
        .rich-text h3,
        .rich-text h4,
        .rich-text h5,
        .rich-text h6 {
            margin-top: 1.5rem;
            font-weight: 800;
            line-height: 1.35;
            color: #1e293b;
        }

        .rich-text h1 { font-size: 1.3rem; }
        .rich-text h2 { font-size: 1.15rem; }
        .rich-text h3 { font-size: 1.05rem; }
        .rich-text h4,
        .rich-text h5,
        .rich-text h6 { font-size: 0.95rem; }

        .rich-text ul,
        .rich-text ol {
            padding-left: 1.35rem;
            display: flex;
            flex-direction: column;
            gap: 0.5rem;
        }

        .rich-text ul { list-style: disc; }
        .rich-text ol { list-style: decimal; }
        .rich-text li { padding-left: 0.25rem; }
        .rich-text li::marker { color: #4A90E2; font-weight: 700; }

        .rich-text blockquote {
            padding: 0.85rem 1.15rem;
            color: #475569;
            background: #f8fafc;
            border-left: 3px solid #4A90E2;
            font-style: italic;
        }

        .rich-text table {
            width: 100%;
            border-collapse: collapse;
            font-size: 0.82rem;
            display: block;
            overflow-x: auto;
        }

        .rich-text th,
        .rich-text td {
            padding: 0.65rem 0.85rem;
            text-align: left;
            border: 1px solid #e2e8f0;
            vertical-align: top;
        }

        .rich-text th {
            font-weight: 800;
            color: #1e293b;
            background: #f1f5f9;
            white-space: nowrap;
        }

        .rich-text img {
            max-width: 100%;
            height: auto;
        }

        .rich-text hr {
            border: none;
            border-top: 1px solid #e2e8f0;
        }

        .rich-text .ql-align-center { text-align: center; }
        .rich-text .ql-align-right { text-align: right; }
        .rich-text .ql-align-justify { text-align: justify; }
        .rich-text .ql-indent-1 { padding-left: 2rem; }
        .rich-text .ql-indent-2 { padding-left: 4rem; }
        .rich-text .ql-indent-3 { padding-left: 6rem; }

        .footer-legal-bar {
            background: linear-gradient(180deg, #18263a 0%, #142032 100%);
            border-top: 1px solid rgba(100, 140, 190, 0.22);
            color: #8ba4c0;
        }

        .footer-legal-bar__copy {
            color: #8ba4c0;
        }

        .footer-legal-bar__lai {
            color: #6d8aaa;
        }

        .footer-columns {
            display: grid;
            gap: 2rem 1.75rem;
            grid-template-columns: 1fr;
        }

        .footer-columns[data-cols="2"],
        .footer-columns[data-cols="3"],
        .footer-columns[data-cols="4"],
        .footer-columns[data-cols="5"],
        .footer-columns[data-cols="6"] {
            grid-template-columns: 1fr;
        }

        @media (min-width: 640px) {
            .footer-columns[data-cols="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
            .footer-columns[data-cols="3"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
            .footer-columns[data-cols="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
            .footer-columns[data-cols="5"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
            .footer-columns[data-cols="6"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
        }

        @media (min-width: 1024px) {
            .footer-columns[data-cols="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
            .footer-columns[data-cols="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
            .footer-columns[data-cols="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
            .footer-columns[data-cols="5"] { grid-template-columns: repeat(5, minmax(0, 1fr)); }
            .footer-columns[data-cols="6"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
        }

        @media (min-width: 1280px) {
            .footer-columns[data-cols="6"] { grid-template-columns: repeat(6, minmax(0, 1fr)); }
        }

        .footer-col[hidden] {
            display: none !important;
        }

        .footer-col--identidade {
            text-align: center;
        }

        .footer-logo-wrap {
            display: flex;
            justify-content: center;
            align-items: center;
        }

        .footer-col--identidade #footer-descricao,
        .footer-col--identidade #footer-cnpj {
            text-align: center;
        }

        .footer-social-wrap {
            justify-content: center;
        }

        .footer-link-item {
            text-align: left;
            background: none;
            border: none;
            padding: 0;
            color: inherit;
            cursor: pointer;
            font: inherit;
        }
        .footer-link-item svg,
        .footer-link-list svg {
            width: 1rem;
            height: 1rem;
            stroke: currentColor;
            flex-shrink: 0;
        }

        .portal-logo-footer {
            mix-blend-mode: normal;
        }

        .portal-logo-footer.portal-logo--com-sombra {
            mix-blend-mode: lighten;
        }

        #btn-back-to-top.visible {
            opacity: 1;
            pointer-events: auto;
            transform: translateY(0);
        }

        /* Reserva espaço à direita para o dock flutuante não cobrir a paginação */
        .portal-pagination,
        [id$="Pagination"],
        [id$="-pagination"] {
            padding-right: 5.5rem;
        }

        @keyframes slideUpFade {
            0% { opacity: 0; transform: translateY(10px); }
            100% { opacity: 1; transform: translateY(0); }
        }

        .animate-slideUpFade { 
            animation: slideUpFade 0.42s cubic-bezier(0.22, 1, 0.36, 1) forwards; 
        }

        /* Prestação de Contas — árvore Município → Unidade → Documentos */
        .cont-municipios-stage,
        .cont-unidades-stage,
        .cont-tipos-stage,
        .cont-repo-stage {
            width: 100%;
            transform-origin: center top;
            will-change: opacity, transform, filter;
        }
        .cont-municipios-stage.is-leaving,
        .cont-unidades-stage.is-leaving,
        .cont-tipos-stage.is-leaving,
        .cont-repo-stage.is-leaving {
            animation: contStageOut 0.42s cubic-bezier(0.4, 0, 0.2, 1) forwards;
            pointer-events: none;
        }
        .cont-municipios-stage.is-entering,
        .cont-unidades-stage.is-entering,
        .cont-tipos-stage.is-entering,
        .cont-repo-stage.is-entering {
            animation: contStageIn 0.58s cubic-bezier(0.16, 1, 0.3, 1) forwards;
        }
        .cont-municipios-stage.hidden,
        .cont-unidades-stage.hidden,
        .cont-tipos-stage.hidden,
        .cont-repo-stage.hidden {
            display: none !important;
        }
        .cont-unidades-stage__header {
            text-align: center;
            margin-bottom: 1.85rem;
            max-width: 40rem;
            margin-left: auto;
            margin-right: auto;
        }
        .cont-unidades-stage__title {
            font-size: clamp(1.45rem, 2.4vw, 1.9rem);
            font-weight: 800;
            color: #0f172a;
            letter-spacing: -0.02em;
            text-transform: none;
            line-height: 1.15;
        }
        .cont-unidades-stage__subtitle {
            margin-top: 0.45rem;
            color: #64748b;
            font-size: 0.95rem;
            line-height: 1.45;
        }

        /* Breadcrumb trail */
        .cont-tree-crumb {
            display: grid;
            grid-template-columns: auto 1fr;
            align-items: center;
            gap: 0.75rem 1rem;
            margin-bottom: 1.15rem;
            padding: 0.85rem 1rem;
            border-radius: 18px;
            background:
                linear-gradient(165deg, rgba(255, 255, 255, 0.98) 0%, rgba(244, 249, 252, 0.95) 100%);
            border: 1px solid rgba(31, 122, 154, 0.14);
            box-shadow:
                0 14px 32px -22px rgba(15, 23, 42, 0.4),
                inset 0 1px 0 rgba(255, 255, 255, 0.95);
        }
        .cont-tree-crumb__trail {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 0.25rem 0.1rem;
            list-style: none;
            margin: 0;
            padding: 0;
            min-width: 0;
            font-size: 0.8rem;
            font-weight: 700;
            color: #64748b;
        }
        .cont-tree-crumb__trail li {
            display: inline-flex;
            align-items: center;
            min-width: 0;
            max-width: 100%;
        }
        .cont-tree-crumb__trail li:not(:last-child)::after {
            content: "";
            width: 0.35rem;
            height: 0.35rem;
            margin: 0 0.55rem;
            border-right: 2px solid rgba(31, 122, 154, 0.28);
            border-top: 2px solid rgba(31, 122, 154, 0.28);
            transform: rotate(45deg);
            flex-shrink: 0;
        }
        .cont-tree-crumb__link {
            border: 0;
            background: transparent;
            color: #1f7a9a;
            font: inherit;
            font-weight: 700;
            padding: 0.2rem 0.35rem;
            margin: -0.2rem -0.35rem;
            border-radius: 8px;
            cursor: pointer;
            text-align: left;
            max-width: 14rem;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            transition: color 0.15s ease, background 0.15s ease;
        }
        .cont-tree-crumb__link:hover {
            color: #14566c;
            background: rgba(31, 122, 154, 0.08);
            text-decoration: none;
        }
        .cont-tree-crumb__trail [aria-current="page"] span {
            color: #0f172a;
            font-weight: 800;
            max-width: 14rem;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            padding: 0.2rem 0.45rem;
            border-radius: 8px;
            background: rgba(31, 122, 154, 0.1);
        }

        /* Municípios — pills AGIR */
        .cont-tree-pills {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 0.85rem;
            max-width: 520px;
            margin: 0 auto;
            padding: 0.5rem 0 1.5rem;
        }
        .cont-tree-pills .cont-unidades-grid__empty,
        .cont-tree-pills .cont-unidades-grid__loading {
            width: 100%;
            text-align: center;
            color: #64748b;
            font-weight: 600;
            padding: 2rem 1rem;
        }
        .cont-tree-pill {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 100%;
            min-height: 3.35rem;
            padding: 0.85rem 1.5rem;
            border: 0;
            border-radius: 999px;
            background: #1f7a9a;
            color: #fff;
            font-size: 0.95rem;
            font-weight: 800;
            letter-spacing: 0.04em;
            text-transform: uppercase;
            text-align: center;
            cursor: pointer;
            box-shadow: 0 6px 18px rgba(31, 122, 154, 0.22);
            transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
        }
        .cont-tree-pill:hover {
            background: #18647e;
            transform: translateY(-2px);
            box-shadow: 0 10px 22px rgba(31, 122, 154, 0.3);
        }
        .cont-tree-pill:focus-visible {
            outline: 2px solid #4A90E2;
            outline-offset: 3px;
        }
        .cont-tree-pill:active {
            transform: translateY(0) scale(0.99);
        }

        .cont-unidades-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(240px, 280px));
            justify-content: center;
            align-items: stretch;
            gap: 1.25rem;
            max-width: 980px;
            margin: 0 auto;
            padding: 0.35rem 0 1.75rem;
        }
        .cont-unidades-grid__loading,
        .cont-unidades-grid__empty {
            grid-column: 1 / -1;
            width: 100%;
            text-align: center;
            color: #64748b;
            font-weight: 600;
            padding: 2.25rem 1rem;
            border-radius: 16px;
            border: 1px dashed rgba(31, 122, 154, 0.28);
            background: rgba(255, 255, 255, 0.72);
        }
        .cont-unidade-card {
            --und-lift: 0px;
            position: relative;
            display: flex;
            flex-direction: column;
            align-items: stretch;
            width: 100%;
            min-height: 100%;
            text-align: center;
            background:
                linear-gradient(165deg, rgba(255, 255, 255, 0.98) 0%, rgba(244, 249, 252, 0.96) 100%);
            border: 1px solid rgba(31, 122, 154, 0.14);
            border-radius: 22px;
            padding: 1.25rem 1.15rem 1.1rem;
            cursor: pointer;
            overflow: hidden;
            isolation: isolate;
            box-shadow:
                0 18px 40px -24px rgba(15, 23, 42, 0.4),
                inset 0 1px 0 rgba(255, 255, 255, 0.95);
            transform: translateY(var(--und-lift));
            transition:
                transform 0.32s cubic-bezier(.22, .9, .3, 1),
                border-color 0.25s ease,
                box-shadow 0.28s ease;
        }
        .cont-unidade-card::after {
            content: "";
            position: absolute;
            left: 0;
            right: 0;
            bottom: 0;
            height: 72%;
            z-index: 0;
            pointer-events: none;
            border-radius: inherit;
            background:
                radial-gradient(120% 85% at 50% 100%, rgba(31, 122, 154, 0.28) 0%, rgba(31, 122, 154, 0.12) 34%, rgba(31, 122, 154, 0) 72%),
                linear-gradient(0deg, rgba(31, 122, 154, 0.16) 0%, rgba(31, 122, 154, 0.06) 38%, rgba(255, 255, 255, 0) 100%);
            opacity: 0;
            transform: translateY(18%);
            transition:
                opacity 0.38s cubic-bezier(.22, .9, .3, 1),
                transform 0.38s cubic-bezier(.22, .9, .3, 1);
        }
        .cont-unidade-card:hover {
            --und-lift: -3px;
            border-color: rgba(31, 122, 154, 0.28);
            box-shadow:
                0 22px 44px -22px rgba(31, 122, 154, 0.34),
                inset 0 1px 0 rgba(255, 255, 255, 0.95);
        }
        .cont-unidade-card:hover::after {
            opacity: 1;
            transform: translateY(0);
        }
        .cont-unidade-card:focus-visible {
            outline: 2px solid #1f7a9a;
            outline-offset: 3px;
        }
        .cont-unidade-card__media,
        .cont-unidade-card__body,
        .cont-unidade-card__cta {
            position: relative;
            z-index: 1;
        }
        .cont-unidade-card__media {
            display: flex;
            justify-content: center;
            margin-bottom: 0.95rem;
        }
        .cont-unidade-card__logo {
            width: 118px;
            height: 118px;
            border-radius: 50%;
            border: 3px solid rgba(31, 122, 154, 0.28);
            background:
                radial-gradient(circle at 35% 30%, #fff 0%, #f4f9fc 70%, #e8f3f8 100%);
            display: flex;
            align-items: center;
            justify-content: center;
            overflow: hidden;
            box-shadow:
                0 14px 28px -16px rgba(31, 122, 154, 0.45),
                0 0 0 6px rgba(31, 122, 154, 0.06);
            transition: border-color 0.25s ease, box-shadow 0.28s ease, transform 0.32s cubic-bezier(.22, .9, .3, 1);
        }
        .cont-unidade-card:hover .cont-unidade-card__logo {
            border-color: rgba(31, 122, 154, 0.42);
            box-shadow:
                0 16px 32px -14px rgba(31, 122, 154, 0.42),
                0 0 0 7px rgba(31, 122, 154, 0.08);
            transform: scale(1.02);
        }
        .cont-unidade-card__logo img {
            width: 82%;
            height: 82%;
            object-fit: contain;
        }
        .cont-unidade-card__logo-fallback {
            font-size: 2rem;
            font-weight: 800;
            color: #1f7a9a;
        }
        .cont-unidade-card__body {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 0.28rem;
            flex: 1 1 auto;
            min-width: 0;
            width: 100%;
        }
        .cont-unidade-card__tipo {
            display: block;
            font-size: 0.66rem;
            font-weight: 800;
            letter-spacing: 0.07em;
            text-transform: uppercase;
            color: #18647e;
            line-height: 1.3;
            max-width: 100%;
            padding: 0.22rem 0.55rem;
            border-radius: 999px;
            background: rgba(31, 122, 154, 0.1);
            border: 1px solid rgba(31, 122, 154, 0.14);
        }
        .cont-unidade-card__tipo--empty {
            visibility: hidden;
            background: transparent;
            border-color: transparent;
        }
        .cont-unidade-card__name {
            font-size: 0.98rem;
            font-weight: 800;
            letter-spacing: -0.015em;
            text-transform: none;
            color: #0f172a;
            line-height: 1.25;
            min-height: 2.5em;
            max-width: 100%;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
            margin: 0.15rem 0 0;
        }
        .cont-unidade-card__loc {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.3rem;
            font-size: 0.72rem;
            font-weight: 600;
            color: #64748b;
            line-height: 1.3;
            max-width: 100%;
        }
        .cont-unidade-card__loc svg {
            width: 13px;
            height: 13px;
            flex: 0 0 auto;
            color: #1f7a9a;
            opacity: 0.85;
        }
        .cont-unidade-card__loc--empty {
            visibility: hidden;
        }
        .cont-unidade-card__desc {
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
            font-size: 0.74rem;
            font-weight: 500;
            color: #64748b;
            line-height: 1.4;
            max-width: 100%;
            min-height: 2.15em;
            margin: 0.15rem 0 0.35rem;
        }
        .cont-unidade-card__desc.is-empty {
            visibility: hidden;
        }
        .cont-unidade-card__cta {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.4rem;
            width: 100%;
            margin-top: auto;
            padding: 0.72rem 1.1rem;
            border-radius: 14px;
            background: linear-gradient(135deg, #1f7a9a 0%, #18647e 100%);
            color: #fff;
            font-size: 0.78rem;
            font-weight: 800;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            border: 0;
            box-shadow: 0 10px 22px -12px rgba(31, 122, 154, 0.55);
            transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
        }
        .cont-unidade-card__cta svg {
            width: 15px;
            height: 15px;
            transition: transform 0.25s cubic-bezier(.22, .9, .3, 1);
        }
        .cont-unidade-card:hover .cont-unidade-card__cta {
            background: linear-gradient(135deg, #18647e 0%, #14566c 100%);
            box-shadow: 0 14px 28px -12px rgba(31, 122, 154, 0.55);
        }
        .cont-unidade-card:hover .cont-unidade-card__cta svg {
            transform: translateX(3px);
        }

        /* Tipos de documento — cards com barra azul */
        .cont-tipos-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 1rem;
            max-width: 720px;
            margin: 0 auto;
            padding: 0.5rem 0 1.5rem;
        }
        @media (min-width: 640px) {
            .cont-tipos-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
        }
        .cont-tipos-grid .cont-unidades-grid__empty {
            grid-column: 1 / -1;
        }
        .cont-tipo-card {
            display: flex;
            flex-direction: column;
            width: 100%;
            padding: 0;
            border: 1px solid #dbe3ef;
            border-radius: 12px;
            background: #fff;
            overflow: hidden;
            cursor: pointer;
            text-align: left;
            box-shadow: 0 4px 14px rgba(15, 23, 42, 0.05);
            transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
        }
        .cont-tipo-card:hover {
            transform: translateY(-3px);
            border-color: #93c5fd;
            box-shadow: 0 10px 22px rgba(37, 99, 235, 0.12);
        }
        .cont-tipo-card:focus-visible {
            outline: 2px solid #4A90E2;
            outline-offset: 3px;
        }
        .cont-tipo-card__header {
            display: block;
            height: 10px;
            background: linear-gradient(90deg, #1d4ed8 0%, #3b82f6 100%);
        }
        .cont-tipo-card__body {
            display: flex;
            flex-direction: column;
            gap: 0.45rem;
            padding: 1.1rem 1.15rem 1.2rem;
        }
        .cont-tipo-card__title {
            font-size: 0.95rem;
            font-weight: 800;
            color: #0f172a;
            line-height: 1.3;
            text-transform: uppercase;
            letter-spacing: 0.02em;
        }
        .cont-tipo-card__count {
            font-size: 0.78rem;
            font-weight: 600;
            color: #64748b;
        }

        /* Prestação de contas — repositório modernizado */
        .cont-agir-stage .cont-repo-breadcrumb,
        .cont-agir-stage .cont-tree-crumb.cont-repo-breadcrumb {
            display: grid;
            grid-template-columns: auto minmax(0, 1fr) auto;
            align-items: center;
            gap: 0.85rem 1.1rem;
            margin-bottom: 1.15rem;
            padding: 0.9rem 1.05rem;
            border-radius: 20px;
            background:
                linear-gradient(165deg, rgba(255, 255, 255, 0.98) 0%, rgba(244, 249, 252, 0.96) 100%);
            border: 1px solid rgba(31, 122, 154, 0.16);
            box-shadow:
                0 16px 36px -22px rgba(15, 23, 42, 0.42),
                inset 0 1px 0 rgba(255, 255, 255, 0.95);
            position: relative;
            overflow: hidden;
        }
        .cont-agir-stage .cont-repo-breadcrumb::before {
            content: "";
            position: absolute;
            left: 0;
            right: 0;
            bottom: 0;
            height: 55%;
            pointer-events: none;
            background:
                radial-gradient(90% 120% at 88% 100%, rgba(31, 122, 154, 0.1) 0%, rgba(31, 122, 154, 0) 70%),
                linear-gradient(0deg, rgba(31, 122, 154, 0.05) 0%, rgba(255, 255, 255, 0) 100%);
            opacity: 1;
        }
        .cont-agir-stage .cont-repo-breadcrumb > * {
            position: relative;
            z-index: 1;
        }
        .cont-agir-toolbar {
            margin-bottom: 1.35rem;
        }
        .portal-filter-bar.cont-agir-filter-bar,
        .cont-agir-filter-bar {
            display: flex !important;
            flex-wrap: nowrap;
            align-items: flex-end;
            gap: 0.75rem 0.85rem;
            margin-bottom: 0;
            padding: 0.9rem 1.05rem;
            background: #fff;
            border: 1px solid #e8eef5;
            border-radius: 16px;
            box-shadow: 0 8px 24px -18px rgba(15, 23, 42, 0.4);
            width: 100%;
            max-width: 100%;
            box-sizing: border-box;
            overflow: visible;
            grid-template-columns: none !important;
        }
        .cont-agir-filter-bar .portal-filter-field {
            margin-bottom: 0;
            min-width: 0;
            max-width: none;
        }
        .cont-agir-filter-bar__ano {
            flex: 0 0 9.75rem;
            width: 9.75rem;
        }
        .cont-agir-filter-bar__search {
            flex: 1 1 auto;
            min-width: 14rem;
        }
        .cont-agir-filter-bar .portal-filter-search-control {
            min-width: 0;
            width: 100%;
        }
        .cont-agir-filter-bar .portal-filter-search-control input {
            width: 100%;
            max-width: 100%;
            box-sizing: border-box;
            border-radius: 10px;
            min-height: 2.7rem;
        }
        .cont-agir-filter-bar__ano select {
            width: 100%;
            min-height: 2.7rem;
            border-radius: 10px;
        }
        .cont-agir-filter-bar .portal-filter-field__label {
            margin-bottom: 0.35rem;
            font-size: 0.68rem;
            font-weight: 800;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            color: #64748b;
        }
        .cont-agir-filter-bar .portal-filter-field__label i,
        .cont-agir-filter-bar .portal-filter-field__label svg {
            display: none;
        }
        .cont-agir-filter-bar .portal-filter-bar__clear,
        .cont-agir-filter-bar__clear {
            flex: 0 0 auto;
            align-self: flex-end;
            min-height: 2.7rem;
            padding: 0.65rem 1rem;
            border: 1px solid #e2e8f0;
            border-radius: 10px;
            background: #f8fafc;
            color: #475569;
            font-weight: 700;
            cursor: pointer;
            white-space: nowrap;
            transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
        }
        .cont-agir-filter-bar .portal-filter-bar__clear:hover,
        .cont-agir-filter-bar__clear:hover {
            background: #fff;
            border-color: #94a3b8;
            color: #0f172a;
        }
        .cont-agir-filter-bar .cont-agir-filters-chip {
            flex: 0 0 auto;
            align-self: flex-end;
            margin: 0;
            max-width: 16rem;
        }
        .cont-agir-filters-chip {
            margin: 0;
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            width: fit-content;
            max-width: 100%;
            padding: 0.55rem 0.95rem;
            min-height: 2.7rem;
            background: rgba(31, 122, 154, 0.08);
            color: #18647e;
            border: 1px solid rgba(31, 122, 154, 0.16);
            border-radius: 999px;
            font-size: 0.78rem;
            font-weight: 700;
            box-shadow: none;
            box-sizing: border-box;
            overflow: hidden;
            white-space: nowrap;
            text-overflow: ellipsis;
        }
        .cont-agir-filters-chip i,
        .cont-agir-filters-chip svg {
            width: 1rem;
            height: 1rem;
            color: #1f7a9a;
            flex-shrink: 0;
        }

        .cont-repo-back {
            display: inline-flex;
            align-items: center;
            gap: 0.45rem;
            border: 1px solid rgba(31, 122, 154, 0.18);
            border-radius: 12px;
            background: rgba(255, 255, 255, 0.95);
            color: #334155;
            font-size: 0.82rem;
            font-weight: 700;
            padding: 0.58rem 0.95rem;
            cursor: pointer;
            white-space: nowrap;
            box-shadow: 0 8px 18px -14px rgba(15, 23, 42, 0.35);
            transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
        }
        .cont-repo-back:hover {
            background: rgba(31, 122, 154, 0.08);
            border-color: rgba(31, 122, 154, 0.35);
            color: #18647e;
            transform: translateX(-2px);
            box-shadow: 0 10px 20px -14px rgba(31, 122, 154, 0.35);
        }
        .cont-repo-back:active {
            transform: translateX(-3px) scale(0.98);
        }
        .cont-repo-back.is-busy {
            pointer-events: none;
            opacity: 0.7;
        }
        .cont-repo-back i,
        .cont-repo-back svg {
            width: 1rem;
            height: 1rem;
            transition: transform 0.25s ease;
        }
        .cont-repo-back:hover i,
        .cont-repo-back:hover svg {
            transform: translateX(-3px);
        }
        .cont-repo-selected {
            display: flex;
            align-items: center;
            gap: 0.7rem;
            min-width: 0;
            max-width: min(18rem, 100%);
            padding: 0.4rem 0.75rem 0.4rem 0.4rem;
            border-radius: 14px;
            background:
                linear-gradient(160deg, rgba(31, 122, 154, 0.1) 0%, rgba(255, 255, 255, 0.96) 55%);
            border: 1px solid rgba(31, 122, 154, 0.18);
            box-shadow: 0 10px 22px -18px rgba(31, 122, 154, 0.4);
            overflow: hidden;
        }
        .cont-repo-selected__text {
            min-width: 0;
            overflow: hidden;
        }
        .cont-repo-selected__img {
            width: 42px;
            height: 42px;
            border-radius: 50%;
            border: 2px solid rgba(31, 122, 154, 0.28);
            object-fit: contain;
            background: #fff;
            flex-shrink: 0;
            box-shadow: 0 0 0 4px rgba(31, 122, 154, 0.06);
        }
        .cont-repo-selected__img.hidden { display: none; }
        .cont-repo-selected__label {
            display: block;
            font-size: 0.62rem;
            font-weight: 800;
            text-transform: uppercase;
            letter-spacing: 0.06em;
            color: #1f7a9a;
        }
        .cont-repo-selected__name {
            display: block;
            font-size: 0.84rem;
            font-weight: 800;
            color: #0f172a;
            line-height: 1.25;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        @media (max-width: 900px) {
            .cont-agir-stage .cont-repo-breadcrumb,
            .cont-agir-stage .cont-tree-crumb.cont-repo-breadcrumb {
                grid-template-columns: auto 1fr;
                grid-template-areas:
                    "back unit"
                    "trail trail";
            }
            .cont-agir-stage .cont-repo-breadcrumb > .cont-repo-back {
                grid-area: back;
            }
            .cont-agir-stage .cont-repo-breadcrumb > .cont-tree-crumb__trail {
                grid-area: trail;
                padding-top: 0.45rem;
                border-top: 1px solid rgba(31, 122, 154, 0.12);
            }
            .cont-agir-stage .cont-repo-breadcrumb > .cont-repo-selected {
                grid-area: unit;
                justify-self: end;
                max-width: min(100%, 14rem);
            }
            .portal-filter-bar.cont-agir-filter-bar,
            .cont-agir-filter-bar {
                flex-wrap: wrap;
            }
            .cont-agir-filter-bar__ano {
                flex: 0 0 8.5rem;
            }
            .cont-agir-filter-bar__search {
                flex: 1 1 12rem;
                min-width: 11rem;
            }
            .cont-agir-filter-bar .cont-agir-filters-chip {
                max-width: none;
            }
        }

        @media (max-width: 640px) {
            .cont-tree-crumb {
                grid-template-columns: 1fr;
                gap: 0.65rem;
                padding: 0.8rem 0.85rem;
                border-radius: 16px;
            }
            .cont-agir-stage .cont-repo-breadcrumb,
            .cont-agir-stage .cont-tree-crumb.cont-repo-breadcrumb {
                grid-template-columns: 1fr;
                grid-template-areas:
                    "back"
                    "unit"
                    "trail";
                gap: 0.7rem;
                padding: 0.85rem;
                border-radius: 16px;
            }
            .cont-agir-stage .cont-repo-breadcrumb > .cont-repo-selected {
                justify-self: stretch;
                max-width: none;
            }
            .cont-tree-crumb__trail {
                width: 100%;
                font-size: 0.74rem;
            }
            .cont-tree-crumb__link,
            .cont-tree-crumb__trail [aria-current="page"] span {
                max-width: 9.5rem;
            }
            .portal-filter-bar.cont-agir-filter-bar,
            .cont-agir-filter-bar {
                flex-wrap: wrap;
                padding: 0.85rem;
                gap: 0.65rem;
            }
            .cont-agir-filter-bar__ano,
            .cont-agir-filter-bar__search {
                flex: 1 1 100%;
                width: 100%;
            }
            .cont-agir-filter-bar__clear,
            .cont-agir-filter-bar .portal-filter-bar__clear {
                flex: 1 1 auto;
                justify-content: center;
            }
            .cont-agir-filter-bar .cont-agir-filters-chip {
                flex: 1 1 auto;
                justify-content: center;
                max-width: none;
            }
            .cont-repo-selected__name {
                white-space: normal;
                display: -webkit-box;
                -webkit-line-clamp: 2;
                -webkit-box-orient: vertical;
            }
        }

        .cont-agir-cards-wrap {
            position: relative;
            min-height: 8rem;
        }
        /* Colunas equilibradas — blocos empilhados por coluna */
        .cont-agir-cards {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 1.15rem;
            align-items: start;
            padding: 0.15rem 0 2rem;
        }
        .cont-agir-cards__col {
            display: flex;
            flex-direction: column;
            gap: 1.15rem;
            min-width: 0;
        }
        .cont-agir-cards__empty {
            grid-column: 1 / -1;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 0.45rem;
            text-align: center;
            color: #64748b;
            padding: 3rem 1.25rem;
            background: #fff;
            border: 1px dashed #cbd5e1;
            border-radius: 12px;
        }
        .cont-agir-cards__empty strong {
            color: #0f172a;
            font-size: 1rem;
        }
        .cont-agir-cards__empty span {
            font-size: 0.88rem;
            font-weight: 500;
        }
        .cont-agir-cards__empty-icon {
            width: 2.25rem;
            height: 2.25rem;
            color: #94a3b8;
            margin-bottom: 0.35rem;
        }
        .cont-agir-card {
            display: block;
            width: 100%;
            margin: 0;
            background: #fff;
            border: 1px solid rgba(15, 23, 42, 0.06);
            border-radius: 12px;
            overflow: hidden;
            box-shadow:
                0 4px 6px -1px rgba(15, 23, 42, 0.05),
                0 2px 4px -2px rgba(15, 23, 42, 0.03);
            transition: box-shadow 0.2s ease, transform 0.2s ease;
        }
        .cont-agir-card:hover {
            box-shadow:
                0 10px 22px -8px rgba(15, 23, 42, 0.12),
                0 4px 8px -4px rgba(15, 23, 42, 0.06);
            transform: translateY(-2px);
        }
        .cont-agir-card__header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 0.75rem;
            background: #1f7a9a;
            color: #fff;
            padding: 1rem 1.25rem;
        }
        .cont-agir-card__title {
            margin: 0;
            font-size: 0.88rem;
            font-weight: 600;
            letter-spacing: 0.04em;
            text-transform: uppercase;
            line-height: 1.3;
            text-align: left;
            color: #f8fafc;
        }
        .cont-agir-card__count {
            flex: 0 0 auto;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-height: 1.45rem;
            padding: 0.2rem 0.65rem;
            background: rgba(255, 255, 255, 0.16);
            border: 1px solid rgba(255, 255, 255, 0.22);
            border-radius: 999px;
            font-size: 0.68rem;
            font-weight: 600;
            letter-spacing: 0.02em;
            white-space: nowrap;
            color: #e0f2fe;
        }
        .cont-agir-card__body {
            background: #fff;
            padding: 0;
        }
        .cont-agir-card__list {
            margin: 0;
            padding: 0;
            list-style: none;
            display: block;
        }
        @media (max-width: 1100px) {
            .cont-agir-cards {
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 1rem;
            }
            .cont-agir-cards__col {
                gap: 1rem;
            }
        }
        @media (max-width: 640px) {
            .cont-agir-cards {
                grid-template-columns: 1fr;
                gap: 0.85rem;
            }
            .cont-agir-cards__col {
                gap: 0.85rem;
            }
        }
        .cont-agir-doc-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 0.85rem;
            padding: 0.9rem 1.25rem;
            border-bottom: 1px solid #f1f5f9;
            background: #fff;
            transition: background-color 0.2s ease;
        }
        .cont-agir-doc-row:last-child {
            border-bottom: none;
        }
        .cont-agir-doc-row:hover {
            background: #f8fafc;
        }
        .cont-agir-doc-row--disabled {
            opacity: 0.72;
        }
        .cont-agir-doc-row--disabled:hover {
            background: #fff;
        }
        .cont-agir-doc-info {
            display: flex;
            align-items: center;
            gap: 0.9rem;
            min-width: 0;
            flex: 1 1 auto;
        }
        .cont-agir-doc-icon {
            position: relative;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 1.65rem;
            height: 1.65rem;
            flex: 0 0 auto;
            color: #94a3b8;
            background: transparent;
            border: 0;
        }
        .cont-agir-doc-icon__svg {
            width: 1.45rem;
            height: 1.45rem;
            stroke-width: 1.25;
        }
        .cont-agir-doc-row:hover .cont-agir-doc-icon {
            color: #e11d48;
        }
        .cont-agir-doc-icon em {
            position: absolute;
            right: -0.35rem;
            bottom: -0.3rem;
            font-style: normal;
            font-size: 0.5rem;
            font-weight: 800;
            letter-spacing: 0.02em;
            text-transform: uppercase;
            color: #fff;
            background: #e11d48;
            border-radius: 0.2rem;
            padding: 0.05rem 0.22rem;
            line-height: 1.15;
        }
        .cont-agir-doc-meta {
            display: flex;
            flex-direction: column;
            gap: 0.2rem;
            min-width: 0;
        }
        .cont-agir-doc-title {
            color: #334155;
            font-size: 0.82rem;
            font-weight: 600;
            line-height: 1.35;
            word-break: break-word;
        }
        .cont-agir-doc-period {
            display: block;
            font-size: 0.75rem;
            font-weight: 400;
            color: #64748b;
            background: transparent;
            border-radius: 0;
            padding: 0;
            letter-spacing: 0;
        }
        .cont-agir-download-btn {
            flex: 0 0 auto;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.4rem;
            white-space: nowrap;
            min-height: 2rem;
            padding: 0.45rem 0.9rem;
            border: 1px solid transparent;
            border-radius: 999px !important;
            background: #f1f5f9;
            color: #64748b;
            font-size: 0.72rem;
            font-weight: 600;
            letter-spacing: 0.02em;
            text-transform: none;
            cursor: pointer;
            transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
            box-shadow: none;
        }
        .cont-agir-download-btn:hover {
            background: #1f7a9a;
            color: #fff;
            transform: none;
            box-shadow: 0 2px 6px rgba(31, 122, 154, 0.22);
        }
        .cont-agir-download-btn:focus-visible {
            outline: 2px solid rgba(31, 122, 154, 0.45);
            outline-offset: 2px;
        }
        .cont-agir-download-btn svg {
            width: 0.9rem;
            height: 0.9rem;
            stroke: currentColor;
            fill: none;
            stroke-linecap: round;
            stroke-linejoin: round;
        }
        .cont-agir-download-btn--disabled {
            background: #f1f5f9;
            color: #94a3b8;
            cursor: default;
            transform: none;
            box-shadow: none;
        }
        .cont-agir-download-btn--disabled:hover {
            background: #f1f5f9;
            color: #94a3b8;
            transform: none;
            box-shadow: none;
        }
        @media (max-width: 480px) {
            .cont-agir-doc-row {
                flex-wrap: wrap;
                align-items: flex-start;
            }
            .cont-agir-doc-info {
                width: 100%;
            }
            .cont-agir-download-btn {
                width: 100%;
                justify-content: center;
            }
        }

        @keyframes contStageOut {
            from {
                opacity: 1;
                transform: translateY(0) scale(1);
                filter: blur(0);
            }
            to {
                opacity: 0;
                transform: translateY(-14px) scale(0.985);
                filter: blur(5px);
            }
        }
        @keyframes contStageIn {
            from {
                opacity: 0;
                transform: translateY(28px) scale(0.975);
                filter: blur(8px);
            }
            to {
                opacity: 1;
                transform: translateY(0) scale(1);
                filter: blur(0);
            }
        }

        /* Finanças — visual institucional */
        .portal-fin-kpi {
            background: #fff;
            border: 1px solid #e2e8f0;
            padding: 1.25rem 1.5rem;
            position: relative;
        }
        .portal-fin-kpi__label {
            display: block;
            font-size: 0.6875rem;
            color: #64748b;
            text-transform: uppercase;
            font-weight: 700;
            letter-spacing: 0.06em;
            margin-bottom: 0.5rem;
        }
        .portal-fin-kpi__value {
            font-size: 1.5rem;
            font-weight: 800;
            color: #1e293b;
            letter-spacing: -0.02em;
            font-variant-numeric: tabular-nums;
        }
        @media (min-width: 1024px) {
            .portal-fin-kpi__value { font-size: 1.75rem; }
        }

        .portal-fin-badge {
            display: inline-flex;
            align-items: center;
            gap: 0.25rem;
            font-size: 0.625rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            padding: 0.25rem 0.625rem;
            border: 1px solid #e2e8f0;
            background: #f8fafc;
            color: #475569;
        }
        .portal-fin-badge--receita {
            background: #dcfce7;
            border-color: #bbf7d0;
            color: #166534;
        }
        .portal-fin-badge--despesa {
            background: #fee2e2;
            border-color: #fecaca;
            color: #991b1b;
        }
        .portal-fin-badge--transfer-saida {
            background: #ffedd5;
            border-color: #fdba74;
            color: #c2410c;
        }
        .portal-fin-badge--transfer-entrada {
            background: #e0e7ff;
            border-color: #a5b4fc;
            color: #3730a3;
        }
        .portal-fin-valor--transfer-saida { color: #c2410c !important; }
        .portal-fin-valor--transfer-entrada { color: #4338ca !important; }

        .portal-fin-fp-tag {
            display: inline-block;
            font-size: 0.625rem;
            font-weight: 600;
            padding: 0.2rem 0.5rem;
            border: 1px solid #e2e8f0;
            background: #f8fafc;
            color: #475569;
        }
        .portal-fin-fp-tag--transfer-saida {
            background: #ffedd5;
            border-color: #fdba74;
            color: #c2410c;
        }
        .portal-fin-fp-tag--transfer-entrada {
            background: #e0e7ff;
            border-color: #a5b4fc;
            color: #3730a3;
        }
        .portal-fin-kpi__hint {
            font-size: 0.65rem;
            color: #64748b;
            line-height: 1.45;
            margin-top: 0.5rem;
            font-weight: 500;
        }
        .portal-fin-transfer-note {
            border-radius: 0.75rem;
            padding: 0.875rem 1rem;
            font-size: 0.8125rem;
            line-height: 1.5;
        }
        .portal-fin-transfer-note strong {
            display: block;
            font-size: 0.75rem;
            text-transform: uppercase;
            letter-spacing: 0.04em;
            margin-bottom: 0.35rem;
        }
        .portal-fin-transfer-note p { margin: 0; color: #475569; }
        .portal-fin-transfer-note--saida {
            background: #fff7ed;
            border: 1px solid #fed7aa;
        }
        .portal-fin-transfer-note--saida strong { color: #c2410c; }
        .portal-fin-transfer-note--entrada {
            background: #eef2ff;
            border: 1px solid #c7d2fe;
        }
        .portal-fin-transfer-note--entrada strong { color: #3730a3; }
        #fin-receita-transfer-note {
            background: #f8fafc;
            border: 1px solid #e2e8f0;
            border-radius: 0.75rem;
            padding: 0.75rem 1rem;
            font-size: 0.8125rem;
            color: #475569;
            line-height: 1.5;
            margin-bottom: 1rem;
        }
        #fin-receita-transfer-note.hidden { display: none; }
        #fin-receita-transfer-note strong { color: #334155; display: block; margin-bottom: 0.35rem; }
        .portal-fin-transfer-note__list { margin: 0.35rem 0 0 1rem; padding: 0; }
        .portal-fin-transfer-note__list li { margin-bottom: 0.25rem; }
        .portal-fin-detalhe-transfer { display: block; font-size: 0.75rem; line-height: 1.45; padding: 0.35rem 0.5rem; border-radius: 0.375rem; margin-bottom: 0.25rem; }
        .portal-fin-detalhe-transfer--saida { background: #fff7ed; color: #9a3412; }
        .portal-fin-detalhe-transfer--entrada { background: #eef2ff; color: #3730a3; }

        .portal-fin-sit-tag {
            display: inline-block;
            font-size: 0.625rem;
            font-weight: 600;
            padding: 0.25rem 0.625rem;
            border: 1px solid #e2e8f0;
            background: #f8fafc;
            color: #475569;
        }

        .portal-fin-detail-btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 2rem;
            height: 2rem;
            padding: 0;
            color: #1d4ed8;
            background: #eff6ff;
            border: 1px solid #bfdbfe;
            border-radius: 6px;
            transition: background 0.2s, color 0.2s, border-color 0.2s;
            cursor: pointer;
        }
        .portal-fin-detail-btn:hover {
            background: #dbeafe;
            color: #1e3a8a;
            border-color: #93c5fd;
        }
        .portal-fin-detail-btn:disabled {
            opacity: 0.6;
            cursor: wait;
        }

        .portal-export-group {
            display: flex;
            flex-wrap: wrap;
            gap: 0.5rem;
            align-items: center;
        }
        .portal-export-btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 2.25rem;
            height: 2.25rem;
            padding: 0;
            background: #fff;
            border: 1px solid #e2e8f0;
            transition: background 0.2s, border-color 0.2s, color 0.2s;
            cursor: pointer;
            border-radius: 8px;
        }
        .portal-export-btn:hover:not(:disabled) {
            filter: brightness(0.97);
        }
        .portal-export-btn:disabled {
            opacity: 0.65;
            cursor: wait;
        }
        .portal-export-btn--xlsx { background: #ecfdf5; border-color: #bbf7d0; color: #166534; }
        .portal-export-btn--pdf { background: #fef2f2; border-color: #fecaca; color: #991b1b; }
        .portal-export-btn--csv { background: #f8fafc; border-color: #e2e8f0; color: #475569; }

        .portal-modal-loading {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 0.75rem;
            padding: 2.5rem 1rem;
            min-height: 180px;
        }
        .portal-modal-loading__spinner {
            width: 1.75rem;
            height: 1.75rem;
            border: 2px solid rgba(77, 184, 193, 0.18);
            border-top-color: var(--portal-teal);
            border-radius: 50%;
            animation: portal-spin 0.9s cubic-bezier(0.55, 0.15, 0.35, 0.85) infinite;
        }
        .portal-modal-loading__text {
            font-size: 0.8125rem;
            font-weight: 500;
            color: #94a3b8;
        }

        .portal-table-search-hint {
            font-size: 0.625rem;
            color: #94a3b8;
            font-weight: 600;
            margin-top: 0.25rem;
        }

        /* IPRAX — Tabelas unificadas (Portal) */
        .iprax-table {
            width: 100%;
            border-collapse: collapse;
            table-layout: fixed;
        }
        .iprax-table thead { background: #f8fafc; }
        .iprax-table thead th {
            padding: 0.875rem 1.25rem;
            font-size: 0.6875rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.06em;
            color: #64748b;
            text-align: left;
            border-bottom: 1px solid #e2e8f0;
            white-space: normal;
            word-break: break-word;
        }
        .iprax-table tbody td {
            padding: 0.875rem 1.25rem;
            font-size: 0.875rem;
            color: #334155;
            border-bottom: 1px solid #f1f5f9;
            vertical-align: middle;
            font-variant-numeric: tabular-nums;
            white-space: normal;
            word-break: break-word;
            overflow-wrap: anywhere;
        }
        .iprax-table tbody tr { background: #fff; transition: none; }
        .iprax-table tbody tr:hover { background: inherit !important; }
        .iprax-table tbody tr:last-child td { border-bottom: none; }
        .iprax-table .text-center { text-align: center; }
        .iprax-table .col-nowrap,
        .iprax-table th.w-20,
        .iprax-table td.w-20,
        .iprax-table td.col-acoes {
            white-space: nowrap;
            width: 9.5rem;
            min-width: 9.5rem;
            overflow-wrap: normal;
            word-break: normal;
            word-break: normal;
        }

        /* Wrapper de tabela: scroll só quando realmente necessário */
        .overflow-x-auto {
            overflow-x: auto;
            max-width: 100%;
            -webkit-overflow-scrolling: touch;
        }
        .overflow-x-auto > .iprax-table {
            min-width: 0;
        }

        /* Institucional — visual institucional */
        .portal-inst-badge {
            display: inline-block;
            font-size: 0.625rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.04em;
            padding: 0.25rem 0.625rem;
            border: 1px solid #e2e8f0;
            background: #f8fafc;
            color: #475569;
        }
        .portal-inst-download-btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.4rem;
            white-space: nowrap;
            flex-shrink: 0;
            min-width: max-content;
            min-height: 2.35rem;
            padding: 0.45rem 0.85rem;
            font-size: 0.72rem;
            font-weight: 800;
            text-transform: uppercase;
            letter-spacing: 0.04em;
            color: #475569;
            background: #f8fafc;
            border: 1px solid #e2e8f0;
            border-radius: 8px;
            cursor: pointer;
            transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
        }
        .portal-inst-download-btn:hover {
            color: #1d6bb8;
            border-color: #93c5fd;
            background: #eff6ff;
        }
        .portal-inst-download-btn span { display: inline; }

        .portal-comp-cell {
            display: flex;
            flex-direction: column;
            gap: 0.35rem;
            min-width: 8.5rem;
        }
        .portal-comp-cell__period {
            display: inline-flex;
            align-items: center;
            gap: 0.35rem;
            font-size: 0.875rem;
            font-weight: 700;
            color: #1e293b;
        }
        .portal-comp-cell__period i {
            width: 0.9rem;
            height: 0.9rem;
            color: #4A90E2;
        }
        .portal-comp-cell__pub {
            display: inline-flex;
            align-items: center;
            gap: 0.3rem;
            font-size: 0.7rem;
            font-weight: 600;
            color: #64748b;
        }
        .portal-comp-cell__pub i {
            width: 0.75rem;
            height: 0.75rem;
            color: #94a3b8;
        }

        /* Painel de filtros do portal */
        .portal-filter-bar {
            display: grid;
            grid-template-columns: minmax(8rem, 0.65fr) minmax(10rem, 0.8fr) minmax(16rem, 2fr) auto;
            align-items: end;
            gap: 0.85rem;
            margin-bottom: 1.25rem;
            padding: 1rem 1.15rem;
            background: #fff;
            border: 1px solid #e2e8f0;
            border-radius: 0.875rem;
            box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
        }
        .portal-filter-bar .portal-filter-field {
            min-width: 0;
            margin: 0;
        }
        .portal-filter-bar__search {
            width: 100%;
        }
        .portal-filter-search-control {
            position: relative;
            min-width: 0;
            width: 100%;
        }
        .portal-filter-search-control input {
            padding-left: 2.35rem !important;
            width: 100%;
            max-width: 100%;
            box-sizing: border-box;
        }
        .portal-filter-search-control > i,
        .portal-filter-search-control > svg {
            position: absolute;
            z-index: 1;
            left: 0.8rem;
            top: 50%;
            width: 0.95rem;
            height: 0.95rem;
            color: #94a3b8;
            pointer-events: none;
            transform: translateY(-50%);
        }
        .portal-filter-bar__clear {
            min-height: 2.7rem;
            padding: 0.65rem 1rem;
            white-space: nowrap;
        }
        @media (max-width: 767px) {
            .portal-filter-bar {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
            .portal-filter-bar__search {
                grid-column: 1 / -1;
            }
            .portal-filter-bar__clear {
                grid-column: 1 / -1;
            }
        }

        .portal-filter-panel {
            background: #fff;
            border: 1px solid #e2e8f0;
            padding: 1.25rem 1.15rem 1.35rem;
            box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
        }
        .portal-filter-panel__head {
            display: flex;
            align-items: center;
            gap: 0.55rem;
            margin-bottom: 1.15rem;
            padding-bottom: 0.85rem;
            border-bottom: 1px solid #eef2f7;
        }
        .portal-filter-panel__head i {
            width: 1.15rem;
            height: 1.15rem;
            color: #4A90E2;
        }
        .portal-filter-panel__title {
            margin: 0;
            font-size: 1rem;
            font-weight: 800;
            color: #0f172a;
        }
        .portal-filter-field {
            margin-bottom: 0.95rem;
        }
        .portal-filter-field__label {
            display: inline-flex;
            align-items: center;
            gap: 0.4rem;
            margin-bottom: 0.4rem;
            font-size: 0.7rem;
            font-weight: 800;
            letter-spacing: 0.04em;
            text-transform: uppercase;
            color: #64748b;
        }
        .portal-filter-field__label i {
            width: 0.85rem;
            height: 0.85rem;
            color: #94a3b8;
        }
        .portal-filter-field select,
        .portal-filter-field input[type="text"],
        .portal-filter-field input[type="search"] {
            width: 100%;
            border: 1px solid #dbe3ee;
            background: #f8fafc;
            padding: 0.7rem 0.8rem;
            font-size: 0.875rem;
            font-weight: 600;
            color: #1e293b;
            outline: none;
            transition: border-color 0.15s ease, background 0.15s ease;
        }
        .portal-filter-field select:focus,
        .portal-filter-field input:focus {
            border-color: #4A90E2;
            background: #fff;
        }
        .portal-filter-field--search {
            position: relative;
        }
        .portal-filter-field--search input {
            padding-left: 2.35rem;
        }
        .portal-filter-field--search > i {
            position: absolute;
            left: 0.8rem;
            top: 50%;
            transform: translateY(-50%);
            width: 0.95rem;
            height: 0.95rem;
            color: #94a3b8;
            pointer-events: none;
        }
        .portal-filter-actions {
            display: flex;
            flex-direction: column;
            gap: 0.55rem;
            margin-top: 1rem;
            padding-top: 0.95rem;
            border-top: 1px solid #eef2f7;
        }
        .portal-filter-actions__apply {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.45rem;
            min-height: 2.85rem;
            padding: 0.7rem 1rem;
            font-size: 0.875rem;
            font-weight: 800;
            color: #fff;
            background: #4A90E2;
            border: none;
            cursor: pointer;
        }
        .portal-filter-actions__apply:hover { background: #3a78c4; }
        .portal-filter-actions__clear {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.4rem;
            min-height: 2.4rem;
            font-size: 0.8rem;
            font-weight: 700;
            color: #64748b;
            background: transparent;
            border: 1px solid #e2e8f0;
            cursor: pointer;
        }
        .portal-filter-actions__clear:hover {
            color: #334155;
            background: #f8fafc;
        }
        .portal-docs-toolbar {
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            align-items: flex-start;
            gap: 1rem;
            padding: 1.15rem 1.25rem;
            border-bottom: 1px solid #e2e8f0;
            background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
        }
        .cont-comp-group td {
            padding: 0.7rem 1.25rem;
            background: #f1f5f9;
            border-top: 1px solid #e2e8f0;
            border-bottom: 1px solid #e2e8f0;
            color: #334155;
            font-size: 0.78rem;
            font-weight: 800;
            letter-spacing: 0.045em;
            text-transform: uppercase;
        }
        .portal-docs-toolbar__title {
            margin: 0 0 0.45rem;
            font-size: 1.2rem;
            font-weight: 800;
            color: #0f172a;
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }
        .portal-docs-toolbar__title i {
            width: 1.25rem;
            height: 1.25rem;
            color: #4A90E2;
        }
        .portal-docs-toolbar__chip {
            display: inline-flex;
            align-items: center;
            gap: 0.35rem;
            font-size: 0.68rem;
            font-weight: 700;
            letter-spacing: 0.04em;
            text-transform: uppercase;
            color: #475569;
            background: #fff;
            border: 1px solid #e2e8f0;
            padding: 0.35rem 0.65rem;
        }
        .portal-docs-toolbar__chip i {
            width: 0.8rem;
            height: 0.8rem;
            color: #94a3b8;
        }
        .portal-inst-no-file {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.35rem;
            font-size: 0.625rem;
            font-weight: 600;
            text-transform: uppercase;
            color: #94a3b8;
            padding: 0.4rem 0.5rem;
            border: 1px dashed #e2e8f0;
            background: #f8fafc;
            width: 100%;
        }

        .tab-content {
            display: none;
        }
        .tab-content.active {
            display: block;
        }
        .no-scrollbar::-webkit-scrollbar { display: none; }
        .no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

        textarea:disabled { background-color: #f1f5f9; opacity: 0.7; cursor: not-allowed; }

        /* Estilização da Paginação */
        .portal-pagination {
            display: flex;
            align-items: center;
            justify-content: space-between;
            flex-wrap: wrap;
            gap: 0.65rem 1rem;
            width: 100%;
        }
        .portal-pagination__meta {
            font-size: 0.75rem;
            font-weight: 700;
            color: #64748b;
        }
        .portal-pagination__pages {
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 0.3rem;
        }
        .page-btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-width: 2.15rem;
            height: 2.15rem;
            padding: 0 0.55rem;
            border: 1px solid #e5e7eb;
            background-color: white;
            color: #4b5563;
            font-size: 0.8rem;
            font-weight: 700;
            border-radius: 0;
            transition: all 0.2s ease-in-out;
            cursor: pointer;
        }
        .page-ellipsis {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-width: 1.4rem;
            color: #94a3b8;
            font-weight: 800;
        }
        .page-btn:hover:not(:disabled) { background-color: #f3f4f6; color: #111827; }
        .page-btn.active {
            background-color: #4A90E2;
            color: white;
            border-color: #4A90E2;
        }
        .page-btn:disabled { opacity: 0.4; cursor: not-allowed; }

        /* Acessibilidade - Alto Contraste */
        html.high-contrast body, html.high-contrast main, html.high-contrast div, 
        html.high-contrast section, html.high-contrast nav, html.high-contrast footer, 
        html.high-contrast header, html.high-contrast table, html.high-contrast tr, 
        html.high-contrast th, html.high-contrast td {
            background-color: #000000 !important; background-image: none !important;
            color: #FFFFFF !important; border-color: #FFFF00 !important;
        }
        html.high-contrast h1, html.high-contrast h2, html.high-contrast h3, 
        html.high-contrast h4, html.high-contrast h5, html.high-contrast h6, 
        html.high-contrast p, html.high-contrast span, html.high-contrast a, 
        html.high-contrast label, html.high-contrast strong {
            color: #FFFF00 !important; text-shadow: none !important;
        }
        html.high-contrast button, html.high-contrast input, html.high-contrast select, html.high-contrast textarea {
            background-color: #000000 !important; color: #FFFF00 !important; border: 2px solid #FFFFFF !important;
        }
        html.high-contrast svg { color: #FFFF00 !important; stroke: currentColor !important; }
        html.high-contrast img { background-color: transparent !important; filter: drop-shadow(0 0 5px #FFFF00) !important; }
        html.high-contrast .portal-header-logo-link {
            background-color: transparent !important;
            border: none !important;
            box-shadow: none !important;
        }

/* ===== Ouvidoria / e-SIC (portal público) ===== */
#tab-ouvidoria {
    --ouv-accent: #0f766e;
    --ouv-accent-soft: #ecfdf5;
    --ouv-ink: #0f172a;
    --ouv-muted: #64748b;
}
#tab-ouvidoria > .grid:first-child > div {
    border-radius: 1rem;
    border: 1px solid #e2e8f0;
    box-shadow: 0 10px 30px -18px rgba(15, 23, 42, 0.35);
    background:
        linear-gradient(135deg, rgba(15, 118, 110, 0.06), transparent 55%),
        #fff;
}
#tab-ouvidoria .lg\:col-span-2 {
    border-radius: 1.25rem;
    border-color: #e2e8f0;
    box-shadow: 0 18px 40px -28px rgba(15, 23, 42, 0.45);
}
#tab-ouvidoria #ouv-sla-list li {
    padding: 0.55rem 0.75rem;
    border-radius: 0.65rem;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(74, 144, 226, 0.18);
}
#tab-ouvidoria form input[type="text"],
#tab-ouvidoria form input[type="email"],
#tab-ouvidoria form input[type="tel"],
#tab-ouvidoria form select,
#tab-ouvidoria form textarea {
    border-radius: 0.85rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
/* —— Ouvidoria pública modernizada —— */
.portal-ouv-kpis {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-bottom: 1.5rem;
}
@media (min-width: 640px) {
    .portal-ouv-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
    .portal-ouv-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.portal-ouv-kpi__sub {
    margin: 0.3rem 0 0;
    font-size: 0.72rem;
    font-weight: 600;
    color: #94a3b8;
    line-height: 1.3;
}
.portal-ouv-kpi__icon--rose { background: #fff1f2; color: #e11d48; }
.portal-ouv-kpi__value--rose { color: #e11d48; }
.portal-ouv-kpi {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.15rem 1.25rem;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 1rem;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.04);
}
.portal-ouv-kpi__icon {
    width: 3rem;
    height: 3rem;
    border-radius: 0.9rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.portal-ouv-kpi__icon svg { width: 1.4rem; height: 1.4rem; }
.portal-ouv-kpi__icon--blue { background: #eff6ff; color: #2563eb; }
.portal-ouv-kpi__icon--green { background: #ecfdf5; color: #059669; }
.portal-ouv-kpi__icon--amber { background: #fff7ed; color: #ea580c; }
.portal-ouv-kpi__label {
    margin: 0 0 0.2rem;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #64748b;
}
.portal-ouv-kpi__value {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 900;
    color: #0f172a;
    line-height: 1.1;
}
.portal-ouv-kpi__value--green { color: #059669; }
.portal-ouv-kpi__value--amber { color: #ea580c; }

.portal-ouv-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.35rem;
}
@media (min-width: 1024px) {
    .portal-ouv-layout { grid-template-columns: minmax(0, 1.7fr) minmax(17rem, 0.9fr); gap: 1.5rem; }
}
.portal-ouv-main {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 1.15rem;
    padding: 1.5rem 1.35rem 1.75rem;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.04);
}
@media (min-width: 768px) {
    .portal-ouv-main { padding: 1.85rem 1.85rem 2rem; }
}
.portal-ouv-hero {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1.35rem;
}
.portal-ouv-hero__icon {
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 1rem;
    background: linear-gradient(135deg, #ecfeff, #eff6ff);
    color: #0f766e;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.portal-ouv-hero__icon svg { width: 1.55rem; height: 1.55rem; }
.portal-ouv-hero__title {
    margin: 0 0 0.35rem;
    font-size: 1.55rem;
    font-weight: 900;
    color: #0f172a;
    line-height: 1.2;
}
.portal-ouv-hero__text {
    margin: 0;
    color: #64748b;
    font-size: 0.95rem;
    line-height: 1.5;
}
.portal-ouv-closed {
    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
    padding: 1rem 1.1rem;
    margin-bottom: 1.15rem;
    border-radius: 0.9rem;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    color: #9a3412;
}
.portal-ouv-closed.hidden { display: none !important; }
.portal-ouv-closed svg { width: 1.5rem; height: 1.5rem; flex-shrink: 0; margin-top: 0.1rem; }
.portal-ouv-closed strong { display: block; font-size: 0.95rem; margin-bottom: 0.2rem; }
.portal-ouv-closed p { margin: 0; font-size: 0.85rem; line-height: 1.45; color: #c2410c; }
.portal-ouv-sla {
    background: linear-gradient(135deg, #f0fdfa, #eff6ff);
    border: 1px solid #a5f3fc;
    border-left: 4px solid #0f766e;
    border-radius: 0.9rem;
    padding: 1rem 1.1rem;
    margin-bottom: 1.35rem;
    font-size: 0.86rem;
    color: #334155;
}
.portal-ouv-sla h4 {
    margin: 0 0 0.4rem;
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.88rem;
    font-weight: 800;
    color: #0f766e;
}
.portal-ouv-sla h4 svg { width: 1.05rem; height: 1.05rem; }
.portal-ouv-sla p { margin: 0 0 0.65rem; color: #64748b; }
.portal-ouv-sla ul { margin: 0; padding-left: 1.1rem; display: grid; gap: 0.35rem; }
.portal-ouv-form__hint {
    margin: 0 0 0.25rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid #f1f5f9;
    font-size: 0.82rem;
    color: #64748b;
    font-weight: 600;
}
.portal-ouv-form__hint span { color: #dc2626; font-weight: 800; }
.portal-ouv-grid-2 {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}
.portal-ouv-grid-3 {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}
@media (min-width: 768px) {
    .portal-ouv-grid-2 { grid-template-columns: 1fr 1fr; }
    .portal-ouv-grid-3 { grid-template-columns: 1.3fr 1.3fr 1fr; }
    .portal-ouv-field--span2 { grid-column: span 2; }
}
.portal-ouv-field label {
    display: block;
    margin-bottom: 0.4rem;
    font-size: 0.82rem;
    font-weight: 800;
    color: #334155;
}
.portal-ouv-field label span { color: #dc2626; }
.portal-ouv-field label em {
    font-style: normal;
    font-weight: 600;
    color: #94a3b8;
    font-size: 0.75rem;
}
.portal-ouv-field__row {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 0.5rem;
    margin-bottom: 0.4rem;
}
.portal-ouv-field__row label { margin-bottom: 0; }
.portal-ouv-doc-type {
    display: flex;
    gap: 0.75rem;
    font-size: 0.72rem;
    font-weight: 700;
    color: #64748b;
}
.portal-ouv-field input[type="text"],
.portal-ouv-field input[type="email"],
.portal-ouv-field input[type="tel"],
.portal-ouv-field select,
.portal-ouv-field textarea {
    width: 100%;
    padding: 0.85rem 1rem;
    border: 1.5px solid #e2e8f0;
    border-radius: 0.8rem;
    background: #f8fafc;
    font-size: 0.95rem;
    font-weight: 500;
    color: #0f172a;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.portal-ouv-field input:focus,
.portal-ouv-field select:focus,
.portal-ouv-field textarea:focus {
    border-color: #0f766e;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.12);
}
.portal-ouv-radios {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    min-height: 3.1rem;
    padding: 0 1rem;
    border: 1.5px solid #e2e8f0;
    border-radius: 0.8rem;
    background: #f8fafc;
    font-weight: 700;
    color: #334155;
}
.portal-ouv-radios label { display: inline-flex; align-items: center; gap: 0.4rem; margin: 0; cursor: pointer; }
.portal-ouv-upload { position: relative; }
.portal-ouv-upload input[type="file"] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
    z-index: 2;
}
.portal-ouv-upload__box {
    border: 1.5px dashed #cbd5e1;
    border-radius: 0.9rem;
    background: #f8fafc;
    padding: 1.35rem 1rem;
    text-align: center;
    transition: border-color 0.15s ease, background 0.15s ease;
}
.portal-ouv-upload:hover .portal-ouv-upload__box {
    border-color: #0f766e;
    background: #f0fdfa;
}
.portal-ouv-upload__box svg { width: 1.75rem; height: 1.75rem; color: #94a3b8; margin: 0 auto 0.45rem; }
.portal-ouv-upload__box p { margin: 0; font-size: 0.88rem; font-weight: 700; color: #475569; }
.portal-ouv-upload__box span { font-size: 0.72rem; color: #94a3b8; }
.portal-ouv-file-list { margin: 0.75rem 0 0; padding: 0; list-style: none; display: grid; gap: 0.4rem; }
.portal-ouv-lgpd {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    font-size: 0.84rem;
    color: #475569;
    line-height: 1.45;
    cursor: pointer;
}
.portal-ouv-lgpd input { margin-top: 0.2rem; width: 1.1rem; height: 1.1rem; accent-color: #0f766e; flex-shrink: 0; }
.portal-ouv-link {
    appearance: none;
    background: none;
    border: none;
    padding: 0;
    color: #0f766e;
    font-weight: 800;
    text-decoration: underline;
    cursor: pointer;
}
.portal-ouv-actions {
    padding-top: 0.85rem;
    border-top: 1px solid #f1f5f9;
}
.portal-ouv-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    min-height: 3rem;
    padding: 0.85rem 1.5rem;
    border: none;
    border-radius: 0.85rem;
    background: linear-gradient(135deg, #0f766e, #0284c7);
    color: #fff;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    cursor: pointer;
    box-shadow: 0 10px 22px rgba(15, 118, 110, 0.25);
    transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease;
}
.portal-ouv-submit svg { width: 1.1rem; height: 1.1rem; }
.portal-ouv-submit:hover:not(:disabled):not(.is-disabled) {
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(2, 132, 199, 0.28);
}
.portal-ouv-submit.is-disabled,
.portal-ouv-submit:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    box-shadow: none;
    transform: none;
}
.portal-ouv-form.is-locked {
    opacity: 0.55;
    pointer-events: none;
    filter: grayscale(0.15);
}
.portal-ouv-aside { display: grid; gap: 1rem; align-content: start; }
.portal-ouv-protocol {
    background: linear-gradient(160deg, #ecfeff, #f0fdf4);
    border: 1px solid #a5f3fc;
    border-radius: 1rem;
    padding: 1.25rem 1.2rem 1.35rem;
}
.portal-ouv-protocol h3 {
    margin: 0 0 0.45rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 1.05rem;
    font-weight: 900;
    color: #0f172a;
}
.portal-ouv-protocol h3 svg { width: 1.2rem; height: 1.2rem; color: #0f766e; }
.portal-ouv-protocol p {
    margin: 0 0 0.95rem;
    font-size: 0.86rem;
    color: #64748b;
    line-height: 1.45;
}
.portal-ouv-protocol__form { display: grid; gap: 0.65rem; }
.portal-ouv-protocol__form input {
    width: 100%;
    padding: 0.8rem 0.95rem;
    border: 1.5px solid #cbd5e1;
    border-radius: 0.75rem;
    background: #fff;
    font-weight: 600;
    outline: none;
}
.portal-ouv-protocol__form input:focus {
    border-color: #0f766e;
    box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.12);
}
.portal-ouv-protocol__form button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-height: 2.7rem;
    border: 1.5px solid #0f766e;
    border-radius: 0.75rem;
    background: #fff;
    color: #0f766e;
    font-weight: 800;
    font-size: 0.85rem;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}
.portal-ouv-protocol__form button:hover {
    background: #0f766e;
    color: #fff;
}
.portal-ouv-protocol__form button svg { width: 1rem; height: 1rem; }
.portal-ouv-canais {
    background: linear-gradient(160deg, #0f172a 0%, #1e293b 55%, #0f766e 140%);
    color: #e2e8f0;
    border-radius: 1rem;
    padding: 1.25rem 1.2rem 1.4rem;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.22);
    position: relative;
    overflow: hidden;
}
.portal-ouv-canais h3 {
    margin: 0 0 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid rgba(255,255,255,0.14);
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 1.05rem;
    font-weight: 900;
    color: #fff;
}
.portal-ouv-canais h3 svg { width: 1.2rem; height: 1.2rem; color: #5eead4; }
.portal-ouv-canais__list { display: grid; gap: 0.95rem; }
.portal-ouv-canais__loading { margin: 0; font-size: 0.85rem; color: #94a3b8; }
.portal-ouv-canal {
    display: flex;
    gap: 0.7rem;
    align-items: flex-start;
}
.portal-ouv-canal__icon {
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 0.65rem;
    background: rgba(255,255,255,0.08);
    color: #5eead4;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.portal-ouv-canal__icon svg { width: 1rem; height: 1rem; }
.portal-ouv-canal strong {
    display: block;
    color: #fff;
    font-size: 0.9rem;
    font-weight: 800;
    margin-bottom: 0.15rem;
}
.portal-ouv-canal p {
    margin: 0;
    font-size: 0.84rem;
    color: #cbd5e1;
    line-height: 1.4;
    white-space: pre-line;
}
.portal-ouv-canal a {
    color: #99f6e4;
    text-decoration: underline;
    font-weight: 700;
}
.portal-ouv-canal__horario {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.72rem;
    color: #94a3b8;
}
/* =========================================================================
   RESPONSIVO — layout, filtros e tabelas de resultados
   ========================================================================= */

@media (max-width: 1023px) {
    #main-content,
    .portal-main {
        width: min(96%, 100%) !important;
        max-width: 100%;
        padding-top: 1.35rem;
        padding-bottom: 5.5rem;
    }

    /* Colunas filtro + resultado mais compactas */
    #tab-institucional > .flex,
    #tab-financas > .flex,
    #tab-rh > .flex {
        gap: 1rem !important;
    }

    /* Sub-abas Finanças/RH em faixa horizontal rolável */
    .portal-subtabs {
        flex-direction: row !important;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        gap: 0.4rem !important;
        padding: 0.45rem !important;
        scrollbar-width: none;
    }
    .portal-subtabs::-webkit-scrollbar {
        display: none;
    }
    .portal-subtabs > button {
        flex: 1 0 auto;
        white-space: nowrap;
        padding: 0.7rem 0.85rem !important;
        font-size: 0.78rem !important;
    }

    /* Painéis de filtro mais densos */
    .portal-filter-panel {
        padding: 1rem 0.95rem 1.1rem;
    }
    .portal-filter-panel__title {
        font-size: 0.95rem;
    }
    .portal-filter-field {
        margin-bottom: 0.75rem;
    }
    .portal-filter-field select,
    .portal-filter-field input[type="text"],
    .portal-filter-field input[type="search"] {
        padding: 0.62rem 0.7rem;
        font-size: 0.84rem;
    }
    .portal-filter-actions {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 0.5rem;
    }
    .portal-filter-actions__apply,
    .portal-filter-actions__clear {
        flex: 1 1 auto;
        min-width: 7.5rem;
    }

    /* Toolbar de resultados */
    .portal-docs-toolbar {
        flex-direction: column;
        align-items: stretch;
        gap: 0.75rem;
        padding: 0.95rem 1rem;
    }
    .portal-docs-toolbar__title {
        font-size: 1.05rem;
    }
    .portal-docs-toolbar .portal-filter-field--search {
        max-width: none !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    /* Tabelas: scroll horizontal real (não esmagar colunas) */
    .overflow-x-auto {
        position: relative;
        margin: 0;
        border-top: 1px solid #f1f5f9;
        scrollbar-width: thin;
        scrollbar-color: #94a3b8 #f1f5f9;
    }
    .overflow-x-auto:has(> .iprax-table)::before,
    .overflow-x-auto:has(> table)::before {
        content: 'Deslize para ver mais →';
        display: block;
        position: sticky;
        left: 0;
        z-index: 2;
        padding: 0.4rem 0.85rem;
        font-size: 0.65rem;
        font-weight: 800;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        color: #64748b;
        background: linear-gradient(90deg, #f8fafc 70%, rgba(248, 250, 252, 0));
        border-bottom: 1px solid #eef2f7;
        pointer-events: none;
    }
    .overflow-x-auto > .iprax-table,
    .overflow-x-auto > table.iprax-table {
        table-layout: auto !important;
        width: max-content;
        min-width: 100%;
        max-width: none;
    }
    .iprax-table thead th,
    .iprax-table tbody td {
        padding: 0.7rem 0.85rem;
        font-size: 0.8rem;
        white-space: nowrap;
        word-break: normal;
        overflow-wrap: normal;
    }
    .iprax-table thead th {
        font-size: 0.65rem;
        position: sticky;
        top: 0;
        z-index: 1;
        background: #f8fafc;
    }
    /* Coluna de ações legível */
    .iprax-table .col-acoes,
    .iprax-table th.w-20,
    .iprax-table td.w-20,
    .iprax-table td.col-acoes {
        position: sticky;
        left: 0;
        z-index: 2;
        background: #fff;
        box-shadow: 4px 0 10px -8px rgba(15, 23, 42, 0.35);
        white-space: nowrap;
        min-width: 6.5rem;
        width: auto;
    }
    .iprax-table thead th.w-20,
    .iprax-table thead th.col-acoes {
        z-index: 3;
        background: #f8fafc;
    }
    .iprax-table tbody td .portal-comp-cell,
    .iprax-table tbody td .text-xs {
        white-space: normal;
        max-width: 16rem;
    }

    /* Rodapé de paginação das tabelas */
    #inst-sub-dados > .p-5,
    #fin-sub-dados > .p-5,
    #rh-sub-dados > .p-5,
    #inst-sub-dados > div.border-t,
    #fin-sub-dados > div.border-t,
    #rh-sub-dados > div.border-t {
        display: flex !important;
        flex-direction: column;
        align-items: stretch !important;
        gap: 0.65rem;
        padding: 0.85rem 1rem !important;
    }
    #inst-pagination-info,
    #fin-pagination-info,
    #rh-pagination-info {
        font-size: 0.75rem !important;
        text-align: left;
    }
    #inst-pagination-controls,
    #fin-pagination-controls,
    #rh-pagination-controls {
        display: flex;
        flex-wrap: wrap;
        gap: 0.3rem;
        justify-content: flex-start;
    }

    .portal-pagination {
        flex-direction: column;
        align-items: stretch;
    }
    .portal-pagination__pages {
        justify-content: flex-start;
    }

    .portal-export-group {
        display: flex;
        flex-wrap: wrap;
        gap: 0.4rem;
        width: 100%;
    }
    .portal-export-btn {
        flex: 1 1 auto;
        min-height: 2.4rem;
        justify-content: center;
    }
}

@media (max-width: 767px) {
    #main-content,
    .portal-main {
        width: 100% !important;
        padding-left: 0.9rem;
        padding-right: 0.9rem;
        padding-top: 1rem;
        padding-bottom: 6rem;
    }

    /* Home e cards gerais */
    .tab-content .grid {
        gap: 0.85rem;
    }

    /* Header de resultados Finanças/RH */
    #tab-financas .w-full.lg\:w-\[72%] > .bg-white.p-6,
    #tab-rh .w-full.lg\:w-\[72%] > .bg-white.p-6 {
        padding: 1rem !important;
        margin-bottom: 0.85rem !important;
    }
    #tab-financas .w-full.lg\:w-\[72%] > .bg-white.p-6 h2,
    #tab-rh .w-full.lg\:w-\[72%] > .bg-white.p-6 h2 {
        font-size: 1.05rem !important;
        line-height: 1.3;
        margin-bottom: 0.5rem !important;
    }
    #tab-financas .w-full.lg\:w-\[72%] > .bg-white.p-6 h2 i,
    #tab-rh .w-full.lg\:w-\[72%] > .bg-white.p-6 h2 i {
        width: 1.25rem !important;
        height: 1.25rem !important;
        margin-right: 0.5rem !important;
    }

    /* Filtros laterais Finanças/RH */
    #tab-financas .portal-sticky-sidebar.bg-white,
    #tab-rh .portal-sticky-sidebar.bg-white {
        padding: 1rem !important;
    }
    #tab-financas .portal-sticky-sidebar.bg-white h3,
    #tab-rh .portal-sticky-sidebar.bg-white h3 {
        font-size: 1rem !important;
        margin-bottom: 0.85rem !important;
        padding-bottom: 0.65rem !important;
    }
    #tab-financas .portal-sticky-sidebar .space-y-5,
    #tab-rh .portal-sticky-sidebar .space-y-5 {
        gap: 0.75rem;
    }

    .portal-filter-bar {
        grid-template-columns: 1fr;
        gap: 0.65rem;
        padding: 0.85rem;
        margin-bottom: 0.9rem;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        overflow: hidden;
    }
    .portal-filter-bar__search,
    .portal-filter-bar__clear {
        grid-column: 1 / -1;
    }

    /* Prestação de contas */
    .portal-filter-bar.cont-agir-filter-bar,
    .cont-agir-filter-bar {
        display: flex !important;
        flex-wrap: wrap !important;
        grid-template-columns: none !important;
    }
    .cont-unidades-grid {
        grid-template-columns: 1fr !important;
        gap: 0.9rem;
        padding-left: 0.15rem;
        padding-right: 0.15rem;
    }
    .cont-agir-cards {
        grid-template-columns: 1fr !important;
        gap: 0.75rem;
    }
    .cont-agir-cards__col {
        gap: 0.75rem;
    }

    /* Ouvidoria */
    .portal-ouv-layout {
        grid-template-columns: 1fr !important;
        gap: 1rem;
    }
    .portal-ouv-grid-2,
    .portal-ouv-grid-3 {
        grid-template-columns: 1fr !important;
    }
    .portal-ouv-kpis {
        grid-template-columns: 1fr 1fr !important;
        gap: 0.65rem;
    }
    .portal-ouv-kpi {
        padding: 0.85rem 0.75rem;
    }
    .portal-ouv-kpi__value {
        font-size: 1.25rem;
    }
    .portal-ouv-kpi__label {
        font-size: 0.62rem;
    }
    .portal-ouv-kpi__sub {
        font-size: 0.65rem;
    }

    /* Tabelas ainda mais compactas no telefone */
    .overflow-x-auto.min-h-\[400px\] {
        min-height: 16rem !important;
    }
    .iprax-table thead th,
    .iprax-table tbody td {
        padding: 0.6rem 0.7rem;
        font-size: 0.78rem;
    }
    .portal-inst-download-btn {
        min-height: 2.1rem;
        padding: 0.35rem 0.65rem;
        font-size: 0.65rem;
    }
    .portal-inst-download-btn span {
        display: none;
    }

    /* Nav tablet escondida; se aparecer em algum caso, scroll horizontal */
    .portal-header-nav__inner {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        gap: 0.25rem;
        scrollbar-width: none;
        padding-bottom: 2px;
    }
    .portal-header-nav__inner::-webkit-scrollbar { display: none; }
    .header-nav-btn {
        flex: 0 0 auto;
        white-space: nowrap;
    }

    /* Espaço do bot flutuante não esmaga paginação */
    body {
        padding-right: 0 !important;
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    .portal-header-nav {
        overflow: visible;
    }
    .portal-header-nav__inner {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        gap: 0.35rem;
        scrollbar-width: thin;
        justify-content: flex-start;
    }
    .header-nav-btn {
        flex: 0 0 auto;
        padding-left: 0.85rem;
        padding-right: 0.85rem;
        font-size: 0.8rem;
    }

    #portal-header-main .portal-header-inner {
        width: min(94%, 100%);
    }

    .portal-header-brand {
        flex: 1 1 12rem;
        min-width: 0;
    }

    .portal-header-search {
        flex: 1 1 100%;
        max-width: none;
        width: 100%;
    }
}

@media (min-width: 1024px) {
    .overflow-x-auto:has(> .iprax-table)::before,
    .overflow-x-auto:has(> table)::before {
        content: none;
        display: none;
    }
}
