/* #app — bloco único centralizado abaixo em "Área principal" */

.agenda-body,
.calendar-day-grid,
.calendar-day-events-col{
  max-width: 100%;
  overflow-x: hidden;
  box-sizing: border-box;
}

        :root {
  /* Layout & Safe Area */
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --sidebar-w: 240px;

  /* Colour tokens — overridden by each theme file */
  --bg: #F8FAFC;
  --surface: #FFFFFF;
  --text: #0F172A;
  --text-muted: #64748B;
  --primary: var(--primary);
  --primary-dark: var(--primary-dark);
  --primary-soft: rgba(123,97,255,0.12);
  --border: rgba(108,92,231,0.10);
  --input-bg: #FFFFFF;
  --dark-bg: #1a1632;
}

        /* ===== Sidebar ===== */
        .sidebar {
          position: fixed;
          inset: 0 auto 0 0;
          width: var(--sidebar-w);
          height: 100vh;
          background: linear-gradient(135deg, #0B0F1A, #1A2A4F);
          box-shadow: 4px 0 20px rgba(0,0,0,0.08);
          color: #fff;
          display: flex;
          flex-direction: column;
          gap: 6px;
          padding: 18px 14px;
          z-index: 1000;
          border-right: 1px solid rgba(255,255,255,.08);
        }

        .sidebar-brand {
          display: flex;
          align-items: center;
          gap: 10px;
          padding: 8px 8px 18px;
          margin-bottom: 8px;
          border-bottom: 1px solid rgba(255,255,255,.10);
        }

        .sidebar-logo {
                 width: 38px;
          height: 38px;
          object-fit: contain;
        }

        .sidebar-brand strong {
          display: block;
          font-size: 15px;
          color: #fff;
        }

        .sidebar-brand small {
          display: block;
          font-size: 11px;
          color: rgba(255,255,255,.55);
        }

        .sidebar-link {
          display: flex !important;
          flex-direction: row !important;
          align-items: center;
          justify-content: flex-start !important;
          gap: 12px;
          width: 100%;
          padding: 11px 12px;
          border-radius: 12px;
          text-decoration: none;
          color: rgba(255,255,255,.68) !important;
          cursor: pointer;
        }

        .sidebar-link p {
          margin: 0;
          font-size: 14px;
          font-weight: 500;
        }

        .sidebar-link:hover {
          background: rgba(255,255,255,.08);
          color: #fff !important;
        }

        .sidebar-link.text-primary,
        .sidebar-link.active {
          background: rgba(255,255,255,.12);
          backdrop-filter: blur(4px);
          color: #fff !important;
        }

        /* ===== Área principal ===== */
/* ===== Área principal — bloco único ===== */
#app {
  margin-left: var(--sidebar-w);
  width: calc(100% - var(--sidebar-w));
  min-height: 100vh;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  box-sizing: border-box;
  background: var(--bg);
}

        /* ===== FAB ===== */
        #fab-add {
          z-index: 900;
        }

       /* ===== Inputs ===== */
        input, select, textarea {
          border: 1px solid rgba(0,0,0,0.12) !important;
          box-shadow: none !important;
          outline: none !important;
        }

        input:focus, select:focus, textarea:focus {
          border-color: var(--primary) !important;
          box-shadow: 0 0 0 3px rgba(79,140,255,0.15) !important;
        }

        /* ===== Elementos comuns ===== */
        .avatar {
          width: 48px;
          height: 48px;
          border-radius: 14px;
          object-fit: cover;
          background: #eee;
        }

        .toast {
          position: fixed;
          left: 50%;
          bottom: calc(8px + var(--safe-bottom));
          transform: translateX(-50%);
          background: #111;
          color: #fff;
          padding: 10px 14px;
          border-radius: 10px;
          font-size: 13px;
          opacity: 0;
          pointer-events: none;
          transition: opacity .25s;
          z-index: 2000;
        }

        .toast.show { opacity: .95; }

        .btn {
          padding: 6px 10px;
          border-radius: 8px;
          font-size: 12px;
          border: 1px solid #ccc;
        }

        .btn-primary {
          background: linear-gradient(135deg, #4F8CFF, var(--primary));
          border: none;
          color: #fff;
          border-color: var(--primary);
        }

        .chip {
          display: inline-block;
          padding: .25rem .75rem;
          border-radius: .5rem;
          background: linear-gradient(135deg, #4F8CFF, var(--primary));
          color: #fff;
          color: #fff;
        }

        /* ===== Splash & telas ===== */
        #splash {
          position: fixed;
          inset: 0;
          background: linear-gradient(135deg, #0B0F1A, #1A1F2E);
          display: flex;
          align-items: center;
          justify-content: center;
          z-index: 9999;
          transition: opacity 0.3s ease;
        }

        #splash.hidden {
          opacity: 0;
          pointer-events: none;
        }

#lottie-splash {
  width: 160px;
  height: 160px;
}

        .screen {
          display: none;
          height: 100%;
          width: 100%;
        }

        .screen.active {
          display: block;
        }

        /* ===== Modais ===== */
        .modal-content, .modal-inner {
          max-width: 90vw !important;
          width: 600px !important;
          max-height: 85vh !important;
        }

        .modal-content textarea,
        .modal-inner textarea {
          min-height: 160px !important;
          max-height: 300px;
        }

        .modal-panel {
          width: 100%;
          max-width: 880px;
          border-radius: 16px;
        }

        .modal-panel.wide {
          max-width: 1024px;
        }

        .modal-body {
          max-height: 78vh;
          overflow: auto;
          padding: 1rem;
        }

        .textarea-msg {
          width: 100%;
          min-height: 42vh;
          line-height: 1.4;
          resize: vertical;
        }

        @media (min-height: 700px) {
          .modal-content, .modal-inner {
            max-height: 90vh !important;
          }
        }

        /* ===== Página Agendamentos UIX ===== */
        .agend-page {
          padding: 24px;
          background: var(--bg);
          min-height: 100%;
        }

        .agend-header {
          display: flex;
          justify-content: space-between;
          align-items: center;
          margin-bottom: 18px;
        }

        .agend-header h2 {
          font-size: 24px;
          font-weight: 700;
          margin: 0;
          color: var(--text);
        }

        .agend-header p {
          margin: 4px 0 0;
          font-size: 14px;
          color: var(--text-soft);
        }

        .agend-new-btn {
          background: var(--primary);
          color: white;
          border: none;
          border-radius: 10px;
          padding: 10px 16px;
          font-weight: 600;
        }

        .agend-filters {
          display: grid;
          grid-template-columns: 1fr 180px 220px;
          gap: 12px;
          margin-bottom: 18px;
        }

        .agend-search {
          display: flex;
          align-items: center;
          gap: 8px;
          background: var(--card);
          border: 1px solid var(--border);
          border-radius: 12px;
          padding: 0 14px;
        }

        .agend-search input {
          border: 0 !important;
          background: transparent;
          width: 100%;
          height: 46px;
          font-size: 14px;
        }

        .agend-filters select {
          height: 46px;
          border-radius: 12px;
          border: 1px solid var(--border) !important;
          background: var(--card);
          padding: 0 12px;
          font-size: 14px;
        }

        .agend-list {
          display: flex;
          flex-direction: column;
          gap: 14px;
        }

        .agend-card {
          background: var(--card);
          border-radius: 20px;
          border: 1px solid var(--border);
          box-shadow: 0 10px 24px rgba(0,0,0,0.06);
          overflow: hidden;
          position: relative;
        }

        .agend-card::before {
          content: "";
          position: absolute;
          left: 0;
          top: 0;
          width: 5px;
          height: 100%;
        }

        .agend-card.card-blue::before { background: #6b8ee8; }
        .agend-card.card-green::before { background: #67a982; }
        .agend-card.card-orange::before { background: #d08a6f; }
        .agend-card.card-red::before { background: #cf5f65; }

        .agend-card-main {
          min-height: 116px;
          padding: 20px 20px 18px 24px;
          display: flex;
          justify-content: space-between;
          gap: 20px;
        }

        .agend-card-info h3 {
          margin: 0;
          font-size: 16px;
          font-weight: 700;
          color: var(--text);
        }

        .agend-card-info p {
          margin: 4px 0 12px;
          font-size: 13px;
          color: var(--text-soft);
        }

        .agend-badges {
          display: flex;
          flex-wrap: wrap;
          gap: 8px;
        }

        .agend-badge,
        .badge {
          display: inline-flex;
          align-items: center;
          gap: 4px;
          min-height: 24px;
          padding: 4px 10px;
          border-radius: 999px;
          background: #f1ece8;
          color: #75645b;
          font-size: 12px;
          line-height: 1;
        }

        .status-blue,
        .agend-badge.status-blue {
          background: #e8f0ff;
          color: #315cab;
          font-weight: 700;
        }

        .status-green,
        .agend-badge.status-green {
          background: #e3f5eb;
          color: #2e7d52;
          font-weight: 700;
        }

        .status-orange,
        .agend-badge.status-orange {
          background: #fff0dc;
          color: #b45f16;
          font-weight: 700;
        }

        .status-red,
        .agend-badge.status-red {
          background: #fde7e8;
          color: #a7373f;
          font-weight: 700;
        }

        .agend-card-side {
          min-width: 300px;
          display: flex;
          flex-direction: column;
          align-items: flex-end;
          justify-content: space-between;
        }

        .agend-price {
          font-size: 22px;
          font-weight: 700;
          color: var(--primary);
        }

        .agend-actions {
          display: flex;
          gap: 8px;
          align-items: center;
        }

        .agend-actions button {
          border: 1px solid var(--border);
          background: var(--card);
          color: var(--text);
          border-radius: 8px;
          padding: 8px 12px;
          font-size: 13px;
          font-weight: 600;
        }

        .agend-actions button.success,
        .btn.success {
          background: #67a982;
          border-color: #67a982;
          color: white;
        }

        .agend-actions button.danger,
        .btn.danger {
          background: #cf5f65;
          border-color: #cf5f65;
          color: white;
        }

        .btn.edit { background: #f59e0b; color: #fff; }
        .btn.ghost { border: 1px solid #ccc; }

        .agend-empty {
          background: var(--card);
          border: 1px solid var(--border);
          border-radius: 16px;
          padding: 30px;
          text-align: center;
          color: var(--text-soft);
        }

        /* ===== Agenda Header ===== */
        .agenda-header-new {
          padding: 12px 16px;
          border-bottom: 1px solid var(--border);
          background: var(--card);
        }

        .agenda-top-controls {
          display: flex;
          justify-content: space-between;
          align-items: center;
          gap: 0px;
          flex-wrap: wrap;
        }

        .agenda-views {
          display: flex;
          gap: 6px;
        }

        .agenda-views a {
          padding: 7px 12px;
          border-radius: 8px;
          background: #f3f3f3;
          color: var(--text);
          text-decoration: none;
          font-size: 13px;
          font-weight: 600;
        }

        .agenda-views a.active {
          background: var(--primary-soft);
          color: var(--primary);
          font-weight: 700;
        }

        .agenda-nav {
          display: flex;
          align-items: center;
          gap: 8px;
        }

        .agenda-nav button,
        .agenda-today {
          border: 1px solid var(--border);
          background: var(--card);
          border-radius: 8px;
          padding: 7px 10px;
          font-size: 13px;
          font-weight: 600;
        }

        .agenda-date {
          font-weight: 700;
          color: var(--text);


        }

        .agenda-actions {
          display: flex;
          gap: 10px;
        }

        .btn-encaixe {
          background: linear-gradient(135deg, #4F8CFF, var(--primary));
          color: white;
          border: none;
          border-radius: 8px;
          padding: 7px 12px;
          font-size: 13px;
          font-weight: 700;
        }

        .agenda-body {
          padding: 14px;
        }

        /* ===== Calendário Dia ===== */
        .calendar-day-grid {
          border: 1px solid var(--border);
          border-radius: 14px;
          overflow: visible;
          background: var(--card);
          position: relative;
          box-shadow: 0 6px 18px rgba(0,0,0,0.06);
        }

        .calendar-row {
          display: grid;
          grid-template-columns: 70px 1fr;
          min-height: 70px;
          border-bottom: 1px solid var(--border);
        }

        .calendar-row:last-child {
          border-bottom: none;
        }

        .calendar-hour {
          padding: 10px;
          font-size: 12px;
          color: var(--text-soft);
          background: var(--bg);
          border-right: 1px solid var(--border);
        }

        .calendar-slot {
          position: relative;
          overflow: visible;
        }

        .calendar-event {
          position: absolute;
          left: 6px;
          right: 6px;
          padding: 6px 8px;
          border-radius: 10px;
          font-size: 11px;
          display: flex;
          flex-direction: column;
          justify-content: center;
          overflow: hidden;
        }

        .calendar-block {
          position: absolute;
          left: 6px;
          right: 6px;
          background: #fee2e2;
          border-left: 4px solid #ef4444;
          border-radius: 9px;
          padding: 7px;
          font-size: 11px;
          z-index: 9;
          overflow: hidden;
        }

        /* ===== Cards auxiliares de agendamento ===== */
        .appt-card {
          background: var(--card);
          border-radius: 14px;
          padding: 14px;
          border: 1px solid var(--border);
          box-shadow: 0 4px 12px rgba(0,0,0,0.04);
        }

        .appt-card-top {
          display: flex;
          justify-content: space-between;
        }

        .appt-card-name {
          font-weight: 600;
        }

        .appt-card-service {
          font-size: 13px;
          color: var(--text-soft);
        }

        .appt-card-meta {
          margin-top: 10px;
          display: flex;
          flex-wrap: wrap;
          gap: 6px;
        }

        .appt-card-actions {
          margin-top: 10px;
          display: flex;
          justify-content: flex-end;
          gap: 8px;
        }

        /* ===== Responsivo ===== */
        @media (max-width: 760px) {
          :root {
            --sidebar-w: 0px;
          }

          .sidebar {
            width: var(--sidebar-w);
            padding: 12px 8px;
          }

          .sidebar-brand div,
          .sidebar-link p {
            display: none;
          }

          #app {
            margin-left: var(--sidebar-w);
          }

          .agend-page {
            padding: 14px;
          }

          .agend-header {
            align-items: flex-start;
            flex-direction: column;
            gap: 12px;
          }

          .agend-filters {
            grid-template-columns: 1fr;
          }

          .agend-card-main {
            flex-direction: column;
          }

          .agend-card-side {
            min-width: 0;
            align-items: flex-start;
            gap: 14px;
          }

          .agend-actions,
          .appt-card-actions {
            flex-wrap: wrap;
            justify-content: flex-start;
          }

          .agenda-top-controls {
            align-items: flex-start;
          }
        }

        @media print {
          nav, .no-print { display: none !important; }
          #app { margin-left: 0; }
          body { background: var(--surface); }
        }

        /* ===== HAMBURGER ===== */
.hamburger-btn {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 1100;

  width: 44px;
  height: 44px;

  border-radius: 12px;
  border: none;

  background: #f1ece8;
  font-size: 20px;
}

/* ===== OVERLAY ===== */
.sidebar-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.4);
  backdrop-filter: blur(2px);

  opacity: 0;
  pointer-events: none;

  transition: .25s;
  z-index: 900;
}

.sidebar-overlay.active {
  opacity: 1;
  pointer-events: all;
}

/* ===== MOBILE BEHAVIOR ===== */
/* ===== HAMBURGER ===== */
.hamburger-btn {
  display: none;
}

/* 🔥 Só aparece no mobile */
@media (max-width: 760px) {
  .hamburger-btn {
    display: flex;

    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 1100;

    width: 44px;
    height: 44px;

    align-items: center;
    justify-content: center;

    border-radius: 12px;
    border: none;

    background: #f1ece8;
    font-size: 20px;
  }
}

/* ===== MOBILE FIX REAL ===== */
@media (max-width: 760px) {

  .sidebar {
    transform: translateX(-100%);
    transition: 0.25s ease;
  }

  .sidebar.open {
    transform: translateX(0);
  }

  #app {
    margin-left: 0;
  }
}

 /* ===== TOPBAR MOBILE ===== */
.mobile-topbar {
  display: none;
}

@media (max-width: 760px) {

  .mobile-topbar {
    display: flex;
    align-items: center;
    gap: 10px;

    position: fixed;
    top: 0;
    left: 0;
    right: 0;

    height: 60px;
    padding: 0 12px;

    background: var(--surface);
    border-bottom: 1px solid #eee;

    z-index: 1200;
  }

  .mobile-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
  }

  .mobile-title img {
    width: 26px;
    height: 26px;
    object-fit: contain;
  }

  /* hamburger dentro da barra */
  .hamburger-btn {
    position: static;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #f1ece8;
    border: none;
    font-size: 18px;
  }

  /* empurra conteúdo pra baixo */
  #app {
    margin-left: 0;
    padding-top: 60px;
  }
}

/* ===== MOBILE SIDEBAR CORRETO ===== */
@media (max-width: 760px) {

  .sidebar {
    transform: translateX(-100%);
    width: 240px;
    transition: 0.25s ease;
  }

  .sidebar.open {
    transform: translateX(0);
  }

  .sidebar .sidebar-link p,
  .sidebar .sidebar-brand div {
    display: block;
  }

  #app {
    margin-left: 0;
  }
}
        .hamburger-btn {
  z-index: 1300;
}

/* ===== DASHBOARD AGENDA ===== */

.agenda-dashboard {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px,1fr));  gap: 14px;
  padding: 16px;
}

.dash-card {
  background: var(--card);
  border-radius: 18px;
  padding: 16px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.06);
  border: 1px solid var(--border);
  text-align: left;
}

.dash-icon {
  font-size: 22px;
  margin-bottom: 6px;
}

.dash-title {
  font-size: 12px;
  letter-spacing: 1px;
  color: var(--text-soft);
}

.dash-value {
  font-size: 28px;
  font-weight: bold;
  color: var(--text);
}

.dash-sub {
  font-size: 13px;
  color: var(--text-soft);
}

/* mobile */
@media (max-width: 760px) {
  .agenda-dashboard {
    grid-template-columns: 1fr 1fr;
  }
}

.calendar-week-grid {
  background: var(--card);
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--border);
}

.calendar-week-header {
  display: grid;
  grid-template-columns: 70px repeat(7, 1fr);
  background: var(--bg);
  border-bottom: 1px solid var(--border);
}

.calendar-week-day {
  padding: 8px;
  text-align: center;
  font-size: 12px;
}

.calendar-week-body {
}

.calendar-week-row {
  display: grid;
  grid-template-columns: 70px repeat(7, 1fr);
  min-height: 70px;
  border-bottom: 1px solid var(--border);
}

.calendar-slot {
  position: relative;
}


.month-cell {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 6px;
  min-height: 110px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.month-day {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-soft);
}

.month-day.today {
  background: var(--primary);
  color: #fff;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.month-events {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.month-pill {
  font-size: 11px;
  padding: 3px 6px;
  border-radius: 6px;
  text-align: left;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.month-more {
  font-size: 10px;
  color: var(--text-soft);
}

 .calendar-event {
  touch-action: none;
}

.calendar-slot {
  position: relative;
}

.week-mobile-day {
  background: var(--card);
  border-radius: 12px;
  margin-bottom: 10px;
  padding: 10px;
  border: 1px solid var(--border);
}

.week-mobile-header {
  font-weight: 600;
  font-size: 14px;
  margin-bottom: 8px;
}

.week-mobile-item {
  display: flex;
  gap: 10px;
  padding: 8px;
  border-radius: 8px;
  background: var(--bg);
  margin-bottom: 6px;
}

.week-mobile-item .time {
  font-weight: bold;
  min-width: 50px;
}

.week-mobile-item .name {
  font-weight: 600;
}

.week-mobile-item .service {
  font-size: 12px;
  opacity: 0.7;
}

.empty {
  font-size: 12px;
  opacity: 0.5;
}

.calendar-week-time-head {
  background: var(--bg);
  border-right: 1px solid var(--border);
}

.week-today {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: var(--primary);
  color: #fff;
  margin-top: 2px;
}

 .month-mobile-day {
  background: var(--card);
  border-radius: 12px;
  padding: 10px;
  margin-bottom: 10px;
  border: 1px solid var(--border);
}

.month-mobile-header {
  font-weight: 600;
  margin-bottom: 8px;
}

.month-mobile-header.today {
  color: var(--primary);
}

.month-mobile-item {
  display: flex;
  gap: 10px;
  padding: 8px;
  background: var(--bg);
  border-radius: 8px;
  margin-bottom: 6px;
}

.month-mobile-item .time {
  font-weight: bold;
  min-width: 50px;
}


.calendar-event {
  padding: 6px 8px;
  font-size: 12px;
  overflow: hidden;
}

.calendar-event strong {
  font-size: 13px;
  display: block;
  line-height: 1.2;
}

.calendar-event div {
  font-size: 11px;
  opacity: 0.8;
}


.calendar-slot {
  position: relative;
}

.calendar-event {
  font-size: 11px;
  padding: 6px 8px;
  border-radius: 10px;

  display: flex;
  flex-direction: column;
  justify-content: center;

  overflow: hidden;
}

.evt-line {
  display: flex;
  align-items: center;
  gap: 4px;

  font-size: 12px;
  font-weight: 600;

  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.evt-time {
  font-size: 12px;
  font-weight: 600;
  flex-shrink: 0;
}

.evt-name {
  font-size: 12px;
  font-weight: 600;

  overflow: hidden;
  text-overflow: ellipsis;
}

.evt-sep {
  flex-shrink: 0;
  opacity: 0.6;
}

.evt-sub {
  font-size: 11px;
  opacity: 0.85;

  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media (max-width: 760px) {

  /* 🔥 esconde linhas de 15/30/45 */
  .calendar-row[data-minute]:not([data-minute="0"]) {
    border-bottom: none !important;
  }

}

.calendar-event {
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
}

/* 🔥 FORÇA PADRÃO NOS AVATARES DOS PROFISSIONAIS */
.agenda-top-controls img,
.agenda-top-controls .avatar,
.agenda-top-controls button img,
.agenda-top-controls div img {
  border-radius: 14px !important;
}

 .pp-pay-btn {
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid #ccc;
  font-size: 13px;
  background: var(--surface);
  transition: all 0.2s ease;
}

/* 🔥 ESTADO ATIVO */
.pp-pay-btn.active {
  background: #26D367;
  color: #fff;
  border-color: #26D367;
  opacity: 1 !important;
  transform: scale(1.02);
}

.prof-role {
  font-size: 11px;
  padding: 4px 4px;
  border-radius: 8px;
  border: 1px solid rgba(0,0,0,0.1);
  font-weight: 500;
  white-space: nowrap;
}

/* variações */
.prof-role.dono {
  background: #ede9fe;
  color: #5b21b6;
}

.prof-role.profissional {
  background: #e0f2fe;
  color: #075985;
}

.prof-role.secretaria,
.prof-role.secretário,
.prof-role.secretario {
  background: #fef3c7;
  color: #92400e;
}

.prof-role {
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
}

.prof-role.admin {
  background: #ede9fe;
  color: #6d28d9;
}

.prof-role.profissional {
  background: #e0f2fe;
  color: #0369a1;
}

.prof-role.dono {
  background: #fef3c7;
  color: #92400e;
}

        .appt-card:hover {
  transform: scale(1.01);
  transition: 0.15s ease;
}

        .sidebar-logo {
  width: 70px;
  height: auto;
  opacity: 0.9;
}

.appt-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.appt-card-actions button {
  min-height: 34px;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  border: 1px solid transparent;
  background: #f1f1f4;
  color: var(--primary);
}

.appt-card-actions .action-edit {
  background: #eef2ff;
  color: #4f46e5;
}

.appt-card-actions .success,
.appt-card-actions .action-done {
  background: #dcfce7;
  color: #16a34a;
}

.appt-card-actions .danger,
.appt-card-actions .action-cancel {
  background: #fee2e2;
  color: #dc2626;
}

.appt-card-actions button:active {
  transform: scale(0.96);
  opacity: 0.85;
}

        .modal,
[role="dialog"] {
  width: 100%;
  max-width: 90vw !important;
}

.btn-switch-view {
  display: inline-flex;
  align-items: center;
  gap: 6px;

  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 10px;

  padding: 8px 12px;

  font-size: 13px;
  font-weight: 500;
  color: var(--text);

  cursor: pointer;
  transition: all .2s ease;
}

/* hover */
.btn-switch-view:hover {
  background: var(--bg);
  border-color: rgba(0,0,0,.15);
}

/* click */
.btn-switch-view:active {
  transform: scale(0.96);
}

/* ícone */
.btn-switch-view .icon {
  font-size: 14px;
}

        .agenda-actions {
  display: flex;
  gap: 8px;
}

.appt-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 14px;
  margin-bottom: 10px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.04);
  transition: 0.2s;
}

.appt-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
}

.appt-card-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.appt-card-name {
  font-weight: 600;
  font-size: 15px;
}

.appt-card-service {
  font-size: 12px;
  opacity: 0.6;
}

.appt-card-price {
  font-weight: bold;
  font-size: 14px;
  text-align: right;
}

.appt-card-time {
  font-size: 11px;
  opacity: 0.6;
  text-align: right;
}

.appt-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.meta-item {
  font-size: 11px;
  opacity: 0.7;
}

.meta-item.prof {
  font-weight: 500;
}

.appt-card-actions {
  display: flex;
  gap: 6px;
  margin-top: 12px;
}

.appt-card-actions button {
  flex: 1;
  padding: 6px;
  border-radius: 8px;
  font-size: 12px;
  border: none;
}

.action-view { background: #eee; }
.action-edit { background: #ddd; }
.action-done { background: #22c55e; color: #fff; }
.action-cancel { background: #ef4444; color: #fff; }

.badge {
  font-size: 11px;
  padding: 4px 8px;
  border-radius: 999px;
}


 /* ===== MODAL BASE ===== */
.appt-modal {
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* ===== AVATAR ===== */
.avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
}

/* ===== CARD PRINCIPAL ===== */
.appt-main-card {
  background: var(--card);
  border-radius: 16px;
  padding: 14px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
  border: 1px solid var(--border);
}

/* ===== BOTÕES ===== */
.appt-actions {
  display: flex;
  gap: 8px;
}

.btn-wa {
  flex: 1;
  background: #25D366;
  color: white;
  border-radius: 12px;
  height: 44px;
  font-weight: 600;
  transition: 0.2s;
}

.btn-wa:hover {
  background: #1ebe5d;
}

.btn-call {
  flex: 1;
  border-radius: 12px;
  height: 44px;
  border: 1px solid var(--border);
  background: var(--card);
  font-weight: 600;
}

.btn-call:hover {
  background: var(--bg);
}

/* ===== STATUS ===== */
.appt-status {
  display: flex;
  gap: 6px;
}

.appt-status button {
  flex: 1;
  border-radius: 12px;
  padding: 10px;
  font-size: 13px;
  border: 1px solid var(--border);
  opacity: 0.6;
  transition: 0.2s;
}

.appt-status button.active {
  background: var(--primary);
  color: #fff;
  opacity: 1;
  border-color: transparent;
}

/* ===== SALDO ===== */
.appt-finance {
  background: var(--card);
  border-radius: 14px;
  padding: 12px;
  border: 1px solid var(--border);
}

.finance-row {
  display: flex;
  gap: 6px;
}

#saldo-valor {
  flex: 1;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 6px;
  font-size: 13px;
}

#saldo-add {
  border-radius: 8px;
  padding: 6px 10px;
  border: 1px solid var(--border);
  background: var(--card);
  font-size: 13px;
}

/* ===== PAGAMENTO ===== */
.pp-pay-btn {
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 12px;
  border: 1px solid #ddd;
  transition: 0.2s;
}

.pp-pay-btn.active {
  background: var(--primary);
  color: #fff;
  border-color: transparent;
  opacity: 1;
}

/* ===== CANCELAR ===== */
.btn-cancel {
  border: 1px solid #ef4444;
  color: #ef4444;
  background: transparent;
  padding: 10px;
  border-radius: 12px;
  font-size: 13px;
  transition: 0.2s;
}

.btn-cancel:hover {
  background: rgba(239,68,68,0.08);
}

/* ===== LEMBRETES ===== */
#pp-reapply {
  border-radius: 999px;
  font-size: 12px;
  padding: 6px 12px;
  border: 1px solid var(--border);
  background: var(--card);
}

#pp-reapply:hover {
  background: var(--bg);
}



        /* WRAPPER */
.srv-wrapper {
  display: flex;
  flex-direction: column;
  height: calc(100vh - 120px);
}

/* LISTA */
.srv-list {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
  padding-bottom: 90px;
  display: grid;
  gap: 12px;
}

/* FOOTER FIXO */
.srv-footer {
  position: fixed !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  display: flex;
  gap: 10px;
  padding: 12px;
  padding-bottom: calc(12px + env(safe-area-inset-bottom)) !important;
  background: var(--surface) !important;
  border-top: 1px solid var(--border);
  box-shadow: 0 -4px 12px rgba(0,0,0,0.05);
  z-index: 100 !important;
}
/* BOTÕES */
.srv-cancel {
  flex: 1;
  height: 44px;
  border-radius: 10px;
  background: #eee;
  font-weight: 600;
}
.srv-confirm {
  flex: 1;
  height: 44px;
  border-radius: 10px;
  background: var(--primary-soft);
  color: var(--primary);
  font-weight: 700;
}



/* =====================================================
   🎨 DAYLOU SOFT UI
   PATCH VISUAL REAL
===================================================== */

/* ===== ROOT ===== */

:root{
  --primary:var(--primary-dark);
  --secondary:#8B7CFF;
  --accent:#A855F7;

  --bg:#F4F2FF;
  --card:#FFFFFF;

  --text:#1E1B2E;
  --text-soft:#8F88B3;

  --border:rgba(108,92,231,.10);

  --primary-soft:rgba(108,92,231,.12);
}

/* =====================================================
   BASE
===================================================== */

body,
#app,
.screen.active{
  background:var(--bg);
}

/* =====================================================
   SIDEBAR
===================================================== */

.sidebar{
  background:linear-gradient(180deg,#181927,#232540);
  border-right:1px solid rgba(255,255,255,.06);
  box-shadow:4px 0 30px rgba(0,0,0,.12);
}

.sidebar-link{
  border-radius:14px;
  transition:.2s ease;
}

.sidebar-link:hover{
  background:rgba(255,255,255,.08);
}

.sidebar-link.active,
.sidebar-link.text-primary{
  background:rgba(255,255,255,.12);
  backdrop-filter:blur(10px);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05);
}

/* =====================================================
   MOBILE TOPBAR
===================================================== */

.mobile-topbar{
  background:rgba(255,255,255,.85) !important;
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(108,92,231,.08);
}

.hamburger-btn{
  background:#EFEAFE !important;
  color:var(--primary-dark);
  box-shadow:0 2px 8px rgba(108,92,231,.12);
}

/* =====================================================
   DASHBOARD
===================================================== */

.agenda-dashboard{
  gap:12px;
}

.dash-card{
  border-radius:22px;
  border:1px solid rgba(108,92,231,.08);
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);
  box-shadow:
    0 4px 18px rgba(108,92,231,.05),
    inset 0 1px 0 rgba(255,255,255,.7);
  transition:.2s ease;
}

.dash-card:hover{
  transform:translateY(-2px);
}

.dash-icon{
  width:38px;
  height:38px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#F3EFFF;
  color:var(--primary-dark);
}

.dash-title{
  color:#9B94C9;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.dash-value{
  color:#1E1B2E;
  font-weight:800;
}

.dash-sub{
  color:#A4A0C4;
}

/* =====================================================
   AGENDA HEADER
===================================================== */

.agenda-header-new{
  background:transparent;
  border-bottom:none;
}

/* ======================================
   BARRA DIA / SEMANA / MÊS
====================================== */

.agenda-views{
  position:relative;

  left:50%;
  transform:translateX(-50%);

  width:100vw;

  display:grid;

  grid-template-columns:1fr 1fr 1fr;

  gap:14px;

  padding:12px 18px;

  height:auto;

  align-items:center;

  margin:0;

  background:#1b1c2d !important;

  border:none !important;

  border-radius:0 !important;

  box-shadow:none !important;
}

.agenda-views a{
  height:26px;

  display:flex;
  align-items:center;
  justify-content:center;

  border-radius:14px;

  background:rgba(255,255,255,.96);

  color:#3a4057;

  font-size:15px;
  font-weight:700;

  text-decoration:none;

  transition:.2s ease;
}

.agenda-views a.active{
  width:86%;

  margin:auto;

  border-radius:16px;

  background:linear-gradient(
    135deg,
    #6F5BFF,
    #5B46D6
  );

  color:#fff;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    0 4px 14px rgba(0,0,0,.12);
}

/* ======================================
   BARRA DATA
====================================== */


  /* ── Navegação de Dia (3 itens) ── */

.agenda-nav{
  position:relative;
  left:50%;
  transform:translateX(-50%);
  width:100vw;
  min-height:52px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:6px 12px;
  margin-top:-1px;
  background:linear-gradient(
    135deg,
    
var(--primary-dark),
    
var(--primary)
  );
  border:none;
  border-radius:0;
  box-shadow:none;
}
  .agenda-nav .ag-day-nav-items {
    display: flex;
    flex: 1;
    align-items: center;
    gap: 6px;
  }
  .agenda-nav .ag-day-nav-item {
    flex: 1;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 1px solid transparent;
    background: transparent;
    color: rgba(255,255,255,0.55) !important;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    padding: 0 8px;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: background 0.12s, color 0.12s;
  }
  .agenda-nav .ag-day-nav-item.ag-day-nav-current {
    background: rgba(0,0,0,0.16) !important;
    border: 1px solid rgba(255,255,255,0.12) !important;
    color: #fff !important;
    font-size: 15px;
  }
  .agenda-nav .ag-day-nav-item:hover:not(.ag-day-nav-current) {
    background: rgba(0,0,0,0.10) !important;
    color: rgba(255,255,255,0.80) !important;
  }
  .agenda-nav .ag-day-nav-arrow {
    min-width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    color: #fff !important;
    font-weight: 700;
    font-size: 20px;
    cursor: pointer;
    flex-shrink: 0;
  }

@media (min-width: 768px) {
  .ag-day-nav-items {
    max-width: 480px;
    margin: 0 auto;
  }
}


/* =====================================================
   CARDS GERAIS
===================================================== */

.appt-card,
.agend-card,
.appt-main-card,
.month-cell,
.week-mobile-day,
.month-mobile-day,
.calendar-week-grid,
.calendar-day-grid{
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);
  border:1px solid rgba(108,92,231,.08);
  box-shadow:
    0 4px 18px rgba(108,92,231,.05),
    inset 0 1px 0 rgba(255,255,255,.7);
}

/* =====================================================
   LISTA CLIENTES
===================================================== */

.client-card,
.cliente-card,
[data-client-card]{
  background:#fff;
  border-radius:22px;
  border:1px solid rgba(108,92,231,.08);
  box-shadow:0 4px 18px rgba(108,92,231,.05);
  transition:.18s ease;
}

.client-card:hover,
.cliente-card:hover,
[data-client-card]:hover{
  transform:translateY(-2px);
}

.client-avatar,
.cliente-avatar{
  background:#F1EDFF !important;
  color:var(--primary-dark) !important;
  border-radius:50%;
}

/* =====================================================
   INPUTS
===================================================== */

input:not([type="checkbox"]):not([type="radio"]),
select,
textarea{
  border:1px solid rgba(0,0,0,0.12) !important;
  box-shadow:none !important;
  outline:none !important;
}

input:not([type="checkbox"]):not([type="radio"]):focus,
select:focus,
textarea:focus{
  border-color:var(--primary) !important;
  box-shadow:0 0 0 3px rgba(79,140,255,0.15) !important;
}

/* =====================================================
   SEARCH
===================================================== */

.agend-search{
  border-radius:18px;
  border:1px solid rgba(108,92,231,.08);
  background:#fff;
  box-shadow:0 2px 10px rgba(108,92,231,.04);
}

/* =====================================================
   BUTTONS
===================================================== */

.btn-primary,
.agend-new-btn,
.btn-encaixe,
.srv-confirm{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark)) !important;
  color:#fff !important;
  border:none !important;
  box-shadow:0 10px 24px rgba(108,92,231,.22);
}

.btn{
  border-radius:12px;
}

.appt-card-actions button,
.agend-actions button{
  border-radius:999px !important;
  font-weight:700;
  border:none !important;
}

.action-edit{
  background:#EEF2FF !important;
  color:#4F46E5 !important;
}

.action-done,
.success{
  background:#DCFCE7 !important;
  color:#16A34A !important;
}

.action-cancel,
.danger{
  background:#FEE2E2 !important;
  color:#DC2626 !important;
}

/* =====================================================
   FAB
===================================================== */

#fab-add{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark)) !important;
  border:none !important;
  box-shadow:0 16px 34px rgba(108,92,231,.28);
  border-radius:22px !important;
}

/* =====================================================
   BADGES
===================================================== */

.badge,
.agend-badge{
  background:#F1EDFF;
  color:var(--primary-dark);
  border:none;
  font-weight:700;
}

.status-green{
  background:#DCFCE7 !important;
  color:#16A34A !important;
}

.status-orange{
  background:#FFF3E0 !important;
  color:#B45309 !important;
}

.status-red{
  background:#FEE2E2 !important;
  color:#DC2626 !important;
}

/* =====================================================
   CALENDÁRIO
===================================================== */

.calendar-row{
  border-bottom:1px solid rgba(108,92,231,.06);
}

.calendar-hour{
  background:#FAF9FF;
  color:#9A93C7;
  border-right:1px solid rgba(108,92,231,.06);
}

.calendar-event{
  background:#F1EDFF;
  border:1px solid rgba(108,92,231,.08);
  color:#5B46D6;
  box-shadow:0 6px 14px rgba(108,92,231,.08);
}

.calendar-block{
  background:#FFF1F2;
  border-left:4px solid #EF4444;
}

/* =====================================================
   MODAIS
===================================================== */

.modal-content,
.modal-inner,
.modal-panel{
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(14px);
  border:1px solid rgba(108,92,231,.08);
  box-shadow:0 20px 50px rgba(0,0,0,.10);
}

/* =====================================================
   PAYMENT BUTTONS
===================================================== */

.pp-pay-btn{
  border-radius:999px;
  border:1px solid rgba(108,92,231,.08);
  background:#fff;
  color:var(--primary-dark);
}

.pp-pay-btn.active{
  background:#22C55E !important;
  color:#fff !important;
  border-color:#22C55E !important;
}

/* =====================================================
   MOBILE
===================================================== */

@media (max-width:760px){

  .agenda-header-new{
    padding:0 !important;
    overflow:hidden;
  }

  .agenda-nav{
    width:100%;
  }

  /* ── BOTÃO LISTA dark ──
     O #app tem overflow-y:auto que cria stacking context e prende o fixed.
     Solução: aplicar o estilo dark diretamente aqui com máxima especificidade.
     O JS renderiza o botão dentro do head (agenda-header-new), que está
     dentro do #app. Para ele aparecer sobre a mobile-topbar, o #app não
     pode criar stacking context — resolvido removendo overflow no mobile
     e deixando o scroll no elemento interno.
  */
  /* btn-switch-view no mobile: mantém position:fixed original,
     só muda aparência para dark */
  .btn-switch-view {
    background: rgba(255,255,255,0.12) !important;
    border: 1px solid rgba(255,255,255,0.22) !important;
    border-radius: 20px !important;
    color: #fff !important;
    box-shadow: none !important;
  }

}

/* ── #app no mobile: sem overflow-y para não criar stacking context ──
   O scroll fica no elemento filho da agenda (agenda-body, etc.)
   Isso permite que position:fixed dentro do #app apareça sobre tudo.
*/
@media (max-width:760px){
  #app {
    overflow-y: auto !important;
    height: auto !important;
    min-height: 100vh !important;
    scrollbar-width: none !important;
  }
  #app::-webkit-scrollbar {
    display: none !important;
  }
}

/* =========================================================
   ✨ REFINAMENTO PREMIUM — TOPO DARK / CARDS LIGHT
   Daylou · Visual Híbrido Moderno
   ========================================================= */

/* ── VARIÁVEIS LOCAIS ── */
:root {
  --dark-bg: #13142a;
  --dark-surface: #1a1c35;
  --dark-border: rgba(255,255,255,0.07);
  --purple-active: var(--primary-dark);
  --purple-glow: rgba(108,92,231,0.28);
  --card-bg: #ffffff;
  --card-shadow: 0 2px 12px rgba(108,92,231,0.07), 0 1px 3px rgba(0,0,0,0.05);
  --card-border: rgba(108,92,231,0.09);
}

/* ── MOBILE TOPBAR DARK PREMIUM ── */
@media (max-width: 760px) {
  .mobile-topbar {
    background: var(--dark-bg) !important;
    backdrop-filter: none !important;
    border-bottom: 1px solid var(--dark-border) !important;
    color: #fff !important;


  }

  .mobile-title {
    color: #fff !important;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -0.01em;
  }

  .hamburger-btn {
    background: rgba(255,255,255,0.08) !important;
    color: #fff !important;
    box-shadow: none !important;
    border: 1px solid rgba(255,255,255,0.10) !important;
    border-radius: 12px !important;
  }
}

/* ── AGENDA HEADER AREA — DARK ── */
.agenda-header-new {
  background: var(--dark-bg) !important;
  border-bottom: none !important;
  padding: 0 !important;
  position: relative;
  z-index: 10;
  overflow: visible !important;
  border-radius: 0 0 0px 0px !important;
}

.agenda-top-controls {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  padding: 0 !important;
  align-items: stretch !important;
}

/* ── PROF TABS — fundo claro com cantos superiores arredondados ── */
#agenda-prof-tabs {
  background: #f4f4f8 !important;
  border-radius: 0px 0px 0 0 !important;
  padding: px 14px 10px !important;
  margin: 0 !important;
width: 100% !important;
  position: relative;
  z-index: 5;
  overflow: visible !important;

}

/* Scroll horizontal nos botões de profissional */
#agenda-prof-tabs > div {
  display: flex !important;
  gap: 8px !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: none !important;
  padding-bottom: 2px !important;
}
#agenda-prof-tabs > div::-webkit-scrollbar { display: none !important; }

/* ── BOTÃO LISTA — fixo no topo, sobre tudo ──
   A mobile-topbar tem z-index:1200. Este botão precisa de estar DENTRO
   da topbar visualmente mas como não é filho dela, usamos z-index superior
   e top calculado para alinhar com a altura da topbar (60px → centro = 10px).
*/
/* ── BOTÃO LISTA — dark style ──
   No mobile era originalmente position:fixed flutuante.
   Mantemos esse comportamento, só mudamos a aparência para dark.
   No desktop fica no fluxo normal dentro de .agenda-actions.
*/
.btn-switch-view {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  height: 38px !important;
  padding: 0 16px !important;
  background: rgba(255,255,255,0.10) !important;
  border: 1px solid rgba(255,255,255,0.22) !important;
  border-radius: 20px !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  box-shadow: none !important;
  cursor: pointer !important;
}

.btn-switch-view:hover {
  background: rgba(255,255,255,0.20) !important;
  color: #fff !important;
}

/* ── TABS DIA / SEMANA / MÊS — PREMIUM DARK ── */
.agenda-views {
  position: relative !important;
  left: 0 !important;
  transform: none !important;
  width: 100% !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr 1fr !important;
  gap: 8px !important;
  padding: 14px 16px 10px !important;
  background: var(--dark-bg) !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin: 0 !important;
}

.agenda-views a {
  height: 38px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,0.07) !important;
  color: rgba(255,255,255,0.5) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  border: 1px solid rgba(255,255,255,0.06) !important;
  transition: all 0.18s ease !important;
  letter-spacing: 0.01em;
}

.agenda-views a:hover:not(.active) {
  background: rgba(255,255,255,0.11) !important;
  color: rgba(255,255,255,0.75) !important;
}

.agenda-views a.active {
  width: 100% !important;
  margin: 0 !important;
  height: 38px !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, var(--primary), var(--primary-dark)) !important;
  color: #fff !important;
  font-weight: 700 !important;
  border: none !important;
  box-shadow:
    0 4px 16px rgba(108,92,231,0.35),
    inset 0 1px 0 rgba(255,255,255,0.15) !important;
}

/* ── NAVEGAÇÃO HOJE / ONTEM / AMANHÃ — DARK ── */
.agenda-nav {
  position: relative !important;
  left: 0 !important;
  transform: none !important;
  width: 100% !important;
  min-height: 54px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 6px !important;
  padding: 8px 14px 16px !important;
  background: var(--dark-bg) !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin: 0 !important;
}

.agenda-nav .ag-day-nav-items {
  display: flex !important;
  flex: 1 !important;
  align-items: center !important;
  gap: 6px !important;
}

.agenda-nav .ag-day-nav-item {
  flex: 1 !important;
  height: 40px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 999px !important;
  border: 1px solid transparent !important;
  background: transparent !important;
  color: rgba(255,255,255,0.45) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  transition: all 0.15s ease !important;
  white-space: nowrap !important;
}

.agenda-nav .ag-day-nav-item.ag-day-nav-current {
  background: linear-gradient(135deg, var(--primary), var(--primary-dark)) !important;
  border-color: transparent !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  box-shadow: 0 4px 14px rgba(108,92,231,0.30) !important;
}

.agenda-nav .ag-day-nav-item:hover:not(.ag-day-nav-current) {
  background: rgba(255,255,255,0.08) !important;
  color: rgba(255,255,255,0.75) !important;
}

.agenda-nav .ag-day-nav-arrow {
  min-width: 36px !important;
  height: 36px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 12px !important;
  background: rgba(255,255,255,0.07) !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  box-shadow: none !important;
  color: rgba(255,255,255,0.7) !important;
  font-weight: 700 !important;
  font-size: 18px !important;
  cursor: pointer !important;
  transition: background 0.15s !important;
  flex-shrink: 0 !important;
}

.agenda-nav .ag-day-nav-arrow:hover {
  background: rgba(255,255,255,0.13) !important;
  color: #fff !important;
}

/* Botão Lista — ver regra #btn-lista acima (fixed na topbar) */
.btn-switch-view:hover {
  background: rgba(255,255,255,0.16) !important;
  color: #fff !important;
}

/* ── ÁREA DE CONTEÚDO ABAIXO DO HEADER — FUNDO CLARO ── */
.agenda-body {
  background: #f4f4f8 !important;
  position: relative;
  z-index: 5;
}

/* Dashboard fica direto após o prof-tabs (que já faz a curva) */
.agenda-dashboard {
  background: #f4f4f8 !important;
  position: relative;
  z-index: 5;
  margin-top: 0 !important;
  padding: 10px 14px 14px !important;
}

/* ── FILTRO DE PROFISSIONAIS — estilos no bloco #agenda-prof-tabs acima ── */

/* ── Botões de profissional — base clara ── */
#agenda-prof-tabs button[data-prof] {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 8px 14px !important;
  border-radius: 16px  !important;
  background: var(--surface) !important;
  border: 1.5px solid rgba(108,92,231,0.10) !important;
  box-shadow: 0 2px 8px rgba(108,92,231,0.06) !important;
  color: #4a4a6a !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  transition: all 0.18s ease !important;
  white-space: nowrap !important;
  position: relative !important;
  flex-shrink: 0 !important;
}

/* Profissional selecionado — roxo sólido */
#agenda-prof-tabs button[data-prof].bg-\[\var(--primary)\],
#agenda-prof-tabs button.bg-\[\var(--primary)\] {
  background: linear-gradient(135deg, var(--primary), var(--primary-dark)) !important;
  border-color: transparent !important;
  color: #fff !important;
  box-shadow:
    0 6px 18px rgba(108,92,231,0.28),
    inset 0 1px 0 rgba(255,255,255,0.15) !important;
}

/* Fallback: qualquer botão ativo no container prof */
#agenda-prof-tabs button[data-prof]:not(.bg-white) {
  background: linear-gradient(135deg, var(--primary), var(--primary-dark)) !important;
  border-color: transparent !important;
  color: #fff !important;
  box-shadow: 0 6px 18px rgba(108,92,231,0.28) !important;
}

/* Círculo branco com check no canto superior direito (profissional ativo) */
#agenda-prof-tabs button[data-prof]:not(.bg-white)::after {
  content: '✓';
  position: absolute !important;
  top: -7px !important;
  right: -7px !important;
  width: 20px !important;
  height: 20px !important;
  background: var(--surface) !important;
  color: var(--primary-dark) !important;
  border-radius: 50% !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.14) !important;
  line-height: 20px !important;
  text-align: center !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* ── DASHBOARD CARDS — COMPACTOS E PREMIUM ── */
.agenda-dashboard {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 12px !important;
}

@media (min-width: 760px) {
  .agenda-dashboard {
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 14px !important;
  }
}

.dash-card {
  background: var(--surface) !important;
  border-radius: 18px !important;
  padding: 14px 14px 12px !important;
  border: 1px solid var(--card-border) !important;
  box-shadow: var(--card-shadow) !important;
  position: relative !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  overflow: visible !important;
  backdrop-filter: none !important;
}

.dash-card:hover {
  transform: translateY(-2px) !important;
  box-shadow:
    0 8px 24px rgba(108,92,231,0.10),
    0 2px 6px rgba(0,0,0,0.06) !important;
}

/* Três pontinhos verticais no canto superior direito */
.dash-card::before {
  content: '⋮';
  position: absolute !important;
  top: 12px !important;
  right: 12px !important;
  font-size: 18px !important;
  color: #c4c0da !important;
  line-height: 1 !important;
  cursor: pointer !important;
  padding: 0 2px !important;
  border-radius: 6px !important;
  transition: color 0.15s !important;
}

.dash-card:hover::before {
  color: var(--purple-active) !important;
}

/* Ícone maior com container suave */
.dash-icon {
  width: 40px !important;
  height: 40px !important;
  border-radius: 14px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #F0EDFF !important;
  font-size: 20px !important;
  margin-bottom: 4px !important;
  flex-shrink: 0 !important;
}

/* Título pequeno e discreto */
.dash-title {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: #9b94c0 !important;
  line-height: 1.2 !important;
  padding-right: 18px !important; /* espaço para os pontinhos */
}

/* Número em grande destaque */
.dash-value {
  font-size: 30px !important;
  font-weight: 800 !important;
  color: var(--text) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.02em !important;
}

/* Subtítulo discreto */
.dash-sub {
  font-size: 11px !important;
  color: #b8b4d0 !important;
  font-weight: 500 !important;
  line-height: 1 !important;
}

/* ── AGENDA BODY AREA FUNDO CLARO ── */
.agenda-body {
  background: #f4f4f8 !important;
  border-radius: 0 !important;
  padding-top: 12px !important;
  min-height: 300px;
}

/* Garante que o conteúdo da agenda abaixo do header fique sobre fundo claro */
#app > *:not(.agenda-header-new):not(.mobile-topbar) {
  background: transparent;
}

/* agenda-actions visível em todos os breakpoints */


@media (max-width: 760px) {
  .mobile-topbar{
    display:flex;
    align-items:center;
    justify-content: space-between;
  }

  .mobile-title{
    margin-left:10px;
    flex:1;
  }

  .mobile-topbar-actions{
    margin-left:auto;
    display:flex;
    align-items:center;
  }
}

@media (max-width:760px){

  .btn-switch-view{

    height:34px !important;

    padding:0 12px !important;

    border-radius:14px !important;

    background:rgba(255,255,255,.08) !important;

    border:1px solid rgba(255,255,255,.14) !important;

    color:#fff !important;

    font-size:12px !important;
    font-weight:700 !important;

    box-shadow:none !important;
  }

}

/* AJUSTE PREMIUM: semana com centro fixo e laterais comprimidas */
.agenda-nav .ag-day-nav-items{
  min-width:0 !important;
  flex:1 !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) !important;
  align-items:center !important;
  gap:8px !important;
}

.agenda-nav .ag-day-nav-item{
  min-width:0 !important;
  max-width:100% !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}

.agenda-nav .ag-day-nav-item:not(.ag-day-nav-current){
  width:100% !important;
  opacity:.55 !important;
}

.agenda-nav .ag-day-nav-item.ag-day-nav-current{
  width:120px;
  flex:0 0 auto !important;
  padding:0 14px !important;
  justify-self:center !important;
  overflow:visible !important;
  text-overflow:clip !important;
  white-space:nowrap !important;
}

/* PERFIL PREMIUM CONTA */

.conta-profile-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;

  padding:4px 0 10px;
}

.conta-profile-avatar-wrap{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:14px;
}

.conta-avatar-btn{
  border:none;
  background:none;
  padding:0;
}

.conta-avatar-thumb{
  width:82px;
  height:82px;
  border-radius:999px;

  overflow:hidden;

  display:flex;
  align-items:center;
  justify-content:center;

  background:#F3F0FF;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.7),
    0 4px 12px rgba(108,92,231,.12);
}

.conta-avatar-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.conta-profile-info{
  display:flex;
  flex-direction:column;
  gap:4px;
}

.conta-profile-info strong{
  font-size:18px;
  line-height:1.2;
  color:#111827;
}

.conta-profile-info span{
  font-size:13px;
  color:#6B7280;

  margin-top:4px;
}

.conta-profile-edit-btn{
  width:42px;
  height:42px;

  border-radius:14px;

  border:1px solid rgba(123,97,255,.14);

  background:#F7F5FF;

  color:var(--primary-dark);

  font-size:18px;
}

/* CAMPOS PREMIUM CONTA */

.conta-field{
  padding:14px 0;
  border-bottom:1px solid rgba(0,0,0,.06);
}

.conta-field:last-child{
  border-bottom:none;
}

.conta-field-top{
  display:flex;
  align-items:center;
  justify-content:space-between;

  margin-bottom:8px;
}

.conta-field-top small{
  font-size:11px;
  font-weight:700;
  letter-spacing:.3px;

  color:#6B7280;

  text-transform:uppercase;
}

.conta-field input{
  height:52px !important;

  border-radius:16px !important;

  background:#FAFAFD !important;

  border:1px solid rgba(123,97,255,.08) !important;

  padding:0 16px !important;

  font-size:16px !important;

  box-shadow:none !important;
}

.conta-field input:focus{
  border-color:var(--primary) !important;

  box-shadow:
    0 0 0 4px rgba(123,97,255,.08) !important;
}

/* SETTINGS INLINE CONTA */

.conta-item{
  border-bottom:1px solid rgba(0,0,0,.06);
}

.conta-item:last-child{
  border-bottom:none;
}

.conta-item-head{
  width:100%;

  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:14px;

  padding:14px 0;

  border:none;
  background:none;

  text-align:left;
}

.conta-item-left{
  display:flex;
  align-items:center;
  gap:14px;

  min-width:0;
}

.conta-item-icon{
  width:38px;
  height:38px;

  border-radius:12px;

  background:#F4F1FF;

  display:flex;
  align-items:center;
  justify-content:center;

  flex-shrink:0;
}

.conta-item-text{
  min-width:0;
}

.conta-item-text small{
  display:block;

  font-size:11px;
  font-weight:700;

  color:#6B7280;

  margin-bottom:3px;
}

.conta-item-text strong{
  display:block;

  font-size:14px;
  font-weight:700;

  color:#111827;

  overflow:hidden;
  text-overflow:ellipsis;
}
.conta-item-arrow{
  color:#9CA3AF;

  font-size:24px;

  transition:.18s ease;
}

.conta-item.open .conta-item-arrow{
  transform:rotate(90deg);
}

.conta-item-body{
  display:none;

  padding:
    0
    0
    14px
    52px;
}

.conta-item.open .conta-item-body{
  display:block;
}

.conta-item-body input{
  height:50px !important;

  border-radius:14px !important;

  background:#FAFAFD !important;

  border:1px solid rgba(123,97,255,.08) !important;

  width:100%;

  padding:0 16px !important;
}

/* BOTÃO GUARDAR CONTA */

.conta-save-btn{
  width:100%;

  height:54px;

  border:none;

  border-radius:16px;

  background:
    linear-gradient(
      135deg,
      var(--primary),
      var(--primary-dark)
    );

  color:#fff;

  font-size:15px;
  font-weight:700;

  letter-spacing:.2px;

  box-shadow:
    0 10px 24px rgba(108,92,231,.22);

  transition:
    transform .16s ease,
    opacity .16s ease;
}

.conta-save-btn:active{
  transform:scale(.985);
}

/* MENSAGENS PREMIUM */

.conta-msg-textarea{
  width:100%;

  min-height:220px;

  border-radius:18px !important;

  border:1px solid rgba(123,97,255,.10) !important;

  background:#FAFAFD !important;

  padding:18px !important;

  line-height:1.6;

  resize:vertical;

  font-size:15px;
}

.conta-preview-box{
  background:#FAFAFD;

  border:1px solid rgba(123,97,255,.08);

  border-radius:18px;

  padding:18px;

  line-height:1.7;
}

/* COLLAPSE */

.conta-collapse{
  border-top:1px solid rgba(0,0,0,.06);

  padding-top:16px;
}

.conta-collapse-head{
  width:100%;

  display:flex;
  align-items:center;
  justify-content:space-between;

  border:none;
  background:none;

  padding:0;

  font-size:14px;
  font-weight:700;

  color:#374151;
}

.conta-collapse-arrow{
  font-size:24px;

  color:#9CA3AF;

  transition:.18s ease;
}

.conta-collapse.open .conta-collapse-arrow{
  transform:rotate(90deg);
}

.conta-collapse-body{
  display:none;

  margin-top:14px;
}

.conta-collapse.open .conta-collapse-body{
  display:block;
}

/* BACKUP PREMIUM */

.backup-grid{
  display:grid;

  grid-template-columns:
    repeat(2,minmax(0,1fr));

  gap:14px;
}

.backup-action-btn{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;

  gap:12px;

  min-height:120px;

  padding:18px;

  border-radius:20px;

  border:1px solid rgba(123,97,255,.08);

  background:#FAFAFD;

  text-align:left;

  transition:
    transform .16s ease,
    border-color .16s ease,
    background .16s ease;
}

.backup-action-btn:active{
  transform:scale(.985);
}

.backup-action-btn:hover{
  border-color:rgba(123,97,255,.22);

  background:#F7F5FF;
}

.backup-action-icon{
  width:46px;
  height:46px;

  border-radius:14px;

  background:#F1EDFF;

  display:flex;
  align-items:center;
  justify-content:center;

  font-size:20px;
}

.backup-action-text{
  display:flex;
  flex-direction:column;
  gap:4px;
}

.backup-action-text strong{
  font-size:14px;
  color:#111827;
}

.backup-action-text small{
  font-size:12px;
  color:#6B7280;
}


/* USER CARD */

.user-card-row{
  display:flex;
  align-items:center;

  gap:14px;
}

.user-card-avatar{
  width:54px;
  height:54px;

  border-radius:18px;

  background:#F3F0FF;

  display:flex;
  align-items:center;
  justify-content:center;

  font-size:22px;

  flex-shrink:0;
}

.user-card-info{
  display:flex;
  flex-direction:column;

  gap:4px;
}

.user-card-info strong{
  font-size:15px;

  color:#111827;
}

.user-card-info span{
  font-size:14px;

  color:#6B7280;

  word-break:break-word;
}

.user-logout-btn{
  width:100%;

  height:52px;

  border-radius:16px;

  border:1px solid rgba(239,68,68,.15);

  background:#FFF5F5;

  color:#DC2626;

  font-weight:700;

  transition:
    transform .16s ease,
    background .16s ease;
}

.user-logout-btn:active{
  transform:scale(.985);
}

.user-logout-btn:hover{
  background:#FEECEC;
}

/* LEGAL LIST */

.legal-list{
  display:flex;
  flex-direction:column;
}

.legal-row-btn{
  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:14px;

  padding:18px 0;

  border:none;
  background:none;

  text-align:left;

  border-bottom:1px solid rgba(0,0,0,.06);

  transition:opacity .16s ease;
}

.legal-row-btn:last-child{
  border-bottom:none;
}

.legal-row-btn:active{
  opacity:.7;
}

.legal-row-text{
  display:flex;
  flex-direction:column;

  gap:4px;
}

.legal-row-text strong{
  font-size:15px;
  font-weight:700;

  color:#111827;
}

.legal-row-text small{
  font-size:13px;

  color:#6B7280;

  line-height:1.5;
}

.legal-row-arrow{
  font-size:24px;

  color:#9CA3AF;

  flex-shrink:0;
}

/* CLIENTES REFINO */

.cliente-action-btn{
  width:38px;
  height:38px;

  border-radius:12px;

  border:1px solid rgba(123,97,255,.08);

  background:#fff;

  display:flex;
  align-items:center;
  justify-content:center;

  color:#6B7280;

  transition:
    background .16s ease,
    border-color .16s ease,
    transform .16s ease;
}

.cliente-action-btn:hover{
  background:#F8F7FF;

  border-color:rgba(123,97,255,.16);
}

.cliente-action-btn:active{
  transform:scale(.96);
}

.cliente-action-danger{
  color:#DC2626;

  border-color:rgba(239,68,68,.12);
}

.cliente-action-danger:hover{
  background:#FFF5F5;
}

/* HEADER CLIENTES */

.clientes-search-input{
  width:100%;

  height:54px;

  border-radius:18px;

  border:1px solid rgba(123,97,255,.08);

  background:#FAFAFD;

  padding:0 18px;

  font-size:15px;
}

.clientes-search-input::placeholder{
  color:#9CA3AF;
}

.clientes-top-btn{
  height:54px;

  border-radius:18px;

  display:flex;
  align-items:center;
  justify-content:center;

  gap:8px;

  font-weight:700;

  transition:
    transform .16s ease,
    opacity .16s ease,
    background .16s ease;
}

.clientes-top-btn:active{
  transform:scale(.985);
}

.clientes-top-btn-soft{
  background:#F3F4F6;

  color:#111827;

  border:1px solid rgba(0,0,0,.05);
}

.clientes-top-btn-primary{
  background:
    linear-gradient(
      135deg,
      var(--primary),
      var(--primary-dark)
    );

  color:#fff;

  box-shadow:
    0 10px 24px rgba(108,92,231,.18);
}

.mobile-topbar{
  background: var(--dark-bg) !important;

  border-bottom: 1px solid rgba(255,255,255,.06) !important;

  color:#fff !important;

  backdrop-filter:none !important;
}

.mobile-title{
  color:#fff !important;
}

.mobile-topbar .hamburger-btn{
  background: rgba(255,255,255,.08) !important;

  border:1px solid rgba(255,255,255,.12) !important;

  color:#fff !important;
}

/* =======================================================
   DESKTOP HEADER FIX
======================================================= */

@media (min-width: 761px){

  .agenda-header-new{
    padding: 14px 18px 0 !important;
  }

  .agenda-views,
  .agenda-nav{
    width: 100% !important;

    left: auto !important;
    transform: none !important;

    border-radius: 22px !important;

    padding-left: 18px !important;
    padding-right: 18px !important;

    box-sizing: border-box !important;
  }

  .agenda-views{
    margin-bottom: 10px !important;
  }

  .agenda-nav{
    margin-bottom: -8px !important;
  }

  #agenda-prof-tabs{
    margin-top: 0 !important;

    border-radius: 0px 0px 0 0 !important;
  }

  .agenda-actions{
    position: absolute !important;

    top: 14px !important;
    right: 18px !important;

    z-index: 20;
  }

  .btn-switch-view{
    height: 40px !important;

    padding: 0 16px !important;

    border-radius: 16px !important;
  }

}

@media (min-width: 761px){

  .btn-switch-view{

    position: absolute !important;

    top: 14px !important;

    right: 18px !important;

    z-index: 50 !important;

    height: 40px !important;

    padding: 0 16px !important;

    border-radius: 16px !important;
  }

}



/* =======================================================
   DARK HEADER GLOBAL — bloco único limpo
======================================================= */

/* Páginas com header.p-4 — #app escuro */
#app:has(> header.p-4),
#app:has(> .agend-page) {
  background: var(--dark-bg) !important;
}

#app > header.p-4 {
  background: transparent !important;
  border: none !important;
  padding: 20px 16px 44px !important;
}

#app > header.p-4 h2 {
  color: #fff !important;
  font-size: 22px !important;
  font-weight: 800 !important;
  text-align: center !important;
}

#app > header.p-4 p {
  color: rgba(255,255,255,0.55) !important;
  text-align: center !important;
}

#app > header.p-4 input {
  background: rgba(255,255,255,0.09) !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  border-radius: 14px !important;
  color: #fff !important;
  height: 46px !important;
  padding: 0 16px !important;
  font-size: 15px !important;
}

#app > header.p-4 input::placeholder {
  color: rgba(255,255,255,0.38) !important;
}

/* Clientes — div dentro do header (botões) */
#app > header.p-4 > div {
  background: none !important;
  border-radius: 0px 0px 0 0 !important;
  margin: 0 -16px !important;
  padding: 16px !important;
}

/*
#app > header.p-4 + div,
#app > header.p-4 + main,
#app > header.p-4 + .srv-wrapper {
  background: #f4f4f8 !important;
  border-radius: 00px 0px 0 0 !important;
  margin-top: -28px !important;
  min-height: 100vh !important;
}
*/

#app > header.p-4 + section {
  background: var(--bg) !important;
  border-radius: 0 !important;
  margin-top: 0 !important;
  min-height: 100vh !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

#app > header.p-4 + form {
  max-width: 100% !important;
  width: 100% !important;
  min-height: 100vh !important;
}

/* Profissionais */
#app .agend-page {
  background: transparent !important;
  padding: 0 !important;
}
#app .agend-header {
  background: transparent !important;
  border: none !important;
  padding-bottom: 44px !important;
  display: block !important;
  text-align: center !important;
  padding-top: 16px !important;
}
#app .agend-header h2 { color: #fff !important; text-align: center !important; }
#app .agend-header p  { color: rgba(255,255,255,0.55) !important; text-align: center !important; }
/*
#app .agend-header + * {
  background: #f4f4f8 !important;
  border-radius: 0px 0px 0 0 !important;
  margin-top: -28px !important;
  min-height: 100vh !important;
  padding: 16px !important;
}
*/
/* Clientes — page-shell/hero/surface */
.page-shell { background: var(--dark-bg); width: 100%; }
.page-hero {
  background: var(--dark-bg);
  padding: 16px 16px 44px !important;
}
.page-hero h2 { color: #fff !important; }
.page-hero input {
  background: rgba(255,255,255,0.09) !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  border-radius: 14px !important;
  color: #fff !important;
  height: 46px !important;
  padding: 0 16px !important;
  font-size: 15px !important;
  width: 100%;
  box-sizing: border-box;
}
.page-hero input::placeholder { color: rgba(255,255,255,0.38) !important; }
.page-surface {
  background: #f4f4f8 !important;
  border-radius: 0px 0px 0 0 !important;
  padding: 16px 14px 10px !important;
  margin-top: -28px !important;
}

/* Agenda — body-wrapper com curva */
.agenda-header-new {
  padding-bottom: 44px !important;
  overflow: visible !important;
}
.agenda-body-wrapper {
  background: var(--dark-bg) !important;
  border-radius: 0 !important;
}
#agenda-prof-tabs {
  background: #f4f4f8 !important;
  border-radius: 0px 0px 0 0 !important;
  position: relative;
  z-index: 2;
}

/* Desktop */
@media (min-width: 761px) {
  .mobile-topbar { display: none !important; }
  .agenda-header-new { padding-top: 14px !important; }

}

/* Mobile scroll — igual ao dia 09 */
@media (max-width: 760px) {
  #app {
    height: 100vh !important;
    overflow-y: auto !important;
  }
}

/* Dashboard mobile */
@media (max-width: 760px) {
  .agenda-dashboard {
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
    padding: 10px !important;
  }
  .dash-card { padding: 10px !important; border-radius: 14px !important; }
  .dash-value { font-size: 22px !important; }
  .dash-title { font-size: 10px !important; }
  .dash-sub   { font-size: 10px !important; }
  .dash-icon  { width: 28px !important; height: 28px !important; font-size: 14px !important; border-radius: 8px !important; margin-bottom: 2px !important; }
}

/* Dash icon e value global */
.dash-icon { width: 32px !important; height: 32px !important; font-size: 16px !important; }
.dash-icon svg { width: 18px !important; height: 18px !important; }
.dash-value { font-weight: 600 !important; font-size: 24px !important; }



/* Categoria serviço */
.cat-btn { transition: all 0.15s ease; }
.cat-btn.selected { background: var(--dark-bg) !important; color: #fff !important; border-color: var(--primary) !important; }
.cat-btn.selected i { color: #fff !important; }

/* Cards clientes */
[data-card] {
  background: var(--surface) !important;
  border: 1px solid rgba(108,92,231,0.08) !important;
  border-radius: 20px !important;
  padding: 12px 14px !important;
  box-shadow: 0 2px 8px rgba(108,92,231,0.04) !important;
  margin-bottom: 8px !important;
}

/* Srv wrapper */
.srv-wrapper { height: auto !important; min-height: 100vh !important; overflow-y: visible !important; }

/* Tabs financeiro */
#app > header.p-4 a[href*="financeiro"] { transition: all 0.15s ease !important; }
#app > header.p-4 a[href*="financeiro"]:hover { background: rgba(255,255,255,0.15) !important; color: #fff !important; }

/* Membros */
#admMembersList > div { padding: 12px 0 !important; }
#admMembersList .font-medium { font-size: 14px !important; font-weight: 700 !important; color: var(--text) !important; }
#admMembersList .text-xs.opacity-70 { color: #9b94c0 !important; opacity: 1 !important; }
#admMembersList [data-edit] { background: #f4f2ff !important; color: var(--primary-dark) !important; border: none !important; border-radius: 8px !important; padding: 4px 10px !important; font-size: 12px !important; font-weight: 600 !important; text-decoration: none !important; }
#admMembersList [data-del] { background: #fff0f0 !important; color: #dc2626 !important; border: none !important; border-radius: 8px !important; padding: 4px 10px !important; font-size: 12px !important; font-weight: 600 !important; text-decoration: none !important; }
#convitesReaisList > div { padding: 10px 0 !important; border-bottom: 1px solid rgba(108,92,231,0.08) !important; }
#convitesReaisList .font-medium { font-size: 13px !important; font-weight: 700 !important; color: var(--text) !important; }
#convitesReaisList [data-copy], #convitesReaisList a { background: #f4f2ff !important; color: var(--primary-dark) !important; border: none !important; border-radius: 8px !important; padding: 4px 10px !important; font-size: 12px !important; font-weight: 600 !important; text-decoration: none !important; }

/* Profissionais */
#lista-profissionais > div { background: var(--surface) !important; border: 1px solid rgba(108,92,231,0.08) !important; border-radius: 18px !important; padding: 14px !important; margin-bottom: 10px !important; display: flex !important; align-items: center !important; justify-content: space-between !important; box-shadow: 0 2px 8px rgba(108,92,231,0.04) !important; }
#lista-profissionais img.avatar { width: 44px !important; height: 44px !important; border-radius: 14px !important; }
#lista-profissionais .font-semibold, #lista-profissionais .font-medium { font-size: 15px !important; font-weight: 700 !important; color: var(--text) !important; }
#lista-profissionais .text-sm { color: #9b94c0 !important; font-size: 12px !important; }
#box-admin { background: var(--surface) !important; border: 1px solid rgba(108,92,231,0.08) !important; border-radius: 18px !important; padding: 16px !important; margin-top: 8px !important; box-shadow: 0 2px 8px rgba(108,92,231,0.04) !important; }

/* Badge selecionado */
.srv-selected-badge { display: inline-flex !important; align-items: center !important; gap: 4px !important; background: linear-gradient(135deg, var(--primary), var(--primary-dark)) !important; color: #fff !important; font-size: 11px !important; font-weight: 700 !important; padding: 3px 10px !important; border-radius: 999px !important; margin-top: 4px !important; }

/* Campos novo agendamento */
#app form.page-surface select,
#app form.page-surface input[type="date"],
#app form.page-surface input[type="time"] { border-radius: 14px !important; height: 48px !important; padding: 0 16px !important; font-size: 15px !important; border: 1px solid rgba(108,92,231,0.12) !important; background: var(--surface) !important; }
#app form.page-surface .pp-pay-btn { border-radius: 12px !important; padding: 8px 14px !important; font-size: 13px !important; font-weight: 600 !important; }
#app form.page-surface button[type="submit"], #app form.page-surface #btn-guardar-novo { height: 54px !important; border-radius: 16px !important; font-size: 15px !important; font-weight: 700 !important; }

/* Gráficos mobile */
@media (max-width: 760px) {
  #chart-pie, #chart-bar { max-height: 200px !important; }
}

::-webkit-scrollbar {
  width: 0px;
  background: transparent;
}

.agenda-body-wrapper {
  width: 100% !important;
  box-sizing: border-box !important;
}

/* ── Safe area — conteúdo não fica atrás do footer ── */
.page-surface,
#app > section,
#app > main,
#app > form {
  padding-bottom: calc(100px + env(safe-area-inset-bottom)) !important;
}

input[type="checkbox"] {
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  border: 2px solid var(--border) !important;
  border-radius: 5px !important;
  background: var(--input-bg) !important;
  cursor: pointer !important;
  position: relative !important;
  transition: all 0.15s ease !important;
}

input[type="checkbox"]:checked {
  background: var(--primary) !important;
  border-color: var(--primary) !important;
}

input[type="checkbox"]:checked::after {
  content: "" !important;
  position: absolute !important;
  left: 4px !important;
  top: 1px !important;
  width: 6px !important;
  height: 10px !important;
  border: 2px solid #fff !important;
  border-top: none !important;
  border-left: none !important;
  transform: rotate(45deg) !important;
}

#fab-add:active {
  transform: scale(0.92) !important;
  opacity: 0.85 !important;
  transition: transform 0.1s ease, opacity 0.1s ease !important;
}

.odontograma-wrapper,
#odontograma {
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
  max-width: 100% !important;
}

.srv-footer {
  position: fixed !important;
  bottom: 0 !important;
  left: var(--sidebar-w, 0px) !important;
  right: 0 !important;
  display: flex !important;
  gap: 12px !important;
  padding: 14px 16px calc(14px + env(safe-area-inset-bottom)) !important;
  background: rgba(13,15,20,0.96) !important;
  backdrop-filter: blur(18px) !important;
  -webkit-backdrop-filter: blur(18px) !important;
  border-top: 1px solid rgba(255,255,255,0.06) !important;
  z-index: 950 !important;
}

/* #app — definição única, ver bloco acima */





/* ===================================================
   NOVA ARQUITECTURA — sticky shell + scroll content
   Substitui page-hero + page-surface + côncavo
=================================================== */

.agenda-sticky-shell {
  position: sticky;
  top: 0;
  z-index: 40;
  background: rgba(26, 22, 50, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding: 12px 16px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}

.agenda-scroll-content {
  background: var(--bg);
  min-height: 100vh;
  padding-bottom: calc(80px + env(safe-area-inset-bottom));
}

.agenda-prof-chips {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 10px 0 8px;
}
.agenda-prof-chips::-webkit-scrollbar { display: none; }

.agenda-prof-chip {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px;
  border-radius: 14px;
  border: 1.5px solid var(--border, rgba(255,255,255,0.12));
  background: rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.75);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  position: relative;
  transition: background 0.15s, color 0.15s;
}
.agenda-prof-chip.active {
  background: linear-gradient(135deg, var(--primary), var(--primary-dark));
  color: #fff;
  border-color: transparent;
}

.chip-avatar {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  object-fit: cover;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 800;
  overflow: hidden;
  flex-shrink: 0;
}
.chip-avatar-icon {
  background: rgba(255,255,255,0.15);
}
.chip-check {
  position: absolute;
  top: -7px;
  right: -7px;
  width: 18px;
  height: 18px;
  background: var(--surface);
  color: var(--primary-dark, #4338ca);
  border-radius: 50%;
  font-size: 10px;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(0,0,0,0.14);
}

.agenda-sticky-shell .agenda-views {
  background: transparent !important;
}

.agenda-sticky-shell .agenda-nav,
.agenda-sticky-shell .ag-day-nav-items,
.agenda-sticky-shell .ag-day-nav-item {
  background: transparent !important;

.agenda-sticky-shell button.ag-day-nav-arrow,
.agenda-sticky-shell button#eq-prev,
.agenda-sticky-shell button#eq-next {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
}




.eq-prof-dd-item{
  width:100%;
  border:none;
  background:transparent;
  color:#fff;
  padding:12px 16px;
  text-align:left;
  cursor:pointer;
  font-size:14px;
  font-weight:600;
  border-bottom:1px solid rgba(255,255,255,0.08);
}

.eq-prof-dd-item:last-child{
  border-bottom:none;
}

.eq-prof-dd-item:hover{
  background:rgba(255,255,255,0.08);
}


.ag-day-nav-arrow {
  font-size: 26px !important;
  color: rgba(255, 255, 255, 0.82) !important;
  padding: 0 2px !important;
 min-width: 4px !important;
}


.page-footer {
  position: fixed;
  left: var(--sidebar-w, 0px);
  right: 0;
  bottom: 0;
  display: flex;
  gap: 12px;
  padding: 14px 16px calc(14px + env(safe-area-inset-bottom));
  background: rgba(13,15,20,0.96);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-top: 1px solid rgba(255,255,255,0.06);
  z-index: 950;
}