/* ============================================================================
   styles.css — shared component styles for ¡No Problemos!

   These rules are page-agnostic: they consume CSS custom properties
   (--accent, --surface, --border, …) that each HTML page defines in its own
   :root block, so a page's theme values stay local while the component markup
   is styled once here.

   Loaded via <link rel="stylesheet" href="/styles.css"> in the <head> BEFORE
   each page's inline <style>, so any page can override a shared rule locally
   (e.g. login.html repositions the theme switcher).

   Components below are rendered identically across pages — many by shared JS
   (sidebar.js, data-table.js). Keep this file in sync when changing them.
   ============================================================================ */

/* ── Theme switcher (Light / Dark / Auto dropdown) ────────────────────────── */
.theme-switcher { position: relative; display: inline-flex; flex-shrink: 0; }
.theme-switcher-btn { display: inline-flex; align-items: center; gap: 5px; }
.theme-current-icon { display: inline-flex; }
.theme-chevron { transition: transform 0.15s; }
.theme-switcher-btn[aria-expanded="true"] .theme-chevron { transform: rotate(180deg); }
.theme-menu {
  display: none; position: absolute; right: 0; top: calc(100% + 6px); z-index: 60;
  min-width: 152px; background: var(--surface); border: 1px solid var(--border-hi);
  border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,0.25); overflow: hidden;
}
.theme-menu.open { display: block; animation: themeMenuIn 0.12s ease; }
@keyframes themeMenuIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
.theme-opt {
  display: flex; align-items: center; gap: 8px; width: 100%; padding: 8px 12px;
  background: none; border: none; color: var(--text); font-size: 0.82rem;
  font-family: inherit; cursor: pointer; text-align: left; transition: background 0.1s;
}
.theme-opt:hover { background: color-mix(in srgb, var(--accent) 10%, transparent); }
.theme-opt.active { color: var(--accent); }
.theme-opt-icon { display: inline-flex; color: var(--muted); }
.theme-opt.active .theme-opt-icon { color: var(--accent); }
.theme-tick { margin-left: auto; display: inline-flex; color: var(--accent); opacity: 0; }
.theme-opt.active .theme-tick { opacity: 1; }

/* DataTable component styles live in data-table.css, loaded by every page
   that mounts a DataTable (app.html, talent-picker.html). */
