:root { --ink:#17393b; --muted:#72898a; --line:#dce8e6; --canvas:#f5f8f7; --white:#fff; --teal:#147b70; --teal-pale:#e5f4f1; --navy:#365c73; --brand-sidebar:#103d3d; --brand-accent:#c8e976; --shadow:0 10px 30px rgba(21,55,54,.07); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color:var(--ink); }
* { box-sizing:border-box; } body { margin:0; background:var(--canvas); } button,input,select { font:inherit; } button { cursor:pointer; } .app-shell { min-height:100vh; display:grid; grid-template-columns:252px minmax(0,1fr); }.sidebar { background:#103d3d; color:#eaf4f2; display:flex; flex-direction:column; padding:24px 15px 18px; }.brand { display:flex; gap:10px; align-items:center; color:white; text-decoration:none; padding:0 10px 32px; font-size:14px; font-weight:800; letter-spacing:.08em; }.brand small,.profile small,.location small,.professional-head small { display:block; font-size:11px; letter-spacing:0; font-weight:500; opacity:.72; margin-top:2px; }.brand-mark { width:32px; height:32px; display:grid; place-items:center; border-radius:10px; background:#c8e976; color:#19423f; letter-spacing:0; font-size:18px; }.sidebar nav { display:grid; gap:5px; }.nav-item { color:#c1d7d4; text-decoration:none; border:0; background:transparent; display:flex; align-items:center; gap:13px; padding:12px 12px; border-radius:9px; font-size:14px; text-align:left; }.nav-item span { width:18px; text-align:center; font-size:19px; }.nav-item.active,.nav-item:hover { color:white; background:rgba(255,255,255,.12); }.sidebar-footer { margin-top:auto; }.profile { width:100%; margin-top:18px; padding:11px; border:0; border-radius:10px; background:rgba(0,0,0,.16); color:#f3fbfa; display:grid; grid-template-columns:34px auto; column-gap:9px; align-items:center; text-align:left; }.profile span { width:34px; height:34px; display:grid; place-items:center; grid-row:span 2; border-radius:50%; background:#e8c95d; color:#36433c; font-size:11px; font-weight:800; }.profile small { font-size:10px; }.topbar { height:70px; background:var(--white); border-bottom:1px solid var(--line); padding:0 38px; display:flex; align-items:center; justify-content:space-between; }.location { display:flex; gap:8px; align-items:center; font-size:13px; }.location button { border:0;background:transparent;color:var(--muted);font-size:17px; }.location-dot { width:10px;height:10px;border-radius:50%;background:#7ab5a2; }.top-actions { display:flex;gap:9px;}.icon-button,.menu-button { width:36px;height:36px;border:1px solid var(--line);border-radius:9px;background:white;color:var(--ink);position:relative;font-size:21px; }.icon-button i { position:absolute;width:7px;height:7px;right:5px;top:5px;border-radius:50%;background:#e96362; }.menu-button{display:none}.agenda-page { padding:38px; max-width:1420px; margin:auto; }.page-title { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:28px; }.eyebrow { font-size:11px;letter-spacing:.12em;font-weight:800;color:var(--teal);margin:0 0 5px; }.page-title h1 { margin:0;font-size:27px;letter-spacing:-.7px; }.primary-button { background:var(--teal);color:white;border:0;border-radius:9px;padding:12px 17px;font-weight:750;box-shadow:0 5px 10px rgba(20,123,112,.15); }.calendar-tools { display:flex;align-items:center;justify-content:space-between;margin-bottom:15px; }.date-navigation { display:flex;align-items:center;gap:5px; }.date-navigation button,.view-picker button,.filter-chip { border:1px solid var(--line);background:white;color:#526a6c;border-radius:7px;padding:8px 12px;font-size:13px; }.date-navigation strong { margin-left:8px;font-size:15px; }.view-picker { background:#e8efee;padding:3px;border-radius:8px; }.view-picker button { border:0;background:transparent;padding:7px 15px; }.view-picker button.selected { background:white;color:var(--ink);box-shadow:0 1px 3px #ccd9d7; }.filters { display:flex;gap:8px;margin-bottom:18px;overflow:auto;padding-bottom:2px; }.filter-chip { white-space:nowrap; }.filter-chip.selected { border-color:#95ccc2;background:var(--teal-pale);color:#087465;font-weight:700; }.more-filter { margin-left:auto; }.agenda-card { border:1px solid var(--line);border-radius:13px;background:white;box-shadow:var(--shadow);overflow:hidden; }.agenda-head { display:grid;grid-template-columns:82px 1fr 1fr;border-bottom:1px solid var(--line); }.time-head { border-right:1px solid var(--line); }.professional-head { min-height:69px;display:flex;gap:9px;align-items:center;padding:12px 16px;border-right:1px solid var(--line);font-size:13px; }.professional-head:last-child{border:0}.avatar { width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:12px;color:white; }.avatar.teal{background:#5ba99e}.avatar.navy{background:var(--navy)}.agenda-body { height:490px;display:grid;grid-template-columns:82px 1fr 1fr;position:relative;overflow:hidden; }.times { position:relative;border-right:1px solid var(--line);font-size:11px;color:var(--muted); }.times span { display:block;height:81px;padding:0 10px;transform:translateY(-7px); }.column { position:relative;border-right:1px solid var(--line); }.column:last-child { border:0; }.slot-lines { position:absolute;inset:0;background:repeating-linear-gradient(to bottom, transparent 0,transparent 80px,#e8efed 81px); }.appointment { position:absolute;left:8px;right:8px;z-index:1;border-left:4px solid;border-radius:7px;padding:8px 9px;box-shadow:0 2px 7px rgba(25,61,61,.09);overflow:hidden;display:flex;flex-direction:column;gap:2px;font-size:12px; }.appointment b { font-size:13px; }.appointment small { white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }.appointment em { font-size:10px;font-style:normal;opacity:.72; }.appointment-time { font-size:10px;font-weight:700;opacity:.72; }.laser{background:#f2e8fa;border-color:#9a6bbe;color:#51376b}.facial{background:#e3f3ef;border-color:#45a692;color:#145a52}.medical{background:#fff0e2;border-color:#e69047;color:#844a1d}.consult{background:#eaf0f7;border-color:#6c8daa;color:#284b67}.agenda-legend { display:flex;align-items:center;gap:17px;padding:13px 6px;color:#647a7a;font-size:12px; }.agenda-legend span{display:flex;align-items:center;gap:5px}.legend-dot{width:8px;height:8px;border-radius:50%;}.laser-dot{background:#9a6bbe}.facial-dot{background:#45a692}.medical-dot{background:#e69047}.consult-dot{background:#6c8daa}.agenda-legend button{margin-left:auto;border:0;background:transparent;color:var(--teal);font-size:12px;font-weight:700}.appointment-form{border:0;padding:25px;width:min(92vw,430px);color:var(--ink)}dialog{border:0;border-radius:15px;box-shadow:0 20px 70px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(13,41,41,.4)}.form-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:20px}.form-header h2{margin:0;font-size:22px}.close-button{border:0;background:#edf3f2;width:32px;height:32px;border-radius:50%;font-size:21px}.appointment-form label{display:grid;gap:6px;font-size:12px;font-weight:700;margin:13px 0}.appointment-form input,.appointment-form select{border:1px solid #cfdfdc;border-radius:7px;padding:11px;background:white;font-weight:500;color:var(--ink);width:100%}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:25px}.secondary-button{border:1px solid var(--line);background:white;color:var(--ink);border-radius:9px;padding:11px 15px;font-weight:700}
@media (max-width: 760px) { .app-shell{display:block}.sidebar{display:none}.topbar{height:62px;padding:0 16px}.menu-button{display:block;font-size:18px}.location{margin-right:auto;margin-left:10px}.top-actions .icon-button:first-child{display:none}.agenda-page{padding:23px 14px}.page-title{align-items:flex-start;margin-bottom:22px}.page-title h1{font-size:23px}.primary-button{padding:10px 12px;font-size:13px}.calendar-tools{display:block}.date-navigation{justify-content:space-between;margin-bottom:12px}.date-navigation strong{font-size:14px}.view-picker{display:inline-flex}.filters{margin-bottom:13px}.more-filter{margin-left:0}.agenda-card{border-radius:10px;overflow-x:auto}.agenda-head,.agenda-body{min-width:560px}.agenda-body{height:475px}.agenda-legend{gap:10px;overflow:auto;white-space:nowrap}.agenda-legend button{display:none}.professional-head{padding:10px}.agenda-page .page-title .eyebrow{font-size:10px} }

/* Vista de recepción: empleados y recursos se seleccionan y muestran juntos. */
.filters { display:none; }
.agenda-workspace { display:grid; grid-template-columns:190px minmax(0,1fr); gap:14px; }
.agenda-selector { background:white; border:1px solid var(--line); border-radius:13px; padding:15px 13px; box-shadow:var(--shadow); align-self:start; }
.selector-title { display:flex; justify-content:space-between; align-items:center; font-size:13px; margin:0 2px 14px; }
.selector-title button { border:0; background:transparent; color:var(--teal); font-size:11px; font-weight:800; }
.agenda-selector fieldset { padding:13px 0 8px; margin:0; border:0; border-top:1px solid #e7eeee; }
.agenda-selector legend { font-size:10px; letter-spacing:.08em; font-weight:800; color:var(--muted); padding:0 0 6px; }
.agenda-selector label { display:flex; align-items:center; gap:7px; padding:6px 1px; font-size:12px; font-weight:650; }
.agenda-selector input { accent-color:var(--teal); margin:0; }
.swatch { width:9px; height:9px; border-radius:3px; margin-left:auto; }.teal-swatch{background:#5ba99e}.navy-swatch{background:var(--navy)}.pink-swatch{background:#cb7395}.coral-swatch{background:#e98a72}
.manage-list { border:0; border-top:1px solid #e7eeee; width:100%; background:transparent; color:var(--teal); font-size:11px; font-weight:800; text-align:left; padding:14px 0 0; }
.agenda-head,.agenda-body { grid-template-columns:82px repeat(4,minmax(180px,1fr)); }
.resource-head { background:#f9fbfb; }.resource-symbol { width:34px; height:34px; display:grid; place-items:center; border-radius:9px; background:#ffe8ef; color:#c85278; font-size:19px; }
@media (max-width:760px) { .agenda-workspace{display:block}.agenda-selector{margin-bottom:13px;display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.selector-title{grid-column:span 2;margin-bottom:4px}.manage-list{grid-column:span 2}.agenda-head,.agenda-body{min-width:790px} }

/* Espacio completo para la jornada laboral: se prioriza ver el máximo de horas. */
.agenda-page { max-width:none; margin:0; padding:24px 30px; }
.page-title { margin-bottom:17px; }.calendar-tools { margin-bottom:13px; }
.agenda-body { --day-height:max(720px, calc(100vh - 260px)); --hour-height:calc(var(--day-height) / 12); height:var(--day-height); }
.times span { height:var(--hour-height); }.slot-lines { background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--hour-height) - 1px),#e8efed var(--hour-height)); }
.agenda-workspace:has(.agenda-selector[hidden]) { grid-template-columns:190px minmax(0, 1fr); }
.agenda-selector[hidden] { display:none; }
.agenda-head [data-column][hidden], .agenda-body [data-column][hidden] { display:none !important; }
.times { display:grid; grid-template-rows:repeat(12, minmax(0, 1fr)); height:100%; }
.times span { height:auto; min-height:0; transform:translateY(-7px); }
.times span:last-child { position:absolute; left:0; bottom:0; transform:translateY(0); }

.agenda-side-panel { display:grid; align-content:start; gap:14px; }
.mini-calendar { background:white; border:1px solid var(--line); border-radius:13px; padding:12px 11px; box-shadow:var(--shadow); }
.mini-calendar-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:11px; text-transform:capitalize; font-size:12px; }.mini-calendar-header b{white-space:nowrap}.mini-calendar-header button { border:0; background:transparent; color:var(--teal); font-size:18px; line-height:1; padding:2px 5px; }
.weekdays,.calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); text-align:center; gap:2px; }.weekdays { color:var(--muted); font-size:9px; font-weight:800; margin-bottom:4px; }.calendar-days { grid-auto-rows:23px; }.calendar-days button { min-width:0; border:0; border-radius:5px; background:transparent; color:var(--ink); font-size:10px; }.calendar-days button:hover { background:#eaf5f2; }.calendar-days .selected-day { background:var(--teal); color:#fff; font-weight:800; }.calendar-days .today-day:not(.selected-day) { color:var(--teal); font-weight:800; outline:1px solid #a9d4cc; }
@media (max-width:760px) { .agenda-side-panel{display:block}.mini-calendar{margin-bottom:13px;max-width:350px}.agenda-selector{margin-bottom:13px} }

/* En una cita se priorizan siempre paciente y servicio, también en huecos cortos. */
.appointment { padding:5px 8px; gap:1px; }
.appointment { cursor:grab; }.appointment.dragging{opacity:.45;cursor:grabbing}.column.drop-target{background-color:#e5f4f1;box-shadow:inset 0 0 0 2px #5db5a5}
.appointment{position:absolute}.appointment.status-completed::after,.appointment.status-no-show::after{position:absolute;right:5px;bottom:4px;padding:2px 4px;border-radius:4px;background:rgba(255,255,255,.72);font-size:8px;font-weight:800}.appointment.status-completed::after{content:'Realizada'}.appointment.status-no-show::after{content:'No presentada'}.appointment.status-confirmed b::before,.appointment.status-pending b::before,.appointment.status-change-requested b::before,.appointment.status-cancelled b::before{content:'●';display:inline-block;margin-right:5px;font-size:11px}.appointment.status-confirmed b::before{color:#27a36e}.appointment.status-pending b::before{color:#d49a18}.appointment.status-change-requested b::before{color:#df8a31}.appointment.status-cancelled b::before{color:#ca5a55}.delete-link{border:0;background:transparent;color:#b6524b;font-size:11px;text-decoration:underline;padding:4px 0;margin-top:12px}.detail-actions{grid-template-columns:auto auto 1fr auto auto}.detail-form textarea{border:1px solid #cfdfdc;border-radius:7px;padding:10px;width:100%;resize:vertical}.cancel-choice+ .field-help{display:block}.admin-only{display:inline-block}
.appointment-time, .appointment em { display:none; }
.appointment-client-link{color:var(--teal);cursor:pointer;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.appointment-client-link:hover{color:#0b5f57}
.appointment b { line-height:1.15; }
.appointment small { white-space:normal; overflow:visible; text-overflow:clip; line-height:1.15; }
.personal-appointment{background:#edf1fc!important;border-color:#9aaee0!important;color:#3e527e!important}.personal-appointment::after{content:'PERSONAL';position:absolute;right:5px;bottom:4px;padding:2px 4px;border-radius:4px;background:rgba(255,255,255,.72);font-size:8px;font-weight:900;letter-spacing:.04em}
.locked-appointment-notice{margin:-3px 0 13px;padding:9px 10px;border-radius:7px;background:#fff4e7;color:#8a5a24;font-size:11px;font-weight:700;line-height:1.4}.locked-appointment-notice[hidden]{display:none}
.appointment.appointment-arrived{box-shadow:inset 0 0 0 2px #f1bb42,0 0 0 2px rgba(241,187,66,.16)}.appointment.appointment-arrived::before{content:'EN SALA';position:absolute;top:3px;right:5px;background:#fff1c9;color:#77520e;border-radius:4px;padding:2px 4px;font-size:8px;font-weight:900;letter-spacing:.04em}.arrival-button{width:100%;margin:-4px 0 12px;border-color:#e6c16b;background:#fff9e9;color:#805e17}.arrival-button:disabled{opacity:1;background:#edf5f3;border-color:#b8d4ce;color:#386b62}.arrival-alert{position:relative;max-width:390px;padding:30px;text-align:center}.arrival-alert h2{margin:10px 0 8px;font-size:24px}.arrival-alert p:not(.eyebrow){color:var(--muted);margin:0 auto 20px;line-height:1.45}.arrival-alert-icon{display:grid;place-items:center;width:50px;height:50px;margin:0 auto;border-radius:50%;background:#fff0d9;color:#e98932;font-size:34px;line-height:1;box-shadow:0 0 0 8px #fff8ec}.arrival-target{display:grid;gap:4px;margin:18px 0 21px;padding:12px;border-radius:8px;background:#edf7f5}.arrival-target small{font-size:10px;color:var(--teal);font-weight:850;letter-spacing:.09em}.arrival-target b{font-size:16px}.arrival-actions{display:grid;gap:8px}.arrival-alert .primary-button{width:100%}.arrival-actions .secondary-button{width:100%}.arrival-readonly{font-size:12px!important;background:#fff7e7;padding:10px;border-radius:7px;color:#755a25!important;margin-bottom:3px!important}#arrivalAlertDialog{border:0;border-radius:15px;padding:0;box-shadow:0 22px 70px rgba(20,52,50,.28)}#arrivalAlertDialog::backdrop{background:rgba(14,47,46,.58)}

/* Vista semanal */
.weekly-calendar { border:1px solid var(--line); border-radius:13px; background:white; box-shadow:var(--shadow); overflow:hidden; }.weekly-calendar[hidden],.weekly-workspace[hidden],.agenda-workspace[hidden],.agenda-legend[hidden]{display:none}
.weekly-workspace{display:grid;grid-template-columns:190px minmax(0,1fr);gap:14px}.week-selector{align-self:start;background:transparent;border:0;padding:0;box-shadow:none}.week-selector .mini-calendar{width:auto;margin:0 0 14px}.week-selector .selector-title{margin:0;padding:15px 13px 14px;background:white;border:1px solid var(--line);border-bottom:0;border-radius:13px 13px 0 0}.week-selector fieldset{margin:0;padding:13px 13px 8px;background:white;border-left:1px solid var(--line);border-right:1px solid var(--line)}.week-selector-help{margin:0;padding:14px 13px 15px;background:white;border:1px solid var(--line);border-top:0;border-radius:0 0 13px 13px;box-shadow:var(--shadow);color:var(--muted);font-size:12px;line-height:1.45}.week-appointment[hidden]{display:none}@media(max-width:760px){.weekly-workspace{display:block}.week-selector{margin-bottom:13px}}
.week-grid { display:grid; grid-template-columns:62px repeat(7,minmax(120px,1fr)); }.week-head { border-bottom:1px solid var(--line); }.week-head > * { min-height:61px; border:0; border-right:1px solid var(--line); background:white; color:var(--ink); font-size:16px; font-weight:800; }.week-head > span { background:#fbfdfc; }.week-head button small { display:block; color:var(--muted); font-size:10px; font-weight:700; margin-bottom:3px; }.week-head .current-week-day { background:var(--teal-pale); color:var(--teal); }.week-body { height:max(620px,calc(100vh - 280px)); }.week-times { position:relative; border-right:1px solid var(--line); color:var(--muted); font-size:10px;display:grid;grid-template-rows:repeat(12,1fr) }.week-times span { height:auto;display:block;padding:0 7px;transform:translateY(-6px); }.week-column { position:relative; border-right:1px solid var(--line); background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(2.083333% - 1px),rgba(82,118,116,.16) calc(2.083333% - 1px),rgba(82,118,116,.16) 2.083333%),repeating-linear-gradient(to bottom,transparent 0,transparent calc(4.166667% - 1px),rgba(82,118,116,.22) calc(4.166667% - 1px),rgba(82,118,116,.22) 4.166667%),repeating-linear-gradient(to bottom,white 0,white calc(8.333333% - 1px),#cadbd8 calc(8.333333% - 1px),#cadbd8 8.333333%); }.week-column:last-child { border:0; }.week-appointment { position:absolute; left:5px; right:5px; z-index:2; min-height:45px; padding:5px 6px; border-left:3px solid; border-radius:5px; overflow:hidden; text-align:left; }.week-availability{position:absolute;left:0;right:0;z-index:1;display:grid;place-items:start center;align-content:start;padding-top:10px;overflow:hidden;pointer-events:none;text-align:center;color:#486261;font-size:10px;font-weight:800;background:repeating-linear-gradient(135deg,rgba(103,119,121,.19) 0,rgba(103,119,121,.19) 8px,rgba(77,94,97,.27) 8px,rgba(77,94,97,.27) 16px)}.week-availability span{padding:3px 6px;border-radius:4px;background:rgba(248,250,250,.88)}.week-appointment b,.week-appointment small{display:block;font-size:10px;line-height:1.2}.week-appointment small{font-size:9px}@media(max-width:760px){.weekly-calendar{overflow-x:auto}.week-grid{min-width:720px}.week-body{height:720px}}
@media (max-width:760px) { .agenda-page{padding:18px 12px}.agenda-body{--day-height:max(720px, calc(100vh - 250px))}.page-title{margin-bottom:14px} }

/* Clientes y ficha */
.clients-page,.client-profile-page{padding:38px;max-width:1150px;margin:0 auto}.page-subtitle{color:var(--muted);margin:5px 0 0;font-size:14px}.client-toolbar{display:flex;gap:10px;margin:24px 0 12px}.client-search{display:flex;align-items:center;gap:8px;flex:1;max-width:520px;background:white;border:1px solid var(--line);border-radius:9px;padding:0 12px;color:var(--muted)}.client-search input{border:0;outline:0;padding:12px 0;width:100%;background:transparent}.client-summary{display:flex;gap:10px;margin-bottom:18px}.client-summary span{background:#eaf4f2;color:#426362;border-radius:7px;padding:7px 10px;font-size:12px}.client-summary b{color:var(--teal)}.client-list{background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden;box-shadow:var(--shadow)}.client-row{display:grid;grid-template-columns:44px 1fr auto 22px;align-items:center;gap:12px;width:100%;padding:15px 18px;border:0;border-bottom:1px solid var(--line);background:white;text-align:left;color:var(--ink)}.client-row:last-child{border:0}.client-row:hover{background:#f7fbfa}.client-row b{font-size:14px}.client-row small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.client-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:11px}.purple{background:#e9ddf7;color:#76549d}.mint{background:#dcf0ea;color:#287b69}.peach{background:#ffe7d8;color:#b96839}.client-tag{font-size:11px;color:var(--muted);background:#eef3f2;padding:5px 8px;border-radius:20px}.client-tag.confirmed{color:#167d6c;background:#e4f4ee}.client-tag.pending{color:#aa672b;background:#fff0df}.row-arrow{color:var(--muted);font-size:22px}.back-link{border:0;background:transparent;color:var(--teal);font-size:13px;font-weight:750;padding:0;margin-bottom:20px}.client-profile-header{display:flex;align-items:center;gap:14px}.client-profile-header h1{margin:0;font-size:28px}.client-profile-header p:not(.eyebrow){margin:4px 0;color:var(--muted);font-size:13px}.client-profile-header .secondary-button{margin-left:auto}.large{width:58px;height:58px;font-size:14px}.client-actions{display:flex;gap:9px;margin:22px 0}.profile-tabs{display:flex;gap:3px;border-bottom:1px solid var(--line);overflow:auto}.profile-tabs button{border:0;background:transparent;padding:11px 15px;color:var(--muted);white-space:nowrap}.profile-tabs .selected{color:var(--teal);font-weight:800;border-bottom:2px solid var(--teal)}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}.profile-card{background:white;border:1px solid var(--line);border-radius:12px;padding:18px;box-shadow:var(--shadow)}.profile-card h2{font-size:17px;margin:3px 0 8px}.profile-card p:not(.eyebrow){color:var(--muted);font-size:13px;margin:0 0 13px}.profile-card span{display:block;color:var(--muted);font-size:13px;margin-bottom:12px}.next-appointment{border-left:4px solid #9a6bbe}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#4aaa88;margin-right:5px}.profile-card dl{margin:0}.profile-card dl div{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #edf2f1;font-size:13px}.profile-card dt{color:var(--muted)}.profile-card dd{margin:0;font-weight:700}.clinical-card{background:#fbfdfd}.text-button{border:0;background:transparent;color:var(--teal);font-size:12px;font-weight:800;padding:0}@media(max-width:760px){.clients-page,.client-profile-page{padding:23px 14px}.client-summary{overflow:auto;white-space:nowrap}.client-toolbar{margin-top:17px}.client-row{grid-template-columns:38px 1fr 18px;padding:13px}.client-tag{display:none}.client-profile-header{align-items:flex-start;flex-wrap:wrap}.client-profile-header .secondary-button{margin-left:72px}.profile-grid{grid-template-columns:1fr}.profile-tabs{margin:0 -14px;padding:0 7px}}
.client-form{max-height:86vh;overflow:auto}.consent-box{margin-top:14px;padding:12px;border-radius:8px;background:#edf7f5;color:#315b59}.consent-box b{font-size:12px}.consent-box p{font-size:11px;line-height:1.4;margin:5px 0 9px}.consent-box label{font-weight:500;font-size:11px;display:flex;gap:7px;align-items:flex-start;margin:7px 0}.consent-box input{width:auto;margin-top:2px}
.waiting-list-card{margin-top:18px}.waiting-list-card>p:not(.eyebrow){color:var(--muted);font-size:13px;margin:0 0 14px}.waiting-count{border-radius:999px;background:#e8f4f1;color:var(--teal);padding:6px 9px;font-size:11px;font-weight:800}.waitlist-form{padding:14px;border:1px solid #d9e9e5;border-radius:10px;background:#f9fcfb}.waiting-list{display:grid;gap:0;margin-top:14px}.waiting-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 2px;border-bottom:1px solid #e8efed}.waiting-row:last-child{border-bottom:0}.waiting-row span{display:grid;gap:3px}.waiting-row b{font-size:13px}.waiting-row small{font-size:11px;color:var(--muted)}.waiting-row div{display:flex;align-items:center;gap:10px}.waiting-row .secondary-button{padding:8px 11px;font-size:11px}.waiting-row.has-suggestion{background:#f1faf7;margin:0 -8px;padding:12px 8px;border-radius:8px}.waiting-row strong{font-size:11px;color:var(--teal);margin-top:3px}.waiting-row strong button{border:1px solid #9ed3c7;background:#fff;color:var(--teal);font-weight:800;border-radius:5px;margin-left:4px;padding:3px 6px;font-size:11px}.waiting-alerts{margin:12px 0 0;padding:9px 11px;border-radius:7px;background:#fff3dc;color:#8a5b1a;font-size:12px;font-weight:750}.automation-center{margin-top:18px}.automation-center .section-heading{display:flex;justify-content:space-between;gap:18px}.automation-form{display:grid;gap:11px;margin-top:15px;padding:14px;border:1px solid #d9e9e5;border-radius:10px;background:#f9fcfb}.automation-form label{display:grid;gap:5px;font-size:11px;font-weight:800}.automation-form select,.automation-form input,.automation-form textarea{width:100%;border:1px solid #cfdfdc;border-radius:7px;background:#fff;padding:10px;color:var(--ink);font:inherit}.automation-form textarea{min-height:78px;resize:vertical}.automation-actions{display:flex;justify-content:space-between;align-items:center;gap:12px}.automation-actions .check-row{display:flex;align-items:center;gap:7px}.automation-actions input{width:auto}.automation-list{display:grid;gap:0;margin-top:15px}.automation-list>.eyebrow{margin:0}.automation-row{display:flex;justify-content:space-between;gap:14px;padding:12px 2px;border-bottom:1px solid #e8efed}.automation-row span{display:grid;gap:4px}.automation-row b{font-size:13px}.automation-row small{font-size:11px;color:var(--muted);line-height:1.35}.automation-row div{display:flex;align-items:center;gap:10px}.automation-row.is-disabled{opacity:.58}.inline-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}@media(max-width:760px){.waiting-row{align-items:flex-start;flex-direction:column}.waiting-row div{width:100%;justify-content:space-between}.arrival-alert{padding:25px 20px}.arrival-alert h2{font-size:21px}.automation-actions,.automation-row{align-items:flex-start;flex-direction:column}.automation-row div{width:100%;justify-content:space-between}}
.appointment-form textarea{border:1px solid #cfdfdc;border-radius:7px;padding:10px;background:white;font-weight:500;color:var(--ink);width:100%;resize:vertical}.field-help{font-size:10px;color:var(--muted);font-weight:500;line-height:1.3}.input-with-action{display:flex;gap:7px}.input-with-action input{flex:1}.input-with-action button{border:1px solid #9bcfc6;background:#f1faf8;color:var(--teal);border-radius:7px;padding:0 9px;font-size:11px;font-weight:750;white-space:nowrap}
.appointment-form [hidden]{display:none!important}
.variable-picker{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:10px 11px;border:1px solid #d4e6e1;border-radius:8px;background:#f5faf9}.variable-picker b{font-size:11px;color:var(--teal);margin-right:3px}.variable-picker button{border:1px solid #86cfc0;background:#fff;color:#167c6b;border-radius:5px;padding:4px 7px;font-size:10px;font-weight:800}.variable-picker button:hover{background:#e7f6f2}
.client-response-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.client-response-actions button{border:1px solid #b9d7d0;background:#fff;color:#176d60;border-radius:5px;padding:4px 6px;font-size:10px;font-weight:800}.client-response-actions button[data-client-appointment-response="cancelled"]{border-color:#e5aaa7;color:#a4413d}.client-response-actions button[data-client-appointment-response="change"]{border-color:#e5c28b;color:#8b5b13}
.appointment-response-center{margin-top:18px}.response-summary{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.response-summary span{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:7px 10px;background:#fff;color:var(--ink);font-size:.78rem;font-weight:800}.response-summary .pending{border-color:#f0d28d;background:#fff9e9}.response-summary .confirmed{border-color:#a8dec3;background:#effaf4}.response-summary .change-requested{border-color:#f1c59b;background:#fff5eb}.response-summary .cancelled{border-color:#ebb5b2;background:#fff2f1}.response-list{display:grid;gap:8px}.response-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}.response-list span{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--ink)}.response-list small{color:var(--muted);text-align:right}.appointment-status-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:0 0 9px;background:#d49a18}.appointment-status-dot.confirmed{background:#27a36e}.appointment-status-dot.pending{background:#d49a18}.appointment-status-dot.change-requested{background:#df8a31}.appointment-status-dot.cancelled{background:#ca5a55}
.appointment.status-confirmed b::before,.appointment.status-pending b::before,.appointment.status-change-requested b::before,.appointment.status-cancelled b::before{margin-right:6px;font-size:16px;line-height:.6;vertical-align:-1px}.waiting-availability{display:grid;gap:7px}.waiting-days,.waiting-times{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.waiting-days b{font-size:11px;color:var(--muted);margin-right:2px}.waiting-days label{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:800}.waiting-times label{display:grid;gap:3px;font-size:11px;font-weight:800}.waiting-times input{min-width:104px}.response-summary button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:7px 10px;background:#fff;color:var(--ink);font-size:.78rem;font-weight:800;cursor:pointer}.response-summary button.is-active{box-shadow:0 0 0 2px var(--teal);transform:translateY(-1px)}.response-summary button.pending{border-color:#f0d28d;background:#fff9e9}.response-summary button.confirmed{border-color:#a8dec3;background:#effaf4}.response-summary button.change-requested{border-color:#f1c59b;background:#fff5eb}.response-summary button.cancelled{border-color:#ebb5b2;background:#fff2f1}.appointment-status-dot{width:10px;height:10px;flex-basis:10px}
.waiting-availability{align-self:start;padding-top:1px}.waiting-availability>b{font-size:12px;color:var(--ink)}.waiting-days{display:grid;grid-template-columns:auto repeat(7,26px);align-items:center;gap:5px 7px}.waiting-days span{font-size:11px;color:var(--muted);font-weight:800}.waiting-days label{display:flex!important;flex-direction:column;justify-content:center;gap:3px;font-size:11px;line-height:1.05;text-align:center}.waiting-days input{margin:0;width:14px;height:14px}.waiting-times{margin-top:3px}.waiting-times label{width:93px}.waiting-times input{min-width:0;width:100%}.waiting-preference-note{display:grid!important;gap:5px!important;margin-top:5px!important;font-size:11px!important;font-weight:800!important}.waiting-preference-note input{width:100%}.waiting-row strong button{white-space:nowrap}

/* Bonos, disponibilidad y cierre de cita */
.bonus-card{border-left:4px solid #dcaa42}.bonus-alert{display:inline-block;background:#fff3d7;color:#8b6120;border-radius:6px;padding:7px 8px;font-size:11px;margin:2px 0 12px}.team-page{padding:38px;max-width:1280px;margin:0 auto}.availability-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:24px 0 17px}.availability-tabs button{border:0;background:transparent;padding:11px 15px;color:var(--muted);font-weight:650}.availability-tabs .selected{border-bottom:2px solid var(--teal);color:var(--teal)}.availability-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.salon-card,.employee-schedule-card,.year-card{background:white;border:1px solid var(--line);border-radius:13px;padding:18px;box-shadow:var(--shadow)}.card-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.card-heading h2{font-size:18px;margin:2px 0 0}.salon-card dl{margin:0}.salon-card dl div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #edf2f1;font-size:13px}.salon-card dt{color:var(--muted)}.salon-card dd{margin:0;font-weight:750;text-align:right}.closed-label{color:#af5149;background:#fbe8e6;border-radius:5px;padding:3px 6px;font-size:11px}.rule-note{font-size:12px;color:var(--muted);line-height:1.4;margin:13px 0 0}.workweek{display:grid;grid-template-columns:repeat(6,auto);gap:8px 6px;align-items:center;font-size:11px}.workweek span:nth-child(odd){font-weight:800;color:var(--teal);width:19px}.workweek span:nth-child(even){font-size:10px;color:var(--muted);line-height:1.3}.year-card{margin-top:14px}.year-months{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.year-months section{border:1px solid #e8efed;border-radius:8px;padding:10px}.year-months b{font-size:12px}.month-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:3px;margin-top:8px}.month-grid span{height:20px;display:grid;place-items:center;font-size:10px;border-radius:4px;background:#f5f8f7}.month-grid .vacation-day{background:#e7d8f5;color:#76549d;font-weight:800}.month-grid .closed-day{background:#f9dedd;color:#a85850;font-weight:800}.year-legend{display:flex;gap:17px;margin-top:16px;font-size:11px;color:var(--muted)}.year-legend span{display:flex;align-items:center;gap:5px}.year-legend i{width:8px;height:8px;border-radius:50%}.vacation-dot{background:#a77bca}.free-dot{background:#75a9c9}.closed-dot{background:#db857c}.detail-form{max-width:450px}.detail-summary{display:grid;gap:5px;padding:13px;border-radius:8px;background:#f1f7f6;margin-bottom:14px}.detail-summary b{font-size:15px}.detail-summary span{font-size:12px;color:#557070}.bonus-decision{display:flex!important;align-items:center;gap:8px;font-size:12px!important}.bonus-decision input{width:auto!important}.detail-actions{display:grid;grid-template-columns:auto 1fr auto auto}.danger-button{border:0;background:#c75f58;color:white;border-radius:9px;padding:11px 14px;font-weight:750}.cancel-choice{border:1px solid var(--line);border-radius:8px;margin:14px 0;padding:11px}.cancel-choice legend{font-size:12px;font-weight:800;padding:0 4px}.cancel-choice label{display:flex!important;gap:8px;align-items:flex-start;font-size:12px!important;font-weight:500!important}.cancel-choice input{width:auto!important;margin-top:2px}@media(max-width:760px){.team-page{padding:23px 14px}.availability-grid,.year-months{grid-template-columns:1fr}.year-months{gap:8px}.card-heading{gap:10px}.card-heading .primary-button,.card-heading .secondary-button{font-size:11px;padding:8px}.detail-actions{grid-template-columns:1fr 1fr}.detail-actions span{display:none}.detail-actions .danger-button{grid-column:span 2}}
.month-grid{grid-template-columns:repeat(7,1fr)}.month-grid i{height:20px}.month-grid button{height:20px;border:0;border-radius:4px;background:#f5f8f7;color:var(--ink);font-size:10px}.month-grid button:hover{outline:1px solid var(--teal)}.month-grid .free-day{background:#d9ebf5;color:#3f7290;font-weight:800}.profile-grid.single-panel{grid-template-columns:minmax(0,1fr)}.wide-panel{min-height:250px}.data-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.data-form label{display:grid;gap:5px;font-size:11px;font-weight:750}.data-form input,.data-form select,.wide-panel textarea,.message-compose input{border:1px solid #cfdfdc;border-radius:7px;padding:10px;background:white;width:100%;color:var(--ink)}.panel-list{display:grid;gap:0;margin:14px 0}.panel-list>div{display:grid;gap:4px;border-bottom:1px solid #edf2f1;padding:12px 0;font-size:13px}.panel-list span{margin:0}.empty-state{display:grid;gap:13px;place-items:start;min-height:140px;color:var(--muted);padding:20px 0}.message-history{display:grid;gap:8px;min-height:150px;padding:10px 0}.message-history span{width:fit-content;max-width:78%;border-radius:9px;padding:8px 10px;font-size:12px}.incoming{background:#edf1f1;color:var(--ink)}.outgoing{background:#d9f2ea;color:#176154;justify-self:end}.message-compose{display:flex;gap:8px}.gallery-grid{display:grid;grid-template-columns:160px 1fr;gap:12px;margin:15px 0}.gallery-grid button,.gallery-grid div{min-height:110px;border:1px dashed #a7c8c2;border-radius:9px;background:#f5fbfa;color:var(--teal);font-weight:750}.gallery-grid div{display:grid;place-items:center;color:var(--muted);font-size:12px;font-weight:500}.file-button{display:inline-block;border:1px solid var(--line);border-radius:8px;padding:10px 12px;color:var(--teal);font-size:12px;font-weight:750}.bonus-detail{display:grid;gap:8px;background:#fff8e9;border-radius:8px;padding:13px;margin:15px 0}.clinical-actions{display:flex;gap:9px;margin-top:15px}.salon-card[hidden],.employee-schedule-card[hidden],.year-card[hidden]{display:none}@media(max-width:760px){.data-form{grid-template-columns:1fr}.message-compose{display:grid;grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr}.clinical-actions{flex-wrap:wrap}}
.agenda-visibility-control{display:flex;align-items:center;gap:8px;margin-left:auto;margin-right:10px;font-size:12px;font-weight:750;color:#36524f}.agenda-visibility-control select{min-width:165px;border:1px solid #c9d9d6;border-radius:8px;background:#fff;padding:8px 28px 8px 10px;color:var(--ink)}.appointment-visibility-control{display:block;border:1px solid #d5e4e1;border-radius:9px;background:#f4f9f8;padding:11px 12px}.appointment-visibility-control>span{display:flex;align-items:center;gap:8px;font-weight:800}.appointment-visibility-control input{width:17px!important;height:17px;accent-color:var(--teal)}@media(max-width:760px){.agenda-visibility-control{width:100%;margin:8px 0}.agenda-visibility-control select{min-width:0;flex:1}}
.operational-list-visibility{display:grid;gap:5px;min-width:175px;color:#36524f;font-size:11px;font-weight:800}.operational-list-visibility select{width:100%;border:1px solid #c9d9d6;border-radius:8px;background:#fff;padding:8px 28px 8px 10px;color:var(--ink);font:inherit}.upcoming-appointments-heading>div:last-child{display:flex;align-items:flex-end;gap:9px;flex-wrap:wrap}.card-heading .operational-list-visibility{margin-left:auto}@media(max-width:760px){.operational-list-visibility{width:100%}.card-heading{flex-wrap:wrap}.card-heading .operational-list-visibility{margin-left:0}}
.client-toolbar{align-items:stretch;flex-wrap:wrap}.client-export-actions{display:flex;gap:8px;margin-left:auto}.client-export-actions[hidden]{display:none}.operational-list-visibility small{max-width:250px;color:var(--muted);font-size:9px;font-weight:600;line-height:1.35}@media(max-width:760px){.client-export-actions{width:100%;margin-left:0}.client-export-actions button{flex:1}}
.app-version{display:block;text-align:center;color:rgba(255,255,255,.55);font-size:10px;padding:2px 6px 8px}
.global-error-notice{position:fixed;right:24px;bottom:24px;z-index:99999;width:min(420px,calc(100vw - 32px));display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:16px 18px;border:1px solid #e8b6a9;border-left:5px solid #bd543d;border-radius:14px;background:#fff8f5;color:#43251f;box-shadow:0 16px 48px rgba(26,40,38,.2)}
.global-error-notice b,.global-error-notice span,.global-error-notice small{grid-column:1}.global-error-notice span{font-size:13px}.global-error-notice small{color:#755d56}.global-error-notice button{grid-column:2;grid-row:1/4;align-self:start;border:0;background:transparent;font-size:22px;color:inherit;cursor:pointer}
.sync-status{font-size:12px;font-weight:700;padding:7px 10px;border-radius:999px;background:#edf7f4;color:#176f65}.sync-status.loading,.sync-status.pending{background:#fff6dc;color:#755d16}.sync-status.offline{background:#f3f5f5;color:#596867}.sync-status.error{background:#fff0eb;color:#a5412d}.sync-status.conflict{background:#fff0d8;color:#8a4b0f;box-shadow:0 0 0 2px #f3c886 inset}.sync-status.synced{background:#edf7f4;color:#176f65}
.sync-conflict-dialog{width:min(760px,94vw);max-width:none;padding:0;overflow:hidden}.sync-conflict-dialog>section{padding:24px}.sync-conflict-dialog header{display:flex;justify-content:space-between;gap:20px}.sync-conflict-dialog h2{margin:2px 0 6px;font-size:24px}.sync-conflict-dialog header p:not(.eyebrow){margin:0;color:var(--muted)}.sync-conflict-summary{display:flex;justify-content:space-between;gap:16px;margin:18px 0 10px;padding:12px 14px;border-radius:9px;background:#edf7f5}.sync-conflict-summary span{color:var(--muted);font-size:11px}.sync-conflict-table-wrap{max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:10px}.sync-conflict-dialog table{width:100%;border-collapse:collapse;font-size:12px}.sync-conflict-dialog th,.sync-conflict-dialog td{padding:10px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.sync-conflict-dialog thead th{position:sticky;top:0;background:#f7faf9}.sync-conflict-dialog tbody th{width:22%;color:var(--muted)}.sync-conflict-warning{display:grid;gap:4px;margin-top:13px;padding:11px 13px;border-left:4px solid #e5b64f;background:#fff8e7;font-size:11px}.sync-conflict-dialog footer{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.sync-conflict-generic{padding:16px;border:1px dashed var(--line);border-radius:9px;color:var(--muted)}@media(max-width:650px){.sync-conflict-summary{flex-direction:column}.sync-conflict-dialog footer{display:grid}.sync-conflict-dialog footer button{width:100%}}
