:root{font-family:system-ui,sans-serif;color:#18324b;background:#f4f7fa}*{box-sizing:border-box}body{margin:0}header{background:#132f46;color:white;padding:22px max(4vw,20px);display:flex;justify-content:space-between;gap:15px}header a{color:white;font-size:24px;text-decoration:none}header b{color:#51dfc0}main{max-width:1250px;margin:28px auto;padding:0 22px}nav{display:flex;align-items:center;gap:24px}.nav-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.nav-actions form{margin:0}h1{font-size:30px}a{color:#087b82}form.panel,.card{padding:24px;background:white;border:1px solid #dce5eb;border-radius:12px;margin:20px 0}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}label{display:block;font-size:14px;font-weight:600}input,select,textarea{display:block;width:100%;margin-top:7px;border:1px solid #b9c8d4;border-radius:6px;padding:10px;font:inherit}input[type=checkbox]{display:inline;width:auto}button,.button{display:inline-block;padding:11px 18px;background:#087b82;color:white;border:0;border-radius:6px;font:inherit;cursor:pointer;text-decoration:none}button:disabled{opacity:.82;cursor:wait}.search-loading::after{content:"";display:inline-block;width:1em;height:1em;margin-left:.55em;vertical-align:-.16em;border:2px solid rgba(255,255,255,.5);border-top-color:#51dfc0;border-radius:50%;animation:search-spin .7s linear infinite}@keyframes search-spin{to{transform:rotate(360deg)}}table{width:100%;border-collapse:collapse;background:white}th,td{text-align:left;padding:12px;border-bottom:1px solid #e2e9ee;vertical-align:top}th{background:#eaf0f4;font-size:13px}tr:target{background:#e1f7f0;outline:2px solid #087b82;outline-offset:-2px;scroll-margin-top:20px}small,.muted{color:#526c7c}footer{margin-top:40px;padding:24px 0;color:#526c7c;font-size:13px}.notice{background:#fff3d6;padding:16px;border-radius:8px}.scroll{overflow:auto}.login{max-width:480px;margin:8vh auto}.row{display:flex;gap:15px;flex-wrap:wrap}.note{white-space:pre-wrap}dl{display:grid;grid-template-columns:160px 1fr;gap:12px}dd{margin:0;overflow-wrap:anywhere}@media(max-width:650px){header span{display:none}nav{gap:12px}dl{grid-template-columns:1fr}}

.selection-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.selection-actions .selection-feedback{flex-basis:100%;line-height:1.5}.selection-actions .button{width:auto}@media(max-width:650px){.selection-actions{align-items:flex-start}}


/* Ajustes de espaçamento, destinos e revisão */
.contact-actions{margin:2.25rem 0 1.5rem;padding:1.4rem;background:#f6faf7;border:1px solid #dbe6de;border-radius:10px;gap:1.15rem}
.selection-actions{margin:.35rem 0 .8rem;padding-bottom:.35rem;gap:.85rem}
.selection-actions .button{display:inline-flex;align-items:center;min-height:44px}
.destination-choice{display:flex;flex-direction:row;align-items:center;gap:.7rem;flex-wrap:wrap;margin:.25rem 0 .5rem;padding:.75rem 1rem;border:1px solid #d4e0e3;border-radius:9px;background:#f7fafb}
.destination-choice strong{margin-right:.25rem}
.destination-choice label{display:inline-flex;flex:0 0 auto;align-items:center;gap:.5rem;margin:0;padding:.55rem .9rem;border:1px solid #cbd8cf;border-radius:999px;background:#fff;cursor:pointer}
.destination-choice input[type=radio]{accent-color:#087b82;display:inline;width:auto;margin:0}
.button.secondary,button.secondary{background:#eaf0f4;color:#18324b;border:1px solid #ccd8df}
.invalid-destinations{margin:1.6rem 0 2.2rem;padding:1.1rem 1.25rem;background:#fff9eb;border:1px solid #eedba6;border-radius:10px}
.invalid-destinations h3{margin:.2rem 0 .45rem}
.invalid-destinations>p{margin:.2rem 0 .9rem;color:#526c7c}
.invalid-contact,.review-contact{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;border-top:1px solid #e5e9e8}
.invalid-contact button,.review-contact button{flex:0 0 auto;white-space:nowrap}
.review-valid-list{margin:1.9rem 0 1.2rem}
.review-valid-list h3{margin:0 0 .85rem}
.review-contact{margin:.55rem 0;border:1px solid #e0e8eb;border-radius:8px;background:#fff}
.review-contact p{margin:.2rem 0}
.review-remove-all{margin:1.8rem 0 2.1rem;padding-top:1rem;border-top:1px solid #e2e9ee}
@media(max-width:650px){.destination-choice{align-items:center}.invalid-contact,.review-contact{align-items:flex-start;flex-direction:column}.invalid-contact button,.review-contact button{width:auto}}


/* Espaçamento padrão no formulário de nova lista */
.create-list-form{display:flex;flex-direction:column;align-items:flex-start;gap:1rem}
.create-list-form label{width:100%;margin:0}
.create-list-form button{margin-top:0}


/* Disposição consistente dos botões e grupos de ações */
button, .button, input[type="submit"], input[type="button"] { min-height: 42px; vertical-align: middle; white-space: normal; }
header { flex-wrap: wrap; align-items: center; }
header nav { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.nav-actions { margin-left: auto; display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 12px; }
.nav-actions form, .row form, td form { margin: 0; }
.row, .selection-actions, .contact-actions, .destination-choice { align-items: center; flex-wrap: wrap; }
.button-row, .form-actions, .actions, .action-buttons, .button-group, .pagination { display: flex; align-items: center; justify-content: flex-start; flex-wrap: wrap; gap: 12px; margin: 16px 0; }
td .button, td button, td input[type="submit"] { min-height: 36px; }
@media (max-width: 650px) { header { align-items: flex-start; } header nav { width: 100%; } .nav-actions { width: 100%; margin-left: 0; justify-content: flex-end; } .button-row, .form-actions, .actions, .action-buttons, .button-group, .pagination { gap: 8px; } }


/* Revisão visual geral: alvos alinhados e grupos com espaçamento previsível */
button, .button, input[type="submit"], input[type="button"] { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; margin: 0; padding: .7rem 1rem; line-height: 1.25; text-align: center; }
header { align-items: center; }
header nav { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem; }
header nav a { font-size: 15px; }
.nav-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .65rem; margin-left: auto; }
.nav-actions form, .row form, td form { margin: 0; }
.row, .selection-actions, .pagination, .button-row, .form-actions, .actions, .action-buttons, .button-group { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; }
.row { margin: .75rem 0; }
.selection-actions { margin: 0; padding: 0; }
.contact-actions { display: flex; flex-direction: column; align-items: stretch; gap: 1rem; margin: 2rem 0 1.5rem; padding: 1.25rem; background: #f6faf7; border: 1px solid #dbe6de; border-radius: 10px; }
.destination-choice { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem; width: fit-content; max-width: 100%; margin: .25rem 0 0; padding: .75rem 1rem; border: 1px solid #d4e0e3; border-radius: 9px; background: #f7fafb; }
.destination-choice > strong { margin-right: .25rem; }
.destination-choice > label { display: inline-flex; align-items: center; justify-content: flex-start; gap: .5rem; width: auto; min-height: 40px; margin: 0; padding: .55rem .9rem; border: 1px solid #cbd8cf; border-radius: 999px; background: #fff; cursor: pointer; white-space: nowrap; }
.destination-choice > label input[type="radio"] { display: inline-block; flex: 0 0 auto; width: 1rem; height: 1rem; margin: 0; accent-color: #087b82; }
.contact-actions > button[type="submit"] { align-self: flex-start; margin-top: .2rem; }
.send-limit-note { display: block; margin-top: -.35rem; line-height: 1.5; }
.review-contact, .invalid-contact { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .8rem; }
.review-contact button, .invalid-contact button { flex: 0 0 auto; }
.pagination { justify-content: flex-start; margin: 1rem 0; }
@media (max-width: 650px) { header nav { width: 100%; } .nav-actions { width: 100%; margin-left: 0; } .contact-actions { padding: 1rem; } .destination-choice { width: 100%; } .destination-choice > label { white-space: normal; } .selection-actions { align-items: flex-start; } .pagination { gap: .5rem; } }


/* Espaço entre botões fora de grupos flexíveis */
button, .button, input[type="submit"], input[type="button"] { margin: .25rem .45rem .25rem 0; }
.nav-actions > *, .selection-actions > *, .pagination > *, .button-row > *, .form-actions > *, .actions > *, .action-buttons > *, .button-group > * { margin: 0; }
.nav-actions form, .row form, td form { margin: 0; }


/* O menu fica dentro de main no modelo atual */
main > nav { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; margin: 0 0 1.25rem; }
main > nav > a { line-height: 1.4; }


/* Respiro entre campos e formulários administrativos */
.card form > label { display: block; margin: 0 0 1rem; }
.grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 1rem; }
.grid > label { margin: 0; }
.grid > button, .grid > input[type="submit"] { grid-column: 1 / -1; justify-self: start; margin: 0; }
@media (max-width: 650px) { .grid { grid-template-columns: minmax(0, 1fr); gap: .85rem; } }


/* Atalhos fixos para percorrer páginas longas */
html{scroll-behavior:smooth}
.page-jump{position:fixed;right:1rem;bottom:1rem;z-index:1000;display:flex;flex-direction:column;gap:.55rem}
.page-jump a{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:#087b82;color:#fff;text-decoration:none;font-size:1.5rem;font-weight:700;box-shadow:0 2px 8px rgba(0,0,0,.22)}
.page-jump a:hover,.page-jump a:focus-visible{background:#06656a;outline:3px solid #b8e0c7;outline-offset:2px}
@media(max-width:650px){.page-jump{right:.7rem;bottom:.7rem}.page-jump a{width:40px;height:40px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.grid > div { align-self: end; }


/* Ações rápidas na lista de usuários */
.user-actions { display:flex; align-items:center; justify-content:flex-start; gap:.55rem; }
.user-action-form { display:inline-flex; align-items:center; margin:0; }
.user-action-form .icon-action { display:inline-flex; align-items:center; justify-content:center; width:2.35rem; height:2.35rem; padding:.35rem; margin:0; border:1px solid #087b82; border-radius:.55rem; background:#fff; color:#087b82; cursor:pointer; }
.user-action-form .icon-action:hover, .user-action-form .icon-action:focus-visible { background:#087b82; color:#fff; outline:2px solid #b8e0c7; outline-offset:2px; }
.user-action-form .icon-action-danger { border-color:#b42318; color:#b42318; }
.user-action-form .icon-action-danger:hover, .user-action-form .icon-action-danger:focus-visible { background:#b42318; color:#fff; }
.user-action-form .icon-action svg { width:1.25rem; height:1.25rem; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }


/* Alinhamento e altura uniformes na tabela de usuários */
table:has(.user-actions) thead tr { height: 3.2rem; }
table:has(.user-actions) tbody tr { height: 4rem; }
table:has(.user-actions) th,
table:has(.user-actions) td { vertical-align: middle; padding-top: .7rem; padding-bottom: .7rem; }
table:has(.user-actions) .user-actions { min-height: 2.35rem; align-items: center; }

/* Campo amplo para pesquisa por vários nomes ou CNPJs */
.search-name-field { grid-column: span 2; }
.search-name-input { min-width: 0; }
@media (max-width: 650px) { .search-name-field { grid-column: 1 / -1; } }
