/*
 * nst-cantos.css: cantos suaves em toda a Central NST
 * Regra do Ismaire (31/10/2026, reforçada em 01/11/2026): nada com ponta aguda.
 * Pop-up, botão, campo, cartão, menu, selo e tabela sempre com canto arredondado.
 * Exceção: o que fica preso à borda da tela (menu lateral, barra do topo,
 * faixas de largura total, pop-up de tela cheia no celular) continua reto.
 * Carregada por ÚLTIMO no <head> de cada tela. Tudo em rem, para acompanhar os três "A".
 */
:root {
    --nst-raio-sm: .625rem;
    --nst-raio: .875rem;
    --nst-raio-lg: 1.125rem;

    /* Bootstrap 5: tudo o que usa as variáveis (card, alerta, selo, paginação, lista, dropdown, modal) */
    --bs-border-radius: .75rem;
    --bs-border-radius-sm: .625rem;
    --bs-border-radius-lg: .875rem;
    --bs-border-radius-xl: 1rem;
    --bs-border-radius-xxl: 1.25rem;
    --bs-border-radius-2xl: 1.5rem;
}

/* ---------- Botões ---------- */
.btn:not(.btn-group > .btn):not(.btn-group-vertical > .btn):not(.input-group > .btn):not(.btn-close):not(.navbar-toggler):not(.accordion-button):not(.nav-tabs .btn),
button:not(.btn):not(.btn-close):not(.navbar-toggler):not(.accordion-button):not(.list-group-item):not(.dropdown-item):not(.page-link):not(.nav-link):not(.fc-button):not(.input-group > button):not(.btn-group > button):not([class*="swal2-close"]):not(.leaflet-control *),
input[type="button"]:not(.input-group > input),
input[type="submit"]:not(.input-group > input),
input[type="reset"]:not(.input-group > input) {
    border-radius: var(--nst-raio-sm) !important;
}
/* grupos de botões: só as pontas de fora */
.btn-group > .btn:first-child, .btn-group > :first-child .btn { border-top-left-radius: var(--nst-raio-sm) !important; border-bottom-left-radius: var(--nst-raio-sm) !important; }
.btn-group > .btn:last-child, .btn-group > :last-child .btn { border-top-right-radius: var(--nst-raio-sm) !important; border-bottom-right-radius: var(--nst-raio-sm) !important; }

/* ---------- Campos ---------- */
.form-control:not(.input-group > *),
.form-select:not(.input-group > *),
input[type="text"]:not(.input-group > *):not(.form-control-plaintext),
input[type="email"]:not(.input-group > *),
input[type="password"]:not(.input-group > *),
input[type="number"]:not(.input-group > *),
input[type="search"]:not(.input-group > *),
input[type="tel"]:not(.input-group > *),
input[type="url"]:not(.input-group > *),
input[type="date"]:not(.input-group > *),
input[type="datetime-local"]:not(.input-group > *),
input[type="time"]:not(.input-group > *),
input[type="month"]:not(.input-group > *),
input[type="file"]:not(.input-group > *),
select:not(.input-group > *),
textarea:not(.input-group > *) {
    border-radius: var(--nst-raio-sm) !important;
}
/* grupo de campo (ícone + campo + botão): só as pontas de fora */
.input-group > :first-child { border-top-left-radius: var(--nst-raio-sm) !important; border-bottom-left-radius: var(--nst-raio-sm) !important; }
.input-group > :last-child { border-top-right-radius: var(--nst-raio-sm) !important; border-bottom-right-radius: var(--nst-raio-sm) !important; }
input[type="checkbox"]:not(.form-switch input) { border-radius: .3em; }

/* ---------- Pop-ups, janelas e menus que flutuam ---------- */
.swal2-popup { border-radius: var(--nst-raio-lg) !important; }
.swal2-styled, .swal2-input, .swal2-textarea, .swal2-select, .swal2-file { border-radius: var(--nst-raio-sm) !important; }
.swal2-toast { border-radius: var(--nst-raio) !important; }
.modal-content { border-radius: var(--nst-raio-lg) !important; }
.modal-header { border-top-left-radius: var(--nst-raio-lg) !important; border-top-right-radius: var(--nst-raio-lg) !important; }
.modal-footer { border-bottom-left-radius: var(--nst-raio-lg) !important; border-bottom-right-radius: var(--nst-raio-lg) !important; }
.modal-fullscreen .modal-content, .modal-fullscreen .modal-header, .modal-fullscreen .modal-footer { border-radius: 0 !important; }
@media (max-width: 575.98px) {
    .modal-fullscreen-sm-down .modal-content, .modal-fullscreen-sm-down .modal-header, .modal-fullscreen-sm-down .modal-footer { border-radius: 0 !important; }
}
.dropdown-menu, .popover, .toast, .tooltip-inner { border-radius: var(--nst-raio) !important; }
.dropdown-item { border-radius: var(--nst-raio-sm); }

/* ---------- Cartões, avisos e selos ---------- */
.card { border-radius: var(--nst-raio) ; }
.alert { border-radius: var(--nst-raio) !important; }
.badge { border-radius: var(--nst-raio-sm); }
.list-group { border-radius: var(--nst-raio); }
.progress { border-radius: 999px; }
.img-thumbnail { border-radius: var(--nst-raio) !important; }

/* ---------- Tabelas: a moldura arredonda, o conteúdo não vaza a ponta ---------- */
.table-responsive { border-radius: var(--nst-raio); }
.card > .table-responsive:last-child, .card > .table:last-child { border-bottom-left-radius: var(--nst-raio); border-bottom-right-radius: var(--nst-raio); }

/* ---------- Abas e paginação ---------- */
.nav-tabs .nav-link { border-top-left-radius: var(--nst-raio-sm) !important; border-top-right-radius: var(--nst-raio-sm) !important; }
.nav-pills .nav-link { border-radius: var(--nst-raio-sm) !important; }
.pagination { --bs-pagination-border-radius: var(--nst-raio-sm); }

/* ---------- Agenda (FullCalendar): grupo de botões com as pontas de fora suaves ---------- */
.fc .fc-button-group > .fc-button:first-child { border-top-left-radius: var(--nst-raio-sm) !important; border-bottom-left-radius: var(--nst-raio-sm) !important; }
.fc .fc-button-group > .fc-button:last-child { border-top-right-radius: var(--nst-raio-sm) !important; border-bottom-right-radius: var(--nst-raio-sm) !important; }
.fc .fc-toolbar-chunk > .fc-button { border-radius: var(--nst-raio-sm) !important; }
