.sanarte-agenda, .sanarte-agenda * { box-sizing: border-box; }
.sanarte-agenda .sanarte-agenda__trigger, .sanarte-button { appearance: none; border: 0; border-radius: 6px; background: #c9795f; color: #fff; cursor: pointer; font-weight: 700; min-height: 44px; padding: 0 18px; display: inline-flex; align-items: center; justify-content: center; line-height: 1; box-sizing: border-box; }
.sanarte-agenda .sanarte-agenda__trigger { gap: 8px; }
.sanarte-agenda .sanarte-agenda__trigger:hover, .sanarte-button:hover { background: #ad634c; color: #fff; }
/* Reemplaza los resaltados azules del navegador/tema por la paleta pastel dentro del modal */
.sanarte-agenda ::selection { background: #f7d7ca; color: #5b362a; }
.sanarte-agenda button { -webkit-tap-highlight-color: transparent; }
.sanarte-agenda button:focus, .sanarte-agenda input:focus, .sanarte-agenda select:focus { outline: none; }
.sanarte-agenda button:focus-visible, .sanarte-agenda input:focus-visible, .sanarte-agenda select:focus-visible { outline: 2px solid #c9795f; outline-offset: 2px; }
.sanarte-agenda .sanarte-therapist-tile:focus-visible { outline: none; border-color: #c9795f; box-shadow: 0 0 0 3px rgba(201, 121, 95, .32), 0 16px 34px rgba(91, 54, 42, .12); }
.sanarte-agenda .sanarte-modality-choice:focus-visible { outline: none; border-color: #c9795f; box-shadow: 0 0 0 3px rgba(201, 121, 95, .28); }
.sanarte-agenda .sanarte-step input:focus-visible { outline: none; border-color: #c9795f; box-shadow: 0 0 0 3px rgba(201, 121, 95, .18); }
.sanarte-modal { display: none; position: fixed; inset: 0; z-index: 99999; }
.sanarte-modal.is-open { display: block; }
.sanarte-modal__overlay { position: absolute; inset: 0; background: rgba(17, 24, 39, .52); }
.sanarte-modal__dialog { position: relative; width: min(960px, calc(100vw - 28px)); max-height: calc(100vh - 20px); overflow: auto; margin: 3vh auto 0; background: linear-gradient(rgba(255, 250, 247, .74), rgba(255, 250, 247, .8)), url("../../../admin/assets/img/fondo.jpg") center / cover no-repeat; border: 1px solid #f2d4c7; border-radius: 8px; box-shadow: 0 24px 70px rgba(91, 54, 42, .2); padding: 22px; color: #1f2933; }
.sanarte-modal__close { position: absolute; top: 14px; right: 14px; display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; padding: 0; border: 1px solid #f3d9d0; border-radius: 50%; background: #fdf3f0; color: #c9795f; cursor: pointer; line-height: 1; transition: background .15s ease, color .15s ease, transform .15s ease; }
.sanarte-modal__close:hover { background: #f2a6a0; border-color: #f2a6a0; color: #fff; transform: scale(1.06); }
.sanarte-modal__close:focus-visible { outline: 2px solid #c9795f; outline-offset: 2px; }
.sanarte-modal__head p { margin: 0 0 5px; color: #c9795f; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.sanarte-modal__head h2 { margin: 0 0 14px; font-size: 24px; line-height: 1.12; color: #5b362a; }
.sanarte-step { display: none; }
.sanarte-step.is-active { display: block; }
.sanarte-step label { display: block; margin: 14px 0 7px; color: #394150; font-weight: 700; }
.sanarte-step select, .sanarte-step input { width: 100%; min-height: 44px; border: 1px solid #cbd5df; border-radius: 6px; padding: 0 12px; background: #fff; color: #111827; }
.sanarte-therapist-intro { margin: 0 0 16px; max-width: 680px; }
.sanarte-therapist-intro { transition: opacity .22s ease, transform .22s ease; }
.sanarte-therapist-intro span { display: block; color: #b66d55; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.sanarte-therapist-intro p { margin: 6px 0 0; color: #5d6876; font-size: 14px; line-height: 1.45; }
.sanarte-therapist-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; transition: opacity .24s ease, transform .24s ease, filter .24s ease; }
.sanarte-therapist-loading { grid-column: 1 / -1; min-height: 120px; display: grid; place-items: center; border: 1px solid #e4e9ef; border-radius: 8px; background: #fbfaf8; color: #667085; font-weight: 700; }
.sanarte-therapist-tile { appearance: none; display: flex; flex-direction: column; align-items: center; min-height: 300px; overflow: hidden; border: 1px solid #f0d6ca; border-radius: 14px; background: linear-gradient(180deg, #fffaf7, #fff3ec); color: #4a3a33; cursor: pointer; padding: 0 0 18px; text-align: center; box-shadow: 0 10px 26px rgba(91, 54, 42, .07); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease; -webkit-tap-highlight-color: transparent; }
.sanarte-therapist-tile:hover { border-color: #d99d87 !important; background: linear-gradient(180deg, #fff6f0, #ffe9dd) !important; color: #4a3a33 !important; box-shadow: 0 16px 34px rgba(201, 121, 95, .17); transform: translateY(-3px); }
.sanarte-therapist-tile.is-selected { border-color: #c9795f !important; box-shadow: 0 0 0 3px rgba(201, 121, 95, .24), 0 16px 34px rgba(91, 54, 42, .1); }
.sanarte-therapist-tile__photo { display: grid; place-items: center; width: 108px; height: 108px; margin: 22px auto 12px; border-radius: 50%; overflow: hidden; background: radial-gradient(circle at 32% 26%, #fde4d3, #f3c7b8 70%, #e7b3a1); color: #a85f47; font-size: 40px; font-weight: 800; box-shadow: 0 0 0 4px #fff, 0 0 0 5px #f0d6ca, 0 12px 24px rgba(91, 54, 42, .16); }
.sanarte-therapist-tile__photo img { width: 100%; height: 100%; object-fit: cover; }
.sanarte-therapist-tile__body { display: flex; flex: 1; flex-direction: column; align-items: center; width: 100%; padding: 0 16px; }
.sanarte-therapist-tile__body strong { color: #4a2f25; font-size: 17px; line-height: 1.2; }
.sanarte-therapist-tile__body > span { margin-top: 5px; color: #b66d55; font-size: 13px; font-weight: 800; }
.sanarte-therapist-tile__body p { display: -webkit-box; min-height: 58px; margin: 10px 0 14px; overflow: hidden; color: #6b5b52; font-size: 13px; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.sanarte-therapist-tile__meta { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; margin-top: auto; }
.sanarte-therapist-tile__meta span:first-child { color: #4a2f25; font-size: 14px; font-weight: 800; line-height: 1.3; }
.sanarte-therapist-tile__meta span:last-child { border-radius: 999px; background: linear-gradient(135deg, #fbd4b7, #f2a6a0); color: #6a3a2b; font-size: 12px; font-weight: 800; padding: 6px 12px; white-space: nowrap; }
.sanarte-modality-panel { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; margin-top: 16px; padding: 18px; border: 1px solid #f0d2c3; border-radius: 8px; background: #fff3ec; animation: sanarte-modality-enter .34s ease both; }
.sanarte-modality-panel[hidden] { display: none; }
.sanarte-modality-panel > strong { flex: 1 0 100%; color: #111827; font-size: 14px; }
.sanarte-selected-therapist { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex: 1 0 100%; padding: 12px 14px; border: 1px solid #f0d2c3; border-radius: 8px; background: #fffaf7; }
.sanarte-selected-therapist span { display: block; color: #9c8277; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.sanarte-selected-therapist strong { display: block; margin-top: 3px; color: #2d2521; font-size: 17px; }
.sanarte-change-therapist { border: 1px solid #e5b6a3; border-radius: 999px; background: #fff; color: #9f5c47; cursor: pointer; font-size: 12px; font-weight: 800; padding: 7px 11px; }
.sanarte-change-therapist:hover { background: #fae4d9; }
.sanarte-modality-choice { appearance: none; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex: 1 1 210px; min-height: 64px; border: 1px solid #e9baa7; border-radius: 8px; background: #fffaf7; color: #9f5c47; cursor: pointer; padding: 13px 15px; text-align: left; box-shadow: 0 8px 20px rgba(91, 54, 42, .05); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease; }
.sanarte-modality-choice:hover, .sanarte-modality-choice.is-selected { border-color: #c9795f; background: #fae4d9; box-shadow: 0 12px 28px rgba(91, 54, 42, .11); transform: translateY(-1px); }
.sanarte-modality-choice span { font-size: 15px; font-weight: 800; }
.sanarte-modality-choice strong { color: #111827; font-size: 14px; white-space: nowrap; }
.sanarte-agenda.is-choosing-modality .sanarte-therapist-intro, .sanarte-agenda.is-choosing-modality .sanarte-therapist-grid { opacity: 0; transform: translateY(-10px) scale(.985); filter: blur(2px); pointer-events: none; }
.sanarte-agenda.is-therapist-grid-hidden .sanarte-therapist-intro, .sanarte-agenda.is-therapist-grid-hidden .sanarte-therapist-grid { display: none; }
.sanarte-calendar { position: relative; margin-top: 4px; border: 1px solid #d9e1e8; border-radius: 8px; overflow: hidden; background: #fff; }
.sanarte-calendar__bar { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 52px; padding: 10px 12px; border-bottom: 1px solid #e6ebf0; background: #f8fafb; }
.sanarte-calendar__eyebrow { display: block; color: #667085; font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.sanarte-calendar__bar strong { display: block; margin-top: 2px; color: #111827; font-size: 16px; }
.sanarte-calendar__nav { display: flex; gap: 6px; align-items: center; }
.sanarte-calendar__nav button { min-width: 34px; height: 32px; border: 1px solid #cfd8e2; border-radius: 6px; background: #fff; color: #26333f; cursor: pointer; font-size: 12px; font-weight: 800; }
.sanarte-calendar__nav button:hover { border-color: #2f5d50; color: #2f5d50; }
.sanarte-calendar__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-bottom: 1px solid #e6ebf0; }
.sanarte-calendar__day-head { min-height: 30px; padding: 8px 6px 0; border-right: 1px solid #e6ebf0; border-bottom: 1px solid #e6ebf0; background: #fff; color: #667085; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-align: center; text-transform: uppercase; }
.sanarte-calendar__day-head:nth-child(7n) { border-right: 0; }
.sanarte-calendar__day { appearance: none; display: flex; flex-direction: column; justify-content: space-between; gap: 5px; min-height: 64px; border: 0; border-right: 1px solid #e6ebf0; border-bottom: 1px solid #e6ebf0; background: #fff; color: #1f2933; cursor: pointer; padding: 6px 8px; text-align: left; }
.sanarte-calendar__day:nth-child(7n) { border-right: 0; }
.sanarte-calendar__day strong { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; font-size: 13px; }
.sanarte-calendar__day-status { overflow: hidden; color: #7a8491; font-size: 10px; font-weight: 800; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.sanarte-calendar__day:hover:not(:disabled), .sanarte-calendar__day.is-selected { background: #fff0e9; box-shadow: inset 0 0 0 2px rgba(201, 121, 95, .28); }
.sanarte-calendar__day.is-today strong { background: #c9795f; color: #fff; }
.sanarte-calendar__day.has-slots .sanarte-calendar__day-status { color: #2f5d50; }
.sanarte-calendar__day.is-outside-month, .sanarte-calendar__day.is-past, .sanarte-calendar__day:disabled { background: #f3f5f7; color: #9aa3af; cursor: not-allowed; }
.sanarte-calendar__day.is-outside-month strong, .sanarte-calendar__day.is-past strong, .sanarte-calendar__day:disabled strong { color: #a3adb8; }
.sanarte-calendar__slots { display: none; position: absolute; left: 50%; top: 55%; z-index: 5; width: min(520px, calc(100% - 32px)); max-height: min(430px, calc(100% - 42px)); overflow: auto; transform: translate(-50%, -50%); border: 1px solid #e5c0b0; border-radius: 8px; background: #fffaf7; box-shadow: 0 22px 60px rgba(35, 31, 29, .24); padding: 18px; }
.sanarte-calendar__slots.is-open { display: block; animation: sanarte-slots-pop .18s ease both; }
.sanarte-calendar__slots-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 16px; padding-bottom: 14px; border-bottom: 1px solid #f0d2c3; }
.sanarte-calendar__slots-head span { display: block; color: #b66d55; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.sanarte-calendar__slots-head strong { display: block; margin-top: 4px; color: #111827; font-size: 22px; line-height: 1.1; }
.sanarte-calendar__slots-head small { display: block; margin-top: 7px; color: #667085; font-size: 13px; font-weight: 700; }
.sanarte-calendar__slots-close { display: grid; place-items: center; flex: 0 0 auto; width: 34px; height: 34px; border: 1px solid #e0c2b5; border-radius: 50%; background: #fff; color: #6b4a3d; cursor: pointer; font-size: 22px; line-height: 1; }
.sanarte-calendar__slots-close:hover { background: #fae4d9; color: #9f5c47; }
.sanarte-calendar__slot-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: 10px; }
.sanarte-calendar__event { min-height: 42px; border: 1px solid #f0c9b9; border-radius: 6px; background: #fff; color: #9f5c47; cursor: pointer; font-size: 14px; font-weight: 800; padding: 8px 10px; text-align: center; }
.sanarte-calendar__event:hover, .sanarte-calendar__event.is-selected { border-color: #c9795f; background: #c9795f; color: #fff; }
.sanarte-calendar__empty { display: block; border: 1px dashed #e7c6b8; border-radius: 8px; background: #fff; color: #667085; font-size: 14px; font-weight: 700; line-height: 1.4; padding: 18px; text-align: center; }
.sanarte-modal__message { min-height: 18px; margin-top: 10px; color: #9b2c2c; font-weight: 600; }
.sanarte-modal__message.is-ok { color: #b66d55; }
.sanarte-modal__actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 12px; }
.sanarte-button--ghost { background: #eef2f5; color: #1f2933; }
.sanarte-button--ghost:hover { background: #dfe6ed; color: #111827; }
@keyframes sanarte-modality-enter {
	from { opacity: 0; transform: translateY(14px) scale(.985); }
	to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes sanarte-slots-pop {
	from { opacity: 0; transform: translate(-50%, -46%) scale(.96); }
	to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
@media (max-width: 900px) {
	.sanarte-therapist-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.sanarte-modal__dialog { width: calc(100vw - 12px); max-height: calc(100vh - 12px); margin-top: 6px; padding: 14px; }
	.sanarte-modal__close { top: 10px; right: 10px; width: 32px; height: 32px; }
	.sanarte-modal__head p { font-size: 10px; }
	.sanarte-modal__head h2 { margin-bottom: 10px; padding-right: 34px; font-size: 20px; }
	.sanarte-therapist-grid { grid-template-columns: 1fr; }
	.sanarte-therapist-tile { min-height: 0; }
	.sanarte-therapist-tile__photo { width: 92px; height: 92px; margin-top: 18px; font-size: 34px; }
	.sanarte-calendar__bar { align-items: stretch; flex-direction: column; gap: 8px; min-height: 0; padding: 9px; }
	.sanarte-calendar__bar strong { font-size: 15px; }
	.sanarte-calendar__nav { justify-content: space-between; }
	.sanarte-calendar__nav button { flex: 1; min-width: 0; height: 32px; }
	.sanarte-calendar__day-head { min-height: 26px; padding: 7px 1px 0; font-size: 9px; }
	.sanarte-calendar__day { min-height: 54px; padding: 4px; }
	.sanarte-calendar__day strong { width: 22px; height: 22px; font-size: 12px; }
	.sanarte-calendar__day-status { font-size: 9px; }
	.sanarte-calendar__slots { position: fixed; top: auto; bottom: 10px; width: calc(100vw - 20px); max-height: min(68vh, 430px); padding: 14px; transform: translateX(-50%); }
	.sanarte-calendar__slots.is-open { animation: sanarte-slots-sheet .18s ease both; }
	.sanarte-calendar__slots-head { margin-bottom: 12px; padding-bottom: 12px; }
	.sanarte-calendar__slots-head strong { font-size: 18px; }
	.sanarte-calendar__slot-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
	.sanarte-calendar__event { min-height: 38px; font-size: 12px; padding: 6px; }
	.sanarte-calendar__empty { padding: 14px; font-size: 13px; }
	.sanarte-modal__actions { flex-direction: column-reverse; }
	.sanarte-button { width: 100%; }
}
@keyframes sanarte-slots-sheet {
	from { opacity: 0; transform: translate(-50%, 14px) scale(.98); }
	to { opacity: 1; transform: translate(-50%, 0) scale(1); }
}

.sanarte-portal, .sanarte-portal * { box-sizing: border-box; }
/* Linea grafica: reemplaza el azul del navegador/tema por la paleta pastel en el portal
   (accent-color pinta checkboxes, radios, inputs de fecha/hora y sliders en terracota) */
.sanarte-portal { accent-color: #c9795f; }
.sanarte-portal ::selection { background: #f7d7ca; color: #5b362a; }
.sanarte-portal a, .sanarte-portal button, .sanarte-portal input, .sanarte-portal select, .sanarte-portal textarea { -webkit-tap-highlight-color: transparent; }
.sanarte-portal a:focus, .sanarte-portal button:focus, .sanarte-portal input:focus, .sanarte-portal select:focus, .sanarte-portal textarea:focus { outline: none; }
.sanarte-portal a:focus-visible, .sanarte-portal button:focus-visible, .sanarte-portal input:focus-visible, .sanarte-portal select:focus-visible, .sanarte-portal textarea:focus-visible { outline: 2px solid #c9795f; outline-offset: 2px; }
.sanarte-portal { position: relative; isolation: isolate; min-height: 100vh; overflow: hidden; padding: 32px 18px; background: #f8faf6; color: #1f2933; font-family: Arial, sans-serif; }
.sanarte-portal::before { content: ""; position: fixed; inset: -7%; z-index: -2; background: url("../../../admin/assets/img/fondo.jpg") center / cover no-repeat; opacity: .5; animation: sanarte-portal-drift 42s ease-in-out infinite alternate; }
.sanarte-portal::after { content: ""; position: fixed; inset: 0; z-index: -1; background: radial-gradient(circle at 18% 18%, rgba(255,250,247,.55), transparent 34%), radial-gradient(circle at 82% 12%, rgba(235,246,241,.5), transparent 28%), linear-gradient(180deg, rgba(255,255,255,.5), rgba(251,250,248,.72)); backdrop-filter: blur(1px); }
.sanarte-portal-card, .sanarte-portal-header { width: min(1120px, 100%); margin: 0 auto 18px; border: 1px solid rgba(232,216,207,.82); border-radius: 8px; background: rgba(255,255,255,.92); box-shadow: 0 18px 42px rgba(91, 54, 42, .09); backdrop-filter: blur(10px); }
.sanarte-portal-card { padding: 22px; }
.sanarte-portal-card h1, .sanarte-portal-card h2, .sanarte-portal-card h3 { margin-top: 0; color: #111827; line-height: 1.2; }
.sanarte-portal-card h1 { font-size: 28px; }
.sanarte-portal-card h2 { margin-bottom: 18px; font-size: 20px; }
.sanarte-portal-card h3 { margin-bottom: 12px; font-size: 16px; }
.sanarte-portal-card p { color: #667085; }
.sanarte-portal label { display: block; margin: 0 0 14px; color: #394150; font-weight: 700; }
.sanarte-portal input[type="text"], .sanarte-portal input[type="email"], .sanarte-portal input[type="password"], .sanarte-portal input[type="number"], .sanarte-portal input[type="time"], .sanarte-portal input[type="date"], .sanarte-portal input[type="file"], .sanarte-portal textarea { display: block; width: 100%; min-height: 42px; margin-top: 6px; border: 1px solid #cbd5df; border-radius: 6px; background: #fff; color: #111827; padding: 8px 10px; }
.sanarte-portal textarea { min-height: 118px; resize: vertical; }
.sanarte-portal-login { max-width: 460px; margin-top: 8vh; }
.sanarte-portal-alert { width: min(1120px, 100%); margin: 0 auto 16px; border: 1px solid #f1b7b7; border-radius: 8px; background: #fff5f5; color: #9b2c2c; padding: 12px 14px; font-weight: 700; }
.sanarte-portal-alert.is-ok { border-color: #b7ddc5; background: #f2fbf5; color: #2f6b48; }
.sanarte-portal-shell { width: 100%; }
.sanarte-portal-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 22px; }
.sanarte-portal-identity { display: flex; align-items: center; gap: 14px; min-width: 0; }
.sanarte-portal-identity h1 { margin: 0; font-size: 24px; line-height: 1.15; }
.sanarte-portal-identity p { margin: 4px 0 0; color: #667085; }
.sanarte-portal-avatar { display: grid; place-items: center; overflow: hidden; flex: 0 0 auto; width: 64px; height: 64px; border: 1px solid #e2d4cc; border-radius: 50%; background: #fff7f2; color: #b66d55; font-size: 24px; font-weight: 800; }
.sanarte-portal-avatar img { width: 100%; height: 100%; object-fit: cover; }
.sanarte-portal-logout { color: #9f5c47; font-weight: 800; text-decoration: none; white-space: nowrap; }
.sanarte-portal-logout:hover { color: #6f3727; }
.sanarte-portal-header-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.sanarte-portal-password-trigger { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; border: 1px solid #e5b6a3; border-radius: 6px; background: #fff; color: #9f5c47; font-weight: 800; font-size: 13px; padding: 0 14px; cursor: pointer; white-space: nowrap; }
.sanarte-portal-password-trigger:hover { background: #fff7f2; }
.sanarte-portal-modal-overlay { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(35, 20, 15, .45); backdrop-filter: blur(2px); }
.sanarte-portal-modal-overlay[hidden] { display: none; }
.sanarte-portal-modal { width: min(440px, 100%); max-height: 90vh; overflow-y: auto; background: #fff; border-radius: 12px; padding: 26px; box-shadow: 0 30px 70px rgba(91, 54, 42, .28); }
.sanarte-portal-modal-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.sanarte-portal-modal-head h2 { margin: 0; font-size: 19px; }
.sanarte-portal-modal-close { border: 0; background: transparent; color: #9aa5b1; font-size: 18px; cursor: pointer; line-height: 1; padding: 4px; }
.sanarte-portal-modal-close:hover { color: #52606d; }
.sanarte-portal-password-field { position: relative; display: block; margin-top: 6px; }
.sanarte-portal-password-field input[type="password"], .sanarte-portal-password-field input[type="text"] { margin-top: 0; padding-right: 44px; }
.sanarte-portal-password-toggle { position: absolute; top: 50%; right: 6px; transform: translateY(-50%); width: 32px; height: 32px; display: grid; place-items: center; border: 0; border-radius: 6px; background: transparent; color: #9aa5b1; cursor: pointer; }
.sanarte-portal-password-toggle:hover { color: #c9795f; background: #fdf3f0; }
.sanarte-portal-modal-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px; }
.sanarte-portal-modal-actions .sanarte-button { width: auto; }
.sanarte-portal-grid, .sanarte-portal-modalities, .sanarte-portal-schedule { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.sanarte-portal-check { display: flex !important; gap: 9px; align-items: center; margin-top: 8px !important; }
.sanarte-portal-check input { flex: 0 0 auto; margin: 0; }
.sanarte-portal-modality, .sanarte-portal-schedule-card, .sanarte-portal-day { border: 1px solid #e7edf2; border-radius: 8px; background: #f8fafb; padding: 14px; }
.sanarte-portal-day { margin-bottom: 10px; background: #fff; }
.sanarte-portal-day-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.sanarte-portal-day-top label { margin-bottom: 0; }
.sanarte-portal-day-top input[type="number"] { width: 76px; display: inline-block; margin: 0 4px; }
.sanarte-portal-segments { display: grid; gap: 8px; }
.sanarte-portal-segment { display: grid; grid-template-columns: 1fr 1fr auto; gap: 8px; align-items: end; }
.sanarte-portal-segment label { margin: 0; color: #667085; font-size: 12px; }
.sanarte-portal-segment button, .sanarte-portal-small-button { min-height: 34px; border: 1px solid #e5b6a3; border-radius: 6px; background: #fff; color: #9f5c47; cursor: pointer; font-weight: 800; }
.sanarte-portal-small-button { margin-top: 10px; padding: 0 12px; }
.sanarte-portal-actions { position: sticky; bottom: 0; width: min(1120px, 100%); margin: 0 auto; padding: 14px 0; background: linear-gradient(180deg, rgba(248,250,246,0), rgba(248,250,246,.94) 35%); }
.sanarte-portal-actions .sanarte-button { width: auto; }
.sanarte-portal-bookings-list { display: grid; gap: 10px; max-height: 420px; overflow-y: auto; padding-right: 6px; margin-right: -6px; }
.sanarte-portal-bookings-more { display: flex; justify-content: center; padding-top: 4px; }
.sanarte-portal-bookings-more .sanarte-portal-small-button { padding: 0 18px; }
.sanarte-portal-booking-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; border: 1px solid #e7edf2; border-radius: 8px; background: #f8fafb; padding: 12px 14px; }
.sanarte-portal-booking-row.is-cancelled { background: #f1f2f4; border-color: #e3e6ea; }
.sanarte-portal-booking-row.is-cancelled .sanarte-portal-booking-info strong,
.sanarte-portal-booking-row.is-cancelled .sanarte-portal-booking-info span:not(.sanarte-portal-status) { color: #9aa1ab; }
.sanarte-portal-booking-row.is-completed { background: #f0faf3; border-color: #cdeada; }
.sanarte-portal-booking-info { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.sanarte-portal-booking-info strong { color: #111827; }
.sanarte-portal-booking-info span { color: #667085; font-size: 13px; }
.sanarte-portal-booking-note { font-style: italic; }
.sanarte-portal-status { display: inline-block; width: fit-content; margin-top: 2px; border-radius: 999px; padding: 2px 10px; font-size: 12px; font-weight: 800; color: #52606d; background: #e4e9ee; }
.sanarte-portal-status-confirmed { color: #2f6b48; background: #e2f5e9; }
.sanarte-portal-status-pending_payment { color: #9a6a1f; background: #fbedd0; }
.sanarte-portal-status-cancelled, .sanarte-portal-status-cancelled_no_payment { color: #9b2c2c; background: #fbe4e4; }
.sanarte-portal-status-completed { color: #1f7a45; background: #cdeada; }
.sanarte-portal-booking-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sanarte-portal-booking-actions > form { display: contents; }
.sanarte-portal-reschedule { position: relative; flex: 1 1 100%; }
.sanarte-portal-reschedule summary { list-style: none; cursor: pointer; }
.sanarte-portal-reschedule summary::-webkit-details-marker { display: none; }
.sanarte-portal-reschedule summary::marker { content: ""; }
.sanarte-portal-reschedule-panel { display: flex; align-items: end; gap: 10px; flex-wrap: wrap; margin-top: 10px; padding: 12px; border: 1px solid #e7edf2; border-radius: 8px; background: #fff; }
.sanarte-portal-reschedule-panel label { margin: 0; min-width: 140px; font-size: 12px; color: #667085; }
.sanarte-portal-reschedule-panel input[type="date"], .sanarte-portal-reschedule-panel input[type="time"] { min-height: 38px; }
.sanarte-portal-reschedule-panel .sanarte-button { min-height: 38px; padding: 0 14px; font-size: 13px; }
.sanarte-portal-icon-button { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; border: 1px solid transparent; border-radius: 6px; padding: 0 14px; font-weight: 800; font-size: 13px; cursor: pointer; transition: filter .15s ease; }
.sanarte-portal-icon-button svg { flex: 0 0 auto; }
.sanarte-portal-icon-button.is-finish { border-color: #b7ddc5; background: #eafbf1; color: #2f6b48; }
.sanarte-portal-icon-button.is-cancel { border-color: #f1b7b7; background: #fff5f5; color: #9b2c2c; }
.sanarte-portal-icon-button.is-reschedule { border-color: #c7d7ee; background: #eef4fd; color: #2a5b9e; }
.sanarte-portal-icon-button:hover { filter: brightness(.95); }

/* Portal: dashboard de bloques (2 columnas) */
.sanarte-portal-blocks { width: min(1120px, 100%); margin: 0 auto 18px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }
.sanarte-portal-blocks .sanarte-portal-card { width: 100%; margin: 0; }
.sanarte-portal-block--profile { grid-column: 1 / -1; }
.sanarte-portal-block--schedule { display: flex; flex-direction: column; }
.sanarte-portal-block--schedule > p { margin-top: 0; }

/* Botones que abren el horario de cada modalidad */
.sanarte-portal-schedule-buttons { display: grid; gap: 12px; margin-top: auto; }
.sanarte-portal-schedule-open { display: flex; align-items: center; gap: 14px; width: 100%; text-align: left; border: 1px solid #e7d3ca; border-radius: 12px; background: #fff; padding: 14px 16px; cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease, transform .05s ease; }
.sanarte-portal-schedule-open:hover { border-color: #d99a83; box-shadow: 0 10px 26px rgba(201,121,95,.15); }
.sanarte-portal-schedule-open:active { transform: translateY(1px); }
.sanarte-portal-schedule-open-icon { display: grid; place-items: center; flex: 0 0 auto; width: 44px; height: 44px; border-radius: 11px; background: linear-gradient(135deg, #fbd4b7, #cda2dd); color: #5b362a; font-size: 17px; }
.sanarte-portal-schedule-open-text { display: flex; flex-direction: column; gap: 2px; flex: 1 1 auto; min-width: 0; }
.sanarte-portal-schedule-open-text strong { color: #3a2a22; font-size: 15px; }
.sanarte-portal-schedule-open-text small { color: #90776a; font-size: 12px; }
.sanarte-portal-schedule-open-chevron { flex: 0 0 auto; color: #c9a08e; }
.sanarte-portal-schedule-empty { margin: 0; color: #90776a; }

/* Modal de horario (mas ancho que el de contrasena) */
.sanarte-portal-schedule-modal .sanarte-portal-modal { width: min(640px, 100%); }
.sanarte-portal-schedule-hint { margin: 0 0 14px; color: #90776a; font-size: 13px; }
.sanarte-portal-schedule-days { display: grid; gap: 10px; }

/* ===== Portal rediseñado: cabecera profesional, indicadores y config colapsable ===== */
.sanarte-portal-eyebrow { display: block; color: #b66d55; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.sanarte-portal-identity-text h1 { margin: 4px 0 2px; font-size: 25px; line-height: 1.1; color: #3a2419; }
.sanarte-portal-identity-text p { margin: 0; color: #8a6d5f; font-weight: 600; }
.sanarte-portal-avatar { width: 72px; height: 72px; box-shadow: 0 0 0 3px #fff, 0 0 0 4px #f0d6ca, 0 10px 22px rgba(91, 54, 42, .14); }

/* Botones de la cabecera (arregla el "se pone blanco" al pasar el mouse: color explicito) */
.sanarte-portal-ghost-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; border: 1px solid #e7d3ca; border-radius: 9px; background: #fff; color: #9f5c47 !important; font-weight: 700; font-size: 13px; padding: 0 15px; cursor: pointer; text-decoration: none; white-space: nowrap; transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease; }
.sanarte-portal-ghost-btn:hover { background: #c9795f !important; border-color: #c9795f; color: #fff !important; box-shadow: 0 8px 18px rgba(201, 121, 95, .22); }
.sanarte-portal-ghost-btn.is-logout { color: #97584a !important; }
.sanarte-portal-ghost-btn.is-logout:hover { background: #8a4636 !important; border-color: #8a4636; color: #fff !important; }

/* Indicadores (stats) */
.sanarte-portal-stats { width: min(1120px, 100%); margin: 0 auto 18px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.sanarte-portal-stat { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border: 1px solid rgba(232, 216, 207, .82); border-radius: 12px; background: rgba(255, 255, 255, .92); box-shadow: 0 10px 26px rgba(91, 54, 42, .07); backdrop-filter: blur(10px); }
.sanarte-portal-stat-icon { display: grid; place-items: center; flex: 0 0 auto; width: 46px; height: 46px; border-radius: 12px; font-size: 18px; background: linear-gradient(135deg, #fbd4b7, #f2a6a0); color: #7a3b28; }
.sanarte-portal-stat-icon.is-pending { background: linear-gradient(135deg, #fbe3bf, #f3c78c); color: #7a5320; }
.sanarte-portal-stat-icon.is-done { background: linear-gradient(135deg, #bfe8cd, #94d3ab); color: #1f6b40; }
.sanarte-portal-stat-body { display: flex; flex-direction: column; line-height: 1.1; min-width: 0; }
.sanarte-portal-stat-num { font-size: 26px; font-weight: 800; color: #3a2419; font-variant-numeric: tabular-nums; }
.sanarte-portal-stat-label { margin-top: 3px; color: #8a6d5f; font-size: 12.5px; font-weight: 600; }

/* Encabezado de la seccion de configuracion */
.sanarte-portal-config-head { width: min(1120px, 100%); margin: 26px auto 12px; }
.sanarte-portal-config-head h2 { margin: 0 0 3px; font-size: 17px; color: #3a2419; }
.sanarte-portal-config-head p { margin: 0; color: #8a6d5f; font-size: 13px; }

/* Paneles colapsables */
.sanarte-portal-collapse { width: min(1120px, 100%); margin: 0 auto 12px; border: 1px solid rgba(232, 216, 207, .82); border-radius: 12px; background: rgba(255, 255, 255, .94); box-shadow: 0 8px 22px rgba(91, 54, 42, .06); overflow: hidden; }
.sanarte-portal-collapse[open] { box-shadow: 0 14px 32px rgba(91, 54, 42, .1); }
.sanarte-portal-collapse-head { display: flex; align-items: center; gap: 14px; padding: 15px 18px; cursor: pointer; list-style: none; user-select: none; }
.sanarte-portal-collapse-head::-webkit-details-marker { display: none; }
.sanarte-portal-collapse-head::marker { content: ""; }
.sanarte-portal-collapse-head:hover { background: #fdf6f2; }
.sanarte-portal-collapse-icon { display: grid; place-items: center; flex: 0 0 auto; width: 42px; height: 42px; border-radius: 11px; font-size: 16px; background: linear-gradient(135deg, #fbd4b7, #cda2dd); color: #5b362a; }
.sanarte-portal-collapse-title { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; }
.sanarte-portal-collapse-title strong { color: #3a2419; font-size: 15.5px; }
.sanarte-portal-collapse-title small { margin-top: 2px; color: #90776a; font-size: 12.5px; }
.sanarte-portal-collapse-chevron { flex: 0 0 auto; color: #c9a08e; transition: transform .2s ease; }
.sanarte-portal-collapse[open] .sanarte-portal-collapse-chevron { transform: rotate(180deg); }
.sanarte-portal-collapse-body { padding: 16px 18px 20px; border-top: 1px solid #f2e7e0; }
.sanarte-portal-collapse-note { margin: 0 0 14px; color: #90776a; font-size: 13px; }

/* Layout de dos columnas: reservas (izquierda) + configuracion (derecha) */
.sanarte-portal-columns { width: min(1120px, 100%); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.sanarte-portal-col-main, .sanarte-portal-col-side { min-width: 0; }
.sanarte-portal-columns .sanarte-portal-card,
.sanarte-portal-columns .sanarte-portal-config-head,
.sanarte-portal-columns .sanarte-portal-collapse,
.sanarte-portal-columns .sanarte-portal-actions { width: 100%; margin-left: 0; margin-right: 0; }
.sanarte-portal-columns .sanarte-portal-config-head { margin-top: 0; }

@keyframes sanarte-portal-drift {
	from { transform: translate3d(-18px, -18px, 0) scale(1.02); }
	to { transform: translate3d(18px, 18px, 0) scale(1.05); }
}
@media (prefers-reduced-motion: reduce) {
	.sanarte-portal::before { animation: none; }
}

@media (max-width: 760px) {
	.sanarte-portal { padding: 16px 10px; }
	.sanarte-portal-card { padding: 16px; }
	.sanarte-portal-header { align-items: flex-start; flex-direction: column; padding: 16px; }
	.sanarte-portal-columns, .sanarte-portal-stats, .sanarte-portal-blocks, .sanarte-portal-grid, .sanarte-portal-modalities, .sanarte-portal-schedule, .sanarte-portal-segment { grid-template-columns: 1fr; }
	.sanarte-portal-day-top { align-items: flex-start; flex-direction: column; }
	.sanarte-portal-actions .sanarte-button { width: 100%; }
	.sanarte-portal-booking-row { flex-direction: column; align-items: stretch; }
	.sanarte-portal-booking-actions { justify-content: flex-start; }
	.sanarte-portal-icon-button { flex: 1 1 auto; justify-content: center; }
	.sanarte-portal-header-actions { width: 100%; justify-content: space-between; }
	.sanarte-portal-modal { padding: 20px; }
	.sanarte-portal-modal-actions { flex-direction: column-reverse; }
	.sanarte-portal-modal-actions .sanarte-button, .sanarte-portal-modal-actions .sanarte-portal-small-button { width: 100%; }
}
