@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Manrope:wght@600;700;800&display=swap');

:root {
    --public-primary: #123a66;
    --public-primary-dark: #0b294a;
    --public-accent: #1f7a67;
    --public-accent-soft: #e7f4f0;
    --public-bg: #f5f7fa;
    --public-surface: #ffffff;
    --public-text: #172033;
    --public-muted: #617086;
    --public-border: #dce3ec;
    --public-shadow: 0 18px 45px rgba(19, 42, 75, 0.09);
    --public-radius: 18px;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    color: var(--public-text);
    background: var(--public-bg);
    font-family: Inter, Arial, sans-serif;
    line-height: 1.6;
}

body.menu-open {
    overflow: hidden;
}

a {
    color: inherit;
}

button,
input,
select,
textarea {
    font: inherit;
}

button,
select {
    cursor: pointer;
}

.public-container {
    width: min(1180px, calc(100% - 40px));
    margin-inline: auto;
}

.skip-link {
    position: fixed;
    z-index: 9999;
    top: -80px;
    left: 20px;
    padding: 12px 18px;
    color: #fff;
    background: var(--public-primary);
    border-radius: 8px;
}

.skip-link:focus {
    top: 15px;
}

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

.public-header {
    position: sticky;
    z-index: 1000;
    top: 0;
    border-bottom: 1px solid rgba(220, 227, 236, 0.9);
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(14px);
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 78px;
    gap: 24px;
}

.public-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
}

.brand-symbol {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    color: #fff;
    background: linear-gradient(135deg, var(--public-primary), #1e5e9d);
    border-radius: 14px;
    font-family: Manrope, sans-serif;
    font-weight: 800;
}

.public-brand > span:last-child {
    display: grid;
    line-height: 1.2;
}

.public-brand strong {
    font-family: Manrope, sans-serif;
    font-size: 15px;
}

.public-brand small {
    margin-top: 3px;
    color: var(--public-muted);
    font-size: 11px;
}

.public-nav {
    display: flex;
    align-items: center;
    gap: 7px;
}

.public-nav a {
    padding: 10px 12px;
    color: #3e4c60;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}

.public-nav a:hover,
.public-nav a.is-active {
    color: var(--public-primary);
    background: #edf3f9;
}

.public-nav .admin-access {
    margin-left: 8px;
    padding-inline: 16px;
    color: #fff;
    background: var(--public-primary);
}

.public-nav .admin-access:hover {
    color: #fff;
    background: var(--public-primary-dark);
}

.mobile-menu-button {
    display: none;
    width: 44px;
    height: 44px;
    padding: 10px;
    border: 0;
    background: transparent;
}

.mobile-menu-button span {
    display: block;
    height: 2px;
    margin: 5px 0;
    background: var(--public-primary);
}

.public-hero {
    position: relative;
    overflow: hidden;
    padding: 86px 0 74px;
    color: #fff;
    background:
        radial-gradient(circle at 88% 15%, rgba(63, 148, 134, 0.35), transparent 28%),
        linear-gradient(135deg, #0b294a 0%, #123a66 55%, #165878 100%);
}

.public-hero::after {
    content: "";
    position: absolute;
    right: -160px;
    bottom: -250px;
    width: 520px;
    height: 520px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 50%;
}

.hero-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(320px, 0.75fr);
    gap: 70px;
    align-items: center;
}

.eyebrow {
    display: inline-block;
    color: var(--public-accent);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.public-hero .eyebrow,
.public-cta .eyebrow {
    color: #8ad2c4;
}

.hero-content h1 {
    max-width: 760px;
    margin: 14px 0 18px;
    font-family: Manrope, sans-serif;
    font-size: clamp(38px, 5vw, 62px);
    line-height: 1.08;
    letter-spacing: -0.04em;
}

.hero-content h1 span {
    color: #8ad2c4;
}

.hero-content > p {
    max-width: 650px;
    margin: 0;
    color: rgba(255, 255, 255, 0.8);
    font-size: 18px;
}

.hero-search {
    display: flex;
    max-width: 690px;
    margin-top: 30px;
    padding: 7px;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.18);
}

.hero-search input {
    min-width: 0;
    flex: 1;
    padding: 13px 15px;
    border: 0;
    outline: 0;
}

.hero-search button {
    padding: 12px 24px;
    color: #fff;
    border: 0;
    background: var(--public-accent);
    border-radius: 10px;
    font-weight: 700;
}

.hero-links {
    display: flex;
    gap: 24px;
    margin-top: 22px;
}

.hero-links a {
    color: rgba(255, 255, 255, 0.9);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.hero-panel {
    padding: 26px;
    color: var(--public-text);
    background: rgba(255, 255, 255, 0.97);
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 22px;
    box-shadow: 0 28px 70px rgba(0, 0, 0, 0.2);
}

.year-selector {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--public-border);
}

.year-selector label {
    color: var(--public-muted);
    font-size: 13px;
    font-weight: 700;
}

.year-selector select,
.inline-year-filter select,
.profile-heading select {
    padding: 9px 32px 9px 12px;
    border: 1px solid var(--public-border);
    background: #fff;
    border-radius: 10px;
    font-weight: 700;
}

.hero-budget {
    display: grid;
    gap: 4px;
    margin: 24px 0;
}

.hero-budget small,
.finance-big-value small {
    color: var(--public-muted);
}

.hero-budget strong {
    color: var(--public-primary);
    font-family: Manrope, sans-serif;
    font-size: 32px;
}

.progress-group {
    margin-top: 18px;
}

.progress-label {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
    font-size: 13px;
}

.progress-label span {
    color: var(--public-muted);
}

.progress-track,
.mini-progress {
    overflow: hidden;
    height: 9px;
    background: #e5ebf1;
    border-radius: 999px;
}

.progress-track span,
.mini-progress span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--public-accent), #4aaf9a);
    border-radius: inherit;
}

.progress-secondary span {
    background: linear-gradient(90deg, #235f9d, #4f92d3);
}

.public-section {
    padding: 72px 0;
}

.metrics-section {
    position: relative;
    z-index: 2;
    padding: 0;
}

.metrics-section .public-container {
    margin-top: -32px;
}

.public-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    background: var(--public-surface);
    border: 1px solid var(--public-border);
    border-radius: var(--public-radius);
    box-shadow: var(--public-shadow);
}

.public-metrics article {
    position: relative;
    display: grid;
    gap: 5px;
    padding: 26px;
}

.public-metrics article + article {
    border-left: 1px solid var(--public-border);
}

.metric-symbol {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    margin-bottom: 5px;
    color: var(--public-primary);
    background: #eaf1f8;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 800;
}

.public-metrics small {
    color: var(--public-muted);
    font-size: 12px;
    font-weight: 700;
}

.public-metrics strong {
    font-family: Manrope, sans-serif;
    font-size: clamp(19px, 2vw, 25px);
}

.section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 28px;
}

.section-heading.compact {
    align-items: center;
}

.section-heading h2 {
    margin: 5px 0 0;
    font-family: Manrope, sans-serif;
    font-size: 31px;
    letter-spacing: -0.025em;
}

.section-heading > a,
.section-heading > span {
    color: var(--public-primary);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.amendment-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.amendment-card,
.councilor-card {
    display: flex;
    flex-direction: column;
    padding: 24px;
    background: var(--public-surface);
    border: 1px solid var(--public-border);
    border-radius: var(--public-radius);
    box-shadow: 0 9px 30px rgba(19, 42, 75, 0.05);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.amendment-card:hover,
.councilor-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--public-shadow);
}

.card-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: var(--public-muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.public-status {
    display: inline-flex;
    align-items: center;
    padding: 6px 9px;
    color: #16624f;
    background: var(--public-accent-soft);
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0;
    white-space: nowrap;
    text-transform: uppercase;
}

.large-status {
    padding: 9px 13px;
}

.amendment-card h3 {
    margin: 18px 0 9px;
    font-family: Manrope, sans-serif;
    font-size: 19px;
    line-height: 1.35;
}

.amendment-card h3 a,
.public-list-card h2 a,
.councilor-card h2 a {
    text-decoration: none;
}

.amendment-card h3 a:hover,
.public-list-card h2 a:hover,
.councilor-card h2 a:hover {
    color: var(--public-primary);
}

.amendment-card > p,
.public-list-card p {
    color: var(--public-muted);
    font-size: 14px;
}

.card-details {
    display: grid;
    gap: 10px;
    margin: 16px 0;
}

.card-details div,
.list-details div,
.detail-grid div,
.councilor-values div {
    display: grid;
    gap: 2px;
}

.card-details dt,
.list-details dt,
.detail-grid dt,
.councilor-values dt,
.transparency-definitions dt {
    color: var(--public-muted);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
}

.card-details dd,
.list-details dd,
.detail-grid dd,
.councilor-values dd,
.transparency-definitions dd {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
}

.card-value {
    display: grid;
    gap: 3px;
    margin-top: auto;
    padding-top: 12px;
}

.card-value small {
    color: var(--public-muted);
}

.card-value strong {
    color: var(--public-primary);
    font-family: Manrope, sans-serif;
    font-size: 22px;
}

.mini-progress {
    height: 6px;
    margin-top: 13px;
}

.card-link {
    margin-top: 17px;
    color: var(--public-primary);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.soft-section {
    background: #edf2f7;
}

.split-public-section {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
}

.status-list,
.mini-councilor-list {
    display: grid;
    gap: 10px;
}

.status-row,
.mini-councilor {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 16px;
    background: #fff;
    border: 1px solid var(--public-border);
    border-radius: 13px;
}

.status-row > div {
    display: flex;
    align-items: center;
    gap: 9px;
}

.status-row > div:last-child {
    display: grid;
    justify-items: end;
    gap: 2px;
}

.status-row span {
    color: var(--public-muted);
    font-size: 12px;
}

.status-dot {
    width: 9px;
    height: 9px;
    background: var(--public-accent);
    border-radius: 50%;
}

.mini-councilor {
    color: inherit;
    text-decoration: none;
}

.avatar-placeholder,
.councilor-avatar {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 42px;
    height: 42px;
    color: #fff;
    background: linear-gradient(135deg, var(--public-primary), #3479b6);
    border-radius: 50%;
    font-family: Manrope, sans-serif;
    font-weight: 800;
}

.mini-councilor > span:nth-child(2) {
    display: grid;
    flex: 1;
}

.mini-councilor small {
    color: var(--public-muted);
}

.mini-total {
    color: var(--public-primary);
    font-size: 12px;
    font-weight: 800;
}

.public-cta {
    padding: 58px 0;
    color: #fff;
    background: linear-gradient(135deg, var(--public-primary-dark), var(--public-primary));
}

.cta-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
}

.public-cta h2 {
    margin: 6px 0;
    font-family: Manrope, sans-serif;
    font-size: 30px;
}

.public-cta p {
    margin: 0;
    color: rgba(255, 255, 255, 0.75);
}

.public-cta a {
    flex: 0 0 auto;
    padding: 13px 22px;
    color: var(--public-primary);
    background: #fff;
    border-radius: 11px;
    font-weight: 800;
    text-decoration: none;
}

.public-page-hero {
    padding: 58px 0;
    color: #fff;
    background:
        radial-gradient(circle at 90% 10%, rgba(70, 161, 145, 0.25), transparent 30%),
        linear-gradient(135deg, var(--public-primary-dark), var(--public-primary));
}

.public-page-hero h1 {
    margin: 8px 0;
    font-family: Manrope, sans-serif;
    font-size: clamp(34px, 5vw, 48px);
}

.public-page-hero p {
    max-width: 760px;
    margin: 0;
    color: rgba(255, 255, 255, 0.78);
}

.public-list-section {
    padding-top: 42px;
}

.public-filter-card {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    padding: 20px;
    background: #fff;
    border: 1px solid var(--public-border);
    border-radius: var(--public-radius);
    box-shadow: 0 10px 28px rgba(19, 42, 75, 0.06);
}

.public-filter-card label {
    display: grid;
    gap: 6px;
}

.public-filter-card label > span {
    color: #4b5b70;
    font-size: 12px;
    font-weight: 700;
}

.public-filter-card input,
.public-filter-card select {
    width: 100%;
    min-width: 0;
    padding: 11px 12px;
    color: var(--public-text);
    border: 1px solid var(--public-border);
    outline: 0;
    background: #fff;
    border-radius: 10px;
}

.public-filter-card input:focus,
.public-filter-card select:focus {
    border-color: var(--public-primary);
    box-shadow: 0 0 0 3px rgba(18, 58, 102, 0.1);
}

.filter-search {
    grid-column: span 2;
}

.public-filter-actions {
    display: flex;
    align-items: end;
    gap: 8px;
}

.public-filter-actions button,
.public-filter-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 45px;
    padding: 10px 16px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.public-filter-actions button {
    color: #fff;
    border: 0;
    background: var(--public-primary);
}

.public-filter-actions a {
    color: var(--public-primary);
    background: #edf3f9;
}

.list-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin: 26px 0 16px;
    color: var(--public-muted);
    font-size: 14px;
}

.list-toolbar strong {
    color: var(--public-text);
}

.list-toolbar button,
.detail-card-heading button {
    color: var(--public-primary);
    border: 0;
    background: transparent;
    font-size: 13px;
    font-weight: 800;
}

.amendment-list {
    display: grid;
    gap: 16px;
}

.public-list-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 260px;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--public-border);
    border-radius: var(--public-radius);
    box-shadow: 0 8px 25px rgba(19, 42, 75, 0.045);
}

.list-card-main {
    padding: 24px;
}

.public-list-card h2 {
    margin: 13px 0 7px;
    font-family: Manrope, sans-serif;
    font-size: 21px;
}

.list-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 14px;
}

.list-tags span {
    padding: 5px 9px;
    color: #41546b;
    background: #edf2f7;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
}

.list-details {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin: 20px 0 0;
    padding-top: 18px;
    border-top: 1px solid var(--public-border);
}

.list-card-finance {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 24px;
    background: #f3f7fb;
    border-left: 1px solid var(--public-border);
}

.list-card-finance > small {
    color: var(--public-muted);
}

.list-card-finance > strong {
    margin: 2px 0 18px;
    color: var(--public-primary);
    font-family: Manrope, sans-serif;
    font-size: 24px;
}

.finance-row,
.finance-detail-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: 12px;
}

.finance-row span,
.finance-detail-row span {
    color: var(--public-muted);
}

.percent-label {
    margin-top: 7px;
    color: var(--public-muted);
    font-size: 11px;
}

.list-card-finance > a {
    margin-top: 20px;
    padding: 10px;
    color: #fff;
    background: var(--public-primary);
    border-radius: 9px;
    font-size: 12px;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
}

.pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 7px;
    margin-top: 28px;
}

.pagination a {
    display: grid;
    place-items: center;
    min-width: 40px;
    height: 40px;
    color: var(--public-primary);
    background: #fff;
    border: 1px solid var(--public-border);
    border-radius: 9px;
    font-weight: 700;
    text-decoration: none;
}

.pagination a.is-current {
    color: #fff;
    background: var(--public-primary);
    border-color: var(--public-primary);
}

.empty-public-state {
    padding: 22px;
    color: var(--public-muted);
    background: #fff;
    border: 1px dashed #c7d1dd;
    border-radius: 13px;
    text-align: center;
}

.empty-public-state.large {
    display: grid;
    gap: 4px;
    padding: 54px 20px;
}

.detail-hero {
    padding-bottom: 68px;
}

.back-link {
    display: inline-flex;
    margin-bottom: 20px;
    color: rgba(255, 255, 255, 0.8);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.detail-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 30px;
}

.detail-title-row h1 {
    max-width: 850px;
}

.detail-section {
    padding-top: 42px;
}

.detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 24px;
    align-items: start;
}

.detail-main {
    display: grid;
    gap: 18px;
}

.detail-card,
.finance-detail-card {
    padding: 26px;
    background: #fff;
    border: 1px solid var(--public-border);
    border-radius: var(--public-radius);
    box-shadow: 0 8px 25px rgba(19, 42, 75, 0.045);
}

.detail-card h2 {
    margin: 0 0 18px;
    font-family: Manrope, sans-serif;
    font-size: 21px;
}

.detail-card-heading {
    display: flex;
    justify-content: space-between;
    gap: 20px;
}

.detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin: 0;
}

.detail-grid div {
    padding: 14px;
    background: #f6f8fb;
    border-radius: 11px;
}

.detail-grid dd a {
    color: var(--public-primary);
}

.rich-public-text {
    color: #3f4e62;
}

.finance-detail-card {
    position: sticky;
    top: 98px;
}

.finance-big-value {
    display: grid;
    gap: 3px;
    margin: 18px 0 22px;
    padding-bottom: 22px;
    border-bottom: 1px solid var(--public-border);
}

.finance-big-value strong {
    color: var(--public-primary);
    font-family: Manrope, sans-serif;
    font-size: 31px;
}

.finance-detail-row {
    padding: 10px 0;
    border-bottom: 1px solid #edf1f5;
}

.finance-note {
    display: block;
    margin-top: 20px;
    color: var(--public-muted);
}

.public-attachment-list {
    display: grid;
    gap: 10px;
}

.public-attachment {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 13px;
    color: inherit;
    background: #f6f8fb;
    border: 1px solid var(--public-border);
    border-radius: 11px;
    text-decoration: none;
}

.file-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    color: var(--public-primary);
    background: #e6eef7;
    border-radius: 10px;
    font-weight: 800;
}

.public-attachment > span:nth-child(2) {
    display: grid;
}

.public-attachment small {
    color: var(--public-muted);
}

.public-attachment > span:last-child {
    color: var(--public-primary);
    font-size: 12px;
    font-weight: 800;
}

.external-link-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.external-link-card h2 {
    margin-bottom: 3px;
}

.external-link-card p {
    margin: 0;
    color: var(--public-muted);
}

.external-link-card > a {
    flex: 0 0 auto;
    padding: 11px 17px;
    color: #fff;
    background: var(--public-primary);
    border-radius: 9px;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.inline-year-filter {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 22px;
}

.inline-year-filter label,
.profile-heading form label {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--public-muted);
    font-size: 13px;
    font-weight: 700;
}

.councilor-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.councilor-header {
    display: flex;
    align-items: center;
    gap: 14px;
}

.councilor-header h2 {
    margin: 0;
    font-family: Manrope, sans-serif;
    font-size: 19px;
}

.councilor-header span {
    color: var(--public-muted);
    font-size: 12px;
}

.councilor-values {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 23px 0;
}

.councilor-values div {
    padding: 12px;
    background: #f6f8fb;
    border-radius: 10px;
}

.councilor-values dd {
    color: var(--public-primary);
    font-family: Manrope, sans-serif;
    font-size: 15px;
}

.profile-heading {
    display: flex;
    align-items: center;
    gap: 18px;
}

.profile-heading > div {
    flex: 1;
}

.profile-heading h1 {
    margin-bottom: 1px;
}

.large-avatar {
    width: 82px;
    height: 82px;
    font-size: 28px;
}

.councilor-metrics {
    margin-bottom: 20px;
}

.profile-progress {
    margin-bottom: 45px;
}

.compact-list .public-list-card {
    grid-template-columns: minmax(0, 1fr) 240px;
}

.transparency-layout {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.transparency-layout .detail-card p {
    color: #46566b;
}

.transparency-definitions {
    display: grid;
    gap: 14px;
    margin: 0;
}

.transparency-definitions div {
    padding: 14px;
    background: #f6f8fb;
    border-radius: 10px;
}

.transparency-definitions dd {
    margin-top: 4px;
    color: #4a596d;
    font-weight: 400;
}

.institution-contact {
    display: grid;
    gap: 4px;
    margin-top: 22px;
    padding: 16px;
    background: #f6f8fb;
    border-radius: 10px;
}

.institution-contact span {
    color: var(--public-muted);
    font-size: 13px;
}

.error-public-page {
    min-height: 62vh;
    display: grid;
    place-items: center;
    text-align: center;
}

.error-code {
    color: #dce6f0;
    font-family: Manrope, sans-serif;
    font-size: 100px;
    font-weight: 800;
    line-height: 1;
}

.error-public-page h1 {
    margin: 5px 0;
    font-family: Manrope, sans-serif;
    font-size: 34px;
}

.error-public-page p {
    color: var(--public-muted);
}

.error-public-page a {
    display: inline-flex;
    margin-top: 10px;
    padding: 11px 18px;
    color: #fff;
    background: var(--public-primary);
    border-radius: 10px;
    font-weight: 800;
    text-decoration: none;
}

.public-footer {
    color: #d5dfeb;
    background: #081d34;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.5fr 0.7fr 0.8fr;
    gap: 60px;
    padding-block: 52px;
}

.footer-grid > div {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
}

.footer-brand strong {
    color: #fff;
}

.footer-brand small,
.footer-grid p,
.footer-grid span,
.footer-grid a {
    color: #9fb0c4;
    font-size: 13px;
    text-decoration: none;
}

.footer-grid p {
    max-width: 470px;
}

.footer-grid > div > strong {
    margin-bottom: 8px;
    color: #fff;
}

.footer-bottom {
    padding: 17px 0;
    border-top: 1px solid rgba(255, 255, 255, 0.09);
}

.footer-bottom .public-container {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    color: #8296ad;
    font-size: 11px;
}

@media (max-width: 1020px) {
    .hero-grid {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .hero-panel {
        max-width: 650px;
    }

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

    .public-filter-card {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .detail-layout {
        grid-template-columns: 1fr;
    }

    .finance-detail-card {
        position: static;
    }

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

    .public-metrics article:nth-child(3) {
        border-left: 0;
        border-top: 1px solid var(--public-border);
    }

    .public-metrics article:nth-child(4) {
        border-top: 1px solid var(--public-border);
    }
}

@media (max-width: 820px) {
    .mobile-menu-button {
        display: block;
    }

    .public-nav {
        position: fixed;
        top: 78px;
        right: 0;
        left: 0;
        display: none;
        align-items: stretch;
        flex-direction: column;
        padding: 18px 20px 28px;
        background: #fff;
        border-bottom: 1px solid var(--public-border);
        box-shadow: var(--public-shadow);
    }

    .public-nav.is-open {
        display: flex;
    }

    .public-nav a {
        padding: 12px;
    }

    .public-nav .admin-access {
        margin-left: 0;
        text-align: center;
    }

    .split-public-section,
    .transparency-layout {
        grid-template-columns: 1fr;
    }

    .public-list-card {
        grid-template-columns: 1fr;
    }

    .list-card-finance {
        border-top: 1px solid var(--public-border);
        border-left: 0;
    }

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

    .footer-grid {
        grid-template-columns: 1fr 1fr;
    }

    .footer-grid > div:first-child {
        grid-column: span 2;
    }
}

@media (max-width: 620px) {
    .public-container {
        width: min(100% - 28px, 1180px);
    }

    .public-hero {
        padding: 60px 0 64px;
    }

    .hero-content h1 {
        font-size: 38px;
    }

    .hero-content > p {
        font-size: 16px;
    }

    .hero-search {
        flex-direction: column;
    }

    .hero-links {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }

    .public-metrics,
    .amendment-grid,
    .councilor-grid,
    .public-filter-card,
    .detail-grid {
        grid-template-columns: 1fr;
    }

    .public-metrics article + article,
    .public-metrics article:nth-child(3),
    .public-metrics article:nth-child(4) {
        border-top: 1px solid var(--public-border);
        border-left: 0;
    }

    .filter-search {
        grid-column: auto;
    }

    .public-filter-actions,
    .cta-inner,
    .detail-title-row,
    .external-link-card,
    .profile-heading,
    .footer-bottom .public-container {
        align-items: stretch;
        flex-direction: column;
    }

    .public-filter-actions > * {
        flex: 1;
    }

    .section-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .section-heading h2 {
        font-size: 27px;
    }

    .list-details {
        grid-template-columns: 1fr;
    }

    .list-toolbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .public-attachment {
        grid-template-columns: 42px minmax(0, 1fr);
    }

    .public-attachment > span:last-child {
        grid-column: 2;
    }

    .footer-grid {
        grid-template-columns: 1fr;
    }

    .footer-grid > div:first-child {
        grid-column: auto;
    }
}

@media print {
    .public-header,
    .public-footer,
    .public-filter-card,
    .list-toolbar button,
    .back-link,
    .detail-card-heading button,
    .public-cta {
        display: none !important;
    }

    body {
        background: #fff;
    }

    .public-section,
    .public-page-hero {
        padding: 18px 0;
    }

    .public-page-hero {
        color: #000;
        background: #fff;
    }

    .public-page-hero p {
        color: #444;
    }

    .public-list-card,
    .detail-card,
    .finance-detail-card {
        break-inside: avoid;
        box-shadow: none;
    }
}

/* Parte 12 - Acessibilidade */

/* PARTE 13 - PORTAL PÚBLICO PREMIUM */
:root{--premium-navy:#071f49;--premium-blue:#0b3f83;--premium-accent:#1966cf;--premium-bg:#f4f7fb;--premium-border:#dfe6ef;--premium-text:#0b1f45;--premium-muted:#64748b;--premium-shadow:0 14px 35px rgba(7,31,73,.1)}
body{background:var(--premium-bg);color:var(--premium-text)}
.public-container{width:min(1400px,calc(100% - 64px))}
.public-header{top:42px;min-height:84px;background:#fff;border-bottom:1px solid #e3e9f1;box-shadow:0 3px 16px rgba(7,31,73,.04)}
.header-inner{min-height:84px}.brand-symbol{position:relative;width:52px;height:52px;background:linear-gradient(145deg,#0a2d67,#1682c4);border:1px solid rgba(255,255,255,.45);box-shadow:inset 0 0 0 4px rgba(255,255,255,.12),0 8px 20px rgba(11,63,131,.2)}
.brand-symbol:before,.brand-symbol:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.23);border-radius:50%}.brand-symbol:before{inset:6px}.brand-symbol:after{inset:11px}.brand-symbol span{position:relative;z-index:2}.brand-copy strong{font-size:18px;color:#0a1f44}.brand-copy small{font-size:12px}.public-nav{gap:24px}.public-nav a{position:relative;padding:29px 3px 27px;background:transparent!important;border-radius:0;color:#263b60;font-size:14px}.public-nav a.is-active:after{content:"";position:absolute;right:0;bottom:18px;left:0;height:2px;background:#164da0}.public-nav .admin-access{margin-left:18px;padding:13px 20px;color:#fff;background:linear-gradient(135deg,#092c62,#071f49)!important;border-radius:9px}.public-nav .admin-access:after{display:none}
.premium-hero{padding:54px 0 74px;color:#fff;background:radial-gradient(circle at 92% 10%,rgba(66,174,226,.35),transparent 30%),linear-gradient(115deg,#071f49 0%,#0b3a75 55%,#09647f 100%);overflow:hidden}.premium-hero-grid{display:grid;grid-template-columns:.82fr 1.55fr;gap:52px;align-items:center}.hero-overline{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#61d8cf}.premium-hero-copy h1{margin:13px 0 18px;font:800 clamp(38px,4.4vw,62px)/1.12 Manrope,sans-serif;letter-spacing:-.045em}.premium-hero-copy h1 span{color:#fff}.premium-hero-copy p{max-width:550px;margin:0;color:#d8e7f7;font-size:17px}.hero-trust{display:flex;flex-wrap:wrap;gap:16px;margin-top:22px;color:#b9d8f0;font-size:12px;font-weight:700}.premium-metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.premium-metric{display:flex;align-items:flex-start;gap:14px;min-height:124px;padding:18px;background:rgba(255,255,255,.98);border:1px solid rgba(255,255,255,.9);border-radius:13px;box-shadow:0 14px 30px rgba(2,16,43,.18);color:#10244d}.premium-metric-icon{display:grid;flex:0 0 auto;place-items:center;width:36px;height:36px;border-radius:10px;color:#fff;font-weight:800}.premium-metric>div{display:grid;gap:4px}.premium-metric small{font-size:12px;font-weight:700}.premium-metric strong{font:800 clamp(18px,1.5vw,24px)/1.2 Manrope,sans-serif;white-space:nowrap}.premium-metric div span{color:#68758d;font-size:12px}.metric-blue .premium-metric-icon{background:#2675ed}.metric-green .premium-metric-icon{background:#2ebd63}.metric-purple .premium-metric-icon{background:#7652e9}.metric-yellow .premium-metric-icon{background:#f4ae21}.metric-red .premium-metric-icon{background:#f05b66}.metric-cyan .premium-metric-icon{background:#19b7c7}
.premium-search-wrap{position:relative;z-index:3;margin-top:-54px}.premium-search-card{display:grid;grid-template-columns:minmax(350px,2.3fr) minmax(140px,.55fr) minmax(170px,.8fr) auto auto;gap:20px;align-items:end;padding:24px 28px;background:#fff;border:1px solid #dce4ed;border-radius:14px;box-shadow:var(--premium-shadow)}.premium-search-card label{display:grid;gap:8px}.premium-search-card label>span{font-size:12px;font-weight:800}.premium-search-main div{display:flex;border:1px solid #ccd7e4;border-radius:8px;overflow:hidden}.premium-search-main input{min-width:0;flex:1;padding:13px;border:0;outline:none}.premium-search-main div button{width:48px;border:0;background:#fff;color:#0b3f83;font-size:21px}.premium-search-card select{width:100%;padding:13px;border:1px solid #ccd7e4;border-radius:8px;background:#fff}.premium-search-button{min-height:46px;padding:0 24px;color:#fff;border:0;background:linear-gradient(135deg,#0b3f83,#071f49);border-radius:8px;font-weight:800}.advanced-search{align-self:center;color:#164da0;font-size:12px;font-weight:700;text-decoration:none;white-space:nowrap}
.premium-shortcuts{padding:18px 0;background:#fff;border-bottom:1px solid #e4eaf2}.shortcut-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.shortcut-grid>a{display:flex;align-items:center;gap:13px;padding:12px 24px;text-decoration:none;border-right:1px solid #e3e8ef}.shortcut-grid>a:last-child{border-right:0}.shortcut-grid>a>span{display:grid;place-items:center;width:34px;height:34px;color:#0d3d80;border:1px solid #d7e2ef;border-radius:50%;font-weight:900}.shortcut-grid div{display:grid}.shortcut-grid strong{font-size:13px}.shortcut-grid small{color:#6a7890;font-size:11px}
.premium-dashboard-section{padding:28px 0 42px}.premium-dashboard-grid{display:grid;grid-template-columns:1.16fr .98fr .8fr;gap:18px}.dashboard-card{min-width:0;background:#fff;border:1px solid #dee5ed;border-radius:13px;box-shadow:0 8px 25px rgba(7,31,73,.05)}.dashboard-card-title{display:flex;align-items:center;justify-content:space-between;padding:17px 20px;border-bottom:1px solid #e9edf3}.dashboard-card-title h2{margin:0;font-size:15px}.dashboard-card-title a{color:#1659bc;font-size:11px;font-weight:700;text-decoration:none}.status-chart-layout{display:grid;grid-template-columns:180px 1fr;gap:22px;align-items:center;padding:22px}.status-donut{display:grid;place-items:center;width:166px;height:166px;border-radius:50%;position:relative}.status-donut:after{content:"";position:absolute;inset:39px;background:#fff;border-radius:50%}.status-donut>span{position:relative;z-index:2;display:grid;text-align:center;font:800 25px Manrope,sans-serif}.status-donut small{font:600 10px Inter,sans-serif;color:#718096}.status-legend{display:grid;gap:10px}.status-legend>div{display:grid;grid-template-columns:10px minmax(90px,1fr) auto auto;align-items:center;gap:7px;font-size:10px}.legend-color{width:9px;height:9px;border-radius:3px}.status-legend small{color:#4f5f78}.status-legend b{font-size:10px;color:#5c6a80}.recent-list,.ranking-list{display:grid}.recent-list>a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;padding:13px 18px;text-decoration:none;border-bottom:1px solid #edf0f4}.recent-list>a:last-child{border-bottom:0}.recent-list>a>div{display:grid;gap:3px}.recent-list small{color:#1260cd;font-size:10px;font-weight:800}.recent-list strong{font-size:12px}.recent-list span{color:#69768c;font-size:10px}.recent-list em{justify-self:end;padding:5px 9px;color:#217a3d;background:#e7f7ea;border-radius:999px;font-size:9px;font-style:normal}.recent-list b{font-size:11px}.ranking-list>a{display:grid;gap:6px;padding:15px 18px;text-decoration:none;border-bottom:1px solid #edf0f4}.ranking-list>a:last-child{border-bottom:0}.ranking-list>a>div:first-child{display:flex;justify-content:space-between;gap:10px}.ranking-list strong,.ranking-list b{font-size:12px}.ranking-list span{color:#65748b;font-size:10px}.ranking-progress{height:4px;background:#e5eaf1;border-radius:999px;overflow:hidden}.ranking-progress i{display:block;height:100%;background:#2868d8;border-radius:inherit}.dashboard-empty{padding:24px;color:#66758c;text-align:center}.premium-info-strip{padding:15px 0;color:#d6e2f1;background:#081f47}.premium-info-strip .public-container{display:flex;justify-content:space-between;gap:20px;font-size:12px}.premium-info-strip a{color:#fff;font-weight:700;text-decoration:none}
.premium-footer{background:#071b3c}.premium-footer-inner{display:grid;grid-template-columns:auto 1fr auto;gap:70px;align-items:center;padding:24px 0}.footer-message{display:grid;gap:3px}.footer-message strong{color:#e8eef8;font-size:12px}.footer-message span{color:#9cadc3;font-size:11px}.premium-footer nav{display:flex;gap:28px}.premium-footer nav a{color:#dce6f3;font-size:12px;text-decoration:none}.back-to-top{position:fixed;right:26px;bottom:26px;z-index:900;display:grid;place-items:center;width:50px;height:50px;color:#fff;background:#246eee;border:3px solid #fff;border-radius:50%;box-shadow:0 8px 22px rgba(0,0,0,.22);font-size:22px;text-decoration:none}.info-page-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.info-page-card{padding:25px;background:#fff;border:1px solid var(--premium-border);border-radius:14px}.info-page-card h2{margin-top:0}.info-page-list{display:grid;gap:10px}.info-page-list>a,.info-page-list>div{display:flex;justify-content:space-between;gap:20px;padding:15px;background:#f5f8fb;border-radius:9px;text-decoration:none}.info-page-list>div{display:block}.info-page-list p{margin:5px 0 0;color:#627188}
@media(max-width:1150px){.public-header{top:42px}.premium-hero-grid{grid-template-columns:1fr}.premium-metric-grid{max-width:900px}.premium-search-card{grid-template-columns:2fr 1fr 1fr}.premium-search-button,.advanced-search{grid-row:2}.premium-dashboard-grid{grid-template-columns:1fr 1fr}.councilor-ranking-card{grid-column:span 2}.shortcut-grid{grid-template-columns:repeat(3,1fr)}.shortcut-grid>a:nth-child(3){border-right:0}.shortcut-grid>a:nth-child(n+4){border-top:1px solid #e3e8ef}.premium-footer-inner{grid-template-columns:1fr 1fr}.premium-footer nav{grid-column:span 2}}
@media(max-width:820px){.public-container{width:min(100% - 28px,1400px)}.public-header{top:0}.portal-access-bar{position:static!important}.public-nav{top:126px}.premium-metric-grid{grid-template-columns:repeat(2,1fr)}.premium-search-card{grid-template-columns:1fr 1fr}.premium-search-main{grid-column:span 2}.premium-dashboard-grid{grid-template-columns:1fr}.councilor-ranking-card{grid-column:auto}.shortcut-grid{grid-template-columns:1fr 1fr}.shortcut-grid>a{border-top:1px solid #e3e8ef!important}.status-chart-layout{grid-template-columns:1fr;justify-items:center}.premium-footer-inner{grid-template-columns:1fr}.premium-footer nav{grid-column:auto;flex-wrap:wrap}.info-page-grid{grid-template-columns:1fr}}
@media(max-width:560px){.premium-hero{padding-top:40px}.premium-hero-copy h1{font-size:38px}.premium-metric-grid{grid-template-columns:1fr}.premium-search-card{grid-template-columns:1fr}.premium-search-main{grid-column:auto}.premium-search-button,.advanced-search{grid-row:auto}.shortcut-grid{grid-template-columns:1fr}.shortcut-grid>a{border-right:0}.premium-info-strip .public-container{flex-direction:column}.status-legend>div{grid-template-columns:10px 1fr auto}.status-legend b{grid-column:2/4}.premium-footer nav{gap:15px}}

/* Fotos dos vereadores no portal público */
.councilor-photo { object-fit: cover; object-position: center top; border: 3px solid #fff; box-shadow: 0 4px 14px rgba(15, 45, 78, .18); }
.councilor-header .councilor-photo { width: 58px; height: 58px; }
.profile-heading .councilor-photo.large-avatar { width: 96px; height: 96px; }
.councilor-avatar-fallback[hidden] { display: none !important; }
.ranking-councilor-link { display: grid !important; grid-template-columns: 42px 1fr; align-items: center; gap: 12px; }
.ranking-councilor-content { min-width: 0; }
.ranking-councilor-photo { width: 42px; height: 42px; border-radius: 50%; object-fit: cover; object-position: center top; }
.ranking-photo-fallback { display: grid; place-items: center; background: var(--public-primary); color: #fff; font-weight: 800; }
@media (max-width: 640px) { .profile-heading .councilor-photo.large-avatar { width: 78px; height: 78px; } }

/* =========================================================
   RELATÓRIOS PÚBLICOS - LAYOUT PROFISSIONAL
   ========================================================= */

.public-report-hero {
    position: relative;
    overflow: hidden;
    padding: 54px 0 58px;
}

.public-report-hero::after {
    content: "";
    position: absolute;
    right: -130px;
    bottom: -230px;
    width: 420px;
    height: 420px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    pointer-events: none;
}

.public-report-hero .public-container {
    position: relative;
    z-index: 1;
}

.report-toolbar {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 18px;
    padding: 22px 24px;
    background: #fff;
    border: 1px solid var(--premium-border, var(--public-border));
    border-radius: 16px;
    box-shadow: 0 12px 32px rgba(7, 31, 73, .07);
}

.report-filter {
    display: grid;
    gap: 7px;
    min-width: 245px;
}

.report-filter label {
    color: #203b63;
    font-size: 12px;
    font-weight: 800;
}

.report-filter select {
    width: 100%;
    min-height: 46px;
    padding: 0 40px 0 13px;
    color: #142b4f;
    background: #fff;
    border: 1px solid #cbd7e4;
    border-radius: 10px;
    outline: 0;
    font-weight: 700;
}

.report-filter select:focus {
    border-color: var(--public-primary);
    box-shadow: 0 0 0 3px rgba(18, 58, 102, .10);
}

.report-actions {
    display: flex;
    align-items: stretch;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.report-action-btn {
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 218px;
    min-height: 54px;
    padding: 10px 15px;
    border-radius: 11px;
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.report-action-btn:hover {
    transform: translateY(-2px);
}

.report-action-btn > span:last-child {
    display: grid;
    gap: 1px;
}

.report-action-btn strong {
    font-size: 12px;
    line-height: 1.25;
}

.report-action-btn small {
    font-size: 10px;
    line-height: 1.25;
    opacity: .76;
}

.report-action-icon {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 35px;
    height: 35px;
    border-radius: 9px;
    font-size: 15px;
    font-weight: 900;
}

.report-action-primary {
    color: #fff;
    background: linear-gradient(135deg, #0b3f83, #071f49);
    box-shadow: 0 8px 18px rgba(7, 31, 73, .16);
}

.report-action-primary:hover {
    color: #fff;
    box-shadow: 0 12px 24px rgba(7, 31, 73, .23);
}

.report-action-primary .report-action-icon {
    background: rgba(255, 255, 255, .13);
}

.report-action-secondary {
    color: #163d6d;
    background: #f8fbfe;
    border: 1px solid #d5e0eb;
}

.report-action-secondary:hover {
    color: #0b3f83;
    background: #eef5fb;
}

.report-action-secondary .report-action-icon {
    color: #0b3f83;
    background: #e7f0fa;
}

.report-scope {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 22px;
    padding: 9px 13px;
    color: #5d6f87;
    background: #eef4fa;
    border: 1px solid #dce6f0;
    border-radius: 999px;
    font-size: 11px;
}

.report-scope strong {
    color: #173f70;
    font-weight: 800;
}

.report-summary-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 34px;
}

.report-summary-card {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    min-height: 104px;
    padding: 17px;
    overflow: hidden;
    background: #fff;
    border: 1px solid #dfe6ef;
    border-radius: 13px;
    box-shadow: 0 8px 22px rgba(7, 31, 73, .045);
}

.report-summary-card::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 54px;
    height: 3px;
    background: var(--public-primary);
    border-radius: 0 0 0 999px;
}

.report-summary-icon {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 39px;
    height: 39px;
    color: #fff;
    background: linear-gradient(135deg, #1766c8, #0b3f83);
    border-radius: 10px;
    font-size: 12px;
    font-weight: 900;
}

.report-summary-card > div:last-child {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.report-summary-card span {
    color: #6c7c91;
    font-size: 10px;
    font-weight: 700;
}

.report-summary-card strong {
    overflow: hidden;
    color: #0d274d;
    font: 800 clamp(16px, 1.45vw, 21px)/1.2 Manrope, sans-serif;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.report-section {
    margin-top: 38px;
}

.report-section + .report-section {
    margin-top: 46px;
}

.report-section-header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 22px;
    margin-bottom: 14px;
}

.report-section-kicker {
    display: inline-block;
    margin-bottom: 4px;
    color: #1761bf;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.report-section-header h2 {
    margin: 0;
    color: #10294d;
    font: 800 23px/1.25 Manrope, sans-serif;
    letter-spacing: -.02em;
}

.report-section-header p {
    max-width: 720px;
    margin: 5px 0 0;
    color: #718096;
    font-size: 11px;
}

.report-table-card {
    overflow: hidden;
    background: #fff;
    border: 1px solid #dfe6ee;
    border-radius: 14px;
    box-shadow: 0 7px 22px rgba(7, 31, 73, .04);
}

.report-table-card .table-scroll {
    width: 100%;
    overflow: auto;
    border: 0;
    border-radius: 0;
    background: transparent;
    scrollbar-width: thin;
    scrollbar-color: #b5c3d3 #eef2f6;
}

.report-table-card .table-scroll::-webkit-scrollbar {
    width: 9px;
    height: 9px;
}

.report-table-card .table-scroll::-webkit-scrollbar-track {
    background: #eef2f6;
}

.report-table-card .table-scroll::-webkit-scrollbar-thumb {
    background: #b5c3d3;
    border: 2px solid #eef2f6;
    border-radius: 999px;
}

.public-report-table {
    width: 100%;
    min-width: 850px;
    border-collapse: separate;
    border-spacing: 0;
}

.public-report-table thead th {
    position: sticky;
    z-index: 2;
    top: 0;
    padding: 13px 14px;
    color: #4b5f79;
    background: #f4f7fb;
    border-bottom: 1px solid #dfe6ee;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .055em;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}

.public-report-table tbody td {
    padding: 13px 14px;
    color: #40526b;
    background: #fff;
    border-bottom: 1px solid #edf1f5;
    font-size: 11px;
    line-height: 1.45;
    vertical-align: middle;
}

.public-report-table tbody tr:last-child td {
    border-bottom: 0;
}

.public-report-table tbody tr:hover td {
    background: #f9fbfd;
}

.report-year {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 58px;
    padding: 5px 8px;
    color: #174e96;
    background: #eaf2fc;
    border-radius: 7px;
    font-size: 10px;
    font-weight: 800;
}

.report-money {
    color: #173e6a !important;
    font-weight: 700;
    white-space: nowrap;
}

.report-money-success {
    color: #19824f !important;
}

.report-person-name {
    color: #122f55;
    font-weight: 800;
}

.report-count {
    display: inline-grid;
    place-items: center;
    min-width: 28px;
    height: 27px;
    padding: 0 8px;
    color: #174e96;
    background: #eaf2fc;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
}

.report-amendment-number {
    color: #145db8;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

.report-amendment-number:hover {
    color: #0b3f83;
    text-decoration: underline;
}

.report-title-cell {
    min-width: 230px;
    max-width: 380px;
    color: #263d5c !important;
    font-weight: 600;
}

.report-type {
    display: inline-flex;
    align-items: center;
    padding: 5px 8px;
    color: #4e6077;
    background: #eef2f6;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 700;
    white-space: nowrap;
}

.report-status {
    display: inline-flex;
    align-items: center;
    padding: 5px 8px;
    color: #176044;
    background: #e6f4ed;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 800;
    white-space: nowrap;
}

.report-status[data-status*="execução"] {
    color: #8a6200;
    background: #fff4d7;
}

.report-status[data-status="executado"] {
    color: #176044;
    background: #e6f4ed;
}

.report-status[data-status="aprovado"] {
    color: #174f98;
    background: #e8f1fb;
}

.report-empty {
    padding: 28px 18px;
    color: #7a899d;
    text-align: center;
}

.report-amendments-table {
    min-width: 1550px;
}

@media (max-width: 1180px) {
    .report-summary-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .report-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .report-filter {
        min-width: 0;
    }

    .report-actions {
        justify-content: flex-start;
    }

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

@media (max-width: 620px) {
    .public-report-hero {
        padding: 38px 0 42px;
    }

    .report-toolbar {
        padding: 16px;
        border-radius: 13px;
    }

    .report-actions {
        flex-direction: column;
    }

    .report-action-btn {
        width: 100%;
        min-width: 0;
    }

    .report-summary-grid {
        grid-template-columns: 1fr;
    }

    .report-summary-card {
        min-height: 88px;
    }

    .report-section {
        margin-top: 30px;
    }

    .report-section-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .report-section-header h2 {
        font-size: 20px;
    }
}

@media print {
    .report-toolbar,
    .report-actions,
    .report-scope {
        display: none !important;
    }

    .report-summary-grid {
        grid-template-columns: repeat(5, 1fr);
        gap: 6px;
    }

    .report-summary-card,
    .report-table-card {
        box-shadow: none !important;
        break-inside: avoid;
    }

    .report-table-card .table-scroll {
        overflow: visible !important;
    }

    .public-report-table,
    .report-amendments-table {
        min-width: 0 !important;
        font-size: 8px;
    }

    .public-report-table thead th {
        position: static;
    }
}

/* =========================================================
   AJUSTE RESPONSIVO - TELAS MÉDIAS / TABLETS / NOTEBOOKS
   Evita estouro horizontal do cabeçalho e dos relatórios
   ========================================================= */

html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

@media (max-width: 1100px) {

    .mobile-menu-button {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        gap: 5px;

        width: 46px;
        height: 46px;
        padding: 0;

        border: 1px solid #d9e3ee;
        border-radius: 12px;

        background: #ffffff;

        transition:
            background .2s ease,
            border-color .2s ease,
            transform .2s ease;
    }

    .mobile-menu-button:hover {
        background: #f3f7fb;
        border-color: #bfcddd;
    }

    .mobile-menu-button span {
        width: 22px;
        height: 2px;
        margin: 0;

        background: #123a66;
        border-radius: 999px;

        transition:
            transform .28s ease,
            opacity .2s ease;
    }

    .mobile-menu-button[aria-expanded="true"] span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    .mobile-menu-button[aria-expanded="true"] span:nth-child(2) {
        opacity: 0;
    }

    .mobile-menu-button[aria-expanded="true"] span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }


    .public-nav {
        position: fixed;
        z-index: 1200;

        top: 118px;
        right: 16px;
        left: 16px;

        display: flex;
        flex-direction: column;
        align-items: stretch;

        gap: 6px;

        max-height: calc(100vh - 140px);

        padding: 14px;

        overflow-y: auto;

        background: rgba(255, 255, 255, .98);

        border: 1px solid #dce5ef;
        border-radius: 16px;

        box-shadow:
            0 20px 45px rgba(7, 31, 73, .18);

        opacity: 0;
        visibility: hidden;
        pointer-events: none;

        transform:
            translateY(-12px)
            scale(.985);

        transform-origin: top center;

        transition:
            opacity .22s ease,
            transform .22s ease,
            visibility .22s ease;
    }


    .public-nav.is-open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;

        transform:
            translateY(0)
            scale(1);
    }


    .public-nav a {
        display: flex;
        align-items: center;

        width: 100%;

        min-height: 46px;

        padding: 11px 14px;

        color: #263b60;

        background: transparent !important;

        border-radius: 10px;

        font-size: 13px;
        font-weight: 700;

        transition:
            background .18s ease,
            color .18s ease,
            padding-left .18s ease;
    }


    .public-nav a:hover {
        color: #123a66;

        background: #f1f5fa !important;

        padding-left: 18px;
    }


    .public-nav a.is-active {
        color: #0b3f83;

        background: #eaf2fb !important;
    }


    .public-nav a.is-active::before {
        content: "";

        width: 4px;
        height: 22px;

        margin-right: 10px;

        background: #1766c8;

        border-radius: 999px;
    }


    .public-nav a.is-active::after {
        display: none;
    }


    .public-nav .admin-access {
        justify-content: center;

        margin: 8px 0 0;

        color: #fff !important;

        background:
            linear-gradient(
                135deg,
                #0b3f83,
                #071f49
            ) !important;

        border-radius: 10px;
    }


    .public-nav .admin-access:hover {
        padding-left: 14px;

        background:
            linear-gradient(
                135deg,
                #123f7d,
                #092a59
            ) !important;
    }
}

@media (max-width: 820px) {

    .public-header {
        top: 0;
    }

    .public-nav {
        top: 76px;
        max-height: calc(100vh - 76px);
    }

    .report-actions {
        grid-template-columns: 1fr;
    }

    .report-filter select {
        max-width: none;
    }

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

@media (max-width: 560px) {

    .public-container {
        width: min(100% - 24px, 1400px);
    }

    .report-summary-grid {
        grid-template-columns: 1fr;
    }

    .report-action-btn {
        min-height: 56px;
    }

    .report-toolbar {
        padding: 15px;
    }
}

.back-to-top {
    position: fixed;
    right: 26px;
    bottom: 26px;
    z-index: 900;

    display: grid;
    place-items: center;

    width: 50px;
    height: 50px;

    color: #fff;
    background: #246eee;
    border: 3px solid #fff;
    border-radius: 50%;
    box-shadow: 0 8px 22px rgba(0,0,0,.22);

    font-size: 22px;
    text-decoration: none;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(12px);

    transition:
        opacity .25s ease,
        visibility .25s ease,
        transform .25s ease;
}

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

/* =========================================================
   GRÁFICOS - ENTIDADE E ÁREA DE ATUAÇÃO
========================================================= */

.premium-charts-section {
    padding: 10px 0 48px;
}

.premium-charts-heading {
    margin-bottom: 18px;
}

.premium-charts-heading h2 {
    margin: 5px 0 4px;
    color: #0b1f45;
    font-family: Manrope, sans-serif;
    font-size: 25px;
}

.premium-charts-heading p {
    margin: 0;
    color: #64748b;
    font-size: 13px;
}

.premium-charts-grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 1.15fr);

    gap: 18px;
}


/* ENTIDADE */

.entity-chart-layout {
    display: grid;
    grid-template-columns:
        220px
        minmax(0, 1fr);

    gap: 26px;

    align-items: center;

    padding: 24px;
}

.entity-donut-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
}

.entity-donut {
    position: relative;

    display: grid;
    place-items: center;

    width: 190px;
    height: 190px;

    border-radius: 50%;
}

.entity-donut::after {
    content: "";

    position: absolute;

    inset: 44px;

    background: #fff;

    border-radius: 50%;
}

.entity-donut-center {
    position: relative;
    z-index: 2;

    display: grid;

    text-align: center;
}

.entity-donut-center strong {
    color: #0b1f45;

    font: 800 25px Manrope, sans-serif;
}

.entity-donut-center span {
    color: #718096;

    font-size: 10px;
}

.entity-chart-legend {
    display: grid;

    gap: 10px;
}

.entity-legend-row {
    display: grid;

    grid-template-columns:
        10px
        minmax(0, 1fr)
        auto;

    gap: 9px;

    align-items: center;
}

.entity-legend-color {
    width: 9px;
    height: 9px;

    border-radius: 3px;
}

.entity-legend-info {
    display: grid;

    min-width: 0;
}

.entity-legend-info strong {
    overflow: hidden;

    color: #243b5a;

    font-size: 10px;

    text-overflow: ellipsis;
    white-space: nowrap;
}

.entity-legend-info small {
    color: #748298;

    font-size: 9px;
}

.entity-legend-percent {
    padding: 4px 7px;

    color: #40536d;

    background: #eef2f6;

    border-radius: 999px;

    font-size: 9px;
    font-weight: 800;
}


/* ÁREA */

.area-bars {
    display: grid;

    gap: 17px;

    padding: 24px;
}

.area-bar-row {
    display: grid;

    gap: 7px;
}

.area-bar-header {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 20px;
}

.area-bar-header strong {
    overflow: hidden;

    color: #263b59;

    font-size: 11px;

    text-overflow: ellipsis;
    white-space: nowrap;
}

.area-bar-header span {
    flex: 0 0 auto;

    color: #64748b;

    font-size: 9px;
    font-weight: 700;
}

.area-bar-track {
    overflow: hidden;

    width: 100%;
    height: 11px;

    background: #e9eef4;

    border-radius: 999px;
}

.area-bar-value {
    height: 100%;

    min-width: 4px;

    border-radius: inherit;

    transition: width .4s ease;
}


/* RESPONSIVO */

@media (max-width: 1050px) {

    .premium-charts-grid {
        grid-template-columns: 1fr;
    }

}

@media (max-width: 640px) {

    .entity-chart-layout {
        grid-template-columns: 1fr;
    }

    .entity-donut {
        width: 165px;
        height: 165px;
    }

    .entity-donut::after {
        inset: 38px;
    }

}
/* HOME PÚBLICA - NOVA ESTRUTURA */
.home-overview-section{padding:34px 0 22px;background:#f4f7fb}
.home-analytics-section{padding:30px 0 52px;background:linear-gradient(180deg,#f4f7fb 0%,#f7f9fc 100%)}
.home-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:18px}
.home-section-heading>div{min-width:0}
.home-section-eyebrow{display:inline-block;margin-bottom:5px;color:#23b6aa;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.home-section-heading h2{margin:0;color:#0b1f45;font:800 25px/1.22 Manrope,sans-serif;letter-spacing:-.025em}
.home-section-heading p{max-width:720px;margin:6px 0 0;color:#69778d;font-size:12px}
.home-heading-link{flex:0 0 auto;color:#1558ae;font-size:11px;font-weight:800;text-decoration:none}
.home-heading-link:hover{text-decoration:underline}

.home-overview-grid{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(340px,.82fr);gap:18px;align-items:stretch}
.home-overview-card{min-height:100%;overflow:hidden}
.dashboard-card-title>div{display:flex;align-items:center;gap:9px;min-width:0}
.home-card-icon{display:grid;flex:0 0 auto;place-items:center;width:29px;height:29px;color:#1658ad;background:#edf4fc;border:1px solid #dce8f5;border-radius:8px;font-size:12px;font-weight:900}
.home-overview-card .recent-list>a,.home-overview-card .ranking-list>a{min-height:70px}

.analytics-heading{margin-bottom:16px}
.home-charts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:stretch}
.home-chart-card{overflow:hidden;border:1px solid #dce4ed;box-shadow:0 10px 28px rgba(7,31,73,.055)}
.home-chart-card .dashboard-card-title{min-height:58px;padding:14px 17px;background:linear-gradient(180deg,#fff,#fbfcfe)}
.home-chart-card .dashboard-card-title h2{font-size:13px}
.home-chart-card .dashboard-card-title a{font-size:10px}

.home-chart-card .status-chart-layout,.home-chart-card .entity-chart-layout{min-height:245px}
.home-chart-card .status-chart-layout{grid-template-columns:180px minmax(0,1fr);padding:24px 22px}
.home-chart-card .status-donut{width:156px;height:156px}
.home-chart-card .status-donut:after{inset:37px}

.home-chart-card .entity-chart-layout{display:grid;grid-template-columns:180px minmax(0,1fr);gap:20px;align-items:center;padding:24px 22px}
.entity-donut-wrapper{display:flex;align-items:center;justify-content:center}
.entity-donut{position:relative;display:grid;place-items:center;width:156px;height:156px;border-radius:50%}
.entity-donut:after{content:"";position:absolute;inset:37px;background:#fff;border-radius:50%}
.entity-donut-center{position:relative;z-index:2;display:grid;text-align:center}
.entity-donut-center strong{color:#0b1f45;font:800 25px/1 Manrope,sans-serif}
.entity-donut-center span{margin-top:4px;color:#728096;font-size:9px}
.entity-chart-legend{display:grid;gap:9px;min-width:0}
.entity-legend-row{display:grid;grid-template-columns:9px minmax(0,1fr) auto;gap:8px;align-items:center;min-width:0}
.entity-legend-color{width:8px;height:8px;border-radius:3px}
.entity-legend-info{display:grid;min-width:0}
.entity-legend-info strong{overflow:hidden;color:#263b59;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.entity-legend-info small{color:#758399;font-size:9px}
.entity-legend-percent{padding:4px 7px;color:#536177;background:#eef2f6;border-radius:999px;font-size:8px;font-weight:800}

.home-area-chart-card{margin-top:18px}
.home-area-bars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 34px;padding:24px}
.area-bar-row{display:grid;gap:7px;min-width:0}
.area-bar-header{display:flex;align-items:center;justify-content:space-between;gap:18px}
.area-bar-header>strong{overflow:hidden;color:#263b59;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.area-bar-meta{display:flex;align-items:center;gap:9px;flex:0 0 auto}
.area-bar-meta small{color:#1b6d4a;font-size:9px;font-weight:700}
.area-bar-meta span{padding:4px 7px;color:#536177;background:#eef2f6;border-radius:999px;font-size:8px;font-weight:800}
.area-bar-track{overflow:hidden;width:100%;height:9px;background:#e8edf3;border-radius:999px}
.area-bar-value{height:100%;min-width:5px;border-radius:inherit;transition:width .35s ease}

.home-overview-section .dashboard-card,.home-analytics-section .dashboard-card{background:#fff;border-radius:14px}
.home-overview-section .dashboard-card-title,.home-analytics-section .dashboard-card-title{border-bottom-color:#e8edf3}
.home-overview-section .recent-list>a:hover,.home-overview-section .ranking-list>a:hover{background:#f8fbfe}

@media(max-width:1050px){
    .home-overview-grid,.home-charts-grid{grid-template-columns:1fr}
    .home-area-bars{grid-template-columns:1fr}
}
@media(max-width:760px){
    .home-section-heading{align-items:flex-start;flex-direction:column;gap:10px}
    .home-section-heading h2{font-size:22px}
    .home-chart-card .status-chart-layout,.home-chart-card .entity-chart-layout{grid-template-columns:1fr;justify-items:center}
    .home-chart-card .status-legend,.home-chart-card .entity-chart-legend{width:100%}
}
@media(max-width:560px){
    .home-overview-section{padding-top:26px}
    .home-analytics-section{padding:26px 0 40px}
    .home-area-bars{padding:18px}
    .area-bar-header{align-items:flex-start;flex-direction:column;gap:5px}
    .area-bar-meta{width:100%;justify-content:space-between}
}

.footer-message a {
    color: inherit;
    font-weight: 700;
    text-decoration: none;
}

.footer-message a:hover {
    color: #ffffff;
    text-decoration: underline;
}

/* =========================================
   MARCA NO RODAPÉ
========================================= */

.premium-footer .public-brand .brand-copy strong {
    color: #ffffff !important;
}

.premium-footer .public-brand .brand-copy small {
    color: #b8c9df !important;
}

.premium-footer .public-brand {
    text-decoration: none;
}

.premium-footer .public-brand:hover .brand-copy strong {
    color: #ffffff !important;
}

/* =========================================================
   BOTÃO DE ACESSIBILIDADE NA BARRA SUPERIOR
========================================================= */

.access-bar-accessible-mode {
    display: inline-flex;
    align-items: center;
    gap: 7px;

    min-height: 42px;
    padding: 0 13px;

    color: #005b91;
    background: transparent;

    border: 0;

    cursor: pointer;

    font-family: inherit;
    font-size: 12px;
    font-weight: 700;

    transition:
        background .2s ease,
        color .2s ease;
}

.access-bar-accessible-mode:hover {
    background: #e5edf5;
}

.access-bar-accessible-mode[aria-pressed="true"] {
    color: #ffffff;
    background: #0b4c87;
}

.access-bar-accessible-mode:focus-visible {
    outline: 4px solid #ffb800 !important;
    outline-offset: -4px !important;
}

.access-bar-accessible-mode > span {
    font-size: 17px;
}
/* =========================================================
   CORREÇÃO - TEXTOS LONGOS EM EMENDAS
   Evita que descrição, observações, URLs e palavras sem espaços
   ultrapassem a largura dos cards e quebrem o layout.
   ========================================================= */

.detail-layout,
.detail-main,
.detail-card,
.detail-card-heading,
.detail-grid,
.detail-grid > div,
.rich-public-text,
.public-list-card,
.list-card-main,
.amendment-card,
.dashboard-card {
    min-width: 0;
    max-width: 100%;
}

.rich-public-text,
.detail-card p,
.detail-card dd,
.detail-card li,
.detail-card span,
.list-card-main p,
.amendment-card p {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    word-wrap: break-word;
    word-break: break-word;
}

/* Mantém parágrafos e quebras de linha legíveis */
.rich-public-text {
    line-height: 1.7;
}

.rich-public-text p:first-child {
    margin-top: 0;
}

.rich-public-text p:last-child {
    margin-bottom: 0;
}

/* Links muito grandes também não podem estourar o card */
.rich-public-text a,
.detail-card a,
.detail-grid dd a {
    overflow-wrap: anywhere;
    word-break: break-word;
}

/* === Solicitações das Entidades === */
.entity-request-public-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.entity-request-public-card{background:#fff;border:1px solid #e1e8f0;border-radius:18px;padding:22px;box-shadow:0 10px 30px rgba(19,45,79,.06);min-width:0}
.entity-request-public-card h2{margin:13px 0 8px}.entity-request-public-card h2 a{text-decoration:none;color:#102c50}
.entity-request-public-card p,.request-main-detail p,.request-meta dd{overflow-wrap:anywhere;word-break:break-word}
.request-values,.request-show-values{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}
.request-values>div,.request-show-values>div{padding:12px;border-radius:12px;background:#f5f8fc}.request-values small,.request-show-values small{display:block;color:#6c7b8e}.request-values strong,.request-show-values strong{display:block;margin-top:4px;color:#102c50}
.request-details-link{font-weight:700;text-decoration:none;color:#0b5dbb}
.request-show-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.7fr);gap:22px;align-items:start}
.request-side{display:grid;gap:18px}.request-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:20px 0}.request-meta div{padding:12px;background:#f7f9fc;border-radius:12px}.request-meta dt{font-size:12px;color:#6b7788}.request-meta dd{margin:4px 0 0;font-weight:700}
.linked-amendment-public,.public-document-link{display:flex;flex-direction:column;gap:4px;padding:12px 0;border-bottom:1px solid #e7edf4;text-decoration:none;color:#17365d}.linked-amendment-public b{color:#0b5dbb}
.public-document-link{display:block}
@media(max-width:850px){.entity-request-public-grid,.request-show-grid{grid-template-columns:1fr}.request-values,.request-show-values{grid-template-columns:1fr}.request-meta{grid-template-columns:1fr}}


/* =========================================================
   DETALHE PÚBLICO - SOLICITAÇÕES DAS ENTIDADES
========================================================= */
.entity-request-detail-hero{padding:42px 0 48px}
.entity-request-back{display:inline-flex;margin-bottom:22px;color:rgba(255,255,255,.78);font-size:12px;font-weight:700;text-decoration:none}
.entity-request-back:hover{color:#fff}
.entity-request-hero-row{display:flex;align-items:flex-end;justify-content:space-between;gap:30px}
.entity-request-hero-row h1{margin:8px 0 5px;font:800 clamp(34px,4vw,48px)/1.08 Manrope,sans-serif;letter-spacing:-.035em}
.entity-request-hero-row p{margin:0;color:#d9e6f4;font-size:15px}
.entity-request-status{flex:0 0 auto;margin-bottom:5px;color:#145b48;background:#e7f5ef}
.entity-request-detail-section{padding:34px 0 60px}
.entity-request-detail-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(330px,.75fr);gap:22px;align-items:start}
.entity-request-detail-main,.entity-request-detail-side{display:grid;gap:18px;min-width:0}
.entity-request-summary-card{padding:28px}
.entity-request-summary-card h2{margin:5px 0 22px;color:#0b1f45;font-size:24px;line-height:1.3;overflow-wrap:anywhere}
.entity-request-kicker{display:block;color:#718096;font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.request-show-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}
.request-show-values>div{min-width:0;padding:17px 18px;background:#f5f8fc;border:1px solid #e5ebf2;border-radius:12px}
.request-show-values small{display:block;margin-bottom:5px;color:#6d7b8e;font-size:11px;font-weight:700}
.request-show-values strong{display:block;margin:0;color:#0b2e61;font:800 clamp(18px,2vw,23px)/1.2 Manrope,sans-serif;white-space:nowrap}
.entity-request-progress-block{margin-top:20px;padding-top:20px;border-top:1px solid #e7ecf2}
.entity-request-progress-label{display:flex;justify-content:space-between;gap:20px;margin-bottom:9px;color:#66758a;font-size:11px}
.entity-request-progress-label strong{color:#0b1f45}
.entity-request-progress{overflow:hidden;height:9px;background:#e6ebf1;border-radius:999px}
.entity-request-progress>span{display:block;height:100%;background:linear-gradient(90deg,#1d6cd5,#25aa7a);border-radius:inherit}
.entity-request-progress-note{margin:9px 0 0;color:#748196;font-size:11px}
.entity-request-section-title{display:flex;align-items:flex-start;gap:12px;margin-bottom:20px}
.entity-request-section-icon,.entity-request-side-icon{display:grid;flex:0 0 auto;place-items:center;width:34px;height:34px;color:#1559ad;background:#edf4fc;border:1px solid #dbe8f6;border-radius:9px;font-size:13px;font-weight:900}
.entity-request-section-title h2,.entity-request-side-heading h2{margin:0;color:#0b1f45;font-size:17px}
.entity-request-section-title p,.entity-request-side-heading p{margin:3px 0 0;color:#758297;font-size:11px}
.request-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}
.request-meta>div{min-width:0;padding:15px 16px;background:#f7f9fc;border:1px solid #e8edf3;border-radius:11px}
.request-meta dt{color:#718096;font-size:10px;font-weight:800;letter-spacing:.035em;text-transform:uppercase}
.request-meta dd{margin:5px 0 0;color:#172f53;font-size:13px;font-weight:700;line-height:1.45;overflow-wrap:anywhere}
.entity-request-justification{padding:18px;color:#3e4f66;background:#f8fafc;border-left:4px solid #1d65bd;border-radius:0 10px 10px 0}
.entity-request-justification p{margin:0}
.entity-request-side-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:17px}
.entity-request-side-heading>div{display:flex;align-items:flex-start;gap:11px;min-width:0}
.entity-request-count{display:grid;flex:0 0 auto;place-items:center;min-width:27px;height:27px;padding:0 7px;color:#1559ad;background:#edf4fc;border-radius:999px;font-size:10px;font-weight:800}
.entity-request-linked-list,.entity-request-document-list{display:grid;gap:9px}
.linked-amendment-public{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding:14px 40px 14px 14px;color:inherit;background:#f7f9fc;border:1px solid #e4eaf1;border-radius:11px;text-decoration:none;transition:.2s ease}
.linked-amendment-public:hover{background:#f1f6fc;border-color:#c9d9eb;transform:translateY(-1px)}
.linked-amendment-number{color:#123e77;font-size:12px;font-weight:800}
.linked-amendment-councilor{grid-column:1;color:#6e7d91;font-size:10px;overflow-wrap:anywhere}
.linked-amendment-value{grid-column:2;grid-row:1/span 2;align-self:center;color:#0b5dbb;font-size:11px;font-weight:800;white-space:nowrap}
.linked-amendment-arrow{position:absolute;top:50%;right:14px;color:#7790ad;transform:translateY(-50%)}
.public-document-link{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px;color:inherit;background:#f7f9fc;border:1px solid #e4eaf1;border-radius:11px;text-decoration:none}
.public-document-link:hover{background:#f1f6fc;border-color:#c9d9eb}
.entity-request-file-icon{display:grid;place-items:center;width:42px;height:42px;color:#b42318;background:#fff0ee;border-radius:9px;font-size:9px;font-weight:900}
.entity-request-file-copy{display:grid;min-width:0}
.entity-request-file-copy strong{overflow:hidden;color:#17365d;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.entity-request-file-copy small{margin-top:2px;color:#78869a;font-size:9px}
.entity-request-file-arrow{color:#1559ad;font-size:16px;font-weight:800}
.entity-request-empty{padding:18px;color:#718096;background:#f8fafc;border:1px dashed #ccd6e2;border-radius:10px;font-size:11px;text-align:center}
.entity-request-transparency-note{display:flex;align-items:flex-start;gap:10px;padding:16px 18px;color:#587066;background:#eef8f4;border:1px solid #d8ede5;border-radius:13px}
.entity-request-transparency-note>span{display:grid;flex:0 0 auto;place-items:center;width:24px;height:24px;color:#fff;background:#27936f;border-radius:50%;font-size:11px;font-weight:900}
.entity-request-transparency-note p{margin:1px 0 0;font-size:10px;line-height:1.55}
@media(max-width:980px){.entity-request-detail-layout{grid-template-columns:1fr}}
@media(max-width:680px){
.entity-request-detail-hero{padding:32px 0 38px}
.entity-request-hero-row{align-items:flex-start;flex-direction:column;gap:14px}
.entity-request-status{margin:0}
.request-show-values,.request-meta{grid-template-columns:1fr}
.request-show-values strong{white-space:normal}
.linked-amendment-public{grid-template-columns:1fr;padding-right:38px}
.linked-amendment-value{grid-column:1;grid-row:auto;margin-top:4px}
}


/* =========================================================
   EMENDAS PÚBLICAS - MÚLTIPLOS VEREADORES
   ========================================================= */
.public-amendment-councilors{
    display:grid;
    gap:8px;
    width:100%;
}
.public-amendment-councilor{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:10px 12px;
    color:inherit;
    background:#fff;
    border:1px solid #e1e8f0;
    border-radius:10px;
    text-decoration:none;
}
.public-amendment-councilor>span{
    display:grid;
    min-width:0;
}
.public-amendment-councilor strong{
    color:#17365d;
    font-size:12px;
}
.public-amendment-councilor small{
    color:#718096;
    font-size:10px;
}
.public-amendment-councilor b{
    flex:0 0 auto;
    color:#0b5dbb;
    font-size:12px;
}
@media(max-width:520px){
    .public-amendment-councilor{
        align-items:flex-start;
        flex-direction:column;
        gap:5px;
    }
}

/* =========================================================
   IDENTIDADE E RODAPÉ GERENCIÁVEIS
   ========================================================= */
.brand-symbol-image{overflow:hidden;background:#fff!important;border:1px solid var(--public-border)!important}.brand-symbol-image img{width:100%;height:100%;padding:4px;object-fit:contain}
.public-nav-icon{display:none;margin-right:4px;font-size:.9em}
.premium-footer-inner{align-items:flex-start}.premium-footer-brand-column{display:grid;gap:18px;min-width:0}.footer-institution-card{display:grid;gap:8px;max-width:520px;color:#dce8f6;font-size:12px}.footer-institution-card>strong{margin-bottom:3px;color:#fff;font-size:14px}.footer-institution-card>div{display:grid;grid-template-columns:20px minmax(0,1fr);gap:7px;align-items:start}.footer-institution-card a{color:#dce8f6;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}.footer-institution-card a:hover{color:#fff}.footer-social-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.footer-social-links a{padding:6px 9px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);border-radius:8px;text-decoration:none}
@media(max-width:900px){.premium-footer-inner{grid-template-columns:1fr!important}.footer-institution-card{max-width:none}.public-nav-icon{display:inline}}


/* =========================================================
   RODAPÉ DISTRIBUÍDO - 3 COLUNAS
   ========================================================= */

.premium-footer{
    padding:0;
}

.footer-distributed{
    display:grid!important;
    grid-template-columns:
        minmax(260px,.9fr)
        minmax(340px,1.25fr)
        minmax(320px,1fr)!important;
    gap:clamp(34px,4vw,78px)!important;
    align-items:start!important;
    padding-top:34px!important;
    padding-bottom:34px!important;
}

.footer-column{
    min-width:0;
}

.footer-brand-column{
    display:grid;
    align-content:start;
    gap:16px;
}

.footer-brand-description{
    max-width:330px;
    margin:0;
    color:#9cadc3;
    font-size:11px;
    line-height:1.65;
}

.footer-contact-column{
    display:grid;
    gap:14px;
    padding-left:clamp(0px,1vw,18px);
}

.footer-contact-column h3{
    margin:0;
    color:#fff;
    font-size:14px;
    line-height:1.35;
}

.footer-contact-column .footer-institution-card{
    display:grid;
    gap:11px;
    max-width:none;
}

.footer-contact-column .footer-institution-card>strong{
    display:none;
}

.footer-contact-column .footer-institution-card>div{
    grid-template-columns:22px minmax(0,1fr);
    gap:9px;
    line-height:1.45;
}

.footer-transparency-column{
    display:grid;
    align-content:start;
    gap:18px;
}

.footer-transparency-column .footer-message{
    gap:9px;
}

.footer-transparency-column .footer-message strong{
    max-width:430px;
    font-size:13px;
    line-height:1.55;
}

.footer-transparency-column .footer-message span{
    max-width:430px;
    line-height:1.6;
}

.footer-transparency-column .pwa-install-button{
    justify-self:start;
}

.footer-social-links{
    margin-top:5px;
}

/* Desktop médio */
@media(max-width:1200px){
    .footer-distributed{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:30px 46px!important;
    }

    .footer-transparency-column{
        grid-column:1 / -1;
        padding-top:22px;
        border-top:1px solid rgba(255,255,255,.10);
    }

    .footer-transparency-column .footer-message strong,
    .footer-transparency-column .footer-message span{
        max-width:760px;
    }
}

/* Tablet e mobile */
@media(max-width:760px){
    .footer-distributed{
        grid-template-columns:1fr!important;
        gap:26px!important;
        padding-top:28px!important;
        padding-bottom:30px!important;
    }

    .footer-contact-column{
        padding-left:0;
        padding-top:22px;
        border-top:1px solid rgba(255,255,255,.10);
    }

    .footer-transparency-column{
        grid-column:auto;
        padding-top:22px;
    }

    .footer-brand-description,
    .footer-transparency-column .footer-message strong,
    .footer-transparency-column .footer-message span{
        max-width:none;
    }
}

/* =========================================================
   LINK EXTERNO - DETALHE PÚBLICO DA EMENDA
   ========================================================= */
.amendment-external-link-field dd{
    margin-top:6px;
}

.amendment-external-link-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:38px;
    padding:9px 13px;
    border:1px solid #cfd9ec;
    border-radius:9px;
    background:#fff;
    color:#174a7e;
    font-size:12px;
    font-weight:800;
    text-decoration:none;
    box-shadow:0 4px 12px rgba(20,48,93,.05);
    transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease,background .15s ease;
}

.amendment-external-link-button:hover{
    transform:translateY(-1px);
    border-color:#2f80ed;
    background:#f5f9ff;
    box-shadow:0 7px 16px rgba(20,48,93,.09);
}

.amendment-external-link-button span:first-child{
    font-size:15px;
    line-height:1;
}

@media(max-width:640px){
    .amendment-external-link-button{
        width:100%;
    }
}



/* Quantidade de emendas reprovadas no indicador da Home */
.metric-rejected-count{
    margin-top:2px;
    color:#b42318!important;
    font-weight:700;
}
.metric-rejected-count b{
    color:inherit;
    font-weight:800;
}


/* Indicador de Saúde - Home pública */
.metric-health{align-items:flex-start}
.metric-health .premium-metric-icon{background:#18a66a;box-shadow:0 5px 12px rgba(24,166,106,.20)}
.health-metric-content{flex:1;min-width:0;width:auto!important;display:grid!important;gap:3px!important}
.health-metric-content>strong{font-size:clamp(18px,1.45vw,23px)!important}
.health-progress{position:relative;width:100%;height:7px;margin:5px 0 1px;overflow:hidden;border-radius:999px;background:#e4eaf1;box-shadow:inset 0 1px 2px rgba(15,35,68,.10)}
.health-progress-fill{position:absolute;inset:0 auto 0 0;display:block;height:100%;border-radius:999px;background:#f4ae21;transition:width .45s ease}
.health-goal-reached .health-progress-fill{background:#2ebd63}
.health-progress-minimum{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#10244d;opacity:.75;transform:translateX(-1px);z-index:2}
.health-progress-meta{display:flex!important;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.health-progress-meta span{margin:0!important;color:#68758d!important;font-size:10px!important;line-height:1.2!important;white-space:nowrap}
.health-progress-meta b{color:#10244d;font-weight:800}
.health-progress-meta .health-minimum-label{color:#52627a!important;font-weight:700}
.health-progress-status{margin-top:0!important;font-size:10px!important;font-weight:800!important;line-height:1.2!important;white-space:nowrap}
.health-progress-status.is-ok{color:#168953!important}
.health-progress-status.is-pending{color:#a36b00!important}
@media(max-width:560px){
    .health-progress-meta{gap:5px}
    .health-progress-meta span,.health-progress-status{font-size:9.5px!important}
}


/* Número da emenda em destaque nos cards públicos */
.amendment-number-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;color:#123e77!important;background:#eaf2fd;border:1px solid #c9dcf5;border-radius:999px;font-size:11px!important;font-weight:800;letter-spacing:.02em;text-transform:none;white-space:nowrap}
.amendment-number-badge small{color:#4d6b93!important;font-size:inherit!important;font-weight:700}
.recent-list small.amendment-number-badge{justify-self:start}
