/* Administracao da Agenda Terapeutica: tema sobre o admin do Django.
   Mesma base da agenda (app.css): azul-marinho #15254A + dourado #F9AB2D, Segoe UI, cartoes brancos sobre fundo cinza-claro.
   Regras da marca: dourado so como destaque, nunca texto branco sobre dourado, estado = cor + texto/icone. */

:root, html[data-theme="light"], html[data-theme="dark"] {
    --azul: #15254A;
    --azul-escuro: #101F38;
    --azul-medio: #22335C;
    --azul-apoio: #52617F;
    --dourado: #F9AB2D;
    --dourado-suave: #FEF3DF;
    --fundo: #F3F5F8;
    --superficie: #FFFFFF;
    --borda: #E1E4EA;
    --borda-forte: #C9CED8;
    --texto: #1E2433;
    --texto-apoio: #5F6675;
    --ok: #2E7D4F;     --ok-fundo: #E8F4EC;
    --erro: #B3261E;   --erro-fundo: #FBEAE9;
    --aviso: #8A5100;  --aviso-fundo: #FFF3DC;
    --info: #1F5FA8;   --info-fundo: #E7F0FA;
    --raio: 10px;
    --raio-p: 6px;
    --sombra: 0 1px 2px rgba(16, 31, 56, .05), 0 1px 3px rgba(16, 31, 56, .07);
    --foco: 0 0 0 3px rgba(249, 171, 45, .45);

    /* variaveis do admin do Django */
    --primary: var(--azul-apoio);
    --secondary: var(--azul);
    --accent: var(--dourado);
    --primary-fg: #fff;
    --body-fg: var(--texto);
    --body-bg: var(--fundo);
    --body-quiet-color: var(--texto-apoio);
    --body-medium-color: var(--texto);
    --body-loud-color: var(--azul);
    --header-color: #fff;
    --header-branding-color: #fff;
    --header-bg: var(--azul);
    --header-link-color: #fff;
    --breadcrumbs-fg: var(--texto-apoio);
    --breadcrumbs-link-fg: var(--azul-medio);
    --breadcrumbs-bg: var(--superficie);
    --link-fg: var(--azul-medio);
    --link-hover-color: var(--azul);
    --link-selected-fg: var(--azul);
    --hairline-color: var(--borda);
    --border-color: var(--borda-forte);
    --error-fg: var(--erro);
    --message-success-bg: var(--ok-fundo);
    --message-warning-bg: var(--aviso-fundo);
    --message-error-bg: var(--erro-fundo);
    --darkened-bg: #F7F8FA;
    --selected-bg: var(--dourado-suave);
    --selected-row: var(--dourado-suave);
    --button-fg: #fff;
    --button-bg: var(--azul);
    --button-hover-bg: var(--azul-medio);
    --default-button-bg: var(--azul);
    --default-button-hover-bg: var(--azul-medio);
    --close-button-bg: #fff;
    --close-button-hover-bg: var(--darkened-bg);
    --delete-button-bg: var(--erro);
    --delete-button-hover-bg: #8F1D17;
    --object-tools-fg: var(--azul);
    --object-tools-bg: #fff;
    --object-tools-hover-bg: var(--darkened-bg);
    --font-family-primary: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
    color-scheme: light;
}

html, body { background: var(--fundo); }
body { font-size: 15px; color: var(--texto); }
a:link, a:visited { color: var(--link-fg); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
    outline: none; box-shadow: var(--foco);
}
.theme-toggle { display: none !important; }
.texto-apoio { color: var(--texto-apoio); }

/* ---------- cabecalho ---------- */
#header {
    height: 60px; padding: 0 24px; background: var(--azul); border-bottom: 3px solid var(--dourado);
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
#branding h1, #site-name { margin: 0; }
#site-name a { display: flex; align-items: center; gap: 14px; font-size: 1.05rem; font-weight: 600; color: #fff !important; text-decoration: none; }
#site-name img { height: 28px; padding-right: 14px; border-right: 1px solid rgba(255, 255, 255, .3); }
#site-name .site-sub { font-weight: 400; color: #C9D1E3; }
#user-tools { display: flex; align-items: center; gap: 4px; padding: 0; margin: 0; font-size: .85rem; text-transform: none; letter-spacing: 0; color: #C9D1E3; }
#user-tools .usuario { display: flex; flex-direction: column; line-height: 1.15; margin-right: 10px; text-align: right; }
#user-tools .usuario strong { color: #fff; font-weight: 600; }
#user-tools a, #logout-form button {
    display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border-radius: var(--raio-p);
    color: #fff !important; border: 1px solid transparent; background: transparent; text-decoration: none !important;
    font: inherit; font-size: .85rem; text-transform: none; letter-spacing: 0; cursor: pointer; border-bottom: 0;
}
#user-tools a:hover, #logout-form button:hover { background: rgba(255, 255, 255, .1); }
#user-tools .botao-agenda { border-color: rgba(255, 255, 255, .35); }
#logout-form { display: inline; }

/* ---------- trilha (breadcrumbs) ---------- */
nav[aria-label] .breadcrumbs, div.breadcrumbs, ol.breadcrumbs {
    background: var(--superficie); color: var(--texto-apoio); border-bottom: 1px solid var(--borda);
    padding: 10px 24px; font-size: .85rem; margin: 0;
}
.breadcrumbs a { color: var(--azul-medio) !important; text-decoration: none; }
.breadcrumbs a:hover { text-decoration: underline; }
.breadcrumbs li + li::before { color: var(--borda-forte); }

/* ---------- menu lateral ---------- */
#nav-sidebar { background: var(--fundo); border-right: 1px solid var(--borda); padding: 16px 12px; }
#nav-filter { width: 100%; height: 36px; margin: 0 0 14px; padding: 0 10px; border: 1px solid var(--borda-forte); border-radius: var(--raio-p); background: #fff; }
#nav-sidebar .module { background: transparent; box-shadow: none; border: 0; margin-bottom: 18px; }
#nav-sidebar .module caption, #nav-sidebar .module caption a.section {
    background: transparent !important; color: var(--texto-apoio) !important; padding: 0 10px 6px;
    font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; text-align: left;
}
#nav-sidebar .module th, #nav-sidebar .module td { border: 0; background: transparent; padding: 0; }
#nav-sidebar .module th a { display: block; padding: 8px 10px; border-radius: var(--raio-p); color: var(--texto) !important; font-weight: 500; }
#nav-sidebar .module tr:hover th a { background: #fff; color: var(--azul) !important; }
#nav-sidebar .current-model { background: transparent; }
#nav-sidebar .current-model th a { background: #fff; color: var(--azul) !important; font-weight: 650; box-shadow: inset 3px 0 0 var(--dourado), var(--sombra); }
#nav-sidebar .module td { vertical-align: middle; padding-right: 6px; }
#nav-sidebar .addlink { font-size: 0; padding: 0; width: 28px; height: 28px; display: inline-grid; place-items: center; border-radius: 50%; background: none !important; }
#nav-sidebar .addlink::before { content: "+"; font-size: 1.1rem; font-weight: 600; color: var(--azul-apoio); }
#nav-sidebar .addlink:hover { background: #fff !important; }
.toggle-nav-sidebar { background: var(--fundo); border: 0; border-right: 1px solid var(--borda); color: var(--azul-apoio); }

/* ---------- conteudo ---------- */
#content { padding: 24px 32px 32px; max-width: 1180px; }
#content h1 { font-size: 1.55rem; font-weight: 700; color: var(--azul); margin: 0 0 4px; }
#content > h2, #content-subtitle { font-size: 1rem; font-weight: 500; color: var(--texto-apoio); margin: 0 0 18px; }
#content-main { float: none; }

/* cartoes (fieldsets e modulos) */
.module, fieldset.module {
    background: var(--superficie); border: 1px solid var(--borda); border-radius: var(--raio); box-shadow: var(--sombra);
    margin: 0 0 20px; padding: 0; overflow: hidden;
}
fieldset.module > h2, .module > h2, .module caption, fieldset.module details > summary h2, .fieldset-heading {
    border: 0 !important; border-bottom: 1px solid var(--borda) !important; border-radius: 0;
    background: transparent !important; color: var(--azul) !important; font-size: 1rem !important; font-weight: 650;
    text-transform: none; letter-spacing: 0; padding: 16px 22px 14px !important; margin: 0; border-bottom: 1px solid var(--borda);
}
fieldset.module details > summary { list-style: none; cursor: pointer; display: flex; align-items: center; }
fieldset.module details > summary::-webkit-details-marker { display: none; }
fieldset.module details > summary h2 { flex: 1; display: flex; align-items: center; gap: 10px; border-bottom: 0 !important; }
fieldset.module details > summary h2::before {
    content: ""; width: 8px; height: 8px; border-right: 2px solid var(--azul-apoio); border-bottom: 2px solid var(--azul-apoio);
    transform: rotate(-45deg); transition: transform .15s;
}
fieldset.module details[open] > summary h2::before { transform: rotate(45deg); }
fieldset.module details[open] > summary h2 { border-bottom: 1px solid var(--borda) !important; }
fieldset.module .description {
    margin: 0; padding: 14px 22px; background: var(--darkened-bg); border-bottom: 1px solid var(--borda);
    color: var(--texto-apoio); font-size: .88rem; line-height: 1.5;
}

/* linhas de formulario: rotulo em cima, campo embaixo */
.form-row { padding: 16px 22px; border-bottom: 1px solid var(--borda); overflow: visible; }
.form-row:last-child { border-bottom: 0; }
.aligned .form-row .flex-container { display: flex; flex-direction: column; align-items: stretch; gap: 6px; }
.aligned .form-row .flex-container.checkbox-row { gap: 2px; }
.aligned label, .aligned legend, form .aligned label, form .aligned legend {
    float: none !important; width: auto !important; min-width: 0; padding: 0 !important; margin: 0;
    color: var(--texto); font-weight: 600; font-size: .9rem; line-height: 1.35;
}
.aligned label::after, .aligned legend::after { content: none; }
form .aligned label.required::after, form .aligned legend.required::after { content: " *"; color: var(--erro); font-weight: 700; }
.aligned .form-row fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.aligned .form-row fieldset legend { margin-bottom: 8px; }
.aligned .help, form .aligned div.help, form .aligned p.help {
    margin: 0 !important; padding: 0 !important; color: var(--texto-apoio); font-size: .82rem; line-height: 1.45; order: 1;
}
.aligned .flex-container > input, .aligned .flex-container > select, .aligned .flex-container > textarea,
.aligned .flex-container > .related-widget-wrapper, .aligned .flex-container > div[id^="id_"], .aligned .flex-container > .readonly { order: 0; }
.aligned .flex-container > label, .aligned .flex-container > legend { order: -1; }
.aligned .flex-container > .errorlist { order: 2; }
.aligned .checkbox-row .help { padding-left: 30px !important; }
.readonly { padding: 0 !important; margin: 0 !important; color: var(--texto); line-height: 1.5; }
.aligned .vCheckboxLabel { font-weight: 500 !important; }

/* campos */
input[type=text], input[type=password], input[type=email], input[type=url], input[type=number], input[type=tel], input[type=search],
input[type=date], input[type=time], textarea, select, .vTextField {
    border: 1px solid var(--borda-forte); border-radius: var(--raio-p); background: #fff; color: var(--texto);
    padding: 8px 11px; font: inherit; font-size: .93rem; min-height: 40px; box-shadow: inset 0 1px 1px rgba(16, 31, 56, .03);
    transition: border-color .12s, box-shadow .12s;
}
textarea { min-height: 90px; line-height: 1.45; }
.vTextField, .aligned input[type=text], .aligned input[type=email], .aligned input[type=password] { width: 100%; max-width: 520px; }
input:hover, textarea:hover, select:hover { border-color: var(--azul-apoio); }
input:focus, textarea:focus, select:focus { border-color: var(--azul); box-shadow: var(--foco); outline: none; }
input::placeholder, textarea::placeholder { color: #9AA1AE; }
input[type=checkbox], input[type=radio] { width: 18px; height: 18px; accent-color: var(--azul); margin: 0; vertical-align: -3px; cursor: pointer; }
.checkbox-row .checkbox { display: flex; align-items: flex-start; gap: 12px; }
.checkbox-row .checkbox label { cursor: pointer; }

/* opcoes de alcance (radios) como cartoes */
.opcoes-alcance, ul.radiolist { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; max-width: 720px; }
.opcoes-alcance > div, ul.radiolist > li { margin: 0; }
form .aligned .opcoes-alcance label, .opcoes-alcance label, form .aligned ul.radiolist label, ul.radiolist label {
    display: flex !important; align-items: center; gap: 12px; padding: 11px 14px !important; border: 1px solid var(--borda-forte);
    border-radius: var(--raio-p); background: #fff; font-weight: 500 !important; cursor: pointer; transition: border-color .12s, background .12s;
}
.opcoes-alcance label:hover, ul.radiolist label:hover { border-color: var(--azul-apoio); background: var(--darkened-bg); }
.opcoes-alcance label:has(input:checked), ul.radiolist label:has(input:checked) {
    border-color: var(--azul); background: #F2F4F9; box-shadow: inset 3px 0 0 var(--dourado); color: var(--azul); font-weight: 600 !important;
}
.opcoes-alcance label:has(input:focus-visible) { box-shadow: var(--foco); }

/* perfis na tela do usuario */
ul.lista-perfis, div.lista-perfis { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 10px; margin: 4px 0 0; padding: 0; list-style: none; }
.lista-perfis > div, .lista-perfis > li { margin: 0; }
form .aligned .lista-perfis label, .lista-perfis label {
    display: grid !important; grid-template-columns: 18px 1fr; column-gap: 12px; row-gap: 2px; align-items: start;
    padding: 12px 14px !important; border: 1px solid var(--borda-forte); border-radius: var(--raio-p); background: #fff; cursor: pointer; height: 100%;
}
.lista-perfis label input { grid-row: span 2; margin-top: 2px; }
.lista-perfis label strong { color: var(--azul); font-weight: 650; }
.lista-perfis .perfil-resumo { color: var(--texto-apoio); font-size: .8rem; font-weight: 400; line-height: 1.4; }
.lista-perfis label:hover { border-color: var(--azul-apoio); }
.lista-perfis label:has(input:checked) { border-color: var(--azul); background: #F2F4F9; box-shadow: inset 3px 0 0 var(--dourado); }

/* ---------- erros e mensagens ---------- */
.errornote, p.errornote {
    display: flex; flex-direction: column; gap: 6px; margin: 0 0 18px; padding: 14px 18px 14px 50px; position: relative;
    background: var(--erro-fundo); color: var(--erro); border: 1px solid #F0C4C1; border-left: 4px solid var(--erro); border-radius: var(--raio-p);
    font-weight: 600; font-size: .92rem;
}
.errornote::before {
    content: "!"; position: absolute; left: 16px; top: 13px; width: 22px; height: 22px; border-radius: 50%;
    background: var(--erro); color: #fff; font-weight: 800; display: grid; place-items: center; font-size: .85rem;
}
.errornote .resumo-erros { margin: 4px 0 0; padding-left: 18px; font-weight: 400; color: var(--texto); }
.errornote .resumo-erros a { color: var(--erro) !important; font-weight: 600; }
ul.errorlist { margin: 0 !important; padding: 0 !important; color: var(--erro); font-size: .85rem; font-weight: 600; background: none; }
ul.errorlist li { display: flex; gap: 6px; align-items: baseline; padding: 0; margin: 0; background: none; border: 0; font-size: inherit; }
ul.errorlist li::before { content: "⚠"; font-weight: 400; }
ul.errorlist.nonfield { margin: 0 0 16px !important; padding: 12px 16px !important; background: var(--erro-fundo); border-radius: var(--raio-p); border-left: 4px solid var(--erro); }
.errors input, .errors select, .errors textarea, input[aria-invalid="true"], select[aria-invalid="true"] { border-color: var(--erro) !important; background: #FFFBFB; }
.form-row.errors { background: #FFFBFB; border-left: 3px solid var(--erro); padding-left: 19px; }
.aviso-campo { margin: 4px 0 0; padding: 8px 12px; border-radius: var(--raio-p); background: var(--aviso-fundo); color: var(--aviso); font-size: .85rem; font-weight: 600; }
.aviso-campo::before { content: "⚠ "; }

ul.messagelist { margin: 0 0 18px; padding: 0; }
ul.messagelist li {
    position: relative; margin: 0 0 8px; padding: 12px 16px 12px 46px !important; border-radius: var(--raio-p); font-size: .92rem; line-height: 1.45;
    background: var(--info-fundo); color: var(--texto); border: 1px solid #C9DAF0; border-left: 4px solid var(--info);
    background-image: none !important;
}
ul.messagelist li::before {
    position: absolute; left: 14px; top: 11px; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center;
    color: #fff; font-weight: 800; font-size: .8rem; content: "i"; background: var(--info);
}
ul.messagelist li.success { background-color: var(--ok-fundo); border-color: #BFDFCB; border-left-color: var(--ok); }
ul.messagelist li.success::before { content: "✓"; background: var(--ok); }
ul.messagelist li.warning { background-color: var(--aviso-fundo); border-color: #F2D9A6; border-left-color: #C77700; }
ul.messagelist li.warning::before { content: "!"; background: #C77700; }
ul.messagelist li.error { background-color: var(--erro-fundo); border-color: #F0C4C1; border-left-color: var(--erro); }
ul.messagelist li.error::before { content: "✕"; background: var(--erro); }
.caixa-alerta { margin: 0 0 20px; padding: 18px 22px; border-radius: var(--raio); border: 1px solid #F2D9A6; border-left: 4px solid #C77700; background: var(--aviso-fundo); }
.caixa-alerta h3 { margin: 0 0 8px; color: var(--aviso); font-size: 1rem; }
.caixa-alerta p, .caixa-alerta ul { margin: 6px 0; color: var(--texto); }
.caixa-alerta .confirmacao { display: flex; align-items: center; gap: 10px; margin: 12px 0 4px; padding: 10px 14px; background: #fff; border: 1px solid #E8C98A; border-radius: var(--raio-p); font-weight: 600; cursor: pointer; }

/* ---------- botoes ---------- */
.button, input[type=submit], input[type=button], .submit-row input, a.button, button.button {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 40px; padding: 0 18px !important;
    border-radius: var(--raio-p); border: 1px solid var(--borda-forte); background: #fff; color: var(--azul);
    font: inherit; font-size: .9rem; font-weight: 600; cursor: pointer; text-decoration: none; text-transform: none !important; letter-spacing: 0 !important;
    transition: background .12s, border-color .12s, color .12s;
}
.button:hover, input[type=submit]:hover, input[type=button]:hover, a.button:hover { background: var(--darkened-bg); border-color: var(--azul-apoio); color: var(--azul); }
.button.default, input[type=submit].default, .submit-row input.default, #changelist-search input[type=submit], #changelist .actions button {
    background: var(--azul) !important; border-color: var(--azul) !important; color: #fff !important;
}
.button.default:hover, input[type=submit].default:hover, .submit-row input.default:hover { background: var(--azul-medio) !important; }
.button[disabled], input[type=submit][disabled], .salvando { opacity: .6; cursor: progress !important; }

.submit-row {
    position: sticky; bottom: 0; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 8px 0 0; padding: 14px 18px;
    background: rgba(255, 255, 255, .96); border: 1px solid var(--borda); border-radius: var(--raio); box-shadow: 0 -4px 16px rgba(16, 31, 56, .06);
    backdrop-filter: blur(4px); color: var(--texto);
}
.submit-row::before, .submit-row::after { content: none; }
.submit-row a.deletelink, .submit-row .deletelink-box { margin-left: auto; }
.submit-row a.deletelink, a.deletelink:link, a.deletelink:visited {
    height: 40px; display: inline-flex; align-items: center; padding: 0 16px; border-radius: var(--raio-p);
    background: #fff !important; color: var(--erro) !important; border: 1px solid #E8B4B0; font-weight: 600; text-decoration: none;
}
.submit-row a.deletelink:hover { background: var(--erro-fundo) !important; }
.submit-row a.closelink { height: 40px; display: inline-flex; align-items: center; padding: 0 16px; border-radius: var(--raio-p); border: 1px solid var(--borda-forte); color: var(--azul) !important; background: #fff; }
.submit-row .aviso-nao-salvo { color: var(--aviso); font-size: .85rem; font-weight: 600; }

/* ferramentas do topo (Gerar senha, Historico...) */
.object-tools { margin: -4px 0 18px; padding: 0; float: right; display: flex; gap: 8px; flex-wrap: wrap; }
.object-tools li { margin: 0; height: auto; }
.object-tools a, .object-tools button, .object-tools a:link, .object-tools a:visited {
    display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 14px; border-radius: var(--raio-p);
    background: #fff; color: var(--azul) !important; border: 1px solid var(--borda-forte); font: inherit; font-size: .85rem; font-weight: 600;
    text-transform: none; letter-spacing: 0; cursor: pointer; float: none; text-decoration: none;
}
.object-tools a:hover, .object-tools button:hover { background: var(--darkened-bg); border-color: var(--azul-apoio); }
.object-tools a.addlink { background: var(--azul) !important; color: #fff !important; border-color: var(--azul); }
.object-tools a.addlink::before { content: "+"; font-size: 1.05rem; font-weight: 600; }
.object-tools a.addlink { background-image: none !important; padding-left: 14px !important; }
.object-tools .ferramenta-perigo, .object-tools .ferramenta-perigo:hover { color: var(--erro) !important; border-color: #E8B4B0; background: #fff; }
.object-tools .ferramenta-perigo:hover { background: var(--erro-fundo); }
.object-tools .ferramenta-ok, .object-tools .ferramenta-ok:hover { color: var(--ok) !important; border-color: #BFDFCB; background: #fff; }
.object-tools form { display: inline; margin: 0; }

/* ---------- listas ---------- */
#changelist { display: flex; gap: 20px; align-items: flex-start; }
#changelist .changelist-form-container { flex: 1; min-width: 0; }
#changelist #toolbar { background: var(--superficie); border: 1px solid var(--borda); border-radius: var(--raio) var(--raio) 0 0; padding: 12px 16px; margin: 0; border-bottom: 0; }
#changelist #toolbar form input[type=text] { min-height: 38px; width: 320px; max-width: 100%; }
#changelist-search { display: flex; align-items: center; gap: 8px; }
#changelist-search label img { opacity: .5; }
#changelist .actions { background: var(--darkened-bg); border: 1px solid var(--borda); border-bottom: 0; padding: 10px 16px; margin: 0; color: var(--texto-apoio); }
#changelist .actions select { min-height: 36px; }
#changelist .results, #changelist .paginator { background: var(--superficie); border: 1px solid var(--borda); }
#changelist .results { border-radius: 0; overflow-x: auto; }
#changelist .paginator { border-top: 0; border-radius: 0 0 var(--raio) var(--raio); padding: 12px 16px; color: var(--texto-apoio); font-size: .85rem; margin: 0; }
#result_list { width: 100%; border-collapse: collapse; }
#result_list thead th {
    background: #F7F8FA; color: var(--texto-apoio); font-size: .74rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
    padding: 0; border-bottom: 1px solid var(--borda); border-top: 0;
}
#result_list thead th .text, #result_list thead th .text a, #result_list thead th > div.text > span { padding: 11px 14px; display: block; color: var(--texto-apoio); }
#result_list thead th.sorted { background: #EEF1F6; }
#result_list tbody td, #result_list tbody th { padding: 12px 14px; border-bottom: 1px solid var(--borda); vertical-align: middle; font-size: .9rem; }
#result_list tbody tr:hover td, #result_list tbody tr:hover th { background: #F9FAFC; }
#result_list tbody tr.selected td, #result_list tbody tr.selected th { background: var(--dourado-suave); }
#result_list tbody th a { font-weight: 650; color: var(--azul); }
#result_list .action-checkbox, #result_list .action-checkbox-column { width: 36px; }
#changelist-filter {
    flex: 0 0 240px; position: sticky; top: 16px; order: 2; background: var(--superficie); border: 1px solid var(--borda);
    border-radius: var(--raio); box-shadow: var(--sombra); padding: 0 0 8px; margin: 0;
}
#changelist-filter h2 { background: transparent; color: var(--azul); font-size: .95rem; font-weight: 650; text-transform: none; letter-spacing: 0; padding: 14px 16px 10px; border-bottom: 1px solid var(--borda); margin: 0; }
#changelist-filter h3, #changelist-filter summary { color: var(--texto-apoio); font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 12px 16px 4px; margin: 0; }
#changelist-filter ul { padding: 0 8px; margin: 0; border: 0; }
#changelist-filter li { margin: 0; }
#changelist-filter li a { display: block; padding: 6px 8px; border-radius: var(--raio-p); color: var(--texto) !important; font-size: .87rem; }
#changelist-filter li a:hover { background: var(--darkened-bg); }
#changelist-filter li.selected a { background: #F2F4F9; color: var(--azul) !important; font-weight: 650; box-shadow: inset 3px 0 0 var(--dourado); border-left: 0; padding-left: 8px; margin-left: 0; }
#changelist-filter #changelist-filter-extra-actions, #changelist-filter-clear { padding: 8px 16px; }
.pilula { display: inline-block; margin: 2px 4px 2px 0; padding: 2px 9px; border-radius: 999px; background: #EEF1F6; color: var(--azul-medio); font-size: .76rem; font-weight: 600; white-space: nowrap; }
.etiqueta { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: .78rem; font-weight: 600; white-space: nowrap; }
.etiqueta-ativo { background: var(--ok-fundo); color: var(--ok); }
.etiqueta-provisoria { background: var(--dourado-suave); color: #7A4800; }
.etiqueta-desligado { background: #F1F2F4; color: #5B6170; }
img[src$="icon-yes.svg"], img[src$="icon-no.svg"] { width: 16px; height: 16px; }

/* ---------- inicio (painel) ---------- */
.painel-intro { margin: 0 0 22px; color: var(--texto-apoio); max-width: 760px; }
.painel-grupo { margin: 0 0 26px; }
.painel-grupo > h2 { font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--texto-apoio); margin: 0 0 10px; }
.painel-cartoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 14px; }
.painel-cartao {
    display: flex; flex-direction: column; gap: 6px; padding: 18px 18px 16px; background: var(--superficie); border: 1px solid var(--borda);
    border-radius: var(--raio); box-shadow: var(--sombra); text-decoration: none !important; color: var(--texto) !important;
    transition: border-color .12s, box-shadow .12s, transform .12s;
}
.painel-cartao:hover { border-color: var(--azul-apoio); box-shadow: 0 6px 18px rgba(16, 31, 56, .1); transform: translateY(-1px); }
.painel-cartao strong { color: var(--azul); font-size: 1rem; font-weight: 650; }
.painel-cartao span { color: var(--texto-apoio); font-size: .85rem; line-height: 1.45; }
.painel-cartao .painel-acoes { margin-top: auto; padding-top: 10px; display: flex; gap: 14px; font-size: .85rem; font-weight: 600; color: var(--azul-medio); }
#recent-actions-module { display: none; }

/* ---------- login ---------- */
body.login { background: var(--fundo); }
body.login #container { max-width: 420px; margin: 8vh auto 0; border-radius: var(--raio); overflow: hidden; box-shadow: 0 12px 40px rgba(16, 31, 56, .14); border: 1px solid var(--borda); background: #fff; }
body.login #header { height: auto; padding: 22px 26px; justify-content: center; }
body.login #content { padding: 26px; }
body.login .form-row { padding: 0 0 16px; border: 0; }
body.login .form-row label { display: block; font-weight: 600; margin-bottom: 6px; }
body.login .form-row input { width: 100%; }
body.login .submit-row { position: static; box-shadow: none; border: 0; padding: 4px 0 0; background: none; }
body.login .submit-row input { width: 100%; }

/* ---------- telas proprias (cores, senha, usuarios) ---------- */
.caixa-senha { font: 600 1.6rem/1.2 Consolas, "Courier New", monospace; letter-spacing: .08em; padding: 14px 18px; border: 2px dashed var(--dourado); border-radius: 8px; display: inline-block; background: #FFFBF3; color: var(--azul); user-select: all; }
.amostra-cor { display: inline-block; margin: 2px 6px 2px 0; padding: 2px 10px; border-radius: 4px; color: var(--azul); font-weight: 700; font-size: .8rem; box-shadow: inset 0 0 0 1px rgba(21, 37, 74, .14); }
.seletor-cor .paleta { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; max-width: 860px; }
.seletor-cor .amostra { position: relative; cursor: pointer; }
.seletor-cor .amostra input[type=radio] { position: absolute; opacity: 0; }
.seletor-cor .amostra-cartao { display: flex; flex-direction: column; gap: 4px; padding: 10px; border: 2px solid var(--borda); border-radius: 8px; background: color-mix(in srgb, var(--cor, #fff) 14%, #fff); }
.seletor-cor .amostra-etiqueta { padding: 4px 8px; border-radius: 4px; background: var(--cor); color: var(--azul); font-weight: 800; font-size: .8rem; box-shadow: inset 0 0 0 1px rgba(21, 37, 74, .14); }
.seletor-cor .amostra small { color: #5B6170; font-size: .72rem; }
.seletor-cor .amostra:hover .amostra-cartao { border-color: var(--azul-apoio); }
.seletor-cor .amostra input:checked + .amostra-cartao { border-color: var(--azul); box-shadow: 0 0 0 3px var(--dourado); }
.seletor-cor .amostra input:focus-visible + .amostra-cartao { outline: 3px solid var(--dourado); outline-offset: 2px; }
.seletor-cor .ocupada { cursor: not-allowed; }
.seletor-cor .ocupada .amostra-cartao { opacity: .45; background-image: repeating-linear-gradient(135deg, transparent 0 6px, rgba(21, 37, 74, .08) 6px 8px); }
.seletor-cor .amostra-outra .amostra-etiqueta { background: #fff; }
.seletor-cor .amostra-outra input[type=color] { width: 100%; height: 24px; padding: 0; border: 0; background: none; cursor: pointer; }
.seletor-cor .em-uso { margin-top: 10px; }
.seletor-cor .gerar-cor { margin: 12px 0 4px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.previa-cor { display: flex; align-items: center; gap: 18px; margin: 16px 0; }
.previa-card { width: 220px; padding: 10px 12px; border-left: 4px solid color-mix(in srgb, var(--cor) 78%, #15254A); border-radius: 6px; background: color-mix(in srgb, var(--cor) 16%, #fff); box-shadow: 0 1px 3px rgba(16, 31, 56, .12); display: flex; flex-direction: column; gap: 6px; }
.previa-card .amostra-etiqueta { align-self: flex-start; padding: 2px 8px; border-radius: 4px; background: var(--cor); color: var(--azul); font-weight: 800; font-size: .8rem; box-shadow: inset 0 0 0 1px rgba(21, 37, 74, .14); }
.previa-card small { color: var(--azul); }
.previa-dados { display: flex; flex-direction: column; gap: 4px; }
.previa-dados strong { font: 600 1.2rem Consolas, monospace; }
.bloco-instrucao { max-width: 760px; }
.bloco-instrucao textarea { width: 100%; max-width: 100%; box-sizing: border-box; font-family: inherit; }

/* ---------- telas menores ---------- */
@media (max-width: 1024px) {
    #content { padding: 18px 16px 24px; }
    #changelist { flex-direction: column; }
    #changelist-filter { position: static; flex: none; width: 100%; order: 0; }
    .object-tools { float: none; margin: 0 0 14px; }
}
@media (max-width: 767px) {
    #header { height: auto; padding: 10px 14px; flex-wrap: wrap; }
    #site-name img { height: 22px; }
    #user-tools .usuario { display: none; }
    .form-row { padding: 14px 16px; }
    .submit-row { padding: 10px; }
    .submit-row input { flex: 1 1 100%; }
    .submit-row a.deletelink { margin-left: 0; }
}

/* ---------- ajustes finos sobre o CSS do Django ---------- */
fieldset.module.collapse details > summary, :not(.inline-related) .collapse summary {
    background: var(--superficie) !important; border: 0 !important; padding: 0 !important; color: var(--azul) !important; font-size: inherit;
}
fieldset.module.collapse details > summary .fieldset-heading { display: flex !important; padding: 16px 22px 14px !important; color: var(--azul) !important; }
.dashboard #content { width: auto; max-width: 1180px; }
.dashboard #content-main { width: auto; float: none; }
form .aligned .opcoes-alcance label, form .aligned .lista-perfis label { text-align: left !important; justify-content: flex-start; }
#content-main form:has(#confirmar-mudanca) .errornote, #content-main form:has(#confirmar-mudanca) ul.errorlist.nonfield { display: none; }
.field-groups .related-widget-wrapper-link, .field-groups .related-widget-wrapper > a { display: none !important; }
.field-groups .related-widget-wrapper { display: block; }
#result_list tbody th a, #result_list tbody th a:link { text-decoration: none; }
#result_list tbody th a:hover strong { text-decoration: underline; }
#result_list tbody th small, #result_list tbody th .texto-apoio { font-weight: 400; color: var(--texto-apoio); }
body.login .site-sub { display: none; }
body.login #site-name a { font-size: 1.1rem; }
body.login .submit-row input, body.login input[type=submit] { background: var(--azul) !important; border-color: var(--azul) !important; color: #fff !important; }
body.login .errornote { margin: 0 0 16px; }
.selo-admin { display: inline-block; padding: 2px 10px; border-radius: 999px; background: #EEF1F6; color: var(--azul); font-size: .78rem; font-weight: 700; }
@media (max-width: 767px) {
    .submit-row { position: static; flex-direction: column; align-items: stretch; }
    .submit-row input, .submit-row a.deletelink, .submit-row a.closelink { width: 100%; justify-content: center; }
    #user-tools { width: 100%; justify-content: flex-end; flex-wrap: wrap; }
    #site-name .site-sub { display: none; }
}
#content { max-width: 1360px; }
#changelist-filter li a, #changelist-filter li a:link { text-decoration: none; }
#changelist-filter-extra-actions a, #changelist-filter .viewlink, #changelist-filter .hidelink { font-size: .78rem; text-transform: none; letter-spacing: 0; text-decoration: none; }
#changelist-filter h3 { text-transform: uppercase; }
#result_list tbody td, #result_list tbody th { padding: 11px 12px; }
#nav-sidebar { flex: 0 0 236px; left: -237px; margin-left: -237px; }
.main.shifted > #nav-sidebar { margin-left: 0; }
.main.shifted > #nav-sidebar + .content { max-width: calc(100% - 260px); }
@media (max-width: 767px) { .main.shifted > #nav-sidebar + .content { max-width: 100%; } }
#changelist-filter { flex: 0 0 210px; }
form .aligned .opcoes-alcance label, form .aligned .lista-perfis label, .opcoes-alcance label { justify-content: flex-start !important; text-align: left !important; }
@media (max-width: 767px) {
    .submit-row input, .submit-row a.deletelink, .submit-row a.closelink { height: 44px !important; min-height: 44px; font-size: .95rem; }
    .opcoes-alcance label { padding: 12px !important; }
}

/* ---------- linhas com varios campos (Data + Horario, Paciente + Contato...) ---------- */
.aligned .form-row.form-multiline, .form-row.form-multiline {
    display: grid !important; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px 24px; align-items: start;
    flex-direction: initial;
}
.form-row.form-multiline > div, .form-multiline .fieldBox {
    float: none !important; margin: 0 !important; padding: 0 !important; width: auto !important; min-width: 0;
    display: flex !important; flex-direction: column; align-items: stretch; gap: 6px; border: 0;
}
.form-multiline .fieldBox > label, .form-multiline .fieldBox > label.inline {
    padding: 0 !important; margin: 0 !important; width: auto !important; float: none !important; order: -1;
}
.form-multiline .fieldBox input:not([type=checkbox]):not([type=radio]), .form-multiline .fieldBox select, .form-multiline .fieldBox textarea,
.form-multiline .fieldBox .vTextField, .form-multiline .fieldBox .vDateField {
    width: 100% !important; max-width: 100% !important; box-sizing: border-box; margin: 0;
}
.form-multiline .fieldBox .readonly { padding: 9px 0 0 !important; min-height: 40px; }
.form-multiline .fieldBox.errors { background: transparent; }
.form-multiline .fieldBox.checkbox-row { align-self: end; justify-content: center; min-height: 40px; padding-bottom: 2px !important; }
.form-multiline .fieldBox.checkbox-row .checkbox { display: flex; align-items: center; gap: 10px; }

/* campo de data: entrada + atalhos "Hoje | calendario" embaixo, sem empurrar o vizinho */
p.date, p.time, p.datetime { margin: 0 !important; padding: 0; display: flex; flex-direction: column; gap: 6px; width: 100%; }
.vDateField, .vTimeField { width: 100% !important; max-width: 220px; min-width: 0; }
.form-multiline .vDateField { max-width: 100% !important; }
.datetimeshortcuts { display: inline-flex; align-items: center; gap: 8px; margin: 0 !important; padding: 0; font-size: .8rem; color: var(--texto-apoio); white-space: nowrap; }
.datetimeshortcuts a { color: var(--azul-medio) !important; font-weight: 600; text-decoration: none; }
.datetimeshortcuts a:hover { text-decoration: underline; }
.datetimeshortcuts .date-icon, .datetimeshortcuts .clock-icon { width: 18px; height: 18px; vertical-align: middle; }
.timezonewarning { display: none; }  /* fuso do servidor = fuso da empresa */

/* numero de telefone sem as setas do campo numerico */
input[type=number]::-webkit-outer-spin-button, input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
input[type=number] { -moz-appearance: textfield; appearance: textfield; }

@media (max-width: 767px) {
    .aligned .form-row.form-multiline, .form-row.form-multiline { grid-template-columns: 1fr; gap: 14px; }
}
/* caixa de marcar sozinha numa linha de varios campos: caixa antes do texto, alinhada com os campos ao lado */
.form-multiline .fieldBox:has(> input[type=checkbox]) {
    flex-direction: row-reverse !important; justify-content: flex-end; align-items: center; align-self: end; min-height: 40px; gap: 10px;
}
.form-multiline .fieldBox:has(> input[type=checkbox]) > label { order: 0; font-weight: 600; cursor: pointer; }
.aligned .form-row textarea, .aligned .form-row .vLargeTextField { width: 100%; max-width: 100%; }
.datetimeshortcuts { align-self: flex-start; justify-content: flex-start; }
.form-multiline .fieldBox .checkbox label { order: 0 !important; }
p.date { align-items: flex-start; text-align: left; }
.datetimeshortcuts { margin-left: 0 !important; text-align: left; }
@media (max-width: 1100px) {
    #header { flex-direction: row !important; align-items: center !important; height: auto; min-height: 60px; padding: 8px 16px; }
    #branding { margin: 0 !important; }
    #user-tools { margin: 0 !important; text-align: right; }
    #user-tools .usuario { display: none; }
}
.aligned .datetimeshortcuts { align-self: flex-start !important; margin-left: 0 !important; }
#user-tools { display: flex !important; align-items: center !important; line-height: 1.2 !important; }
#user-tools a, #logout-form button { display: inline-flex !important; line-height: 1.2 !important; }
#logout-form { display: inline-flex; align-items: center; margin: 0; }
form .aligned .lista-perfis label, .lista-perfis label { height: auto !important; align-content: start; grid-auto-rows: min-content; }
.lista-perfis { align-items: stretch; margin-bottom: 4px !important; }
.lista-perfis > div { display: flex; }
.lista-perfis > div > label { flex: 1; }
.field-groups .help { margin-top: 8px !important; }

/* ---------- cabecalho (versao final) ---------- */
#header { height: 72px !important; min-height: 72px; padding: 0 28px !important; border-bottom: 3px solid var(--dourado); box-shadow: 0 2px 10px rgba(16, 31, 56, .18); }
#site-name a { gap: 18px; }
#site-name img { height: 34px; padding-right: 18px; border-right: 1px solid rgba(255, 255, 255, .28); }
.site-titulo { display: flex; flex-direction: column; line-height: 1.2; }
.site-titulo b { font-size: 1.12rem; font-weight: 650; color: #fff; letter-spacing: .01em; }
#site-name .site-titulo .site-sub { display: block; font-size: .78rem; font-weight: 500; color: var(--dourado); letter-spacing: .04em; text-transform: uppercase; }
#user-tools { gap: 12px !important; }
#user-tools .botao-agenda { height: 38px; padding: 0 16px; border: 1px solid rgba(255, 255, 255, .4) !important; font-weight: 600; }
#user-tools .botao-agenda:hover { background: rgba(255, 255, 255, .12); }
.menu-usuario { position: relative; }
.menu-usuario > summary {
    list-style: none; display: flex; align-items: center; gap: 10px; padding: 5px 10px 5px 5px; border-radius: 999px; cursor: pointer;
    color: #fff; border: 1px solid transparent;
}
.menu-usuario > summary::-webkit-details-marker { display: none; }
.menu-usuario > summary::after { content: ""; width: 7px; height: 7px; border-right: 2px solid #C9D1E3; border-bottom: 2px solid #C9D1E3; transform: rotate(45deg) translateY(-2px); margin-left: 2px; }
.menu-usuario > summary:hover, .menu-usuario[open] > summary { background: rgba(255, 255, 255, .1); }
.menu-usuario .avatar {
    width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; flex: none;
    background: var(--dourado); color: var(--azul); font-weight: 800; font-size: .85rem; text-transform: uppercase;
}
#user-tools .menu-usuario .usuario { display: flex; flex-direction: column; text-align: left; margin: 0; line-height: 1.2; }
#user-tools .menu-usuario .usuario strong { color: #fff; font-size: .88rem; }
#user-tools .menu-usuario .usuario small { color: #C9D1E3; font-size: .74rem; }
.menu-usuario-lista {
    position: absolute; right: 0; top: calc(100% + 8px); z-index: 50; min-width: 220px; padding: 6px; background: #fff;
    border: 1px solid var(--borda); border-radius: var(--raio); box-shadow: 0 12px 32px rgba(16, 31, 56, .2); display: flex; flex-direction: column;
}
#user-tools .menu-usuario-lista a, #user-tools .menu-usuario-lista button {
    color: var(--texto) !important; justify-content: flex-start; width: 100%; height: 38px; border-radius: var(--raio-p); font-weight: 500;
}
#user-tools .menu-usuario-lista a:hover, #user-tools .menu-usuario-lista button:hover { background: var(--darkened-bg); }
#user-tools .menu-usuario-lista form { display: block; border-top: 1px solid var(--borda); margin-top: 4px; padding-top: 4px; }
#user-tools .menu-usuario-lista button { color: var(--erro) !important; }

/* ---------- rodape ---------- */
#footer { margin-top: auto; padding: 0; }
.rodape-admin { background: #fff; border-top: 1px solid var(--borda); margin-top: 32px; }
.rodape-admin-interno {
    max-width: 1360px; margin: 0 auto; padding: 26px 32px; display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 28px; align-items: center;
}
.rodape-admin-marca { display: flex; align-items: center; gap: 18px; }
.rodape-admin-marca img { height: 38px; width: auto; }
.rodape-admin-divisor { width: 1px; height: 38px; background: var(--borda-forte); }
.rodape-admin-sistema { display: flex; flex-direction: column; line-height: 1.3; color: var(--texto-apoio); font-size: .85rem; }
.rodape-admin-sistema b { color: var(--azul); font-size: .98rem; }
.rodape-admin-ti, .rodape-admin-suporte { display: flex; flex-direction: column; gap: 2px; line-height: 1.35; font-size: .84rem; color: var(--texto-apoio); }
.rodape-admin-ti { padding-left: 16px; border-left: 3px solid var(--dourado); }
.rodape-admin-ti b { color: var(--azul); font-size: .95rem; }
.rodape-admin-suporte { align-items: flex-end; text-align: right; }
.rodape-admin-suporte a, .rodape-admin-suporte a:link { color: var(--azul) !important; font-weight: 700; font-size: .95rem; text-decoration: none; }
.rodape-admin-suporte a:hover { text-decoration: underline; }
.rodape-admin-rotulo { font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--azul-apoio); }
.rodape-admin-base { background: var(--azul); color: #C9D1E3; font-size: .78rem; }
.rodape-admin-base-interno { max-width: 1360px; margin: 0 auto; padding: 10px 32px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
body.login #footer .rodape-admin-interno { display: none; }
body.login #footer .rodape-admin { margin-top: 0; background: transparent; border: 0; }
body.login #footer .rodape-admin-base { background: transparent; color: var(--texto-apoio); }
body.login #footer .rodape-admin-base-interno { justify-content: center; text-align: center; flex-direction: column; align-items: center; gap: 2px; }
body.login .site-titulo .site-sub { display: block !important; }
@media (max-width: 1100px) {
    #header { height: auto !important; padding: 10px 18px !important; }
    #user-tools .menu-usuario .usuario { display: none; }
    .rodape-admin-interno { grid-template-columns: 1fr 1fr; }
    .rodape-admin-suporte { align-items: flex-start; text-align: left; }
}
@media (max-width: 767px) {
    #site-name img { height: 26px; padding-right: 12px; }
    .site-titulo b { font-size: .98rem; }
    #site-name .site-titulo .site-sub { font-size: .68rem; }
    #user-tools .botao-agenda { display: none !important; }
    .rodape-admin-interno { grid-template-columns: 1fr; padding: 20px 16px; gap: 18px; }
    .rodape-admin-base-interno { padding: 10px 16px; }
}
@media (max-width: 767px) {
    #header { flex-wrap: nowrap !important; flex-direction: row !important; justify-content: space-between !important; padding: 10px 12px !important; min-height: 64px; }
    #user-tools { width: auto !important; flex-wrap: nowrap !important; }
    .menu-usuario > summary { padding: 3px; }
    .menu-usuario > summary::after { display: none; }
    .menu-usuario .avatar { width: 34px; height: 34px; }
}
@media (max-width: 1100px) { #header { justify-content: space-between !important; } #user-tools { margin-left: auto !important; } }

/* ---------- refinamento (auditoria 1536 px) ---------- */
/* campos e botoes: altura total = altura definida (o Django usa content-box e somava o enchimento: 40 + 16 + 2 = 58 px) */
input, select, textarea, button, .button, a.button { box-sizing: border-box; }
input[type=text], input[type=password], input[type=email], input[type=url], input[type=number], input[type=tel], input[type=search],
input[type=date], input[type=time], select, .vTextField { height: 40px; min-height: 40px; padding: 0 12px; line-height: 38px; }
select[multiple] { height: auto; line-height: normal; padding: 6px 8px; }
textarea { height: auto; min-height: 96px; padding: 10px 12px; line-height: 1.45; max-width: 900px !important; }
#result_list input[type=text], #result_list input[type=number], #result_list select { height: 34px; min-height: 34px; line-height: 32px; width: 90px; }

/* barra de acoes e busca das listas: mesma altura e espaco entre campo e botao */
#changelist .actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
#changelist .actions label { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
#changelist .actions select { height: 38px; min-height: 38px; line-height: 36px; margin: 0; }
#changelist .actions button, #changelist .actions .button {
    height: 38px !important; min-height: 38px; line-height: 1 !important; font-size: .88rem !important; padding: 0 16px !important; margin: 0 !important;
}
#changelist .actions .action-counter, #changelist .actions .all, #changelist .actions .question, #changelist .actions .clear { margin: 0; color: var(--texto-apoio); font-size: .85rem; }
#changelist-search > div { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
#changelist-search { gap: 10px; }
#changelist #toolbar form input[type=text], #changelist-search input[type=text] { height: 38px; min-height: 38px; line-height: 36px; margin: 0; }
#changelist-search input[type=submit] { height: 38px !important; min-height: 38px; margin: 0 !important; padding: 0 18px !important; }
#changelist-search .small.quiet { margin: 0; color: var(--texto-apoio); font-size: .85rem; }

/* menu lateral: item e "+" na mesma linha, com espaco e destaque juntos */
#nav-sidebar .module table { width: 100%; border-collapse: separate; border-spacing: 0 2px; }
#nav-sidebar .module tr { display: flex; align-items: center; gap: 6px; border-radius: var(--raio-p); }
#nav-sidebar .module th { flex: 1; min-width: 0; }
#nav-sidebar .module td { flex: 0 0 30px; padding: 0 !important; text-align: center; }
#nav-sidebar .module th a { padding: 8px 10px; }
#nav-sidebar .module tr:hover { background: #fff; box-shadow: var(--sombra); }
#nav-sidebar .module tr:hover th a { background: transparent; }
#nav-sidebar .current-model { background: #fff; box-shadow: inset 3px 0 0 var(--dourado), var(--sombra); }
#nav-sidebar .current-model th a { background: transparent; box-shadow: none; }
#nav-sidebar .addlink { width: 28px; height: 28px; border-radius: var(--raio-p); }
#nav-sidebar .addlink:hover { background: var(--darkened-bg) !important; }
#nav-sidebar .addlink::before { color: var(--azul-apoio); }

/* listas largas: a tabela rola dentro do cartao, a pagina nao */
#changelist .changelist-form-container { min-width: 0; overflow: hidden; }
#changelist .results { overflow-x: auto; }
/* conteudo ocupa so o que sobra ao lado do menu (sem rolagem lateral em 1366 px) */
.main { display: flex; }
.main > .content, .main.shifted > #nav-sidebar + .content { flex: 1 1 auto; min-width: 0; max-width: none !important; }
/* linhas com varios campos: colunas de ate 420 px (campos nao esticam em telas grandes) */
.aligned .form-row.form-multiline, .form-row.form-multiline { grid-template-columns: repeat(auto-fill, minmax(230px, 420px)); }

/* ---------- menu lateral em lista (templates/admin/nav_sidebar.html) ---------- */
#nav-sidebar { padding: 22px 14px 24px !important; }
#nav-sidebar .menu-grupo + .menu-grupo { margin-top: 26px; }
#nav-sidebar .menu-titulo {
    margin: 0 0 8px; padding: 0 12px; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--texto-apoio);
}
#nav-sidebar .menu-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
#nav-sidebar .menu-item {
    position: relative; display: flex; align-items: center; gap: 4px; min-height: 40px; padding: 0 6px 0 0; margin: 0;
    border-radius: 8px; background: transparent; transition: background .12s, box-shadow .12s;
}
#nav-sidebar .menu-item:hover { background: #fff; box-shadow: var(--sombra); }
#nav-sidebar .menu-link, #nav-sidebar .menu-link:link, #nav-sidebar .menu-link:visited {
    flex: 1; min-width: 0; display: block; padding: 10px 12px; color: var(--texto) !important; font-size: .9rem; font-weight: 500;
    line-height: 1.25; text-decoration: none; border-radius: 8px;
}
#nav-sidebar .menu-item.ativo { background: #fff; box-shadow: var(--sombra); }
#nav-sidebar .menu-item.ativo::before {
    content: ""; position: absolute; left: 0; top: 9px; bottom: 9px; width: 3px; border-radius: 0 3px 3px 0; background: var(--dourado);
}
#nav-sidebar .menu-item.ativo .menu-link { color: var(--azul) !important; font-weight: 650; }
#nav-sidebar .menu-add, #nav-sidebar .menu-add:link, #nav-sidebar .menu-add:visited {
    flex: 0 0 28px; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 6px;
    color: var(--azul-apoio) !important; font-size: 1.15rem; font-weight: 500; line-height: 1; text-decoration: none; opacity: .55;
    transition: opacity .12s, background .12s;
}
#nav-sidebar .menu-item:hover .menu-add, #nav-sidebar .menu-add:focus-visible { opacity: 1; }
#nav-sidebar .menu-add:hover { background: var(--darkened-bg); color: var(--azul) !important; }
#nav-sidebar .menu-link:focus-visible, #nav-sidebar .menu-add:focus-visible { box-shadow: var(--foco); outline: none; }

/* ---------- padroes finais (pente fino) ---------- */
/* atalhos tecnicos do Django ao lado das listas (editar/adicionar/ver o item relacionado): confundem e levam para fora do formulario */
.related-widget-wrapper-link, .related-widget-wrapper > a.related-lookup { display: none !important; }
.related-widget-wrapper { display: block; }
.related-widget-wrapper select { width: 100%; max-width: 420px; }
/* links com cara de botao: sem sublinhado */
a.button, a.button:link, a.button:visited, .submit-row a, .object-tools a { text-decoration: none !important; }
/* opcoes em lista (ex.: forma de senha no cadastro): mesmo padrao de cartoes */
div.radiolist { display: grid; gap: 8px; max-width: 720px; margin: 0; padding: 0; }
div.radiolist > div { margin: 0; }
form .aligned div.radiolist label, div.radiolist label {
    display: flex !important; align-items: center; gap: 12px; padding: 11px 14px !important; border: 1px solid var(--borda-forte);
    border-radius: var(--raio-p); background: #fff; font-weight: 500 !important; cursor: pointer; justify-content: flex-start !important;
}
div.radiolist label:hover { border-color: var(--azul-apoio); background: var(--darkened-bg); }
div.radiolist label:has(input:checked) { border-color: var(--azul); background: #F2F4F9; box-shadow: inset 3px 0 0 var(--dourado); color: var(--azul); font-weight: 600 !important; }
/* detalhes do historico */
pre.detalhes-json { margin: 0; padding: 12px 14px; background: var(--darkened-bg); border: 1px solid var(--borda); border-radius: var(--raio-p);
    font: .82rem/1.5 Consolas, "Courier New", monospace; white-space: pre-wrap; word-break: break-word; max-width: 900px; }
/* rotulo de campo solto (telas proprias, ex.: "Nome da cor") */
#content-main form > p label, #content-main form > div > label:not(.confirmacao) { font-weight: 600; }
/* lista de regras de senha do Django: legivel */
.aligned .help ul, .aligned .help li { margin: 0; padding: 0; list-style: none; font-size: .82rem; }
.model-registroauditoria .object-tools .historylink { display: none; }  /* registro de historico nao tem historico proprio */
