:root {
  --color-topbar: #FFD100;
  --color-topbar-text: #3A2E00;
  --color-sidebar: #1B1F3B;
  --color-sidebar-icon: #9CA3C4;
  --color-sidebar-icon-active-bg: #2D6CDF;

  --color-accent: #0a00b4;
  --color-accent-muted: #E6F0FD;

  --color-success-bg: #E9F7EF;
  --color-success-text: #1E7B45;
  --color-warning-bg: #FEF3DC;
  --color-warning-text: #8A5A0A;
  --color-danger-bg: #FBE7E7;
  --color-danger-text: #B23434;

  --color-bg-page: #F5F6F8;
  --color-surface: #FFFFFF;
  --color-border: #E5E7EB;

  --color-text-primary: #1A1A1A;
  --color-text-secondary: #6B7280;
  --color-text-muted: #9CA3AF;

  --radius: 8px;
  --radius-lg: 12px;

  --bs-primary: #2D6CDF;
  --bs-primary-rgb: 45, 108, 223;
  --bs-body-font-family: 'Inter', system-ui, sans-serif;
  --bs-body-color: var(--color-text-primary);
  --bs-body-bg: var(--color-bg-page);
  --bs-border-radius: var(--radius);
  --bs-border-radius-lg: var(--radius-lg);
}

body {
  font-family: 'Inter', system-ui, sans-serif;
  background: var(--color-bg-page);
  color: var(--color-text-primary);
}

/* ---------- Topbar ---------- */
.topbar {
  background: var(--color-topbar);
  color: var(--color-topbar-text);
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 20px;
  position: sticky;
  top: 0;
  z-index: 20;
}
.brand-group {
  display: flex;
  align-items: center;
  text-decoration: none;
}
.brand-group .logo {
  height: 18px;
  width: auto;
}
.brand-divider {
  width: 1px;
  height: 20px;
  background: rgba(0, 0, 0, 0.15);
  margin: 0 10px;
}
.topbar .brand {
  font-weight: 600;
  font-size: 16px;
  color: var(--color-topbar-text);
  text-decoration: none;
}
.topbar .avatar {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--color-topbar-text);
  color: var(--color-topbar);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 600;
}

/* ---------- Sidebar ---------- */
.app-shell {
  display: flex;
  min-height: calc(100vh - 56px);
}
.sidebar {
  width: 64px;
  flex-shrink: 0;
  background: var(--color-sidebar);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 16px 0;
}
.sidebar a {
  width: 40px;
  height: 40px;
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-sidebar-icon);
  font-size: 20px;
  text-decoration: none;
}
.sidebar a:hover {
  color: #fff;
}
.sidebar a.active {
  background: var(--color-sidebar-icon-active-bg);
  color: #fff;
}

/* ---------- Main content ---------- */
.main-content {
  flex: 1;
  padding: 24px 28px;
  max-width: 1200px;
}

/* ---------- Cards ---------- */
.card-flat {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
}
.metric-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 14px 16px;
}
.metric-card .label {
  font-size: 12.5px;
  color: var(--color-text-secondary);
  margin-bottom: 4px;
}
.metric-card .value {
  font-size: 24px;
  font-weight: 600;
}

/* ---------- Status badges ---------- */
.status-badge {
  display: inline-flex;
  align-items: center;
  font-size: 12.5px;
  font-weight: 500;
  padding: 3px 10px;
  border-radius: var(--radius);
}
.status-publicado,
.status-ativo { background: var(--color-success-bg); color: var(--color-success-text); }
.status-aguardando { background: var(--color-warning-bg); color: var(--color-warning-text); }
.status-erro,
.status-inativo { background: var(--color-danger-bg); color: var(--color-danger-text); }

/* ---------- Formulários ---------- */
.form-control:focus,
.form-select:focus {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px var(--color-accent-muted);
}
label.form-label {
  font-size: 12.5px;
  font-weight: 500;
  color: var(--color-text-secondary);
}

/* ---------- Tabelas ---------- */
.table thead tr {
  font-size: 12.5px;
  color: var(--color-text-secondary);
  font-weight: 500;
  border-bottom: 1px solid var(--color-border);
}
.table tbody {
  font-size: 13.5px;
}
.table td, .table th {
  vertical-align: middle;
}

/* ---------- Botões ---------- */
.btn-accent {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: #fff;
}
.btn-accent:hover {
  background: #2559bd;
  border-color: #2559bd;
  color: #fff;
}
.btn-outline-accent {
  border-color: var(--color-accent);
  color: var(--color-accent);
}
.btn-outline-accent:hover {
  background: var(--color-accent-muted);
  color: var(--color-accent);
}

/* ---------- Misc ---------- */
.text-muted-sm { font-size: 12.5px; color: var(--color-text-secondary); }
a.link-back { font-size: 13px; color: var(--color-accent); text-decoration: none; }
a.link-back:hover { text-decoration: underline; }

/* ---------- Dropzones ---------- */
.dropzone {
  border: 1.5px dashed var(--color-border);
  border-radius: var(--radius);
  padding: 20px 10px;
  text-align: center;
  color: var(--color-text-muted);
  transition: border-color 0.15s ease, background 0.15s ease;
}
.dropzone.dropzone-active {
  border-color: var(--color-accent);
  background: var(--color-accent-muted);
  color: var(--color-accent);
}
.dropzone .format-tag {
  font-size: 11px;
  background: var(--color-accent-muted);
  color: var(--color-accent);
  padding: 2px 8px;
  border-radius: 4px;
}

/* ---------- Selos de formato (FEED / STORY) ---------- */
.badge-pill {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.03em;
  padding: 3px 10px;
  border-radius: 999px;
}
.badge-feed { background: #EDE9FE; color: #6D28D9; }
.badge-story { background: #FCE7F3; color: #BE185D; }
.format-ratio { font-size: 13px; color: var(--color-text-secondary); }