:root {
    --bg: #f4f6f9;
    --bg-2: #e9ecef;
    --panel: #ffffff;
    --panel-2: #f8f9fa;
    --text: #212529;
    --heading: #002b5b;
    --muted: #6c757d;
    --muted-2: #555e6d;
    --accent: #004a7c;
    --accent-hover: #003a63;
    --accent-2: #198754;
    --danger: #dc3545;
    --warning: #b45309;
    --border: #dee2e6;
    --border-strong: #ced4da;
    --shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    --sidebar-bg: #ffffff;
    --topbar-bg: #ffffff;
    --accent-soft: rgba(0, 74, 124, 0.08);
    --accent-soft-hover: rgba(0, 74, 124, 0.12);
    --panel-accent-bg: linear-gradient(90deg, #ebf0f5 0%, #ffffff 52%, #ffffff 100%);
    --toolbar-bg: #6c757d;
    --on-accent: #ffffff;
    --input-bg: #ffffff;
    --table-head: #f8f9fa;
    --table-row-alt: #f8f9fa;
}

* { box-sizing: border-box; }
body {
    margin: 0;
    min-height: 100vh;
    font-family: 'Segoe UI', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 13px;
    background: var(--bg);
    color: var(--text);
}
a { text-decoration: none; }

.admin-shell {
    display: grid;
    grid-template-columns: 200px 1fr;
    min-height: 100vh;
}
.admin-sidebar {
    background: var(--sidebar-bg);
    border-right: 1px solid var(--border);
    padding: 14px 12px;
    box-shadow: 2px 0 12px rgba(26, 43, 61, 0.04);
}
.brand {
    display: flex;
    gap: 8px;
    align-items: center;
    padding-bottom: 12px;
    margin-bottom: 10px;
    border-bottom: 1px solid var(--border);
}
.brand-mark {
    width: 34px; height: 34px; border-radius: 10px;
    background: var(--accent-soft);
    border: 1px solid var(--border);
    display: grid; place-items: center; font-weight: 800; font-size: 11px; color: var(--accent);
    overflow: hidden;
    flex-shrink: 0;
}
.brand-mark img { display: block; width: 22px; height: 22px; }
.topbar-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}
.topbar-user-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid var(--border);
    background: var(--panel-2);
}
.brand-title { font-weight: 800; font-size: 13px; }
.brand-subtitle { font-size: 11px; color: var(--muted); margin-top: 2px; }
.side-nav { display: grid; gap: 3px; }
.side-nav a {
    padding: 8px 10px; border-radius: 8px; font-size: 12px;
    color: var(--text); background: transparent;
    border: 1px solid transparent;
}
.side-nav a:hover,
.side-nav a[aria-current="page"] {
    background: var(--accent-soft);
    border-color: var(--border);
    color: var(--accent);
}
.side-nav a[aria-current="page"] {
    font-weight: 700;
    border-color: rgba(0, 74, 124, 0.22);
}

.admin-main { min-width: 0; background: var(--bg); }
.admin-topbar {
    display: flex; justify-content: space-between; align-items: center;
    padding: 10px 18px;
    border-bottom: 1px solid var(--border);
    background: var(--topbar-bg);
    box-shadow: 0 1px 0 rgba(26, 43, 61, 0.04);
}
.topbar-kicker { color: var(--muted); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; }
.topbar-title { font-size: 1.1rem; font-weight: 700; margin-top: 2px; color: var(--heading); }
.status-pill {
    display: inline-flex; padding: 5px 10px; border-radius: 999px; font-size: 11px;
    background: var(--accent-soft); color: var(--accent); font-weight: 700;
    border: 1px solid var(--border);
}
.admin-content { padding: 14px 18px; }

.panel-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}
.panel-card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 16px 20px;
    box-shadow: var(--shadow);
}
.panel-card.accent {
    background: var(--panel-accent-bg);
    border-color: var(--border);
    box-shadow: none;
    padding: 20px 24px;
}
.panel-card.accent .panel-label {
    color: var(--muted);
    font-size: 11px;
    letter-spacing: 0.08em;
    margin-bottom: 6px;
}
.panel-card.accent .panel-value {
    color: var(--heading);
    font-size: clamp(1.35rem, 2.5vw, 1.65rem);
    font-weight: 700;
    margin-top: 0;
    line-height: 1.25;
}
.panel-card.accent .panel-meta {
    color: var(--muted-2);
    font-size: 14px;
    line-height: 1.5;
    margin-top: 8px;
}
.status-chip, .badge-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .03em;
}
.status-chip.open { background: rgba(0, 74, 124, 0.08); color: var(--accent); border: 1px solid rgba(0, 74, 124, 0.18); }
.status-chip.created { background: rgba(37, 99, 235, 0.1); color: #1d4ed8; border: 1px solid rgba(37, 99, 235, 0.22); }
.status-chip.draft { background: rgba(100, 116, 139, 0.12); color: #475569; border: 1px solid rgba(100, 116, 139, 0.22); }
.status-chip.vote { background: rgba(25, 135, 84, 0.1); color: var(--accent-2); border: 1px solid rgba(25, 135, 84, 0.22); }
.status-chip.closed { background: rgba(180, 35, 24, 0.08); color: var(--danger); border: 1px solid rgba(180, 35, 24, 0.15); }
.status-chip.warn { background: rgba(180, 83, 9, 0.1); color: var(--warning); border: 1px solid rgba(180, 83, 9, 0.2); }
.panel-label {
    color: var(--muted);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: 3px;
    display: block;
}
.panel-value { font-size: 1.1rem; font-weight: 700; margin-top: 6px; color: var(--heading); }
.panel-meta { color: var(--muted-2); margin-top: 4px; font-size: 13px; line-height: 1.45; }
.quick-links { display: grid; gap: 6px; margin-top: 8px; }
.quick-links a {
    padding: 7px 10px; border-radius: 8px; font-size: 12px;
    background: var(--panel-2); color: var(--text); border: 1px solid var(--border);
}
.table-wrap {
    overflow: auto;
    border-radius: 10px;
    border: 1px solid var(--border);
}
.leg-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--panel);
}
.leg-table th, .leg-table td {
    padding: 7px 10px;
    border-bottom: 1px solid var(--border);
    text-align: left;
    vertical-align: top;
    font-size: 12px;
}
.leg-table tbody tr:nth-child(even) {
    background: var(--table-row-alt);
}
.leg-table th {
    color: var(--muted);
    background: var(--table-head);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.action-row { display:flex; gap:6px; flex-wrap:wrap; }
.btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding: 6px 11px;
    border-radius: 8px;
    border: 1px solid transparent;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}
.btn-primary { background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
.btn-primary:hover { background: var(--accent-hover); }
.btn-soft {
    background: #ffffff;
    color: var(--text);
    border-color: var(--border-strong);
}
.btn-soft:hover { background: var(--panel-2); border-color: var(--border); }
.btn-danger { background: #fef2f2; color: var(--danger); border-color: #fecaca; }
.btn-danger:hover { background: #fee2e2; }
.btn-icon {
    width: 34px;
    height: 34px;
    min-width: 34px;
    padding: 0;
    font-size: 0;
}

.btn-icon.btn-primary .icon-glyph {
    font-size: 16px;
}
.icon-glyph {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    line-height: 1;
}
.field {
    width: 100%;
    padding: 8px 10px;
    border-radius: 8px;
    border: 1px solid var(--border-strong);
    background: var(--input-bg);
    color: var(--text);
    font-size: 13px;
}
.field:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

.auth-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    align-items: stretch;
}
.auth-visual {
    position: relative;
    padding: 36px 40px;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border-right: 1px solid var(--border);
    color: #f4f8fc;
    background:
        radial-gradient(circle at 18% 22%, rgba(255, 255, 255, .12), transparent 32%),
        radial-gradient(circle at 82% 28%, rgba(126, 200, 160, .14), transparent 28%),
        linear-gradient(155deg, #004a7c 0%, #003a63 48%, #002b5b 100%);
}
.auth-visual .auth-title,
.auth-visual .auth-text,
.auth-visual .auth-note {
    color: inherit;
}
.auth-visual::after {
    content: '';
    position: absolute;
    inset: 16px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 22px;
    pointer-events: none;
}
.auth-visual .auth-hero {
    width: 100%;
    max-width: 560px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
    text-align: center;
}
.auth-visual .auth-text {
    color: rgba(244, 248, 252, 0.88);
    margin-left: auto;
    margin-right: auto;
}
.auth-visual .auth-notes {
    margin-left: auto;
    margin-right: auto;
    text-align: left;
}
.auth-kicker {
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .14);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.auth-title {
    margin: 12px 0 8px;
    font-size: clamp(2rem, 4vw, 3.2rem);
    line-height: .95;
    letter-spacing: -0.03em;
    font-weight: 900;
}
.auth-text {
    color: var(--muted);
    font-size: .95rem;
    line-height: 1.6;
    max-width: 56ch;
}
.auth-notes {
    display: grid;
    gap: 7px;
    margin-top: 16px;
    max-width: 520px;
}
.auth-note {
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .12);
    font-size: 12px;
}
.auth-panel {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px 20px;
    background: var(--bg);
}
.auth-card {
    width: min(100%, 400px);
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 22px;
    box-shadow: var(--shadow);
}
.auth-card h2 {
    margin: 8px 0 6px;
    font-size: 1.5rem;
}
.auth-form {
    display: grid;
    gap: 11px;
    margin-top: 14px;
}
.auth-field label {
    display: block;
    color: var(--muted);
    margin-bottom: 5px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
}
.auth-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    margin-top: 4px;
}
.auth-help {
    font-size: 12px;
    color: var(--muted);
}
.auth-error {
    padding: 8px 11px;
    border-radius: 8px;
    background: #fef2f2;
    color: var(--danger);
    border: 1px solid #fecaca;
    font-size: 12px;
}

.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(26, 43, 61, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
    z-index: 1000;
}
.modal-card {
    width: min(1100px, 100%);
    max-height: 94vh;
    overflow: auto;
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 14px;
    box-shadow: var(--shadow);
    padding: 14px;
}
.modal-head {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap: 10px;
    margin-bottom: 10px;
}
.modal-grid {
    display:grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}
.modal-grid .wide-2 { grid-column: span 2; }
.modal-grid .wide-3 { grid-column: 1 / -1; }
.modal-close {
    color: var(--muted);
    font-size: 13px;
}
.is-hidden {
    display: none;
}
.modal-card-confirm {
    width: min(460px, 100%);
    max-height: none;
}
.confirm-copy {
    max-width: 48ch;
    line-height: 1.6;
    font-size: 13px;
}
.confirm-actions {
    justify-content: flex-end;
    margin-top: 6px;
    gap: 10px;
}

.app-confirm-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    flex-shrink: 0;
    background: rgba(255, 193, 7, 0.15);
    border: 1px solid rgba(255, 193, 7, 0.35);
}

.app-confirm-icon--danger {
    background: rgba(255, 127, 142, 0.12);
    border-color: rgba(255, 127, 142, 0.35);
}

.app-confirm-head {
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.modal-overlay.is-open {
    display: flex;
}

.modal-overlay.is-hidden {
    display: none;
}

body.app-confirm-open {
    overflow: hidden;
}
.pauta-list {
    display: grid;
    gap: 8px;
    margin-top: 10px;
}
.pauta-builder {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap: 10px;
}
.pauta-item-card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 10px 12px;
}
.pauta-item-head {
    display:flex;
    justify-content:space-between;
    gap: 10px;
    align-items:flex-start;
}
.pauta-item-meta {
    display:grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    margin-top: 8px;
}
.meta-box {
    padding: 7px 9px;
    border-radius: 8px;
    background: var(--panel-2);
    border: 1px solid var(--border);
}
.meta-box .k { color: var(--muted); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.meta-box .v { margin-top: 3px; font-weight: 700; font-size: 12px; }

.sapl-flags {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 14px 20px;
    padding: 8px 10px;
    border-radius: 8px;
    background: var(--panel-2);
    border: 1px solid var(--border);
}
.sapl-flags label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--text);
    cursor: pointer;
}
.sapl-flags input[type="checkbox"] {
    width: 15px;
    height: 15px;
    accent-color: var(--accent);
}

.tabbar {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 10px;
    padding: 4px;
    border: 1px solid rgba(112, 163, 255, 0.16);
    border-radius: 10px;
    background: rgba(10, 16, 32, 0.55);
}

.tab-btn {
    border: 0;
    border-radius: 7px;
    padding: 5px 11px;
    background: transparent;
    color: #fff;
    font: inherit;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .02em;
    cursor: pointer;
    transition: background-color .15s ease, color .15s ease, box-shadow .15s ease;
}

.tab-btn:hover {
    color: #fff;
    background: rgba(112, 163, 255, 0.12);
}

.tab-btn.is-active {
    color: #fff;
    background: linear-gradient(135deg, rgba(84, 187, 252, 0.95), rgba(64, 144, 219, 0.95));
    box-shadow: 0 4px 12px rgba(35, 112, 179, 0.22);
}

.tab-panels {
    margin-top: 6px;
}

.tab-panel {
    display: none;
}

.tab-panel.is-active {
    display: block;
}

.repeat-list {
    display: grid;
    gap: 8px;
}

.repeat-item {
    border: 1px solid rgba(112, 163, 255, 0.16);
    border-radius: 8px;
    padding: 8px 10px;
    background: transparent;
}

.repeat-actions {
    display: flex;
    justify-content: flex-end;
    gap: 6px;
    margin-top: 6px;
}

.roteiro-panel {
    padding: 16px 18px;
}

.roteiro-panel-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px 20px;
    margin-bottom: 14px;
}

.roteiro-panel-lead {
    margin: 4px 0 0;
    font-size: 13px;
    line-height: 1.45;
    color: var(--muted);
    max-width: 42rem;
}

.roteiro-panel-progress {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    min-width: 120px;
}

.roteiro-panel-progress-label {
    font-size: 15px;
    font-weight: 700;
    color: var(--accent);
}

.roteiro-panel-progress-track {
    width: 140px;
    height: 6px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    overflow: hidden;
}

.roteiro-panel-progress-fill {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--accent), #5fd6ff);
    transition: width 0.25s ease;
}

.roteiro-panel-progress-hint {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--muted);
}

.roteiro-panel-alert {
    margin-bottom: 12px;
}

.roteiro-fluxo {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: 0 0 14px;
    padding: 0;
}

.roteiro-fluxo-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px 6px 6px;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: var(--panel-2);
    font-size: 12px;
    color: var(--muted);
}

.roteiro-fluxo-item.is-done {
    border-color: rgba(0, 74, 124, 0.28);
    color: var(--accent);
}

.roteiro-fluxo-item.is-current {
    border-color: rgba(0, 74, 124, 0.4);
    background: var(--accent-soft);
    color: var(--accent);
}

.roteiro-fluxo-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    font-size: 11px;
    font-weight: 800;
    background: var(--panel-2);
    color: var(--muted);
    border: 1px solid var(--border);
}

.roteiro-fluxo-item.is-done .roteiro-fluxo-num,
.roteiro-fluxo-item.is-current .roteiro-fluxo-num {
    background: var(--accent);
    color: #fff;
    border-color: var(--accent);
}

.roteiro-panel-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;
    border-radius: 12px;
    border: 1px solid #5a6268;
    background: var(--toolbar-bg);
    margin-bottom: 14px;
}
.roteiro-panel-toolbar .roteiro-check-tribuna {
    color: #f8f9fa;
}
.roteiro-panel-toolbar .roteiro-check-tribuna input[type="checkbox"] {
    accent-color: #3a9691;
}

.sessao-bloqueio-banner {
    padding: 10px 14px;
    border-radius: 10px;
    background: #fff8e6;
    border: 1px solid #f0d78c;
    color: #7a5a00;
    font-size: 13px;
    line-height: 1.45;
}

.btn.is-disabled,
a.btn.is-disabled,
span.btn.is-disabled {
    opacity: 0.55;
    pointer-events: none;
    cursor: not-allowed;
    filter: grayscale(0.15);
}

.roteiro-panel-toolbar.is-locked {
    justify-content: space-between;
}

.roteiro-toolbar-locked-msg {
    margin: 0;
    font-size: 13px;
    color: #f8f9fa;
    font-weight: 600;
}

.roteiro-publicar-hint {
    margin: 0 0 14px;
}

.roteiro-publicar-form {
    display: inline-flex;
    margin: 0;
}

.roteiro-sortable.is-readonly .roteiro-drag-handle {
    display: none;
    pointer-events: none;
}
.roteiro-panel-toolbar .btn-soft {
    background: #ffffff;
    color: #212529;
    border-color: #dee2e6;
}
.roteiro-panel-toolbar .btn-soft:hover {
    background: #f8f9fa;
}
.roteiro-panel-toolbar .btn-primary {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}

.roteiro-gerar-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
}

.roteiro-check-tribuna {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--muted);
    cursor: pointer;
    user-select: none;
}

.roteiro-panel-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.roteiro-panel-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 8px;
}

.roteiro-panel-metrics .meta-box--hint {
    grid-column: span 2;
}

@media (min-width: 720px) {
    .roteiro-panel-metrics .meta-box--hint {
        grid-column: auto;
    }
}

.roteiro-panel-metrics .v-hint {
    font-size: 11px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--muted-2);
}

.roteiro-panel-empty {
    margin: 0;
    padding: 10px 12px;
    font-size: 13px;
    color: var(--muted);
    border-radius: 8px;
    background: var(--panel-2);
    border: 1px dashed var(--border-strong);
}

.roteiro-panel-empty code {
    font-size: 12px;
}

.roteiro-list {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}

.roteiro-item {
    border: 1px solid var(--border);
    border-radius: 10px;
    background: rgba(8, 14, 28, 0.35);
}

.roteiro-item-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    cursor: pointer;
    list-style: none;
}

.roteiro-ordem {
    font-weight: 800;
    color: var(--accent);
    min-width: 1.5em;
}

.roteiro-preview {
    flex: 1;
    font-size: 12px;
    color: var(--muted);
    min-width: 120px;
}

.roteiro-item-body {
    padding: 0 12px 12px;
    border-top: 1px solid var(--border);
}

.roteiro-item.CONCLUIDO .roteiro-item-head {
    opacity: .65;
}

.roteiro-montar-page {
    grid-column: 1 / -1;
}

.roteiro-montar-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}

.roteiro-montar-layout {
    display: grid;
    grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

@media (max-width: 900px) {
    .roteiro-montar-layout {
        grid-template-columns: 1fr;
    }
}

.roteiro-montar-aside {
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 12px;
    background: transparent;
    max-height: 75vh;
    overflow-y: auto;
    position: sticky;
    top: 12px;
}

.roteiro-montar-aside .panel-label {
    color: #000;
    font-weight: 500;
}

.roteiro-montar-aside .panel-meta {
    color: #000;
    font-weight: 400;
}

.roteiro-sortable {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 6px;
}

.roteiro-group-label {
    list-style: none;
    margin: 10px 0 4px;
    padding: 4px 8px;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #000;
    border-bottom: 1px solid rgba(0, 0, 0, 0.15);
}

.roteiro-sort-item {
    display: flex;
    align-items: stretch;
    gap: 6px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--panel);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.roteiro-sort-item.is-active {
    border-color: rgba(0, 74, 124, 0.45);
    box-shadow: 0 0 0 1px rgba(0, 74, 124, 0.15);
}

.roteiro-sort-item.is-skipped {
    opacity: 0.55;
}

.roteiro-sort-item.is-skipped .roteiro-sort-preview {
    text-decoration: line-through;
}

.roteiro-skip-form {
    margin: 0;
    flex-shrink: 0;
    align-self: center;
}

.roteiro-skip-btn {
    width: 28px;
    height: 28px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 6px;
    background: rgba(0, 0, 0, 0.2);
    color: var(--muted);
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
    padding: 0;
}

.roteiro-skip-btn:hover {
    border-color: rgba(255, 180, 120, 0.45);
    color: #ffc9a8;
}

.roteiro-skip-btn--on {
    border-color: rgba(120, 200, 140, 0.45);
    color: #9fd4a8;
}

.roteiro-incluir-hint {
    margin: -4px 0 12px;
    font-size: 11px;
}

.roteiro-meta-check--highlight {
    color: #b8d4ff;
}

.roteiro-sort-item.is-dragging {
    opacity: 0.55;
}

.roteiro-drag-handle {
    cursor: grab;
    padding: 10px 6px;
    color: var(--muted);
    font-weight: 800;
    user-select: none;
    flex-shrink: 0;
}

.roteiro-drag-handle:active {
    cursor: grabbing;
}

.roteiro-sort-link {
    flex: 1;
    display: flex;
    gap: 8px;
    padding: 8px 10px 8px 0;
    text-decoration: none;
    color: inherit;
    min-width: 0;
}

.roteiro-sort-num {
    font-weight: 800;
    color: var(--accent);
    min-width: 1.4em;
    flex-shrink: 0;
}

.roteiro-sort-body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.roteiro-sort-materia {
    font-size: 12px;
    font-weight: 700;
    color: var(--text);
}

.roteiro-sort-preview {
    font-size: 11px;
    color: var(--muted);
    line-height: 1.35;
}

.roteiro-sort-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.roteiro-montar-main {
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 12px 14px;
    background: var(--panel);
}

.roteiro-montar-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.roteiro-toggle-preview {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    color: var(--muted);
    margin: 0;
    cursor: pointer;
}

.roteiro-meta-compact {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 8px 10px;
    margin-bottom: 10px;
}

.roteiro-meta-field {
    flex: 0 1 auto;
    min-width: 100px;
}

.roteiro-meta-field--grow {
    flex: 1 1 180px;
}

.roteiro-meta-check {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0 0 4px;
    white-space: nowrap;
}

.field--compact {
    padding: 6px 9px;
    font-size: 13px;
}

.roteiro-montar-main .panel-label {
    margin-bottom: 4px;
    font-size: 10px;
}

.roteiro-doc-editor {
    font-size: 14px;
    line-height: 1.5;
    min-height: 2.6em;
    max-height: 32vh;
    padding: 8px 10px;
    resize: none;
    overflow-y: hidden;
    width: 100%;
    font-family: inherit;
}

.roteiro-doc-editor--muted {
    font-size: 13px;
    color: var(--text);
}

.roteiro-doc-block {
    margin-bottom: 8px;
}

.roteiro-doc-block:last-of-type {
    margin-bottom: 6px;
}

.roteiro-preview-presidente {
    margin-top: 10px;
    padding: 12px 14px;
    border-radius: 10px;
    border: 1px dashed rgba(0, 74, 124, 0.3);
    background: var(--accent-soft);
}

.roteiro-preview-presidente .panel-label {
    margin-bottom: 6px;
}

.roteiro-preview-presidente .conducao-fala {
    white-space: pre-wrap;
    font-size: 1.1rem;
    line-height: 1.45;
    margin: 0;
}

.roteiro-preview-presidente .conducao-instrucao {
    margin-top: 8px;
    font-size: 12px;
}

.roteiro-form-actions {
    justify-content: space-between;
    align-items: center;
    margin-top: 10px;
    flex-wrap: wrap;
    gap: 10px;
}

.roteiro-form-actions-nav {
    flex-wrap: wrap;
    gap: 8px;
}

.roteiro-remove-form {
    display: inline-flex;
    margin: 0;
}

.btn-has-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 12px;
}

.btn-has-icon .icon-glyph {
    font-size: 13px;
    opacity: 0.9;
}

.roteiro-montar-aside .panel-label {
    font-size: 10px;
}

.roteiro-sort-link {
    padding: 6px 8px 6px 0;
}

.roteiro-drag-handle {
    padding: 6px 4px;
}

.conducao-progress {
    margin-top: 10px;
    height: 6px;
    border-radius: 999px;
    background: var(--border);
    overflow: hidden;
    max-width: 280px;
}

.conducao-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--accent), #3d8fc4);
    border-radius: 999px;
    transition: width 0.25s ease;
}

.conducao-shell {
    max-width: 900px;
    margin: 0 auto;
}

.conducao-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.conducao-card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 28px 24px;
    min-height: 220px;
}

.conducao-fala {
    font-size: clamp(1.25rem, 3vw, 1.75rem);
    line-height: 1.55;
    font-weight: 700;
    margin: 0;
}

.conducao-instrucao {
    margin: 16px 0 0;
    font-size: 14px;
    color: var(--muted);
    font-style: italic;
    line-height: 1.6;
}

.conducao-kicker {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--accent);
    margin-bottom: 8px;
}

.conducao-materia-ref {
    font-size: 13px;
    color: var(--muted);
    margin-bottom: 12px;
}

.conducao-ata-documento {
    margin: 0 0 20px;
    padding: 14px 16px;
    border-radius: 10px;
    border: 1px solid rgba(112, 163, 255, 0.35);
    background: transparent;
    max-height: min(42vh, 380px);
    overflow: auto;
}

.conducao-ata-corpo {
    margin-top: 10px;
    font-size: 14px;
    line-height: 1.55;
    white-space: pre-wrap;
    color: #fff;
}

.conducao-ata-vazio {
    margin-top: 8px;
    color: #fff;
}

.conducao-ata-vazio a {
    color: #fff;
}

.ata-textarea {
    font-family: inherit;
    line-height: 1.5;
    min-height: 140px;
}

.ata-sessao-divider {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.ata-accordion {
    margin-top: 12px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--panel-2);
    overflow: hidden;
}

.ata-accordion-summary {
    padding: 12px 14px;
    font-size: 13px;
    font-weight: 600;
    color: var(--accent);
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.ata-accordion-summary::-webkit-details-marker {
    display: none;
}

.ata-accordion-summary::before {
    content: "▸ ";
    display: inline-block;
    transition: transform 0.15s ease;
}

.ata-accordion[open] .ata-accordion-summary::before {
    transform: rotate(90deg);
}

.ata-accordion-body {
    padding: 0 14px 14px;
    border-top: 1px solid var(--border);
}

.ata-file-input {
    margin-top: 8px;
    padding: 8px;
    font-size: 13px;
}

.ata-arquivo-atual {
    margin: 8px 0 4px;
    font-size: 13px;
}

.ata-arquivo-atual a {
    color: var(--accent);
}

.ata-remover-arquivo {
    display: block;
    margin: 6px 0 8px;
    font-size: 12px;
    color: var(--muted);
    cursor: pointer;
}

.conducao-ata-pdf {
    display: block;
    width: 100%;
    min-height: 280px;
    margin-top: 12px;
    border: 0;
    border-radius: 6px;
    background: #0a1020;
}

.ata-sessao-acoes {
    flex-wrap: wrap;
    gap: 8px;
}

.conducao-sessao-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.conducao-sessao-list-item {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.conducao-sessao-list-item:last-child {
    border-bottom: none;
}

.conducao-nav {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: 16px;
}

.conducao-lista-completa {
    margin-top: 20px;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: 10px;
}

.conducao-ol {
    margin: 10px 0 0;
    padding-left: 20px;
    font-size: 12px;
    color: var(--muted);
}

.conducao-ol li.is-current {
    color: var(--accent);
    font-weight: 700;
}

.conducao-ol li.CONCLUIDO {
    text-decoration: line-through;
    opacity: .7;
}

.conducao-votacao-box {
    margin-top: 16px;
    padding: 12px 14px;
    border-radius: 10px;
    border: 1px solid rgba(95, 214, 255, 0.35);
    background: rgba(95, 214, 255, 0.06);
}

/* —— Conduzir sessão (visão presidente) —— */
.admin-layout--conducao .admin-main {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    max-height: 100vh;
    overflow: hidden;
}

.admin-layout--conducao .admin-topbar {
    flex-shrink: 0;
    padding: 8px 16px;
}

.admin-layout--conducao .topbar-kicker {
    display: none;
}

.admin-layout--conducao .topbar-title {
    font-size: 1rem;
}

.admin-layout--conducao .admin-content {
    flex: 1;
    min-height: 0;
    overflow: hidden;
    padding: 12px 18px 14px;
    display: flex;
    flex-direction: column;
}

.admin-layout--conducao .conducao-presidente {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    max-width: 1280px;
    margin: 0 auto;
    width: 100%;
}

.conducao-presidente-head {
    flex-shrink: 0;
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 12px 20px;
    align-items: center;
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border);
}

.conducao-presidente-eyebrow {
    margin: 0 0 4px;
    font-size: 10px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--accent);
    font-weight: 700;
}

.conducao-presidente-title {
    margin: 0;
    font-size: clamp(1.15rem, 2.5vw, 1.45rem);
    font-weight: 800;
    line-height: 1.25;
    color: var(--text);
}

.conducao-presidente-ref {
    margin: 6px 0 0;
    font-size: 13px;
    color: var(--muted);
}

.conducao-presidente-dot {
    margin: 0 6px;
    opacity: 0.5;
}

.conducao-presidente-step-label {
    color: var(--accent);
    font-weight: 600;
}

.conducao-presidente-progress {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    min-width: 72px;
}

.conducao-presidente-progress-ring {
    --pct: 0;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: conic-gradient(
        var(--accent) calc(var(--pct) * 1%),
        rgba(255, 255, 255, 0.08) 0
    );
    position: relative;
}

.conducao-presidente-progress-ring::before {
    content: "";
    position: absolute;
    inset: 5px;
    border-radius: 50%;
    background: var(--bg-2);
}

.conducao-presidente-progress-value {
    position: relative;
    z-index: 1;
    font-size: 12px;
    font-weight: 800;
    color: var(--accent);
}

.conducao-presidente-progress-bar {
    width: 72px;
    height: 4px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    overflow: hidden;
}

.conducao-presidente-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--accent), #5fd6ff);
    border-radius: 999px;
    transition: width 0.3s ease;
}

.conducao-presidente-tools {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.conducao-presidente-alert {
    flex-shrink: 0;
    margin-bottom: 10px;
    padding: 10px 14px;
    border-radius: 10px;
    font-size: 13px;
    background: transparent;
    border: 1px solid var(--border);
    color: var(--text);
}

.conducao-presidente-alert--ok {
    background: rgba(126, 226, 140, 0.12);
    border-color: rgba(126, 226, 140, 0.35);
    color: #111827;
}

.conducao-presidente-alert--warn {
    background: rgba(255, 196, 86, 0.14);
    border-color: rgba(255, 196, 86, 0.4);
    color: #111827;
}

.conducao-presidente-alert a {
    color: var(--accent);
}

.conducao-presidente-alert--inline {
    margin: 10px 0 0;
}

.conducao-votacao-box--stage .conducao-presidente-alert {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.35);
}

.conducao-presidente-grid {
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
    gap: 14px;
    align-items: stretch;
}

.conducao-presidente-main {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
    min-height: 0;
}

.conducao-stage {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    background: linear-gradient(165deg, rgba(18, 32, 58, 0.98) 0%, rgba(10, 18, 34, 0.98) 100%);
    border: 1px solid rgba(95, 214, 255, 0.22);
    border-radius: 16px;
    padding: 0;
    overflow-x: hidden;
    overflow-y: auto;
    box-shadow:
        0 0 0 1px rgba(0, 0, 0, 0.2),
        0 12px 32px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.conducao-stage-header {
    flex-shrink: 0;
    padding: 12px 18px 0;
}

.conducao-stage-tag {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

.conducao-stage-materia {
    margin: 10px 0 0;
    font-size: 14px;
    color: var(--muted);
    line-height: 1.4;
}

.conducao-ata-panel {
    flex-shrink: 0;
    margin: 10px 18px 0;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(112, 163, 255, 0.3);
    background: transparent;
    color: #fff;
}

.conducao-ata-panel-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 6px 12px;
    margin-bottom: 8px;
}

.conducao-ata-panel-title {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #fff;
}

.conducao-ata-panel-ref {
    font-size: 12px;
    color: #fff;
}

.conducao-ata-corpo--scroll {
    max-height: min(18vh, 140px);
    overflow: auto;
    color: #fff;
}

.conducao-ata-corpo--scroll a {
    color: #fff;
}

.conducao-teleprompter {
    flex: 1;
    min-height: 72px;
    padding: 16px 20px 18px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow-y: auto;
    background: radial-gradient(ellipse at 50% 0%, rgba(95, 214, 255, 0.06), transparent 55%);
}

.conducao-fala--stage {
    font-size: clamp(1.1rem, 2.2vh + 0.6rem, 1.75rem);
    line-height: 1.45;
    font-weight: 700;
    text-align: center;
    color: #f4f8ff;
    text-wrap: balance;
}

.conducao-fala--instrucao {
    font-style: italic;
    color: #c8daf5;
}

.conducao-fala--muted {
    font-weight: 500;
    color: var(--muted);
    font-size: 1.1rem;
}

.conducao-instrucao--stage {
    margin: 12px 0 0;
    padding-top: 12px;
    border-top: 1px dashed rgba(255, 255, 255, 0.12);
    font-size: 15px;
    text-align: center;
    color: var(--muted);
    font-style: italic;
}

.conducao-votacao-box--stage {
    flex-shrink: 0;
    margin: 0 18px 14px;
    padding: 12px 14px;
    border-radius: 12px;
    color: #fff;
}

.conducao-votacao-head {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 10px;
    color: #fff;
}

.conducao-votacao-icon {
    font-size: 1.5rem;
    line-height: 1;
    opacity: 0.9;
}

.conducao-votacao-title {
    font-size: 13px;
    font-weight: 700;
    color: #fff;
}

.conducao-votacao-sub {
    font-size: 12px;
    color: #fff;
    margin-top: 2px;
}

.conducao-votacao-msg {
    margin: 0 0 10px;
    font-size: 13px;
    color: #fff;
    line-height: 1.5;
}

.conducao-votacao-box--stage .sapl-ok.conducao-votacao-msg {
    color: #fff;
}

.conducao-destaque-box {
    flex-shrink: 0;
    margin: 0 18px 14px;
    padding: 12px 14px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
    color: #fff;
}

.conducao-destaque-box--fora {
    margin: 0;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.12);
    color: #0f172a;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
}

.conducao-destaque-box--fora .conducao-destaque-title,
.conducao-destaque-box--fora .conducao-destaque-sub,
.conducao-destaque-box--fora .conducao-destaque-ativo,
.conducao-destaque-box--fora .conducao-destaque-aviso,
.conducao-destaque-box--fora .conducao-destaque-form .panel-label {
    color: inherit;
}

.conducao-destaque-box--fora .conducao-destaque-sub,
.conducao-destaque-box--fora .conducao-destaque-aviso {
    opacity: 0.78;
}

.conducao-destaque-aviso {
    margin: 0 0 10px;
    font-size: 13px;
    line-height: 1.4;
}

.conducao-destaque-head {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 10px;
}

.conducao-destaque-icon {
    font-size: 1.25rem;
    line-height: 1;
    opacity: 0.9;
}

.conducao-destaque-title {
    font-size: 13px;
    font-weight: 700;
}

.conducao-destaque-sub {
    font-size: 12px;
    opacity: 0.85;
    margin-top: 2px;
}

.conducao-destaque-msg {
    margin: 0 0 10px;
    font-size: 13px;
}

.conducao-destaque-ativo {
    margin: 0 0 10px;
    font-size: 13px;
    line-height: 1.4;
}

.conducao-destaque-form .panel-label {
    color: rgba(255, 255, 255, 0.85);
}

.conducao-destaque-form .field {
    margin-top: 4px;
}

.conducao-destaque-actions {
    margin-top: 12px;
    flex-wrap: wrap;
}

.conducao-tempo-field {
    margin-top: 10px;
    max-width: 220px;
}

.conducao-tempo-field .panel-label {
    margin-bottom: 4px;
}

.sessao-timer {
    display: inline-flex;
    align-items: baseline;
    gap: 10px;
    margin-top: 10px;
    padding: 8px 12px;
    border-radius: 10px;
    background: rgba(15, 23, 42, 0.06);
    border: 1px solid rgba(15, 23, 42, 0.12);
}

.sessao-timer-label {
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
}

.sessao-timer-valor {
    font-variant-numeric: tabular-nums;
    font-size: 1.35rem;
    line-height: 1;
    color: #0f172a;
}

.sessao-timer--alerta {
    background: rgba(245, 158, 11, 0.12);
    border-color: rgba(245, 158, 11, 0.35);
}

.sessao-timer--alerta .sessao-timer-valor {
    color: #b45309;
}

.sessao-timer--esgotado {
    background: rgba(220, 38, 38, 0.1);
    border-color: rgba(220, 38, 38, 0.3);
}

.sessao-timer--esgotado .sessao-timer-valor {
    color: #b91c1c;
}

.sessao-timer--telao {
    margin-top: 16px;
    padding: 12px 18px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.22);
}

.sessao-timer--telao .sessao-timer-label {
    color: rgba(255, 255, 255, 0.75);
}

.sessao-timer--telao .sessao-timer-valor {
    font-size: 2.4rem;
    color: #fff;
}

.sessao-timer--telao.sessao-timer--alerta {
    background: rgba(245, 158, 11, 0.22);
}

.sessao-timer--telao.sessao-timer--esgotado {
    background: rgba(220, 38, 38, 0.28);
}

.conducao-votacao-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    margin-top: 12px;
}

.conducao-resultado {
    color: #fff;
}

.conducao-nav--stage {
    flex-shrink: 0;
    margin-top: 0;
    padding: 0;
}

.conducao-nav-btn {
    min-height: 44px;
    padding-left: 18px;
    padding-right: 18px;
    font-size: 14px;
    font-weight: 700;
}

.conducao-nav-btn--next {
    flex: 1;
    justify-content: center;
    max-width: 280px;
    margin-left: auto;
}

.conducao-nav-next-form {
    flex: 1;
    display: flex;
    justify-content: flex-end;
}

.conducao-stage--empty {
    text-align: center;
    padding: 48px 24px;
    border-radius: 18px;
    border: 1px dashed var(--border);
    background: var(--panel-2);
}

.conducao-stage-empty-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 16px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--accent-2);
    background: rgba(126, 226, 140, 0.15);
    border: 1px solid rgba(126, 226, 140, 0.35);
}

.conducao-stage-empty-title {
    margin: 0 0 8px;
    font-size: 1.25rem;
}

.conducao-stage-empty-copy {
    margin: 0 0 20px;
    color: var(--muted);
    max-width: 36ch;
    margin-left: auto;
    margin-right: auto;
}

.conducao-timeline-panel {
    min-height: 0;
    max-height: none;
    height: 100%;
    display: flex;
    flex-direction: column;
    background: rgba(12, 20, 36, 0.92);
    border: 1px solid var(--border);
    border-radius: 14px;
    overflow: hidden;
}

.conducao-timeline-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 16px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    background: rgba(8, 14, 28, 0.6);
    color: #fff;
}

.conducao-timeline-title {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #fff;
}

.conducao-timeline-count {
    font-size: 11px;
    color: #fff;
    font-weight: 600;
}

.conducao-timeline {
    list-style: none;
    margin: 0;
    padding: 8px;
    overflow-y: auto;
    flex: 1;
    min-height: 0;
}

.conducao-timeline-item {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 10px 10px;
    border-radius: 10px;
    border: 1px solid transparent;
    transition: background 0.15s ease, border-color 0.15s ease;
    color: #fff;
}

.conducao-timeline-item:hover {
    background: rgba(255, 255, 255, 0.03);
}

.conducao-timeline-item.is-current {
    background: rgba(95, 214, 255, 0.12);
    border-color: rgba(95, 214, 255, 0.35);
}

.conducao-timeline-item.is-concluido {
    opacity: 0.55;
}

.conducao-timeline-item.is-concluido .conducao-timeline-preview {
    text-decoration: line-through;
}

.conducao-timeline-num {
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    border-radius: 8px;
    display: grid;
    place-items: center;
    font-size: 11px;
    font-weight: 800;
    color: #fff;
    background: rgba(255, 255, 255, 0.06);
}

.conducao-timeline-item.is-current .conducao-timeline-num {
    color: var(--bg);
    background: var(--accent);
}

.conducao-timeline-body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.conducao-timeline-label {
    font-size: 11px;
    font-weight: 700;
    color: #fff;
    line-height: 1.3;
}

.conducao-timeline-preview {
    font-size: 12px;
    line-height: 1.4;
    color: #fff;
}

.conducao-timeline-item.is-current .conducao-timeline-preview {
    color: #fff;
    font-weight: 600;
}

/* Notebook / telas baixas: cabeçalho e palco mais compactos */
@media (max-height: 900px) {
    .admin-layout--conducao .admin-content {
        padding: 8px 14px 10px;
    }

    .conducao-presidente-head {
        gap: 8px 14px;
        margin-bottom: 8px;
        padding-bottom: 8px;
    }

    .conducao-presidente-title {
        font-size: 1.05rem;
    }

    .conducao-presidente-ref {
        font-size: 12px;
        margin-top: 4px;
    }

    .conducao-presidente-progress-ring {
        width: 48px;
        height: 48px;
    }

    .conducao-presidente-progress-value {
        font-size: 11px;
    }

    .admin-layout--conducao .conducao-presidente-tools .btn-has-icon span:not(.icon-glyph) {
        display: none;
    }

    .admin-layout--conducao .conducao-presidente-tools .btn-has-icon {
        padding: 8px 10px;
    }

    .conducao-stage-header {
        padding: 8px 14px 0;
    }

    .conducao-stage-tag {
        padding: 4px 10px;
        font-size: 10px;
    }

    .conducao-stage-materia {
        margin-top: 6px;
        font-size: 12px;
    }

    .conducao-teleprompter {
        padding: 12px 16px 14px;
    }

    .conducao-fala--stage {
        font-size: clamp(1rem, 1.8vh + 0.55rem, 1.45rem);
        line-height: 1.4;
    }

    .conducao-ata-corpo--scroll {
        max-height: min(14vh, 100px);
    }

    .conducao-nav-btn {
        min-height: 40px;
        font-size: 13px;
    }

    .conducao-timeline-head {
        padding: 10px 12px;
    }

    .conducao-timeline-item {
        padding: 7px 8px;
    }
}

@media (max-height: 768px) {
    .conducao-presidente-progress-bar {
        display: none;
    }

    .conducao-fala--stage {
        font-size: clamp(0.95rem, 1.5vh + 0.5rem, 1.25rem);
    }

    .conducao-votacao-box--stage {
        margin-bottom: 10px;
        padding: 10px 12px;
    }

    .conducao-votacao-actions {
        margin-top: 8px;
        gap: 8px;
    }
}

@media (max-width: 960px) {
    .admin-layout--conducao .admin-main {
        max-height: none;
        overflow: visible;
    }

    .admin-layout--conducao .admin-content {
        overflow: visible;
        height: auto;
    }

    .admin-layout--conducao .conducao-presidente {
        min-height: auto;
    }

    .conducao-presidente-head {
        grid-template-columns: 1fr;
    }

    .conducao-presidente-progress {
        flex-direction: row;
        justify-content: flex-start;
        width: 100%;
    }

    .conducao-presidente-progress-bar {
        flex: 1;
        max-width: 200px;
    }

    .conducao-presidente-tools {
        justify-content: flex-start;
    }

    .admin-layout--conducao .conducao-presidente-tools .btn-has-icon span:not(.icon-glyph) {
        display: inline;
    }

    .conducao-presidente-grid {
        grid-template-columns: 1fr;
        flex: none;
    }

    .conducao-presidente-main {
        min-height: auto;
    }

    .conducao-stage {
        flex: none;
        min-height: auto;
    }

    .conducao-teleprompter {
        flex: none;
        min-height: 120px;
    }

    .conducao-timeline-panel {
        max-height: min(38vh, 320px);
        height: auto;
    }

    .conducao-fala--stage {
        text-align: left;
    }

    .conducao-instrucao--stage {
        text-align: left;
    }

    .conducao-nav-next-form {
        justify-content: stretch;
    }

    .conducao-nav-btn--next {
        max-width: none;
        width: 100%;
    }
}

.votacao-vereador-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 10px;
}

.votacao-vereador-grid--registrados {
    margin-bottom: 4px;
}

.votacao-vereador-card {
    display: grid;
    grid-template-columns: 56px 1fr;
    grid-template-areas:
        "foto info"
        "form form";
    gap: 10px 12px;
    align-items: center;
    padding: 12px 14px;
    border-radius: 12px;
    border: 1px solid var(--border);
    background: transparent;
}

.votacao-vereador-card--votou {
    grid-template-columns: 56px 1fr auto;
    grid-template-areas: "foto info voto";
    border-color: rgba(95, 214, 255, 0.28);
    background: transparent;
}

.votacao-vereador-card--votou .votacao-vereador-foto { grid-area: foto; }
.votacao-vereador-card--votou .votacao-vereador-info { grid-area: info; }
.votacao-vereador-card--votou .votacao-vereador-voto { grid-area: voto; }

.votacao-vereador-card--aguardando {
    border-color: rgba(255, 255, 255, 0.08);
    opacity: 0.92;
}

.votacao-vereador-aguardando {
    font-size: 12px;
    font-weight: 600;
    color: var(--muted-2);
    font-style: italic;
}

.votacao-vereador-card--votou.votacao-vereador-card--ao-vivo {
    animation: parl-voto-entrada 0.45s ease-out;
}

.votacao-presidente-desempate {
    border: 1px solid rgba(255, 193, 7, 0.35);
    background: rgba(255, 193, 7, 0.06);
}

.votacao-vereador-card--tem-voto {
    opacity: 0.92;
}

.votacao-vereador-foto {
    grid-area: foto;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    background: rgba(255, 255, 255, 0.06);
    border: 2px solid rgba(95, 214, 255, 0.2);
}

.votacao-vereador-foto img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.votacao-vereador-iniciais {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    font-size: 14px;
    font-weight: 800;
    color: var(--accent);
}

.votacao-vereador-info {
    grid-area: info;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.votacao-vereador-nome {
    font-size: 14px;
    line-height: 1.3;
    color: var(--text);
}

.votacao-vereador-partido {
    font-size: 12px;
    color: var(--muted-2);
}

.votacao-vereador-voto {
    grid-area: voto;
    font-size: 13px;
    padding: 6px 12px;
    border-radius: 8px;
    font-weight: 800;
    white-space: nowrap;
}

.votacao-vereador-form {
    grid-area: form;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    justify-content: flex-end;
}

@media (max-width: 520px) {
    .votacao-vereador-card {
        grid-template-columns: 48px 1fr;
    }

    .votacao-vereador-form,
    .votacao-vereador-voto {
        grid-column: 1 / -1;
    }

    .votacao-vereador-form {
        justify-content: stretch;
    }

    .votacao-vereador-form .field {
        flex: 1;
        min-width: 0;
    }
}

.votacao-painel .voto-chip {
    display: inline-block;
    margin-left: 8px;
    padding: 2px 8px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 700;
}

.voto-chip.voto-sim { background: rgba(72, 187, 120, 0.2); color: #111827; }
.voto-chip.voto-nao { background: rgba(255, 107, 107, 0.2); color: #ffb3b3; }
.voto-chip.voto-abst { background: rgba(255, 193, 7, 0.15); color: #ffd666; }
.voto-sim-text { color: #111827; }
.voto-nao-text { color: #ffb3b3; }

.votacao-inline-form {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.btn--sm {
    padding: 5px 12px;
    font-size: 12px;
}

.leg-table--compact td,
.leg-table--compact th {
    padding: 8px 10px;
}

.votacao-historico {
    list-style: none;
    margin: 10px 0 0;
    padding: 0;
    display: grid;
    gap: 6px;
}

.votacao-historico li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    font-size: 13px;
}

.votacao-historico a {
    color: var(--accent);
    text-decoration: none;
}

.sapl-import-box {
    margin-bottom: 14px;
    padding: 12px;
    border: 1px dashed rgba(95, 214, 255, 0.35);
    border-radius: 10px;
    background: rgba(95, 214, 255, 0.06);
}

.nova-materia-head {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.nova-materia-plus {
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    margin-top: 2px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(95, 214, 255, 0.14);
    border: 1px solid rgba(95, 214, 255, 0.35);
    color: #8fdfff;
    font-size: 22px;
    font-weight: 700;
    line-height: 1;
}

.pauta-advanced-toggle {
    margin-top: 16px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--panel-2);
    padding: 4px 8px;
}

.pauta-advanced-summary {
    list-style: none;
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    padding: 10px 8px;
    user-select: none;
}

.pauta-advanced-summary::-webkit-details-marker {
    display: none;
}

.pauta-advanced-icon {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(95, 214, 255, 0.12);
    border: 1px solid rgba(95, 214, 255, 0.3);
    color: #8fdfff;
    font-size: 14px;
    line-height: 1;
    transition: transform .15s ease;
}

.pauta-advanced-toggle[open] .pauta-advanced-icon {
    transform: rotate(90deg);
}

.pauta-advanced-copy {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.pauta-advanced-title {
    color: var(--text);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.pauta-advanced-hint {
    color: var(--muted);
    font-size: 12px;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
}

.sessao-section-toggle {
    border: 0;
    background: transparent;
}

.sessao-section-summary {
    list-style: none;
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    user-select: none;
    padding: 2px 0;
}

.sessao-section-summary::-webkit-details-marker {
    display: none;
}

.sessao-section-icon {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(95, 214, 255, 0.12);
    border: 1px solid rgba(95, 214, 255, 0.3);
    color: #8fdfff;
    font-size: 14px;
    line-height: 1;
    transition: transform .15s ease;
}

.sessao-section-toggle[open] .sessao-section-icon {
    transform: rotate(90deg);
}

.sessao-section-copy {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.sessao-section-title {
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.sessao-section-hint {
    color: var(--muted);
    font-size: 12px;
    font-weight: 500;
}

.sessao-section-body {
    margin-top: 14px;
}

.sapl-ok {
    padding: 8px 11px;
    border-radius: 8px;
    background: rgba(126, 226, 140, 0.12);
    color: #111827;
    border: 1px solid rgba(126, 226, 140, 0.25);
    font-size: 12px;
}

/* —— Visão pública —— */
body.public-page {
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    font-size: 15px;
    line-height: 1.5;
}

.public-shell {
    width: min(920px, 100%);
    margin: 0 auto;
    padding: 32px 20px 24px;
}

.public-hero {
    margin-bottom: 28px;
    padding: 24px 26px;
    border-radius: 16px;
    border: 1px solid var(--border);
    background: var(--panel);
    box-shadow: var(--shadow);
}

.public-hero-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
}

.public-hero-mark {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    font-weight: 800;
    font-size: 13px;
    color: var(--accent);
    background: var(--accent-soft);
    border: 1px solid var(--border);
}

.public-hero-kicker {
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--accent);
    font-weight: 700;
}

.public-hero-sub {
    font-size: 12px;
    color: var(--muted);
    margin-top: 2px;
}

.public-hero-title {
    margin: 0 0 14px;
    font-size: clamp(1.35rem, 4vw, 1.75rem);
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -0.02em;
}

.public-hero-lead {
    margin: 0;
    color: var(--muted);
    font-size: 15px;
    max-width: 42em;
}

.public-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.public-chip {
    display: inline-block;
    padding: 5px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    background: var(--panel-2);
    border: 1px solid var(--border);
    color: var(--text);
}

.public-chip--open {
    background: rgba(0, 74, 124, 0.08);
    border-color: rgba(0, 74, 124, 0.22);
    color: var(--accent);
}

.public-chip--vote {
    background: rgba(15, 122, 74, 0.1);
    border-color: rgba(15, 122, 74, 0.25);
    color: var(--accent-2);
}

.public-chip--closed {
    background: var(--panel-2);
    color: var(--muted);
}

.public-chip--draft {
    background: rgba(180, 83, 9, 0.1);
    border-color: rgba(180, 83, 9, 0.25);
    color: var(--warning);
}

.public-main {
    margin-bottom: 20px;
}

.public-section-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 16px;
}

.public-section-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--muted);
}

.public-section-count {
    font-size: 13px;
    color: var(--accent);
    font-weight: 600;
}

.public-pauta-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 12px;
}

.public-pauta-card {
    padding: 18px 20px;
    border-radius: 12px;
    border: 1px solid var(--border);
    background: var(--panel);
    box-shadow: var(--shadow);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.public-pauta-card:hover {
    border-color: rgba(0, 74, 124, 0.35);
    box-shadow: 0 2px 8px rgba(0, 43, 91, 0.08);
}

.public-pauta-card-top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
}

.public-pauta-ordem {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--accent);
}

.public-pauta-tipo {
    font-size: 11px;
    padding: 3px 8px;
    border-radius: 6px;
    background: rgba(0, 0, 0, 0.25);
    color: var(--muted);
    border: 1px solid rgba(255, 255, 255, 0.06);
}

.public-pauta-titulo {
    margin: 0 0 8px;
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.35;
}

.public-pauta-ementa {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: var(--muted);
}

.public-empty {
    text-align: center;
    padding: 48px 24px;
    border-radius: 12px;
    border: 1px dashed rgba(255, 255, 255, 0.12);
    background: rgba(8, 16, 28, 0.5);
    color: var(--muted);
}

.public-empty-icon {
    font-size: 28px;
    color: var(--accent);
    opacity: 0.5;
    margin-bottom: 12px;
}

.public-empty p {
    margin: 0;
    font-size: 15px;
}

.public-footer {
    text-align: center;
    padding: 16px 20px 28px;
    font-size: 12px;
    color: var(--muted);
}

.public-footer-sep {
    margin: 0 6px;
    opacity: 0.5;
}

/* —— Telão: alto contraste (tema escuro só na TV) —— */
body.public-page--telao {
    --bg: #06101c;
    --bg-2: #0a1728;
    --panel: #101c32;
    --panel-2: #13213a;
    --text: #eaf1ff;
    --muted: #afbdd5;
    --accent: #5fd6ff;
    --accent-2: #7ee28c;
    --danger: #ff7f8e;
    --warning: #ffc95f;
    --border: rgba(94, 172, 214, 0.22);
    --shadow: 0 8px 28px rgba(0, 0, 0, 0.35);
    --accent-soft: rgba(95, 214, 255, 0.1);
    background:
        radial-gradient(circle at top left, rgba(95, 214, 255, 0.12), transparent 38%),
        linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 100%);
    color: var(--text);
}

body.public-page--telao .public-hero,
body.public-page--telao .public-pauta-card {
    background: linear-gradient(145deg, rgba(16, 28, 50, 0.95), rgba(10, 20, 36, 0.88));
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
}

body.public-page--telao .public-hero-mark {
    background: linear-gradient(135deg, rgba(95, 214, 255, 0.2), rgba(95, 214, 255, 0.06));
    border-color: rgba(95, 214, 255, 0.25);
}

body.public-page--telao .public-chip {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.1);
}

body.public-page--telao .public-chip--open {
    background: rgba(95, 214, 255, 0.12);
    border-color: rgba(95, 214, 255, 0.35);
    color: #b8e8ff;
}

body.public-page--telao .public-chip--vote {
    background: rgba(126, 226, 140, 0.12);
    border-color: rgba(126, 226, 140, 0.35);
    color: #b8f0c4;
}

body.public-page--telao .public-pauta-card:hover {
    border-color: rgba(95, 214, 255, 0.35);
    background: rgba(20, 36, 62, 0.85);
}

/* —— Telão: uma tela, sem rolagem —— */
html.public-page--telao,
body.public-page--telao {
    height: 100%;
    overflow: hidden;
}

body.public-page--telao {
    font-size: clamp(13px, 1.1vw, 18px);
}

body.public-page--telao .public-shell {
    width: 100%;
    max-width: none;
    height: 100vh;
    height: 100dvh;
    margin: 0;
    padding: clamp(8px, 1.2vh, 16px) clamp(12px, 1.5vw, 24px);
    box-sizing: border-box;
    overflow: hidden;
}

body.public-page--telao .public-footer {
    display: none;
}

.publico-sessao--telao {
    height: 100%;
    min-height: 0;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    gap: clamp(6px, 0.8vh, 10px);
    overflow: hidden;
}

.public-telao-header {
    margin: 0;
    padding: clamp(6px, 0.8vh, 10px) clamp(12px, 1.2vw, 16px);
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 0;
}

.public-telao-header-left {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    flex: 1;
}

.public-telao-header-titles {
    min-width: 0;
}

.public-telao-title {
    margin: 2px 0 0;
    font-size: clamp(0.88rem, 1.6vw, 1.25rem);
    line-height: 1.15;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.public-telao-header-right {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-shrink: 0;
}

.public-telao-roteiro {
    font-size: 0.75rem;
    color: var(--muted);
    width: 100%;
    text-align: right;
}

/* Carrossel telão */
.public-telao-carousel {
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    border-radius: 14px;
    border: 1px solid var(--border);
    background: rgba(0, 0, 0, 0.25);
}

.public-telao-carousel-track {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-wrap: nowrap;
    width: max-content;
    will-change: transform;
    animation: public-telao-roll var(--telao-roll-duration, 48s) linear infinite;
}

.publico-sessao--giro-unico .public-telao-carousel-track {
    animation: none;
    width: 100%;
    transform: none;
}

.publico-sessao--fixo-votacao .public-telao-carousel-contador::before {
    content: '● ';
    animation: none;
}

@keyframes public-telao-roll {
    0% {
        transform: translate3d(0, 0, 0);
    }
    100% {
        transform: translate3d(var(--telao-roll-end, -50%), 0, 0);
    }
}

.public-carrossel-pane {
    flex: 0 0 var(--telao-pane-w, 100%);
    width: var(--telao-pane-w, 100%);
    min-height: 0;
    padding: clamp(12px, 1.5vh, 20px) clamp(14px, 1.8vw, 24px);
    box-sizing: border-box;
    overflow: hidden;
}

.public-carrossel-slide {
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.public-carrossel-slide--momento {
    justify-content: center;
    text-align: center;
    padding: clamp(8px, 2vh, 24px);
}

.public-carrossel-slide--destaque {
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: clamp(12px, 3vh, 32px);
}

.public-destaque-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(16px, 3vh, 28px);
    max-width: min(920px, 100%);
    margin: 0 auto;
}

/* Telao largo: duas colunas (foto/nome | momento + tempo) */
@media (min-width: 900px) {
    .public-carrossel-slide--destaque {
        text-align: left;
    }

    .public-destaque-body {
        flex-direction: row;
        align-items: center;
        justify-content: center;
        gap: clamp(28px, 5vw, 72px);
        max-width: min(1600px, 100%);
    }

    .public-destaque-pessoa > .public-destaque-foto {
        width: clamp(180px, 26vmin, 340px);
        height: clamp(180px, 26vmin, 340px);
    }

    .public-destaque-info {
        align-items: center;
        text-align: center;
        min-width: 0;
        flex: 1 1 0;
        max-width: min(46ch, 100%);
    }

    .public-destaque-momento {
        margin: 0 0 clamp(12px, 2vh, 24px);
        font-size: clamp(1.8rem, 4.2vw, 3.4rem);
        font-weight: 700;
        line-height: 1.2;
        opacity: 1;
        max-width: 100%;
        text-align: center;
        width: 100%;
    }

    .public-carrossel-slide--destaque .sessao-timer--telao {
        align-self: stretch;
        margin-top: clamp(14px, 2.5vh, 28px);
        padding: clamp(14px, 2.4vh, 26px) clamp(20px, 2.5vw, 36px);
        /* empilhado: o label nunca e espremido pelo valor */
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: clamp(4px, 0.8vh, 10px);
    }

    .public-carrossel-slide--destaque .sessao-timer--telao .sessao-timer-valor {
        font-size: clamp(3.2rem, 9vmin, 7rem);
        line-height: 1;
    }

    /* "Esgotado" e uma palavra longa: reduz para caber sem estourar */
    .public-carrossel-slide--destaque .sessao-timer--telao.sessao-timer--esgotado .sessao-timer-valor {
        font-size: clamp(2rem, 5vmin, 4rem);
    }

    .public-carrossel-slide--destaque .sessao-timer--telao .sessao-timer-label {
        font-size: clamp(0.9rem, 1.6vmin, 1.2rem);
        white-space: nowrap;
    }
}

.public-destaque-foto {
    width: clamp(140px, 22vmin, 240px);
    height: clamp(140px, 22vmin, 240px);
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid rgba(255, 255, 255, 0.35);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
}

.public-destaque-foto--iniciais {
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.12);
    font-size: clamp(2.5rem, 6vmin, 4rem);
    font-weight: 700;
    letter-spacing: 0.04em;
}

.public-destaque-info {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.public-destaque-pessoa {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: clamp(10px, 1.6vh, 18px);
    flex: 0 0 auto;
}

.public-destaque-pessoa .public-destaque-nome {
    margin: 0;
    font-size: clamp(1.8rem, 4.2vw, 3.4rem);
}

.public-destaque-pessoa .public-destaque-meta {
    justify-content: center;
    font-size: clamp(1.5rem, 3.6vw, 2.8rem);
    font-weight: 700;
    line-height: 1.2;
    opacity: 1;
}

.sessao-timer--telao.sessao-timer--destaque {
    border: 4px solid #dc2626;
    box-shadow: 0 0 0 1px rgba(220, 38, 38, 0.35), 0 10px 32px rgba(0, 0, 0, 0.35);
}

.public-destaque-nome {
    margin: 0;
}

.public-destaque-meta {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 12px;
    font-size: clamp(1rem, 2.2vmin, 1.35rem);
    opacity: 0.9;
}

.public-destaque-sep {
    opacity: 0.5;
}

.public-destaque-partido {
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.public-destaque-gabinete {
    opacity: 0.85;
}

.public-destaque-momento {
    margin: 10px 0 0;
    font-size: clamp(1.4rem, 3.4vw, 2.6rem);
    font-weight: 700;
    line-height: 1.2;
    opacity: 1;
    max-width: 100%;
}

.public-carrossel-slide--votacao {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    gap: clamp(8px, 1vh, 14px);
    align-content: start;
}

.public-carrossel-cabecalho-votacao {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: clamp(8px, 0.9vh, 12px);
    width: 100%;
    padding-bottom: clamp(6px, 0.8vh, 10px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.public-carrossel-slide-titulo-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px 16px;
    width: 100%;
}

.public-carrossel-slide-titulo-row .public-carrossel-titulo {
    flex: 1;
    min-width: 0;
    margin: 0;
}

.public-carrossel-slide-titulo-row .public-votacao-badge {
    flex-shrink: 0;
    align-self: flex-start;
}

.public-carrossel-kicker {
    margin: 0 0 6px;
    font-size: clamp(0.65rem, 1vw, 0.8rem);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #ffe08a;
}

.public-carrossel-slide--momento .public-carrossel-kicker {
    color: var(--muted);
}

.public-carrossel-titulo {
    margin: 0;
    font-size: clamp(1.15rem, 2.8vw, 2rem);
    line-height: 1.2;
    font-weight: 700;
}

.public-carrossel-slide--momento .public-carrossel-titulo {
    font-size: clamp(1.35rem, 3.2vw, 2.4rem);
}

.public-carrossel-texto {
    margin: clamp(10px, 1.5vh, 18px) auto 0;
    max-width: 900px;
    font-size: clamp(0.85rem, 1.4vw, 1.1rem);
    color: var(--muted);
    line-height: 1.45;
}

.public-carrossel-texto--suave {
    font-style: italic;
}

.public-carrossel-slide-corpo {
    flex: 1;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-self: stretch;
}

.public-telao-placar {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-end;
    justify-content: flex-start;
    gap: clamp(28px, 6vw, 72px);
    width: 100%;
    margin: 0;
    padding: clamp(4px, 0.5vh, 8px) 0 0;
}

.public-telao-placar-col {
    flex: 0 0 auto;
    text-align: center;
    min-width: clamp(88px, 14vw, 160px);
}

.public-telao-placar-num {
    display: block;
    font-size: clamp(3.25rem, 8vw, 5.5rem);
    font-weight: 800;
    line-height: 1;
    margin: 0 0 8px;
    letter-spacing: -0.02em;
}

.public-telao-placar-label {
    display: block;
    font-size: clamp(1.2rem, 2.6vw, 1.9rem);
    font-weight: 700;
    line-height: 1.15;
    color: var(--text);
}

.public-telao-placar-col--sim .public-telao-placar-num {
    color: #7dcea0;
}

.public-telao-placar-col--nao .public-telao-placar-num {
    color: #f1948a;
}

.public-telao-placar-col--abst .public-telao-placar-num {
    color: #e8d48b;
}

.public-telao-placar-col--aus .public-telao-placar-num {
    color: #bdc3c7;
}

.publico-sessao--pausa-resultado .public-telao-carousel-contador::before {
    content: '◆ ';
    animation: none;
}

.historico-timeline {
    list-style: none;
    margin: 0;
    padding: 0;
    border-left: 2px solid var(--border);
}

.historico-timeline-item {
    position: relative;
    padding: 12px 0 12px 20px;
    margin-left: 8px;
}

.historico-timeline-item::before {
    content: '';
    position: absolute;
    left: -13px;
    top: 18px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ffc107;
}

.historico-timeline-quando {
    display: block;
    font-size: 0.75rem;
    color: var(--muted);
    margin-bottom: 4px;
}

.cerimonial-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.cerimonial-list-item {
    padding: 10px 0;
    border-bottom: 1px solid var(--border);
}

.public-carrossel-resumo {
    display: flex;
    flex-wrap: wrap;
    gap: clamp(12px, 2vw, 28px);
    justify-content: center;
}

.public-carrossel-resumo-item {
    text-align: center;
    font-size: clamp(0.75rem, 1vw, 0.9rem);
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.public-carrossel-resumo-num {
    display: block;
    font-size: clamp(1.6rem, 3.5vw, 2.5rem);
    font-weight: 800;
    line-height: 1.1;
    color: var(--text);
}

.public-carrossel-resumo-item--sim .public-carrossel-resumo-num {
    color: #7dcea0;
}

.public-carrossel-resumo-item--nao .public-carrossel-resumo-num {
    color: #f1948a;
}

.public-vereador-grid--carrossel {
    flex: 1;
    min-height: 0;
    height: 100%;
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    grid-auto-rows: minmax(0, 1fr);
    gap: clamp(6px, 0.8vh, 10px);
    align-content: stretch;
    overflow: hidden;
}

/* 9+ vereadores: mais colunas, cards compactos — cabe na tela sem rolagem */
.public-vereador-grid--denso {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (min-width: 1100px) {
    .public-vereador-grid--denso {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (min-width: 1500px) {
    .public-vereador-grid--denso {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

.public-vereador-grid--muitos {
    gap: clamp(4px, 0.55vh, 8px);
}

.public-vereador-grid--denso .public-vereador-card--carrossel {
    padding: 4px 6px 4px 4px;
    gap: 6px;
}

.public-vereador-grid--denso .public-vereador-card--carrossel .public-vereador-foto {
    width: clamp(32px, 3.8vh, 44px);
    height: clamp(32px, 3.8vh, 44px);
}

.public-vereador-grid--denso .public-vereador-card--carrossel .public-vereador-info strong {
    font-size: clamp(0.62rem, 0.85vw, 0.74rem);
}

.public-vereador-grid--denso .public-vereador-card--carrossel .public-vereador-info span {
    font-size: 0.55rem;
}

.public-vereador-grid--denso .public-vereador-card--carrossel .voto-chip {
    font-size: clamp(0.8rem, 1.2vw, 0.95rem);
    padding: 5px 10px;
}

.public-vereador-grid--denso .public-vereador-card--carrossel .public-vereador-aguardando {
    font-size: clamp(0.68rem, 1vw, 0.8rem);
    padding: 4px 8px;
}

.public-vereador-card--carrossel {
    display: flex;
    flex-direction: row;
    align-items: center;
    text-align: left;
    padding: 5px 8px 5px 5px;
    border-radius: 10px;
    background: transparent;
    border: 1px solid var(--border);
    gap: 8px;
    min-height: 0;
}

.public-vereador-card--carrossel .public-vereador-foto {
    width: clamp(40px, 5vh, 52px);
    height: clamp(40px, 5vh, 52px);
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    background: rgba(255, 255, 255, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
}

.public-vereador-card--carrossel .public-vereador-foto img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.public-vereador-card--carrossel .public-vereador-iniciais {
    font-size: 0.75rem;
}

.public-vereador-card--carrossel .public-vereador-info {
    flex: 1;
    min-width: 0;
}

.public-vereador-card--carrossel .public-vereador-info strong {
    display: block;
    font-size: clamp(0.68rem, 0.95vw, 0.8rem);
    line-height: 1.15;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.public-vereador-card--carrossel .public-vereador-info span {
    font-size: 0.6rem;
    color: var(--muted);
}

.public-vereador-card--carrossel .voto-chip,
.public-vereador-card--carrossel .public-vereador-aguardando {
    flex-shrink: 0;
    font-size: clamp(1rem, 1.6vw, 1.25rem);
    font-weight: 800;
    padding: 8px 14px;
    border-radius: 8px;
    min-width: 3.5em;
    text-align: center;
    letter-spacing: 0.02em;
}

.public-vereador-card--carrossel .public-vereador-aguardando {
    font-weight: 700;
    font-size: clamp(0.85rem, 1.35vw, 1.05rem);
    padding: 6px 10px;
    min-width: auto;
    color: var(--muted);
}

.public-carrossel-sem-votos {
    margin: auto;
    color: var(--muted);
    text-align: center;
}

.public-telao-carousel-ui {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 8px 12px 10px;
    border-top: 1px solid var(--border);
}

.public-telao-carousel-contador {
    font-size: 0.72rem;
    color: var(--muted);
    min-width: 3.5em;
}

.public-telao-carousel-dots {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
}

.public-carrossel-dot {
    width: 10px;
    height: 10px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.2);
    cursor: pointer;
    transition: transform 0.2s, background 0.2s;
}

.public-carrossel-dot.is-active {
    background: #ffc107;
    transform: scale(1.2);
    box-shadow: 0 0 0 2px rgba(255, 193, 7, 0.35);
}

.publico-sessao--telao .public-telao-carousel-ui {
    animation: none;
}

@keyframes public-carrossel-pulse-dot {
    0%,
    100% {
        opacity: 1;
    }
    50% {
        opacity: 0.45;
    }
}

.public-telao-carousel-contador::before {
    content: '⟳ ';
    font-size: 0.9em;
    opacity: 0.85;
    display: inline-block;
    animation: public-telao-spin-icon 2s linear infinite;
}

@keyframes public-telao-spin-icon {
    to {
        transform: rotate(360deg);
    }
}

.public-telao-momento {
    margin: 0;
    padding: 5px 12px;
    border-radius: 8px;
    border: 1px solid var(--border);
    background: rgba(255, 255, 255, 0.04);
    min-height: 0;
    overflow: hidden;
    flex-shrink: 0;
}

.public-telao-momento-linha {
    display: flex;
    align-items: baseline;
    gap: 10px;
    min-width: 0;
}

.public-telao-momento-kicker {
    margin: 0;
    font-size: 0.58rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--muted);
    flex-shrink: 0;
}

.public-telao-momento-kicker::after {
    content: '·';
    margin-left: 10px;
    font-weight: 400;
    opacity: 0.45;
}

.public-telao-momento-titulo {
    margin: 0;
    font-size: clamp(0.82rem, 1.25vw, 1.05rem);
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
    flex: 1;
}

.public-telao-momento-texto {
    margin: 3px 0 0;
    font-size: 0.7rem;
    color: var(--muted);
    line-height: 1.25;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.public-telao-momento-texto.is-hidden {
    display: none;
}

.publico-sessao--votando .public-telao-momento {
    padding: 4px 10px;
}

.publico-sessao--votando .public-telao-momento-titulo {
    font-size: clamp(0.78rem, 1.1vw, 0.95rem);
}

.public-telao-principal {
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.public-telao-aguardando {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    border: 1px dashed var(--border);
    color: var(--muted);
    font-size: clamp(0.95rem, 1.5vw, 1.2rem);
}

.public-telao-rodape {
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.public-telao-rodape-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    flex-shrink: 0;
}

.public-telao-rodape-label {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--muted);
}

.public-telao-rodape-count {
    font-size: 0.7rem;
    color: var(--muted);
}

.public-telao-hist-grid {
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(6px, 0.8vw, 10px);
    overflow: hidden;
}

.publico-sessao--ocioso .public-telao-hist-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, 1fr));
}

.public-telao-hist-cell {
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

.public-hist-mini {
    height: 100%;
    padding: clamp(6px, 0.8vh, 10px) clamp(8px, 0.8vw, 12px);
    border-radius: 10px;
    border: 1px solid var(--border);
    background: rgba(0, 0, 0, 0.2);
    display: flex;
    flex-direction: column;
    gap: 4px;
    overflow: hidden;
}

.public-hist-mini-badge {
    align-self: flex-start;
    padding: 2px 8px;
    border-radius: 6px;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
}

.public-hist-mini-badge--ok {
    background: rgba(76, 175, 80, 0.2);
    color: #9be7a0;
}

.public-hist-mini-badge--no {
    background: rgba(255, 127, 142, 0.2);
    color: #ffb3bd;
}

.public-hist-mini-badge--neutral {
    background: rgba(255, 255, 255, 0.08);
    color: var(--muted);
}

.public-hist-mini-tipo {
    margin: 0;
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #ffe08a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.public-hist-mini-titulo {
    margin: 0;
    font-size: clamp(0.7rem, 1vw, 0.85rem);
    line-height: 1.2;
    flex: 1;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.public-resumo-numeros--mini {
    margin: 0;
    gap: 6px 10px;
}

.public-resumo-numeros--mini .public-resumo-inline {
    font-size: 0.65rem;
}

.public-resumo-numeros--mini .public-resumo-inline b {
    font-size: 0.95rem;
}

.public-resumo-inline {
    font-size: 0.75rem;
    color: var(--muted);
}

.public-resumo-inline b {
    font-size: 1.1rem;
    color: var(--text);
    margin-right: 2px;
}

.public-resumo-inline--sim b {
    color: #7dcea0;
}

.public-resumo-inline--nao b {
    color: #f1948a;
}

.public-telao-hist-vazio {
    margin: 0;
    text-align: center;
    font-size: 0.85rem;
    color: var(--muted);
}

.public-telao-hist-vazio.is-hidden {
    display: none;
}

.public-telao-empty {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 24px;
    text-align: center;
    color: rgba(255, 255, 255, 0.72);
}

.public-telao-empty-title {
    margin: 0;
    font-size: clamp(1.35rem, 3vw, 2rem);
    font-weight: 700;
    color: #fff;
}

.public-telao-empty-hint {
    margin: 8px 0 0;
    font-size: 0.95rem;
    opacity: 0.75;
}

.public-live-badge--wait {
    opacity: 0.85;
}

/* Card de votação ao vivo no telão */
.public-votacao-card--telao {
    height: 100%;
    margin: 0;
    padding: clamp(8px, 1vh, 14px) clamp(10px, 1.2vw, 16px);
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.public-votacao-card-head--telao {
    flex-shrink: 0;
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    gap: 4px 12px;
    align-items: center;
    margin-bottom: clamp(6px, 0.8vh, 10px);
}

.public-votacao-card-head--telao .public-votacao-card-titulos {
    grid-column: 1;
    grid-row: 1 / span 2;
    min-width: 0;
}

.public-votacao-card-head--telao .public-votacao-badge {
    grid-column: 2;
    grid-row: 1;
}

.public-votacao-card-head--telao .public-resumo-numeros--compact {
    grid-column: 2;
    grid-row: 2;
    margin: 0;
    justify-content: flex-end;
}

.public-votacao-card--telao .public-votacao-tipo {
    margin: 0;
    font-size: 0.65rem;
}

.public-votacao-card--telao .public-votacao-titulo {
    margin: 0;
    font-size: clamp(0.95rem, 1.8vw, 1.35rem);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.public-vereador-grid--telao {
    flex: 1;
    min-height: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(108px, 1fr));
    grid-auto-rows: minmax(0, 1fr);
    gap: clamp(4px, 0.5vw, 8px);
    overflow: hidden;
    align-content: start;
}

.public-vereador-card--telao {
    padding: 6px 8px;
    gap: 6px;
    flex-direction: column;
    text-align: center;
    align-items: center;
}

.public-vereador-card--telao .public-vereador-foto {
    width: clamp(36px, 4.5vh, 52px);
    height: clamp(36px, 4.5vh, 52px);
}

.public-vereador-card--telao .public-vereador-info {
    width: 100%;
    align-items: center;
}

.public-vereador-card--telao .public-vereador-info strong {
    font-size: clamp(0.65rem, 0.95vw, 0.8rem);
    max-width: 100%;
}

.public-vereador-card--telao .voto-chip,
.public-vereador-card--telao .public-vereador-aguardando {
    font-size: 0.65rem;
    padding: 2px 6px;
}

@media (min-width: 1600px) {
    .public-vereador-grid--telao {
        grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    }
}

@media (max-height: 720px) {
    .publico-sessao--telao.publico-sessao--votando {
        grid-template-rows: auto minmax(0, 1fr) minmax(0, 16vh);
    }

    .public-vereador-grid--telao {
        grid-template-columns: repeat(auto-fill, minmax(92px, 1fr));
    }
}

/* Visão pública — sessão ao vivo / telão */
.public-live-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: rgba(76, 175, 80, 0.15);
    border: 1px solid rgba(76, 175, 80, 0.45);
    color: #9be7a0;
}

.public-live-badge.is-offline {
    background: rgba(255, 127, 80, 0.12);
    border-color: rgba(255, 127, 80, 0.4);
    color: #ffb199;
}

.public-live-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #4caf50;
    box-shadow: 0 0 8px rgba(76, 175, 80, 0.8);
    animation: public-live-pulse 1.4s ease-in-out infinite;
}

.public-live-badge.is-offline .public-live-dot {
    background: #ff7f50;
    animation: none;
    box-shadow: none;
}

@keyframes public-live-pulse {
    0%,
    100% {
        opacity: 1;
        transform: scale(1);
    }
    50% {
        opacity: 0.5;
        transform: scale(0.85);
    }
}

.public-agora-card {
    padding: 20px 22px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--border);
    margin-bottom: 18px;
}

.public-agora-kicker {
    margin: 0 0 6px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--muted);
}

.public-agora-titulo {
    margin: 0 0 10px;
    font-size: 1.35rem;
    line-height: 1.3;
}

.public-agora-texto {
    margin: 0;
    color: var(--muted);
    line-height: 1.55;
}

.public-votacao-card {
    padding: 18px 20px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--border);
    margin-bottom: 14px;
}

.public-votacao-card--live {
    border-color: rgba(255, 193, 7, 0.55);
    background: linear-gradient(135deg, rgba(255, 193, 7, 0.1) 0%, rgba(255, 127, 80, 0.06) 100%);
    box-shadow: 0 8px 28px rgba(255, 160, 0, 0.12);
}

.public-votacao-card-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 14px;
}

.public-votacao-tipo {
    margin: 0 0 4px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #ffe08a;
}

.public-votacao-titulo {
    margin: 0;
    font-size: 1.1rem;
}

.public-votacao-meta {
    margin: 6px 0 0;
    font-size: 13px;
    color: var(--muted);
}

.public-votacao-badge {
    padding: 6px 12px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.public-votacao-badge--live {
    background: rgba(255, 193, 7, 0.2);
    color: #ffe08a;
    border: 1px solid rgba(255, 193, 7, 0.45);
}

.public-votacao-badge--ok {
    background: rgba(76, 175, 80, 0.15);
    color: #9be7a0;
}

.public-votacao-badge--no {
    background: rgba(255, 127, 142, 0.15);
    color: #ffb3bd;
}

.public-votacao-badge--neutral {
    background: rgba(255, 255, 255, 0.06);
    color: var(--muted);
}

.public-resumo-numeros {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 20px;
    margin-bottom: 16px;
}

.public-resumo-item {
    font-size: 14px;
    color: var(--muted);
}

.public-resumo-item strong {
    display: block;
    font-size: 1.6rem;
    line-height: 1.1;
    color: var(--text);
}

.public-resumo-item--sim strong {
    color: #7dcea0;
}

.public-resumo-item--nao strong {
    color: #f1948a;
}

.public-vereador-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 10px;
}

.public-vereador-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 10px;
    background: transparent;
    border: 1px solid var(--border);
}

.public-vereador-card--votou {
    border-color: rgba(255, 255, 255, 0.12);
}

.public-vereador-foto {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    background: rgba(255, 255, 255, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
}

.public-vereador-foto img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.public-vereador-iniciais {
    font-weight: 700;
    font-size: 14px;
    color: var(--muted);
}

.public-vereador-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.public-vereador-info strong {
    font-size: 13px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.public-vereador-info span {
    font-size: 11px;
    color: var(--muted);
}

.public-vereador-aguardando {
    font-size: 11px;
    color: var(--muted);
    font-style: italic;
}

.public-timeline {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.public-timeline-item {
    position: relative;
    padding-left: 22px;
    padding-bottom: 18px;
}

.public-timeline-item::before {
    content: '';
    position: absolute;
    left: 5px;
    top: 8px;
    bottom: 0;
    width: 2px;
    background: var(--border);
}

.public-timeline-item::after {
    content: '';
    position: absolute;
    left: 0;
    top: 10px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--border);
    border: 2px solid var(--bg, #0f1419);
}

.public-timeline-item:last-child::before {
    display: none;
}

.public-empty.is-hidden {
    display: none;
}

@media (min-width: 1200px) {
    .publico-sessao .public-vereador-grid {
        grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    }

    .public-votacao-card--live .public-resumo-item strong {
        font-size: 2rem;
    }
}

/* Permissões por usuário */
.permissoes-editor {
    max-width: 920px;
}

.permissoes-grupo {
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid var(--border);
}

.permissoes-grupo-head {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.permissoes-grupo-title {
    margin: 0;
    flex: 1;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--accent);
}

.permissoes-lista {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 8px;
}

@media (min-width: 720px) {
    .permissoes-lista {
        grid-template-columns: 1fr 1fr;
    }
}

.permissoes-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 8px;
    border: 1px solid var(--border);
    background: rgba(0, 0, 0, 0.15);
    cursor: pointer;
    font-size: 14px;
}

.permissoes-item input {
    margin-top: 3px;
    flex-shrink: 0;
}

.permissoes-chave {
    display: block;
    font-size: 11px;
    color: var(--muted);
    margin-top: 4px;
}

.permissoes-padrao-check {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    font-size: 14px;
    cursor: pointer;
}

.permissoes-dica {
    margin: 0 0 16px;
}

.permissoes-padrao-check--footer {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--border);
}

#permissoes-grid-wrap.permissoes-grid-dim {
    opacity: 0.65;
}

.permissoes-user-picker {
    margin-top: 8px;
}

/* Parlamentar — pauta e voto */
.parl-pauta-list {
    list-style: none;
    margin: 16px 0 0;
    padding: 0;
    display: grid;
    gap: 12px;
}

.parl-pauta-item {
    padding: 16px;
    border-radius: 10px;
    border: 1px solid var(--border);
    background: transparent;
    color: var(--text);
}

.parl-pauta-item--vote {
    border-color: rgba(126, 226, 140, 0.45);
    box-shadow: none;
}

.parl-pauta-item h3 {
    margin: 8px 0;
    font-size: 1.05rem;
    color: var(--text);
}

.parl-pauta-item-top {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.parl-dl {
    display: grid;
    gap: 10px;
    margin: 12px 0 0;
}

.parl-dl div {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 12px;
}

.parl-dl dt {
    margin: 0;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--muted);
}

.parl-dl dd {
    margin: 0;
}

.parl-texto {
    margin: 8px 0 0;
    line-height: 1.55;
    color: var(--muted);
}

/* —— Matéria parlamentar (detalhe) —— */
.parl-materia-hero-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.parl-materia-hero-title {
    font-size: clamp(1.15rem, 2.5vw, 1.45rem);
    line-height: 1.35;
    margin-top: 4px;
}

.parl-materia-hero-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.materia-detalhe-card {
    padding: 20px 22px 24px;
}

.md-header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--line);
}

.md-header-kicker {
    margin: 0 0 4px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--accent);
}

.md-header-title {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--text);
}

.md-header-desc {
    margin: 6px 0 0;
    font-size: 13px;
    color: var(--muted);
}

.md-header-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.md-badge {
    display: inline-flex;
    align-items: center;
    padding: 5px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    background: rgba(112, 163, 255, 0.12);
    border: 1px solid rgba(112, 163, 255, 0.22);
    color: var(--text);
}

.md-badge--tipo {
    background: rgba(84, 187, 252, 0.15);
    border-color: rgba(84, 187, 252, 0.35);
}

.md-badge--numero {
    font-variant-numeric: tabular-nums;
}

.md-badge--urgente {
    background: rgba(255, 127, 142, 0.15);
    border-color: rgba(255, 127, 142, 0.4);
    color: #ffb3bd;
}

.md-ementa-strip {
    margin-bottom: 18px;
}

.md-tabbar {
    margin-bottom: 0;
}

.md-tab-count {
    display: inline-flex;
    min-width: 18px;
    height: 18px;
    align-items: center;
    justify-content: center;
    margin-left: 4px;
    padding: 0 5px;
    border-radius: 999px;
    font-size: 10px;
    background: rgba(255, 255, 255, 0.15);
}

.tab-btn.is-active .md-tab-count {
    background: rgba(0, 0, 0, 0.2);
}

.md-panels {
    margin-top: 16px;
    padding-top: 4px;
}

.md-section {
    margin-bottom: 20px;
}

.md-section:last-child {
    margin-bottom: 0;
}

.md-section-title {
    margin: 0 0 12px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--accent);
}

.md-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 12px;
}

.md-field {
    padding: 12px 14px;
    border-radius: 10px;
    background: rgba(8, 14, 28, 0.55);
    border: 1px solid rgba(112, 163, 255, 0.1);
}

.md-field--wide {
    grid-column: 1 / -1;
}

.md-field-label {
    display: block;
    margin-bottom: 6px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--muted);
}

.md-field-value {
    display: block;
    font-size: 14px;
    font-weight: 500;
    color: var(--text);
    line-height: 1.4;
    word-break: break-word;
}

.md-field-link {
    font-size: 14px;
    font-weight: 500;
    color: var(--accent);
    text-decoration: none;
}

.md-field-link:hover {
    text-decoration: underline;
}

.md-chip {
    display: inline-flex;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
}

.md-chip--sim {
    background: rgba(72, 187, 120, 0.2);
    color: #8feca8;
}

.md-chip--nao {
    background: rgba(255, 255, 255, 0.06);
    color: var(--muted);
}

.md-chip--urgente {
    background: rgba(255, 127, 142, 0.2);
    color: #ffb3bd;
}

.md-section--flags .md-grid {
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
}

.md-texto {
    margin-top: 16px;
    padding: 14px 16px;
    border-radius: 10px;
    background: rgba(8, 14, 28, 0.4);
    border: 1px solid rgba(112, 163, 255, 0.08);
}

.md-texto--ementa {
    margin-top: 0;
    padding: 16px 18px;
    background: linear-gradient(135deg, rgba(84, 187, 252, 0.08), rgba(112, 163, 255, 0.04));
    border-color: rgba(84, 187, 252, 0.25);
    border-left: 3px solid var(--accent);
}

.md-ementa-strip .md-texto--ementa {
    margin-top: 0;
}

.md-texto-titulo {
    margin: 0 0 8px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--muted);
}

.md-texto--ementa .md-texto-titulo {
    color: var(--accent);
}

.md-texto-corpo {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: var(--text);
}

.md-empty {
    margin: 8px 0;
    padding: 24px;
    text-align: center;
    color: var(--muted);
    font-size: 14px;
    border-radius: 10px;
    background: rgba(8, 14, 28, 0.35);
    border: 1px dashed rgba(112, 163, 255, 0.15);
}

.md-actions {
    margin-top: 16px;
}

.md-card-item {
    margin-bottom: 14px;
    padding: 16px 18px;
    border-radius: 12px;
    background: rgba(8, 14, 28, 0.5);
    border: 1px solid rgba(112, 163, 255, 0.12);
}

.md-card-item:last-child {
    margin-bottom: 0;
}

.md-card-item-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}

.md-card-item-head strong {
    font-size: 14px;
}

.md-card-item-num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
    background: rgba(84, 187, 252, 0.2);
    color: var(--accent);
    flex-shrink: 0;
}

.md-doc-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 10px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.03em;
    background: rgba(84, 187, 252, 0.15);
    color: var(--accent);
    flex-shrink: 0;
}

.md-doc-sub {
    margin: 2px 0 0;
    font-size: 12px;
    color: var(--muted);
}

.md-doc-pill {
    display: inline-flex;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    background: rgba(112, 163, 255, 0.15);
    color: var(--accent);
    margin-right: 8px;
}

.materia-doc--compact {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid rgba(112, 163, 255, 0.1);
}

.materia-doc--compact .materia-doc-actions {
    margin-bottom: 8px;
}

.materia-doc-meta {
    margin: 0;
    font-size: 12px;
    color: var(--muted);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
}

.materia-doc-filename {
    word-break: break-all;
    max-width: 100%;
}

@media (max-width: 640px) {
    .md-grid {
        grid-template-columns: 1fr;
    }

    .parl-materia-hero-top {
        flex-direction: column;
    }
}

.parl-voto-card {
    border-color: rgba(126, 226, 140, 0.35);
}

.parl-voto-card--destaque {
    border-color: rgba(126, 226, 140, 0.55);
    box-shadow: 0 0 0 1px rgba(126, 226, 140, 0.15), 0 8px 28px rgba(72, 187, 120, 0.12);
    animation: parl-voto-pulse 2.5s ease-in-out infinite;
}

@keyframes parl-voto-pulse {
    0%, 100% { box-shadow: 0 0 0 1px rgba(126, 226, 140, 0.15), 0 8px 28px rgba(72, 187, 120, 0.1); }
    50% { box-shadow: 0 0 0 1px rgba(126, 226, 140, 0.35), 0 8px 32px rgba(72, 187, 120, 0.2); }
}

.parl-voto-card-head {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 8px;
}

.parl-live-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #8feca8;
    flex-shrink: 0;
    margin-top: 6px;
    animation: parl-live-blink 1.2s ease-in-out infinite;
}

@keyframes parl-live-blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.35; }
}

.parl-acompanhar-progress {
    margin-top: 14px;
}

.parl-acompanhar-progress-bar {
    height: 4px;
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.08);
    margin-top: 6px;
    overflow: hidden;
}

.parl-acompanhar-progress-bar > div {
    height: 100%;
    background: linear-gradient(90deg, var(--accent), rgba(84, 187, 252, 0.6));
    border-radius: 4px;
    transition: width 0.4s ease;
}

.parl-momento-card {
    padding: 18px 20px;
}

.parl-momento-tag {
    display: inline-block;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.08);
    color: var(--muted);
    margin-bottom: 10px;
}

.parl-momento-tag--vote {
    background: rgba(72, 187, 120, 0.2);
    color: #198754;
}

.parl-momento-tag--leitura {
    background: rgba(84, 187, 252, 0.15);
    color: var(--accent);
}

.parl-momento-titulo {
    margin: 0 0 8px;
    font-size: 1.2rem;
    line-height: 1.35;
}

.parl-momento-hint {
    margin: 0;
}

.parl-ata-card {
    border-left: 3px solid rgba(84, 187, 252, 0.5);
}

.parl-ata-head {
    margin-bottom: 12px;
}

.parl-ata-title {
    margin: 0 0 4px;
    font-size: 1rem;
}

.parl-ata-corpo {
    max-height: 320px;
    overflow-y: auto;
    padding: 14px 16px;
    border-radius: 10px;
    background: rgba(8, 14, 28, 0.45);
    line-height: 1.55;
    font-size: 14px;
}

.parl-ata-pdf {
    width: 100%;
    min-height: 420px;
    margin-top: 12px;
    border: 0;
    border-radius: 8px;
    background: #fff;
}

.parl-leitura-card {
    border-left: 3px solid rgba(112, 163, 255, 0.35);
}

.parl-leitura-label {
    margin: 0 0 10px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--muted);
}

.parl-leitura-corpo {
    font-size: 1.05rem;
    line-height: 1.65;
    color: var(--text);
}

.parl-pauta-details {
    margin-top: 4px;
}

.parl-pauta-summary {
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 4px 0;
}

.parl-pauta-summary::-webkit-details-marker {
    display: none;
}

.parl-pauta-summary::after {
    content: '▼';
    font-size: 10px;
    color: var(--muted);
}

.parl-pauta-details[open] .parl-pauta-summary::after {
    transform: rotate(180deg);
}

.parl-alerta-votacao {
    display: none;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
}

.parl-alerta-global {
    margin-bottom: 20px;
}

.parl-alerta-global.is-visible {
    display: block !important;
}

.parl-alerta-votacao.is-visible {
    display: block;
}

.parl-alerta-votacao-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px 18px;
    padding: 16px 20px;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(255, 193, 7, 0.22) 0%, rgba(255, 127, 80, 0.18) 100%);
    border: 2px solid rgba(255, 193, 7, 0.65);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08), 0 12px 32px rgba(255, 160, 0, 0.2);
}

.parl-alerta-votacao--pulse .parl-alerta-votacao-inner {
    animation: parl-alerta-pulse 0.9s ease-out 2;
}

@keyframes parl-alerta-pulse {
    0%,
    100% {
        box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08), 0 12px 32px rgba(255, 160, 0, 0.2);
    }
    50% {
        box-shadow: 0 0 0 3px rgba(255, 193, 7, 0.5), 0 16px 40px rgba(255, 160, 0, 0.35);
        transform: scale(1.01);
    }
}

.parl-alerta-icone {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    font-weight: 800;
    background: rgba(255, 193, 7, 0.9);
    color: #1a1200;
}

.parl-alerta-corpo {
    flex: 1;
    min-width: 180px;
}

.parl-alerta-titulo {
    display: block;
    font-size: 1.05rem;
    color: #7a4b00;
    margin-bottom: 4px;
}

.parl-alerta-subtitulo {
    margin: 0;
    font-size: 0.9rem;
    color: #5c4300;
}

.parl-alerta-acoes {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.parl-voto-card--pulse {
    animation: parl-voto-entrada 0.55s ease-out 2;
}

.parl-live-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
    color: #000;
}

.parl-live-badge.is-offline {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.12);
    color: #000;
}

.parl-voto-card--entrada {
    animation: parl-voto-entrada 0.55s ease-out;
}

@keyframes parl-voto-entrada {
    from {
        opacity: 0;
        transform: translateY(-12px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.parl-toast {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 9000;
    max-width: 320px;
    padding: 14px 18px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 600;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.25s ease, transform 0.25s ease;
    pointer-events: none;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}

.parl-toast.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.parl-toast--ok {
    background: rgba(72, 187, 120, 0.95);
    color: #0a1a10;
}

.parl-toast--err {
    background: rgba(255, 127, 142, 0.95);
    color: #1a0a0c;
}

.parl-voto-botoes {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 16px;
}

.parl-voto-btn {
    min-width: 120px;
    font-weight: 700;
    font-size: 1rem;
    padding: 14px 24px;
}

.parl-voto-btn--sim {
    background: rgba(72, 187, 120, 0.25);
    border-color: rgba(72, 187, 120, 0.5);
    color: #198754;
}

.parl-voto-btn--nao {
    background: rgba(255, 127, 142, 0.2);
    border-color: rgba(255, 127, 142, 0.45);
    color: #dc3545;
}

.parl-voto-btn--abst {
    background: rgba(255, 201, 95, 0.15);
    border-color: rgba(255, 201, 95, 0.4);
    color: #b45309;
}

/* Documentos da matéria (ver / baixar / preview) */
.materia-doc {
    margin-top: 8px;
}

.materia-doc-label {
    margin: 0 0 6px;
    font-weight: 600;
}

.materia-doc-url {
    word-break: break-all;
    margin: 0 0 12px;
    font-size: 12px;
}

.materia-doc-actions {
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.materia-doc-preview {
    margin-top: 12px;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid var(--border);
    background: rgba(0, 0, 0, 0.2);
}

.materia-doc-preview.is-hidden {
    display: none;
}

.materia-doc-iframe {
    width: 100%;
    min-height: 480px;
    height: 70vh;
    max-height: 720px;
    border: 0;
    display: block;
    background: #fff;
}

.materia-doc-img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

.materia-doc-hint {
    padding: 10px 14px;
    margin: 0;
}

/* Cadastro de usuários */
.usuario-form-card {
    max-width: 960px;
}

.usuario-form-section-title {
    margin: 28px 0 14px;
    padding-top: 8px;
    border-top: 1px solid var(--border);
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--accent);
}

.usuario-form-section-title:first-of-type {
    margin-top: 0;
    border-top: 0;
    padding-top: 0;
}

.usuario-form-textarea {
    min-height: 100px;
    resize: vertical;
    line-height: 1.5;
}

.usuario-form-grid--stack {
    grid-template-columns: 1fr;
}

.usuario-lista-foto,
.usuario-form-foto-preview {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    background: rgba(95, 214, 255, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
}

.usuario-form-foto-preview {
    width: 96px;
    height: 96px;
}

.usuario-lista-foto img,
.usuario-form-foto-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.usuario-lista-iniciais,
.usuario-form-foto-iniciais {
    font-size: 12px;
    font-weight: 700;
    color: var(--accent);
    letter-spacing: 0.04em;
}

.usuario-form-foto-iniciais {
    font-size: 1.5rem;
}

.usuario-form-foto-row {
    display: flex;
    gap: 20px;
    align-items: flex-start;
    margin-bottom: 22px;
    padding-bottom: 22px;
    border-bottom: 1px solid var(--border);
}

.usuario-form-foto-fields {
    flex: 1;
    min-width: 0;
}

.usuario-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px 16px;
}

.usuario-form-field--wide {
    grid-column: 1 / -1;
}

.usuario-check-remover {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    font-size: 13px;
    color: var(--muted);
    cursor: pointer;
}

.status-chip.perfil-presidente {
    background: rgba(255, 201, 95, 0.14);
    color: var(--warning);
}

.status-chip.perfil-admin {
    background: rgba(95, 214, 255, 0.14);
    color: var(--accent);
}

.status-chip.perfil-parlamentar {
    background: rgba(126, 226, 140, 0.14);
    color: var(--accent-2);
}

.status-chip.perfil-usuario {
    background: rgba(255, 255, 255, 0.08);
    color: var(--muted);
}

@media (max-width: 720px) {
    .usuario-form-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .public-shell {
        padding: 20px 14px 16px;
    }

    .public-hero {
        padding: 18px 16px;
    }

    .public-pauta-card {
        padding: 14px 16px;
    }
}

@media (max-width: 960px) {
    .admin-shell { grid-template-columns: 1fr; }
    .admin-sidebar { border-right: 0; border-bottom: 1px solid var(--border); }
    .panel-grid { grid-template-columns: 1fr; }
    .auth-shell { grid-template-columns: 1fr; }
    .auth-visual {
        border-right: 0;
        border-bottom: 1px solid var(--border);
        padding: 28px 20px;
        min-height: auto;
        justify-content: center;
    }
    .auth-panel { padding: 16px; }
    .modal-grid { grid-template-columns: 1fr; }
    .modal-grid .wide-2, .modal-grid .wide-3 { grid-column: auto; }
    .pauta-item-meta { grid-template-columns: 1fr 1fr; }
}

.admin-layout--parl-acompanhar .parl-pauta-item {
    background: transparent !important;
    color: var(--text) !important;
}

.admin-layout--parl-acompanhar .parl-pauta-item h3,
.admin-layout--parl-acompanhar .parl-pauta-item .panel-meta {
    color: var(--text) !important;
}

.materia-detalhe-card .tabbar,
.materia-detalhe-card .md-field,
.materia-detalhe-card .md-texto,
.materia-detalhe-card .md-card-item,
.materia-detalhe-card .md-empty {
    background: transparent !important;
    color: var(--text) !important;
}

.materia-detalhe-card .md-field,
.materia-detalhe-card .md-card-item,
.materia-detalhe-card .md-texto,
.materia-detalhe-card .md-empty {
    border-color: var(--border) !important;
}

.materia-detalhe-card .tab-btn {
    background: transparent !important;
    color: var(--text) !important;
}

.materia-detalhe-card .tab-btn.is-active {
    background: var(--accent) !important;
    color: var(--on-accent) !important;
}

.materia-detalhe-card .md-field-label,
.materia-detalhe-card .md-field-value,
.materia-detalhe-card .md-texto-titulo,
.materia-detalhe-card .md-texto-corpo,
.materia-detalhe-card .md-card-item-head strong {
    color: var(--text) !important;
}
.sessao-criar-stage {
    max-width: 980px;
    margin: 28px auto 0;
}

.conducao-votos-pendentes {
    width: 100%;
    margin: 0 0 8px;
    color: #fff;
}

.conducao-votos-pendentes ul {
    display: grid;
    gap: 3px;
    margin: 6px 0 0;
    padding-left: 20px;
    color: #fff;
}

.conducao-votos-pendentes li {
    color: #fff;
}

.sessao-criar-intro {
    margin: 24px 0;
}

.sessao-criar-intro h2 {
    margin: 0 0 8px;
    color: var(--ink, #071e41);
    font-size: clamp(1.35rem, 2vw, 1.8rem);
}

.sessao-criar-intro p {
    margin: 0;
    color: var(--muted, #5c6978);
}

.sessao-criar-form-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(130px, .5fr) minmax(150px, .6fr);
    gap: 16px;
    align-items: end;
}

.sessao-criar-field .field {
    margin-top: 7px;
}

.sessao-criar-summary {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-top: 24px;
    padding: 14px 16px;
    border: 1px solid #b7ddc5;
    border-radius: 12px;
    background: #effaf3;
    color: #195b32;
}

.sessao-criar-actions {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 24px;
}

@media (max-width: 760px) {
    .sessao-criar-form-grid {
        grid-template-columns: 1fr 1fr;
    }

    .sessao-criar-field--title {
        grid-column: 1 / -1;
    }
}

@media (max-width: 520px) {
    .sessao-criar-form-grid {
        grid-template-columns: 1fr;
    }

    .sessao-criar-field--title {
        grid-column: auto;
    }

    .sessao-criar-actions {
        flex-direction: column-reverse;
    }

    .sessao-criar-actions .btn {
        width: 100%;
        justify-content: center;
    }
}
.roteiro-add-step-form {
    margin: 0 0 14px;
}

.roteiro-add-step-form .btn {
    width: 100%;
    justify-content: center;
}
.roteiro-card-actions {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    flex-shrink: 0;
    padding-right: 5px;
}

.roteiro-delete-card-form {
    margin: 0;
}

.roteiro-delete-card-btn {
    width: 28px;
    height: 28px;
    padding: 0;
    border: 1px solid #f2b8bd;
    border-radius: 6px;
    background: #fff1f2;
    color: #b4232f;
    cursor: pointer;
    font-size: 13px;
    line-height: 1;
}

.roteiro-delete-card-btn:hover {
    border-color: #d92d3a;
    background: #ffe1e4;
    color: #8d1822;
}
.sessao-criar-clara-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sessao-criar-clara-actions {
    grid-column: 1 / -1;
}

.sessao-criar-clara input[readonly] {
    background: var(--panel-2, #f8f9fa);
    color: var(--muted, #6c757d);
}

@media (max-width: 720px) {
    .sessao-criar-clara-form {
        grid-template-columns: 1fr;
    }

    .sessao-criar-clara-actions {
        grid-column: auto;
    }
}
.roteiro-auto-dismiss {
    transition: opacity .25s ease, transform .25s ease;
}

.roteiro-auto-dismiss.is-hiding {
    opacity: 0;
    transform: translateY(-4px);
}
.presenca-inicial-modal-card {
    width: min(720px, calc(100vw - 32px));
    max-height: min(82vh, 760px);
    overflow: auto;
}

.presenca-inicial-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin: 18px 0 12px;
}

.presenca-inicial-lista {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.presenca-inicial-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--panel-2);
    cursor: pointer;
}

.presenca-inicial-item:has(input:checked) {
    border-color: var(--accent);
    background: #edf7fc;
}

.presenca-inicial-item input {
    width: 18px;
    height: 18px;
    accent-color: var(--accent);
}

.presenca-inicial-item > span:last-child {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.presenca-inicial-item small {
    color: var(--muted);
}

.presenca-inicial-avatar {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    border-radius: 50%;
    background: var(--accent);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
}

.presenca-inicial-actions {
    justify-content: flex-end;
    margin-top: 18px;
}

@media (max-width: 620px) {
    .presenca-inicial-lista {
        grid-template-columns: 1fr;
    }
}
.roteiro-rich-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px;
    padding: 7px;
    margin-top: 7px;
    border: 1px solid var(--border);
    border-bottom: 0;
    border-radius: 9px 9px 0 0;
    background: var(--panel-2);
}

.roteiro-rich-toolbar button {
    min-width: 32px;
    min-height: 30px;
    padding: 5px 9px;
    border: 1px solid transparent;
    border-radius: 6px;
    background: transparent;
    color: var(--text);
    cursor: pointer;
    font: inherit;
}

.roteiro-rich-toolbar button:hover,
.roteiro-rich-toolbar button:focus-visible {
    border-color: var(--border);
    background: var(--panel);
}

.roteiro-rich-separator {
    width: 1px;
    height: 24px;
    margin: 0 2px;
    background: var(--border);
}

.roteiro-rich-editor {
    min-height: 150px;
    max-height: 38vh;
    overflow-y: auto;
    margin-top: 0;
    border-radius: 0 0 9px 9px;
    line-height: 1.55;
    white-space: normal;
}

.roteiro-rich-editor:empty::before {
    content: attr(data-placeholder);
    color: var(--muted);
    pointer-events: none;
}

.roteiro-rich-editor p,
.conducao-fala p {
    margin: 0 0 .8em;
}

.roteiro-rich-editor p:last-child,
.conducao-fala p:last-child {
    margin-bottom: 0;
}

.roteiro-rich-editor ul,
.roteiro-rich-editor ol,
.conducao-fala ul,
.conducao-fala ol {
    margin: .5em 0 .8em;
    padding-left: 1.6em;
}

.roteiro-anexos { margin-top: 18px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: #f8fafc; }
.roteiro-montar-main.is-votacao .roteiro-incluir-hint { margin: 4px 0 8px; }
.roteiro-montar-main.is-votacao .roteiro-doc-block { margin-top: 8px; }
.roteiro-montar-main.is-votacao .roteiro-doc-editor--muted { min-height: 42px; }
.roteiro-montar-main.is-votacao .roteiro-preview-presidente { margin-top: 8px; padding: 12px 16px; }
.roteiro-montar-main.is-votacao .roteiro-anexos { margin-top: 10px; padding: 12px 16px; }
.roteiro-anexos-head, .roteiro-anexo-item { display: flex; align-items: center; gap: 12px; justify-content: space-between; }
.roteiro-anexos-head h3 { margin: 0 0 3px; font-size: 1rem; }
.roteiro-anexos-lista { display: grid; gap: 8px; margin: 14px 0; }
.roteiro-anexo-item { padding: 9px; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.roteiro-anexo-item img { width: 64px; height: 48px; border-radius: 6px; object-fit: cover; display: block; }
.roteiro-anexo-info { min-width: 0; flex: 1; display: grid; gap: 2px; }
.roteiro-anexo-info strong { overflow-wrap: anywhere; }
.roteiro-anexo-info span { color: var(--muted); font-size: .78rem; }
.roteiro-anexo-form { display: grid; grid-template-columns: 1fr 1fr auto 1fr auto; gap: 10px; align-items: end; margin-top: 14px; }
.roteiro-anexo-form label { min-width: 0; }
.roteiro-anexo-ou { padding-bottom: 11px; color: var(--muted); font-size: .8rem; }
.parl-anexos-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
.parl-anexo { display: flex; align-items: center; gap: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; text-decoration: none; color: var(--text); background: #fff; }
.parl-anexo:hover { border-color: var(--primary); }
.parl-anexo img { width: 88px; height: 66px; object-fit: cover; border-radius: 7px; }
.parl-anexo-texto { min-width: 0; display: grid; gap: 3px; overflow-wrap: anywhere; }
.parl-anexo-tipo { color: var(--muted); font-size: .78rem; }
@media (max-width: 900px) { .roteiro-anexo-form { grid-template-columns: 1fr; } .roteiro-anexo-ou { padding: 0; } .roteiro-anexo-item { align-items: flex-start; flex-wrap: wrap; } }

.auth-publico {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid rgba(148, 163, 184, 0.25);
    display: flex;
    justify-content: center;
}

.auth-publico .btn {
    width: 100%;
    justify-content: center;
    text-align: center;
}

/* Timer: label sempre em uma linha; valor nunca estoura a caixa */
.sessao-timer {
    max-width: 100%;
}

.sessao-timer .sessao-timer-label {
    white-space: nowrap;
    flex: 0 0 auto;
}

.sessao-timer .sessao-timer-valor {
    min-width: 0;
    white-space: nowrap;
    line-height: 1;
}

/* Login: hero sobe e o brasao fica abaixo do texto */
.auth-visual {
    justify-content: flex-start;
    padding-top: clamp(36px, 8vh, 96px);
}

.auth-brasao {
    display: block;
    margin: clamp(24px, 5vh, 56px) auto 0;
    width: clamp(220px, 30vw, 420px);
    max-width: 90%;
    height: auto;
    object-fit: contain;
}

/* ===== Tela de login (Plenário Vera) =====
   Azul institucional + dourado do brasão. No computador cabe na janela
   sem rolagem; no celular o brasão vira um cabeçalho compacto. */
.login-page {
    --login-azul: #003a63;
    --login-azul-escuro: #002b5b;
    --login-dourado: #f2c230;
    --login-texto: #0b1f33;
    --login-texto-2: #475569;
    --login-borda: #cbd5e1;
    --login-fundo: #f6f8fb;
    --login-verde: #16a34a;
    --login-verde-texto: #15803d;
    margin: 0;
    background: var(--login-fundo);
    color: var(--login-texto);
}
.login {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    height: 100vh;
    height: 100dvh;
    min-height: 560px;
}

/* Lado azul */
.login-marca {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 24px;
    padding: clamp(36px, 7vh, 64px) clamp(40px, 5vw, 72px) clamp(28px, 6vh, 56px);
    background: var(--login-azul);
    color: #fff;
    overflow: hidden;
}
.login-marca::before {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 6px;
    background: var(--login-dourado);
}
.login-sobretitulo {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--login-dourado);
}
.login-sobretitulo::before {
    content: '';
    width: 36px;
    height: 2px;
    background: currentColor;
}
.login-destaque {
    display: flex;
    align-items: center;
    gap: clamp(24px, 3vw, 48px);
    min-height: 0;
}
.login-chamada {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.login-titulo {
    margin: 0;
    font-size: clamp(3.5rem, 6.4vw, 5.75rem);
    line-height: .95;
    font-weight: 900;
    letter-spacing: -0.035em;
    color: #fff;
}
.login-titulo span {
    display: block;
    color: var(--login-dourado);
}
.login-lema {
    margin: 0;
    max-width: 380px;
    font-size: clamp(1.05rem, 1.4vw, 1.25rem);
    line-height: 1.5;
    color: rgba(255, 255, 255, .84);
}
.login-brasao {
    flex: 0 1 auto;
    width: auto;
    max-width: 40%;
    height: clamp(160px, calc(100dvh - 300px), 380px);
    object-fit: contain;
}
.login-assinatura {
    margin: 0;
    font-size: 13px;
    color: rgba(255, 255, 255, .66);
}

/* Lado do formulário */
.login-acesso {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 24px;
    padding: clamp(28px, 7vh, 64px) clamp(24px, 5vw, 80px) clamp(20px, 6vh, 56px);
    overflow-y: auto;
}
.login-acesso::before { content: ''; }
.login-conteudo {
    width: 100%;
    max-width: 420px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: clamp(18px, 3vh, 28px);
}
.login-cabecalho h2 {
    margin: 0 0 8px;
    font-size: 34px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--login-texto);
}
.login-cabecalho p {
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
    color: var(--login-texto-2);
}
.login-erro {
    padding: 12px 14px;
    border-radius: 10px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #b91c1c;
    font-size: 14px;
    font-weight: 600;
}
.login-form {
    display: flex;
    flex-direction: column;
    gap: clamp(12px, 2vh, 18px);
}
.login-campo {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.login-campo label {
    font-size: 14px;
    font-weight: 600;
    color: #334155;
}
.login-campo input {
    width: 100%;
    height: 50px;
    box-sizing: border-box;
    padding: 0 16px;
    font: inherit;
    font-size: 16px;
    color: var(--login-texto);
    background: #fff;
    border: 1px solid var(--login-borda);
    border-radius: 10px;
}
.login-campo input::placeholder { color: #94a3b8; }
.login-campo input:focus {
    outline: none;
    border-color: var(--login-azul);
    box-shadow: 0 0 0 3px rgba(242, 194, 48, .45);
}
.login-senha { position: relative; }
.login-senha input { padding-right: 52px; }
.login-ver-senha {
    position: absolute;
    top: 3px;
    right: 3px;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--login-texto-2);
    cursor: pointer;
}
.login-ver-senha[hidden] { display: none; }
.login-ver-senha:hover { color: var(--login-azul); background: #eef2f7; }
.login-ver-senha:focus-visible { outline: 2px solid var(--login-azul); outline-offset: 1px; }
.login-ver-senha .login-icone-ocultar { display: none; }
.login-ver-senha[aria-pressed="true"] .login-icone-ver { display: none; }
.login-ver-senha[aria-pressed="true"] .login-icone-ocultar { display: block; }
.login-entrar {
    height: 52px;
    margin-top: 6px;
    font: inherit;
    font-size: 16px;
    font-weight: 700;
    color: #fff;
    background: var(--login-azul);
    border: 0;
    border-radius: 10px;
    cursor: pointer;
}
.login-entrar:hover { background: var(--login-azul-escuro); }
.login-entrar:focus-visible { outline: 3px solid var(--login-dourado); outline-offset: 2px; }
.login-ajuda {
    margin: 0;
    font-size: 14px;
    text-align: center;
    color: var(--login-texto-2);
}
.login-divisor {
    width: 100%;
    margin: 0;
    border: 0;
    border-top: 1px solid #e2e8f0;
}

/* Aviso de sessão (ao vivo / próxima) */
.login-sessao {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 64px;
    box-sizing: border-box;
    padding: 14px 18px;
    background: #fff;
    border: 1px solid var(--login-borda);
    border-radius: 12px;
    color: var(--login-texto);
    text-decoration: none;
}
.login-sessao:hover { border-color: var(--login-azul); }
.login-sessao:focus-visible { outline: 3px solid var(--login-dourado); outline-offset: 2px; }
.login-sessao-ponto {
    flex: 0 0 auto;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #94a3b8;
}
.login-sessao--ao-vivo .login-sessao-ponto {
    background: var(--login-verde);
    box-shadow: 0 0 0 4px rgba(22, 163, 74, .18);
    animation: login-pulso 1.8s ease-in-out infinite;
}
.login-sessao-texto {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.login-sessao-rotulo {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--login-texto-2);
}
.login-sessao--ao-vivo .login-sessao-rotulo { color: var(--login-verde-texto); }
.login-sessao-nome {
    font-size: 15px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.login-sessao-acao {
    flex: 0 0 auto;
    font-size: 14px;
    font-weight: 700;
    color: var(--login-azul);
}
.login-copy {
    margin: 0;
    font-size: 12px;
    text-align: center;
    color: #64748b;
}
@keyframes login-pulso {
    0%, 100% { box-shadow: 0 0 0 4px rgba(22, 163, 74, .18); }
    50% { box-shadow: 0 0 0 7px rgba(22, 163, 74, .08); }
}
@media (prefers-reduced-motion: reduce) {
    .login-sessao--ao-vivo .login-sessao-ponto { animation: none; }
}

/* Celular e telas estreitas: brasão vira cabeçalho compacto */
@media (max-width: 960px) {
    .login {
        display: flex;
        flex-direction: column;
        height: auto;
        min-height: 100vh;
        min-height: 100dvh;
    }
    .login-marca {
        display: grid;
        grid-template-columns: 72px minmax(0, 1fr);
        grid-template-areas: "brasao sobre" "brasao chamada";
        align-content: center;
        column-gap: 16px;
        row-gap: 6px;
        padding: 30px 24px 24px;
    }
    .login-destaque { display: contents; }
    .login-brasao {
        grid-area: brasao;
        align-self: center;
        max-width: none;
        width: 72px;
        height: 80px;
    }
    .login-sobretitulo {
        grid-area: sobre;
        align-self: end;
        font-size: 11px;
        letter-spacing: .12em;
    }
    .login-sobretitulo::before { display: none; }
    .login-chamada { grid-area: chamada; align-self: start; gap: 6px; }
    .login-titulo { font-size: 2.1rem; letter-spacing: -0.03em; }
    .login-titulo span { display: inline; }
    .login-lema,
    .login-assinatura { display: none; }
    .login-acesso {
        flex: 1 1 auto;
        padding: 28px 24px 22px;
        overflow: visible;
    }
    .login-acesso::before { display: none; }
    .login-cabecalho h2 { font-size: 28px; }
}
@media (min-width: 961px) and (max-height: 700px) {
    .login-acesso { padding-top: 24px; padding-bottom: 16px; gap: 12px; }
    .login-cabecalho h2 { font-size: 28px; margin-bottom: 4px; }
    .login-campo input { height: 46px; }
    .login-entrar { height: 48px; margin-top: 2px; }
    .login-sessao { min-height: 56px; padding: 10px 16px; }
}
@media (max-width: 380px) {
    .login-titulo { font-size: 1.75rem; }
    .login-sessao-acao { display: none; }
}

/* Telao publico: botao de tela cheia */
.public-fullscreen-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
    color: rgba(255, 255, 255, 0.85);
    background: rgba(255, 255, 255, 0.10);
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 10px;
}

.public-fullscreen-btn:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.18);
}

/* Em tela cheia o botao some para nao aparecer na transmissao */
:fullscreen .public-fullscreen-btn {
    display: none;
}

/* =====================================================================
   Fase 1 de padronização visual (só CSS).
   Cores do voto únicas em todas as telas claras, contraste WCAG AA,
   foco visível e alvos de toque. O telão (tema escuro) não é afetado.
   ===================================================================== */
:root {
    --line: var(--border);
    --primary: var(--accent);
    --voto-sim: #12703f;
    --voto-sim-hover: #0e5a32;
    --voto-sim-soft: #e7f3ec;
    --voto-nao: #a4262c;
    --voto-nao-hover: #861f24;
    --voto-nao-soft: #fbeaea;
    --voto-abst: #8a5a00;
    --voto-abst-soft: #fff4d6;
    --voto-abst-borda: #c98a12;
    --foco: #004a7c;
}

/* Etiquetas e placar do voto */
body:not(.public-page--telao) .voto-chip.voto-sim { background: var(--voto-sim-soft); color: var(--voto-sim); }
body:not(.public-page--telao) .voto-chip.voto-nao { background: var(--voto-nao-soft); color: var(--voto-nao); }
body:not(.public-page--telao) .voto-chip.voto-abst { background: var(--voto-abst-soft); color: var(--voto-abst); }
body:not(.public-page--telao) .voto-sim-text { color: var(--voto-sim); }
body:not(.public-page--telao) .voto-nao-text { color: var(--voto-nao); }

/* Botões de voto do parlamentar: sólidos, fáceis de distinguir */
body:not(.public-page--telao) .parl-voto-btn--sim {
    background: var(--voto-sim);
    border-color: var(--voto-sim);
    color: #fff;
}
body:not(.public-page--telao) .parl-voto-btn--sim:hover:not(:disabled) { background: var(--voto-sim-hover); }
body:not(.public-page--telao) .parl-voto-btn--nao {
    background: var(--voto-nao);
    border-color: var(--voto-nao);
    color: #fff;
}
body:not(.public-page--telao) .parl-voto-btn--nao:hover:not(:disabled) { background: var(--voto-nao-hover); }
body:not(.public-page--telao) .parl-voto-btn--abst {
    background: var(--voto-abst-soft);
    border-color: var(--voto-abst-borda);
    color: var(--voto-abst);
}
body:not(.public-page--telao) .parl-voto-btn:disabled { opacity: .55; cursor: wait; }

/* Selo "Ao vivo" / "Reconectando" */
body:not(.public-page--telao) .parl-live-badge {
    background: var(--voto-sim-soft);
    border-color: var(--voto-sim);
    color: var(--voto-sim-hover);
}
body:not(.public-page--telao) .parl-live-badge.is-offline {
    background: #f1f3f5;
    border-color: #6c757d;
    color: #495057;
}

/* Matéria em votação na pauta do parlamentar */
body:not(.public-page--telao) .parl-pauta-item--vote {
    border-color: var(--voto-sim);
    box-shadow: inset 4px 0 0 var(--voto-sim);
}

/* Status e botão de perigo com contraste suficiente */
body:not(.public-page--telao) .status-chip.vote { color: var(--voto-sim); }
body:not(.public-page--telao) .status-chip.closed { color: var(--voto-nao); }
body:not(.public-page--telao) .status-chip.warn { color: #92400e; }
.btn-danger { color: var(--voto-nao); }

/* Foco visível para quem navega pelo teclado */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid var(--foco);
    outline-offset: 2px;
}
.field:focus-visible {
    outline: 2px solid var(--foco);
    outline-offset: 1px;
}
body.public-page--telao :where(a, button):focus-visible { outline-color: #fff; }

/* Alvos de toque de pelo menos 44px em tablets e celulares */
@media (pointer: coarse) {
    .btn { min-height: 44px; }
    .btn-icon { width: 44px; height: 44px; min-width: 44px; }
}

/* Título do telão maior em TVs */
@media (min-width: 1600px) {
    .public-telao-title { font-size: clamp(1.25rem, 1.5vw, 2rem); }
    .public-carrossel-slide--momento .public-carrossel-titulo { font-size: clamp(2.4rem, 3.2vw, 3.4rem); }
}

/* Menos animação para quem pede isso no sistema operacional */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}

/* Vereador impedido ou ausente na votação */
.voto-chip.voto-situacao {
    background: #eef0f3;
    color: #495057;
    border: 1px dashed #868e96;
}
body.public-page--telao .voto-chip.voto-situacao {
    background: rgba(255, 255, 255, 0.1);
    color: #e9ecef;
    border-color: rgba(255, 255, 255, 0.35);
}
.votacao-situacao-acoes {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.votacao-situacao-form { display: inline-flex; margin: 0; }

/* Confirmação do voto do parlamentar */
.parl-voto-confirmacao {
    margin-top: 16px;
    padding: 16px;
    border: 2px solid var(--accent);
    border-radius: 10px;
    background: var(--accent-soft);
}
.parl-voto-confirmacao-texto {
    margin: 0 0 4px;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--heading);
}
.parl-voto-confirmacao-texto .voto-chip { font-size: 1.05rem; padding: 4px 12px; margin-left: 6px; }
.parl-voto-confirmacao .parl-voto-botoes { margin-top: 12px; }

/* Aviso de login expirado (sessao-expirada.js) */
.sessao-expirada-aviso {
    position: fixed;
    top: 12px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10000;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    max-width: calc(100% - 24px);
    padding: 12px 16px;
    border-radius: 10px;
    border: 1px solid #b02a37;
    background: #fff;
    color: var(--text);
    font-size: 14px;
    font-weight: 600;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18);
}

/* Vereador impedido ou retirado da votação (tela Acompanhar sessão) */
.parl-voto-situacao {
    border: 1px dashed #868e96;
    background: #f8f9fa;
}
.parl-voto-situacao-texto {
    margin: 6px 0 0;
    font-size: 1rem;
    font-weight: 600;
    color: #495057;
}

/* Página de erro (Acesso negado / Página não encontrada) */
body.erro-page {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: 16px;
    background: var(--bg);
}
.erro-card {
    width: 100%;
    max-width: 440px;
    padding: 32px 28px;
    text-align: center;
    background: var(--panel);
    border: 1px solid var(--border);
    border-top: 4px solid var(--accent);
    border-radius: 12px;
    box-shadow: 0 8px 30px rgba(0, 43, 91, 0.08);
}
.erro-brasao { display: block; margin: 0 auto 12px; height: 72px; width: auto; }
.erro-codigo { margin: 0; font-size: 13px; font-weight: 600; color: var(--muted-2); }
.erro-titulo { margin: 4px 0 8px; font-size: 1.6rem; color: var(--heading); }
.erro-mensagem { margin: 0 0 22px; font-size: 15px; line-height: 1.5; color: var(--text); }
.erro-acoes { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }

/* Menu lateral recolhível no celular */
.side-nav-toggle { display: none; }
@media (max-width: 960px) {
    .admin-sidebar { padding: 10px 16px; }
    .admin-sidebar .brand { margin-bottom: 0; padding-bottom: 0; border-bottom: 0; }
    .side-nav-toggle { display: inline-flex; margin-left: auto; }
    .admin-sidebar .side-nav { display: none; margin-top: 10px; }
    .admin-sidebar.is-menu-aberto .side-nav { display: grid; }
    .side-nav a { padding: 12px 10px; font-size: 14px; }
}

/* Tipografia institucional: Public Sans (fonte criada para sites de governo),
   texto base de 14px. Segoe UI / system-ui continuam como reserva. */
body {
    font-family: 'Public Sans', 'Segoe UI', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 14px;
    line-height: 1.45;
}
button, input, select, textarea { font-family: inherit; }
.side-nav a { font-size: 13px; }
.btn { font-size: 13px; }

/* Brasão no cabeçalho do telão (antes eram as letras "CM") */
.public-hero-mark--brasao { background: #fff; padding: 3px; overflow: hidden; }
body.public-page--telao .public-hero-mark--brasao { background: #fff; }
.public-hero-mark--brasao img { display: block; width: 100%; height: 100%; object-fit: contain; }

/* Painel escuro da condução: cronômetro, rótulos e botões feitos para fundo escuro */
.conducao-votacao-box--stage .panel-label { color: rgba(255, 255, 255, 0.78); }
.conducao-votacao-box--stage .sessao-timer {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.22);
}
.conducao-votacao-box--stage .sessao-timer-label { color: rgba(255, 255, 255, 0.78); }
.conducao-votacao-box--stage .sessao-timer-valor { color: #fff; font-size: 1.6rem; font-weight: 700; }
.conducao-votacao-box--stage .sessao-timer--alerta {
    background: rgba(245, 158, 11, 0.18);
    border-color: rgba(251, 191, 36, 0.6);
}
.conducao-votacao-box--stage .sessao-timer--alerta .sessao-timer-valor { color: #fcd34d; }
.conducao-votacao-box--stage .sessao-timer--esgotado {
    background: rgba(220, 38, 38, 0.22);
    border-color: rgba(248, 113, 113, 0.65);
}
.conducao-votacao-box--stage .sessao-timer--esgotado .sessao-timer-valor { color: #fca5a5; }

.conducao-votacao-box--stage .btn-primary {
    background: #1f6fae;
    border-color: rgba(255, 255, 255, 0.25);
    color: #fff;
}
.conducao-votacao-box--stage .btn-primary:hover:not(:disabled) { background: #185d93; }
.conducao-votacao-box--stage .btn-danger {
    background: #c9343d;
    border-color: rgba(255, 255, 255, 0.55);
    color: #fff;
}
.conducao-votacao-box--stage .btn-danger:hover:not(:disabled) { background: #b02a37; }
.conducao-votacao-box--stage .btn-soft {
    background: transparent;
    border-color: rgba(255, 255, 255, 0.45);
    color: #fff;
}
.conducao-votacao-box--stage .btn-soft:hover { background: rgba(255, 255, 255, 0.08); }
.conducao-votacao-box--stage .btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
.conducao-stage .conducao-stage-materia,
.conducao-stage .conducao-fala--muted,
.conducao-stage .conducao-instrucao--stage { color: #b8c4d6; }

/* Placar e voto de cada vereador na caixa da votação (condução) */
.conducao-votos-resumo { margin: 12px 0 4px; }
.conducao-placar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.conducao-placar-item {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    padding: 5px 12px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.85);
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.2);
}
.conducao-placar-item strong { font-size: 1.25rem; font-variant-numeric: tabular-nums; }
.conducao-placar-item--sim strong { color: #86efac; }
.conducao-placar-item--nao strong { color: #fca5a5; }
.conducao-placar-item--abst strong { color: #fcd34d; }
.conducao-votos-lista {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 6px;
    max-height: 260px;
    overflow-y: auto;
}
.conducao-voto-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 6px 10px;
    border-radius: 8px;
    font-size: 13px;
    color: #fff;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.14);
}
.conducao-voto-item--aguardando { border-style: dashed; }
.conducao-voto-nome { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.conducao-voto-aguardando { flex-shrink: 0; font-size: 12px; font-style: italic; color: rgba(255, 255, 255, 0.72); }
.conducao-voto-item .voto-chip {
    flex-shrink: 0;
    padding: 2px 9px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
}

/* =====================================================================
   Caixas da condução (votação do passo e "Exibir no telão"):
   cabeçalho com selo, campos e botões na mesma altura, seletor escuro
   no painel escuro.
   ===================================================================== */
.conducao-votacao-box--stage { padding: 14px 16px; }
.conducao-votacao-head,
.conducao-destaque-head {
    align-items: center;
    gap: 12px;
    padding-bottom: 12px;
    margin-bottom: 12px;
}
.conducao-votacao-head { border-bottom: 1px solid rgba(255, 255, 255, 0.12); }
.conducao-destaque-box--fora .conducao-destaque-head { border-bottom: 1px solid var(--border); }
.conducao-votacao-icon,
.conducao-destaque-icon {
    display: inline-grid;
    place-items: center;
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    font-size: 1.1rem;
    opacity: 1;
}
.conducao-votacao-icon {
    color: #9fdcff;
    background: rgba(95, 214, 255, 0.12);
    border: 1px solid rgba(95, 214, 255, 0.35);
}
.conducao-destaque-box--fora .conducao-destaque-icon {
    color: var(--accent);
    background: var(--accent-soft);
    border: 1px solid rgba(0, 74, 124, 0.22);
}
.conducao-votacao-title,
.conducao-destaque-title { font-size: 15px; font-weight: 700; }
.conducao-votacao-sub { font-size: 13px; color: #c8d6ea; margin-top: 2px; }
.conducao-destaque-sub { font-size: 13px; margin-top: 2px; }

/* Campos e botões: mesma altura, alinhados pela base */
.conducao-votacao-box--stage .field,
.conducao-destaque-form .field { height: 40px; padding: 0 12px; font-size: 14px; }
.conducao-votacao-box--stage .btn,
.conducao-destaque-form .btn { min-height: 40px; padding: 0 16px; font-size: 14px; }
.conducao-votacao-actions { align-items: flex-end; gap: 12px; }
.conducao-votacao-actions .conducao-tempo-field { margin-top: 0; flex: 0 0 180px; }
.conducao-tempo-field .panel-label { display: block; margin-bottom: 6px; }

/* Seletor escuro no painel escuro */
.conducao-votacao-box--stage select.field {
    -webkit-appearance: none;
    appearance: none;
    padding-right: 36px;
    color: #fff;
    background-color: rgba(255, 255, 255, 0.08);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    border: 1px solid rgba(255, 255, 255, 0.32);
    cursor: pointer;
}
.conducao-votacao-box--stage select.field:hover { border-color: rgba(255, 255, 255, 0.55); }
.conducao-votacao-box--stage select.field option { color: #0f172a; background: #fff; }
.conducao-votacao-box--stage select.field:focus-visible { outline: 2px solid #9fdcff; outline-offset: 2px; }

/* Votação aberta: aviso de pendentes acima, botões lado a lado */
.conducao-votacao-actions .conducao-votos-pendentes { order: -1; flex-basis: 100%; margin: 0; }
.conducao-votacao-actions form { margin: 0; }

/* "Exibir no telão": tempo de fala e botões na mesma linha */
.conducao-destaque-form {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 6px 12px;
}
.conducao-destaque-form > .panel-label,
.conducao-destaque-form > select.field { flex-basis: 100%; }
.conducao-destaque-form > select.field { margin-top: 0; }
.conducao-destaque-form .conducao-tempo-field { flex: 0 0 180px; margin-top: 8px; max-width: none; }
.conducao-destaque-form .conducao-destaque-actions { margin-top: 0; }

/* Resultado da votação encerrada, com a cor do resultado */
.conducao-votacao-box--stage .conducao-resultado {
    display: inline-block;
    margin-left: 4px;
    padding: 3px 12px;
    border-radius: 999px;
    font-size: 14px;
    color: #fff;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.3);
}
.conducao-votacao-box--stage .conducao-resultado--aprovado {
    background: rgba(34, 197, 94, 0.18);
    border-color: rgba(134, 239, 172, 0.7);
    color: #bbf7d0;
}
.conducao-votacao-box--stage .conducao-resultado--rejeitado {
    background: rgba(239, 68, 68, 0.2);
    border-color: rgba(252, 165, 165, 0.7);
    color: #fecaca;
}

/* Votação encerrada: resultado explicado */
.conducao-resultado-box { margin-bottom: 12px; }
.conducao-resultado-linha { margin-bottom: 8px; }
.conducao-resultado-frase {
    margin: 0 0 4px;
    font-size: 15px;
    font-weight: 700;
    color: #fff;
}
.conducao-resultado-explicacao {
    margin: 0 0 12px;
    font-size: 14px;
    line-height: 1.5;
    color: #c8d6ea;
}
.conducao-resultado-subtitulo {
    margin: 4px 0 8px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: rgba(255, 255, 255, 0.72);
}
.conducao-resultado-box .conducao-votos-resumo { margin-top: 0; }

/* Ocupa a linha inteira do panel-grid (substitui style="grid-column:1/-1") */
.span-full { grid-column: 1 / -1; }

/* Importação de sessão do SAPL (protótipo) */
.sapl-topo { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.sapl-prototipo {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    color: #92400e;
    background: #fff4d6;
    border: 1px solid #f0c36d;
}
.sapl-titulo { margin: 8px 0 4px; font-size: 1.35rem; color: var(--heading); }
.sapl-subtitulo { margin: 0 0 12px; font-size: 1.05rem; color: var(--heading); }
.sapl-paginacao { margin-top: 12px; align-items: center; gap: 12px; }
.sapl-dados { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin: 0; }
.sapl-dados dt { font-size: 12px; font-weight: 700; color: var(--muted-2); }
.sapl-dados dd { margin: 2px 0 0; font-size: 15px; }
.sapl-materias { margin: 0; padding-left: 22px; display: grid; gap: 12px; }
.sapl-materia { padding: 12px 14px; border: 1px solid var(--border); border-radius: 10px; background: var(--panel); }
.sapl-materia-topo { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; flex-wrap: wrap; }
.sapl-materia-autor { margin: 6px 0 4px; }
.sapl-materia-ementa { margin: 0 0 6px; font-size: 13px; line-height: 1.5; color: var(--text); }
.sapl-avisos { margin: 0; padding-left: 20px; display: grid; gap: 6px; color: #92400e; }
.sapl-roteiro { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.sapl-roteiro-bloco {
    margin-top: 12px;
    padding: 6px 10px;
    font-weight: 700;
    color: var(--heading);
    background: var(--accent-soft);
    border-radius: 8px;
}
.sapl-roteiro-passo { padding: 4px 10px 4px 22px; line-height: 1.5; }
.sapl-roteiro-passo .status-chip { margin-left: 6px; }
.sapl-roteiro-passo--instrucao { font-style: italic; color: var(--muted-2); }
.sapl-acao { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; border-left: 4px solid var(--accent); }
.sapl-acao p { margin: 4px 0 0; }
.sapl-retiradas { margin: 8px 0 0; color: #92400e; }
.sapl-ok--topo { margin: 0 0 12px; }

/* Relatório da sessão (Histórico): presença e votações em fundo claro */
.relatorio-titulo { margin: 0 0 12px; font-size: 1.05rem; color: var(--heading); }
.relatorio-origem { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.relatorio-presentes { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 6px; }
.relatorio-presentes li { padding: 4px 10px; border: 1px solid var(--border); border-radius: 999px; background: var(--panel-2); font-size: 13px; }
.relatorio-votacao { padding: 14px 0; border-top: 1px solid var(--border); }
.relatorio-votacao:first-of-type { border-top: 0; padding-top: 0; }
.relatorio-votacao-topo { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.relatorio-frase { margin: 0 0 2px; font-weight: 700; }
.relatorio-explicacao { margin: 0 0 10px; color: var(--muted-2); font-size: 13px; }
.relatorio-votacao .conducao-resultado { display: inline-block; padding: 3px 12px; border-radius: 999px; font-weight: 700; font-size: 13px; border: 1px solid var(--border); }
.relatorio-votacao .conducao-resultado--aprovado { background: var(--voto-sim-soft); color: var(--voto-sim); border-color: var(--voto-sim); }
.relatorio-votacao .conducao-resultado--rejeitado { background: var(--voto-nao-soft); color: var(--voto-nao); border-color: var(--voto-nao); }
.relatorio-votacao .conducao-placar-item { color: var(--text); background: var(--panel-2); border-color: var(--border); }
.relatorio-votacao .conducao-placar-item--sim strong { color: var(--voto-sim); }
.relatorio-votacao .conducao-placar-item--nao strong { color: var(--voto-nao); }
.relatorio-votacao .conducao-placar-item--abst strong { color: var(--voto-abst); }
.relatorio-votacao .conducao-votos-lista { max-height: none; margin-bottom: 10px; }
.relatorio-votacao .conducao-voto-item { color: var(--text); background: var(--panel); border-color: var(--border); }
.relatorio-votacao .conducao-voto-aguardando { color: var(--muted-2); }

/* Retirada de pauta na condução */
.conducao-retirada {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    margin-top: 10px;
    padding: 10px 12px;
    border: 1px dashed var(--border-strong);
    border-radius: 10px;
    background: var(--panel);
    font-size: 13px;
}
.conducao-retirada-materia { flex: 1 1 260px; min-width: 0; }
.conducao-retirada .field { width: auto; height: 36px; }
.conducao-retirada-ok { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.conducao-retirada-ok form { margin: 0; }
.conducao-timeline-item.is-retirado { opacity: 0.55; }
.conducao-timeline-item.is-retirado .conducao-timeline-preview,
.conducao-timeline-item.is-retirado strong { text-decoration: line-through; }
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Aviso de autoria do presidente (passar / devolver presidência) */
.conducao-aviso-autoria { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.conducao-aviso-autoria form { margin: 0; }
