/* Identidade comum — Psicologia IFBA Seabra.
   Camada final e reversível. Modal/visualizador de mensagens excluídos dos estilos genéricos. */
.ui-sistema {
    --ui-verde: #00833d;
    --ui-verde-escuro: #00642e;
    --ui-verde-suave: #eef7f1;
    --ui-contorno-verde: #b5d6c0;
    --ui-fundo: #f8f9fa;
    --ui-texto: #26352c;
    --ui-titulo: #1f2937;
    --ui-secundario: #637168;
    --ui-borda: #dce5df;
    --ui-vermelho: #b42332;
    --ui-raio: 10px;
    --ui-sombra: 0 4px 18px rgba(31, 55, 40, .055);
    background-color: var(--ui-fundo);
}
.ui-sistema:not(.ui-prontuario), .ui-prontuario > .container, .ui-prontuario #modalEditarSessao, .ui-prontuario .consulta-alunos {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
.ui-sistema > .header {
    padding: 16px 24px; background: #fff; border-bottom: 1px solid var(--ui-borda);
    box-shadow: 0 2px 8px rgba(31,55,40,.025); gap: 20px;
}
.ui-sistema > .header h1 { margin: 0; color: var(--ui-verde-escuro); font-size: 1.4rem; line-height: 1.3; font-weight: 700; }
.ui-sistema > .header .user-info { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.ui-sistema > .header .user-info > span { margin-right: 0; color: var(--ui-secundario); font-size:.9rem; }
.ui-sistema > .container { padding-top: 24px; padding-bottom: 32px; }
.ui-sistema .content-section { border:1px solid var(--ui-borda); border-radius:14px; box-shadow:var(--ui-sombra); background:#fff; margin-top:24px; padding:24px; }
.ui-sistema .content-section > h2 { margin-top:0; margin-bottom:18px; color:var(--ui-titulo); font-size:1.2rem; line-height:1.35; text-align:left; }
.ui-sistema .content-section > p { color:var(--ui-secundario); line-height:1.6; }
.ui-sistema :is(.btn, .btn-acoes-hoje):not(:where(.mensagens-modal *, .mensagens-visualizador *)) {
    display:inline-flex; justify-content:center; align-items:center; gap:8px; min-height:44px;
    box-sizing:border-box; padding:10px 16px; border:1px solid transparent; border-radius:var(--ui-raio);
    font-family:inherit; font-size:.92rem; font-weight:600; line-height:1.35; text-decoration:none;
    cursor:pointer; transition:background-color .15s ease, border-color .15s ease, color .15s ease;
}
.ui-sistema :is(.btn-primary, .btn-success):not(:where(.mensagens-modal *, .mensagens-visualizador *)) {
    background:var(--ui-verde); border-color:var(--ui-verde); color:#fff;
}
.ui-sistema :is(.btn-primary, .btn-success):not(:where(.mensagens-modal *, .mensagens-visualizador *)):hover {
    background:var(--ui-verde-escuro); border-color:var(--ui-verde-escuro);
}
.ui-sistema :is(.btn-secondary):not(:where(.mensagens-modal *, .mensagens-visualizador *)) {
    background:#fff; color:#526159; border-color:#ced9d2;
}
.ui-sistema :is(.btn-secondary):not(:where(.mensagens-modal *, .mensagens-visualizador *)):hover { background:#f0f4f1; border-color:#aabcb0; }
.ui-sistema :is(.btn-info, .btn-acoes-hoje, .ui-botao-contorno):not(:where(.mensagens-modal *, .mensagens-visualizador *)) {
    background:#fff !important; color:var(--ui-verde-escuro) !important; border-color:var(--ui-contorno-verde) !important;
}
.ui-sistema :is(.btn-info, .btn-acoes-hoje, .ui-botao-contorno):not(:where(.mensagens-modal *, .mensagens-visualizador *)):hover {
    background:var(--ui-verde-suave) !important; border-color:var(--ui-verde) !important;
}
.ui-sistema .btn-danger:not(:where(.mensagens-modal *, .mensagens-visualizador *)) {
    background:#fff; color:var(--ui-vermelho); border:1px solid #e6bec4;
}
.ui-sistema .btn-danger:not(:where(.mensagens-modal *, .mensagens-visualizador *)):hover { background:#fff1f2; border-color:var(--ui-vermelho); }
.ui-sistema :is(#cancel-by-psicologa-form, #cancelar-form) button[type="submit"],
.ui-confirmacao .btn-danger { background:var(--ui-vermelho); color:#fff; border-color:var(--ui-vermelho); }
.ui-sistema :is(#cancel-by-psicologa-form, #cancelar-form) button[type="submit"]:hover,
.ui-confirmacao .btn-danger:hover { background:#941d29; color:#fff; }
.ui-sistema .header .btn-danger { color:#526159; border-color:#ced9d2; }
.ui-sistema .header .btn-danger:hover { color:var(--ui-vermelho); background:#fff1f2; border-color:#e6bec4; }
.ui-sistema :is(button, a):not(:where(.mensagens-modal *, .mensagens-visualizador *)):focus-visible {
    outline:3px solid rgba(0,131,61,.48); outline-offset:3px;
}
.ui-sistema :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]), select, textarea):not(:where(.mensagens-modal *, .mensagens-visualizador *)) {
    box-sizing:border-box; max-width:100%; min-height:44px; padding:11px 12px;
    border:1px solid #cad8cf; border-radius:8px; background:#fff; color:var(--ui-texto);
    font-family:inherit; font-size:16px; line-height:1.45;
    transition:border-color .15s ease, box-shadow .15s ease;
}
.ui-sistema :is(input, select, textarea):not(:where(.mensagens-modal *, .mensagens-visualizador *)):focus {
    outline:0; border-color:var(--ui-verde); box-shadow:0 0 0 3px rgba(0,131,61,.12);
}
.ui-sistema :is(input[type="checkbox"],input[type="radio"]):not(:where(.mensagens-modal *)) { accent-color:var(--ui-verde); }
.ui-sistema .form-group { margin-bottom:18px; }
.ui-sistema .form-group > label { font-size:.93rem; color:#405448; margin-bottom:7px; }
.ui-sistema .action-buttons-group { gap:10px; margin:24px 0; }
.ui-sistema .modal-content { box-sizing:border-box; padding:28px; border:1px solid var(--ui-borda); border-radius:14px; background:#fff; box-shadow:0 18px 56px rgba(20,43,29,.16); }
.ui-sistema .modal-content > h3 { margin-top:0; padding-right:24px; color:var(--ui-titulo); font-size:1.2rem; text-align:left; line-height:1.4; }
.ui-sistema .modal-content > p { color:var(--ui-secundario); line-height:1.6; }
.ui-sistema .modal-content .close-btn { color:#6b7b70; font-weight:400; }
.ui-sistema .table-agenda-hoje { border-radius:10px; overflow:hidden; }
.ui-sistema .table-agenda-hoje thead { background:#f2f6f3; }
.ui-sistema .table-agenda-hoje th { background:#f2f6f3; color:#405448; border-bottom:1px solid var(--ui-borda); }
.ui-sistema .table-agenda-hoje td { border-bottom-color:#e8eee9; }
.ui-sistema .agenda-hoje-badge { background:var(--ui-verde-suave); color:var(--ui-verde-escuro); border:1px solid var(--ui-contorno-verde); }
.ui-sistema .cancelamentos-lista li { border-left-width:3px; border-radius:10px; background:#fff8f8; }
.ui-sistema .cancelamentos-lista strong { color:#6c3940; }
.ui-sistema .fc { --fc-button-bg-color:#fff; --fc-button-border-color:var(--ui-contorno-verde); --fc-button-text-color:var(--ui-verde-escuro); --fc-button-hover-bg-color:var(--ui-verde-suave); --fc-button-hover-border-color:var(--ui-verde); --fc-button-active-bg-color:var(--ui-verde); --fc-button-active-border-color:var(--ui-verde); --fc-border-color:#e0e8e2; }
.ui-sistema .fc .fc-button { border-radius:8px; padding:8px 12px; font-weight:600; box-shadow:none; }
.ui-sistema .fc .fc-button-active { color:#fff; }
.ui-sistema .fc .fc-toolbar-title { color:var(--ui-titulo); font-size:1.2rem; }
.ui-sistema .consulta-alunos { border:1px solid var(--ui-borda); box-shadow:0 18px 56px rgba(20,43,29,.16); margin:auto; }
.ui-sistema .consulta-cabecalho h2, .ui-sistema .consulta-detalhe h3 { color:var(--ui-titulo); }
.ui-sistema .consulta-insight { background:#f3f8f4; border-color:var(--ui-borda); }
.ui-sistema .consulta-insight strong { color:var(--ui-verde-escuro); }
.ui-sistema .config-aviso, .ui-sistema .seguranca-aviso { border-radius:10px; }
/* Auth: mantém o formulário/olhinho, aproxima o cartão das referências. */
.ui-auth { min-height:100vh; min-height:100dvh; height:auto; padding:28px 18px; }
.ui-auth .auth-container { padding:36px; border:1px solid var(--ui-borda); border-radius:16px; box-shadow:var(--ui-sombra); }
.ui-auth .auth-container h2 { color:var(--ui-titulo); font-size:1.55rem; line-height:1.3; margin-bottom:28px; }
.ui-auth .auth-container .btn { min-height:48px; }
.ui-auth .password-wrapper input { padding-right:46px; }
/* Prontuário: mantém Tailwind e estrutura, unifica somente seus componentes. */
.ui-prontuario > .container { padding-top:24px; }
.ui-prontuario > .container > .bg-white { border-radius:14px; box-shadow:var(--ui-sombra); border:1px solid var(--ui-borda); }
.ui-prontuario > .container > .border-l-4 { border-left:4px solid var(--ui-verde); }
.ui-prontuario > .container h2 { color:var(--ui-titulo); font-size:1.45rem; }
.ui-prontuario > .container h3 { color:var(--ui-titulo); font-size:1.15rem; }
.ui-prontuario > .container form button[type="submit"], .ui-prontuario #formEditarSessao button[type="submit"] {
    min-height:44px; padding:10px 18px; border:1px solid var(--ui-verde); border-radius:10px; background:var(--ui-verde); color:#fff; font-weight:600;
}
.ui-prontuario > .container form button[type="submit"]:hover, .ui-prontuario #formEditarSessao button[type="submit"]:hover { background:var(--ui-verde-escuro); }
.ui-prontuario > .container textarea { width:100%; }
.ui-prontuario #modalEditarSessao > div { border:1px solid var(--ui-borda); border-radius:14px; box-shadow:var(--ui-sombra); }
.ui-prontuario > .container .mensagens-acesso { color:var(--ui-verde-escuro); border-color:var(--ui-contorno-verde); background:#fff; }
.ui-prontuario > .container .mensagens-acesso:hover { background:var(--ui-verde-suave); border-color:var(--ui-verde); }
.ui-confirmacao .card { border:1px solid var(--ui-borda); border-radius:16px; box-shadow:var(--ui-sombra); color:var(--ui-texto); }
.ui-confirmacao .card h1, .ui-confirmacao .card h2 { color:var(--ui-titulo); line-height:1.35; }
.ui-confirmacao .card > a { color:var(--ui-verde-escuro); }
@media(max-width:767px) {
    .ui-sistema > .header { padding:14px 16px; gap:12px; }
    .ui-sistema > .header h1 { font-size:1.2rem; }
    .ui-sistema > .container { padding-inline:16px; }
    .ui-sistema .content-section { padding:20px 16px; margin-top:20px; }
    .ui-sistema .modal-content { padding:24px 18px; width:calc(100% - 24px); }
    .ui-auth .auth-container { padding:28px 22px; }
    .ui-prontuario > .container > .bg-white { padding:20px 16px; }
    .ui-sistema .fc .fc-button { padding:7px 9px; }
}
@media(prefers-reduced-motion:reduce) {
    .ui-sistema :is(.btn, .btn-acoes-hoje, input, select, textarea):not(:where(.mensagens-modal *, .mensagens-visualizador *)) { transition:none; }
}

/* Modais antigos do prontuário, sem atingir o modal de mensagens. */
.ui-sistema :is(#modalBuscaProntuario, #modalSenhaProntuario) > div {
    border:1px solid var(--ui-borda); border-radius:14px !important;
    box-shadow:0 18px 56px rgba(20,43,29,.16) !important; font-family:inherit !important;
    max-width:min(460px,calc(100vw - 32px)) !important;
}
.ui-sistema :is(#modalBuscaProntuario, #modalSenhaProntuario) > div > div:first-child {
    background:#f2f7f3 !important; border-bottom:1px solid var(--ui-borda);
}

/* Calendário: cores claras com texto escuro nas duas agendas. */
.ui-sistema .fc :is(.evento-disponivel-aluno, .evento-disponivel-psicologa, .evento-confirmado) {
    --cal-fundo:#e5f4eb; --cal-texto:#14532d; --cal-borda:#b5dcc3; --cal-marcador:#27834a;
}
.ui-sistema .fc .evento-meu-agendamento {
    --cal-fundo:#e4effd; --cal-texto:#1e3a5f; --cal-borda:#b7cfee; --cal-marcador:#356fb5;
}
.ui-sistema .fc :is(.evento-indisponivel-aluno, .evento-indisponivel-psicologa) {
    --cal-fundo:#fce8eb; --cal-texto:#881f2b; --cal-borda:#edbcc4; --cal-marcador:#bd4656;
}
.ui-sistema .fc .fc-event:is(.evento-disponivel-aluno, .evento-disponivel-psicologa, .evento-confirmado, .evento-meu-agendamento, .evento-indisponivel-aluno, .evento-indisponivel-psicologa) {
    background-color:var(--cal-fundo) !important; color:var(--cal-texto) !important;
    border:1px solid var(--cal-borda) !important; border-radius:6px;
}
.ui-sistema .fc :is(.evento-disponivel-aluno, .evento-disponivel-psicologa, .evento-confirmado, .evento-meu-agendamento, .evento-indisponivel-aluno, .evento-indisponivel-psicologa)
:is(.fc-event-main, .fc-event-title, .fc-event-time, .fc-list-event-time, .fc-list-event-title, .fc-list-event-title a) {
    color:var(--cal-texto) !important;
}
.ui-sistema .fc :is(.evento-disponivel-aluno, .evento-disponivel-psicologa, .evento-confirmado, .evento-meu-agendamento, .evento-indisponivel-aluno, .evento-indisponivel-psicologa)
:is(.fc-daygrid-event-dot, .fc-list-event-dot) { border-color:var(--cal-marcador) !important; }
.ui-sistema .fc .fc-button-primary {
    background:#fff; color:#00642e; border-color:#b5d6c0;
}
.ui-sistema .fc .fc-button-primary:not(:disabled):hover {
    background:#eef7f1; color:#00642e; border-color:#00833d;
}
.ui-sistema .fc .fc-button-primary:not(:disabled).fc-button-active,
.ui-sistema .fc .fc-button-primary:not(:disabled):active {
    background:#e5f4eb; color:#14532d !important; border-color:#27834a; box-shadow:none;
}
.ui-sistema .fc .fc-button-primary:disabled {
    background:#f5f7f5; color:#637168; border-color:#dce5df; opacity:1;
}
.ui-sistema .fc .fc-button-primary:focus-visible { outline:3px solid rgba(0,131,61,.4); outline-offset:2px; box-shadow:none; }

/* Botão de mensagens no cabeçalho do aluno */
.ui-aluno .header .mensagens-acesso {
    color: #00642e;
    background: #fff;
    border-color: #b5d6c0;
}

.ui-aluno .header .mensagens-acesso:hover {
    color: #00833d;
    background: #eef7f1;
    border-color: #00833d;
}