:root {
  --amber:  #6366f1;
  --amber2: #818cf8;
  --amber3: #a5b4fc;
  --green:  #059669;
  --red:    #dc2626;
  --bg:     #f1f3f4;
  --surface:#ffffff;
  --border: #dadce0;
  --text:   #202124;
  --text2:  #5f6368;
  --text3:  #80868b;
  --shadow: 0 1px 2px rgba(60,64,67,.3),0 1px 3px rgba(60,64,67,.15);
  --shadow-md: 0 4px 12px rgba(60,64,67,.15);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;overflow:hidden;}
body{font-family:"Inter",sans-serif;background:var(--bg);color:var(--text);font-size:14px;}

/* PAGE TRANSITION */
@keyframes _pagein{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.app{animation:_pagein .18s ease-out both;}

/* APP SHELL */
.app{display:flex;flex-direction:column;height:100vh;}

/* TRIAL BANNER */
.trial-banner{
  flex-shrink:0;padding:.45rem 2.5rem;
  background:#fffbeb;border-bottom:1px solid #fcd34d;
  color:#92400e;font-size:.75rem;font-weight:500;
  display:flex;align-items:center;justify-content:center;position:relative;
  gap:.6rem;text-align:center;flex-wrap:wrap;z-index:35;
}
.trial-banner strong{font-weight:700;}
.trial-banner a{color:#6366f1;font-weight:600;text-decoration:none;white-space:nowrap;}
.trial-banner a:hover{text-decoration:underline;}
.trial-banner-warn{background:#fef2f2;border-bottom-color:#fca5a5;color:#991b1b;}
[data-theme="dark"] .trial-banner{background:#2d2204;border-bottom-color:#92400e;color:#fcd34d;}
[data-theme="dark"] .trial-banner-warn{background:#2d0a0a;border-bottom-color:#7f1d1d;color:#fca5a5;}
.trial-close{
  position:absolute;right:.75rem;
  background:none;border:none;cursor:pointer;
  color:inherit;opacity:.5;font-size:.85rem;line-height:1;padding:.15rem .3rem;
  border-radius:4px;transition:opacity .15s;
}
.trial-close:hover{opacity:1;}

/* DROPDOWN TRIAL UPGRADE LINK */
.tb-dd-sep{height:1px;background:var(--border,#dadce0);margin:.4rem 0;}
.tb-dd-upgrade{
  display:block;width:100%;
  color:#6366f1;text-decoration:none;
  font-size:.78rem;font-weight:600;
  padding:.25rem 0;transition:color .15s;white-space:nowrap;
}
.tb-dd-upgrade:hover{color:#4f46e5;}
[data-theme="dark"] .tb-dd-upgrade{color:#818cf8;}
[data-theme="dark"] .tb-dd-upgrade:hover{color:#a5b4fc;}

/* TOPBAR */
.topbar{
  height:64px;flex-shrink:0;background:var(--surface);
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 1rem;gap:.75rem;z-index:30;
}
.tb-left{display:flex;align-items:center;gap:.6rem;}
.tb-brand{display:flex;align-items:center;gap:.4rem;}
.tb-divider{width:1px;height:22px;background:var(--border);flex-shrink:0;}
.module-nav{display:flex;gap:2px;}
.module-tab{
  display:flex;align-items:center;gap:.35rem;
  padding:.32rem .8rem;border-radius:6px;border:none;
  font-family:"Inter",sans-serif;font-size:.76rem;font-weight:500;
  color:var(--text2);background:transparent;cursor:pointer;
  text-decoration:none;transition:background .15s,color .15s;white-space:nowrap;
}
.module-tab:hover{background:var(--bg);color:var(--text);}
.module-tab.active{background:rgba(99,102,241,.1);color:var(--amber);font-weight:600;}
.tb-logo-img{height:58px;width:auto;display:block;object-fit:contain;}
.tb-logo-dark{display:none;}
[data-theme="dark"] .tb-logo-light{display:none;}
[data-theme="dark"] .tb-logo-dark{display:block;}
.tb-badge{font-size:.58rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;background:rgba(99,102,241,.12);color:var(--amber);padding:.18rem .5rem;border-radius:20px;}
.tb-center{display:flex;align-items:center;gap:.4rem;flex:1;justify-content:center;}
.today-btn{
  padding:.38rem .9rem;border:1px solid var(--border);border-radius:4px;
  background:var(--surface);font-size:.78rem;font-family:"Inter",sans-serif;
  font-weight:500;color:var(--text2);cursor:pointer;transition:all .15s;
}
.today-btn:hover{background:var(--bg);}
.nav-btn{
  width:32px;height:32px;border-radius:50%;border:none;background:transparent;
  color:var(--text2);font-size:1.2rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:background .15s;flex-shrink:0;
}
.nav-btn:hover{background:var(--bg);}
.period-label{font-family:"Inter",sans-serif;font-size:1rem;font-weight:400;color:var(--text);min-width:220px;text-align:center;}
.tb-right{display:flex;align-items:center;gap:.5rem;}
.view-tabs{display:flex;border:1px solid var(--border);border-radius:4px;overflow:hidden;}
.view-tab{
  padding:.38rem .9rem;border:none;background:var(--surface);
  font-family:"Inter",sans-serif;font-size:.78rem;font-weight:500;
  cursor:pointer;color:var(--text2);transition:background .15s,color .15s;
}
.view-tab+.view-tab{border-left:1px solid var(--border);}
.view-tab.active{background:var(--amber);color:#fff;font-weight:600;}
.btn-new{
  background:var(--amber);border:none;color:#fff;border-radius:4px;
  padding:.48rem 1.1rem;font-family:"Inter",sans-serif;font-size:.68rem;
  font-weight:700;letter-spacing:.08em;cursor:pointer;transition:background .15s;white-space:nowrap;
}
.btn-new:hover{background:var(--amber2);}
.tb-user{font-size:.74rem;color:var(--text3);white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis;}
.btn-logout{
  background:transparent;border:1px solid var(--border);color:var(--text2);
  border-radius:4px;padding:.35rem .75rem;font-family:"Inter",sans-serif;
  font-size:.74rem;cursor:pointer;transition:all .15s;
}
.btn-logout:hover{border-color:var(--red);color:var(--red);}
.tb-avatar-wrap{position:relative;}
.tb-avatar-btn{width:32px;height:32px;border-radius:50%;border:2px solid var(--border);background:rgba(99,102,241,.1);color:var(--amber);font-family:"Inter",sans-serif;font-size:.8rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s;flex-shrink:0;}
.tb-avatar-btn:hover{border-color:var(--amber);background:rgba(99,102,241,.2);}
.tb-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.65rem .9rem;box-shadow:var(--shadow-md);min-width:175px;z-index:100;opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity .18s,transform .18s;}
.tb-dropdown.open{opacity:1;pointer-events:all;transform:translateY(0);}
.tb-dd-barberia{font-size:.84rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tb-dd-email{font-size:.7rem;color:var(--text3);padding-bottom:.45rem;border-bottom:1px solid var(--border);margin-bottom:.4rem;word-break:break-all;}
.tb-dd-logout{width:100%;background:transparent;border:none;font-family:"Inter",sans-serif;font-size:.78rem;color:var(--text2);cursor:pointer;padding:.25rem 0;text-align:left;transition:color .15s;}
.tb-dd-logout:hover{color:var(--red);}
.btn-theme{
  width:32px;height:32px;border-radius:50%;border:1px solid var(--border);
  background:transparent;cursor:pointer;font-size:.9rem;
  display:flex;align-items:center;justify-content:center;
  transition:border-color .2s,background .2s;flex-shrink:0;
}
.btn-theme:hover{border-color:var(--amber);background:rgba(99,102,241,.08);}
[data-theme="dark"] .btn-theme{filter:brightness(0) invert(1);}

/* ── DARK MODE ── */
[data-theme="dark"]{
  --bg:#16181f;--surface:#1e2028;--border:#2e3040;
  --text:#ffffff;--text2:#c8d0dc;--text3:#8a96a8;
  --shadow:0 1px 3px rgba(0,0,0,.4),0 1px 4px rgba(0,0,0,.3);
  --shadow-md:0 4px 16px rgba(0,0,0,.35);
}
[data-theme="dark"] .topbar,
[data-theme="dark"] .sidebar,
[data-theme="dark"] .week-header,
[data-theme="dark"] .wh-gutter,
[data-theme="dark"] .modal-card,
[data-theme="dark"] .modal-head,
[data-theme="dark"] .modal-ftr,
[data-theme="dark"] .detail-panel{background:var(--surface);}
[data-theme="dark"] .day-cell,
[data-theme="dark"] .agenda-item{background:var(--surface);}
[data-theme="dark"] .day-cell:hover{background:#252836;}
[data-theme="dark"] .day-cell.other-month{background:#1a1c22;}
[data-theme="dark"] .month-grid,[data-theme="dark"] .month-header{background:var(--surface);}
[data-theme="dark"] .ff input,[data-theme="dark"] .ff select,
[data-theme="dark"] .side-input,[data-theme="dark"] .side-select,
[data-theme="dark"] .dp-svc-select{background:var(--bg);color:var(--text);border-color:var(--border);}
[data-theme="dark"] .stat-row{background:var(--bg);}
[data-theme="dark"] .week-col.is-today-col{background:rgba(99,102,241,.04);}
[data-theme="dark"] body{background:var(--bg);}

/* CAL BODY */
.cal-body{display:flex;flex:1;overflow:hidden;}

/* SIDEBAR */
.sidebar{
  width:240px;flex-shrink:0;background:var(--surface);
  border-right:1px solid var(--border);
  overflow-y:auto;padding:.85rem .9rem;
  display:flex;flex-direction:column;gap:1.2rem;
}

/* Mini Calendar */
.mini-cal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem;}
.mini-cal-title{font-size:.76rem;font-weight:600;color:var(--text2);text-transform:capitalize;}
.mini-nav{
  width:24px;height:24px;border-radius:50%;border:none;background:transparent;
  cursor:pointer;color:var(--text2);font-size:.9rem;
  display:flex;align-items:center;justify-content:center;
}
.mini-nav:hover{background:var(--bg);}
.mini-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;}
.mini-day-name{font-size:.58rem;font-weight:600;color:var(--text3);text-align:center;padding:.16rem 0;text-transform:uppercase;}
.mini-day{
  width:28px;height:28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:.7rem;cursor:pointer;color:var(--text2);
  transition:background .1s;position:relative;margin:auto;
}
.mini-day:hover{background:var(--bg);}
.mini-day.other-month{color:var(--text3);}
.mini-day.today{background:var(--amber);color:#fff;font-weight:700;}
.mini-day.in-week:not(.today){background:rgba(99,102,241,.1);color:var(--amber);}
.mini-day.has-events::after{
  content:'';position:absolute;bottom:2px;left:50%;transform:translateX(-50%);
  width:4px;height:4px;border-radius:50%;background:var(--amber);
}
.mini-day.today.has-events::after{background:#fff;}

/* Sidebar sections */
.sidebar-label{font-size:.6rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--text3);margin-bottom:.4rem;}
.sidebar-block{display:flex;flex-direction:column;}
.period-pills{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.6rem;}
.s-pill{
  padding:.22rem .6rem;border:1px solid var(--border);border-radius:20px;
  font-size:.7rem;font-family:"Inter",sans-serif;font-weight:500;
  cursor:pointer;color:var(--text2);background:var(--surface);transition:all .15s;
}
.s-pill:hover{border-color:var(--amber);color:var(--amber);}
.s-pill.active{background:var(--amber);border-color:var(--amber);color:#fff;font-weight:600;}
.stats-block{gap:.32rem;}
.stat-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:.48rem .65rem;border-radius:6px;background:var(--bg);border:1px solid var(--border);
}
.stat-row-label{font-size:.72rem;color:var(--text2);}
.stat-row-val{font-family:"Inter",sans-serif;font-size:.9rem;font-weight:700;}
.v-ingresos{color:var(--amber);}
.v-total{color:var(--text);}
.v-confirmed{color:var(--green);}
.v-pending{color:#d97706;}
.v-cancelled{color:var(--red);}
.v-paid{color:var(--text3);}
.side-input,.side-select{
  width:100%;border:1px solid var(--border);border-radius:4px;
  padding:.42rem .65rem;font-family:"Inter",sans-serif;
  font-size:.8rem;color:var(--text);background:var(--surface);
  outline:none;transition:border-color .15s;margin-bottom:.4rem;
}
.side-input:focus,.side-select:focus{border-color:var(--amber);}
.side-input::placeholder{color:var(--text3);}

/* MAIN */
.cal-main{flex:1;overflow:hidden;display:flex;flex-direction:column;min-width:0;position:relative;}

/* Zoom badge */
.zoom-badge{
  position:absolute;top:.7rem;right:.7rem;z-index:25;
  background:rgba(32,33,36,.72);color:#fff;
  font-size:.7rem;font-weight:600;letter-spacing:.04em;
  padding:.22rem .65rem;border-radius:20px;
  opacity:0;pointer-events:auto;cursor:pointer;
  transition:opacity .25s;backdrop-filter:blur(4px);
  user-select:none;
}
.zoom-badge.visible{opacity:1;}
[data-theme="dark"] .zoom-badge{background:rgba(0,0,0,.55);}

/* ── WEEK VIEW ── */
.week-view{display:flex;flex-direction:column;height:100%;}
.week-header{
  display:flex;flex-shrink:0;
  background:var(--surface);border-bottom:1px solid var(--border);
}
.wh-gutter{width:52px;flex-shrink:0;border-right:1px solid var(--border);}
.wh-heads-scroll{flex:1;overflow-x:hidden;}
.week-day-heads{display:grid;grid-template-columns:repeat(7,minmax(var(--cal-col-w,110px),1fr));}
.wh-day{padding:.4rem 0;text-align:center;border-right:1px solid var(--border);cursor:pointer;}
.wh-day:last-child{border-right:none;}
.wh-day-name{font-size:.6rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text2);}
.wh-day-num{
  width:32px;height:32px;border-radius:50%;margin:.18rem auto 0;
  display:flex;align-items:center;justify-content:center;
  font-size:.95rem;font-weight:400;color:var(--text2);
  transition:background .15s,color .15s;
}
.wh-day:hover .wh-day-num{background:var(--border);color:var(--text1);}
.wh-day.is-today .wh-day-name{color:var(--amber);}
.wh-day.is-today .wh-day-num{background:var(--amber);color:#fff;font-weight:700;}
.wh-day.is-today:hover .wh-day-num{filter:brightness(1.15);}
.week-scroll{flex:1;overflow-y:auto;overflow-x:auto;display:flex;}
.time-gutter{width:52px;flex-shrink:0;border-right:1px solid var(--border);position:sticky;left:0;z-index:3;background:var(--surface);}
.time-label{
  height:var(--cal-hour-px,60px);display:flex;align-items:flex-start;
  justify-content:flex-end;padding-right:8px;padding-top:2px;
  font-size:.62rem;color:var(--text3);white-space:nowrap;
}
.week-cols{flex:1;display:grid;grid-template-columns:repeat(7,minmax(var(--cal-col-w,110px),1fr));position:relative;}
.week-col{position:relative;border-right:1px solid var(--border);}
.week-col:last-child{border-right:none;}
.week-col.is-today-col{background:rgba(99,102,241,.02);}
.hour-row{height:var(--cal-hour-px,60px);border-top:1px solid var(--border);}
.half-row{height:30px;border-top:1px dashed rgba(218,220,224,.5);}
.week-event{
  position:absolute;left:2px;right:2px;border-radius:4px;
  padding:2px 5px;font-size:.67rem;overflow:hidden;cursor:pointer;
  font-weight:500;line-height:1.4;z-index:2;
  transition:opacity .1s,box-shadow .1s;
}
.week-event:hover{opacity:.82;box-shadow:0 2px 6px rgba(0,0,0,.15);}
.week-event.pending{background:rgba(99,102,241,.18);color:#92400e;border-left:3px solid var(--amber);}
.week-event.confirmed{background:rgba(5,150,105,.14);color:#065f46;border-left:3px solid var(--green);}
.week-event.cancelled{background:rgba(148,163,184,.18);color:var(--text3);border-left:3px solid var(--text3);}
.tv-qa{display:flex;gap:3px;margin-top:4px;}
.tv-qa-btn{
  width:18px;height:18px;border:none;border-radius:3px;
  font-size:.72rem;font-weight:700;cursor:pointer;padding:0;line-height:1;
  display:flex;align-items:center;justify-content:center;
  transition:transform .1s,opacity .1s;
}
.tv-qa-btn:hover{transform:scale(1.15);opacity:.88;}
.tv-qa-ok{background:var(--green);color:#fff;}
.tv-qa-x{background:var(--red);color:#fff;}
.now-line{
  position:absolute;left:0;right:0;height:1px;background:rgba(220,38,38,.45);z-index:5;pointer-events:none;
}
.now-line::before{
  content:'';position:absolute;left:-4px;top:-3px;
  width:7px;height:7px;border-radius:50%;background:rgba(220,38,38,.55);
}

/* ── MONTH VIEW ── */
.month-view{display:flex;flex-direction:column;height:100%;}
.month-header{
  display:grid;grid-template-columns:repeat(7,1fr);
  background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;
}
.day-name{padding:.5rem;text-align:center;font-size:.62rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text2);}
.month-grid{display:grid;grid-template-columns:repeat(7,1fr);flex:1;overflow-y:auto;align-content:start;}
.day-cell{
  border-right:1px solid var(--border);border-bottom:1px solid var(--border);
  padding:4px;min-height:var(--cal-cell-h,100px);background:var(--surface);cursor:pointer;
  transition:background .1s;overflow:hidden;
}
.day-cell:hover{background:#f8fafc;}
.day-cell.other-month{background:#f8fafc;}
.day-cell.other-month .day-num{color:var(--text3);}
.day-num{
  width:24px;height:24px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:.78rem;font-weight:400;color:var(--text2);margin-bottom:2px;
}
.day-cell.today .day-num{background:var(--amber);color:#fff;font-weight:700;}
.cal-event{
  display:block;padding:2px 5px;border-radius:3px;
  font-size:.64rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  margin-bottom:2px;cursor:pointer;font-weight:500;line-height:1.5;transition:opacity .1s;
}
.cal-event:hover{opacity:.78;}
.cal-event.pending{background:rgba(99,102,241,.14);color:#92400e;border-left:2px solid var(--amber);}
.cal-event.confirmed{background:rgba(5,150,105,.12);color:#065f46;border-left:2px solid var(--green);}
.cal-event.cancelled{background:rgba(148,163,184,.15);color:var(--text3);border-left:2px solid var(--text3);}
.cal-more{font-size:.6rem;color:var(--text2);padding:0 3px;cursor:default;}

/* ── AGENDA VIEW ── */
.agenda-view{padding:1.2rem 1.5rem;overflow-y:auto;height:100%;}
.agenda-group{margin-bottom:1.6rem;}
.agenda-date{
  font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--amber);padding-bottom:.38rem;border-bottom:1px solid var(--border);margin-bottom:.5rem;
}
.agenda-item{
  display:flex;align-items:flex-start;gap:1rem;
  padding:.6rem .9rem;background:var(--surface);
  border:1px solid var(--border);border-radius:8px;
  margin-bottom:.3rem;cursor:pointer;
  transition:box-shadow .15s,border-color .15s;
}
.agenda-item:hover{box-shadow:var(--shadow-md);border-color:rgba(99,102,241,.3);}
.ai-time{font-weight:600;color:var(--amber);font-size:.82rem;min-width:50px;padding-top:1px;}
.ai-body{flex:1;}
.ai-name{font-weight:500;color:var(--text);font-size:.84rem;}
.ai-meta{font-size:.74rem;color:var(--text2);margin-top:1px;}
.ai-badge{flex-shrink:0;}
.status-badge{
  display:inline-flex;align-items:center;padding:.16rem .5rem;
  border-radius:20px;font-size:.6rem;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;
}
.status-badge.pending{background:rgba(99,102,241,.14);color:#92400e;}
.status-badge.confirmed{background:rgba(5,150,105,.12);color:#065f46;}
.status-badge.cancelled{background:rgba(148,163,184,.15);color:var(--text3);}
.status-badge.paid{background:rgba(128,134,139,.13);color:var(--text3);}

/* ── DETAIL PANEL ── */
.detail-panel{
  width:0;overflow:hidden;flex-shrink:0;
  background:var(--surface);border-left:1px solid var(--border);
  transition:width .22s ease;
}
.detail-panel.open{width:292px;overflow-y:auto;}
.dp-inner{padding:1.2rem;min-width:292px;}
.dp-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.9rem;}
.dp-name{font-size:.96rem;font-weight:600;color:var(--text);padding-right:.5rem;cursor:pointer;border-radius:4px;transition:color .15s;}
.dp-name:not([data-editing]):hover{color:var(--amber);}
.dp-name[data-editing]{cursor:default;}
.dp-name-input{
  font-size:.96rem;font-weight:600;color:var(--text);width:100%;
  background:transparent;border:none;border-bottom:2px solid var(--amber);
  outline:none;font-family:"Inter",sans-serif;padding:0;
}
.dp-close{
  width:28px;height:28px;border-radius:50%;border:none;background:var(--bg);
  cursor:pointer;font-size:1rem;color:var(--text2);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s;
}
.dp-close:hover{background:var(--border);}
.dp-status{margin-bottom:.85rem;display:flex;flex-direction:column;gap:.4rem;align-items:flex-start;}
.dp-client-badge{font-size:.67rem;font-weight:500;letter-spacing:.04em;padding:.2rem .55rem;border-radius:4px;}
.dp-client-badge--ok{background:rgba(76,175,147,.1);color:#4caf93;border:1px solid rgba(76,175,147,.25);}
.dp-client-badge--cancel{background:rgba(229,115,115,.08);color:#e57373;border:1px solid rgba(229,115,115,.2);}
.dp-row{display:flex;gap:.6rem;align-items:flex-start;padding:.45rem 0;border-bottom:1px solid var(--border);}
.dp-row:last-of-type{border-bottom:none;}
.dp-icon{font-size:.84rem;width:18px;flex-shrink:0;margin-top:2px;}
.dp-label{font-size:.58rem;color:var(--text3);text-transform:uppercase;letter-spacing:.12em;}
.dp-val{font-size:.84rem;color:var(--text);margin-top:.1rem;}
.dp-actions{margin-top:1rem;display:flex;flex-direction:column;gap:.4rem;}
.dp-btn{
  width:100%;padding:.5rem .75rem;border-radius:5px;border:1px solid var(--border);
  background:var(--surface);font-family:"Inter",sans-serif;
  cursor:pointer;transition:all .15s;color:var(--text2);
  display:flex;flex-direction:column;align-items:center;gap:.1rem;
}
.dp-btn:hover{border-color:var(--amber);color:var(--amber);}
.dp-btn-main{font-size:.76rem;font-weight:600;line-height:1.3;}
.dp-btn-sub{font-size:.62rem;font-weight:400;opacity:.7;line-height:1.3;}
.dp-svc-select{
  width:100%;border:1px solid var(--border);border-radius:5px;
  padding:.38rem .6rem;font-family:"Inter",sans-serif;
  font-size:.82rem;color:var(--text);background:var(--surface);
  outline:none;transition:border-color .15s;cursor:pointer;margin-top:.25rem;
}
.dp-svc-select:focus{border-color:var(--amber);}
.dp-price-val{font-size:.86rem;color:var(--text);margin-top:.1rem;font-weight:600;}
.we-barber{font-size:.68rem;opacity:.75;font-weight:400;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dp-btn.action-confirm{background:var(--green);border-color:var(--green);color:#fff;}
.dp-btn.action-confirm:hover{opacity:.88;}
.dp-btn.action-paid{background:var(--green);border-color:var(--green);color:#fff;}
.dp-btn.action-paid:hover{opacity:.88;}
.dp-btn.action-confirm-link{background:transparent;border-color:var(--amber);color:var(--amber);}
.dp-btn.action-confirm-link:hover{background:rgba(99,102,241,.08);}
.dp-btn.action-confirm-link:disabled{opacity:.5;cursor:not-allowed;}
.dp-btn.action-wa{background:#1a7a4a;border-color:#1a7a4a;color:#fff;}
.dp-btn.action-wa:hover{opacity:.88;}
.dp-btn.action-cancel{border-color:rgba(220,38,38,.3);color:var(--red);}
.dp-btn.action-cancel:hover{background:rgba(220,38,38,.06);border-color:var(--red);}

/* add-phone inline widget */
.dp-add-phone-btn{
  display:inline-flex;align-items:center;gap:.3rem;
  padding:.32rem .7rem;border-radius:5px;
  border:1px dashed var(--amber);background:rgba(99,102,241,.06);
  color:var(--amber);font-size:.75rem;font-weight:600;
  font-family:"Inter",sans-serif;cursor:pointer;
  transition:background .15s,border-style .15s;
  margin-top:.18rem;
}
.dp-add-phone-btn:hover{background:rgba(99,102,241,.13);border-style:solid;}
.dp-phone-row{display:flex;gap:.35rem;align-items:center;margin-top:.18rem;}
.dp-phone-input{
  flex:1;padding:.32rem .55rem;border-radius:5px;
  border:1px solid var(--amber);background:var(--bg);
  color:var(--text);font-family:"Inter",sans-serif;font-size:.83rem;
  outline:none;transition:border-color .15s;
}
.dp-phone-input:focus{border-color:var(--amber2);}
.dp-phone-save{
  padding:.32rem .7rem;border-radius:5px;border:none;
  background:var(--amber);color:#000;font-weight:700;
  font-family:"Inter",sans-serif;font-size:.77rem;cursor:pointer;
  transition:opacity .15s;flex-shrink:0;
}
.dp-phone-save:hover{opacity:.85;}
.dp-phone-x{
  padding:.32rem .5rem;border-radius:5px;border:1px solid var(--border);
  background:var(--surface);color:var(--text2);
  font-size:.8rem;cursor:pointer;flex-shrink:0;transition:border-color .15s;
}
.dp-phone-x:hover{border-color:var(--text3);}

/* ── MODAL ── */
.modal-bg{
  position:fixed;inset:0;background:rgba(32,33,36,.42);
  z-index:200;display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;
}
.modal-bg.open{opacity:1;visibility:visible;}
.modal-card{
  background:var(--surface);border-radius:12px;
  width:100%;max-width:480px;max-height:92vh;
  overflow-y:auto;box-shadow:0 24px 60px rgba(0,0,0,.18);
}
.modal-head{
  display:flex;justify-content:space-between;align-items:center;
  padding:1.1rem 1.4rem;border-bottom:1px solid var(--border);
  position:sticky;top:0;background:var(--surface);z-index:1;
}
.modal-ttl{font-family:"Inter",sans-serif;font-size:.88rem;font-weight:600;color:var(--text);letter-spacing:.04em;}
.modal-x{
  width:28px;height:28px;border-radius:50%;border:none;background:var(--bg);
  font-size:1.1rem;cursor:pointer;color:var(--text2);
  display:flex;align-items:center;justify-content:center;transition:background .15s;
}
.modal-x:hover{background:var(--border);}
.modal-bdy{padding:1.2rem 1.4rem;}
.modal-ftr{
  padding:.9rem 1.4rem;border-top:1px solid var(--border);
  display:flex;justify-content:flex-end;gap:.5rem;flex-wrap:wrap;
  position:sticky;bottom:0;background:var(--surface);
}
.modal-body-text{font-size:.85rem;color:var(--text2);line-height:1.65;}
.confirm-note{margin-top:.9rem;padding:.6rem .75rem;border-radius:6px;font-size:.77rem;line-height:1.55;}
.confirm-note--tip{background:rgba(99,102,241,.08);border:1px solid rgba(99,102,241,.22);color:var(--amber2);}
.confirm-note--info{background:rgba(59,130,246,.08);border:1px solid rgba(59,130,246,.22);color:#7eb3f5;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;}
.ff{display:flex;flex-direction:column;gap:.28rem;}
.ff.full{grid-column:1/-1;}
.ff>span{font-size:.62rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text2);}
.ff input,.ff select{
  border:1px solid var(--border);border-radius:5px;padding:.5rem .72rem;
  font-family:"Inter",sans-serif;font-size:.84rem;color:var(--text);
  background:var(--surface);outline:none;transition:border-color .15s;width:100%;
}
.ff input:focus,.ff select:focus{border-color:var(--amber);}
.ff input::placeholder{color:var(--text3);}
.form-err{font-size:.74rem;color:var(--red);min-height:1em;margin-top:.35rem;}
/* AUTOCOMPLETE */
.ac-wrap{position:relative;}
.ac-list{
  position:absolute;top:calc(100% + 2px);left:0;right:0;
  background:var(--surface);border:1px solid var(--border);
  border-radius:6px;box-shadow:var(--shadow-md);
  max-height:210px;overflow-y:auto;z-index:200;display:none;
}
.ac-list.open{display:block;}
.ac-item{
  padding:.45rem .75rem;cursor:pointer;
  border-bottom:1px solid var(--border);transition:background .1s;
}
.ac-item:last-child{border-bottom:none;}
.ac-item:hover,.ac-item.active{background:rgba(99,102,241,.1);}
.ac-name{font-size:.82rem;font-weight:600;color:var(--text);display:block;}
.ac-tel{font-size:.72rem;color:var(--text3);display:block;}
/* CLIENT HINTS */
.client-hints{
  margin-top:.55rem;padding:.6rem .85rem;border-radius:7px;
  background:rgba(99,102,241,.05);border:1px solid rgba(99,102,241,.18);
  border-left:3px solid var(--amber);
}
.client-hints-title{
  font-size:.64rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--amber);margin-bottom:.42rem;
}
.hint-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem .6rem;}
.hint-item{display:flex;flex-direction:column;gap:.06rem;}
.hint-label{font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text3);}
.hint-val{font-size:.79rem;font-weight:600;color:var(--text);}
.phone-warn{
  margin-top:.5rem;padding:.7rem .85rem;border-radius:7px;
  background:rgba(99,102,241,.07);border:1px solid rgba(99,102,241,.3);
  border-left:3px solid var(--amber);
}
.phone-warn-title{font-size:.78rem;font-weight:700;color:var(--amber);margin-bottom:.25rem;}
.phone-warn-body{font-size:.74rem;color:var(--text2);line-height:1.45;margin-bottom:.6rem;}
.phone-warn-actions{display:flex;gap:.45rem;flex-wrap:wrap;}
.phone-warn-confirm{
  padding:.3rem .75rem;border-radius:5px;border:none;
  background:var(--amber);color:#000;font-weight:700;
  font-family:"Inter",sans-serif;font-size:.76rem;cursor:pointer;transition:opacity .15s;
}
.phone-warn-confirm:hover{opacity:.82;}
.phone-warn-add{
  padding:.3rem .75rem;border-radius:5px;
  background:transparent;border:1px solid var(--border);color:var(--text2);
  font-family:"Inter",sans-serif;font-size:.76rem;cursor:pointer;transition:border-color .15s;
}
.phone-warn-add:hover{border-color:var(--amber);color:var(--amber);}
.btn-pri{
  background:var(--amber);border:none;color:#fff;border-radius:5px;padding:.5rem 1.1rem;
  font-family:"Inter",sans-serif;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s;
}
.btn-pri:hover{background:var(--amber2);}
.btn-pri:disabled{opacity:.5;cursor:not-allowed;}
.btn-sec{
  background:transparent;border:1px solid var(--border);color:var(--text2);
  border-radius:5px;padding:.5rem 1.1rem;font-family:"Inter",sans-serif;
  font-size:.8rem;cursor:pointer;transition:border-color .15s;
}
.btn-sec:hover{border-color:var(--amber);}
.btn-danger{
  background:var(--red);border:none;color:#fff;border-radius:5px;padding:.5rem 1.1rem;
  font-family:"Inter",sans-serif;font-size:.8rem;font-weight:600;cursor:pointer;transition:opacity .15s;
}
.btn-danger:hover{opacity:.88;}
.btn-wa{
  background:#1a7a4a;border:none;color:#fff;border-radius:5px;padding:.5rem 1.1rem;
  font-family:"Inter",sans-serif;font-size:.8rem;font-weight:600;cursor:pointer;transition:opacity .15s;
}
.btn-wa:hover{opacity:.88;}

/* EMPTY STATE */
.empty-state{
  display:flex;flex-direction:column;align-items:center;
  justify-content:center;height:100%;color:var(--text3);gap:.5rem;padding:2rem;
}
.empty-icon{font-size:2.5rem;}
.empty-state p{font-size:.84rem;text-align:center;}

/* TOAST */
.toast{
  position:fixed;bottom:1.5rem;right:1.5rem;background:var(--text);color:#fff;
  border-radius:6px;padding:.7rem 1rem;font-size:.8rem;
  box-shadow:0 8px 30px rgba(0,0,0,.18);z-index:500;max-width:300px;
  transform:translateY(10px);opacity:0;transition:transform .22s,opacity .22s;
}
.toast.show{transform:translateY(0);opacity:1;}
.toast.success{background:var(--green);}
.toast.error{background:var(--red);}

@media(max-width:900px){
  .sidebar{display:none;}
  .tb-user{display:none;}
  .form-grid{grid-template-columns:1fr;}
  .ff.full{grid-column:1;}
}

/* ── TABLET (768-900px): topbar más compacto ── */
@media(max-width:900px) and (min-width:768px){
  .module-tab{padding:.3rem .65rem;font-size:.73rem;}
  .period-label{min-width:160px;font-size:.9rem;}
  .btn-new{font-size:.66rem;padding:.42rem .9rem;}
}

/* ── MOBILE (<768px): topbar en 2 filas ── */
@media(max-width:767px){
  /*
    Topbar layout:
    Fila 1: [tb-left logo] [tb-center period] [tb-right buttons]
    Fila 2: [module-nav — ancho completo, scrollable]

    module-nav es ahora hijo DIRECTO del topbar (no dentro de tb-left).
    Con order:10 + flex:0 0 100% se fuerza a la segunda fila.
  */
  .topbar{
    height:auto;
    flex-wrap:wrap;
    align-items:center;
    padding:.4rem .75rem 0;
    gap:0;
    column-gap:.5rem;
  }

  /* tb-left solo tiene logo — ocupa ancho natural */
  .tb-left{
    flex:none;
    gap:.35rem;
    align-items:center;
  }
  .tb-logo-img{height:46px;}
  .tb-divider{display:none;}

  /* module-nav: segunda fila completa */
  .module-nav{
    order:10;
    flex:0 0 100%;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    gap:1px;
    padding:.35rem 0 .4rem;
    border-top:1px solid var(--border);
    margin-top:.35rem;
  }
  .module-nav::-webkit-scrollbar{display:none;}
  .module-tab{
    white-space:nowrap;
    padding:.32rem .75rem;
    font-size:.74rem;
    flex-shrink:0;
  }

  /* tb-center: compacto, ocupa el espacio del medio */
  .tb-center{
    flex:1;
    gap:.2rem;
    justify-content:center;
    min-width:0;
  }
  .period-label{
    min-width:0;
    font-size:.75rem;
    max-width:120px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .today-btn{padding:.28rem .5rem;font-size:.7rem;}
  .nav-btn{width:26px;height:26px;font-size:1rem;}

  /* tb-right: compacto */
  .tb-right{gap:.25rem;flex-shrink:0;}
  .view-tabs{display:none;}
  .btn-new{padding:.3rem .6rem;font-size:.62rem;letter-spacing:.04em;}
  .tb-user{display:none;}
  .tb-avatar-btn{width:28px;height:28px;font-size:.7rem;}
  .btn-theme{width:28px;height:28px;}

  /* Detail panel → pantalla completa */
  .detail-panel.open{
    position:fixed;
    inset:0;
    width:100% !important;
    z-index:50;
    overflow-y:auto;
  }

  /* Modal → bottom sheet */
  .modal-bg{align-items:flex-end;}
  .modal-card{
    border-radius:16px 16px 0 0;
    max-height:92dvh;
    max-width:100%;
    width:100%;
  }

  /* Toast */
  .toast{right:.75rem;left:.75rem;bottom:1rem;max-width:none;}

  /* Agenda view */
  .agenda-view{padding:.9rem 1rem;}

  /* Zoom badge */
  .zoom-badge{font-size:.65rem;padding:.18rem .5rem;}
}

/* ── MULTI-SERVICE PICKER (new modal) ── */
.svc-picker{display:flex;gap:.4rem;align-items:center;}
.svc-picker select{flex:1;width:auto;}
.btn-add-svc{
  background:var(--green);border:none;color:#fff;border-radius:5px;
  padding:.48rem .8rem;font-family:"Inter",sans-serif;font-size:.8rem;
  font-weight:600;cursor:pointer;flex-shrink:0;white-space:nowrap;transition:opacity .15s;
}
.btn-add-svc:hover{opacity:.85;}
.svc-chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.4rem;min-height:0;}
.svc-chip{
  display:inline-flex;align-items:center;gap:.28rem;
  background:rgba(99,102,241,.1);border:1px solid rgba(99,102,241,.3);
  border-radius:20px;padding:.18rem .42rem .18rem .65rem;
}
.svc-chip-name{font-size:.78rem;font-weight:600;color:var(--amber);}
.svc-chip-sub{font-size:.68rem;color:var(--text3);}
.svc-chip-rm{
  background:none;border:none;cursor:pointer;color:var(--text3);
  font-size:.92rem;padding:0 .08rem;line-height:1;transition:color .12s;
}
.svc-chip-rm:hover{color:var(--red);}
.svc-totals{
  font-size:.75rem;color:var(--text3);margin-top:.35rem;
  display:flex;gap:.6rem;align-items:center;
}
.svc-totals b{color:var(--text2);}

/* ── MULTI-SERVICE (detail panel) ── */
.dp-svc-chips{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.38rem;}
.dp-svc-chip{
  display:inline-flex;align-items:center;gap:.22rem;
  background:rgba(99,102,241,.1);border:1px solid rgba(99,102,241,.3);
  border-radius:20px;padding:.14rem .38rem .14rem .55rem;
}
.dp-svc-chip-name{font-size:.72rem;font-weight:600;color:var(--amber);}
.dp-svc-chip-sub{font-size:.64rem;color:var(--text3);}
.dp-svc-chip-rm{
  background:none;border:none;cursor:pointer;color:var(--text3);
  font-size:.82rem;padding:0;line-height:1;transition:color .12s;
}
.dp-svc-chip-rm:hover{color:var(--red);}
.dp-svc-picker{display:flex;gap:.3rem;align-items:center;margin-top:.1rem;}
.dp-svc-picker select{flex:1;width:auto;}
.dp-svc-add{
  background:var(--green);border:none;color:#fff;border-radius:5px;
  padding:.3rem .58rem;font-size:.78rem;cursor:pointer;
  font-family:"Inter",sans-serif;font-weight:700;flex-shrink:0;transition:opacity .15s;
}
.dp-svc-add:hover{opacity:.85;}
.dp-svc-totals{font-size:.7rem;color:var(--text3);margin-top:.28rem;}
.dp-svc-totals b{color:var(--text2);}
.dp-svc-empty{font-size:.76rem;color:var(--text3);font-style:italic;}
[data-theme="dark"] .svc-chip,[data-theme="dark"] .dp-svc-chip{border-color:rgba(99,102,241,.25);}
[data-theme="dark"] .dp-svc-picker select,[data-theme="dark"] .svc-picker select{
  background:var(--bg);color:var(--text);border-color:var(--border);
}

/* ── DURATION EDITOR ── */
.dp-dur-row{margin-top:.28rem;}
.dp-dur-display{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap;font-size:.7rem;color:var(--text3);}
.dp-dur-display b{color:var(--text2);}
.dp-dur-badge{
  font-size:.58rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  background:rgba(99,102,241,.1);color:var(--amber);
  border:1px solid rgba(99,102,241,.25);border-radius:20px;
  padding:.1rem .45rem;
}
.dp-dur-edit-btn,.dp-dur-restore-btn{
  background:none;border:none;cursor:pointer;padding:0;
  display:flex;align-items:center;line-height:1;transition:color .12s;
}
.dp-dur-edit-btn{color:var(--text3);}
.dp-dur-edit-btn:hover{color:var(--amber);}
.dp-dur-restore-btn{color:var(--text3);}
.dp-dur-restore-btn:hover{color:var(--blue);}
.dp-dur-editor{display:flex;align-items:center;gap:.28rem;}
.dp-dur-step{
  display:inline-flex;align-items:center;gap:.18rem;
  background:var(--bg);border:1px solid var(--border);border-radius:4px;
  padding:.18rem .32rem;font-size:.68rem;font-family:"Inter",sans-serif;font-weight:600;
  cursor:pointer;color:var(--text2);transition:all .12s;flex-shrink:0;
}
.dp-dur-step:hover{border-color:var(--amber);color:var(--amber);}
.dp-dur-input{
  width:40px;text-align:center;border:1px solid var(--border);border-radius:4px;
  padding:.18rem .25rem;font-size:.78rem;font-family:"Inter",sans-serif;
  font-weight:600;color:var(--text);background:var(--surface);
  -moz-appearance:textfield;
}
.dp-dur-input::-webkit-inner-spin-button,.dp-dur-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}
.dp-dur-input:focus{outline:none;border-color:var(--amber);}
.dp-dur-unit{font-size:.7rem;color:var(--text3);flex-shrink:0;}
.dp-dur-save,.dp-dur-cancel{
  background:none;border:none;cursor:pointer;padding:.15rem;
  display:flex;align-items:center;justify-content:center;
  border-radius:4px;transition:background .12s;flex-shrink:0;
}
.dp-dur-save{color:var(--green);}
.dp-dur-save:hover{background:rgba(5,150,105,.1);}
.dp-dur-cancel{color:var(--red);}
.dp-dur-cancel:hover{background:rgba(220,38,38,.08);}
[data-theme="dark"] .dp-dur-step{background:var(--bg);border-color:var(--border);}
[data-theme="dark"] .dp-dur-input{background:var(--bg);color:var(--text);}

/* ══ TODAY VIEW — Fresha-style hora × barbero ══ */
.today-view{display:flex;flex-direction:column;height:100%;}
.tv-hdr{
  display:flex;flex-shrink:0;
  background:var(--surface);border-bottom:1px solid var(--border);
}
.tv-col-heads-scroll{flex:1;overflow-x:hidden;}
.tv-col-heads{display:grid;width:100%;}
.tv-col-head{
  padding:.55rem .4rem .5rem;text-align:center;
  border-right:1px solid var(--border);
}
.tv-col-head:last-child{border-right:none;}
.tv-col-name{
  font-family:"Inter",sans-serif;font-size:.8rem;
  font-weight:700;letter-spacing:.04em;display:block;
}
.tv-scroll{flex:1;overflow-y:auto;overflow-x:auto;display:flex;}
.tv-cols{display:grid;position:relative;flex:1;}
.tv-col{position:relative;border-right:1px solid var(--border);cursor:crosshair;}
.tv-col:last-child{border-right:none;}
.week-col{cursor:crosshair;}
.tv-col .week-event,.week-col .week-event{cursor:pointer;}
.slot-ghost{
  position:absolute;left:2px;right:2px;border-radius:4px;
  background:rgba(99,102,241,.1);border:1px dashed rgba(99,102,241,.4);
  pointer-events:none;font-size:.67rem;color:#6366f1;
  display:flex;align-items:center;padding:0 5px;z-index:3;box-sizing:border-box;
}
[data-theme="dark"] .slot-ghost{background:rgba(99,102,241,.16);border-color:rgba(129,140,248,.5);color:#818cf8;}
[data-theme="dark"] .tv-hdr{background:var(--surface);}

/* ── WEEK START PICKER ── */
.week-start-wrap{position:relative;}
.week-start-btn{
  width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;
  padding:.48rem .7rem;border:1px solid var(--border);border-radius:6px;
  background:var(--surface);cursor:pointer;text-align:left;
  transition:border-color .15s,background .15s;
}
.week-start-btn:hover{border-color:var(--amber);background:rgba(99,102,241,.04);}
.wsd-label{font-size:.6rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--text3);}
.wsd-range{font-size:.82rem;font-weight:600;color:var(--amber);}
.week-start-picker{
  position:absolute;top:calc(100% + 4px);left:0;right:0;
  background:var(--surface);border:1px solid var(--border);border-radius:8px;
  box-shadow:var(--shadow-md);z-index:50;overflow:hidden;
  display:none;flex-direction:column;
}
.week-start-picker.open{display:flex;}
.wsd-opt{
  width:100%;padding:.42rem .75rem;border:none;background:transparent;
  font-family:"Inter",sans-serif;font-size:.8rem;color:var(--text2);
  cursor:pointer;text-align:left;transition:background .12s,color .12s;
}
.wsd-opt:hover{background:var(--bg);color:var(--text);}
.wsd-opt.active{color:var(--amber);font-weight:700;background:rgba(99,102,241,.07);}
[data-theme="dark"] .week-start-btn{background:var(--surface);border-color:var(--border);}
[data-theme="dark"] .week-start-picker{background:var(--surface);border-color:var(--border);}
[data-theme="dark"] .wsd-opt:hover{background:var(--bg);}

/* ── SCROLLBARS ── */
::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:rgba(128,134,139,.35);border-radius:99px;}
::-webkit-scrollbar-thumb:hover{background:rgba(128,134,139,.6);}
::-webkit-scrollbar-corner{background:transparent;}
[data-theme="dark"] ::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);}
[data-theme="dark"] ::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.25);}
*{scrollbar-width:thin;scrollbar-color:rgba(128,134,139,.35) transparent;}

/* ══ TABLET (≤ 1100px) ══
   Fila 1: logo | período | acciones
   Fila 2: módulos (scrollable horizontal)
*/
@media (max-width: 1100px) {
  /* Topbar: envuelve en dos filas */
  .topbar {
    height: auto;
    flex-wrap: wrap;
    padding: 0 .75rem;
    gap: 0;
    column-gap: .4rem;
  }

  /* Fila 1: logo */
  .tb-left {
    order: 1;
    padding: .4rem 0;
    gap: .3rem;
  }
  .tb-logo-img { height: 44px; }
  .tb-divider  { display: none; }

  /* Fila 1: período (centro, flex: 1) */
  .tb-center {
    order: 2;
    flex: 1;
    min-width: 0;
    padding: .4rem 0;
    gap: .25rem;
    justify-content: center;
  }
  .period-label {
    min-width: 90px;
    font-size: .82rem;
  }
  .nav-btn {
    width: 28px;
    height: 28px;
    font-size: 1.05rem;
    flex-shrink: 0;
  }

  /* Fila 1: acciones derecha */
  .tb-right {
    order: 3;
    flex-shrink: 0;
    gap: .3rem;
    padding: .4rem 0;
  }
  .view-tab {
    padding: .3rem .58rem;
    font-size: .7rem;
  }
  .btn-new {
    padding: .38rem .72rem;
    font-size: .64rem;
    letter-spacing: .05em;
  }

  /* Fila 2: módulos → segunda fila, scrollable, sin scrollbar visible */
  .module-nav {
    order: 10;
    width: 100%;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    border-top: 1px solid var(--border);
    padding: .2rem 0 .25rem;
    gap: 1px;
    justify-content: flex-start;
  }
  .module-nav::-webkit-scrollbar { display: none; }
  .module-tab {
    flex-shrink: 0;
    padding: .26rem .75rem;
    font-size: .71rem;
  }
}

/* ══ TABLET PEQUEÑA / LANDSCAPE PHONE (≤ 820px) ══ */
@media (max-width: 820px) {
  .tb-logo-img { height: 38px; }

  .period-label {
    min-width: 80px;
    font-size: .78rem;
  }

  /* Comprimir filtros de vista */
  .view-tab {
    padding: .28rem .5rem;
    font-size: .68rem;
  }

  /* Botón nueva reserva: solo ícono + texto corto */
  .btn-new {
    font-size: .62rem;
    padding: .35rem .6rem;
    letter-spacing: .03em;
  }

  /* Sidebar un poco más estrecha */
  .sidebar {
    width: 210px;
    padding: .7rem .75rem;
  }
}
[data-theme="dark"] *{scrollbar-color:rgba(255,255,255,.12) transparent;}
