*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { overflow-x: hidden; }
:root {
  --teal:#4AABB0; --teal-dark:#357D82; --teal-deeper:#1F5155;
  --teal-light:#D6F0F1; --teal-xlight:#EEF9FA;
  --cream:#F4FBFC; --surface:#FFFFFF;
  --text:#1C3A3C; --text-muted:#5A8285;
  --border:rgba(74,171,176,0.22); --border-md:rgba(74,171,176,0.4);
  --shadow:0 2px 18px rgba(53,125,130,0.10);
  --danger:#E05260; --danger-bg:#FEF0F1;
  --warn:#D97706; --warn-bg:#FFFBEB;
  --green:#25D366; --green-dark:#1daf55;
  --r:14px; --r-sm:9px;
}
body{font-family:'Nunito',sans-serif;background:var(--cream);color:var(--text);min-height:100vh;font-size:15px;line-height:1.65;overflow-x:hidden;width:100%;}

/* ── LOADING SCREEN ── */
#loadingScreen{position:fixed;inset:0;background:var(--teal);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;gap:16px;}
#loadingScreen .ls-logo{font-family:'Dancing Script',cursive;font-size:42px;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,0.2);}
#loadingScreen .ls-sub{color:rgba(255,255,255,0.8);font-size:14px;font-weight:600;}
.ls-bar{width:200px;height:4px;background:rgba(255,255,255,0.25);border-radius:4px;overflow:hidden;}
.ls-bar-fill{height:100%;background:#fff;border-radius:4px;animation:barLoad 1.5s ease-in-out infinite;}
@keyframes barLoad{0%{width:0%}60%{width:80%}100%{width:100%}}

/* ── HEADER ── */
header{background:var(--teal);padding:0 1.25rem;position:relative;z-index:200;display:flex;align-items:center;justify-content:space-between;height:68px;box-shadow:0 2px 12px rgba(53,125,130,0.3);width:100%;}
.logo-wrap{display:flex;align-items:center;gap:12px;}
.logo-circle{width:44px;height:44px;background:rgba(255,255,255,0.18);border-radius:50%;border:2px solid rgba(255,255,255,0.5);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.logo-circle svg{width:26px;height:26px;}
.logo-name{font-family:'Dancing Script',cursive;font-size:26px;color:#fff;line-height:1;text-shadow:0 1px 4px rgba(0,0,0,0.15);}
.logo-slogan{font-size:10px;color:rgba(255,255,255,0.78);font-weight:400;letter-spacing:0.04em;margin-top:2px;}

/* ── USER MENU ── */
.user-area{position:relative;z-index:400;}
.user-btn{display:flex;align-items:center;gap:9px;background:rgba(255,255,255,0.15);border:1.5px solid rgba(255,255,255,0.35);border-radius:40px;padding:6px 14px 6px 8px;cursor:pointer;transition:all 0.2s;color:#fff;font-family:'Nunito',sans-serif;font-size:14px;font-weight:700;}
.user-btn:hover{background:rgba(255,255,255,0.25);}
.user-avatar{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,0.25);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.user-avatar.admin-av{background:#fff;color:var(--teal-dark);font-weight:800;font-size:13px;}
.user-chevron{font-size:10px;opacity:.8;transition:transform 0.2s;}
.user-area.open .user-chevron{transform:rotate(180deg);}
.user-dropdown{position:absolute;top:calc(100% + 10px);right:0;background:#fff;border:1px solid var(--border-md);border-radius:var(--r);box-shadow:0 8px 30px rgba(53,125,130,0.18);min-width:220px;max-width:calc(100vw - 2rem);overflow:hidden;display:none;z-index:9000;animation:dropDown 0.18s ease;}
@keyframes dropDown{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.user-area.open .user-dropdown{display:block;}
.dd-header{background:var(--teal-xlight);padding:14px 16px;border-bottom:1px solid var(--border);}
.dd-header-name{font-weight:800;font-size:15px;color:var(--teal-deeper);}
.dd-header-role{font-size:11px;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-top:2px;}
.dd-badge{display:inline-block;background:var(--teal);color:#fff;font-size:10px;font-weight:700;padding:2px 7px;border-radius:20px;margin-top:4px;letter-spacing:.04em;}
.dd-badge.admin{background:var(--teal-deeper);}
.dd-item{display:flex;align-items:center;gap:12px;padding:11px 16px;font-size:14px;font-weight:600;color:var(--text);cursor:pointer;transition:background 0.15s;border:none;background:transparent;width:100%;text-align:left;font-family:'Nunito',sans-serif;}
.dd-item:hover{background:var(--teal-xlight);color:var(--teal-dark);}
.dd-icon{width:20px;text-align:center;font-size:16px;}
.dd-sep{border:none;border-top:1px solid var(--border);margin:4px 0;}
.dd-item.danger{color:var(--danger);}
.dd-item.danger:hover{background:var(--danger-bg);}
.dd-item.highlight{color:var(--teal-dark);}

/* ── PROGRESS BAR ── */
.progress-wrap {
  background: var(--teal-dark);
  display: flex;
  align-items: stretch;
  height: 54px;
  overflow: hidden;
  position: relative;
  width: 100%;
}
.step-item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex: 1;
  position: relative;
  padding: 0 12px 0 20px;
  cursor: default;
  transition: background 0.2s;
  z-index: 1;
}
/* Seta direita (chevron) — camada de fundo (borda branca) */
.step-item:not(:last-child)::before {
  content: '';
  position: absolute;
  right: -16px; top: 0;
  width: 0; height: 0;
  border-top: 27px solid transparent;
  border-bottom: 27px solid transparent;
  border-left: 16px solid rgba(255,255,255,0.18);
  z-index: 2;
  pointer-events: none;
}
/* Seta direita (chevron) — camada de frente (cor do passo) */
.step-item:not(:last-child)::after {
  content: '';
  position: absolute;
  right: -13px; top: 0;
  width: 0; height: 0;
  border-top: 27px solid transparent;
  border-bottom: 27px solid transparent;
  border-left: 13px solid var(--teal-dark);
  z-index: 3;
  pointer-events: none;
  transition: border-left-color 0.2s;
}
.step-item.active {
  background: rgba(255,255,255,0.13);
}
.step-item.active::after {
  border-left-color: rgba(255,255,255,0.13) !important;
}
.step-item.done {
  background: rgba(255,255,255,0.07);
}
.step-item.done::after {
  border-left-color: rgba(255,255,255,0.07) !important;
}
.step-dot {
  width: 26px; height: 26px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.35);
  display: flex; align-items: center; justify-content: center;
  font-size: 12px;
  color: rgba(255,255,255,0.5);
  font-weight: 800;
  background: transparent;
  flex-shrink: 0;
  transition: all 0.3s;
  position: relative; z-index: 4;
}
.step-item.active .step-dot {
  border-color: #fff;
  color: var(--teal-dark);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(255,255,255,0.2);
}
.step-item.done .step-dot {
  border-color: rgba(255,255,255,0.5);
  background: rgba(255,255,255,0.15);
  color: rgba(255,255,255,0.8);
}
.step-label {
  font-size: 11px;
  color: rgba(255,255,255,0.45);
  text-transform: uppercase;
  letter-spacing: .1em;
  font-weight: 800;
  position: relative; z-index: 4;
  white-space: nowrap;
}
.step-item.active .step-label { color: #fff; }
.step-item.done   .step-label { color: rgba(255,255,255,0.65); }

/* ── MAIN ── */
main{max-width:860px;margin:0 auto;padding:2rem 1.25rem 5rem;}
.view{display:none;}
.view.active{display:block;animation:fadeUp 0.3s ease;}
.step{display:none;}
.step.active{display:block;animation:fadeUp 0.3s ease;}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
.page-heading{font-size:24px;font-weight:800;color:var(--teal-deeper);margin-bottom:4px;}
.page-sub{font-size:14px;color:var(--text-muted);margin-bottom:1.75rem;}

/* ── SERVICES GRID ── */
.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px;margin-bottom:2rem;}
.svc-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r);padding:1rem .9rem;cursor:pointer;transition:all 0.2s;display:flex;flex-direction:column;gap:8px;position:relative;overflow:hidden;}
.svc-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--teal);transform:scaleX(0);transform-origin:left;transition:transform .22s;}
.svc-card:hover{border-color:var(--teal);box-shadow:0 4px 16px rgba(74,171,176,0.18);transform:translateY(-1px);}
.svc-card.selected{border-color:var(--teal);background:var(--teal-xlight);}
.svc-card.selected::after{transform:scaleX(1);}
.svc-icon{width:38px;height:38px;background:var(--teal-light);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;}
.svc-card.selected .svc-icon{background:rgba(74,171,176,0.25);}
.svc-name{font-size:13px;font-weight:700;color:var(--text);line-height:1.3;}
.svc-tag{font-size:10px;color:var(--teal-dark);background:var(--teal-light);border-radius:4px;padding:2px 7px;font-weight:700;width:fit-content;}

/* ── CALENDAR ── */
.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.cal-month-label{font-size:18px;font-weight:700;color:var(--teal-deeper);}
.cal-arrow{width:36px;height:36px;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:18px;transition:all .18s;font-weight:700;}
.cal-arrow:hover{border-color:var(--teal);color:var(--teal);}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:1rem .85rem;margin-bottom:1.5rem;box-shadow:var(--shadow);}
.cal-dow{text-align:center;font-size:10.5px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:4px 0 10px;}
.cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:9px;font-size:13px;font-weight:600;cursor:pointer;transition:all .16s;border:1.5px solid transparent;color:var(--text);}
.cal-day.empty{cursor:default;}
.cal-day.disabled{color:#C8D8D9;cursor:not-allowed;font-weight:400;}
.cal-day.today{border-color:var(--teal);color:var(--teal-dark);}
.cal-day.avail:hover{background:var(--teal-light);border-color:var(--teal);color:var(--teal-deeper);}
.cal-day.selected{background:var(--teal);color:#fff;border-color:var(--teal);}
.cal-day.saturday.avail{color:var(--teal-dark);}

/* ── SLOTS ── */
.slots-header{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.slots-header-label{font-size:14px;font-weight:700;color:var(--text);}
.date-badge{background:var(--teal-light);color:var(--teal-dark);font-size:12px;font-weight:700;border-radius:6px;padding:3px 10px;}
.slots-info{font-size:12px;color:var(--text-muted);margin-bottom:10px;}
.slots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px;margin-bottom:2rem;}
.slot{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-sm);padding:8px 4px;text-align:center;font-size:13px;font-weight:600;cursor:pointer;transition:all .16s;color:var(--text);}
.slot:hover{border-color:var(--teal);color:var(--teal-dark);background:var(--teal-xlight);}
.slot.selected{background:var(--teal);border-color:var(--teal);color:#fff;}
.slot.taken{background:#F0F4F4;color:#B0C4C5;cursor:not-allowed;border-color:#E0EAEA;text-decoration:line-through;font-weight:400;}
.no-slots{text-align:center;padding:2rem;color:var(--text-muted);font-size:14px;background:var(--surface);border:1px dashed var(--border-md);border-radius:var(--r);}

/* ── FORM / INPUTS ── */
.svc-bar{background:var(--teal-xlight);border:1px solid var(--border-md);border-radius:var(--r-sm);padding:10px 14px;display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;gap:8px;}
.svc-bar-name{font-weight:700;font-size:14px;color:var(--teal-deeper);}
.svc-bar-change{font-size:13px;color:var(--teal);font-weight:700;cursor:pointer;text-decoration:underline;white-space:nowrap;}
.form-group{margin-bottom:1.25rem;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
@media(max-width:520px){.form-row{grid-template-columns:1fr;}}
label{display:block;font-size:11.5px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px;}
input,select,textarea{width:100%;padding:11px 14px;border:1.5px solid var(--border-md);border-radius:var(--r-sm);font-family:'Nunito',sans-serif;font-size:16px;color:var(--text);background:var(--surface);transition:border-color .2s,box-shadow .2s;outline:none;resize:vertical;-webkit-appearance:none;appearance:none;}
input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(74,171,176,0.14);}
input::placeholder,textarea::placeholder{color:#B0C8CA;}
.field-hint{font-size:12px;color:var(--text-muted);margin-top:5px;}

/* ── CARDS ── */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;margin-bottom:1.5rem;box-shadow:var(--shadow);width:100%;box-sizing:border-box;}
.card-header{background:var(--teal);padding:12px 18px;font-size:13px;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;justify-content:space-between;}
.card-header-actions{display:flex;gap:8px;}
.card-body{padding:1rem 1.25rem;}
.summary-row{display:flex;justify-content:space-between;align-items:flex-start;padding:7px 0;border-bottom:1px solid var(--border);font-size:14px;gap:1rem;}
.summary-row:last-child{border-bottom:none;}
.summary-row dt{color:var(--text-muted);flex-shrink:0;font-weight:600;}
.summary-row dd{font-weight:700;text-align:right;color:var(--text);word-break:break-word;min-width:0;}

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border-radius:var(--r-sm);font-family:'Nunito',sans-serif;font-size:15px;font-weight:700;cursor:pointer;border:2px solid transparent;transition:all .2s;text-decoration:none;line-height:1;}
.btn-primary{background:var(--teal);color:#fff;border-color:var(--teal);width:100%;}
.btn-primary:hover{background:var(--teal-dark);border-color:var(--teal-dark);}
.btn-primary:disabled{background:#C0D8DA;border-color:#C0D8DA;color:#fff;cursor:not-allowed;}
.btn-outline{background:transparent;color:var(--teal-dark);border-color:var(--border-md);width:100%;}
.btn-outline:hover{border-color:var(--teal);color:var(--teal);}
.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger);}
.btn-danger:hover{background:#c0404e;}
.btn-warn{background:var(--warn);color:#fff;border-color:var(--warn);}
.btn-warn:hover{background:#b8690a;}
.btn-sm{padding:7px 14px;font-size:13px;width:auto;}
.btn-xs{padding:5px 10px;font-size:12px;width:auto;}
.btn-row{display:flex;flex-direction:column;gap:10px;margin-top:1.75rem;}
@media(min-width:500px){.btn-row{flex-direction:row;} .btn-outline{width:auto;flex-shrink:0;padding:12px 20px;} .btn-primary,.btn-whatsapp{flex:1;}}
.confirm-hero{text-align:center;padding:2.5rem 1rem 2rem;width:100%;}
.confirm-icon{width:76px;height:76px;background:rgba(74,171,176,0.12);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem;font-size:36px;border:2px solid rgba(74,171,176,0.3);}
.confirm-hero h2{font-size:24px;font-weight:800;color:var(--teal-deeper);margin-bottom:8px;word-break:break-word;}
.confirm-hero p{color:var(--text-muted);font-size:14px;max-width:100%;margin:0 auto;word-break:break-word;}
.info-box{background:var(--teal-xlight);border:1px solid var(--border-md);border-left:4px solid var(--teal);border-radius:0 var(--r-sm) var(--r-sm) 0;padding:12px 16px;margin-bottom:1.5rem;font-size:13px;color:var(--teal-deeper);display:flex;gap:10px;align-items:flex-start;word-break:break-word;overflow:hidden;}
.info-box-icon{font-size:18px;flex-shrink:0;margin-top:1px;}
.divider{border:none;border-top:1px solid var(--border);margin:1.5rem 0;}
.btn-whatsapp{background:var(--green);color:#fff;border-color:var(--green);width:100%;font-size:15px;display:flex;word-break:break-word;box-sizing:border-box;}
.btn-whatsapp:hover{background:var(--green-dark);}

/* ── ADMIN STATS ── */
.admin-topbar{background:var(--teal-deeper);color:#fff;padding:10px 1.25rem;display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;}
.admin-badge-bar{background:var(--teal);color:#fff;font-size:10px;font-weight:700;padding:2px 8px;border-radius:12px;letter-spacing:.05em;}
.admin-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:12px;margin-bottom:2rem;}
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:1.2rem 1rem;box-shadow:var(--shadow);}
.stat-card.accent{background:var(--teal);border-color:var(--teal);}
.stat-label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;}
.stat-card.accent .stat-label{color:rgba(255,255,255,0.75);}
.stat-value{font-size:28px;font-weight:800;color:var(--teal-deeper);line-height:1;}
.stat-card.accent .stat-value{color:#fff;}
.stat-sub{font-size:12px;color:var(--text-muted);margin-top:4px;}
.stat-card.accent .stat-sub{color:rgba(255,255,255,0.75);}

/* ── ADMIN TABS ── */
.admin-tabs{display:flex;gap:2px;margin-bottom:1.5rem;border-bottom:2px solid var(--border);flex-wrap:nowrap;overflow-x:visible;padding-bottom:0;}
.admin-tab{padding:9px 10px;font-size:13px;font-weight:700;color:var(--text-muted);cursor:pointer;border:none;background:transparent;font-family:'Nunito',sans-serif;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .18s;border-radius:6px 6px 0 0;white-space:nowrap;flex:1;text-align:center;}
@media(max-width:500px){
  .admin-tab{font-size:11px;padding:8px 4px;}
}
.admin-tab:hover{color:var(--teal);background:var(--teal-xlight);}
.admin-tab.active{color:var(--teal-dark);border-bottom-color:var(--teal);background:var(--teal-xlight);}
.tab-pane{display:none;}
.tab-pane.active{display:block;animation:fadeUp .25s ease;}

/* ── APPOINTMENTS ── */
.appt-list{display:flex;flex-direction:column;gap:10px;}
.appt-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:1rem 1.25rem;display:flex;align-items:flex-start;gap:14px;box-shadow:var(--shadow);transition:border-color .18s;}
.appt-item:hover{border-color:var(--teal);}
.appt-time-col{text-align:center;background:var(--teal-xlight);border-radius:10px;padding:8px 12px;flex-shrink:0;min-width:64px;}
.appt-time{font-size:16px;font-weight:800;color:var(--teal-deeper);}
.appt-day{font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;}
.appt-info{flex:1;min-width:0;}
.appt-name{font-size:15px;font-weight:700;color:var(--text);}
.appt-svc{font-size:13px;color:var(--text-muted);font-weight:600;}
.appt-phone{font-size:12px;color:var(--teal-dark);font-weight:600;margin-top:2px;}
.appt-actions-col{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0;}
.status-badge{font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}
.s-pending{background:var(--warn-bg);color:var(--warn);}
.s-confirmed{background:var(--teal-light);color:var(--teal-dark);}
.s-done{background:#E8F5E9;color:#388E3C;}
.s-cancelled{background:var(--danger-bg);color:var(--danger);}
.appt-btns{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end;}
.act-btn{padding:4px 10px;font-size:11px;font-weight:700;border-radius:6px;cursor:pointer;border:1.5px solid;font-family:'Nunito',sans-serif;transition:all .15s;}
.act-confirm{border-color:var(--teal);color:var(--teal-dark);background:transparent;}
.act-confirm:hover{background:var(--teal);color:#fff;}
.act-cancel{border-color:var(--danger);color:var(--danger);background:transparent;}
.act-cancel:hover{background:var(--danger);color:#fff;}
.act-done{border-color:#388E3C;color:#388E3C;background:transparent;}
.act-done:hover{background:#388E3C;color:#fff;}
.act-whatsapp{border-color:#25D366;color:#25D366;background:transparent;text-decoration:none;display:inline-flex;align-items:center;gap:4px;}
.act-whatsapp:hover{background:#25D366;color:#fff;}

/* ── SERVICES ADMIN ── */
.svc-admin-list{display:flex;flex-direction:column;gap:10px;}
.svc-admin-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:1rem 1.25rem;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow);flex-wrap:nowrap;}
.svc-admin-icon{width:44px;height:44px;background:var(--teal-light);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;}
.svc-admin-info{flex:1;min-width:0;}
.svc-admin-name{font-size:14px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.svc-admin-tag{font-size:10px;color:var(--teal-dark);background:var(--teal-light);border-radius:4px;padding:2px 7px;font-weight:700;display:inline-block;margin-top:2px;}
.svc-admin-schedule{font-size:11px;color:var(--text-muted);margin-top:2px;}
.svc-admin-actions{display:flex;gap:6px;flex-shrink:0;align-items:center;}
@media(max-width:500px){
  .svc-admin-item{padding:.85rem 1rem;gap:10px;}
  .svc-admin-icon{width:38px;height:38px;font-size:18px;}
  .svc-admin-name{font-size:13px;}
  .svc-admin-schedule{display:none;}
  .svc-admin-actions{gap:5px;}
  .btn-xs{padding:5px 8px;font-size:11px;}
  .btn-label{display:none;}
}
.svc-toggle{position:relative;width:42px;height:24px;flex-shrink:0;}
.svc-toggle input{opacity:0;width:0;height:0;}
.toggle-slider{position:absolute;inset:0;background:#ccc;border-radius:24px;cursor:pointer;transition:.3s;}
.toggle-slider::before{content:'';position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.3s;}
.svc-toggle input:checked + .toggle-slider{background:var(--teal);}
.svc-toggle input:checked + .toggle-slider::before{transform:translateX(18px);}

/* ── HORÁRIOS ADMIN ── */
.schedule-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:1.5rem;}
.day-schedule-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:1rem;box-shadow:var(--shadow);}
.day-schedule-card h4{font-size:13px;font-weight:700;color:var(--teal-deeper);margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;}
.day-toggle-wrap{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.day-toggle-label{font-size:12px;color:var(--text-muted);font-weight:600;}
.time-inputs{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.time-inputs label{font-size:10px;letter-spacing:.04em;}
.time-inputs input{padding:7px 8px;font-size:16px;}
.interval-row{display:flex;align-items:center;gap:8px;margin-top:8px;}
.interval-row label{font-size:11px;white-space:nowrap;margin-bottom:0;}
.interval-row input{flex:1;}

/* ── EMOJI PICKER ── */
.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;max-height:180px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:8px;margin-bottom:10px;}
.emoji-opt{font-size:22px;cursor:pointer;text-align:center;padding:4px;border-radius:6px;transition:background .15s;}
.emoji-opt:hover,.emoji-opt.active{background:var(--teal-light);}

/* ── MODAL ── */
.modal-overlay{position:fixed;inset:0;background:rgba(20,50,54,.55);backdrop-filter:blur(4px);z-index:500;display:none;align-items:center;justify-content:center;padding:1rem;}
.modal-overlay.open{display:flex;animation:fadeIn .2s ease;}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal-box{background:#fff;border-radius:var(--r);width:100%;max-width:480px;box-shadow:0 20px 60px rgba(20,50,54,.25);overflow:hidden;animation:slideUp .25s ease;max-height:90vh;display:flex;flex-direction:column;}
.modal-box.modal-lg{max-width:620px;}
@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.modal-head{background:var(--teal);padding:1.25rem 1.5rem;color:#fff;position:relative;flex-shrink:0;}
.modal-head h2{font-size:18px;font-weight:800;margin-bottom:3px;}
.modal-head p{font-size:13px;opacity:.85;}
.modal-close{position:absolute;top:12px;right:14px;background:transparent;border:none;color:rgba(255,255,255,.7);font-size:22px;cursor:pointer;line-height:1;}
.modal-body{padding:1.5rem;overflow-y:auto;}
.modal-footer-btns{padding:0 1.5rem 1.25rem;display:flex;gap:10px;}
.modal-footer-btns .btn{flex:1;}
.modal-error{background:var(--danger-bg);border:1px solid var(--danger);border-radius:var(--r-sm);padding:10px 14px;font-size:13px;color:var(--danger);font-weight:600;margin-bottom:1rem;display:none;}

/* ── TOAST ── */
.toast{position:fixed;bottom:1.5rem;right:1.5rem;background:var(--teal-deeper);color:#fff;padding:12px 20px;border-radius:var(--r-sm);font-size:14px;font-weight:600;box-shadow:0 4px 20px rgba(0,0,0,.2);z-index:999;animation:slideInT .3s ease;max-width:300px;}
@keyframes slideInT{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}

/* ── NOTIF PANEL ── */
.notif-panel{position:absolute;top:calc(100% + 10px);right:0;background:#fff;border:1px solid var(--border-md);border-radius:var(--r);box-shadow:0 8px 30px rgba(53,125,130,.18);width:min(300px, calc(100vw - 2rem));z-index:9000;display:none;}
.notif-head{background:var(--teal-xlight);padding:12px 16px;font-size:13px;font-weight:700;color:var(--teal-deeper);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.notif-clear{font-size:11px;color:var(--teal);cursor:pointer;font-weight:600;}
.notif-item{padding:12px 16px;border-bottom:1px solid var(--border);font-size:13px;}
.notif-item:last-child{border-bottom:none;}
.notif-item strong{display:block;color:var(--text);font-weight:700;}
.notif-item span{color:var(--text-muted);}
.notif-dot{display:inline-block;width:8px;height:8px;background:var(--teal);border-radius:50%;margin-right:6px;}
.notif-empty{padding:1.5rem;text-align:center;color:var(--text-muted);font-size:13px;}

/* ── FILTERS ── */
.filters-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:1rem;align-items:center;}
.filters-bar select{width:auto;padding:8px 12px;font-size:13px;}
.filters-bar input[type="text"]{width:auto;flex:1;min-width:140px;padding:8px 12px;font-size:13px;}
.result-count{font-size:13px;color:var(--text-muted);font-weight:600;margin-left:auto;}

/* ── EMPTY ── */
.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-muted);}
.empty-state .es-icon{font-size:44px;margin-bottom:12px;}
.empty-state p{font-size:14px;}

/* ── PROFILE ── */
.profile-form{max-width:500px;}

@media(max-width:500px){
  /* Layout geral */
  main{padding:1.25rem 1rem 4rem;}
  .page-heading{font-size:20px;}
  .page-sub{font-size:13px;margin-bottom:1.25rem;}

  /* Header */
  header{padding:0 1rem;}
  .logo-name{font-size:22px;}
  .logo-slogan{font-size:9px;}
  .logo-circle{width:38px;height:38px;}

  /* Progress bar — mostrar label só no passo ativo */
  .progress-wrap{height:50px;}
  .step-label{display:none;}
  .step-item.active .step-label{display:block;font-size:9px;letter-spacing:.03em;}
  .step-item{padding:0 4px 0 8px;gap:5px;}
  .step-dot{width:22px;height:22px;font-size:10px;}
  .step-item:not(:last-child)::before{right:-13px;border-top-width:25px;border-bottom-width:25px;border-left-width:13px;}
  .step-item:not(:last-child)::after {right:-10px;border-top-width:25px;border-bottom-width:25px;border-left-width:10px;}

  /* Cards e grids */
  .services-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;}
  .cal-grid{padding:.75rem .5rem;}
  .admin-stats{grid-template-columns:1fr 1fr;}
  .schedule-grid{grid-template-columns:1fr;}

  /* Agendamentos */
  .appt-item{flex-direction:column;}
  .appt-actions-col{align-items:flex-start;}
  .appt-btns{flex-wrap:wrap;}

  /* Filtros */
  .filters-bar{gap:6px;}
  .filters-bar input[type="text"]{min-width:100px;}

  /* Slots */
  .slots-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:6px;}

  /* Botões */
  .btn{font-size:14px;padding:11px 18px;}
  .btn-sm{font-size:12px;padding:7px 12px;}
}
/* ── FOOTER ── */
#siteFooter{background:var(--teal-deeper);color:#fff;padding:2rem 1.25rem 1.25rem;margin-top:3rem;}
.footer-inner{max-width:860px;margin:0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:2rem;flex-wrap:wrap;margin-bottom:1.5rem;}
.footer-brand{}
.footer-logo{display:flex;align-items:center;gap:10px;font-family:'Dancing Script',cursive;font-size:22px;color:#fff;margin-bottom:6px;}
.footer-slogan{font-size:12px;color:rgba(255,255,255,0.6);font-weight:400;}
.footer-links{display:flex;flex-direction:column;gap:12px;}
.footer-item{display:flex;align-items:center;gap:10px;color:rgba(255,255,255,0.85);text-decoration:none;font-size:14px;font-weight:600;transition:color .18s;}
.footer-item:hover{color:#fff;}
.footer-icon{width:32px;height:32px;background:rgba(255,255,255,0.1);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .18s;}
.footer-item:hover .footer-icon{background:rgba(255,255,255,0.2);}
.footer-copy{max-width:860px;margin:0 auto;padding-top:1rem;border-top:1px solid rgba(255,255,255,0.12);font-size:12px;color:rgba(255,255,255,0.45);text-align:center;}
@media(max-width:500px){
  .footer-inner{flex-direction:column;gap:1.25rem;}
  .footer-links{gap:10px;}
  .footer-item{font-size:13px;}
}

.pagination {
  grid-column: 1 / -1;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  margin: 24px 0 8px;
  padding: 16px;
}

.pagination button {
  border: 1px solid var(--teal);
  background: white;
  color: var(--teal-dark);
  border-radius: 10px;
  padding: 10px 16px;
  font-weight: 700;
  cursor: pointer;
}

.pagination button:disabled {
  opacity: .4;
  cursor: not-allowed;
}

.pagination span {
  color: var(--text-muted);
  font-size: 14px;
  font-weight: 700;
}