:root {
  --bg: #f5f3ee;
  --surface: #ffffff;
  --surface-2: #ece9e2;
  --ink: #121212;
  --muted: #74716b;
  --line: #dedbd4;
  --accent: #121212;
  --radius: 22px;
  --shadow: 0 14px 35px rgba(0,0,0,.08);
}
* { box-sizing: border-box; }
html, body { margin:0; min-height:100%; background:var(--bg); color:var(--ink); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
body { padding-bottom: env(safe-area-inset-bottom); }
button, input, select, textarea { font: inherit; }
button { cursor:pointer; }
.app-shell { width:min(100%, 760px); margin:0 auto; min-height:100vh; background:var(--bg); }
.topbar { position:sticky; top:0; z-index:20; display:flex; align-items:center; justify-content:space-between; padding:18px 18px 12px; background:rgba(245,243,238,.92); backdrop-filter:blur(16px); }
.brand { border:0; background:transparent; padding:0; display:flex; align-items:baseline; gap:8px; color:var(--ink); }
.brand-main { font-family: Georgia, serif; font-weight:700; font-size:27px; letter-spacing:-1px; }
.brand-sub { font-size:10px; letter-spacing:3px; font-weight:700; }
main { padding:10px 18px 105px; }
.hero { padding:30px 0 18px; }
.eyebrow { text-transform:uppercase; letter-spacing:2.5px; font-size:11px; font-weight:800; color:var(--muted); }
h1 { margin:9px 0 8px; font-family:Georgia, serif; font-size:42px; line-height:.98; letter-spacing:-1.7px; }
h2 { margin:8px 0 14px; font-size:24px; letter-spacing:-.5px; }
h3 { margin:0 0 8px; font-size:17px; }
p { color:var(--muted); line-height:1.5; }
.grid { display:grid; gap:14px; }
.grid.two { grid-template-columns:repeat(2, 1fr); }
.card { background:var(--surface); border:1px solid rgba(0,0,0,.05); border-radius:var(--radius); padding:18px; box-shadow:var(--shadow); }
.card.soft { background:var(--surface-2); box-shadow:none; border:0; }
.card.clickable { transition:.16s ease; }
.card.clickable:active { transform:scale(.985); }
.primary-btn, .secondary-btn, .ghost-btn, .danger-btn { border:0; border-radius:14px; min-height:48px; padding:0 16px; font-weight:800; }
.primary-btn { background:var(--accent); color:#fff; }
.secondary-btn { background:var(--surface-2); color:var(--ink); }
.ghost-btn { background:transparent; border:1px solid var(--line); min-height:38px; }
.danger-btn { background:#271010; color:#fff; }
.full { width:100%; }
.actions { display:flex; gap:10px; flex-wrap:wrap; }
.actions > * { flex:1; }
.section-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:26px 0 12px; }
.section-head h2 { margin:0; }
.list { display:grid; gap:10px; }
.row { display:flex; gap:14px; align-items:center; justify-content:space-between; padding:15px 0; border-bottom:1px solid var(--line); }
.row:last-child { border-bottom:0; }
.row-main { min-width:0; }
.row-title { font-weight:800; }
.row-meta { color:var(--muted); font-size:13px; margin-top:4px; }
.pill { display:inline-flex; align-items:center; gap:6px; padding:7px 10px; border-radius:999px; background:var(--surface-2); font-size:12px; font-weight:800; }
.pill.dark { background:#171717; color:#fff; }
.pill.off { opacity:.55; }
.role-card { min-height:185px; display:flex; flex-direction:column; justify-content:space-between; }
.role-icon { width:48px; height:48px; border-radius:15px; display:grid; place-items:center; background:var(--ink); color:#fff; font-size:23px; }
.form { display:grid; gap:14px; }
.field { display:grid; gap:7px; }
label { font-size:13px; font-weight:800; }
input, select, textarea { width:100%; border:1px solid var(--line); border-radius:14px; background:#fff; padding:13px 14px; outline:none; color:var(--ink); }
input:focus, select:focus, textarea:focus { border-color:#8a877f; box-shadow:0 0 0 3px rgba(0,0,0,.05); }
.toggle { display:flex; align-items:center; justify-content:space-between; padding:12px 0; }
.toggle input { width:48px; }
.bottom-nav { position:fixed; left:50%; transform:translateX(-50%); bottom:0; z-index:25; width:min(100%,760px); display:grid; grid-template-columns:repeat(4,1fr); gap:4px; padding:10px 10px calc(10px + env(safe-area-inset-bottom)); background:rgba(255,255,255,.94); border-top:1px solid var(--line); backdrop-filter:blur(18px); }
.bottom-nav button { border:0; background:transparent; color:var(--muted); padding:9px 4px; font-size:11px; font-weight:800; display:grid; gap:5px; place-items:center; }
.bottom-nav button.active { color:var(--ink); }
.nav-icon { font-size:20px; }
.calendar-strip { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; }
.day-chip { border:1px solid var(--line); background:#fff; border-radius:16px; padding:10px 5px; text-align:center; }
.day-chip.active { background:var(--ink); color:#fff; border-color:var(--ink); }
.day-chip span { display:block; font-size:11px; color:inherit; opacity:.65; }
.day-chip strong { display:block; font-size:18px; margin-top:3px; }
.slots { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.slot { border:1px solid var(--line); background:#fff; border-radius:13px; min-height:45px; font-weight:800; }
.slot.selected { background:var(--ink); color:#fff; border-color:var(--ink); }
.slot:disabled { opacity:.35; cursor:not-allowed; }
.metric { font-size:30px; font-weight:900; letter-spacing:-1px; }
.muted { color:var(--muted); }
.hidden { display:none !important; }
.empty { text-align:center; padding:30px 12px; color:var(--muted); }
.toast { position:fixed; left:50%; bottom:95px; z-index:80; transform:translate(-50%, 20px); opacity:0; pointer-events:none; background:#111; color:#fff; padding:12px 16px; border-radius:999px; font-weight:700; transition:.2s; }
.toast.show { opacity:1; transform:translate(-50%,0); }
.modal { border:0; border-radius:24px; width:min(92vw,520px); padding:0; box-shadow:0 28px 80px rgba(0,0,0,.28); }
.modal::backdrop { background:rgba(0,0,0,.42); backdrop-filter:blur(3px); }
.modal-inner { padding:22px; }
.modal-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:16px; }
.close-btn { width:38px; height:38px; border-radius:50%; border:0; background:var(--surface-2); font-weight:900; }
.avatar { width:46px; height:46px; border-radius:50%; background:#1b1b1b; color:#fff; display:grid; place-items:center; font-weight:900; }
.person { display:flex; align-items:center; gap:12px; }
.kicker { font-size:12px; color:var(--muted); }
@media (max-width:520px) {
  h1 { font-size:37px; }
  .grid.two { grid-template-columns:1fr; }
  .role-card { min-height:150px; }
}


/* V1.3 calendar + availability */
.calendar-nav{display:grid;grid-template-columns:auto auto 1fr auto;gap:8px;align-items:center;margin:14px 0 18px}
.calendar-title{text-align:center;font-weight:900;text-transform:capitalize}
.week-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:10px;overflow-x:auto;padding-bottom:6px}
.week-day{border:1px solid var(--line,#e5e5e5);background:#fff;border-radius:18px;padding:12px;text-align:left;min-height:180px}
.week-day.today,.month-day.today{outline:2px solid #111}
.week-day-head{display:flex;justify-content:space-between;align-items:center;text-transform:capitalize;margin-bottom:10px}
.week-day-head strong{font-size:22px}
.week-day-body{display:flex;flex-direction:column;gap:8px}
.calendar-appt{display:flex;flex-direction:column;border-radius:12px;background:#f5f5f3;padding:8px;gap:2px}
.calendar-appt small,.month-day small{opacity:.65}
.calendar-empty-mini{opacity:.45;font-size:12px}
.month-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.month-weekdays{margin-bottom:6px;text-align:center;font-size:12px;opacity:.6;font-weight:800}
.month-day{border:1px solid var(--line,#e5e5e5);background:#fff;border-radius:14px;padding:9px;min-height:100px;text-align:left;display:flex;flex-direction:column;gap:5px}
.month-day.muted{opacity:.35}
.month-count{font-size:11px;font-weight:800}
.availability-hours{padding:4px 16px}
.availability-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line,#eee)}
.availability-row:last-child{border-bottom:0}
.barber-hours-line{display:grid;grid-template-columns:1.2fr 1.2fr 1fr 1fr;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line,#eee)}
.barber-hours-line input[type=time]{width:100%}
@media(max-width:700px){
  .calendar-nav{grid-template-columns:auto auto auto}.calendar-title{grid-column:1/-1;grid-row:1;text-align:left}.calendar-prev{grid-column:1}.calendar-today{grid-column:2}.calendar-next{grid-column:3}
  .week-grid{grid-template-columns:repeat(7,170px)}
  .month-day{min-height:74px;padding:6px}.month-day small{display:none}
  .availability-row{grid-template-columns:1fr auto}.availability-row span{grid-row:2}.availability-row button{grid-row:1/3;grid-column:2}
  .barber-hours-line{grid-template-columns:1fr 1fr}.barber-hours-line strong{grid-column:1}.barber-hours-line label{grid-column:2}
}

.notice{margin-top:12px;padding:10px 12px;border-radius:12px;background:#f5f5f3;font-size:13px}
.proposal-box{margin-top:14px;padding:14px;border-radius:16px;background:#f5f5f3}
.admin-appt-row{width:100%;border:0;background:transparent;text-align:left;cursor:pointer}
.calendar-appt.admin-appt-row{border:0;width:100%;text-align:left;cursor:pointer}
.danger-card{border:1px solid #e7c1c1}

.week-day-head,.month-date-button{border:0;background:transparent;width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;cursor:pointer;padding:0}
.month-date-button{display:block}
.month-day .calendar-appt{margin-top:4px}

.multi-shift-day{padding:14px 0;border-bottom:1px solid var(--line,#eee)}
.multi-shift-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.shift-list{display:flex;flex-direction:column;gap:8px}
.shift-row{display:grid;grid-template-columns:1.2fr 1fr auto 1fr auto;gap:8px;align-items:center}
.shift-row input[type=time]{width:100%}
.shift-close-label{font-size:13px;display:flex;gap:6px;align-items:center}
@media(max-width:700px){
  .shift-row{grid-template-columns:1fr 1fr auto}
  .shift-close-label{grid-column:1/-1}
  .shift-row span{display:none}
}

.shop-shift-row{margin-bottom:2px}

.approval-box{margin-top:14px;padding:14px;border-radius:16px;border:1px solid #d8d8d2;background:#fafaf8}

.warning-box{padding:16px;border-radius:16px;background:#fff6f3;border:1px solid #ecd0c6}

.admin-appt-row-wrap{display:flex;align-items:center;gap:10px;width:100%;border-bottom:1px solid var(--line,#eee);padding:4px 0}
.admin-appt-row-wrap:last-child{border-bottom:0}
.admin-appt-main{display:flex;align-items:center;gap:12px;flex:1;border:0;background:transparent;text-align:left;padding:12px 0;cursor:pointer}
.manage-appt-btn{white-space:nowrap}
@media(max-width:700px){
  .admin-appt-row-wrap{align-items:stretch;flex-direction:column;gap:0}
  .manage-appt-btn{align-self:flex-end;margin-bottom:8px}
}

.audit-label{margin-top:5px;font-size:12px;font-weight:800;opacity:.62}
.history-list{opacity:.82}
.notification-row.read{opacity:.68}
.notification-time{margin-top:6px;font-size:11px;opacity:.55}
.notification-dot{width:10px;height:10px;border-radius:999px;background:#111;flex:0 0 auto}

/* V1.7.2 - staff navigation */
#bottomNav{overflow:hidden}
#bottomNav button{min-width:0;flex:1 1 0}
.staff-section-grid{display:grid;gap:12px}
.staff-section-card{
  width:100%;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:14px;
  align-items:center;
  text-align:left;
}
.staff-section-icon{
  width:42px;
  height:42px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:#f2f0eb;
  font-weight:900;
  font-size:18px;
}
@media(max-width:420px){
  #bottomNav{gap:0}
  #bottomNav button{font-size:10px;padding-left:3px;padding-right:3px}
  .nav-icon{font-size:18px}
}

/* V1.7.7 Customer appointments */
.appointment-card{padding:20px}
.appointment-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.appointment-date{font-size:17px;font-weight:900}
.appointment-time{font-size:13px;opacity:.62;margin-top:3px}
.appointment-service{font-size:16px;font-weight:850;margin-top:18px}
.appointment-barber{font-size:13px;opacity:.64;margin-top:3px}
.appointment-info{margin-top:14px;padding:11px 13px;border-radius:12px;background:#f2f0eb;font-size:13px;line-height:1.4}
.pending-info{font-weight:700}
.appointment-history{opacity:.76}
.appointment-actions{border-top:1px solid var(--line,#e7e2d8);padding-top:14px;margin-top:16px}

/* V1.7.7 Notification center */
.notification-hero{padding-bottom:6px}
.notification-title-row{display:flex;align-items:center;gap:12px}
.notification-title-row h1{margin-bottom:0}
.unread-count{
  display:inline-grid;place-items:center;min-width:30px;height:30px;padding:0 9px;
  border-radius:999px;background:#111;color:#fff;font-size:13px;font-weight:900
}
.notification-toolbar{display:flex;justify-content:flex-end;margin:8px 0 22px}
.notification-mark-all{
  border:0;background:transparent;padding:8px 0;font:inherit;font-size:13px;
  font-weight:800;text-decoration:underline;text-underline-offset:3px;cursor:pointer
}
.notification-group{margin-top:26px}
.notification-group-label{
  font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.12em;
  opacity:.48;margin-bottom:10px
}
.notification-feed{
  background:#fff;border-radius:24px;overflow:hidden;
  box-shadow:0 14px 36px rgba(30,24,15,.055)
}
.notification-item{
  width:100%;border:0;border-bottom:1px solid #ece8df;background:#fff;
  display:grid;grid-template-columns:44px minmax(0,1fr) 10px;gap:13px;
  padding:17px 18px;text-align:left;align-items:start;cursor:pointer;color:inherit
}
.notification-item:last-child{border-bottom:0}
.notification-item.read{background:#fbfaf7}
.notification-item.read .notification-content{opacity:.62}
.notification-icon{
  width:42px;height:42px;border-radius:14px;background:#f0eee8;
  display:grid;place-items:center;font-size:19px;font-weight:900
}
.notification-icon.success{background:#e9efe8}
.notification-icon.warning{background:#f2eae4}
.notification-icon.change{background:#ebeaf1}
.notification-icon.new{background:#eceae5}
.notification-icon.muted{background:#f0efec}
.notification-headline{
  display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px
}
.notification-event-label{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;opacity:.58}
.notification-clock{font-size:11px;opacity:.45;white-space:nowrap}
.notification-item-title{font-size:15px;font-weight:900;line-height:1.25}
.notification-message{font-size:13px;line-height:1.45;opacity:.7;margin-top:4px}
.notification-unread-dot{width:8px;height:8px;border-radius:50%;background:#111;margin-top:5px}
.notification-empty{text-align:center;padding:48px 24px}
.notification-empty-icon{
  width:48px;height:48px;margin:0 auto 14px;border-radius:16px;background:#eeece6;
  display:grid;place-items:center;font-size:20px;font-weight:900
}
.notification-empty h2{margin:0 0 7px}
.notification-empty p{margin:0;opacity:.6;font-size:14px;line-height:1.5}
@media(max-width:480px){
  .notification-item{grid-template-columns:40px minmax(0,1fr) 8px;padding:15px 14px;gap:11px}
  .notification-icon{width:40px;height:40px;border-radius:13px}
  .notification-headline{align-items:flex-start;flex-direction:column;gap:2px}
}

/* V1.7.8 Customer appointments */
.appointment-card{padding:20px}
.appointment-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.appointment-date{font-size:17px;font-weight:900}
.appointment-time{font-size:13px;opacity:.62;margin-top:3px}
.appointment-service{font-size:16px;font-weight:850;margin-top:18px}
.appointment-barber{font-size:13px;opacity:.64;margin-top:3px}
.appointment-info{margin-top:14px;padding:11px 13px;border-radius:12px;background:#f2f0eb;font-size:13px;line-height:1.4}
.pending-info{font-weight:700}
.appointment-history{opacity:.76}
.appointment-actions{border-top:1px solid var(--line,#e7e2d8);padding-top:14px;margin-top:16px}

/* V1.7.8 Notification center */
.notification-hero{padding-bottom:6px}
.notification-title-row{display:flex;align-items:center;gap:12px}
.notification-title-row h1{margin-bottom:0}
.unread-count{display:inline-grid;place-items:center;min-width:30px;height:30px;padding:0 9px;border-radius:999px;background:#111;color:#fff;font-size:13px;font-weight:900}
.notification-toolbar{display:flex;justify-content:flex-end;margin:8px 0 22px}
.notification-mark-all{border:0;background:transparent;padding:8px 0;font:inherit;font-size:13px;font-weight:800;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.notification-group{margin-top:26px}
.notification-group-label{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.12em;opacity:.48;margin-bottom:10px}
.notification-feed{background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 14px 36px rgba(30,24,15,.055)}
.notification-item{width:100%;border:0;border-bottom:1px solid #ece8df;background:#fff;display:grid;grid-template-columns:44px minmax(0,1fr) 10px;gap:13px;padding:17px 18px;text-align:left;align-items:start;cursor:pointer;color:inherit}
.notification-item:last-child{border-bottom:0}
.notification-item.read{background:#fbfaf7}
.notification-item.read .notification-content{opacity:.62}
.notification-icon{width:42px;height:42px;border-radius:14px;background:#f0eee8;display:grid;place-items:center;font-size:19px;font-weight:900}
.notification-icon.success{background:#e9efe8}
.notification-icon.warning{background:#f2eae4}
.notification-icon.change{background:#ebeaf1}
.notification-icon.new{background:#eceae5}
.notification-icon.muted{background:#f0efec}
.notification-headline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}
.notification-event-label{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;opacity:.58}
.notification-clock{font-size:11px;opacity:.45;white-space:nowrap}
.notification-item-title{font-size:15px;font-weight:900;line-height:1.25}
.notification-message{font-size:13px;line-height:1.45;opacity:.7;margin-top:4px}
.notification-unread-dot{width:8px;height:8px;border-radius:50%;background:#111;margin-top:5px}
.notification-empty{text-align:center;padding:48px 24px}
.notification-empty-icon{width:48px;height:48px;margin:0 auto 14px;border-radius:16px;background:#eeece6;display:grid;place-items:center;font-size:20px;font-weight:900}
.notification-empty h2{margin:0 0 7px}
.notification-empty p{margin:0;opacity:.6;font-size:14px;line-height:1.5}
@media(max-width:480px){
  .notification-item{grid-template-columns:40px minmax(0,1fr) 8px;padding:15px 14px;gap:11px}
  .notification-icon{width:40px;height:40px;border-radius:13px}
  .notification-headline{align-items:flex-start;flex-direction:column;gap:2px}
}

/* V1.8.0 - uniforma colori mobile/web */
html, body, button, input, select, textarea, a {
  color: #111;
}

button,
a,
[role="button"],
.clickable,
.nav-icon,
#bottomNav button,
.primary-btn,
.secondary-btn,
.ghost-btn,
.slot,
.day-chip,
.card,
.row-title,
.row-meta,
.kicker,
.eyebrow {
  -webkit-tap-highlight-color: transparent;
}

button,
a,
[role="button"],
.clickable,
#bottomNav button {
  color: inherit;
  -webkit-text-fill-color: currentColor;
  text-decoration: none;
}

input,
select,
textarea {
  color: #111;
  -webkit-text-fill-color: #111;
}

input::placeholder,
textarea::placeholder {
  color: rgba(17,17,17,.45);
  -webkit-text-fill-color: rgba(17,17,17,.45);
}

/* Safari/iOS può colorare automaticamente alcuni controlli */
input[type="date"],
input[type="time"],
input[type="email"],
input[type="tel"],
input[type="password"],
select {
  color: #111 !important;
  -webkit-text-fill-color: #111 !important;
}

#bottomNav button,
#bottomNav button span,
#bottomNav button.active,
#bottomNav button.active span {
  color: #111 !important;
  -webkit-text-fill-color: #111 !important;
}

@media(max-width:700px){
  a,
  button,
  input,
  select,
  textarea,
  .row-title,
  .row-meta,
  .kicker,
  .eyebrow,
  .notification-item,
  .notification-item-title,
  .notification-message,
  .notification-event-label,
  .notification-clock {
    color: #111 !important;
    -webkit-text-fill-color: #111 !important;
  }
}

/* V1.8.1 - corregge testo pulsanti scuri su mobile */
.primary-btn,
.primary-btn *,
.secondary-btn.dark,
.secondary-btn.dark *,
button.primary-btn,
button.primary-btn *,
button[class*="dark"],
button[class*="dark"] * {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

/* Mantiene nero solo dove deve essere nero */
.ghost-btn,
.secondary-btn:not(.dark),
.slot,
.day-chip,
#bottomNav button,
#bottomNav button span {
  color: #111 !important;
  -webkit-text-fill-color: #111 !important;
}

/* V1.8.2 - logout button text must stay white */
#logoutBtn,
#logoutBtn *,
.logout-btn,
.logout-btn *,
button[id*="logout"],
button[id*="logout"] *,
button[class*="logout"],
button[class*="logout"] * {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

/* V1.9.0 */
.brand-logo{
  display:block;
  width:min(250px,72vw);
  height:auto;
  margin:12px 0 16px;
  object-fit:contain;
}
.pill.dark,
.pill.dark *,
span.pill.dark{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}
button:disabled{
  opacity:.62;
  cursor:wait;
}
.section-title-button{
  display:flex;
  align-items:center;
  gap:10px;
  padding:0;
  border:0;
  background:transparent;
  color:#111;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.section-title-button h2{margin:0}
.section-title-button span{font-size:12px;font-weight:800;opacity:.55}
.barber-checkboxes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.barber-check{display:flex;align-items:center;gap:8px;padding:12px}
.disabled-action{opacity:.58}
.google-status-card{cursor:default}
.home-calendar-link{text-align:left}
@media(max-width:520px){
  .barber-checkboxes{grid-template-columns:1fr}
}

/* V2.0 staff + flexible assignment */
.pill.dark, .pill.dark *{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}
.staff-avatar-mini{
  width:42px;height:42px;border-radius:14px;background:#efede7;
  display:grid;place-items:center;font-weight:900;flex:0 0 auto;
}
.flexible-badge{font-size:11px;font-weight:800;opacity:.58}

.brand-with-logo img{display:block;width:70px;height:42px;object-fit:contain;object-position:left center}


/* V2.1.1 - fix mobile card operatori abilitati */
.barber-checkboxes{
  display:grid;
  gap:12px;
  width:100%;
  min-width:0;
}

.barber-check{
  display:flex !important;
  align-items:center;
  gap:12px;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  box-sizing:border-box;
  overflow:hidden;
  white-space:normal !important;
  word-break:break-word;
  overflow-wrap:anywhere;
}

.barber-check input[type="checkbox"]{
  flex:0 0 auto;
  margin:0;
}

.barber-check *{
  min-width:0;
  max-width:100%;
}

@media (max-width: 640px){
  .barber-checkboxes{
    grid-template-columns:1fr !important;
  }

  .barber-check{
    padding:14px 16px !important;
    font-size:16px;
    line-height:1.25;
  }
}


/* V2.1.3 - strumenti rapidi + coerenza logo */
.quick-tool-card{
  text-align:left !important;
}

.quick-tool-card .row{
  width:100%;
  align-items:center;
  gap:14px;
}

.quick-tool-copy{
  min-width:0;
  flex:1 1 auto;
  text-align:left !important;
}

.quick-tool-card .row-title{
  text-align:left !important;
  margin:0 0 5px;
}

.quick-tool-card .row-meta{
  text-align:left !important;
  line-height:1.35;
  max-width:none;
}

.quick-tool-arrow{
  flex:0 0 auto;
  margin-left:auto;
  font-size:30px;
  line-height:1;
}

.brand-with-logo{
  display:flex !important;
  align-items:center;
  justify-content:center;
  overflow:visible;
}

.brand-with-logo img{
  display:block;
  width:74px;
  height:44px;
  object-fit:contain;
  object-position:center center;
  margin:0 auto;
}

@media (max-width:640px){
  .quick-tool-card{
    padding:18px 20px !important;
  }

  .quick-tool-card .row-title{
    font-size:18px;
    line-height:1.15;
  }

  .quick-tool-card .row-meta{
    font-size:15px;
    line-height:1.35;
  }

  .quick-tool-arrow{
    font-size:26px;
  }

  .brand-with-logo img{
    width:68px;
    height:42px;
  }
}


/* V2.1.5 - booking horizon 14 giorni */
.booking-14-days{
  overflow-x:auto;
  overflow-y:hidden;
  display:flex;
  gap:10px;
  padding-bottom:8px;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;
}

.booking-14-days .day-chip{
  flex:0 0 auto;
  min-width:64px;
  scroll-snap-align:start;
}

.booking-14-days .day-chip small{
  display:block;
  margin-top:2px;
  font-size:10px;
  text-transform:uppercase;
  opacity:.6;
}


/* V2.1.6 - fix colori giorno selezionato */
.day-chip.active,
.day-chip.active *,
.booking-14-days .day-chip.active,
.booking-14-days .day-chip.active *{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}

.day-chip.active{
  background:#111 !important;
  border-color:#111 !important;
}

.day-chip.active span,
.day-chip.active strong,
.day-chip.active small{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  opacity:1 !important;
}


/* V2.1.7 - bottom nav più compatta */
.bottom-nav{
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  gap:0 !important;
}

.bottom-nav button{
  min-width:0 !important;
  padding:8px 2px calc(8px + env(safe-area-inset-bottom)) !important;
  font-size:10px !important;
  line-height:1.05 !important;
  white-space:nowrap !important;
  overflow:hidden;
  text-overflow:clip;
}

.bottom-nav .nav-icon{
  font-size:18px !important;
  line-height:1 !important;
  margin-bottom:3px !important;
}

@media (max-width:390px){
  .bottom-nav button{
    font-size:9px !important;
    padding-left:1px !important;
    padding-right:1px !important;
  }

  .bottom-nav .nav-icon{
    font-size:17px !important;
  }
}


/* V2.2.0 - logo PDF originale su trasparenza */
.brand-with-logo{
  min-width:74px;
  display:flex !important;
  align-items:center;
  justify-content:center;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
}

.brand-with-logo img{
  width:auto !important;
  height:54px !important;
  max-width:94px !important;
  object-fit:contain !important;
  object-position:center !important;
  background:transparent !important;
}

.brand-logo{
  display:block;
  width:min(210px,58vw) !important;
  height:auto !important;
  margin:0 auto 18px !important;
  object-fit:contain;
  background:transparent !important;
}

@media (max-width:640px){
  .brand-with-logo img{
    height:50px !important;
    max-width:88px !important;
  }

  .brand-logo{
    width:min(190px,56vw) !important;
  }
}


/* V2.2.1 - schermate Richieste e Calendario riorganizzate */

/* Richieste */
.requests-hero{
  margin-bottom:18px;
}
.requests-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:20px 22px !important;
}
.requests-summary .metric{
  line-height:1;
  margin:0;
}
.requests-summary-label{
  margin-top:4px;
  font-size:15px;
  font-weight:700;
}
.requests-section-head{
  margin-top:24px;
}
.requests-list{
  gap:14px;
}
.request-card{
  padding:20px !important;
}
.request-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.request-customer{
  min-width:0;
  flex:1;
}
.request-card .row-title{
  font-size:20px;
  line-height:1.15;
}
.request-datetime{
  margin-top:5px;
  font-size:14px;
  opacity:.68;
}
.request-status-pill{
  flex:0 0 auto;
}
.request-details{
  margin-top:16px;
  padding:13px 0;
  border-top:1px solid rgba(17,17,17,.09);
  border-bottom:1px solid rgba(17,17,17,.09);
}
.request-detail-row{
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  gap:10px;
  align-items:start;
  font-size:14px;
  padding:4px 0;
}
.request-detail-row span{
  opacity:.58;
}
.request-detail-row strong{
  font-weight:700;
  min-width:0;
  overflow-wrap:anywhere;
}
.request-actions{
  display:grid;
  grid-template-columns:1.15fr 1fr auto;
  gap:9px;
  margin-top:16px;
}
.request-actions button{
  min-width:0;
  padding-left:12px !important;
  padding-right:12px !important;
}
.request-reject-btn{
  padding-left:14px !important;
  padding-right:14px !important;
}

/* Calendario mese */
.month-calendar-wrap{
  width:100%;
  min-width:0;
  overflow:hidden;
}
.month-weekdays{
  display:grid !important;
  grid-template-columns:repeat(7,minmax(0,1fr)) !important;
  gap:6px !important;
  padding:0 2px 7px !important;
}
.month-weekdays span{
  min-width:0;
  text-align:center;
  font-size:11px !important;
  font-weight:800;
  opacity:.56;
}
.month-grid{
  display:grid !important;
  grid-template-columns:repeat(7,minmax(0,1fr)) !important;
  gap:6px !important;
  width:100%;
  min-width:0;
}
.month-day{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  min-width:0 !important;
  height:94px !important;
  min-height:94px !important;
  padding:8px 7px !important;
  border:1px solid rgba(17,17,17,.10) !important;
  border-radius:16px !important;
  background:#fff !important;
  color:#111 !important;
  text-align:left !important;
  display:flex !important;
  flex-direction:column;
  overflow:hidden;
  box-sizing:border-box;
}
.month-day.muted{
  opacity:.34;
}
.month-day.today{
  border:2px solid #111 !important;
}
.month-day.has-appts{
  background:#fff !important;
}
.month-day-top{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:4px;
}
.month-date-number{
  font-size:16px !important;
  line-height:1;
}
.month-count{
  display:grid;
  place-items:center;
  min-width:19px;
  height:19px;
  padding:0 4px;
  border-radius:999px;
  background:#111;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  font-size:10px !important;
  font-weight:800;
}
.month-appt-preview{
  margin-top:auto;
  min-width:0;
  width:100%;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.month-appt-preview strong{
  font-size:13px !important;
  line-height:1;
}
.month-appt-preview span{
  display:block;
  max-width:100%;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  font-size:11px !important;
  line-height:1.15;
}
.month-more{
  margin-top:3px;
  font-size:10px;
  font-weight:800;
  opacity:.52;
}
.month-day .calendar-empty-mini{
  margin-top:auto;
  opacity:.26;
}
.calendar-modes{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px !important;
}
.calendar-modes button{
  width:100%;
  min-width:0;
}
.calendar-nav{
  display:grid !important;
  grid-template-columns:auto auto minmax(0,1fr) auto;
  align-items:center;
  gap:6px !important;
  margin-top:10px;
}
.calendar-title{
  text-align:center;
  min-width:0;
  font-weight:800;
}
.calendar-nav button{
  min-width:42px;
}

@media (max-width:640px){
  .request-card{
    padding:17px !important;
  }

  .request-actions{
    grid-template-columns:1fr 1fr;
  }

  .request-actions .quick-approve-request{
    grid-column:1 / 2;
  }

  .request-actions .manage-appt-btn{
    grid-column:2 / 3;
  }

  .request-actions .request-reject-btn{
    grid-column:1 / -1;
    width:100%;
  }

  .month-weekdays,
  .month-grid{
    gap:4px !important;
  }

  .month-day{
    height:82px !important;
    min-height:82px !important;
    padding:7px 5px !important;
    border-radius:13px !important;
  }

  .month-date-number{
    font-size:14px !important;
  }

  .month-count{
    min-width:17px;
    height:17px;
    font-size:9px !important;
  }

  .month-appt-preview strong{
    font-size:11px !important;
  }

  .month-appt-preview span{
    font-size:9px !important;
  }

  .month-more{
    font-size:9px;
  }

  .calendar-nav{
    grid-template-columns:40px 52px minmax(0,1fr) 40px;
  }

  .calendar-nav .ghost-btn{
    padding-left:6px !important;
    padding-right:6px !important;
  }
}


/* V2.2.2 - navigazione calendario ordinata */
.calendar-nav-clean{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:12px !important;
  margin-top:12px !important;
}

.calendar-nav-title{
  text-align:center !important;
  font-weight:800 !important;
  font-size:18px !important;
  line-height:1.2 !important;
  min-width:0 !important;
}

.calendar-nav-actions{
  display:grid !important;
  grid-template-columns:48px minmax(0,1fr) 48px !important;
  gap:10px !important;
  align-items:center !important;
}

.calendar-arrow-btn,
.calendar-today-btn{
  min-height:48px !important;
  height:48px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 12px !important;
  min-width:0 !important;
}

.calendar-arrow-btn{
  font-size:28px !important;
  font-weight:700 !important;
  line-height:1 !important;
}

.calendar-today-btn{
  font-size:17px !important;
  font-weight:700 !important;
}

@media (max-width:640px){
  .calendar-nav-clean{
    gap:10px !important;
  }

  .calendar-nav-title{
    font-size:17px !important;
    padding:0 6px !important;
  }

  .calendar-nav-actions{
    grid-template-columns:44px minmax(0,1fr) 44px !important;
    gap:8px !important;
  }

  .calendar-arrow-btn,
  .calendar-today-btn{
    min-height:44px !important;
    height:44px !important;
  }

  .calendar-arrow-btn{
    font-size:24px !important;
  }

  .calendar-today-btn{
    font-size:16px !important;
  }
}


/* V2.2.3 - schermata Trattamenti riallineata */
.services-hero{
  margin-bottom:18px;
}

.service-add-btn{
  margin-top:6px;
}

.services-section-head{
  margin-top:28px;
}

.services-list{
  gap:14px;
}

.service-card{
  width:100%;
  text-align:left !important;
  padding:20px !important;
}

.service-card-main{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  width:100%;
  min-width:0;
}

.service-card-copy{
  flex:1 1 auto;
  min-width:0;
}

.service-title{
  text-align:left !important;
  font-size:20px;
  line-height:1.15;
  margin:0;
}

.service-meta{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px 10px;
  margin-top:7px;
  font-size:15px;
  line-height:1.25;
  opacity:.78;
}

.service-meta span + span::before{
  content:"·";
  margin-right:10px;
}

.service-operators{
  margin-top:5px;
  font-size:14px;
  line-height:1.3;
  opacity:.62;
  text-align:left !important;
  overflow-wrap:anywhere;
}

.service-status{
  flex:0 0 auto;
  align-self:flex-start;
  margin-top:2px;
}

@media (max-width:640px){
  .service-card{
    padding:17px !important;
  }

  .service-card-main{
    gap:12px;
  }

  .service-title{
    font-size:18px;
  }

  .service-meta{
    font-size:14px;
    gap:5px 8px;
  }

  .service-meta span + span::before{
    margin-right:8px;
  }

  .service-operators{
    font-size:13px;
  }

  .service-status{
    font-size:12px !important;
    padding:7px 10px !important;
  }
}

/* V2.2.5 - fix pulsante conferma annullamento su mobile/iOS */
.danger-btn,
.danger-btn *,
#cancelYes,
#cancelYes * {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
\n\n/* V2.2.8 - preferenza notifiche email account staff */
.profile-setting-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:16px 0;
  border-top:1px solid rgba(0,0,0,.08);
  border-bottom:1px solid rgba(0,0,0,.08);
  margin:4px 0 16px;
}
.profile-setting-copy{min-width:0;flex:1;}
.profile-setting-title{font-weight:700;font-size:16px;line-height:1.2;}
.profile-setting-meta{margin-top:5px;font-size:13px;line-height:1.35;opacity:.62;}
.claro-switch{position:relative;display:inline-block;width:50px;height:30px;flex:0 0 auto;}
.claro-switch input{opacity:0;width:0;height:0;position:absolute;}
.claro-switch-slider{position:absolute;inset:0;cursor:pointer;background:#d6d6d6;border-radius:999px;transition:.18s ease;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);}
.claro-switch-slider:before{content:"";position:absolute;width:24px;height:24px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.18s ease;box-shadow:0 1px 4px rgba(0,0,0,.28);}
.claro-switch input:checked + .claro-switch-slider{background:#111;}
.claro-switch input:checked + .claro-switch-slider:before{transform:translateX(20px);}
.claro-switch input:focus-visible + .claro-switch-slider{outline:3px solid rgba(0,0,0,.18);outline-offset:2px;}
.claro-switch input:disabled + .claro-switch-slider{opacity:.55;cursor:wait;}


/* V2.2.11 - colori appuntamenti per Barber */
.barber-colored-appt{box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);}
.barber-colored-appt .row-title,
.barber-colored-appt .row-meta,
.barber-colored-appt small,
.barber-colored-appt strong,
.barber-colored-appt span{color:inherit !important;-webkit-text-fill-color:currentColor !important;}
.calendar-colored-row .manage-appt-btn{align-self:stretch;}
.month-appt-preview.barber-colored-appt{padding:5px 6px;border-radius:8px;}


/* V2.2.15 - calendario giorno a timeline mobile, cronologico */
.day-timeline-card{
  background:#fff;
  border:1px solid var(--line,#e8e3dc);
  border-radius:24px;
  padding:14px 12px 18px;
  overflow:hidden;
  box-shadow:0 10px 30px rgba(0,0,0,.04);
}
.day-timeline{
  position:relative;
  width:100%;
  min-width:0;
}
.day-time-label{
  position:absolute;
  left:0;
  width:54px;
  transform:translateY(-50%);
  text-align:right;
  padding-right:10px;
  font-size:13px;
  color:#7b7a76;
  line-height:1;
  z-index:3;
  background:#fff;
}
.day-hour-line{
  position:absolute;
  left:64px;
  right:0;
  border-top:1px solid #e8e5df;
  pointer-events:none;
  z-index:0;
}
.day-events{
  position:absolute;
  left:64px;
  right:0;
  top:0;
  bottom:0;
  min-width:0;
}
.day-events:before{
  content:"";
  position:absolute;
  left:-1px;
  top:0;
  bottom:0;
  border-left:1px solid #d9d6d0;
}
.day-timeline-appt{
  position:absolute !important;
  border:0 !important;
  border-radius:11px;
  padding:6px 8px;
  text-align:left;
  overflow:hidden;
  cursor:pointer;
  box-shadow:0 2px 7px rgba(0,0,0,.08),inset 0 0 0 1px rgba(255,255,255,.2);
  min-width:0;
  z-index:2;
  margin:0 !important;
  box-sizing:border-box;
}
.day-timeline-appt .day-appt-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:6px;
  font-size:10px;
  line-height:1.05;
  opacity:.82;
}
.day-timeline-appt .day-appt-top strong{font-weight:800;}
.day-timeline-appt .day-appt-top span{white-space:nowrap;}
.day-appt-name{
  font-weight:900;
  font-size:14px;
  line-height:1.08;
  margin-top:2px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.day-appt-meta{
  font-size:10px;
  line-height:1.08;
  margin-top:2px;
  opacity:.82;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.day-timeline-appt.compact{padding:5px 7px;}
.day-timeline-appt.compact .day-appt-top span,
.day-timeline-appt.compact .day-appt-meta{display:none;}
.day-timeline-appt.compact .day-appt-name{font-size:13px;margin-top:2px;}
.day-now-line{
  position:absolute;
  left:0;
  right:0;
  height:2px;
  background:#e13a32;
  z-index:4;
  pointer-events:none;
}
.day-now-line:before{
  content:"";
  position:absolute;
  left:-5px;
  top:-4px;
  width:10px;
  height:10px;
  border-radius:50%;
  background:#e13a32;
}
.day-now-line span{
  position:absolute;
  left:-58px;
  top:-10px;
  font-size:10px;
  font-weight:800;
  color:#e13a32;
  background:#fff;
  padding-right:4px;
}
.day-history-head{margin-top:24px;}

@media (max-width:640px){
  .day-timeline-card{padding:12px 8px 16px;border-radius:20px;}
  .day-time-label{width:48px;font-size:12px;padding-right:8px;}
  .day-hour-line{left:56px;}
  .day-events{left:56px;}
  .day-timeline-appt{border-radius:9px;padding:5px 7px;}
  .day-appt-name{font-size:13px;}
  .day-appt-meta{font-size:9px;}
  .day-timeline-appt .day-appt-top{font-size:9px;}
  .day-now-line span{left:-51px;font-size:9px;}
}


/* V2.2.16 - password recovery */
.auth-link-btn{
  width:max-content;
  justify-self:center;
  border:0;
  background:transparent;
  color:var(--muted);
  padding:2px 8px;
  min-height:30px;
  font-weight:800;
  text-decoration:underline;
  text-underline-offset:3px;
}
.auth-link-btn:active{opacity:.65}
.auth-help{margin:0 0 16px;color:var(--muted)}
