/* Bootstrap owns the base; these rules adapt SGC/Django's server-rendered UI.
 * This stylesheet is loaded only by admin/base.html, after widget media. */
@import url('../../portal/css/base/variables.css');
@import url('../../portal/css/components/timeline.css');
@import url('../../portal/css/components/status.css');

:root {
    /* Share the original palette with the portal instead of redefining it. */
    --sgc-primary: var(--primary);
    --sgc-surface: var(--white);
    --sgc-background: var(--white);
    --sgc-border: var(--border-color);
    --sgc-muted: var(--text-muted);
    --sgc-action-primary: #2c3e50;
    --sgc-action-danger: #c0392b;
    --sgc-radius: .75rem;
    --sgc-menu-width: 17.5rem;
    --sgc-environment-width: 2.25rem;
    --sgc-nav-bg: var(--gray-600);
    --sgc-nav-text: var(--white);
    --sgc-control-border: var(--gray-500);
    --sgc-radius-control: .375rem;
    --font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
    --bs-font-sans-serif: var(--font-family);
    --bs-primary-base: var(--primary);
    --bs-primary-bg: var(--primary);
    --bs-primary-fg: var(--primary);
    --bs-primary-border: var(--primary);
    --bs-primary-contrast: var(--white);
    --bs-success-base: var(--success);
    --bs-success-bg: var(--success);
    --bs-success-fg: var(--success);
    --bs-success-border: var(--success);
    --bs-success-contrast: var(--white);
    --bs-danger-base: var(--danger);
    --bs-danger-bg: var(--danger);
    --bs-danger-fg: var(--danger);
    --bs-danger-border: var(--danger);
    --body-fg: var(--text-color); /* Django widget CSS uses these variables. */
    --body-bg: var(--sgc-surface);
    --body-quiet-color: var(--sgc-muted);
    --body-loud-color: var(--text-color);
    --link-fg: var(--sgc-primary);
    --link-hover-color: #215b8c;
    --hairline-color: var(--sgc-border);
    --darkened-bg: #f1f5f9;
    --selected-bg: #e9f1fa;
    --selected-row: #e9f1fa;
    --error-fg: var(--danger);
    --button-bg: var(--sgc-primary);
    --button-fg: #fff;
    --button-hover-bg: #215b8c;
}
.sgc-admin { margin: 0; background: var(--sgc-background); color: var(--text-color); font: .9375rem/1.55 var(--font-family); }
.sgc-admin [hidden], .sgc-admin .hidden, .sgc-admin .oculto, .sgc-admin .empty-form { display: none !important; }
.sgc-admin *, .sgc-admin *::before, .sgc-admin *::after { box-sizing: border-box; }
.sgc-admin a { color: var(--sgc-primary); text-decoration: none; }
.sgc-admin a:hover { text-decoration: underline; }
.sgc-admin :focus-visible { outline: 3px solid #377dbb; outline-offset: 3px; }
.sgc-admin h1, .sgc-admin h2, .sgc-admin h3, .sgc-admin h4 { color: var(--primary); font-weight: 650; line-height: 1.3; }
.sgc-admin h1 { font-size: clamp(1.4rem, 2vw, 1.85rem); margin: 0 0 1.5rem; }
.sgc-admin h2 { font-size: 1.15rem; }
.sgc-admin h3 { font-size: 1rem; }
.sgc-admin img { max-width: 100%; }
.sgc-admin .container-fluid { width: 100%; padding-inline: clamp(1rem, 3vw, 2.25rem); }
.sgc-admin #admin-main { min-width: 0; min-height: 100vh; }
.sgc-admin #user-tools { padding-block: .8rem; background: var(--gray-100); border-bottom: 1px solid var(--sgc-border); }
.sgc-admin #user-tools > div { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem 1.25rem; }
.sgc-admin #user-tools p { margin: 0; }
.sgc-admin #user-tools ul { display: flex; flex-wrap: wrap; gap: 1rem; list-style: none; margin: 0 0 0 auto; padding: 0; }
.sgc-admin #user-tools a { font-size: .85rem; }
.sgc-admin #admin-menu-toggle { display: inline-flex; align-items: center; gap: .5rem; }
.sgc-admin #admin-menu-toggle kbd { color: var(--sgc-muted); background: #edf1f6; font-size: .65rem; }
.sgc-admin #admin-main > header { background: white; padding-block: 1.2rem; }
.sgc-admin #site-name { margin: 0; font-size: 1.2rem; }
.sgc-admin #branding { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem; }
.sgc-admin.has-environment-banner { padding-inline-end: var(--sgc-environment-width); }
.sgc-admin .environment-banner { position: fixed; inset: 0 0 0 auto; height: 100dvh; width: var(--sgc-environment-width); writing-mode: vertical-rl; padding: 0; border: 0; border-left: 1px solid rgba(0, 0, 0, .18); border-radius: 0; z-index: 9999; }
.sgc-admin .environment-text { font-size: .6875rem; font-weight: 800; letter-spacing: .12em; }
.sgc-admin .environment-homolog .environment-text, .sgc-admin .environment-homologacao .environment-text, .sgc-admin .environment-staging .environment-text, .sgc-admin .environment-dev .environment-text, .sgc-admin .environment-development .environment-text { color: var(--text-color); }
.sgc-admin #site-name > a > span { display: none; }
.sgc-admin #view:has(.toolbar_actions) { padding-block: 0 1rem; background: white; border-bottom: 1px solid var(--sgc-border); }
.sgc-admin .admin-edital-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .85rem; width: 100%; padding: 1rem; background: var(--primary); border-radius: .6rem; box-shadow: 0 .2rem .6rem rgba(10, 61, 98, .12); }
.sgc-admin .admin-edital-selector { position: relative; flex: 1 1 24rem; min-width: 0; margin: 0; padding: 0; border: 0; }
.sgc-admin .admin-edital-selector > label { display: block; font-size: .75rem; font-weight: 700; margin-bottom: .4rem; color: var(--white); }
.sgc-admin .admin-edital-actions { display: flex; flex-wrap: wrap; align-items: center; align-self: flex-end; gap: .4rem; padding-bottom: .1rem; }
.sgc-admin .admin-edital-actions > a { font-size: .8rem; }
.sgc-admin .admin-edital-actions > .admin-icon-button, .sgc-admin .admin-edital-actions .admin-icon-button { display: inline-flex; align-items: center; justify-content: center; inline-size: 2.5rem; block-size: 2.5rem; min-height: 2.5rem; padding: 0; flex: 0 0 2.5rem; border: 1px solid var(--sgc-control-border); border-radius: var(--sgc-radius-control); font-size: 1rem; }
.sgc-admin .admin-edital-actions .admin-icon-button { background: var(--white); color: var(--primary); border-color: var(--white); }
.sgc-admin .admin-edital-actions .admin-icon-button:hover { background: var(--gray-100); color: var(--primary); border-color: var(--white); }
.sgc-admin .admin-icon-button .fas { width: 1em; text-align: center; }
.sgc-admin .admin-edital-selector .select2-container { display: block; width: 100%; }
.sgc-admin .admin-edital-selector .select2-container--default .select2-selection--single { min-height: 2.75rem; background: var(--white); border: 1px solid var(--primary); }
.sgc-admin .admin-edital-selector .select2-selection__rendered { color: var(--primary); font-weight: 650; line-height: 2rem; padding-inline: .65rem 2rem; }
.sgc-admin .admin-edital-selector .select2-selection--single .select2-selection__arrow { height: 2rem; }
.sgc-admin .admin-edital-dropdown { background: var(--white); color: var(--text-color); border-color: var(--primary); box-shadow: 0 .5rem 1.25rem rgba(10, 61, 98, .15); }
.sgc-admin .admin-edital-dropdown .select2-results__option { padding: .6rem .75rem; font-size: .875rem; line-height: 1.45; overflow-wrap: anywhere; }
.sgc-admin .admin-edital-dropdown .select2-results__option[aria-selected="true"], .sgc-admin .admin-edital-dropdown .select2-results__option--highlighted[aria-selected] { background: var(--primary); color: var(--white); }
.sgc-admin .admin-edital-dropdown .select2-search__field { width: 100%; border-color: var(--sgc-control-border); }
.sgc-admin .admin-session-status { display: flex; align-items: center; gap: .6rem; flex: 0 0 auto; padding: .35rem .75rem; background: var(--white); color: var(--primary); border: 1px solid var(--sgc-control-border); border-radius: .5rem; }
.sgc-admin .admin-session-status > div { display: grid; gap: .05rem; }
.sgc-admin .admin-session-caption { font-size: .65rem; line-height: 1.1; color: var(--sgc-muted); }
.sgc-admin #session-timer { font-size: 1.0625rem; line-height: 1.2; font-weight: 750; font-variant-numeric: tabular-nums; min-width: 8ch; letter-spacing: .025em; }
.sgc-admin .admin-session-status:has([data-session-state="warning"]) { background: var(--warning-bg); border-color: #946400; color: #785100; }
.sgc-admin .admin-session-status:has([data-session-state="critical"], [data-session-state="expired"]) { background: var(--error-bg); border-color: var(--sgc-action-danger); color: var(--sgc-action-danger); }
.sgc-admin #admin-quick-access { width: 20rem; max-width: calc(100vw - 2rem); max-height: 65dvh; overflow-y: auto; }
.sgc-admin #admin-quick-access ul { margin: 0; padding: 0; list-style: none; }
.sgc-admin #admin-quick-access .qa-group-title, .sgc-admin #admin-quick-access .quick-access-header { padding: .5rem .75rem; color: var(--sgc-muted); font-size: .75rem; font-weight: 650; }
.sgc-admin #content { padding-block: 1.5rem 2rem; }
.sgc-admin .breadcrumbs { font-size: .82rem; color: var(--sgc-muted); margin-bottom: 1.35rem; }
.sgc-admin .admin-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem; padding-block: 1.5rem; color: var(--sgc-muted); font-size: .8rem; }
.sgc-admin .admin-footer p { margin: 0; }
.sgc-admin .skip-nav { position: fixed; top: -5rem; left: 1rem; z-index: 10000; padding: .75rem 1rem; background: white; border: 2px solid var(--sgc-primary); border-radius: .5rem; }
.sgc-admin .skip-nav:focus { top: 1rem; }
.sgc-admin .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

/* One responsive navigation tree, with Bootstrap's native modal on mobile. */
#admin-menu {
    --bs-drawer-width: var(--sgc-menu-width);
    --bs-drawer-inset: .65rem;
    --bs-drawer-bg: var(--sgc-nav-bg);
    --bs-drawer-color: var(--sgc-nav-text);
    --bs-drawer-border-color: var(--sgc-border);
    font-size: .875rem;
}
#admin-menu .drawer-header { background: var(--primary); border-bottom: 1px solid rgba(255, 255, 255, .18); padding: 1.25rem; }
#admin-menu .admin-menu-brand { color: var(--white); font-size: 1.55rem; font-weight: 800; letter-spacing: -.04em; }
#admin-menu .admin-menu-brand span { display: block; color: var(--white); font-size: .75rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
#admin-menu .admin-menu-search-wrap { padding: 1rem 1rem .5rem; }
#admin-menu .drawer-body { padding: .5rem .75rem 1rem; overflow: auto; scrollbar-color: var(--gray-400) var(--sgc-nav-bg); scrollbar-width: thin; }
#admin-menu ul { list-style: none; margin: 0; padding: 0; }
#admin-menu li > a, #admin-menu li > button { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: .7rem .8rem; color: var(--white); border: 0; border-radius: .4rem; background: transparent; font: inherit; text-align: start; text-decoration: none; }
#admin-menu li > a:hover, #admin-menu li > button:hover { background: var(--primary); color: var(--white); }
#admin-menu li > a[aria-current="page"] { background: var(--primary); color: var(--white); font-weight: 700; box-shadow: inset 3px 0 var(--success); }
#admin-menu li > button::after { content: '›'; font-size: 1.2rem; transition: transform .15s; }
#admin-menu li > button[aria-expanded="true"]::after { transform: rotate(90deg); }
#admin-menu li ul { padding-inline-start: .5rem; border-inline-start: 1px solid var(--gray-400); margin: .2rem 0 .4rem .8rem; }
#admin-menu li li > a, #admin-menu li li > button { padding-block: .55rem; font-size: .875rem; background: transparent; color: var(--sgc-nav-text); }
#admin-menu .drawer-footer { color: var(--white); border-top: 1px solid rgba(255, 255, 255, .18); padding: 1rem; }
#admin-menu :focus-visible { outline-color: var(--white); outline-offset: -3px; }
#admin-menu::backdrop { backdrop-filter: none; }
#admin-menu-empty { margin: 1rem .5rem; color: var(--white); }
@media (min-width: 1024px) {
    .sgc-admin.has-admin-menu #admin-main { margin-inline-start: var(--sgc-menu-width); }
    .sgc-admin #admin-menu { display: flex; position: fixed; inset: 0 auto 0 0; visibility: visible; width: var(--sgc-menu-width); height: 100dvh; max-height: 100dvh; max-width: var(--sgc-menu-width); transform: none; border: 0; border-right: 1px solid var(--sgc-border); border-radius: 0; box-shadow: none; }
    .sgc-admin #admin-menu .btn-close { display: none; }
    .sgc-admin.admin-menu-collapsed #admin-menu { visibility: hidden; transform: translateX(-100%); }
    .sgc-admin.admin-menu-collapsed #admin-main { margin-inline-start: 0; }
}

/* Django and domain templates retain their semantics, with a common surface. */
.sgc-admin .module, .sgc-admin .general-box, .sgc-admin .box > div, .sgc-admin .config-box {
    background: var(--sgc-surface); border: 1px solid var(--sgc-border); border-radius: var(--sgc-radius); padding: 1.25rem; margin-bottom: 1.25rem; min-width: 0;
}
.sgc-admin .module > h2, .sgc-admin .box > div > h2 { margin: -.1rem 0 1.1rem; padding-bottom: .8rem; border-bottom: 1px solid var(--sgc-border); }
.sgc-admin .module > h2 a { color: inherit; }
.sgc-admin fieldset.module { background: var(--gray-100); }
.sgc-admin .box { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1.25rem; margin-bottom: 1.25rem; }
.sgc-admin .box > div { grid-column: span 12; margin: 0; }
.sgc-admin .box > .box4 { grid-column: span 4; }
.sgc-admin .box > .box6 { grid-column: span 6; }
.sgc-admin .box > .box8 { grid-column: span 8; }
.sgc-admin .box > .collapsed .content { display: none; }
.sgc-admin [data-collapsible] { cursor: pointer; }
.sgc-admin .box > div > :is(h2, h3):has(.admin-box-toggle) { margin: 0 0 .8rem; padding: 0 0 .65rem; border-bottom: 1px solid var(--sgc-border); }
.sgc-admin .box > div > :is(h2, h3) > .admin-box-toggle { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; min-height: 2.5rem; padding: .25rem 0; border: 0; border-radius: 0; background: transparent; color: var(--primary); text-align: start; font: inherit; }
.sgc-admin .admin-box-toggle::after { content: '›'; flex: 0 0 auto; font-size: 1.5rem; transform: rotate(90deg); }
.sgc-admin .admin-box-toggle[aria-expanded="false"]::after { transform: rotate(0deg); }
.sgc-admin .admin-box-toggle:hover { text-decoration: underline; }
.sgc-admin .definition-list, .sgc-admin dl { display: grid; grid-template-columns: minmax(8rem, 1fr) 3fr; gap: .65rem 1.25rem; }
.sgc-admin dt { color: var(--sgc-muted); font-weight: 500; }
.sgc-admin dd { margin: 0; overflow-wrap: anywhere; }
.sgc-admin .tags { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; padding: 0; }
.sgc-admin .tags li, .sgc-admin .status { border-radius: .35rem; padding: .2rem .5rem; font-size: .8rem; }
.sgc-admin .tags li { background: var(--gray-100); }
.sgc-admin .status { display: inline-flex; align-items: center; vertical-align: middle; max-width: 100%; margin: .1rem .2rem .1rem 0; border: 0; }
.sgc-admin .status.alert { background: var(--warning-bg); color: #785100; }
.sgc-admin .status.success { background: var(--success-bg); color: var(--text-color); border-inline-start: 3px solid var(--success); }
.sgc-admin .status.error { background: var(--error-bg); color: var(--sgc-action-danger); }

/* Native Django forms and inherited auth templates also work without JS. */
.sgc-admin input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
.sgc-admin textarea, .sgc-admin select { border: 1px solid #c5d0dd; border-radius: .45rem; padding: .55rem .7rem; min-height: 2.5rem; max-width: 100%; background: white; color: var(--text-color); font: inherit; }
.sgc-admin input[type="number"] { width: 10rem; min-width: min(8rem, 100%); }
.sgc-admin textarea { min-height: 7rem; }
.sgc-admin select[multiple] { min-height: 8rem; }
.sgc-admin input[type="checkbox"], .sgc-admin input[type="radio"] { width: 1.05rem; height: 1.05rem; accent-color: var(--sgc-primary); vertical-align: middle; margin-inline-end: .4rem; }
.sgc-admin input:disabled, .sgc-admin select:disabled, .sgc-admin textarea:disabled { background: #f1f5f9; color: var(--sgc-muted); }
.sgc-admin .form-row { display: flex; flex-wrap: wrap; gap: .6rem 1.25rem; margin: 0; padding: 1rem 0; border: 0; border-bottom: 1px solid #edf1f6; }
.sgc-admin .form-row:last-child { border-bottom: 0; }
.sgc-admin .form-row > div:not(.errorlist) { flex: 1 1 20rem; min-width: 0; }
.sgc-admin .form-row label, .sgc-admin .inline-field-label, .sgc-admin .flex-container label { display: block; float: none; width: auto; padding: 0; margin-bottom: .4rem; color: #354b62; font-weight: 600; }
.sgc-admin label.required::after { content: ' *'; color: var(--danger); }
.sgc-admin .checkbox-row { display: grid; grid-template-columns: 1.05rem minmax(0, 1fr); align-items: start; align-content: start; gap: .4rem .5rem; }
.sgc-admin .checkbox-row > input[type="checkbox"] { grid-column: 1; margin: .15rem 0 0; }
.sgc-admin .checkbox-row > label { grid-column: 2; line-height: 1.5; }
.sgc-admin .checkbox-row > .help, .sgc-admin .checkbox-row > [id$="_errors"], .sgc-admin .checkbox-row > .view-field { grid-column: 1 / -1; }
.sgc-admin .checkbox-row label { display: inline; margin: 0; }
.sgc-admin .help, .sgc-admin .description, .sgc-admin .quiet, .sgc-admin .small { color: var(--sgc-muted); font-size: .82rem; }
.sgc-admin .help { margin: .4rem 0 0; padding: 0; }
.sgc-admin form .aligned :is(p, div).help { margin: .4rem 0 0; padding: 0; text-align: start; }
.sgc-admin .help ul { padding-inline-start: 1.25rem; }
.sgc-admin .errorlist, .sgc-admin .client-validation-error { color: var(--danger); font-size: .85rem; padding-inline-start: 1.2rem; margin: .4rem 0; }
.sgc-admin .form-row > .errorlist { flex-basis: 100%; }
.sgc-admin [aria-invalid="true"], .sgc-admin .admin-field-invalid { border-color: var(--danger); }
.sgc-admin .errornote { padding: 1rem; color: var(--danger); background: var(--error-bg); border-radius: .5rem; }
.sgc-admin .related-widget-wrapper { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; float: none; }
.sgc-admin .related-widget-wrapper > select, .sgc-admin .related-widget-wrapper > .select2 { flex: 1 1 12rem; min-width: 0; }
.sgc-admin .related-widget-wrapper-link { padding: .35rem; flex: 0 0 auto; }
.sgc-admin .select2-container { max-width: 100%; }
.sgc-admin .select2-container--default .select2-selection--single { min-height: 2.5rem; height: auto; padding: .3rem .1rem; border-color: #c5d0dd; border-radius: .45rem; }
.sgc-admin .select2-container--default .select2-selection--single .select2-selection__arrow { top: .45rem; }
.sgc-admin .select2-container--default .select2-selection--multiple { border-color: #c5d0dd; border-radius: .45rem; }
/* Normalize Django's dual-list widget without replacing its selection logic. */
.sgc-admin .selector { width: 100%; display: flex; flex-wrap: wrap; gap: .75rem; float: none; font-size: .9375rem; }
.sgc-admin .selector-available, .sgc-admin .selector-chosen { flex: 1 1 16rem; min-width: 0; width: auto; float: none; }
.sgc-admin .selector :is(.selector-available, .selector-chosen) > :is(h2, .selector-available-title, .selector-chosen-title) { margin: 0; padding: .75rem 1rem; font-size: .9375rem; font-weight: 650; line-height: 1.5; border: 1px solid var(--sgc-border); }
.sgc-admin .selector .selector-available > :is(h2, .selector-available-title) { background: var(--gray-100); color: var(--primary); }
.sgc-admin .selector .selector-chosen > :is(h2, .selector-chosen-title) { background: var(--primary); color: var(--white); border-color: var(--primary); }
.sgc-admin .selector :is(.selector-available-title, .selector-chosen-title) label { color: inherit; font: inherit; margin: 0; }
.sgc-admin .selector .helptext { color: inherit; font-size: .82rem; line-height: 1.5; margin: .35rem 0 0; }
.sgc-admin .selector button:is(.selector-add, .selector-remove) { display: block; width: 24px; min-height: 24px; height: 24px; padding: 0; border: 0; border-radius: 0; }
.sgc-admin .selector button.selector-add { background: url('../../admin/img/selector-icons.svg') 0 -144px / 24px auto no-repeat; }
.sgc-admin .selector button.selector-remove { background: url('../../admin/img/selector-icons.svg') 0 -96px / 24px auto no-repeat; }
.sgc-admin .selector button.selector-add:enabled:is(:hover, :focus-visible) { background-position: 0 -168px; }
.sgc-admin .selector button.selector-remove:enabled:is(:hover, :focus-visible) { background-position: 0 -120px; }
.sgc-admin .selector button:is(.selector-chooseall, .selector-clearall) { height: auto; min-height: 2rem; margin: .4rem auto; padding: .25rem .5rem; line-height: 1.5; }
.sgc-admin .selector h2 .help { color: inherit; }
.sgc-admin .selector .selector-filter { display: flex; align-items: center; gap: .5rem; margin: 0; padding: .65rem; font-size: .9375rem; background: var(--white); }
.sgc-admin .selector .selector-filter label { flex: 0 0 18px; margin: 0; padding: 0; }
.sgc-admin .selector .selector-filter input { flex: 1; min-width: 0; width: 100%; margin: 0; font-size: .9375rem; }
.sgc-admin .selector select { width: 100%; font-size: .9375rem; line-height: 1.5; }
.sgc-admin .selector ul.selector-chooser { flex: 0 0 30px; width: 30px; margin: auto 0; padding: 0; }
.sgc-admin .selector :is(.selector-chooseall, .selector-clearall) { font-size: .875rem; }
.sgc-admin .selector .list-footer-display, .sgc-admin .selector .list-footer-display__clear { background: var(--primary); color: var(--white); font-size: .875rem; }
@media (max-width: 767.98px) {
    .sgc-admin .selector { flex-direction: column; }
    .sgc-admin .selector-available, .sgc-admin .selector-chosen { flex-basis: auto; width: 100%; }
    .sgc-admin .selector ul.selector-chooser { align-self: center; }
}
.sgc-admin .view-field { display: grid; gap: .4rem; }
.sgc-admin .view-label { font-size: .82rem; color: var(--sgc-muted); }
.sgc-admin .view-value { padding: .6rem .8rem; background: #f7f9fc; border-radius: .4rem; overflow-wrap: anywhere; }

/* Shared actions cover custom operation templates as well as standard CRUD. */
.sgc-admin .btn:not(.btn-close), .sgc-admin input[type="submit"], .sgc-admin input[type="button"], .sgc-admin button:where(:not(.btn-close):not(.nav-link):not(#admin-menu button)),
.sgc-admin .object-tools > li > a, .sgc-admin .submit-row a { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; padding: .55rem .8rem; border: 1px solid var(--sgc-border); border-radius: .45rem; background: white; color: var(--sgc-primary); font: inherit; font-weight: 550; line-height: 1.2; text-decoration: none; cursor: pointer; min-height: 2.3rem; }
.sgc-admin .btn:not(.btn-close), .sgc-admin .object-tools > li > a, .sgc-admin .submit-row a { border-width: 2px; border-color: var(--primary); }
.sgc-admin .btn:hover, .sgc-admin .object-tools > li > a:hover { background: var(--primary); border-color: var(--primary); color: var(--white); }
/* Original SGC: submitting is green; navigation/actions use colored outlines. */
.sgc-admin input[type="submit"], .sgc-admin input[type="button"] { background: var(--success); border-color: var(--success); color: var(--white); }
.sgc-admin .btn-solid.theme-primary { background: var(--primary); border-color: var(--primary); color: var(--white); }
.sgc-admin input[type="submit"].default, .sgc-admin .submit-row input[name="_saveasnew"], .sgc-admin.login #login-form button[type="submit"] { background: var(--success); border-color: var(--success); color: var(--white); }
.sgc-admin #admin-menu-toggle, .sgc-admin .admin-edital-actions button, .sgc-admin .inline-card-toolbar button { background: var(--white); color: var(--primary); border-color: var(--sgc-control-border); border-radius: var(--sgc-radius-control); }
.sgc-admin #admin-menu-toggle:hover, .sgc-admin .admin-edital-actions button:hover, .sgc-admin .inline-card-toolbar button:hover { background: var(--gray-100); }
.sgc-admin .submit-row input[name="_addanother"], .sgc-admin .submit-row input[name="_continue"] { background: var(--white); border: 2px solid var(--gray-400); color: var(--gray-600); }
.sgc-admin input[type="submit"]:is(:hover, :focus-visible), .sgc-admin input[type="button"]:is(:hover, :focus-visible), .sgc-admin.login #login-form button[type="submit"]:is(:hover, :focus-visible) { background: #1e8449; border-color: #1e8449; color: var(--white); }
.sgc-admin .object-tools .addlink { background: var(--white); border-color: var(--primary); color: var(--primary); }
.sgc-admin .object-tools .primary, .sgc-admin .more-actions-toggle { background: var(--white); border: 2px solid var(--sgc-action-primary); color: var(--sgc-action-primary); }
.sgc-admin .theme-danger, .sgc-admin .submit-row a.deletelink, .sgc-admin .object-tools .danger { background: var(--white); color: var(--sgc-action-danger); border: 2px solid var(--sgc-action-danger); }
.sgc-admin .btn.primary:hover, .sgc-admin .object-tools .primary:hover, .sgc-admin .more-actions-toggle:hover { background: var(--sgc-action-primary); border-color: var(--sgc-action-primary); color: var(--white); }
.sgc-admin .btn.danger:hover, .sgc-admin .submit-row a.deletelink:hover, .sgc-admin .object-tools .danger:hover { background: var(--sgc-action-danger); border-color: var(--sgc-action-danger); color: var(--white); }
.sgc-admin .admin-edital-selector select { background: var(--white); color: var(--primary); border-color: var(--primary); font-weight: 650; }
.sgc-admin .admin-edital-selector select option { background: var(--white); color: var(--text-color); }
.sgc-admin .admin-edital-selector select option:checked { background: var(--primary); color: var(--white); }
.sgc-admin .form-tabs .nav-link.active { color: var(--primary); border-bottom: 3px solid var(--primary); }
.sgc-admin .submit-row { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem; margin: 1.25rem 0; padding: 1rem; background: white; border: 1px solid var(--sgc-border); border-radius: var(--sgc-radius); }
.sgc-admin .submit-row p { margin: 0; }
.sgc-admin .submit-row .deletelink-box { margin-inline-start: auto; }
.sgc-admin .object-tools { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem; list-style: none; padding: 0; margin: 0 0 1rem; float: none; }
.sgc-admin td .object-tools { flex-wrap: wrap; inline-size: max-content; max-inline-size: min(28rem, 80vw); margin: 0; }
.sgc-admin td .object-tools > li { flex: 0 1 auto; max-inline-size: 100%; }
.sgc-admin td .object-tools > li > a { min-width: 2rem; min-height: 2rem; padding: .4rem .65rem; font-size: .8rem; white-space: normal; text-align: center; overflow-wrap: anywhere; }
.sgc-admin td .object-tools > li > a.action-icon, .sgc-admin td .object-tools > li > .more-actions-toggle { display: inline-flex; align-items: center; justify-content: center; inline-size: 2rem; block-size: 2rem; min-width: 2rem; min-height: 2rem; padding: 0; border-width: 2px; border-radius: .375rem; line-height: 1; }
.sgc-admin td .object-tools .more-actions-toggle { font-size: 1.1rem; }
.sgc-admin td .object-tools > li > .more-actions-named { inline-size: auto; gap: .4rem; padding-inline: .65rem; font-size: .8rem; white-space: nowrap; }
.sgc-admin .action-group-chevron { width: .4rem; height: .4rem; border-right: 1px solid; border-bottom: 1px solid; transform: rotate(45deg); }
.sgc-admin .more-actions-toggle[aria-expanded="true"] .action-group-chevron { transform: rotate(225deg); }
.sgc-admin .object-tools-dropdown { list-style: none; margin: 0; padding: .35rem; }
.sgc-admin .object-tools-dropdown .menu-item { padding: .55rem .75rem; }
.sgc-admin .object-tools-dropdown:not(.show) { display: none; }
.sgc-admin .more-actions-toggle { font-size: 1.15rem; }
.sgc-admin .form-tabs { margin: 0 0 1.25rem; padding: 0; gap: .25rem; flex-wrap: wrap; }
.sgc-admin .form-tabs .nav-link { padding: .7rem 1rem; font-size: .875rem; font-weight: 600; }
.sgc-admin .form-tabs .has-errors { color: var(--danger); }
.sgc-admin .form-tab-error { margin-inline-start: .4rem; padding: 0 .35rem; border-radius: 50%; background: var(--error-bg); color: var(--danger); }
.sgc-admin .tabs { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; border-bottom: 1px solid var(--sgc-border); }
.sgc-admin .tabs a { display: block; padding: .75rem 1rem; }
.sgc-admin .tabs .active a { border-bottom: 3px solid var(--sgc-primary); font-weight: 700; }
.sgc-admin .dashboard-container .dashboard-tab-content { display: block; }

/* Responsive tables, including inherited Django index/history/delete views. */
.sgc-admin .table-responsive, .sgc-admin .results { position: relative; max-width: 100%; overflow-x: auto; }
.sgc-admin table { width: 100%; border-collapse: collapse; background: white; font-size: .86rem; }
.sgc-admin th, .sgc-admin td { padding: .8rem .9rem; text-align: start; border-bottom: 1px solid var(--sgc-border); vertical-align: middle; }
.sgc-admin thead th { background: #f6f6f6; color: var(--primary); font-size: .75rem; font-weight: 650; }
.sgc-admin tbody tr:hover { background: #f7faff; }
/* Table metadata needs compact columns, not the full-page definition layout. */
.sgc-admin #result_list td dl { grid-template-columns: minmax(12rem, 2fr) minmax(5rem, 1fr); align-items: baseline; gap: .5rem .85rem; min-inline-size: 18rem; max-inline-size: 30rem; margin: 0; }
.sgc-admin #result_list td dl > dt, .sgc-admin #result_list td dl > dd { min-width: 0; margin: 0; padding: 0; line-height: 1.5; float: none; width: auto; text-align: start; }
.sgc-admin #result_list td dl > dt { color: var(--sgc-muted); font-weight: 500; }
.sgc-admin #result_list td dl > dd { color: var(--text-color); font-weight: 600; }
.sgc-admin.model-provagenerica #result_list tbody :is(td, th) { vertical-align: top; }
.sgc-admin.model-provagenerica #result_list td > ul { margin-block: 0; padding-inline-start: 1.25rem; }
.sgc-admin table .action-checkbox { width: 2.5rem; }
.sgc-admin table .sortable a { display: inline-block; }
.sgc-admin table .sortoptions { float: right; }
/* Django's application headings are captions, not footer rows. */
.sgc-admin .module table caption { caption-side: top; text-align: start; padding: .85rem 1rem; background: var(--primary); color: var(--white); font-size: 1.0625rem; font-weight: 650; line-height: 1.4; border-radius: .4rem .4rem 0 0; }
.sgc-admin .module table caption a.section { color: inherit; display: inline; font: inherit; }
.sgc-admin .module table caption a.section:hover { text-decoration: underline; }
/* Keep Django's recent actions beside the application list on desktop. */
.sgc-admin.dashboard #content-body.colMS { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.sgc-admin.dashboard #content-body.colMS > h1 { grid-column: 1 / -1; margin-bottom: 0; }
.sgc-admin.dashboard #content-main, .sgc-admin.dashboard #content-related { min-width: 0; width: auto; float: none; margin: 0; }
@media (min-width: 1024px) {
    .sgc-admin.dashboard #content-body.colMS { grid-template-columns: minmax(0, 1fr) minmax(15rem, 19rem); }
}
.sgc-admin.dashboard .module th { font-weight: 600; }
.sgc-admin .changelist-title-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.25rem; }
.sgc-admin .changelist-title-row h1, .sgc-admin .changelist-title-row .object-tools { margin: 0; }
.sgc-admin #changelist { padding: 1rem; }
.sgc-admin #changelist #toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; padding: .5rem 0 1rem; border: 0; background: white; }
.sgc-admin #changelist #toolbar .toolbar-actions { display: flex; align-items: center; gap: .5rem; flex: 0 0 auto; max-width: 100%; }
.sgc-admin #changelist #toolbar #btn-apply-filters, .sgc-admin #changelist #toolbar #btn-apply-filters:is(:hover, :focus-visible) { background: #1f2f42; border-color: #1f2f42; color: var(--white); }
.sgc-admin #changelist #toolbar .filter-button-text { background: transparent; color: inherit; padding: 0; border: 0; font: inherit; }
.sgc-admin #changelist #toolbar #btn-reset-filters { height: 2.5rem; min-height: 2.5rem; flex: 0 0 auto; margin: 0; line-height: 1; }
.sgc-admin #changelist #toolbar #btn-reset-filters { width: 2.5rem; padding: 0; }
.sgc-admin #changelist #toolbar .filter-button-icon { display: inline-flex; align-items: center; justify-content: center; width: 1rem; height: 1rem; flex: 0 0 1rem; padding: 0; border: 0; background: transparent; }
.sgc-admin #changelist #toolbar .filter-button-icon svg { width: 1rem; height: 1rem; fill: currentColor; }
/* Keep filter labels centered in both axes, without offset from widget padding. */
.sgc-admin #changelist #toolbar .inline-filters .select2-selection--single { display: flex; align-items: center; height: 2.5rem; min-height: 2.5rem; padding: 0; }
.sgc-admin #changelist #toolbar .inline-filters .select2-selection__rendered { width: 100%; padding: 0 1.75rem; line-height: 1.25; text-align: center; }
.sgc-admin #changelist #toolbar .inline-filters .select2-selection__arrow { top: 50%; transform: translateY(-50%); }
.sgc-admin #changelist #toolbar .inline-filters .select2-selection__clear { position: absolute; left: .5rem; top: 50%; transform: translateY(-50%); margin: 0; }
.sgc-admin #changelist-search > div { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; }
.sgc-admin #changelist-search label { margin: 0; }
.sgc-admin #changelist-search input[type="text"] { flex: 1; }
.sgc-admin #changelist-filter { margin-bottom: 1rem; padding: .75rem 1rem; background: #f7f9fc; border: 1px solid var(--sgc-border); border-radius: .5rem; }
.sgc-admin #changelist-filter h2 { font-size: .85rem; }
.sgc-admin #changelist-filter h3 { font-size: .8rem; margin-top: .75rem; }
.sgc-admin #changelist-filter ul { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: .5rem 0; }
.sgc-admin #changelist-filter .selected a { font-weight: 700; text-decoration: underline; }
.sgc-admin #changelist .actions { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem; padding: .75rem; margin-bottom: .75rem; background: #f7f9fc; border-radius: .5rem; }
.sgc-admin #changelist .actions label { display: inline-flex; align-items: center; gap: .5rem; margin: 0; }
.sgc-admin #changelist .actions select { width: auto; }
.sgc-admin .actions .action-counter, .sgc-admin .actions .all, .sgc-admin .actions .question, .sgc-admin .actions .clear { font-size: .8rem; }
.sgc-admin .paginator { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin: 1rem 0 0; padding: .5rem 0; font-size: .82rem; }
.sgc-admin .paginator a, .sgc-admin .paginator .this-page { padding: .4rem .65rem; border: 1px solid var(--sgc-border); border-radius: .35rem; }
.sgc-admin .paginator .this-page { background: #e7eff8; }
.sgc-admin .empty-results { padding: 2rem; text-align: center; color: var(--sgc-muted); }
.sgc-admin .result-summary { font-size: .8rem; margin-bottom: .75rem; color: var(--sgc-muted); }

/* Preserve Django formsets, presented as collapsible cards. */
.sgc-admin .inline-section-divider { display: flex; align-items: center; gap: 1rem; margin: 2rem 0 1rem; }
.sgc-admin .inline-section-divider hr { flex: 1; }
.sgc-admin .inline-section-title { font-weight: 650; color: var(--sgc-muted); font-size: .85rem; }
/* Django's tabular inline summary is 9px; cards use the form typography. */
.sgc-admin .inline-group { font-size: .9375rem; line-height: 1.5; }
.sgc-admin .inline-group table, .sgc-admin .inline-group .form-row { font-size: inherit; }
.sgc-admin .inline-group .inline-field-label, .sgc-admin .inline-group .readonly, .sgc-admin .inline-group .tabular td > p { font-size: .9375rem; line-height: 1.5; }
.sgc-admin .inline-group .tabular td.original p { min-width: 0; padding: 0; color: var(--primary); font-size: .9375rem; line-height: 1.5; overflow-wrap: anywhere; }
.sgc-admin .inline-group .inline-related h3, .sgc-admin .inline-group .inline-related fieldset.module h3 { font-size: .9375rem; line-height: 1.5; }
.sgc-admin .inline-group .inline-card-toolbar button, .sgc-admin .inline-group .inline-deletelink, .sgc-admin .inline-group .tabular tr.add-row td a, .sgc-admin .inline-group div.add-row a { font-size: .875rem; line-height: 1.5; }
.sgc-admin .inline-group .module { padding: 1.25rem; }
.sgc-admin .inline-related > h3 { padding: .8rem; background: #f1f5f9; border-radius: .5rem; font-size: .85rem; }
.sgc-admin .inline-cards table, .sgc-admin .inline-cards tbody { display: block; }
.sgc-admin .inline-cards thead { display: none; }
.sgc-admin .inline-cards tr.form-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: 1rem; padding: 1rem; margin-bottom: 1rem; border: 1px solid var(--sgc-border); border-radius: .6rem; background: #f8fafd; }
.sgc-admin .inline-cards tr > td { display: block; min-width: 0; padding: 0; border: 0; }
.sgc-admin .inline-cards td.original, .sgc-admin .inline-cards td.delete { grid-column: 1 / -1; }
.sgc-admin .inline-group.inline-cards .tabular tr.form-row > td.original { display: flex; align-items: center; gap: .65rem; width: auto; position: static; }
.sgc-admin .inline-cards .inline-deletelink { display: inline-flex; align-items: center; width: auto; min-width: 2rem; height: auto; padding: .4rem .6rem; color: var(--sgc-action-danger); background: white; border: 2px solid var(--sgc-action-danger); border-radius: .35rem; font-size: .8rem; text-indent: 0; }
.sgc-admin .inline-cards td.original p { flex: 1; margin: 0; font-weight: 600; position: static; height: auto; overflow: visible; }
.sgc-admin .inline-cards .inline-collapsed > td:not(.original) { display: none; }
.sgc-admin .inline-card-title { cursor: pointer; }
.sgc-admin .inline-card-toolbar { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: flex-end; margin-bottom: 1rem; }
.sgc-admin .inline-toggle { padding: .3rem; }
.sgc-admin .inline-toggle svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 2; transition: transform .15s; }
.sgc-admin .inline-toggle[aria-expanded="true"] svg { transform: rotate(90deg); }
.sgc-admin .add-row { margin-top: 1rem; }
.sgc-admin .add-row a { display: inline-block; padding: .55rem .8rem; border: 1px dashed #9cafc4; border-radius: .45rem; font-weight: 600; }

.sgc-admin .messagelist { padding: 0; list-style: none; }
.sgc-admin .messagelist li, .sgc-admin .msg { position: relative; padding: 1rem 2.5rem 1rem 1rem; border-radius: .5rem; background: var(--info-bg); color: #215b8c; margin-bottom: 1rem; }
.sgc-admin .messagelist .warning, .sgc-admin .msg.alert { background: var(--warning-bg); color: #7a5300; }
.sgc-admin .messagelist .error, .sgc-admin .msg.error { background: var(--error-bg); color: var(--danger); }
.sgc-admin .messagelist .success, .sgc-admin .msg.success { background: var(--success); color: var(--text-color); }
.sgc-admin .msg-close { position: absolute; right: .5rem; top: .5rem; }
.sgc-admin .alternar-visibilidade-password { padding: .35rem; border: 0; background: transparent; min-height: auto; }
.sgc-admin .btn.danger { color: var(--sgc-action-danger); border-color: var(--sgc-action-danger); }
.sgc-admin .btn.primary, .sgc-admin .btn-primary { background: white; border-color: var(--sgc-action-primary); color: var(--sgc-action-primary); }
.sgc-admin.login #admin-main { max-width: 32rem; margin: 4vh auto; }
.sgc-admin.login #content { background: white; border: 1px solid var(--sgc-border); border-radius: var(--sgc-radius); }
.sgc-admin.login #login-form .form-row { display: block; }
.sgc-admin.login #login-form .form-row input { width: 100%; }
.sgc-admin.login #login-form .submit-row { padding: 0; border: 0; }
.sgc-admin.login #login-form .submit-row input, .sgc-admin.login #login-form .submit-row button { width: 100%; }
.sgc-admin input[data-com-alternancia="true"] { display: inline-block; padding-inline-end: 2.7rem !important; }
.sgc-admin.login .breadcrumbs, .sgc-admin.login .admin-footer, .sgc-admin.login #view { display: none; }
.sgc-admin.popup #admin-main { margin: 0; }
.sgc-admin.popup #content { padding: 1rem; }
@media (max-width: 1023.98px) {
    .sgc-admin { --sgc-environment-width: 1.5rem; }
    .sgc-admin .box > .box4, .sgc-admin .box > .box6, .sgc-admin .box > .box8 { grid-column: span 12; }
    .sgc-admin #user-tools ul { margin-inline-start: 0; }
    .sgc-admin #admin-menu-toggle kbd { display: none; }
    .sgc-admin .definition-list, .sgc-admin dl { grid-template-columns: 1fr; gap: .3rem; }
    .sgc-admin dd { margin-bottom: .8rem; }
    .sgc-admin .submit-row { align-items: stretch; }
    .sgc-admin .submit-row > input, .sgc-admin .submit-row > a { flex: 1 1 100%; }
    .sgc-admin .submit-row .deletelink-box { margin-inline-start: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .sgc-admin *, .sgc-admin *::before, .sgc-admin *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
@media print {
    .sgc-admin, .sgc-admin.has-environment-banner { background: white; font-size: 10pt; padding-inline-end: 0; }
    .sgc-admin .environment-banner { display: none; }
    .sgc-admin #admin-main { margin: 0 !important; }
    .sgc-admin #admin-menu, .sgc-admin #user-tools, .sgc-admin #view, .sgc-admin .admin-footer, .sgc-admin .breadcrumbs, .sgc-admin .submit-row, .sgc-admin .object-tools, .sgc-admin .form-tabs, .sgc-admin .skip-nav { display: none !important; }
    .sgc-admin .tab-pane, .sgc-admin div[data-tab] { display: block !important; }
    .sgc-admin .admin-box-content { display: block !important; block-size: auto !important; }
    .sgc-admin .table-responsive { overflow: visible; }
    .sgc-admin .module, .sgc-admin .box > div { break-inside: avoid; box-shadow: none; }
}

/* Password fields keep the reveal control separate from labels and help text. */
.sgc-admin .admin-password-change .password-field { flex: 0 1 36rem; }
.sgc-admin .admin-password-change .password-control { position: relative; }
.sgc-admin .admin-password-change .password-control input { display: block; width: 100%; height: 2.75rem; padding-inline-end: 3rem; }
.sgc-admin .admin-password-change .password-control .alternar-visibilidade-password { position: absolute; inset-block: 0; inset-inline-end: .35rem; width: 2.25rem; margin: 0; padding: .35rem; color: var(--primary); }
.sgc-admin .admin-password-change .help ul { margin: .5rem 0 0; }
.sgc-admin .admin-password-change .submit-row input { float: none; height: auto; margin: 0; font: inherit; font-weight: 600; text-transform: none; }

/* Use the same success treatment for native and Bootstrap actions. */
.sgc-admin .object-tools > li > a:is(.success, .btn-success, .theme-success),
.sgc-admin :is(a, button, input):is(.success, .btn-success, .theme-success) { background: var(--success); border-color: var(--success); color: var(--white); }
.sgc-admin .object-tools > li > a:is(.success, .btn-success, .theme-success):is(:hover, :focus-visible),
.sgc-admin :is(a, button, input):is(.success, .btn-success, .theme-success):is(:hover, :focus-visible) { background: #1e8449; border-color: #1e8449; color: var(--white); }

/* Django 5.2 requires POST logout; preserve the toolbar link appearance. */
.sgc-admin #user-tools .admin-logout { display: inline; min-height: 0; margin: 0; padding: 0; border: 0; background: transparent; color: var(--primary); font: inherit; font-size: .85rem; cursor: pointer; }
.sgc-admin #user-tools .admin-logout:hover { background: transparent; color: var(--primary); text-decoration: underline; }

/* A shown panel must contain legacy floated actions instead of clipping them. */
.sgc-admin .admin-box-content.show { display: flow-root; }
