@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&display=swap");

:root {
  --sol-gold: #d6b46a;
  --sol-green: #12332b;
  --sol-bg: #f7f6f3;
  --sol-surface: #ffffff;
  --sol-beige: #bfa98a;
  --sol-rose: #c28f8b;
  --sol-text: #1f2a37;
  --sol-text-muted: #667085;
  --sol-divider: rgba(15, 23, 42, 0.08);
  --sol-shadow-soft: 0 10px 24px rgba(15, 23, 42, 0.08), 0 2px 6px rgba(15, 23, 42, 0.05);
  --sol-shadow: 0 18px 40px rgba(15, 23, 42, 0.12), 0 6px 14px rgba(15, 23, 42, 0.08);
  --finance-receita: #80af52;
  --finance-despesa: #cc2a2e;
  --finance-desconto: #ffc318;
}

.admin-body,
.admin-login {
  font-family: "Manrope", system-ui, sans-serif;
  color: var(--sol-text);
}

.admin-body {
  --admin-sidebar-bg: var(--sol-green);
  --admin-sidebar-bg-2: var(--sol-green);
  --admin-sidebar-text: var(--sol-bg);
  --admin-sidebar-muted: rgba(255, 246, 239, 0.7);
  --admin-accent: var(--sol-gold);
  --admin-bg: var(--sol-bg);
  --admin-surface: var(--sol-surface);
  --admin-card: var(--sol-surface);
  --admin-border: var(--sol-divider);
  --admin-text: var(--sol-text);
  --admin-muted: var(--sol-text-muted);
  --admin-topbar: var(--sol-surface);
  --shadow-soft: var(--sol-shadow-soft);
  --shadow-card: var(--sol-shadow);
  background: linear-gradient(180deg, rgba(214, 180, 106, 0.12) 0%, var(--sol-bg) 35%, var(--sol-bg) 100%);
}

.admin-sidebar-panel {
  background: transparent;
  border-right: none;
  padding: 16px 14px;
}

.admin-brand {
  border-bottom: 1px solid rgba(255, 246, 239, 0.16);
}

.admin-brand-mark {
  background: rgba(255, 246, 239, 0.14);
  border: 1px solid rgba(255, 246, 239, 0.2);
  color: var(--sol-bg);
}

.admin-brand-text span {
  color: rgba(255, 246, 239, 0.65);
}

.admin-menu-section {
  border-bottom: 1px solid rgba(255, 246, 239, 0.1);
}

.admin-menu-title {
  color: var(--sol-gold);
  font-weight: 600;
}

.admin-menu-toggle,
.admin-menu a {
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.admin-menu-toggle {
  font-weight: 600;
  color: var(--sol-bg);
}

.admin-menu a {
  color: var(--sol-bg);
}

.admin-submenu a {
  color: var(--sol-bg);
  opacity: 0.86;
  font-weight: 500;
}

.admin-menu-toggle:hover {
  background: rgba(255, 246, 239, 0.18);
  transform: translateX(2px);
}

.admin-submenu a:hover {
  background: rgba(255, 246, 239, 0.18);
  color: var(--sol-bg);
  transform: translateX(2px);
}

.admin-menu-section.open > .admin-menu-toggle,
.admin-menu-section.has-active > .admin-menu-toggle,
.admin-menu-section > .admin-menu-toggle[aria-expanded="true"] {
  background: rgba(255, 246, 239, 0.18);
}

.admin-menu a.active,
.admin-submenu a.active {
  background: rgba(214, 180, 106, 0.28);
}

.admin-menu a.active::before {
  background: var(--sol-gold);
}

.admin-menu-caret {
  color: rgba(255, 246, 239, 0.7);
}

.admin-back {
  border: 1px solid rgba(255, 246, 239, 0.2);
  background: rgba(255, 246, 239, 0.08);
}

.admin-topbar {
  height: var(--admin-topbar-height);
  background: var(--sol-surface);
  border-bottom: 1px solid var(--sol-divider);
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 60;
}

.admin-topbar-title {
  color: var(--sol-text);
  font-weight: 500;
}

.admin-collapse,
.admin-notification-btn,
.admin-topbar-icon-btn {
  border-radius: 14px;
  border: 1px solid var(--sol-divider);
  background: var(--sol-surface);
  color: var(--sol-text);
  box-shadow: var(--sol-shadow-soft);
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.admin-collapse:hover,
.admin-notification-btn:hover,
.admin-topbar-icon-btn:hover {
  background: rgba(214, 180, 106, 0.12);
  transform: translateY(-1px);
  box-shadow: var(--sol-shadow);
}

.admin-user {
  color: var(--sol-text);
}

.admin-role {
  background: rgba(215, 179, 90, 0.2);
  color: var(--sol-text);
  border: 1px solid rgba(215, 179, 90, 0.4);
}

.admin-notification-badge {
  background: var(--sol-rose);
}

.admin-notification-panel {
  background: var(--sol-surface);
  border: 1px solid var(--sol-divider);
  box-shadow: var(--sol-shadow);
  border-radius: 16px;
}

.admin-notification-item {
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 12px;
  transition: background 0.2s ease, transform 0.2s ease;
}

.admin-notification-item:hover {
  background: rgba(214, 180, 106, 0.08);
  transform: translateY(-1px);
}

.admin-search-results {
  background: var(--sol-surface);
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: var(--sol-shadow);
  border-radius: 0 0 16px 16px;
}

.admin-search-item {
  border-radius: 10px;
  transition: background 0.2s ease, transform 0.2s ease;
}

.admin-search-item:hover,
.admin-search-item:focus {
  background: rgba(214, 180, 106, 0.1);
  transform: translateY(-1px);
}

.admin-topbar-search input {
  background: var(--sol-surface);
  border-color: rgba(15, 23, 42, 0.1);
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.02);
}

.admin-sidebar-logout {
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.12);
  transition: transform 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.admin-sidebar-logout:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 18px rgba(15, 23, 42, 0.18);
}

.admin-notification-item span,
.admin-notification-item em,
.admin-notification-empty {
  color: var(--sol-text-muted);
}

.admin-toggle,
.admin-logout {
  border-radius: 12px;
  border: 1px solid var(--sol-divider);
  background: var(--sol-surface);
  color: var(--sol-text);
  font-weight: 600;
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.admin-toggle:hover {
  background: rgba(215, 179, 90, 0.12);
}

.admin-logout {
  background: linear-gradient(135deg, #002b22 0%, rgba(0, 43, 34, 0.85) 100%);
  border-color: var(--sol-green);
  color: #fff;
}

.admin-logout:hover {
  transform: translateY(-1px);
  box-shadow: var(--sol-shadow);
}

.admin-content {
  padding: 32px;
}

.admin-footer {
  color: var(--sol-text);
}

.admin-body a {
  color: var(--sol-green);
}

.admin-body a:hover {
  color: var(--sol-gold);
}

.admin-body a.admin-logout,
.admin-body a.admin-logout:hover,
.admin-body a.admin-logout:focus,
.admin-body a.admin-logout:visited {
  color: #fff;
}

.admin-sidebar a,
.admin-sidebar .admin-menu a,
.admin-sidebar .admin-menu-toggle {
  color: var(--sol-bg);
}

.admin-sidebar .admin-submenu a {
  color: var(--sol-bg);
}

.admin-sidebar .admin-flyout-panel {
  background: var(--admin-flyout-bg);
  color: var(--admin-flyout-text);
}

.admin-sidebar .admin-flyout-panel a,
.admin-sidebar .admin-flyout-panel .admin-menu-label {
  color: var(--admin-flyout-text);
}

.admin-sidebar .admin-flyout-panel .admin-icon {
  background: transparent;
  border-color: transparent;
}

.admin-sidebar .admin-flyout-panel a:hover,
.admin-sidebar .admin-flyout-panel a.active {
  color: var(--admin-flyout-text);
  background: rgba(215, 179, 90, 0.18);
}


.admin-content h1,
.admin-content h2 {
  font-weight: 600;
  color: var(--sol-text);
}

.admin-content h3 {
  font-weight: 500;
  color: var(--sol-text);
}

.admin-section-title {
  font-size: 9.6px;
  letter-spacing: 0.18em;
  color: var(--sol-text-muted);
  position: relative;
  padding-bottom: 8px;
}

.admin-section-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 42px;
  height: 2px;
  background: var(--sol-gold);
}

.card,
.admin-content .card,
.admin-accordion,
.identity-card,
.agenda-modal-card,
.agenda-drawer .agenda-drawer-header,
.agenda-drawer .agenda-drawer-content {
  background: var(--sol-surface);
  border: 1px solid rgba(15, 23, 42, 0.06);
  border-radius: 16px;
  box-shadow: var(--sol-shadow-soft);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.card:hover,
.admin-content .card:hover,
.admin-accordion:hover,
.identity-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--sol-shadow);
}

.admin-accordion summary::after {
  color: var(--sol-beige);
}

.form-control,
.admin-body .form-row input,
.admin-body .form-row select,
.admin-body .form-row textarea,
.wizard-grid input,
.wizard-grid select,
.wizard-row select,
.wizard-row input,
.wizard-schedule-row input,
.wizard-schedule-row select {
  background: var(--sol-surface);
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: 12px;
  color: var(--sol-text);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.form-control::placeholder {
  color: var(--sol-text-muted);
  opacity: 0.7;
}

.form-control:focus,
.admin-body .form-row input:focus,
.admin-body .form-row select:focus,
.admin-body .form-row textarea:focus {
  outline: 3px solid rgba(214, 180, 106, 0.2);
  border-color: rgba(214, 180, 106, 0.6);
  box-shadow: 0 0 0 1px rgba(214, 180, 106, 0.2);
}

.admin-body label,
.wizard-grid label,
.wizard-row label {
  font-size: 9.6px;
  color: var(--sol-text-muted);
}

.form-hint,
label small,
.wizard-hint,
.admin-note,
.admin-subtitle {
  color: var(--sol-text-muted);
}

.btn {
  border-radius: 12px;
  border: 1px solid var(--sol-divider);
  background: var(--sol-surface);
  color: var(--sol-text);
  font-weight: 600;
  transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.admin-body .btn {
  border-radius: 12px;
  border: 1px solid var(--sol-divider);
  background: var(--sol-surface);
  color: var(--sol-text);
  font-weight: 600;
  transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.btn:hover {
  background: rgba(214, 180, 106, 0.12);
  transform: translateY(-1px);
  box-shadow: var(--sol-shadow-soft);
}

.btn-primary {
  background: linear-gradient(135deg, #d6b46a 0%, #c2a074 100%);
  border-color: rgba(214, 180, 106, 0.9);
  color: #1b2a24;
}

.admin-body .btn-primary {
  background: linear-gradient(135deg, #d6b46a 0%, #c2a074 100%);
  border-color: rgba(214, 180, 106, 0.9);
  color: #1b2a24;
}

.btn-secondary {
  background: linear-gradient(135deg, #12332b 0%, rgba(18, 51, 43, 0.9) 100%);
  border-color: rgba(18, 51, 43, 0.9);
  color: #f8f7f4;
}

.admin-body .btn-secondary {
  background: linear-gradient(135deg, #12332b 0%, rgba(18, 51, 43, 0.9) 100%);
  border-color: rgba(18, 51, 43, 0.9);
  color: #f8f7f4;
}

.btn-outline {
  background: transparent;
  border-color: rgba(214, 180, 106, 0.5);
  color: var(--sol-text);
}

.admin-body .btn-outline {
  background: transparent;
  border-color: rgba(214, 180, 106, 0.5);
  color: var(--sol-text);
}

.admin-body .btn-outline:hover {
  background: rgba(214, 180, 106, 0.12);
}

.home-fin-actions .btn-primary,
.admin-body .home-fin-actions .btn-primary {
  background: var(--finance-receita);
  border-color: var(--finance-receita);
  color: #fff;
}

.home-fin-actions .btn-secondary,
.admin-body .home-fin-actions .btn-secondary {
  background: var(--finance-despesa);
  border-color: var(--finance-despesa);
  color: #fff;
}

.home-fin-actions .btn-primary:hover,
.home-fin-actions .btn-primary:active,
.home-fin-actions .btn-primary:focus,
.admin-body .home-fin-actions .btn-primary:hover,
.admin-body .home-fin-actions .btn-primary:active,
.admin-body .home-fin-actions .btn-primary:focus {
  background: var(--finance-receita);
  border-color: var(--finance-receita);
  color: #fff;
}

.home-fin-actions .btn-secondary:hover,
.home-fin-actions .btn-secondary:active,
.home-fin-actions .btn-secondary:focus,
.admin-body .home-fin-actions .btn-secondary:hover,
.admin-body .home-fin-actions .btn-secondary:active,
.admin-body .home-fin-actions .btn-secondary:focus {
  background: var(--finance-despesa);
  border-color: var(--finance-despesa);
  color: #fff;
}

.btn-tertiary {
  background: rgba(214, 180, 106, 0.12);
  border-color: rgba(214, 180, 106, 0.35);
  color: var(--sol-text);
}

.admin-body .btn-tertiary {
  background: rgba(214, 180, 106, 0.12);
  border-color: rgba(214, 180, 106, 0.35);
  color: var(--sol-text);
}

.btn-danger {
  background: linear-gradient(135deg, #c28f8b 0%, rgba(194, 143, 139, 0.9) 100%);
  border-color: rgba(194, 143, 139, 0.9);
  color: #fff;
}

.btn:focus {
  outline: 3px solid rgba(214, 180, 106, 0.2);
}

.badge,
.admin-tag {
  background: rgba(214, 180, 106, 0.2);
  color: var(--sol-text);
}

.admin-tab,
.tabs button {
  font-weight: 500;
  transition: background 0.2s ease, color 0.2s ease;
}

.admin-tab {
  background: rgba(214, 180, 106, 0.12);
  border: 1px solid rgba(214, 180, 106, 0.3);
  color: var(--sol-text);
}

.admin-tab.active,
.tabs button.active {
  background: var(--sol-gold);
  border-color: var(--sol-gold);
  color: #1b2a24;
}

.tabs {
  border-bottom: 1px solid var(--sol-divider);
}

.tabs button {
  border-radius: 10px 10px 0 0;
}

.tabs button:hover {
  background: rgba(214, 180, 106, 0.12);
}

.table,
.admin-table {
  background: var(--sol-surface);
  border: 1px solid rgba(15, 23, 42, 0.06);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: var(--sol-shadow-soft);
}

.admin-body .table,
.admin-body .admin-table {
  background: var(--sol-surface);
  border: 1px solid rgba(15, 23, 42, 0.06);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: var(--sol-shadow-soft);
}

.table th,
.admin-table th {
  background: rgba(214, 180, 106, 0.12);
  color: var(--sol-text);
  font-weight: 600;
}

.admin-body .table th,
.admin-body .admin-table th {
  background: rgba(214, 180, 106, 0.12);
  color: var(--sol-text);
  font-weight: 600;
}

.table td,
.admin-table td {
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  color: var(--sol-text);
}

.admin-body .table td,
.admin-body .admin-table td {
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  color: var(--sol-text);
}

.table tbody tr:nth-child(even),
.admin-table tbody tr:nth-child(even) {
  background: rgba(214, 180, 106, 0.05);
}

.table tbody tr:hover,
.admin-table tbody tr:hover {
  background: rgba(214, 180, 106, 0.1);
}

.table-actions {
  justify-content: flex-end;
}

.admin-alert,
.alert {
  border-radius: 12px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: rgba(214, 180, 106, 0.12);
  color: var(--sol-text);
}

.dot-visitors { background: #5b7de6; }
.dot-leads { background: var(--sol-gold); }
.dot-bookings { background: #2fb28a; }

.admin-alert.success {
  background: rgba(16, 185, 129, 0.12);
  border-color: rgba(16, 185, 129, 0.25);
  color: #14532d;
}

.admin-alert.warning {
  background: rgba(245, 158, 11, 0.14);
  border-color: rgba(245, 158, 11, 0.3);
  color: #92400e;
}

.admin-alert.error,
.alert.alert-error {
  background: rgba(239, 68, 68, 0.12);
  border-color: rgba(239, 68, 68, 0.26);
  color: #7f1d1d;
}

.wizard-shell {
  min-height: calc(100vh - 120px);
}

.wizard-overlay {
  background: rgba(18, 51, 43, 0.45);
  backdrop-filter: blur(4px);
}

.wizard-modal {
  background: var(--sol-surface);
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: var(--sol-shadow);
}

.wizard-header {
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  background: linear-gradient(135deg, rgba(214, 180, 106, 0.2), rgba(255, 255, 255, 0.95));
}

.wizard-title h1,
.wizard-step h2,
.wizard-progress,
.wizard-message {
  color: var(--sol-text);
}

.wizard-progress-bar {
  background: rgba(214, 180, 106, 0.2);
}

.wizard-progress-bar span {
  background: var(--sol-gold);
}

.wizard-flag-warning {
  background: rgba(245, 158, 11, 0.14);
  border: 1px solid rgba(245, 158, 11, 0.3);
  color: #92400e;
}

.wizard-service,
.wizard-schedule-row {
  border: 1px solid rgba(15, 23, 42, 0.08);
}

.wizard-footer {
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  background: rgba(214, 180, 106, 0.08);
}

.wizard-message.wizard-error {
  color: var(--sol-rose);
}

.wizard-fallback {
  color: var(--sol-green);
}

.agenda-modal-backdrop,
.agenda-drawer {
  background: rgba(18, 51, 43, 0.45);
}

.agenda-modal-card {
  background: var(--sol-surface);
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: var(--sol-shadow);
}

.agenda-drawer .agenda-drawer-header,
.agenda-drawer .agenda-drawer-content {
  background: var(--sol-surface);
  border-left: 1px solid rgba(15, 23, 42, 0.08);
}

.agenda-drawer-block,
.agenda-week-day,
.agenda-year-cell,
.agenda-month-cell,
.agenda-prof-lane,
.agenda-services-grid {
  background: var(--sol-surface);
  border: 1px solid rgba(15, 23, 42, 0.08);
}

.agenda-month-cell.is-empty {
  background: rgba(15, 23, 42, 0.04);
}

.agenda-flag {
  color: var(--sol-beige);
}

.agenda-photo-item img {
  border: 1px solid rgba(15, 23, 42, 0.08);
}

.admin-login {
  background: linear-gradient(160deg, rgba(214, 180, 106, 0.22), var(--sol-green));
  color: #f7f6f3;
}

.login-card {
  background: var(--sol-surface);
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: var(--sol-shadow);
  color: var(--sol-text);
}

.login-brand span {
  color: var(--sol-text-muted);
}
