/*
 * Skin visual inspirada no painel Filament do novo sistema.
 * Esta folha não altera controllers, rotas, banco de dados ou regras de avaliação.
 */
:root {
    --av-green-50: #f0f8f1;
    --av-green-100: #dbeee0;
    --av-green-200: #bbddc3;
    --av-green-500: #2d813b;
    --av-green-600: #236b31;
    --av-green-700: #18512d;
    --av-ink: #10251a;
    --av-muted: #607066;
    --av-line: #dce8df;
    --av-paper: #ffffff;
    --av-bg: #f3f7f4;
    --av-warning: #a75e10;
    --av-danger: #b42318;
    --av-shadow-sm: 0 6px 16px rgba(19, 55, 31, .05);
    --av-shadow: 0 18px 50px rgba(22, 69, 38, .10);
    --av-radius: 18px;
    --av-radius-sm: 12px;
}

* { box-sizing: border-box; }
body { font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important; color: var(--av-ink); }
body.avaliar-admin-body { background: #f5f8f5 !important; }
body.avaliar-portal-body { min-width: 320px; background: var(--av-bg) !important; }
body a { text-decoration: none; }

/* =========================
   Painel administrativo
   ========================= */
.filament-shell { min-height: 100vh; }
.filament-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 60;
    display: flex;
    width: 272px;
    min-height: 100vh;
    flex-direction: column;
    overflow-y: auto;
    border-right: 1px solid var(--av-line);
    background: rgba(255,255,255,.98);
    box-shadow: 4px 0 20px rgba(21, 60, 33, .035);
    scrollbar-width: thin;
}
.filament-workspace { min-width: 0; margin-left: 272px; }
.filament-brand { padding: 25px 22px 18px; border-bottom: 1px solid #edf2ee; }
.filament-brand-link { display: inline-flex; align-items: center; min-height: 38px; }
.filament-brand img { display: block; width: 168px; max-width: 100%; height: auto; object-fit: contain; object-position: left center; }
.filament-brand > span { display: block; margin-top: 10px; color: #799082; font-size: 10px; font-weight: 850; letter-spacing: .14em; }
.filament-navigation { flex: 1; padding: 16px 13px 26px; }
.filament-nav-group + .filament-nav-group { margin-top: 19px; }
.filament-nav-group-label { margin: 0 0 7px; padding: 0 10px; color: #839189; font-size: 10px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.filament-nav-link { display: flex; align-items: center; gap: 11px; min-height: 42px; margin: 2px 0; padding: 9px 11px; border-radius: 10px; color: #56675c; font-size: 13px; font-weight: 700; transition: background .16s ease, color .16s ease, transform .16s ease; }
.filament-nav-link:hover { color: var(--av-green-700); background: #f0f8f1; transform: translateX(1px); }
.filament-nav-link.is-active { color: var(--av-green-700); background: #e6f4e9; box-shadow: inset 0 0 0 1px #d2ebd7; }
.filament-nav-icon { display: grid; width: 19px; height: 19px; flex: 0 0 19px; place-items: center; color: #6d8374; }
.filament-nav-link.is-active .filament-nav-icon { color: var(--av-green-500); }
.filament-nav-icon svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.filament-sidebar-footer { display: flex; align-items: center; gap: 8px; padding: 15px 22px 19px; border-top: 1px solid #edf2ee; color: #849189; font-size: 11px; font-weight: 650; }
.filament-sidebar-dot { width: 8px; height: 8px; border-radius: 999px; background: #72bf7e; box-shadow: 0 0 0 4px #e7f5e9; }

.filament-topbar { position: sticky; top: 0; z-index: 40; display: flex; min-height: 78px; align-items: center; justify-content: space-between; gap: 18px; padding: 13px 34px; border-bottom: 1px solid var(--av-line); background: rgba(255,255,255,.90); backdrop-filter: blur(14px); }
.filament-topbar-left, .filament-topbar-actions, .filament-user { display: flex; align-items: center; }
.filament-topbar-left { gap: 14px; }
.filament-topbar-actions { gap: 15px; }
.filament-topbar-kicker { margin: 0 0 3px; color: var(--av-green-500); font-size: 10px; font-weight: 900; letter-spacing: .13em; }
.filament-topbar-title { margin: 0; color: #2b3d31; font-size: 14px; font-weight: 800; }
.filament-menu-toggle { display: none; width: 38px; height: 38px; padding: 9px; border: 1px solid var(--av-line); border-radius: 11px; background: #fff; cursor: pointer; }
.filament-menu-toggle span { display: block; width: 18px; height: 2px; margin: 3px auto; border-radius: 999px; background: #496251; }
.filament-user { gap: 9px; }
.filament-user-avatar { display: grid; width: 34px; height: 34px; place-items: center; border: 2px solid #fff; border-radius: 50%; background: #dff1e2; box-shadow: 0 0 0 1px #b9d9bf; color: var(--av-green-700); font-size: 12px; font-weight: 900; }
.filament-user-copy { display: grid; gap: 1px; max-width: 190px; }
.filament-user-copy strong { overflow: hidden; color: #33463a; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.filament-user-copy small { color: #75847b; font-size: 10px; }
.filament-logout { padding: 8px 12px; border: 1px solid #bddcc4; border-radius: 10px; background: #fff; color: var(--av-green-700); font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.filament-logout:hover { background: #f0f8f1; }
.filament-main { width: min(1440px, 100%); margin: 0 auto; padding: 30px 34px 52px; }
.filament-breadcrumb { margin: 0 0 14px; color: #738178; font-size: 12px; }
.filament-pagehead { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin: 0 0 22px; }
.filament-pagehead h1 { margin: 0; color: #15261b; font-size: clamp(1.75rem, 2.4vw, 2.3rem); letter-spacing: -.045em; }
.filament-pagehead p { color: var(--av-muted); }

.filament-alert { margin: 0 0 18px; padding: 14px 16px; border: 1px solid; border-radius: 14px; box-shadow: var(--av-shadow-sm); font-size: 14px; font-weight: 650; }
.filament-alert-success { border-color: #c4e6cb; background: #eff9f1; color: #1d6a31; }
.filament-alert-error { border-color: #f3c8c3; background: #fff5f4; color: #a92b20; }

/* Formulários, tabelas e cards antigos recebem acabamento da nova identidade. */
.filament-main h1, .filament-main h2, .filament-main h3 { color: #16271c; }
.filament-main > div[style*="background:#fff"],
.filament-main > div[style*="background: #fff"],
.filament-main > section[style*="background:#fff"],
.filament-main .admin-card,
.filament-main .bs-card {
    border-color: var(--av-line) !important;
    border-radius: var(--av-radius) !important;
    box-shadow: var(--av-shadow-sm) !important;
}
.filament-main table { border-color: var(--av-line) !important; border-radius: 15px; }
.filament-main th { color: #718078 !important; font-size: 11px !important; font-weight: 850 !important; letter-spacing: .04em; text-transform: uppercase; }
.filament-main td, .filament-main th { border-color: #e6eee8 !important; }
.filament-main tr:hover td { background: #fbfdfb; }
.filament-main input:not([type="radio"]):not([type="checkbox"]),
.filament-main select,
.filament-main textarea,
.portal-main input:not([type="radio"]):not([type="checkbox"]),
.portal-main select,
.portal-main textarea {
    border-color: #c8d8cc !important;
    border-radius: 12px !important;
    background: #fff !important;
    color: var(--av-ink) !important;
    box-shadow: none !important;
}
.filament-main input:not([type="radio"]):not([type="checkbox"]):focus,
.filament-main select:focus,
.filament-main textarea:focus,
.portal-main input:not([type="radio"]):not([type="checkbox"]):focus,
.portal-main select:focus,
.portal-main textarea:focus { border-color: var(--av-green-500) !important; box-shadow: 0 0 0 3px rgba(45,129,59,.13) !important; outline: none !important; }

.btn-primary, button.btn-primary, a.btn-primary {
    border-color: var(--av-green-500) !important;
    background: var(--av-green-500) !important;
    color: #fff !important;
    box-shadow: 0 8px 16px rgba(45,129,59,.17) !important;
}
.btn-primary:hover, button.btn-primary:hover, a.btn-primary:hover { border-color: var(--av-green-700) !important; background: var(--av-green-700) !important; }
.btn-secondary, button.btn-secondary, a.btn-secondary {
    border-color: #c7dacb !important;
    background: #fff !important;
    color: var(--av-green-700) !important;
}
.btn-secondary:hover, button.btn-secondary:hover, a.btn-secondary:hover { background: #f0f8f1 !important; }

/* =========================
   Portal de respostas
   ========================= */
.portal-shell { display: flex; min-height: 100vh; flex-direction: column; }
.portal-topbar { border-bottom: 1px solid var(--av-line); background: rgba(255,255,255,.95); backdrop-filter: blur(12px); }
.portal-topbar-inner { display: flex; min-height: 78px; width: min(1120px, calc(100% - 36px)); margin: 0 auto; align-items: center; }
.portal-brand { display: flex; align-items: center; gap: 13px; }
.portal-brand img { width: 150px; max-height: 47px; object-fit: contain; object-position: left center; }
.portal-brand span { display: grid; gap: 3px; padding-left: 13px; border-left: 1px solid #dce8df; }
.portal-brand strong { color: #233a2a; font-size: 13px; font-weight: 850; }
.portal-brand small { color: #738178; font-size: 11px; }
.portal-main { width: min(1120px, calc(100% - 36px)); flex: 1; margin: 0 auto; padding: 38px 0 52px; }
.portal-footer { display: flex; width: min(1120px, calc(100% - 36px)); margin: 0 auto; align-items: center; justify-content: center; gap: 12px; padding: 18px 0 26px; color: #78877e; font-size: 12px; }
.portal-footer img { width: 140px; max-height: 38px; object-fit: contain; }

/* Área pública antiga: cards, blocos de caput e perguntas. */
.avaliar-portal-body .portal-main > div[style*="max-width"],
.avaliar-portal-body .portal-main > section[style*="max-width"] { margin-left: auto !important; margin-right: auto !important; }
.avaliar-portal-body .portal-main section[style*="border:1px solid #e4e7ec"],
.avaliar-portal-body .portal-main section[style*="border:1px solid #d8e5ff"],
.avaliar-portal-body .portal-main section[style*="border:1px solid #e6e8ef"] {
    border-color: var(--av-line) !important;
    border-radius: 18px !important;
    box-shadow: 0 8px 25px rgba(34,66,45,.035) !important;
}
.avaliar-portal-body .portal-main div[style*="background:#f8fafc"],
.avaliar-portal-body .portal-main div[style*="background: #f8fafc"] {
    border-color: #dcebe0 !important;
    border-radius: 14px !important;
    background: #eff8f1 !important;
}
.avaliar-portal-body .portal-main h1 { color: #16271c !important; letter-spacing: -.04em; }
.avaliar-portal-body .portal-main h2, .avaliar-portal-body .portal-main h3 { color: #1b3122 !important; }
.avaliar-portal-body .portal-main label[style*="border:1px solid #e6e8ef"],
.avaliar-portal-body .portal-main label[style*="border:1px solid #e4e7ec"] {
    border-color: #cdddcf !important;
    border-radius: 12px !important;
    background: #fff !important;
    transition: border-color .15s ease, background .15s ease, transform .15s ease;
}
.avaliar-portal-body .portal-main label[style*="border:1px solid #e6e8ef"]:hover,
.avaliar-portal-body .portal-main label[style*="border:1px solid #e4e7ec"]:hover { border-color: #7fba8a !important; transform: translateY(-1px); }
.avaliar-portal-body .portal-main label:has(input[type="radio"]:checked),
.avaliar-portal-body .portal-main label:has(input[type="checkbox"]:checked) { border-color: var(--av-green-500) !important; background: #eff9f1 !important; color: var(--av-green-700) !important; }
.avaliar-portal-body .portal-main input[type="radio"], .avaliar-portal-body .portal-main input[type="checkbox"] { accent-color: var(--av-green-500); }
.avaliar-portal-body .portal-main textarea { min-height: 128px; }

/* Cabeçalhos e orientação por questionário. */
.avaliar-portal-body .portal-main section[style*="background:#fff"] > div[style*="color:#1d4ed8"] { color: var(--av-green-700) !important; }

/* Texto formatado de caput/perguntas exclusivas. */
.pergunta-formatada { margin-bottom: 14px; color: #22342a; font-size: 15px; line-height: 1.62; }
.pergunta-formatada__paragrafo { margin: 0 0 12px; font-weight: 400; }
.pergunta-formatada__lista { display: grid; gap: 8px; margin: 0 0 14px; padding: 15px 18px 15px 39px; border: 1px solid #cfe2d3; border-radius: 14px; background: #f7fbf8; font-weight: 400; }
.pergunta-formatada__lista li { padding-left: 4px; }
.pergunta-formatada__lista li::marker { color: var(--av-green-600); font-weight: 850; }
.pergunta-formatada__obrigatoria { margin-top: 5px; color: var(--av-green-600); font-size: 12px; font-weight: 800; }

/* Login e telas simples usam cards mais próximos da nova interface. */
.avaliar-portal-body .bs-card,
.avaliar-portal-body .admin-card,
.avaliar-portal-body div[style*="background:#fff"][style*="border-radius"] {
    border-color: var(--av-line) !important;
    box-shadow: var(--av-shadow-sm) !important;
}

/* =========================
   Componentes legados
   ========================= */
.bs-card { border-color: var(--av-line) !important; box-shadow: var(--av-shadow-sm) !important; }
.bs-pill-ok { border-color: #bfe4c6 !important; background: #eff9f1 !important; color: #1d6a31 !important; }
.bs-alert { border-radius: 14px !important; box-shadow: var(--av-shadow-sm) !important; }
.bs-input, .bs-select, .bs-textarea { border-color: #c8d8cc !important; }
.bs-input:focus, .bs-select:focus, .bs-textarea:focus { border-color: var(--av-green-500) !important; box-shadow: 0 0 0 3px rgba(45,129,59,.13) !important; }
.bs-pagination__item.is-active .bs-pagination__link { border-color: var(--av-green-500) !important; color: var(--av-green-700) !important; box-shadow: 0 6px 14px rgba(45,129,59,.12) !important; }

@media (max-width: 1040px) {
    .filament-sidebar { transform: translateX(-100%); transition: transform .22s ease; }
    .filament-workspace { margin-left: 0; }
    .filament-menu-toggle { display: inline-block; }
    body.sidebar-open .filament-sidebar { transform: translateX(0); box-shadow: 18px 0 45px rgba(17, 50, 28, .15); }
    body.sidebar-open::after { position: fixed; z-index: 50; inset: 0; background: rgba(16, 37, 26, .25); content: ""; }
    .filament-main { padding: 24px 22px 44px; }
    .filament-topbar { padding: 12px 22px; }
}
@media (max-width: 680px) {
    .filament-topbar { min-height: 66px; }
    .filament-topbar-title { display: none; }
    .filament-user-copy { display: none; }
    .filament-topbar-actions { gap: 9px; }
    .filament-main { padding: 20px 16px 36px; }
    .filament-pagehead { flex-direction: column; }
    .portal-topbar-inner, .portal-main, .portal-footer { width: min(100% - 28px, 1120px); }
    .portal-topbar-inner { min-height: 68px; }
    .portal-brand img { width: 118px; }
    .portal-brand span { display: none; }
    .portal-main { padding: 26px 0 38px; }
    .portal-footer { flex-direction: column; gap: 7px; text-align: center; }
    .avaliar-portal-body .portal-main section[style*="padding:16px"] { padding: 15px !important; }
    .pergunta-formatada { font-size: 14px; }
}
