.opto-patient-portal,
.opto-public-library {
	background: #fff;
	border: 1px solid #dcdcde;
	border-radius: 10px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
	padding: 24px;
}

.opto-button {
	background: #00a0be;
	border-radius: 999px;
	color: #fff;
	display: inline-block;
	font-weight: 700;
	padding: 10px 18px;
	text-decoration: none;
}

.opto-button:hover,
.opto-button:focus {
	color: #fff;
	filter: brightness(0.96);
}

.opto-patient-warning {
	background: #fff8e5;
	border-left: 4px solid #dba617;
	margin-top: 18px;
	padding: 14px;
}

.opto-public-exercise-grid {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.opto-public-exercise-card {
	border: 1px solid #dcdcde;
	border-radius: 10px;
	overflow: hidden;
	padding: 16px;
}

.opto-public-exercise-card img {
	display: block;
	height: auto;
	margin: -16px -16px 14px;
	max-width: calc(100% + 32px);
	width: calc(100% + 32px);
}

.opto-public-exercise-card h3 {
	margin-top: 0;
}

.opto-public-exercise-meta {
	color: #006c80;
	font-weight: 700;
}

.opto-public-video {
	aspect-ratio: 16 / 9;
	background: #101517;
	border-radius: 8px;
	overflow: hidden;
}

.opto-public-video iframe {
	border: 0;
	height: 100%;
	width: 100%;
}

@media (max-width: 900px) {
	.opto-public-exercise-grid {
		grid-template-columns: 1fr;
	}
}

.opto-patient-note,
.opto-patient-module-placeholder {
	background: #fff;
	border: 1px solid #dcdcde;
	border-left: 4px solid #00a0be;
	margin: 18px 0;
	padding: 16px;
}

.opto-patient-greeting {
	font-size: 1.05em;
}

/* v0.7 patient therapeutic calendar */
.opto-patient-program {
	border-top: 1px solid #dcdcde;
	margin-top: 24px;
	padding-top: 20px;
}

.opto-patient-program-header h3 {
	margin-bottom: 6px;
}

.opto-public-muted {
	color: #646970;
	font-size: 0.95em;
}

.opto-patient-today {
	background: #eef8fb;
	border: 1px solid #cbeaf1;
	border-radius: 10px;
	margin: 18px 0;
	padding: 16px;
}

.opto-patient-week {
	border: 1px solid #dcdcde;
	border-radius: 10px;
	margin: 14px 0;
	overflow: hidden;
}

.opto-patient-week summary {
	background: #f6f7f7;
	cursor: pointer;
	font-weight: 700;
	padding: 14px 16px;
}

.opto-patient-days {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	padding: 16px;
}

.opto-patient-day {
	border: 1px solid #dcdcde;
	border-radius: 10px;
	padding: 14px;
}

.opto-patient-day h4,
.opto-patient-today h4 {
	margin-top: 0;
}

.opto-patient-calendar-item {
	background: #fff;
	border: 1px solid #dcdcde;
	border-left: 4px solid #00a0be;
	border-radius: 8px;
	margin: 12px 0;
	padding: 14px;
}

.opto-patient-calendar-item-routine {
	border-left-color: #7c3aed;
}

.opto-patient-calendar-item-head span {
	color: #006c80;
	display: block;
	font-size: 0.78em;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.opto-patient-calendar-item-head strong {
	display: block;
	font-size: 1.05em;
	margin-top: 4px;
}

.opto-patient-meta {
	background: #f6f7f7;
	border-radius: 8px;
	padding: 10px;
}

.opto-patient-instructions {
	margin-top: 10px;
}

.opto-patient-warning-inline {
	background: #fff8e5;
	border-radius: 8px;
	padding: 10px;
}

.opto-patient-routine-items ol {
	margin-bottom: 0;
}

@media (max-width: 900px) {
	.opto-patient-days {
		grid-template-columns: 1fr;
	}
}

/* v0.8 private patient portal */
.opto-patient-portal-v080 {
	background: #f8fbfc;
	border: 0;
	box-shadow: none;
	padding: clamp(16px, 3vw, 32px);
}

.opto-patient-hero {
	background: linear-gradient(135deg, #e9f8fb 0%, #ffffff 100%);
	border: 1px solid #cbeaf1;
	border-radius: 18px;
	margin-bottom: 18px;
	padding: clamp(18px, 4vw, 32px);
}

.opto-patient-hero h2 {
	font-size: clamp(1.7rem, 4vw, 2.4rem);
	line-height: 1.1;
	margin: 0 0 10px;
}

.opto-patient-kicker {
	color: #006c80;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	margin: 0 0 8px;
	text-transform: uppercase;
}

.opto-patient-alert {
	border-radius: 12px;
	font-weight: 700;
	margin: 14px 0;
	padding: 12px 14px;
}

.opto-patient-alert-ok {
	background: #ecfdf3;
	border: 1px solid #bbf7d0;
	color: #166534;
}

.opto-patient-alert-error {
	background: #fef2f2;
	border: 1px solid #fecaca;
	color: #991b1b;
}

.opto-patient-summary-grid {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 18px 0;
}

.opto-patient-summary-card {
	background: #fff;
	border: 1px solid #dcdcde;
	border-radius: 16px;
	padding: 18px;
}

.opto-patient-summary-card span,
.opto-patient-summary-card small {
	color: #646970;
	display: block;
}

.opto-patient-summary-card strong {
	display: block;
	font-size: 2rem;
	line-height: 1;
	margin: 8px 0 6px;
}

.opto-patient-summary-card-primary {
	border-color: #00a0be;
	box-shadow: 0 6px 18px rgba(0,160,190,.12);
}

.opto-patient-panel {
	background: #fff;
	border: 1px solid #dcdcde;
	border-radius: 18px;
	margin: 18px 0;
	padding: clamp(16px, 3vw, 24px);
}

.opto-patient-section-title {
	align-items: flex-start;
	display: flex;
	gap: 16px;
	justify-content: space-between;
	margin-bottom: 16px;
}

.opto-patient-section-title h3 {
	font-size: 1.35rem;
	margin: 0;
}

.opto-patient-week-nav nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: flex-end;
}

.opto-week-link {
	background: #f6f7f7;
	border: 1px solid #dcdcde;
	border-radius: 999px;
	color: #1d2327;
	font-size: .9rem;
	font-weight: 700;
	padding: 8px 12px;
	text-decoration: none;
}

.opto-week-link:hover,
.opto-week-link:focus {
	background: #e9f8fb;
	border-color: #00a0be;
	color: #006c80;
}

.opto-patient-task-list {
	display: grid;
	gap: 14px;
}

.opto-patient-week-grid {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(7, minmax(0, 1fr));
}

.opto-patient-week-day {
	background: #fbfbfc;
	border: 1px solid #dcdcde;
	border-radius: 14px;
	min-width: 0;
	padding: 10px;
}

.opto-patient-week-day.is-today {
	background: #eef8fb;
	border-color: #00a0be;
}

.opto-patient-week-day-head {
	align-items: flex-start;
	display: flex;
	gap: 8px;
	justify-content: space-between;
	margin-bottom: 8px;
}

.opto-patient-week-day-head span,
.opto-patient-week-day-head small {
	color: #646970;
	font-size: .78rem;
	font-weight: 700;
}

.opto-patient-week-day-head strong {
	display: block;
	font-size: 1rem;
}

.opto-patient-week-day .opto-patient-calendar-item {
	font-size: .92rem;
	margin: 9px 0;
	padding: 10px;
}

.opto-patient-calendar-item.is-completed {
	border-left-color: #16a34a;
}

.opto-patient-calendar-item-head {
	align-items: flex-start;
	display: grid;
	gap: 2px;
}

.opto-patient-calendar-item-head em {
	background: #dcfce7;
	border-radius: 999px;
	color: #166534;
	font-size: .78rem;
	font-style: normal;
	font-weight: 800;
	justify-self: start;
	padding: 3px 8px;
}

.opto-patient-materials p,
.opto-patient-instructions p {
	margin-bottom: .6em;
}

.opto-patient-routine-items li {
	margin-bottom: 7px;
}

.opto-patient-routine-items li span {
	display: block;
	font-weight: 700;
}

.opto-patient-routine-items li small {
	color: #646970;
}

.opto-patient-complete-form {
	background: #f6f7f7;
	border-radius: 12px;
	margin-top: 12px;
	padding: 12px;
}

.opto-patient-complete-form label span {
	display: block;
	font-weight: 700;
	margin-bottom: 6px;
}

.opto-patient-complete-form textarea {
	border: 1px solid #dcdcde;
	border-radius: 10px;
	box-sizing: border-box;
	margin-bottom: 10px;
	padding: 10px;
	width: 100%;
}

.opto-patient-completed-box {
	background: #ecfdf3;
	border: 1px solid #bbf7d0;
	border-radius: 12px;
	color: #166534;
	margin-top: 12px;
	padding: 10px;
}

.opto-patient-completed-box span {
	display: block;
	font-size: .9rem;
}

.opto-patient-empty {
	background: #f6f7f7;
	border-radius: 12px;
	padding: 16px;
}

@media (max-width: 1200px) {
	.opto-patient-week-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.opto-patient-portal-v080 {
		padding: 12px;
	}

	.opto-patient-summary-grid,
	.opto-patient-week-grid {
		grid-template-columns: 1fr;
	}

	.opto-patient-section-title {
		display: block;
	}

	.opto-patient-week-nav nav {
		justify-content: flex-start;
		margin-top: 12px;
	}

	.opto-button,
	.opto-week-link {
		text-align: center;
		width: 100%;
	}
}

/* v0.8.1 custom patient login and compact portal layout */
.opto-patient-portal-v080 {
	box-sizing: border-box;
	font-size: 15px;
	line-height: 1.5;
	margin: 0 auto;
	max-width: 1180px;
	padding: 18px;
	width: min(100%, 1180px);
}

.opto-patient-portal-v080 * {
	box-sizing: border-box;
}

.opto-patient-auth-wrap {
	margin: 0 auto;
	max-width: 760px;
}

.opto-patient-auth-hero {
	padding: 22px;
}

.opto-patient-auth-card {
	background: #fff;
	border: 1px solid #dcdcde;
	border-radius: 16px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
	padding: 22px;
}

.opto-patient-auth-card h3 {
	font-size: 1.35rem;
	margin: 0 0 10px;
}

.opto-patient-auth-form {
	display: grid;
	gap: 14px;
}

.opto-patient-auth-form label span {
	display: block;
	font-weight: 700;
	margin-bottom: 5px;
}

.opto-patient-auth-form input[type="text"],
.opto-patient-auth-form input[type="password"] {
	border: 1px solid #c3c4c7;
	border-radius: 10px;
	font-size: 1rem;
	min-height: 42px;
	padding: 9px 11px;
	width: 100%;
}

.opto-patient-checkbox {
	align-items: center;
	display: flex;
	gap: 8px;
}

.opto-patient-checkbox span {
	margin: 0;
}

.opto-patient-auth-links {
	margin: 14px 0 0;
}

.opto-patient-auth-links a {
	color: #006c80;
	font-weight: 700;
}

.opto-patient-portal-v080 .opto-patient-hero {
	border-radius: 16px;
	margin-bottom: 14px;
	padding: 20px;
}

.opto-patient-portal-v080 .opto-patient-hero h2 {
	font-size: clamp(1.35rem, 2.2vw, 1.85rem);
	line-height: 1.15;
}

.opto-patient-portal-v080 .opto-patient-summary-grid {
	gap: 10px;
	margin: 14px 0;
}

.opto-patient-portal-v080 .opto-patient-summary-card {
	border-radius: 14px;
	padding: 14px;
}

.opto-patient-portal-v080 .opto-patient-summary-card strong {
	font-size: 1.55rem;
	margin: 5px 0 4px;
}

.opto-patient-portal-v080 .opto-patient-panel {
	border-radius: 16px;
	margin: 14px 0;
	padding: 16px;
}

.opto-patient-portal-v080 .opto-patient-section-title h3 {
	font-size: 1.15rem;
}

.opto-patient-portal-v080 .opto-patient-calendar-item {
	border-radius: 10px;
	padding: 12px;
}

.opto-patient-portal-v080 .opto-patient-complete-form {
	padding: 10px;
}

.opto-patient-portal-v080 .opto-button {
	border: 0;
	cursor: pointer;
	font-size: .95rem;
	line-height: 1.2;
	padding: 10px 16px;
}

@media (min-width: 1400px) {
	.opto-patient-portal-v080 {
		max-width: 1120px;
	}
}

@media (max-width: 760px) {
	.opto-patient-portal-v080 {
		padding: 10px;
	}

	.opto-patient-auth-card,
	.opto-patient-auth-hero {
		padding: 16px;
	}
}

/* v0.8.2 patient calendar mirrors clinical dashboard in read-only mode */
.opto-patient-portal-v082 .opto-patient-calendar-panel {
	overflow: visible;
}

.opto-public-month-nav nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: flex-end;
}

.opto-public-calendar-grid {
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(7, minmax(0, 1fr));
}

.opto-public-calendar-label {
	color: #006c80;
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .04em;
	padding: 6px 4px;
	text-align: center;
	text-transform: uppercase;
}

.opto-public-calendar-day {
	background: #fff;
	border: 1px solid #dcdcde;
	border-radius: 12px;
	min-height: 132px;
	min-width: 0;
	padding: 8px;
}

.opto-public-calendar-day.is-today {
	background: #eef8fb;
	border-color: #00a0be;
	box-shadow: inset 0 0 0 1px rgba(0,160,190,.18);
}

.opto-public-calendar-day-adjacent {
	background: #f6f7f7;
	color: #646970;
	opacity: .82;
}

.opto-public-calendar-day-head {
	align-items: center;
	display: flex;
	gap: 5px;
	justify-content: space-between;
	margin-bottom: 5px;
}

.opto-public-calendar-day-head strong {
	font-size: .98rem;
}

.opto-public-calendar-day-head span,
.opto-public-day-summary {
	color: #646970;
	font-size: .72rem;
	font-weight: 700;
}

.opto-public-day-summary {
	background: #f0f6f7;
	border-radius: 999px;
	display: inline-block;
	margin-bottom: 5px;
	padding: 3px 7px;
}

.opto-public-calendar-item {
	background: #fff;
	border: 1px solid #dcdcde;
	border-left: 4px solid #00a0be;
	border-radius: 9px;
	box-shadow: none;
	cursor: pointer;
	display: block;
	font: inherit;
	margin: 6px 0;
	padding: 7px;
	text-align: left;
	width: 100%;
}

.opto-public-calendar-item:hover,
.opto-public-calendar-item:focus {
	border-color: #00a0be;
	box-shadow: 0 4px 14px rgba(0,160,190,.14);
	outline: none;
}

.opto-public-calendar-item-routine {
	border-left-color: #7c3aed;
}

.opto-public-calendar-item.is-completed {
	border-left-color: #16a34a;
	background: #f0fdf4;
}

.opto-public-calendar-item span {
	color: #006c80;
	display: block;
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.opto-public-calendar-item strong {
	color: #1d2327;
	display: block;
	font-size: .83rem;
	line-height: 1.2;
	margin-top: 2px;
}

.opto-public-calendar-item small {
	color: #646970;
	display: block;
	font-size: .75rem;
	font-weight: 700;
	margin-top: 3px;
}

.opto-public-modal {
	bottom: 0;
	left: 0;
	position: fixed;
	right: 0;
	top: 0;
	z-index: 99999;
}

.opto-public-modal-backdrop {
	background: rgba(15, 23, 42, .52);
	bottom: 0;
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
}

.opto-public-modal-panel {
	background: #fff;
	border-radius: 18px;
	box-shadow: 0 24px 70px rgba(0,0,0,.24);
	left: 50%;
	max-height: min(88vh, 780px);
	max-width: 760px;
	overflow: auto;
	padding: 22px;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: calc(100% - 28px);
}

.opto-public-modal-close {
	align-items: center;
	background: #f6f7f7;
	border: 1px solid #dcdcde;
	border-radius: 999px;
	cursor: pointer;
	display: flex;
	font-size: 1.25rem;
	height: 34px;
	justify-content: center;
	line-height: 1;
	position: absolute;
	right: 14px;
	top: 14px;
	width: 34px;
}

.opto-public-detail-header {
	border-bottom: 1px solid #dcdcde;
	margin: 0 0 14px;
	padding: 0 42px 12px 0;
}

.opto-public-kind {
	color: #006c80;
	display: block;
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.opto-public-detail-header h3 {
	font-size: 1.35rem;
	line-height: 1.2;
	margin: 5px 0;
}

.opto-public-detail-header p {
	color: #646970;
	font-weight: 700;
	margin: 0;
}

.opto-public-detail-box,
.opto-public-execute-box {
	background: #f8fbfc;
	border: 1px solid #dcdcde;
	border-radius: 14px;
	margin: 12px 0;
	padding: 13px;
}

.opto-public-detail-box strong,
.opto-public-execute-box h4 {
	margin-top: 0;
}

.opto-public-routine-list {
	margin-bottom: 0;
}

.opto-public-routine-list li {
	margin-bottom: 8px;
}

.opto-public-routine-list span {
	display: block;
	font-weight: 700;
}

.opto-public-routine-list small {
	color: #646970;
	font-weight: 700;
}

body.opto-public-modal-open {
	overflow: hidden;
}

@media (max-width: 1080px) {
	.opto-public-calendar-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.opto-public-calendar-label {
		display: none;
	}
	.opto-public-calendar-day {
		min-height: 110px;
	}
}

@media (max-width: 640px) {
	.opto-public-calendar-grid {
		grid-template-columns: 1fr;
	}
	.opto-public-month-nav nav {
		justify-content: flex-start;
	}
	.opto-public-modal-panel {
		border-radius: 14px;
		max-height: 92vh;
		padding: 18px;
	}
}

/* v0.8.3 patient execution workflow */
.opto-public-training-modal .opto-public-modal-panel {
	max-width: 860px;
}

.opto-public-training-head {
	align-items: flex-start;
	border-bottom: 1px solid #dcdcde;
	display: flex;
	gap: 18px;
	justify-content: space-between;
	margin: 0 0 14px;
	padding: 0 42px 14px 0;
}

.opto-public-training-head h3 {
	font-size: 1.45rem;
	line-height: 1.2;
	margin: 5px 0 8px;
}

.opto-public-training-head p {
	color: #50575e;
	margin: 4px 0;
}

.opto-public-status-completed {
	background: #dcfce7;
	border-radius: 999px;
	color: #166534;
	font-weight: 800;
	padding: 6px 10px;
	white-space: nowrap;
}

.opto-public-exercise-accordion {
	display: grid;
	gap: 12px;
	margin: 14px 0;
}

.opto-public-training-exercise {
	background: #fff;
	border: 1px solid #dcdcde;
	border-radius: 14px;
	overflow: hidden;
}

.opto-public-training-exercise summary {
	align-items: center;
	cursor: pointer;
	display: grid;
	gap: 8px;
	grid-template-columns: auto 1fr auto;
	list-style: none;
	padding: 12px;
}

.opto-public-training-exercise summary::-webkit-details-marker {
	display: none;
}

.opto-public-training-exercise summary span {
	background: #f1f5f9;
	border-radius: 7px;
	color: #64748b;
	font-weight: 800;
	padding: 4px 7px;
}

.opto-public-training-exercise summary strong {
	font-size: 1rem;
}

.opto-public-training-exercise summary em {
	color: #646970;
	font-size: .85rem;
	font-style: normal;
	font-weight: 700;
	text-align: right;
}

.opto-public-training-exercise[open] {
	box-shadow: 0 6px 18px rgba(15, 23, 42, .06);
}

.opto-public-training-exercise .opto-public-video,
.opto-public-mini-box,
.opto-public-exercise-actions,
.opto-public-history-panel {
	margin: 12px;
}

.opto-public-mini-box {
	background: #f8fbfc;
	border-radius: 12px;
	padding: 10px;
}

.opto-public-exercise-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.opto-soft-button {
	background: #fff;
	border: 1px solid #dcdcde;
	border-radius: 999px;
	cursor: pointer;
	font-weight: 700;
	padding: 8px 12px;
}

.opto-soft-button:hover,
.opto-soft-button:focus {
	border-color: #00a0be;
	color: #006c80;
}

.opto-exercise-check {
	align-items: center;
	background: #f0fdf4;
	border: 1px solid #bbf7d0;
	border-radius: 999px;
	display: inline-flex;
	font-weight: 800;
	gap: 8px;
	padding: 8px 12px;
}

.opto-public-history-panel {
	background: #f6f7f7;
	border-radius: 12px;
	padding: 10px;
}

.opto-training-timer {
	align-items: center;
	display: flex;
	gap: 14px;
	margin-bottom: 14px;
}

.opto-live-timer {
	background: #101517;
	border-radius: 999px;
	color: #fff;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 1.05rem;
	font-weight: 800;
	padding: 8px 12px;
}

.opto-effort-label,
.opto-photo-field {
	display: block;
	margin: 12px 0;
}

.opto-effort-label span,
.opto-stars > span,
.opto-photo-field span {
	display: block;
	font-weight: 800;
	margin-bottom: 6px;
}

.opto-effort-label input[type="range"] {
	width: 100%;
}

.opto-effort-value {
	display: inline-block;
	margin-top: 4px;
}

.opto-effort-phrase {
	color: #50575e;
	display: block;
	font-weight: 700;
	margin-top: 4px;
}

.opto-stars {
	margin: 12px 0;
}

.opto-stars label {
	display: inline-block;
	margin-right: 4px;
}

.opto-stars input {
	position: absolute;
	left: -9999px;
}

.opto-stars label span {
	color: #d0d5dd;
	cursor: pointer;
	font-size: 1.6rem;
	line-height: 1;
}

.opto-stars label:has(input:checked) span,
.opto-stars label:hover span {
	color: #f59e0b;
}

.opto-save-results.is-disabled,
.opto-save-results:disabled {
	cursor: not-allowed;
	opacity: .55;
}

@media (max-width: 640px) {
	.opto-public-training-head {
		display: block;
		padding-right: 38px;
	}
	.opto-public-training-exercise summary {
		grid-template-columns: auto 1fr;
	}
	.opto-public-training-exercise summary em {
		grid-column: 2;
		text-align: left;
	}
}

/* v0.8.5 patient portal calendar visual fixes */
.opto-patient-portal-v080 .opto-public-calendar-day {
	background: #ffffff !important;
	border: 1px solid #dbe7eb !important;
	border-radius: 12px !important;
	box-shadow: none !important;
	color: #1d2327 !important;
}

.opto-patient-portal-v080 .opto-public-calendar-day.has-items {
	cursor: pointer;
}

.opto-patient-portal-v080 .opto-public-calendar-day.has-items:focus {
	border-color: #00a0be !important;
	box-shadow: 0 0 0 2px rgba(0,160,190,.18) !important;
	outline: none !important;
}

.opto-patient-portal-v080 .opto-public-calendar-day.is-today {
	background: #f2fbfd !important;
	border-color: #8fd7e4 !important;
}

.opto-patient-portal-v080 .opto-public-calendar-day-adjacent {
	background: #f8fafb !important;
	color: #6b7280 !important;
	opacity: 1 !important;
}

.opto-patient-portal-v080 .opto-public-calendar-item,
.opto-patient-portal-v080 button.opto-public-calendar-item {
	appearance: none !important;
	-webkit-appearance: none !important;
	background: #f3fbfd !important;
	border: 1px solid #ccecf2 !important;
	border-left: 4px solid #00a0be !important;
	border-radius: 10px !important;
	box-shadow: none !important;
	color: #1d2327 !important;
	cursor: pointer !important;
	display: block !important;
	font: inherit !important;
	line-height: 1.25 !important;
	min-height: 0 !important;
	padding: 8px 9px !important;
	text-align: left !important;
	text-decoration: none !important;
	text-transform: none !important;
	width: 100% !important;
}

.opto-patient-portal-v080 .opto-public-calendar-item:hover,
.opto-patient-portal-v080 .opto-public-calendar-item:focus {
	background: #e9f8fb !important;
	border-color: #9bdde8 !important;
	border-left-color: #00a0be !important;
	box-shadow: 0 4px 14px rgba(0,160,190,.12) !important;
	outline: none !important;
}

.opto-patient-portal-v080 .opto-public-calendar-item-routine,
.opto-patient-portal-v080 button.opto-public-calendar-item-routine {
	background: #f8f5ff !important;
	border-color: #e7dbff !important;
	border-left-color: #8b5cf6 !important;
}

.opto-patient-portal-v080 .opto-public-calendar-item-routine:hover,
.opto-patient-portal-v080 .opto-public-calendar-item-routine:focus {
	background: #f1ebff !important;
	border-color: #d7c7ff !important;
	border-left-color: #7c3aed !important;
}

.opto-patient-portal-v080 .opto-public-calendar-item.is-completed,
.opto-patient-portal-v080 button.opto-public-calendar-item.is-completed {
	background: #f0fdf4 !important;
	border-color: #bbf7d0 !important;
	border-left-color: #16a34a !important;
}

.opto-patient-portal-v080 .opto-public-calendar-item span,
.opto-patient-portal-v080 .opto-public-calendar-item strong,
.opto-patient-portal-v080 .opto-public-calendar-item small {
	background: transparent !important;
	border: 0 !important;
	color: inherit !important;
	opacity: 1 !important;
	text-shadow: none !important;
}

.opto-patient-portal-v080 .opto-public-calendar-item span {
	color: #007f96 !important;
}

.opto-patient-portal-v080 .opto-public-calendar-item-routine span {
	color: #6d28d9 !important;
}

.opto-public-modal,
.opto-public-modal[aria-hidden="false"] {
	display: block;
	opacity: 1 !important;
	visibility: visible !important;
	z-index: 2147483000 !important;
}

.opto-public-modal[aria-hidden="true"] {
	display: none !important;
}

.opto-public-modal-backdrop {
	background: rgba(15, 23, 42, .68) !important;
	opacity: 1 !important;
}

.opto-public-modal-panel {
	background: #ffffff !important;
	color: #1d2327 !important;
	opacity: 1 !important;
	filter: none !important;
	mix-blend-mode: normal !important;
	transform: translate(-50%, -50%) !important;
	z-index: 2147483001 !important;
}

.opto-public-modal-panel * {
	opacity: 1;
}

/* v0.8.6 patient portal calendar: day/week/month views and reliable modal interaction */
.opto-patient-portal-v086 .opto-patient-calendar-shell {
	overflow: visible;
}

.opto-public-view-tabs {
	align-items: center;
	display: inline-flex;
	gap: 8px;
	justify-content: flex-end;
}

.opto-public-view-tab {
	appearance: none;
	-webkit-appearance: none;
	background: #fff;
	border: 1px solid #dbe7eb;
	border-radius: 999px;
	color: #006c80;
	cursor: pointer;
	font-weight: 800;
	line-height: 1;
	padding: 10px 14px;
}

.opto-public-view-tab.is-active,
.opto-public-view-tab:hover,
.opto-public-view-tab:focus {
	background: #e9f8fb;
	border-color: #00a0be;
	color: #006c80;
	outline: none;
}

.opto-public-view[hidden] {
	display: none !important;
}

.opto-public-view-header {
	align-items: flex-start;
	display: flex;
	gap: 16px;
	justify-content: space-between;
	margin-bottom: 14px;
}

.opto-public-view-header h4 {
	font-size: 1.15rem;
	margin: 0 0 4px;
}

.opto-public-view-header p {
	color: #646970;
	font-weight: 700;
	margin: 0;
}

.opto-public-view-header nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: flex-end;
}

.opto-public-day-list {
	display: grid;
	gap: 10px;
}

.opto-public-week-calendar-grid {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(7, minmax(0, 1fr));
}

.opto-public-week-day {
	background: #ffffff;
	border: 1px solid #dbe7eb;
	border-radius: 14px;
	min-height: 170px;
	min-width: 0;
	padding: 10px;
}

.opto-public-week-day.has-items {
	cursor: pointer;
}

.opto-public-week-day.is-today {
	background: #f2fbfd;
	border-color: #8fd7e4;
}

.opto-public-week-day-head {
	align-items: baseline;
	display: flex;
	gap: 8px;
	justify-content: space-between;
	margin-bottom: 6px;
}

.opto-public-week-day-head strong {
	color: #1d2327;
	font-size: .95rem;
}

.opto-public-week-day-head span {
	color: #646970;
	font-size: .78rem;
	font-weight: 800;
}

.opto-public-empty-day {
	color: #8a8f98;
	display: block;
	font-weight: 700;
	padding: 8px 0;
}

.opto-patient-portal-v086 .opto-public-calendar-item,
.opto-patient-portal-v086 button.opto-public-calendar-item {
	background: #f4fbfd !important;
	border-color: #ccecf2 !important;
	border-left-color: #00a0be !important;
	color: #1d2327 !important;
	min-width: 0 !important;
}

.opto-patient-portal-v086 .opto-public-calendar-item-routine,
.opto-patient-portal-v086 button.opto-public-calendar-item-routine {
	background: #faf7ff !important;
	border-color: #e8ddff !important;
	border-left-color: #8b5cf6 !important;
}

.opto-patient-portal-v086 .opto-public-calendar-item.is-compact strong {
	font-size: .78rem !important;
}

.opto-patient-portal-v086 .opto-public-calendar-item.is-compact small {
	font-size: .7rem !important;
}

.opto-patient-portal-v086 .opto-public-modal,
.opto-patient-portal-v086 .opto-public-modal[aria-hidden="false"] {
	background: transparent !important;
	display: block;
	opacity: 1 !important;
	visibility: visible !important;
}

.opto-patient-portal-v086 .opto-public-modal[aria-hidden="true"] {
	display: none !important;
}

.opto-patient-portal-v086 .opto-public-modal-panel {
	background: #fff !important;
	isolation: isolate;
	opacity: 1 !important;
}

@media (max-width: 1100px) {
	.opto-public-week-calendar-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.opto-public-view-header,
	.opto-patient-section-title {
		display: block;
	}
	.opto-public-view-tabs,
	.opto-public-view-header nav {
		justify-content: flex-start;
		margin-top: 10px;
		width: 100%;
	}
	.opto-public-week-calendar-grid {
		grid-template-columns: 1fr;
	}
}

/* v0.8.7 robust patient modal opening */
body > .opto-public-modal {
	position: fixed !important;
	inset: 0 !important;
	z-index: 2147483640 !important;
}
body > .opto-public-modal[aria-hidden="false"] {
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
}
body > .opto-public-modal .opto-public-modal-backdrop {
	background: rgba(15, 23, 42, .68) !important;
	inset: 0 !important;
	position: fixed !important;
}
body > .opto-public-modal .opto-public-modal-panel {
	background: #fff !important;
	left: 50% !important;
	max-height: min(88vh, 780px) !important;
	overflow: auto !important;
	position: fixed !important;
	top: 50% !important;
	transform: translate(-50%, -50%) !important;
	z-index: 2147483641 !important;
}

/* v0.8.8 patient portal interaction fix */
.opto-patient-portal-v080 .opto-public-view-tab,
.opto-patient-portal-v080 .opto-public-calendar-item,
.opto-patient-portal-v080 .opto-public-week-day.has-items,
.opto-patient-portal-v080 [data-opto-modal-id] {
	pointer-events: auto !important;
	cursor: pointer !important;
}
.opto-patient-portal-v080 .opto-public-view[hidden] {
	display: none !important;
}
.opto-patient-portal-v080 .opto-public-view.is-active {
	display: block !important;
}
body > .opto-public-modal[aria-hidden="false"],
.opto-public-modal[aria-hidden="false"] {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
}
body > .opto-public-modal[aria-hidden="true"],
.opto-public-modal[aria-hidden="true"] {
	display: none !important;
}

/* v1.1 Formularios clínicos en portal */
.opto-patient-hero-with-logout { position:relative; padding-right:170px; }
.opto-patient-logout-form { position:absolute; top:18px; right:18px; margin:0; }
.opto-logout-button { white-space:nowrap; }
.opto-patient-forms-panel { margin-top:22px; }
.opto-patient-forms-count { display:inline-flex; align-items:center; border:1px solid #bee7ef; background:#eefafe; color:#007c95; border-radius:999px; padding:7px 12px; font-weight:700; }
.opto-patient-forms-list { display:grid; gap:14px; margin-top:16px; }
.opto-patient-form-card { border:1px solid #dbe7ef; border-radius:16px; background:#fff; overflow:hidden; box-shadow:0 4px 16px rgba(15,23,42,.05); }
.opto-patient-form-card summary { cursor:pointer; padding:16px 18px; display:flex; justify-content:space-between; gap:12px; align-items:center; background:#f8fafc; }
.opto-patient-form-card summary strong { color:#0f172a; }
.opto-patient-form-card summary span { color:#007c95; font-weight:700; font-size:.9em; }
.opto-form-description, .opto-patient-clinical-form { padding:0 18px 18px; }
.opto-patient-clinical-form { display:grid; gap:14px; }
.opto-form-question { display:grid; gap:7px; margin:0; }
.opto-form-question > span { font-weight:700; color:#1f2937; }
.opto-form-question em { color:#dc2626; font-style:normal; }
.opto-form-question small { color:#64748b; }
.opto-form-question input[type=text], .opto-form-question input[type=number], .opto-form-question input[type=date], .opto-form-question select, .opto-form-question textarea { width:100%; border:1px solid #cbd5e1; border-radius:12px; padding:10px 12px; background:#fff; }
.opto-checkbox-list { display:grid; gap:8px; padding:10px 12px; border:1px solid #e2e8f0; border-radius:12px; background:#f8fafc; }
@media (max-width: 700px) { .opto-patient-hero-with-logout { padding-right:0; } .opto-patient-logout-form { position:static; margin-bottom:12px; text-align:right; } .opto-patient-form-card summary { align-items:flex-start; flex-direction:column; } }

/* v1.1.1 — Clinical questionnaires */
.opto-form-question-type-heading h4 {
	border-bottom: 1px solid #dceff4;
	color: #006c80;
	font-size: 18px;
	margin: 18px 0 6px;
	padding-bottom: 8px;
}
.opto-form-question-type-heading p { color: #58636b; margin-top: 0; }
.opto-form-info-box {
	background: #fff8e5;
	border-left: 4px solid #dba617;
	border-radius: 8px;
	padding: 12px 14px;
}
.opto-form-info-box p { margin: .35em 0 0; }
.opto-radio-pill-list,
.opto-radio-list,
.opto-checkbox-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 8px;
}
.opto-radio-pill-list label,
.opto-radio-list label,
.opto-checkbox-list label,
.opto-consent-checkbox {
	align-items: center;
	background: #f7fbfc;
	border: 1px solid #d8edf3;
	border-radius: 10px;
	display: inline-flex;
	gap: 8px;
	padding: 9px 12px;
}
.opto-form-question[hidden] { display: none !important; }

/* v1.1.2 — formularios responsive y condicionales */
.opto-patient-forms-panel{overflow:hidden}
.opto-patient-form-card{border:1px solid #d8edf3;border-radius:16px;background:#fff;margin:12px 0;padding:0;overflow:hidden}
.opto-patient-form-card>summary{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:16px 18px;cursor:pointer;background:#f7fcfd}
.opto-patient-form-card>summary span{font-size:13px;color:#007c95;font-weight:700}
.opto-patient-clinical-form{display:grid;gap:16px;padding:18px}
.opto-form-question{padding:14px;border:1px solid #e2edf1;border-radius:14px;background:#fff}
.opto-form-question h4{margin:0 0 6px;font-size:18px;color:#1f2a35}
.opto-form-question label{display:grid;gap:8px;margin:0}
.opto-form-question span{font-weight:700;color:#1f2a35}
.opto-form-question small{font-weight:400;color:#667085;line-height:1.4}
.opto-form-question input[type=text],.opto-form-question input[type=email],.opto-form-question input[type=tel],.opto-form-question input[type=number],.opto-form-question input[type=date],.opto-form-question textarea,.opto-form-question select{width:100%;max-width:100%;border:1px solid #ccdce2;border-radius:10px;padding:10px 12px;font-size:15px;background:#fff}
.opto-radio-pill-list,.opto-radio-list,.opto-checkbox-list{display:flex;gap:10px;flex-wrap:wrap}
.opto-radio-pill-list label,.opto-radio-list label,.opto-checkbox-list label,.opto-consent-checkbox{display:flex!important;gap:8px;align-items:center;border:1px solid #d9e8ed;border-radius:999px;padding:9px 12px;background:#f8fbfc;font-weight:500}
.opto-form-info-box{background:#fff8e5;border-left:4px solid #e8a500;border-radius:12px;padding:12px 14px}
.opto-form-question.is-condition-hidden{display:none!important}
@media (max-width:700px){.opto-patient-form-card>summary{display:block}.opto-radio-pill-list,.opto-radio-list,.opto-checkbox-list{display:grid}.opto-radio-pill-list label,.opto-radio-list label,.opto-checkbox-list label{border-radius:12px}.opto-patient-clinical-form{padding:14px;gap:12px}.opto-form-question{padding:12px}}

/* v1.3.1 — Centro de notificaciones del paciente */
.opto-patient-notifications-panel{margin:24px 0;padding:24px;border:1px solid #dbeaf0;border-radius:18px;background:#fff;box-shadow:0 12px 28px rgba(15,23,42,.06)}
.opto-patient-notifications-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.opto-patient-notifications-title p{margin:0 0 4px;color:#007c96;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.opto-patient-notifications-title h3{margin:0;font-size:24px;color:#0f172a}
.opto-patient-notification-counter{display:inline-flex;align-items:center;justify-content:center;min-width:104px;padding:9px 14px;border-radius:999px;background:#eef6f9;color:#475569;font-weight:700;font-size:13px;white-space:nowrap}
.opto-patient-notification-counter.has-unread{background:#00a0be;color:#fff}
.opto-patient-notifications-list{display:grid;gap:12px}
.opto-patient-notification-card{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:16px;border:1px solid #e2e8f0;border-radius:16px;background:#fbfdff}
.opto-patient-notification-card.is-unread{border-color:#8bd9e8;background:#f0fbfd;box-shadow:inset 4px 0 0 #00a0be}
.opto-patient-notification-card.is-read{opacity:.84}
.opto-patient-notification-main{min-width:0}
.opto-patient-notification-type{display:inline-flex;margin-bottom:6px;padding:4px 8px;border-radius:999px;background:#e6f7fb;color:#007c96;font-size:12px;font-weight:700}
.opto-patient-notification-main h4{margin:0 0 6px;font-size:17px;color:#0f172a}
.opto-patient-notification-main p{margin:0 0 8px;color:#334155;line-height:1.55}
.opto-patient-notification-main small{color:#64748b}
.opto-patient-notification-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.opto-patient-notification-actions form{margin:0}
.opto-patient-notification-read-all{margin-top:18px;text-align:right}
.opto-muted-text{color:#64748b;margin:0}
.opto-patient-summary-card-notifications strong{color:#007c96}
@media (max-width:700px){.opto-patient-notifications-title,.opto-patient-notification-card{display:block}.opto-patient-notification-counter{margin-top:10px}.opto-patient-notification-actions{justify-content:flex-start;margin-top:12px}.opto-patient-notification-read-all{text-align:left}}

/* v1.4 - internal patient-professional communication */
.opto-public-communication-box{background:#f8fafc;border:1px solid #dbe7f0;border-radius:16px;margin:18px 0;padding:16px}
.opto-public-communication-box h4{margin:0 0 8px}
.opto-public-muted{color:#64748b;font-size:13px;margin:0 0 12px}
.opto-public-empty-thread{background:#fff;border:1px dashed #cbd5e1;border-radius:12px;color:#64748b;padding:10px 12px}
.opto-public-thread{display:flex;flex-direction:column;gap:10px;margin:12px 0}
.opto-public-message{border:1px solid #e2e8f0;border-radius:14px;max-width:88%;padding:11px 12px}
.opto-public-message-patient{background:#eef9fc;border-color:#bfeaf2;margin-left:auto}
.opto-public-message-professional{background:#fff;margin-right:auto}
.opto-public-message strong{display:block;font-size:13px;margin-bottom:4px}
.opto-public-message p{margin:0;white-space:pre-wrap}
.opto-public-message small{color:#64748b;display:block;font-size:12px;margin-top:5px}
.opto-public-message-form{border-top:1px solid #e2e8f0;margin-top:12px;padding-top:12px}
.opto-public-message-form label span{display:block;font-weight:700;margin-bottom:6px}
.opto-public-message-form textarea{border:1px solid #cbd5e1;border-radius:12px;box-sizing:border-box;display:block;margin-bottom:10px;padding:10px;width:100%}
@media(max-width:782px){.opto-public-message{max-width:100%}}


/* v1.4.3 - Portal notification bell */
.opto-patient-notification-bell {
	position: absolute;
	top: 18px;
	right: 150px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	border-radius: 999px;
	background: rgba(255,255,255,.92);
	border: 1px solid rgba(0,160,190,.22);
	color: #0f5260;
	text-decoration: none;
	font-weight: 700;
	box-shadow: 0 8px 24px rgba(15,82,96,.08);
}
.opto-patient-notification-bell.has-unread {
	background: #fff7e6;
	border-color: #f5c56a;
	color: #92400e;
}
.opto-patient-notification-bell strong {
	min-width: 20px;
	height: 20px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: #00a0be;
	color: #fff;
	font-size: 12px;
	line-height: 1;
}
.opto-patient-notification-bell.has-unread strong { background: #d97706; }
@media (max-width: 700px) {
	.opto-patient-notification-bell { position: static; margin-bottom: 12px; }
}

/* v1.4.4 - Tickets e incidencias en portal */
.opto-patient-tickets-panel{margin-top:22px}.opto-patient-urgent-note{background:#fff7ed;border:1px solid #fed7aa;border-radius:14px;padding:14px 16px;margin:0 0 18px;color:#7c2d12}.opto-patient-ticket-form{background:#f8fafc;border:1px solid #dbe7ef;border-radius:18px;padding:18px;margin-bottom:18px}.opto-patient-ticket-form label{display:block;margin-bottom:12px}.opto-patient-ticket-form label span{display:block;font-weight:700;margin-bottom:6px}.opto-patient-ticket-form input[type=text],.opto-patient-ticket-form select,.opto-patient-ticket-form textarea{width:100%}.opto-patient-ticket-form-grid{display:grid;grid-template-columns:240px 1fr;gap:14px}.opto-patient-ticket-list{display:grid;gap:12px}.opto-patient-ticket-card{background:#fff;border:1px solid #dbe7ef;border-radius:16px;padding:14px}.opto-patient-ticket-card>summary{display:grid;grid-template-columns:160px 1fr auto;gap:12px;align-items:center;cursor:pointer}.opto-patient-ticket-card>summary span{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#007c95;font-weight:700}.opto-patient-ticket-card>summary strong{color:#0f172a}.opto-patient-ticket-card>summary em{font-style:normal;background:#eaf8fb;border-radius:999px;padding:5px 10px;color:#005f73;font-weight:700}.opto-patient-ticket-thread{margin-top:14px}.opto-patient-ticket-reply-form{margin-top:12px}@media(max-width:760px){.opto-patient-ticket-form-grid,.opto-patient-ticket-card>summary{grid-template-columns:1fr}}

/* v1.4.14 - Comunicación Chat en portal paciente */
.opto-patient-hero-with-logout{padding-right:260px;}
.opto-patient-chat-bell{
	align-items:center;
	background:rgba(255,255,255,.92);
	border:1px solid rgba(0,160,190,.22);
	border-radius:999px;
	box-shadow:0 8px 24px rgba(15,82,96,.08);
	color:#0f5260;
	display:inline-flex;
	font-weight:700;
	gap:8px;
	padding:8px 12px;
	position:absolute;
	right:92px;
	text-decoration:none;
	top:18px;
}
.opto-patient-chat-bell.has-unread{background:#eaf8fb;border-color:#73d4e5;color:#005f73;}
.opto-patient-chat-bell strong{align-items:center;background:#00a0be;border-radius:999px;color:#fff;display:inline-flex;font-size:12px;height:20px;justify-content:center;line-height:1;min-width:20px;}
.opto-patient-chat-panel{margin:24px 0;padding:24px;border:1px solid #dbeaf0;border-radius:18px;background:#fff;box-shadow:0 12px 28px rgba(15,23,42,.06);}
.opto-patient-chat-thread{background:#f8fbfe;border:1px solid #dbe7ef;border-radius:18px;display:grid;gap:12px;margin-bottom:18px;max-height:420px;overflow:auto;padding:16px;}
.opto-patient-chat-thread .opto-muted-text{margin:0;}
.opto-public-message-context{background:#f0fbfd;border:1px solid #c7edf5;border-radius:10px;color:#007c95;display:block;font-size:12px;font-weight:700;margin:6px 0 8px;padding:7px 9px;}
.opto-public-message-system{background:#fff7ed;border-color:#fed7aa;color:#7c2d12;}
.opto-patient-direct-chat-form{background:#f8fafc;border:1px solid #dbe7ef;border-radius:18px;padding:18px;}
.opto-patient-direct-chat-form label{display:block;margin:0 0 12px;}
.opto-patient-direct-chat-form label span{display:block;font-weight:800;margin-bottom:6px;}
.opto-patient-direct-chat-form textarea{min-height:110px;width:100%;}
.opto-patient-summary-card-chat strong{color:#007c95;}
@media (max-width:700px){
	.opto-patient-hero-with-logout{padding-right:0;}
	.opto-patient-chat-bell{position:static;margin:0 8px 12px 0;}
}

/* v1.4.15 - Chat del paciente con adjuntos y edición */
.opto-public-attachment-field{background:#f7fbfd;border:1px dashed #bdd8e7;border-radius:12px;display:block;margin:10px 0;padding:10px 12px;}
.opto-public-attachment-field span{display:block;font-weight:800;margin-bottom:6px;}
.opto-public-chat-attachments{display:grid;gap:8px;margin-top:10px;}
.opto-public-chat-attachment{background:#fff;border:1px solid #dbe7ef;border-radius:12px;color:#005f73;display:block;font-weight:800;padding:8px 10px;text-decoration:none;}
.opto-public-chat-image img{border-radius:10px;display:block;max-height:220px;max-width:100%;object-fit:cover;margin-bottom:6px;}
.opto-public-chat-audio audio{display:block;margin-top:6px;width:100%;}
.opto-public-message-tools{border-top:1px dashed #d1dbe6;margin-top:8px;padding-top:6px;}
.opto-public-message-tools summary{cursor:pointer;font-size:12px;font-weight:800;}
.opto-public-message-tools textarea{border:1px solid #c8d8e4;border-radius:10px;box-sizing:border-box;margin:6px 0;width:100%;}
.opto-text-danger{background:none;border:0;color:#b91c1c;cursor:pointer;font-weight:800;padding:0;text-decoration:underline;}

/* v1.5.5 — Portal del paciente: dashboard principal */
.opto-patient-portal-v150{
	--opto-patient-primary:#0ea5a8;
	--opto-patient-primary-dark:#007c95;
	--opto-patient-ink:#0b1f3a;
	--opto-patient-muted:#64748b;
	--opto-patient-line:#dbe7ef;
	--opto-patient-soft:#f2f8fb;
	--opto-patient-surface:#ffffff;
	background:linear-gradient(180deg,#f6fbfd 0%,#f8fafc 100%);
	border:0;
	border-radius:28px;
	box-shadow:0 24px 70px rgba(15,23,42,.08);
	max-width:1360px;
	padding:clamp(16px,2.6vw,30px);
}
.opto-patient-portal-v150 .opto-patient-brand-strip{align-items:center;background:#fff;border:1px solid var(--opto-patient-line);border-radius:22px;display:flex;justify-content:space-between;margin:0 0 18px;padding:14px 18px;box-shadow:0 10px 28px rgba(15,23,42,.05)}
.opto-patient-hero-v155{background:linear-gradient(135deg,#e9fbfc 0%,#ffffff 62%,#f8fbff 100%);border:1px solid #cdeef4;border-radius:26px;box-shadow:0 18px 48px rgba(14,165,168,.08);margin-bottom:14px;padding:clamp(22px,4vw,42px)}
.opto-patient-hero-v155 h2{color:var(--opto-patient-ink);font-size:clamp(2rem,4vw,3.15rem);letter-spacing:-.04em;margin-bottom:8px}.opto-patient-hero-v155 p:not(.opto-patient-kicker){color:#475569;font-size:1.05rem;max-width:720px}.opto-patient-v155-nav{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 18px}.opto-patient-v155-nav a{align-items:center;background:#fff;border:1px solid var(--opto-patient-line);border-radius:999px;color:#0f3f4b;display:inline-flex;font-weight:800;gap:8px;min-height:42px;padding:10px 15px;text-decoration:none;box-shadow:0 8px 22px rgba(15,23,42,.04)}.opto-patient-v155-nav a:hover,.opto-patient-v155-nav a:focus,.opto-patient-v155-nav a.is-active{background:var(--opto-patient-primary);border-color:var(--opto-patient-primary);color:#fff}.opto-patient-v155-nav a span{align-items:center;background:#ef4444;border-radius:999px;color:#fff;display:inline-flex;font-size:12px;height:20px;justify-content:center;min-width:20px;padding:0 6px}.opto-patient-dashboard-v155{display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr));margin:18px 0}.opto-patient-v155-card{align-items:center;background:#fff;border:1px solid var(--opto-patient-line);border-radius:22px;box-shadow:0 16px 42px rgba(15,23,42,.06);display:grid;gap:14px;grid-template-columns:auto 1fr;padding:20px;position:relative;overflow:hidden}.opto-patient-v155-card:before{background:radial-gradient(circle at 20% 20%,rgba(14,165,168,.12),transparent 38%);content:"";inset:0;pointer-events:none;position:absolute}.opto-patient-v155-card>*{position:relative}.opto-patient-v155-card p,.opto-patient-v155-panel-head p{color:var(--opto-patient-primary-dark);font-size:12px;font-weight:900;letter-spacing:.08em;margin:0 0 6px;text-transform:uppercase}.opto-patient-v155-card strong{color:var(--opto-patient-ink);display:block;font-size:1.3rem;line-height:1.15}.opto-patient-v155-card small{color:var(--opto-patient-muted);display:block;font-size:.92rem;margin-top:5px}.opto-patient-v155-icon{align-items:center;background:#e8fbfd;border-radius:18px;color:var(--opto-patient-primary-dark);display:inline-flex;font-size:26px;height:58px;justify-content:center;width:58px}.opto-patient-v155-card .opto-button,.opto-patient-v155-link{grid-column:1/-1;justify-self:start;margin-top:6px}.opto-patient-v155-link{border:1px solid #a9dbe5;border-radius:999px;color:var(--opto-patient-primary-dark);font-weight:900;padding:9px 13px;text-decoration:none}.opto-patient-v155-card-progress{grid-template-columns:auto 1fr}.opto-patient-v155-progress-ring{align-items:center;background:conic-gradient(var(--opto-patient-primary) calc(var(--opto-progress,0)*1%),#e7f1f5 0);border-radius:50%;display:flex;height:86px;justify-content:center;width:86px}.opto-patient-v155-progress-ring span{align-items:center;background:#fff;border-radius:50%;color:var(--opto-patient-ink);display:flex;font-size:1.35rem;font-weight:900;height:62px;justify-content:center;width:62px}.opto-patient-home-grid-v155{display:grid;gap:18px;grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);margin:18px 0}.opto-patient-v155-panel{background:#fff;border:1px solid var(--opto-patient-line);border-radius:24px;box-shadow:0 18px 45px rgba(15,23,42,.06);padding:22px}.opto-patient-v155-panel-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:16px}.opto-patient-v155-panel-head h3{color:var(--opto-patient-ink);font-size:1.45rem;line-height:1.2;margin:0}.opto-patient-v155-panel-head span{background:#dcfdf6;border-radius:999px;color:#04785f;font-size:12px;font-weight:900;padding:7px 10px}.opto-patient-v155-panel-head a{color:var(--opto-patient-primary-dark);font-weight:900;text-decoration:none}.opto-patient-v155-recommended-body{align-items:center;display:grid;gap:24px;grid-template-columns:minmax(220px,.85fr) 1fr}.opto-patient-v155-visual{align-items:center;background:linear-gradient(135deg,#d7fbfb,#f0fdff);border:1px solid #b9edf2;border-radius:22px;display:flex;height:220px;justify-content:center;position:relative;overflow:hidden}.opto-patient-v155-visual:before{border:2px solid rgba(14,165,168,.28);border-radius:50%;content:"";height:150px;position:absolute;width:150px}.opto-patient-v155-visual:after{border:1px dashed rgba(11,31,58,.38);content:"";height:0;position:absolute;width:76%}.opto-patient-v155-visual span{background:var(--opto-patient-primary);border:4px solid #fff;border-radius:50%;box-shadow:0 8px 22px rgba(14,165,168,.2);height:18px;position:absolute;width:18px}.opto-patient-v155-visual span:nth-child(1){left:17%}.opto-patient-v155-visual span:nth-child(2){background:#0b1f3a;left:50%;transform:translateX(-50%)}.opto-patient-v155-visual span:nth-child(3){right:17%}.opto-patient-v155-recommended-body p{color:#475569;font-size:1rem;margin:0 0 14px}.opto-patient-v155-recommended-body ul{display:grid;gap:8px;list-style:none;margin:0 0 18px;padding:0}.opto-patient-v155-recommended-body li{background:#f7fbfd;border:1px solid var(--opto-patient-line);border-radius:14px;color:#334155;padding:10px 12px}.opto-patient-v155-secondary{color:var(--opto-patient-primary-dark);font-weight:900;margin-left:14px;text-decoration:none}.opto-patient-v155-side{display:grid;gap:18px}.opto-patient-v155-message-list{display:grid;gap:10px}.opto-patient-v155-message-list div{background:#f8fbfd;border:1px solid var(--opto-patient-line);border-radius:16px;padding:12px}.opto-patient-v155-message-list strong{color:var(--opto-patient-ink);display:block}.opto-patient-v155-message-list span{color:#475569;display:block;margin:3px 0}.opto-patient-v155-message-list small{color:var(--opto-patient-muted)}.opto-patient-v155-doc-placeholder{align-items:center;background:#f8fbfd;border:1px dashed #bdd8e7;border-radius:18px;color:#64748b;display:flex;gap:12px;padding:16px}.opto-patient-v155-doc-placeholder span{align-items:center;background:#eef2ff;border-radius:14px;color:#4f46e5;display:flex;font-size:24px;height:48px;justify-content:center;width:48px}.opto-patient-v155-actions{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr));margin:18px 0}.opto-patient-v155-actions a{align-items:center;background:#fff;border:1px solid var(--opto-patient-line);border-radius:20px;color:#0b1f3a;display:grid;gap:4px;grid-template-columns:auto 1fr auto;padding:16px;text-decoration:none;box-shadow:0 12px 30px rgba(15,23,42,.05)}.opto-patient-v155-actions a:after{color:#94a3b8;content:"›";font-size:28px}.opto-patient-v155-actions a span{align-items:center;background:#e8fbfd;border-radius:16px;color:var(--opto-patient-primary-dark);display:flex;font-size:22px;height:48px;justify-content:center;grid-row:1/3;width:48px}.opto-patient-v155-actions strong{font-size:1rem}.opto-patient-v155-actions small{color:#64748b}.opto-patient-v155-reminder{align-items:center;background:linear-gradient(90deg,#dffafa,#fff);border:1px solid #bceff2;border-radius:22px;display:flex;gap:14px;margin:18px 0;padding:18px}.opto-patient-v155-reminder>span{align-items:center;background:var(--opto-patient-primary);border-radius:50%;color:#fff;display:flex;font-size:24px;height:52px;justify-content:center;width:52px}.opto-patient-v155-reminder strong{color:var(--opto-patient-ink)}.opto-patient-v155-reminder p{color:#475569;margin:3px 0 0}.opto-patient-legacy-summary-grid{display:none}.opto-patient-portal-v150 .opto-patient-panel{border-color:var(--opto-patient-line);border-radius:24px;box-shadow:0 14px 34px rgba(15,23,42,.04)}
@media(max-width:1180px){.opto-patient-dashboard-v155{grid-template-columns:repeat(2,minmax(0,1fr))}.opto-patient-home-grid-v155{grid-template-columns:1fr}.opto-patient-v155-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.opto-patient-dashboard-v155,.opto-patient-v155-actions{grid-template-columns:1fr}.opto-patient-v155-card,.opto-patient-v155-recommended-body{grid-template-columns:1fr}.opto-patient-v155-secondary{display:block;margin:12px 0 0}.opto-patient-v155-nav{display:grid}.opto-patient-hero-v155{padding-top:84px}.opto-patient-portal-v150 .opto-patient-brand-strip{align-items:flex-start;gap:10px}.opto-patient-v155-panel-head{display:block}.opto-patient-v155-panel-head a,.opto-patient-v155-panel-head span{display:inline-flex;margin-top:10px}.opto-patient-v155-actions a{grid-template-columns:auto 1fr}}

/* v1.5.6 — Portal del paciente: ejercicios y seguimiento */
.opto-patient-program-v156{
	background:#fff;
	border:1px solid var(--opto-patient-line,#dbe7ef);
	border-radius:28px;
	box-shadow:0 18px 48px rgba(15,23,42,.06);
	margin:22px 0;
	padding:clamp(18px,2.5vw,28px);
}
.opto-patient-program-head-v156{
	align-items:center;
	display:flex;
	gap:18px;
	justify-content:space-between;
	margin-bottom:18px;
}
.opto-patient-program-head-v156 h3{
	color:var(--opto-patient-ink,#0b1f3a);
	font-size:clamp(1.75rem,3vw,2.35rem);
	letter-spacing:-.035em;
	line-height:1.08;
	margin:0 0 8px;
}
.opto-patient-program-head-v156 p:not(.opto-patient-kicker){color:#475569;margin:0;max-width:760px;}
.opto-patient-program-progress-v156{
	align-items:center;
	background:linear-gradient(135deg,#eefcff,#fff);
	border:1px solid #cceef4;
	border-radius:22px;
	display:flex;
	gap:14px;
	min-width:245px;
	padding:14px 16px;
}
.opto-patient-program-progress-v156 strong{color:#0b1f3a;display:block;font-weight:900;}
.opto-patient-program-progress-v156 small{color:#64748b;display:block;margin-top:3px;}
.opto-patient-week-strip-v156{
	display:grid;
	gap:10px;
	grid-template-columns:repeat(7,minmax(0,1fr));
	margin:0 0 20px;
}
.opto-patient-week-day-v156{
	background:#f8fbfd;
	border:1px solid var(--opto-patient-line,#dbe7ef);
	border-radius:18px;
	color:#334155;
	display:grid;
	gap:4px;
	min-height:88px;
	padding:12px 10px;
	text-align:center;
	text-decoration:none;
}
.opto-patient-week-day-v156 span{color:#64748b;font-size:12px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;}
.opto-patient-week-day-v156 strong{color:#0b1f3a;font-size:1.55rem;line-height:1;}
.opto-patient-week-day-v156 small{border-radius:999px;color:#64748b;font-size:12px;font-weight:900;justify-self:center;padding:4px 8px;}
.opto-patient-week-day-v156.is-today{background:#e9fbfc;border-color:#0ea5a8;box-shadow:0 10px 24px rgba(14,165,168,.10);}
.opto-patient-week-day-v156.is-completed small{background:#dcfce7;color:#166534;}
.opto-patient-week-day-v156.has-pending small{background:#fff7ed;color:#9a3412;}
.opto-patient-week-day-v156.is-empty{opacity:.72;}
.opto-patient-program-grid-v156{
	display:grid;
	gap:18px;
	grid-template-columns:minmax(260px,.72fr) minmax(0,1.38fr) minmax(280px,.78fr);
	align-items:start;
}
.opto-patient-today-list-v156,
.opto-patient-selected-exercise-v156,
.opto-patient-program-chat-v156{
	background:#fff;
	border:1px solid var(--opto-patient-line,#dbe7ef);
	border-radius:24px;
	box-shadow:0 14px 34px rgba(15,23,42,.045);
	padding:18px;
}
.opto-patient-today-list-v156 .opto-patient-v155-panel-head h4,
.opto-patient-program-chat-v156 .opto-patient-v155-panel-head h4{
	color:#0b1f3a;
	font-size:1.12rem;
	margin:0;
}
.opto-patient-exercise-cards-v156{display:grid;gap:10px;}
.opto-patient-exercise-card-v156{
	align-items:center;
	background:#f8fbfd;
	border:1px solid #e0edf3;
	border-radius:18px;
	box-sizing:border-box;
	color:#0b1f3a;
	cursor:pointer;
	display:grid;
	gap:12px;
	grid-template-columns:auto 1fr;
	padding:13px;
	text-align:left;
	transition:.18s ease;
	width:100%;
}
.opto-patient-exercise-card-v156:hover,
.opto-patient-exercise-card-v156:focus{
	background:#eefcff;
	border-color:#95dce8;
	box-shadow:0 10px 22px rgba(14,165,168,.08);
	outline:none;
}
.opto-patient-exercise-card-v156.is-selected{border-color:#0ea5a8;box-shadow:0 0 0 3px rgba(14,165,168,.12);}
.opto-patient-exercise-card-v156.is-completed{background:#f0fdf4;border-color:#bbf7d0;}
.opto-patient-exercise-card-v156 strong{display:block;font-size:.98rem;line-height:1.2;}
.opto-patient-exercise-card-v156 small{color:#64748b;display:block;margin-top:4px;}
.opto-patient-exercise-card-v156 em{
	border-radius:999px;
	font-size:11px;
	font-style:normal;
	font-weight:900;
	grid-column:2;
	justify-self:start;
	padding:5px 9px;
	text-transform:uppercase;
}
.opto-patient-exercise-card-v156:not(.is-completed) em{background:#fff7ed;color:#9a3412;}
.opto-patient-exercise-card-v156.is-completed em{background:#dcfce7;color:#166534;}
.opto-patient-exercise-icon-v156{
	align-items:center;
	background:#e8fbfd;
	border-radius:16px;
	color:#007c95;
	display:flex;
	font-size:22px;
	height:48px;
	justify-content:center;
	grid-row:1/3;
	width:48px;
}
.opto-patient-selected-exercise-v156{overflow:hidden;padding:0;}
.opto-patient-selected-head-v156{
	align-items:flex-start;
	background:linear-gradient(135deg,#e9fbfc 0%,#fff 72%);
	border-bottom:1px solid #dbe7ef;
	display:flex;
	gap:18px;
	justify-content:space-between;
	padding:22px;
}
.opto-patient-selected-head-v156 span{
	background:#dcfdf6;
	border-radius:999px;
	color:#04785f;
	display:inline-flex;
	font-size:12px;
	font-weight:900;
	letter-spacing:.06em;
	margin-bottom:9px;
	padding:7px 10px;
	text-transform:uppercase;
}
.opto-patient-selected-head-v156 h4{color:#0b1f3a;font-size:1.55rem;line-height:1.1;margin:0 0 8px;}
.opto-patient-selected-head-v156 p{color:#475569;margin:0;}
.opto-patient-duration-pill-v156{
	align-items:center;
	background:#fff;
	border:1px solid #c7edf5;
	border-radius:18px;
	display:grid;
	justify-items:center;
	min-width:92px;
	padding:12px;
}
.opto-patient-duration-pill-v156 strong{color:#0ea5a8;font-size:1.9rem;line-height:1;}
.opto-patient-duration-pill-v156 small{color:#64748b;font-size:12px;font-weight:800;margin-top:4px;}
.opto-patient-selected-body-v156{
	display:grid;
	gap:18px;
	grid-template-columns:minmax(220px,.75fr) 1fr;
	padding:22px;
}
.opto-patient-selected-visual-v156{
	align-items:center;
	background:linear-gradient(135deg,#d7fbfb,#f0fdff);
	border:1px solid #b9edf2;
	border-radius:22px;
	display:flex;
	height:240px;
	justify-content:center;
	min-height:200px;
	position:relative;
	overflow:hidden;
}
.opto-patient-selected-visual-v156:before{border:2px solid rgba(14,165,168,.28);border-radius:50%;content:"";height:156px;position:absolute;width:156px;}
.opto-patient-selected-visual-v156:after{border:1px dashed rgba(11,31,58,.38);content:"";height:0;position:absolute;width:78%;}
.opto-patient-selected-visual-v156 span{background:#0ea5a8;border:4px solid #fff;border-radius:50%;box-shadow:0 8px 22px rgba(14,165,168,.22);height:18px;position:absolute;width:18px;}
.opto-patient-selected-visual-v156 span:nth-child(1){left:16%;}
.opto-patient-selected-visual-v156 span:nth-child(2){background:#0b1f3a;left:50%;transform:translateX(-50%);}
.opto-patient-selected-visual-v156 span:nth-child(3){right:16%;}
.opto-patient-selected-info-v156{display:grid;gap:14px;}
.opto-patient-selected-info-v156 section{background:#f8fbfd;border:1px solid #dbe7ef;border-radius:18px;padding:14px 16px;}
.opto-patient-selected-info-v156 h5{color:#0b1f3a;font-size:.98rem;margin:0 0 8px;}
.opto-patient-selected-info-v156 p{color:#475569;margin:0;}
.opto-patient-selected-actions-v156{display:flex;flex-wrap:wrap;gap:10px;padding:0 22px 20px;}
.opto-patient-quick-comment-v156{
	background:#f8fbfd;
	border-top:1px solid #dbe7ef;
	padding:18px 22px 22px;
}
.opto-patient-quick-comment-v156 label span{color:#0b1f3a;display:block;font-weight:900;margin-bottom:8px;}
.opto-patient-quick-comment-v156 textarea{border:1px solid #cbd5e1;border-radius:16px;box-sizing:border-box;min-height:104px;padding:12px;width:100%;}
.opto-patient-program-chat-v156{display:grid;gap:12px;}
.opto-patient-program-chat-preview-v156{display:grid;gap:10px;max-height:220px;overflow:auto;}
.opto-patient-program-chat-preview-v156 div{background:#f8fbfd;border:1px solid #dbe7ef;border-radius:16px;padding:12px;}
.opto-patient-program-chat-preview-v156 strong{color:#0b1f3a;display:block;}
.opto-patient-program-chat-preview-v156 span{color:#475569;display:block;margin:4px 0;}
.opto-patient-program-chat-preview-v156 small{color:#64748b;}
.opto-patient-program-chat-form-v156{border:0;margin:0;padding:0;}
.opto-patient-program-chat-form-v156 textarea{min-height:92px;}
.opto-patient-calendar-shell .opto-patient-section-title h3:after{content:" completo";}
@media(max-width:1220px){
	.opto-patient-program-grid-v156{grid-template-columns:minmax(260px,.9fr) minmax(0,1.25fr);}
	.opto-patient-program-chat-v156{grid-column:1/-1;}
}
@media(max-width:900px){
	.opto-patient-program-head-v156{align-items:stretch;display:grid;}
	.opto-patient-program-progress-v156{min-width:0;}
	.opto-patient-week-strip-v156{grid-template-columns:repeat(4,minmax(0,1fr));}
	.opto-patient-program-grid-v156{grid-template-columns:1fr;}
	.opto-patient-selected-body-v156{grid-template-columns:1fr;}
}
@media(max-width:560px){
	.opto-patient-week-strip-v156{grid-template-columns:repeat(2,minmax(0,1fr));}
	.opto-patient-selected-head-v156{display:grid;}
	.opto-patient-duration-pill-v156{justify-self:start;}
	.opto-patient-selected-actions-v156 .opto-button,
	.opto-patient-selected-actions-v156 .opto-soft-button{justify-content:center;width:100%;}
}

/* v1.5.7 — Portal del paciente: citas, documentos, informes, mensajes y progreso */
.opto-patient-portal-v157 .opto-patient-v157-nav{position:sticky;top:12px;z-index:6;background:rgba(248,251,253,.82);backdrop-filter:blur(10px);border:1px solid rgba(219,231,239,.72);border-radius:22px;padding:10px;box-shadow:0 12px 32px rgba(15,23,42,.05)}
.opto-patient-v157-section{background:#fff;border:1px solid var(--opto-patient-line,#dbe7ef);border-radius:28px;box-shadow:0 18px 48px rgba(15,23,42,.055);margin:22px 0;padding:clamp(18px,2.5vw,28px)}
.opto-patient-v157-section .opto-patient-section-title{align-items:flex-start;border:0;margin:0 0 18px;padding:0;display:flex;gap:16px;justify-content:space-between}
.opto-patient-v157-section .opto-patient-section-title h3{color:#0b1f3a;font-size:clamp(1.55rem,2.6vw,2.2rem);letter-spacing:-.035em;line-height:1.08;margin:0 0 8px}
.opto-patient-v157-section .opto-patient-section-title p:not(.opto-patient-kicker){color:#475569;margin:0;max-width:760px}
.opto-patient-v157-appointments-grid{display:grid;gap:16px;grid-template-columns:minmax(280px,.9fr) minmax(280px,1fr) minmax(280px,1fr)}
.opto-patient-v157-card,.opto-patient-v157-feature-card{background:#fff;border:1px solid #dbe7ef;border-radius:24px;box-shadow:0 14px 34px rgba(15,23,42,.045);padding:20px}
.opto-patient-v157-feature-card{align-items:center;background:linear-gradient(135deg,#e9fbfc 0%,#fff 70%);display:grid;gap:14px;grid-template-columns:auto 1fr}
.opto-patient-v157-feature-card>a{background:#0ea5a8;border-radius:999px;color:#fff;font-weight:900;grid-column:1/-1;justify-self:start;padding:10px 14px;text-decoration:none}
.opto-patient-v157-feature-card p,.opto-patient-v157-progress-card p{color:#007c95;font-size:12px;font-weight:900;letter-spacing:.08em;margin:0 0 6px;text-transform:uppercase}
.opto-patient-v157-feature-card h4{color:#0b1f3a;font-size:1.35rem;margin:0 0 5px}
.opto-patient-v157-feature-card small{color:#64748b;display:block;line-height:1.45}
.opto-patient-v157-icon{align-items:center;background:#fff;border:1px solid #bdebf2;border-radius:18px;color:#007c95;display:flex;font-size:28px;height:64px;justify-content:center;width:64px}
.opto-patient-v157-card-head{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px}
.opto-patient-v157-card-head h4{color:#0b1f3a;font-size:1.15rem;margin:0}
.opto-patient-v157-card-head span{background:#eefcff;border:1px solid #c7edf5;border-radius:999px;color:#007c95;font-size:12px;font-weight:900;padding:6px 10px}
.opto-patient-v157-empty{background:#f8fbfd;border:1px dashed #bdd8e7;border-radius:18px;color:#64748b;padding:18px}
.opto-patient-v157-empty strong{color:#0b1f3a;display:block;margin-bottom:6px}
.opto-patient-v157-empty p{margin:0}
.opto-patient-v157-mini-list{display:grid;gap:10px;list-style:none;margin:0;padding:0}
.opto-patient-v157-mini-list li{background:#f8fbfd;border:1px solid #e0edf3;border-radius:16px;padding:14px}
.opto-patient-v157-mini-list strong{color:#0b1f3a;display:block}
.opto-patient-v157-mini-list small{color:#64748b;display:block;margin-top:4px}
.opto-patient-v157-doc-layout{display:grid;gap:18px;grid-template-columns:minmax(220px,.35fr) 1fr}
.opto-patient-v157-doc-categories{background:#f8fbfd;border:1px solid #dbe7ef;border-radius:22px;display:grid;gap:8px;padding:12px;align-self:start}
.opto-patient-v157-doc-categories a{border-radius:14px;color:#334155;font-weight:900;padding:11px 12px;text-decoration:none}
.opto-patient-v157-doc-categories a:hover,.opto-patient-v157-doc-categories a.is-active{background:#0ea5a8;color:#fff}
.opto-patient-v157-document-list{display:grid;gap:12px}
.opto-patient-v157-file-card{align-items:center;background:#fff;border:1px solid #dbe7ef;border-radius:20px;display:grid;gap:14px;grid-template-columns:auto 1fr auto;padding:16px}
.opto-patient-v157-file-card>span{align-items:center;background:#eef2ff;border-radius:16px;color:#4f46e5;display:flex;font-size:13px;font-weight:900;height:54px;justify-content:center;width:54px}
.opto-patient-v157-file-card strong{color:#0b1f3a;display:block}
.opto-patient-v157-file-card small{color:#64748b;display:block;margin-top:4px}
.opto-patient-v157-file-card em{background:#f1f5f9;border-radius:999px;color:#475569;font-size:12px;font-style:normal;font-weight:900;padding:7px 10px}
.opto-patient-progress-v157{background:linear-gradient(135deg,#fff 0%,#f8fdff 100%)}
.opto-patient-v157-progress-grid{display:grid;gap:16px;grid-template-columns:minmax(280px,.9fr) minmax(280px,.9fr) minmax(300px,1.1fr)}
.opto-patient-v157-progress-card{align-items:center;background:#fff;border:1px solid #dbe7ef;border-radius:24px;box-shadow:0 14px 34px rgba(15,23,42,.045);display:flex;gap:16px;padding:20px}
.opto-patient-v157-progress-card strong{color:#0b1f3a;display:block;font-size:1.2rem}
.opto-patient-v157-progress-card small{color:#64748b;display:block;margin-top:4px}
.opto-patient-v157-bars{display:grid;gap:14px}
.opto-patient-v157-bars div{display:grid;gap:6px;grid-template-columns:1fr auto;align-items:center}
.opto-patient-v157-bars label{color:#0b1f3a;font-weight:900}
.opto-patient-v157-bars span{background:#e8f2f7;border-radius:999px;display:block;height:12px;grid-column:1/-1;overflow:hidden}
.opto-patient-v157-bars i{background:linear-gradient(90deg,#0ea5a8,#22c7d0);border-radius:999px;display:block;height:100%}
.opto-patient-v157-bars strong{color:#007c95;font-weight:900}
.opto-patient-chat-panel-v157{background:#fff;border:1px solid #dbe7ef;border-radius:28px;box-shadow:0 18px 48px rgba(15,23,42,.055);overflow:hidden;padding:0}
.opto-patient-chat-panel-v157>.opto-patient-section-title{background:linear-gradient(135deg,#e9fbfc,#fff);border-bottom:1px solid #dbe7ef;margin:0;padding:22px 24px}
.opto-patient-chat-panel-v157 .opto-patient-urgent-note{margin:18px 24px 0}
.opto-patient-chat-panel-v157 .opto-patient-chat-thread{background:#f8fbfd;border:1px solid #e0edf3;border-radius:22px;margin:18px 24px;max-height:520px;overflow:auto;padding:18px}
.opto-patient-chat-panel-v157 .opto-public-message{box-shadow:0 10px 24px rgba(15,23,42,.04);max-width:78%}
.opto-patient-chat-panel-v157 .opto-public-message-patient{margin-left:auto;background:#e9fbfc;border-color:#bdebf2}
.opto-patient-chat-panel-v157 .opto-public-message-professional,.opto-patient-chat-panel-v157 .opto-public-message-system{background:#fff}
.opto-patient-chat-panel-v157 .opto-patient-direct-chat-form{background:#fff;border-top:1px solid #dbe7ef;margin:0;padding:20px 24px}
.opto-patient-tickets-panel-v157{border-radius:28px;box-shadow:0 18px 48px rgba(15,23,42,.04)}
@media(max-width:1180px){.opto-patient-v157-appointments-grid,.opto-patient-v157-progress-grid{grid-template-columns:1fr}.opto-patient-v157-doc-layout{grid-template-columns:1fr}.opto-patient-v157-doc-categories{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.opto-patient-portal-v157 .opto-patient-v157-nav{position:static}.opto-patient-v157-section .opto-patient-section-title{display:grid}.opto-patient-v157-feature-card,.opto-patient-v157-file-card{grid-template-columns:1fr}.opto-patient-v157-doc-categories{grid-template-columns:1fr}.opto-patient-v157-progress-card{align-items:flex-start;display:grid}.opto-patient-chat-panel-v157 .opto-public-message{max-width:100%}.opto-patient-chat-panel-v157>.opto-patient-section-title,.opto-patient-chat-panel-v157 .opto-patient-direct-chat-form{padding:18px}.opto-patient-chat-panel-v157 .opto-patient-urgent-note,.opto-patient-chat-panel-v157 .opto-patient-chat-thread{margin:16px 18px}}

/* v1.5.8 — Rediseño completo del portal del paciente */
.opto-patient-portal-v158{
  --opto-158-primary:#0ea5a8;
  --opto-158-primary-dark:#007c95;
  --opto-158-ink:#0b1f3a;
  --opto-158-muted:#64748b;
  --opto-158-line:#dbe7ef;
  --opto-158-bg:#f5f9fb;
  --opto-158-sidebar:#071f35;
  --opto-158-sidebar-2:#092a45;
  background:var(--opto-158-bg) !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  box-sizing:border-box;
  color:var(--opto-158-ink);
  display:grid !important;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  gap:0 28px;
  grid-template-columns:280px minmax(0,1fr);
  margin:0 auto !important;
  max-width:1720px !important;
  min-height:calc(100vh - 40px);
  overflow:visible !important;
  padding:22px 24px 28px 24px !important;
  position:relative;
  width:100% !important;
}
.opto-patient-portal-v158 *{box-sizing:border-box;}
.opto-patient-portal-v158>.opto-patient-brand-strip{
  align-items:center !important;
  align-self:start;
  background:linear-gradient(180deg,var(--opto-158-sidebar) 0%,var(--opto-158-sidebar-2) 100%) !important;
  border:0 !important;
  border-radius:30px 30px 0 0 !important;
  box-shadow:0 24px 50px rgba(2,18,32,.18) !important;
  display:flex !important;
  gap:12px;
  grid-column:1;
  grid-row:1;
  justify-content:flex-start !important;
  margin:0 !important;
  min-height:122px;
  padding:22px 20px 12px !important;
  position:sticky;
  top:16px;
  z-index:12;
}
.opto-patient-portal-v158>.opto-patient-brand-strip .opto-brand-logo,
.opto-patient-portal-v158>.opto-patient-brand-strip img{
  background:#ffffff;
  border-radius:22px;
  box-shadow:0 14px 32px rgba(0,0,0,.18);
  display:block;
  height:auto !important;
  max-height:none !important;
  padding:14px 16px;
  width:190px !important;
}
.opto-patient-portal-v158>.opto-patient-brand-strip .opto-ds-version-pill{
  background:#0ea5a8 !important;
  border:0 !important;
  color:#fff !important;
  font-size:12px !important;
  margin-left:auto;
  padding:8px 11px !important;
}
.opto-patient-portal-v158>.opto-patient-app-sidebar-v158{
  align-self:start;
  background:linear-gradient(180deg,var(--opto-158-sidebar) 0%,var(--opto-158-sidebar-2) 100%) !important;
  border:0 !important;
  border-radius:0 0 30px 30px !important;
  box-shadow:0 24px 50px rgba(2,18,32,.18) !important;
  display:flex !important;
  flex-direction:column;
  gap:8px !important;
  grid-column:1;
  grid-row:2 / span 30;
  margin:0 !important;
  min-height:calc(100vh - 170px);
  padding:16px 14px 22px !important;
  position:sticky !important;
  top:138px !important;
  z-index:11;
}
.opto-patient-portal-v158>.opto-patient-app-sidebar-v158:before{
  color:rgba(255,255,255,.56);
  content:"Portal del paciente";
  display:block;
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
  margin:0 10px 8px;
  text-transform:uppercase;
}
.opto-patient-portal-v158>.opto-patient-app-sidebar-v158 a{
  align-items:center;
  background:transparent !important;
  border:0 !important;
  border-radius:18px !important;
  box-shadow:none !important;
  color:#eaf8fb !important;
  display:grid !important;
  font-size:15px;
  font-weight:800;
  gap:12px !important;
  grid-template-columns:34px minmax(0,1fr) auto;
  justify-content:stretch;
  min-height:50px;
  padding:10px 12px !important;
  text-decoration:none;
}
.opto-patient-portal-v158>.opto-patient-app-sidebar-v158 a:hover,
.opto-patient-portal-v158>.opto-patient-app-sidebar-v158 a:focus,
.opto-patient-portal-v158>.opto-patient-app-sidebar-v158 a.is-active{
  background:linear-gradient(135deg,#0ea5a8,#07869c) !important;
  color:#fff !important;
  outline:0;
}
.opto-patient-portal-v158 .opto-patient-nav-icon{
  align-items:center;
  background:rgba(255,255,255,.08) !important;
  border:1px solid rgba(255,255,255,.14);
  border-radius:13px !important;
  color:#fff !important;
  display:flex !important;
  font-size:18px !important;
  height:34px;
  justify-content:center;
  min-width:34px;
  padding:0 !important;
}
.opto-patient-portal-v158 .opto-patient-nav-badge{
  align-items:center;
  background:#ef4444 !important;
  border-radius:999px !important;
  color:#fff !important;
  display:inline-flex !important;
  font-size:11px !important;
  font-weight:900;
  height:22px !important;
  justify-content:center;
  min-width:22px !important;
  padding:0 7px !important;
}
.opto-patient-portal-v158 .opto-patient-nav-badge.is-warning{background:#f97316 !important;}
.opto-patient-portal-v158>.opto-patient-hero-v155{
  align-items:center;
  background:#fff !important;
  border:1px solid var(--opto-158-line) !important;
  border-radius:30px !important;
  box-shadow:0 18px 45px rgba(15,23,42,.055) !important;
  display:grid;
  gap:12px 18px;
  grid-column:2;
  grid-template-columns:minmax(0,1fr) auto auto auto;
  margin:0 0 20px !important;
  min-height:122px;
  padding:24px 28px !important;
  position:relative;
}
.opto-patient-portal-v158>.opto-patient-hero-v155 .opto-patient-kicker{color:var(--opto-158-primary-dark);font-size:12px;font-weight:900;letter-spacing:.12em;margin:0;text-transform:uppercase;}
.opto-patient-portal-v158>.opto-patient-hero-v155 h2{font-size:clamp(1.85rem,3vw,3rem) !important;grid-column:1;margin:0 !important;}
.opto-patient-portal-v158>.opto-patient-hero-v155 p:not(.opto-patient-kicker){grid-column:1;margin:0;max-width:720px;}
.opto-patient-portal-v158 .opto-patient-notification-bell,
.opto-patient-portal-v158 .opto-patient-chat-bell{
  align-items:center;background:#f8fbfd;border:1px solid var(--opto-158-line);border-radius:18px;color:var(--opto-158-ink);display:inline-flex;height:54px;justify-content:center;position:relative;text-decoration:none;width:54px;
}
.opto-patient-portal-v158 .opto-patient-notification-bell strong,
.opto-patient-portal-v158 .opto-patient-chat-bell strong{
  align-items:center;background:#ef4444;border-radius:999px;color:#fff;display:flex;font-size:11px;height:22px;justify-content:center;min-width:22px;padding:0 6px;position:absolute;right:-6px;top:-8px;
}
.opto-patient-portal-v158 .opto-patient-chat-bell strong{background:#0ea5a8;}
.opto-patient-portal-v158 .opto-patient-logout-form{grid-column:4;grid-row:1 / span 3;align-self:center;}
.opto-patient-portal-v158 .opto-logout-button{border-color:#e2e8f0 !important;background:#fff !important;color:var(--opto-158-ink) !important;}
.opto-patient-portal-v158>.opto-patient-alert,
.opto-patient-portal-v158>.opto-patient-note,
.opto-patient-portal-v158>section,
.opto-patient-portal-v158>.opto-patient-warning,
.opto-patient-portal-v158>.opto-public-modal-stack,
.opto-patient-portal-v158>script{
  grid-column:2;
}
.opto-patient-portal-v158 .opto-patient-dashboard-v155{
  display:grid !important;
  gap:16px !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  margin:0 0 18px !important;
}
.opto-patient-portal-v158 .opto-patient-v155-card,
.opto-patient-portal-v158 .opto-patient-v155-panel,
.opto-patient-portal-v158 .opto-patient-v157-section,
.opto-patient-portal-v158 .opto-patient-program-v156,
.opto-patient-portal-v158 .opto-patient-chat-panel-v157,
.opto-patient-portal-v158 .opto-patient-tickets-panel-v157{
  border:1px solid var(--opto-158-line) !important;
  border-radius:28px !important;
  box-shadow:0 18px 45px rgba(15,23,42,.055) !important;
}
.opto-patient-portal-v158 .opto-patient-v155-card{min-height:132px;padding:22px !important;}
.opto-patient-portal-v158 .opto-patient-home-grid-v155{grid-template-columns:minmax(0,1.35fr) minmax(360px,.75fr) !important;}
.opto-patient-portal-v158 .opto-patient-v155-actions{grid-template-columns:repeat(4,minmax(0,1fr)) !important;}
.opto-patient-portal-v158 .opto-patient-program-grid-v156{grid-template-columns:minmax(280px,.72fr) minmax(0,1.18fr) minmax(320px,.72fr) !important;}
.opto-patient-portal-v158 .opto-patient-selected-exercise-v156,
.opto-patient-portal-v158 .opto-patient-today-list-v156,
.opto-patient-portal-v158 .opto-patient-program-chat-v156{min-width:0;}
.opto-patient-portal-v158 .opto-patient-selected-body-v156{grid-template-columns:minmax(260px,.9fr) minmax(280px,1fr) !important;}
.opto-patient-portal-v158 .opto-patient-calendar-shell .opto-patient-section-title{position:relative;}
.opto-patient-portal-v158 .opto-patient-v157-appointments-grid{grid-template-columns:minmax(300px,.85fr) repeat(2,minmax(280px,1fr)) !important;}
.opto-patient-portal-v158 .opto-patient-v157-progress-grid{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
.opto-patient-portal-v158 .opto-patient-v157-doc-layout{grid-template-columns:230px minmax(0,1fr) !important;}
.opto-patient-portal-v158 .opto-patient-help-grid-v158{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr));}
.opto-patient-portal-v158 .opto-patient-help-grid-v158>a,
.opto-patient-portal-v158 .opto-patient-help-grid-v158>div{align-items:flex-start;background:#f8fbfd;border:1px solid var(--opto-158-line);border-radius:22px;color:var(--opto-158-ink);display:grid;gap:7px;grid-template-columns:auto 1fr;padding:18px;text-decoration:none;}
.opto-patient-portal-v158 .opto-patient-help-grid-v158 span{align-items:center;background:#e9fbfc;border-radius:16px;color:var(--opto-158-primary-dark);display:flex;font-size:24px;grid-row:1/3;height:50px;justify-content:center;width:50px;}
.opto-patient-portal-v158 .opto-patient-help-grid-v158 strong{display:block;font-size:1.05rem;}
.opto-patient-portal-v158 .opto-patient-help-grid-v158 small{color:var(--opto-158-muted);line-height:1.45;}
.opto-patient-portal-v158 .opto-public-message-form textarea,
.opto-patient-portal-v158 textarea,
.opto-patient-portal-v158 input,
.opto-patient-portal-v158 select{border-color:#cbd5e1;border-radius:16px;}
.opto-patient-portal-v158 .opto-button{background:linear-gradient(135deg,#0ea5a8,#07869c) !important;border:0 !important;border-radius:15px !important;box-shadow:0 12px 24px rgba(14,165,168,.18);color:#fff !important;font-weight:900;}
.opto-patient-portal-v158 .opto-soft-button{border-radius:15px !important;font-weight:900;}
.opto-patient-portal-v158 .opto-patient-v157-nav{position:sticky !important;}
.opto-patient-portal-v158 .opto-patient-v157-section{scroll-margin-top:24px;}
.opto-patient-portal-v158 .opto-patient-chat-panel-v157 .opto-patient-chat-thread{max-height:620px;}
@media(max-width:1320px){
  .opto-patient-portal-v158{grid-template-columns:92px minmax(0,1fr);gap:0 18px;padding:16px !important;}
  .opto-patient-portal-v158>.opto-patient-brand-strip{justify-content:center !important;padding:16px 10px 8px !important;}
  .opto-patient-portal-v158>.opto-patient-brand-strip .opto-brand-logo,.opto-patient-portal-v158>.opto-patient-brand-strip img{max-width:62px !important;padding:9px !important;width:62px !important;}
  .opto-patient-portal-v158>.opto-patient-brand-strip .opto-ds-version-pill{display:none;}
  .opto-patient-portal-v158>.opto-patient-app-sidebar-v158{padding:14px 10px !important;top:112px !important;}
  .opto-patient-portal-v158>.opto-patient-app-sidebar-v158:before{display:none;}
  .opto-patient-portal-v158>.opto-patient-app-sidebar-v158 a{grid-template-columns:1fr;justify-items:center;padding:10px 8px !important;}
  .opto-patient-portal-v158>.opto-patient-app-sidebar-v158 a strong{display:none;}
  .opto-patient-portal-v158 .opto-patient-nav-badge{position:absolute;right:5px;top:5px;}
  .opto-patient-portal-v158 .opto-patient-dashboard-v155{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .opto-patient-portal-v158 .opto-patient-home-grid-v155,.opto-patient-portal-v158 .opto-patient-program-grid-v156{grid-template-columns:1fr !important;}
  .opto-patient-portal-v158 .opto-patient-v157-appointments-grid,.opto-patient-portal-v158 .opto-patient-v157-progress-grid{grid-template-columns:1fr !important;}
}
@media(max-width:900px){
  .opto-patient-portal-v158{display:block !important;padding:12px 12px 84px !important;width:100% !important;}
  .opto-patient-portal-v158>.opto-patient-brand-strip{border-radius:24px !important;margin:0 0 12px !important;min-height:80px;position:static;}
  .opto-patient-portal-v158>.opto-patient-brand-strip .opto-brand-logo,.opto-patient-portal-v158>.opto-patient-brand-strip img{max-width:180px !important;width:180px !important;}
  .opto-patient-portal-v158>.opto-patient-app-sidebar-v158{
    border-radius:24px 24px 0 0 !important;bottom:0;box-shadow:0 -18px 40px rgba(2,18,32,.22) !important;display:grid !important;gap:4px !important;grid-template-columns:repeat(5,minmax(0,1fr));left:0;min-height:0;padding:8px 8px calc(8px + env(safe-area-inset-bottom)) !important;position:fixed !important;right:0;top:auto !important;width:100%;z-index:9999;
  }
  .opto-patient-portal-v158>.opto-patient-app-sidebar-v158:before{display:none;}
  .opto-patient-portal-v158>.opto-patient-app-sidebar-v158 a{border-radius:16px !important;font-size:11px;gap:4px !important;grid-template-columns:1fr;min-height:58px;padding:6px 4px !important;text-align:center;}
  .opto-patient-portal-v158>.opto-patient-app-sidebar-v158 a strong{display:block;font-size:11px;line-height:1.1;}
  .opto-patient-portal-v158 .opto-patient-nav-icon{height:26px;min-width:26px;width:26px;font-size:14px !important;}
  .opto-patient-portal-v158>.opto-patient-app-sidebar-v158 a:nth-child(n+6){display:none !important;}
  .opto-patient-portal-v158>.opto-patient-hero-v155{display:grid;grid-template-columns:1fr auto auto;min-height:0;padding:18px !important;}
  .opto-patient-portal-v158>.opto-patient-hero-v155 h2,.opto-patient-portal-v158>.opto-patient-hero-v155 p:not(.opto-patient-kicker){grid-column:1/-1;}
  .opto-patient-portal-v158 .opto-patient-logout-form{grid-column:1/-1;grid-row:auto;}
  .opto-patient-portal-v158 .opto-patient-dashboard-v155,.opto-patient-portal-v158 .opto-patient-v155-actions,.opto-patient-portal-v158 .opto-patient-help-grid-v158{grid-template-columns:1fr !important;}
  .opto-patient-portal-v158 .opto-patient-v155-recommended-body,.opto-patient-portal-v158 .opto-patient-selected-body-v156,.opto-patient-portal-v158 .opto-patient-v157-doc-layout{grid-template-columns:1fr !important;}
  .opto-patient-portal-v158 .opto-patient-week-strip-v156{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .opto-patient-portal-v158 .opto-patient-v157-file-card{grid-template-columns:1fr !important;}
}


/* v1.5.8.1 — Portal del paciente por secciones y ancho ampliado */
body .opto-patient-portal-v1581{
  max-width:min(1880px, calc(100vw - 24px)) !important;
  width:min(1880px, calc(100vw - 24px)) !important;
  margin-left:max(0px, calc(50% - 50vw + 12px)) !important;
  margin-right:auto !important;
  grid-template-columns:300px minmax(0,1fr) !important;
  gap:0 32px !important;
}

.opto-patient-portal-v1581>.opto-patient-hero-v155{
  grid-template-columns:minmax(0,1fr) auto auto auto !important;
  margin-bottom:18px !important;
}

.opto-patient-portal-v1581>#opto-patient-dashboard,
.opto-patient-portal-v1581>.opto-patient-home-grid-v155,
.opto-patient-portal-v1581>.opto-patient-v155-actions,
.opto-patient-portal-v1581>.opto-patient-v155-reminder,
.opto-patient-portal-v1581>#opto-patient-notifications,
.opto-patient-portal-v1581>#opto-patient-chat,
.opto-patient-portal-v1581>#opto-patient-tickets,
.opto-patient-portal-v1581>#opto-patient-program,
.opto-patient-portal-v1581>#opto-patient-calendar,
.opto-patient-portal-v1581>#opto-patient-forms,
.opto-patient-portal-v1581>#opto-patient-appointments,
.opto-patient-portal-v1581>#opto-patient-documents,
.opto-patient-portal-v1581>#opto-patient-progress,
.opto-patient-portal-v1581>#opto-patient-help,
.opto-patient-portal-v1581>#opto-patient-settings,
.opto-patient-portal-v1581>#opto-patient-app-status{
  display:none !important;
}

.opto-patient-portal-v1581.opto-patient-section-inicio>#opto-patient-dashboard{
  display:grid !important;
}
.opto-patient-portal-v1581.opto-patient-section-inicio>.opto-patient-home-grid-v155{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) !important;
}
.opto-patient-portal-v1581.opto-patient-section-inicio>.opto-patient-home-grid-v155 .opto-patient-v155-side{
  display:none !important;
}
.opto-patient-portal-v1581.opto-patient-section-inicio>.opto-patient-v155-actions{
  display:grid !important;
}
.opto-patient-portal-v1581.opto-patient-section-inicio>.opto-patient-v155-reminder{
  display:flex !important;
}

.opto-patient-portal-v1581.opto-patient-section-programa>#opto-patient-program,
.opto-patient-portal-v1581.opto-patient-section-programa>#opto-patient-calendar,
.opto-patient-portal-v1581.opto-patient-section-mensajes>#opto-patient-chat,
.opto-patient-portal-v1581.opto-patient-section-mensajes>#opto-patient-tickets,
.opto-patient-portal-v1581.opto-patient-section-citas>#opto-patient-appointments,
.opto-patient-portal-v1581.opto-patient-section-documentos>#opto-patient-documents,
.opto-patient-portal-v1581.opto-patient-section-progreso>#opto-patient-progress,
.opto-patient-portal-v1581.opto-patient-section-formularios>#opto-patient-forms,
.opto-patient-portal-v1581.opto-patient-section-avisos>#opto-patient-notifications,
.opto-patient-portal-v1581.opto-patient-section-ajustes>#opto-patient-settings,
.opto-patient-portal-v1581.opto-patient-section-estado>#opto-patient-app-status,
.opto-patient-portal-v1581.opto-patient-section-ayuda>#opto-patient-help{
  display:block !important;
}

.opto-patient-portal-v1581.opto-patient-section-inicio .opto-patient-dashboard-v155{
  grid-template-columns:repeat(4,minmax(190px,1fr)) !important;
}

.opto-patient-portal-v1581.opto-patient-section-inicio .opto-patient-v155-card{
  min-height:118px !important;
  overflow:hidden;
}

.opto-patient-portal-v1581.opto-patient-section-inicio .opto-patient-v155-card strong{
  font-size:clamp(1.1rem,1.35vw,1.55rem) !important;
  word-break:normal;
}

.opto-patient-portal-v1581.opto-patient-section-inicio .opto-patient-v155-recommended{
  display:block !important;
}

.opto-patient-portal-v1581 .opto-patient-v157-section,
.opto-patient-portal-v1581 .opto-patient-program-v156,
.opto-patient-portal-v1581 .opto-patient-chat-panel-v157,
.opto-patient-portal-v1581 .opto-patient-tickets-panel-v157,
.opto-patient-portal-v1581 .opto-patient-notifications-panel{
  margin-top:0 !important;
}

.opto-patient-portal-v1581 .opto-patient-app-sidebar-v158 a.is-active{
  background:linear-gradient(135deg,#0ea5a8,#07869c) !important;
  color:#fff !important;
}

@media(min-width:1500px){
  body .opto-patient-portal-v1581{
    grid-template-columns:320px minmax(0,1fr) !important;
    padding-left:28px !important;
    padding-right:28px !important;
  }
  .opto-patient-portal-v1581 .opto-patient-program-grid-v156{
    grid-template-columns:minmax(300px,.62fr) minmax(0,1.25fr) minmax(340px,.72fr) !important;
  }
}

@media(max-width:1320px){
  body .opto-patient-portal-v1581{
    max-width:100% !important;
    width:100% !important;
    margin-left:0 !important;
    grid-template-columns:92px minmax(0,1fr) !important;
    gap:0 18px !important;
  }
  .opto-patient-portal-v1581.opto-patient-section-inicio .opto-patient-dashboard-v155{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media(max-width:900px){
  body .opto-patient-portal-v1581{
    display:block !important;
    max-width:100% !important;
    width:100% !important;
    margin-left:0 !important;
  }
  .opto-patient-portal-v1581.opto-patient-section-inicio .opto-patient-dashboard-v155,
  .opto-patient-portal-v1581.opto-patient-section-inicio>.opto-patient-v155-actions{
    grid-template-columns:1fr !important;
  }
}

/* v1.5.8.2 — Portal del paciente centrado, cabecera clara y avisos minimalistas */
body .opto-patient-portal-v1582{
  max-width:min(1980px, calc(100vw - 36px)) !important;
  width:min(1980px, calc(100vw - 36px)) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:24px !important;
  padding-right:24px !important;
  grid-template-columns:300px minmax(0,1fr) !important;
  gap:0 30px !important;
}

/* Sidebar unificado: el fondo del menú nace detrás del logo y evita huecos visuales */
.opto-patient-portal-v1582>.opto-patient-brand-strip{
  background:transparent !important;
  box-shadow:none !important;
  border-radius:30px 30px 0 0 !important;
  min-height:118px !important;
  padding:18px 18px 10px !important;
  position:sticky !important;
  top:16px !important;
  z-index:15 !important;
}
.opto-patient-portal-v1582>.opto-patient-brand-strip:before{
  content:"";
  position:absolute;
  inset:0 0 -1px;
  z-index:-1;
  background:linear-gradient(180deg,var(--opto-158-sidebar) 0%,var(--opto-158-sidebar-2) 100%) !important;
  border-radius:30px 30px 0 0;
  box-shadow:0 24px 50px rgba(2,18,32,.18) !important;
}
.opto-patient-portal-v1582>.opto-patient-brand-strip .opto-brand-logo,
.opto-patient-portal-v1582>.opto-patient-brand-strip img{
  background:#fff !important;
  box-shadow:0 12px 28px rgba(2,18,32,.20) !important;
  padding:14px 18px !important;
  width:178px !important;
}
.opto-patient-portal-v1582>.opto-patient-app-sidebar-v158{
  border-radius:0 0 30px 30px !important;
  margin-top:0 !important;
  min-height:calc(100vh - 150px) !important;
  padding-top:14px !important;
  top:134px !important;
}
.opto-patient-portal-v1582>.opto-patient-app-sidebar-v158:before{
  margin-top:0 !important;
  margin-bottom:10px !important;
}

/* Cabecera superior: título a la izquierda, avisos y cierre de sesión como botones reales a la derecha */
.opto-patient-portal-v1582>.opto-patient-hero-v1582{
  align-items:center !important;
  display:flex !important;
  justify-content:space-between !important;
  gap:24px !important;
  overflow:visible !important;
}
.opto-patient-portal-v1582 .opto-patient-hero-main-v1582{min-width:0;}
.opto-patient-portal-v1582 .opto-patient-hero-main-v1582 .opto-patient-kicker{
  color:var(--opto-158-primary-dark) !important;
  display:block !important;
  font-size:12px !important;
  font-weight:900 !important;
  letter-spacing:.12em !important;
  margin:0 0 8px !important;
  text-transform:uppercase !important;
}
.opto-patient-portal-v1582 .opto-patient-hero-main-v1582 h2{
  color:var(--opto-158-primary) !important;
  font-size:clamp(2rem,3vw,3.6rem) !important;
  line-height:1.05 !important;
  margin:0 0 10px !important;
}
.opto-patient-portal-v1582 .opto-patient-hero-main-v1582 p:not(.opto-patient-kicker){
  color:var(--opto-158-ink) !important;
  margin:0 !important;
  max-width:760px !important;
}
.opto-patient-portal-v1582 .opto-patient-hero-actions-v1582{
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
  margin-left:auto;
}
.opto-patient-portal-v1582 .opto-patient-logout-form{grid-column:auto !important;grid-row:auto !important;margin:0 !important;}
.opto-patient-portal-v1582 .opto-logout-button{
  align-items:center;
  background:linear-gradient(135deg,#0ea5a8,#07869c) !important;
  border:0 !important;
  border-radius:16px !important;
  box-shadow:0 12px 24px rgba(14,165,168,.18) !important;
  color:#fff !important;
  display:inline-flex;
  min-height:50px;
  padding:0 18px !important;
  white-space:nowrap;
}
.opto-patient-portal-v1582 .opto-logout-button:before{content:"↪";font-size:17px;margin-right:8px;}

/* Avisos: diseño más ligero, legible y coherente con las tarjetas v1.5 */
.opto-patient-portal-v1582 .opto-patient-notifications-panel-v1582{
  background:#fff !important;
  border:1px solid var(--opto-158-line) !important;
  border-radius:30px !important;
  box-shadow:0 18px 45px rgba(15,23,42,.055) !important;
  padding:24px !important;
}
.opto-patient-portal-v1582 .opto-patient-notifications-title-v1582{
  align-items:center !important;
  border:0 !important;
  display:flex !important;
  gap:18px !important;
  justify-content:space-between !important;
  margin:0 0 18px !important;
  padding:0 !important;
}
.opto-patient-portal-v1582 .opto-patient-notifications-title-v1582 p{
  color:var(--opto-158-primary-dark) !important;
  font-size:12px !important;
  font-weight:900 !important;
  letter-spacing:.12em !important;
  margin:0 0 6px !important;
  text-transform:uppercase !important;
}
.opto-patient-portal-v1582 .opto-patient-notifications-title-v1582 h3{margin:0 !important;color:var(--opto-158-ink) !important;}
.opto-patient-portal-v1582 .opto-patient-notification-head-actions-v1582{
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
}
.opto-patient-portal-v1582 .opto-patient-notification-read-all-top-v1582{margin:0 !important;}
.opto-patient-portal-v1582 .opto-patient-notification-read-all-top-v1582 .opto-soft-button{
  background:#fff !important;
  border:1px solid var(--opto-158-primary) !important;
  color:var(--opto-158-primary-dark) !important;
  min-height:42px;
  padding:0 14px !important;
}
.opto-patient-portal-v1582 .opto-patient-notifications-list{
  display:grid !important;
  gap:10px !important;
}
.opto-patient-portal-v1582 .opto-patient-notification-card{
  align-items:center !important;
  background:#fff !important;
  border:1px solid #e1edf3 !important;
  border-left:4px solid transparent !important;
  border-radius:20px !important;
  box-shadow:none !important;
  display:grid !important;
  gap:16px !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  min-height:88px !important;
  padding:16px 18px !important;
}
.opto-patient-portal-v1582 .opto-patient-notification-card.is-unread{
  background:#f2fcfd !important;
  border-color:#c9eef2 !important;
  border-left-color:var(--opto-158-primary) !important;
}
.opto-patient-portal-v1582 .opto-patient-notification-card.is-read{opacity:.78;}
.opto-patient-portal-v1582 .opto-patient-notification-main{display:grid;gap:4px;min-width:0;}
.opto-patient-portal-v1582 .opto-patient-notification-type{
  background:#e9fbfc !important;
  border:0 !important;
  border-radius:999px !important;
  color:var(--opto-158-primary-dark) !important;
  display:inline-flex !important;
  font-size:11px !important;
  font-weight:900 !important;
  justify-self:start;
  letter-spacing:.02em;
  padding:5px 9px !important;
}
.opto-patient-portal-v1582 .opto-patient-notification-main h4{
  color:var(--opto-158-ink) !important;
  font-size:1.02rem !important;
  line-height:1.25 !important;
  margin:2px 0 0 !important;
}
.opto-patient-portal-v1582 .opto-patient-notification-main p{
  color:#40526b !important;
  font-size:.93rem !important;
  line-height:1.45 !important;
  margin:0 !important;
}
.opto-patient-portal-v1582 .opto-patient-notification-main small{color:#7c8da3 !important;font-size:.82rem !important;}
.opto-patient-portal-v1582 .opto-patient-notification-actions{
  align-items:center !important;
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  justify-content:flex-end !important;
}
.opto-patient-portal-v1582 .opto-patient-notification-actions form{margin:0 !important;}
.opto-patient-portal-v1582 .opto-patient-notification-actions .opto-soft-button{
  background:#fff !important;
  border:1px solid #cbd5e1 !important;
  border-radius:999px !important;
  box-shadow:none !important;
  color:var(--opto-158-primary-dark) !important;
  font-size:.9rem !important;
  min-height:38px;
  padding:0 13px !important;
}
.opto-patient-portal-v1582 .opto-patient-notification-card.is-unread .opto-patient-notification-actions form .opto-soft-button{
  background:var(--opto-158-primary) !important;
  border-color:var(--opto-158-primary) !important;
  color:#fff !important;
}

@media(min-width:1500px){
  body .opto-patient-portal-v1582{grid-template-columns:320px minmax(0,1fr) !important;}
}
@media(max-width:1320px){
  body .opto-patient-portal-v1582{max-width:100% !important;width:100% !important;margin:0 !important;grid-template-columns:92px minmax(0,1fr) !important;}
  .opto-patient-portal-v1582>.opto-patient-brand-strip{min-height:96px !important;justify-content:center !important;}
  .opto-patient-portal-v1582>.opto-patient-app-sidebar-v158{top:108px !important;min-height:calc(100vh - 124px) !important;}
  .opto-patient-portal-v1582>.opto-patient-brand-strip .opto-brand-logo,.opto-patient-portal-v1582>.opto-patient-brand-strip img{width:62px !important;}
}
@media(max-width:900px){
  body .opto-patient-portal-v1582{padding-left:12px !important;padding-right:12px !important;}
  .opto-patient-portal-v1582>.opto-patient-hero-v1582{display:grid !important;}
  .opto-patient-portal-v1582 .opto-patient-hero-actions-v1582{justify-content:flex-start;width:100%;}
  .opto-patient-portal-v1582 .opto-patient-notifications-title-v1582{align-items:flex-start !important;display:grid !important;}
  .opto-patient-portal-v1582 .opto-patient-notification-head-actions-v1582{justify-content:flex-start;}
  .opto-patient-portal-v1582 .opto-patient-notification-card{grid-template-columns:1fr !important;}
  .opto-patient-portal-v1582 .opto-patient-notification-actions{justify-content:flex-start !important;}
}

/* v1.5.8.3 — Portal centrado, pantalla completa, avisos y móvil corregidos */
body .opto-patient-portal-v1583{
  left:50% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  max-width:none !important;
  transform:translateX(-50%) !important;
  width:min(1680px, calc(100vw - 32px)) !important;
  padding-left:18px !important;
  padding-right:18px !important;
  grid-template-columns:300px minmax(0,1fr) !important;
  gap:0 26px !important;
  overflow-x:clip !important;
}

/* Sidebar continuo: la columna izquierda nace bajo el logo sin hueco intermedio */
.opto-patient-portal-v1583>.opto-patient-brand-strip{
  background:transparent !important;
  border-radius:30px 30px 0 0 !important;
  box-shadow:none !important;
  grid-column:1 !important;
  grid-row:1 !important;
  min-height:128px !important;
  padding:18px 18px 0 !important;
  pointer-events:none;
  position:sticky !important;
  top:16px !important;
  z-index:20 !important;
}
.opto-patient-portal-v1583>.opto-patient-brand-strip:before{display:none !important;}
.opto-patient-portal-v1583>.opto-patient-brand-strip .opto-brand-logo,
.opto-patient-portal-v1583>.opto-patient-brand-strip img{
  background:#fff !important;
  border-radius:20px !important;
  box-shadow:0 12px 28px rgba(2,18,32,.18) !important;
  max-width:178px !important;
  padding:14px 18px !important;
  width:178px !important;
}
.opto-patient-portal-v1583>.opto-patient-brand-strip .opto-ds-version-pill{
  pointer-events:auto;
}
.opto-patient-portal-v1583>.opto-patient-app-sidebar-v158{
  border-radius:30px !important;
  grid-column:1 !important;
  grid-row:1 / span 80 !important;
  margin:0 !important;
  min-height:calc(100vh - 36px) !important;
  padding:150px 14px 24px !important;
  position:sticky !important;
  top:16px !important;
  z-index:10 !important;
}
.opto-patient-portal-v1583>.opto-patient-app-sidebar-v158:before{
  margin:0 10px 10px !important;
}

/* Cabecera: acciones separadas, botón de pantalla completa y cierre claro */
.opto-patient-portal-v1583>.opto-patient-hero-v1582{
  display:flex !important;
  gap:24px !important;
  min-width:0 !important;
}
.opto-patient-portal-v1583 .opto-patient-hero-actions-v1582{
  gap:14px !important;
  row-gap:12px !important;
}
.opto-patient-portal-v1583 .opto-patient-logout-form{
  margin-left:8px !important;
}
.opto-patient-portal-v1583 .opto-patient-fullscreen-toggle{
  align-items:center !important;
  background:#fff !important;
  border:1px solid #cfe3ec !important;
  border-radius:16px !important;
  color:var(--opto-158-primary-dark) !important;
  display:inline-flex !important;
  font-weight:900 !important;
  gap:8px !important;
  min-height:50px !important;
  padding:0 16px !important;
  white-space:nowrap !important;
}
.opto-patient-portal-v1583 .opto-patient-notification-bell,
.opto-patient-portal-v1583 .opto-patient-chat-bell{
  flex:0 0 auto;
}

/* Mensajes: acción para vaciar chat */
.opto-patient-portal-v1583 .opto-patient-chat-title-v1583{
  align-items:center !important;
  display:flex !important;
  gap:16px !important;
  justify-content:space-between !important;
}
.opto-patient-portal-v1583 .opto-patient-chat-actions-v1583{
  align-items:center !important;
  display:flex !important;
  flex-wrap:wrap !important;
  gap:10px !important;
  justify-content:flex-end !important;
}
.opto-patient-portal-v1583 .opto-patient-clear-chat-form{margin:0 !important;}
.opto-patient-portal-v1583 .opto-patient-clear-chat-button{
  background:#fff !important;
  border:1px solid #fca5a5 !important;
  color:#b91c1c !important;
  min-height:40px !important;
  padding:0 14px !important;
}

/* Avisos v1.5.8.3: diseño más minimalista, compacto y escaneable */
.opto-patient-portal-v1583 .opto-patient-notifications-panel-v1582{
  background:#fff !important;
  border:1px solid #d9e8ef !important;
  border-radius:28px !important;
  box-shadow:0 16px 40px rgba(15,23,42,.055) !important;
  padding:22px !important;
}
.opto-patient-portal-v1583 .opto-patient-notifications-title-v1582{
  border-bottom:1px solid #e8f1f5 !important;
  margin-bottom:14px !important;
  padding-bottom:16px !important;
}
.opto-patient-portal-v1583 .opto-patient-notification-counter{
  background:#eef9fb !important;
  border:1px solid #cceff2 !important;
  border-radius:999px !important;
  color:#007c95 !important;
  display:inline-flex !important;
  font-size:.88rem !important;
  font-weight:900 !important;
  min-height:34px !important;
  padding:0 13px !important;
}
.opto-patient-portal-v1583 .opto-patient-notification-counter.has-unread{
  background:#0ea5a8 !important;
  border-color:#0ea5a8 !important;
  color:#fff !important;
}
.opto-patient-portal-v1583 .opto-patient-notifications-list{
  gap:8px !important;
}
.opto-patient-portal-v1583 .opto-patient-notification-card{
  background:#fff !important;
  border:1px solid #e1edf3 !important;
  border-left:0 !important;
  border-radius:18px !important;
  display:grid !important;
  gap:14px !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  min-height:78px !important;
  padding:14px 16px !important;
}
.opto-patient-portal-v1583 .opto-patient-notification-card.is-unread{
  background:linear-gradient(90deg,#f0fbfd 0%,#fff 70%) !important;
  border-color:#bfeaf0 !important;
  box-shadow:inset 4px 0 0 #0ea5a8 !important;
}
.opto-patient-portal-v1583 .opto-patient-notification-type{
  background:transparent !important;
  color:#007c95 !important;
  font-size:11px !important;
  letter-spacing:.08em !important;
  padding:0 !important;
  text-transform:uppercase !important;
}
.opto-patient-portal-v1583 .opto-patient-notification-main h4{
  font-size:1rem !important;
  margin:0 !important;
}
.opto-patient-portal-v1583 .opto-patient-notification-main p{
  font-size:.92rem !important;
  max-width:980px !important;
}
.opto-patient-portal-v1583 .opto-patient-notification-actions .opto-soft-button{
  min-height:36px !important;
}
.opto-patient-portal-v1583 .opto-patient-notification-card.is-read .opto-patient-notification-actions form{display:none !important;}

/* Pantalla completa: ocultar cabecera/menú de la web sin tocar el portal */
body.opto-patient-fullscreen-active{
  overflow-x:hidden !important;
}
body.opto-patient-fullscreen-active #wpadminbar,
body.opto-patient-fullscreen-active #masthead,
body.opto-patient-fullscreen-active .site-header,
body.opto-patient-fullscreen-active .elementor-location-header,
body.opto-patient-fullscreen-active header.site-header,
body.opto-patient-fullscreen-active .main-header-bar,
body.opto-patient-fullscreen-active .et-l--header,
body.opto-patient-fullscreen-active .ast-primary-header-bar,
body.opto-patient-fullscreen-active .generate-header,
body.opto-patient-fullscreen-active .navbar,
body.opto-patient-fullscreen-active .header,
body.opto-patient-fullscreen-active nav.main-navigation{
  display:none !important;
}
body.opto-patient-fullscreen-active .opto-patient-portal-v1583{
  margin-top:0 !important;
  width:min(1720px, calc(100vw - 20px)) !important;
}

@media(min-width:1700px){
  body .opto-patient-portal-v1583{
    width:min(1760px, calc(100vw - 40px)) !important;
    grid-template-columns:320px minmax(0,1fr) !important;
  }
}
@media(max-width:1320px){
  body .opto-patient-portal-v1583{
    width:min(100%, calc(100vw - 18px)) !important;
    grid-template-columns:92px minmax(0,1fr) !important;
    gap:0 18px !important;
    padding-left:10px !important;
    padding-right:10px !important;
  }
  .opto-patient-portal-v1583>.opto-patient-brand-strip{
    min-height:100px !important;
    padding:14px 10px 0 !important;
  }
  .opto-patient-portal-v1583>.opto-patient-brand-strip .opto-brand-logo,
  .opto-patient-portal-v1583>.opto-patient-brand-strip img{
    max-width:66px !important;
    padding:9px !important;
    width:66px !important;
  }
  .opto-patient-portal-v1583>.opto-patient-brand-strip .opto-ds-version-pill{display:none !important;}
  .opto-patient-portal-v1583>.opto-patient-app-sidebar-v158{
    padding-top:112px !important;
  }
}
@media(max-width:900px){
  body .opto-patient-portal-v1583{
    display:block !important;
    left:auto !important;
    margin:0 auto !important;
    max-width:100% !important;
    padding:10px 10px 92px !important;
    transform:none !important;
    width:100% !important;
  }
  .opto-patient-portal-v1583>.opto-patient-brand-strip{
    display:none !important;
  }
  .opto-patient-portal-v1583>.opto-patient-app-sidebar-v158{
    background:linear-gradient(180deg,var(--opto-158-sidebar) 0%,var(--opto-158-sidebar-2) 100%) !important;
    border-radius:22px 22px 0 0 !important;
    bottom:0 !important;
    box-shadow:0 -16px 36px rgba(2,18,32,.24) !important;
    display:grid !important;
    gap:6px !important;
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    left:0 !important;
    margin:0 !important;
    min-height:0 !important;
    max-height:86px !important;
    overflow:visible !important;
    padding:8px 8px calc(8px + env(safe-area-inset-bottom)) !important;
    position:fixed !important;
    right:0 !important;
    top:auto !important;
    width:100% !important;
    z-index:999999 !important;
  }
  .opto-patient-portal-v1583>.opto-patient-app-sidebar-v158:before{display:none !important;}
  .opto-patient-portal-v1583>.opto-patient-app-sidebar-v158 a{
    align-items:center !important;
    border-radius:14px !important;
    display:grid !important;
    gap:3px !important;
    grid-template-columns:1fr !important;
    justify-items:center !important;
    min-height:58px !important;
    padding:6px 4px !important;
    text-align:center !important;
  }
  .opto-patient-portal-v1583>.opto-patient-app-sidebar-v158 a strong{
    display:block !important;
    font-size:10px !important;
    line-height:1.1 !important;
    max-width:72px !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }
  .opto-patient-portal-v1583>.opto-patient-app-sidebar-v158 a:nth-child(n+6){display:none !important;}
  .opto-patient-portal-v1583 .opto-patient-nav-icon{
    height:25px !important;
    min-width:25px !important;
    width:25px !important;
  }
  .opto-patient-portal-v1583>.opto-patient-hero-v1582{
    align-items:flex-start !important;
    display:grid !important;
    gap:16px !important;
    padding:18px !important;
  }
  .opto-patient-portal-v1583 .opto-patient-hero-main-v1582 h2{
    font-size:clamp(1.85rem,9vw,2.7rem) !important;
  }
  .opto-patient-portal-v1583 .opto-patient-hero-actions-v1582{
    justify-content:flex-start !important;
    width:100% !important;
  }
  .opto-patient-portal-v1583 .opto-patient-fullscreen-toggle{
    display:none !important;
  }
  .opto-patient-portal-v1583 .opto-patient-logout-form{margin-left:0 !important;}
  .opto-patient-portal-v1583 .opto-patient-chat-title-v1583,
  .opto-patient-portal-v1583 .opto-patient-notifications-title-v1582{
    align-items:flex-start !important;
    display:grid !important;
  }
  .opto-patient-portal-v1583 .opto-patient-chat-actions-v1583,
  .opto-patient-portal-v1583 .opto-patient-notification-head-actions-v1582{
    justify-content:flex-start !important;
  }
}

/* v1.5.8.4 — Independencia visual del portal, cabecera separada y móvil corregido */
body .opto-patient-portal-v1584{
  --opto-patient-font: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  box-sizing:border-box !important;
  isolation:isolate !important;
  max-width:none !important;
  width:min(1880px, calc(100vw - 48px)) !important;
  margin-left:50% !important;
  margin-right:0 !important;
  transform:translateX(-50%) !important;
  padding:18px 24px 30px !important;
  grid-template-columns:300px minmax(0,1fr) !important;
  gap:0 28px !important;
  overflow:visible !important;
}
.opto-patient-portal-v1584,
.opto-patient-portal-v1584 *{
  box-sizing:border-box !important;
  font-family:var(--opto-patient-font) !important;
}
.opto-patient-portal-v1584 a,
.opto-patient-portal-v1584 button,
.opto-patient-portal-v1584 input,
.opto-patient-portal-v1584 select,
.opto-patient-portal-v1584 textarea{
  font-family:var(--opto-patient-font) !important;
}
.opto-patient-portal-v1584 button,
.opto-patient-portal-v1584 a.opto-button,
.opto-patient-portal-v1584 .opto-button,
.opto-patient-portal-v1584 .opto-soft-button{
  appearance:none !important;
  -webkit-appearance:none !important;
  background-image:none;
  border-style:solid;
  cursor:pointer;
  text-shadow:none !important;
  text-transform:none !important;
}
.opto-patient-portal-v1584 img,
.opto-patient-portal-v1584 svg{
  max-width:100% !important;
}

/* Sidebar sin huecos entre marca y navegación */
.opto-patient-portal-v1584>.opto-patient-brand-strip{
  background:linear-gradient(180deg,var(--opto-158-sidebar) 0%,#08263d 100%) !important;
  border:0 !important;
  border-radius:28px 28px 0 0 !important;
  box-shadow:0 24px 50px rgba(2,18,32,.18) !important;
  grid-column:1 !important;
  grid-row:1 !important;
  min-height:112px !important;
  padding:18px 18px 8px !important;
  top:14px !important;
  z-index:25 !important;
}
.opto-patient-portal-v1584>.opto-patient-brand-strip:before{display:none !important;}
.opto-patient-portal-v1584>.opto-patient-brand-strip .opto-brand-logo,
.opto-patient-portal-v1584>.opto-patient-brand-strip img{
  background:#fff !important;
  border:1px solid rgba(255,255,255,.55) !important;
  border-radius:20px !important;
  box-shadow:0 10px 24px rgba(2,18,32,.18) !important;
  display:block !important;
  max-width:174px !important;
  padding:13px 16px !important;
  width:174px !important;
}
.opto-patient-portal-v1584>.opto-patient-app-sidebar-v158{
  background:linear-gradient(180deg,#08263d 0%,var(--opto-158-sidebar-2) 100%) !important;
  border-radius:0 0 28px 28px !important;
  box-shadow:0 24px 50px rgba(2,18,32,.18) !important;
  grid-column:1 !important;
  grid-row:2 / span 80 !important;
  margin:0 !important;
  min-height:calc(100vh - 126px) !important;
  padding:12px 14px 24px !important;
  position:sticky !important;
  top:126px !important;
  z-index:20 !important;
}
.opto-patient-portal-v1584>.opto-patient-app-sidebar-v158:before{
  margin:0 10px 10px !important;
}
.opto-patient-portal-v1584>.opto-patient-app-sidebar-v158 a{
  align-items:center !important;
  background:transparent !important;
  border:0 !important;
  border-radius:18px !important;
  box-shadow:none !important;
  color:#eaf8fb !important;
  display:grid !important;
  font-size:15px !important;
  font-weight:850 !important;
  gap:12px !important;
  grid-template-columns:34px minmax(0,1fr) auto !important;
  line-height:1.15 !important;
  min-height:50px !important;
  padding:10px 12px !important;
  text-decoration:none !important;
}
.opto-patient-portal-v1584>.opto-patient-app-sidebar-v158 a:hover,
.opto-patient-portal-v1584>.opto-patient-app-sidebar-v158 a:focus,
.opto-patient-portal-v1584>.opto-patient-app-sidebar-v158 a.is-active{
  background:linear-gradient(135deg,#0ea5a8,#07869c) !important;
  color:#fff !important;
}
.opto-patient-portal-v1584 .opto-patient-nav-icon,
.opto-patient-portal-v1584 .opto-patient-v155-icon,
.opto-patient-portal-v1584 .opto-patient-exercise-icon-v156{
  align-items:center !important;
  background:#e9fbfc !important;
  border:1px solid #caedf2 !important;
  border-radius:14px !important;
  color:#007c95 !important;
  display:inline-flex !important;
  flex:0 0 auto !important;
  height:38px !important;
  justify-content:center !important;
  min-width:38px !important;
  padding:0 !important;
  width:38px !important;
}
.opto-patient-portal-v1584>.opto-patient-app-sidebar-v158 .opto-patient-nav-icon{
  background:rgba(255,255,255,.09) !important;
  border-color:rgba(255,255,255,.16) !important;
  color:#fff !important;
  height:34px !important;
  min-width:34px !important;
  width:34px !important;
}

/* Cabecera: acciones separadas y sin apelotonar */
.opto-patient-portal-v1584>.opto-patient-hero-v1582{
  align-items:center !important;
  display:flex !important;
  gap:26px !important;
  justify-content:space-between !important;
  min-height:146px !important;
  padding:28px 34px !important;
}
.opto-patient-portal-v1584 .opto-patient-hero-main-v1582{min-width:0 !important;}
.opto-patient-portal-v1584 .opto-patient-hero-actions-v1582{
  align-items:center !important;
  display:flex !important;
  flex:0 0 auto !important;
  flex-wrap:wrap !important;
  gap:16px !important;
  justify-content:flex-end !important;
  margin-left:auto !important;
}
.opto-patient-portal-v1584 .opto-patient-notification-bell,
.opto-patient-portal-v1584 .opto-patient-chat-bell{
  background:#fff !important;
  border:1px solid #d6e8ef !important;
  border-radius:18px !important;
  box-shadow:0 10px 25px rgba(15,23,42,.055) !important;
  height:56px !important;
  min-width:56px !important;
  padding:0 !important;
  position:relative !important;
  width:56px !important;
}
.opto-patient-portal-v1584 .opto-patient-notification-bell span,
.opto-patient-portal-v1584 .opto-patient-chat-bell span{font-size:19px !important;}
.opto-patient-portal-v1584 .opto-patient-notification-bell strong,
.opto-patient-portal-v1584 .opto-patient-chat-bell strong{
  align-items:center !important;
  background:#0ea5a8 !important;
  border-radius:999px !important;
  color:#fff !important;
  display:flex !important;
  font-size:12px !important;
  height:23px !important;
  justify-content:center !important;
  min-width:23px !important;
  padding:0 7px !important;
  position:absolute !important;
  right:-8px !important;
  top:-8px !important;
}
.opto-patient-portal-v1584 .opto-patient-notification-bell.has-unread strong{background:#ef4444 !important;}
.opto-patient-portal-v1584 .opto-patient-fullscreen-toggle,
.opto-patient-portal-v1584 .opto-logout-button{
  align-items:center !important;
  display:inline-flex !important;
  gap:8px !important;
  min-height:52px !important;
  padding:0 18px !important;
  white-space:nowrap !important;
}
.opto-patient-portal-v1584 .opto-patient-fullscreen-toggle{
  background:#fff !important;
  border:1px solid #cfe3ec !important;
  color:#007c95 !important;
}
.opto-patient-portal-v1584 .opto-patient-logout-form{margin:0 !important;}

/* Botones, tarjetas e inputs propios para evitar herencia de Elementor/tema */
.opto-patient-portal-v1584 .opto-button,
.opto-patient-portal-v1584 button.opto-button,
.opto-patient-portal-v1584 a.opto-button{
  align-items:center !important;
  background:linear-gradient(135deg,#0ea5a8,#07869c) !important;
  border:0 !important;
  border-radius:15px !important;
  box-shadow:0 12px 24px rgba(14,165,168,.18) !important;
  color:#fff !important;
  display:inline-flex !important;
  font-size:14px !important;
  font-weight:900 !important;
  justify-content:center !important;
  line-height:1.2 !important;
  min-height:44px !important;
  padding:12px 18px !important;
  text-decoration:none !important;
}
.opto-patient-portal-v1584 .opto-soft-button,
.opto-patient-portal-v1584 a.opto-soft-button,
.opto-patient-portal-v1584 button.opto-soft-button{
  align-items:center !important;
  background:#fff !important;
  border:1px solid #cfe3ec !important;
  border-radius:15px !important;
  box-shadow:none !important;
  color:#007c95 !important;
  display:inline-flex !important;
  font-size:14px !important;
  font-weight:900 !important;
  justify-content:center !important;
  line-height:1.2 !important;
  min-height:42px !important;
  padding:11px 16px !important;
  text-decoration:none !important;
}
.opto-patient-portal-v1584 input,
.opto-patient-portal-v1584 select,
.opto-patient-portal-v1584 textarea{
  background:#fff !important;
  border:1px solid #cbdde6 !important;
  border-radius:14px !important;
  box-shadow:none !important;
  color:#0b1f3a !important;
  font-size:15px !important;
  line-height:1.45 !important;
  max-width:100% !important;
  padding:12px 14px !important;
  width:100% !important;
}
.opto-patient-portal-v1584 textarea{min-height:110px !important;resize:vertical !important;}
.opto-patient-portal-v1584 .opto-patient-v155-card,
.opto-patient-portal-v1584 .opto-patient-v155-panel,
.opto-patient-portal-v1584 .opto-patient-panel,
.opto-patient-portal-v1584 .opto-patient-program-v156,
.opto-patient-portal-v1584 .opto-patient-chat-panel-v157,
.opto-patient-portal-v1584 .opto-patient-tickets-panel-v157{
  background:#fff !important;
  border:1px solid #d9e8ef !important;
  border-radius:24px !important;
  box-shadow:0 16px 40px rgba(15,23,42,.055) !important;
}

/* Inicio: cards y acciones rápidas sin romperse */
.opto-patient-portal-v1584.opto-patient-section-inicio .opto-patient-dashboard-v155{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(220px,1fr)) !important;
  gap:18px !important;
}
.opto-patient-portal-v1584 .opto-patient-v155-card{
  align-items:center !important;
  display:grid !important;
  gap:14px !important;
  grid-template-columns:auto minmax(0,1fr) !important;
  min-height:140px !important;
  overflow:hidden !important;
  padding:22px !important;
}
.opto-patient-portal-v1584 .opto-patient-v155-card strong,
.opto-patient-portal-v1584 .opto-patient-v155-card p,
.opto-patient-portal-v1584 .opto-patient-v155-card small{
  overflow-wrap:anywhere !important;
  word-break:normal !important;
}
.opto-patient-portal-v1584 .opto-patient-v155-card .opto-button,
.opto-patient-portal-v1584 .opto-patient-v155-card .opto-patient-v155-link{
  grid-column:1/-1 !important;
  justify-self:start !important;
}
.opto-patient-portal-v1584 .opto-patient-v155-actions{
  display:grid !important;
  gap:16px !important;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr)) !important;
  width:100% !important;
}
.opto-patient-portal-v1584 .opto-patient-v155-actions a{
  align-items:center !important;
  background:#fff !important;
  border:1px solid #d9e8ef !important;
  border-radius:22px !important;
  box-shadow:0 12px 30px rgba(15,23,42,.05) !important;
  color:#0b1f3a !important;
  display:grid !important;
  gap:4px 14px !important;
  grid-template-columns:48px minmax(0,1fr) 20px !important;
  min-height:110px !important;
  padding:18px !important;
  text-decoration:none !important;
}
.opto-patient-portal-v1584 .opto-patient-v155-actions a span{
  grid-row:1/3 !important;
  height:48px !important;
  width:48px !important;
}
.opto-patient-portal-v1584 .opto-patient-v155-actions strong{
  color:#007c95 !important;
  font-size:1rem !important;
  line-height:1.25 !important;
  margin:0 !important;
}
.opto-patient-portal-v1584 .opto-patient-v155-actions small{
  color:#64748b !important;
  font-size:.86rem !important;
  line-height:1.35 !important;
  margin:0 !important;
}

/* Ejercicios de hoy: evitar estilos externos de botones */
.opto-patient-portal-v1584 .opto-patient-exercise-cards-v156{
  display:grid !important;
  gap:12px !important;
}
.opto-patient-portal-v1584 .opto-patient-exercise-card-v156{
  appearance:none !important;
  -webkit-appearance:none !important;
  align-items:center !important;
  background:#fff !important;
  border:1px solid #d9e8ef !important;
  border-radius:20px !important;
  box-shadow:none !important;
  color:#0b1f3a !important;
  display:grid !important;
  gap:12px !important;
  grid-template-columns:42px minmax(0,1fr) auto !important;
  line-height:1.25 !important;
  min-height:96px !important;
  padding:16px !important;
  text-align:left !important;
  width:100% !important;
}
.opto-patient-portal-v1584 .opto-patient-exercise-card-v156:hover,
.opto-patient-portal-v1584 .opto-patient-exercise-card-v156:focus{
  background:#f8fcfd !important;
  border-color:#0ea5a8 !important;
}
.opto-patient-portal-v1584 .opto-patient-exercise-card-v156.is-selected{
  background:#f0fbfd !important;
  border-color:#0ea5a8 !important;
  box-shadow:0 0 0 3px rgba(14,165,168,.12) !important;
}
.opto-patient-portal-v1584 .opto-patient-exercise-card-v156 strong{
  color:#0b1f3a !important;
  display:block !important;
  font-size:.98rem !important;
  line-height:1.25 !important;
  margin:0 !important;
}
.opto-patient-portal-v1584 .opto-patient-exercise-card-v156 small{
  color:#64748b !important;
  display:block !important;
  font-size:.86rem !important;
  margin-top:4px !important;
}
.opto-patient-portal-v1584 .opto-patient-exercise-card-v156 em{
  align-self:center !important;
  background:#fff7ed !important;
  border:0 !important;
  border-radius:999px !important;
  color:#9a3412 !important;
  font-size:12px !important;
  font-style:normal !important;
  font-weight:900 !important;
  padding:6px 10px !important;
  white-space:nowrap !important;
}
.opto-patient-portal-v1584 .opto-patient-exercise-card-v156.is-completed em{background:#dcfce7 !important;color:#166534 !important;}

/* Avisos: más minimalista y legible */
.opto-patient-portal-v1584 .opto-patient-notifications-panel-v1582{padding:24px !important;}
.opto-patient-portal-v1584 .opto-patient-notifications-list{display:grid !important;gap:10px !important;}
.opto-patient-portal-v1584 .opto-patient-notification-card{
  align-items:center !important;
  background:#fff !important;
  border:1px solid #d9e8ef !important;
  border-left:0 !important;
  border-radius:18px !important;
  box-shadow:none !important;
  display:grid !important;
  gap:16px !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  min-height:86px !important;
  padding:16px 18px !important;
}
.opto-patient-portal-v1584 .opto-patient-notification-card.is-unread{
  background:#f8fdfe !important;
  box-shadow:inset 4px 0 0 #0ea5a8 !important;
}
.opto-patient-portal-v1584 .opto-patient-notification-main h4{font-size:1.05rem !important;margin:2px 0 4px !important;}
.opto-patient-portal-v1584 .opto-patient-notification-main p{font-size:.94rem !important;margin:0 0 6px !important;}
.opto-patient-portal-v1584 .opto-patient-notification-actions{
  align-items:center !important;
  display:flex !important;
  gap:8px !important;
}

/* Pantalla completa: ocultar cabecera/menú web y recentrar portal */
body.opto-patient-fullscreen-active{
  background:#eef6f8 !important;
  overflow-x:hidden !important;
}
body.opto-patient-fullscreen-active #wpadminbar,
body.opto-patient-fullscreen-active #masthead,
body.opto-patient-fullscreen-active .site-header,
body.opto-patient-fullscreen-active .elementor-location-header,
body.opto-patient-fullscreen-active .elementor-location-footer,
body.opto-patient-fullscreen-active footer,
body.opto-patient-fullscreen-active header,
body.opto-patient-fullscreen-active .main-header-bar,
body.opto-patient-fullscreen-active .et-l--header,
body.opto-patient-fullscreen-active .ast-primary-header-bar,
body.opto-patient-fullscreen-active .generate-header,
body.opto-patient-fullscreen-active .navbar,
body.opto-patient-fullscreen-active .header,
body.opto-patient-fullscreen-active nav.main-navigation{
  display:none !important;
}
body.opto-patient-fullscreen-active .opto-patient-portal-v1584{
  margin-top:0 !important;
  width:min(1880px, calc(100vw - 24px)) !important;
}

@media(max-width:1500px){
  body .opto-patient-portal-v1584{
    grid-template-columns:280px minmax(0,1fr) !important;
    width:min(100%, calc(100vw - 24px)) !important;
  }
  .opto-patient-portal-v1584.opto-patient-section-inicio .opto-patient-dashboard-v155{
    grid-template-columns:repeat(2,minmax(220px,1fr)) !important;
  }
}
@media(max-width:1100px){
  body .opto-patient-portal-v1584{
    grid-template-columns:92px minmax(0,1fr) !important;
    gap:0 18px !important;
    padding-left:12px !important;
    padding-right:12px !important;
  }
  .opto-patient-portal-v1584>.opto-patient-brand-strip{
    align-items:center !important;
    min-height:96px !important;
    padding:14px 10px 8px !important;
  }
  .opto-patient-portal-v1584>.opto-patient-brand-strip .opto-brand-logo,
  .opto-patient-portal-v1584>.opto-patient-brand-strip img{
    max-width:64px !important;
    padding:9px !important;
    width:64px !important;
  }
  .opto-patient-portal-v1584>.opto-patient-brand-strip .opto-ds-version-pill{display:none !important;}
  .opto-patient-portal-v1584>.opto-patient-app-sidebar-v158{
    min-height:calc(100vh - 106px) !important;
    padding:10px 8px 18px !important;
    top:106px !important;
  }
  .opto-patient-portal-v1584>.opto-patient-app-sidebar-v158:before{display:none !important;}
  .opto-patient-portal-v1584>.opto-patient-app-sidebar-v158 a{
    gap:0 !important;
    grid-template-columns:1fr !important;
    justify-items:center !important;
    padding:10px 8px !important;
  }
  .opto-patient-portal-v1584>.opto-patient-app-sidebar-v158 a strong{display:none !important;}
  .opto-patient-portal-v1584 .opto-patient-nav-badge{position:absolute !important;right:4px !important;top:4px !important;}
}
@media(max-width:780px){
  body .opto-patient-portal-v1584{
    display:block !important;
    margin:0 auto !important;
    max-width:100% !important;
    padding:10px 10px 78px !important;
    transform:none !important;
    width:100% !important;
  }
  .opto-patient-portal-v1584>.opto-patient-brand-strip{display:none !important;}
  .opto-patient-portal-v1584>.opto-patient-app-sidebar-v158{
    align-items:center !important;
    background:#08263d !important;
    border-radius:20px 20px 0 0 !important;
    bottom:0 !important;
    box-shadow:0 -12px 30px rgba(2,18,32,.22) !important;
    display:grid !important;
    gap:4px !important;
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    left:0 !important;
    margin:0 !important;
    max-height:74px !important;
    min-height:0 !important;
    overflow:visible !important;
    padding:6px 6px calc(6px + env(safe-area-inset-bottom)) !important;
    position:fixed !important;
    right:0 !important;
    top:auto !important;
    width:100% !important;
    z-index:999999 !important;
  }
  .opto-patient-portal-v1584>.opto-patient-app-sidebar-v158:before{display:none !important;}
  .opto-patient-portal-v1584>.opto-patient-app-sidebar-v158 a{
    border-radius:13px !important;
    display:grid !important;
    gap:2px !important;
    grid-template-columns:1fr !important;
    justify-items:center !important;
    min-height:56px !important;
    padding:5px 3px !important;
    text-align:center !important;
  }
  .opto-patient-portal-v1584>.opto-patient-app-sidebar-v158 a:nth-child(n+6){display:none !important;}
  .opto-patient-portal-v1584>.opto-patient-app-sidebar-v158 a strong{
    color:#fff !important;
    display:block !important;
    font-size:9.5px !important;
    line-height:1.08 !important;
    max-width:62px !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
  }
  .opto-patient-portal-v1584 .opto-patient-nav-icon{
    height:24px !important;
    min-width:24px !important;
    width:24px !important;
  }
  .opto-patient-portal-v1584>.opto-patient-hero-v1582{
    display:grid !important;
    gap:14px !important;
    min-height:0 !important;
    padding:18px !important;
  }
  .opto-patient-portal-v1584 .opto-patient-hero-main-v1582 h2{font-size:clamp(2rem,9vw,2.9rem) !important;}
  .opto-patient-portal-v1584 .opto-patient-hero-actions-v1582{
    justify-content:flex-start !important;
    width:100% !important;
  }
  .opto-patient-portal-v1584 .opto-patient-fullscreen-toggle{display:none !important;}
  .opto-patient-portal-v1584.opto-patient-section-inicio .opto-patient-dashboard-v155,
  .opto-patient-portal-v1584 .opto-patient-v155-actions,
  .opto-patient-portal-v1584 .opto-patient-program-grid-v156,
  .opto-patient-portal-v1584 .opto-patient-home-grid-v155,
  .opto-patient-portal-v1584 .opto-patient-v157-progress-grid,
  .opto-patient-portal-v1584 .opto-patient-v157-appointments-grid,
  .opto-patient-portal-v1584 .opto-patient-v157-doc-layout,
  .opto-patient-portal-v1584 .opto-patient-help-grid-v158{
    grid-template-columns:1fr !important;
  }
  .opto-patient-portal-v1584 .opto-patient-notification-card{
    align-items:start !important;
    grid-template-columns:1fr !important;
  }
  .opto-patient-portal-v1584 .opto-patient-notification-actions{justify-content:flex-start !important;}
}


/* v1.5.8.5 — Portal centrado real, sidebar continuo, cabecera alineada y aislamiento visual */
html, body{overflow-x:clip;}
body .opto-patient-portal-v1585{
  --opto-patient-font: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  box-sizing:border-box !important;
  display:grid !important;
  grid-template-columns:300px minmax(0,1fr) !important;
  gap:0 28px !important;
  isolation:isolate !important;
  max-width:none !important;
  width:min(1760px, calc(100vw - 32px)) !important;
  margin-left:calc(50% - 50vw + 16px) !important;
  margin-right:0 !important;
  padding:18px 0 32px !important;
  left:auto !important;
  right:auto !important;
  transform:none !important;
  overflow:visible !important;
}
body .opto-patient-portal-v1585,
body .opto-patient-portal-v1585 *{
  box-sizing:border-box !important;
  font-family:var(--opto-patient-font) !important;
}
.opto-patient-portal-v1585 a,
.opto-patient-portal-v1585 button,
.opto-patient-portal-v1585 input,
.opto-patient-portal-v1585 textarea,
.opto-patient-portal-v1585 select{
  font-family:var(--opto-patient-font) !important;
}

/* Sidebar: logo y menú son una única columna visual, sin hueco */
.opto-patient-portal-v1585>.opto-patient-brand-strip{
  align-items:flex-start !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  display:flex !important;
  grid-column:1 !important;
  grid-row:1 !important;
  min-height:0 !important;
  padding:18px 18px 0 !important;
  pointer-events:none !important;
  position:sticky !important;
  top:18px !important;
  z-index:35 !important;
}
.opto-patient-portal-v1585>.opto-patient-brand-strip:before{display:none !important;}
.opto-patient-portal-v1585>.opto-patient-brand-strip .opto-brand-logo,
.opto-patient-portal-v1585>.opto-patient-brand-strip img{
  background:#fff !important;
  border:0 !important;
  border-radius:20px !important;
  box-shadow:0 12px 26px rgba(2,18,32,.18) !important;
  display:block !important;
  height:auto !important;
  max-width:174px !important;
  padding:13px 16px !important;
  width:174px !important;
}
.opto-patient-portal-v1585>.opto-patient-brand-strip .opto-ds-version-pill{
  pointer-events:auto !important;
  margin-left:auto !important;
}
.opto-patient-portal-v1585>.opto-patient-app-sidebar-v158{
  background:linear-gradient(180deg,#08263d 0%,#06253a 100%) !important;
  border:0 !important;
  border-radius:28px !important;
  box-shadow:0 24px 50px rgba(2,18,32,.18) !important;
  grid-column:1 !important;
  grid-row:1 / span 100 !important;
  margin:0 !important;
  min-height:calc(100vh - 36px) !important;
  padding:126px 14px 24px !important;
  position:sticky !important;
  top:18px !important;
  z-index:25 !important;
}
.opto-patient-portal-v1585>.opto-patient-app-sidebar-v158:before{
  margin:0 12px 12px !important;
}
.opto-patient-portal-v1585>.opto-patient-app-sidebar-v158 a{
  align-items:center !important;
  background:transparent !important;
  border:0 !important;
  border-radius:18px !important;
  box-shadow:none !important;
  color:#edfafe !important;
  display:grid !important;
  font-size:15px !important;
  font-weight:850 !important;
  gap:12px !important;
  grid-template-columns:34px minmax(0,1fr) auto !important;
  line-height:1.15 !important;
  min-height:50px !important;
  padding:10px 12px !important;
  text-decoration:none !important;
}
.opto-patient-portal-v1585>.opto-patient-app-sidebar-v158 a:hover,
.opto-patient-portal-v1585>.opto-patient-app-sidebar-v158 a:focus,
.opto-patient-portal-v1585>.opto-patient-app-sidebar-v158 a.is-active{
  background:linear-gradient(135deg,#0ea5a8,#07869c) !important;
  color:#fff !important;
}
.opto-patient-portal-v1585 .opto-patient-nav-icon{
  align-items:center !important;
  background:rgba(255,255,255,.09) !important;
  border:1px solid rgba(255,255,255,.16) !important;
  border-radius:13px !important;
  color:#fff !important;
  display:inline-flex !important;
  height:34px !important;
  justify-content:center !important;
  min-width:34px !important;
  width:34px !important;
}
.opto-patient-portal-v1585 .opto-patient-nav-badge{
  align-items:center !important;
  background:#0ea5a8 !important;
  border-radius:999px !important;
  color:#fff !important;
  display:inline-flex !important;
  font-size:12px !important;
  font-weight:900 !important;
  height:22px !important;
  justify-content:center !important;
  min-width:22px !important;
  padding:0 7px !important;
}
.opto-patient-portal-v1585 .opto-patient-nav-badge.is-warning{background:#f97316 !important;}

/* Todo el contenido queda en la columna derecha */
.opto-patient-portal-v1585>.opto-patient-hero-v155,
.opto-patient-portal-v1585>.opto-patient-alert,
.opto-patient-portal-v1585>.opto-patient-note,
.opto-patient-portal-v1585>section,
.opto-patient-portal-v1585>.opto-patient-warning,
.opto-patient-portal-v1585>.opto-public-modal-stack{
  grid-column:2 !important;
  min-width:0 !important;
}

/* Cabecera: avisos, chat, pantalla completa y cerrar sesión siempre en línea y separados */
.opto-patient-portal-v1585>.opto-patient-hero-v1582{
  align-items:center !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  gap:22px !important;
  justify-content:stretch !important;
  min-height:134px !important;
  padding:26px 30px !important;
}
.opto-patient-portal-v1585 .opto-patient-hero-main-v1582{min-width:0 !important;}
.opto-patient-portal-v1585 .opto-patient-hero-main-v1582 h2{
  font-size:clamp(2rem,2.6vw,3.25rem) !important;
  line-height:1.05 !important;
  margin:0 0 8px !important;
}
.opto-patient-portal-v1585 .opto-patient-hero-actions-v1582{
  align-items:center !important;
  display:flex !important;
  flex:0 0 auto !important;
  flex-wrap:nowrap !important;
  gap:14px !important;
  justify-content:flex-end !important;
  margin-left:0 !important;
  white-space:nowrap !important;
}
.opto-patient-portal-v1585 .opto-patient-notification-bell{order:1 !important;}
.opto-patient-portal-v1585 .opto-patient-chat-bell{order:2 !important;}
.opto-patient-portal-v1585 .opto-patient-fullscreen-toggle{order:3 !important;}
.opto-patient-portal-v1585 .opto-patient-logout-form{order:4 !important;margin:0 !important;}
.opto-patient-portal-v1585 .opto-patient-notification-bell,
.opto-patient-portal-v1585 .opto-patient-chat-bell{
  align-items:center !important;
  background:#fff !important;
  border:1px solid #d6e8ef !important;
  border-radius:18px !important;
  box-shadow:0 10px 25px rgba(15,23,42,.055) !important;
  color:#0b1f3a !important;
  display:inline-flex !important;
  height:54px !important;
  justify-content:center !important;
  min-width:54px !important;
  padding:0 !important;
  position:relative !important;
  text-decoration:none !important;
  width:54px !important;
}
.opto-patient-portal-v1585 .opto-patient-notification-bell strong,
.opto-patient-portal-v1585 .opto-patient-chat-bell strong{
  align-items:center !important;
  border-radius:999px !important;
  color:#fff !important;
  display:flex !important;
  font-size:12px !important;
  height:23px !important;
  justify-content:center !important;
  min-width:23px !important;
  padding:0 7px !important;
  position:absolute !important;
  right:-8px !important;
  top:-8px !important;
}
.opto-patient-portal-v1585 .opto-patient-fullscreen-toggle,
.opto-patient-portal-v1585 .opto-logout-button{
  align-items:center !important;
  display:inline-flex !important;
  gap:8px !important;
  justify-content:center !important;
  min-height:52px !important;
  padding:0 18px !important;
  white-space:nowrap !important;
}
.opto-patient-portal-v1585 .opto-patient-fullscreen-toggle{
  background:#fff !important;
  border:1px solid #cfe3ec !important;
  color:#007c95 !important;
}
.opto-patient-portal-v1585 .opto-logout-button{
  background:linear-gradient(135deg,#0ea5a8,#07869c) !important;
  border:0 !important;
  color:#fff !important;
}

/* Acciones rápidas: diseño resistente a temas externos y textos bien alineados */
.opto-patient-portal-v1585 .opto-patient-v155-actions{
  display:grid !important;
  gap:16px !important;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr)) !important;
  width:100% !important;
}
.opto-patient-portal-v1585 .opto-patient-v155-actions a{
  align-items:center !important;
  background:#fff !important;
  border:1px solid #d9e8ef !important;
  border-radius:22px !important;
  box-shadow:0 12px 30px rgba(15,23,42,.05) !important;
  color:#0b1f3a !important;
  display:grid !important;
  gap:4px 16px !important;
  grid-template-columns:52px minmax(0,1fr) !important;
  min-height:116px !important;
  padding:18px 20px !important;
  position:relative !important;
  text-decoration:none !important;
}
.opto-patient-portal-v1585 .opto-patient-v155-actions a:after{
  color:#94a3b8 !important;
  content:"›" !important;
  font-size:24px !important;
  line-height:1 !important;
  position:absolute !important;
  right:20px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
}
.opto-patient-portal-v1585 .opto-patient-v155-actions a span{
  align-items:center !important;
  background:#e9fbfc !important;
  border:0 !important;
  border-radius:16px !important;
  color:#007c95 !important;
  display:flex !important;
  grid-row:1 / span 2 !important;
  height:52px !important;
  justify-content:center !important;
  min-width:52px !important;
  width:52px !important;
}
.opto-patient-portal-v1585 .opto-patient-v155-actions strong{
  align-self:end !important;
  color:#007c95 !important;
  display:block !important;
  font-size:1.05rem !important;
  line-height:1.22 !important;
  margin:0 !important;
  max-width:calc(100% - 22px) !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
}
.opto-patient-portal-v1585 .opto-patient-v155-actions small{
  align-self:start !important;
  color:#64748b !important;
  display:block !important;
  font-size:.9rem !important;
  line-height:1.35 !important;
  margin:0 !important;
  max-width:calc(100% - 22px) !important;
}

/* Fullscreen real: el portal se convierte en overlay de aplicación y la web queda detrás */
body.opto-patient-fullscreen-active{
  overflow:hidden !important;
}
body.opto-patient-fullscreen-active .opto-patient-portal-v1585{
  background:#eef6f8 !important;
  display:grid !important;
  gap:0 28px !important;
  grid-template-columns:300px minmax(0,1fr) !important;
  height:100vh !important;
  inset:0 !important;
  margin:0 !important;
  max-width:none !important;
  overflow:auto !important;
  padding:18px 24px 32px !important;
  position:fixed !important;
  transform:none !important;
  width:100vw !important;
  z-index:2147483000 !important;
}
body.opto-patient-fullscreen-active .opto-patient-portal-v1585>.opto-patient-brand-strip,
body.opto-patient-fullscreen-active .opto-patient-portal-v1585>.opto-patient-app-sidebar-v158{
  top:18px !important;
}

/* Avisos más limpios */
.opto-patient-portal-v1585 .opto-patient-notifications-panel-v1582{padding:24px !important;}
.opto-patient-portal-v1585 .opto-patient-notifications-list{display:grid !important;gap:10px !important;}
.opto-patient-portal-v1585 .opto-patient-notification-card{
  align-items:center !important;
  background:#fff !important;
  border:1px solid #d9e8ef !important;
  border-left:0 !important;
  border-radius:18px !important;
  box-shadow:none !important;
  display:grid !important;
  gap:16px !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  min-height:84px !important;
  padding:16px 18px !important;
}
.opto-patient-portal-v1585 .opto-patient-notification-card.is-unread{
  background:#f8fdfe !important;
  box-shadow:inset 4px 0 0 #0ea5a8 !important;
}
.opto-patient-portal-v1585 .opto-patient-notification-actions{align-items:center !important;display:flex !important;gap:8px !important;justify-content:flex-end !important;}

@media(max-width:1500px){
  body .opto-patient-portal-v1585{
    grid-template-columns:280px minmax(0,1fr) !important;
    width:calc(100vw - 24px) !important;
    margin-left:calc(50% - 50vw + 12px) !important;
  }
  .opto-patient-portal-v1585.opto-patient-section-inicio .opto-patient-dashboard-v155{grid-template-columns:repeat(2,minmax(220px,1fr)) !important;}
}
@media(max-width:1180px){
  body .opto-patient-portal-v1585{grid-template-columns:92px minmax(0,1fr) !important;gap:0 18px !important;}
  .opto-patient-portal-v1585>.opto-patient-brand-strip{padding:14px 10px 0 !important;}
  .opto-patient-portal-v1585>.opto-patient-brand-strip .opto-brand-logo,
  .opto-patient-portal-v1585>.opto-patient-brand-strip img{max-width:64px !important;padding:9px !important;width:64px !important;}
  .opto-patient-portal-v1585>.opto-patient-brand-strip .opto-ds-version-pill{display:none !important;}
  .opto-patient-portal-v1585>.opto-patient-app-sidebar-v158{padding:104px 8px 18px !important;}
  .opto-patient-portal-v1585>.opto-patient-app-sidebar-v158:before{display:none !important;}
  .opto-patient-portal-v1585>.opto-patient-app-sidebar-v158 a{gap:0 !important;grid-template-columns:1fr !important;justify-items:center !important;padding:10px 8px !important;}
  .opto-patient-portal-v1585>.opto-patient-app-sidebar-v158 a strong{display:none !important;}
  .opto-patient-portal-v1585 .opto-patient-hero-actions-v1582{flex-wrap:wrap !important;justify-content:flex-end !important;}
}
@media(max-width:780px){
  body .opto-patient-portal-v1585{
    display:block !important;
    margin:0 auto !important;
    max-width:100% !important;
    padding:10px 10px 78px !important;
    transform:none !important;
    width:100% !important;
  }
  .opto-patient-portal-v1585>.opto-patient-brand-strip{display:none !important;}
  .opto-patient-portal-v1585>.opto-patient-app-sidebar-v158{
    align-items:center !important;
    background:#08263d !important;
    border-radius:20px 20px 0 0 !important;
    bottom:0 !important;
    box-shadow:0 -12px 30px rgba(2,18,32,.22) !important;
    display:grid !important;
    gap:4px !important;
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    left:0 !important;
    margin:0 !important;
    max-height:74px !important;
    min-height:0 !important;
    overflow:visible !important;
    padding:6px 6px calc(6px + env(safe-area-inset-bottom)) !important;
    position:fixed !important;
    right:0 !important;
    top:auto !important;
    width:100% !important;
    z-index:999999 !important;
  }
  .opto-patient-portal-v1585>.opto-patient-app-sidebar-v158 a{border-radius:13px !important;display:grid !important;gap:2px !important;grid-template-columns:1fr !important;justify-items:center !important;min-height:56px !important;padding:5px 3px !important;text-align:center !important;}
  .opto-patient-portal-v1585>.opto-patient-app-sidebar-v158 a:nth-child(n+6){display:none !important;}
  .opto-patient-portal-v1585>.opto-patient-app-sidebar-v158 a strong{display:block !important;font-size:9.5px !important;line-height:1.08 !important;max-width:62px !important;overflow:hidden !important;text-overflow:ellipsis !important;white-space:nowrap !important;}
  .opto-patient-portal-v1585 .opto-patient-nav-icon{height:24px !important;min-width:24px !important;width:24px !important;}
  .opto-patient-portal-v1585>.opto-patient-hero-v1582{display:grid !important;gap:14px !important;min-height:0 !important;padding:18px !important;}
  .opto-patient-portal-v1585 .opto-patient-hero-actions-v1582{justify-content:flex-start !important;width:100% !important;}
  .opto-patient-portal-v1585 .opto-patient-fullscreen-toggle{display:none !important;}
  .opto-patient-portal-v1585.opto-patient-section-inicio .opto-patient-dashboard-v155,
  .opto-patient-portal-v1585 .opto-patient-v155-actions,
  .opto-patient-portal-v1585 .opto-patient-program-grid-v156,
  .opto-patient-portal-v1585 .opto-patient-home-grid-v155,
  .opto-patient-portal-v1585 .opto-patient-v157-progress-grid,
  .opto-patient-portal-v1585 .opto-patient-v157-appointments-grid,
  .opto-patient-portal-v1585 .opto-patient-v157-doc-layout,
  .opto-patient-portal-v1585 .opto-patient-help-grid-v158{grid-template-columns:1fr !important;}
  body.opto-patient-fullscreen-active .opto-patient-portal-v1585{position:fixed !important;inset:0 !important;width:100vw !important;height:100vh !important;padding:10px 10px 84px !important;}
}


/* v1.5.8.6 — Portal centrado en modo web y cabecera con cuatro iconos alineados */
html, body{
  overflow-x:hidden !important;
}
body .opto-patient-portal-v1586{
  display:grid !important;
  grid-template-columns:300px minmax(0,1fr) !important;
  gap:0 28px !important;
  width:min(1520px, calc(100vw - 40px)) !important;
  max-width:min(1520px, calc(100vw - 40px)) !important;
  margin:0 auto !important;
  padding:18px 0 32px !important;
  position:relative !important;
  left:auto !important;
  right:auto !important;
  transform:none !important;
  overflow:visible !important;
}
.opto-patient-portal-v1586>.opto-patient-brand-strip{
  padding:18px 18px 0 !important;
  top:18px !important;
}
.opto-patient-portal-v1586>.opto-patient-app-sidebar-v158{
  padding-top:104px !important;
  min-height:calc(100vh - 36px) !important;
}
.opto-patient-portal-v1586>.opto-patient-app-sidebar-v158:before{
  margin:0 12px 10px !important;
}
.opto-patient-portal-v1586>.opto-patient-hero-v1582{
  grid-template-columns:minmax(0,1fr) auto !important;
  gap:22px !important;
  overflow:visible !important;
}
.opto-patient-portal-v1586 .opto-patient-hero-actions-v1582{
  align-items:center !important;
  display:flex !important;
  flex-wrap:nowrap !important;
  gap:12px !important;
  justify-content:flex-end !important;
  min-width:max-content !important;
  white-space:nowrap !important;
}
.opto-patient-portal-v1586 .opto-patient-notification-bell,
.opto-patient-portal-v1586 .opto-patient-chat-bell,
.opto-patient-portal-v1586 .opto-patient-fullscreen-toggle,
.opto-patient-portal-v1586 .opto-logout-button{
  align-items:center !important;
  appearance:none !important;
  -webkit-appearance:none !important;
  background:#fff !important;
  border:1px solid #d6e8ef !important;
  border-radius:18px !important;
  box-shadow:0 10px 25px rgba(15,23,42,.055) !important;
  color:#007c95 !important;
  display:inline-flex !important;
  flex:0 0 54px !important;
  font-size:20px !important;
  font-weight:900 !important;
  height:54px !important;
  justify-content:center !important;
  line-height:1 !important;
  min-height:54px !important;
  min-width:54px !important;
  padding:0 !important;
  position:relative !important;
  text-decoration:none !important;
  width:54px !important;
}
.opto-patient-portal-v1586 .opto-logout-button{
  background:linear-gradient(135deg,#0ea5a8,#07869c) !important;
  border:0 !important;
  color:#fff !important;
}
.opto-patient-portal-v1586 .opto-patient-fullscreen-toggle span,
.opto-patient-portal-v1586 .opto-logout-button span,
.opto-patient-portal-v1586 .opto-patient-notification-bell span,
.opto-patient-portal-v1586 .opto-patient-chat-bell span{
  align-items:center !important;
  background:transparent !important;
  border:0 !important;
  display:inline-flex !important;
  font-size:20px !important;
  height:auto !important;
  justify-content:center !important;
  line-height:1 !important;
  margin:0 !important;
  padding:0 !important;
  width:auto !important;
}
.opto-patient-portal-v1586 .opto-patient-notification-bell strong,
.opto-patient-portal-v1586 .opto-patient-chat-bell strong{
  right:-8px !important;
  top:-8px !important;
  z-index:2 !important;
}
.opto-patient-portal-v1586 .opto-patient-logout-form{
  display:inline-flex !important;
  flex:0 0 auto !important;
  margin:0 !important;
}
.opto-patient-portal-v1586 .opto-sr-only{
  clip:rect(0 0 0 0) !important;
  clip-path:inset(50%) !important;
  height:1px !important;
  overflow:hidden !important;
  position:absolute !important;
  white-space:nowrap !important;
  width:1px !important;
}
.opto-patient-portal-v1586 .opto-patient-v155-actions{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}
.opto-patient-portal-v1586 .opto-patient-v155-actions a{
  grid-template-columns:54px minmax(0,1fr) 18px !important;
  min-height:104px !important;
  padding:18px 20px !important;
}
.opto-patient-portal-v1586 .opto-patient-v155-actions a:after{
  grid-column:3 !important;
  position:static !important;
  transform:none !important;
  align-self:center !important;
  justify-self:end !important;
}
.opto-patient-portal-v1586 .opto-patient-v155-actions a span{
  grid-column:1 !important;
  grid-row:1 / span 2 !important;
}
.opto-patient-portal-v1586 .opto-patient-v155-actions strong,
.opto-patient-portal-v1586 .opto-patient-v155-actions small{
  grid-column:2 !important;
  max-width:100% !important;
  overflow-wrap:break-word !important;
  word-break:normal !important;
}
body.opto-patient-fullscreen-active .opto-patient-portal-v1586{
  background:#eef6f8 !important;
  display:grid !important;
  grid-template-columns:300px minmax(0,1fr) !important;
  gap:0 28px !important;
  height:100vh !important;
  inset:0 !important;
  margin:0 !important;
  max-width:none !important;
  overflow:auto !important;
  padding:18px 24px 32px !important;
  position:fixed !important;
  width:100vw !important;
  z-index:2147483000 !important;
}
@media(max-width:1560px){
  body .opto-patient-portal-v1586{
    width:min(1380px, calc(100vw - 32px)) !important;
    max-width:min(1380px, calc(100vw - 32px)) !important;
    grid-template-columns:280px minmax(0,1fr) !important;
  }
  .opto-patient-portal-v1586 .opto-patient-v155-actions{grid-template-columns:repeat(2,minmax(230px,1fr)) !important;}
}
@media(max-width:1180px){
  body .opto-patient-portal-v1586{
    grid-template-columns:92px minmax(0,1fr) !important;
    gap:0 18px !important;
    width:calc(100vw - 24px) !important;
    max-width:calc(100vw - 24px) !important;
  }
  .opto-patient-portal-v1586>.opto-patient-app-sidebar-v158{padding-top:104px !important;}
  .opto-patient-portal-v1586 .opto-patient-hero-actions-v1582{gap:9px !important;}
  .opto-patient-portal-v1586 .opto-patient-notification-bell,
  .opto-patient-portal-v1586 .opto-patient-chat-bell,
  .opto-patient-portal-v1586 .opto-patient-fullscreen-toggle,
  .opto-patient-portal-v1586 .opto-logout-button{
    flex-basis:48px !important;height:48px !important;min-height:48px !important;min-width:48px !important;width:48px !important;
  }
}
@media(max-width:780px){
  body .opto-patient-portal-v1586{
    display:block !important;
    margin:0 auto !important;
    max-width:100% !important;
    padding:10px 10px 78px !important;
    width:100% !important;
  }
  .opto-patient-portal-v1586>.opto-patient-hero-v1582{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:14px !important;
    padding:18px !important;
  }
  .opto-patient-portal-v1586 .opto-patient-hero-actions-v1582{
    justify-content:flex-start !important;
    min-width:0 !important;
    width:100% !important;
  }
  .opto-patient-portal-v1586 .opto-patient-v155-actions{grid-template-columns:1fr !important;}
}

/* v1.5.8.7 — Cabecera con cuatro iconos alineados */
.opto-patient-portal-v1586>.opto-patient-hero-v1582{
  align-items:center !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
}
.opto-patient-portal-v1586 .opto-patient-hero-actions-v1582{
  align-items:center !important;
  display:flex !important;
  flex:0 0 auto !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  gap:12px !important;
  justify-content:flex-end !important;
  min-width:max-content !important;
  white-space:nowrap !important;
}
.opto-patient-portal-v1586 .opto-patient-notification-bell,
.opto-patient-portal-v1586 .opto-patient-chat-bell,
.opto-patient-portal-v1586 .opto-patient-fullscreen-toggle,
.opto-patient-portal-v1586 .opto-logout-button,
.opto-patient-portal-v1586 .opto-patient-logout-form{
  display:inline-flex !important;
  flex:0 0 auto !important;
  margin:0 !important;
  order:initial !important;
  vertical-align:middle !important;
}
.opto-patient-portal-v1586 .opto-patient-notification-bell{order:1 !important;}
.opto-patient-portal-v1586 .opto-patient-chat-bell{order:2 !important;}
.opto-patient-portal-v1586 .opto-patient-fullscreen-toggle{order:3 !important;}
.opto-patient-portal-v1586 .opto-patient-logout-form{order:4 !important;}
.opto-patient-portal-v1586 .opto-patient-logout-form .opto-logout-button{margin:0 !important;}
@media(max-width:1180px){
  .opto-patient-portal-v1586 .opto-patient-hero-actions-v1582{
    gap:8px !important;
  }
}
@media(max-width:780px){
  .opto-patient-portal-v1586 .opto-patient-hero-actions-v1582{
    justify-content:flex-start !important;
    overflow-x:auto !important;
    padding-bottom:2px !important;
    width:100% !important;
  }
}

/* v1.5.8.8 — Cabecera del portal alineada con el mockup aprobado */
html,
body{
  overflow-x:hidden !important;
}
body .opto-patient-portal-v1588{
  display:grid !important;
  grid-template-columns:300px minmax(0,1fr) !important;
  gap:0 30px !important;
  width:min(1540px, calc(100vw - 40px)) !important;
  max-width:min(1540px, calc(100vw - 40px)) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding:20px 0 34px !important;
  box-sizing:border-box !important;
  overflow:visible !important;
  left:auto !important;
  right:auto !important;
  transform:none !important;
}
body .opto-patient-portal-v1588 *,
body .opto-patient-portal-v1588 *:before,
body .opto-patient-portal-v1588 *:after{
  box-sizing:border-box !important;
}
/* Sidebar: bloque logo y menú unidos, sin hueco visual */
.opto-patient-portal-v1588>.opto-patient-brand-strip{
  align-items:center !important;
  background:linear-gradient(180deg,#071f35 0%,#092a45 100%) !important;
  border:0 !important;
  border-radius:30px 30px 0 0 !important;
  box-shadow:0 24px 50px rgba(2,18,32,.16) !important;
  display:flex !important;
  grid-column:1 !important;
  grid-row:1 !important;
  gap:12px !important;
  justify-content:space-between !important;
  margin:0 !important;
  min-height:112px !important;
  padding:18px 18px 12px !important;
  position:sticky !important;
  top:18px !important;
  width:100% !important;
  z-index:20 !important;
}
.opto-patient-portal-v1588>.opto-patient-brand-strip:before{
  display:none !important;
  content:none !important;
}
.opto-patient-portal-v1588>.opto-patient-brand-strip .opto-brand-logo,
.opto-patient-portal-v1588>.opto-patient-brand-strip img{
  background:#fff !important;
  border-radius:22px !important;
  box-shadow:0 14px 30px rgba(2,18,32,.18) !important;
  max-height:none !important;
  max-width:182px !important;
  padding:14px 16px !important;
  width:182px !important;
}
.opto-patient-portal-v1588>.opto-patient-brand-strip .opto-ds-version-pill{
  background:#5bb5bf !important;
  border:0 !important;
  border-radius:999px !important;
  color:#fff !important;
  display:inline-flex !important;
  flex:0 0 auto !important;
  font-size:12px !important;
  font-weight:900 !important;
  line-height:1 !important;
  margin:0 !important;
  padding:10px 12px !important;
}
.opto-patient-portal-v1588>.opto-patient-app-sidebar-v158{
  background:linear-gradient(180deg,#071f35 0%,#092a45 100%) !important;
  border:0 !important;
  border-radius:0 0 30px 30px !important;
  box-shadow:0 24px 50px rgba(2,18,32,.16) !important;
  grid-column:1 !important;
  grid-row:2 / span 50 !important;
  margin:0 !important;
  min-height:calc(100vh - 150px) !important;
  padding:14px 14px 24px !important;
  position:sticky !important;
  top:130px !important;
  width:100% !important;
  z-index:19 !important;
}
.opto-patient-portal-v1588>.opto-patient-app-sidebar-v158:before{
  color:rgba(255,255,255,.62) !important;
  content:"Portal del paciente" !important;
  display:block !important;
  font-size:11px !important;
  font-weight:900 !important;
  letter-spacing:.12em !important;
  margin:0 12px 12px !important;
  text-transform:uppercase !important;
}
/* Cabecera principal: tarjeta blanca, dos zonas y cuatro iconos en fila */
.opto-patient-portal-v1588>.opto-patient-hero-v1582{
  align-items:center !important;
  background:#fff !important;
  border:1px solid #dce9f0 !important;
  border-radius:34px !important;
  box-shadow:0 24px 60px rgba(15,23,42,.065) !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  grid-column:2 !important;
  gap:32px !important;
  margin:0 0 28px !important;
  min-height:198px !important;
  overflow:visible !important;
  padding:42px 56px !important;
  width:100% !important;
}
.opto-patient-portal-v1588 .opto-patient-hero-main-v1582{
  display:block !important;
  min-width:0 !important;
}
.opto-patient-portal-v1588 .opto-patient-hero-main-v1582 .opto-patient-kicker{
  color:#2f6f86 !important;
  display:block !important;
  font-size:13px !important;
  font-weight:900 !important;
  letter-spacing:.16em !important;
  line-height:1.2 !important;
  margin:0 0 18px !important;
  text-transform:uppercase !important;
}
.opto-patient-portal-v1588 .opto-patient-hero-main-v1582 h2{
  color:#63a9ad !important;
  display:block !important;
  font-size:clamp(44px,4.2vw,72px) !important;
  font-weight:800 !important;
  letter-spacing:-.055em !important;
  line-height:.96 !important;
  margin:0 0 16px !important;
  max-width:100% !important;
}
.opto-patient-portal-v1588 .opto-patient-hero-main-v1582 h2 span{
  display:inline-block !important;
  font-size:.72em !important;
  margin-left:10px !important;
  vertical-align:baseline !important;
}
.opto-patient-portal-v1588 .opto-patient-hero-main-v1582 p:not(.opto-patient-kicker){
  color:#0b1f3a !important;
  display:block !important;
  font-size:19px !important;
  font-weight:500 !important;
  line-height:1.35 !important;
  margin:0 !important;
  max-width:780px !important;
}
.opto-patient-portal-v1588 .opto-patient-hero-actions-v1582{
  align-items:center !important;
  align-self:center !important;
  display:grid !important;
  grid-auto-flow:column !important;
  grid-auto-columns:72px !important;
  grid-template-columns:repeat(4,72px) !important;
  gap:18px !important;
  justify-content:end !important;
  justify-items:center !important;
  margin:0 !important;
  min-width:342px !important;
  padding:0 !important;
  white-space:nowrap !important;
  width:auto !important;
}
.opto-patient-portal-v1588 .opto-patient-logout-form{
  display:contents !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  width:auto !important;
}
.opto-patient-portal-v1588 .opto-patient-notification-bell,
.opto-patient-portal-v1588 .opto-patient-chat-bell,
.opto-patient-portal-v1588 .opto-patient-fullscreen-toggle,
.opto-patient-portal-v1588 .opto-logout-button{
  align-items:center !important;
  appearance:none !important;
  -webkit-appearance:none !important;
  background:#fff !important;
  border:1px solid #dce9f0 !important;
  border-radius:22px !important;
  box-shadow:0 12px 26px rgba(15,23,42,.055) !important;
  color:#0b1f3a !important;
  cursor:pointer !important;
  display:inline-flex !important;
  flex:0 0 72px !important;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
  font-size:26px !important;
  font-weight:900 !important;
  height:72px !important;
  justify-content:center !important;
  line-height:1 !important;
  margin:0 !important;
  min-height:72px !important;
  min-width:72px !important;
  padding:0 !important;
  position:relative !important;
  text-align:center !important;
  text-decoration:none !important;
  vertical-align:middle !important;
  width:72px !important;
}
.opto-patient-portal-v1588 .opto-patient-notification-bell:hover,
.opto-patient-portal-v1588 .opto-patient-chat-bell:hover,
.opto-patient-portal-v1588 .opto-patient-fullscreen-toggle:hover,
.opto-patient-portal-v1588 .opto-logout-button:hover{
  box-shadow:0 18px 34px rgba(15,23,42,.09) !important;
  transform:translateY(-1px) !important;
}
.opto-patient-portal-v1588 .opto-patient-notification-bell span,
.opto-patient-portal-v1588 .opto-patient-chat-bell span,
.opto-patient-portal-v1588 .opto-patient-fullscreen-toggle span,
.opto-patient-portal-v1588 .opto-logout-button span{
  align-items:center !important;
  background:transparent !important;
  border:0 !important;
  color:inherit !important;
  display:inline-flex !important;
  font-size:25px !important;
  height:1em !important;
  justify-content:center !important;
  line-height:1 !important;
  margin:0 !important;
  padding:0 !important;
  width:1em !important;
}
.opto-patient-portal-v1588 .opto-patient-fullscreen-toggle span{
  font-size:29px !important;
}
.opto-patient-portal-v1588 .opto-logout-button span{
  font-size:30px !important;
}
.opto-patient-portal-v1588 .opto-patient-notification-bell strong,
.opto-patient-portal-v1588 .opto-patient-chat-bell strong{
  align-items:center !important;
  background:#5ba9ad !important;
  border:0 !important;
  border-radius:999px !important;
  box-shadow:0 7px 14px rgba(15,23,42,.12) !important;
  color:#fff !important;
  display:flex !important;
  font-size:15px !important;
  font-weight:900 !important;
  height:29px !important;
  justify-content:center !important;
  line-height:1 !important;
  min-width:29px !important;
  padding:0 8px !important;
  position:absolute !important;
  right:-9px !important;
  top:-10px !important;
  z-index:3 !important;
}
.opto-patient-portal-v1588 .opto-patient-notification-bell:not(.has-unread) strong,
.opto-patient-portal-v1588 .opto-patient-chat-bell:not(.has-unread) strong{
  opacity:.95 !important;
}
.opto-patient-portal-v1588>.opto-patient-alert,
.opto-patient-portal-v1588>.opto-patient-note,
.opto-patient-portal-v1588>section,
.opto-patient-portal-v1588>#opto-patient-dashboard,
.opto-patient-portal-v1588>.opto-patient-home-grid-v155,
.opto-patient-portal-v1588>.opto-patient-v155-actions,
.opto-patient-portal-v1588>.opto-patient-v155-reminder,
.opto-patient-portal-v1588>.opto-patient-warning,
.opto-patient-portal-v1588>.opto-public-modal-stack{
  grid-column:2 !important;
  width:100% !important;
}
/* Acciones rápidas compactas y no contaminadas por el tema */
.opto-patient-portal-v1588 .opto-patient-v155-actions{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:18px !important;
}
.opto-patient-portal-v1588 .opto-patient-v155-actions a{
  align-items:center !important;
  background:#fff !important;
  border:1px solid #dce9f0 !important;
  border-radius:22px !important;
  box-shadow:0 12px 28px rgba(15,23,42,.045) !important;
  color:#0b1f3a !important;
  display:grid !important;
  grid-template-columns:54px minmax(0,1fr) 20px !important;
  gap:12px !important;
  min-height:100px !important;
  padding:18px !important;
  text-decoration:none !important;
}
.opto-patient-portal-v1588 .opto-patient-v155-actions a span{
  align-items:center !important;
  background:#e8fbfc !important;
  border-radius:16px !important;
  color:#0ea5a8 !important;
  display:flex !important;
  font-size:22px !important;
  height:52px !important;
  justify-content:center !important;
  width:52px !important;
}
.opto-patient-portal-v1588 .opto-patient-v155-actions a strong,
.opto-patient-portal-v1588 .opto-patient-v155-actions a small{
  display:block !important;
  margin:0 !important;
  max-width:100% !important;
  min-width:0 !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
}
.opto-patient-portal-v1588 .opto-patient-v155-actions a strong{
  color:#007c95 !important;
  font-size:16px !important;
  font-weight:900 !important;
  line-height:1.2 !important;
}
.opto-patient-portal-v1588 .opto-patient-v155-actions a small{
  color:#64748b !important;
  font-size:13px !important;
  line-height:1.35 !important;
}
.opto-patient-portal-v1588 .opto-patient-v155-actions a:after{
  align-self:center !important;
  color:#8da2b6 !important;
  content:"›" !important;
  display:block !important;
  font-size:30px !important;
  font-weight:800 !important;
  grid-column:3 !important;
  justify-self:end !important;
  position:static !important;
  transform:none !important;
}
/* Centrado en modo pantalla completa */
body.opto-patient-fullscreen-active .opto-patient-portal-v1588{
  background:#eef6f8 !important;
  display:grid !important;
  grid-template-columns:300px minmax(0,1fr) !important;
  gap:0 30px !important;
  height:100vh !important;
  inset:0 !important;
  margin:0 !important;
  max-width:none !important;
  overflow:auto !important;
  padding:20px 28px 34px !important;
  position:fixed !important;
  width:100vw !important;
  z-index:2147483000 !important;
}
body.opto-patient-fullscreen-active .opto-patient-portal-v1588>.opto-patient-brand-strip,
body.opto-patient-fullscreen-active .opto-patient-portal-v1588>.opto-patient-app-sidebar-v158{
  top:20px !important;
}
body.opto-patient-fullscreen-active .opto-patient-portal-v1588>.opto-patient-app-sidebar-v158{
  top:132px !important;
}
@media(max-width:1560px){
  body .opto-patient-portal-v1588{
    grid-template-columns:280px minmax(0,1fr) !important;
    gap:0 24px !important;
    width:min(1380px, calc(100vw - 32px)) !important;
    max-width:min(1380px, calc(100vw - 32px)) !important;
  }
  .opto-patient-portal-v1588>.opto-patient-hero-v1582{
    padding:36px 42px !important;
  }
  .opto-patient-portal-v1588 .opto-patient-hero-actions-v1582{
    grid-auto-columns:64px !important;
    grid-template-columns:repeat(4,64px) !important;
    gap:14px !important;
    min-width:298px !important;
  }
  .opto-patient-portal-v1588 .opto-patient-notification-bell,
  .opto-patient-portal-v1588 .opto-patient-chat-bell,
  .opto-patient-portal-v1588 .opto-patient-fullscreen-toggle,
  .opto-patient-portal-v1588 .opto-logout-button{
    flex-basis:64px !important;
    height:64px !important;
    min-height:64px !important;
    min-width:64px !important;
    width:64px !important;
  }
}
@media(max-width:1180px){
  body .opto-patient-portal-v1588{
    grid-template-columns:92px minmax(0,1fr) !important;
    gap:0 18px !important;
    width:calc(100vw - 24px) !important;
    max-width:calc(100vw - 24px) !important;
  }
  .opto-patient-portal-v1588>.opto-patient-brand-strip{
    justify-content:center !important;
    min-height:96px !important;
    padding:16px 10px 10px !important;
  }
  .opto-patient-portal-v1588>.opto-patient-brand-strip .opto-brand-logo,
  .opto-patient-portal-v1588>.opto-patient-brand-strip img{
    max-width:62px !important;
    padding:9px !important;
    width:62px !important;
  }
  .opto-patient-portal-v1588>.opto-patient-brand-strip .opto-ds-version-pill{display:none !important;}
  .opto-patient-portal-v1588>.opto-patient-app-sidebar-v158{
    min-height:calc(100vh - 122px) !important;
    padding:12px 10px !important;
    top:114px !important;
  }
  .opto-patient-portal-v1588>.opto-patient-app-sidebar-v158:before{display:none !important;}
  .opto-patient-portal-v1588>.opto-patient-hero-v1582{
    grid-template-columns:1fr !important;
    gap:22px !important;
    min-height:0 !important;
    padding:30px !important;
  }
  .opto-patient-portal-v1588 .opto-patient-hero-actions-v1582{
    justify-content:start !important;
  }
  .opto-patient-portal-v1588 .opto-patient-v155-actions{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media(max-width:780px){
  body .opto-patient-portal-v1588{
    display:block !important;
    margin:0 auto !important;
    max-width:100% !important;
    padding:12px 12px 86px !important;
    width:100% !important;
  }
  .opto-patient-portal-v1588>.opto-patient-brand-strip{
    border-radius:24px !important;
    margin:0 0 12px !important;
    min-height:78px !important;
    position:relative !important;
    top:auto !important;
  }
  .opto-patient-portal-v1588>.opto-patient-brand-strip .opto-brand-logo,
  .opto-patient-portal-v1588>.opto-patient-brand-strip img{
    max-width:170px !important;
    width:170px !important;
  }
  .opto-patient-portal-v1588>.opto-patient-app-sidebar-v158{
    align-items:center !important;
    background:rgba(7,31,53,.98) !important;
    border-radius:20px 20px 0 0 !important;
    bottom:0 !important;
    box-shadow:0 -18px 38px rgba(2,18,32,.22) !important;
    display:grid !important;
    grid-template-columns:repeat(5,1fr) !important;
    left:0 !important;
    margin:0 !important;
    min-height:0 !important;
    padding:8px 10px 10px !important;
    position:fixed !important;
    top:auto !important;
    width:100% !important;
    z-index:99999 !important;
  }
  .opto-patient-portal-v1588>.opto-patient-app-sidebar-v158:before{display:none !important;}
  .opto-patient-portal-v1588>.opto-patient-app-sidebar-v158 a{
    border-radius:14px !important;
    display:grid !important;
    gap:4px !important;
    grid-template-columns:1fr !important;
    justify-items:center !important;
    min-height:56px !important;
    padding:6px 4px !important;
    text-align:center !important;
  }
  .opto-patient-portal-v1588>.opto-patient-app-sidebar-v158 a strong{
    display:block !important;
    font-size:10px !important;
    line-height:1.05 !important;
  }
  .opto-patient-portal-v1588>.opto-patient-app-sidebar-v158 a:nth-child(n+6){display:none !important;}
  .opto-patient-portal-v1588 .opto-patient-nav-icon{
    height:26px !important;
    min-width:26px !important;
    width:26px !important;
  }
  .opto-patient-portal-v1588>.opto-patient-hero-v1582{
    border-radius:28px !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:18px !important;
    margin-bottom:16px !important;
    padding:22px !important;
  }
  .opto-patient-portal-v1588 .opto-patient-hero-main-v1582 h2{
    font-size:clamp(34px,11vw,48px) !important;
  }
  .opto-patient-portal-v1588 .opto-patient-hero-main-v1582 p:not(.opto-patient-kicker){
    font-size:16px !important;
  }
  .opto-patient-portal-v1588 .opto-patient-hero-actions-v1582{
    grid-auto-columns:54px !important;
    grid-template-columns:repeat(4,54px) !important;
    gap:10px !important;
    justify-content:start !important;
    min-width:0 !important;
    overflow:visible !important;
    width:auto !important;
  }
  .opto-patient-portal-v1588 .opto-patient-notification-bell,
  .opto-patient-portal-v1588 .opto-patient-chat-bell,
  .opto-patient-portal-v1588 .opto-patient-fullscreen-toggle,
  .opto-patient-portal-v1588 .opto-logout-button{
    border-radius:17px !important;
    flex-basis:54px !important;
    height:54px !important;
    min-height:54px !important;
    min-width:54px !important;
    width:54px !important;
  }
  .opto-patient-portal-v1588 .opto-patient-v155-actions{
    grid-template-columns:1fr !important;
  }
}

/* v1.5.8.9 — Cabecera aprobada, centrado real y compatibilidad con builders */
body .opto-patient-portal-v1589{
  position:relative !important;
  left:auto !important;
  transform:none !important;
  display:grid !important;
  grid-template-columns:300px minmax(0,1fr) !important;
  gap:0 30px !important;
  width:100vw !important;
  max-width:100vw !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
  padding:22px max(28px,calc((100vw - 1600px)/2)) 36px !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
}
body .opto-patient-portal-v1589 *,
body .opto-patient-portal-v1589 *::before,
body .opto-patient-portal-v1589 *::after{box-sizing:border-box !important;}

/* Sidebar continuo: el menú empieza justo debajo del logo, sin salto de fila por la cabecera */
.opto-patient-portal-v1589>.opto-patient-brand-strip{
  grid-column:1 !important;
  grid-row:1 !important;
  align-self:start !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  margin:0 !important;
  min-height:0 !important;
  padding:18px 18px 0 !important;
  position:relative !important;
  top:auto !important;
  z-index:25 !important;
}
.opto-patient-portal-v1589>.opto-patient-brand-strip .opto-brand-logo,
.opto-patient-portal-v1589>.opto-patient-brand-strip img{
  background:#fff !important;
  border-radius:20px !important;
  box-shadow:0 16px 32px rgba(0,0,0,.18) !important;
  display:block !important;
  height:auto !important;
  max-width:170px !important;
  padding:13px 16px !important;
  width:170px !important;
}
.opto-patient-portal-v1589>.opto-patient-brand-strip .opto-ds-version-pill{
  align-self:center !important;
  background:#69b4bf !important;
  border-radius:999px !important;
  box-shadow:none !important;
  color:#fff !important;
  font-size:12px !important;
  font-weight:900 !important;
  padding:10px 12px !important;
}
.opto-patient-portal-v1589>.opto-patient-app-sidebar-v158{
  grid-column:1 !important;
  grid-row:1 / span 80 !important;
  background:linear-gradient(180deg,#071f35 0%,#092a45 100%) !important;
  border-radius:30px !important;
  box-shadow:0 24px 50px rgba(2,18,32,.16) !important;
  margin:0 !important;
  min-height:calc(100vh - 54px) !important;
  padding:132px 14px 24px !important;
  position:sticky !important;
  top:22px !important;
  z-index:18 !important;
}
.opto-patient-portal-v1589>.opto-patient-app-sidebar-v158:before{
  margin:0 12px 14px !important;
}
.opto-patient-portal-v1589>.opto-patient-app-sidebar-v158 a{
  min-height:54px !important;
}

/* Cabecera aprobada: texto a la izquierda e iconos alineados en una fila a la derecha */
.opto-patient-portal-v1589>.opto-patient-hero-v1582{
  grid-column:2 !important;
  align-items:center !important;
  background:#fff !important;
  border:1px solid #dce9f0 !important;
  border-radius:34px !important;
  box-shadow:0 24px 60px rgba(15,23,42,.065) !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  gap:38px !important;
  min-height:214px !important;
  margin:0 0 28px !important;
  padding:46px 58px !important;
  overflow:visible !important;
  width:100% !important;
}
.opto-patient-portal-v1589 .opto-patient-hero-main-v1582{
  min-width:0 !important;
  display:block !important;
}
.opto-patient-portal-v1589 .opto-patient-hero-main-v1582 .opto-patient-kicker{
  color:#2f6f86 !important;
  display:block !important;
  font-size:13px !important;
  font-weight:900 !important;
  letter-spacing:.16em !important;
  line-height:1.2 !important;
  margin:0 0 18px !important;
  text-transform:uppercase !important;
}
.opto-patient-portal-v1589 .opto-patient-hero-main-v1582 h2{
  color:#63a9ad !important;
  display:block !important;
  font-size:clamp(42px,3.45vw,62px) !important;
  font-weight:800 !important;
  letter-spacing:-.045em !important;
  line-height:1.02 !important;
  margin:0 0 16px !important;
  max-width:100% !important;
  white-space:normal !important;
}
.opto-patient-portal-v1589 .opto-patient-hero-main-v1582 h2 span{
  display:inline-block !important;
  font-size:.76em !important;
  margin-left:10px !important;
  vertical-align:baseline !important;
}
.opto-patient-portal-v1589 .opto-patient-hero-main-v1582 p:not(.opto-patient-kicker){
  color:#0b1f3a !important;
  display:block !important;
  font-size:18px !important;
  font-weight:500 !important;
  line-height:1.35 !important;
  margin:0 !important;
  max-width:760px !important;
}
.opto-patient-portal-v1589 .opto-patient-hero-actions-v1582{
  align-items:center !important;
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  gap:18px !important;
  justify-content:flex-end !important;
  justify-self:end !important;
  margin:0 !important;
  min-width:max-content !important;
  padding:0 !important;
  white-space:nowrap !important;
}
.opto-patient-portal-v1589 .opto-patient-logout-form{
  align-items:center !important;
  display:flex !important;
  flex:0 0 72px !important;
  height:72px !important;
  justify-content:center !important;
  margin:0 !important;
  padding:0 !important;
  width:72px !important;
}
.opto-patient-portal-v1589 .opto-patient-notification-bell,
.opto-patient-portal-v1589 .opto-patient-chat-bell,
.opto-patient-portal-v1589 .opto-patient-fullscreen-toggle,
.opto-patient-portal-v1589 .opto-logout-button{
  align-items:center !important;
  appearance:none !important;
  -webkit-appearance:none !important;
  background:#fff !important;
  border:1px solid #dce9f0 !important;
  border-radius:22px !important;
  box-shadow:0 12px 26px rgba(15,23,42,.055) !important;
  color:#0b1f3a !important;
  cursor:pointer !important;
  display:flex !important;
  flex:0 0 72px !important;
  height:72px !important;
  justify-content:center !important;
  line-height:1 !important;
  margin:0 !important;
  min-height:72px !important;
  min-width:72px !important;
  padding:0 !important;
  position:relative !important;
  text-align:center !important;
  text-decoration:none !important;
  width:72px !important;
}
.opto-patient-portal-v1589 .opto-patient-header-svg,
.opto-patient-portal-v1589 .opto-patient-header-svg svg{
  display:block !important;
  height:30px !important;
  width:30px !important;
}
.opto-patient-portal-v1589 .opto-patient-header-svg svg{
  fill:none !important;
  stroke:#0b1f3a !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
  stroke-width:2.15 !important;
}
.opto-patient-portal-v1589 .opto-patient-notification-bell strong,
.opto-patient-portal-v1589 .opto-patient-chat-bell strong{
  align-items:center !important;
  background:#5ba9ad !important;
  border-radius:999px !important;
  box-shadow:0 7px 14px rgba(15,23,42,.12) !important;
  color:#fff !important;
  display:flex !important;
  font-size:15px !important;
  font-weight:900 !important;
  height:29px !important;
  justify-content:center !important;
  line-height:1 !important;
  min-width:29px !important;
  padding:0 8px !important;
  position:absolute !important;
  right:-9px !important;
  top:-10px !important;
  z-index:3 !important;
}
.opto-patient-portal-v1589 .opto-patient-notification-bell:hover,
.opto-patient-portal-v1589 .opto-patient-chat-bell:hover,
.opto-patient-portal-v1589 .opto-patient-fullscreen-toggle:hover,
.opto-patient-portal-v1589 .opto-logout-button:hover{
  box-shadow:0 18px 34px rgba(15,23,42,.09) !important;
  transform:translateY(-1px) !important;
}
.opto-patient-portal-v1589>.opto-patient-alert,
.opto-patient-portal-v1589>.opto-patient-note,
.opto-patient-portal-v1589>section,
.opto-patient-portal-v1589>#opto-patient-dashboard,
.opto-patient-portal-v1589>.opto-patient-home-grid-v155,
.opto-patient-portal-v1589>.opto-patient-v155-actions,
.opto-patient-portal-v1589>.opto-patient-v155-reminder,
.opto-patient-portal-v1589>.opto-patient-warning,
.opto-patient-portal-v1589>.opto-public-modal-stack{
  grid-column:2 !important;
  min-width:0 !important;
  width:100% !important;
}

/* En móvil se conserva el portal limpio: sin cabecera rota y sin menú ocupando media pantalla */
@media (max-width: 980px){
  body .opto-patient-portal-v1589{
    display:block !important;
    width:100vw !important;
    max-width:100vw !important;
    margin-left:calc(50% - 50vw) !important;
    margin-right:calc(50% - 50vw) !important;
    padding:14px 14px 86px !important;
  }
  .opto-patient-portal-v1589>.opto-patient-brand-strip{
    display:none !important;
  }
  .opto-patient-portal-v1589>.opto-patient-app-sidebar-v158{
    background:rgba(7,31,53,.96) !important;
    border-radius:24px 24px 0 0 !important;
    bottom:0 !important;
    box-shadow:0 -12px 30px rgba(2,18,32,.18) !important;
    display:grid !important;
    grid-auto-flow:column !important;
    grid-auto-columns:minmax(64px,1fr) !important;
    left:0 !important;
    margin:0 !important;
    min-height:0 !important;
    overflow-x:auto !important;
    padding:8px 10px 10px !important;
    position:fixed !important;
    right:0 !important;
    top:auto !important;
    width:100vw !important;
    z-index:9999 !important;
  }
  .opto-patient-portal-v1589>.opto-patient-app-sidebar-v158:before{display:none !important;}
  .opto-patient-portal-v1589>.opto-patient-app-sidebar-v158 a{
    align-items:center !important;
    display:flex !important;
    flex-direction:column !important;
    gap:4px !important;
    justify-content:center !important;
    min-height:58px !important;
    padding:6px !important;
    text-align:center !important;
    white-space:nowrap !important;
  }
  .opto-patient-portal-v1589>.opto-patient-app-sidebar-v158 a strong{font-size:11px !important;line-height:1.1 !important;}
  .opto-patient-portal-v1589>.opto-patient-hero-v1582{
    display:block !important;
    min-height:0 !important;
    padding:26px 24px !important;
  }
  .opto-patient-portal-v1589 .opto-patient-hero-main-v1582 h2{
    font-size:clamp(34px,9vw,52px) !important;
  }
  .opto-patient-portal-v1589 .opto-patient-hero-actions-v1582{
    justify-content:flex-start !important;
    margin-top:22px !important;
    gap:12px !important;
  }
  .opto-patient-portal-v1589 .opto-patient-notification-bell,
  .opto-patient-portal-v1589 .opto-patient-chat-bell,
  .opto-patient-portal-v1589 .opto-patient-fullscreen-toggle,
  .opto-patient-portal-v1589 .opto-logout-button,
  .opto-patient-portal-v1589 .opto-patient-logout-form{
    flex-basis:58px !important;
    height:58px !important;
    min-height:58px !important;
    min-width:58px !important;
    width:58px !important;
  }
  .opto-patient-portal-v1589 .opto-patient-header-svg,
  .opto-patient-portal-v1589 .opto-patient-header-svg svg{height:25px !important;width:25px !important;}
}

/* v1.5.8.10 — Acciones rápidas reubicadas al sidebar y cabecera limpia */
body .opto-patient-portal-v15810{
  display:grid !important;
  grid-template-columns:300px minmax(0,1fr) !important;
  gap:0 28px !important;
  width:min(1520px, calc(100vw - 40px)) !important;
  max-width:min(1520px, calc(100vw - 40px)) !important;
  margin:0 auto !important;
  padding:18px 0 32px !important;
  position:relative !important;
  left:auto !important;
  right:auto !important;
  transform:none !important;
  overflow:visible !important;
}
.opto-patient-portal-v15810>.opto-patient-brand-strip{
  align-items:flex-start !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  display:flex !important;
  grid-column:1 !important;
  grid-row:1 !important;
  min-height:0 !important;
  padding:18px 18px 0 !important;
  pointer-events:none !important;
  position:sticky !important;
  top:18px !important;
  z-index:36 !important;
}
.opto-patient-portal-v15810>.opto-patient-brand-strip:before{display:none !important;}
.opto-patient-portal-v15810>.opto-patient-brand-strip .opto-brand-logo,
.opto-patient-portal-v15810>.opto-patient-brand-strip img{
  background:#fff !important;
  border:0 !important;
  border-radius:20px !important;
  box-shadow:0 12px 26px rgba(2,18,32,.16) !important;
  display:block !important;
  height:auto !important;
  max-width:174px !important;
  padding:13px 16px !important;
  width:174px !important;
}
.opto-patient-portal-v15810>.opto-patient-brand-strip .opto-ds-version-pill{
  align-items:center !important;
  align-self:flex-start !important;
  background:#6bb7bd !important;
  border-radius:999px !important;
  box-shadow:none !important;
  color:#fff !important;
  display:inline-flex !important;
  font-size:12px !important;
  font-weight:900 !important;
  margin-left:auto !important;
  padding:10px 12px !important;
  pointer-events:auto !important;
}
.opto-patient-portal-v15810>.opto-patient-app-sidebar-v158{
  background:linear-gradient(180deg,#071f35 0%,#092a45 100%) !important;
  border:0 !important;
  border-radius:30px !important;
  box-shadow:0 24px 50px rgba(2,18,32,.16) !important;
  grid-column:1 !important;
  grid-row:1 / span 100 !important;
  margin:0 !important;
  min-height:calc(100vh - 36px) !important;
  padding:132px 14px 24px !important;
  position:sticky !important;
  top:18px !important;
  z-index:25 !important;
}
.opto-patient-portal-v15810>.opto-patient-app-sidebar-v158:before{
  color:rgba(255,255,255,.62) !important;
  content:"Portal del paciente" !important;
  display:block !important;
  font-size:11px !important;
  font-weight:900 !important;
  letter-spacing:.12em !important;
  margin:0 12px 12px !important;
  text-transform:uppercase !important;
}
.opto-patient-portal-v15810 .opto-patient-sidebar-actions-v15810{
  align-items:center !important;
  display:grid !important;
  gap:8px !important;
  grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  margin:0 8px 18px !important;
}
.opto-patient-portal-v15810 .opto-patient-sidebar-logout-form{margin:0 !important;padding:0 !important;display:block !important;}
.opto-patient-portal-v15810 .opto-patient-sidebar-action,
.opto-patient-portal-v15810 .opto-patient-sidebar-action:visited,
.opto-patient-portal-v15810 .opto-patient-sidebar-action button{
  align-items:center !important;
  appearance:none !important;
  -webkit-appearance:none !important;
  background:rgba(255,255,255,.08) !important;
  border:1px solid rgba(255,255,255,.18) !important;
  border-radius:14px !important;
  box-shadow:none !important;
  color:#eefcff !important;
  cursor:pointer !important;
  display:flex !important;
  height:42px !important;
  justify-content:center !important;
  line-height:1 !important;
  margin:0 !important;
  min-height:42px !important;
  min-width:0 !important;
  padding:0 !important;
  position:relative !important;
  text-decoration:none !important;
  width:100% !important;
}
.opto-patient-portal-v15810 .opto-patient-sidebar-action:hover,
.opto-patient-portal-v15810 .opto-patient-sidebar-action:focus{
  background:rgba(14,165,168,.24) !important;
  border-color:rgba(207,245,242,.48) !important;
  color:#fff !important;
  outline:none !important;
}
.opto-patient-portal-v15810 .opto-patient-sidebar-action .opto-patient-header-svg,
.opto-patient-portal-v15810 .opto-patient-sidebar-action .opto-patient-header-svg svg{
  display:block !important;
  height:22px !important;
  width:22px !important;
}
.opto-patient-portal-v15810 .opto-patient-sidebar-action .opto-patient-header-svg svg{
  fill:none !important;
  stroke:currentColor !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
  stroke-width:2.15 !important;
}
.opto-patient-portal-v15810 .opto-patient-sidebar-action strong{
  align-items:center !important;
  background:#0ea5a8 !important;
  border:2px solid #092a45 !important;
  border-radius:999px !important;
  color:#fff !important;
  display:flex !important;
  font-size:10px !important;
  font-weight:900 !important;
  height:20px !important;
  justify-content:center !important;
  line-height:1 !important;
  min-width:20px !important;
  padding:0 5px !important;
  position:absolute !important;
  right:-6px !important;
  top:-7px !important;
  z-index:3 !important;
}
.opto-patient-portal-v15810>.opto-patient-app-sidebar-v158 a{
  align-items:center !important;
  background:transparent !important;
  border:0 !important;
  border-radius:18px !important;
  box-shadow:none !important;
  color:#edfafe !important;
  display:grid !important;
  font-size:15px !important;
  font-weight:850 !important;
  gap:12px !important;
  grid-template-columns:34px minmax(0,1fr) auto !important;
  line-height:1.15 !important;
  min-height:50px !important;
  padding:10px 12px !important;
  text-decoration:none !important;
}
.opto-patient-portal-v15810>.opto-patient-app-sidebar-v158 a:hover,
.opto-patient-portal-v15810>.opto-patient-app-sidebar-v158 a:focus,
.opto-patient-portal-v15810>.opto-patient-app-sidebar-v158 a.is-active{
  background:linear-gradient(135deg,#0ea5a8,#07869c) !important;
  color:#fff !important;
}
.opto-patient-portal-v15810>.opto-patient-hero-v1582{
  align-items:center !important;
  background:#fff !important;
  border:1px solid #dce9f0 !important;
  border-radius:34px !important;
  box-shadow:0 24px 60px rgba(15,23,42,.065) !important;
  display:block !important;
  grid-column:2 !important;
  margin:0 0 28px !important;
  min-height:0 !important;
  overflow:visible !important;
  padding:44px 58px !important;
  width:100% !important;
}
.opto-patient-portal-v15810 .opto-patient-hero-main-v1582 .opto-patient-kicker{
  color:#2f6f86 !important;
  display:block !important;
  font-size:13px !important;
  font-weight:900 !important;
  letter-spacing:.16em !important;
  line-height:1.2 !important;
  margin:0 0 18px !important;
  text-transform:uppercase !important;
}
.opto-patient-portal-v15810 .opto-patient-hero-main-v1582 h2{
  color:#63a9ad !important;
  display:block !important;
  font-size:clamp(42px,3.45vw,62px) !important;
  font-weight:800 !important;
  letter-spacing:-.045em !important;
  line-height:1.02 !important;
  margin:0 0 16px !important;
  max-width:100% !important;
  white-space:normal !important;
}
.opto-patient-portal-v15810 .opto-patient-hero-main-v1582 h2 span{
  display:inline-block !important;
  font-size:.76em !important;
  margin-left:10px !important;
  vertical-align:baseline !important;
}
.opto-patient-portal-v15810 .opto-patient-hero-main-v1582 p:not(.opto-patient-kicker){
  color:#0b1f3a !important;
  display:block !important;
  font-size:18px !important;
  font-weight:500 !important;
  line-height:1.35 !important;
  margin:0 !important;
  max-width:760px !important;
}
.opto-patient-portal-v15810 .opto-patient-hero-actions-v1582{display:none !important;}
.opto-patient-portal-v15810>.opto-patient-alert,
.opto-patient-portal-v15810>.opto-patient-note,
.opto-patient-portal-v15810>section,
.opto-patient-portal-v15810>#opto-patient-dashboard,
.opto-patient-portal-v15810>.opto-patient-home-grid-v155,
.opto-patient-portal-v15810>.opto-patient-v155-actions,
.opto-patient-portal-v15810>.opto-patient-v155-reminder,
.opto-patient-portal-v15810>.opto-patient-warning,
.opto-patient-portal-v15810>.opto-public-modal-stack{
  grid-column:2 !important;
  min-width:0 !important;
  width:100% !important;
}
body.opto-patient-fullscreen-active .opto-patient-portal-v15810{
  background:#eef6f8 !important;
  display:grid !important;
  gap:0 28px !important;
  grid-template-columns:300px minmax(0,1fr) !important;
  height:100vh !important;
  inset:0 !important;
  margin:0 !important;
  max-width:none !important;
  overflow:auto !important;
  padding:18px 24px 32px !important;
  position:fixed !important;
  transform:none !important;
  width:100vw !important;
  z-index:2147483000 !important;
}
@media(max-width:1180px){
  body .opto-patient-portal-v15810{grid-template-columns:92px minmax(0,1fr) !important;gap:0 18px !important;}
  .opto-patient-portal-v15810>.opto-patient-brand-strip{padding:14px 10px 0 !important;}
  .opto-patient-portal-v15810>.opto-patient-brand-strip .opto-brand-logo,
  .opto-patient-portal-v15810>.opto-patient-brand-strip img{max-width:64px !important;padding:9px !important;width:64px !important;}
  .opto-patient-portal-v15810>.opto-patient-brand-strip .opto-ds-version-pill{display:none !important;}
  .opto-patient-portal-v15810>.opto-patient-app-sidebar-v158{padding:94px 8px 18px !important;}
  .opto-patient-portal-v15810>.opto-patient-app-sidebar-v158:before{display:none !important;}
  .opto-patient-portal-v15810 .opto-patient-sidebar-actions-v15810{grid-template-columns:1fr !important;margin:0 4px 12px !important;}
  .opto-patient-portal-v15810 .opto-patient-sidebar-action{height:38px !important;min-height:38px !important;border-radius:12px !important;}
  .opto-patient-portal-v15810>.opto-patient-app-sidebar-v158 a{gap:0 !important;grid-template-columns:1fr !important;justify-items:center !important;padding:10px 8px !important;}
  .opto-patient-portal-v15810>.opto-patient-app-sidebar-v158 a strong{display:none !important;}
}
@media(max-width:780px){
  body .opto-patient-portal-v15810{
    display:block !important;
    margin:0 auto !important;
    max-width:100% !important;
    padding:10px 10px 78px !important;
    transform:none !important;
    width:100% !important;
  }
  .opto-patient-portal-v15810>.opto-patient-brand-strip{display:none !important;}
  .opto-patient-portal-v15810>.opto-patient-app-sidebar-v158{
    align-items:center !important;
    background:#08263d !important;
    border-radius:20px 20px 0 0 !important;
    bottom:0 !important;
    box-shadow:0 -12px 30px rgba(2,18,32,.22) !important;
    display:grid !important;
    gap:4px !important;
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    left:0 !important;
    margin:0 !important;
    max-height:74px !important;
    min-height:0 !important;
    overflow:visible !important;
    padding:6px 6px calc(6px + env(safe-area-inset-bottom)) !important;
    position:fixed !important;
    right:0 !important;
    top:auto !important;
    width:100% !important;
    z-index:999999 !important;
  }
  .opto-patient-portal-v15810>.opto-patient-app-sidebar-v158:before,
  .opto-patient-portal-v15810 .opto-patient-sidebar-actions-v15810{display:none !important;}
  .opto-patient-portal-v15810>.opto-patient-app-sidebar-v158 a{border-radius:13px !important;display:grid !important;gap:2px !important;grid-template-columns:1fr !important;justify-items:center !important;min-height:56px !important;padding:5px 3px !important;text-align:center !important;}
  .opto-patient-portal-v15810>.opto-patient-app-sidebar-v158 a:nth-child(n+7){display:none !important;}
  .opto-patient-portal-v15810>.opto-patient-app-sidebar-v158 a strong{display:block !important;font-size:9.5px !important;line-height:1.08 !important;max-width:62px !important;overflow:hidden !important;text-overflow:ellipsis !important;white-space:nowrap !important;}
  .opto-patient-portal-v15810 .opto-patient-nav-icon{height:24px !important;min-width:24px !important;width:24px !important;}
  .opto-patient-portal-v15810>.opto-patient-hero-v1582{display:block !important;min-height:0 !important;padding:26px 24px !important;}
  .opto-patient-portal-v15810 .opto-patient-hero-main-v1582 h2{font-size:clamp(34px,9vw,52px) !important;}
  body.opto-patient-fullscreen-active .opto-patient-portal-v15810{position:fixed !important;inset:0 !important;width:100vw !important;height:100vh !important;padding:10px 10px 84px !important;}
}

/* v1.5.8.10 — refuerzo de acciones del sidebar frente a estilos de enlaces del menú */
.opto-patient-portal-v15810>.opto-patient-app-sidebar-v158 .opto-patient-sidebar-actions-v15810 a.opto-patient-sidebar-action,
.opto-patient-portal-v15810>.opto-patient-app-sidebar-v158 .opto-patient-sidebar-actions-v15810 button.opto-patient-sidebar-action{
  align-items:center !important;
  appearance:none !important;
  -webkit-appearance:none !important;
  background:rgba(255,255,255,.08) !important;
  border:1px solid rgba(255,255,255,.18) !important;
  border-radius:14px !important;
  box-shadow:none !important;
  color:#eefcff !important;
  cursor:pointer !important;
  display:flex !important;
  font-size:0 !important;
  font-weight:900 !important;
  gap:0 !important;
  grid-template-columns:none !important;
  height:42px !important;
  justify-content:center !important;
  line-height:1 !important;
  margin:0 !important;
  min-height:42px !important;
  min-width:0 !important;
  padding:0 !important;
  position:relative !important;
  text-align:center !important;
  text-decoration:none !important;
  width:100% !important;
}
.opto-patient-portal-v15810>.opto-patient-app-sidebar-v158 .opto-patient-sidebar-actions-v15810 a.opto-patient-sidebar-action:hover,
.opto-patient-portal-v15810>.opto-patient-app-sidebar-v158 .opto-patient-sidebar-actions-v15810 a.opto-patient-sidebar-action:focus,
.opto-patient-portal-v15810>.opto-patient-app-sidebar-v158 .opto-patient-sidebar-actions-v15810 button.opto-patient-sidebar-action:hover,
.opto-patient-portal-v15810>.opto-patient-app-sidebar-v158 .opto-patient-sidebar-actions-v15810 button.opto-patient-sidebar-action:focus{
  background:rgba(14,165,168,.24) !important;
  border-color:rgba(207,245,242,.48) !important;
  color:#fff !important;
  outline:none !important;
}
.opto-patient-portal-v15810>.opto-patient-app-sidebar-v158 .opto-patient-sidebar-actions-v15810 .opto-patient-header-svg,
.opto-patient-portal-v15810>.opto-patient-app-sidebar-v158 .opto-patient-sidebar-actions-v15810 .opto-patient-header-svg svg{
  display:block !important;
  height:22px !important;
  width:22px !important;
}
.opto-patient-portal-v15810>.opto-patient-app-sidebar-v158 .opto-patient-sidebar-actions-v15810 .opto-patient-header-svg svg{
  fill:none !important;
  stroke:currentColor !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
  stroke-width:2.15 !important;
}
.opto-patient-portal-v15810>.opto-patient-app-sidebar-v158 .opto-patient-sidebar-actions-v15810 a.opto-patient-sidebar-action strong{
  align-items:center !important;
  background:#0ea5a8 !important;
  border:2px solid #092a45 !important;
  border-radius:999px !important;
  color:#fff !important;
  display:flex !important;
  font-size:10px !important;
  font-weight:900 !important;
  height:20px !important;
  justify-content:center !important;
  line-height:1 !important;
  min-width:20px !important;
  padding:0 5px !important;
  position:absolute !important;
  right:-6px !important;
  top:-7px !important;
  z-index:3 !important;
}
@media(max-width:1180px){
  .opto-patient-portal-v15810>.opto-patient-app-sidebar-v158 .opto-patient-sidebar-actions-v15810 a.opto-patient-sidebar-action,
  .opto-patient-portal-v15810>.opto-patient-app-sidebar-v158 .opto-patient-sidebar-actions-v15810 button.opto-patient-sidebar-action{
    border-radius:12px !important;
    height:38px !important;
    min-height:38px !important;
  }
}

/* v1.5.8.11 — Pantalla completa estable, menú móvil ampliado y corrección del recordatorio */
html, body{overflow-x:hidden !important;}
body .opto-patient-portal-v15811,
body .opto-patient-portal-v15811 *{
  box-sizing:border-box !important;
}
body .opto-patient-portal-v15811{
  align-items:start !important;
  grid-auto-rows:max-content !important;
  width:min(1540px, calc(100vw - 32px)) !important;
  max-width:min(1540px, calc(100vw - 32px)) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  transform:none !important;
  overflow:visible !important;
}
.opto-patient-portal-v15811>.opto-patient-hero-v1582{
  align-self:start !important;
  display:block !important;
  height:auto !important;
  min-height:0 !important;
  overflow:hidden !important;
  padding:42px 58px !important;
  position:relative !important;
}
.opto-patient-portal-v15811 .opto-patient-hero-main-v1582,
.opto-patient-portal-v15811 .opto-patient-hero-main-v1582 *{
  position:static !important;
  transform:none !important;
}
.opto-patient-portal-v15811 .opto-patient-hero-main-v1582 .opto-patient-kicker{
  margin:0 0 16px !important;
}
.opto-patient-portal-v15811 .opto-patient-hero-main-v1582 h2{
  font-size:clamp(36px,3.2vw,58px) !important;
  line-height:1.05 !important;
  margin:0 0 14px !important;
  max-width:100% !important;
  overflow-wrap:break-word !important;
  white-space:normal !important;
  word-break:normal !important;
}
.opto-patient-portal-v15811 .opto-patient-hero-main-v1582 p:not(.opto-patient-kicker){
  margin:0 !important;
  max-width:920px !important;
}
body.opto-patient-fullscreen-active .opto-patient-portal-v15811{
  background:#eef6f8 !important;
  display:grid !important;
  gap:0 30px !important;
  grid-template-columns:300px minmax(0,1fr) !important;
  height:100vh !important;
  inset:0 !important;
  margin:0 !important;
  max-width:none !important;
  overflow:auto !important;
  padding:20px 24px 34px !important;
  position:fixed !important;
  transform:none !important;
  width:100vw !important;
  z-index:2147483000 !important;
}
body.opto-patient-fullscreen-active .opto-patient-portal-v15811>.opto-patient-brand-strip{
  grid-column:1 !important;
  grid-row:1 !important;
  top:20px !important;
}
body.opto-patient-fullscreen-active .opto-patient-portal-v15811>.opto-patient-app-sidebar-v158{
  grid-column:1 !important;
  grid-row:2 / span 80 !important;
  top:132px !important;
}
body.opto-patient-fullscreen-active .opto-patient-portal-v15811>.opto-patient-hero-v1582{
  grid-column:2 !important;
  grid-row:1 !important;
  margin:0 0 28px !important;
  padding:42px 58px !important;
}
body.opto-patient-fullscreen-active .opto-patient-portal-v15811>.opto-patient-alert,
body.opto-patient-fullscreen-active .opto-patient-portal-v15811>.opto-patient-note,
body.opto-patient-fullscreen-active .opto-patient-portal-v15811>section,
body.opto-patient-fullscreen-active .opto-patient-portal-v15811>#opto-patient-dashboard,
body.opto-patient-fullscreen-active .opto-patient-portal-v15811>.opto-patient-home-grid-v155,
body.opto-patient-fullscreen-active .opto-patient-portal-v15811>.opto-patient-v155-actions,
body.opto-patient-fullscreen-active .opto-patient-portal-v15811>.opto-patient-v155-reminder,
body.opto-patient-fullscreen-active .opto-patient-portal-v15811>.opto-patient-warning,
body.opto-patient-fullscreen-active .opto-patient-portal-v15811>.opto-public-modal-stack{
  grid-column:2 !important;
  min-width:0 !important;
  width:100% !important;
}
/* Recordatorio: icono siempre circular y sin deformación */
.opto-patient-portal-v15811 .opto-patient-v155-reminder{
  align-items:center !important;
}
.opto-patient-portal-v15811 .opto-patient-v155-reminder>span{
  aspect-ratio:1 / 1 !important;
  border-radius:999px !important;
  flex:0 0 52px !important;
  height:52px !important;
  min-height:52px !important;
  min-width:52px !important;
  width:52px !important;
}
/* Menú móvil: quinto acceso "Más" con lista de enlaces secundarios */
.opto-patient-portal-v15811 .opto-patient-mobile-more-v15811{
  display:none !important;
}
@media(max-width:1180px){
  body .opto-patient-portal-v15811,
  body.opto-patient-fullscreen-active .opto-patient-portal-v15811{
    grid-template-columns:92px minmax(0,1fr) !important;
    gap:0 18px !important;
  }
  body.opto-patient-fullscreen-active .opto-patient-portal-v15811>.opto-patient-hero-v1582{
    padding:32px 34px !important;
  }
  .opto-patient-portal-v15811 .opto-patient-hero-main-v1582 h2{
    font-size:clamp(34px,4.2vw,50px) !important;
  }
}
@media(max-width:780px){
  body .opto-patient-portal-v15811,
  body.opto-patient-fullscreen-active .opto-patient-portal-v15811{
    display:block !important;
    height:auto !important;
    inset:auto !important;
    margin:0 auto !important;
    max-width:100% !important;
    overflow:visible !important;
    padding:10px 10px 84px !important;
    position:relative !important;
    transform:none !important;
    width:100% !important;
  }
  body.opto-patient-fullscreen-active .opto-patient-portal-v15811{
    background:#eef6f8 !important;
    height:100vh !important;
    inset:0 !important;
    overflow:auto !important;
    position:fixed !important;
    width:100vw !important;
  }
  .opto-patient-portal-v15811>.opto-patient-hero-v1582,
  body.opto-patient-fullscreen-active .opto-patient-portal-v15811>.opto-patient-hero-v1582{
    margin:0 0 14px !important;
    padding:24px 22px !important;
  }
  .opto-patient-portal-v15811 .opto-patient-hero-main-v1582 h2{
    font-size:clamp(32px,9vw,44px) !important;
  }
  .opto-patient-portal-v15811>.opto-patient-app-sidebar-v158{
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  }
  .opto-patient-portal-v15811>.opto-patient-app-sidebar-v158 .opto-patient-sidebar-actions-v15810{display:none !important;}
  .opto-patient-portal-v15811 .opto-patient-mobile-more-v15811{
    display:grid !important;
    justify-items:center !important;
    min-height:56px !important;
    position:relative !important;
    text-align:center !important;
  }
  .opto-patient-portal-v15811 .opto-patient-mobile-more-v15811 summary{
    align-items:center !important;
    border-radius:13px !important;
    color:#fff !important;
    cursor:pointer !important;
    display:grid !important;
    font-size:9.5px !important;
    font-weight:900 !important;
    gap:2px !important;
    justify-items:center !important;
    line-height:1.08 !important;
    list-style:none !important;
    min-height:56px !important;
    padding:5px 3px !important;
    text-align:center !important;
    width:100% !important;
  }
  .opto-patient-portal-v15811 .opto-patient-mobile-more-v15811 summary::-webkit-details-marker{display:none !important;}
  .opto-patient-portal-v15811 .opto-patient-mobile-more-v15811[open] summary,
  .opto-patient-portal-v15811 .opto-patient-mobile-more-v15811 summary:hover,
  .opto-patient-portal-v15811 .opto-patient-mobile-more-v15811 summary:focus{
    background:rgba(14,165,168,.28) !important;
  }
  .opto-patient-portal-v15811 .opto-patient-mobile-more-list-v15811{
    background:#fff !important;
    border:1px solid #dbeaf0 !important;
    border-radius:18px !important;
    bottom:78px !important;
    box-shadow:0 -16px 44px rgba(2,18,32,.22) !important;
    display:grid !important;
    gap:6px !important;
    max-width:min(320px,calc(100vw - 24px)) !important;
    min-width:220px !important;
    padding:10px !important;
    position:fixed !important;
    right:10px !important;
    z-index:1000001 !important;
  }
  .opto-patient-portal-v15811 .opto-patient-mobile-more-list-v15811 a{
    align-items:center !important;
    background:#f7fbfd !important;
    border:1px solid #e3eef3 !important;
    border-radius:12px !important;
    color:#0b1f3a !important;
    display:flex !important;
    font-size:13px !important;
    font-weight:900 !important;
    justify-content:flex-start !important;
    min-height:42px !important;
    padding:10px 12px !important;
    text-decoration:none !important;
  }
  .opto-patient-portal-v15811 .opto-patient-mobile-more-list-v15811 a:hover,
  .opto-patient-portal-v15811 .opto-patient-mobile-more-list-v15811 a:focus{
    background:#e8fbfd !important;
    color:#007c95 !important;
  }
  /* Mostrar cuatro accesos directos + Más; el resto queda dentro del panel Más. */
  .opto-patient-portal-v15811>.opto-patient-app-sidebar-v158>a:nth-of-type(n+5){
    display:none !important;
  }
  .opto-patient-portal-v15811 .opto-patient-v155-reminder{
    align-items:flex-start !important;
  }
  .opto-patient-portal-v15811 .opto-patient-v155-reminder>span{
    flex-basis:44px !important;
    height:44px !important;
    min-height:44px !important;
    min-width:44px !important;
    width:44px !important;
  }
}

/* v1.5.8.13 — Ajustes visuales de acciones móviles y fondo extendido */
body .opto-patient-portal-v15812{
  isolation:isolate !important;
  overflow:visible !important;
  position:relative !important;
}
body .opto-patient-portal-v15812::before{
  background:var(--opto-158-bg) !important;
  bottom:0 !important;
  content:"";
  left:50% !important;
  pointer-events:none !important;
  position:absolute !important;
  top:0 !important;
  transform:translateX(-50%) !important;
  width:100vw !important;
  z-index:-1 !important;
}
body.opto-patient-fullscreen-active .opto-patient-portal-v15812::before{
  display:none !important;
}
.opto-patient-portal-v15812 .opto-patient-mobile-fullscreen-status-v15812{
  display:none !important;
}
.opto-patient-portal-v15812 .opto-patient-mobile-more-v15812 summary{
  position:relative !important;
}
.opto-patient-portal-v15812 .opto-patient-mobile-more-v15812 summary .opto-patient-nav-badge{
  align-items:center !important;
  background:#ef4444 !important;
  border:2px solid #08263d !important;
  border-radius:999px !important;
  color:#fff !important;
  display:flex !important;
  font-size:9px !important;
  font-weight:900 !important;
  height:18px !important;
  justify-content:center !important;
  line-height:1 !important;
  min-width:18px !important;
  padding:0 4px !important;
  position:absolute !important;
  right:4px !important;
  top:2px !important;
}
.opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812 a,
.opto-patient-portal-v15812 .opto-patient-mobile-more-action-v15812{
  align-items:center !important;
  appearance:none !important;
  -webkit-appearance:none !important;
  background:#f7fbfd !important;
  border:1px solid #e3eef3 !important;
  border-radius:12px !important;
  box-shadow:none !important;
  color:#0b1f3a !important;
  cursor:pointer !important;
  display:flex !important;
  font-family:inherit !important;
  font-size:13px !important;
  font-weight:900 !important;
  justify-content:space-between !important;
  line-height:1.15 !important;
  min-height:42px !important;
  padding:10px 12px !important;
  text-align:left !important;
  text-decoration:none !important;
  width:100% !important;
}
.opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812 a:hover,
.opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812 a:focus,
.opto-patient-portal-v15812 .opto-patient-mobile-more-action-v15812:hover,
.opto-patient-portal-v15812 .opto-patient-mobile-more-action-v15812:focus{
  background:#e8fbfd !important;
  color:#007c95 !important;
  outline:none !important;
}
.opto-patient-portal-v15812 .opto-patient-mobile-more-logout-form-v15812{
  display:block !important;
  margin:0 !important;
  padding:0 !important;
}
.opto-patient-portal-v15812 .opto-patient-mobile-more-fullscreen-v15812{
  background:#eef6ff !important;
  border-color:#bfdbfe !important;
  color:#1d4ed8 !important;
}
.opto-patient-portal-v15812 .opto-patient-mobile-more-fullscreen-v15812:hover,
.opto-patient-portal-v15812 .opto-patient-mobile-more-fullscreen-v15812:focus{
  background:#dbeafe !important;
  border-color:#93c5fd !important;
  color:#1e40af !important;
}
.opto-patient-portal-v15812 .opto-patient-mobile-more-logout-v15812{
  background:#fef2f2 !important;
  border-color:#fecaca !important;
  color:#b91c1c !important;
}
.opto-patient-portal-v15812 .opto-patient-mobile-more-logout-v15812:hover,
.opto-patient-portal-v15812 .opto-patient-mobile-more-logout-v15812:focus{
  background:#fee2e2 !important;
  border-color:#fca5a5 !important;
  color:#991b1b !important;
}
.opto-patient-portal-v15812 .opto-patient-mobile-more-fullscreen-v15812,
.opto-patient-portal-v15812 .opto-patient-mobile-more-logout-v15812{
  justify-content:center !important;
  text-align:center !important;
}
.opto-patient-portal-v15812 .opto-patient-more-badge-v15812{
  align-items:center !important;
  background:#ef4444 !important;
  border-radius:999px !important;
  color:#fff !important;
  display:inline-flex !important;
  font-size:10px !important;
  font-weight:900 !important;
  height:20px !important;
  justify-content:center !important;
  line-height:1 !important;
  margin-left:auto !important;
  min-width:20px !important;
  padding:0 6px !important;
}

@media(min-width:1181px){
  body .opto-patient-portal-v15812{
    grid-template-columns:300px minmax(0,1fr) !important;
  }
  body.opto-patient-fullscreen-active .opto-patient-portal-v15812{
    background:#eef6f8 !important;
    display:grid !important;
    gap:0 30px !important;
    grid-template-columns:300px minmax(0,1fr) !important;
    height:100vh !important;
    inset:0 !important;
    margin:0 !important;
    max-width:none !important;
    overflow:auto !important;
    padding:20px 24px 34px !important;
    position:fixed !important;
    transform:none !important;
    width:100vw !important;
    z-index:2147483000 !important;
  }
  body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-brand-strip{
    grid-column:1 !important;
    grid-row:1 !important;
    padding:18px 18px 0 !important;
    pointer-events:none !important;
    position:sticky !important;
    top:20px !important;
    z-index:36 !important;
  }
  body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158{
    grid-column:1 !important;
    grid-row:1 / span 100 !important;
    min-height:calc(100vh - 40px) !important;
    padding:132px 14px 24px !important;
    position:sticky !important;
    top:20px !important;
    width:100% !important;
    z-index:25 !important;
  }
  body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-hero-v1582{
    grid-column:2 !important;
    grid-row:1 !important;
    margin:0 0 28px !important;
  }
}

body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-alert,
body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-note,
body.opto-patient-fullscreen-active .opto-patient-portal-v15812>section,
body.opto-patient-fullscreen-active .opto-patient-portal-v15812>#opto-patient-dashboard,
body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-home-grid-v155,
body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-v155-actions,
body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-v155-reminder,
body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-warning,
body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-public-modal-stack{
  grid-column:2 !important;
  min-width:0 !important;
  width:100% !important;
}

@media(min-width:961px) and (max-width:1180px){
  body .opto-patient-portal-v15812,
  body.opto-patient-fullscreen-active .opto-patient-portal-v15812{
    display:grid !important;
    gap:0 18px !important;
    grid-template-columns:92px minmax(0,1fr) !important;
  }
  body.opto-patient-fullscreen-active .opto-patient-portal-v15812{
    background:#eef6f8 !important;
    height:100vh !important;
    inset:0 !important;
    margin:0 !important;
    max-width:none !important;
    overflow:auto !important;
    padding:18px 18px 28px !important;
    position:fixed !important;
    width:100vw !important;
    z-index:2147483000 !important;
  }
  body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-brand-strip{
    grid-column:1 !important;
    grid-row:1 !important;
    justify-content:center !important;
    padding:14px 10px 0 !important;
    pointer-events:none !important;
    position:sticky !important;
    top:18px !important;
    z-index:36 !important;
  }
  body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-brand-strip .opto-brand-logo,
  body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-brand-strip img{
    max-width:64px !important;
    padding:9px !important;
    width:64px !important;
  }
  body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-brand-strip .opto-ds-version-pill{
    display:none !important;
  }
  body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158{
    grid-column:1 !important;
    grid-row:1 / span 100 !important;
    min-height:calc(100vh - 36px) !important;
    padding:94px 8px 18px !important;
    position:sticky !important;
    top:18px !important;
    width:92px !important;
    z-index:25 !important;
  }
  body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-hero-v1582{
    grid-column:2 !important;
    grid-row:1 !important;
  }
}

@media(min-width:768px) and (max-width:960px){
  body .opto-patient-portal-v15812,
  body.opto-patient-fullscreen-active .opto-patient-portal-v15812{
    display:grid !important;
    gap:0 16px !important;
    grid-template-columns:84px minmax(0,1fr) !important;
    margin:0 auto !important;
    max-width:min(100%, calc(100vw - 16px)) !important;
    overflow:visible !important;
    padding:12px 8px 24px !important;
    transform:none !important;
    width:100% !important;
  }
  body.opto-patient-fullscreen-active .opto-patient-portal-v15812{
    background:#eef6f8 !important;
    height:100vh !important;
    inset:0 !important;
    max-width:none !important;
    overflow:auto !important;
    padding:12px 12px 24px !important;
    position:fixed !important;
    width:100vw !important;
    z-index:2147483000 !important;
  }
  .opto-patient-portal-v15812>.opto-patient-brand-strip,
  body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-brand-strip{
    align-items:center !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    display:flex !important;
    flex-direction:column !important;
    gap:6px !important;
    grid-column:1 !important;
    grid-row:1 !important;
    justify-content:flex-start !important;
    margin:0 !important;
    min-height:0 !important;
    padding:14px 8px 0 !important;
    pointer-events:none !important;
    position:sticky !important;
    top:12px !important;
    width:84px !important;
    z-index:36 !important;
  }
  .opto-patient-portal-v15812>.opto-patient-brand-strip .opto-brand-logo,
  .opto-patient-portal-v15812>.opto-patient-brand-strip img{
    border-radius:15px !important;
    max-width:56px !important;
    padding:7px !important;
    width:56px !important;
  }
  .opto-patient-portal-v15812>.opto-patient-brand-strip .opto-ds-version-pill{
    align-items:center !important;
    background:#6bb7bd !important;
    border-radius:999px !important;
    color:#fff !important;
    display:inline-flex !important;
    font-size:8px !important;
    font-weight:900 !important;
    justify-content:center !important;
    line-height:1 !important;
    margin:0 !important;
    max-width:66px !important;
    overflow:hidden !important;
    padding:5px 6px !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
  }
  .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158,
  body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158{
    background:linear-gradient(180deg,#071f35 0%,#092a45 100%) !important;
    border-radius:24px !important;
    display:flex !important;
    flex-direction:column !important;
    gap:7px !important;
    grid-column:1 !important;
    grid-row:1 / span 100 !important;
    margin:0 !important;
    max-height:none !important;
    min-height:calc(100vh - 24px) !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    padding:118px 7px 16px !important;
    position:sticky !important;
    top:12px !important;
    width:84px !important;
    z-index:25 !important;
  }
  .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158:before{
    display:none !important;
  }
  .opto-patient-portal-v15812 .opto-patient-sidebar-actions-v15810{
    display:grid !important;
    gap:7px !important;
    grid-template-columns:1fr !important;
    margin:0 3px 8px !important;
    order:0 !important;
  }
  .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158 .opto-patient-sidebar-action{
    border-radius:12px !important;
    height:36px !important;
    min-height:36px !important;
  }
  .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a{
    border-radius:13px !important;
    display:grid !important;
    gap:0 !important;
    grid-template-columns:1fr !important;
    justify-items:center !important;
    min-height:42px !important;
    padding:8px 4px !important;
    text-align:center !important;
  }
  .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a strong{
    display:none !important;
  }
  .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a:nth-of-type(n+5){
    display:none !important;
  }
  .opto-patient-portal-v15812 .opto-patient-nav-icon{
    height:28px !important;
    min-width:28px !important;
    width:28px !important;
  }
  .opto-patient-portal-v15812 .opto-patient-mobile-more-v15811{
    display:grid !important;
    justify-items:center !important;
    min-height:42px !important;
    order:20 !important;
    position:relative !important;
    text-align:center !important;
    width:100% !important;
  }
  .opto-patient-portal-v15812 .opto-patient-mobile-more-v15811 summary{
    align-items:center !important;
    border-radius:13px !important;
    color:#fff !important;
    cursor:pointer !important;
    display:grid !important;
    font-size:0 !important;
    gap:0 !important;
    justify-items:center !important;
    line-height:1 !important;
    list-style:none !important;
    min-height:42px !important;
    padding:8px 4px !important;
    width:100% !important;
  }
  .opto-patient-portal-v15812 .opto-patient-mobile-more-v15811 summary::-webkit-details-marker{
    display:none !important;
  }
  .opto-patient-portal-v15812 .opto-patient-mobile-more-v15811 summary strong{
    display:none !important;
  }
  .opto-patient-portal-v15812 .opto-patient-mobile-more-v15811[open] summary,
  .opto-patient-portal-v15812 .opto-patient-mobile-more-v15811 summary:hover,
  .opto-patient-portal-v15812 .opto-patient-mobile-more-v15811 summary:focus{
    background:rgba(14,165,168,.28) !important;
    outline:none !important;
  }
  .opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812{
    background:#fff !important;
    border:1px solid #dbeaf0 !important;
    border-radius:18px !important;
    box-shadow:0 18px 48px rgba(2,18,32,.22) !important;
    display:grid !important;
    gap:6px !important;
    left:104px !important;
    max-width:min(320px, calc(100vw - 128px)) !important;
    min-width:240px !important;
    padding:10px !important;
    position:fixed !important;
    right:auto !important;
    top:150px !important;
    z-index:2147483001 !important;
  }
  .opto-patient-portal-v15812>.opto-patient-hero-v1582,
  body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-hero-v1582{
    grid-column:2 !important;
    grid-row:1 !important;
    margin:0 0 18px !important;
    padding:30px 32px !important;
  }
  .opto-patient-portal-v15812>.opto-patient-alert,
  .opto-patient-portal-v15812>.opto-patient-note,
  .opto-patient-portal-v15812>section,
  .opto-patient-portal-v15812>#opto-patient-dashboard,
  .opto-patient-portal-v15812>.opto-patient-home-grid-v155,
  .opto-patient-portal-v15812>.opto-patient-v155-actions,
  .opto-patient-portal-v15812>.opto-patient-v155-reminder,
  .opto-patient-portal-v15812>.opto-patient-warning,
  .opto-patient-portal-v15812>.opto-public-modal-stack{
    grid-column:2 !important;
    min-width:0 !important;
    width:100% !important;
  }
}

@media(max-width:767px){
  body .opto-patient-portal-v15812,
  body.opto-patient-fullscreen-active .opto-patient-portal-v15812{
    display:block !important;
    height:auto !important;
    margin:0 auto !important;
    max-width:100% !important;
    overflow:visible !important;
    padding:10px 10px calc(90px + env(safe-area-inset-bottom)) !important;
    position:relative !important;
    transform:none !important;
    width:100% !important;
  }
  body.opto-patient-fullscreen-active .opto-patient-portal-v15812{
    background:#eef6f8 !important;
    height:100vh !important;
    inset:0 !important;
    overflow:auto !important;
    position:fixed !important;
    width:100vw !important;
    z-index:2147483000 !important;
  }
  .opto-patient-portal-v15812>.opto-patient-brand-strip{
    display:none !important;
  }
  .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158,
  body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158{
    align-items:center !important;
    background:#08263d !important;
    border-radius:20px 20px 0 0 !important;
    bottom:0 !important;
    box-shadow:0 -12px 30px rgba(2,18,32,.22) !important;
    display:grid !important;
    gap:4px !important;
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    height:auto !important;
    left:0 !important;
    margin:0 !important;
    max-height:82px !important;
    min-height:0 !important;
    overflow:visible !important;
    padding:6px 6px calc(6px + env(safe-area-inset-bottom)) !important;
    position:fixed !important;
    right:0 !important;
    top:auto !important;
    width:100% !important;
    z-index:2147483001 !important;
  }
  .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158:before,
  .opto-patient-portal-v15812 .opto-patient-sidebar-actions-v15810{
    display:none !important;
  }
  .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a{
    border-radius:13px !important;
    display:grid !important;
    gap:2px !important;
    grid-template-columns:1fr !important;
    justify-items:center !important;
    min-height:56px !important;
    padding:5px 3px !important;
    text-align:center !important;
  }
  .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a:nth-of-type(n+5){
    display:none !important;
  }
  .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a strong{
    display:block !important;
    font-size:9.5px !important;
    line-height:1.08 !important;
    max-width:62px !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
  }
  .opto-patient-portal-v15812 .opto-patient-nav-icon{
    height:24px !important;
    min-width:24px !important;
    width:24px !important;
  }
  .opto-patient-portal-v15812 .opto-patient-mobile-more-v15811{
    display:grid !important;
    justify-items:center !important;
    min-height:56px !important;
    position:relative !important;
    text-align:center !important;
  }
  .opto-patient-portal-v15812 .opto-patient-mobile-more-v15811 summary{
    align-items:center !important;
    border-radius:13px !important;
    color:#fff !important;
    cursor:pointer !important;
    display:grid !important;
    font-size:9.5px !important;
    font-weight:900 !important;
    gap:2px !important;
    justify-items:center !important;
    line-height:1.08 !important;
    list-style:none !important;
    min-height:56px !important;
    padding:5px 3px !important;
    text-align:center !important;
    width:100% !important;
  }
  .opto-patient-portal-v15812 .opto-patient-mobile-more-v15811 summary::-webkit-details-marker{
    display:none !important;
  }
  .opto-patient-portal-v15812 .opto-patient-mobile-more-v15811[open] summary,
  .opto-patient-portal-v15812 .opto-patient-mobile-more-v15811 summary:hover,
  .opto-patient-portal-v15812 .opto-patient-mobile-more-v15811 summary:focus{
    background:rgba(14,165,168,.28) !important;
    outline:none !important;
  }
  .opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812{
    background:#fff !important;
    border:1px solid #dbeaf0 !important;
    border-radius:18px !important;
    bottom:88px !important;
    box-shadow:0 -16px 44px rgba(2,18,32,.22) !important;
    display:grid !important;
    gap:6px !important;
    max-width:min(320px,calc(100vw - 24px)) !important;
    min-width:230px !important;
    padding:10px !important;
    position:fixed !important;
    right:10px !important;
    z-index:2147483002 !important;
  }
  .opto-patient-portal-v15812>.opto-patient-hero-v1582,
  body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-hero-v1582{
    margin:0 0 14px !important;
    padding:24px 22px !important;
  }
  .opto-patient-portal-v15812 .opto-patient-hero-main-v1582 h2{
    font-size:clamp(30px,8.8vw,44px) !important;
  }
  body.opto-patient-fullscreen-active .opto-patient-portal-v15812 .opto-patient-mobile-fullscreen-status-v15812{
    align-items:center !important;
    background:#fff !important;
    border:1px solid #dbeaf0 !important;
    border-radius:16px !important;
    box-shadow:0 10px 28px rgba(15,23,42,.06) !important;
    color:#0b1f3a !important;
    display:flex !important;
    font-size:12px !important;
    font-weight:900 !important;
    gap:10px !important;
    justify-content:space-between !important;
    margin:0 0 14px !important;
    padding:10px 12px !important;
  }
  .opto-patient-portal-v15812 .opto-patient-mobile-fullscreen-exit-v15812{
    appearance:none !important;
    -webkit-appearance:none !important;
    background:#0ea5a8 !important;
    border:0 !important;
    border-radius:999px !important;
    color:#fff !important;
    cursor:pointer !important;
    font-family:inherit !important;
    font-size:12px !important;
    font-weight:900 !important;
    line-height:1 !important;
    padding:9px 12px !important;
  }
}


/* v1.5.8.15 — Centrado de acciones móviles secundarias */
.opto-patient-mobile-more-action-v15812,
.opto-patient-mobile-more-fullscreen-v15812,
.opto-patient-mobile-more-logout-v15812 {
	align-items: center;
	justify-content: center;
	text-align: center;
}
.opto-patient-mobile-more-action-v15812 .opto-patient-fullscreen-text,
.opto-patient-mobile-more-logout-v15812 {
	text-align: center;
	width: 100%;
}
.opto-patient-sidebar-actions .opto-patient-sidebar-action,
.opto-patient-sidebar-actions .opto-logout-form {
	justify-content: center;
}


/* v1.5.8.19 — login público del paciente */
.opto-patient-portal-v15813{
	background:linear-gradient(180deg,#eef5f9 0%,#f7fbfd 100%);
	border:1px solid #d8e6ec;
	border-radius:28px;
	box-shadow:0 24px 60px rgba(15,23,42,.08);
	margin:18px auto;
	max-width:1240px;
	padding:26px;
}
.opto-patient-portal-v15813>.opto-patient-brand-strip{
	align-items:center;
	background:#fff;
	border:1px solid #dbe8ef;
	border-radius:24px;
	box-shadow:0 16px 40px rgba(15,23,42,.06);
	justify-content:center;
	margin:0 auto 26px;
	max-width:1120px;
	min-height:112px;
	padding:18px 22px;
	position:relative;
}
.opto-patient-portal-v15813>.opto-patient-brand-strip .opto-brand-logo,
.opto-patient-portal-v15813>.opto-patient-brand-strip img{
	max-width:220px!important;
	width:220px!important;
}
.opto-patient-portal-v15813>.opto-patient-brand-strip .opto-ds-version-pill{
	position:absolute;
	right:20px;
	top:20px;
}
.opto-patient-portal-v15813 .opto-patient-auth-wrap{
	align-items:stretch;
	display:grid;
	gap:24px;
	grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr);
	margin:0 auto;
	max-width:1120px;
}
.opto-patient-portal-v15813 .opto-patient-auth-hero,
.opto-patient-portal-v15813 .opto-patient-auth-card{
	background:#fff;
	border:1px solid #dbe8ef;
	border-radius:28px;
	box-shadow:0 18px 44px rgba(15,23,42,.06);
	margin:0;
}
.opto-patient-portal-v15813 .opto-patient-auth-hero{
	background:linear-gradient(160deg,#eaf8fb 0%,#ffffff 70%);
	padding:38px 36px;
}
.opto-patient-portal-v15813 .opto-patient-auth-hero .opto-patient-kicker{
	color:#087f84;
	font-size:13px;
	font-weight:900;
	letter-spacing:.12em;
	margin:0 0 12px;
	text-transform:uppercase;
}
.opto-patient-portal-v15813 .opto-patient-auth-hero h2{
	color:#0b1f3a;
	font-size:40px;
	font-weight:900;
	letter-spacing:-.04em;
	line-height:1.05;
	margin:0 0 16px;
}
.opto-patient-portal-v15813 .opto-patient-auth-hero p{
	color:#556678;
	font-size:16px;
	line-height:1.7;
	margin:0;
	max-width:540px;
}
.opto-patient-portal-v15813 .opto-patient-auth-card{
	padding:34px 32px 30px;
}
.opto-patient-portal-v15813 .opto-patient-auth-card h3{
	color:#0b1f3a;
	font-size:32px;
	font-weight:900;
	letter-spacing:-.03em;
	margin:0 0 10px;
}
.opto-patient-portal-v15813 .opto-patient-auth-card>p{
	color:#5c6d7e;
	font-size:15px;
	line-height:1.6;
	margin:0 0 18px;
}
.opto-patient-portal-v15813 .opto-patient-auth-form{
	display:grid;
	gap:16px;
}
.opto-patient-portal-v15813 .opto-patient-auth-form label{
	display:grid;
	gap:8px;
}
.opto-patient-portal-v15813 .opto-patient-auth-form label span{
	color:#0f172a;
	font-size:14px;
	font-weight:800;
}
.opto-patient-portal-v15813 .opto-patient-auth-form input[type="text"],
.opto-patient-portal-v15813 .opto-patient-auth-form input[type="password"]{
	background:#f8fbfd;
	border:1px solid #cfe0e8;
	border-radius:16px;
	box-shadow:none;
	font-size:16px;
	min-height:56px;
	padding:0 16px;
	width:100%;
}
.opto-patient-portal-v15813 .opto-patient-auth-form input[type="text"]:focus,
.opto-patient-portal-v15813 .opto-patient-auth-form input[type="password"]:focus{
	border-color:#79cfd4;
	box-shadow:0 0 0 3px rgba(14,165,168,.14);
	outline:none;
}
.opto-patient-portal-v15813 .opto-patient-checkbox{
	align-items:center;
	background:#f8fbfd;
	border:1px solid #d8e6ec;
	border-radius:16px;
	display:flex;
	gap:10px;
	justify-content:flex-start;
	padding:14px 16px;
}
.opto-patient-portal-v15813 .opto-patient-checkbox input{
	flex:0 0 auto;
	margin:0;
}
.opto-patient-portal-v15813 .opto-patient-checkbox span{
	color:#0f172a;
	font-size:15px;
	font-weight:700;
}
.opto-patient-portal-v15813 .opto-patient-auth-card .opto-button{
	align-items:center;
	background:linear-gradient(135deg,#62b2b6,#4b83a6);
	border:0;
	border-radius:18px;
	box-shadow:0 16px 30px rgba(75,131,166,.18);
	color:#fff;
	display:inline-flex;
	font-size:15px;
	font-weight:900;
	justify-content:center;
	min-height:56px;
	padding:0 20px;
	text-decoration:none;
	width:100%;
}
.opto-patient-portal-v15813 .opto-patient-auth-card .opto-button:hover,
.opto-patient-portal-v15813 .opto-patient-auth-card .opto-button:focus{
	filter:brightness(.98);
	outline:none;
}
.opto-patient-portal-v15813 .opto-patient-auth-links{
	margin:16px 0 0;
	text-align:left;
}
.opto-patient-portal-v15813 .opto-patient-auth-links a{
	color:#4d96bf;
	font-weight:800;
	text-decoration:none;
}
.opto-patient-portal-v15813 .opto-patient-alert{
	grid-column:1 / -1;
	margin:0 auto;
	max-width:1120px;
}
@media (max-width: 900px){
	.opto-patient-portal-v15813{padding:16px;}
	.opto-patient-portal-v15813>.opto-patient-brand-strip{
		justify-content:center;
		min-height:92px;
		padding:16px;
	}
	.opto-patient-portal-v15813>.opto-patient-brand-strip .opto-ds-version-pill{
		display:none;
	}
	.opto-patient-portal-v15813 .opto-patient-auth-wrap{
		grid-template-columns:1fr;
	}
	.opto-patient-portal-v15813 .opto-patient-auth-hero h2{font-size:32px;}
}
@media (max-width: 640px){
	.opto-patient-portal-v15813>.opto-patient-brand-strip .opto-brand-logo,
	.opto-patient-portal-v15813>.opto-patient-brand-strip img{
		max-width:180px!important;
		width:180px!important;
	}
	.opto-patient-portal-v15813 .opto-patient-auth-hero,
	.opto-patient-portal-v15813 .opto-patient-auth-card{
		border-radius:22px;
		padding:24px 20px;
	}
	.opto-patient-portal-v15813 .opto-patient-auth-hero h2{font-size:28px;}
	.opto-patient-portal-v15813 .opto-patient-auth-card h3{font-size:28px;}
}


/* v1.5.8.20 — ajustes de login y copy en zona pacientes */
.opto-patient-portal-v15813 .opto-patient-auth-form .opto-patient-checkbox{
	align-items:center;
	background:#f8fbfd;
	border:1px solid #d8e6ec;
	border-radius:16px;
	display:flex;
	flex-direction:row;
	gap:12px;
	justify-content:flex-start;
	padding:14px 16px;
}
.opto-patient-portal-v15813 .opto-patient-auth-form .opto-patient-checkbox input[type="checkbox"]{
	flex:0 0 auto;
	margin:0;
}
.opto-patient-portal-v15813 .opto-patient-auth-form .opto-patient-checkbox span{
	display:inline-block;
	font-size:15px;
	font-weight:800;
	line-height:1.4;
	margin:0;
}
.opto-patient-portal-v15813 .opto-patient-auth-links-spaced{
	margin-top:22px;
}


/* v1.5.8.21 — corrección final del login de pacientes */
.opto-patient-portal-v15813 .opto-patient-auth-card .opto-patient-alert{
	margin:0 0 18px!important;
	max-width:none!important;
	width:100%!important;
}
.opto-patient-portal-v15813 .opto-patient-auth-wrap>.opto-patient-alert{
	display:none!important;
}
.opto-patient-portal-v15813 .opto-patient-auth-form label.opto-patient-checkbox{
	align-items:center!important;
	display:flex!important;
	flex-direction:row!important;
	gap:12px!important;
	justify-content:flex-start!important;
	padding:14px 16px!important;
}
.opto-patient-portal-v15813 .opto-patient-auth-form label.opto-patient-checkbox input[type="checkbox"]{
	flex:0 0 auto!important;
	margin:0!important;
}
.opto-patient-portal-v15813 .opto-patient-auth-form label.opto-patient-checkbox span{
	display:inline!important;
	flex:1 1 auto!important;
	margin:0!important;
	min-width:0!important;
	width:auto!important;
}


/* v1.5.8.22 — corrección definitiva del checkbox de sesión */
.opto-patient-portal-v15813 .opto-patient-auth-form .opto-patient-remember-row{
	align-items:center!important;
	background:#f8fbfd!important;
	border:1px solid #d8e6ec!important;
	border-radius:16px!important;
	display:flex!important;
	flex-direction:row!important;
	gap:12px!important;
	justify-content:flex-start!important;
	min-height:64px!important;
	padding:14px 16px!important;
	width:100%!important;
	box-sizing:border-box!important;
	overflow:hidden!important;
}
.opto-patient-portal-v15813 .opto-patient-auth-form .opto-patient-remember-row input[type="checkbox"]{
	appearance:auto!important;
	-webkit-appearance:checkbox!important;
	box-sizing:border-box!important;
	flex:0 0 auto!important;
	height:16px!important;
	margin:0!important;
	min-height:0!important;
	padding:0!important;
	position:static!important;
	width:16px!important;
}
.opto-patient-portal-v15813 .opto-patient-auth-form .opto-patient-remember-row label{
	align-items:center!important;
	color:#0f172a!important;
	display:flex!important;
	flex:1 1 auto!important;
	font-size:15px!important;
	font-weight:800!important;
	line-height:1.35!important;
	margin:0!important;
	min-height:0!important;
	min-width:0!important;
	padding:0!important;
	position:static!important;
	white-space:normal!important;
	word-break:normal!important;
}
.opto-patient-portal-v15813 .opto-patient-auth-card .opto-patient-auth-links-spaced{
	margin-top:30px!important;
}
.opto-patient-portal-v15813 .opto-patient-auth-card .opto-patient-auth-links-spaced a{
	display:inline-block!important;
}

/* v1.6.0 — adjuntos visibles del ejercicio */
.opto-patient-attachments ul,
.opto-public-mini-box ul{
  margin:.5rem 0 0 1.1rem;
  padding:0;
}
.opto-patient-attachments a,
.opto-public-mini-box a{
  font-weight:800;
  color:#4d96bf;
  text-decoration:none;
}

/* v1.6.2 — Popup de ejecución guiada de ejercicios y rutinas */
.opto-public-training-modal-v162 .opto-public-modal-panel{
  max-width: 980px !important;
  padding: 0 !important;
  overflow: hidden !important;
  border-radius: 28px !important;
  background: linear-gradient(180deg,#f7fbfd 0%,#ffffff 100%) !important;
}
.opto-public-training-modal-v162 .opto-public-modal-close{
  z-index: 4;
  background:#ffffff;
  border-color:#d7e6ed;
  color:#12324a;
  box-shadow:0 10px 24px rgba(15,23,42,.08);
}
.opto-training-head-v162{
  background: linear-gradient(135deg,#e9fbfb 0%,#ffffff 72%);
  border-bottom: 1px solid #d8e7ee !important;
  margin: 0 !important;
  padding: 28px 70px 22px 28px !important;
}
.opto-training-head-v162 h3{
  color:#0b1f3a;
  font-size: clamp(1.55rem,3vw,2.3rem) !important;
  font-weight:900;
  letter-spacing:-.04em;
  margin:6px 0 10px;
}
.opto-training-steps-v162{
  display:grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap:10px;
  padding:16px 28px;
  background:#ffffff;
  border-bottom:1px solid #d8e7ee;
}
.opto-training-steps-v162 span{
  align-items:center;
  background:#f5f9fb;
  border:1px solid #dbe8ef;
  border-radius:999px;
  color:#5d7083;
  display:inline-flex;
  font-weight:900;
  justify-content:center;
  min-height:38px;
  padding:0 14px;
}
.opto-training-steps-v162 span.is-active{
  background:#5fa7b6;
  border-color:#5fa7b6;
  color:#ffffff;
  box-shadow:0 12px 28px rgba(95,167,182,.22);
}
.opto-training-panel-v162{
  padding:24px 28px 28px;
  max-height: min(62vh, 640px);
  overflow:auto;
}
.opto-training-summary-card-v162,
.opto-public-communication-box-v162,
.opto-public-execute-box-v162{
  background:#ffffff;
  border:1px solid #d8e7ee;
  border-radius:24px;
  box-shadow:0 16px 40px rgba(15,23,42,.05);
  padding:22px;
}
.opto-training-summary-card-v162 h4,
.opto-public-communication-box-v162 h4,
.opto-public-execute-box-v162 h4{
  color:#0b1f3a;
  font-size:1.35rem;
  font-weight:900;
  letter-spacing:-.02em;
  margin:0 0 10px;
}
.opto-training-summary-card-v162 > p,
.opto-public-communication-box-v162 .opto-public-muted{
  color:#526579;
  font-size:.96rem;
  line-height:1.6;
  margin:0 0 16px;
}
.opto-training-summary-grid-v162{
  display:grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap:14px;
  margin:16px 0;
}
.opto-training-summary-card-v162 .opto-public-detail-box{
  background:#f8fbfd;
  border-color:#d8e7ee;
  border-radius:18px;
  margin:0;
}
.opto-training-summary-list-v162{
  display:grid;
  gap:10px;
  list-style:none;
  margin:18px 0 0;
  padding:0;
}
.opto-training-summary-list-v162 li{
  align-items:center;
  background:#f8fbfd;
  border:1px solid #e2edf2;
  border-radius:16px;
  display:flex;
  gap:12px;
  justify-content:space-between;
  padding:13px 15px;
}
.opto-training-summary-list-v162 strong{color:#0b1f3a;}
.opto-training-summary-list-v162 span{color:#5d7083;font-weight:800;white-space:nowrap;}
.opto-training-primary-actions-v162{
  display:flex;
  justify-content:flex-end;
  margin-top:18px;
}
.opto-public-training-modal-v162 .opto-button{
  background:linear-gradient(135deg,#63b3bd 0%,#4387a5 100%);
  border:0;
  border-radius:16px;
  color:#fff;
  cursor:pointer;
  font-weight:900;
  min-height:44px;
  padding:0 20px;
}
.opto-public-training-modal-v162 .opto-button:hover,
.opto-public-training-modal-v162 .opto-button:focus{
  filter:brightness(.98);
}
.opto-training-session-bar-v162{
  align-items:center;
  background:#ffffff;
  border:1px solid #d8e7ee;
  border-radius:22px;
  display:flex;
  gap:16px;
  justify-content:space-between;
  margin-bottom:16px;
  padding:14px 16px;
  box-shadow:0 12px 28px rgba(15,23,42,.04);
}
.opto-training-counter-v162{
  background:#edf8fb;
  border-radius:999px;
  color:#0b7184;
  font-weight:900;
  padding:9px 13px;
}
.opto-training-exercise-stack-v162{
  margin:0;
}
.opto-training-exercise-card-v162{
  background:#ffffff;
  border:1px solid #d8e7ee;
  border-radius:24px;
  box-shadow:0 16px 40px rgba(15,23,42,.06);
  overflow:hidden;
}
.opto-training-exercise-card-v162.is-completed{
  border-color:#9ee6b5;
  box-shadow:0 16px 40px rgba(22,101,52,.08);
}
.opto-training-exercise-head-v162{
  align-items:center;
  background:linear-gradient(135deg,#f7fcfd 0%,#ffffff 100%);
  border-bottom:1px solid #e4eef3;
  display:flex;
  gap:14px;
  padding:18px 20px;
}
.opto-training-exercise-head-v162 > span{
  align-items:center;
  background:#e8f6f7;
  border-radius:14px;
  color:#087f84;
  display:flex;
  font-weight:900;
  height:38px;
  justify-content:center;
  width:38px;
}
.opto-training-exercise-head-v162 strong{
  color:#0b1f3a;
  display:block;
  font-size:1.1rem;
  font-weight:900;
}
.opto-training-exercise-head-v162 em{
  color:#5d7083;
  display:block;
  font-style:normal;
  font-weight:800;
  margin-top:2px;
}
.opto-training-exercise-card-v162 .opto-public-video,
.opto-training-exercise-card-v162 .opto-public-mini-box,
.opto-training-exercise-card-v162 .opto-public-exercise-actions,
.opto-training-exercise-card-v162 .opto-public-history-panel,
.opto-training-exercise-card-v162 .opto-exercise-comment-panel-v162{
  margin:16px 20px;
}
.opto-training-exercise-card-v162 .opto-public-mini-box,
.opto-training-exercise-card-v162 .opto-public-history-panel,
.opto-training-exercise-card-v162 .opto-exercise-comment-panel-v162{
  background:#f8fbfd;
  border:1px solid #e4eef3;
  border-radius:18px;
  padding:14px;
}
.opto-exercise-comment-panel-v162 label,
.opto-general-comment-v162{
  display:grid;
  gap:8px;
}
.opto-exercise-comment-panel-v162 span,
.opto-general-comment-v162 span{
  color:#0b1f3a;
  font-weight:900;
}
.opto-exercise-comment-panel-v162 textarea,
.opto-general-comment-v162 textarea,
.opto-public-execute-box-v162 textarea{
  border:1px solid #cfe0e8;
  border-radius:16px;
  min-height:92px;
  padding:12px 14px;
  width:100%;
}
.opto-training-exercise-actions-v162{
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.opto-training-exercise-actions-v162 .opto-exercise-check{
  margin-left:auto;
}
.opto-training-exercise-actions-v162 .opto-mark-exercise-complete-v162{
  min-height:40px;
}
.opto-training-navigation-v162{
  display:flex;
  gap:12px;
  justify-content:space-between;
  margin-top:16px;
}
.opto-public-training-modal-v162 .opto-soft-button{
  border-color:#cfe0e8;
  border-radius:999px;
  color:#0b5773;
  min-height:40px;
  padding:0 16px;
}
.opto-public-training-modal-v162 .opto-soft-button:disabled{
  opacity:.45;
  cursor:not-allowed;
}
.opto-public-communication-box-v162{
  margin-bottom:16px;
}
.opto-public-execute-box-v162 .opto-training-form{
  display:grid;
  gap:16px;
}
.opto-effort-label-v162{
  background:#f8fbfd;
  border:1px solid #d8e7ee;
  border-radius:20px;
  display:grid;
  gap:8px;
  margin:0;
  padding:16px;
}
.opto-effort-label-v162 input[type="range"]{
  accent-color:#5fa7b6;
}
.opto-effort-value{
  color:#0b1f3a;
  font-size:1.15rem;
  font-weight:900;
}
.opto-stars-v162{
  background:#f8fbfd;
  border:1px solid #d8e7ee;
  border-radius:20px;
  margin:0;
  padding:16px;
}
.opto-stars-v162 > span{
  color:#0b1f3a;
  font-weight:900;
  margin-bottom:10px;
}
.opto-stars-v162 label span{
  color:#d0d5dd;
  font-size:2rem;
  transition:color .15s ease, transform .15s ease;
}
.opto-stars-v162 label.is-filled span{
  color:#f59e0b;
}
.opto-stars-v162 label:hover span{
  transform:translateY(-1px);
}
.opto-photo-field{
  background:#f8fbfd;
  border:1px dashed #cfe0e8;
  border-radius:18px;
  margin:0;
  padding:14px;
}
.opto-photo-field span{
  color:#0b1f3a;
  font-weight:900;
}
.opto-save-results{
  justify-self:start;
  min-width:210px;
}
@media (max-width: 760px){
  .opto-public-training-modal-v162 .opto-public-modal-panel{
    border-radius:20px !important;
    max-height:92vh !important;
  }
  .opto-training-head-v162,
  .opto-training-panel-v162{
    padding-left:18px !important;
    padding-right:18px !important;
  }
  .opto-training-steps-v162{
    grid-template-columns:1fr;
    padding:14px 18px;
  }
  .opto-training-summary-grid-v162{
    grid-template-columns:1fr;
  }
  .opto-training-session-bar-v162{
    align-items:flex-start;
    flex-direction:column;
  }
  .opto-training-exercise-actions-v162 .opto-exercise-check{
    margin-left:0;
  }
}

.opto-public-training-modal-v162 .opto-training-exercise-actions-v162 .opto-exercise-check{display:none !important;}


/* v1.6.2.1 — Popup navegable con iconografía propia y comentarios por ejercicio */
.opto-public-training-modal-v162 .opto-public-modal-panel{
  max-height:min(90vh, 860px) !important;
}
.opto-training-head-v1621{
  align-items:center !important;
  display:flex !important;
  gap:16px !important;
}
.opto-training-brand-icon-v1621{
  align-items:center;
  background:#ffffff;
  border:1px solid #d8e7ee;
  border-radius:20px;
  box-shadow:0 14px 30px rgba(15,23,42,.07);
  display:inline-flex;
  flex:0 0 62px;
  height:62px;
  justify-content:center;
  width:62px;
}
.opto-training-brand-icon-v1621 img{
  display:block;
  height:34px;
  width:34px;
}
.opto-training-steps-v1621 button{
  align-items:center;
  appearance:none;
  background:#f5f9fb;
  border:1px solid #dbe8ef;
  border-radius:999px;
  color:#5d7083;
  cursor:pointer;
  display:inline-flex;
  font:inherit;
  font-weight:900;
  gap:8px;
  justify-content:center;
  min-height:40px;
  padding:0 14px;
  transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease;
}
.opto-training-steps-v1621 button img{
  display:block;
  height:18px;
  opacity:.72;
  width:18px;
}
.opto-training-steps-v1621 button:hover,
.opto-training-steps-v1621 button:focus{
  background:#eef8fa;
  border-color:#bcdde5;
  color:#0b7184;
  outline:none;
  transform:translateY(-1px);
}
.opto-training-steps-v1621 button.is-active{
  background:#5fa7b6;
  border-color:#5fa7b6;
  color:#ffffff;
  box-shadow:0 12px 28px rgba(95,167,182,.22);
}
.opto-training-steps-v1621 button.is-active img{
  filter:brightness(0) invert(1);
  opacity:1;
}
.opto-training-steps-v1621 span.is-active{
  box-shadow:none;
}
.opto-training-comment-review-v1621{
  background:linear-gradient(135deg,#f8fcfd 0%,#ffffff 100%);
  border:1px dashed #c8dce5;
  border-radius:18px;
  margin:14px 0 18px;
  padding:16px;
}
.opto-training-comment-review-v1621 strong{
  color:#0b1f3a;
  display:block;
  font-weight:900;
  margin-bottom:8px;
}
.opto-training-comment-review-v1621 p{
  color:#5c7080;
  margin:.35rem 0 0;
}
.opto-training-comment-review-v1621 ul{
  display:grid;
  gap:10px;
  list-style:none;
  margin:10px 0 0;
  padding:0;
}
.opto-training-comment-review-v1621 li{
  background:#ffffff;
  border:1px solid #e0edf2;
  border-radius:14px;
  padding:12px;
}
.opto-training-comment-review-v1621 li span{
  color:#0b7184;
  display:block;
  font-weight:900;
  margin-bottom:4px;
}
.opto-training-comment-review-v1621 li p{
  color:#29394a;
  margin:0;
  white-space:pre-wrap;
}
@media (max-width:760px){
  .opto-training-head-v1621{
    align-items:flex-start !important;
  }
  .opto-training-brand-icon-v1621{
    flex-basis:48px;
    height:48px;
    width:48px;
  }
  .opto-training-brand-icon-v1621 img{
    height:28px;
    width:28px;
  }
  .opto-training-steps-v1621 button{
    min-height:44px;
    padding:0 10px;
  }
  .opto-training-steps-v1621 button img{
    display:none;
  }
}

.opto-training-steps-v1621 button > span{
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  color:inherit !important;
  display:inline !important;
  font:inherit !important;
  font-weight:900 !important;
  min-height:0 !important;
  padding:0 !important;
}


/* v1.6.2.2 — Popup aislado de Elementor y control de finalización */
.opto-public-training-modal-v162,
.opto-public-training-modal-v162 *{
  box-sizing:border-box !important;
}
.opto-public-training-modal-v162 button,
.opto-public-training-modal-v162 input,
.opto-public-training-modal-v162 textarea,
.opto-public-training-modal-v162 select,
.opto-public-training-modal-v162 label{
  font-family:inherit !important;
  line-height:1.2 !important;
  text-transform:none !important;
  letter-spacing:normal !important;
}
.opto-public-training-modal-v162 button,
.opto-public-training-modal-v162 .opto-button,
.opto-public-training-modal-v162 .opto-soft-button{
  appearance:none !important;
  -webkit-appearance:none !important;
  align-items:center !important;
  border-style:solid !important;
  box-shadow:none !important;
  cursor:pointer !important;
  display:inline-flex !important;
  font-size:15px !important;
  font-weight:900 !important;
  justify-content:center !important;
  min-height:42px !important;
  text-align:center !important;
  text-decoration:none !important;
  text-shadow:none !important;
  transform:none !important;
}
.opto-public-training-modal-v162 button:before,
.opto-public-training-modal-v162 button:after,
.opto-public-training-modal-v162 .opto-button:before,
.opto-public-training-modal-v162 .opto-button:after,
.opto-public-training-modal-v162 .opto-soft-button:before,
.opto-public-training-modal-v162 .opto-soft-button:after{
  content:none !important;
  display:none !important;
}
.opto-public-training-modal-v162 .opto-training-steps-v1621{
  display:grid !important;
  gap:14px !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
}
.opto-public-training-modal-v162 .opto-training-steps-v1621 button{
  background:#eef7fa !important;
  border:1px solid #cfe0e8 !important;
  border-radius:999px !important;
  color:#28576a !important;
  min-height:58px !important;
  padding:0 18px !important;
  width:100% !important;
}
.opto-public-training-modal-v162 .opto-training-steps-v1621 button img,
.opto-public-training-modal-v162 .opto-training-steps-v1621 button svg,
.opto-public-training-modal-v162 .opto-training-steps-v1621 button i{
  display:none !important;
}
.opto-public-training-modal-v162 .opto-training-steps-v1621 button span{
  color:inherit !important;
  display:inline !important;
  font-size:18px !important;
  font-weight:900 !important;
}
.opto-public-training-modal-v162 .opto-training-steps-v1621 button.is-active{
  background:#5fa7b6 !important;
  border-color:#5fa7b6 !important;
  color:#ffffff !important;
  box-shadow:0 12px 28px rgba(95,167,182,.22) !important;
}
.opto-public-training-modal-v162 .opto-soft-button{
  background:#eef7fa !important;
  border:1px solid #cfe0e8 !important;
  border-radius:999px !important;
  color:#28576a !important;
  padding:0 18px !important;
}
.opto-public-training-modal-v162 .opto-soft-button:hover,
.opto-public-training-modal-v162 .opto-soft-button:focus{
  background:#e0f1f5 !important;
  border-color:#b8dce5 !important;
  color:#0b5773 !important;
  outline:none !important;
}
.opto-public-training-modal-v162 .opto-button{
  background:#5fa7b6 !important;
  border:1px solid #5fa7b6 !important;
  border-radius:999px !important;
  color:#ffffff !important;
  padding:0 22px !important;
}
.opto-public-training-modal-v162 .opto-mark-exercise-complete-v162{
  background:#eef2f5 !important;
  border-color:#d5e0e7 !important;
  color:#536575 !important;
  min-width:170px !important;
}
.opto-public-training-modal-v162 .opto-mark-exercise-complete-v162.is-completed,
.opto-public-training-modal-v162 .opto-training-exercise-card-v162.is-completed .opto-mark-exercise-complete-v162{
  background:#dcfce7 !important;
  border-color:#86efac !important;
  color:#166534 !important;
}
.opto-public-training-modal-v162 .opto-save-results.is-disabled,
.opto-public-training-modal-v162 .opto-save-results:disabled{
  background:#cbd5df !important;
  border-color:#cbd5df !important;
  color:#ffffff !important;
  cursor:not-allowed !important;
  opacity:1 !important;
}
.opto-results-save-row-v1622{
  align-items:center !important;
  display:flex !important;
  flex-wrap:wrap !important;
  gap:14px !important;
  margin-top:2px !important;
}
.opto-missing-exercises-v1622{
  background:#fef2f2 !important;
  border:1px solid #fecaca !important;
  border-radius:14px !important;
  color:#991b1b !important;
  flex:1 1 260px !important;
  font-size:14px !important;
  font-weight:800 !important;
  line-height:1.4 !important;
  margin:0 !important;
  padding:11px 13px !important;
}
.opto-missing-exercises-v1622.is-ready{
  background:#ecfdf3 !important;
  border-color:#bbf7d0 !important;
  color:#166534 !important;
}
.opto-public-training-modal-v162 .opto-start-training,
.opto-public-training-modal-v162 .opto-training-go-v162,
.opto-public-training-modal-v162 .opto-training-next-v162,
.opto-public-training-modal-v162 .opto-training-prev-v162{
  min-width:120px !important;
}
@media (max-width:760px){
  .opto-public-training-modal-v162 .opto-training-steps-v1621{
    grid-template-columns:1fr !important;
  }
  .opto-results-save-row-v1622{
    align-items:stretch !important;
    flex-direction:column !important;
  }
  .opto-public-training-modal-v162 .opto-save-results,
  .opto-missing-exercises-v1622{
    width:100% !important;
  }
}

/* v1.6.2.3 — Popup aislado, histórico real y cierre propio */
.opto-public-training-modal-v162 .opto-public-modal-close{
  all:unset !important;
  appearance:none !important;
  -webkit-appearance:none !important;
  align-items:center !important;
  background:#ffffff !important;
  border:1px solid #d7e6ed !important;
  border-radius:999px !important;
  box-shadow:0 10px 24px rgba(15,23,42,.10) !important;
  box-sizing:border-box !important;
  color:#0b1f3a !important;
  cursor:pointer !important;
  display:flex !important;
  font-family:inherit !important;
  font-size:24px !important;
  font-weight:900 !important;
  height:44px !important;
  justify-content:center !important;
  line-height:1 !important;
  min-height:44px !important;
  padding:0 !important;
  position:absolute !important;
  right:18px !important;
  text-align:center !important;
  text-decoration:none !important;
  text-shadow:none !important;
  top:18px !important;
  transform:none !important;
  width:44px !important;
  z-index:50 !important;
}
.opto-public-training-modal-v162 .opto-public-modal-close:hover,
.opto-public-training-modal-v162 .opto-public-modal-close:focus{
  background:#eef7fa !important;
  border-color:#b8dce5 !important;
  color:#0b5773 !important;
  outline:3px solid rgba(95,167,182,.18) !important;
}
.opto-public-training-modal-v162 .opto-public-modal-close:before,
.opto-public-training-modal-v162 .opto-public-modal-close:after{
  content:none !important;
  display:none !important;
}
.opto-public-training-modal-v162 .opto-training-steps-v1621 button,
.opto-public-training-modal-v162 .opto-training-steps-v1621 button:hover,
.opto-public-training-modal-v162 .opto-training-steps-v1621 button:focus,
.opto-public-training-modal-v162 .opto-training-steps-v1621 button.is-active,
.opto-public-training-modal-v162 .opto-training-exercise-actions-v162 button,
.opto-public-training-modal-v162 .opto-training-navigation-v162 button,
.opto-public-training-modal-v162 .opto-results-save-row-v1622 button,
.opto-public-training-modal-v162 .opto-training-primary-actions-v162 button{
  text-decoration:none !important;
  text-transform:none !important;
  letter-spacing:normal !important;
  text-shadow:none !important;
  font-family:inherit !important;
}
.opto-public-training-modal-v162 .opto-training-steps-v1621 button:before,
.opto-public-training-modal-v162 .opto-training-steps-v1621 button:after,
.opto-public-training-modal-v162 .opto-training-steps-v1621 button span:before,
.opto-public-training-modal-v162 .opto-training-steps-v1621 button span:after{
  content:none !important;
  display:none !important;
}
.opto-public-training-modal-v162 .opto-training-steps-v1621 button{
  background:#eef7fa !important;
  border:1px solid #cfe0e8 !important;
  border-radius:999px !important;
  box-shadow:none !important;
  color:#28576a !important;
  min-height:54px !important;
}
.opto-public-training-modal-v162 .opto-training-steps-v1621 button.is-active{
  background:#5fa7b6 !important;
  border-color:#5fa7b6 !important;
  color:#ffffff !important;
  box-shadow:0 12px 28px rgba(95,167,182,.22) !important;
}
.opto-public-training-modal-v162 .opto-training-steps-v1621 button span{
  background:transparent !important;
  border:0 !important;
  color:inherit !important;
  display:inline !important;
  font-size:18px !important;
  font-weight:900 !important;
  line-height:1.1 !important;
  min-height:0 !important;
  padding:0 !important;
}
.opto-public-training-modal-v162 .opto-public-empty-thread{
  display:none !important;
}
.opto-public-history-panel-v1623{
  background:#f8fbfd !important;
  border:1px solid #e4eef3 !important;
  border-radius:18px !important;
  color:#29394a !important;
  padding:16px !important;
}
.opto-public-history-panel-v1623 > strong{
  color:#0b1f3a !important;
  display:block !important;
  font-size:16px !important;
  font-weight:900 !important;
  margin-bottom:10px !important;
}
.opto-public-history-panel-v1623 ul{
  display:grid !important;
  gap:10px !important;
  list-style:none !important;
  margin:0 !important;
  padding:0 !important;
}
.opto-public-history-panel-v1623 li{
  background:#ffffff !important;
  border:1px solid #e0edf2 !important;
  border-radius:14px !important;
  padding:12px 14px !important;
}
.opto-public-history-panel-v1623 li span{
  color:#0b7184 !important;
  display:block !important;
  font-weight:900 !important;
  margin-bottom:4px !important;
}
.opto-public-history-panel-v1623 li small{
  color:#526579 !important;
  display:block !important;
  font-weight:800 !important;
  line-height:1.4 !important;
}
.opto-public-history-panel-v1623 li p{
  color:#29394a !important;
  margin:8px 0 0 !important;
  white-space:pre-wrap !important;
}


/* v1.6.2.4 — mensaje de bloqueo y aislamiento final del popup */
.opto-public-training-modal-v162 .opto-missing-exercises-v1622.is-blocked,
.opto-public-modal .opto-missing-exercises-v1622.is-blocked{
  background:#fef2f2 !important;
  border-color:#fecaca !important;
  color:#991b1b !important;
}
.opto-public-training-modal-v162 .opto-missing-exercises-v1622.is-ready,
.opto-public-modal .opto-missing-exercises-v1622.is-ready{
  background:#ecfdf3 !important;
  border-color:#bbf7d0 !important;
  color:#166534 !important;
}
.opto-public-training-modal-v162 button,
.opto-public-training-modal-v162 .opto-button,
.opto-public-training-modal-v162 .opto-soft-button,
.opto-public-training-modal-v162 .opto-public-modal-close,
.opto-public-training-modal-v162 input[type="button"],
.opto-public-training-modal-v162 input[type="submit"]{
  font-family:inherit !important;
  letter-spacing:normal !important;
  text-transform:none !important;
  text-shadow:none !important;
  box-shadow:none !important;
}


/* v1.6.3 — metrónomo del popup */
.opto-public-training-modal-v162 .opto-training-exercise-head-v162{
	align-items:flex-start;
	gap:14px;
}
.opto-public-training-modal-v162 .opto-training-exercise-head-v162 > div:first-of-type{
	flex:1 1 auto;
	min-width:0;
}
.opto-metronome-control-v163,
.opto-metronome-control-v163 *{
	box-sizing:border-box!important;
	font-family:inherit!important;
}
.opto-metronome-control-v163{
	align-items:center!important;
	align-self:flex-start!important;
	background:#f4fbfd!important;
	border:1px solid #cfe0e8!important;
	border-radius:999px!important;
	display:flex!important;
	flex:0 0 auto!important;
	gap:6px!important;
	justify-content:center!important;
	padding:6px!important;
	box-shadow:0 10px 22px rgba(15,23,42,.06)!important;
	max-width:100%!important;
	user-select:none!important;
	touch-action:manipulation!important;
}
.opto-metronome-control-v163 .opto-metronome-btn,
.opto-public-training-modal-v162 .opto-metronome-control-v163 .opto-metronome-btn{
	-webkit-appearance:none!important;
	appearance:none!important;
	align-items:center!important;
	background:#ffffff!important;
	border:1px solid #cfe0e8!important;
	border-radius:999px!important;
	box-shadow:none!important;
	color:#0b5773!important;
	cursor:pointer!important;
	display:inline-flex!important;
	font-size:13px!important;
	font-weight:900!important;
	height:34px!important;
	justify-content:center!important;
	letter-spacing:0!important;
	line-height:1!important;
	margin:0!important;
	min-height:34px!important;
	min-width:34px!important;
	outline:none!important;
	padding:0 10px!important;
	text-align:center!important;
	text-decoration:none!important;
	text-shadow:none!important;
	text-transform:none!important;
	transition:background .16s ease,border-color .16s ease,color .16s ease!important;
	width:auto!important;
}
.opto-metronome-control-v163 .opto-metronome-play{
	background:#5fa5ba!important;
	border-color:#5fa5ba!important;
	color:#ffffff!important;
	min-width:52px!important;
}
.opto-metronome-control-v163 .opto-metronome-stop{
	background:#0b1f3a!important;
	border-color:#0b1f3a!important;
	color:#ffffff!important;
	min-width:52px!important;
}
.opto-metronome-control-v163.is-playing .opto-metronome-play{
	background:#d7fbe5!important;
	border-color:#86efac!important;
	color:#166534!important;
}
.opto-metronome-control-v163 .opto-metronome-btn:hover,
.opto-metronome-control-v163 .opto-metronome-btn:focus{
	filter:brightness(.98)!important;
	box-shadow:0 0 0 3px rgba(14,165,168,.12)!important;
}
.opto-metronome-bpm{
	background:#ffffff!important;
	border:1px solid #d9e8ef!important;
	border-radius:999px!important;
	color:#0f172a!important;
	display:inline-flex!important;
	font-size:13px!important;
	font-weight:900!important;
	line-height:1!important;
	min-height:34px!important;
	align-items:center!important;
	justify-content:center!important;
	padding:0 12px!important;
	white-space:nowrap!important;
}
.opto-metronome-admin-field .opto-toggle-row{
	align-items:flex-start;
	display:flex;
	gap:8px;
	line-height:1.4;
}
.opto-metronome-admin-field .opto-toggle-row input{
	margin-top:2px;
}
@media (max-width: 780px){
	.opto-public-training-modal-v162 .opto-training-exercise-head-v162{
		flex-wrap:wrap;
	}
	.opto-metronome-control-v163{
		border-radius:20px!important;
		flex-wrap:wrap!important;
		justify-content:flex-start!important;
		width:100%!important;
	}
	.opto-metronome-bpm{
		flex:1 1 auto!important;
	}
}


/* v1.6.3.1 — responsive móvil del popup y metrónomo Safari/iOS */
.opto-public-training-modal-v162,
.opto-public-training-modal-v162 *{
  box-sizing:border-box!important;
}
.opto-public-training-modal-v162 .opto-public-modal-panel{
  overflow-x:hidden!important;
  width:min(980px, calc(100vw - 24px))!important;
  max-width:calc(100vw - 24px)!important;
  max-height:calc(100dvh - 24px)!important;
}
.opto-public-training-modal-v162 .opto-training-panel-v162,
.opto-public-training-modal-v162 .opto-training-summary-card-v162,
.opto-public-training-modal-v162 .opto-training-exercise-card-v162,
.opto-public-training-modal-v162 .opto-public-detail-box,
.opto-public-training-modal-v162 .opto-public-mini-box{
  min-width:0!important;
  max-width:100%!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}
.opto-public-training-modal-v162 .opto-training-summary-list-v162 li{
  align-items:flex-start!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:10px!important;
  max-width:100%!important;
}
.opto-public-training-modal-v162 .opto-training-summary-list-v162 li strong,
.opto-public-training-modal-v162 .opto-training-summary-list-v162 li span{
  min-width:0!important;
  overflow-wrap:anywhere!important;
  white-space:normal!important;
}
.opto-public-training-modal-v162 .opto-training-exercise-head-v162{
  width:100%!important;
}
.opto-public-training-modal-v162 .opto-training-exercise-head-v162 strong,
.opto-public-training-modal-v162 .opto-training-exercise-head-v162 em{
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
.opto-public-training-modal-v162 .opto-training-steps-v1621 button{
  min-width:0!important;
  white-space:normal!important;
}
.opto-public-training-modal-v162 .opto-training-steps-v1621 button span{
  white-space:normal!important;
}
@media (max-width: 600px){
  .opto-public-training-modal-v162 .opto-public-modal-panel{
    border-radius:18px!important;
    left:50%!important;
    max-height:calc(100dvh - 16px)!important;
    max-width:calc(100vw - 16px)!important;
    top:8px!important;
    transform:translateX(-50%)!important;
    width:calc(100vw - 16px)!important;
  }
  .opto-public-training-modal-v162 .opto-public-modal-close{
    height:40px!important;
    right:12px!important;
    top:12px!important;
    width:40px!important;
  }
  .opto-public-training-modal-v162 .opto-training-head-v162{
    align-items:flex-start!important;
    gap:12px!important;
    padding:18px 58px 16px 16px!important;
  }
  .opto-public-training-modal-v162 .opto-training-brand-icon-v1621{
    flex:0 0 44px!important;
    height:44px!important;
    width:44px!important;
  }
  .opto-public-training-modal-v162 .opto-training-brand-icon-v1621 img{
    height:26px!important;
    width:26px!important;
  }
  .opto-public-training-modal-v162 .opto-training-head-v162 h3{
    font-size:clamp(1.25rem, 7.4vw, 1.9rem)!important;
    line-height:1.05!important;
    margin:4px 0 8px!important;
    overflow-wrap:anywhere!important;
  }
  .opto-public-training-modal-v162 .opto-training-head-v162 p{
    font-size:1rem!important;
    line-height:1.35!important;
  }
  .opto-public-training-modal-v162 .opto-training-steps-v162,
  .opto-public-training-modal-v162 .opto-training-steps-v1621{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
    padding:14px 16px!important;
  }
  .opto-public-training-modal-v162 .opto-training-steps-v1621 button{
    border-radius:22px!important;
    font-size:1.1rem!important;
    min-height:52px!important;
    padding:0 14px!important;
  }
  .opto-public-training-modal-v162 .opto-training-panel-v162{
    padding:16px!important;
  }
  .opto-public-training-modal-v162 .opto-training-summary-card-v162{
    padding:18px!important;
  }
  .opto-public-training-modal-v162 .opto-training-summary-list-v162 li{
    grid-template-columns:1fr!important;
  }
  .opto-public-training-modal-v162 .opto-training-summary-list-v162 li span{
    justify-self:start!important;
  }
  .opto-public-training-modal-v162 .opto-training-session-bar-v162{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:14px!important;
    padding:16px!important;
  }
  .opto-public-training-modal-v162 .opto-training-timer{
    flex-wrap:wrap!important;
    gap:10px!important;
  }
  .opto-public-training-modal-v162 .opto-training-counter-v162{
    justify-self:start!important;
  }
  .opto-public-training-modal-v162 .opto-training-exercise-card-v162{
    padding:14px!important;
  }
  .opto-public-training-modal-v162 .opto-training-exercise-head-v162{
    align-items:flex-start!important;
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    gap:10px!important;
  }
  .opto-public-training-modal-v162 .opto-training-exercise-head-v162 .opto-metronome-control-v163{
    grid-column:1 / -1!important;
    margin-top:8px!important;
  }
  .opto-metronome-control-v163{
    border-radius:18px!important;
    display:grid!important;
    grid-template-columns:42px 1fr 1fr 42px!important;
    gap:8px!important;
    padding:8px!important;
    width:100%!important;
  }
  .opto-metronome-control-v163 .opto-metronome-btn,
  .opto-public-training-modal-v162 .opto-metronome-control-v163 .opto-metronome-btn{
    height:40px!important;
    min-height:40px!important;
    min-width:0!important;
    padding:0 8px!important;
    width:100%!important;
  }
  .opto-metronome-bpm{
    grid-column:1 / -1!important;
    width:100%!important;
  }
  .opto-public-training-modal-v162 .opto-training-exercise-actions-v162,
  .opto-public-training-modal-v162 .opto-training-navigation-v162,
  .opto-public-training-modal-v162 .opto-results-save-row-v1622{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .opto-public-training-modal-v162 .opto-training-exercise-actions-v162 button,
  .opto-public-training-modal-v162 .opto-training-navigation-v162 button,
  .opto-public-training-modal-v162 .opto-results-save-row-v1622 button{
    width:100%!important;
  }
}
@supports (-webkit-touch-callout: none) {
  .opto-public-training-modal-v162 .opto-public-modal-panel{
    max-height:-webkit-fill-available!important;
  }
}

/* v1.6.3.2 — recuperación de metrónomo en Safari/iOS */
.opto-metronome-control-v163.needs-reactivation{
  border-color:#f59e0b!important;
  background:#fff7ed!important;
}
.opto-metronome-control-v163 .opto-metronome-reactivate,
.opto-public-training-modal-v162 .opto-metronome-control-v163 .opto-metronome-reactivate{
  background:#f59e0b!important;
  border-color:#f59e0b!important;
  color:#fff!important;
  display:inline-flex!important;
  grid-column:1 / -1!important;
  height:42px!important;
  min-height:42px!important;
  width:100%!important;
}
.opto-metronome-control-v163 .opto-metronome-reactivate[hidden],
.opto-metronome-control-v163 .opto-metronome-status[hidden]{
  display:none!important;
}
.opto-metronome-status{
  align-items:center!important;
  background:#fff7ed!important;
  border:1px solid #fed7aa!important;
  border-radius:12px!important;
  color:#92400e!important;
  display:flex!important;
  font-size:12px!important;
  font-weight:800!important;
  grid-column:1 / -1!important;
  line-height:1.35!important;
  padding:9px 10px!important;
  width:100%!important;
}
@media (max-width:640px){
  .opto-metronome-control-v163 .opto-metronome-reactivate,
  .opto-public-training-modal-v162 .opto-metronome-control-v163 .opto-metronome-reactivate{
    font-size:13px!important;
  }
}

/* v1.6.4 — App/PWA del paciente */
.opto-pwa-standalone body,
body.opto-pwa-standalone {
	background: #f4f8fb;
}
.opto-patient-portal {
	-webkit-tap-highlight-color: transparent;
}
.opto-pwa-install-card {
	align-items: center;
	background: rgba(255,255,255,.96);
	border: 1px solid #d7e7ee;
	border-radius: 22px;
	box-shadow: 0 18px 46px rgba(15,23,42,.16);
	box-sizing: border-box;
	display: grid;
	gap: 14px;
	grid-template-columns: 54px minmax(0, 1fr) auto;
	left: max(18px, env(safe-area-inset-left));
	max-width: 720px;
	padding: 14px;
	position: fixed;
	right: max(18px, env(safe-area-inset-right));
	bottom: max(18px, env(safe-area-inset-bottom));
	z-index: 999999;
}
.opto-pwa-install-card[hidden],
.opto-pwa-network-status[hidden] {
	display: none !important;
}
.opto-pwa-install-icon {
	align-items: center;
	background: #eaf8fb;
	border: 1px solid #cce9ef;
	border-radius: 18px;
	display: flex;
	height: 54px;
	justify-content: center;
	width: 54px;
}
.opto-pwa-install-icon img {
	display: block;
	height: 36px;
	object-fit: contain;
	width: 36px;
}
.opto-pwa-install-body {
	display: grid;
	gap: 4px;
	min-width: 0;
}
.opto-pwa-install-body strong {
	color: #0b1f3a;
	font-size: 15px;
	font-weight: 900;
	line-height: 1.2;
}
.opto-pwa-install-body span {
	color: #556678;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
}
.opto-pwa-install-actions {
	display: flex;
	gap: 8px;
	justify-content: flex-end;
}
.opto-pwa-install-btn,
.opto-pwa-dismiss-btn {
	align-items: center !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	border-radius: 14px !important;
	box-shadow: none !important;
	cursor: pointer;
	display: inline-flex !important;
	font: 800 13px/1.1 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
	justify-content: center !important;
	min-height: 40px !important;
	padding: 0 14px !important;
	text-decoration: none !important;
	text-transform: none !important;
	white-space: nowrap;
}
.opto-pwa-install-btn {
	background: #0ea5b7 !important;
	border: 1px solid #0ea5b7 !important;
	color: #fff !important;
}
.opto-pwa-dismiss-btn {
	background: #fff !important;
	border: 1px solid #d5e4eb !important;
	color: #0b5773 !important;
}
.opto-pwa-network-status {
	background: #0b1f3a;
	border-radius: 999px;
	bottom: max(18px, env(safe-area-inset-bottom));
	box-shadow: 0 16px 34px rgba(15,23,42,.16);
	color: #fff;
	font-size: 13px;
	font-weight: 800;
	left: 50%;
	max-width: calc(100vw - 32px);
	padding: 11px 16px;
	position: fixed;
	text-align: center;
	transform: translateX(-50%);
	z-index: 1000000;
}
.opto-pwa-network-status.is-offline {
	background: #991b1b;
}
.opto-pwa-network-status.is-online {
	background: #087f84;
}
@media (display-mode: standalone) {
	.opto-patient-portal {
		min-height: 100dvh;
		padding-top: max(18px, env(safe-area-inset-top));
		padding-bottom: max(94px, env(safe-area-inset-bottom));
	}
	.opto-patient-bottom-nav-v15812 {
		padding-bottom: max(8px, env(safe-area-inset-bottom)) !important;
	}
}
@media (max-width: 782px) {
	.opto-pwa-install-card {
		grid-template-columns: 46px minmax(0, 1fr);
		padding: 12px;
	}
	.opto-pwa-install-icon {
		height: 46px;
		width: 46px;
	}
	.opto-pwa-install-icon img {
		height: 30px;
		width: 30px;
	}
	.opto-pwa-install-actions {
		grid-column: 1 / -1;
		justify-content: stretch;
	}
	.opto-pwa-install-actions button {
		flex: 1 1 0;
	}
	.opto-patient-portal .opto-public-calendar-grid,
	.opto-patient-portal .opto-public-week-calendar-grid {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: x proximity;
	}
	.opto-patient-portal .opto-public-calendar-day,
	.opto-patient-portal .opto-public-week-day {
		scroll-snap-align: start;
	}
	.opto-patient-portal .opto-public-calendar-item,
	.opto-patient-portal button.opto-public-calendar-item {
		min-height: 48px;
		touch-action: manipulation;
	}
}
@media (max-width: 520px) {
	.opto-patient-portal .opto-patient-calendar-shell {
		border-radius: 20px;
		margin-left: -4px;
		margin-right: -4px;
	}
	.opto-patient-portal .opto-public-view-tabs {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 8px;
	}
	.opto-patient-portal .opto-public-view-tabs button,
	.opto-patient-portal .opto-public-view-tabs a {
		min-height: 42px;
		white-space: normal;
	}
}


/* v1.6.4.1 — instalador PWA más claro */
.opto-pwa-install-guide {
	background: rgba(255,255,255,.72);
	border: 1px solid rgba(219,232,239,.9);
	border-radius: 14px;
	color: #29485d;
	font-size: 12px;
	line-height: 1.45;
	margin-top: 8px;
	padding: 9px 12px;
}
.opto-pwa-install-guide ol {
	margin: 0;
	padding-left: 18px;
}
.opto-pwa-install-guide li + li {
	margin-top: 3px;
}
.opto-pwa-install-card.is-manual .opto-pwa-install-actions {
	align-items: flex-start;
}
.opto-pwa-install-btn[hidden] {
	display: none !important;
}
@media (max-width: 640px) {
	.opto-pwa-install-guide {
		font-size: 11px;
	}
}


/* v1.6.4.2 — PWA: instrucciones móviles adaptadas por navegador */
.opto-pwa-install-card {
	box-sizing: border-box;
	max-height: calc(100dvh - 28px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}
.opto-pwa-install-guide {
	box-sizing: border-box;
	grid-column: 1 / -1;
	max-width: 100%;
	width: 100%;
	word-break: normal;
	overflow-wrap: break-word;
	hyphens: none;
}
.opto-pwa-install-guide-title {
	color: #0b1f3a;
	font-size: 13px;
	font-weight: 900;
	line-height: 1.35;
	margin: 0 0 8px;
}
.opto-pwa-install-guide ol {
	box-sizing: border-box;
	margin: 0;
	padding-left: 22px;
}
.opto-pwa-install-guide li {
	font-size: 13px;
	line-height: 1.45;
	padding-left: 2px;
	word-break: normal;
	overflow-wrap: break-word;
}
.opto-pwa-install-guide li + li {
	margin-top: 6px;
}
.opto-pwa-install-note {
	background: #f4fafc;
	border: 1px solid #dbe8ef;
	border-radius: 12px;
	color: #29485d;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.45;
	margin: 10px 0 0;
	padding: 9px 10px;
}
@media (max-width: 640px) {
	.opto-pwa-install-card {
		align-items: start;
		border-radius: 22px 22px 0 0;
		bottom: 0;
		gap: 12px;
		grid-template-columns: 44px minmax(0, 1fr);
		left: 0;
		max-height: min(82dvh, 620px);
		padding: 14px 14px max(14px, env(safe-area-inset-bottom));
		right: 0;
	}
	.opto-pwa-install-body strong {
		font-size: 15px;
	}
	.opto-pwa-install-body span {
		font-size: 13px;
		line-height: 1.45;
	}
	.opto-pwa-install-guide {
		background: #fff;
		font-size: 13px;
		line-height: 1.45;
		margin-top: 0;
		padding: 12px 14px;
	}
	.opto-pwa-install-guide-title {
		font-size: 14px;
	}
	.opto-pwa-install-guide li {
		font-size: 13px;
		line-height: 1.48;
	}
	.opto-pwa-install-actions {
		grid-column: 1 / -1;
	}
}
@media (max-width: 380px) {
	.opto-pwa-install-card {
		grid-template-columns: 38px minmax(0, 1fr);
		padding-left: 10px;
		padding-right: 10px;
	}
	.opto-pwa-install-icon {
		height: 38px;
		width: 38px;
	}
	.opto-pwa-install-icon img {
		height: 26px;
		width: 26px;
	}
	.opto-pwa-install-body strong {
		font-size: 14px;
	}
	.opto-pwa-install-body span,
	.opto-pwa-install-guide li,
	.opto-pwa-install-note {
		font-size: 12px;
	}
}


/* v1.6.4.3 — instalación PWA pulida por navegador */
.opto-pwa-install-card-v1643 {
	align-items: stretch;
	background: rgba(255,255,255,.98);
	border: 1px solid #d7e7ee;
	border-radius: 26px;
	box-shadow: 0 24px 64px rgba(15,23,42,.18);
	display: grid;
	gap: 14px;
	grid-template-columns: 1fr;
	left: max(18px, env(safe-area-inset-left));
	max-height: calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
	max-width: 760px;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 18px;
	right: max(18px, env(safe-area-inset-right));
	bottom: max(18px, env(safe-area-inset-bottom));
	width: auto;
	-webkit-overflow-scrolling: touch;
}
.opto-pwa-install-card-v1643 .opto-pwa-install-top {
	align-items: center;
	display: grid;
	gap: 14px;
	grid-template-columns: 56px minmax(0,1fr);
}
.opto-pwa-install-card-v1643 .opto-pwa-install-body strong {
	color: #0b1f3a;
	display: block;
	font-size: 18px;
	font-weight: 900;
	letter-spacing: -0.025em;
	line-height: 1.15;
}
.opto-pwa-install-card-v1643 .opto-pwa-install-body span {
	color: #52687a;
	display: block;
	font-size: 14px;
	font-weight: 650;
	line-height: 1.48;
	margin-top: 4px;
}
.opto-pwa-install-card-v1643 .opto-pwa-install-guide {
	background: linear-gradient(180deg,#f8fdfe 0%,#ffffff 100%);
	border: 1px solid #dbe8ef;
	border-radius: 20px;
	box-sizing: border-box;
	color: #29485d;
	font-size: 14px;
	grid-column: 1 / -1;
	line-height: 1.5;
	margin: 0;
	padding: 16px;
	width: 100%;
}
.opto-pwa-install-card-v1643 .opto-pwa-install-guide-title {
	color: #0b1f3a;
	font-size: 15px;
	font-weight: 900;
	line-height: 1.35;
	margin: 0 0 12px;
}
.opto-pwa-step-grid {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(3,minmax(0,1fr));
}
.opto-pwa-step-card {
	align-items: flex-start;
	background: #fff;
	border: 1px solid #dbe8ef;
	border-radius: 18px;
	box-sizing: border-box;
	display: grid;
	gap: 8px;
	grid-template-columns: 32px minmax(0,1fr);
	min-width: 0;
	padding: 12px;
}
.opto-pwa-step-number {
	align-items: center;
	background: #eaf8fb;
	border: 1px solid #cbeaf1;
	border-radius: 999px;
	color: #087f84;
	display: inline-flex;
	font-size: 13px;
	font-weight: 900;
	height: 32px;
	justify-content: center;
	width: 32px;
}
.opto-pwa-step-icon {
	align-items: center;
	background: #f4fafc;
	border: 1px solid #dbe8ef;
	border-radius: 999px;
	color: #0b5773;
	display: inline-flex;
	font-size: 16px;
	font-weight: 900;
	height: 32px;
	justify-content: center;
	width: 32px;
}
.opto-pwa-step-card strong {
	color: #0b1f3a;
	display: block;
	font-size: 13px;
	font-weight: 900;
	line-height: 1.25;
	margin-bottom: 4px;
}
.opto-pwa-step-card span {
	color: #52687a;
	display: block;
	font-size: 12px;
	font-weight: 650;
	line-height: 1.42;
	word-break: normal;
	overflow-wrap: break-word;
}
.opto-pwa-install-note {
	background: #fff8e5;
	border: 1px solid #fde7aa;
	border-radius: 14px;
	color: #6b4e0b;
	font-size: 12px;
	font-weight: 800;
	line-height: 1.45;
	margin: 12px 0 0;
	padding: 10px 12px;
}
.opto-pwa-install-card-v1643 .opto-pwa-install-actions {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(4,minmax(0,auto));
	justify-content: end;
}
.opto-pwa-install-card-v1643 .opto-pwa-install-actions button {
	align-items: center !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	border-radius: 14px !important;
	box-shadow: none !important;
	cursor: pointer !important;
	display: inline-flex !important;
	font: 900 13px/1.1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
	justify-content: center !important;
	min-height: 42px !important;
	padding: 0 15px !important;
	text-align: center !important;
	text-decoration: none !important;
	text-transform: none !important;
	white-space: nowrap;
}
.opto-pwa-install-card-v1643 .opto-pwa-install-btn {
	background: #0ea5b7 !important;
	border: 1px solid #0ea5b7 !important;
	color: #fff !important;
}
.opto-pwa-install-card-v1643 .opto-pwa-help-btn {
	background: #fff !important;
	border: 1px solid #b9d7e2 !important;
	color: #0b5773 !important;
}
.opto-pwa-install-card-v1643 .opto-pwa-dismiss-btn {
	background: #f8fbfd !important;
	border: 1px solid #d5e4eb !important;
	color: #0b5773 !important;
}
.opto-pwa-install-card-v1643 .opto-pwa-noshow-btn {
	background: #fff5f5 !important;
	border: 1px solid #fecaca !important;
	color: #991b1b !important;
}
.opto-pwa-help-open {
	overflow: hidden;
}
.opto-pwa-help-modal[hidden] {
	display: none !important;
}
.opto-pwa-help-modal {
	align-items: center;
	box-sizing: border-box;
	display: flex;
	inset: 0;
	justify-content: center;
	padding: max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));
	position: fixed;
	z-index: 1000001;
}
.opto-pwa-help-backdrop {
	background: rgba(15,23,42,.52);
	inset: 0;
	position: absolute;
}
.opto-pwa-help-panel {
	background: #fff;
	border: 1px solid #d7e7ee;
	border-radius: 28px;
	box-shadow: 0 30px 90px rgba(15,23,42,.28);
	box-sizing: border-box;
	max-height: calc(100dvh - 36px);
	max-width: 920px;
	overflow-y: auto;
	padding: 24px;
	position: relative;
	width: min(920px, 100%);
	-webkit-overflow-scrolling: touch;
}
.opto-pwa-help-close {
	align-items: center !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	background: #fff !important;
	border: 1px solid #d5e4eb !important;
	border-radius: 999px !important;
	box-shadow: 0 10px 22px rgba(15,23,42,.12) !important;
	color: #0b1f3a !important;
	cursor: pointer;
	display: inline-flex !important;
	font: 900 24px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
	height: 42px !important;
	justify-content: center !important;
	position: absolute;
	right: 14px;
	top: 14px;
	width: 42px !important;
	z-index: 2;
}
.opto-pwa-help-head {
	align-items: center;
	display: grid;
	gap: 16px;
	grid-template-columns: 58px minmax(0,1fr);
	padding-right: 52px;
}
.opto-pwa-help-kicker {
	color: #087f84;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .11em;
	margin: 0 0 7px;
	text-transform: uppercase;
}
.opto-pwa-help-head h2 {
	color: #0b1f3a;
	font-size: 31px;
	font-weight: 900;
	letter-spacing: -.04em;
	line-height: 1.08;
	margin: 0 0 8px;
}
.opto-pwa-help-head p {
	color: #52687a;
	font-size: 15px;
	font-weight: 650;
	line-height: 1.55;
	margin: 0;
}
.opto-pwa-help-content {
	display: grid;
	gap: 16px;
	margin-top: 18px;
}
.opto-pwa-help-section {
	background: linear-gradient(180deg,#f8fdfe 0%,#ffffff 100%);
	border: 1px solid #dbe8ef;
	border-radius: 22px;
	padding: 18px;
}
.opto-pwa-help-section.is-current {
	border-color: #9ed7df;
	box-shadow: 0 14px 34px rgba(14,165,183,.08);
}
.opto-pwa-help-section h3 {
	color: #0b1f3a;
	font-size: 18px;
	font-weight: 900;
	margin: 0 0 10px;
}
.opto-pwa-help-section p {
	color: #52687a;
	font-size: 14px;
	line-height: 1.55;
	margin: 0 0 12px;
}
.opto-pwa-help-columns {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(2,minmax(0,1fr));
}
.opto-pwa-help-columns > div {
	background: #fff;
	border: 1px solid #dbe8ef;
	border-radius: 18px;
	padding: 14px;
}
.opto-pwa-help-columns > div > strong {
	color: #0b1f3a;
	display: block;
	font-weight: 900;
	margin-bottom: 10px;
}
.opto-pwa-help-columns .opto-pwa-install-guide-title {
	font-size: 13px;
}
.opto-pwa-help-columns .opto-pwa-step-grid {
	grid-template-columns: 1fr;
}
.opto-pwa-help-columns .opto-pwa-step-card {
	grid-template-columns: 30px minmax(0,1fr);
}
@media (max-width: 782px) {
	.opto-pwa-install-card-v1643 {
		border-radius: 24px 24px 0 0;
		bottom: 0;
		gap: 12px;
		left: 0;
		max-height: min(86dvh, 680px);
		padding: 14px 14px max(14px, env(safe-area-inset-bottom));
		right: 0;
	}
	.opto-pwa-install-card-v1643 .opto-pwa-install-top {
		grid-template-columns: 46px minmax(0,1fr);
	}
	.opto-pwa-install-card-v1643 .opto-pwa-install-body strong {
		font-size: 16px;
	}
	.opto-pwa-install-card-v1643 .opto-pwa-install-body span {
		font-size: 13px;
	}
	.opto-pwa-step-grid {
		grid-template-columns: 1fr;
	}
	.opto-pwa-step-card {
		grid-template-columns: 34px 34px minmax(0,1fr);
		padding: 12px;
	}
	.opto-pwa-step-card strong {
		font-size: 13px;
	}
	.opto-pwa-step-card span {
		font-size: 12px;
	}
	.opto-pwa-install-card-v1643 .opto-pwa-install-actions {
		grid-template-columns: 1fr 1fr;
		justify-content: stretch;
	}
	.opto-pwa-install-card-v1643 .opto-pwa-install-actions button {
		min-height: 44px !important;
		white-space: normal;
	}
	.opto-pwa-help-modal {
		align-items: flex-end;
		padding: 0;
	}
	.opto-pwa-help-panel {
		border-radius: 26px 26px 0 0;
		max-height: 90dvh;
		padding: 20px 16px max(18px, env(safe-area-inset-bottom));
		width: 100%;
	}
	.opto-pwa-help-head {
		grid-template-columns: 46px minmax(0,1fr);
		padding-right: 42px;
	}
	.opto-pwa-help-head h2 {
		font-size: 26px;
	}
	.opto-pwa-help-head p {
		font-size: 14px;
	}
	.opto-pwa-help-columns {
		grid-template-columns: 1fr;
	}
}
@media (max-width: 380px) {
	.opto-pwa-install-card-v1643 {
		padding-left: 10px;
		padding-right: 10px;
	}
	.opto-pwa-install-card-v1643 .opto-pwa-install-guide {
		padding: 12px;
	}
	.opto-pwa-step-card {
		grid-template-columns: 30px 30px minmax(0,1fr);
		gap: 7px;
	}
	.opto-pwa-step-number,
	.opto-pwa-step-icon {
		height: 30px;
		width: 30px;
	}
	.opto-pwa-install-card-v1643 .opto-pwa-install-actions {
		grid-template-columns: 1fr;
	}
}


/* v1.6.4.4 — corrección PWA móvil, textos y fallback Android */
.opto-pwa-install-card-v1643,
.opto-pwa-help-panel,
.opto-pwa-install-guide,
.opto-pwa-help-content,
.opto-pwa-help-section,
.opto-pwa-step-grid,
.opto-pwa-step-card,
.opto-pwa-step-copy {
	box-sizing: border-box !important;
	max-width: 100% !important;
	min-width: 0 !important;
}
.opto-pwa-install-guide,
.opto-pwa-help-content,
.opto-pwa-help-section,
.opto-pwa-step-grid {
	width: 100% !important;
}
.opto-pwa-step-grid,
.opto-pwa-help-columns .opto-pwa-step-grid {
	display: grid !important;
	gap: 12px !important;
	grid-template-columns: 1fr !important;
}
.opto-pwa-step-card,
.opto-pwa-help-columns .opto-pwa-step-card {
	align-items: flex-start !important;
	display: grid !important;
	gap: 12px !important;
	grid-template-columns: 42px minmax(0,1fr) !important;
	padding: 14px !important;
	width: 100% !important;
}
.opto-pwa-step-icon,
.opto-pwa-help-columns .opto-pwa-step-icon {
	display: none !important;
}
.opto-pwa-step-number {
	grid-column: 1 !important;
	grid-row: 1 !important;
}
.opto-pwa-step-copy,
.opto-pwa-step-card > div:last-child,
.opto-pwa-help-columns .opto-pwa-step-card > div:last-child {
	grid-column: 2 !important;
	grid-row: 1 !important;
	min-width: 0 !important;
	width: 100% !important;
}
.opto-pwa-step-card strong,
.opto-pwa-step-card span,
.opto-pwa-install-guide-title,
.opto-pwa-install-note,
.opto-pwa-help-section p {
	display: block !important;
	max-width: 100% !important;
	min-width: 0 !important;
	overflow-wrap: break-word !important;
	text-align: left !important;
	white-space: normal !important;
	word-break: normal !important;
}
.opto-pwa-install-note-warning {
	background: #fff7ed !important;
	border-color: #fed7aa !important;
	color: #7c2d12 !important;
}
@media (min-width: 783px) {
	.opto-pwa-install-card-v1643 .opto-pwa-step-grid {
		grid-template-columns: repeat(3,minmax(0,1fr)) !important;
	}
}
@media (max-width: 782px) {
	.opto-pwa-install-card-v1643 {
		width: 100% !important;
		max-width: 100vw !important;
	}
	.opto-pwa-install-card-v1643 .opto-pwa-install-guide {
		overflow-x: hidden !important;
	}
	.opto-pwa-install-card-v1643 .opto-pwa-install-actions {
		grid-template-columns: 1fr !important;
	}
	.opto-pwa-install-card-v1643 .opto-pwa-install-actions button {
		width: 100% !important;
	}
}
@media (max-width: 420px) {
	.opto-pwa-step-card,
	.opto-pwa-help-columns .opto-pwa-step-card {
		grid-template-columns: 38px minmax(0,1fr) !important;
		padding: 13px !important;
	}
	.opto-pwa-step-number {
		height: 34px !important;
		width: 34px !important;
	}
	.opto-pwa-step-card strong {
		font-size: 15px !important;
	}
	.opto-pwa-step-card span {
		font-size: 13px !important;
		line-height: 1.5 !important;
	}
}

/* v1.6.4.5 — Sesión persistente segura del paciente */
.opto-patient-portal .opto-patient-session-hint{
	margin:-6px 0 6px!important;
	font-size:13px!important;
	line-height:1.5!important;
	color:#5b6f82!important;
}
.opto-patient-logout-all-v1645{
	background:#fff5f5!important;
	border-color:#ffd5d5!important;
	color:#9b1c1c!important;
	font-weight:800!important;
}


/* v1.6.4.6 — Botón inteligente de instalación PWA */
.opto-pwa-install-card-v1646 .opto-pwa-step-card,
.opto-pwa-help-panel .opto-pwa-step-card,
.opto-pwa-help-columns .opto-pwa-step-card{
	align-items:flex-start!important;
	display:grid!important;
	grid-template-columns:42px minmax(0,1fr)!important;
	gap:12px!important;
	max-width:100%!important;
	min-width:0!important;
	width:100%!important;
}
.opto-pwa-install-card-v1646 .opto-pwa-step-icon,
.opto-pwa-help-panel .opto-pwa-step-icon{
	display:none!important;
}
.opto-pwa-install-card-v1646 .opto-pwa-step-copy,
.opto-pwa-help-panel .opto-pwa-step-copy{
	display:block!important;
	grid-column:2!important;
	min-width:0!important;
	width:100%!important;
}
.opto-pwa-install-card-v1646 .opto-pwa-step-copy strong,
.opto-pwa-install-card-v1646 .opto-pwa-step-copy span,
.opto-pwa-help-panel .opto-pwa-step-copy strong,
.opto-pwa-help-panel .opto-pwa-step-copy span{
	display:block!important;
	max-width:100%!important;
	min-width:0!important;
	overflow-wrap:normal!important;
	text-align:left!important;
	white-space:normal!important;
	word-break:normal!important;
}
.opto-pwa-install-card-v1646 .opto-pwa-step-copy strong,
.opto-pwa-help-panel .opto-pwa-step-copy strong{
	font-size:15px!important;
	line-height:1.25!important;
	margin:0 0 5px!important;
}
.opto-pwa-install-card-v1646 .opto-pwa-step-copy span,
.opto-pwa-help-panel .opto-pwa-step-copy span{
	font-size:13px!important;
	font-weight:650!important;
	line-height:1.5!important;
}
.opto-pwa-install-note-info{
	background:#effafe!important;
	border-color:#bee8f2!important;
	color:#0b5773!important;
}
.opto-pwa-install-card-v1646 .opto-pwa-install-actions{
	align-items:stretch!important;
}
.opto-pwa-install-card-v1646 .opto-pwa-install-btn[data-opto-pwa-install-mode="ios-help"],
.opto-pwa-install-card-v1646 .opto-pwa-install-btn[data-opto-pwa-install-mode="android-help"],
.opto-pwa-install-card-v1646 .opto-pwa-install-btn[data-opto-pwa-install-mode="help"]{
	background:#0ea5b7!important;
	border-color:#0ea5b7!important;
	color:#fff!important;
}
.opto-pwa-install-card-v1646 .opto-pwa-install-btn:disabled{
	opacity:.72!important;
	cursor:wait!important;
}
@media (max-width:782px){
	.opto-pwa-install-card-v1646{
		width:100%!important;
		max-width:100vw!important;
		overflow-x:hidden!important;
	}
	.opto-pwa-install-card-v1646 .opto-pwa-install-guide,
	.opto-pwa-help-panel .opto-pwa-install-guide{
		overflow-x:hidden!important;
	}
	.opto-pwa-install-card-v1646 .opto-pwa-step-card,
	.opto-pwa-help-panel .opto-pwa-step-card,
	.opto-pwa-help-columns .opto-pwa-step-card{
		grid-template-columns:38px minmax(0,1fr)!important;
		padding:13px!important;
	}
	.opto-pwa-install-card-v1646 .opto-pwa-install-actions{
		grid-template-columns:1fr!important;
	}
	.opto-pwa-install-card-v1646 .opto-pwa-install-actions button{
		width:100%!important;
	}
}

/* v1.6.4.7 — botón inteligente y control del aviso PWA */
.opto-pwa-install-card-v1647 .opto-pwa-noshow-btn{
	display:none !important;
}
.opto-pwa-manual-install-launcher{
	appearance:none!important;
	background:linear-gradient(135deg,#0ea5b7,#4b83a6)!important;
	border:0!important;
	border-radius:999px!important;
	bottom:calc(18px + env(safe-area-inset-bottom,0px))!important;
	box-shadow:0 16px 36px rgba(15,23,42,.2)!important;
	color:#fff!important;
	cursor:pointer!important;
	font:800 14px/1.2 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
	left:50%!important;
	max-width:calc(100vw - 32px)!important;
	min-height:48px!important;
	padding:0 22px!important;
	position:fixed!important;
	text-align:center!important;
	transform:translateX(-50%)!important;
	white-space:nowrap!important;
	z-index:99998!important;
}
.opto-pwa-manual-install-launcher[hidden]{
	display:none!important;
}
.opto-pwa-manual-install-launcher:hover,
.opto-pwa-manual-install-launcher:focus{
	filter:brightness(.98)!important;
	outline:3px solid rgba(14,165,183,.22)!important;
	outline-offset:3px!important;
}
.opto-pwa-manual-install-launcher.is-installed,
.opto-pwa-manual-install-launcher:disabled{
	background:#dbe8ef!important;
	box-shadow:none!important;
	color:#516274!important;
	cursor:not-allowed!important;
}
.opto-pwa-install-card:not([hidden]) ~ .opto-pwa-manual-install-launcher{
	display:none!important;
}
.opto-pwa-toast{
	background:#0b1f3a!important;
	border:1px solid rgba(255,255,255,.12)!important;
	border-radius:18px!important;
	bottom:calc(78px + env(safe-area-inset-bottom,0px))!important;
	box-shadow:0 18px 44px rgba(15,23,42,.24)!important;
	box-sizing:border-box!important;
	color:#fff!important;
	font:800 14px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
	left:50%!important;
	max-width:min(520px,calc(100vw - 32px))!important;
	padding:14px 18px!important;
	position:fixed!important;
	text-align:center!important;
	transform:translateX(-50%)!important;
	z-index:100000!important;
}
.opto-pwa-toast[hidden]{
	display:none!important;
}
@media (max-width:640px){
	.opto-pwa-manual-install-launcher{
		bottom:calc(14px + env(safe-area-inset-bottom,0px))!important;
		font-size:13px!important;
		min-height:46px!important;
		padding:0 18px!important;
	}
	.opto-pwa-toast{
		bottom:calc(70px + env(safe-area-inset-bottom,0px))!important;
		font-size:13px!important;
	}
}
@media (display-mode: standalone){
	.opto-pwa-manual-install-launcher,
	.opto-pwa-toast{
		display:none!important;
	}
}


/* v1.6.4.9 — Correcciones responsive del lateral/logo en Zona pacientes */
.opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a,
.opto-patient-portal-v15812 .opto-patient-mobile-more-v15811 summary,
.opto-patient-portal-v15812 .opto-patient-sidebar-actions-v15810 > *,
.opto-patient-portal-v15812 .opto-patient-sidebar-logout-form,
.opto-patient-portal-v15812 .opto-patient-mobile-more-v15811{
	position:relative !important;
}

.opto-patient-portal-v15812 .opto-patient-nav-badge{
	z-index:3 !important;
}

@media (min-width:768px) and (max-width:1366px){
	body .opto-patient-portal-v15812,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812{
		grid-template-columns:92px minmax(0,1fr) !important;
	}
	.opto-patient-portal-v15812>.opto-patient-brand-strip,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-brand-strip{
		padding:14px 10px 0 !important;
		top:12px !important;
		width:92px !important;
	}
	.opto-patient-portal-v15812>.opto-patient-brand-strip .opto-brand-logo,
	.opto-patient-portal-v15812>.opto-patient-brand-strip img{
		max-width:64px !important;
		padding:8px !important;
		width:64px !important;
	}
	.opto-patient-portal-v15812>.opto-patient-brand-strip .opto-ds-version-pill{
		max-width:72px !important;
	}
	.opto-patient-portal-v15812>.opto-patient-app-sidebar-v158,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158{
		padding:128px 8px 16px !important;
		top:12px !important;
		width:92px !important;
	}
	.opto-patient-portal-v15812 .opto-patient-nav-badge{
		position:absolute !important;
		right:4px !important;
		top:4px !important;
	}
}

@media (min-width:768px){
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-brand-strip,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158{
		position:fixed !important;
	}
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-brand-strip{
		left:12px !important;
	}
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158{
		left:12px !important;
	}
}

/* v1.6.5 — Notificaciones push fase 1 */
.opto-push-patient-card{
	align-items:center!important;
	background:linear-gradient(135deg,#f0fdff,#ffffff)!important;
	border:1px solid #c9eef4!important;
	border-radius:22px!important;
	box-shadow:0 14px 32px rgba(15,23,42,.06)!important;
	display:grid!important;
	gap:14px!important;
	grid-template-columns:auto minmax(0,1fr) auto!important;
	margin:0 0 18px!important;
	padding:16px!important;
}
.opto-push-patient-icon{
	align-items:center!important;
	background:#e6fbfc!important;
	border-radius:18px!important;
	display:flex!important;
	font-size:24px!important;
	height:54px!important;
	justify-content:center!important;
	width:54px!important;
}
.opto-push-patient-main strong{
	color:#0b1f3a!important;
	display:block!important;
	font-size:1rem!important;
	font-weight:900!important;
	margin:0 0 4px!important;
}
.opto-push-patient-main p{
	color:#334155!important;
	font-size:.95rem!important;
	line-height:1.45!important;
	margin:0 0 4px!important;
}
.opto-push-patient-main small{
	color:#64748b!important;
	display:block!important;
	font-size:.82rem!important;
	line-height:1.4!important;
}
.opto-push-patient-actions{
	display:flex!important;
	flex-wrap:wrap!important;
	gap:8px!important;
	justify-content:flex-end!important;
}
.opto-push-patient-card[data-push-status="subscribed"]{
	border-color:#8ee6d1!important;
}
.opto-push-patient-card[data-push-status="denied"],
.opto-push-patient-card[data-push-status="unsupported"]{
	background:#fff7ed!important;
	border-color:#fed7aa!important;
}
@media(max-width:720px){
	.opto-push-patient-card{
		grid-template-columns:1fr!important;
		padding:14px!important;
		text-align:left!important;
	}
	.opto-push-patient-actions{
		justify-content:stretch!important;
	}
	.opto-push-patient-actions button{
		width:100%!important;
	}
}

/* v1.6.5.5 — Preferencias push del paciente */
.opto-push-patient-card-v1655{
	align-items:flex-start!important;
	grid-template-columns:auto minmax(0,1fr) auto!important;
}
.opto-push-preferences-v1655{
	border-top:1px solid rgba(14,165,168,.18)!important;
	display:grid!important;
	gap:14px!important;
	grid-column:1/-1!important;
	margin-top:16px!important;
	padding-top:16px!important;
}
.opto-push-preferences-v1655 h4{
	color:#0b1f3a!important;
	font-size:1.05rem!important;
	font-weight:900!important;
	margin:0!important;
}
.opto-push-preferences-v1655 label,
.opto-push-preferences-v1655 legend{
	color:#334155!important;
	font-size:.94rem!important;
	font-weight:800!important;
	line-height:1.35!important;
}
.opto-push-preferences-v1655 fieldset{
	border:1px solid rgba(14,165,168,.18)!important;
	border-radius:18px!important;
	margin:0!important;
	padding:12px!important;
}
.opto-push-preference-grid-v1655{
	display:grid!important;
	gap:10px 14px!important;
	grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
.opto-push-preference-grid-settings-v1655{
	grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
.opto-push-preferences-v1655 input[type="time"],
.opto-push-preferences-v1655 input[type="number"],
.opto-push-preferences-v1655 select{
	border:1px solid #cfe0e7!important;
	border-radius:12px!important;
	min-height:42px!important;
	padding:8px 10px!important;
	width:100%!important;
}
.opto-push-preferences-status-v1655{
	color:#0f766e!important;
	font-size:.9rem!important;
	font-weight:900!important;
}
@media(max-width:700px){
	.opto-push-patient-card-v1655{
		grid-template-columns:1fr!important;
	}
	.opto-push-preference-grid-v1655,
	.opto-push-preference-grid-settings-v1655{
		grid-template-columns:1fr!important;
	}
}


/* v1.6.5.7 — Ajustes de notificaciones en sección propia */
.opto-patient-settings-v1657 .opto-push-settings-card-v1657{
	background:linear-gradient(135deg,#f2ffff,#ffffff)!important;
	border:1px solid #a9e8e8!important;
	border-radius:24px!important;
	box-shadow:0 18px 42px rgba(15,23,42,.05)!important;
	padding:22px!important;
}
.opto-patient-settings-v1657 .opto-push-settings-head-v1657{
	align-items:center!important;
	display:flex!important;
	gap:14px!important;
	margin-bottom:18px!important;
}
.opto-patient-settings-v1657 .opto-push-settings-head-v1657>span{
	align-items:center!important;
	background:#e9fbfc!important;
	border-radius:18px!important;
	display:flex!important;
	font-size:24px!important;
	height:54px!important;
	justify-content:center!important;
	width:54px!important;
}
.opto-patient-settings-v1657 .opto-push-settings-head-v1657 strong{
	display:block!important;
	font-size:1.15rem!important;
	font-weight:900!important;
	color:#0b1f3a!important;
}
.opto-patient-settings-v1657 .opto-push-settings-head-v1657 small{
	color:#516274!important;
	display:block!important;
	line-height:1.45!important;
}
.opto-patient-settings-v1657 .opto-push-preferences-v1655{
	border-top:1px solid #d7edf2!important;
	margin-top:14px!important;
	padding-top:18px!important;
}

/* v1.6.5.8 — Gestión de avisos del paciente */
.opto-patient-notification-head-actions-v1582{
	align-items:center;
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	justify-content:flex-end;
}
.opto-patient-notification-bulk-form-v1658{
	align-items:center;
	background:#f8fbfd;
	border:1px solid #dbeaf0;
	border-radius:18px;
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	margin:0 0 14px;
	padding:12px 14px;
}
.opto-patient-notifications-list-v1658 .opto-patient-notification-card{
	grid-template-columns:auto minmax(0,1fr) auto;
}
.opto-patient-notification-select-v1658{
	align-items:flex-start;
	display:flex;
	padding-top:6px;
}
.opto-patient-notification-select-v1658 input{
	accent-color:#0ea5a8;
	height:18px;
	width:18px;
}
.opto-patient-notification-delete-one-v1658,
.opto-patient-notification-delete-all-v1658{
	background:#fff5f5!important;
	border:1px solid #fecaca!important;
	border-radius:14px!important;
	color:#b91c1c!important;
	font-weight:900!important;
	min-height:38px!important;
	padding:8px 13px!important;
}
.opto-patient-notification-delete-read-v1658,
.opto-patient-notification-delete-selected-v1658{
	min-height:38px!important;
}
@media(max-width:700px){
	.opto-patient-notification-head-actions-v1582,
	.opto-patient-notification-bulk-form-v1658{
		align-items:stretch;
		flex-direction:column;
	}
	.opto-patient-notifications-list-v1658 .opto-patient-notification-card{
		grid-template-columns:1fr;
	}
	.opto-patient-notification-select-v1658{
		padding-top:0;
	}
}


/* v1.6.5.10 — Organización visual del listado de avisos en Zona pacientes */
.opto-patient-notifications-list-v1658{
	display:grid!important;
	gap:12px!important;
}
.opto-patient-notifications-list-v1658 .opto-patient-notification-card{
	align-items:center!important;
	display:grid!important;
	gap:18px!important;
	grid-template-columns:34px minmax(0,1fr) minmax(260px,auto)!important;
	padding:18px 20px!important;
}
.opto-patient-notifications-list-v1658 .opto-patient-notification-card.is-unread{
	box-shadow:inset 4px 0 0 #0ea5a8, 0 10px 28px rgba(15,23,42,.035)!important;
}
.opto-patient-notification-select-v1658{
	align-items:center!important;
	align-self:stretch!important;
	display:flex!important;
	justify-content:center!important;
	padding:0!important;
}
.opto-patient-notification-select-v1658 input{
	cursor:pointer!important;
	height:18px!important;
	margin:0!important;
	width:18px!important;
}
.opto-patient-notification-main{
	min-width:0!important;
	padding:0!important;
}
.opto-patient-notification-main h4{
	line-height:1.25!important;
	margin:0 0 6px!important;
}
.opto-patient-notification-main p{
	line-height:1.45!important;
	margin:0 0 8px!important;
}
.opto-patient-notification-actions{
	align-items:center!important;
	display:flex!important;
	flex-wrap:nowrap!important;
	gap:8px!important;
	justify-content:flex-end!important;
	min-width:260px!important;
}
.opto-patient-notification-actions a,
.opto-patient-notification-actions button{
	margin:0!important;
	white-space:nowrap!important;
}
.opto-patient-notification-actions form{
	display:inline-flex!important;
	margin:0!important;
}
.opto-patient-notification-bulk-form-v1658{
	align-items:center!important;
	justify-content:flex-start!important;
}
@media(max-width:960px){
	.opto-patient-notifications-list-v1658 .opto-patient-notification-card{
		align-items:start!important;
		grid-template-columns:32px minmax(0,1fr)!important;
	}
	.opto-patient-notification-actions{
		grid-column:2!important;
		justify-content:flex-start!important;
		min-width:0!important;
	}
}
@media(max-width:640px){
	.opto-patient-notifications-list-v1658 .opto-patient-notification-card{
		gap:12px!important;
		grid-template-columns:28px minmax(0,1fr)!important;
		padding:16px!important;
	}
	.opto-patient-notification-actions{
		display:grid!important;
		grid-template-columns:1fr!important;
		width:100%!important;
	}
	.opto-patient-notification-actions a,
	.opto-patient-notification-actions button,
	.opto-patient-notification-actions form{
		justify-content:center!important;
		width:100%!important;
	}
}

/* v1.6.6 — Offline básico real */
.opto-pwa-network-status,
.opto-pwa-pending-results{
	align-items:center!important;
	background:#0b1f3a!important;
	border:1px solid rgba(255,255,255,.14)!important;
	border-radius:18px!important;
	bottom:calc(82px + env(safe-area-inset-bottom,0px))!important;
	box-shadow:0 18px 44px rgba(15,23,42,.24)!important;
	box-sizing:border-box!important;
	color:#fff!important;
	display:flex!important;
	font:800 14px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
	gap:12px!important;
	left:50%!important;
	max-width:min(640px,calc(100vw - 32px))!important;
	padding:14px 18px!important;
	position:fixed!important;
	text-align:left!important;
	transform:translateX(-50%)!important;
	z-index:100000!important;
}
.opto-pwa-network-status[hidden],
.opto-pwa-pending-results[hidden]{display:none!important;}
.opto-pwa-network-status.is-offline{background:#7f1d1d!important;}
.opto-pwa-network-status.is-online{background:#065f46!important;}
.opto-pwa-pending-results{
	bottom:calc(140px + env(safe-area-inset-bottom,0px))!important;
	background:#fff7ed!important;
	border-color:#fed7aa!important;
	color:#7c2d12!important;
}
.opto-pwa-pending-results button{
	background:#0ea5b7!important;
	border:0!important;
	border-radius:12px!important;
	color:#fff!important;
	cursor:pointer!important;
	font-weight:900!important;
	min-height:36px!important;
	padding:0 14px!important;
	white-space:nowrap!important;
}
.opto-save-results.is-disabled{opacity:.7!important;cursor:not-allowed!important;}
@media(max-width:640px){
	.opto-pwa-network-status,
	.opto-pwa-pending-results{
		align-items:flex-start!important;
		bottom:calc(76px + env(safe-area-inset-bottom,0px))!important;
		flex-direction:column!important;
		font-size:13px!important;
	}
	.opto-pwa-pending-results{bottom:calc(146px + env(safe-area-inset-bottom,0px))!important;}
	.opto-pwa-pending-results button{width:100%!important;}
}

/* v1.6.6.3 — Preferencias de Zona pacientes mejor organizadas */
.opto-patient-settings-v1657 .opto-push-settings-card-v1657{
	background:linear-gradient(135deg,#f4feff 0%,#ffffff 82%)!important;
	border:1px solid #bde7ef!important;
	border-radius:24px!important;
	padding:22px!important;
}
.opto-patient-settings-v1657 .opto-push-preferences-v1655{
	display:block!important;
}
.opto-patient-settings-v1657 .opto-push-preferences-v1655 h4{
	margin:0 0 14px!important;
}
.opto-patient-settings-v1657 .opto-push-preferences-v1655 label{
	align-items:center!important;
	background:#ffffff!important;
	border:1px solid #dbeaf0!important;
	border-radius:16px!important;
	display:flex!important;
	gap:12px!important;
	justify-content:flex-start!important;
	min-height:46px!important;
	padding:12px 14px!important;
}
.opto-patient-settings-v1657 .opto-push-preferences-v1655 input[type="checkbox"]{
	appearance:auto!important;
	-webkit-appearance:checkbox!important;
	background:#fff!important;
	border:1px solid #8ca3af!important;
	box-shadow:none!important;
	flex:0 0 17px!important;
	height:17px!important;
	margin:0!important;
	min-height:17px!important;
	min-width:17px!important;
	padding:0!important;
	position:static!important;
	width:17px!important;
}
.opto-patient-settings-v1657 .opto-push-preference-grid-v1655{
	display:grid!important;
	gap:12px!important;
	grid-template-columns:repeat(2,minmax(0,1fr))!important;
	margin:10px 0!important;
}
.opto-patient-settings-v1657 .opto-push-preference-grid-settings-v1655{
	grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
.opto-patient-settings-v1657 .opto-push-preference-grid-settings-v1655 label{
	display:block!important;
}
.opto-patient-settings-v1657 .opto-push-preference-grid-settings-v1655 label input[type="checkbox"]{
	margin:8px 8px 0 0!important;
}
.opto-patient-settings-v1657 .opto-push-preferences-v1655 fieldset{
	background:rgba(255,255,255,.62)!important;
	border:1px solid #d7edf2!important;
	border-radius:22px!important;
	margin:16px 0!important;
	padding:16px!important;
}
.opto-patient-settings-v1657 .opto-push-preferences-v1655 legend{
	background:#f4feff!important;
	border-radius:999px!important;
	color:#0b6b7c!important;
	font-size:.78rem!important;
	letter-spacing:.08em!important;
	padding:4px 10px!important;
	text-transform:uppercase!important;
}
.opto-patient-settings-v1657 .opto-push-preferences-v1655 .opto-soft-button{
	margin-top:10px!important;
	min-height:46px!important;
	width:100%!important;
}
.opto-push-preferences-status-v1655{display:block!important;margin-top:10px!important;text-align:center!important;}
@media(max-width:760px){
	.opto-patient-settings-v1657 .opto-push-preference-grid-v1655,
	.opto-patient-settings-v1657 .opto-push-preference-grid-settings-v1655{grid-template-columns:1fr!important;}
}

/* v1.6.6.4 — Ajustes Zona pacientes: preferencias, menú móvil y PWA offline */
.opto-patient-settings-v1657 .opto-push-preferences-v1655{
	display:grid!important;
	gap:16px!important;
}
.opto-patient-settings-v1657 .opto-push-preferences-v1655>label,
.opto-patient-settings-v1657 .opto-push-preference-grid-v1655 label,
.opto-patient-settings-v1657 .opto-push-preference-grid-settings-v1655 label{
	align-items:flex-start!important;
	background:#fff!important;
	border:1px solid #dbeaf0!important;
	border-radius:16px!important;
	display:flex!important;
	gap:12px!important;
	line-height:1.35!important;
	margin:0!important;
	min-height:52px!important;
	padding:12px 14px!important;
	position:relative!important;
}
.opto-patient-settings-v1657 .opto-push-preferences-v1655 input[type="checkbox"]{
	appearance:auto!important;
	-webkit-appearance:checkbox!important;
	background:#fff!important;
	border:1px solid #8fa4b5!important;
	border-radius:3px!important;
	box-shadow:none!important;
	display:inline-block!important;
	flex:0 0 17px!important;
	height:17px!important;
	margin:1px 0 0!important;
	min-height:17px!important;
	min-width:17px!important;
	padding:0!important;
	position:static!important;
	vertical-align:top!important;
	width:17px!important;
}
.opto-patient-settings-v1657 .opto-push-preference-grid-v1655,
.opto-patient-settings-v1657 .opto-push-preference-grid-settings-v1655{
	display:grid!important;
	grid-template-columns:repeat(auto-fit,minmax(260px,1fr))!important;
	gap:12px!important;
}
.opto-patient-settings-v1657 .opto-push-preference-grid-settings-v1655 label:has(input[type="time"]),
.opto-patient-settings-v1657 .opto-push-preference-grid-settings-v1655 label:has(input[type="number"]),
.opto-patient-settings-v1657 .opto-push-preference-grid-settings-v1655 label:has(select){
	display:block!important;
}
.opto-patient-settings-v1657 .opto-push-preference-grid-settings-v1655 input[type="time"],
.opto-patient-settings-v1657 .opto-push-preference-grid-settings-v1655 input[type="number"],
.opto-patient-settings-v1657 .opto-push-preference-grid-settings-v1655 select{
	margin-top:8px!important;
	width:100%!important;
}
.opto-patient-settings-v1657 fieldset{
	border:1px solid #cfe4ea!important;
	border-radius:18px!important;
	padding:14px!important;
}
.opto-patient-settings-v1657 legend{
	font-weight:900!important;
	padding:0 10px!important;
	color:#0b3f55!important;
}
.opto-patient-settings-v1657 .opto-push-preferences-status-v1655{
	display:inline-flex!important;
	font-weight:800!important;
	margin-left:10px!important;
	color:#087f84!important;
}
@media (max-width: 760px){
	.opto-patient-settings-v1657 .opto-push-preference-grid-v1655,
	.opto-patient-settings-v1657 .opto-push-preference-grid-settings-v1655{
		grid-template-columns:1fr!important;
	}
}
.opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812{
	max-height:min(72vh,560px)!important;
	overflow-y:auto!important;
	overscroll-behavior:contain!important;
}
.opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812 a[href*="opto_section=avisos"],
.opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812 a[href*="opto_section=ajustes"],
.opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812 a[href*="opto_section=ayuda"]{
	display:flex!important;
	visibility:visible!important;
}

/* v1.6.6.5 — Ajustes PWA móvil y rediseño Mi programa */
.opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812{
	display:grid!important;
	grid-auto-rows:auto!important;
	gap:10px!important;
	max-height:min(78vh,620px)!important;
	overflow-y:auto!important;
	padding:14px!important;
}
.opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812 a,
.opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812 button,
.opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812 form{
	display:block!important;
	visibility:visible!important;
}
.opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812 a[href*="opto_section=avisos"]::before{content:"🔔 ";}
.opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812 a[href*="opto_section=ajustes"]::before{content:"⚙ ";}
.opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812 a[href*="opto_section=ayuda"]::before{content:"? ";}

.opto-patient-settings-v1657 .opto-push-preferences-v1655,
.opto-patient-settings-v1657 .opto-push-preferences-v1655 *{
	box-sizing:border-box!important;
}
.opto-patient-settings-v1657 .opto-push-preference-grid-settings-v1655{
	align-items:stretch!important;
	grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important;
}
.opto-patient-settings-v1657 .opto-push-pref-switch-v1665{
	align-items:center!important;
	display:grid!important;
	gap:12px!important;
	grid-template-columns:22px minmax(0,1fr)!important;
	line-height:1.35!important;
}
.opto-patient-settings-v1657 .opto-push-pref-switch-v1665 input[type="checkbox"]{
	justify-self:center!important;
	margin:0!important;
}
.opto-patient-settings-v1657 .opto-push-pref-switch-reverse-v1665{
	grid-template-columns:minmax(0,1fr) 22px!important;
}
.opto-patient-settings-v1657 .opto-push-pref-switch-reverse-v1665 input[type="checkbox"]{
	grid-column:2!important;
	grid-row:1!important;
}
.opto-patient-settings-v1657 .opto-push-pref-field-v1665{
	display:grid!important;
	gap:10px!important;
	line-height:1.25!important;
	padding:14px 16px!important;
}
.opto-patient-settings-v1657 .opto-push-pref-field-v1665 br{
	display:none!important;
}
.opto-patient-settings-v1657 .opto-push-pref-field-v1665 input,
.opto-patient-settings-v1657 .opto-push-pref-field-v1665 select{
	box-sizing:border-box!important;
	display:block!important;
	font-size:16px!important;
	margin:0!important;
	max-width:100%!important;
	min-height:46px!important;
	width:100%!important;
}
@media(max-width:700px){
	.opto-patient-settings-v1657 .opto-push-settings-card-v1657{
		padding:16px!important;
	}
	.opto-patient-settings-v1657 .opto-push-preference-grid-v1655,
	.opto-patient-settings-v1657 .opto-push-preference-grid-settings-v1655{
		grid-template-columns:1fr!important;
	}
	.opto-patient-settings-v1657 .opto-push-pref-switch-v1665,
	.opto-patient-settings-v1657 .opto-push-pref-field-v1665{
		border-radius:18px!important;
		min-height:58px!important;
		padding:14px 16px!important;
	}
}

/* Mi programa: columna lateral + ejercicio principal en escritorio, tarjetas por fila en móvil */
.opto-patient-portal-v158 .opto-patient-program-grid-v156,
.opto-patient-portal-v1581 .opto-patient-program-grid-v156,
.opto-patient-portal-v1584 .opto-patient-program-grid-v156,
.opto-patient-portal-v1585 .opto-patient-program-grid-v156,
.opto-patient-program-grid-v156{
	align-items:start!important;
	display:grid!important;
	gap:18px!important;
	grid-template-areas:
		"today selected"
		"chat selected"!important;
	grid-template-columns:minmax(300px,.42fr) minmax(0,1fr)!important;
}
.opto-patient-today-list-v156{grid-area:today!important;}
.opto-patient-selected-exercise-v156{grid-area:selected!important;}
.opto-patient-program-chat-v156{grid-area:chat!important;}
.opto-patient-selected-exercise-v156{
	min-width:0!important;
}
.opto-patient-today-list-v156,
.opto-patient-program-chat-v156{
	min-width:0!important;
}
.opto-patient-program-chat-v156{
	grid-column:auto!important;
}
.opto-patient-selected-body-v156{
	grid-template-columns:minmax(230px,.72fr) minmax(0,1fr)!important;
}
@media(max-width:980px){
	.opto-patient-portal-v158 .opto-patient-program-grid-v156,
	.opto-patient-portal-v1581 .opto-patient-program-grid-v156,
	.opto-patient-portal-v1584 .opto-patient-program-grid-v156,
	.opto-patient-portal-v1585 .opto-patient-program-grid-v156,
	.opto-patient-program-grid-v156{
		grid-template-areas:
			"today"
			"selected"
			"chat"!important;
		grid-template-columns:1fr!important;
	}
	.opto-patient-selected-body-v156{
		grid-template-columns:1fr!important;
	}
}
@media(max-width:640px){
	.opto-patient-program-head-v156,
	.opto-patient-week-strip-v156,
	.opto-patient-program-grid-v156{
		gap:12px!important;
	}
	.opto-patient-today-list-v156,
	.opto-patient-selected-exercise-v156,
	.opto-patient-program-chat-v156{
		border-radius:22px!important;
		padding:16px!important;
	}
	.opto-patient-selected-exercise-v156{padding:0!important;}
	.opto-patient-selected-head-v156,
	.opto-patient-selected-body-v156,
	.opto-patient-quick-comment-v156{
		padding:16px!important;
	}
	.opto-patient-selected-actions-v156{
		padding:0 16px 16px!important;
	}
	.opto-patient-selected-visual-v156{
		height:190px!important;
		min-height:170px!important;
	}
}

/* v1.6.6.6 — Sincronización segura y menú Más compacto */
.opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812 a::before,
.opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812 button::before{
	content:""!important;
	display:none!important;
}
.opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812{
	gap:8px!important;
	max-height:min(72vh,540px)!important;
	padding:12px!important;
}
.opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812 a,
.opto-patient-portal-v15812 .opto-patient-mobile-more-action-v15812{
	align-items:center!important;
	display:flex!important;
	justify-content:center!important;
	min-height:50px!important;
	padding:10px 14px!important;
	text-align:center!important;
}
.opto-pwa-pending-results[data-opto-pwa-sync-status="guardado_localmente"]{
	background:#eefdf7!important;
	border-color:#a7f3d0!important;
	color:#065f46!important;
}
.opto-pwa-pending-results[data-opto-pwa-sync-status="pendiente_sincronizar"]{
	background:#eff6ff!important;
	border-color:#bfdbfe!important;
	color:#1e3a8a!important;
}
.opto-pwa-pending-results[data-opto-pwa-sync-status="error_sincronizacion"]{
	background:#fef2f2!important;
	border-color:#fecaca!important;
	color:#991b1b!important;
}
.opto-save-results[data-opto-sync-status="guardado_localmente"]{
	background:#ecfdf5!important;
	border-color:#86efac!important;
	color:#065f46!important;
}


/* v1.6.7 — Modo móvil avanzado de Zona pacientes */
.opto-patient-portal,
.opto-patient-portal *{
	-webkit-tap-highlight-color:rgba(14,165,168,.16);
	touch-action:manipulation;
}
body.opto-pwa-standalone .site-header,
body.opto-pwa-standalone .site-footer,
body.opto-pwa-standalone .elementor-location-header,
body.opto-pwa-standalone .elementor-location-footer,
body.opto-pwa-standalone header.site-header,
body.opto-pwa-standalone footer.site-footer{
	display:none!important;
}
body.opto-pwa-standalone .opto-patient-portal-v15812,
body.opto-patient-fullscreen-active .opto-patient-portal-v15812{
	min-height:100dvh!important;
}
body.opto-pwa-standalone,
body.opto-patient-fullscreen-active{
	overscroll-behavior-y:none!important;
}

@media(max-width:782px){
	body.opto-patient-mobile-compact-v167{
		background:#eef6fa!important;
	}
	.opto-patient-portal-v15812{
		padding-bottom:calc(104px + env(safe-area-inset-bottom,0px))!important;
	}
	.opto-patient-portal-v15812>.opto-patient-hero-v1582,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-hero-v1582{
		border-radius:26px!important;
		margin:8px 12px 14px!important;
		padding:22px 22px!important;
		position:sticky!important;
		top:calc(4px + env(safe-area-inset-top,0px))!important;
		z-index:22!important;
		box-shadow:0 14px 34px rgba(15,23,42,.10)!important;
	}
	.opto-patient-portal-v15812>.opto-patient-hero-v1582 .opto-patient-kicker{
		font-size:11px!important;
		letter-spacing:.22em!important;
		margin-bottom:8px!important;
	}
	.opto-patient-portal-v15812>.opto-patient-hero-v1582 h2{
		font-size:clamp(30px,9vw,44px)!important;
		line-height:.98!important;
		margin:0 0 10px!important;
	}
	.opto-patient-portal-v15812>.opto-patient-hero-v1582 p:not(.opto-patient-kicker){
		font-size:17px!important;
		line-height:1.35!important;
	}
	.opto-patient-bottom-nav-v15812{
		align-items:center!important;
		backdrop-filter:blur(16px)!important;
		-webkit-backdrop-filter:blur(16px)!important;
		background:rgba(8,35,59,.96)!important;
		border-radius:24px 24px 0 0!important;
		box-shadow:0 -14px 40px rgba(2,6,23,.26)!important;
		gap:6px!important;
		min-height:74px!important;
		padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px))!important;
	}
	.opto-patient-bottom-nav-v15812 a,
	.opto-patient-bottom-nav-v15812 summary{
		border-radius:18px!important;
		min-height:58px!important;
		padding:7px 6px!important;
		transition:background .18s ease, transform .18s ease!important;
	}
	.opto-patient-bottom-nav-v15812 a:active,
	.opto-patient-bottom-nav-v15812 summary:active{
		transform:scale(.97)!important;
	}
	.opto-patient-bottom-nav-v15812 .is-active,
	.opto-patient-mobile-more-v15812[open] summary{
		background:linear-gradient(135deg,#0ea5a8,#087f84)!important;
		box-shadow:0 10px 26px rgba(14,165,168,.28)!important;
	}
	.opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812{
		border-radius:24px!important;
		bottom:calc(86px + env(safe-area-inset-bottom,0px))!important;
		box-shadow:0 22px 60px rgba(15,23,42,.28)!important;
		left:50%!important;
		max-height:min(68vh,500px)!important;
		max-width:520px!important;
		overflow:auto!important;
		right:auto!important;
		transform:translateX(-50%)!important;
		width:calc(100vw - 36px)!important;
		z-index:999999!important;
	}
	.opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812 a,
	.opto-patient-portal-v15812 .opto-patient-mobile-more-action-v15812{
		border-radius:16px!important;
		font-size:17px!important;
		min-height:46px!important;
	}

	/* Tarjetas móviles más táctiles */
	.opto-patient-portal-v15812 .opto-patient-card,
	.opto-patient-portal-v15812 .opto-patient-panel,
	.opto-patient-portal-v15812 .opto-patient-note,
	.opto-patient-portal-v15812 .opto-patient-v155-card,
	.opto-patient-portal-v15812 .opto-patient-v155-panel,
	.opto-patient-today-list-v156,
	.opto-patient-selected-exercise-v156,
	.opto-patient-program-chat-v156,
	.opto-patient-calendar-shell{
		border-radius:24px!important;
		box-shadow:0 12px 34px rgba(15,23,42,.06)!important;
	}
	.opto-patient-portal-v15812 button,
	.opto-patient-portal-v15812 .opto-button,
	.opto-patient-portal-v15812 .opto-soft-button,
	.opto-patient-portal-v15812 input[type="submit"]{
		min-height:48px!important;
		border-radius:16px!important;
		font-size:16px!important;
	}

	/* Mi programa: lectura vertical, sin scroll lateral */
	.opto-patient-program-head-v156,
	.opto-patient-program-grid-v156,
	.opto-patient-week-strip-v156{
		margin-left:0!important;
		margin-right:0!important;
		width:100%!important;
	}
	.opto-patient-week-strip-v156{
		display:flex!important;
		overflow-x:auto!important;
		scroll-snap-type:x proximity!important;
		padding-bottom:8px!important;
	}
	.opto-patient-week-strip-v156>*{
		flex:0 0 118px!important;
		scroll-snap-align:start!important;
	}
	.opto-patient-selected-body-v156{
		display:grid!important;
		grid-template-columns:1fr!important;
	}
	.opto-patient-selected-body-v156 section,
	.opto-patient-selected-visual-v156,
	.opto-patient-today-card-v156,
	.opto-patient-program-chat-preview-v156>div{
		border-radius:18px!important;
	}
	.opto-patient-selected-actions-v156,
	.opto-patient-selected-head-v156{
		display:grid!important;
		grid-template-columns:1fr!important;
		gap:10px!important;
	}

	/* Calendario móvil tipo agenda */
	.opto-public-view-header,
	.opto-public-view-header nav{
		display:grid!important;
		grid-template-columns:1fr!important;
		gap:10px!important;
	}
	.opto-public-view-header nav a,
	.opto-week-link{
		align-items:center!important;
		display:flex!important;
		justify-content:center!important;
		min-height:44px!important;
		text-align:center!important;
	}
	.opto-public-week-calendar-grid,
	.opto-public-calendar-grid.opto-public-month-grid{
		display:grid!important;
		grid-template-columns:1fr!important;
		gap:12px!important;
	}
	.opto-public-calendar-label{
		display:none!important;
	}
	.opto-public-week-day,
	.opto-public-calendar-day{
		border-radius:22px!important;
		min-height:unset!important;
		padding:16px!important;
	}
	.opto-public-calendar-day-adjacent:not(.has-items){
		display:none!important;
	}
	.opto-public-calendar-day-head,
	.opto-public-week-day-head{
		align-items:center!important;
		display:flex!important;
		justify-content:space-between!important;
		gap:12px!important;
	}
	.opto-public-calendar-item,
	button.opto-public-calendar-item{
		border-radius:16px!important;
		min-height:52px!important;
		padding:12px!important;
	}

	/* Popup de ejercicios 100% móvil */
	body > .opto-public-training-modal-v162[aria-hidden="false"],
	.opto-public-training-modal-v162[aria-hidden="false"]{
		align-items:stretch!important;
		padding:0!important;
	}
	body > .opto-public-training-modal-v162 .opto-public-modal-panel,
	.opto-public-training-modal-v162 .opto-public-modal-panel{
		border-radius:0!important;
		height:100dvh!important;
		max-height:100dvh!important;
		max-width:none!important;
		overflow:auto!important;
		padding:calc(16px + env(safe-area-inset-top,0px)) 16px calc(88px + env(safe-area-inset-bottom,0px))!important;
		width:100vw!important;
	}
	.opto-public-training-modal-v162 .opto-public-modal-close{
		height:44px!important;
		right:14px!important;
		top:calc(12px + env(safe-area-inset-top,0px))!important;
		width:44px!important;
	}
	.opto-public-training-modal-v162 .opto-training-head-v1621,
	.opto-public-training-modal-v162 .opto-training-steps-v1621,
	.opto-public-training-modal-v162 .opto-training-primary-actions-v162,
	.opto-public-training-modal-v162 .opto-training-navigation-v162,
	.opto-public-training-modal-v162 .opto-training-exercise-actions-v162{
		display:grid!important;
		grid-template-columns:1fr!important;
		gap:10px!important;
	}
	.opto-public-training-modal-v162 .opto-training-steps-v1621{
		position:sticky!important;
		top:0!important;
		z-index:5!important;
		background:rgba(255,255,255,.96)!important;
		padding:8px 0!important;
	}
	.opto-public-training-modal-v162 .opto-training-exercise-head-v162,
	.opto-public-training-modal-v162 .opto-metronome-control-v163{
		align-items:stretch!important;
		display:grid!important;
		grid-template-columns:1fr!important;
	}
	.opto-public-training-modal-v162 textarea,
	.opto-public-training-modal-v162 input,
	.opto-public-training-modal-v162 select{
		font-size:16px!important;
	}
}

@media(min-width:783px) and (max-width:1180px){
	.opto-patient-program-grid-v156{
		grid-template-areas:"today" "selected" "chat"!important;
		grid-template-columns:1fr!important;
	}
	.opto-patient-selected-body-v156{
		grid-template-columns:minmax(260px,.72fr) minmax(0,1fr)!important;
	}
}


/* v1.6.7.1 — Corrección popup móvil y estabilidad de pantalla */
@media (max-width: 782px){
	html,
	body,
	body.opto-pwa-standalone,
	body.opto-patient-fullscreen-active{
		max-width:100vw!important;
		overflow-x:hidden!important;
		overscroll-behavior-x:none!important;
	}
	.opto-patient-portal-v15812,
	body.opto-pwa-standalone .opto-patient-portal-v15812,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812{
		box-sizing:border-box!important;
		left:auto!important;
		max-width:100vw!important;
		overflow-x:hidden!important;
		position:relative!important;
		right:auto!important;
		width:100%!important;
	}
	.opto-patient-portal-v15812 *,
	.opto-public-training-modal-v162 *,
	.opto-public-modal-stack *{
		box-sizing:border-box!important;
		min-width:0;
	}

	/* La cabecera deja de perseguir el scroll en móvil */
	.opto-patient-portal-v15812>.opto-patient-hero-v1582,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-hero-v1582,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-hero-v1582{
		position:relative!important;
		top:auto!important;
		z-index:1!important;
		transform:none!important;
		max-width:calc(100vw - 24px)!important;
		width:auto!important;
	}

	/* Popup de ejercicios: sin salida lateral */
	body > .opto-public-training-modal-v162[aria-hidden="false"],
	.opto-public-training-modal-v162[aria-hidden="false"]{
		align-items:stretch!important;
		inset:0!important;
		max-width:100dvw!important;
		overflow:hidden!important;
		padding:0!important;
		width:100dvw!important;
	}
	body > .opto-public-training-modal-v162 .opto-public-modal-panel,
	.opto-public-training-modal-v162 .opto-public-modal-panel{
		border-radius:0!important;
		height:100dvh!important;
		left:auto!important;
		margin:0!important;
		max-height:100dvh!important;
		max-width:100dvw!important;
		overflow-x:hidden!important;
		overflow-y:auto!important;
		padding:calc(16px + env(safe-area-inset-top,0px)) 16px calc(96px + env(safe-area-inset-bottom,0px))!important;
		right:auto!important;
		width:100dvw!important;
	}
	.opto-public-training-modal-v162 .opto-training-head-v1621,
	.opto-public-training-modal-v162 .opto-training-steps-v1621,
	.opto-public-training-modal-v162 .opto-training-step-panel-v162,
	.opto-public-training-modal-v162 .opto-training-results-v162,
	.opto-public-training-modal-v162 .opto-training-result-card-v162,
	.opto-public-training-modal-v162 .opto-training-alert-v162,
	.opto-public-training-modal-v162 .opto-training-primary-actions-v162,
	.opto-public-training-modal-v162 .opto-training-navigation-v162,
	.opto-public-training-modal-v162 .opto-training-exercise-actions-v162,
	.opto-public-training-modal-v162 .opto-training-exercise-card-v162,
	.opto-public-training-modal-v162 .opto-training-exercise-body-v162{
		max-width:100%!important;
		overflow-x:hidden!important;
		width:100%!important;
	}
	.opto-public-training-modal-v162 .opto-training-steps-v1621{
		position:relative!important;
		top:auto!important;
	}
	.opto-public-training-modal-v162 .opto-training-steps-v1621 button,
	.opto-public-training-modal-v162 .opto-training-step-v1621,
	.opto-public-training-modal-v162 .opto-training-step-tab-v1621{
		white-space:normal!important;
		width:100%!important;
	}
	.opto-public-training-modal-v162 textarea,
	.opto-public-training-modal-v162 input:not([type="checkbox"]):not([type="radio"]),
	.opto-public-training-modal-v162 select,
	.opto-public-training-modal-v162 button,
	.opto-public-training-modal-v162 .opto-button,
	.opto-public-training-modal-v162 .opto-soft-button{
		max-width:100%!important;
		width:100%!important;
	}
	.opto-public-training-modal-v162 input[type="file"]{
		display:block!important;
		font-size:14px!important;
		max-width:100%!important;
		overflow:hidden!important;
		white-space:normal!important;
		width:100%!important;
	}
	.opto-public-training-modal-v162 .opto-training-alert-v162,
	.opto-public-training-modal-v162 .opto-training-warning-v162,
	.opto-public-training-modal-v162 .opto-public-message,
	.opto-public-training-modal-v162 .opto-training-missing-v162{
		overflow-wrap:anywhere!important;
		word-break:normal!important;
	}

	/* Evita que bloques de programa/calendario creen scroll horizontal */
	.opto-patient-program-grid-v156,
	.opto-patient-program-head-v156,
	.opto-patient-selected-exercise-v156,
	.opto-patient-selected-body-v156,
	.opto-patient-today-list-v156,
	.opto-patient-program-chat-v156,
	.opto-patient-calendar-shell,
	.opto-patient-week-strip-v156{
		max-width:100%!important;
		overflow-x:hidden!important;
	}
	.opto-patient-week-strip-v156{
		overflow-x:auto!important;
	}
}

/* v1.6.7.2 — Corrección PWA escritorio y navegación móvil */
@media (min-width: 1181px){
	body.opto-pwa-standalone .opto-patient-bottom-nav-v15812{
		display:none!important;
	}
	body.opto-pwa-standalone .opto-patient-portal-v15812{
		background:#eef6f8!important;
		display:grid!important;
		gap:0 30px!important;
		grid-template-columns:300px minmax(0,1fr)!important;
		height:auto!important;
		margin:0!important;
		max-width:none!important;
		min-height:100dvh!important;
		overflow:visible!important;
		padding:20px 24px 34px!important;
		width:100%!important;
	}
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-brand-strip{
		grid-column:1!important;
		grid-row:1!important;
		padding:18px 18px 0!important;
		pointer-events:none!important;
		position:sticky!important;
		top:20px!important;
		width:300px!important;
		z-index:36!important;
	}
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158{
		background:linear-gradient(180deg,#071f35 0%,#092a45 100%)!important;
		border-radius:26px!important;
		display:flex!important;
		flex-direction:column!important;
		gap:10px!important;
		grid-column:1!important;
		grid-row:1 / span 100!important;
		margin:0!important;
		max-width:300px!important;
		min-height:calc(100dvh - 40px)!important;
		overflow-x:hidden!important;
		overflow-y:auto!important;
		padding:132px 14px 24px!important;
		position:sticky!important;
		top:20px!important;
		width:300px!important;
		z-index:25!important;
	}
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a{
		display:grid!important;
		grid-template-columns:auto 1fr!important;
		justify-items:start!important;
		max-width:100%!important;
		min-height:48px!important;
		padding:10px 14px!important;
		text-align:left!important;
		width:100%!important;
	}
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a strong{
		display:block!important;
		max-width:none!important;
		white-space:normal!important;
	}
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-hero-v1582{
		grid-column:2!important;
		grid-row:1!important;
		margin:0 0 28px!important;
	}
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-alert,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-note,
	body.opto-pwa-standalone .opto-patient-portal-v15812>section,
	body.opto-pwa-standalone .opto-patient-portal-v15812>#opto-patient-dashboard,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-home-grid-v155,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-v155-actions,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-v155-reminder,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-warning,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-public-modal-stack{
		grid-column:2!important;
		min-width:0!important;
		width:100%!important;
	}
}

@media (min-width:783px) and (max-width:1180px){
	body.opto-pwa-standalone .opto-patient-bottom-nav-v15812{
		display:none!important;
	}
	body.opto-pwa-standalone .opto-patient-portal-v15812{
		display:grid!important;
		gap:0 18px!important;
		grid-template-columns:92px minmax(0,1fr)!important;
		max-width:100%!important;
		padding:18px!important;
		width:100%!important;
	}
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-brand-strip{
		grid-column:1!important;
		grid-row:1!important;
		padding:14px 10px 0!important;
		position:sticky!important;
		top:18px!important;
		width:92px!important;
		z-index:36!important;
	}
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158{
		grid-column:1!important;
		grid-row:1 / span 100!important;
		min-height:calc(100dvh - 36px)!important;
		padding:110px 8px 18px!important;
		position:sticky!important;
		top:18px!important;
		width:92px!important;
		z-index:25!important;
	}
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-hero-v1582,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-alert,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-note,
	body.opto-pwa-standalone .opto-patient-portal-v15812>section,
	body.opto-pwa-standalone .opto-patient-portal-v15812>#opto-patient-dashboard,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-home-grid-v155,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-v155-actions,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-v155-reminder,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-warning,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-public-modal-stack{
		grid-column:2!important;
		min-width:0!important;
		width:100%!important;
	}
}

@media (max-width:782px){
	.opto-patient-bottom-nav-v15812,
	body.opto-patient-fullscreen-active .opto-patient-bottom-nav-v15812,
	body.opto-pwa-standalone .opto-patient-bottom-nav-v15812,
	.opto-patient-portal-v15812>.opto-patient-app-sidebar-v158,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158{
		border-radius:22px 22px 0 0!important;
		bottom:0!important;
		box-sizing:border-box!important;
		left:max(8px, env(safe-area-inset-left, 0px))!important;
		right:max(8px, env(safe-area-inset-right, 0px))!important;
		width:auto!important;
		max-width:calc(100vw - 16px)!important;
		padding-left:6px!important;
		padding-right:6px!important;
	}
	.opto-patient-portal-v15812{
		padding-left:10px!important;
		padding-right:10px!important;
	}
}


/* v1.6.7.3 — Corrección scroll portal y menú móvil persistente */
@media (max-width:782px){
	html,
	body,
	body.opto-pwa-standalone,
	body.opto-patient-fullscreen-active{
		height:auto!important;
		min-height:100%!important;
		max-height:none!important;
		overflow-x:hidden!important;
		overflow-y:auto!important;
		position:static!important;
		-webkit-overflow-scrolling:touch!important;
	}
	body.opto-pwa-standalone,
	body.opto-patient-fullscreen-active{
		overscroll-behavior-y:auto!important;
	}
	body.opto-pwa-standalone .opto-patient-portal-v15812,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812,
	.opto-patient-portal-v15812{
		height:auto!important;
		min-height:100dvh!important;
		max-height:none!important;
		overflow-x:hidden!important;
		overflow-y:visible!important;
		padding-bottom:calc(118px + env(safe-area-inset-bottom,0px))!important;
	}

	/* La navegación inferior siempre debe quedar visible al hacer scroll. */
	.opto-patient-portal-v15812>.opto-patient-app-sidebar-v158,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158{
		align-items:center!important;
		background:rgba(8,35,59,.98)!important;
		border-radius:22px 22px 0 0!important;
		box-shadow:0 -12px 34px rgba(2,6,23,.28)!important;
		box-sizing:border-box!important;
		display:grid!important;
		grid-template-columns:repeat(5,minmax(0,1fr))!important;
		gap:4px!important;
		left:max(8px, env(safe-area-inset-left,0px))!important;
		right:max(8px, env(safe-area-inset-right,0px))!important;
		bottom:0!important;
		max-height:none!important;
		max-width:calc(100vw - 16px)!important;
		min-height:76px!important;
		overflow:visible!important;
		padding:7px 6px calc(7px + env(safe-area-inset-bottom,0px))!important;
		position:fixed!important;
		top:auto!important;
		transform:none!important;
		width:auto!important;
		z-index:999999!important;
	}
	.opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>.opto-patient-sidebar-actions-v15810,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>.opto-patient-sidebar-actions-v15810,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>.opto-patient-sidebar-actions-v15810,
	.opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a:nth-of-type(n+5){
		display:none!important;
	}
	.opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a,
	.opto-patient-portal-v15812 .opto-patient-mobile-more-v15811 summary{
		align-items:center!important;
		border-radius:17px!important;
		display:flex!important;
		flex-direction:column!important;
		gap:4px!important;
		justify-content:center!important;
		min-height:58px!important;
		padding:6px 4px!important;
		text-align:center!important;
		width:100%!important;
	}
	.opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a strong,
	.opto-patient-portal-v15812 .opto-patient-mobile-more-v15811 summary strong{
		font-size:11px!important;
		line-height:1.1!important;
		max-width:100%!important;
		overflow:hidden!important;
		text-overflow:ellipsis!important;
		white-space:nowrap!important;
	}
	.opto-patient-portal-v15812 .opto-patient-mobile-more-v15811{
		display:block!important;
		position:relative!important;
		width:100%!important;
	}
	.opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812{
		bottom:calc(84px + env(safe-area-inset-bottom,0px))!important;
		left:50%!important;
		right:auto!important;
		max-height:min(62vh,440px)!important;
		overflow-y:auto!important;
		position:fixed!important;
		transform:translateX(-50%)!important;
		width:min(520px,calc(100vw - 28px))!important;
		z-index:1000000!important;
	}

	/* Evita que el hero o tarjetas bloqueen el scroll nativo. */
	.opto-patient-portal-v15812>.opto-patient-hero-v1582,
	.opto-patient-portal-v15812 .opto-patient-card,
	.opto-patient-portal-v15812 .opto-patient-v155-card,
	.opto-patient-portal-v15812 .opto-patient-panel,
	.opto-patient-portal-v15812 section{
		max-width:100%!important;
		overflow:visible!important;
	}
}

/* v1.6.7.4 — Scroll estable en navegador/PWA y navegación inferior dentro de pantalla */
html.opto-pwa-standalone,
body.opto-pwa-standalone,
body.opto-patient-fullscreen-active{
	height:auto!important;
	min-height:100%!important;
	max-height:none!important;
	overflow-x:hidden!important;
	overflow-y:auto!important;
	position:static!important;
}
body.opto-pwa-standalone .opto-patient-portal-v15812,
body.opto-patient-fullscreen-active .opto-patient-portal-v15812,
.opto-patient-portal-v15812{
	height:auto!important;
	max-height:none!important;
	overflow-x:hidden!important;
	overflow-y:visible!important;
}
@media (min-width:783px){
	body.opto-pwa-standalone,
	body.opto-patient-fullscreen-active{
		overflow-y:auto!important;
	}
	body.opto-pwa-standalone .opto-patient-portal-v15812,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812{
		inset:auto!important;
		position:relative!important;
		height:auto!important;
		min-height:100dvh!important;
		max-height:none!important;
		overflow:visible!important;
		z-index:auto!important;
	}
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-brand-strip,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-brand-strip{
		position:sticky!important;
	}
}
@media (max-width:782px){
	body.opto-pwa-standalone .opto-patient-portal-v15812,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812,
	.opto-patient-portal-v15812{
		inset:auto!important;
		position:relative!important;
		height:auto!important;
		min-height:100dvh!important;
		max-height:none!important;
		width:100%!important;
		max-width:100vw!important;
		overflow-x:hidden!important;
		overflow-y:visible!important;
		padding-bottom:calc(112px + env(safe-area-inset-bottom,0px))!important;
	}
	.opto-patient-bottom-nav-v15812,
	body.opto-patient-fullscreen-active .opto-patient-bottom-nav-v15812,
	body.opto-pwa-standalone .opto-patient-bottom-nav-v15812,
	.opto-patient-portal-v15812>.opto-patient-app-sidebar-v158,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158{
		bottom:0!important;
		left:max(12px, env(safe-area-inset-left,0px))!important;
		right:max(12px, env(safe-area-inset-right,0px))!important;
		width:auto!important;
		max-width:calc(100vw - 24px)!important;
		position:fixed!important;
		z-index:2147483000!important;
	}
	.opto-patient-bottom-nav-v15812{
		display:grid!important;
		grid-template-columns:repeat(5,minmax(0,1fr))!important;
	}
}

/* v1.6.7.5 — Restauración del sidebar de escritorio en navegador y PWA */
@media (min-width:1181px){
	html,
	body,
	body.opto-pwa-standalone,
	body.opto-patient-fullscreen-active{
		height:auto!important;
		min-height:100%!important;
		max-height:none!important;
		overflow-x:hidden!important;
		overflow-y:auto!important;
		position:static!important;
	}

	body .opto-patient-portal-v15812,
	body.opto-pwa-standalone .opto-patient-portal-v15812,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812{
		align-items:start!important;
		background:#eef6f8!important;
		box-sizing:border-box!important;
		display:grid!important;
		gap:0 30px!important;
		grid-template-columns:300px minmax(0,1fr)!important;
		height:auto!important;
		inset:auto!important;
		margin:0 auto!important;
		max-height:none!important;
		max-width:none!important;
		min-height:100dvh!important;
		overflow:visible!important;
		padding:20px 24px 42px!important;
		position:relative!important;
		transform:none!important;
		width:100%!important;
		z-index:auto!important;
	}

	body .opto-patient-portal-v15812>.opto-patient-brand-strip,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-brand-strip,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-brand-strip{
		align-items:flex-start!important;
		background:transparent!important;
		border:0!important;
		box-shadow:none!important;
		display:flex!important;
		flex-direction:column!important;
		gap:8px!important;
		grid-column:1!important;
		grid-row:1!important;
		justify-content:flex-start!important;
		margin:0!important;
		max-width:300px!important;
		min-height:0!important;
		padding:18px 18px 0!important;
		pointer-events:none!important;
		position:sticky!important;
		top:20px!important;
		width:300px!important;
		z-index:36!important;
	}

	body .opto-patient-portal-v15812>.opto-patient-brand-strip .opto-brand-logo,
	body .opto-patient-portal-v15812>.opto-patient-brand-strip img,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-brand-strip .opto-brand-logo,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-brand-strip img,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-brand-strip .opto-brand-logo,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-brand-strip img{
		max-width:230px!important;
		width:230px!important;
	}

	body .opto-patient-portal-v15812>.opto-patient-brand-strip .opto-ds-version-pill,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-brand-strip .opto-ds-version-pill,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-brand-strip .opto-ds-version-pill{
		align-self:flex-end!important;
		display:inline-flex!important;
		margin:-48px 0 0 auto!important;
		position:relative!important;
		right:0!important;
		top:auto!important;
	}

	body .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158{
		background:linear-gradient(180deg,#071f35 0%,#092a45 100%)!important;
		border-radius:26px!important;
		box-shadow:none!important;
		box-sizing:border-box!important;
		display:flex!important;
		flex-direction:column!important;
		gap:10px!important;
		grid-column:1!important;
		grid-row:1 / span 100!important;
		left:auto!important;
		margin:0!important;
		max-height:none!important;
		max-width:300px!important;
		min-height:calc(100dvh - 40px)!important;
		min-width:300px!important;
		overflow-x:hidden!important;
		overflow-y:auto!important;
		padding:132px 14px 24px!important;
		position:sticky!important;
		right:auto!important;
		top:20px!important;
		transform:none!important;
		width:300px!important;
		z-index:25!important;
	}

	body .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158:before,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158:before,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158:before{
		display:none!important;
	}

	body .opto-patient-portal-v15812 .opto-patient-sidebar-actions-v15810,
	body.opto-pwa-standalone .opto-patient-portal-v15812 .opto-patient-sidebar-actions-v15810,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812 .opto-patient-sidebar-actions-v15810{
		display:grid!important;
		grid-template-columns:repeat(4,minmax(0,1fr))!important;
		gap:8px!important;
		margin:0 0 16px!important;
		order:0!important;
		width:100%!important;
	}

	body .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158 .opto-patient-sidebar-action,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158 .opto-patient-sidebar-action,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158 .opto-patient-sidebar-action{
		align-items:center!important;
		display:flex!important;
		height:48px!important;
		justify-content:center!important;
		min-height:48px!important;
		padding:0!important;
		width:100%!important;
	}

	body .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a{
		align-items:center!important;
		border-radius:18px!important;
		display:flex!important;
		flex-direction:row!important;
		gap:12px!important;
		justify-content:flex-start!important;
		min-height:58px!important;
		padding:11px 14px!important;
		text-align:left!important;
		width:100%!important;
	}

	body .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a:nth-of-type(n+1),
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a:nth-of-type(n+1),
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a:nth-of-type(n+1){
		display:flex!important;
	}

	body .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a strong,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a strong,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a strong{
		display:inline!important;
		font-size:15px!important;
		line-height:1.15!important;
		overflow:visible!important;
		text-overflow:clip!important;
		white-space:normal!important;
	}

	body .opto-patient-portal-v15812 .opto-patient-nav-icon,
	body.opto-pwa-standalone .opto-patient-portal-v15812 .opto-patient-nav-icon,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812 .opto-patient-nav-icon{
		flex:0 0 38px!important;
		height:38px!important;
		min-width:38px!important;
		width:38px!important;
	}

	body .opto-patient-portal-v15812 .opto-patient-mobile-more-v15811,
	body .opto-patient-portal-v15812 .opto-patient-mobile-more-v15812,
	body.opto-pwa-standalone .opto-patient-portal-v15812 .opto-patient-mobile-more-v15811,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812 .opto-patient-mobile-more-v15811,
	body .opto-patient-bottom-nav-v15812,
	body.opto-pwa-standalone .opto-patient-bottom-nav-v15812,
	body.opto-patient-fullscreen-active .opto-patient-bottom-nav-v15812{
		display:none!important;
	}

	body .opto-patient-portal-v15812>.opto-patient-hero-v1582,
	body .opto-patient-portal-v15812>.opto-patient-alert,
	body .opto-patient-portal-v15812>.opto-patient-note,
	body .opto-patient-portal-v15812>section,
	body .opto-patient-portal-v15812>#opto-patient-dashboard,
	body .opto-patient-portal-v15812>.opto-patient-home-grid-v155,
	body .opto-patient-portal-v15812>.opto-patient-v155-actions,
	body .opto-patient-portal-v15812>.opto-patient-v155-reminder,
	body .opto-patient-portal-v15812>.opto-patient-warning,
	body .opto-patient-portal-v15812>.opto-public-modal-stack,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-hero-v1582,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-alert,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-note,
	body.opto-pwa-standalone .opto-patient-portal-v15812>section,
	body.opto-pwa-standalone .opto-patient-portal-v15812>#opto-patient-dashboard,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-home-grid-v155,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-v155-actions,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-v155-reminder,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-warning,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-public-modal-stack,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-hero-v1582,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-alert,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-note,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>section,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>#opto-patient-dashboard,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-home-grid-v155,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-v155-actions,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-v155-reminder,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-warning,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-public-modal-stack{
		grid-column:2!important;
		min-width:0!important;
		width:100%!important;
	}
}


/* v1.6.7.6 — Scroll real en navegador y menú móvil dentro de pantalla */
html:has(.opto-patient-portal-v15812),
body:has(.opto-patient-portal-v15812){
	height:auto!important;
	min-height:100%!important;
	max-height:none!important;
	overflow-x:hidden!important;
	overflow-y:auto!important;
	position:static!important;
}
body:has(.opto-patient-portal-v15812) #page,
body:has(.opto-patient-portal-v15812) .site,
body:has(.opto-patient-portal-v15812) .elementor,
body:has(.opto-patient-portal-v15812) .elementor-section,
body:has(.opto-patient-portal-v15812) .elementor-container,
body:has(.opto-patient-portal-v15812) .elementor-widget-container{
	height:auto!important;
	max-height:none!important;
	overflow:visible!important;
}
body .opto-patient-portal-v15812,
body.opto-pwa-standalone .opto-patient-portal-v15812,
body.opto-patient-fullscreen-active .opto-patient-portal-v15812{
	height:auto!important;
	max-height:none!important;
	overflow:visible!important;
}

@media (max-width:1180px){
	html,
	body,
	body.opto-pwa-standalone,
	body.opto-patient-fullscreen-active{
		height:auto!important;
		min-height:100%!important;
		max-height:none!important;
		overflow-x:hidden!important;
		overflow-y:auto!important;
		position:static!important;
		-webkit-overflow-scrolling:touch!important;
	}
	body .opto-patient-portal-v15812,
	body.opto-pwa-standalone .opto-patient-portal-v15812,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812{
		height:auto!important;
		min-height:100dvh!important;
		max-height:none!important;
		overflow:visible!important;
		position:relative!important;
		padding-bottom:calc(112px + env(safe-area-inset-bottom,0px))!important;
	}
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-hero-v1582,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-hero-v1582{
		position:relative!important;
		top:auto!important;
		z-index:1!important;
	}
}

@media (max-width:767px){
	body .opto-patient-bottom-nav-v15812,
	body.opto-patient-fullscreen-active .opto-patient-bottom-nav-v15812,
	body.opto-pwa-standalone .opto-patient-bottom-nav-v15812{
		box-sizing:border-box!important;
		dis:grid!important;
		grid-template-columns:repeat(5,minmax(0,1fr))!important;
		left:max(10px,env(safe-area-inset-left,0px))!important;
		right:max(10px,env(safe-area-inset-right,0px))!important;
		bottom:max(8px,env(safe-area-inset-bottom,0px))!important;
		width:auto!important;
		max-width:calc(100vw - 20px)!important;
		min-width:0!important;
		margin:0!important;
		padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px))!important;
		transform:none!important;
		overflow:hidden!important;
		border-radius:24px!important;
		z-index:2147483000!important;
	}
	body .opto-patient-bottom-nav-v15812 a,
	body .opto-patient-bottom-nav-v15812 summary{
		min-width:0!important;
		width:100%!important;
		max-width:100%!important;
		padding:8px 3px!important;
		gap:4px!important;
		box-sizing:border-box!important;
	}
	body .opto-patient-bottom-nav-v15812 strong,
	body .opto-patient-bottom-nav-v15812 span{
		max-width:100%!important;
		overflow:hidden!important;
		text-overflow:ellipsis!important;
		white-space:nowrap!important;
	}
	body .opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812,
	body.opto-pwa-standalone .opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812 .opto-patient-mobile-more-list-v15812{
		box-sizing:border-box!important;
		left:max(12px,env(safe-area-inset-left,0px))!important;
		right:max(12px,env(safe-area-inset-right,0px))!important;
		bottom:calc(86px + env(safe-area-inset-bottom,0px))!important;
		width:auto!important;
		max-width:calc(100vw - 24px)!important;
		min-width:0!important;
		transform:none!important;
		overflow-y:auto!important;
		max-height:calc(100dvh - 122px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))!important;
	}
}

/* v1.6.7.7 — Scroll central y navegación móvil estable */
html:has(.opto-patient-portal-v15812),
body:has(.opto-patient-portal-v15812){
	overscroll-behavior-y:auto!important;
	touch-action:pan-y!important;
}
.opto-patient-portal-v15812,
.opto-patient-portal-v15812 *{
	box-sizing:border-box;
}
@media (min-width:783px){
	body:has(.opto-patient-portal-v15812) .opto-patient-portal-v15812,
	body.opto-pwa-standalone .opto-patient-portal-v15812,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812{
		pointer-events:auto!important;
	}
	body:has(.opto-patient-portal-v15812) .opto-patient-portal-v15812>section,
	body:has(.opto-patient-portal-v15812) .opto-patient-portal-v15812>.opto-patient-hero-v1582,
	body:has(.opto-patient-portal-v15812) .opto-patient-portal-v15812>.opto-patient-note,
	body:has(.opto-patient-portal-v15812) .opto-patient-portal-v15812>.opto-patient-alert,
	body:has(.opto-patient-portal-v15812) .opto-patient-portal-v15812>#opto-patient-dashboard{
		overflow:visible!important;
		pointer-events:auto!important;
	}
}
@media (max-width:782px){
	body .opto-patient-portal-v15812,
	body.opto-pwa-standalone .opto-patient-portal-v15812,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812{
		padding-left:max(12px,env(safe-area-inset-left,0px))!important;
		padding-right:max(12px,env(safe-area-inset-right,0px))!important;
		padding-bottom:calc(118px + env(safe-area-inset-bottom,0px))!important;
		width:100%!important;
		max-width:100vw!important;
		overflow-x:hidden!important;
	}
	body .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158,
	body .opto-patient-bottom-nav-v15812,
	body.opto-pwa-standalone .opto-patient-bottom-nav-v15812,
	body.opto-patient-fullscreen-active .opto-patient-bottom-nav-v15812{
		left:max(12px,env(safe-area-inset-left,0px))!important;
		right:max(12px,env(safe-area-inset-right,0px))!important;
		bottom:max(8px,env(safe-area-inset-bottom,0px))!important;
		width:auto!important;
		max-width:calc(100vw - 24px)!important;
		min-width:0!important;
		transform:none!important;
		margin:0!important;
		overflow:hidden!important;
	}
	body .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158>a,
	body .opto-patient-bottom-nav-v15812 a,
	body .opto-patient-bottom-nav-v15812 summary,
	body .opto-patient-portal-v15812 .opto-patient-mobile-more-v15811 summary{
		min-width:0!important;
		max-width:100%!important;
		overflow:hidden!important;
	}
}

/* ==========================================================
   v1.6.7.8 — Scroll nativo y menú móvil paciente rediseñado
   ========================================================== */
html:has(.opto-patient-portal-v15812),
body:has(.opto-patient-portal-v15812){
	height:auto!important;
	min-height:100%!important;
	max-height:none!important;
	overflow-x:hidden!important;
	overflow-y:auto!important;
	position:static!important;
	scroll-behavior:auto!important;
	overscroll-behavior-y:auto!important;
	-webkit-overflow-scrolling:touch!important;
}
body:has(.opto-patient-portal-v15812) #page,
body:has(.opto-patient-portal-v15812) .site,
body:has(.opto-patient-portal-v15812) .site-content,
body:has(.opto-patient-portal-v15812) .content-area,
body:has(.opto-patient-portal-v15812) main,
body:has(.opto-patient-portal-v15812) .entry-content,
body:has(.opto-patient-portal-v15812) .elementor,
body:has(.opto-patient-portal-v15812) .elementor-section,
body:has(.opto-patient-portal-v15812) .elementor-container,
body:has(.opto-patient-portal-v15812) .elementor-widget-container{
	height:auto!important;
	max-height:none!important;
	overflow:visible!important;
	scroll-behavior:auto!important;
}
body .opto-patient-portal-v15812,
body.opto-pwa-standalone .opto-patient-portal-v15812{
	height:auto!important;
	max-height:none!important;
	overflow:visible!important;
	scroll-behavior:auto!important;
	transform:none!important;
	will-change:auto!important;
}

.opto-patient-mobile-nav-v1678,
.opto-patient-mobile-more-backdrop-v1678,
.opto-patient-mobile-more-panel-v1678{
	display:none;
}

@media(max-width:782px){
	body .opto-patient-portal-v15812,
	body.opto-pwa-standalone .opto-patient-portal-v15812,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812{
		display:block!important;
		height:auto!important;
		min-height:100dvh!important;
		max-height:none!important;
		inset:auto!important;
		margin:0 auto!important;
		max-width:100%!important;
		overflow:visible!important;
		padding:12px 12px calc(118px + env(safe-area-inset-bottom,0px))!important;
		position:relative!important;
		transform:none!important;
		width:100%!important;
		z-index:auto!important;
	}

	body .opto-patient-portal-v15812>.opto-patient-brand-strip,
	body .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158,
	body.opto-pwa-standalone .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-app-sidebar-v158,
	body .opto-patient-portal-v15812 .opto-patient-mobile-more-v15811,
	body .opto-patient-portal-v15812 .opto-patient-mobile-more-v15812{
		display:none!important;
	}

	body .opto-patient-portal-v15812>.opto-patient-hero-v1582,
	body.opto-patient-fullscreen-active .opto-patient-portal-v15812>.opto-patient-hero-v1582{
		margin:0 0 16px!important;
		padding:24px 20px!important;
		position:relative!important;
		top:auto!important;
	}

	body .opto-patient-portal-v15812 .opto-patient-hero-main-v1582 h2{
		font-size:clamp(30px,8.5vw,44px)!important;
		line-height:1.05!important;
	}

	body .opto-patient-portal-v15812>section,
	body .opto-patient-portal-v15812>#opto-patient-dashboard,
	body .opto-patient-portal-v15812>.opto-patient-home-grid-v155,
	body .opto-patient-portal-v15812>.opto-patient-v155-actions,
	body .opto-patient-portal-v15812>.opto-patient-v155-reminder,
	body .opto-patient-portal-v15812>.opto-patient-alert,
	body .opto-patient-portal-v15812>.opto-patient-note{
		min-width:0!important;
		width:100%!important;
	}

	body .opto-patient-portal-v15812 .opto-week-grid,
	body .opto-patient-portal-v15812 .opto-program-grid,
	body .opto-patient-portal-v15812 .opto-exercise-layout,
	body .opto-patient-portal-v15812 .opto-patient-grid,
	body .opto-patient-portal-v15812 .opto-dashboard-grid,
	body .opto-patient-portal-v15812 .opto-patient-v157-appointments-grid,
	body .opto-patient-portal-v15812 .opto-patient-v157-doc-layout{
		grid-template-columns:1fr!important;
	}

	.opto-patient-mobile-nav-v1678{
		align-items:center!important;
		background:#ffffff!important;
		border:1px solid rgba(120,167,177,.30)!important;
		border-radius:24px!important;
		bottom:max(10px,env(safe-area-inset-bottom,0px))!important;
		box-shadow:0 14px 34px rgba(15,23,42,.18)!important;
		box-sizing:border-box!important;
		display:grid!important;
		gap:4px!important;
		grid-template-columns:repeat(5,minmax(0,1fr))!important;
		left:max(10px,env(safe-area-inset-left,0px))!important;
		margin:0!important;
		max-width:calc(100vw - 20px)!important;
		overflow:hidden!important;
		padding:8px!important;
		position:fixed!important;
		right:max(10px,env(safe-area-inset-right,0px))!important;
		width:auto!important;
		z-index:2147483200!important;
	}

	.opto-patient-mobile-nav-v1678__item{
		appearance:none!important;
		-webkit-appearance:none!important;
		align-items:center!important;
		background:transparent!important;
		border:0!important;
		border-radius:17px!important;
		box-shadow:none!important;
		box-sizing:border-box!important;
		color:#17324d!important;
		cursor:pointer!important;
		display:flex!important;
		flex-direction:column!important;
		font-family:inherit!important;
		font-size:10.5px!important;
		font-weight:850!important;
		gap:4px!important;
		justify-content:center!important;
		line-height:1.1!important;
		min-height:58px!important;
		min-width:0!important;
		overflow:hidden!important;
		padding:7px 3px!important;
		position:relative!important;
		text-align:center!important;
		text-decoration:none!important;
		width:100%!important;
	}

	.opto-patient-mobile-nav-v1678__item:hover,
	.opto-patient-mobile-nav-v1678__item:focus,
	.opto-patient-mobile-nav-v1678__item.is-active{
		background:rgba(109,172,184,.18)!important;
		color:#4f9dac!important;
		outline:none!important;
	}

	.opto-patient-mobile-nav-v1678__icon{
		align-items:center!important;
		background:rgba(25,50,77,.08)!important;
		border-radius:999px!important;
		color:inherit!important;
		display:flex!important;
		flex:0 0 28px!important;
		font-size:15px!important;
		font-weight:900!important;
		height:28px!important;
		justify-content:center!important;
		line-height:1!important;
		min-width:28px!important;
		width:28px!important;
	}

	.opto-patient-mobile-nav-v1678__label{
		display:block!important;
		max-width:100%!important;
		overflow:hidden!important;
		text-overflow:ellipsis!important;
		white-space:nowrap!important;
	}

	.opto-patient-mobile-nav-v1678__badge{
		align-items:center!important;
		background:#ef4444!important;
		border:2px solid #fff!important;
		border-radius:999px!important;
		color:#fff!important;
		display:flex!important;
		font-size:9px!important;
		font-weight:900!important;
		height:18px!important;
		justify-content:center!important;
		line-height:1!important;
		min-width:18px!important;
		padding:0 4px!important;
		position:absolute!important;
		right:7px!important;
		top:5px!important;
	}

	.opto-patient-mobile-more-backdrop-v1678{
		background:rgba(15,23,42,.34)!important;
		display:block!important;
		inset:0!important;
		position:fixed!important;
		z-index:2147483201!important;
	}

	.opto-patient-mobile-more-backdrop-v1678[hidden]{
		display:none!important;
	}

	.opto-patient-mobile-more-panel-v1678{
		background:#ffffff!important;
		border-radius:28px 28px 0 0!important;
		bottom:0!important;
		box-shadow:0 -18px 44px rgba(15,23,42,.22)!important;
		box-sizing:border-box!important;
		display:block!important;
		left:0!important;
		max-height:calc(100dvh - 36px)!important;
		overflow-y:auto!important;
		padding:18px 18px calc(112px + env(safe-area-inset-bottom,0px))!important;
		position:fixed!important;
		right:0!important;
		transform:translateY(105%)!important;
		transition:transform 180ms ease!important;
		z-index:2147483202!important;
	}

	.opto-patient-mobile-more-panel-v1678.is-open{
		transform:translateY(0)!important;
	}

	.opto-patient-mobile-more-panel-v1678__header{
		align-items:center!important;
		color:#10233f!important;
		display:flex!important;
		gap:12px!important;
		justify-content:space-between!important;
		margin-bottom:16px!important;
	}

	.opto-patient-mobile-more-panel-v1678__header strong{
		font-size:17px!important;
		font-weight:900!important;
	}

	.opto-patient-mobile-more-close-v1678{
		appearance:none!important;
		-webkit-appearance:none!important;
		background:#eef5f7!important;
		border:0!important;
		border-radius:999px!important;
		color:#10233f!important;
		cursor:pointer!important;
		font-family:inherit!important;
		font-size:13px!important;
		font-weight:850!important;
		padding:8px 14px!important;
	}

	.opto-patient-mobile-more-panel-v1678__grid{
		display:grid!important;
		gap:10px!important;
		grid-template-columns:repeat(2,minmax(0,1fr))!important;
	}

	.opto-patient-mobile-more-panel-v1678__grid a,
	.opto-patient-mobile-more-panel-v1678__action{
		appearance:none!important;
		-webkit-appearance:none!important;
		align-items:center!important;
		background:#f6fafb!important;
		border:1px solid rgba(120,167,177,.25)!important;
		border-radius:17px!important;
		box-shadow:none!important;
		box-sizing:border-box!important;
		color:#10233f!important;
		cursor:pointer!important;
		display:flex!important;
		font-family:inherit!important;
		font-size:13px!important;
		font-weight:850!important;
		gap:8px!important;
		justify-content:center!important;
		line-height:1.15!important;
		min-height:56px!important;
		padding:12px!important;
		position:relative!important;
		text-align:center!important;
		text-decoration:none!important;
		width:100%!important;
	}

	.opto-patient-mobile-more-panel-v1678__grid a:hover,
	.opto-patient-mobile-more-panel-v1678__grid a:focus,
	.opto-patient-mobile-more-panel-v1678__grid a.is-active,
	.opto-patient-mobile-more-panel-v1678__action:hover,
	.opto-patient-mobile-more-panel-v1678__action:focus{
		background:rgba(109,172,184,.15)!important;
		color:#4f9dac!important;
		outline:none!important;
	}

	.opto-patient-mobile-more-panel-v1678__grid a em{
		align-items:center!important;
		background:#ef4444!important;
		border-radius:999px!important;
		color:#fff!important;
		display:inline-flex!important;
		font-size:10px!important;
		font-style:normal!important;
		font-weight:900!important;
		height:20px!important;
		justify-content:center!important;
		line-height:1!important;
		min-width:20px!important;
		padding:0 6px!important;
	}

	.opto-patient-mobile-more-panel-v1678__form{
		display:block!important;
		margin:0!important;
		padding:0!important;
	}

	.opto-patient-mobile-more-panel-v1678__action.is-logout{
		background:#fef2f2!important;
		border-color:#fecaca!important;
		color:#b91c1c!important;
	}
}


/* ==========================================================
   v1.6.8 — Calendario móvil avanzado
   ========================================================== */
.opto-mobile-calendar-v168{display:none;}
@media (max-width: 900px){
  .opto-patient-portal-v168.opto-patient-section-programa>#opto-patient-calendar{background:transparent !important;border:0 !important;box-shadow:none !important;margin:0 !important;padding:0 !important;}
  .opto-patient-portal-v168.opto-patient-section-programa>#opto-patient-calendar>.opto-patient-section-title,
  .opto-patient-portal-v168.opto-patient-section-programa>#opto-patient-calendar>[data-opto-view-panel]{display:none !important;}
  .opto-mobile-calendar-v168{display:block;background:linear-gradient(180deg,#f7fdff 0%,#fff 100%);border:1px solid rgba(120,167,177,.28);border-radius:26px;box-shadow:0 18px 42px rgba(15,23,42,.07);margin:16px 0 18px;padding:14px;overflow:hidden;}
  .opto-mobile-calendar-v168__hero{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px;}
  .opto-mobile-calendar-v168__hero h4{color:#0b1f3a;font-size:1.35rem;line-height:1.08;margin:0 0 4px;}
  .opto-mobile-calendar-v168__hero span{color:#64748b;font-size:.92rem;font-weight:800;}
  .opto-mobile-calendar-train-now-v168{flex:0 0 auto;min-height:44px;white-space:nowrap;}
  .opto-mobile-calendar-v168__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px;}
  .opto-mobile-calendar-v168__stats div{background:#fff;border:1px solid rgba(120,167,177,.24);border-radius:18px;padding:10px 8px;text-align:center;}
  .opto-mobile-calendar-v168__stats span{color:#64748b;display:block;font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;}
  .opto-mobile-calendar-v168__stats strong{color:#0b1f3a;display:block;font-size:1.35rem;line-height:1.1;margin-top:4px;}
  .opto-mobile-calendar-v168__stats .has-overdue{background:#fff7ed;border-color:#fed7aa;}
  .opto-mobile-calendar-v168__stats .has-overdue strong{color:#c2410c;}
  .opto-mobile-calendar-overdue-v168{align-items:flex-start;background:#fff7ed;border:1px solid #fed7aa;border-radius:18px;color:#9a3412;display:grid;gap:2px;margin:0 0 12px;padding:11px 12px;}
  .opto-mobile-calendar-overdue-v168 strong{color:#9a3412;font-size:.96rem;}
  .opto-mobile-calendar-overdue-v168 span{font-size:.88rem;}
  .opto-mobile-calendar-v168__views,.opto-mobile-calendar-v168__filters{display:flex;gap:8px;margin:0 0 10px;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .opto-mobile-calendar-v168__views::-webkit-scrollbar,.opto-mobile-calendar-v168__filters::-webkit-scrollbar{display:none;}
  .opto-mobile-calendar-v168__views button,.opto-mobile-calendar-v168__filters button{appearance:none;background:#fff;border:1px solid rgba(120,167,177,.28);border-radius:999px;color:#19324d;cursor:pointer;flex:0 0 auto;font-family:inherit;font-size:12px;font-weight:900;min-height:38px;padding:8px 13px;}
  .opto-mobile-calendar-v168__views button.is-active,.opto-mobile-calendar-v168__filters button.is-active{background:#5aa8b7;border-color:#5aa8b7;color:#fff;box-shadow:0 8px 18px rgba(90,168,183,.22);}
  .opto-mobile-calendar-v168__panel[hidden]{display:none !important;}
  .opto-mobile-calendar-list-v168{display:grid;gap:9px;}
  .opto-mobile-calendar-card-v168{align-items:center;background:#fff;border:1px solid rgba(120,167,177,.24);border-radius:18px;color:#10233f;display:grid;gap:10px;grid-template-columns:auto minmax(0,1fr) auto;min-height:66px;padding:10px;text-align:left;text-decoration:none;width:100%;}
  button.opto-mobile-calendar-card-v168{appearance:none;cursor:pointer;font-family:inherit;}
  .opto-mobile-calendar-card-v168__icon{align-items:center;background:#eef8fa;border-radius:16px;color:#4f9dac;display:flex;font-size:18px;height:44px;justify-content:center;width:44px;}
  .opto-mobile-calendar-card-v168__body{min-width:0;}
  .opto-mobile-calendar-card-v168__body strong{color:#10233f;display:block;font-size:.96rem;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .opto-mobile-calendar-card-v168__body small{color:#64748b;display:block;font-size:.78rem;line-height:1.25;margin-top:3px;}
  .opto-mobile-calendar-card-v168__state{align-items:center;background:#f1f5f9;border-radius:999px;color:#475569;display:inline-flex;font-size:10px;font-weight:900;justify-content:center;max-width:96px;min-height:26px;padding:5px 8px;text-align:center;text-decoration:none;}
  .opto-mobile-calendar-card-v168.is-completed{background:#f0fdf4;border-color:#bbf7d0;}
  .opto-mobile-calendar-card-v168.is-completed .opto-mobile-calendar-card-v168__state{background:#dcfce7;color:#166534;}
  .opto-mobile-calendar-card-v168.is-overdue{background:#fff7ed;border-color:#fed7aa;}
  .opto-mobile-calendar-card-v168.is-overdue .opto-mobile-calendar-card-v168__state{background:#ffedd5;color:#c2410c;}
  .opto-mobile-calendar-card-v168.is-form .opto-mobile-calendar-card-v168__icon{background:#eef2ff;color:#4f46e5;}
  .opto-mobile-calendar-card-v168.is-message .opto-mobile-calendar-card-v168__icon{background:#ecfeff;color:#0891b2;}
  .opto-mobile-calendar-card-v168.is-appointment .opto-mobile-calendar-card-v168__icon{background:#fef3c7;color:#b45309;}
  .opto-mobile-calendar-week-v168{display:grid;gap:10px;}
  .opto-mobile-calendar-week-day-v168{background:#f8fbfd;border:1px solid rgba(120,167,177,.22);border-radius:20px;padding:10px;}
  .opto-mobile-calendar-week-day-v168>header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px;}
  .opto-mobile-calendar-week-day-v168>header div{align-items:center;display:flex;gap:8px;}
  .opto-mobile-calendar-week-day-v168>header span{color:#64748b;font-size:11px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;}
  .opto-mobile-calendar-week-day-v168>header strong{align-items:center;background:#fff;border:1px solid rgba(120,167,177,.24);border-radius:999px;color:#10233f;display:flex;height:32px;justify-content:center;min-width:32px;padding:0 9px;}
  .opto-mobile-calendar-week-day-v168>header small{background:#fff;border-radius:999px;color:#64748b;font-weight:900;padding:5px 8px;}
  .opto-mobile-calendar-week-day-v168.is-today{border-color:#5aa8b7;box-shadow:0 8px 18px rgba(90,168,183,.12);}
  .opto-mobile-calendar-week-day-v168.has-overdue{background:#fff7ed;border-color:#fed7aa;}
  .opto-mobile-calendar-week-day-v168 .opto-mobile-calendar-card-v168{margin-top:8px;}
  .opto-mobile-calendar-empty-v168{background:#fff;border:1px dashed rgba(120,167,177,.3);border-radius:16px;color:#64748b;display:block;font-weight:800;padding:12px;text-align:center;}
  .opto-mobile-calendar-no-results-v168{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:16px;color:#64748b;font-weight:800;margin-top:10px;padding:12px;text-align:center;}
  .opto-mobile-calendar-no-results-v168[hidden]{display:none !important;}
}
@media (max-width: 520px){
  .opto-mobile-calendar-v168{border-radius:22px;margin-left:-2px;margin-right:-2px;padding:12px;}
  .opto-mobile-calendar-v168__hero{display:grid;grid-template-columns:1fr;}
  .opto-mobile-calendar-train-now-v168{justify-content:center;width:100%;}
  .opto-mobile-calendar-v168__stats{grid-template-columns:repeat(2,minmax(0,1fr));}
  .opto-mobile-calendar-card-v168{grid-template-columns:auto minmax(0,1fr);}
  .opto-mobile-calendar-card-v168__state{grid-column:2;justify-self:start;max-width:none;}
}


/* ==========================================================
   v1.6.9 — Centro de estado de la PWA
   ========================================================== */
.opto-patient-app-status-v169{background:linear-gradient(180deg,#f8fdff 0%,#fff 100%);border:1px solid rgba(120,167,177,.25);border-radius:28px;box-shadow:0 20px 52px rgba(15,23,42,.07);padding:24px;}
.opto-patient-app-status-title-v169{align-items:flex-start;display:flex;gap:18px;justify-content:space-between;margin-bottom:18px;}
.opto-patient-app-status-overall-v169{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;color:#475569;display:inline-flex;flex:0 0 auto;gap:9px;min-height:42px;padding:8px 14px;}
.opto-patient-app-status-overall-v169 span,.opto-status-dot-v169{background:#94a3b8;border-radius:999px;box-shadow:0 0 0 5px rgba(148,163,184,.15);display:inline-flex;height:10px;width:10px;}
.opto-patient-app-status-overall-v169 strong{font-size:13px;font-weight:900;white-space:nowrap;}
.opto-patient-app-status-overall-v169[data-status="ok"]{background:#f0fdf4;border-color:#bbf7d0;color:#166534;}
.opto-patient-app-status-overall-v169[data-status="ok"] span{background:#22c55e;box-shadow:0 0 0 5px rgba(34,197,94,.15);}
.opto-patient-app-status-overall-v169[data-status="warning"]{background:#fff7ed;border-color:#fed7aa;color:#9a3412;}
.opto-patient-app-status-overall-v169[data-status="warning"] span{background:#f97316;box-shadow:0 0 0 5px rgba(249,115,22,.15);}
.opto-patient-app-status-overall-v169[data-status="error"]{background:#fef2f2;border-color:#fecaca;color:#b91c1c;}
.opto-patient-app-status-overall-v169[data-status="error"] span{background:#ef4444;box-shadow:0 0 0 5px rgba(239,68,68,.15);}
.opto-patient-app-status-grid-v169{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));}
.opto-patient-app-status-item-v169{align-items:flex-start;background:#fff;border:1px solid rgba(120,167,177,.22);border-radius:20px;display:flex;gap:12px;min-height:112px;padding:15px;}
.opto-patient-app-status-item-v169 small{color:#64748b;display:block;font-size:11px;font-weight:900;letter-spacing:.055em;margin-bottom:5px;text-transform:uppercase;}
.opto-patient-app-status-item-v169 strong{color:#10233f;display:block;font-size:1.05rem;line-height:1.15;}
.opto-patient-app-status-item-v169 em{color:#64748b;display:block;font-size:.84rem;font-style:normal;line-height:1.35;margin-top:6px;}
.opto-patient-app-status-item-v169[data-status="ok"] .opto-status-dot-v169{background:#22c55e;box-shadow:0 0 0 5px rgba(34,197,94,.14);}
.opto-patient-app-status-item-v169[data-status="warning"]{background:#fffaf0;border-color:#fed7aa;}
.opto-patient-app-status-item-v169[data-status="warning"] .opto-status-dot-v169{background:#f97316;box-shadow:0 0 0 5px rgba(249,115,22,.15);}
.opto-patient-app-status-item-v169[data-status="error"]{background:#fff5f5;border-color:#fecaca;}
.opto-patient-app-status-item-v169[data-status="error"] .opto-status-dot-v169{background:#ef4444;box-shadow:0 0 0 5px rgba(239,68,68,.15);}
.opto-patient-app-status-item-v169[data-status="info"] .opto-status-dot-v169{background:#3b82f6;box-shadow:0 0 0 5px rgba(59,130,246,.15);}
.opto-patient-app-status-actions-v169{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;}
.opto-patient-app-status-actions-v169 .opto-button,.opto-patient-app-status-actions-v169 .opto-soft-button,.opto-patient-app-status-actions-v169 .opto-text-danger{appearance:none;border-radius:999px;cursor:pointer;font-family:inherit;font-weight:900;min-height:44px;padding:10px 16px;text-decoration:none;}
.opto-patient-app-status-actions-v169 .opto-text-danger{background:#fff;border:1px solid #fecaca;color:#b91c1c;}
.opto-patient-app-status-logout-v169{display:inline-flex;margin:0;padding:0;}
.opto-patient-app-status-help-v169{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:18px;color:#475569;font-size:.94rem;line-height:1.5;margin:16px 0 0;padding:13px 14px;}
.opto-patient-app-status-help-v169.is-ok{background:#f0fdf4;border-color:#bbf7d0;color:#166534;}
.opto-patient-app-status-help-v169.is-warning{background:#fff7ed;border-color:#fed7aa;color:#9a3412;}
.opto-patient-app-status-help-v169.is-error{background:#fef2f2;border-color:#fecaca;color:#b91c1c;}
@media(max-width:980px){.opto-patient-app-status-grid-v169{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:640px){.opto-patient-app-status-v169{border-radius:22px;margin-left:-2px;margin-right:-2px;padding:16px;}.opto-patient-app-status-title-v169{display:grid;}.opto-patient-app-status-overall-v169{justify-self:start;}.opto-patient-app-status-grid-v169{grid-template-columns:1fr;}.opto-patient-app-status-item-v169{min-height:0;}.opto-patient-app-status-actions-v169{display:grid;grid-template-columns:1fr;}.opto-patient-app-status-actions-v169 .opto-button,.opto-patient-app-status-actions-v169 .opto-soft-button,.opto-patient-app-status-actions-v169 .opto-text-danger,.opto-patient-app-status-logout-v169{justify-content:center;width:100%;}}

/* ==========================================================
   v1.6.11 — Pulido general Zona Pacientes
   ========================================================== */
.opto-patient-portal-v1610{
	--opto-patient-surface:#ffffff;
	--opto-patient-surface-soft:#f7fbfd;
	--opto-patient-border:rgba(120,167,177,.26);
	--opto-patient-border-strong:rgba(90,168,183,.38);
	--opto-patient-shadow-soft:0 18px 44px rgba(15,23,42,.07);
	--opto-patient-radius-lg:26px;
	--opto-patient-radius-md:20px;
	--opto-patient-mobile-nav-space:118px;
	isolation:isolate;
}
.opto-patient-portal-v1610,
.opto-patient-portal-v1610 *{
	box-sizing:border-box;
}
.opto-patient-portal-v1610 img,
.opto-patient-portal-v1610 video,
.opto-patient-portal-v1610 iframe,
.opto-patient-portal-v1610 svg{
	max-width:100%;
}
.opto-patient-portal-v1610 :where(.opto-patient-panel,.opto-patient-v155-panel,.opto-patient-v155-card,.opto-mobile-calendar-v168,.opto-patient-app-status-v169,.opto-patient-v157-card,.opto-public-thread,.opto-public-chat-shell,.opto-public-conversation-card,.opto-patient-form-card,.opto-patient-v157-empty,.opto-patient-empty,.opto-public-empty-day,.opto-public-empty-thread){
	border-color:var(--opto-patient-border)!important;
	box-shadow:var(--opto-patient-shadow-soft);
}
.opto-patient-portal-v1610 :where(.opto-patient-panel,.opto-patient-v155-panel,.opto-mobile-calendar-v168,.opto-patient-app-status-v169){
	border-radius:var(--opto-patient-radius-lg)!important;
}
.opto-patient-portal-v1610 :where(.opto-patient-v155-card,.opto-mobile-calendar-card-v168,.opto-patient-v157-empty,.opto-patient-empty,.opto-public-empty-day,.opto-public-empty-thread,.opto-patient-alert,.opto-patient-note){
	border-radius:var(--opto-patient-radius-md)!important;
}
.opto-patient-portal-v1610 :where(.opto-button,.opto-soft-button,button.opto-button,button.opto-soft-button,.opto-patient-v155-link,.opto-week-link,.opto-public-view-tabs button,.opto-mobile-calendar-v168__views button,.opto-mobile-calendar-v168__filters button,.opto-patient-mobile-more-panel-v1678__action){
	align-items:center;
	justify-content:center;
	min-height:44px;
	touch-action:manipulation;
}
.opto-patient-portal-v1610 :where(.opto-button,.opto-soft-button,.opto-patient-v155-link,.opto-week-link):focus-visible,
.opto-patient-portal-v1610 :where(a,button,input,select,textarea,summary):focus-visible{
	outline:3px solid rgba(90,168,183,.32)!important;
	outline-offset:3px!important;
}
.opto-patient-portal-v1610 :where(.opto-patient-alert,.opto-patient-note){
	align-items:flex-start;
	background:#f8fbfd;
	border:1px solid var(--opto-patient-border)!important;
	color:#334155;
	display:grid;
	gap:6px;
	line-height:1.45;
	padding:14px 16px;
}
.opto-patient-portal-v1610 .opto-patient-alert-ok{
	background:#f0fdf4!important;
	border-color:#bbf7d0!important;
	color:#166534!important;
}
.opto-patient-portal-v1610 .opto-patient-alert-error{
	background:#fff1f2!important;
	border-color:#fecdd3!important;
	color:#9f1239!important;
}
.opto-patient-portal-v1610 :where(.opto-patient-empty,.opto-patient-v157-empty,.opto-public-empty-day,.opto-public-empty-thread,.opto-mobile-calendar-empty-v168,.opto-mobile-calendar-no-results-v168){
	background:linear-gradient(180deg,#ffffff 0%,#f8fbfd 100%)!important;
	border:1px dashed var(--opto-patient-border-strong)!important;
	color:#64748b!important;
	font-weight:800;
	line-height:1.45;
}
.opto-patient-portal-v1610 :where(.opto-patient-empty,.opto-patient-v157-empty,.opto-mobile-calendar-no-results-v168) strong{
	color:#0b1f3a!important;
}
.opto-patient-portal-v1610 :where(input[type="text"],input[type="email"],input[type="password"],input[type="number"],input[type="tel"],input[type="url"],input[type="date"],select,textarea){
	background:#fff;
	border:1px solid rgba(120,167,177,.34);
	border-radius:15px;
	box-shadow:0 1px 0 rgba(15,23,42,.03);
	color:#0f172a;
	max-width:100%;
	width:100%;
}
.opto-patient-portal-v1610 textarea{
	min-height:104px;
	resize:vertical;
}
.opto-patient-portal-v1610 :where(input,select,textarea):focus{
	border-color:#5aa8b7!important;
	box-shadow:0 0 0 4px rgba(90,168,183,.14)!important;
	outline:none!important;
}
.opto-patient-portal-v1610 .opto-patient-form-loading-v1610{
	align-items:center;
	background:#f8fbfd;
	border:1px solid var(--opto-patient-border);
	border-radius:14px;
	color:#475569;
	display:none;
	font-size:13px;
	font-weight:900;
	gap:9px;
	line-height:1.25;
	margin-top:10px;
	padding:10px 12px;
}
.opto-patient-portal-v1610 form.is-submitting-v1610 .opto-patient-form-loading-v1610{
	display:flex;
}
.opto-patient-portal-v1610 .opto-patient-form-loading-v1610:before,
.opto-patient-portal-v1610 .opto-loader-v1610:before{
	animation:optoPatientSpinV1610 .8s linear infinite;
	border:2px solid rgba(90,168,183,.22);
	border-top-color:#5aa8b7;
	border-radius:999px;
	content:"";
	flex:0 0 16px;
	height:16px;
	width:16px;
}
@keyframes optoPatientSpinV1610{to{transform:rotate(360deg)}}
.opto-patient-portal-v1610 form.is-submitting-v1610 :where(button[type="submit"],input[type="submit"]){
	cursor:wait;
	opacity:.72;
}
.opto-patient-portal-v1610 :where(.opto-public-modal-panel,.opto-public-training-modal-v162 .opto-public-modal-panel){
	border:1px solid var(--opto-patient-border)!important;
	border-radius:28px!important;
	box-shadow:0 28px 80px rgba(15,23,42,.22)!important;
	max-height:calc(100dvh - 36px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))!important;
	overflow:auto!important;
	-webkit-overflow-scrolling:touch;
}
.opto-patient-portal-v1610 :where(.opto-training-navigation-v162,.opto-training-primary-actions-v162,.opto-public-exercise-actions,.opto-training-exercise-actions-v162){
	gap:10px;
}
.opto-patient-portal-v1610 .opto-public-modal-close{
	min-height:42px;
	min-width:42px;
}
.opto-patient-portal-v1610 .opto-patient-mobile-more-panel-v1678,
.opto-patient-portal-v1610 .opto-patient-mobile-nav-v1678{
	-webkit-tap-highlight-color:transparent;
}
.opto-patient-portal-v1610 .opto-patient-mobile-more-panel-v1678__grid a span,
.opto-patient-portal-v1610 .opto-patient-mobile-more-panel-v1678__action span:first-child{
	align-items:center;
	display:inline-flex;
	justify-content:center;
	min-width:22px;
}
.opto-patient-portal-v1610 .opto-patient-mobile-nav-v1678__badge,
.opto-patient-portal-v1610 .opto-patient-mobile-more-panel-v1678__grid a em{
	font-variant-numeric:tabular-nums;
}
body.opto-pwa-standalone .opto-patient-portal-v1610{
	padding-top:max(12px,env(safe-area-inset-top,0px));
}
body.opto-pwa-standalone .opto-patient-mobile-nav-v1678,
body.opto-patient-fullscreen-active .opto-patient-mobile-nav-v1678{
	bottom:max(10px,env(safe-area-inset-bottom,0px))!important;
}

@media(max-width:782px){
	body:has(.opto-patient-portal-v1610){
		background:#eef8fb;
		overflow-x:hidden!important;
	}
	.opto-patient-portal-v1610{
		border-radius:0;
		margin:0 auto!important;
		max-width:100vw!important;
		padding-bottom:calc(var(--opto-patient-mobile-nav-space,118px) + 16px + env(safe-area-inset-bottom,0px))!important;
		width:100%!important;
	}
	.opto-patient-portal-v1610 :where(.opto-patient-hero-v1582,.opto-patient-panel,.opto-patient-v155-panel,.opto-mobile-calendar-v168,.opto-patient-app-status-v169,.opto-patient-v155-card,.opto-patient-note,.opto-patient-alert){
		max-width:100%!important;
		min-width:0!important;
	}
	.opto-patient-portal-v1610 .opto-patient-hero-v1582{
		border-radius:24px!important;
		box-shadow:0 16px 36px rgba(15,23,42,.08);
		margin-bottom:14px!important;
	}
	.opto-patient-portal-v1610 .opto-patient-hero-main-v1582 p:last-child{
		font-size:.96rem!important;
		line-height:1.45!important;
	}
	.opto-patient-portal-v1610 #opto-patient-dashboard,
	.opto-patient-portal-v1610 .opto-patient-dashboard-v155,
	.opto-patient-portal-v1610 .opto-patient-home-grid-v155,
	.opto-patient-portal-v1610 .opto-patient-v155-actions,
	.opto-patient-portal-v1610 .opto-patient-v157-appointments-grid,
	.opto-patient-portal-v1610 .opto-patient-v157-doc-layout,
	.opto-patient-portal-v1610 .opto-patient-help-grid-v158,
	.opto-patient-portal-v1610 .opto-patient-app-status-grid-v169{
		display:grid!important;
		gap:12px!important;
		grid-template-columns:1fr!important;
	}
	.opto-patient-portal-v1610 .opto-patient-v155-card{
		align-items:center;
		gap:12px!important;
		grid-template-columns:auto minmax(0,1fr)!important;
		padding:16px!important;
	}
	.opto-patient-portal-v1610 .opto-patient-v155-card .opto-button,
	.opto-patient-portal-v1610 .opto-patient-v155-card .opto-patient-v155-link{
		grid-column:1/-1!important;
		justify-self:stretch!important;
		text-align:center!important;
		width:100%!important;
	}
	.opto-patient-portal-v1610 .opto-patient-v155-icon{
		border-radius:16px!important;
		font-size:22px!important;
		height:50px!important;
		width:50px!important;
	}
	.opto-patient-portal-v1610 .opto-mobile-calendar-v168,
	.opto-patient-portal-v1610 .opto-patient-app-status-v169,
	.opto-patient-portal-v1610 .opto-patient-panel,
	.opto-patient-portal-v1610 .opto-patient-v155-panel{
		border-radius:22px!important;
		padding:14px!important;
	}
	.opto-patient-portal-v1610 .opto-mobile-calendar-v168__hero,
	.opto-patient-portal-v1610 .opto-patient-app-status-title-v169,
	.opto-patient-portal-v1610 .opto-patient-v155-panel-head,
	.opto-patient-portal-v1610 .opto-patient-section-title{
		align-items:stretch!important;
		display:grid!important;
		gap:10px!important;
		grid-template-columns:1fr!important;
	}
	.opto-patient-portal-v1610 .opto-mobile-calendar-v168__views,
	.opto-patient-portal-v1610 .opto-mobile-calendar-v168__filters,
	.opto-patient-portal-v1610 .opto-public-view-tabs{
		margin-left:-2px;
		margin-right:-2px;
		padding:2px 2px 6px;
		scroll-snap-type:x proximity;
	}
	.opto-patient-portal-v1610 .opto-mobile-calendar-v168__views button,
	.opto-patient-portal-v1610 .opto-mobile-calendar-v168__filters button,
	.opto-patient-portal-v1610 .opto-public-view-tabs button{
		min-height:42px!important;
		scroll-snap-align:start;
	}
	.opto-patient-portal-v1610 .opto-mobile-calendar-card-v168{
		border-radius:17px!important;
		grid-template-columns:44px minmax(0,1fr)!important;
		min-height:68px!important;
		padding:10px!important;
	}
	.opto-patient-portal-v1610 .opto-mobile-calendar-card-v168__state{
		grid-column:2!important;
		justify-self:start!important;
		margin-top:2px;
	}
	.opto-patient-portal-v1610 :where(.opto-button,.opto-soft-button,.opto-patient-v155-link,.opto-week-link){
		min-height:46px!important;
		padding-left:14px!important;
		padding-right:14px!important;
	}
	.opto-patient-portal-v1610 :where(input[type="text"],input[type="email"],input[type="password"],input[type="number"],input[type="tel"],input[type="url"],input[type="date"],select,textarea){
		font-size:16px!important;
		min-height:46px!important;
	}
	.opto-patient-portal-v1610 textarea{
		min-height:118px!important;
	}
	.opto-patient-portal-v1610 :where(.opto-public-modal,.opto-public-modal[aria-hidden="false"]){
		padding:10px!important;
	}
	.opto-patient-portal-v1610 :where(.opto-public-modal-panel,.opto-public-training-modal-v162 .opto-public-modal-panel){
		border-radius:24px!important;
		max-height:calc(100dvh - 20px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))!important;
		padding:14px!important;
		width:100%!important;
	}
	.opto-patient-portal-v1610 :where(.opto-training-navigation-v162,.opto-training-primary-actions-v162,.opto-public-exercise-actions,.opto-training-exercise-actions-v162){
		display:grid!important;
		grid-template-columns:1fr!important;
	}
	.opto-patient-portal-v1610 :where(.opto-training-navigation-v162 .opto-soft-button,.opto-training-primary-actions-v162 .opto-button,.opto-public-exercise-actions .opto-button,.opto-public-exercise-actions .opto-soft-button){
		width:100%!important;
	}
	.opto-patient-portal-v1610 .opto-patient-mobile-more-panel-v1678{
		max-height:calc(100dvh - 18px - env(safe-area-inset-top,0px))!important;
		overflow:auto!important;
		padding-bottom:calc(var(--opto-patient-mobile-nav-space,118px) + 14px + env(safe-area-inset-bottom,0px))!important;
		-webkit-overflow-scrolling:touch;
	}
	.opto-patient-portal-v1610 .opto-patient-mobile-more-panel-v1678__grid{
		grid-template-columns:repeat(2,minmax(0,1fr))!important;
	}
	.opto-patient-portal-v1610 .opto-patient-mobile-more-panel-v1678__grid a,
	.opto-patient-portal-v1610 .opto-patient-mobile-more-panel-v1678__action{
		min-height:58px!important;
		padding:12px 10px!important;
	}
	.opto-patient-portal-v1610 .opto-patient-mobile-nav-v1678{
		contain:layout paint;
	}
}

@media(max-width:420px){
	.opto-patient-portal-v1610 .opto-patient-mobile-nav-v1678{
		border-radius:21px!important;
		gap:2px!important;
		padding:7px!important;
	}
	.opto-patient-portal-v1610 .opto-patient-mobile-nav-v1678__item{
		font-size:10px!important;
		min-height:56px!important;
		padding-left:2px!important;
		padding-right:2px!important;
	}
	.opto-patient-portal-v1610 .opto-patient-mobile-nav-v1678__icon{
		flex-basis:26px!important;
		height:26px!important;
		min-width:26px!important;
		width:26px!important;
	}
	.opto-patient-portal-v1610 .opto-patient-mobile-more-panel-v1678__grid{
		grid-template-columns:1fr!important;
	}
}

@media(prefers-reduced-motion:reduce){
	.opto-patient-portal-v1610 *,
	.opto-patient-portal-v1610 *:before,
	.opto-patient-portal-v1610 *:after{
		animation-duration:.01ms!important;
		animation-iteration-count:1!important;
		scroll-behavior:auto!important;
		transition-duration:.01ms!important;
	}
}

.opto-patient-portal-v1610 .opto-patient-table-scroll-v1610{
	max-width:100%;
	overflow-x:auto;
	-webkit-overflow-scrolling:touch;
}
@media(max-width:782px){
	.opto-patient-portal-v1610 .opto-patient-table-scroll-v1610{
		border:1px solid var(--opto-patient-border);
		border-radius:18px;
		margin:10px 0;
	}
	.opto-patient-portal-v1610 .opto-patient-table-scroll-v1610 table{
		min-width:620px;
	}
}

/* ==========================================================
   v1.6.11 — Aviso de sesión caducada en Zona Pacientes/PWA
   ========================================================== */
.opto-session-expired-banner {
    position: fixed;
    left: 14px;
    right: 14px;
    bottom: calc(var(--opto-mobile-nav-height, 92px) + 18px + env(safe-area-inset-bottom, 0px));
    z-index: 100000;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 16px;
    border-radius: 18px;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.18);
    color: #7c2d12;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.35;
}
.opto-session-expired-banner a,
.opto-session-expired-banner button {
    border: 0;
    border-radius: 999px;
    padding: 9px 14px;
    background: #9a3412;
    color: #fff;
    text-decoration: none;
    font-size: 13px;
    font-weight: 900;
    cursor: pointer;
}
@media (max-width: 768px) {
    .opto-session-expired-banner {
        bottom: calc(var(--opto-mobile-nav-height, 92px) + 16px + env(safe-area-inset-bottom, 0px));
    }
}

/* ==========================================================
   v1.6.13 — Seguridad básica para pacientes
   ========================================================== */
.opto-patient-security-card-v1613 {
    margin-top: 22px;
    padding: 22px;
    border-radius: 24px;
    border: 1px solid rgba(120, 167, 177, 0.24);
    background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(240,250,252,.9));
    box-shadow: 0 16px 42px rgba(15, 23, 42, 0.07);
}
.opto-patient-security-head-v1613 {
    display: flex;
    gap: 14px;
    align-items: center;
    margin-bottom: 18px;
}
.opto-patient-security-head-v1613 > span {
    width: 46px;
    height: 46px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(83, 154, 168, 0.15);
    flex: 0 0 auto;
}
.opto-patient-security-head-v1613 strong {
    display: block;
    color: #10233f;
    font-size: 18px;
    font-weight: 900;
}
.opto-patient-security-head-v1613 small,
.opto-patient-security-info-v1613 em,
.opto-patient-security-form-v1613 small {
    display: block;
    color: #64748b;
    font-size: 12px;
    line-height: 1.45;
    font-style: normal;
}
.opto-patient-security-grid-v1613 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}
.opto-patient-security-info-v1613 {
    padding: 14px;
    border-radius: 18px;
    border: 1px solid rgba(120, 167, 177, 0.22);
    background: #ffffff;
}
.opto-patient-security-info-v1613 small {
    display: block;
    margin-bottom: 5px;
    color: #5b7b89;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-size: 10px;
}
.opto-patient-security-info-v1613 strong {
    display: block;
    margin-bottom: 5px;
    color: #10233f;
    font-size: 15px;
    line-height: 1.2;
}
.opto-patient-security-actions-grid-v1613 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    align-items: start;
}
.opto-patient-security-form-v1613 {
    padding: 18px;
    border-radius: 20px;
    border: 1px solid rgba(120, 167, 177, 0.22);
    background: #ffffff;
}
.opto-patient-security-form-v1613 h4 {
    margin: 0 0 12px;
    color: #10233f;
    font-size: 16px;
    font-weight: 900;
}
.opto-patient-security-form-v1613 p {
    margin: 0 0 12px;
    color: #52677a;
    line-height: 1.55;
}
.opto-patient-security-form-v1613 label,
.opto-patient-inline-form-v1613 label {
    display: block;
    margin-bottom: 10px;
    color: #10233f;
    font-weight: 800;
}
.opto-patient-security-form-v1613 label span,
.opto-patient-inline-form-v1613 label span {
    display: block;
    margin-bottom: 5px;
    color: #52677a;
    font-size: 12px;
}
.opto-patient-security-form-v1613 input[type="password"],
.opto-patient-security-form-v1613 input[type="text"],
.opto-patient-auth-form input[name="opto_2fa_code"] {
    width: 100%;
    min-height: 44px;
    border-radius: 14px;
    border: 1px solid rgba(120, 167, 177, 0.34);
    padding: 10px 12px;
    background: #fff;
}
.opto-patient-password-meter-v1613 {
    margin: -2px 0 10px;
    padding: 10px 12px;
    border-radius: 14px;
    background: #f6fafb;
    border: 1px solid rgba(120, 167, 177, 0.20);
    color: #64748b;
    font-size: 12px;
    line-height: 1.45;
}
.opto-patient-password-meter-v1613.is-weak {
    background: #fff7ed;
    border-color: rgba(217, 119, 6, 0.35);
    color: #92400e;
}
.opto-patient-password-meter-v1613.is-ok {
    background: #ecfdf5;
    border-color: rgba(16, 185, 129, 0.32);
    color: #065f46;
}
.opto-patient-2fa-status-v1613 {
    margin: 0 0 12px;
    padding: 12px 14px;
    border-radius: 16px;
    background: #ecfdf5;
    border: 1px solid rgba(16, 185, 129, 0.25);
    color: #065f46;
    font-weight: 800;
}
.opto-patient-2fa-setup-v1613 {
    display: grid;
    grid-template-columns: 170px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    margin-bottom: 12px;
}
.opto-patient-2fa-qr-v1613 {
    min-height: 160px;
    border-radius: 18px;
    border: 1px solid rgba(120, 167, 177, 0.28);
    background: #fff;
    padding: 12px;
}
.opto-patient-2fa-setup-v1613 code,
.opto-patient-recovery-codes-v1613 code {
    display: inline-block;
    padding: 6px 8px;
    border-radius: 10px;
    background: #f1f5f9;
    color: #10233f;
    font-weight: 800;
    letter-spacing: .04em;
}
.opto-patient-recovery-codes-v1613 {
    margin: 12px 0;
    padding: 14px;
    border-radius: 18px;
    background: #f8fafc;
    border: 1px solid rgba(120, 167, 177, 0.24);
}
.opto-patient-recovery-codes-v1613 ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 10px 0 0;
    padding: 0;
    list-style: none;
}
.opto-patient-inline-form-v1613 {
    margin-top: 10px;
}
.opto-patient-current-session-v1613 {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid rgba(120, 167, 177, 0.20);
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
}
.opto-patient-2fa-login-field-v1613 {
    margin-top: 10px;
}
@media (max-width: 1024px) {
    .opto-patient-security-grid-v1613 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .opto-patient-security-actions-grid-v1613 { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    .opto-patient-security-card-v1613 { padding: 16px; border-radius: 20px; }
    .opto-patient-security-grid-v1613 { grid-template-columns: 1fr; }
    .opto-patient-2fa-setup-v1613 { grid-template-columns: 1fr; }
    .opto-patient-current-session-v1613 { display: grid; grid-template-columns: 1fr; }
    .opto-patient-current-session-v1613 form,
    .opto-patient-current-session-v1613 button { width: 100%; }
    .opto-patient-recovery-codes-v1613 ul { grid-template-columns: 1fr; }
}

/* ==========================================================
   v1.6.14 — RGPD aplicado al portal del paciente
   ========================================================== */
.opto-patient-portal-v1614 > #opto-patient-privacy{display:none !important;}
.opto-patient-portal-v1614.opto-patient-section-privacidad > #opto-patient-privacy{display:block !important;}
.opto-patient-privacy-v1614{background:#fff;border:1px solid #dbe7ef;border-radius:24px;box-shadow:0 18px 45px rgba(15,23,42,.055);padding:24px;}
.opto-patient-privacy-status-v1614{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin:16px 0 20px;}
.opto-patient-privacy-status-v1614 div{background:#f8fbfd;border:1px solid #dbe7ef;border-radius:18px;padding:14px;}
.opto-patient-privacy-status-v1614 span{color:#5d7184;display:block;font-size:12px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;}
.opto-patient-privacy-status-v1614 strong{color:#0b1f3a;display:block;font-size:1.05rem;margin-top:5px;}
.opto-patient-privacy-required-v1614{background:#fff7ed;border:1px solid #fed7aa;border-radius:18px;color:#7c2d12;font-weight:800;margin:12px 0 18px;padding:14px 16px;}
.opto-patient-privacy-grid-v1614{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));margin:18px 0;}
.opto-patient-privacy-card-v1614{background:#f8fbfd;border:1px solid #dbe7ef;border-radius:18px;padding:16px;}
.opto-patient-privacy-card-v1614 h4{color:#0b1f3a;font-size:1rem;margin:0 0 8px;}
.opto-patient-privacy-card-v1614 p{color:#475569;margin:0;}
.opto-patient-privacy-form-v1614{background:#f8fbfd;border:1px solid #dbe7ef;border-radius:20px;margin-top:20px;padding:18px;}
.opto-patient-privacy-form-v1614 h4{margin:0 0 10px;}
.opto-patient-privacy-form-v1614 label{align-items:flex-start;background:#fff;border:1px solid #e0edf3;border-radius:14px;color:#334155;display:flex;gap:10px;margin:10px 0;padding:12px;}
.opto-patient-privacy-form-v1614 input[type="checkbox"]{margin-top:3px;}
.opto-patient-privacy-form-v1614 .opto-button{margin-top:12px;}
.opto-patient-privacy-link-v1614{background:#f8fbfd;border:1px solid #dbe7ef;border-radius:16px;margin-top:14px;padding:14px;}
.opto-patient-privacy-link-v1614 a{color:var(--opto-patient-primary-dark,#0b7285);font-weight:900;text-decoration:none;}
@media(max-width:760px){.opto-patient-privacy-v1614{padding:18px;}.opto-patient-privacy-status-v1614,.opto-patient-privacy-grid-v1614{grid-template-columns:1fr;}.opto-patient-privacy-form-v1614{padding:14px;}}
.opto-privacy-layout-v1614{display:grid;gap:18px;grid-template-columns:minmax(0,1.35fr) minmax(280px,.75fr);}
.opto-privacy-texts-v1614{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));}
.opto-privacy-texts-v1614 article,.opto-privacy-acceptance-card-v1614{background:#f8fbfd;border:1px solid #dbe7ef;border-radius:18px;padding:16px;}
.opto-privacy-texts-v1614 h4,.opto-privacy-acceptance-card-v1614 h4{color:#0b1f3a;margin:0 0 8px;}
.opto-privacy-texts-v1614 p{color:#475569;margin:0 0 8px;}
.opto-privacy-acceptance-card-v1614 ul{background:#fff;border:1px solid #e0edf3;border-radius:14px;list-style:none;margin:0 0 14px;padding:12px;}
.opto-privacy-acceptance-card-v1614 li{color:#334155;margin:0 0 7px;}
.opto-privacy-consent-form-v1614 label{align-items:flex-start;background:#fff;border:1px solid #e0edf3;border-radius:14px;color:#334155;display:flex;gap:10px;margin:10px 0;padding:12px;}
.opto-privacy-consent-form-v1614 input[type="checkbox"]{margin-top:3px;}
.opto-privacy-status-pill-v1614{border-radius:999px;font-size:12px;font-weight:900;padding:8px 12px;white-space:nowrap;}
.opto-privacy-status-pill-v1614.is-ok{background:#dcfce7;color:#166534;}
.opto-privacy-status-pill-v1614.is-warning{background:#ffedd5;color:#9a3412;}
@media(max-width:900px){.opto-privacy-layout-v1614,.opto-privacy-texts-v1614{grid-template-columns:1fr;}}


/* ==========================================================
   v1.6.14.1 — Pantalla RGPD compacta y bloqueo inicial
   ========================================================== */
.opto-patient-portal-v16141.opto-patient-privacy-lock-v16141{
  grid-template-columns:minmax(0,1fr) !important;
  max-width:1420px !important;
}
.opto-patient-portal-v16141.opto-patient-privacy-lock-v16141>.opto-patient-brand-strip,
.opto-patient-portal-v16141.opto-patient-privacy-lock-v16141>.opto-patient-hero-v155,
.opto-patient-portal-v16141.opto-patient-privacy-lock-v16141>section,
.opto-patient-portal-v16141.opto-patient-privacy-lock-v16141>.opto-patient-alert{
  grid-column:1 !important;
}
.opto-patient-portal-v16141.opto-patient-privacy-lock-v16141>.opto-patient-brand-strip{
  position:relative !important;
  top:auto !important;
  border-radius:26px !important;
  min-height:auto !important;
  margin-bottom:16px !important;
}
.opto-patient-portal-v16141.opto-patient-privacy-lock-v16141>.opto-patient-app-sidebar-v158,
.opto-patient-portal-v16141.opto-patient-privacy-lock-v16141>.opto-patient-mobile-nav-v1678,
.opto-patient-portal-v16141.opto-patient-privacy-lock-v16141>.opto-patient-mobile-more-backdrop-v1678,
.opto-patient-portal-v16141.opto-patient-privacy-lock-v16141>.opto-patient-mobile-more-panel-v1678{
  display:none !important;
}
.opto-patient-portal-v16141 .opto-privacy-required-v1614{
  margin:0 0 14px !important;
  max-width:none !important;
}
.opto-patient-portal-v16141 .opto-privacy-layout-v16141{
  display:grid;
  gap:18px;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.75fr);
  align-items:start;
}
.opto-patient-portal-v16141 .opto-privacy-info-panel-v16141,
.opto-patient-portal-v16141 .opto-privacy-acceptance-card-v16141{
  background:#ffffff;
  border:1px solid #dbe7ef;
  border-radius:24px;
  box-shadow:0 18px 42px rgba(15,23,42,.055);
  padding:18px;
}
.opto-patient-portal-v16141 .opto-privacy-acceptance-card-v16141{
  position:sticky;
  top:18px;
}
.opto-patient-portal-v16141 .opto-privacy-intro-v16141{
  align-items:flex-start;
  background:linear-gradient(135deg,#e9fbfc,#ffffff);
  border:1px solid #c8edf2;
  border-radius:20px;
  display:grid;
  gap:12px;
  grid-template-columns:auto 1fr;
  margin-bottom:14px;
  padding:14px;
}
.opto-patient-portal-v16141 .opto-privacy-intro-v16141>span{
  align-items:center;
  background:#dff8fb;
  border-radius:16px;
  color:#007c95;
  display:flex;
  font-size:23px;
  height:46px;
  justify-content:center;
  width:46px;
}
.opto-patient-portal-v16141 .opto-privacy-intro-v16141 strong,
.opto-patient-portal-v16141 .opto-privacy-acceptance-head-v16141 h4{
  color:#0b1f3a;
  display:block;
  font-size:1.12rem;
  margin:0 0 4px;
}
.opto-patient-portal-v16141 .opto-privacy-intro-v16141 p,
.opto-patient-portal-v16141 .opto-privacy-acceptance-head-v16141 p{
  color:#475569;
  margin:0;
}
.opto-patient-portal-v16141 .opto-privacy-summary-grid-v16141{
  display:grid;
  gap:12px;
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.opto-patient-portal-v16141 .opto-privacy-summary-grid-v16141 article{
  background:#f8fbfd;
  border:1px solid #e0edf3;
  border-radius:18px;
  min-height:128px;
  padding:14px;
}
.opto-patient-portal-v16141 .opto-privacy-summary-grid-v16141 h4{
  color:#2f91a8;
  font-size:1rem;
  margin:0 0 8px;
}
.opto-patient-portal-v16141 .opto-privacy-summary-grid-v16141 p{
  color:#475569;
  font-size:.94rem;
  line-height:1.45;
  margin:0 0 8px;
}
.opto-patient-portal-v16141 .opto-privacy-acceptance-head-v16141{
  align-items:flex-start;
  display:flex;
  gap:12px;
  justify-content:space-between;
  margin-bottom:12px;
}
.opto-patient-portal-v16141 .opto-privacy-meta-v16141{
  background:#f8fbfd;
  border:1px solid #e0edf3;
  border-radius:18px;
  display:grid;
  gap:8px;
  margin:0 0 14px;
  padding:12px;
}
.opto-patient-portal-v16141 .opto-privacy-meta-v16141 div{
  align-items:start;
  display:grid;
  gap:10px;
  grid-template-columns:minmax(120px,.8fr) 1fr;
}
.opto-patient-portal-v16141 .opto-privacy-meta-v16141 dt{
  color:#64748b;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.opto-patient-portal-v16141 .opto-privacy-meta-v16141 dd{
  color:#0b1f3a;
  font-weight:800;
  margin:0;
  text-align:right;
}
.opto-patient-portal-v16141 .opto-privacy-consent-form-v16141{
  display:grid;
  gap:14px;
}
.opto-patient-portal-v16141 .opto-privacy-consent-group-v16141{
  border:0;
  display:grid;
  gap:10px;
  margin:0;
  padding:0;
}
.opto-patient-portal-v16141 .opto-privacy-consent-group-v16141 legend{
  color:#0b1f3a;
  font-size:.86rem;
  font-weight:950;
  letter-spacing:.06em;
  margin:0 0 8px;
  text-transform:uppercase;
}
.opto-patient-portal-v16141 .opto-privacy-consent-form-v16141 label{
  align-items:center !important;
  background:#ffffff !important;
  border:1px solid #dbe7ef !important;
  border-radius:17px !important;
  color:#334155 !important;
  display:grid !important;
  gap:12px !important;
  grid-template-columns:22px minmax(0,1fr) auto !important;
  justify-content:initial !important;
  margin:0 !important;
  min-height:70px;
  padding:12px 14px !important;
  text-align:left !important;
}
.opto-patient-portal-v16141 .opto-privacy-consent-form-v16141 input[type="checkbox"]{
  appearance:auto !important;
  height:18px !important;
  margin:0 !important;
  position:static !important;
  width:18px !important;
}
.opto-patient-portal-v16141 .opto-privacy-consent-form-v16141 label span{
  display:grid;
  gap:3px;
  min-width:0;
}
.opto-patient-portal-v16141 .opto-privacy-consent-form-v16141 label strong{
  color:#0b1f3a;
  font-size:.96rem;
  line-height:1.2;
}
.opto-patient-portal-v16141 .opto-privacy-consent-form-v16141 label small{
  color:#64748b;
  font-size:.86rem;
  line-height:1.35;
}
.opto-patient-portal-v16141 .opto-privacy-consent-form-v16141 label em{
  border-radius:999px;
  font-size:.72rem;
  font-style:normal;
  font-weight:950;
  padding:6px 9px;
  white-space:nowrap;
}
.opto-patient-portal-v16141 .opto-privacy-consent-group-v16141.is-required label em{
  background:#ffedd5;
  color:#9a3412;
}
.opto-patient-portal-v16141 .opto-privacy-consent-group-v16141.is-optional label em{
  background:#e0f2fe;
  color:#0369a1;
}
.opto-patient-portal-v16141 .opto-privacy-consent-form-v16141 .opto-button{
  justify-self:start;
  margin-top:2px;
}
.opto-patient-portal-v16141 .opto-privacy-lock-logout-v16141{
  border-top:1px solid #e0edf3;
  margin-top:12px;
  padding-top:12px;
}
@media(max-width:1100px){
  .opto-patient-portal-v16141 .opto-privacy-layout-v16141{grid-template-columns:1fr;}
  .opto-patient-portal-v16141 .opto-privacy-acceptance-card-v16141{position:relative;top:auto;}
}
@media(max-width:760px){
  .opto-patient-portal-v16141 .opto-privacy-summary-grid-v16141{grid-template-columns:1fr;}
  .opto-patient-portal-v16141 .opto-privacy-acceptance-head-v16141{display:grid;}
  .opto-patient-portal-v16141 .opto-privacy-meta-v16141 div{grid-template-columns:1fr;gap:3px;}
  .opto-patient-portal-v16141 .opto-privacy-meta-v16141 dd{text-align:left;}
  .opto-patient-portal-v16141 .opto-privacy-consent-form-v16141 label{grid-template-columns:22px minmax(0,1fr) !important;}
  .opto-patient-portal-v16141 .opto-privacy-consent-form-v16141 label em{grid-column:2;justify-self:start;}
}

/* ==========================================================
   v1.6.14.2 — Privacidad: enlaces legales, canales recomendados y pie limpio
   ========================================================== */
.opto-patient-portal-v16141 .opto-privacy-legal-docs-v16142{
  display:grid;
  gap:10px;
  margin:0 0 14px;
}
.opto-patient-portal-v16141 .opto-privacy-legal-docs-v16142 details{
  background:#f8fbfd;
  border:1px solid #dbe7ef;
  border-radius:16px;
  overflow:hidden;
}
.opto-patient-portal-v16141 .opto-privacy-legal-docs-v16142 details[open]{
  box-shadow:0 12px 28px rgba(15,23,42,.045);
}
.opto-patient-portal-v16141 .opto-privacy-legal-docs-v16142 summary{
  color:#0b1f3a;
  cursor:pointer;
  font-size:.92rem;
  font-weight:950;
  list-style-position:inside;
  padding:12px 14px;
}
.opto-patient-portal-v16141 .opto-privacy-legal-docs-v16142 details>div{
  border-top:1px solid #e0edf3;
  color:#475569;
  font-size:.9rem;
  line-height:1.48;
  padding:12px 14px 14px;
}
.opto-patient-portal-v16141 .opto-privacy-legal-docs-v16142 p{
  margin:0 0 8px;
}
.opto-patient-portal-v16141 .opto-privacy-legal-link-v16142{
  color:#2f91a8;
  font-weight:900;
  text-decoration:underline;
  text-underline-offset:2px;
}
.opto-patient-portal-v16141 .opto-privacy-channel-note-v16142{
  background:#f0f9ff;
  border:1px solid #bae6fd;
  border-radius:14px;
  color:#075985;
  font-size:.86rem;
  line-height:1.4;
  margin:0 0 2px;
  padding:10px 12px;
}
.opto-patient-portal-v16141 .opto-privacy-actions-v16142{
  border-top:1px solid #e0edf3;
  margin-top:4px;
  padding-top:14px;
}
.opto-patient-portal-v16141 .opto-privacy-footnote-v16142{
  align-items:flex-start;
  background:#f8fbfd;
  border:1px solid #e0edf3;
  border-radius:16px;
  color:#64748b;
  display:grid;
  gap:10px;
  grid-template-columns:auto 1fr;
  margin-top:14px;
  padding:12px 14px;
}
.opto-patient-portal-v16141 .opto-privacy-footnote-v16142 span{
  line-height:1.25;
}
.opto-patient-portal-v16141 .opto-privacy-footnote-v16142 p{
  font-size:.84rem;
  line-height:1.4;
  margin:0;
}
@media(max-width:760px){
  .opto-patient-portal-v16141 .opto-privacy-footnote-v16142{grid-template-columns:1fr;}
}

/* ==========================================================
   v1.6.16 — Estabilidad del gestor de tareas para casa
   ========================================================== */
.opto-home-task-summary-v1616 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 18px 0 18px;
}
.opto-home-task-summary-v1616 article {
    min-height: 116px;
    padding: 18px;
    border: 1px solid rgba(120, 167, 177, 0.25);
    border-radius: 22px;
    background: #f8fbfc;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
}
.opto-home-task-summary-v1616 article.has-alert {
    background: #fff8ee;
    border-color: rgba(218, 137, 38, 0.32);
}
.opto-home-task-summary-v1616 span {
    display: block;
    margin-bottom: 8px;
    color: #5b9cad;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.opto-home-task-summary-v1616 strong {
    display: block;
    color: #10233f;
    font-size: 21px;
    line-height: 1.15;
}
.opto-home-task-summary-v1616 small {
    display: block;
    margin-top: 8px;
    color: #49637f;
    line-height: 1.35;
}
.opto-task-status-pill-v1616 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 6px 12px;
    border-radius: 999px;
    background: #eef6f8;
    color: #1c5b6a;
    font-size: 12px;
    font-weight: 900;
}
.opto-task-status-pill-v1616.is-overdue,
.opto-mobile-calendar-card-v168.is-overdue .opto-mobile-calendar-card-v168__state,
.opto-patient-exercise-card-v156.is-overdue em {
    background: #fff3e2;
    color: #9a5514;
}
.opto-task-status-pill-v1616.is-omitted,
.opto-mobile-calendar-card-v168.is-omitted .opto-mobile-calendar-card-v168__state,
.opto-patient-exercise-card-v156.is-omitted em {
    background: #f2f4f7;
    color: #5b6472;
}
.opto-task-status-pill-v1616.is-reviewed,
.opto-mobile-calendar-card-v168.is-reviewed .opto-mobile-calendar-card-v168__state,
.opto-patient-exercise-card-v156.is-reviewed em {
    background: #eaf7ef;
    color: #197143;
}
.opto-patient-omit-inline-v1616 {
    display: inline-flex;
    align-items: center;
    margin: 0;
}
.opto-patient-omitted-box-v1616 {
    padding: 16px;
    border: 1px solid rgba(120, 167, 177, 0.25);
    border-radius: 18px;
    background: #f7f9fb;
    color: #1b324d;
}
.opto-patient-omitted-box-v1616 strong {
    display: block;
    margin-bottom: 6px;
    color: #10233f;
}
@media (max-width: 900px) {
    .opto-home-task-summary-v1616 {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================
   v1.6.16.1 — Formularios pendientes y enviados en paciente
   ========================================================== */
.opto-patient-portal-v16161 .opto-patient-forms-panel-v16161{
  display:block;
}
.opto-patient-portal-v16161 .opto-patient-forms-title-v16161{
  align-items:flex-start;
  gap:18px;
}
.opto-patient-portal-v16161 .opto-patient-forms-counters-v16161{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex:0 0 auto;
}
.opto-patient-portal-v16161 .opto-patient-forms-counters-v16161 span,
.opto-patient-portal-v16161 .opto-patient-forms-block-head-v16161 > span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:7px 12px;
  border-radius:999px;
  border:1px solid #bee7ef;
  background:#eefafe;
  color:#007c95;
  font-weight:850;
  font-size:.86rem;
  line-height:1;
}
.opto-patient-portal-v16161 .opto-patient-forms-counters-v16161 span.is-sent{
  border-color:#d8e2ee;
  background:#f8fafc;
  color:#475569;
}
.opto-patient-portal-v16161 .opto-patient-forms-split-v16161{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:18px;
  align-items:start;
  margin-top:18px;
}
.opto-patient-portal-v16161 .opto-patient-forms-block-v16161{
  min-width:0;
  border:1px solid #dbe7ef;
  background:#fff;
  border-radius:22px;
  padding:18px;
  box-shadow:0 10px 26px rgba(15,35,64,.05);
}
.opto-patient-portal-v16161 .opto-patient-forms-block-v16161.is-sent{
  background:#fbfdff;
}
.opto-patient-portal-v16161 .opto-patient-forms-block-head-v16161{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
}
.opto-patient-portal-v16161 .opto-patient-forms-block-head-v16161 strong{
  display:block;
  color:#0b1f3a;
  font-size:1.05rem;
  font-weight:900;
  margin-bottom:4px;
}
.opto-patient-portal-v16161 .opto-patient-forms-block-head-v16161 p{
  color:#64748b;
  margin:0;
  line-height:1.45;
}
.opto-patient-portal-v16161 .opto-patient-forms-sent-list-v16161{
  display:grid;
  gap:14px;
}
.opto-patient-portal-v16161 .opto-patient-form-sent-card-v16161{
  background:#fff;
}
.opto-patient-portal-v16161 .opto-patient-form-sent-card-v16161 summary span{
  color:#64748b;
  font-weight:700;
}
.opto-patient-portal-v16161 .opto-patient-form-readonly-note-v16161{
  margin:12px 0 14px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid #dbe7ef;
  background:#f8fafc;
  color:#475569;
  font-size:.92rem;
  font-weight:700;
}
.opto-patient-portal-v16161 .opto-patient-form-response-v16161{
  display:grid;
  grid-template-columns:minmax(160px,.45fr) minmax(0,1fr);
  gap:0;
  overflow:hidden;
  border:1px solid #e2e8f0;
  border-radius:16px;
  background:#fff;
  margin:0;
}
.opto-patient-portal-v16161 .opto-patient-form-response-v16161 dt,
.opto-patient-portal-v16161 .opto-patient-form-response-v16161 dd{
  margin:0;
  padding:12px 14px;
  border-bottom:1px solid #e2e8f0;
  min-width:0;
}
.opto-patient-portal-v16161 .opto-patient-form-response-v16161 dt{
  background:#f8fafc;
  color:#334155;
  font-weight:850;
}
.opto-patient-portal-v16161 .opto-patient-form-response-v16161 dd{
  color:#0f172a;
  overflow-wrap:anywhere;
}
.opto-patient-portal-v16161 .opto-patient-form-response-v16161 dt:nth-last-child(2),
.opto-patient-portal-v16161 .opto-patient-form-response-v16161 dd:last-child{
  border-bottom:0;
}
.opto-patient-portal-v16161 .opto-patient-form-comment-v16161{
  margin-top:14px;
  padding:12px 14px;
  border-radius:16px;
  background:#f6fafb;
  border:1px solid #dbe7ef;
}
.opto-patient-portal-v16161 .opto-patient-form-comment-v16161 strong{
  display:block;
  color:#0b1f3a;
  margin-bottom:4px;
}
.opto-patient-portal-v16161 .opto-patient-form-comment-v16161 p,
.opto-patient-portal-v16161 .opto-patient-form-empty-response-v16161{
  margin:0;
  color:#475569;
}
@media(max-width:960px){
  .opto-patient-portal-v16161 .opto-patient-forms-split-v16161{
    grid-template-columns:1fr;
  }
  .opto-patient-portal-v16161 .opto-patient-forms-title-v16161{
    display:grid;
  }
  .opto-patient-portal-v16161 .opto-patient-forms-counters-v16161{
    justify-content:flex-start;
  }
}
@media(max-width:640px){
  .opto-patient-portal-v16161 .opto-patient-forms-block-v16161{
    padding:14px;
    border-radius:18px;
  }
  .opto-patient-portal-v16161 .opto-patient-forms-block-head-v16161{
    display:grid;
  }
  .opto-patient-portal-v16161 .opto-patient-form-response-v16161{
    grid-template-columns:1fr;
  }
  .opto-patient-portal-v16161 .opto-patient-form-response-v16161 dt{
    padding-bottom:4px;
  }
  .opto-patient-portal-v16161 .opto-patient-form-response-v16161 dd{
    padding-top:4px;
  }
}


/* ==========================================================
   v1.6.16.2 — Zona Pacientes móvil: widgets solo en Inicio
   ========================================================== */
.opto-patient-portal-v16162:not(.opto-patient-section-inicio) > #opto-patient-dashboard,
.opto-patient-portal-v16162:not(.opto-patient-section-inicio) > .opto-patient-home-grid-v155,
.opto-patient-portal-v16162:not(.opto-patient-section-inicio) > .opto-patient-v155-actions,
.opto-patient-portal-v16162:not(.opto-patient-section-inicio) > .opto-patient-v155-reminder,
body.opto-pwa-standalone .opto-patient-portal-v16162:not(.opto-patient-section-inicio) > #opto-patient-dashboard,
body.opto-pwa-standalone .opto-patient-portal-v16162:not(.opto-patient-section-inicio) > .opto-patient-home-grid-v155,
body.opto-pwa-standalone .opto-patient-portal-v16162:not(.opto-patient-section-inicio) > .opto-patient-v155-actions,
body.opto-pwa-standalone .opto-patient-portal-v16162:not(.opto-patient-section-inicio) > .opto-patient-v155-reminder,
body.opto-patient-fullscreen-active .opto-patient-portal-v16162:not(.opto-patient-section-inicio) > #opto-patient-dashboard,
body.opto-patient-fullscreen-active .opto-patient-portal-v16162:not(.opto-patient-section-inicio) > .opto-patient-home-grid-v155,
body.opto-patient-fullscreen-active .opto-patient-portal-v16162:not(.opto-patient-section-inicio) > .opto-patient-v155-actions,
body.opto-patient-fullscreen-active .opto-patient-portal-v16162:not(.opto-patient-section-inicio) > .opto-patient-v155-reminder{
    display:none !important;
}

.opto-patient-portal-v16162.opto-patient-section-inicio > #opto-patient-dashboard{
    display:grid !important;
}
.opto-patient-portal-v16162.opto-patient-section-inicio > .opto-patient-home-grid-v155{
    display:grid !important;
}

@media (max-width: 782px){
    .opto-patient-portal-v16162:not(.opto-patient-section-inicio) > #opto-patient-dashboard,
    .opto-patient-portal-v16162:not(.opto-patient-section-inicio) > .opto-patient-home-grid-v155,
    .opto-patient-portal-v16162:not(.opto-patient-section-inicio) > .opto-patient-v155-actions,
    .opto-patient-portal-v16162:not(.opto-patient-section-inicio) > .opto-patient-v155-reminder{
        display:none !important;
        visibility:hidden !important;
        height:0 !important;
        margin:0 !important;
        overflow:hidden !important;
        padding:0 !important;
    }
}


/* v1.7.4 — Mejoras de adherencia sin gamificación */
.opto-adherence-overview-v174{
    background:#fff;
    border:1px solid var(--opto-patient-line);
    border-radius:24px;
    box-shadow:0 16px 42px rgba(15,23,42,.06);
    margin:18px 0;
    padding:22px;
}
.opto-adherence-overview-v174__head{
    align-items:flex-start;
    display:flex;
    gap:18px;
    justify-content:space-between;
    margin-bottom:16px;
}
.opto-adherence-overview-v174__head h3{
    color:var(--opto-patient-ink);
    font-size:1.45rem;
    line-height:1.2;
    margin:0 0 6px;
}
.opto-adherence-overview-v174__head p:not(.opto-patient-kicker){
    color:#64748b;
    margin:0;
    max-width:720px;
}
.opto-adherence-status-v174{
    align-items:center;
    background:#eef6f8;
    border:1px solid #cfe2e8;
    border-radius:999px;
    color:#27425f;
    display:inline-flex;
    font-size:13px;
    font-weight:900;
    min-height:38px;
    padding:8px 13px;
    text-align:center;
}
.opto-adherence-status-v174.is-complete{background:#e8f8ef;border-color:#b9e3c8;color:#166534}
.opto-adherence-status-v174.is-pending{background:#fff8e6;border-color:#f1d59a;color:#8a5a00}
.opto-adherence-status-v174.is-alert{background:#fff0f0;border-color:#efc0c0;color:#9f2727}
.opto-adherence-overview-v174__grid{
    display:grid;
    gap:14px;
    grid-template-columns:repeat(4,minmax(0,1fr));
}
.opto-adherence-overview-v174__grid article{
    background:#f8fbfc;
    border:1px solid #dce8ed;
    border-radius:18px;
    min-height:132px;
    padding:16px;
}
.opto-adherence-overview-v174__grid article.has-alert{
    background:#fff6f4;
    border-color:#f0c7c0;
}
.opto-adherence-overview-v174__grid span{
    color:#4f7184;
    display:block;
    font-size:11px;
    font-weight:900;
    letter-spacing:.06em;
    margin-bottom:8px;
    text-transform:uppercase;
}
.opto-adherence-overview-v174__grid strong{
    color:var(--opto-patient-ink);
    display:block;
    font-size:1.05rem;
    line-height:1.3;
}
.opto-adherence-overview-v174__grid small{
    color:#64748b;
    display:block;
    line-height:1.45;
    margin-top:7px;
}
.opto-adherence-progress-v174{
    background:#dfecef;
    border-radius:999px;
    height:9px;
    margin-top:12px;
    overflow:hidden;
}
.opto-adherence-progress-v174 i{
    background:var(--opto-patient-primary);
    border-radius:inherit;
    display:block;
    height:100%;
}
.opto-patient-streak-card-v174 strong{
    color:var(--opto-patient-ink);
    display:block;
    font-size:1.35rem;
    margin:8px 0 6px;
}
.opto-patient-streak-card-v174 p{
    color:#64748b;
    margin:0;
}
@media (max-width:1100px){
    .opto-adherence-overview-v174__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
    .opto-adherence-overview-v174{padding:18px;border-radius:20px}
    .opto-adherence-overview-v174__head{display:block}
    .opto-adherence-status-v174{margin-top:12px;width:100%;justify-content:center}
    .opto-adherence-overview-v174__grid{grid-template-columns:1fr}
    .opto-adherence-overview-v174__grid article{min-height:auto}
}

/* ==========================================================
   v1.7.5 — Mensaje discreto del motor de gamificación
   ========================================================== */
.opto-gamification-message-v175{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin:0 0 16px;
    padding:14px 16px;
    border:1px solid rgba(91,166,185,.24);
    border-radius:18px;
    background:#f6fbfc;
}
.opto-gamification-message-v175 span{
    flex:0 0 auto;
    padding:5px 10px;
    border-radius:999px;
    background:#e7f4f6;
    color:#31768a;
    font-size:11px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.opto-gamification-message-v175 strong{
    color:#18364f;
    font-size:14px;
    line-height:1.4;
}
@media (max-width: 640px){
    .opto-gamification-message-v175{
        align-items:flex-start;
        flex-direction:column;
    }
}

/* ==========================================================
   v1.7.6 — Gamificación infantil básica
   ========================================================== */
.opto-child-gamification-banner-v176{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:14px;
    margin:14px 0 18px;
    padding:16px 18px;
    border:1px solid rgba(93,164,180,.28);
    border-radius:22px;
    background:linear-gradient(135deg,#f3fbfc 0%,#fff8ea 100%);
    box-shadow:0 12px 28px rgba(15,23,42,.06);
}
.opto-child-avatar-v176{
    display:grid;
    width:58px;
    height:58px;
    place-items:center;
    border-radius:50%;
    background:#fff;
    font-size:34px;
    box-shadow:0 8px 18px rgba(15,23,42,.08);
}
.opto-child-gamification-banner-v176 small,
.opto-child-gamification-banner-v176 strong,
.opto-child-gamification-banner-v176 p{
    display:block;
}
.opto-child-gamification-banner-v176 small{
    margin-bottom:3px;
    color:#668097;
    font-weight:800;
}
.opto-child-gamification-banner-v176 strong{
    color:#10233f;
    font-size:19px;
}
.opto-child-gamification-banner-v176 p{
    margin:4px 0 0;
    color:#58708a;
}
.opto-child-gamification-banner-v176 a{
    display:inline-flex;
    align-items:center;
    min-height:40px;
    padding:0 14px;
    border-radius:999px;
    background:#5ba6b9;
    color:#fff;
    font-weight:800;
    text-decoration:none;
}
.opto-child-celebration-v176{
    display:none;
    grid-template-columns:auto minmax(0,1fr);
    align-items:center;
    gap:6px 12px;
    margin:12px 0 18px;
    padding:16px 18px;
    border:1px solid rgba(232,178,61,.35);
    border-radius:20px;
    background:#fff9e9;
    color:#5d4615;
}
.opto-child-celebration-v176.is-visible{
    display:grid;
    animation:opto-child-soft-celebration-v176 .7s ease both;
}
.opto-child-celebration-v176 > span{
    grid-row:1 / span 2;
    font-size:30px;
}
.opto-child-celebration-v176 strong{font-size:17px;}
.opto-child-celebration-v176 small{color:#7c6735;}
@keyframes opto-child-soft-celebration-v176{
    from{opacity:0;transform:translateY(8px) scale(.985);}
    to{opacity:1;transform:none;}
}
.opto-child-progress-v176{
    font-size:16px;
}
.opto-child-progress-hero-v176{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:18px;
    margin-bottom:18px;
    padding:22px;
    border:1px solid rgba(120,167,177,.24);
    border-radius:26px;
    background:linear-gradient(135deg,#f4fbfc,#fff9eb);
}
.opto-child-progress-avatar-v176{
    display:grid;
    width:82px;
    height:82px;
    place-items:center;
    border-radius:50%;
    background:#fff;
    font-size:48px;
    box-shadow:0 10px 24px rgba(15,23,42,.08);
}
.opto-child-progress-hero-v176 h3{
    margin:4px 0 6px;
    color:#10233f;
    font-size:clamp(25px,4vw,36px);
    line-height:1.08;
}
.opto-child-progress-hero-v176 p{margin:0;color:#58708a;}
.opto-child-progress-percent-v176{
    display:grid;
    width:72px;
    height:72px;
    place-items:center;
    border-radius:50%;
    background:#5ba6b9;
    color:#fff;
    font-size:20px;
    font-weight:900;
}
.opto-child-path-card-v176,
.opto-child-progress-grid-v176 > article,
.opto-child-family-note-v176{
    border:1px solid rgba(120,167,177,.22);
    border-radius:24px;
    background:#fff;
    box-shadow:0 12px 28px rgba(15,23,42,.05);
}
.opto-child-path-card-v176{padding:20px;margin-bottom:18px;}
.opto-child-card-head-v176{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
}
.opto-child-card-head-v176 small,
.opto-child-progress-grid-v176 article > small{
    color:#688196;
    font-size:12px;
    font-weight:850;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.opto-child-card-head-v176 h4,
.opto-child-progress-grid-v176 h4{
    margin:4px 0 0;
    color:#10233f;
    font-size:21px;
}
.opto-child-card-head-v176 > strong{
    color:#4f9dac;
    font-size:17px;
}
.opto-child-path-v176{
    position:relative;
    display:flex;
    justify-content:space-between;
    align-items:center;
    min-height:86px;
    margin:14px 8px 8px;
    padding:0 2px;
}
.opto-child-path-line-v176{
    position:absolute;
    left:5%;
    right:5%;
    top:50%;
    height:8px;
    overflow:hidden;
    border-radius:999px;
    background:#e7eff2;
    transform:translateY(-50%);
}
.opto-child-path-line-v176 i{
    display:block;
    width:var(--opto-child-progress);
    height:100%;
    border-radius:inherit;
    background:linear-gradient(90deg,#73b8c6,#f2bf4d);
}
.opto-child-path-v176 > span{
    position:relative;
    z-index:2;
    display:grid;
    width:42px;
    height:42px;
    place-items:center;
    border:4px solid #fff;
    border-radius:50%;
    background:#dfe9ed;
    color:#637b8d;
    box-shadow:0 4px 10px rgba(15,23,42,.08);
}
.opto-child-path-v176 > span.is-reached{
    background:#f7c957;
    color:#624710;
}
.opto-child-path-v176 > span.is-current{
    transform:scale(1.12);
}
.opto-child-path-character-v176{
    position:absolute;
    z-index:3;
    top:0;
    font-size:28px;
    font-style:normal;
    transform:translateX(-50%);
    transition:left .5s ease;
}
.opto-child-progress-grid-v176{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.opto-child-progress-grid-v176 > article{
    min-height:160px;
    padding:18px;
}
.opto-child-stars-v176{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:7px;
    min-height:48px;
    margin:12px 0;
}
.opto-child-stars-v176 span{
    color:#efb52f;
    font-size:30px;
    line-height:1;
}
.opto-child-stars-v176 b{
    color:#9a6f16;
    font-size:16px;
}
.opto-child-stars-v176 small{color:#698094;}
.opto-child-medal-card-v176{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    align-items:center;
    gap:16px;
}
.opto-child-medal-card-v176.is-earned{
    background:linear-gradient(135deg,#fffdf5,#fff4cf);
    border-color:rgba(232,178,61,.38);
}
.opto-child-medal-v176{
    display:grid;
    width:68px;
    height:68px;
    place-items:center;
    border-radius:50%;
    background:#eef3f5;
    color:#78909f;
    font-size:38px;
}
.opto-child-medal-card-v176.is-earned .opto-child-medal-v176{background:#fff;color:#b37d11;}
.opto-child-simple-card-v176 p,
.opto-child-medal-card-v176 p,
.opto-child-stars-card-v176 p{color:#58708a;}
.opto-child-family-note-v176{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    gap:14px;
    margin-top:18px;
    padding:16px 18px;
    background:#f8fbfc;
}
.opto-child-family-note-v176 > span{font-size:28px;}
.opto-child-family-note-v176 strong{color:#19324d;font-size:16px;}
.opto-child-family-note-v176 p{margin:4px 0 0;color:#58708a;}
.opto-child-no-motion-v176,
.opto-child-no-motion-v176 *{
    animation:none !important;
    transition:none !important;
}
@media (prefers-reduced-motion:reduce){
    .opto-child-progress-v176 *,
    .opto-child-gamification-banner-v176 *,
    .opto-child-celebration-v176{animation:none !important;transition:none !important;}
}
@media (max-width:760px){
    .opto-child-gamification-banner-v176{grid-template-columns:auto minmax(0,1fr);}
    .opto-child-gamification-banner-v176 a{grid-column:1/-1;justify-content:center;}
    .opto-child-progress-hero-v176{grid-template-columns:auto minmax(0,1fr);padding:18px;}
    .opto-child-progress-percent-v176{grid-column:1/-1;width:100%;height:auto;min-height:44px;border-radius:16px;}
    .opto-child-progress-grid-v176{grid-template-columns:1fr;}
    .opto-child-path-v176{margin-left:0;margin-right:0;}
    .opto-child-path-v176 > span{width:34px;height:34px;border-width:3px;font-size:12px;}
    .opto-child-path-character-v176{font-size:24px;}
}
@media (max-width:480px){
    .opto-child-progress-avatar-v176{width:64px;height:64px;font-size:38px;}
    .opto-child-progress-hero-v176 h3{font-size:26px;}
    .opto-child-card-head-v176{display:block;}
    .opto-child-card-head-v176 > strong{display:block;margin-top:6px;}
}

/* ==========================================================
   v1.7.7 — Aventuras y misiones infantiles
   ========================================================== */
.opto-child-adventure-v177{margin:18px 0;padding:20px;border:1px solid rgba(211,158,44,.32);border-radius:24px;background:linear-gradient(180deg,#fffdf7,#fff);box-shadow:0 12px 28px rgba(15,23,42,.05);}
.opto-child-adventure-head-v177{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;}
.opto-child-adventure-head-v177 small{color:#876f28;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;}
.opto-child-adventure-head-v177 h4{margin:5px 0 4px;color:#19324d;font-size:23px;}
.opto-child-adventure-head-v177 p{margin:0;color:#647b8e;}
.opto-child-adventure-head-v177>strong{padding:8px 12px;border-radius:999px;background:#fff2bf;color:#7d5b09;white-space:nowrap;}
.opto-child-professional-message-v177{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;margin-bottom:16px;padding:14px 16px;border:1px solid rgba(91,166,185,.28);border-radius:18px;background:#eef8fa;}
.opto-child-professional-message-v177>span{font-size:25px;}
.opto-child-professional-message-v177 strong{color:#19324d;}
.opto-child-professional-message-v177 p{margin:4px 0 0;color:#476477;font-size:15px;line-height:1.45;}
.opto-child-chapters-v177{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:16px;}
.opto-child-chapters-v177 article{display:flex;align-items:center;gap:9px;min-height:76px;padding:11px;border:1px solid #d8e4ea;border-radius:16px;background:#f8fbfc;}
.opto-child-chapters-v177 article>span{display:grid;width:30px;height:30px;place-items:center;flex:0 0 auto;border-radius:50%;background:#e8f1f4;color:#61798b;font-weight:900;}
.opto-child-chapters-v177 article div{display:flex;flex-direction:column;gap:3px;}
.opto-child-chapters-v177 strong{color:#19324d;font-size:14px;}
.opto-child-chapters-v177 small{color:#6a7e90;font-size:11px;line-height:1.3;}
.opto-child-chapters-v177 .is-complete{border-color:rgba(50,143,102,.34);background:#f1fbf5;}
.opto-child-chapters-v177 .is-complete>span{background:#dff5e8;color:#26764e;}
.opto-child-chapters-v177 .is-current{border-color:rgba(91,166,185,.42);background:#eef8fa;}
.opto-child-chapters-v177 .is-locked{opacity:.52;}
.opto-child-missions-v177{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.opto-child-missions-v177 article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:12px;min-height:122px;padding:15px;border:1px solid #d8e4ea;border-radius:18px;background:#fff;}
.opto-child-mission-icon-v177{font-size:29px;line-height:1;}
.opto-child-missions-v177 article>div{display:flex;flex-direction:column;gap:4px;}
.opto-child-missions-v177 strong{color:#19324d;font-size:15px;}
.opto-child-missions-v177 small{color:#63798b;line-height:1.4;}
.opto-child-missions-v177 em{margin-top:5px;color:#385c70;font-style:normal;font-weight:900;}
.opto-child-missions-v177 article>b{align-self:start;padding:5px 8px;border-radius:999px;background:#f1f5f7;color:#5d7182;font-size:10px;line-height:1.2;text-align:center;}
.opto-child-missions-v177 .is-complete{border-color:rgba(50,143,102,.34);background:#f1fbf5;}
.opto-child-missions-v177 .is-complete article>b,.opto-child-missions-v177 .is-complete>b{background:#dff5e8;color:#26764e;}
.opto-child-missions-v177 .is-muted{opacity:.56;background:#f5f6f7;}
.opto-child-adventure-lower-v177{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px;}
.opto-child-companion-v177,.opto-child-collection-v177{min-height:142px;padding:16px;border:1px solid #d8e4ea;border-radius:18px;background:#f8fbfc;}
.opto-child-companion-v177{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;}
.opto-child-companion-avatar-v177{display:grid;width:64px;height:64px;place-items:center;border-radius:50%;background:#fff1bd;font-size:38px;box-shadow:inset 0 0 0 1px rgba(211,158,44,.22);}
.opto-child-companion-v177 small,.opto-child-collection-v177>div>small{color:#876f28;font-weight:900;}
.opto-child-companion-v177 h5,.opto-child-collection-v177 h5{margin:4px 0;color:#19324d;font-size:18px;}
.opto-child-companion-v177 p{margin:0;color:#63798b;line-height:1.4;}
.opto-child-companion-v177>span{padding:6px 9px;border-radius:999px;background:#fff;color:#476477;font-size:11px;font-weight:900;}
.opto-child-collection-list-v177{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.opto-child-collection-list-v177>span{display:flex;align-items:center;gap:6px;padding:7px 9px;border:1px solid #d8e4ea;border-radius:14px;background:#fff;}
.opto-child-collection-list-v177 b{font-size:19px;line-height:1;}
.opto-child-collection-list-v177 small{max-width:110px;color:#476477;font-size:10px;font-weight:800;line-height:1.2;}
.opto-child-collection-list-v177 .is-empty{display:block;color:#63798b;font-size:13px;line-height:1.4;}
.opto-child-no-motion-v176 .opto-child-adventure-v177,.opto-child-no-motion-v176 .opto-child-adventure-v177 *{animation:none!important;transition:none!important;}
@media(prefers-reduced-motion:reduce){.opto-child-adventure-v177,.opto-child-adventure-v177 *{animation:none!important;transition:none!important;}}
@media(max-width:860px){.opto-child-chapters-v177{grid-template-columns:repeat(2,minmax(0,1fr));}.opto-child-missions-v177,.opto-child-adventure-lower-v177{grid-template-columns:1fr;}}
@media(max-width:560px){.opto-child-adventure-v177{padding:16px}.opto-child-adventure-head-v177{display:block}.opto-child-adventure-head-v177>strong{display:inline-block;margin-top:10px}.opto-child-chapters-v177{grid-template-columns:1fr}.opto-child-missions-v177 article{grid-template-columns:auto minmax(0,1fr)}.opto-child-missions-v177 article>b{grid-column:2}.opto-child-companion-v177{grid-template-columns:auto minmax(0,1fr)}.opto-child-companion-v177>span{grid-column:1/-1;justify-self:start}}

/* ==========================================================
   v1.7.8 — Recompensas familiares configurables
   ========================================================== */
.opto-family-rewards-v178{margin:18px 0;padding:20px;border:1px solid rgba(91,166,185,.30);border-radius:24px;background:linear-gradient(180deg,#f8fcfd,#fff);box-shadow:0 12px 28px rgba(15,23,42,.05);}
.opto-family-rewards-head-v178{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px;}
.opto-family-rewards-head-v178 small{color:#557384;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;}
.opto-family-rewards-head-v178 h4{margin:5px 0 4px;color:#19324d;font-size:23px;}
.opto-family-rewards-head-v178 p{margin:0;color:#627b8c;line-height:1.5;}
.opto-family-rewards-head-v178>span{font-size:36px;line-height:1;}
.opto-family-reward-guidance-v178{margin-bottom:14px;padding:14px 16px;border:1px solid rgba(211,158,44,.28);border-radius:18px;background:#fffdf5;}
.opto-family-reward-guidance-v178 strong{color:#6d571b;}
.opto-family-reward-guidance-v178 p{margin:5px 0 0;color:#6f6a54;line-height:1.5;}
.opto-family-reward-preference-form-v178,.opto-family-reward-create-v178,.opto-family-active-reward-v178{margin-top:14px;padding:16px;border:1px solid #d8e4ea;border-radius:18px;background:#fff;}
.opto-family-reward-switch-v178{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:11px;}
.opto-family-reward-switch-v178 input{margin-top:3px;}
.opto-family-reward-switch-v178 span{display:flex;flex-direction:column;gap:3px;}
.opto-family-reward-switch-v178 strong{color:#19324d;}
.opto-family-reward-switch-v178 small{color:#647b8e;line-height:1.4;}
.opto-family-responsible-confirm-v178{display:flex;align-items:flex-start;gap:8px;margin:13px 0;color:#526c7e;font-size:13px;line-height:1.4;}
.opto-family-responsible-confirm-v178 input{margin-top:2px;}
.opto-family-reward-create-grid-v178{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.opto-family-reward-create-grid-v178 label{display:flex;flex-direction:column;gap:7px;}
.opto-family-reward-create-grid-v178 label>span{color:#29465d;font-weight:800;}
.opto-family-reward-create-grid-v178 select,.opto-family-reward-create-grid-v178 input{width:100%;min-height:44px;border:1px solid #cfdde4;border-radius:12px;background:#fff;padding:8px 10px;}
.opto-family-reward-create-grid-v178 small{color:#6a7e90;line-height:1.35;}
.opto-family-active-reward-v178.is-achieved{border-color:rgba(52,143,102,.34);background:#f7fcf9;}
.opto-family-active-reward-title-v178{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;}
.opto-family-active-reward-title-v178 small{color:#557384;font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;}
.opto-family-active-reward-title-v178 h5{margin:4px 0 0;color:#19324d;font-size:20px;}
.opto-family-active-reward-title-v178>strong{padding:6px 9px;border-radius:999px;background:#eef5f7;color:#3f6173;font-size:11px;white-space:nowrap;}
.opto-family-active-reward-v178>p{color:#58708a;}
.opto-family-reward-progress-v178{height:12px;overflow:hidden;border-radius:999px;background:#e9f0f3;}
.opto-family-reward-progress-v178 i{display:block;height:100%;border-radius:inherit;background:#5ba6b9;}
.opto-family-reward-progress-label-v178{margin:7px 0 0!important;color:#3f6173!important;font-weight:800;}
.opto-family-reward-achieved-v178{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;margin-top:14px;padding:14px;border:1px solid rgba(52,143,102,.26);border-radius:16px;background:#eef9f3;}
.opto-family-reward-achieved-v178>span{display:grid;width:32px;height:32px;place-items:center;border-radius:50%;background:#dff5e8;color:#26764e;font-weight:900;}
.opto-family-reward-achieved-v178 strong{color:#245f43;}
.opto-family-reward-achieved-v178 p{margin:4px 0 0;color:#4d7561;line-height:1.45;}
.opto-family-reward-action-v178,.opto-family-reward-cancel-v178{margin-top:12px;}
.opto-family-reward-cancel-v178{padding-top:12px;border-top:1px solid #e1e9ed;}
.opto-family-reward-history-v178{margin-top:14px;padding:12px 14px;border:1px solid #d8e4ea;border-radius:16px;background:#fff;}
.opto-family-reward-history-v178 summary{cursor:pointer;color:#29465d;font-weight:900;}
.opto-family-reward-history-v178 ul{display:flex;flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none;}
.opto-family-reward-history-v178 li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid #edf2f4;}
.opto-family-reward-history-v178 li:first-child{border-top:0;}
.opto-family-reward-history-v178 li>div{display:flex;min-width:0;flex-direction:column;gap:2px;}
.opto-family-reward-history-v178 strong{color:#19324d;}
.opto-family-reward-history-v178 small{color:#697f90;}
.opto-family-reward-history-v178 li>span{color:#4e6879;font-size:12px;font-weight:800;text-align:right;}
.opto-child-no-motion-v176 .opto-family-rewards-v178,.opto-child-no-motion-v176 .opto-family-rewards-v178 *{animation:none!important;transition:none!important;}
@media(max-width:720px){.opto-family-reward-create-grid-v178{grid-template-columns:1fr;}.opto-family-active-reward-title-v178{display:block}.opto-family-active-reward-title-v178>strong{display:inline-block;margin-top:8px}.opto-family-reward-history-v178 li{align-items:flex-start;flex-direction:column}.opto-family-reward-history-v178 li>span{text-align:left;}}
@media(max-width:480px){.opto-family-rewards-v178{padding:16px}.opto-family-rewards-head-v178>span{font-size:30px}.opto-family-rewards-head-v178 h4{font-size:21px}}


/* ==========================================================
   v1.7.8.1 — Retorno de recompensas y sellos visuales
   ========================================================== */
.opto-child-collection-v177{
    min-height:180px;
}
.opto-child-collection-list-v177{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(112px,1fr));
    gap:12px;
}
.opto-child-collection-list-v177>.opto-child-badge-card-v1781{
    display:flex;
    min-height:138px;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    gap:9px;
    padding:12px 10px;
    border:1px solid #d8e4ea;
    border-radius:18px;
    background:#fff;
    box-shadow:0 8px 18px rgba(15,23,42,.05);
    text-align:center;
}
.opto-child-badge-image-v1781{
    display:grid;
    width:82px;
    height:82px;
    place-items:center;
    overflow:hidden;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    padding:0!important;
}
.opto-child-badge-image-v1781 img{
    display:block;
    width:82px;
    height:82px;
    object-fit:contain;
}
.opto-child-badge-image-v1781 b{
    display:grid;
    width:68px;
    height:68px;
    place-items:center;
    border-radius:50%;
    background:#fff1bd;
    color:#876f28;
    font-size:30px;
}
.opto-child-collection-list-v177>.opto-child-badge-card-v1781 small{
    max-width:130px;
    color:#29465d;
    font-size:12px;
    font-weight:900;
    line-height:1.25;
}
.opto-family-reward-how-v1781{
    margin-bottom:14px;
    padding:16px;
    border:1px solid #d8e4ea;
    border-radius:18px;
    background:#f7fbfc;
}
.opto-family-reward-how-v1781>strong{
    display:block;
    margin-bottom:9px;
    color:#19324d;
    font-size:16px;
}
.opto-family-reward-how-v1781 ol{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px 24px;
    margin:0;
    padding-left:22px;
    color:#58708a;
}
.opto-family-reward-how-v1781 li{
    padding-left:2px;
    line-height:1.45;
}
.opto-family-reward-preference-form-v178{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:14px;
}
.opto-family-preference-options-v1781{
    display:grid;
    width:100%;
    grid-template-columns:1fr;
    gap:12px;
}
.opto-family-preference-options-v1781 .opto-family-reward-switch-v178,
.opto-family-preference-options-v1781 .opto-family-responsible-confirm-v178{
    width:100%;
    box-sizing:border-box;
    margin:0;
    padding:13px 14px;
    border:1px solid #d8e4ea;
    border-radius:14px;
    background:#f8fbfc;
}
.opto-family-preference-options-v1781 .opto-family-responsible-confirm-v178{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    align-items:start;
    justify-content:start;
    gap:10px;
    color:#29465d;
}
.opto-family-preference-options-v1781 input[type="checkbox"]{
    width:19px;
    height:19px;
    margin:1px 0 0;
    flex:0 0 auto;
}
.opto-family-reward-preference-form-v178 .opto-button{
    align-self:flex-start;
}
#opto-family-rewards{
    scroll-margin-top:24px;
}
@media(max-width:720px){
    .opto-family-reward-how-v1781 ol{
        grid-template-columns:1fr;
    }
    .opto-child-collection-list-v177{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:420px){
    .opto-child-collection-list-v177{
        grid-template-columns:1fr 1fr;
    }
    .opto-child-collection-list-v177>.opto-child-badge-card-v1781{
        min-height:128px;
        padding:10px 8px;
    }
    .opto-child-badge-image-v1781,
    .opto-child-badge-image-v1781 img{
        width:72px;
        height:72px;
    }
}

/* v1.7.9 — Gamificación juvenil tipo app de hábitos */
.opto-youth-home-card-v179,
.opto-youth-shell-v179{
    --opto-youth-accent:#2f7da9;
    --opto-youth-accent-soft:#eaf5fb;
    --opto-youth-surface:#ffffff;
    --opto-youth-surface-2:#f5f9fb;
    --opto-youth-text:#17304a;
    --opto-youth-muted:#61778d;
    --opto-youth-border:#d5e3ea;
}
.opto-youth-home-card-v179.theme-graphite,
.opto-youth-shell-v179.theme-graphite{
    --opto-youth-accent:#4b5563;
    --opto-youth-accent-soft:#eef0f2;
    --opto-youth-surface-2:#f5f6f7;
}
.opto-youth-home-card-v179.theme-sage,
.opto-youth-shell-v179.theme-sage{
    --opto-youth-accent:#557f70;
    --opto-youth-accent-soft:#edf6f2;
    --opto-youth-surface-2:#f5faf8;
}
.opto-youth-home-card-v179{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto auto;
    align-items:center;
    gap:18px;
    padding:18px 20px;
    border:1px solid var(--opto-youth-border);
    border-left:5px solid var(--opto-youth-accent);
    border-radius:20px;
    background:var(--opto-youth-surface);
}
.opto-youth-home-card-v179__main small,
.opto-youth-home-card-v179__main strong,
.opto-youth-home-card-v179__main p{display:block;}
.opto-youth-home-card-v179__main small{font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--opto-youth-accent);}
.opto-youth-home-card-v179__main strong{margin:4px 0;font-size:20px;color:var(--opto-youth-text);}
.opto-youth-home-card-v179__main p{margin:0;color:var(--opto-youth-muted);}
.opto-youth-home-card-v179__progress{
    min-width:92px;
    padding:12px 14px;
    border-radius:16px;
    background:var(--opto-youth-accent-soft);
    text-align:center;
}
.opto-youth-home-card-v179__progress span,
.opto-youth-home-card-v179__progress small{display:block;}
.opto-youth-home-card-v179__progress span{font-size:23px;font-weight:800;color:var(--opto-youth-accent);}
.opto-youth-home-card-v179__progress small{margin-top:3px;color:var(--opto-youth-muted);}
.opto-youth-home-card-v179>a{
    white-space:nowrap;
    color:var(--opto-youth-accent);
    font-weight:800;
    text-decoration:none;
}
.opto-youth-shell-v179{
    color:var(--opto-youth-text);
}
.opto-youth-hero-v179{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:22px;
    padding:24px;
    border:1px solid var(--opto-youth-border);
    border-radius:24px;
    background:linear-gradient(135deg,var(--opto-youth-accent-soft),var(--opto-youth-surface));
}
.opto-youth-hero-v179 h3{margin:5px 0 8px;font-size:30px;line-height:1.15;color:var(--opto-youth-text);}
.opto-youth-hero-v179 p{margin:0;max-width:760px;color:var(--opto-youth-muted);}
.opto-youth-level-v179{
    min-width:170px;
    padding:16px 18px;
    border-radius:18px;
    background:var(--opto-youth-surface);
    border:1px solid var(--opto-youth-border);
    text-align:right;
}
.opto-youth-level-v179 small,
.opto-youth-level-v179 strong,
.opto-youth-level-v179 span{display:block;}
.opto-youth-level-v179 small{color:var(--opto-youth-muted);font-weight:700;}
.opto-youth-level-v179 strong{margin:4px 0;font-size:21px;color:var(--opto-youth-text);}
.opto-youth-level-v179 span{color:var(--opto-youth-accent);font-weight:800;}
.opto-youth-stage-track-v179{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin:16px 0;
}
.opto-youth-stage-track-v179 article{
    display:flex;
    align-items:center;
    gap:9px;
    min-height:48px;
    padding:10px 12px;
    border:1px solid var(--opto-youth-border);
    border-radius:15px;
    background:var(--opto-youth-surface-2);
    color:var(--opto-youth-muted);
}
.opto-youth-stage-track-v179 article span{
    display:grid;
    place-items:center;
    width:24px;
    height:24px;
    border-radius:50%;
    background:#e4ebef;
    font-weight:800;
}
.opto-youth-stage-track-v179 article.is-reached{border-color:var(--opto-youth-accent);color:var(--opto-youth-text);}
.opto-youth-stage-track-v179 article.is-reached span{background:var(--opto-youth-accent);color:#fff;}
.opto-youth-main-grid-v179,
.opto-youth-lower-grid-v179{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
    margin:0 0 16px;
}
.opto-youth-card-v179{
    padding:20px;
    border:1px solid var(--opto-youth-border);
    border-radius:22px;
    background:var(--opto-youth-surface);
}
.opto-youth-card-head-v179{
    display:flex;
    justify-content:space-between;
    gap:16px;
    align-items:flex-start;
}
.opto-youth-card-head-v179 small,
.opto-youth-card-head-v179 h4{display:block;}
.opto-youth-card-head-v179 small{color:var(--opto-youth-muted);font-weight:800;text-transform:uppercase;letter-spacing:.03em;}
.opto-youth-card-head-v179 h4{margin:5px 0 0;font-size:20px;color:var(--opto-youth-text);}
.opto-youth-card-head-v179>strong,
.opto-youth-card-head-v179>span{color:var(--opto-youth-accent);font-weight:800;}
.opto-youth-card-v179 p{color:var(--opto-youth-muted);}
.opto-youth-progressbar-v179{
    height:10px;
    overflow:hidden;
    border-radius:999px;
    background:#e8eef2;
}
.opto-youth-progressbar-v179 i{
    display:block;
    height:100%;
    border-radius:inherit;
    background:var(--opto-youth-accent);
}
.opto-youth-stats-v179{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin-bottom:16px;
}
.opto-youth-stats-v179 article{
    padding:16px;
    border:1px solid var(--opto-youth-border);
    border-radius:18px;
    background:var(--opto-youth-surface-2);
}
.opto-youth-stats-v179 small,
.opto-youth-stats-v179 strong,
.opto-youth-stats-v179 span{display:block;}
.opto-youth-stats-v179 small{color:var(--opto-youth-muted);font-weight:700;}
.opto-youth-stats-v179 strong{margin:5px 0;font-size:27px;color:var(--opto-youth-text);}
.opto-youth-stats-v179 span{color:var(--opto-youth-muted);}
.opto-youth-week-bars-v179{
    display:flex;
    align-items:flex-end;
    gap:16px;
    min-height:170px;
    padding-top:10px;
}
.opto-youth-week-bars-v179>div{
    display:grid;
    grid-template-rows:110px auto auto;
    align-items:end;
    justify-items:center;
    gap:5px;
    flex:1;
}
.opto-youth-week-bars-v179>div>span{
    display:flex;
    align-items:flex-end;
    width:34px;
    height:110px;
    overflow:hidden;
    border-radius:10px;
    background:#e8eef2;
}
.opto-youth-week-bars-v179 i{display:block;width:100%;background:var(--opto-youth-accent);border-radius:10px 10px 0 0;}
.opto-youth-week-bars-v179 strong{font-size:13px;color:var(--opto-youth-text);}
.opto-youth-week-bars-v179 small{color:var(--opto-youth-muted);}
.opto-youth-badges-v179{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-top:14px;
}
.opto-youth-badges-v179>span{
    display:grid;
    grid-template-columns:auto 1fr;
    grid-template-areas:"icon title" "icon date";
    gap:2px 9px;
    align-items:center;
    padding:12px;
    border:1px solid var(--opto-youth-border);
    border-radius:15px;
    background:var(--opto-youth-surface-2);
}
.opto-youth-badges-v179 b{grid-area:icon;display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--opto-youth-accent-soft);color:var(--opto-youth-accent);}
.opto-youth-badges-v179 strong{grid-area:title;color:var(--opto-youth-text);}
.opto-youth-badges-v179 small{grid-area:date;color:var(--opto-youth-muted);}
.opto-youth-preferences-v179{
    display:grid;
    grid-template-columns:minmax(0,1.5fr) minmax(160px,.6fr) auto auto;
    gap:16px;
    align-items:end;
    padding:20px;
    border:1px solid var(--opto-youth-border);
    border-radius:22px;
    background:var(--opto-youth-surface-2);
}
.opto-youth-preferences-v179 h4{margin:4px 0 5px;color:var(--opto-youth-text);}
.opto-youth-preferences-v179 p{margin:0;color:var(--opto-youth-muted);}
.opto-youth-preferences-v179 label{display:flex;flex-direction:column;gap:7px;color:var(--opto-youth-text);font-weight:700;}
.opto-youth-preferences-v179 select{min-height:42px;}
.opto-youth-badge-toggle-v179{flex-direction:row!important;align-items:center;min-height:42px;}
@media (max-width:980px){
    .opto-youth-home-card-v179{grid-template-columns:1fr auto;}
    .opto-youth-home-card-v179>a{grid-column:1/-1;}
    .opto-youth-stats-v179{grid-template-columns:repeat(2,minmax(0,1fr));}
    .opto-youth-preferences-v179{grid-template-columns:1fr 1fr;}
}
@media (max-width:700px){
    .opto-youth-home-card-v179,
    .opto-youth-hero-v179{display:block;}
    .opto-youth-home-card-v179__progress,
    .opto-youth-level-v179{margin-top:14px;text-align:left;}
    .opto-youth-home-card-v179>a{display:inline-block;margin-top:14px;}
    .opto-youth-stage-track-v179,
    .opto-youth-main-grid-v179,
    .opto-youth-lower-grid-v179,
    .opto-youth-stats-v179,
    .opto-youth-preferences-v179{grid-template-columns:1fr;}
    .opto-youth-badges-v179{grid-template-columns:1fr;}
    .opto-youth-hero-v179 h3{font-size:25px;}
}

/* v1.7.9.1 — Confirmación de preferencias juveniles y temas más reconocibles. */
.opto-youth-save-status-v1791{
    grid-column:1/-1;
    margin:0;
    padding:12px 14px;
    border:1px solid #b9ddcc;
    border-radius:14px;
    background:#f0faf5;
    color:#245d48!important;
    font-weight:700;
}
.opto-youth-shell-v179.theme-graphite{
    --opto-youth-surface:#fbfbfc;
    --opto-youth-border:#cfd4da;
    --opto-youth-text:#202833;
    --opto-youth-muted:#5d6670;
}
.opto-youth-shell-v179.theme-sage{
    --opto-youth-surface:#fcfefd;
    --opto-youth-border:#cfe0d9;
    --opto-youth-text:#203c33;
    --opto-youth-muted:#5f766d;
}



/* v1.7.9.2 — Confirmación de guardado juvenil sin abandonar Mi progreso. */
.opto-youth-save-status-v1791{
    grid-column:1/-1;
    margin:0;
    padding:10px 14px;
    border-radius:14px;
    background:#eaf8f1;
    color:#176a4a;
    font-weight:700;
}
.opto-youth-save-status-v1791.is-error{
    background:#fff1f0;
    color:#9d2d2d;
}
.opto-youth-preferences-v179 button[disabled]{
    opacity:.68;
    cursor:wait;
}

/* v1.7.10 — Gamificación adulta sobria */
.opto-adult-home-card-v1710,
.opto-adult-shell-v1710{
    --opto-adult-accent:#2b7184;
    --opto-adult-accent-soft:#eaf4f6;
    --opto-adult-surface:#ffffff;
    --opto-adult-surface-soft:#f6f9fa;
    --opto-adult-text:#173149;
    --opto-adult-muted:#607487;
    --opto-adult-border:#d4e1e6;
    --opto-adult-success:#4d806b;
    --opto-adult-warning:#b27b32;
    --opto-adult-alert:#a85e5e;
}
.opto-adult-home-card-v1710{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto auto;
    gap:18px;
    align-items:center;
    margin:18px 0;
    padding:20px 22px;
    border:1px solid var(--opto-adult-border);
    border-left:5px solid var(--opto-adult-accent);
    border-radius:22px;
    background:var(--opto-adult-surface);
}
.opto-adult-home-card-v1710__main small,
.opto-adult-home-card-v1710__main strong,
.opto-adult-home-card-v1710__main p{display:block;}
.opto-adult-home-card-v1710__main small{font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--opto-adult-accent);}
.opto-adult-home-card-v1710__main strong{margin:4px 0;font-size:20px;color:var(--opto-adult-text);}
.opto-adult-home-card-v1710__main p{margin:0;color:var(--opto-adult-muted);}
.opto-adult-home-card-v1710__progress{min-width:126px;padding:13px 16px;border-radius:16px;background:var(--opto-adult-accent-soft);text-align:center;}
.opto-adult-home-card-v1710__progress span,
.opto-adult-home-card-v1710__progress small{display:block;}
.opto-adult-home-card-v1710__progress span{font-size:25px;font-weight:800;color:var(--opto-adult-accent);}
.opto-adult-home-card-v1710__progress small{margin-top:3px;color:var(--opto-adult-muted);}
.opto-adult-home-card-v1710>a{font-weight:800;color:var(--opto-adult-accent);text-decoration:none;}
.opto-adult-shell-v1710{color:var(--opto-adult-text);}
.opto-adult-hero-v1710{
    display:grid;
    grid-template-columns:minmax(0,1fr) 190px;
    gap:22px;
    align-items:center;
    padding:26px 28px;
    border:1px solid var(--opto-adult-border);
    border-radius:24px;
    background:linear-gradient(135deg,var(--opto-adult-accent-soft),var(--opto-adult-surface));
}
.opto-adult-hero-v1710 h3{margin:5px 0 8px;font-size:30px;line-height:1.15;color:var(--opto-adult-text);}
.opto-adult-hero-v1710 p{margin:0;max-width:850px;color:var(--opto-adult-muted);}
.opto-adult-goal-summary-v1710{padding:16px 18px;border:1px solid var(--opto-adult-border);border-radius:18px;background:var(--opto-adult-surface);text-align:center;}
.opto-adult-goal-summary-v1710 small,
.opto-adult-goal-summary-v1710 strong,
.opto-adult-goal-summary-v1710 span{display:block;}
.opto-adult-goal-summary-v1710 small{color:var(--opto-adult-muted);font-weight:700;}
.opto-adult-goal-summary-v1710 strong{margin:5px 0;font-size:30px;color:var(--opto-adult-accent);}
.opto-adult-goal-summary-v1710 span{color:var(--opto-adult-text);font-weight:700;}
.opto-adult-reminder-v1710{display:flex;gap:13px;align-items:flex-start;margin:16px 0;padding:15px 17px;border:1px solid var(--opto-adult-border);border-radius:18px;background:var(--opto-adult-surface-soft);}
.opto-adult-reminder-v1710>span{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:var(--opto-adult-accent-soft);color:var(--opto-adult-accent);font-weight:900;}
.opto-adult-reminder-v1710 strong{display:block;color:var(--opto-adult-text);}
.opto-adult-reminder-v1710 p{margin:3px 0 0;color:var(--opto-adult-muted);}
.opto-adult-core-grid-v1710,
.opto-adult-comparison-v1710{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0;}
.opto-adult-comparison-v1710{grid-template-columns:repeat(3,minmax(0,1fr));}
.opto-adult-core-grid-v1710 article,
.opto-adult-comparison-v1710 article{padding:18px;border:1px solid var(--opto-adult-border);border-radius:20px;background:var(--opto-adult-surface);}
.opto-adult-core-grid-v1710 small,
.opto-adult-core-grid-v1710 strong,
.opto-adult-core-grid-v1710 span,
.opto-adult-comparison-v1710 small,
.opto-adult-comparison-v1710 strong,
.opto-adult-comparison-v1710 span{display:block;}
.opto-adult-core-grid-v1710 small,
.opto-adult-comparison-v1710 small{color:var(--opto-adult-muted);font-weight:700;}
.opto-adult-core-grid-v1710 strong,
.opto-adult-comparison-v1710 strong{margin:7px 0 4px;font-size:28px;color:var(--opto-adult-text);}
.opto-adult-core-grid-v1710 span,
.opto-adult-comparison-v1710 span{color:var(--opto-adult-muted);}
.opto-adult-detail-grid-v1710{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0;}
.opto-adult-card-v1710{padding:22px;border:1px solid var(--opto-adult-border);border-radius:22px;background:var(--opto-adult-surface);}
.opto-adult-card-head-v1710{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;}
.opto-adult-card-head-v1710 small,
.opto-adult-card-head-v1710 h4{display:block;}
.opto-adult-card-head-v1710 small{color:var(--opto-adult-muted);font-weight:800;text-transform:uppercase;letter-spacing:.03em;}
.opto-adult-card-head-v1710 h4{margin:5px 0 0;font-size:21px;color:var(--opto-adult-text);}
.opto-adult-card-head-v1710>span{color:var(--opto-adult-accent);font-weight:800;}
.opto-adult-week-bars-v1710{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:end;min-height:180px;}
.opto-adult-week-bars-v1710>div{display:grid;gap:7px;text-align:center;}
.opto-adult-week-bars-v1710>div>span{display:flex;align-items:flex-end;height:105px;padding:0 9px;border-radius:13px;background:#e8eef1;overflow:hidden;}
.opto-adult-week-bars-v1710 i{display:block;width:100%;min-height:3px;border-radius:8px 8px 0 0;background:var(--opto-adult-accent);}
.opto-adult-week-bars-v1710 strong{font-size:13px;color:var(--opto-adult-text);}
.opto-adult-week-bars-v1710 small{color:var(--opto-adult-muted);}
.opto-adult-milestones-v1710{display:grid;gap:10px;margin:0;padding:0;list-style:none;}
.opto-adult-milestones-v1710 li{display:grid;grid-template-columns:34px minmax(0,1fr);gap:11px;align-items:center;padding:12px;border:1px solid var(--opto-adult-border);border-radius:15px;background:var(--opto-adult-surface-soft);}
.opto-adult-milestones-v1710 li>span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--opto-adult-accent-soft);color:var(--opto-adult-accent);font-weight:900;}
.opto-adult-milestones-v1710 strong,
.opto-adult-milestones-v1710 small{display:block;}
.opto-adult-milestones-v1710 small{margin-top:3px;color:var(--opto-adult-muted);}
.opto-adult-calendar-card-v1710{margin:16px 0;}
.opto-adult-calendar-v1710{display:grid;grid-template-columns:repeat(7,minmax(42px,1fr));gap:8px;}
.opto-adult-calendar-v1710>span{display:grid;place-items:center;min-height:54px;border:1px solid var(--opto-adult-border);border-radius:12px;background:var(--opto-adult-surface-soft);color:var(--opto-adult-muted);}
.opto-adult-calendar-v1710>span small{font-size:10px;text-transform:uppercase;}
.opto-adult-calendar-v1710>span strong{font-size:15px;}
.opto-adult-calendar-v1710>span.status-complete{border-color:#a8c8ba;background:#eaf4ef;color:#315f4c;}
.opto-adult-calendar-v1710>span.status-partial{border-color:#d5bb8d;background:#fbf5e9;color:#8a6428;}
.opto-adult-calendar-v1710>span.status-pending{border-color:#9abfca;background:#edf6f8;color:#2b7184;}
.opto-adult-calendar-v1710>span.status-missed{border-color:#d9b3b3;background:#fbefef;color:#8f4f4f;}
.opto-adult-calendar-v1710>span.is-today{box-shadow:0 0 0 2px var(--opto-adult-accent) inset;}
.opto-adult-calendar-legend-v1710{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px;color:var(--opto-adult-muted);font-size:12px;}
.opto-adult-calendar-legend-v1710 span:before{content:"";display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:3px;vertical-align:-1px;background:#e8eef1;}
.opto-adult-calendar-legend-v1710 .complete:before{background:#a8c8ba;}
.opto-adult-calendar-legend-v1710 .partial:before{background:#d5bb8d;}
.opto-adult-calendar-legend-v1710 .missed:before{background:#d9b3b3;}
.opto-adult-preferences-v1710{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(210px,.7fr) minmax(210px,.7fr) auto;gap:16px;align-items:center;margin-top:18px;padding:20px;border:1px solid var(--opto-adult-border);border-radius:22px;background:var(--opto-adult-surface-soft);}
.opto-adult-preferences-v1710 h4{margin:4px 0 5px;color:var(--opto-adult-text);}
.opto-adult-preferences-v1710 p{margin:0;color:var(--opto-adult-muted);}
.opto-adult-preferences-v1710 label{display:flex;gap:10px;align-items:flex-start;color:var(--opto-adult-text);}
.opto-adult-preferences-v1710 label input{margin-top:4px;}
.opto-adult-preferences-v1710 label strong,
.opto-adult-preferences-v1710 label small{display:block;}
.opto-adult-preferences-v1710 label small{margin-top:3px;color:var(--opto-adult-muted);font-weight:400;}
.opto-adult-save-status-v1710{grid-column:1/-1;margin:0;padding:12px 14px;border:1px solid #b9d5c8;border-radius:14px;background:#eef7f2;color:#315f4c;font-weight:700;}
.opto-adult-shell-v1710.is-minimal .opto-adult-core-grid-v1710{grid-template-columns:repeat(3,minmax(0,1fr));}
@media (max-width:980px){
    .opto-adult-core-grid-v1710{grid-template-columns:repeat(2,minmax(0,1fr));}
    .opto-adult-preferences-v1710{grid-template-columns:1fr 1fr;}
    .opto-adult-preferences-v1710>div:first-child{grid-column:1/-1;}
}
@media (max-width:700px){
    .opto-adult-home-card-v1710,
    .opto-adult-hero-v1710{display:block;}
    .opto-adult-home-card-v1710__progress,
    .opto-adult-goal-summary-v1710{margin-top:14px;text-align:left;}
    .opto-adult-home-card-v1710>a{display:inline-block;margin-top:14px;}
    .opto-adult-core-grid-v1710,
    .opto-adult-comparison-v1710,
    .opto-adult-detail-grid-v1710,
    .opto-adult-preferences-v1710,
    .opto-adult-shell-v1710.is-minimal .opto-adult-core-grid-v1710{grid-template-columns:1fr;}
    .opto-adult-hero-v1710 h3{font-size:25px;}
    .opto-adult-calendar-v1710{grid-template-columns:repeat(7,minmax(34px,1fr));gap:5px;}
    .opto-adult-calendar-v1710>span{min-height:46px;border-radius:9px;}
    .opto-adult-week-bars-v1710{gap:7px;}
    .opto-adult-week-bars-v1710>div>span{padding:0 5px;}
}

/* v1.7.11 — Objetivo profesional visible en Mi progreso */
.opto-personal-goal-portal-v1711{
    margin:0 0 22px;
    padding:22px;
    border:1px solid #cbdde5;
    border-radius:24px;
    background:#f8fbfc;
    box-shadow:0 14px 32px rgba(15,23,42,.05);
}
.opto-personal-goal-portal-v1711.is-paused{background:#fbfaf5;}
.opto-personal-goal-portal-v1711 header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
}
.opto-personal-goal-portal-v1711 header small{
    display:block;
    margin-bottom:5px;
    color:#58708a;
    font-weight:800;
    letter-spacing:.04em;
    text-transform:uppercase;
}
.opto-personal-goal-portal-v1711 header h3{
    margin:0;
    color:#10233f;
    font-size:26px;
}
.opto-personal-goal-portal-v1711 header > span{
    padding:8px 12px;
    border-radius:999px;
    background:#e8f5f7;
    color:#1f6f82;
    font-size:13px;
    font-weight:800;
}
.opto-personal-goal-portal-progress-v1711{margin-top:18px;}
.opto-personal-goal-portal-progress-v1711 > div{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:14px;
    margin-bottom:10px;
}
.opto-personal-goal-portal-progress-v1711 strong{
    color:#10233f;
    font-size:34px;
    line-height:1;
}
.opto-personal-goal-portal-progress-v1711 span{
    color:#58708a;
    font-weight:700;
    text-align:right;
}
.opto-personal-goal-portal-progress-v1711 i{
    display:block;
    height:12px;
    overflow:hidden;
    border-radius:999px;
    background:#dfeaf0;
}
.opto-personal-goal-portal-progress-v1711 i b{
    display:block;
    height:100%;
    border-radius:inherit;
    background:#43a6b8;
}
.opto-personal-goal-portal-meta-v1711{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin-top:16px;
}
.opto-personal-goal-portal-meta-v1711 span{
    padding:13px 14px;
    border:1px solid #d8e4ea;
    border-radius:16px;
    background:#fff;
    color:#58708a;
}
.opto-personal-goal-portal-meta-v1711 strong{
    display:block;
    margin-bottom:4px;
    color:#10233f;
}
.opto-personal-goal-portal-message-v1711{
    display:flex;
    align-items:flex-start;
    gap:12px;
    margin-top:16px;
    padding:14px 16px;
    border:1px solid #b9dbe4;
    border-radius:16px;
    background:#eef9fb;
}
.opto-personal-goal-portal-message-v1711 > span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:26px;
    height:26px;
    border-radius:50%;
    background:#43a6b8;
    color:#fff;
    font-weight:800;
}
.opto-personal-goal-portal-message-v1711 p,
.opto-personal-goal-portal-note-v1711{margin:0;}
.opto-personal-goal-portal-note-v1711{
    margin-top:14px;
    color:#58708a;
    font-size:13px;
}
@media (max-width:640px){
    .opto-personal-goal-portal-v1711{padding:18px;}
    .opto-personal-goal-portal-v1711 header,
    .opto-personal-goal-portal-progress-v1711 > div{flex-direction:column;align-items:flex-start;}
    .opto-personal-goal-portal-progress-v1711 span{text-align:left;}
    .opto-personal-goal-portal-meta-v1711{grid-template-columns:1fr;}
}

/* v1.7.12 — Insignias clínicas configurables */
.opto-clinical-badges-portal-v1712{
    margin-top:22px;
    padding:22px;
    border:1px solid rgba(120,167,177,.28);
    border-radius:24px;
    background:#fff;
    box-shadow:0 12px 30px rgba(15,23,42,.05);
}
.opto-clinical-badges-portal-v1712 > header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
}
.opto-clinical-badges-portal-v1712 header small{
    display:block;
    color:#60748a;
    font-weight:800;
    letter-spacing:.05em;
    text-transform:uppercase;
}
.opto-clinical-badges-portal-v1712 header h4{margin:4px 0 0;color:#07366c;font-size:24px;}
.opto-clinical-badges-portal-v1712 header > span{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:38px;
    height:38px;
    border-radius:999px;
    background:#e8f6f8;
    color:#0a89a6;
    font-weight:900;
}
.opto-clinical-badges-portal-v1712 > p{color:#60748a;max-width:900px;}
.opto-clinical-badges-portal-grid-v1712{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    margin-top:16px;
}
.opto-clinical-badge-portal-item-v1712{
    display:grid;
    grid-template-columns:54px minmax(0,1fr);
    gap:12px;
    align-items:start;
    border:1px solid #d7e4ea;
    border-radius:18px;
    padding:14px;
    background:#f9fcfd;
}
.opto-clinical-badge-portal-item-v1712 > span{
    display:flex;
    align-items:center;
    justify-content:center;
    width:50px;
    height:50px;
    border-radius:16px;
    background:#e8f6f8;
    color:#0a89a6;
}
.opto-clinical-badge-portal-item-v1712 svg{width:28px;height:28px;fill:currentColor;}
.opto-clinical-badge-portal-item-v1712 strong,
.opto-clinical-badge-portal-item-v1712 small,
.opto-clinical-badge-portal-item-v1712 em{display:block;}
.opto-clinical-badge-portal-item-v1712 strong{color:#10233f;}
.opto-clinical-badge-portal-item-v1712 small{margin-top:4px;color:#60748a;line-height:1.45;}
.opto-clinical-badge-portal-item-v1712 em{margin-top:8px;color:#7b8a99;font-size:12px;font-style:normal;}
.opto-child-progress-v176 .opto-clinical-badge-portal-item-v1712 > span{
    background:#fff4cf;
    color:#a96f00;
}
.opto-youth-progress-v179 .opto-clinical-badge-portal-item-v1712{
    background:rgba(255,255,255,.72);
}
@media (max-width:980px){
    .opto-clinical-badges-portal-grid-v1712{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:640px){
    .opto-clinical-badges-portal-v1712{padding:18px;border-radius:20px;}
    .opto-clinical-badges-portal-grid-v1712{grid-template-columns:1fr;}
}

/* v1.7.13 — Personalización visual y accesibilidad por paciente */
.opto-patient-portal-v1713 {
	--opto-visual-accent: #079bb4;
	--opto-visual-accent-strong: #087a92;
	--opto-visual-surface: #ffffff;
	--opto-visual-soft: #f3f9fb;
	--opto-visual-border: #cfe0e7;
	--opto-visual-text: #10233f;
	--opto-visual-muted: #58708a;
	position: relative;
	color: var(--opto-visual-text);
}
.opto-patient-portal-v1713.opto-visual-theme-soft {
	--opto-visual-accent: #6b78b8;
	--opto-visual-accent-strong: #4e5c9c;
	--opto-visual-soft: #f5f5fb;
	--opto-visual-border: #d8dbee;
}
.opto-patient-portal-v1713.opto-visual-theme-graphite {
	--opto-visual-accent: #52606d;
	--opto-visual-accent-strong: #34414d;
	--opto-visual-soft: #f2f4f5;
	--opto-visual-border: #ced5da;
	--opto-visual-text: #16212a;
	--opto-visual-muted: #596873;
}
.opto-patient-portal-v1713.opto-visual-theme-warm {
	--opto-visual-accent: #9a7044;
	--opto-visual-accent-strong: #77522f;
	--opto-visual-soft: #fbf7f1;
	--opto-visual-border: #e6d8c5;
	--opto-visual-text: #2d241c;
	--opto-visual-muted: #746354;
}
.opto-patient-portal-v1713.opto-visual-bg-gradient {
	background-image: linear-gradient(145deg, color-mix(in srgb, var(--opto-visual-soft) 88%, white), #fff 62%);
}
.opto-patient-portal-v1713.opto-visual-bg-dots {
	background-color: var(--opto-visual-soft);
	background-image: radial-gradient(color-mix(in srgb, var(--opto-visual-accent) 18%, transparent) 1px, transparent 1px);
	background-size: 22px 22px;
}
.opto-patient-portal-v1713.opto-visual-bg-waves {
	background-color: var(--opto-visual-soft);
	background-image: repeating-radial-gradient(ellipse at 0 0, transparent 0 22px, color-mix(in srgb, var(--opto-visual-accent) 10%, transparent) 23px 24px, transparent 25px 46px);
}
.opto-patient-portal-v1713 .opto-patient-panel,
.opto-patient-portal-v1713 .opto-patient-v157-card,
.opto-patient-portal-v1713 .opto-patient-v157-progress-card,
.opto-patient-portal-v1713 .opto-child-adventure-v177,
.opto-patient-portal-v1713 .opto-youth-shell-v179,
.opto-patient-portal-v1713 .opto-adult-shell-v1710 {
	border-color: var(--opto-visual-border);
}
.opto-patient-portal-v1713 .opto-patient-kicker,
.opto-patient-portal-v1713 .opto-patient-panel h3,
.opto-patient-portal-v1713 .opto-patient-panel h4,
.opto-patient-portal-v1713 .opto-visual-preferences-v1713 h4 {
	color: var(--opto-visual-accent-strong);
}
.opto-patient-portal-v1713 .opto-button,
.opto-patient-portal-v1713 .opto-button-secondary,
.opto-patient-portal-v1713 button[type="submit"] {
	border-color: var(--opto-visual-accent);
}
.opto-patient-portal-v1713 .opto-button:not(.opto-button-light),
.opto-patient-portal-v1713 button[type="submit"] {
	background: var(--opto-visual-accent);
}
.opto-patient-portal-v1713.opto-visual-text-compact {
	font-size: 14px;
}
.opto-patient-portal-v1713.opto-visual-text-standard {
	font-size: 16px;
}
.opto-patient-portal-v1713.opto-visual-text-large {
	font-size: 18px;
}
.opto-patient-portal-v1713.opto-visual-text-xlarge {
	font-size: 20px;
}
.opto-patient-portal-v1713.opto-visual-text-large p,
.opto-patient-portal-v1713.opto-visual-text-large label,
.opto-patient-portal-v1713.opto-visual-text-large li,
.opto-patient-portal-v1713.opto-visual-text-xlarge p,
.opto-patient-portal-v1713.opto-visual-text-xlarge label,
.opto-patient-portal-v1713.opto-visual-text-xlarge li {
	font-size: 1em;
	line-height: 1.65;
}
.opto-patient-portal-v1713.opto-visual-text-xlarge .opto-patient-panel h3 {
	font-size: 1.8em;
}
.opto-patient-portal-v1713.opto-visual-high-contrast {
	--opto-visual-accent: #00627a;
	--opto-visual-accent-strong: #002f42;
	--opto-visual-border: #243746;
	--opto-visual-text: #07141f;
	--opto-visual-muted: #243746;
}
.opto-patient-portal-v1713.opto-visual-high-contrast .opto-patient-panel,
.opto-patient-portal-v1713.opto-visual-high-contrast article,
.opto-patient-portal-v1713.opto-visual-high-contrast input,
.opto-patient-portal-v1713.opto-visual-high-contrast select,
.opto-patient-portal-v1713.opto-visual-high-contrast textarea {
	border-width: 2px;
	border-color: var(--opto-visual-border);
}
.opto-patient-portal-v1713.opto-visual-high-contrast :focus-visible {
	outline: 4px solid #ffbf00 !important;
	outline-offset: 3px;
}
.opto-patient-portal-v1713.opto-visual-high-contrast .opto-button,
.opto-patient-portal-v1713.opto-visual-high-contrast button {
	font-weight: 800;
}
.opto-patient-portal-v1713.opto-visual-stimulation-reduced {
	background-image: none !important;
}
.opto-patient-portal-v1713.opto-visual-stimulation-reduced .opto-patient-panel,
.opto-patient-portal-v1713.opto-visual-stimulation-reduced article,
.opto-patient-portal-v1713.opto-visual-stimulation-reduced .opto-patient-hero {
	box-shadow: none !important;
}
.opto-patient-portal-v1713.opto-visual-stimulation-reduced .opto-child-celebration-v176,
.opto-patient-portal-v1713.opto-visual-stimulation-reduced .opto-child-progress-avatar-v176,
.opto-patient-portal-v1713.opto-visual-stimulation-reduced .opto-child-companion-avatar-v177 {
	animation: none !important;
}
.opto-patient-portal-v1713.opto-visual-stimulation-dynamic:not(.opto-visual-no-motion) .opto-patient-panel,
.opto-patient-portal-v1713.opto-visual-stimulation-dynamic:not(.opto-visual-no-motion) article {
	transition: transform .18s ease, box-shadow .18s ease;
}
.opto-patient-portal-v1713.opto-visual-stimulation-dynamic:not(.opto-visual-no-motion) .opto-patient-panel:hover article:hover {
	transform: translateY(-2px);
}
.opto-patient-portal-v1713.opto-visual-no-motion *,
.opto-patient-portal-v1713.opto-visual-no-motion *::before,
.opto-patient-portal-v1713.opto-visual-no-motion *::after {
	animation: none !important;
	transition: none !important;
	scroll-behavior: auto !important;
}
.opto-visual-progress-marker-v1713 {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 10px;
	min-height: 34px;
	margin: -2px 0 12px;
	color: var(--opto-visual-accent-strong);
}
.opto-visual-progress-icon-v1713,
.opto-visual-avatar-v1713 {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid var(--opto-visual-border);
	border-radius: 14px;
	background: var(--opto-visual-soft);
}
.opto-visual-avatar-v1713 {
	font-size: 22px;
}
.opto-visual-preferences-v1713 {
	margin-top: 22px;
	padding: 24px;
	border: 1px solid var(--opto-visual-border);
	border-radius: 24px;
	background: color-mix(in srgb, var(--opto-visual-soft) 66%, white);
}
.opto-visual-preferences-v1713 > header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 20px;
}
.opto-visual-preferences-v1713 header small,
.opto-visual-preferences-v1713 header h4,
.opto-visual-preferences-v1713 header p {
	display: block;
	margin: 0 0 6px;
}
.opto-visual-preview-avatar-v1713 {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 58px;
	flex: 0 0 58px;
	border-radius: 18px;
	background: var(--opto-visual-accent);
	color: #fff;
	font-size: 26px;
	font-weight: 800;
}
.opto-visual-preferences-grid-v1713 {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}
.opto-visual-preferences-grid-v1713 label {
	display: flex;
	flex-direction: column;
	gap: 7px;
	font-weight: 700;
}
.opto-visual-preferences-grid-v1713 select {
	width: 100%;
	min-height: 48px;
	border: 1px solid var(--opto-visual-border);
	border-radius: 14px;
	background: #fff;
	color: var(--opto-visual-text);
	padding: 0 13px;
}
.opto-visual-preferences-toggles-v1713 {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin: 16px 0;
}
.opto-visual-preferences-toggles-v1713 label {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 16px;
	border: 1px solid var(--opto-visual-border);
	border-radius: 16px;
	background: #fff;
}
.opto-visual-preferences-toggles-v1713 input {
	width: 20px;
	height: 20px;
	margin-top: 2px;
}
.opto-visual-preferences-toggles-v1713 span,
.opto-visual-preferences-toggles-v1713 small {
	display: block;
}
.opto-visual-preferences-toggles-v1713 small {
	margin-top: 3px;
	color: var(--opto-visual-muted);
}
.opto-visual-preferences-note-v1713 {
	margin: 0 0 16px;
	padding: 14px 16px;
	border-left: 4px solid var(--opto-visual-accent);
	border-radius: 10px;
	background: #fff;
}
.opto-visual-preferences-note-v1713 p {
	margin: 4px 0 0;
}
.opto-visual-save-status-v1713 {
	margin: 14px 0 0;
	padding: 12px 14px;
	border-radius: 12px;
	font-weight: 700;
}
.opto-visual-save-status-v1713.is-success {
	background: #eaf8ef;
	color: #17643a;
}
.opto-visual-save-status-v1713.is-error {
	background: #fff0f0;
	color: #9b2424;
}
@media (prefers-reduced-motion: reduce) {
	.opto-patient-portal-v1713 *,
	.opto-patient-portal-v1713 *::before,
	.opto-patient-portal-v1713 *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}
@media (max-width: 900px) {
	.opto-visual-preferences-grid-v1713 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 620px) {
	.opto-visual-preferences-v1713 {
		padding: 18px;
		border-radius: 20px;
	}
	.opto-visual-preferences-v1713 > header,
	.opto-visual-preferences-grid-v1713,
	.opto-visual-preferences-toggles-v1713 {
		grid-template-columns: 1fr;
	}
	.opto-visual-preferences-v1713 > header {
		display: grid;
	}
	.opto-visual-preview-avatar-v1713 {
		grid-row: 1;
	}
	.opto-visual-progress-marker-v1713 {
		justify-content: flex-start;
	}
}


/* v1.7.15 — Accesibilidad y neurodiversidad */
.opto-patient-portal :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid currentColor!important;outline-offset:3px!important;box-shadow:0 0 0 5px rgba(255,255,255,.92)!important}
.opto-accessibility-step-guide-v1715{display:grid;gap:8px;margin:16px 0;padding:14px 18px 14px 42px;border:1px solid #cbdbe4;border-radius:14px;background:#f7fafc;line-height:1.6}
.opto-accessibility-hidden-timers .opto-live-timer{display:none!important}
.opto-accessibility-no-celebrations .opto-child-celebration-v176,.opto-accessibility-no-celebrations [data-opto-confetti],.opto-accessibility-no-celebrations .opto-confetti{display:none!important}
.opto-accessibility-no-streaks [data-opto-streak]{display:none!important}
.opto-accessibility-easy-read :where(p,li,label,small){line-height:1.7}
.opto-accessibility-easy-read :where(.opto-public-detail-box,.opto-public-mini-box,.opto-training-summary-card-v162,.opto-accessibility-portal-settings-v1715){max-width:76ch}
.opto-accessibility-low-stimulus,.opto-accessibility-low-stimulus *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
.opto-accessibility-low-stimulus :where(.opto-patient-v155-visual,.opto-child-path-character-v176,.opto-visual-preview-avatar-v1713){display:none!important}
.opto-accessibility-portal-settings-v1715{margin:18px 0;padding:18px;border:1px solid #cbdbe4;border-radius:16px;background:#f8fafc}
.opto-accessibility-portal-settings-v1715 h5{margin:3px 0 6px;font-size:1.05rem}
.opto-accessibility-main-toggle-v1715,.opto-accessibility-portal-grid-v1715>label{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid #dbe5eb;border-radius:12px;background:#fff}
.opto-accessibility-main-toggle-v1715{margin:14px 0;border-width:2px}
.opto-accessibility-portal-grid-v1715{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.opto-accessibility-portal-grid-v1715 span,.opto-accessibility-main-toggle-v1715 span{display:grid;gap:3px}.opto-accessibility-portal-grid-v1715 small,.opto-accessibility-main-toggle-v1715 small{font-weight:400}
.opto-accessibility-locked-v1715{margin:0 0 14px;padding:12px 14px;border-left:4px solid #315a70;background:#edf3f6}.opto-accessibility-locked-v1715 p{margin:4px 0 0}
.opto-visual-preferences-form-v1713 fieldset{border:0;padding:0;margin:0;min-width:0}.opto-visual-preferences-form-v1713 fieldset:disabled{opacity:.78}
@media(max-width:720px){.opto-accessibility-portal-grid-v1715{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.opto-patient-portal,.opto-patient-portal *{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}


/* v1.7.17 — central animations, celebrations and moving mascots */
.opto-celebration-engine-v1717[hidden],.opto-celebration-engine-v1717 [hidden]{display:none!important}
.opto-celebration-engine-v1717{position:fixed;inset:0;z-index:2147482000;display:grid;place-items:center;padding:20px;background:rgba(15,23,42,.62);backdrop-filter:blur(8px);opacity:0;transition:opacity .24s ease}.opto-celebration-engine-v1717.is-active{opacity:1}.opto-celebration-engine-v1717.is-leaving{opacity:0}.opto-celebration-dialog-v1717{position:relative;z-index:2;width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;padding:34px 30px 28px;border:1px solid rgba(255,255,255,.7);border-radius:30px;background:linear-gradient(145deg,#fff 0%,#f8fbff 62%,#eef6ff 100%);box-shadow:0 30px 90px rgba(15,23,42,.34);text-align:center;transform:translateY(22px) scale(.94);opacity:0;animation:opto-celebration-enter-v1717 .48s cubic-bezier(.2,.9,.25,1.15) forwards}.opto-celebration-close-v1717{position:absolute;top:14px;right:14px;width:38px;height:38px;border:0;border-radius:50%;background:#eef2f7;color:#334155;font-size:25px;line-height:1;cursor:pointer}.opto-celebration-mascot-v1717{display:grid;place-items:center;width:112px;height:112px;margin:0 auto 14px;border-radius:34px;background:linear-gradient(145deg,#fff7cc,#ffe89b);font-size:64px;filter:drop-shadow(0 14px 13px rgba(245,158,11,.2));animation:opto-mascot-party-v1717 1.15s cubic-bezier(.2,.8,.3,1.2) both}.opto-celebration-kicker-v1717{margin:0 0 6px;color:#2563eb;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.opto-celebration-dialog-v1717 h2{margin:0;color:#15253d;font-size:clamp(27px,5vw,40px);line-height:1.08}.opto-celebration-dialog-v1717>p:not(.opto-celebration-kicker-v1717){max-width:420px;margin:14px auto 0;color:#52627a;font-size:17px;line-height:1.55}.opto-celebration-description-v1717{padding:12px 16px;border-radius:16px;background:#eef6ff}.opto-celebration-actions-v1717{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:24px}.opto-celebration-particles-v1717{position:absolute;inset:0;overflow:hidden;pointer-events:none}.opto-celebration-particles-v1717 i{position:absolute;left:var(--x);top:-24px;width:10px;height:18px;border-radius:3px;background:hsl(var(--hue),85%,60%);animation:opto-confetti-fall-v1717 2.25s cubic-bezier(.15,.75,.35,1) var(--delay) both}.opto-celebration-particles-v1717 i:nth-child(3n){border-radius:50%;width:13px;height:13px}.opto-celebration-particles-v1717 i.is-firework{top:55%;width:9px;height:9px;border-radius:50%;animation:opto-firework-v1717 1.15s ease-out var(--delay) both}.opto-celebration-engine-v1717.event-weekly_plan_completed .opto-celebration-dialog-v1717,.opto-celebration-engine-v1717.event-level_unlocked .opto-celebration-dialog-v1717{background:linear-gradient(145deg,#fff 0%,#fff9dc 48%,#f2eaff 100%)}.opto-celebration-badge-v1717{position:relative;display:grid;place-items:center;width:150px;height:150px;margin:0 auto 18px;border:9px double #c2410c;border-radius:50%;color:#c2410c;transform:rotate(-11deg) scale(2.4);opacity:0}.opto-celebration-badge-v1717 span{font-size:54px;line-height:1}.opto-celebration-badge-v1717 b{font-size:13px;letter-spacing:.13em}.opto-celebration-dialog-v1717.is-stamping .opto-celebration-badge-v1717{animation:opto-badge-stamp-v1717 .65s cubic-bezier(.2,.9,.3,1.25) .15s forwards}.opto-celebration-dialog-v1717.is-stamping .opto-celebration-mascot-v1717{display:none}.opto-animated-mascot-v1717{transform-origin:50% 80%;animation:opto-mascot-idle-v1717 3.2s ease-in-out var(--mascot-delay,0s) infinite}.opto-animated-mascot-v1717.avatar-owl{animation-name:opto-owl-idle-v1717}.opto-animated-mascot-v1717.avatar-fox{animation-name:opto-fox-idle-v1717}.opto-animated-mascot-v1717.avatar-rocket{animation-name:opto-rocket-idle-v1717}.opto-animated-mascot-v1717.avatar-star{animation-name:opto-star-idle-v1717}.opto-child-path-character-v176[data-opto-progress-marker]{transition:left 1.65s cubic-bezier(.22,.85,.28,1.05),transform .3s ease}.opto-child-path-character-v176.is-travelling-v1717{animation:opto-progress-hop-v1717 .48s ease-in-out infinite}.opto-progress-is-animating-v1717 .opto-child-path-v176:after{animation:opto-progress-glow-v1717 1.2s ease-in-out infinite}.opto-animation-settings-v1717{grid-column:1/-1;padding:20px;border:1px solid #dbe7f4;border-radius:22px;background:linear-gradient(145deg,#fbfdff,#f5f9ff)}.opto-animation-options-grid-v1717{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.opto-animation-options-grid-v1717>label{display:flex;align-items:flex-start;gap:10px;padding:14px;border:1px solid #dbe7f4;border-radius:16px;background:#fff}.opto-animation-options-grid-v1717 input{margin-top:4px}.opto-animation-options-grid-v1717 span{display:grid;gap:4px}.opto-animation-options-grid-v1717 small{color:#64748b}.opto-gamification-clinical-note-v1717{display:flex;gap:10px;align-items:flex-start;margin-top:14px;padding:12px 14px;border-radius:14px;background:#edf8f4;color:#255c4b}.opto-gamification-clinical-note-v1717 p{margin:0}
@keyframes opto-celebration-enter-v1717{to{transform:translateY(0) scale(1);opacity:1}}@keyframes opto-mascot-party-v1717{0%{transform:translateY(20px) scale(.7) rotate(-8deg);opacity:0}35%{transform:translateY(-18px) scale(1.12) rotate(8deg);opacity:1}62%{transform:translateY(0) scale(.96) rotate(-4deg)}100%{transform:none;opacity:1}}@keyframes opto-confetti-fall-v1717{0%{transform:translate3d(0,-20px,0) rotate(0);opacity:0}12%{opacity:1}100%{transform:translate3d(var(--drift),110vh,0) rotate(var(--spin));opacity:.9}}@keyframes opto-firework-v1717{0%{transform:translate(0,0) scale(.2);opacity:0}15%{opacity:1}100%{transform:translate(var(--drift),-48vh) scale(1.5);opacity:0}}@keyframes opto-badge-stamp-v1717{0%{transform:rotate(-11deg) scale(2.4);opacity:0}62%{transform:rotate(-11deg) scale(.86);opacity:1}76%{transform:rotate(-11deg) scale(1.08)}100%{transform:rotate(-11deg) scale(1);opacity:1}}@keyframes opto-mascot-idle-v1717{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-5px) rotate(2deg)}}@keyframes opto-owl-idle-v1717{0%,100%{transform:rotate(0) scale(1)}45%{transform:rotate(-5deg) scale(1.03)}55%{transform:rotate(5deg) scale(1.03)}}@keyframes opto-fox-idle-v1717{0%,100%{transform:translateY(0) rotate(0)}40%{transform:translateY(-4px) rotate(-4deg)}60%{transform:translateY(-4px) rotate(4deg)}}@keyframes opto-rocket-idle-v1717{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px) rotate(2deg);filter:drop-shadow(0 9px 5px rgba(59,130,246,.3))}}@keyframes opto-star-idle-v1717{0%,100%{transform:scale(1) rotate(0);filter:brightness(1)}50%{transform:scale(1.12) rotate(8deg);filter:brightness(1.25)}}@keyframes opto-progress-hop-v1717{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-12px) rotate(4deg)}}@keyframes opto-progress-glow-v1717{0%,100%{filter:brightness(1)}50%{filter:brightness(1.25)}}
@media(max-width:700px){.opto-celebration-dialog-v1717{padding:28px 20px 22px;border-radius:24px}.opto-celebration-mascot-v1717{width:92px;height:92px;font-size:52px}.opto-animation-options-grid-v1717{grid-template-columns:1fr}.opto-celebration-actions-v1717>*{width:100%}}
.opto-accessibility-low-stimulus .opto-celebration-engine-v1717,.opto-visual-reduce-motion .opto-celebration-engine-v1717{display:none!important}.opto-accessibility-low-stimulus .opto-animated-mascot-v1717,.opto-visual-reduce-motion .opto-animated-mascot-v1717{animation:none!important}.opto-accessibility-no-celebrations .opto-celebration-particles-v1717{display:none!important}
@media(prefers-reduced-motion:reduce){.opto-celebration-engine-v1717,.opto-celebration-engine-v1717 *,.opto-animated-mascot-v1717,.opto-child-path-character-v176[data-opto-progress-marker]{animation:none!important;transition:none!important}.opto-celebration-engine-v1717{display:none!important}}

.opto-animation-portal-settings-v1717{margin-top:18px}.opto-animation-portal-settings-v1717>div:first-child h5{margin:4px 0 6px}.opto-animation-portal-settings-v1717>div:first-child p{margin:0;color:#64748b}

.opto-celebration-engine-v1717.has-background-motion:before,.opto-celebration-engine-v1717.has-background-motion:after{content:"";position:absolute;width:42vmax;height:42vmax;border-radius:50%;pointer-events:none;opacity:.28;filter:blur(2px);background:radial-gradient(circle,rgba(96,165,250,.72),rgba(167,139,250,.18) 48%,transparent 70%);animation:opto-ambient-orbit-v1717 7s ease-in-out infinite alternate}.opto-celebration-engine-v1717.has-background-motion:before{left:-14vmax;top:-18vmax}.opto-celebration-engine-v1717.has-background-motion:after{right:-16vmax;bottom:-20vmax;animation-delay:-3.5s;animation-direction:alternate-reverse}@keyframes opto-ambient-orbit-v1717{to{transform:translate3d(8vmax,6vmax,0) scale(1.16);opacity:.44}}.opto-animation-acceptance-v1717{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}.opto-animation-acceptance-v1717>div{display:grid;gap:3px;padding:13px;border:1px solid #dbe7f4;border-radius:14px;background:#fff}.opto-animation-acceptance-v1717 small,.opto-animation-acceptance-v1717 span{color:#64748b}.opto-animation-acceptance-v1717 strong{font-size:24px;color:#17345b}.opto-animation-report-note-v1717{margin:10px 0 0!important}@media(max-width:900px){.opto-animation-acceptance-v1717{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.opto-animation-acceptance-v1717{grid-template-columns:1fr}}


/* ==========================================================
   v1.7.17.1 — Correcciones visuales, responsive y compatibilidad
   ========================================================== */
html.opto-celebration-open-v17171,
body.opto-celebration-open-v17171{
	overflow:hidden !important;
	overscroll-behavior:none;
}
.opto-celebration-engine-v1717{
	top:0;right:0;bottom:0;left:0;
	box-sizing:border-box;
	align-items:center;
	justify-content:center;
	min-height:100vh;
	min-height:var(--opto-celebration-vh,100vh);
	padding:20px;
	padding-top:max(20px,env(safe-area-inset-top));
	padding-right:max(20px,env(safe-area-inset-right));
	padding-bottom:max(20px,env(safe-area-inset-bottom));
	padding-left:max(20px,env(safe-area-inset-left));
	-webkit-backdrop-filter:blur(8px);
	backdrop-filter:blur(8px);
	overscroll-behavior:contain;
}
.opto-celebration-dialog-v1717{
	box-sizing:border-box;
	width:calc(100vw - 32px);
	max-width:520px;
	max-height:calc(var(--opto-celebration-vh,100vh) - 40px);
	-webkit-overflow-scrolling:touch;
	overscroll-behavior:contain;
	scrollbar-gutter:stable;
	overflow-wrap:anywhere;
	word-break:normal;
	touch-action:pan-y;
}
.opto-celebration-dialog-v1717:focus{outline:none}
.opto-celebration-close-v1717{
	width:44px;
	height:44px;
	min-width:44px;
	min-height:44px;
	touch-action:manipulation;
	-webkit-tap-highlight-color:transparent;
}
.opto-celebration-close-v1717:focus,
.opto-celebration-actions-v1717 button:focus{
	outline:3px solid #0b70b7;
	outline-offset:3px;
}
.opto-celebration-close-v1717:focus:not(:focus-visible),
.opto-celebration-actions-v1717 button:focus:not(:focus-visible){outline:none}
.opto-celebration-close-v1717:focus-visible,
.opto-celebration-actions-v1717 button:focus-visible{
	outline:3px solid #0b70b7;
	outline-offset:3px;
}
.opto-celebration-actions-v1717 button,
.opto-celebration-actions-v1717 a{
	min-height:44px;
	touch-action:manipulation;
	-webkit-tap-highlight-color:transparent;
}
.opto-celebration-particles-v1717{
	top:0;right:0;bottom:0;left:0;
	contain:layout paint;
}
.opto-celebration-particles-v1717 i{will-change:transform,opacity}
.opto-child-path-v176{isolation:isolate}
.opto-child-path-character-v176[data-opto-progress-marker]{
	max-width:44px;
	line-height:1;
	will-change:left,transform;
}
.opto-animation-settings-v1717,
.opto-animation-settings-v1717 *,
.opto-animation-options-grid-v1717 > label,
.opto-animation-acceptance-v1717 > div{box-sizing:border-box}
.opto-animation-settings-v1717,
.opto-animation-options-grid-v1717 > label,
.opto-animation-options-grid-v1717 span,
.opto-animation-acceptance-v1717 > div{min-width:0}
.opto-animation-settings-v1717 > label{
	display:grid;
	gap:6px;
	min-width:0;
	margin-top:14px;
}
.opto-animation-settings-v1717 select{
	width:100%;
	max-width:420px;
	min-height:44px;
}
.opto-animation-options-grid-v1717 input[type="checkbox"]{
	flex:0 0 auto;
	width:18px;
	height:18px;
}
.opto-animation-options-grid-v1717 strong,
.opto-animation-options-grid-v1717 small,
.opto-animation-acceptance-v1717 small,
.opto-animation-acceptance-v1717 span{overflow-wrap:anywhere}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
	.opto-celebration-engine-v1717{background:rgba(15,23,42,.82)}
}
@media (max-width:700px){
	.opto-celebration-engine-v1717{
		padding:10px;
		padding-top:max(10px,env(safe-area-inset-top));
		padding-right:max(10px,env(safe-area-inset-right));
		padding-bottom:max(10px,env(safe-area-inset-bottom));
		padding-left:max(10px,env(safe-area-inset-left));
	}
	.opto-celebration-dialog-v1717{
		width:100%;
		max-height:calc(var(--opto-celebration-vh,100vh) - 20px);
		padding:58px 18px 20px;
		border-radius:22px;
	}
	.opto-celebration-dialog-v1717 h2{font-size:30px;font-size:clamp(26px,8vw,34px)}
	.opto-celebration-dialog-v1717 > p:not(.opto-celebration-kicker-v1717){font-size:16px;line-height:1.45}
	.opto-celebration-close-v1717{top:10px;right:10px}
	.opto-celebration-actions-v1717{display:grid;grid-template-columns:1fr;gap:8px;margin-top:18px}
	.opto-celebration-actions-v1717 > *{width:100%;max-width:none}
	.opto-animation-settings-v1717{padding:16px;border-radius:18px}
	.opto-animation-options-grid-v1717 > label{padding:12px;border-radius:14px}
	.opto-animation-settings-v1717 select{max-width:none}
}
@media (max-width:360px){
	.opto-celebration-dialog-v1717{padding-right:14px;padding-left:14px}
	.opto-celebration-mascot-v1717{width:78px;height:78px;font-size:44px;border-radius:24px}
	.opto-celebration-badge-v1717{width:120px;height:120px;border-width:7px}
	.opto-celebration-badge-v1717 span{font-size:42px}
	.opto-celebration-dialog-v1717 h2{font-size:26px}
}
@media (max-height:560px) and (orientation:landscape){
	.opto-celebration-engine-v1717{align-items:flex-start}
	.opto-celebration-dialog-v1717{
		max-width:720px;
		padding:48px 22px 16px;
		text-align:left;
	}
	.opto-celebration-mascot-v1717,
	.opto-celebration-badge-v1717{float:left;margin:0 18px 10px 0}
	.opto-celebration-mascot-v1717{width:72px;height:72px;font-size:42px;border-radius:22px}
	.opto-celebration-badge-v1717{width:96px;height:96px;border-width:6px}
	.opto-celebration-badge-v1717 span{font-size:34px}
	.opto-celebration-kicker-v1717{padding-top:2px}
	.opto-celebration-dialog-v1717 > p:not(.opto-celebration-kicker-v1717){max-width:none;margin-top:8px}
	.opto-celebration-actions-v1717{clear:both;display:flex;justify-content:flex-end;margin-top:12px}
	.opto-celebration-actions-v1717 > *{width:auto;min-width:150px}
}
@media (forced-colors:active){
	.opto-celebration-engine-v1717{background:Canvas}
	.opto-celebration-dialog-v1717,
	.opto-celebration-mascot-v1717,
	.opto-celebration-badge-v1717,
	.opto-animation-options-grid-v1717 > label{border:2px solid CanvasText;background:Canvas;color:CanvasText;box-shadow:none}
	.opto-celebration-particles-v1717{display:none}
	.opto-celebration-close-v1717{border:2px solid ButtonText}
}
@media (prefers-reduced-motion:reduce){
	.opto-celebration-engine-v1717{display:grid!important}
	.opto-celebration-engine-v1717[hidden]{display:none!important}
}

/* ==========================================================
   v1.7.17.2 — Mi progreso dividido en apartados y corrección de textos
   ========================================================== */
.opto-patient-progress-v157{
	overflow-x:hidden;
}
.opto-progress-pagination-v17172{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(132px,1fr));
	gap:10px;
	margin:0 0 10px;
	padding:10px;
	border:1px solid #d6e4eb;
	border-radius:20px;
	background:#f7fbfc;
	box-shadow:0 8px 22px rgba(18,50,77,.06);
}
.opto-progress-pagination-v17172 button{
	display:flex;
	align-items:center;
	justify-content:center;
	gap:9px;
	min-width:0;
	min-height:48px;
	padding:10px 14px;
	border:1px solid transparent;
	border-radius:14px;
	background:transparent;
	color:#36566c;
	font:inherit;
	cursor:pointer;
	transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease;
}
.opto-progress-pagination-v17172 button span{
	display:grid;
	place-items:center;
	width:26px;
	height:26px;
	flex:0 0 26px;
	border-radius:9px;
	background:#e7f2f5;
	font-size:14px;
	line-height:1;
}
.opto-progress-pagination-v17172 button strong{
	min-width:0;
	overflow-wrap:anywhere;
	font-size:14px;
	line-height:1.2;
}
.opto-progress-pagination-v17172 button:hover{
	border-color:#b8d7df;
	background:#fff;
}
.opto-progress-pagination-v17172 button.is-active{
	border-color:#0f9db1;
	background:#0f9db1;
	color:#fff;
	box-shadow:0 8px 18px rgba(15,157,177,.18);
}
.opto-progress-pagination-v17172 button.is-active span{
	background:rgba(255,255,255,.18);
	color:#fff;
}
.opto-progress-pagination-status-v17172{
	position:absolute!important;
	width:1px!important;
	height:1px!important;
	padding:0!important;
	margin:-1px!important;
	overflow:hidden!important;
	clip:rect(0,0,0,0)!important;
	white-space:nowrap!important;
	border:0!important;
}
.opto-patient-progress-v157 [data-opto-progress-page][hidden],
.opto-patient-progress-v157 .opto-youth-shell-v179[hidden],
.opto-patient-progress-v157 .opto-adult-shell-v1710[hidden]{
	display:none!important;
}
.opto-patient-progress-v157 :where(
	.opto-child-progress-hero-v176,
	.opto-child-adventure-v177,
	.opto-family-rewards-v178,
	.opto-child-path-card-v176,
	.opto-child-progress-grid-v176,
	.opto-child-family-note-v176,
	.opto-youth-shell-v179,
	.opto-adult-shell-v1710,
	.opto-visual-preferences-v1713,
	.opto-clinical-badges-portal-v1712,
	.opto-patient-v157-progress-grid,
	.opto-personal-goal-portal-v1711
){
	max-width:100%;
	min-width:0;
	box-sizing:border-box;
}
.opto-patient-progress-v157 :where(article,div,header,form,fieldset,label,span,strong,small,p,h3,h4,h5,li){
	min-width:0;
}
.opto-patient-progress-v157 :where(p,strong,small,h3,h4,h5,li,em,label){
	overflow-wrap:anywhere;
	word-break:normal;
	hyphens:auto;
	white-space:normal;
	writing-mode:horizontal-tb;
	text-orientation:mixed;
}
.opto-child-chapters-v177 article,
.opto-child-missions-v177 article,
.opto-child-companion-v177,
.opto-child-collection-v177{
	min-width:0;
	overflow:hidden;
}
.opto-child-chapters-v177 article>div,
.opto-child-missions-v177 article>div,
.opto-child-companion-v177>div{
	min-width:0;
	width:100%;
}
.opto-child-missions-v177 article>b{
	max-width:132px;
	overflow-wrap:anywhere;
}
.opto-patient-progress-v157 :where(
	.opto-visual-preferences-toggles-v1713>label,
	.opto-accessibility-main-toggle-v1715,
	.opto-accessibility-portal-grid-v1715>label,
	.opto-animation-options-grid-v1717>label,
	.opto-family-preference-options-v1781>label
){
	display:grid!important;
	grid-template-columns:22px minmax(0,1fr)!important;
	align-items:start!important;
	justify-content:stretch!important;
	gap:10px!important;
	width:100%!important;
	max-width:none!important;
	min-width:0!important;
	height:auto!important;
	min-height:0!important;
	float:none!important;
	position:relative!important;
	text-align:left!important;
	white-space:normal!important;
	writing-mode:horizontal-tb!important;
	text-orientation:mixed!important;
	box-sizing:border-box!important;
}
.opto-patient-progress-v157 :where(
	.opto-visual-preferences-toggles-v1713>label,
	.opto-accessibility-main-toggle-v1715,
	.opto-accessibility-portal-grid-v1715>label,
	.opto-animation-options-grid-v1717>label,
	.opto-family-preference-options-v1781>label
) input[type="checkbox"]{
	grid-column:1!important;
	width:20px!important;
	height:20px!important;
	min-width:20px!important;
	max-width:20px!important;
	margin:2px 0 0!important;
	padding:0!important;
	justify-self:start!important;
	align-self:start!important;
	float:none!important;
	position:static!important;
}
.opto-patient-progress-v157 :where(
	.opto-visual-preferences-toggles-v1713>label,
	.opto-accessibility-main-toggle-v1715,
	.opto-accessibility-portal-grid-v1715>label,
	.opto-animation-options-grid-v1717>label,
	.opto-family-preference-options-v1781>label
)>span{
	grid-column:2!important;
	display:block;
	width:auto!important;
	min-width:0!important;
	max-width:none!important;
	margin:0!important;
	padding:0!important;
	text-align:left!important;
	white-space:normal!important;
}
.opto-patient-progress-v157 :where(
	.opto-visual-preferences-toggles-v1713,
	.opto-accessibility-portal-grid-v1715,
	.opto-animation-options-grid-v1717
){
	grid-template-columns:repeat(2,minmax(0,1fr));
	align-items:stretch;
}
.opto-visual-preferences-grid-v1713 label{
	min-width:0;
	width:100%;
}
.opto-visual-preferences-grid-v1713 select,
.opto-animation-settings-v1717 select{
	max-width:100%;
	min-width:0;
	box-sizing:border-box;
}
.opto-youth-shell-v179,
.opto-adult-shell-v1710{
	margin-top:0;
}
.opto-patient-progress-v157[data-opto-progress-active-page="settings"] .opto-youth-shell-v179,
.opto-patient-progress-v157[data-opto-progress-active-page="settings"] .opto-adult-shell-v1710{
	padding:0;
	border:0;
	background:transparent;
	box-shadow:none;
}
@media(max-width:900px){
	.opto-progress-pagination-v17172{
		display:flex;
		overflow-x:auto;
		overflow-y:hidden;
		overscroll-behavior-inline:contain;
		scroll-snap-type:x proximity;
		-webkit-overflow-scrolling:touch;
		padding:8px;
		border-radius:16px;
	}
	.opto-progress-pagination-v17172 button{
		flex:0 0 auto;
		min-width:132px;
		scroll-snap-align:start;
	}
	.opto-patient-progress-v157 :where(
		.opto-visual-preferences-toggles-v1713,
		.opto-accessibility-portal-grid-v1715,
		.opto-animation-options-grid-v1717
	){
		grid-template-columns:1fr;
	}
	.opto-child-chapters-v177{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
}
@media(max-width:560px){
	.opto-progress-pagination-v17172{
		margin-right:-4px;
		margin-left:-4px;
	}
	.opto-progress-pagination-v17172 button{
		min-width:118px;
		min-height:46px;
		padding:9px 11px;
	}
	.opto-progress-pagination-v17172 button span{
		width:24px;
		height:24px;
		flex-basis:24px;
	}
	.opto-child-chapters-v177,
	.opto-child-missions-v177,
	.opto-child-adventure-lower-v177{
		grid-template-columns:1fr!important;
	}
	.opto-child-missions-v177 article{
		grid-template-columns:36px minmax(0,1fr)!important;
	}
	.opto-child-missions-v177 article>b{
		grid-column:2!important;
		justify-self:start;
		max-width:100%;
	}
	.opto-visual-preferences-v1713,
	.opto-animation-settings-v1717,
	.opto-accessibility-portal-settings-v1715{
		padding:15px;
	}
}
@media(forced-colors:active){
	.opto-progress-pagination-v17172,
	.opto-progress-pagination-v17172 button{
		border:1px solid CanvasText;
		background:Canvas;
		color:CanvasText;
		box-shadow:none;
	}
	.opto-progress-pagination-v17172 button.is-active{
		outline:3px solid Highlight;
		outline-offset:-3px;
	}
}

/* Opto Manager v1.7.17.3 — rendimiento adaptativo en móviles y dispositivos modestos. */
.opto-celebration-particles-v1717{
	contain:strict;
}
.opto-celebration-dialog-v1717{
	contain:layout style;
}
.opto-animated-mascot-v1717{
	animation-play-state:paused;
}
.opto-animated-mascot-v1717.is-opto-mascot-visible-v17173{
	animation-play-state:running;
}
.opto-performance-paused-v17173 .opto-animated-mascot-v1717,
.opto-performance-paused-v17173 .opto-celebration-engine-v1717 *,
.opto-performance-paused-v17173 .opto-child-path-character-v176,
.opto-performance-paused-v17173 .opto-child-path-v176::after{
	animation-play-state:paused!important;
}
html.opto-performance-lite-v17173 .opto-celebration-engine-v1717,
.opto-performance-lite-v17173 .opto-celebration-engine-v1717,
.opto-celebration-engine-v1717.is-performance-lite-v17173{
	-webkit-backdrop-filter:none;
	backdrop-filter:none;
	background:rgba(15,23,42,.72);
}
html.opto-performance-lite-v17173 .opto-celebration-engine-v1717::before,
html.opto-performance-lite-v17173 .opto-celebration-engine-v1717::after,
.opto-performance-lite-v17173 .opto-celebration-engine-v1717::before,
.opto-performance-lite-v17173 .opto-celebration-engine-v1717::after,
.opto-celebration-engine-v1717.is-performance-lite-v17173::before,
.opto-celebration-engine-v1717.is-performance-lite-v17173::after{
	display:none!important;
}
html.opto-performance-lite-v17173 .opto-celebration-dialog-v1717,
.opto-performance-lite-v17173 .opto-celebration-dialog-v1717,
.opto-celebration-engine-v1717.is-performance-lite-v17173 .opto-celebration-dialog-v1717{
	box-shadow:0 16px 42px rgba(15,23,42,.25);
	background:#fff;
}
html.opto-performance-lite-v17173 .opto-celebration-mascot-v1717,
.opto-performance-lite-v17173 .opto-celebration-mascot-v1717,
.opto-celebration-engine-v1717.is-performance-lite-v17173 .opto-celebration-mascot-v1717{
	filter:none;
}
.opto-performance-lite-v17173 .opto-animated-mascot-v1717.is-opto-mascot-visible-v17173{
	animation-duration:5.2s;
	animation-iteration-count:2;
}
.opto-performance-lite-v17173 .opto-child-path-character-v176.is-travelling-v1717{
	animation:none;
}
.opto-performance-lite-v17173.opto-progress-is-animating-v1717 .opto-child-path-v176::after,
.opto-performance-lite-v17173 .opto-progress-is-animating-v1717 .opto-child-path-v176::after{
	animation:none;
}
.opto-performance-lite-v17173 .opto-celebration-particles-v1717 i{
	will-change:auto;
}
@supports(content-visibility:auto){
	.opto-patient-progress-v157 [data-opto-progress-page]:not([hidden]) > section,
	.opto-patient-progress-v157 [data-opto-progress-page]:not([hidden]) > article{
		content-visibility:auto;
		contain-intrinsic-size:1px 360px;
	}
}
@media(update:slow){
	.opto-animated-mascot-v1717.is-opto-mascot-visible-v17173{
		animation-duration:5.6s;
		animation-iteration-count:2;
	}
	.opto-celebration-engine-v1717.has-background-motion::before,
	.opto-celebration-engine-v1717.has-background-motion::after{
		display:none!important;
	}
}
@media(max-width:560px){
	.opto-performance-lite-v17173 .opto-patient-progress-v157 :where(section,article),
	.opto-performance-lite-v17173 .opto-celebration-dialog-v1717{
		box-shadow:none;
	}
	.opto-performance-lite-v17173 .opto-celebration-dialog-v1717{
		border-radius:20px;
	}
}

/* Opto Manager v1.7.17.4 — popup de entrenamiento fijado al viewport real. */
html.opto-public-modal-document-open,
html.opto-public-modal-document-open body,
body.opto-public-modal-open{
	overflow:hidden!important;
	overscroll-behavior:none!important;
}

body > .opto-public-training-modal-v162,
.opto-public-training-modal-v162[aria-hidden="false"]{
	box-sizing:border-box!important;
	isolation:isolate!important;
	max-height:none!important;
	max-width:none!important;
}

body > .opto-public-training-modal-v162 .opto-public-modal-backdrop,
.opto-public-training-modal-v162[aria-hidden="false"] .opto-public-modal-backdrop{
	inset:0!important;
	position:absolute!important;
}

body > .opto-public-training-modal-v162 .opto-public-modal-panel,
.opto-public-training-modal-v162[aria-hidden="false"] .opto-public-modal-panel{
	box-sizing:border-box!important;
	min-width:0!important;
	overflow-x:hidden!important;
	-webkit-overflow-scrolling:touch;
}

@media (max-width:782px){
	body > .opto-public-training-modal-v162 .opto-public-modal-panel,
	.opto-public-training-modal-v162[aria-hidden="false"] .opto-public-modal-panel{
		bottom:auto!important;
		left:0!important;
		margin:0!important;
		right:auto!important;
		top:0!important;
		transform:none!important;
		width:100%!important;
		max-width:100%!important;
	}
	body > .opto-public-training-modal-v162 .opto-training-head-v162,
	.opto-public-training-modal-v162[aria-hidden="false"] .opto-training-head-v162{
		padding-left:max(16px,env(safe-area-inset-left,0px))!important;
		padding-right:max(58px,calc(16px + env(safe-area-inset-right,0px)))!important;
	}
	body > .opto-public-training-modal-v162 .opto-training-panel-v162,
	.opto-public-training-modal-v162[aria-hidden="false"] .opto-training-panel-v162,
	body > .opto-public-training-modal-v162 .opto-training-steps-v1621,
	.opto-public-training-modal-v162[aria-hidden="false"] .opto-training-steps-v1621{
		padding-left:max(16px,env(safe-area-inset-left,0px))!important;
		padding-right:max(16px,env(safe-area-inset-right,0px))!important;
	}
}

/* ==========================================================
   v1.7.17.5 — iconografía interna y aislamiento frente al tema
   ========================================================== */
.opto-patient-portal .opto-plugin-icon-v17175{
	display:block!important;
	width:1em!important;
	height:1em!important;
	min-width:1em!important;
	min-height:1em!important;
	max-width:none!important;
	max-height:none!important;
	margin:0!important;
	padding:0!important;
	overflow:visible!important;
	fill:none!important;
	stroke:currentColor!important;
	color:inherit!important;
	font:normal normal normal 1em/1 sans-serif!important;
	vertical-align:middle!important;
	transform:none;
	filter:none!important;
	box-shadow:none!important;
	pointer-events:none!important;
}
.opto-patient-portal .opto-plugin-icon-v17175 *,
.opto-patient-portal .opto-plugin-icon-v17175 path,
.opto-patient-portal .opto-plugin-icon-v17175 circle{
	fill:none!important;
	stroke:currentColor!important;
	stroke-width:2!important;
	stroke-linecap:round!important;
	stroke-linejoin:round!important;
	vector-effect:non-scaling-stroke;
}

/* El botón de cierre es completamente propio del plugin. */
.opto-patient-portal .opto-celebration-close-v1717{
	all:unset!important;
	-webkit-appearance:none!important;
	appearance:none!important;
	position:absolute!important;
	top:14px!important;
	right:14px!important;
	z-index:4!important;
	display:grid!important;
	place-items:center!important;
	box-sizing:border-box!important;
	width:44px!important;
	height:44px!important;
	min-width:44px!important;
	min-height:44px!important;
	margin:0!important;
	padding:0!important;
	border:1px solid rgba(8,124,145,.16)!important;
	border-radius:999px!important;
	background:#e8f8fb!important;
	background-image:none!important;
	color:#087c91!important;
	font-size:0!important;
	line-height:0!important;
	text-align:center!important;
	text-decoration:none!important;
	text-indent:0!important;
	text-shadow:none!important;
	box-shadow:none!important;
	cursor:pointer!important;
	touch-action:manipulation!important;
	-webkit-tap-highlight-color:transparent!important;
	transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .18s ease!important;
}
.opto-patient-portal .opto-celebration-close-v1717::before,
.opto-patient-portal .opto-celebration-close-v1717::after{
	content:none!important;
	display:none!important;
}
.opto-patient-portal .opto-celebration-close-v1717 .opto-plugin-icon-v17175{
	width:20px!important;
	height:20px!important;
	min-width:20px!important;
	min-height:20px!important;
}
.opto-patient-portal .opto-celebration-close-v1717:hover{
	border-color:#0f9db1!important;
	background:#0f9db1!important;
	color:#fff!important;
	transform:scale(1.03)!important;
}
.opto-patient-portal .opto-celebration-close-v1717:active{
	transform:scale(.96)!important;
}
.opto-patient-portal .opto-celebration-close-v1717:focus,
.opto-patient-portal .opto-celebration-close-v1717:focus-visible{
	outline:3px solid #0b70b7!important;
	outline-offset:3px!important;
}
.opto-patient-portal .opto-celebration-close-v1717:focus:not(:focus-visible){
	outline:none!important;
}

/* Pestañas de Mi progreso: sin icon fonts, pseudoelementos ni estilos del tema. */
.opto-patient-portal .opto-progress-pagination-v17172{
	font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif!important;
	text-transform:none!important;
	letter-spacing:normal!important;
}
.opto-patient-portal .opto-progress-pagination-v17172 > button{
	all:unset!important;
	-webkit-appearance:none!important;
	appearance:none!important;
	display:flex!important;
	align-items:center!important;
	justify-content:center!important;
	gap:9px!important;
	box-sizing:border-box!important;
	min-width:0!important;
	min-height:48px!important;
	padding:10px 14px!important;
	border:1px solid #cfe1e8!important;
	border-radius:14px!important;
	background:#fff!important;
	background-image:none!important;
	color:#36566c!important;
	font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif!important;
	font-size:14px!important;
	font-style:normal!important;
	font-weight:700!important;
	line-height:1.2!important;
	text-align:center!important;
	text-decoration:none!important;
	text-transform:none!important;
	letter-spacing:normal!important;
	text-indent:0!important;
	text-shadow:none!important;
	box-shadow:none!important;
	cursor:pointer!important;
	touch-action:manipulation!important;
	-webkit-tap-highlight-color:transparent!important;
	transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease!important;
}
.opto-patient-portal .opto-progress-pagination-v17172 > button::before,
.opto-patient-portal .opto-progress-pagination-v17172 > button::after{
	content:none!important;
	display:none!important;
	background:none!important;
}
.opto-patient-portal .opto-progress-pagination-v17172 > button:hover{
	border-color:#8fc9d3!important;
	background:#f2fbfc!important;
	color:#087c91!important;
	box-shadow:0 6px 14px rgba(15,157,177,.10)!important;
}
.opto-patient-portal .opto-progress-pagination-v17172 > button.is-active,
.opto-patient-portal .opto-progress-pagination-v17172 > button[aria-pressed="true"]{
	border-color:#0f9db1!important;
	background:#0f9db1!important;
	background-image:none!important;
	color:#fff!important;
	box-shadow:0 8px 18px rgba(15,157,177,.18)!important;
}
.opto-patient-portal .opto-progress-pagination-v17172 > button:active{
	transform:translateY(1px)!important;
}
.opto-patient-portal .opto-progress-pagination-v17172 > button:focus,
.opto-patient-portal .opto-progress-pagination-v17172 > button:focus-visible{
	outline:3px solid #0b70b7!important;
	outline-offset:3px!important;
}
.opto-patient-portal .opto-progress-pagination-v17172 > button:focus:not(:focus-visible){
	outline:none!important;
}
.opto-patient-portal .opto-progress-pagination-v17172 > button > .opto-progress-tab-icon-v17175{
	display:grid!important;
	place-items:center!important;
	box-sizing:border-box!important;
	width:30px!important;
	height:30px!important;
	min-width:30px!important;
	min-height:30px!important;
	flex:0 0 30px!important;
	margin:0!important;
	padding:6px!important;
	border:0!important;
	border-radius:10px!important;
	background:#e7f2f5!important;
	background-image:none!important;
	color:#087c91!important;
	font-size:18px!important;
	line-height:1!important;
	box-shadow:none!important;
}
.opto-patient-portal .opto-progress-pagination-v17172 > button > .opto-progress-tab-icon-v17175::before,
.opto-patient-portal .opto-progress-pagination-v17172 > button > .opto-progress-tab-icon-v17175::after{
	content:none!important;
	display:none!important;
}
.opto-patient-portal .opto-progress-pagination-v17172 > button > .opto-progress-tab-icon-v17175 .opto-plugin-icon-v17175{
	width:18px!important;
	height:18px!important;
	min-width:18px!important;
	min-height:18px!important;
}
.opto-patient-portal .opto-progress-pagination-v17172 > button.is-active > .opto-progress-tab-icon-v17175,
.opto-patient-portal .opto-progress-pagination-v17172 > button[aria-pressed="true"] > .opto-progress-tab-icon-v17175{
	background:rgba(255,255,255,.18)!important;
	color:#fff!important;
}
.opto-patient-portal .opto-progress-pagination-v17172 > button > strong{
	display:block!important;
	min-width:0!important;
	margin:0!important;
	padding:0!important;
	border:0!important;
	background:none!important;
	color:inherit!important;
	font:inherit!important;
	font-weight:700!important;
	line-height:1.2!important;
	text-align:center!important;
	text-decoration:none!important;
	text-transform:none!important;
	letter-spacing:normal!important;
	white-space:normal!important;
	overflow-wrap:anywhere!important;
	box-shadow:none!important;
}

@media(max-width:900px){
	.opto-patient-portal .opto-progress-pagination-v17172 > button{
		flex:0 0 auto!important;
		min-width:132px!important;
		scroll-snap-align:start!important;
	}
}
@media(max-width:560px){
	.opto-patient-portal .opto-progress-pagination-v17172 > button{
		min-width:122px!important;
		min-height:46px!important;
		padding:9px 11px!important;
	}
	.opto-patient-portal .opto-progress-pagination-v17172 > button > .opto-progress-tab-icon-v17175{
		width:28px!important;
		height:28px!important;
		min-width:28px!important;
		min-height:28px!important;
		flex-basis:28px!important;
		padding:5px!important;
	}
	.opto-patient-portal .opto-celebration-close-v1717{
		top:max(10px,env(safe-area-inset-top,0px))!important;
		right:max(10px,env(safe-area-inset-right,0px))!important;
	}
}
@media(forced-colors:active){
	.opto-patient-portal .opto-celebration-close-v1717,
	.opto-patient-portal .opto-progress-pagination-v17172 > button,
	.opto-patient-portal .opto-progress-pagination-v17172 > button > .opto-progress-tab-icon-v17175{
		border:1px solid ButtonText!important;
		background:ButtonFace!important;
		color:ButtonText!important;
		box-shadow:none!important;
	}
	.opto-patient-portal .opto-progress-pagination-v17172 > button.is-active,
	.opto-patient-portal .opto-progress-pagination-v17172 > button[aria-pressed="true"]{
		outline:3px solid Highlight!important;
	}
}

/* v1.7.17.6 — ajuste de intensidad, duración y frecuencia de gamificación. */
.opto-animation-tuning-grid-v17176{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:12px;
	margin-top:16px;
}
.opto-animation-tuning-grid-v17176>label{
	display:grid;
	align-content:start;
	gap:7px;
	min-width:0;
	margin:0!important;
	padding:14px;
	border:1px solid #dbe7f4;
	border-radius:16px;
	background:#fff;
}
.opto-animation-tuning-grid-v17176>label>span{font-weight:800;color:#17345b}
.opto-animation-tuning-grid-v17176 select{width:100%;max-width:none!important;min-height:42px}
.opto-animation-tuning-grid-v17176 small{color:#64748b;line-height:1.45;overflow-wrap:anywhere}

.opto-celebration-engine-v1717.duration-brief{transition-duration:.15s}
.opto-celebration-engine-v1717.duration-brief .opto-celebration-dialog-v1717{animation-duration:.31s}
.opto-celebration-engine-v1717.duration-brief .opto-celebration-mascot-v1717{animation-duration:.74s}
.opto-celebration-engine-v1717.duration-brief .opto-celebration-particles-v1717 i{animation-duration:1.46s}
.opto-celebration-engine-v1717.duration-brief .opto-celebration-particles-v1717 i.is-firework{animation-duration:.75s}
.opto-celebration-engine-v1717.duration-brief .opto-celebration-dialog-v1717.is-stamping .opto-celebration-badge-v1717{animation-duration:.43s;animation-delay:.08s}
.opto-celebration-engine-v1717.duration-brief.has-background-motion::before,
.opto-celebration-engine-v1717.duration-brief.has-background-motion::after{animation-duration:4.6s}

.opto-celebration-engine-v1717.duration-extended{transition-duration:.35s}
.opto-celebration-engine-v1717.duration-extended .opto-celebration-dialog-v1717{animation-duration:.7s}
.opto-celebration-engine-v1717.duration-extended .opto-celebration-mascot-v1717{animation-duration:1.66s}
.opto-celebration-engine-v1717.duration-extended .opto-celebration-particles-v1717 i{animation-duration:3.26s}
.opto-celebration-engine-v1717.duration-extended .opto-celebration-particles-v1717 i.is-firework{animation-duration:1.67s}
.opto-celebration-engine-v1717.duration-extended .opto-celebration-dialog-v1717.is-stamping .opto-celebration-badge-v1717{animation-duration:.94s;animation-delay:.22s}
.opto-celebration-engine-v1717.duration-extended.has-background-motion::before,
.opto-celebration-engine-v1717.duration-extended.has-background-motion::after{animation-duration:10.2s}

.opto-patient-portal[data-opto-animation-duration="brief"] .opto-animated-mascot-v1717{animation-duration:2.1s}
.opto-patient-portal[data-opto-animation-duration="extended"] .opto-animated-mascot-v1717{animation-duration:4.6s}
.opto-patient-portal[data-opto-animation-frequency="reduced"] .opto-animated-mascot-v1717{animation-iteration-count:1}
.opto-patient-portal[data-opto-animation-frequency="milestones"] .opto-animated-mascot-v1717,
.opto-animated-mascot-v1717.opto-mascot-frequency-static-v17176{animation:none!important;transform:none!important}
.opto-animation-acceptance-v1717{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}

@media(max-width:900px){.opto-animation-tuning-grid-v17176{grid-template-columns:1fr}}
@media(max-width:520px){
	.opto-animation-tuning-grid-v17176{gap:9px}
	.opto-animation-tuning-grid-v17176>label{padding:12px;border-radius:14px}
}

/* v1.7.17.7 — accesibilidad, lector de pantalla y reducción de movimiento. */
.opto-sr-only-v17177{
	position:absolute!important;
	width:1px!important;
	height:1px!important;
	padding:0!important;
	margin:-1px!important;
	overflow:hidden!important;
	clip:rect(0,0,0,0)!important;
	clip-path:inset(50%)!important;
	white-space:nowrap!important;
	border:0!important;
}
.opto-skip-link-v17177{
	position:fixed!important;
	top:max(10px,env(safe-area-inset-top,0px))!important;
	left:max(10px,env(safe-area-inset-left,0px))!important;
	z-index:2147483000!important;
	padding:12px 16px!important;
	border:3px solid #0b70b7!important;
	border-radius:12px!important;
	background:#fff!important;
	color:#072b44!important;
	font:700 16px/1.25 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif!important;
	text-decoration:none!important;
	box-shadow:0 8px 24px rgba(15,23,42,.24)!important;
	transform:translateY(calc(-100% - 32px))!important;
	transition:transform .15s ease!important;
}
.opto-skip-link-v17177:focus,
.opto-skip-link-v17177:focus-visible{transform:translateY(0)!important;outline:3px solid #f4b400!important;outline-offset:3px!important}

.opto-patient-portal-v17177 [hidden]{display:none!important}
.opto-patient-portal-v17177 [inert]{pointer-events:none!important;user-select:none!important}
.opto-progress-tabpanel-v17177{min-width:0;outline:none}
.opto-progress-tabpanel-v17177:focus-visible,
.opto-celebration-dialog-v1717:focus-visible{
	outline:4px solid #0b70b7!important;
	outline-offset:4px!important;
}
.opto-patient-portal .opto-progress-pagination-v17172>button[role="tab"][aria-selected="true"]{
	border-color:#0f9db1!important;
	background:#0f9db1!important;
	color:#fff!important;
	box-shadow:0 8px 18px rgba(15,157,177,.18)!important;
}
.opto-patient-portal .opto-progress-pagination-v17172>button[role="tab"][aria-selected="true"]>.opto-progress-tab-icon-v17175{
	background:rgba(255,255,255,.18)!important;
	color:#fff!important;
}
.opto-patient-portal .opto-progress-pagination-v17172>button[role="tab"][aria-selected="false"]{
	background:#fff!important;
	color:#36566c!important;
}

/* El movimiento reducido conserva la información y sustituye la fiesta por una presentación estática. */
.opto-celebration-engine-v1717.is-reduced-motion-v17177,
.opto-visual-reduce-motion .opto-celebration-engine-v1717:not([hidden]){
	display:grid!important;
	transition:none!important;
	backdrop-filter:none!important;
	-webkit-backdrop-filter:none!important;
}
.opto-celebration-engine-v1717.is-reduced-motion-v17177::before,
.opto-celebration-engine-v1717.is-reduced-motion-v17177::after,
.opto-celebration-engine-v1717.is-reduced-motion-v17177 .opto-celebration-particles-v1717{
	display:none!important;
	content:none!important;
}
.opto-celebration-engine-v1717.is-reduced-motion-v17177 *,
.opto-visual-reduce-motion .opto-celebration-engine-v1717:not([hidden]) *{
	animation:none!important;
	transition:none!important;
	scroll-behavior:auto!important;
}
.opto-celebration-engine-v1717.is-reduced-motion-v17177 .opto-celebration-dialog-v1717,
.opto-visual-reduce-motion .opto-celebration-engine-v1717:not([hidden]) .opto-celebration-dialog-v1717{
	transform:none!important;
	opacity:1!important;
}
.opto-celebration-engine-v1717.is-reduced-motion-v17177 .opto-celebration-mascot-v1717,
.opto-visual-reduce-motion .opto-celebration-engine-v1717:not([hidden]) .opto-celebration-mascot-v1717{
	transform:none!important;
	filter:none!important;
}
.opto-celebration-engine-v1717.is-reduced-motion-v17177 .opto-celebration-badge-v1717:not([hidden]),
.opto-visual-reduce-motion .opto-celebration-engine-v1717:not([hidden]) .opto-celebration-badge-v1717:not([hidden]){
	transform:rotate(-6deg) scale(1)!important;
	opacity:1!important;
}
.opto-reduced-motion-active-v17177 .opto-animated-mascot-v1717,
.opto-reduced-motion-active-v17177 .opto-child-path-character-v176[data-opto-progress-marker],
.opto-reduced-motion-active-v17177 .opto-progress-is-animating-v1717 *{
	animation:none!important;
	transition:none!important;
	transform:none!important;
}

@media(prefers-reduced-motion:reduce){
	html:focus-within{scroll-behavior:auto!important}
	.opto-patient-portal-v17177,
	.opto-patient-portal-v17177 *{scroll-behavior:auto!important}
	.opto-patient-portal-v17177 .opto-celebration-engine-v1717:not([hidden]){display:grid!important;transition:none!important}
	.opto-patient-portal-v17177 .opto-celebration-engine-v1717:not([hidden]) *,
	.opto-patient-portal-v17177 .opto-animated-mascot-v1717,
	.opto-patient-portal-v17177 .opto-child-path-character-v176[data-opto-progress-marker]{
		animation:none!important;
		transition:none!important;
		scroll-behavior:auto!important;
	}
	.opto-patient-portal-v17177 .opto-celebration-engine-v1717:not([hidden])::before,
	.opto-patient-portal-v17177 .opto-celebration-engine-v1717:not([hidden])::after,
	.opto-patient-portal-v17177 .opto-celebration-particles-v1717{display:none!important;content:none!important}
	.opto-patient-portal-v17177 .opto-celebration-dialog-v1717{transform:none!important;opacity:1!important}
	.opto-patient-portal-v17177 .opto-celebration-badge-v1717:not([hidden]){transform:rotate(-6deg) scale(1)!important;opacity:1!important}
	.opto-skip-link-v17177{transition:none!important}
}

@media(forced-colors:active){
	.opto-skip-link-v17177,
	.opto-celebration-dialog-v1717,
	.opto-progress-tabpanel-v17177{border:2px solid CanvasText!important;background:Canvas!important;color:CanvasText!important;box-shadow:none!important}
	.opto-patient-portal .opto-progress-pagination-v17172>button[role="tab"][aria-selected="true"]{outline:3px solid Highlight!important;outline-offset:2px!important}
}
.opto-patient-portal-v17177:focus{outline:none}
.opto-patient-portal-v17177:focus-visible{outline:3px solid #0b70b7!important;outline-offset:-3px!important}

/* v1.7.17.9 — fuegos artificiales configurables y seguros. */
.opto-celebration-particles-v1717 i.is-firework{
	top:var(--y,45%);
	width:8px;
	height:8px;
	border-radius:50%;
	color:hsl(var(--hue),92%,62%);
	background:currentColor;
	box-shadow:0 -24px 0 -2px currentColor,17px -17px 0 -2px currentColor,24px 0 0 -2px currentColor,17px 17px 0 -2px currentColor,0 24px 0 -2px currentColor,-17px 17px 0 -2px currentColor,-24px 0 0 -2px currentColor,-17px -17px 0 -2px currentColor,0 0 18px 5px currentColor;
	animation:opto-firework-burst-v17179 1.35s cubic-bezier(.16,.75,.28,1) var(--delay) both;
}
@keyframes opto-firework-burst-v17179{
	0%{transform:translate3d(0,35vh,0) scale(.08);opacity:0}
	22%{transform:translate3d(0,0,0) scale(.12);opacity:1}
	68%{transform:translate3d(0,0,0) scale(1.2);opacity:1}
	100%{transform:translate3d(0,0,0) scale(1.7);opacity:0}
}
.opto-celebration-engine-v1717.intensity-low .opto-celebration-particles-v1717 i.is-firework{box-shadow:0 -18px 0 -2px currentColor,13px -13px 0 -2px currentColor,18px 0 0 -2px currentColor,13px 13px 0 -2px currentColor,0 18px 0 -2px currentColor,-13px 13px 0 -2px currentColor,-18px 0 0 -2px currentColor,-13px -13px 0 -2px currentColor,0 0 12px 3px currentColor}
.opto-reduced-motion-active-v17177 .opto-celebration-particles-v1717 i.is-firework,.opto-accessibility-low-stimulus .opto-celebration-particles-v1717 i.is-firework{animation:none!important;display:none!important}


/* v1.8.0 — structured exercise guidance */
.opto-exercise-steps-v180 ol{margin:10px 0 0;padding-left:1.5rem;display:grid;gap:8px}.opto-exercise-steps-v180 li{line-height:1.5;padding-left:3px}.opto-exercise-goal-v180{border-left:4px solid #00a0be}.opto-exercise-success-v180{border-left:4px solid #45a66b}.opto-exercise-stop-v180{display:block;margin:12px 0;padding:12px 14px;border-radius:10px}.opto-public-mini-box p:last-child{margin-bottom:0}

/* v1.8.0.3 — Identificación de la variación pautada. */
.opto-patient-portal .opto-assigned-variation-badge {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	max-width: 100%;
	margin: 5px 0;
	padding: 4px 9px;
	border: 1px solid #b8dce4;
	border-radius: 999px;
	background: #eef9fb;
	color: #087b91;
	font-size: 0.78rem;
	font-style: normal;
	font-weight: 700;
	line-height: 1.35;
	white-space: normal;
}

.opto-patient-portal .opto-training-summary-list-v162 .opto-assigned-variation-badge,
.opto-patient-portal .opto-training-exercise-head-v162 .opto-assigned-variation-badge {
	display: flex;
	margin-top: 5px;
}

.opto-patient-portal .opto-variation-options ul {
	margin: 8px 0 0 20px;
}

.opto-patient-portal .opto-variation-options li {
	margin: 4px 0;
}

/* v1.8.0.4 — La variación forma parte visible del entrenamiento y del resultado. */
.opto-patient-portal .opto-training-variation-header-v1804,
.opto-patient-portal .opto-assigned-variation-badge-v1804,
.opto-patient-portal .opto-result-variation-v1804,
.opto-patient-portal .opto-history-variation-v1804 {
	display: flex;
	align-items: center;
	gap: 7px;
}
.opto-patient-portal .opto-training-variation-header-v1804 {
	width: fit-content;
	max-width: 100%;
	margin: 7px 0 9px;
	padding: 7px 10px;
	border: 1px solid #9fd5df;
	border-radius: 10px;
	background: #effbfc;
	color: #087b91;
}
.opto-patient-portal .opto-training-variation-header-v1804 > svg { width: 20px; height: 20px; flex: 0 0 20px; }
.opto-patient-portal .opto-training-variation-header-v1804 span { display: grid; gap: 0; }
.opto-patient-portal .opto-training-variation-header-v1804 small { font-size: .65rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.opto-patient-portal .opto-training-variation-header-v1804 strong { color: #064e62; font-size: .86rem; line-height: 1.3; }
.opto-patient-portal .opto-assigned-variation-badge-v1804 svg { width: 15px; height: 15px; flex: 0 0 15px; }
.opto-patient-portal .opto-patient-variation-card-v1804 {
	display: grid;
	grid-template-columns: 52px minmax(0,1fr);
	gap: 14px;
	margin: 14px 0 18px;
	padding: 17px;
	border: 1px solid #9fd5df;
	border-left: 5px solid #00a0be;
	border-radius: 16px;
	background: linear-gradient(135deg,#eefbfc 0%,#fff 74%);
	box-shadow: 0 10px 28px rgba(4,88,107,.08);
}
.opto-patient-portal .opto-patient-variation-card-v1804.is-compact-v1804 { margin: 10px 0; padding: 14px; }
.opto-patient-portal .opto-patient-variation-icon-v1804 {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: #dff5f8;
	color: #087b91;
}
.opto-patient-portal .opto-patient-variation-icon-v1804 svg { width: 29px; height: 29px; }
.opto-patient-portal .opto-patient-variation-card-v1804 > div { min-width: 0; }
.opto-patient-portal .opto-patient-variation-card-v1804 small { display: block; color: #087b91; font-size: .68rem; font-weight: 900; letter-spacing: .08em; }
.opto-patient-portal .opto-patient-variation-card-v1804 h4 { margin: 3px 0 7px; color: #064e62; font-size: 1.12rem; }
.opto-patient-portal .opto-patient-variation-card-v1804 p { margin: 5px 0; line-height: 1.5; }
.opto-patient-portal .opto-patient-variation-card-v1804 ul { margin: 7px 0 0 20px; display: grid; gap: 4px; }
.opto-patient-portal .opto-patient-variation-material-v1804 { padding-top: 7px; border-top: 1px solid #cce7ec; }
.opto-patient-portal .opto-result-variation-v1804 {
	align-items: flex-start;
	margin: 10px 0 4px;
	padding: 10px 12px;
	border-radius: 11px;
	background: #eaf9fb;
	color: #087b91;
}
.opto-patient-portal .opto-result-variation-v1804 > svg { width: 21px; height: 21px; flex: 0 0 21px; }
.opto-patient-portal .opto-result-variation-v1804 > div { display: grid; gap: 2px; }
.opto-patient-portal .opto-result-variation-v1804 small { font-size: .66rem; font-weight: 800; letter-spacing: .07em; }
.opto-patient-portal .opto-result-variation-v1804 strong { color: #064e62; }
.opto-patient-portal .opto-history-variation-v1804 { color: #087b91; font-weight: 700; }
.opto-patient-portal .opto-history-variation-v1804 svg { width: 14px; height: 14px; flex: 0 0 14px; }
@media (max-width: 640px) {
	.opto-patient-portal .opto-patient-variation-card-v1804 { grid-template-columns: 42px minmax(0,1fr); gap: 10px; padding: 13px; }
	.opto-patient-portal .opto-patient-variation-icon-v1804 { width: 42px; height: 42px; }
	.opto-patient-portal .opto-patient-variation-icon-v1804 svg { width: 24px; height: 24px; }
	.opto-patient-portal .opto-training-variation-header-v1804 { width: 100%; box-sizing: border-box; }
}

/* v1.8.0.5 — variaciones compactas y mejor integradas en portal paciente. */
.opto-training-variation-header-v1804,
.opto-training-variation-header-v1805,
.opto-training-variation-header-v1804 > svg,
.opto-patient-variation-icon-v1804 svg,
.opto-result-variation-v1804 > svg { max-width:none !important; }
.opto-training-variation-header-v1804 > svg { width:18px !important; height:18px !important; flex:0 0 18px !important; }
.opto-training-variation-header-v1805 { gap:10px; padding:8px 10px; }
.opto-training-variation-pill-v1805 { display:inline-flex; align-items:center; height:24px; padding:0 10px; border-radius:999px; background:#e7f7fa; color:#087b91; font-size:.72rem; font-weight:800; white-space:nowrap; }
.opto-patient-portal .opto-patient-variation-card-v1804 { grid-template-columns:42px minmax(0,1fr); }
.opto-patient-portal .opto-patient-variation-icon-v1804 { width:42px; height:42px; border-radius:12px; }
.opto-patient-portal .opto-patient-variation-icon-v1804 svg { width:22px; height:22px; }
.opto-patient-portal .opto-patient-variation-card-v1804 h4 { font-size:1rem; }

/* v1.8.0.6 — materiales visibles con miniatura en la zona del paciente. */
.opto-patient-portal .opto-patient-material-catalog-v1806,
.opto-patient-material-catalog-v1806 {
	display:grid;
	gap:10px;
	width:100%;
}
.opto-patient-material-heading-v1806 {
	display:block;
	color:#123b4a;
	font-size:.9rem;
}
.opto-patient-material-grid-v1806 {
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
	gap:10px;
}
.opto-patient-material-card-v1806 {
	display:flex;
	align-items:center;
	gap:10px;
	min-width:0;
	padding:10px 12px;
	border:1px solid #cde3e9;
	border-radius:13px;
	background:#f5fbfc;
}
.opto-patient-material-photo-v1806 {
	display:grid;
	place-items:center;
	width:46px;
	height:46px;
	flex:0 0 46px;
	border-radius:12px;
	background:#dff5f8;
	color:#087b91;
	overflow:hidden;
	font-weight:900;
}
.opto-patient-material-photo-v1806 img {
	width:100%;
	height:100%;
	object-fit:cover;
}
.opto-patient-material-name-v1806 {
	min-width:0;
	color:#123b4a;
	font-weight:800;
	line-height:1.3;
}
.opto-patient-material-note-v1806,
.opto-patient-material-fallback-v1806 {
	margin:0;
	color:#516b77;
	font-size:.9rem;
	line-height:1.45;
}
.opto-patient-material-fallback-v1806 p { margin:0; }
.opto-patient-material-catalog-v1806.is-compact-v1806 .opto-patient-material-grid-v1806 {
	grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
}
.opto-patient-material-catalog-v1806.is-compact-v1806 .opto-patient-material-card-v1806 {
	padding:8px 10px;
}
.opto-patient-material-catalog-v1806.is-compact-v1806 .opto-patient-material-photo-v1806 {
	width:38px;
	height:38px;
	flex-basis:38px;
}
.opto-public-material-box-v1806 { overflow:visible; }
@media (max-width:640px) {
	.opto-patient-material-grid-v1806,
	.opto-patient-material-catalog-v1806.is-compact-v1806 .opto-patient-material-grid-v1806 {
		grid-template-columns:1fr;
	}
}

/* v1.9.0 — Documentos clínicos privados del paciente. */
.opto-private-patient-files-v190{display:grid;gap:14px}
.opto-private-patient-file-v190{display:grid!important;grid-template-columns:58px minmax(0,1fr) auto!important;gap:14px;align-items:center;padding:16px!important;border:1px solid #cfe3e8!important;border-radius:16px!important;background:#fff!important;box-shadow:0 10px 26px rgba(5,78,98,.06)}
.opto-private-patient-file-v190>span{display:grid;place-items:center;width:54px;height:54px;border-radius:13px;background:#e5f7fa;color:#087b91;font-size:.72rem;font-weight:900}
.opto-private-patient-file-v190>div:nth-child(2){display:grid;gap:5px;min-width:0}
.opto-private-patient-file-v190>div:nth-child(2)>strong{color:#073f50;font-size:1rem;overflow-wrap:anywhere}
.opto-private-patient-file-v190>div:nth-child(2)>small{color:#607780}
.opto-private-patient-file-actions-v190{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.opto-private-home-files-v190{display:grid;gap:9px}
.opto-private-home-files-v190 a{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid #d7e8ec;border-radius:12px;background:#f9fcfd;text-decoration:none}
.opto-private-home-files-v190 a>span{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#e5f7fa;color:#087b91;font-size:.65rem;font-weight:900}
.opto-private-home-files-v190 a>strong{color:#123c4c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.opto-private-home-files-v190 a>small{color:#6b7f86}
@media(max-width:640px){.opto-private-patient-file-v190{grid-template-columns:48px minmax(0,1fr)!important}.opto-private-patient-file-actions-v190{grid-column:1/-1}.opto-private-patient-file-v190>span{width:46px;height:46px}.opto-private-home-files-v190 a{grid-template-columns:36px minmax(0,1fr)}.opto-private-home-files-v190 a>small{grid-column:2}}

/* v1.9.1 — Visor privado y política de descarga por archivo. */
.opto-private-patient-file-actions-v190{display:flex;flex-wrap:wrap;gap:8px}.opto-private-patient-file-v190:has(.opto-private-patient-file-actions-v190 a:only-child) .opto-private-patient-file-actions-v190{justify-content:flex-end}.opto-public-chat-attachment img{max-width:100%;height:auto}.opto-public-chat-attachment[rel="noopener"]{word-break:break-word}

/* v1.9.1.1 — Recursos de ejercicio servidos desde la biblioteca privada. */
.opto-patient-portal .opto-private-exercise-assets-v1911,
.opto-private-exercise-assets-v1911{border-left:4px solid #00a0be;background:#f4fbfc}
.opto-patient-portal .opto-private-exercise-assets-v1911 ul,
.opto-private-exercise-assets-v1911 ul{display:grid;gap:7px;margin:9px 0 0 20px}
.opto-patient-portal .opto-private-exercise-assets-v1911 a,
.opto-private-exercise-assets-v1911 a{font-weight:800;color:#087b91;text-decoration:underline;text-underline-offset:2px}
/* v2.3.11.4 — aceptación única del portal */
.opto-privacy-layout-v16141.is-simplified{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr)}.opto-portal-single-document-v23114{background:#fff;border:1px solid #d7e5ea;border-radius:16px;padding:18px;box-shadow:0 8px 24px rgba(20,48,71,.04)}.opto-portal-single-document-v23114 summary{cursor:pointer;font-weight:800;color:#17384b}.opto-portal-single-document-v23114>div{margin-top:15px;max-height:520px;overflow:auto;padding-right:8px}.opto-privacy-consent-form-v16141 .opto-privacy-consent-group-v16141.is-required{margin-top:16px}@media(max-width:900px){.opto-privacy-layout-v16141.is-simplified{grid-template-columns:1fr}}
