/* Identidade solicitada. Variações funcionais asseguram contraste por tema.
   Bordas de controles são mais fortes que divisores; status sólidos usam
   texto escuro e mensagens usam variantes suaves. Portal Wi-Fi é independente. */
:root {
  --brand-deep:#121217; --brand-primary:#7c3aed; --brand-accent:#a855f7;
  --success:#22c55e; --warning:#f59e0b; --danger:#ef4444; --info:#7c3aed;
  --on-success:#121217; --on-warning:#121217; --on-danger:#121217;
  --sidebar-bg:#121217; --sidebar-text:#efedf7; --sidebar-hover:#292333;
  --sidebar-active:#7c3aed; --sidebar-active-text:#ffffff;
}
:root, :root[data-theme="light"] {
  color-scheme:light;
  --background:#f8f7fc; --surface:#ffffff; --surface-soft:#f0edf7; --surface-raised:#ffffff;
  --text-primary:#181824; --text-secondary:#6b6b7b; --text-disabled:#777787;
  --border:#e2e2ec; --border-control:#868695; --focus-ring:#7c3aed;
  --overlay:rgb(18 18 23 / 65%); --shadow:0 4px 16px rgb(18 18 23 / 6%);
  --primary:#7c3aed; --primary-hover:#6d28d9; --primary-active:#5b21b6; --on-primary:#ffffff;
  --secondary:#f0edf7; --secondary-hover:#e6def4; --on-secondary:#181824;
  --hover:#f0edf7; --selected:#ede5fc; --on-selected:#5b21b6; --disabled-bg:#e2e2ec;
  --success-bg:#ecfdf3; --success-text:#166534; --success-border:#78a98a;
  --warning-bg:#fffbeb; --warning-text:#854d0e; --warning-border:#b88b45;
  --danger-bg:#fef2f2; --danger-text:#b91c1c; --danger-border:#cf7777;
  --info-bg:#f3edff; --info-text:#6d28d9; --info-border:#ac8bd6; --on-info:#ffffff;
}
:root[data-theme="dark"] {
  color-scheme:dark;
  --background:#121217; --surface:#1c1c25; --surface-soft:#252531; --surface-raised:#30303e;
  --text-primary:#f3f1fa; --text-secondary:#b6b3c5; --text-disabled:#9692a5;
  --border:#3d3b4d; --border-control:#817c95; --focus-ring:#c4a2ff;
  --overlay:rgb(0 0 0 / 70%); --shadow:0 4px 16px rgb(0 0 0 / 22%);
  --primary:#c4a2ff; --primary-hover:#d6bfff; --primary-active:#b88bf8; --on-primary:#181824;
  --secondary:#30303e; --secondary-hover:#40394f; --on-secondary:#f3f1fa;
  --hover:#2b2638; --selected:#392854; --on-selected:#decaff; --disabled-bg:#353340;
  --success-bg:#173525; --success-text:#86efac; --success-border:#508764;
  --warning-bg:#3c2e19; --warning-text:#fcd34d; --warning-border:#a38142;
  --danger-bg:#401f28; --danger-text:#fca5a5; --danger-border:#b06b78;
  --info-bg:#302240; --info-text:#d8b4fe; --info-border:#9674ba; --on-info:#ffffff;
}
body { background:var(--background); color:var(--text-primary); line-height:1.5; overflow-y:auto; }
body.admin-shell { overflow:hidden; }
.admin-shell .container { height:100dvh; min-height:0; }
td input:not([type="checkbox"]):not([type="radio"]),form td input:not([type="checkbox"]):not([type="radio"]) { margin-bottom:0; }
body::before { display:none; }
body.admin, body.editor-page { padding:clamp(12px,2vw,24px); }
h1,h2,h3 { color:var(--text-primary); text-align:left; line-height:1.3; }
h1 { font-size:26px; margin-bottom:20px; } h2 { font-size:18px; margin-bottom:16px; } h3 { font-size:16px; margin:20px 0 12px; }
p { margin-bottom:12px; } a { color:var(--primary); } small,.form-grid small { color:var(--text-secondary); font-size:13px; }
hr { border:0; border-top:1px solid var(--border); }
.container-admin,.container-forms,.container-editor,body:not(.admin-shell) > .container,.editor-container,.editor-form,.box-resultado {
  background:var(--surface); color:var(--text-primary); border:1px solid var(--border); border-radius:8px; padding:16px; box-shadow:var(--shadow); overflow-wrap:anywhere;
}
.editor-form { min-width:0; } .editor-actions { background:var(--surface); } .editor-frame,.sorteio-frame { background:var(--background); }
.container-login { width:100%; padding:16px; } .container-login form, body > .container > form { width:100%; }
.admin-login .logo { display:block; margin:20px auto; }
.admin-login h1,.admin-login h2,.admin-login h3 { text-align:center; }
.admin-login button[type="submit"] { display:flex; margin-inline:auto; min-width:100px; }
form label,.editor-form label,.checkbox-label { color:var(--text-primary); font-size:14px; }
input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),select,form select,textarea,.editor-form textarea {
  background:var(--surface); color:var(--text-primary); border:1px solid var(--border-control); border-radius:6px; padding:9px 12px; min-height:40px; font:inherit; width:100%; max-width:100%;
}
input::placeholder,textarea::placeholder { color:var(--text-secondary); opacity:1; }
input[type="checkbox"],input[type="radio"] { accent-color:var(--primary); width:18px; height:18px; flex-shrink:0; }
input:read-only:not([type="checkbox"]):not([type="radio"]) { background:var(--surface-soft); }
input[aria-invalid="true"],textarea[aria-invalid="true"] { border-color:var(--danger-text); }
input:autofill { box-shadow:0 0 0 1000px var(--surface-soft) inset; -webkit-text-fill-color:var(--text-primary); }
button,.button-export,.button-delete,.admin-header a {
  display:inline-flex; align-items:center; justify-content:center; gap:6px; width:auto; max-width:100%; min-height:32px; padding:6px 10px; border:1px solid transparent; border-radius:6px; background:var(--primary); color:var(--on-primary); font-size:13px; font-weight:600; line-height:1.3; text-decoration:none; cursor:pointer; transition:background-color .15s;
}
button:hover:not(:disabled),.button-export:hover,.admin-header a:hover { background:var(--primary-hover); color:var(--on-primary); }
button:active:not(:disabled),.button-export:active { background:var(--primary-active); }
.button-secondary,td button,td .button-export,td a,summary { background:var(--surface); color:var(--on-secondary); border:1px solid var(--border); border-radius:6px; padding:5px 8px; min-height:30px; font-size:12px; display:inline-flex; align-items:center; gap:6px; text-decoration:none; cursor:pointer; }
td .button-export,td .button-delete,td button { margin-top:0; }
td details { margin-bottom:6px; } td details form { margin-top:10px; }
.editor-actions button { width:auto; min-width:88px; }
.form-actions .button-export { max-width:none; }
.button-secondary:hover,td button:hover:not(:disabled),td .button-export:hover,td a:hover { background:var(--secondary-hover); color:var(--on-secondary); }
.button-delete,td .button-delete { background:var(--danger-bg); color:var(--danger-text); border-color:var(--danger-border); }
.button-delete:hover:not(:disabled) { background:var(--danger); color:var(--on-danger); }
button:disabled,input:disabled,select:disabled,textarea:disabled,[aria-disabled="true"],button[aria-busy="true"] { background:var(--disabled-bg); color:var(--text-disabled); border-color:var(--border); cursor:not-allowed; opacity:1; }
:focus-visible,form input:focus-visible { outline:2px solid var(--focus-ring); outline-offset:3px; box-shadow:none; }
table { background:var(--surface); border:0; border-radius:8px; } thead { background:var(--surface-soft); color:var(--text-primary); }
th,td { border:0; border-bottom:1px solid var(--border); padding:10px 12px; } tbody tr:hover { background:var(--hover); }
tr[aria-selected="true"] { background:var(--selected); color:var(--on-selected); }
.table-wrapper { border:1px solid var(--border); border-radius:8px; } .empty-state { text-align:center; color:var(--text-secondary); padding:28px 16px; }
.contador-cadastros { background:var(--surface-soft); color:var(--text-secondary); border-color:var(--border); }
.paginacao { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:8px; }
.paginacao a { background:var(--secondary); color:var(--on-secondary); margin:0; padding:5px 9px; font-size:12px; min-height:30px; display:inline-flex; align-items:center; } .paginacao a:hover { background:var(--secondary-hover); color:var(--on-secondary); }
.paginacao a.ativo { background:var(--selected); color:var(--on-selected); border:1px solid var(--focus-ring); }
.alert-erro,[role="alert"] { background:var(--danger-bg); color:var(--danger-text); border:1px solid var(--danger-border); border-radius:6px; padding:12px; }
.modal { background:var(--overlay); padding:16px; } .modal-admin { width:min(600px,100%); max-height:90dvh; overflow:auto; background:var(--surface-raised); color:var(--text-primary); border:1px solid var(--border); border-radius:8px; padding:24px; }
.modal-close { width:36px; height:36px; padding:0; font-size:20px; background:var(--secondary); color:var(--on-secondary); }
.linha-dupla { display:flex; flex-wrap:wrap; gap:12px; } .linha-dupla > label { flex:1 1 200px; }
.sidebar-footer { display:flex; justify-content:center; flex-shrink:0; padding:12px 20px; border-top:1px solid var(--border); }
.theme-control { display:inline-flex; gap:4px; padding:3px; border:1px solid var(--border-control); border-radius:8px; }
.theme-control button { width:32px; height:32px; min-height:32px; padding:0; background:transparent; color:var(--sidebar-text); }
.theme-control button:hover:not(:disabled) { background:var(--sidebar-hover); color:var(--sidebar-text); }
.theme-control button[aria-pressed="true"] { background:var(--sidebar-active); color:var(--sidebar-active-text); }
.admin-shell .container { display:block; } .admin-shell .sidebar { position:fixed; inset:0 auto 0 0; width:280px; display:flex; flex-direction:column; overflow:hidden; background:var(--sidebar-bg); color:var(--sidebar-text); z-index:1002; border-right:1px solid var(--border); }
.sidebar-header { flex-shrink:0; background:var(--sidebar-bg); text-align:center; padding:20px 20px 12px; } .sidebar-header h2 { color:var(--sidebar-text); font-size:18px; text-align:center; }
.sidebar-logo { display:block; max-width:56px; max-height:56px; object-fit:contain; margin:0 auto 12px; } .sidebar-user { font-size:13px; overflow-wrap:anywhere; margin-bottom:8px; }
.sidebar form label { color:var(--sidebar-text); }
:root .wysi-wrapper,:root .wysi-toolbar,:root .wysi-editor,:root .wysi-popover,:root .wysi-listbox [role="listbox"] { background:var(--surface); color:var(--text-primary); border-color:var(--border-control); }
:root .wysi-editor { min-height:180px; }
:root .wysi-toolbar button,:root .wysi-toolbar [role="checkbox"],:root .wysi-toolbar [role="combobox"] { background:var(--secondary); color:var(--on-secondary); border-color:var(--border); }
:root .wysi-toolbar [aria-checked="true"],:root .wysi-toolbar [aria-selected="true"] { background:var(--selected); color:var(--on-selected); }
:root .wysi-toolbar svg { fill:currentColor; }
.menu { flex:1 1 auto; min-height:0; overflow-y:auto; padding:8px 0; } .menu li { margin:4px 12px; }
.menu a { color:var(--sidebar-text); border-radius:6px; border-left:3px solid transparent; padding:11px 12px; font-size:14px; }
.menu a:hover { background:var(--sidebar-hover); color:var(--sidebar-text); } .menu a.ativo { background:var(--sidebar-active); color:var(--sidebar-active-text); border-left-color:var(--brand-accent); font-weight:600; }
.button-logout { margin:8px 0; width:auto; min-height:32px; padding:6px 10px; font-size:13px; background:transparent; color:var(--danger); border:1px solid var(--danger-border); }
.button-logout:hover:not(:disabled) { background:var(--danger-bg); color:var(--danger-text); }
.admin-shell .content-frame { display:block; margin-left:280px; width:calc(100% - 280px); height:100dvh; background:var(--background); }
.sidebar-close { display:none; } .menu-toggle { background:var(--surface); color:var(--text-primary); border:1px solid var(--border-control); }
.overlay.show { background:var(--overlay); }
@media(max-width:768px) {
  .admin-shell .sidebar { left:-280px; transition:left .2s; } .admin-shell .sidebar.mobile-open { left:0; }
  .sidebar-close { display:flex; flex-shrink:0; margin:12px 12px 0 auto; } .admin-shell .content-frame { margin:64px 0 0; width:100%; height:calc(100dvh - 64px); }
  .menu-toggle { display:flex; top:10px; left:12px; min-width:44px; min-height:44px; }
  button,td a,summary,.paginacao a { min-height:44px; } h1 { font-size:22px; }
  td button,td .button-export,td .button-delete,.theme-control button,.button-secondary,.button-logout { min-height:44px; }
  .theme-control button { width:44px; height:44px; }
  .editor-form { flex-basis:100%; padding:12px; } body:not(.admin-shell) > .container { padding:16px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
@media print { .theme-control,.menu-toggle,.sidebar { display:none!important; } }
