:root {
  color-scheme: dark;
  --lerc-bg: #070b0a;
  --lerc-bg-elevated: #0d1311;
  --lerc-surface: #111916;
  --lerc-surface-2: #17211d;
  --lerc-surface-3: #1d2a25;
  --lerc-text: #f3f7f5;
  --lerc-text-muted: #9aaba4;
  --lerc-border: #27362f;
  --lerc-border-strong: #3a4c44;
  --lerc-primary: #9dff00;
  --lerc-primary-strong: #76c600;
  --lerc-primary-soft: rgba(157,255,0,.12);
  --lerc-accent: #21d4a7;
  --lerc-info: #38bdf8;
  --lerc-warning: #fbbf24;
  --lerc-danger: #ef4444;
  --lerc-success: #22c55e;
  --lerc-block-hover-border: #9dff00;
  --lerc-radius-sm: 8px;
  --lerc-radius: 14px;
  --lerc-radius-lg: 22px;
  --lerc-shadow: 0 18px 45px rgba(0,0,0,.28);
  --lerc-shadow-hover: 0 22px 55px rgba(0,0,0,.38), 0 0 0 1px rgba(157,255,0,.08);
  --lerc-focus: 0 0 0 3px rgba(157,255,0,.22);
  --lerc-sidebar: 252px;
  --lerc-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  /* Compatibility aliases used by specialized modules. */
  --bg: var(--lerc-bg);
  --surface: var(--lerc-surface);
  --surface-2: var(--lerc-surface-2);
  --text: var(--lerc-text);
  --muted: var(--lerc-text-muted);
  --border: var(--lerc-border);
  --accent: var(--lerc-primary);
  --warning: var(--lerc-warning);
  --shadow-lg: var(--lerc-shadow);
}

html[data-theme="light"] {
  color-scheme: light;
  --lerc-bg: #edf3ef;
  --lerc-bg-elevated: #ffffff;
  --lerc-surface: #fbfefc;
  --lerc-surface-2: #eef6f0;
  --lerc-surface-3: #e3eee7;
  --lerc-text: #152019;
  --lerc-text-muted: #617169;
  --lerc-border: #dce5e0;
  --lerc-border-strong: #c7d5ce;
  --lerc-primary: #20af0b;
  --lerc-primary-strong: #158407;
  --lerc-primary-soft: rgba(32,175,11,.10);
  --lerc-block-hover-border: #9dff00;
  --lerc-shadow: 0 16px 42px rgba(34,54,44,.10);
  --lerc-shadow-hover: 0 20px 48px rgba(34,54,44,.16), 0 0 0 1px rgba(32,175,11,.06);
  --lerc-focus: 0 0 0 3px rgba(32,175,11,.18);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: var(--lerc-font); background: var(--lerc-bg); color: var(--lerc-text); line-height: 1.5; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
img { max-width: 100%; display: block; }
hr { border: 0; border-top: 1px solid var(--lerc-border); margin: 22px 0; }

:focus-visible { outline: none; box-shadow: var(--lerc-focus); }

.button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; border-radius: 10px; border: 1px solid transparent; padding: 9px 15px; font-weight: 750; cursor: pointer; transition: transform .18s ease, border-color .18s ease, background .18s ease, color .18s ease; }
.button:hover { transform: translateY(-1px); }
.button:disabled { opacity: .5; cursor: not-allowed; transform: none; }
.button-primary { background: var(--lerc-primary); color: #071007; border-color: var(--lerc-primary); }
html[data-theme="light"] .button-primary { color: #fff; }
.button-secondary { background: var(--lerc-accent); color: #07110e; border-color: var(--lerc-accent); }
.button-danger { background: var(--lerc-danger); color: #fff; border-color: var(--lerc-danger); }
.button-warning { background: var(--lerc-warning); color: #221a03; border-color: var(--lerc-warning); }
.button-edit { background: #2563eb; color: #fff; border-color: #2563eb; }
.button-save { background: var(--lerc-success); color: #fff; border-color: var(--lerc-success); }
.button-delete { background: var(--lerc-danger); color: #fff; border-color: var(--lerc-danger); }
.button-edit::before{content:'';display:inline-block;width:1.15em;height:1.15em;background:url('../images/panel-icons/editar.png') center/contain no-repeat;vertical-align:-.2em}
.button-save::before { content: '▣'; font-size: 1.05em; }
.button-delete::before{content:'';display:inline-block;width:1.15em;height:1.15em;background:url('../images/panel-icons/excluir.png') center/contain no-repeat;vertical-align:-.2em}
.button-ghost { background: var(--lerc-surface-2); color: var(--lerc-text); border-color: var(--lerc-border); }
.button-ghost:hover { border-color: var(--lerc-block-hover-border); }
.button-small { min-height: 34px; padding: 6px 11px; font-size: .86rem; }
.button-large { min-height: 50px; padding: 12px 20px; font-size: 1rem; }
.button-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.icon-button { width: 40px; height: 40px; display: inline-grid; place-items: center; border-radius: 10px; background: var(--lerc-surface-2); color: var(--lerc-text); border: 1px solid var(--lerc-border); cursor: pointer; }
.icon-button:hover { border-color: var(--lerc-block-hover-border); }

.panel, .card, .metric-card { background: var(--lerc-surface); border: 1px solid var(--lerc-border); border-radius: var(--lerc-radius); box-shadow: var(--lerc-shadow); transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.panel:hover, .card:hover, .metric-card:hover { transform: translateY(-2px); border-color: var(--lerc-block-hover-border); box-shadow: var(--lerc-shadow-hover); }
.panel { padding: 22px; }
.card { padding: 18px; }
.metric-card { padding: 18px; }
.panel h2, .panel h3, .card h3 { margin: 0 0 6px; }

.alert { border: 1px solid var(--lerc-border); border-left-width: 4px; border-radius: 10px; padding: 12px 14px; margin: 0 0 16px; background: var(--lerc-surface); }
.alert-success { border-color: color-mix(in srgb, var(--lerc-success) 48%, var(--lerc-border)); border-left-color: var(--lerc-success); background: color-mix(in srgb, var(--lerc-success) 14%, var(--lerc-surface)); }
.alert-error { border-color: color-mix(in srgb, var(--lerc-danger) 48%, var(--lerc-border)); border-left-color: var(--lerc-danger); background: color-mix(in srgb, var(--lerc-danger) 14%, var(--lerc-surface)); }
.alert-warning { border-left-color: var(--lerc-warning); }
.alert-info { border-left-color: var(--lerc-info); }

.badge { display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; padding: 4px 9px; font-size: .76rem; font-weight: 800; background: var(--lerc-surface-2); border: 1px solid var(--lerc-border); white-space: nowrap; }
.badge-success { color: var(--lerc-success); border-color: color-mix(in srgb, var(--lerc-success) 50%, var(--lerc-border)); }
.badge-warning { color: var(--lerc-warning); border-color: color-mix(in srgb, var(--lerc-warning) 50%, var(--lerc-border)); }
.badge-danger { color: var(--lerc-danger); border-color: color-mix(in srgb, var(--lerc-danger) 50%, var(--lerc-border)); }
.badge-info { color: var(--lerc-info); border-color: color-mix(in srgb, var(--lerc-info) 50%, var(--lerc-border)); }

label { display: grid; gap: 7px; color: var(--lerc-text); font-size: .9rem; font-weight: 700; }
label small, .form-hint, .muted { color: var(--lerc-text-muted); font-size: .82rem; font-weight: 500; }
input, select, textarea { width: 100%; min-height: 42px; border: 1px solid var(--lerc-border); border-radius: 10px; padding: 9px 11px; background: var(--lerc-bg-elevated); color: var(--lerc-text); font-weight: 400; }
textarea { min-height: 110px; resize: vertical; }
input:hover, select:hover, textarea:hover { border-color: var(--lerc-border-strong); }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--lerc-primary); box-shadow: var(--lerc-focus); }
input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"] { border-color: var(--lerc-danger); }
input[type="checkbox"], input[type="radio"] { width: 18px; min-height: 18px; accent-color: var(--lerc-primary); }
.form-grid { display: grid; gap: 14px; }
.form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.form-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.form-stack { display: grid; gap: 16px; }
.inline-field { display: flex; align-items: center; gap: 8px; }
.inline-field input { max-width: 140px; }
.checkbox-line, .radio-line { display: flex; align-items: center; gap: 9px; font-weight: 600; }

.toggle { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; }
.toggle input { position: absolute; opacity: 0; pointer-events: none; }
.toggle-track { width: 48px; height: 26px; border-radius: 999px; background: var(--lerc-surface-3); border: 1px solid var(--lerc-border); padding: 3px; transition: .2s ease; }
.toggle-track::after { content: ''; display: block; width: 18px; height: 18px; border-radius: 50%; background: var(--lerc-text-muted); transition: transform .2s ease, background .2s ease; }
.toggle input:checked + .toggle-track { background: var(--lerc-primary-soft); border-color: var(--lerc-primary); }
.toggle input:checked + .toggle-track::after { transform: translateX(21px); background: var(--lerc-primary); }

.table-wrap { overflow-x: auto; border: 1px solid var(--lerc-border); border-radius: var(--lerc-radius); background: var(--lerc-surface); }
table { width: 100%; border-collapse: collapse; min-width: 760px; }
th, td { text-align: left; padding: 12px 13px; border-bottom: 1px solid var(--lerc-border); vertical-align: middle; }
th { color: var(--lerc-text-muted); font-size: .76rem; letter-spacing: .045em; text-transform: uppercase; background: var(--lerc-surface-2); }
tbody tr:hover { background: var(--lerc-primary-soft); }
tbody tr:last-child td { border-bottom: 0; }
.numeric { text-align: right; font-variant-numeric: tabular-nums; }

.empty-state { min-height: 180px; display: grid; place-items: center; text-align: center; color: var(--lerc-text-muted); padding: 28px; }
.loading { opacity: .7; pointer-events: none; }
.skeleton { border-radius: 8px; background: linear-gradient(90deg, var(--lerc-surface-2), var(--lerc-surface-3), var(--lerc-surface-2)); background-size: 200% 100%; animation: skeleton 1.4s infinite; }
@keyframes skeleton { to { background-position: -200% 0; } }

.lerc-page-heading { margin: 0 0 24px; }
.lerc-page-kicker { margin: 0 0 5px; color: var(--lerc-primary); font-size: .76rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.lerc-page-title { margin: 0; font-size: clamp(1.7rem, 2.2vw, 2.35rem); line-height: 1.08; letter-spacing: -.035em; }
.lerc-page-description { margin: 8px 0 0; max-width: 780px; color: var(--lerc-text-muted); }
.heading-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }

.status-dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .88em; }
.text-danger { color: var(--lerc-danger); }
.text-success { color: var(--lerc-success); }
.text-warning { color: var(--lerc-warning); }
.text-info { color: var(--lerc-info); }
.eyebrow { color: var(--lerc-primary); font-size: .75rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }

.pagination { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; align-items: center; margin-top: 14px; }
.pagination a, .pagination span { min-width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--lerc-border); border-radius: 9px; background: var(--lerc-surface); }
.pagination .current { border-color: var(--lerc-primary); color: var(--lerc-primary); }

@media (max-width: 800px) {
  .form-grid.two, .form-grid.three, .form-grid.four { grid-template-columns: 1fr; }
  .heading-row { align-items: stretch; flex-direction: column; }
  .heading-row .button { align-self: flex-start; }
  .panel { padding: 17px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .001ms !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; }
}

/* 0.7.1 — compactação tipográfica e leitura profissional */
th { font-size: calc(.76rem - 1px); }
td { font-size: calc(1rem - 1px); }
td input, td select, td textarea, td .button { font-size: inherit; }
.readonly-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.readonly-fieldset:disabled { opacity: .86; }
.permission-readonly { position: relative; }
.user-menu-logout-form { margin: 0; }
.user-menu-logout-form .user-menu-logout { width: 100%; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }

@media (max-width: 800px) {
  .button,
  .pagination a,
  .pagination span,
  .tab {
    justify-content: center;
    text-align: center;
    font-size: calc(.9rem - 1px);
    line-height: 1.25;
  }
  .button-small { font-size: calc(.82rem - 1px); }
  .button-large { font-size: calc(.94rem - 1px); }
  .button-row > .button,
  .button-row > a.button,
  .button-row > button.button { text-align: center; }
  th { font-size: calc(.72rem - 1px); }
  td { font-size: calc(.92rem - 1px); }
}

/* 0.7.5 — campos claros com identidade visual suave */
html[data-theme="light"] input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]),
html[data-theme="light"] select,
html[data-theme="light"] textarea {
  background: #f5fbf6;
  border-color: #cfe0d3;
}
html[data-theme="light"] input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]):hover,
html[data-theme="light"] select:hover,
html[data-theme="light"] textarea:hover { background:#f8fdf9; border-color:#accbb3; }
html[data-theme="light"] input[disabled], html[data-theme="light"] select[disabled], html[data-theme="light"] textarea[disabled],
html[data-theme="light"] input[readonly], html[data-theme="light"] textarea[readonly] { background:#edf3ef; color:var(--lerc-text-muted); }
.tracking-format-hint { display:block; margin-top:3px; color:var(--lerc-text-muted); font-size:.76rem; font-weight:500; }
.tracking-format-hint.is-error { color:var(--lerc-danger); }

/* 0.7.9 — uploads consistentes com os temas */
input[type="file"] {
  min-height: 44px;
  padding: 5px;
  border: 1px solid var(--lerc-border-strong);
  background: var(--lerc-bg-elevated);
  color: var(--lerc-text-muted);
  cursor: pointer;
}
input[type="file"]::file-selector-button {
  min-height: 32px;
  margin: 0 10px 0 0;
  padding: 6px 12px;
  border: 1px solid color-mix(in srgb,var(--lerc-primary) 52%,var(--lerc-border));
  border-radius: 8px;
  background: color-mix(in srgb,var(--lerc-primary) 16%,var(--lerc-surface-2));
  color: var(--lerc-text);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  transition: background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
input[type="file"]::-webkit-file-upload-button {
  min-height: 32px;
  margin: 0 10px 0 0;
  padding: 6px 12px;
  border: 1px solid color-mix(in srgb,var(--lerc-primary) 52%,var(--lerc-border));
  border-radius: 8px;
  background: color-mix(in srgb,var(--lerc-primary) 16%,var(--lerc-surface-2));
  color: var(--lerc-text);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
input[type="file"]:hover { border-color: var(--lerc-primary); }
input[type="file"]:hover::file-selector-button,
input[type="file"]:focus::file-selector-button {
  background: color-mix(in srgb,var(--lerc-primary) 25%,var(--lerc-surface-2));
  border-color: var(--lerc-primary);
  box-shadow: 0 0 0 2px color-mix(in srgb,var(--lerc-primary) 16%,transparent);
}
html[data-theme="light"] input[type="file"] { background:#f5fbf6; border-color:#c3d9c8; color:var(--lerc-text-muted); }
html[data-theme="light"] input[type="file"]::file-selector-button,
html[data-theme="light"] input[type="file"]::-webkit-file-upload-button {
  background:#e1f3e4;
  border-color:#9bc4a3;
  color:#155b20;
}
html[data-theme="light"] input[type="file"]:hover::file-selector-button,
html[data-theme="light"] input[type="file"]:focus::file-selector-button { background:#d4edd9; border-color:var(--lerc-primary); }

/* 0.7.9 — checkboxes usados como switch não herdam dimensões dos campos de formulário */
.toggle input[type="checkbox"]{width:1px!important;min-height:1px!important;background:transparent!important;border:0!important;padding:0!important}
