
*{box-sizing:border-box}
:root{
  /* Tema de prueba elegido por Abigail: beige y taupe; solo visual */
  --wine:#665449;--dusty-rose:#988477;--light-rose:#D8C9BB;
  --warm-white:#F8F5F0;--warm-gray:#4C433D;
  --bg:var(--warm-white);--panel:#fff;--text:var(--warm-gray);--muted:var(--warm-gray);
  --line:#E5DCD2;--accent:var(--wine);--accent2:var(--dusty-rose);
  --soft:#F1EAE2;--danger:#A1293C;--ok:#2F7656;
  --shadow:0 10px 28px rgba(84,69,58,.08);
  --type-title:'Bodoni Moda',Georgia,serif;
  --type-italic:'Cormorant Garamond',Georgia,serif;
  --type-ui:Montserrat,'Segoe UI',Arial,sans-serif
}
body{margin:0;font-family:var(--type-ui);background:var(--bg);color:var(--text)}
button,input{font:inherit}.hidden{display:none!important}
.wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:22px}
.card{width:min(520px,100%);background:#fff;border:1px solid var(--line);border-radius:26px;padding:26px;box-shadow:var(--shadow)}
.brand{display:flex;gap:14px;align-items:center;margin-bottom:20px}
.logo{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-weight:900}
h1{margin:0;font-size:23px}.sub{margin:4px 0 0;color:var(--muted);font-size:13px}
label{display:block;margin:14px 0 7px;font-size:13px;font-weight:800}
input{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;outline:none}
input:focus{border-color:var(--accent)}
.btn{border:0;border-radius:14px;padding:13px 16px;font-weight:850;cursor:pointer}
.btn-primary{width:100%;margin-top:18px;background:var(--accent);color:#fff}
.btn-soft{background:var(--soft);color:var(--text)}
.error{color:var(--danger);font-size:13px;min-height:18px;margin-top:9px}
.user-pick{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.user-card{border:1px solid var(--line);background:#fff;border-radius:18px;padding:18px;text-align:left;cursor:pointer}
.user-card:hover{border-color:var(--accent)}
.avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--soft);font-weight:900;margin-bottom:10px}
.user-card .name{font-weight:900}.user-card .role{font-size:12px;color:var(--muted);margin-top:3px}
.back{background:transparent;border:0;color:var(--muted);cursor:pointer;padding:0;margin-bottom:12px}
.app{min-height:100vh;padding:20px}
.topbar{max-width:1180px;margin:0 auto 18px;display:flex;justify-content:space-between;gap:14px;align-items:center}
.top-left{display:flex;gap:12px;align-items:center}.mini-logo{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-weight:900}
.title{font-weight:900}.small{font-size:12px;color:var(--muted)}
.session{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);padding:8px 10px;border-radius:14px}
.session .avatar{width:34px;height:34px;margin:0;font-size:12px}.session button{border:0;background:transparent;cursor:pointer}
.dashboard{max-width:1180px;margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.tile{background:#fff;border:1px solid var(--line);border-radius:20px;padding:21px;min-height:145px;box-shadow:var(--shadow);cursor:pointer}
.tile:hover{transform:translateY(-1px)}.icon{font-size:29px;margin-bottom:13px}.tile h2{font-size:18px;margin:0 0 5px}.tile p{font-size:13px;color:var(--muted);margin:0;line-height:1.45}
.status{max-width:1180px;margin:17px auto 0;background:#fff;border:1px solid var(--line);border-radius:18px;padding:15px 17px;display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap}
.badge{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;background:#edf5ef;color:#376245;font-size:12px;font-weight:850}.dot{width:8px;height:8px;border-radius:50%;background:#4d8d60}
.note{font-size:12px;color:var(--muted)}
.modal{position:fixed;inset:0;background:rgba(25,22,20,.4);display:flex;align-items:center;justify-content:center;padding:20px}
.modal-card{width:min(540px,100%);max-height:82vh;overflow:auto;background:#fff;border-radius:22px;padding:22px;box-shadow:var(--shadow)}
.modal-card h3{margin:0 0 7px}.modal-card p{color:var(--muted);font-size:13px}
.list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.list-row:first-of-type{border-top:0}
.row-actions{display:flex;gap:8px;margin-top:14px}.row-actions .btn{flex:1}
#apptDetailActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;overflow:visible}#apptDetailActions .btn{width:100%;min-width:0;white-space:normal;margin-top:0}
.inline-btn{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 10px;cursor:pointer}
.log{border-top:1px solid var(--line);padding:10px 0}.log:first-of-type{border-top:0}.log strong{font-size:13px}.log div{font-size:12px;color:var(--muted);margin-top:3px}
@media(max-width:820px){.dashboard{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.user-pick,.dashboard{grid-template-columns:1fr}.app{padding:13px}.topbar{align-items:flex-start}.session{max-width:200px}}

.photo-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;background:var(--soft)}
.business-logo-img{width:84px;height:84px;border-radius:18px;object-fit:cover;border:1px solid var(--line)}
.admin-user-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.admin-user-main{display:flex;align-items:center;gap:10px}
.admin-user-row:first-child{border-top:0}


.real-logo{
  width:88px;
  height:88px;
  object-fit:contain;
  border-radius:18px;
  background:#fff;
  cursor:pointer;
  display:block;
}
.real-logo-small{
  width:52px;
  height:52px;
  object-fit:contain;
  border-radius:12px;
  background:#fff;
  cursor:pointer;
  display:block;
}
.admin-secret-hint{
  text-align:center;
  font-size:11px;
  color:var(--muted);
  margin-top:7px;
  opacity:.72;
}


.page{max-width:1180px;margin:0 auto}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.page-head-left{display:flex;align-items:center;gap:10px}
.page-title{font-size:24px;font-weight:900;margin:0}
.page-sub{font-size:13px;color:var(--muted);margin-top:3px}
.page-actions{display:flex;gap:8px;flex-wrap:wrap}
.searchbar{display:flex;gap:10px;margin-bottom:14px}
.searchbar input{flex:1}
.clients-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.client-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;cursor:pointer;box-shadow:var(--shadow)}
.client-card:hover{border-color:var(--accent)}
.client-top{display:flex;align-items:center;gap:11px}
.client-avatar{width:46px;height:46px;border-radius:50%;background:var(--soft);display:grid;place-items:center;font-weight:900;flex:0 0 auto}
.client-name{font-weight:900;font-size:16px}
.client-meta{font-size:12px;color:var(--muted);margin-top:3px}
.empty{background:#fff;border:1px dashed var(--line);border-radius:18px;padding:28px;text-align:center;color:var(--muted)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-grid .full{grid-column:1/-1}
textarea{width:100%;min-height:100px;resize:vertical;padding:13px 14px;border:1px solid var(--line);border-radius:14px;font:inherit;outline:none}
textarea:focus{border-color:var(--accent)}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.detail-box{background:#F8F5F0;border:1px solid var(--line);border-radius:14px;padding:12px}
.detail-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.detail-value{margin-top:3px;font-size:14px;font-weight:750;word-break:break-word}
.history-item{border-top:1px solid var(--line);padding:10px 0}
.history-item:first-child{border-top:0}
.history-item strong{font-size:13px}
.history-item div{font-size:12px;color:var(--muted);margin-top:3px}
.btn-inline-primary{background:var(--accent);color:#fff;border:0;border-radius:12px;padding:10px 13px;font-weight:850;cursor:pointer}
.btn-inline-soft{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 13px;font-weight:800;cursor:pointer}
@media(max-width:700px){.clients-grid,.form-grid,.detail-grid{grid-template-columns:1fr}.searchbar{flex-direction:column}}


/* ===== PASO 7 · AGENDA Y PAQUETES ===== */
.agenda-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:14px 0}
.agenda-toolbar .grow{flex:1;min-width:140px}.agenda-date{font-size:20px;font-weight:900;color:var(--text)}
.agenda-summary{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.summary-pill{padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:12px;font-weight:800}.summary-btn{cursor:pointer;font:inherit;color:inherit}.summary-btn:active{transform:scale(.98)}.pending-list{display:grid;gap:9px;margin-top:12px;max-height:58vh;overflow:auto}.pending-row{width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px;cursor:pointer}.pending-row strong{display:block;font-size:14px}.pending-row span{display:block;font-size:12px;color:var(--muted);margin-top:4px}.pending-overdue{border-left:5px solid #b45309}
.agenda-list{display:grid;gap:8px}.time-row{display:grid;grid-template-columns:72px 1fr;gap:10px;align-items:start;border-top:1px solid var(--line);padding:10px 0}.time-label{font-weight:900;font-size:13px;padding-top:10px}.time-cards{display:grid;gap:7px}
.appt-card{background:#fff;border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:14px;padding:10px 12px;cursor:pointer}.appt-card strong{font-size:14px}.appt-meta{font-size:12px;color:var(--muted);margin-top:3px}.appt-status{display:inline-block;margin-top:6px;font-size:11px;font-weight:900;padding:4px 8px;border-radius:999px;background:var(--soft)}
.appt-card.done{opacity:.72;border-left-color:#2f7d5c}.appt-card.no-show{border-left-color:#b26a00}.appt-card.cancelled{opacity:.62;border-left-color:#a23b3b;text-decoration:none}
.empty-slot{font-size:12px;color:var(--muted);padding:10px 12px;border:1px dashed var(--line);border-radius:12px}
.agenda-tabs{display:flex;gap:6px;overflow:auto;padding-bottom:4px}.agenda-tabs button{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 13px;font-weight:800;cursor:pointer}.agenda-tabs button.active{background:var(--accent);color:#fff;border-color:var(--accent)}

.agenda-workspace{display:grid;grid-template-columns:minmax(300px,390px) 1fr;gap:18px;align-items:start}
.calendar-panel,.day-panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:16px;box-shadow:var(--shadow)}
.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.calendar-month{font-size:18px;font-weight:900;text-transform:capitalize;text-align:center;flex:1}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.calendar-weekdays div{text-align:center;font-size:11px;font-weight:850;color:var(--muted);padding:4px 0}
.cal-day{min-height:54px;border:1px solid transparent;border-radius:12px;background:#F8F5F0;padding:6px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px}
.cal-day:hover{border-color:var(--accent2)}
.cal-day.outside{opacity:.35;background:transparent}
.cal-day.selected{background:var(--accent);color:#fff;border-color:var(--accent)}
.cal-day.today:not(.selected){border-color:var(--accent);background:#fff}
.cal-num{font-size:13px;font-weight:900}.cal-count{font-size:10px;font-weight:900;line-height:1;padding:4px 6px;border-radius:999px;background:var(--soft);color:var(--text)}
.cal-day.selected .cal-count{background:rgba(255,255,255,.22);color:#fff}
.day-panel .agenda-toolbar{margin-top:0}.day-panel .agenda-date{font-size:19px}
.day-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.day-heading h3{margin:0;font-size:18px}.day-heading .small{margin-top:3px}
@media(max-width:850px){.agenda-workspace{grid-template-columns:1fr}.calendar-panel{padding:12px}.cal-day{min-height:46px}.day-panel{padding:13px}}
@media(max-width:560px){.calendar-weekdays,.calendar-grid{gap:3px}.cal-day{min-height:42px;padding:4px}.cal-count{font-size:9px;padding:3px 5px}.page-title{font-size:21px}.page-head-left{align-items:flex-start}}

.package-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:10px}.package-progress{height:9px;background:var(--soft);border-radius:99px;overflow:hidden;margin:9px 0}.package-progress>span{display:block;height:100%;background:var(--accent);border-radius:99px}.package-stats{font-size:12px;color:var(--muted)}
.notice-big{border:2px solid #b26a00;background:#fff8ea;border-radius:16px;padding:14px;margin:12px 0}.notice-big h3{margin:0 0 6px}.conflict-box{background:#fff8ea;border:1px solid #e3b55f;border-radius:12px;padding:10px;margin-top:10px;font-size:13px}
.private-log{background:#171717;color:#f5f5f5;border-radius:14px;padding:12px;margin:8px 0;font-size:12px}.private-log strong{color:#fff}
@media(max-width:700px){.time-row{grid-template-columns:58px 1fr}.agenda-date{font-size:17px}.agenda-toolbar .btn-inline-soft,.agenda-toolbar .btn-inline-primary{padding:9px 11px}}


/* ===== PASO 10 · AGENDA 3 MODOS ===== */
.agenda-view-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0 12px}
.agenda-view-btn{border:1px solid var(--line);background:#fff;border-radius:16px;padding:14px 10px;font-weight:900;font-size:15px;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.04)}
.agenda-view-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);transform:translateY(-1px)}
.agenda-navbar{display:flex;align-items:center;gap:8px;margin:8px 0 14px;flex-wrap:wrap}
.agenda-nav-title{flex:1;min-width:180px;text-align:center;font-size:18px;font-weight:900;text-transform:capitalize}
.agenda-content{background:#fff;border:1px solid var(--line);border-radius:20px;padding:14px;box-shadow:var(--shadow)}
.day-timeline{display:grid;gap:0}.hour-slot{display:grid;grid-template-columns:76px 1fr;min-height:64px;border-top:1px solid var(--line)}.hour-slot:first-child{border-top:0}.hour-label{font-size:13px;font-weight:900;padding:12px 8px 0 0;color:var(--text)}.hour-body{padding:6px 0 7px;display:grid;gap:6px}.hour-empty{min-height:48px;border-left:2px solid #ECE4DA;margin-left:1px}.minute-group{display:grid;grid-template-columns:62px 1fr;gap:7px;align-items:start;padding:4px 0}.minute-time{font-size:12px;font-weight:900;color:var(--muted);padding-top:9px;text-align:right}.same-time-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:7px}.same-time-grid .appt-card{margin:0}.hour-guide{font-size:11px;color:var(--muted);padding:5px 0 1px}.hour-body.has-items{padding-top:4px}
.week-wrap{overflow:auto;-webkit-overflow-scrolling:touch;border-radius:16px}.week-grid{display:grid;grid-template-columns:68px repeat(7,minmax(135px,1fr));min-width:1010px;border:1px solid var(--line);border-radius:16px;overflow:visible}.week-head{background:#F8F5F0;padding:10px 6px;text-align:center;font-size:12px;font-weight:900;border-left:1px solid var(--line)}.week-head.today{background:var(--soft)}.week-corner{position:sticky;left:0;z-index:9;background:#F8F5F0;border-left:0;box-shadow:4px 0 8px rgba(0,0,0,.06)}.week-hour{position:sticky;left:0;z-index:8;padding:10px 6px;font-size:12px;font-weight:900;border-top:1px solid var(--line);background:#fff;box-shadow:4px 0 8px rgba(0,0,0,.06)}.week-cell{min-height:68px;padding:5px;border-left:1px solid var(--line);border-top:1px solid var(--line);background:#fff;display:grid;gap:4px;align-content:start}.week-mini{font-size:11px;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:10px;padding:6px;background:#fff;cursor:pointer}.week-mini strong{display:block;font-size:11px}.week-mini span{color:var(--muted);font-size:10px}
.month-only .calendar-panel{max-width:780px;margin:0 auto;width:100%}.month-only .cal-day{min-height:76px}
.agenda-help{font-size:12px;color:var(--muted);margin-top:-4px;margin-bottom:8px}
@media(max-width:700px){.agenda-view-switch{position:static;z-index:auto;background:var(--bg);padding:8px 0;margin-top:4px}.agenda-view-btn{padding:13px 6px;font-size:14px}.agenda-content{padding:10px;border-radius:16px}.hour-slot{grid-template-columns:58px 1fr;min-height:60px}.hour-label{font-size:12px}.agenda-nav-title{order:-1;flex-basis:100%;font-size:16px}.agenda-navbar .btn-inline-soft{flex:1}.month-only .cal-day{min-height:52px}.page-head{gap:8px}.page-actions .btn-inline-primary{padding:10px 12px}.minute-group{grid-template-columns:48px 1fr;gap:5px}.minute-time{font-size:11px;padding-top:8px}.same-time-grid{grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:6px}}


/* Paso 11: flujo de cita grande y buscador de clientes */
.appt-wizard-card{width:min(720px,100%);max-height:92vh}
.appt-step-title{font-size:24px;margin:0 0 6px}
.appt-step-sub{font-size:15px;color:var(--muted);margin-bottom:18px}
.appt-search-input{font-size:20px!important;padding:17px 18px!important;border-radius:16px!important}
.appt-client-results{display:grid;gap:10px;margin-top:12px;max-height:42vh;overflow:auto}
.appt-client-choice{width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:16px;padding:15px 16px;cursor:pointer;display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:16px}
.appt-client-choice:hover{border-color:var(--accent);background:#FAF7F2}
.appt-client-choice strong{display:block;font-size:17px}.appt-client-choice span{display:block;color:var(--muted);font-size:14px;margin-top:3px}
.appt-big-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.appt-big-btn{min-height:56px;border-radius:16px;font-size:16px;font-weight:700}
.appt-selected-client{background:#F8F5F1;border:1px solid var(--line);padding:14px 16px;border-radius:16px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.appt-selected-client strong{font-size:18px}.appt-selected-client button{white-space:nowrap}
.appt-details-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.appt-details-grid .full{grid-column:1/-1}
.appt-details-grid label{font-size:14px;font-weight:700}
.appt-details-grid input,.appt-details-grid select,.appt-details-grid textarea{font-size:17px;padding:13px 14px;border-radius:13px}
@media(max-width:640px){.appt-wizard-card{border-radius:18px;padding:18px;max-height:94vh}.appt-step-title{font-size:22px}.appt-big-actions{grid-template-columns:1fr}.appt-details-grid{grid-template-columns:1fr}.appt-details-grid .full{grid-column:auto}.appt-client-choice{padding:16px}.appt-search-input{font-size:19px!important}}
/* Paso 33: agenda y citas refinadas */
.appt-wizard-card{padding-top:12px}
.appt-client-step-compact{padding-top:0}
.appt-search-input.compact{margin-top:0;padding:13px 14px!important;font-size:18px!important}
.appt-icon-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.appt-icon-actions button{height:44px;font-size:24px;padding:4px 10px;border-radius:12px}
.appt-compact-title{font-size:20px;margin:0 0 4px}
.appt-selected-client.compact{padding:8px 10px;margin-bottom:10px;border-radius:12px}
.appt-selected-client.compact strong{font-size:16px}
.appt-selected-client.compact .btn{padding:7px 10px;font-size:13px}
.appt-kind-pro-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.appt-kind-pro-grid label,.appt-schedule-grid label{font-size:12px;font-weight:700}
.appt-kind-pro-grid select,.appt-schedule-grid input,.appt-schedule-grid select{font-size:15px;padding:10px 10px;border-radius:11px}
.appt-schedule-grid{display:grid;grid-template-columns:1.25fr .9fr .85fr;gap:12px;align-items:end}
.appt-next-btn{height:42px;min-width:48px;padding:0 12px!important;margin:0!important;font-size:22px!important;border-radius:11px!important}
.appt-service-grid{display:grid;grid-template-columns:1fr;gap:10px}
.zone-pills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}
.zone-pill{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px;font-size:14px;font-weight:700}
.zone-pill input{width:20px;height:20px;margin:0}
.appt-service-actions{display:grid;grid-template-columns:auto 1fr;gap:10px;margin-top:12px}
.appt-service-actions .btn{margin:0}
.appt-details-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.appt-details-actions .btn{margin:0;width:100%}
.existing-package-summary{margin-top:10px;border:1px solid var(--line);background:#F8F5F0;border-radius:13px;padding:11px 12px;font-size:13px;font-weight:850}
@media(max-width:640px){
 .appt-wizard-card{padding:10px 12px 12px;max-height:96vh}
 .appt-kind-pro-grid{grid-template-columns:1fr 1fr;gap:7px}
 .appt-schedule-grid{grid-template-columns:1.2fr .9fr .85fr;gap:8px}
 .appt-schedule-grid input,.appt-schedule-grid select{padding:9px 7px;font-size:14px}
 .appt-next-btn{min-width:42px;padding:0 8px!important}
 .zone-pills{grid-template-columns:1fr 1fr}
}



/* ===== PASO 51 · TIPO EN BOTONES + CAMPOS DE HORARIO SEPARADOS ===== */
.appt-kind-hidden-select{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important}
.appt-kind-wrap{position:relative}
.appt-kind-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:5px}
.appt-kind-choice{min-height:42px;border:1px solid var(--line);background:#fff;color:var(--text);border-radius:12px;padding:8px 10px;font-size:14px;font-weight:850;cursor:pointer}
.appt-kind-choice.active{background:var(--accent);border-color:var(--accent);color:#fff}
.appt-kind-choice:disabled{opacity:.55;cursor:not-allowed}
.appt-schedule-grid{gap:18px!important;margin-top:4px}
.appt-schedule-grid>div{background:#F8F5F0;border:1px solid var(--line);border-radius:14px;padding:10px;min-width:0}
.appt-schedule-grid>div label{display:block;margin-bottom:6px}
.appt-schedule-grid input,.appt-schedule-grid select{width:100%;box-sizing:border-box;background:#fff}
@media(max-width:640px){
  .appt-schedule-grid{gap:12px!important}
  .appt-schedule-grid>div{padding:8px}
  .appt-kind-buttons{gap:8px}
  .appt-kind-choice{font-size:13px;padding:8px 6px}
}

/* ===== PASO 13 · EDITAR ARRASTRANDO CITAS ===== */
.agenda-edit-btn{background:#fff;border:2px solid var(--accent);color:var(--accent);border-radius:14px;padding:11px 16px;font-weight:900;font-size:15px;cursor:pointer;min-height:44px}
.agenda-edit-btn.active{background:var(--accent);color:#fff}
.agenda-edit-banner{display:none;margin:8px 0 12px;padding:12px 14px;border:1px solid #D8C9BB;background:#F5EEE6;border-radius:14px;font-size:13px;font-weight:750}
.agenda-edit-banner.show{display:block}
.editing-agenda .appt-card[data-draggable="1"]{cursor:grab;touch-action:none;outline:2px dashed rgba(177,75,119,.28);outline-offset:1px}
.editing-agenda .appt-card[data-draggable="1"]:active{cursor:grabbing}
.editing-agenda .appt-card.done,.editing-agenda .appt-card.no-show,.editing-agenda .appt-card.cancelled{cursor:not-allowed;outline:none;opacity:.7}
.drag-ghost{position:fixed;z-index:99999;pointer-events:none;opacity:.92;transform:scale(.98);box-shadow:0 14px 34px rgba(0,0,0,.18);width:min(360px,72vw)}
.hour-slot.drag-over{background:#F5EEE6}
.drop-time-hint{position:fixed;z-index:100000;pointer-events:none;background:#171717;color:white;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:900;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.appt-id{display:inline-block;margin-top:5px;font-size:10px;color:var(--muted);font-weight:800;letter-spacing:.3px}
@media(max-width:700px){.agenda-edit-btn{width:100%;font-size:16px;min-height:50px}.editing-agenda .appt-card[data-draggable="1"]{outline-width:2px}.drag-ghost{width:76vw}}

.editing-agenda .week-mini[data-draggable="1"],.editing-agenda .month-appt-chip{cursor:grab;touch-action:none;outline:2px dashed rgba(177,75,119,.25)}
.week-cell.drag-over,.cal-day.drag-over{background:#F1EAE2!important;box-shadow:inset 0 0 0 2px rgba(177,75,119,.38)}
.agenda-period-nav.drag-nav-hot{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important;transform:scale(1.04);box-shadow:0 8px 20px rgba(177,75,119,.22)}
.month-appt-chip{display:block;margin-top:3px;padding:3px 4px;border-radius:6px;background:#fff;border:1px solid var(--line);font-size:8px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}



/* Paso 19: Día/Semana/Mes pegados al almanaque para facilitar el arrastre táctil */
.agenda-view-switch-close{margin:4px 0 6px;gap:8px}
.agenda-view-switch-close + .agenda-content{margin-top:0}
@media(max-width:700px){
  .agenda-view-switch-close{margin:2px 0 4px;padding:0;background:transparent;gap:6px}
  .agenda-view-switch-close .agenda-view-btn{padding:12px 5px}
}
/* Paso 18: en modo edición las citas se comportan como fichas táctiles, no como texto */
.editing-agenda .appt-card[data-draggable="1"],
.editing-agenda .week-mini[data-draggable="1"],
.editing-agenda .month-appt-chip{
  -webkit-user-select:none!important;user-select:none!important;
  -webkit-touch-callout:none!important;touch-action:none!important;
  -webkit-user-drag:none!important;
}
.editing-agenda .appt-card[data-draggable="1"] *,
.editing-agenda .week-mini[data-draggable="1"] *,
.editing-agenda .month-appt-chip *{
  -webkit-user-select:none!important;user-select:none!important;
  -webkit-touch-callout:none!important;pointer-events:none;
}
.editing-agenda .drag-armed{
  outline:3px solid var(--accent)!important;
  outline-offset:2px!important;
  box-shadow:0 0 0 6px rgba(177,75,119,.12),0 10px 24px rgba(0,0,0,.10)!important;
}
.drag-armed::after{content:"Mover";float:right;background:var(--accent);color:#fff;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:900;margin-left:8px}

.appointment-saved-banner{position:fixed;left:50%;bottom:24px;transform:translate(-50%,24px);z-index:9999;min-width:min(92vw,430px);background:#fff;border:2px solid #D8C9BB;border-radius:20px;padding:14px 18px;box-shadow:0 12px 35px rgba(0,0,0,.18);display:flex;flex-direction:column;gap:3px;opacity:0;pointer-events:none;transition:.25s ease}.appointment-saved-banner.show{opacity:1;transform:translate(-50%,0)}.appointment-saved-banner strong{font-size:18px}.appointment-saved-banner span{font-size:15px}.appointment-saved-banner small{opacity:.7}.appt-card.just-created{outline:4px solid rgba(196,91,135,.35);box-shadow:0 0 0 8px rgba(196,91,135,.12),0 10px 28px rgba(0,0,0,.13);animation:pulseCreated .7s ease 2}@keyframes pulseCreated{50%{transform:scale(1.018)}}

/* Paso 28: las fichas de cita nunca se comportan como texto seleccionable.
   Evita lupa, selección y menú Copiar en iPhone/iPad/Android sin bloquear el scroll normal. */
.appt-card,.week-mini,.month-appt-chip,
.appt-card *,.week-mini *,.month-appt-chip *{
  -webkit-user-select:none!important;
  user-select:none!important;
  -webkit-touch-callout:none!important;
  -webkit-user-drag:none!important;
}

/* Paso 24: agenda compacta y bandejas en una sola línea */
.agenda-hidden-heading{display:none!important}
#agendaPage .page-head{margin-bottom:6px}
#agendaPage .agenda-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:6px 0 8px}
#agendaPage .summary-pill{border-radius:12px;padding:9px 4px;font-size:11px;white-space:nowrap;text-align:center;min-width:0}
@media(max-width:600px){#agendaPage .page-head{gap:5px;align-items:center}#agendaPage .page-actions{gap:5px}#agendaPage .btn-inline-primary,#agendaPage .agenda-edit-btn,#agendaPage .btn-inline-soft{padding:8px 9px;font-size:11px}#agendaPage .agenda-navbar{margin-top:4px}.agenda-tabs{margin-top:2px}}

#agendaPage .agenda-date-row{width:100%;text-align:center;font-weight:900;font-size:16px;margin:4px 0 6px;min-height:22px}
#agendaPage .agenda-nav-buttons{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-bottom:6px}
#agendaPage .agenda-nav-buttons button{width:100%;min-width:0;padding:9px 4px}
#agendaPage .agenda-view-switch{margin:0 0 6px}
#agendaPage .agenda-summary{margin:0 0 8px}
.appt-delete-tray{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:9999;background:#fff;border:1px solid #DDD0C3;border-radius:18px;box-shadow:0 8px 30px #0003;padding:8px}
.appt-delete-tray button{border:0;background:#fff0f0;color:#c51616;border-radius:14px;padding:12px 24px;font-size:16px;font-weight:950;letter-spacing:.5px}

/* ===== PASO 34 · EXPEDIENTE + PAQUETES AGRUPADOS ===== */
.mini-total-counter{display:inline-flex;align-items:center;justify-content:center;min-width:25px;height:22px;padding:0 7px;margin-left:5px;border-radius:999px;background:var(--soft);border:1px solid var(--line);font-size:12px;font-weight:900;vertical-align:2px;color:var(--text)}
.package-client-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:10px;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.package-client-card:active{transform:scale(.995)}
.package-client-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.package-client-name{font-weight:900;font-size:15px}.package-client-count{font-size:12px;font-weight:850;color:var(--muted)}
.package-item-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:13px;margin-bottom:9px;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.package-item-card.selected-delete{outline:2px solid #c51616;outline-offset:1px}.package-item-title{font-weight:900}.package-item-meta{font-size:12px;color:var(--muted);margin-top:4px}.package-delete-btn{width:100%;border:1px solid #DFCBBB;background:#fff;color:#c51616;font-weight:950;font-size:15px;padding:12px;border-radius:12px;margin-top:8px;position:sticky;bottom:0;z-index:20;box-shadow:0 -6px 16px rgba(255,255,255,.96)}.package-delete-btn:active{background:#fff0f0}.modal-head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.package-modal-card{max-height:88vh;overflow:auto}
.record-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;margin-bottom:12px}.record-stat{border:1px solid var(--line);background:#F8F5F0;border-radius:13px;padding:10px}.record-stat b{display:block;font-size:17px}.record-stat span{display:block;font-size:11px;color:var(--muted);margin-top:2px}.record-row{border:1px solid var(--line);border-radius:13px;padding:10px 11px;margin-bottom:8px;background:#fff}.record-row-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.record-row strong{font-size:13px}.record-row .small{font-size:11px;margin-top:3px}.record-status{font-size:11px;font-weight:900;white-space:nowrap}.record-reschedule{font-size:11px;color:var(--muted);margin-top:5px;padding-top:5px;border-top:1px dashed var(--line)}
@media(max-width:520px){.record-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.package-modal-card{max-height:92vh}}


/* ===== PASO 43 · AJUSTES DE CITA COMPUESTA ===== */
.appt-schedule-grid{column-gap:16px!important;row-gap:10px!important}
.appt-schedule-grid>div{min-width:0}
#apptDetailActions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;width:100%!important;overflow:visible!important}
#apptDetailActions .btn{width:100%!important;min-width:0!important;white-space:normal!important;margin:0!important;padding:10px 8px!important;line-height:1.15}
@media(max-width:640px){
  .appt-schedule-grid{column-gap:12px!important;row-gap:10px!important}
  .appt-schedule-grid input,.appt-schedule-grid select{padding:9px 8px!important}
}



/* PASO 80 PRUEBA: SOLO PRESENTACIÓN. No altera guardado, contadores, citas ni paquetes. */
#appointmentFormModal label,
#appointmentFormModal .visit-section-label{font-size:14px;font-weight:900;letter-spacing:.02em}
#appointmentFormModal .appt-kind-choice,
#appointmentFormModal .visit-choice-btn{font-size:13px;font-weight:900}
#appointmentFormModal .visit-choice-btn{text-transform:uppercase}
#appointmentFormModal .p80-nav-btn{font-size:14px!important;font-weight:900;min-height:46px}
#appointmentFormModal .p80-action-btn{font-size:15px!important;font-weight:900;min-height:48px}
#appointmentFormModal .p80-hide-service-title{display:none!important}
#appointmentFormModal .p80-legacy-package-field{display:none!important}
#appointmentFormModal .p80-top-grid{grid-template-columns:minmax(0,1.6fr) minmax(150px,.8fr) minmax(120px,.65fr);align-items:end}
#appointmentFormModal #apptTotalSessions80 input{min-height:46px}
#appointmentFormModal .visit-section-label{text-transform:uppercase}
#appointmentFormModal .visit-zone-summary-btn{font-size:13px;min-height:50px}
#appointmentFormModal .visit-zone-summary-btn>div{text-transform:uppercase;font-weight:900}
#appointmentFormModal .visit-zone-summary-btn>span{text-transform:uppercase}
#appointmentFormModal .p80-zone-help{font-size:11px!important;color:var(--muted)!important;opacity:.72;margin-top:-5px;margin-bottom:8px;line-height:1.35}
#appointmentFormModal .visit-note::placeholder{text-transform:none}
#appointmentFormModal .visit-section input,
#appointmentFormModal .visit-section textarea{font-size:14px}
@media(max-width:700px){
  #appointmentFormModal .p80-top-grid{grid-template-columns:1fr 1fr}
  #appointmentFormModal .appt-kind-wrap{grid-column:1/-1}
  #appointmentFormModal #apptTotalSessions80{grid-column:auto}
}



/* Paso 82 corrección final: una sola barra de desplazamiento y sin recorte en Semana */
#weekView,
.week-view,
.week-grid-wrapper,
.week-grid-container,
.week-scroll,
.calendar-week,
.agenda-week,
[data-view="week"] {
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
  overflow-y: visible !important;
  overflow-x: visible !important;
}

/* La cuadrícula semanal debe crecer con todo su contenido */
.week-grid,
#weekGrid,
.calendar-week-grid {
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
}

/* Mantener los días visibles al bajar usando el scroll general de la página */
.week-days,
.week-header,
#weekDays,
#weekHeader,
.calendar-week-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 30 !important;
  background: #fff !important;
}

/* Evitar que un ancestro recorte el sticky de la semana */
#agendaContent,
.agenda-content,
.calendar-container,
.agenda-calendar,
#calendarContainer {
  max-height: none !important;
  overflow: visible !important;
}



/* Paso 82: un solo scroll de página.
   La fecha/período queda arriba y los días de Semana se pegan JUSTO debajo. */
#agendaPage .week-wrap{
  max-height:none !important;
  height:auto !important;
  overflow:visible !important;
  overflow-x:visible !important;
  overflow-y:visible !important;
}

/* El encabezado de período del Paso 81 ocupa aprox. 38px.
   Los días de la semana no deben quedar debajo de él. */
#agendaPage .week-head{
  position:sticky !important;
  top:38px !important;
  z-index:32 !important;
  background:#F8F5F0 !important;
  box-shadow:0 2px 0 var(--line) !important;
}
#agendaPage .week-head.today{background:var(--soft) !important}
#agendaPage .week-head.week-corner{
  left:0 !important;
  z-index:34 !important;
  box-shadow:4px 2px 8px rgba(0,0,0,.06) !important;
}

/* La columna de horas sigue fija a la izquierda, sin crear otro scroll. */
#agendaPage .week-hour{
  position:sticky !important;
  left:0 !important;
  z-index:20 !important;
}

/* Ningún ancestro de la semana debe recortar el sticky. */
#agendaPage .agenda-board81,
#agendaPage #agendaViewContent,
#agendaPage .agenda-content,
#agendaPage .week-grid{
  max-height:none !important;
  height:auto !important;
  overflow:visible !important;
}

@media(max-width:700px){
  #agendaPage .week-head{top:36px !important;}
}



/* Paso 83 corrección:
   los modales siempre quedan por encima de la agenda y sus encabezados sticky.
   No cambia lógica de citas, pendientes, paquetes ni contadores. */
.modal{
  z-index:1000 !important;
}



.abi-search{max-width:1100px;margin:12px auto 4px;padding:10px 16px;background:#fff;border-radius:15px;border:1px solid #E5DCD2}
.abi-search label{display:block;font-size:13px;font-weight:800;margin-bottom:6px;color:#765046}
.abi-search input{width:100%;border:1px solid #ddd4ce;border-radius:10px;padding:12px;font-size:16px;background:#fcfaf9}
.abi-search-results{display:grid;gap:5px;max-height:330px;overflow:auto}
.abi-search-item{display:flex;flex-direction:column;gap:2px;text-align:left;background:#fff;border:1px solid #F1EAE2;padding:9px 11px;border-radius:10px;cursor:pointer}
.abi-search-item span{font-size:12px;color:#4C433D}
.abi-search-empty{padding:10px;color:#4C433D;font-size:13px}
.abi-search.hidden{display:none!important}



/* PASO 35 */
.visit-group-card{display:block;min-width:0;max-width:100%;overflow:hidden}.visit-client-name{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.visit-service-row{margin-top:8px;padding-top:8px;border-top:1px solid var(--line);font-size:13px;cursor:pointer;min-width:0;overflow-wrap:anywhere}.visit-service-row span{display:block;color:var(--muted);font-size:11px;margin-top:3px}.visit-service-row:active{opacity:.7}.visit-extra-row{display:none}.visit-group-card.expanded .visit-extra-row{display:block}.visit-more{display:block;width:100%;margin-top:8px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--soft);font:inherit;font-size:12px;font-weight:900;color:var(--accent);cursor:pointer}.same-time-grid{min-width:0}.same-time-grid>*{min-width:0}
#clientInfoBtn{min-height:0}.package-item-card{cursor:pointer}



/* PASO 44 · creador de cita por bloques: modalidad → servicio → zona → nota */
#apptServiceStep>.appt-service-grid{display:none!important}
.visit-builder{border:1px solid var(--line);background:#fff;border-radius:16px;padding:13px;margin-bottom:12px}
.visit-builder h4{margin:0 0 12px;font-size:16px}.visit-section{margin-top:13px}.visit-section-label{font-size:12px;font-weight:900;margin-bottom:7px;color:var(--text)}
.visit-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.visit-choice-btn{border:1px solid var(--line);background:#fff;border-radius:13px;padding:11px 7px;min-height:52px;font-weight:800;font-size:12px;line-height:1.15;color:var(--text)}
.visit-choice-btn.active{border:2px solid var(--accent);background:var(--soft)}
.visit-selected-box{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);background:var(--soft);border-radius:13px;padding:10px 11px}
.visit-selected-box strong{font-size:13px}.visit-change-btn{border:0;background:#fff;border-radius:10px;padding:7px 9px;font-size:11px;font-weight:900;color:var(--accent);white-space:nowrap}
.visit-package-list{display:grid;gap:7px}.visit-package-btn{width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 11px}.visit-package-btn strong{display:block;font-size:13px}.visit-package-btn span{display:block;font-size:11px;color:var(--muted);margin-top:3px}.visit-package-btn.active{border:2px solid var(--accent);background:var(--soft)}
.visit-zone-summary-btn{width:100%;border:1px solid var(--line);background:#fff;border-radius:13px;padding:11px;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:10px;font-weight:800}.visit-zone-summary-btn span{font-size:12px;color:var(--muted);font-weight:700}.visit-note{width:100%;min-height:64px;resize:vertical}
.visit-draft-list{margin:10px 0}.visit-draft-item{border:1px solid var(--line);border-radius:12px;padding:10px;margin-top:8px;background:var(--soft);display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.visit-draft-item strong{font-size:13px}.visit-draft-item span{display:block;font-size:11px;color:var(--muted);margin-top:3px}.visit-draft-item em{display:block;font-size:11px;margin-top:5px;font-style:normal}.visit-draft-remove{border:0;background:transparent;color:#c51616;font-weight:900;font-size:18px;padding:0 4px}
.visit-add-line{width:100%;margin-top:12px}.visit-help{font-size:11px;color:var(--muted);margin-top:8px}
.visit-zone-sheet{position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:10050;display:flex;align-items:flex-end;justify-content:center;padding:12px}.visit-zone-sheet.hidden{display:none!important}.visit-zone-card{background:#fff;width:min(560px,100%);max-height:82vh;overflow:auto;border-radius:20px 20px 14px 14px;padding:15px}.visit-zone-card h3{margin:0 0 10px}.visit-zone-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.visit-zone-option{border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800}.visit-zone-option input{width:20px;height:20px;margin:0}.visit-zone-actions{display:grid;grid-template-columns:1fr 1.3fr;gap:8px;margin-top:13px}
#visitNewTotalWrap input{width:100%}
@media(max-width:520px){.visit-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.visit-choice-btn{font-size:11px;padding:10px 4px}.visit-zone-grid{grid-template-columns:1fr 1fr}}



/* ===== PASO 45 · ATENCIÓN LIMPIA + CONTINUACIÓN ===== */
#apptDetailActions{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:8px!important;
  width:100%!important;
  overflow:visible!important;
}
#apptDetailActions .btn{
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:10px 7px!important;
  white-space:normal!important;
  line-height:1.12!important;
  font-size:13px!important;
}
.appt-main-summary{
  border:1px solid var(--line);
  background:var(--soft);
  border-radius:14px;
  padding:12px;
  margin:8px 0 10px;
}
.appt-main-summary .mode{
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.35px;
  color:var(--muted);
}
.appt-main-summary .service{
  font-size:17px;
  font-weight:900;
  margin-top:4px;
}
.appt-main-summary .zones{
  font-size:13px;
  margin-top:5px;
}
.appt-main-summary .session{
  display:inline-block;
  margin-top:8px;
  padding:6px 9px;
  border-radius:999px;
  background:#fff;
  border:1px solid var(--line);
  font-size:12px;
  font-weight:900;
}
.appt-info-row{
  display:flex;
  justify-content:flex-end;
  margin:0 0 10px;
}
.appt-more-info-btn{
  border:1px solid var(--line);
  background:#fff;
  border-radius:999px;
  padding:6px 10px;
  font-size:11px;
  font-weight:900;
  color:var(--accent);
}
#apptMoreInfoModal .history-item{margin-top:8px}
@media(max-width:430px){
  #apptDetailActions{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  #apptDetailActions .btn{font-size:12px!important;padding:9px 5px!important}
}
/* fecha / hora / duración con aire suficiente */
.appt-schedule-grid{column-gap:14px!important;row-gap:12px!important}



/* ===== PASO 46 · CITA COMPUESTA: 1 SERVICIO + X MÁS / REALIZACIÓN SEGURA ===== */
.visit-group-card .visit-service-row.visit-extra-row{display:none!important}
.visit-group-card.expanded .visit-service-row.visit-extra-row{display:block!important}
.visit-count-alert{padding:12px 14px;border:1px solid var(--line);background:var(--soft);border-radius:14px;margin:10px 0 12px;font-weight:800}
.visit-complete-list{display:grid;gap:8px;margin:12px 0}
.visit-complete-option{display:flex;align-items:flex-start;gap:10px;padding:11px;border:1px solid var(--line);border-radius:12px;background:#fff}
.visit-complete-option input{width:20px;height:20px;margin-top:2px}
.visit-complete-option strong{display:block;font-size:13px}.visit-complete-option span{display:block;font-size:11px;color:var(--muted);margin-top:3px}
#apptDetailActions.multi-visit-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}
@media(max-width:520px){#apptDetailActions.multi-visit-actions{grid-template-columns:1fr 1fr!important}.visit-count-alert{font-size:13px}}



/* ===== PASO 67 · DETALLE + REALIZADO + PRÓXIMA CITA DIRECTA ===== */
#agendaEditBtn{display:none!important}
.appt-extra-toggle67{
  margin-top:10px;border:0;border-radius:12px;padding:9px 12px;
  background:#F1EAE2;color:#665449;font-weight:900;font-size:13px;width:100%;
}
.appt-extra-list67{display:none;margin-top:10px;gap:7px}
.appt-extra-list67.show{display:grid}
.appt-extra-item67{
  padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;
}
.appt-extra-item67 strong{display:block;font-size:13px}
.appt-extra-item67 span{display:block;font-size:11px;color:var(--muted);margin-top:3px}
#nextVisitModal67 .modal-card{max-width:520px}
.next-summary67{padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--soft);margin:10px 0 14px}
.next-summary67 .main{font-weight:900;font-size:16px}
.next-summary67 .sub{font-size:12px;color:var(--muted);margin-top:4px}
.next-actions67{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
@media(max-width:520px){.next-actions67{grid-template-columns:1fr 1fr}}



/* ===== PASO 69 · CONFIRMACIÓN PROPIA SÍ / NO / ATRÁS ===== */
#doneConfirm69 .modal-card{max-width:520px}
.done-question69{font-size:20px;font-weight:900;margin-bottom:12px}
.done-list69{display:grid;gap:8px;margin:10px 0 14px}
.done-item69{padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.done-item69 strong{display:block;font-size:13px}
.done-actions69{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:12px}
@media(max-width:520px){.done-actions69{grid-template-columns:1fr 1fr 1fr}}



/* ===== PASO 70 · NO = LISTA LIMPIA ===== */
#donePartialModal70 .modal-card{max-width:520px}
.partial-title70{font-size:20px;font-weight:900;margin-bottom:8px}
.partial-help70{font-size:13px;color:var(--muted);margin-bottom:12px}
.partial-list70{display:grid;gap:9px}
.partial-item70{
  display:flex;align-items:center;gap:12px;
  padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff;
}
.partial-item70 input{width:24px;height:24px;flex:0 0 auto}
.partial-item70 strong{display:block;font-size:14px}
.partial-item70 span{display:block;font-size:12px;color:var(--muted);margin-top:3px}
.partial-actions70{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}



/* ===== PASO 71 · PRÓXIMA CITA SEPARADA + PENDIENTES ABREN ===== */
#nextVisitModal71 .modal-card{max-width:560px}
.next-title71{font-size:22px;font-weight:900;margin:0 0 12px}
.next-client71{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;margin-bottom:10px}
.next-client71 strong{display:block;font-size:15px}
.next-client71 span{display:block;font-size:12px;color:var(--muted);margin-top:3px}
.next-summary71{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;margin:10px 0 12px}
.next-summary71 .main{font-weight:900;font-size:14px}
.next-summary71 .sub{font-size:12px;color:var(--muted);margin-top:4px}
.next-more71{margin-top:9px;border:0;background:transparent;padding:0;font-weight:900;color:inherit;cursor:pointer}
.next-list71{display:none;margin-top:8px;gap:7px}
.next-list71.show{display:grid}
.next-item71{padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:#fff}
.next-item71 strong{display:block;font-size:13px}.next-item71 span{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.next-actions71{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}



/* ===== PASO 78 · COLOR POR ESTADO DE LA CITA =====
   Pendiente = amarillo | Cita atendida/cerrada = verde.
   Los servicios no realizados no cambian el color general de la cita. */
.appt-card{border-left-color:#e0b52f}
.appt-card.pending{border-left-color:#e0b52f}
.appt-card.done{border-left-color:#2f7d5c}



/* ===== PASO 91 · DURACIÓN VISUAL REAL EN VISTA DÍA ===== */
.day-timeline.day-duration-aware{position:relative;overflow:visible}
.day-timeline.day-duration-aware .hour-slot{height:80px;min-height:80px;position:relative;overflow:visible}
.day-timeline.day-duration-aware .hour-body{position:relative;height:80px;min-height:80px;padding:0;display:block;overflow:visible}
.day-timeline.day-duration-aware .hour-empty{position:absolute;inset:0;min-height:0;margin-left:1px;pointer-events:none}
.day-duration-card{position:absolute;z-index:6;box-sizing:border-box;margin:0!important;min-height:0!important;overflow:hidden;padding:7px 10px;box-shadow:0 2px 7px rgba(0,0,0,.07)}
.day-duration-card strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
.day-duration-time{display:block;font-size:11px;font-weight:900;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.day-duration-meta{display:block;font-size:10px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.day-duration-card.day-short{padding-top:3px;padding-bottom:3px}
.day-duration-card.day-short .day-duration-meta{display:none}
.day-duration-card.day-very-short{padding:0 7px;display:flex;align-items:center}
.day-duration-card.day-very-short strong{width:100%;font-size:12px;line-height:16px}
.day-duration-card.day-very-short .day-duration-time,.day-duration-card.day-very-short .day-duration-meta{display:none}
@media(max-width:700px){
  .day-timeline.day-duration-aware .hour-slot{height:80px;min-height:80px}
  .day-timeline.day-duration-aware .hour-body{height:80px;min-height:80px}
  .day-duration-card{padding-left:7px;padding-right:7px}
}



#rescheduleTime12Hint83{
  margin-top:6px;
  font-size:13px;
  font-weight:800;
  color:var(--muted);
  letter-spacing:.02em;
}



#rescheduleTime{display:none!important}
.time12-84{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:6px}
.time12-84 select{width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff;font:inherit;font-weight:800}
#rescheduleTime12Hint83{display:none!important}
.reschedule-add84{margin-top:10px;width:100%}



.current-appt84{
  margin:8px 0 14px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--soft);
  font-weight:800;
  line-height:1.35;
}
.current-appt84 span{
  display:block;
  margin-top:3px;
  font-size:13px;
  color:var(--muted);
  font-weight:700;
}



/* Paso 87: selector de horario del negocio 7 a. m. - 7 p. m. */
.time87-native-hidden{
  position:absolute !important;
  opacity:0 !important;
  pointer-events:none !important;
  width:1px !important;
  height:1px !important;
}
.time87{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:8px;
  width:100%;
}
.time87 select{
  width:100%;
  min-width:0;
  padding:12px 10px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  color:var(--text);
  font:inherit;
  font-weight:800;
}
.time87 select:disabled{
  opacity:1;
  color:var(--text);
  background:var(--soft);
  cursor:default;
}
/* Ocultar el selector visual anterior de Reagendar; el valor interno se conserva. */
#rescheduleTimeUI84{display:none !important}



/* PASO 88 · TABLET
   Un mismo selector nativo para FECHA y HORA en todos los modales de citas.
   PC queda intacta. */
@media (hover:none) and (pointer:coarse){

  /* Ocultar los selectores artificiales de hora del Paso 87 en tablet. */
  .time87,
  #rescheduleTimeUI84{
    display:none !important;
  }

  /* Restaurar el input nativo de hora para que iPad abra su rueda táctil. */
  input[type="time"].time87-native-hidden{
    position:static !important;
    opacity:1 !important;
    pointer-events:auto !important;
    width:100% !important;
    height:48px !important;
    min-width:0 !important;
    margin:0 !important;
  }

  /* Fecha y hora iguales en Nueva cita, Reagendar y Próxima cita. */
  #appointmentModal input[type="date"],
  #appointmentModal input[type="time"],
  #rescheduleModal input[type="date"],
  #rescheduleModal input[type="time"],
  #nextVisitModal71 input[type="date"],
  #nextVisitModal71 input[type="time"]{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    height:48px !important;
    box-sizing:border-box !important;
    padding:0 12px !important;
    margin:0 !important;
    border:1px solid var(--line) !important;
    border-radius:12px !important;
    background:#fff !important;
    color:var(--text) !important;
    font:inherit !important;
    font-size:16px !important;
    font-weight:700 !important;
    line-height:48px !important;
    text-align:center !important;
    overflow:hidden !important;
    -webkit-appearance:auto !important;
    appearance:auto !important;
  }

  /* Safari/iPad: mantener el texto de fecha/hora dentro del cuadro y centrado. */
  #appointmentModal input[type="date"]::-webkit-date-and-time-value,
  #appointmentModal input[type="time"]::-webkit-date-and-time-value,
  #rescheduleModal input[type="date"]::-webkit-date-and-time-value,
  #rescheduleModal input[type="time"]::-webkit-date-and-time-value,
  #nextVisitModal71 input[type="date"]::-webkit-date-and-time-value,
  #nextVisitModal71 input[type="time"]::-webkit-date-and-time-value{
    width:100% !important;
    min-width:0 !important;
    text-align:center !important;
  }

  #appointmentModal input[type="date"]::-webkit-datetime-edit,
  #appointmentModal input[type="time"]::-webkit-datetime-edit,
  #rescheduleModal input[type="date"]::-webkit-datetime-edit,
  #rescheduleModal input[type="time"]::-webkit-datetime-edit,
  #nextVisitModal71 input[type="date"]::-webkit-datetime-edit,
  #nextVisitModal71 input[type="time"]::-webkit-datetime-edit{
    padding:0 !important;
    min-width:0 !important;
  }

  /* Evitar que Fecha se salga de su columna, especialmente en Próxima cita. */
  .appt-schedule-grid > div{
    min-width:0 !important;
  }
  #nextVisitModal71 .appt-schedule-grid{
    grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr) minmax(0,.8fr) !important;
  }
}



#doneVisit89 .modal-card{max-width:540px}
.done89-title{font-size:20px;font-weight:900;margin-bottom:10px}
.done89-list{display:grid;gap:8px;margin:10px 0 14px}
.done89-item{padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.done89-item strong{display:block;font-size:14px}
.done89-item span{display:block;font-size:12px;color:var(--muted);margin-top:3px}
.done89-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.partial89-item{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.partial89-item input{width:24px;height:24px;flex:0 0 auto}



/* ===== PASO 75 · PRÓXIMA CITA HEREDA FECHA Y HORA ===== */



/* ===== PASO 76 · REALIZADO PARCIAL CONSERVA LA CITA COMPLETA ===== */
.visit-service-row.not-done76 span{font-weight:700}



/* 81A: en el encabezado general solo se elimina el subtítulo pedido. */
#systemModeLabel{display:none!important}

/* 81B: la cabecera global no ocupa espacio dentro de la agenda. */
body.agenda81-open .topbar{display:none!important}
body.agenda81-open .app{padding-top:10px}

/* Cabecera propia de agenda: compacta. */
#agendaPage .page-head{margin:0 0 4px!important;min-height:0}
#agendaPage .page-head-left{width:100%}
#agendaPage .page-actions{display:none!important}
#agendaPage .page-head .btn-inline-soft{padding:8px 12px}

/* En Mi agenda, el dueño se muestra como texto simple, no como botón. */
#agendaPage .agenda-tabs{padding:0;margin:2px 0 5px;min-height:28px;align-items:center}
#agendaPage .agenda-owner81{font-weight:950;font-size:17px;letter-spacing:.5px;color:var(--text);text-transform:uppercase;padding:2px 1px}

/* La fecha navegada ya no se repite arriba. */
#agendaPage #agendaNavTitle{display:none!important}
#agendaPage .agenda-navbar{margin:2px 0 5px!important}
#agendaPage .agenda-nav-buttons{margin-bottom:5px!important}
#agendaPage .agenda-nav-buttons button{text-transform:uppercase;font-weight:900}
#agendaPage #agendaTodayBtn81{font-size:12px;line-height:1.15}

#agendaPage .agenda-view-switch{margin:0 0 5px!important}
#agendaPage .agenda-summary{margin:0!important}

/* Área blanca única de la agenda con encabezado de período pegajoso. */
#agendaPage .agenda-board81{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);margin-top:6px;overflow:visible}
#agendaPage #agendaStickyDate81{
  position:sticky;top:0;z-index:35;
  background:rgba(255,255,255,.97);backdrop-filter:blur(5px);
  border-bottom:1px solid var(--line);
  border-radius:18px 18px 0 0;
  min-height:38px;padding:10px 12px 8px;
  text-align:center;font-size:14px;font-weight:950;letter-spacing:.25px;
  text-transform:uppercase;color:var(--text)
}
#agendaPage .agenda-board81 > #agendaViewContent{border:0!important;box-shadow:none!important;border-radius:0 0 18px 18px!important;margin:0!important}
#agendaPage .agenda-content{padding-top:8px}

@media(max-width:700px){
  body.agenda81-open .app{padding:8px}
  #agendaPage .agenda-owner81{font-size:16px}
  #agendaPage #agendaStickyDate81{font-size:13px;min-height:36px;padding:9px 8px 7px}
  #agendaPage #agendaTodayBtn81{font-size:10.5px;padding-left:4px;padding-right:4px}
  #agendaPage .agenda-nav-buttons{gap:5px}
}



/* Solo vista SEMANA: los días permanecen visibles al bajar por las horas. */
#agendaPage .week-wrap{
  max-height:calc(100vh - 235px);
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  position:relative;
}
#agendaPage .week-head{
  position:sticky;
  top:0;
  z-index:22;
  background:#F8F5F0;
  box-shadow:0 2px 0 var(--line);
}
#agendaPage .week-head.today{background:var(--soft)}
#agendaPage .week-head.week-corner{
  left:0;
  z-index:25;
  box-shadow:4px 2px 8px rgba(0,0,0,.06);
}
#agendaPage .week-cell{
  cursor:pointer;
}
#agendaPage .week-cell:hover{
  background:#F8F5F0;
}
@media(max-width:700px){
  #agendaPage .week-wrap{max-height:calc(100vh - 220px)}
}



/* Quitamos el scroll interno que se agregó en la prueba 82.
   La semana vuelve a usar únicamente el scroll general de la página. */
#agendaPage .week-wrap{
  max-height:none !important;
  overflow:visible !important;
  -webkit-overflow-scrolling:auto !important;
}
#agendaPage .week-head{
  position:sticky;
  top:0;
  z-index:22;
}

/* ===== IDENTIDAD OFICIAL ISELA / SOLO PRESENTACIÓN ===== */
:where(h1,h2,h3,.page-title,.title,.agenda-date){
  font-family:var(--type-title);font-optical-sizing:auto;letter-spacing:-.02em;
  color:var(--wine);font-weight:700;
}
:where(.brand .sub){font-family:var(--type-italic);font-style:italic;font-size:17px;font-weight:600;color:var(--dusty-rose)}
:where(button,input,select,textarea,label,.client-name,.appt-card,.week-mini,.cal-day,.badge,.agenda-owner81,.session,.agenda-nav-buttons,.summary-pill){
  font-family:var(--type-ui);
}
:where(button,input,select,textarea){font-size:16px}
:where(button,.tile,.client-card,.user-card){transition:background-color .14s ease,border-color .14s ease,box-shadow .14s ease}
:where(button,input,select,textarea,a):focus-visible{outline:2px solid var(--wine);outline-offset:2px}
:where(.tile,.card,.client-card,.modal-card,.session){border-color:var(--line)}
:where(.tile:hover,.client-card:hover,.user-card:hover){border-color:var(--dusty-rose)}
:where(.btn-primary,.btn-inline-primary){background:var(--wine);color:#fff}
:where(.btn-soft,.btn-inline-soft){color:var(--wine)}
:where(.cal-day.today:not(.selected)){border-color:var(--dusty-rose)}
:where(.cal-day.selected,.appt-kind-choice.active){background:var(--wine);color:#fff;border-color:var(--wine)}
:where(.appt-card,.week-mini){border-radius:12px}
/* Contraste de estados: las citas realizadas, pendientes y canceladas se distinguen
   incluso si la persona no percibe diferencias de color. Se conservan sus etiquetas. */
@media(prefers-reduced-motion:reduce){
  :where(button,.tile,.client-card,.user-card){transition:none}
}


/* ================================================================
   ABI · IDENTIDAD VISUAL OFICIAL REFORZADA (15 OCT 2026)
   CAMBIOS EXCLUSIVAMENTE DE PRESENTACIÓN
   Paleta aprobada: vino, rosas, blanco cálido y gris cálido.
   No cambia citas, paquetes, respaldos, login ni sincronización.
   ================================================================ */
:root {
  --wine:#665449;
  --dusty-rose:#988477;
  --light-rose:#D8C9BB;
  --warm-white:#F8F5F0;
  --warm-gray:#4C433D;
  --bg:var(--warm-white);
  --text:var(--warm-gray);
  --muted:var(--warm-gray);
  --accent:var(--wine);
  --accent2:var(--dusty-rose);
  --line:#D9CABC;
  --soft:#F3ECE4;
  --shadow:0 9px 26px rgba(125,23,53,.075);
}

/* Encabezado claro con identidad de marca reconocible */
.topbar {
  padding:8px 2px 16px;
  border-bottom:2px solid var(--light-rose);
}
.topbar .title {
  color:var(--wine);
  font-family:var(--type-title);
  font-size:19px;
  letter-spacing:-.015em;
  font-weight:700;
}
.session {
  background:#F6F0E9;
  border-color:var(--light-rose);
  box-shadow:0 3px 11px rgba(125,23,53,.055);
}
.session .avatar {
  background:var(--wine);
  color:#fff;
}
.session button {color:var(--wine);font-weight:750}

/* Buscador destacado (preservamos estructura y comportamiento) */
#abiGlobalSearch.abi-search {
  max-width:1180px;
  background:linear-gradient(115deg,#EEE2D6 0%,#FAF6F1 75%);
  border:1px solid var(--light-rose);
  border-radius:18px;
  padding:15px 17px;
  margin:16px auto 18px;
  box-shadow:0 6px 20px rgba(125,23,53,.045);
}
#abiGlobalSearch label {
  color:var(--wine);
  font-size:13px;
  font-weight:800;
}
#abiGlobalSearch input {
  background:#fff;
  border:1px solid #B8A598;
  color:var(--text);
  min-height:49px;
  border-radius:12px;
}
#abiGlobalSearch input:focus {
  border-color:var(--wine);
  outline:2px solid rgba(125,23,53,.10);
}
#abiGlobalSearch .abi-search-item:hover {
  border-color:var(--dusty-rose);
  background:#FBF8F4;
}

/* Más presencia de Isela en los accesos principales */
#userDashboard.dashboard {row-gap:17px;column-gap:17px}
#userDashboard .tile {
  border:1px solid #D9C5B6;
  border-top:4px solid var(--dusty-rose);
  background:linear-gradient(145deg,#fff 65%,#FAF5EF 100%);
  box-shadow:0 9px 20px rgba(125,23,53,.07);
  padding:20px 21px;
}
#userDashboard .tile:nth-child(3n+1) {border-top-color:var(--wine)}
#userDashboard .tile:nth-child(3n+2) {border-top-color:var(--dusty-rose)}
#userDashboard .tile:nth-child(3n) {border-top-color:var(--light-rose)}
#userDashboard .tile:hover, #userDashboard .tile:focus-within {
  border-color:var(--dusty-rose);
  box-shadow:0 12px 24px rgba(125,23,53,.12);
}
#userDashboard .tile .icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:50px;
  height:50px;
  padding:7px;
  border-radius:15px;
  background:#F2E8DE;
  margin-bottom:10px;
  font-size:26px;
}
#userDashboard .tile h2 {
  font-family:var(--type-title);
  font-weight:700;
  color:var(--wine);
  font-size:20px;
}
#userDashboard .tile p {
  color:var(--warm-gray);
  line-height:1.5;
}

/* Estados operativos siguen teniendo códigos inequívocos */
.status {
  background:#FBF8F4;
  border:1px solid var(--light-rose);
}
.badge {background:#EAF5EE;color:#285E40}
.dot {background:#388657}
.page-title,.page-head h2,.client-name,.agenda-owner81 {
  color:var(--wine);
}
.client-card,.package-card,.calendar-panel,.day-panel {
  border-color:#DCCFC3;
}
.client-card:hover,.package-card:hover {
  border-color:var(--dusty-rose);
}
.client-avatar {background:#EADFD5;color:var(--wine)}

/* Botones: primario con vino, secundarios cálidos. */
.btn-primary,.btn-inline-primary {
  background:var(--wine);
  color:#fff;
}
.btn-primary:hover,.btn-inline-primary:hover {background:#5B483F}
.btn-soft,.btn-inline-soft {
  background:#F5EBE3;
  color:var(--wine);
  border-color:var(--light-rose);
}
.btn-soft:hover,.btn-inline-soft:hover {background:#EBDED2}
.agenda-view-btn.active,.agenda-tabs button.active {
  background:var(--wine);
  color:#fff;
  border-color:var(--wine);
}
.summary-pill {background:#F6F0E9;border-color:var(--light-rose);color:var(--wine)}
.agenda-board81,.agenda-content {border-color:#DCCFC3}
.cal-day.selected {background:var(--wine);color:#fff}
.cal-day.today:not(.selected) {border-color:var(--dusty-rose)}
/* Nunca reemplazar colores de cita realizada/cancelada/sin asistir. */
@media(max-width:560px){
  #abiGlobalSearch.abi-search {padding:12px;margin:10px auto 14px}
  #userDashboard .tile {padding:17px}
  .topbar .title {font-size:17px}
}

/* ABI UNA SOLA OPERADORA: sin espacio reservado para selector de personal. */
#appointmentFormModal .appt-kind-pro-grid.p80-top-grid{
  grid-template-columns:minmax(0,1fr) minmax(0,160px);
}
@media (max-width:600px){
  #appointmentFormModal .appt-kind-pro-grid.p80-top-grid{
    grid-template-columns:minmax(0,1fr);
  }
}

/* ABI — iconos lineales aprobados por Abigail (panel principal y buscador). */
#userDashboard .tile .icon {min-width:48px;width:48px;height:48px;border-radius:14px;background:rgba(166,94,112,.12);color:#665449;font-size:initial;}
#userDashboard .tile .icon .abi-line-icon {width:24px;height:24px;flex:none;}
#abiGlobalSearch label {display:flex;align-items:center;gap:8px;}
#abiGlobalSearch label .abi-line-icon {width:19px;height:19px;flex:none;color:#665449;}

/* V9 - Controles de agenda de línea fina */
.abi-mini-icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px;margin-right:5px;}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* V10: acciones secundarias del expediente agrupadas en un menú discreto. */
.client-more-actions{position:relative;flex:0 0 auto;align-self:stretch}
.client-more-actions>summary{list-style:none;display:flex;justify-content:center;align-items:center;min-width:45px;height:100%;min-height:44px;border:1px solid var(--line);border-radius:12px;cursor:pointer;font-size:26px;line-height:1;color:var(--text);background:white;font-weight:600}
.client-more-actions>summary::-webkit-details-marker{display:none}
.client-more-actions[open]>summary{background:#F9F5EF}
.client-more-menu{position:absolute;bottom:calc(100% + 7px);left:0;min-width:188px;padding:6px;background:white;box-shadow:0 8px 30px #0002;border:1px solid var(--line);border-radius:12px;z-index:30}
.client-more-menu button{display:block;width:100%;padding:11px 12px;background:transparent;border:0;border-radius:8px;color:var(--text);text-align:left;font:inherit;font-size:13px;cursor:pointer}
.client-more-menu button:hover,.client-more-menu button:focus-visible{background:#F7F1E9}
.client-more-menu .client-delete-option{color:#b42318}


/* Firma de marca en acceso */
.emb-signature{
  margin-top:22px;
  padding-top:16px;
  border-top:1px solid rgba(98,77,83,.18);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  text-align:center;
}
.emb-signature-kicker{
  font-size:11px;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(98,77,83,.74);
}
.emb-signature-brand{
  font-size:17px;
  font-weight:800;
  letter-spacing:.03em;
  color:#433B35;
}

/* V16: vista Día legible en celulares, sin alterar los registros ni la lógica. */
@media (max-width:700px){
  #agendaViewContent .day-timeline .hour-slot{display:block;min-width:0;padding:10px 0;}
  #agendaViewContent .day-timeline .hour-label{padding:0 0 6px;font-size:12px;line-height:1.35;}
  #agendaViewContent .day-timeline .hour-body{min-width:0;padding:0;gap:8px;}
  #agendaViewContent .day-timeline .minute-group{display:block;min-width:0;padding:3px 0;}
  #agendaViewContent .day-timeline .minute-time{display:block;text-align:left;padding:0 0 6px;font-size:13px;line-height:1.4;white-space:normal;}
  #agendaViewContent .day-timeline .same-time-grid{display:grid;grid-template-columns:minmax(0,1fr);width:100%;min-width:0;gap:7px;}
  #agendaViewContent .day-timeline .visit-group-card{box-sizing:border-box;min-width:0;width:100%;}
  #agendaViewContent .day-timeline .visit-client-name{white-space:normal;overflow-wrap:anywhere;text-overflow:clip;line-height:1.4;}
}

/* V17: línea horaria visible a la izquierda, con duración proporcional intacta.
   Restauramos la cuadrícula en móvil que la V16 había convertido en bloque. */
@media(max-width:700px){
  #agendaViewContent .day-timeline.day-duration-aware .hour-slot{
    display:grid;
    grid-template-columns:88px minmax(0,1fr);
    padding:0;
    height:80px;min-height:80px;
    align-items:stretch;
  }
  #agendaViewContent .day-timeline.day-duration-aware .hour-label{
    display:block;
    padding:9px 6px 0 2px;
    font-size:12px;
    line-height:1.2;
    white-space:nowrap;
    position:relative;
    z-index:2;
  }
  #agendaViewContent .day-timeline.day-duration-aware .hour-body{
    position:relative;
    display:block;
    height:80px;min-height:80px;
    padding:0;
    min-width:0;
    overflow:visible;
  }
}

/* ABI 1.2: firma permanente, discreta y accesible en cada pantalla y menú. */
body{padding-bottom:calc(35px + env(safe-area-inset-bottom, 0px))}
#embVersionFooter{
 position:fixed;bottom:0;left:0;right:0;z-index:20;
 padding:8px 10px calc(8px + env(safe-area-inset-bottom, 0px));
 background:rgba(250,247,243,.97);border-top:1px solid rgba(102,84,73,.18);
 color:#665449;text-align:center;font:500 10px/1.35 Montserrat,Arial,sans-serif;
 letter-spacing:.02em;pointer-events:none;
}
#embVersionFooter span{font-weight:700;letter-spacing:.035em;white-space:nowrap}
#abi12NotesWrap{margin:8px 0 12px}
#abi12EditModal .modal-card{max-height:calc(100dvh - 55px);overflow-y:auto;padding-bottom:20px}
#abi12EditModal .row-actions{margin-top:14px}
@media(max-width:420px){#embVersionFooter{font-size:9px;padding-left:4px;padding-right:4px}}

/* Búsqueda táctil: botón explícito, sin consultas ni llamadas adicionales. */
.abi-search-controls{display:flex;gap:8px;align-items:stretch}
.abi-search-controls input{min-width:0;flex:1}
#abiSearchTabletBtn{width:auto;white-space:nowrap;min-width:82px;touch-action:manipulation}
.abi-search-item{min-height:44px;touch-action:manipulation}
.abi-search-results{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
@media(max-width:420px){.abi-search-controls{gap:6px}#abiSearchTabletBtn{min-width:70px;padding:8px 10px;font-size:12px}}
