        body { font-family: 'Inter', sans-serif; scroll-behavior: smooth; }
        .main-nav-button { transition: all 0.3s ease; }
        .main-nav-button.active { background-color: #2563eb; /* blue-600 */ color: white; }
        .main-nav-button:not(.active):hover { background-color: #1d4ed8; /* blue-700 */ color: white; }
        
        .sub-nav-button { transition: all 0.2s ease; border-left: 4px solid transparent; padding: 0.6rem 0.75rem; font-size: 0.875rem; }
        .sub-nav-button.active { border-left-color: #2563eb; /* blue-600 */ background-color: #eff6ff; /* blue-50 */ color: #2563eb; /* blue-600 */ font-weight: 600;}
        .sub-nav-button:hover:not(.active) { background-color: #dbeafe; /* blue-100 */ border-left-color: #60a5fa; /* sky-400 */}
        
        .content-pane { display: none; animation: fadeIn 0.5s; }
        .content-pane.active { display: block; }
        @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

        .chart-container { position: relative; width: 100%; max-width: 550px; margin-left: auto; margin-right: auto; height: 280px; max-height: 320px; }
        @media (min-width: 768px) { .chart-container { height: 300px; } }
        
        details > summary { cursor: pointer; font-weight: 600; padding: 0.75rem 1rem; background-color: #e0f2fe; /* sky-100 */ border-radius: 0.375rem; margin-bottom: 0.5rem; border: 1px solid #bae6fd; /* sky-200 */ display: flex; justify-content: space-between; align-items: center;}
        details > summary:hover { background-color: #bfdbfe; /* blue-200 */ }
        details[open] > summary { background-color: #bfdbfe; /* blue-200 */ }
        details > summary::after { content: '\2795'; /* Plus */ font-size: 0.8em; transition: transform 0.2s; }
        details[open] > summary::after { content: '\2796'; /* Minus */ }
        
        .table-container table { width: 100%; border-collapse: collapse; margin-top: 0.5rem; }
        .table-container th, .table-container td { border: 1px solid #cbd5e1; /* slate-300 */ padding: 0.6rem 0.75rem; text-align: left; font-size: 0.875rem; }
        .table-container th { background-color: #f1f5f9; /* slate-100 */ font-weight: 600; }
        .table-container .no-results { text-align: center; padding: 1rem; font-style: italic; color: #64748b; /* slate-500 */ }
        
        .search-input, #isnStateSelectorFull { padding: 0.6rem; border: 1px solid #cbd5e1; /* slate-300 */ border-radius: 0.375rem; margin-bottom: 1rem; font-size: 0.9rem; }
        
        .modal { display: none; position: fixed; z-index: 1050; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0,0,0,0.6); }
        .modal-content { background-color: #ffffff; margin: 5% auto; padding: 25px; border: 1px solid #e2e8f0; /* slate-200 */ width: 90%; max-width: 800px; border-radius: 0.5rem; box-shadow: 0 10px 25px rgba(0,0,0,0.1); }
        .close-button { color: #94a3b8; /* slate-400 */ float: right; font-size: 32px; font-weight: bold; line-height: 1; }
        .close-button:hover, .close-button:focus { color: #1e293b; /* slate-800 */ text-decoration: none; cursor: pointer; }
        
        #isnInfoContainerFull .info-label { font-weight: 600; color: #1d4ed8; /* blue-700 */ }
        
        .tooltip { position: relative; display: inline-block; cursor: help; border-bottom: 1px dotted #2563eb; /* blue-600 */ }
        .tooltip .tooltiptext { visibility: hidden; width: 280px; background-color: #1e293b; /* slate-800 */ color: #fff; text-align: left; border-radius: 6px; padding: 10px; position: absolute; z-index: 100; bottom: 130%; left: 50%; margin-left: -140px; opacity: 0; transition: opacity 0.3s; font-size: 0.85rem; line-height: 1.5; box-shadow: 0 2px 8px rgba(0,0,0,0.3); }
        .tooltip .tooltiptext::after { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -6px; border-width: 6px; border-style: solid; border-color: #1e293b transparent transparent transparent; }
        .tooltip:hover .tooltiptext { visibility: visible; opacity: 1; }
        
        .alert-box { padding: 1.25rem; border-radius: 0.5rem; margin-bottom: 1.5rem; border-width: 1px; }
        .alert-info { background-color: #eff6ff; /* blue-50 */ border-color: #93c5fd; /* blue-300 */ color: #1e40af; /* blue-800 */ }
        .alert-warning { background-color: #fffbeb; /* amber-50 */ border-color: #fcd34d; /* amber-300 */ color: #b45309; /* amber-700 */ }
        .alert-tip { background-color: #f0fdf4; /* green-50 */ border-color: #86efac; /* green-300 */ color: #15803d; /* green-700 */ }
        .alert-reforma { background-color: #fef2f2; /* red-50 */ border-color: #fca5a5; /* red-300 */ color: #b91c1c; /* red-700 */ }
        .alert-box h3, .alert-box h4 { margin-bottom: 0.5rem; }

        .flowchart { border: 1px solid #93c5fd; /* blue-300 */ border-radius: 0.375rem; padding: 1rem; background-color: #eff6ff; /* blue-50 */ }
        .flowchart-step { background-color: white; border: 1px solid #60a5fa; /* sky-400 */ padding: 0.75rem; margin-bottom: 0.75rem; border-radius: 0.25rem; box-shadow: 0 1px 3px rgba(0,0,0,0.05); }
        .flowchart-arrow { text-align: center; font-size: 1.5rem; color: #2563eb; /* blue-600 */ margin: -0.25rem 0; }
        .sub-content-pane h2 { border-bottom: 2px solid #60a5fa; /* sky-400 */ padding-bottom: 0.5rem; margin-bottom: 1rem; }
        .sub-content-pane h3 { margin-top: 1.25rem; color: #1e3a8a; /* blue-800 */ }
        .citation { font-size: 0.7rem; color: #475569; /* slate-600 */ margin-left: 4px; }
        .citation-block { font-size: 0.75rem; color: #4b5563; /* gray-600 */ margin-top: 0.5rem; padding-left: 1rem; border-left: 2px solid #d1d5db; /* gray-300 */ }
        .export-button-placeholder { display: inline-block; background-color: #e5e7eb; color: #4b5563; padding: 0.3rem 0.6rem; border-radius: 0.25rem; font-size: 0.75rem; margin-top: 0.5rem; cursor: not-allowed; }