:root {
  --admin-font-family: "Inter", "Segoe UI", Arial, sans-serif;
  --admin-bg: #f4f6f8;
  --admin-surface: #ffffff;
  --admin-surface-soft: #f8fafb;
  --admin-primary: #0a5967;
  --admin-secondary: #052f38;
  --admin-primary-dark: #078fa9;
  --admin-primary-soft: #4fc3d4;
  --admin-primary-rgb: 10, 89, 103;
  --admin-primary-soft-rgb: 79, 195, 212;
  --admin-ink: #20242b;
  --admin-muted: #68717d;
  --admin-line: #e2e6ea;
  --admin-success: #16845b;
  --admin-warning: #bd7414;
  --admin-danger: #c93546;
  --admin-radius-sm: .7rem;
  --admin-radius: 1rem;
  --admin-radius-lg: 1.35rem;
  --admin-shadow: 0 1rem 3rem rgba(20,26,33,.08);
  --admin-sidebar-width: 17.5rem;
  --admin-topbar-height: 4.5rem;
}
* { box-sizing: border-box; }
html { min-height: 100%; }
body { margin: 0; }
.crm5-admin { min-width: 20rem; color: var(--admin-ink); background: var(--admin-bg); font-family: var(--admin-font-family); line-height: 1.5; text-rendering: optimizeLegibility; }
.crm5-admin a { color: var(--admin-primary); text-decoration: none; }
.crm5-admin button, .crm5-admin input, .crm5-admin select, .crm5-admin textarea { font: inherit; }
.crm5-admin button { cursor: pointer; }
.admin-skip-link { position: fixed; z-index: 2100; top: .75rem; left: .75rem; padding: .7rem 1rem; border-radius: 999px; color: #fff; background: var(--admin-primary); transform: translateY(-180%); }
.admin-skip-link:focus { color: #fff; transform: translateY(0); }
.admin-layout { min-height: 100vh; }

.admin-sidebar { position: fixed; z-index: 1040; inset: 0 auto 0 0; display: flex; width: var(--admin-sidebar-width); flex-direction: column; overflow: hidden; color: #fff; background: var(--admin-secondary); box-shadow: .75rem 0 2.4rem rgba(13,17,22,.12); transition: transform 180ms ease; }
.admin-brand { display: flex; min-height: var(--admin-topbar-height); align-items: center; padding: .8rem 1rem; border-bottom: 1px solid rgba(255,255,255,.08); }
.admin-brand > a { display: flex; min-width: 0; flex: 1; align-items: center; gap: .75rem; color: #fff; }
.admin-brand-mark, .admin-avatar { display: inline-grid; flex: 0 0 auto; place-items: center; border-radius: .75rem; color: #fff; background: var(--admin-primary); font-weight: 800; }
.admin-brand-mark { width: 2.55rem; height: 2.55rem; }
.admin-avatar { width: 2.35rem; height: 2.35rem; font-size: .72rem; }
.admin-brand-copy, .admin-user-copy { display: flex; min-width: 0; flex-direction: column; white-space: nowrap; }
.admin-brand-copy strong { font-size: 1rem; letter-spacing: -.02em; }
.admin-brand-copy small, .admin-user-copy small { color: rgba(255,255,255,.52); font-size: .72rem; }
.admin-menu-search { position: relative; margin: 1rem; }
.admin-menu-search i { position: absolute; top: 50%; left: .85rem; color: rgba(255,255,255,.38); transform: translateY(-50%); }
.admin-menu-search input { width: 100%; height: 2.7rem; padding: 0 .75rem 0 2.45rem; border: 1px solid rgba(255,255,255,.09); border-radius: .8rem; color: #fff; background: rgba(255,255,255,.055); font-size: .86rem; outline: none; }
.admin-menu-search input::placeholder { color: rgba(255,255,255,.38); }
.admin-nav { flex: 1; overflow-y: auto; padding: 0 .75rem 1rem; scrollbar-width: thin; }
.admin-nav-group + .admin-nav-group { margin-top: 1.1rem; }
.admin-nav-label { display: block; padding: 0 .7rem .5rem; color: rgba(255,255,255,.34); font-size: .66rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.admin-nav-link { display: flex; min-height: 2.75rem; align-items: center; gap: .85rem; margin-bottom: .2rem; padding: .55rem .75rem; border-radius: .8rem; color: rgba(255,255,255,.68) !important; font-size: .88rem; font-weight: 650; white-space: nowrap; transition: 140ms ease; }
.admin-nav-link i { width: 1.25rem; text-align: center; }
.admin-nav-link:hover { color: #fff !important; background: rgba(255,255,255,.07); }
.admin-nav-link.active { color: #fff !important; background: var(--admin-primary); box-shadow: 0 .6rem 1.4rem rgba(var(--admin-primary-rgb),.24); }
.admin-sidebar-footer { display: flex; align-items: center; gap: .75rem; padding: .9rem 1rem; border-top: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.025); }
.admin-user-copy { flex: 1; color: #fff !important; }
.admin-user-copy strong { overflow: hidden; font-size: .82rem; text-overflow: ellipsis; }
.admin-sidebar-footer button { display: grid; width: 2.2rem; height: 2.2rem; border: 0; border-radius: .65rem; place-items: center; color: rgba(255,255,255,.62); background: rgba(255,255,255,.06); }
.admin-sidebar-footer button:hover { color: #fff; background: var(--admin-primary); }

.admin-main { min-height: 100vh; margin-left: var(--admin-sidebar-width); }
.admin-topbar { position: sticky; z-index: 1020; top: 0; display: flex; height: var(--admin-topbar-height); align-items: center; justify-content: space-between; gap: 1rem; padding: 0 1.6rem; border-bottom: 1px solid rgba(226,230,234,.88); background: rgba(255,255,255,.94); backdrop-filter: blur(.75rem); }
.admin-topbar-start, .admin-topbar-actions { display: flex; align-items: center; gap: .8rem; }
.admin-menu-toggle { display: none; width: 2.65rem; height: 2.65rem; border: 0; border-radius: .8rem; place-items: center; color: var(--admin-ink); background: var(--admin-surface-soft); }
.admin-topbar-title { display: flex; flex-direction: column; }
.admin-topbar-title span { color: var(--admin-muted); font-size: .68rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.admin-topbar-title strong { font-size: .95rem; }
.admin-icon-button { display: inline-grid; width: 2.6rem; height: 2.6rem; border: 1px solid var(--admin-line); border-radius: .8rem; place-items: center; color: var(--admin-ink) !important; background: #fff; }
.admin-icon-button:hover { color: #fff !important; border-color: var(--admin-primary); background: var(--admin-primary); }
.admin-profile-button { display: flex; align-items: center; gap: .7rem; padding: .3rem .55rem .3rem .3rem; border-radius: .85rem; color: var(--admin-ink) !important; }
.admin-profile-button:hover { background: var(--admin-surface-soft); }
.admin-profile-button > span:not(.admin-avatar) { display: flex; flex-direction: column; line-height: 1.15; }
.admin-profile-button strong { font-size: .8rem; }
.admin-profile-button small { color: var(--admin-muted); font-size: .68rem; }
.admin-profile-button > i { color: #a3aab3; font-size: .72rem; }

.admin-content { min-height: calc(100vh - var(--admin-topbar-height) - 6.5rem); padding: clamp(1.25rem,2.8vw,2.5rem); }
.admin-page-heading { display: flex; min-height: 8.5rem; align-items: center; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.15rem; padding: clamp(1.15rem,2vw,1.6rem); border: 1px solid var(--admin-line); border-radius: var(--admin-radius-lg); background: linear-gradient(135deg,#fff 0%,#fff 72%,#fafbfc 100%); box-shadow: 0 .35rem 1.4rem rgba(20,26,33,.04); }
.admin-page-heading h1 { margin: 0; color: var(--admin-ink); font-size: clamp(1.65rem,2.4vw,2.15rem); font-weight: 820; letter-spacing: -.045em; line-height: 1.05; }
.admin-page-heading p { max-width: 42rem; margin: .38rem 0 0; color: var(--admin-muted); font-size: .88rem; }
.admin-breadcrumb { margin: 0 0 .5rem; color: var(--admin-muted); font-size: .72rem; }
.admin-breadcrumb a { color: var(--admin-muted); }
.admin-page-actions { display: flex; align-items: center; gap: .55rem; }
.admin-page-action { display: inline-flex; min-height: 2.65rem; align-items: center; gap: .48rem; padding: .55rem .9rem; border-radius: .78rem; font-size: .76rem; font-weight: 760; }
.admin-page-action-secondary { border: 1px solid #d6dce2; color: #404750 !important; background: #fff; }
.admin-footer { display: flex; min-height: 4.75rem; align-items: center; justify-content: space-between; gap: 1.25rem; margin: 0 clamp(1.25rem,2.8vw,2.5rem) 1.25rem; padding: 1rem 0; color: var(--admin-muted); font-size: .74rem; }

.welcome-panel, .admin-section, .toolbar, .editor, .table-wrap, .metric { border: 1px solid var(--admin-line); background: var(--admin-surface); box-shadow: none; }
.welcome-panel { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.35rem; border-radius: var(--admin-radius); }
.welcome-panel h2 { margin: 0 0 .35rem; font-size: 1.1rem; }
.welcome-panel p, .toolbar p { margin: 0; color: var(--admin-muted); font-size: .82rem; }
.metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .85rem; margin: 1rem 0; }
.metric { position: relative; display: flex; min-height: 7rem; flex-direction: column; justify-content: center; padding: 1rem 4rem 1rem 1rem; border-radius: var(--admin-radius); color: var(--admin-ink) !important; }
.metric > span { position: absolute; top: 1rem; right: 1rem; display: grid; width: 2.7rem; height: 2.7rem; place-items: center; border-radius: .85rem; color: var(--admin-primary); background: rgba(var(--admin-primary-soft-rgb),.18); }
.metric strong { font-size: 1.5rem; line-height: 1.15; }
.metric p { margin: .25rem 0 0; color: var(--admin-muted); font-size: .75rem; }
.admin-section { padding: 1.2rem; border-radius: var(--admin-radius); }
.admin-section h2 { margin: 0 0 1rem; font-size: 1.05rem; }
.quick-links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; }
.quick-links a { display: flex; min-height: 5rem; align-items: center; gap: .7rem; padding: 1rem; border: 1px solid #e5e9ed; border-radius: .95rem; color: var(--admin-ink); background: var(--admin-surface-soft); font-size: .78rem; font-weight: 700; }
.quick-links a i { color: var(--admin-primary); }
.notice { margin-top: 1rem; padding: .9rem 1rem; border: 1px solid #f1d29d; border-radius: .8rem; color: #7b5518; background: #fff8e8; font-size: .78rem; }
.toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; padding: 1rem 1.2rem; border-radius: var(--admin-radius); }

.btn { display: inline-flex; min-height: 2.55rem; align-items: center; justify-content: center; gap: .45rem; padding: .55rem .9rem; border: 1px solid transparent; border-radius: .78rem; font-size: .76rem; font-weight: 760; }
.btn-primary { color: #fff !important; border-color: var(--admin-primary); background: var(--admin-primary); box-shadow: 0 .45rem 1rem rgba(var(--admin-primary-rgb),.18); }
.btn-primary:hover { border-color: var(--admin-primary-dark); background: var(--admin-primary-dark); }
.btn-success { color: #fff !important; border-color: var(--admin-success); background: var(--admin-success); }
.btn-danger { color: #fff !important; border-color: var(--admin-danger); background: var(--admin-danger); }
.btn-light { color: #404750 !important; border-color: #d6dce2; background: #fff; }
.btn:disabled, button:disabled { opacity: .55; cursor: not-allowed; }

.table-wrap { overflow-x: auto; border-radius: var(--admin-radius); }
table { width: 100%; border-collapse: collapse; font-size: .8rem; }
th, td { padding: .85rem 1rem; border-bottom: 1px solid var(--admin-line); text-align: left; vertical-align: middle; }
th { color: var(--admin-muted); background: var(--admin-surface-soft); font-size: .66rem; font-weight: 820; letter-spacing: .06em; text-transform: uppercase; }
tbody tr:hover { background: var(--admin-surface-soft); }
td:first-child { min-width: 14rem; }
td small, td > a { display: block; margin-top: .25rem; color: var(--admin-muted); font-size: .7rem; }
.row-actions { display: flex; gap: .45rem; white-space: nowrap; }
.row-actions .btn { min-height: 2rem; padding: .35rem .65rem; }
.icon-button { display: inline-grid; width: 2rem; height: 2rem; padding: 0; border: 1px solid #f0c9ce; border-radius: .55rem; place-items: center; color: var(--admin-danger); background: #fff5f6; }
.badge { display: inline-block; padding: .34rem .55rem; border-radius: 999px; color: #fff; background: var(--admin-muted); font-size: .65rem; font-weight: 750; }
.badge.published { background: var(--admin-success); }

.editor { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.15rem 1.35rem; padding: 1.4rem; border-radius: var(--admin-radius); }
.field.full, .full { grid-column: 1/-1; }
.field label { display: block; margin-bottom: .4rem; font-size: .76rem; font-weight: 750; }
.field small, .form-note { display: block; margin-top: .35rem; color: var(--admin-muted); font-size: .68rem; }
input, textarea, select { width: 100%; min-height: 2.7rem; padding: .6rem .78rem; border: 1px solid #d8dde2; border-radius: .72rem; color: var(--admin-ink); background: #fff; outline: none; }
textarea { min-height: 8rem; resize: vertical; }
input:focus, textarea:focus, select:focus { border-color: var(--admin-primary-soft); box-shadow: 0 0 0 .2rem rgba(var(--admin-primary-soft-rgb),.18); }
input[type=file] { padding: .5rem; }
.editor-actions { display: flex; gap: .6rem; padding-top: 1rem; border-top: 1px solid var(--admin-line); }
.form-feedback { min-height: 1.2rem; color: var(--admin-success); font-size: .76rem; }
.form-feedback.error { color: var(--admin-danger); }
.upload-field, .gallery-editor { padding-top: 1rem; border-top: 1px solid var(--admin-line); }
.upload-preview img { display: block; max-width: 18rem; max-height: 11rem; margin-top: .75rem; border-radius: .8rem; object-fit: cover; }
.text-button { padding: .45rem 0; border: 0; color: var(--admin-primary); background: transparent; font-size: .72rem; }
.upload-status { display: block; color: var(--admin-muted); font-size: .7rem; }
.gallery-editor { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .85rem; margin-top: 1rem; }
.gallery-item { padding: .75rem; border: 1px solid var(--admin-line); border-radius: .85rem; background: var(--admin-surface-soft); }
.gallery-item img { width: 100%; height: 8rem; border-radius: .65rem; object-fit: cover; }
.empty-state { padding: 2rem; color: var(--admin-muted); text-align: center; }
.actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.toast { position: fixed; z-index: 2000; right: 1.5rem; bottom: 1.5rem; max-width: min(28rem,calc(100vw - 2rem)); padding: .9rem 1.1rem; border-radius: .8rem; color: #fff; background: var(--admin-secondary); box-shadow: var(--admin-shadow); }
dialog { max-width: 28rem; padding: 1.5rem; border: 1px solid var(--admin-line); border-radius: var(--admin-radius); color: var(--admin-ink); }
dialog::backdrop { background: rgba(5,47,56,.6); }

.admin-login-page { min-height: 100vh; background: var(--admin-secondary); }
.admin-login-shell { display: grid; min-height: 100vh; padding: 1.25rem; place-items: center; background: radial-gradient(circle at 12% 18%,rgba(var(--admin-primary-soft-rgb),.2),transparent 28rem),radial-gradient(circle at 88% 78%,rgba(255,255,255,.05),transparent 25rem); }
.admin-login-card { width: min(100%,27rem); padding: clamp(1.5rem,4vw,2.25rem); border: 1px solid rgba(255,255,255,.09); border-radius: 1.4rem; background: #fff; box-shadow: 0 2rem 6rem rgba(0,0,0,.32); }
.admin-login-brand { display: flex; align-items: center; gap: .75rem; margin-bottom: 2rem; }
.admin-login-brand > span:last-child { display: flex; flex-direction: column; }
.admin-login-brand strong { font-size: .95rem; }
.admin-login-brand small { color: var(--admin-muted); font-size: .7rem; }
.admin-login-heading { margin-bottom: 1.4rem; }
.admin-kicker { color: var(--admin-primary); font-size: .64rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.admin-login-heading h1 { margin: .2rem 0 .35rem; font-size: 1.75rem; font-weight: 820; letter-spacing: -.045em; }
.admin-login-heading p { margin: 0; color: var(--admin-muted); font-size: .84rem; }
.admin-login-card form { display: grid; gap: 1rem; }
.admin-login-card .btn-primary { width: 100%; margin-top: .25rem; min-height: 2.75rem; }
.admin-login-note { display: flex; align-items: center; justify-content: center; gap: .4rem; margin: 1.3rem 0 0; color: var(--admin-muted); font-size: .68rem; text-align: center; }
.back-link { display: block; margin-top: .8rem; color: var(--admin-muted) !important; text-align: center; font-size: .7rem; }

@media (max-width: 991.98px) {
  .admin-sidebar { width: min(19rem,88vw); transform: translateX(-105%); }
  .admin-sidebar.is-open { transform: translateX(0); }
  .admin-main { margin-left: 0; }
  .admin-menu-toggle { display: inline-grid; }
  .admin-sidebar-overlay.is-open { position: fixed; z-index: 1035; inset: 0; display: block; background: rgba(11,15,20,.52); backdrop-filter: blur(.15rem); }
}
@media (max-width: 767.98px) {
  .admin-topbar { padding-inline: 1rem; }
  .admin-topbar-title span, .admin-profile-button > span:not(.admin-avatar), .admin-profile-button > i { display: none; }
  .admin-content { padding: 1.1rem; }
  .admin-page-heading { min-height: 0; align-items: flex-start; flex-direction: column; }
  .admin-page-actions { width: 100%; }
  .metrics { grid-template-columns: 1fr 1fr; }
  .quick-links { grid-template-columns: 1fr; }
  .welcome-panel, .toolbar { align-items: flex-start; flex-direction: column; }
  .editor { grid-template-columns: 1fr; }
  .field.full, .full { grid-column: auto; }
  .gallery-editor { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .admin-footer { align-items: stretch; flex-direction: column; gap: .35rem; }
  .table-wrap::before { content: "Deslize para ver todas as colunas →"; display: block; padding: .75rem 1rem; color: var(--admin-muted); background: var(--admin-surface-soft); font-size: .68rem; }
}
@media (max-width: 420px) {
  .metrics, .gallery-editor { grid-template-columns: 1fr; }
}

.status-switch { display:inline-flex; align-items:center; gap:.55rem; cursor:pointer; user-select:none; }
.status-switch input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.status-switch-track { position:relative; display:inline-block; width:2.65rem; height:1.45rem; border-radius:999px; background:#c8cfd5; transition:background 160ms ease; }
.status-switch-track > span { position:absolute; top:.2rem; left:.2rem; width:1.05rem; height:1.05rem; border-radius:50%; background:#fff; box-shadow:0 .12rem .32rem rgba(0,0,0,.22); transition:transform 160ms ease; }
.status-switch input:checked + .status-switch-track { background:var(--admin-success); }
.status-switch input:checked + .status-switch-track > span { transform:translateX(1.2rem); }
.status-switch input:focus-visible + .status-switch-track { outline:.2rem solid rgba(var(--admin-primary-soft-rgb),.35); outline-offset:.12rem; }
.status-switch input:disabled + .status-switch-track { opacity:.55; cursor:wait; }
.status-switch strong { min-width:3.8rem; color:var(--admin-muted); font-size:.65rem; font-weight:800; }
.status-switch input:checked ~ strong { color:var(--admin-success); }
.row-actions .btn-danger { min-height:2rem; padding:.35rem .65rem; }