/* Beyond Ludos — acabamento visual partilhado. Carregar depois dos estilos de cada módulo. */
body.bl-clean {
  --bl-bg: #0b1422;
  --bl-surface: rgb(12 27 45 / 94%);
  --bl-surface-raised: rgb(23 40 63 / 96%);
  --bl-input: #101c2b;
  --bl-line: #2a3b50;
  --bl-text: #f2f6fb;
  --bl-muted: #a9b8c9;
  --bl-accent: #76b9ff;
  --bl-primary: #2869c8;
  --bl-primary-hover: #3378da;
  --bg: var(--bl-bg);
  --surface: var(--bl-surface);
  --surface2: var(--bl-surface-raised);
  --text: var(--bl-text);
  --muted: var(--bl-muted);
  --line: var(--bl-line);
  --shadow: 0 8px 28px rgb(0 0 0 / 12%);
  --dp-bg: var(--bl-bg);
  --dp-surface: var(--bl-surface);
  --dp-text: var(--bl-text);
  --dp-text-secondary: var(--bl-muted);
  --dp-border: var(--bl-line);
  --dp-border-focus: var(--bl-accent);
  color: var(--bl-text);
  background-color: var(--bl-bg) !important;
  background-image: linear-gradient(rgb(5 14 28 / 43%), rgb(5 14 28 / 65%)), url('/public/beyond-background-wide.png?v=20261009-2') !important;
  background-position: center top !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  background-attachment: fixed !important;
  font-family: Manrope, Inter, ui-sans-serif, system-ui, sans-serif;
}

body.bl-clean.light {
  --bl-bg: #f3f6fa;
  --bl-surface: #fff;
  --bl-surface-raised: #eaf0f6;
  --bl-input: #fff;
  --bl-line: #d5e0ea;
  --bl-text: #172b42;
  --bl-muted: #52677b;
  --bl-accent: #1769bd;
  --bl-primary: #1f63b6;
  --bl-primary-hover: #17569f;
  color-scheme: light;
  background-image: none !important;
}

@media (max-width: 760px), (orientation: portrait) {
  body.bl-clean:not(.light) {
    background-image: linear-gradient(rgb(5 14 28 / 38%), rgb(5 14 28 / 62%)), url('/public/beyond-background-portrait.png?v=20261009-2') !important;
    background-position: center top !important;
    background-attachment: scroll !important;
  }
}

body.bl-clean .animated-background { background: transparent !important; }
body.bl-clean :is(.bg-orb, .bg-grid, .bg-particles, .ambient) { display: none !important; }

body.bl-clean :is(h1, .page-title, .hero-title, .dp-metal-title) {
  color: var(--bl-text) !important;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
  text-shadow: none !important;
  letter-spacing: -.035em;
  line-height: 1.15;
}
body.bl-clean :is(.eyebrow, .section-label, .kicker, .overline) {
  color: var(--bl-accent) !important;
  text-shadow: none !important;
  letter-spacing: .11em;
}

body.bl-clean :is(.sidebar, #sidebar, .admin-sidebar, .platform-sidebar),
body.bl-clean > aside {
  background: #0e1b2c !important;
  background-image: none !important;
  border-color: var(--bl-line) !important;
  box-shadow: none !important;
}
body.bl-clean :is(.sidebar .nav-item, #sidebar nav button, .platform-sidebar nav button, body > aside nav button) {
  color: #b5c4d3 !important;
  background: transparent !important;
  background-image: none !important;
  border-color: transparent !important;
  box-shadow: none !important;
  border-radius: 10px;
}
body.bl-clean > aside nav button {
  color: #b5c4d3 !important;
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}
body.bl-clean > aside nav button:hover { color: #fff !important; background: #1b2d43 !important; }
body.bl-clean > aside nav button.active { color: #fff !important; background: #23466a !important; box-shadow: inset 3px 0 0 #80c5ff !important; }
body.bl-clean :is(.sidebar .nav-item, #sidebar nav button, .platform-sidebar nav button, body > aside nav button):hover {
  color: #fff !important;
  background: #1b2d43 !important;
}
body.bl-clean :is(.sidebar .nav-item.active, #sidebar nav button.active, .platform-sidebar nav button.active, body > aside nav button.active) {
  color: #fff !important;
  background: #23466a !important;
  border-color: #3c6388 !important;
  box-shadow: inset 3px 0 0 #80c5ff !important;
}
body.bl-clean :is(.sidebar-footer, .dv-club) {
  background: transparent !important;
  border-color: var(--bl-line) !important;
}

body.bl-clean :is(.dp-card, .panel, .form-panel, .stat, .card, .today-card, .workout-panel, .stat-card, .profile-card, .login-card, .court-card, .side-card, .workspace, .club-list-card, .kpis article, .dashboard-grid article, .sheet, .modal-card, .day-card, .exercise-item, .row, .team-item, .member-item, .scoreboard, .comparison article, .cards article) {
  color: var(--bl-text);
  background: var(--bl-surface) !important;
  background-image: none !important;
  border: 1px solid var(--bl-line) !important;
  border-radius: 16px !important;
  box-shadow: var(--shadow) !important;
  backdrop-filter: none !important;
}
body.bl-clean :is(.athlete-card, .day-editor, .history-row, .broadcast, .feed) {
  background: var(--bl-surface) !important;
  background-image: none !important;
  border: 1px solid var(--bl-line) !important;
  border-radius: 14px;
  box-shadow: none !important;
}
body.bl-clean :is(.stat, .dashboard-welcome)::after { background: none !important; }
body.bl-clean :is(.today-card, .dashboard-welcome)::before { display: none !important; }
body.bl-clean :is(.dashboard-welcome, .login-intro, .login-panel, .scorebar, .topbar, .page-header, main > header) {
  background-image: none !important;
  box-shadow: none !important;
}
body.bl-clean :is(.dashboard-welcome, .login-panel, .scorebar, .page-header, main > header) {
  border-color: var(--bl-line) !important;
}
body.bl-clean .dashboard-welcome {
  background: var(--bl-surface) !important;
  border: 1px solid var(--bl-line) !important;
  border-radius: 16px;
}
body.bl-clean .login-intro { background: transparent !important; }
body.bl-clean .login-panel { background: transparent !important; backdrop-filter: none !important; }
body.bl-clean .login-card { border-top-width: 1px !important; }
body.bl-clean .dashboard-hero { min-height: min(540px, 70vh); gap: clamp(24px, 4vw, 56px); }
body.bl-clean .welcome-copy h1 { font-size: clamp(2.7rem, 5vw, 5.2rem); }
body.bl-clean .section { padding-block: clamp(42px, 5vw, 68px); }
body.bl-clean .section-heading h2 { font-size: clamp(1.9rem, 3.3vw, 3.2rem); }

body.bl-clean :is(.dp-btn, .primary, .primary-button, .submit-button, .action-primary, .save-button, .well-submit, .login-submit, button[type="submit"]) {
  color: #fff !important;
  background: var(--bl-primary) !important;
  background-image: none !important;
  border: 1px solid var(--bl-primary) !important;
  border-radius: 11px;
  box-shadow: none !important;
  text-shadow: none !important;
  transition: background-color .18s ease, border-color .18s ease, transform .18s ease !important;
}
body.bl-clean :is(.dp-btn, .primary, .primary-button, .submit-button, .action-primary, .save-button, .well-submit, .login-submit, button[type="submit"]):not(:disabled):hover {
  background: var(--bl-primary-hover) !important;
  border-color: var(--bl-primary-hover) !important;
  box-shadow: none !important;
  transform: translateY(-1px);
}
body.bl-clean :is(.secondary, .secondary-button, .ghost, .ghost-button, .icon-button, .logout-button, .btn-secondary) {
  color: var(--bl-text) !important;
  background: var(--bl-surface-raised) !important;
  background-image: none !important;
  border: 1px solid var(--bl-line) !important;
  border-radius: 11px;
  box-shadow: none !important;
}
body.bl-clean :is(.secondary, .secondary-button, .ghost, .ghost-button, .icon-button, .logout-button, .btn-secondary):not(:disabled):hover {
  border-color: var(--bl-accent) !important;
  box-shadow: none !important;
}
body.bl-clean :is(button.danger, .action.danger, .danger-text, .remove-exercise) {
  color: #ff9ca5 !important;
  border-color: #8b3e4a !important;
}
body.bl-clean button.danger {
  background: #8e2633 !important;
  color: #fff !important;
}
body.bl-clean button.danger:not(:disabled):hover { background: #a83240 !important; }

body.bl-clean :is(input[type="text"], input[type="email"], input[type="password"], input[type="number"], input[type="date"], input[type="time"], input[type="url"], input[type="search"], input[type="tel"], input[type="datetime-local"], textarea, select) {
  color: var(--bl-text) !important;
  background: var(--bl-input) !important;
  background-image: none !important;
  border: 1px solid var(--bl-line) !important;
  border-radius: 10px;
  box-shadow: none !important;
}
body.bl-clean :is(input, select, textarea):focus-visible {
  outline: 2px solid var(--bl-accent) !important;
  outline-offset: 2px !important;
  border-color: var(--bl-accent) !important;
  box-shadow: none !important;
}
body.bl-clean ::placeholder { color: var(--bl-muted) !important; opacity: .72; }
body.bl-clean :is(.dv-search, .badge, .pill, .chip, .status-badge, .tabs, .workspace-tabs) {
  background: var(--bl-surface-raised) !important;
  background-image: none !important;
  border-color: var(--bl-line) !important;
  box-shadow: none !important;
}
body.bl-clean :is(.tabs button.active, .workspace-tabs button.active, .day-card.active, .exercise-item.active) {
  background: #224568 !important;
  border-color: #497ba8 !important;
  color: #fff !important;
  box-shadow: none !important;
}
body.bl-clean :is(.nav-icon, .stat-icon, .metric-icon, .kpi-icon) {
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}
body.bl-clean :is(th, td, .panel-head, .workspace-tabs) { border-color: var(--bl-line) !important; }
body.bl-clean tbody tr:hover { background: var(--bl-surface-raised) !important; background-image: none !important; box-shadow: none !important; }
body.bl-master { --ink: var(--bl-text); }
body.bl-master :is(.club-row, .usage article, .notice, .features label, .team-item, .member-item, .global-badge) {
  color: var(--bl-text);
  background: var(--bl-surface-raised) !important;
  border-color: var(--bl-line) !important;
  box-shadow: none !important;
}
body.bl-master :is(.club-row:hover, .club-row.active) { background: #23466a !important; }
body.bl-master .form-grid label { color: var(--bl-muted); }
body.bl-master dialog { color: var(--bl-text); background: var(--bl-surface); border: 1px solid var(--bl-line); }
body.bl-clean :is(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--bl-accent) !important;
  outline-offset: 3px !important;
}

@media (max-width: 760px) {
  body.bl-clean .dashboard-hero { min-height: 0; padding-block: 36px; }
  body.bl-clean .welcome-copy h1 { font-size: clamp(2.5rem, 10vw, 4.2rem); }
  body.bl-clean :is(.login-card, .sheet, .modal-card) { border-radius: 16px !important; }
  body.bl-clean :is(.panel, .form-panel, .workout-panel, .today-card) { min-width: 0; }
}

@media (prefers-reduced-motion: reduce) {
  body.bl-clean *, body.bl-clean *::before, body.bl-clean *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
