/* Bugambilias Green Theme + Bugambilia accents */
:root{
  --brand-deep:#062f1f;          /* page background */
  --brand-ivory:rgba(21,75,50,0.92); /* card surface */
  --brand-ink:#f2fff8;           /* light text */
  --brand-border:rgba(35,120,78,0.65);        /* borders */
  --brand-primary:#25a56b;       /* buttons, focus */
  --brand-primary-700:#1c8254;
  --btn-accent:#25a56b;
  --btn-accent-hover:#1f8a59;
  --btn-neutral-bg:rgba(12,56,36,0.85);
  --btn-neutral-br:rgba(30,102,66,0.55);
  --inp-bg:rgba(13,52,34,0.72);
  --inp-br:rgba(30,102,66,0.55);
  --inp-focus:#21a16455;
  --text:#f1fff7;
  --muted:#bde7d5;
  /* Bugambilia accent */
  --bugambilia:#e85c9e;
  --buga-ink:#fff4fa;
}

body{
  background:
    radial-gradient(1300px 720px at 85% -15%, rgba(232,92,158,.12), transparent 60%),
    radial-gradient(980px 640px at -10% 20%, rgba(16,86,52,.55), transparent 55%),
    var(--brand-deep) !important;
  color: var(--text) !important;
}
.main-container{ background: transparent !important; }
.card{ background: var(--brand-ivory) !important; border:1px solid color-mix(in srgb, var(--brand-border) 75%, rgba(0,0,0,.45) 25%) !important; box-shadow: 0 18px 44px rgba(0,0,0,.32) !important; backdrop-filter: blur(6px); }
.card.cal-card::before{ background: linear-gradient(165deg, rgba(36,119,78,.22), rgba(41,92,64,.15) 55%, rgba(232,92,158,.08)) !important; }
.tbl{ background: color-mix(in srgb, var(--brand-ivory) 92%, #0f2f1f 8%) !important; border-color: color-mix(in srgb, var(--brand-border) 75%, rgba(0,0,0,.4) 25%) !important; box-shadow: inset 0 0 0 1px rgba(0,0,0,.12); }
.tbl thead th{ background: color-mix(in srgb, rgba(32,99,67,.82) 55%, rgba(0,0,0,.5) 45%) !important; color:#f5fffa !important; letter-spacing:.04em; }
.tbl tbody td{ border-top:1px solid color-mix(in srgb, var(--brand-border) 55%, rgba(0,0,0,.45) 45%) !important; color:color-mix(in srgb, #f8fffb 94%, #a6e4c4 6%) !important; }
.tbl tbody td a{
  color: color-mix(in srgb, var(--bugambilia) 65%, #f3fff8 35%) !important;
  font-weight: 600;
  text-decoration: none;
  transition: color .18s ease, text-decoration-color .18s ease;
}
.tbl tbody td a:hover,
.tbl tbody td a:focus{
  color: color-mix(in srgb, var(--bugambilia) 85%, #fff 15%) !important;
  text-decoration: underline;
}
.tbl tbody tr:nth-child(odd){ background: color-mix(in srgb, rgba(15,64,42,.82) 60%, #0b2518 40%); }
.tbl tbody tr:nth-child(even){ background: color-mix(in srgb, rgba(19,74,48,.86) 62%, #0c2d1c 38%); }
.tbl tbody tr:hover{ background: color-mix(in srgb, var(--bugambilia) 10%, rgba(18,66,43,.88) 90%); }
.upcoming-table .date-sep td{ background: color-mix(in srgb, rgba(20,70,47,.82) 70%, rgba(0,0,0,.55) 30%) !important; color:#defbe9 !important; letter-spacing:.12em; }
.date-chip{ background: rgba(18,68,45,.92) !important; border-color: color-mix(in srgb, var(--brand-border) 70%, rgba(0,0,0,.4) 30%) !important; color:#f3fff8 !important; box-shadow:0 4px 10px rgba(0,0,0,.28) !important; }
.inp{ background: var(--inp-bg) !important; border-color: var(--inp-br) !important; color: var(--text) !important; }
.btn--ghost,
.btn.btn--ghost{
  background: color-mix(in srgb, rgba(18,68,45,0.92) 85%, rgba(0,0,0,0.28) 15%) !important;
  border: 1px solid color-mix(in srgb, rgba(24,86,56,0.85) 70%, rgba(0,0,0,0.38) 30%) !important;
  color: #f3fff8 !important;
  box-shadow: 0 14px 32px rgba(0,0,0,0.28) !important;
}
.btn--ghost:hover,
.btn.btn--ghost:hover{
  background: color-mix(in srgb, rgba(24,86,56,0.92) 90%, rgba(0,0,0,0.18) 10%) !important;
}
.btn--accent,
.btn.btn--accent{
  background: linear-gradient(135deg, var(--bugambilia, #e85c9e) 0%, color-mix(in srgb, var(--bugambilia, #e85c9e) 70%, #4c1430 30%) 100%) !important;
  border-color: color-mix(in srgb, var(--bugambilia, #e85c9e) 82%, rgba(0,0,0,0.35) 18%) !important;
  color:#fff !important;
  box-shadow: 0 20px 44px rgba(232,92,158,0.32) !important;
}
.btn.btn--accent:hover,
.btn--accent:hover{
  background: linear-gradient(135deg, color-mix(in srgb, var(--bugambilia, #e85c9e) 88%, #ff8bc5 12%), color-mix(in srgb, var(--bugambilia, #e85c9e) 65%, #310b1f 35%)) !important;
}
.btn--accent-outline,
.btn.btn--accent-outline{
  background: color-mix(in srgb, rgba(18,68,45,0.95) 70%, rgba(0,0,0,0.25) 30%) !important;
  border: 1px solid color-mix(in srgb, var(--bugambilia, #e85c9e) 45%, rgba(18,68,45,0.9) 55%) !important;
  color: color-mix(in srgb, #ffeef6 88%, #f4fff9 12%) !important;
  box-shadow: 0 16px 34px rgba(0,0,0,0.28) !important;
}
.btn--accent-outline:hover,
.btn.btn--accent-outline:hover{
  background: color-mix(in srgb, var(--bugambilia, #e85c9e) 22%, rgba(18,68,45,0.94) 78%) !important;
}
.btn.is-disabled,
.btn[aria-disabled="true"],
.btn.is-disabled:hover{
  background: color-mix(in srgb, rgba(10,44,30,0.9) 85%, rgba(0,0,0,0.45) 15%) !important;
  border-color: color-mix(in srgb, rgba(25,80,52,0.7) 75%, rgba(0,0,0,0.45) 25%) !important;
  color: color-mix(in srgb, #f0fff7 55%, rgba(180,220,200,0.7) 45%) !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
  transform: none !important;
  opacity: .7 !important;
}
.btn:not(.btn--ghost):not(.btn--accent):not(.btn--accent-outline):not(.btn-primary):not(.btn-secondary):not(.btn-gradient){
  background: color-mix(in srgb, rgba(18,66,44,0.92) 82%, rgba(0,0,0,0.32) 18%) !important;
  border: 1px solid color-mix(in srgb, rgba(22,86,55,0.82) 70%, rgba(0,0,0,0.38) 30%) !important;
  color: #f4fff9 !important;
  box-shadow: 0 16px 36px rgba(0,0,0,0.32) !important;
}
.btn:not(.btn--ghost):not(.btn--accent):not(.btn--accent-outline):not(.btn-primary):not(.btn-secondary):not(.btn-gradient):hover{
  background: color-mix(in srgb, rgba(24,98,60,0.95) 88%, rgba(0,0,0,0.18) 12%) !important;
}
.agree-reminder--pulse{ animation: agreeReminderPulse .6s ease; }
@keyframes agreeReminderPulse{
  0%{ opacity:.65; transform:translateY(0); }
  50%{ opacity:1; transform:translateY(-2px); }
  100%{ opacity:.75; transform:translateY(0); }
}
h1,h2,h3{ color:#d9ffee !important; }
.muted{ color: var(--muted) !important; }
.badge{ display:inline-flex; align-items:center; justify-content:center; gap:4px; padding:6px 10px; border-radius:999px; font-size:.75rem; background: color-mix(in srgb, var(--bugambilia) 14%, rgba(18,66,43,.9) 86%); color:#fff; box-shadow:0 8px 18px rgba(0,0,0,.28); border:1px solid color-mix(in srgb, var(--bugambilia) 22%, rgba(0,0,0,.55) 78%); }
.card h1, .card h2, .card h3{ color:#f4fff9 !important; }
.up-badge{ box-shadow:0 6px 16px rgba(0,0,0,.35); }
.up-ev{ background: color-mix(in srgb, #25a56b 70%, #0d311f 30%) !important; }
.up-vis{ background: color-mix(in srgb, rgba(150,160,150,.8) 65%, rgba(0,0,0,.6) 35%) !important; }
.up-vis-ef{ background: color-mix(in srgb, #1c7a4d 70%, #0d311f 30%) !important; }
.up-link{ color:#f9fffb !important; }
.d-badge{ background: color-mix(in srgb, rgba(26,86,58,.84) 70%, rgba(0,0,0,.45) 30%) !important; border-color: color-mix(in srgb, var(--brand-border) 55%, rgba(0,0,0,.38) 45%) !important; color:#eafff2 !important; box-shadow:0 4px 12px rgba(0,0,0,.24); }
.d-badge.today{ background: color-mix(in srgb, var(--bugambilia) 65%, #40172b 35%) !important; }
.d-badge.next{ background: color-mix(in srgb, var(--btn-accent) 80%, #0b2d1d 20%) !important; }

/* Bugambilia accents */
.accent-buga{ color: var(--bugambilia) !important; }
.bg-buga{ background: color-mix(in srgb, var(--bugambilia) 16%, transparent); }

/* Inputs and form accents */
.inp:focus, select.inp:focus, textarea.inp:focus{
  outline: 2px solid color-mix(in srgb, var(--bugambilia) 35%, transparent) !important;
  outline-offset: 2px !important;
  border-color: color-mix(in srgb, var(--bugambilia) 55%, var(--inp-br)) !important;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--bugambilia) 12%, transparent) inset !important;
}
.btn.btn--accent:focus{ box-shadow: 0 0 0 3px color-mix(in srgb, var(--bugambilia, #e85c9e) 28%, transparent) !important; }
.btn.btn--ghost:focus{ box-shadow: 0 0 0 3px color-mix(in srgb, var(--bugambilia, #e85c9e) 16%, transparent) !important; }
.btn.btn--accent-outline:focus{ box-shadow: 0 0 0 3px color-mix(in srgb, var(--bugambilia, #e85c9e) 24%, transparent) !important; }

/* Forms micro-accents */
.hour-opts button.is-active{ background: var(--bugambilia) !important; color: var(--buga-ink) !important; box-shadow: 0 0 0 2px color-mix(in srgb, #000 10%, transparent) inset !important; }
.pkg-wrap .btn.is-active{ background: var(--bugambilia) !important; color: var(--buga-ink) !important; border-color: var(--bugambilia) !important; }
.banq-times-opts label input.banq-time:checked{ background: var(--bugambilia) !important; border-color: var(--bugambilia) !important; }
.banq-times-opts label.is-checked{ border-color: color-mix(in srgb, var(--bugambilia) 55%, var(--btn-neutral-br)); background: color-mix(in srgb, var(--bugambilia) 18%, transparent) !important; }
.svc-item.is-selected{ outline-color: color-mix(in srgb, var(--bugambilia) 55%, #fff) !important; }

/* Dashboard mini widgets */
.card.cal-card{ background: color-mix(in srgb, rgba(21,75,50,0.92) 88%, rgba(12,44,28,.92) 12%) !important; }
.card.cal-card .qcal .cal-day{
  width:100%;
  aspect-ratio:1/1;
  border-radius:18px;
  background: color-mix(in srgb, rgba(24,86,56,.85) 78%, rgba(0,0,0,.55) 22%) !important;
  color:#f4fff9 !important;
  border:1px solid color-mix(in srgb, rgba(36,119,78,.62) 80%, rgba(0,0,0,.5) 20%);
  box-shadow: inset 0 -1px 0 rgba(0,0,0,.28);
  transition: transform .12s ease, box-shadow .12s ease;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.4rem;
  font-weight:700;
}
.card.cal-card .qcal .cal-day--empty{
  width:100%;
  aspect-ratio:1/1;
  border-radius:18px;
  padding:0;
  opacity:.4;
  border:1px dashed color-mix(in srgb, rgba(36,119,78,.42) 70%, rgba(0,0,0,.45) 30%);
}
.card.cal-card .qcal .cal-day:hover{ transform:translateY(-2px); box-shadow:0 12px 28px rgba(0,0,0,.28); }
.card.cal-card .qcal .cal-day.is-selected{ background: color-mix(in srgb, var(--bugambilia) 35%, rgba(20,76,52,.82) 65%) !important; box-shadow:0 14px 34px rgba(232,92,158,.28) !important; border-color: color-mix(in srgb, var(--bugambilia) 52%, rgba(20,76,52,.9) 48%); }
.card.cal-card .qcal{ width:100%; max-width:1000px; margin:0 auto; }
.card.cal-card .qcal .cal-weekdays{ display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); gap:14px; justify-items:stretch; }
.card.cal-card .qcal .cal-weekdays > div{ color: color-mix(in srgb, #f5fffa 90%, #9adcc0 10%) !important; letter-spacing:.08em; justify-self:center; }
.card.cal-card .qcal .cal-days{ display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); gap:14px; justify-items:stretch; }
.card.cal-card .cal-legend{ color: color-mix(in srgb, #eafff5 88%, #9ddfbf 12%) !important; }

.chartjs-render-monitor, #fin-chart-mini{ background: color-mix(in srgb, rgba(12,56,36,.85) 80%, rgba(0,0,0,.55) 20%); border-radius:16px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.35); padding:12px; }

.card .btn.btn-secondary{ background: color-mix(in srgb, rgba(12,56,36,.82) 80%, rgba(0,0,0,.55) 20%) !important; border-color: color-mix(in srgb, rgba(30,102,66,.55) 70%, rgba(0,0,0,.6) 30%) !important; color:#eafff2 !important; }
.card .btn.btn-secondary:hover{ background: color-mix(in srgb, var(--btn-accent) 60%, rgba(12,56,36,.9) 40%) !important; }

/* Sidebar retheme */
.sb{
  background: linear-gradient(170deg, rgba(13,48,32,0.98), rgba(8,29,19,0.96)) !important;
  border-right: 1px solid color-mix(in srgb, rgba(32,102,68,0.75) 70%, rgba(0,0,0,0.55) 30%) !important;
  box-shadow: 16px 0 44px rgba(0,0,0,0.35) !important;
  color: #ecfff8 !important;
}
.sb-header{
  color:#f2fff8 !important;
  font-weight:700;
  padding:12px 18px;
  border-bottom:1px solid color-mix(in srgb, rgba(36,119,78,0.68) 70%, rgba(0,0,0,0.45) 30%);
}
.sb-nav{ padding:16px 14px !important; gap:6px !important; }
.sb-nav a{
  color:color-mix(in srgb, #f4fff9 90%, #9fd9ba 10%) !important;
  background: color-mix(in srgb, rgba(18,68,45,0.82) 78%, rgba(0,0,0,0.32) 22%);
  border:1px solid color-mix(in srgb, rgba(32,96,62,0.82) 70%, rgba(0,0,0,0.38) 30%);
  font-weight:600;
  letter-spacing:.04em;
}
.sb-nav a:hover{
  background: color-mix(in srgb, rgba(28,104,66,0.94) 88%, rgba(0,0,0,0.2) 12%);
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(0,0,0,0.28);
}
.sb-nav a.is-active{
  background: color-mix(in srgb, var(--bugambilia, #e85c9e) 22%, rgba(13,48,32,0.9) 78%);
  border-color: color-mix(in srgb, var(--bugambilia, #e85c9e) 65%, rgba(15,63,41,0.92) 35%);
  box-shadow:0 18px 36px rgba(232,92,158,0.28);
}

/* Dark cards for admin panels */
.card,
.svc-container-card,
.pf-section,
.card-panel{
  background: color-mix(in srgb, rgba(15,63,41,0.9) 85%, rgba(0,0,0,0.35) 15%) !important;
  border:1px solid color-mix(in srgb, rgba(44,138,92,0.7) 70%, rgba(0,0,0,0.5) 30%) !important;
  color:#f4fff9 !important;
  box-shadow:0 24px 48px rgba(0,0,0,0.38) !important;
}
.card-panel--soft{
  background: color-mix(in srgb, rgba(18,72,48,0.88) 82%, rgba(0,0,0,0.32) 18%) !important;
}
.card-panel__header,
.pf-section h3,
.card-panel__title{
  color:#fefeff !important;
}
.pf-section h3 .icon,
.card-panel__subtitle{
  color: color-mix(in srgb, #fbeffd 80%, #d4ffeb 20%) !important;
  background: color-mix(in srgb, rgba(232,92,158,0.22) 65%, rgba(11,44,30,0.85) 35%) !important;
  border-radius:12px;
  padding:6px 10px;
}
.card-panel__subtitle{ background:transparent !important; padding:0 !important; }
.muted,
.pf-hint,
.card-panel__body .help,
.svc-form .help,
.svc-form .muted,
.provider-form .pf-hint,
.provider-form .muted{
  color: color-mix(in srgb, #f0fff6 70%, #9bd9b3 30%) !important;
}

/* Inputs inside dark panels */
.pf-section .inp,
.pf-section input,
.pf-section textarea,
.pf-section select,
.svc-container-card .form-row input,
.svc-container-card .form-row select,
.svc-container-card .form-row textarea,
.svc-container-card .banq-tiempo,
.svc-container-card #tipo_evento_otro,
.svc-container-card .cat-grid,
.svc-container-card .cat-selected .chip,
.svc-container-card .prov-results button,
.svc-container-card .prov-chip,
.svc-container-card .opt-chk,
.svc-container-card .pricing-group,
.svc-container-card .banquete-upload,
.svc-container-card .banquete-menu,
.svc-container-card .svc-total-pill,
.svc-container-card .svc-sticky-actions{
  background: color-mix(in srgb, rgba(12,52,34,0.88) 82%, rgba(0,0,0,0.28) 18%) !important;
  border-color: color-mix(in srgb, rgba(32,102,68,0.68) 70%, rgba(0,0,0,0.45) 30%) !important;
  color:#f5fff9 !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.02) !important;
}
.svc-container-card .form-row input:focus,
.svc-container-card .form-row select:focus,
.svc-container-card .form-row textarea:focus,
.pf-section .inp:focus,
.pf-section input:focus,
.pf-section textarea:focus,
.pf-section select:focus{
  outline:2px solid color-mix(in srgb, var(--bugambilia, #e85c9e) 45%, transparent) !important;
  outline-offset:2px;
  border-color: color-mix(in srgb, var(--bugambilia, #e85c9e) 55%, rgba(0,0,0,0.3)) !important;
}
.svc-container-card .cat-grid,
.svc-container-card .cat-selected .chip,
.svc-container-card .opt-chk,
.svc-container-card .pricing-group,
.svc-container-card .banquete-upload,
.svc-container-card .banquete-menu,
.svc-container-card .prov-chip,
.svc-container-card .prov-results button{
  filter: drop-shadow(0 10px 24px rgba(0,0,0,0.25));
}
.svc-container-card .card-panel__header,
.svc-container-card .card-panel__title,
.svc-container-card label,
.svc-container-card .help,
.svc-container-card small,
.provider-form label{
  color: #f7fff9 !important;
}
.prov-cell__title .prov-brand,
.prov-cell__title .prov-name,
.prov-email,
.prov-cell,
.prov-results button,
.filters-row .inp,
.filters__actions .btn{
  color:#f5fff9 !important;
}
.filters-row .inp{
  background: color-mix(in srgb, rgba(12,52,34,0.86) 82%, rgba(0,0,0,0.28) 18%) !important;
  border:1px solid color-mix(in srgb, rgba(32,102,68,0.68) 70%, rgba(0,0,0,0.45) 30%) !important;
}
.prov-email{ opacity:0.9; }
.prov-cell__title .prov-brand{ font-weight:700; }


/* Stepper (top progress) */
.stepper{ position:sticky; top:0; z-index:30; margin:-10px -10px 14px; padding:12px 16px; background:rgba(10,58,41,.85); backdrop-filter: blur(6px); border-bottom:1px solid #145e36; }
.stepper__bar{ height:6px; background:#0f2f21; border-radius:999px; position:relative; overflow:hidden; }
.stepper__bar .fill{ position:absolute; left:0; top:0; bottom:0; width:0%; background: var(--bugambilia); box-shadow:0 0 12px rgba(232,92,158,.35); }
.stepper__stages{ display:flex; gap:10px; margin-top:8px; flex-wrap:wrap; }
.stepper__stage{ display:flex; align-items:center; gap:8px; color:#c9f6e5; font-weight:700; font-family:"Montserrat", system-ui, sans-serif; font-size:.9rem; }
.stepper__dot{ width:22px; height:22px; border-radius:999px; background:#103a24; border:2px solid #1c7a4d; color:#bff6e0; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:.8rem; }
.stepper__stage.is-active .stepper__dot{ background: var(--bugambilia); color:#1d1120; border-color: color-mix(in srgb, var(--bugambilia) 80%, #fff); }
.stepper__stage.is-done .stepper__dot{ background: color-mix(in srgb, var(--bugambilia) 60%, #2aa868); color:#1d1120; border-color: color-mix(in srgb, var(--bugambilia) 70%, #2aa868); }
.stepper__stage .label{ opacity:.85; }

@media (max-width:640px){
  .stepper{ padding:20px 20px 22px; margin:-32px -18px 20px; border:1px solid rgba(28,100,65,0.35); border-radius:26px; box-shadow:0 18px 44px rgba(0,0,0,0.45); }
  .stepper__stages{ gap:10px; }
  .stepper__stage{ font-size:1.05rem; gap:12px; }
  .stepper__stage .label{ opacity:1; letter-spacing:.05em; }
  .stepper__dot{ width:32px; height:32px; font-size:1.05rem; }
}

@media (max-width:480px){
  .stepper{ padding:18px 18px 20px; margin:-30px -14px 18px; }
  .stepper__stage{ font-size:1.12rem; }
  .stepper__dot{ width:34px; height:34px; font-size:1.15rem; }
}

/* Cards for green theme lists */
#svc-list .svc-item{ background:#165c3b !important; border-color:#134f32 !important; color:#eafff2; }
#svc-list .svc-item:hover{ transform:translateY(-2px); box-shadow:0 8px 20px rgba(0,0,0,.25); }
#svc-list .svc-item .pill{ background: rgba(255,255,255,.12) !important; }
#svc-list .svc-provider{ background: rgba(255,255,255,.14) !important; }
.banq-times-slot{ background:#0f422a !important; border-color:#0d3a24 !important; }
.hour-slot{ background:#0f422a !important; border-color:#0d3a24 !important; }

/* Calendar accents (inline quote calendar) */
.cal-day{ color: var(--brand-ink) !important; }
.cal-day.is-selected{ background: color-mix(in srgb, var(--bugambilia) 22%, transparent) !important; border-color: var(--bugambilia) !important; color:#fff !important; box-shadow: 0 0 0 2px color-mix(in srgb, var(--bugambilia) 35%, transparent) inset !important; }
.cal-chip.is-selected{ background: color-mix(in srgb, var(--bugambilia) 22%, transparent) !important; border-color: var(--bugambilia) !important; box-shadow: 0 0 0 2px color-mix(in srgb, var(--bugambilia) 35%, transparent) inset !important; color:#fff !important; }
.mini-cal__cell{ background: #123d28 !important; color:#eafff2 !important; }
.mini-cal__cell.is-selected{ outline-color: var(--bugambilia) !important; background: color-mix(in srgb, var(--bugambilia) 20%, #123d28) !important; }

/* Remove emoji indicator in small legend */
.legend-mobiliario::before{ content:'' !important; display:none !important; }
