/* Painel: contraste e controles no tema da plataforma (por cima do Unfold). Carregado em todas as páginas do painel. */
:root { --ad-page: #eef2f7; --ad-card: #ffffff; --ad-side: #ffffff; --ad-line: #c5d0de; --ad-line-soft: #dbe3ed; --ad-soft: #f3f6fa; --ad-ink: #0f1b2d; --ad-ink2: #55657c;
  --ad-shadow: 0 1px 2px rgba(15, 27, 45, .06), 0 6px 18px rgba(15, 27, 45, .07); --ad-p: var(--color-primary-600, #3b5bdb); }
html.dark { --ad-page: #0b1420; --ad-card: #152234; --ad-side: #070d16; --ad-line: #2f4260; --ad-line-soft: #24344b; --ad-soft: #0e1826; --ad-ink: #eef2f6; --ad-ink2: #9fb0c6;
  --ad-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 22px rgba(0, 0, 0, .35); color-scheme: dark; }

/* fundo da página x menu lateral x cartões */
body, #main { background: var(--ad-page) !important; }
#nav-sidebar-inner { background: var(--ad-side) !important; border-right: 1px solid var(--ad-line); }
#nav-sidebar-inner h2, #nav-sidebar-inner h3 { letter-spacing: .04em; text-transform: uppercase; font-size: 11.5px; opacity: .75; }
/* blocos do Unfold (listas, formulários, cartões): fundo próprio, borda visível e sombra leve */
#content .form-rows, #content [class~="border"][class~="border-base-200"]:not(input):not(select):not(textarea):not(button):not(a) {
  background-color: var(--ad-card) !important; border-color: var(--ad-line) !important; box-shadow: var(--ad-shadow); }
#content [class~="border-b"][class~="border-dashed"], html.dark #content [class~="dark:border-base-800"] { border-color: var(--ad-line-soft); }
#content table thead th { background: var(--ad-soft); }
#content fieldset > h2, #content .module > h2 { background: var(--ad-soft) !important; border: 1px solid var(--ad-line-soft); }
/* campos */
#main input[type="text"], #main input[type="email"], #main input[type="number"], #main input[type="password"], #main input[type="url"], #main input[type="search"], #main input[type="tel"], #main input[type="date"], #main input[type="time"], #main textarea, #main input:not([type]) {
  border-color: var(--ad-line) !important; background-color: var(--ad-card); color: var(--ad-ink); }
html.dark #main input[type="text"], html.dark #main input[type="email"], html.dark #main input[type="number"], html.dark #main input[type="password"], html.dark #main input[type="url"], html.dark #main input[type="search"], html.dark #main textarea, html.dark #main input:not([type]) { background-color: var(--ad-soft); }
/* campo sem estilo nenhum (ex.: senha em formulários do Django): mesmo visual dos demais */
#main input[type="password"]:not([class]), #main input[type="text"]:not([class]), #main input[type="email"]:not([class]) { border: 1px solid var(--ad-line); border-radius: 8px; padding: 8px 12px; width: 100%; max-width: 42rem; font-size: 14px; }
#main input:focus, #main textarea:focus { outline: 2px solid var(--ad-p); outline-offset: -1px; }

/* janela (adicionar outro, atalhos): destacada do fundo */
#modal-overlay { background: rgba(4, 9, 16, .66) !important; }
#modal-content { background: var(--ad-card) !important; border: 1px solid var(--ad-line); box-shadow: 0 0 0 1px rgba(255, 255, 255, .04), 0 30px 80px rgba(0, 0, 0, .55) !important; border-radius: 14px !important; }
body.popup { background: var(--ad-card) !important; }

/* caixa de seleção (core/admin.js troca o <select> nativo) */
select.cb-native { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none !important; margin: 0 !important; padding: 0 !important; border: 0 !important; }
.cb-btn { display: inline-flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 38px; padding: 7px 8px 7px 12px; border: 1px solid var(--ad-line); border-radius: 8px; background: var(--ad-card); color: var(--ad-ink); font: inherit; font-size: 14px; font-weight: 500; cursor: pointer; text-align: left; max-width: 42rem; vertical-align: middle; }
html.dark .cb-btn { background: var(--ad-soft); }
.cb-btn.cb-block { display: flex; width: 100%; }
.cb-btn:hover { border-color: var(--ad-p); }
.cb-btn:focus-visible, .cb-btn[aria-expanded="true"] { outline: 2px solid var(--ad-p); outline-offset: -1px; }
.cb-btn:disabled { opacity: .55; cursor: default; }
.cb-btn.cb-empty .cb-val { color: var(--ad-ink2); }
.cb-val { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cb-arrow { font-size: 20px !important; color: var(--ad-ink2); flex: none; transition: transform .12s; }
.cb-btn[aria-expanded="true"] .cb-arrow { transform: rotate(180deg); }
.cb-pop { position: fixed; z-index: 2000; background: var(--ad-card); border: 1px solid var(--ad-line); border-radius: 10px; box-shadow: 0 16px 44px rgba(0, 0, 0, .35); padding: 5px; max-width: min(520px, calc(100vw - 16px)); font-size: 14px; color: var(--ad-ink); }
.cb-list { max-height: 290px; overflow-y: auto; }
.cb-search { width: 100%; border: 1px solid var(--ad-line); border-radius: 7px; padding: 7px 10px; margin-bottom: 5px; background: var(--ad-soft); color: var(--ad-ink); font: inherit; }
.cb-item { padding: 8px 10px; border-radius: 7px; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cb-item.in { padding-left: 20px; }
.cb-item.none { color: var(--ad-ink2); }
.cb-item:hover, .cb-item.hi { background: var(--ad-soft); }
.cb-item.on { background: var(--ad-p); color: #fff; font-weight: 600; }
.cb-item.off { opacity: .45; cursor: default; }
.cb-item[hidden] { display: none; }
.cb-group { padding: 8px 10px 3px; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--ad-ink2); }

/* páginas próprias (.gm): mesmos tons e controles */
.gm { --gm-card: var(--ad-card); --gm-line: var(--ad-line); --gm-ink: var(--ad-ink); --gm-ink2: var(--ad-ink2); --gm-soft: var(--ad-soft); }
html.dark .gm { --gm-card: var(--ad-card); --gm-line: var(--ad-line); --gm-ink: var(--ad-ink); --gm-ink2: var(--ad-ink2); --gm-soft: var(--ad-soft); }
.gm-card { box-shadow: var(--ad-shadow); }
.gm-nums div, .gm-kpi { border: 1px solid var(--ad-line-soft); }
.gm-field input[type=text], .gm-field input[type=number], .gm-field textarea { border-radius: 8px; min-height: 38px; }
/* liga/desliga e opções no lugar dos controles nativos */
.gm input[type="checkbox"] { appearance: none; -webkit-appearance: none; flex: none; width: 38px; height: 22px; border-radius: 999px; background: var(--ad-line); position: relative; cursor: pointer; transition: background .15s; margin-top: 1px; border: 0; }
.gm input[type="checkbox"]::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .3); transition: transform .15s; }
.gm input[type="checkbox"]:checked { background: var(--ad-p); }
.gm input[type="checkbox"]:checked::after { transform: translateX(16px); }
.gm input[type="radio"] { appearance: none; -webkit-appearance: none; flex: none; width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--ad-line); background: var(--ad-card); cursor: pointer; margin-top: 1px; position: relative; }
.gm input[type="radio"]:checked { border-color: var(--ad-p); }
.gm input[type="radio"]:checked::after { content: ""; position: absolute; inset: 3px; border-radius: 50%; background: var(--ad-p); }
.gm input[type="checkbox"]:focus-visible, .gm input[type="radio"]:focus-visible { outline: 2px solid var(--ad-p); outline-offset: 2px; }
.gm input:disabled { opacity: .5; cursor: default; }
.gm-tenants { background: var(--ad-soft); }
.gm-details { border: 1px solid var(--ad-line-soft); border-radius: 10px; padding: 10px 14px; background: var(--ad-soft); }
.gm-details summary { cursor: pointer; font-weight: 700; font-size: 13.5px; }
.cb-btn ~ span.material-symbols-outlined { display: none !important; }
.gm { padding-bottom: 72px; }
/* liga/desliga centralizado com o bloco de texto ao lado; selos com o texto no centro */
.gm-check { align-items: center; }
.gm-check input[type="checkbox"], .gm-check input[type="radio"] { margin-top: 0; }
.gm-badge { display: inline-flex; align-items: center; justify-content: center; text-align: center; line-height: 1.25; padding: 4px 10px; min-height: 22px; }
.gm-gamehead .acts { align-items: center; }
.gm-gamehead .acts .gm-badge { min-height: 34px; padding: 6px 14px; }
