 <style>
        body {
            background-color: #f4f4f4;
            font-family: 'Montserrat', sans-serif;
            font-size: 0.95rem;
            color: #333;
            display: flex;
            flex-direction: column;
            min-height: 100vh;
        }

        main {
            flex: 1;
        }

        .pad-lateral {
            padding-left: 1rem;
            padding-right: 1rem;
        }

        @media (min-width: 768px) {
            .pad-lateral {
                padding-left: 3rem;
                padding-right: 3rem;
            }
        }

        @media (min-width: 1200px) {
            .pad-lateral {
                padding-left: 6vw;
                padding-right: 6vw;
            }
        }

        @media (min-width: 1600px) {
            .pad-lateral {
                padding-left: 10vw;
                padding-right: 10vw;
            }
        }

        :root {
          /* Cores oficiais do Manual de Identidade Visual da UFLA */
            --azul-ufla: #004B80; 
            --verde-ufla: #00943E;
            
            /* Mapeando as variáveis do seu layout para as cores da UFLA */
            --verde-if: var(--azul-ufla); /* Usando o Azul como cor principal do cabeçalho/destaques */
            --verde-hover: #00365d; /* Um tom de azul levemente mais escuro para o hover dos botões */
            --vermelho-if: #C8191E; /* Mantido para os alertas de erro/remoção */
            --cinza-input: #495057;
        }

        .text-ifpe-green {
            color: var(--verde-if) !important;
        }

        .text-ifpe-red {
            color: var(--vermelho-if) !important;
        }

        .text-ifpe-warning {
            color: #d39e00 !important;
        }

        .ifpe-topbar {
            background-color: #F8F9FA;
            color: #333;
            font-size: 0.8rem;
            padding: 5px 0;
            border-bottom: 1px solid #ddd;
        }

        .ifpe-header {
            background-color: var(--verde-if);
            color: white;
            padding: 2rem 0;
        }

        .ifpe-card-header {
            background-color: var(--verde-ufla); /* Usa a nova variável do Verde Institucional */
            border-bottom: 1px solid #dee2e6;
            color: #fff; /* Mantém o texto em branco para dar contraste */
            font-weight: 600;
        }

        .ifpe-alert {
            background-color: #E8F1F8; /* Fundo azul bem claro e suave */
            border-left: 5px solid var(--azul-ufla); /* Borda no Azul UFLA principal */
            color: #00223D; /* Texto em um azul bem escuro para facilitar a leitura */
        }

        .sticky-summary {
            position: sticky;
            top: 20px;
            z-index: 1000;
        }

        .input-qty {
            width: 60px;
            text-align: center;
            font-weight: bold;
            border: 1px solid #ced4da;
            color: var(--cinza-input);
        }

        .input-qty:focus {
            box-shadow: 0 0 0 0.25rem rgba(30, 122, 45, 0.15);
            border-color: var(--verde-if);
        }

        .btn-minus {
            border-color: #dc3545;
            color: #dc3545;
            background: #fff;
        }

        .btn-minus:hover {
            background: #dc3545;
            color: #fff;
        }

        .btn-plus {
            border-color: var(--verde-if);
            color: var(--verde-if);
            background: #fff;
        }

        .btn-plus:hover {
            background: var(--verde-hover);
            border-color: var(--verde-hover);
            color: #fff;
        }

        .pts-column {
            color: var(--cinza-input);
        }

        input[type=number]::-webkit-inner-spin-button,
        input[type=number]::-webkit-outer-spin-button {
            -webkit-appearance: none;
            margin: 0;
        }

        input[type=number] {
            -moz-appearance: textfield;
        }

        .row-total {
            font-weight: bold;
            color: var(--verde-if);
            font-size: 1.1rem;
        }

        .unidade-badge {
            background-color: #E9ECEF;
            color: #495057;
            font-size: 0.75rem;
            padding: 4px 8px;
            border-radius: 12px;
            display: inline-block;
            white-space: nowrap;
        }

        .obs-text {
            font-size: 0.8rem;
            color: var(--vermelho-if);
            display: block;
            margin-top: 4px;
            font-weight: 500;
            cursor: help;
        }

        .table-responsive {
            overflow-x: auto;
        }

        .iq-badge {
            background-color: #e9ecef;
            border: 1px solid #ced4da;
            padding: 2px 6px;
            border-radius: 4px;
            font-size: 0.8rem;
            color: #495057;
            font-weight: 500;
            margin-left: 8px;
        }

        .search-container {
            position: relative;
        }

        .search-icon {
            position: absolute;
            left: 15px;
            top: 50%;
            transform: translateY(-50%);
            color: #6c757d;
        }

        .clear-icon {
            position: absolute;
            right: 15px;
            top: 50%;
            transform: translateY(-50%);
            color: #a0aec0;
            cursor: pointer;
            transition: 0.2s;
        }

        .clear-icon:hover {
            color: var(--vermelho-if);
        }

        .search-input {
            padding-left: 45px;
            padding-right: 40px;
            border: 1px solid #ced4da;
            border-radius: 8px;
            font-weight: 500;
            color: var(--cinza-input);
        }

        .search-input:focus {
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
            border-color: var(--verde-if);
        }

        .search-input::placeholder {
            color: #a0aec0;
            font-weight: 400;
        }

        .progress-table th,
        .progress-table td {
            border-bottom: 1px solid #f1f3f5;
        }

        .progress-table tr:last-child td {
            border-bottom: none;
        }

        .bg-achieved {
            background-color: #f6fdf7;
            transition: 0.3s;
        }

        .bg-warning-req {
            background-color: #fffdf5;
            transition: 0.3s;
        }

        .ifpe-footer {
            background-color: #212529;
            color: #adb5bd;
            padding: 2rem 0 1.5rem;
            margin-top: 3rem;
            font-size: 0.85rem;
        }

        .ifpe-footer a {
            color: #e9ecef;
            text-decoration: none;
            transition: 0.2s;
        }

        .ifpe-footer a:hover {
            color: var(--verde-if);
            text-decoration: underline;
        }

        .footer-logo i {
            font-size: 2rem;
            color: var(--verde-if);
        }

        .footer-divider {
            border-color: rgba(255, 255, 255, 0.1);
            margin: 1.5rem 0 1rem;
        }

        .btn-ufla {
            background-color: var(--verde-ufla);
            border-color: var(--verde-ufla);
            color: #ffffff;
            transition: all 0.2s;
        }

        .btn-ufla:hover {
            background-color: #006B3E; /* Cor Verde-UFLA Escuro do manual para o hover */
            border-color: #006B3E;
            color: #ffffff;
        }

        /* Cor de texto Verde UFLA para ícones e destaques */
        .text-ufla {
            color: #00943E !important; 
        }
        
    </style>