/* Portal de propietarios — Premium Prime Properties */
:root {
	--ppp-navy: #02345a;
	--ppp-gold: #e6c182;
	--ppp-gold-dark: #c39b5a;
	--ppp-white: #ffffff;
	--ppp-bg: #f8f9fb;
	--ppp-text: #1a2b3c;
	--ppp-text-muted: #5a6d7f;
	--ppp-border: #e2e8f0;
	--ppp-radius: 12px;
	--ppp-shadow: 0 2px 12px rgba(2, 52, 90, 0.06);
}

/* ===== Contenedor principal ===== */
.ppp-owner-portal {
	width: 80%;
	max-width: 1400px;
	margin: 0 auto;
	padding: 32px 20px 56px;
	font-family: 'Questrial', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	font-size: 15px;
	line-height: 1.6;
	color: var(--ppp-text);
}
@media (max-width: 768px) {
	.ppp-owner-portal {
		width: 95%;
	}
}

/* ===== Badge ===== */
.ppp-owner-portal__badge {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--ppp-navy);
	background: #eaf1f8;
	border: 1px solid #c8ddf0;
	border-radius: 4px;
	padding: 4px 12px;
	margin-bottom: 12px;
}

/* ===== Títulos y Lead ===== */
.ppp-owner-portal__title {
	margin: 0 0 8px;
	font-size: 2rem;
	font-weight: 700;
	color: var(--ppp-navy);
}
.ppp-owner-portal__lead {
	margin: 0 0 28px;
	color: var(--ppp-text-muted);
	font-size: 0.95rem;
}

/* ===== Login ===== */
.ppp-owner-portal-login-screen {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 60vh;
}
.ppp-owner-portal-login-card {
	width: 100%;
	max-width: 480px;
	margin: 0 auto;
	text-align: center;
}
.ppp-owner-portal-login {
	max-width: 100%;
	padding: 32px;
	background: var(--ppp-white);
	border: 1px solid var(--ppp-border);
	border-radius: var(--ppp-radius);
	box-shadow: var(--ppp-shadow);
}
.ppp-owner-portal-login label {
	display: block;
	margin-bottom: 6px;
	font-weight: 600;
	text-align: left;
	color: var(--ppp-navy);
}
.ppp-owner-portal-login input[type="text"],
.ppp-owner-portal-login input[type="password"] {
	width: 100%;
	padding: 12px 14px;
	margin-bottom: 16px;
	border: 1px solid var(--ppp-border);
	border-radius: 8px;
	font-size: 15px;
	transition: border-color 0.2s;
}
.ppp-owner-portal-login input:focus {
	outline: none;
	border-color: var(--ppp-navy);
}
.ppp-owner-portal-login .button-primary {
	width: 100%;
	padding: 14px;
	background: var(--ppp-navy);
	color: var(--ppp-white);
	border: none;
	border-radius: 8px;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s;
}
.ppp-owner-portal-login .button-primary:hover {
	background: #034a7a;
}

/* ===== Header row & Logout ===== */
.ppp-owner-portal-header-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 16px;
	margin-bottom: 8px;
}
.ppp-owner-portal-header-row__titles {
	flex: 1;
	min-width: 200px;
}
.ppp-owner-portal-session {
	flex-shrink: 0;
}
.ppp-owner-portal-logout {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	text-decoration: none;
	font-size: 14px;
	font-weight: 500;
	padding: 8px 16px;
	border-radius: 8px;
	border: 1px solid var(--ppp-navy);
	background: var(--ppp-white);
	color: var(--ppp-navy);
	transition: all 0.2s;
}
.ppp-owner-portal-logout:hover,
.ppp-owner-portal-logout:focus {
	background: var(--ppp-navy);
	color: var(--ppp-white);
}

/* ===== Dashboard grid ===== */
.ppp-owner-portal-section-title {
	margin: 0 0 16px;
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--ppp-navy);
}
.ppp-owner-portal-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 24px;
	margin-top: 8px;
}
.ppp-owner-portal-card {
	border: 1px solid var(--ppp-border);
	border-radius: var(--ppp-radius);
	overflow: hidden;
	background: var(--ppp-white);
	box-shadow: var(--ppp-shadow);
	display: flex;
	flex-direction: column;
	transition: box-shadow 0.2s, transform 0.2s;
}
.ppp-owner-portal-card:hover {
	box-shadow: 0 6px 24px rgba(2, 52, 90, 0.1);
	transform: translateY(-2px);
}
.ppp-owner-portal-card__img {
	width: 100%;
	height: 160px;
	object-fit: cover;
	background: #eee;
}
.ppp-owner-portal-card__body {
	padding: 16px 18px 18px;
	flex: 1;
	display: flex;
	flex-direction: column;
}
.ppp-owner-portal-card__name {
	margin: 0 0 6px;
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--ppp-navy);
}
.ppp-owner-portal-card__location {
	margin-bottom: 8px;
	font-size: 13px;
	color: var(--ppp-text-muted);
}
.ppp-owner-portal-card__meta {
	font-size: 13px;
	color: var(--ppp-text-muted);
	margin-bottom: 14px;
	flex: 1;
}
.ppp-owner-portal-card .button,
.ppp-owner-portal-card .button-primary {
	align-self: flex-start;
	background: var(--ppp-navy);
	color: var(--ppp-white);
	border: none;
	padding: 10px 20px;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.2s;
}
.ppp-owner-portal-card .button:hover {
	background: #034a7a;
}

/* ===== Back link ===== */
.ppp-op-back-link {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: var(--ppp-navy);
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	margin-bottom: 16px;
	transition: color 0.2s;
}
.ppp-op-back-link:hover {
	color: var(--ppp-gold-dark);
}

/* ===== Calendar layout: two columns ===== */
.ppp-owner-portal-calendar-layout {
	display: grid;
	grid-template-columns: 1fr 340px;
	gap: 28px;
	align-items: start;
}
@media (max-width: 900px) {
	.ppp-owner-portal-calendar-layout {
		grid-template-columns: 1fr;
	}
}

/* ===== Left column ===== */
.ppp-op-cal-main {
	min-width: 0;
}
.ppp-op-cal-card {
	background: var(--ppp-white);
	border: 1px solid var(--ppp-border);
	border-radius: var(--ppp-radius);
	padding: 24px;
	box-shadow: var(--ppp-shadow);
}
.ppp-op-cal-card__header {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 16px;
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--ppp-navy);
}

/* Legend */
.ppp-owner-portal-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 18px;
	margin: 0 0 20px;
	font-size: 12px;
	color: var(--ppp-text-muted);
}
.ppp-owner-portal-legend span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.ppp-owner-portal-legend i {
	display: inline-block;
	width: 14px;
	height: 14px;
	border-radius: 4px;
}
.ppp-op-leg-past {
	background: #eceff1;
	border: 1px solid #cfd8dc;
}
.ppp-op-leg-guest {
	background: #ffcdd2;
	border: 1px solid #e57373;
}
.ppp-op-leg-block {
	background: #fff3cd;
	border: 1px solid var(--ppp-gold);
}
.ppp-op-leg-free {
	background: #e8f5e9;
	border: 1px solid #81c784;
}

/* ===== Flatpickr calendar premium styling ===== */
.ppp-owner-portal-flatpickr-host {
	min-height: 0;
}

/* Calendar container - force full width */
.ppp-owner-portal .flatpickr-calendar,
.ppp-owner-portal .flatpickr-calendar.inline {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	position: relative !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	box-shadow: none !important;
	border: none !important;
	border-radius: 0 !important;
	font-family: inherit !important;
	background: transparent !important;
	top: 0 !important;
	left: 0 !important;
}
.ppp-owner-portal .flatpickr-calendar .flatpickr-innerContainer,
.ppp-owner-portal .flatpickr-calendar .flatpickr-rContainer {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
}

/* Month navigation bar */
.ppp-owner-portal .flatpickr-calendar .flatpickr-months {
	display: flex;
	align-items: center;
	padding: 0 0 16px;
	border-bottom: 1px solid var(--ppp-border);
	margin-bottom: 12px;
}
.ppp-owner-portal .flatpickr-calendar .flatpickr-months .flatpickr-month {
	height: auto;
	flex: 1;
}
.ppp-owner-portal .flatpickr-calendar .flatpickr-current-month {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--ppp-navy);
	padding: 0;
	position: relative;
	left: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	height: auto;
}
.ppp-owner-portal .flatpickr-calendar .flatpickr-current-month .cur-month {
	font-weight: 700;
}
.ppp-owner-portal .flatpickr-calendar .flatpickr-current-month input.cur-year {
	font-weight: 700;
	font-size: inherit;
	color: var(--ppp-navy);
}
.ppp-owner-portal .flatpickr-calendar .flatpickr-months .flatpickr-prev-month,
.ppp-owner-portal .flatpickr-calendar .flatpickr-months .flatpickr-next-month {
	position: relative !important;
	top: auto !important;
	padding: 8px 12px;
	border-radius: 6px;
	transition: background 0.2s;
	display: flex;
	align-items: center;
}
.ppp-owner-portal .flatpickr-calendar .flatpickr-months .flatpickr-prev-month:hover,
.ppp-owner-portal .flatpickr-calendar .flatpickr-months .flatpickr-next-month:hover {
	background: var(--ppp-bg);
}
.ppp-owner-portal .flatpickr-calendar .flatpickr-months .flatpickr-prev-month svg,
.ppp-owner-portal .flatpickr-calendar .flatpickr-months .flatpickr-next-month svg {
	fill: var(--ppp-navy);
	width: 14px;
	height: 14px;
}

/* Weekday headers */
.ppp-owner-portal .flatpickr-calendar .flatpickr-weekdays {
	width: 100% !important;
	padding: 0 0 8px;
}
.ppp-owner-portal .flatpickr-calendar .flatpickr-weekdaycontainer {
	display: grid !important;
	grid-template-columns: repeat(7, 1fr) !important;
	width: 100% !important;
}
.ppp-owner-portal .flatpickr-calendar .flatpickr-weekday {
	font-size: 13px;
	font-weight: 700;
	color: var(--ppp-navy);
	text-transform: capitalize;
	max-width: none !important;
	flex: none !important;
}

/* Days grid - force full width grid */
.ppp-owner-portal .flatpickr-calendar .flatpickr-days {
	width: 100% !important;
	max-width: 100% !important;
	border: none !important;
}
.ppp-owner-portal .flatpickr-calendar .dayContainer {
	display: grid !important;
	grid-template-columns: repeat(7, 1fr) !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	gap: 6px !important;
	padding: 4px 0 !important;
}

/* Individual day cells - rectangular with rounded corners */
.ppp-owner-portal .flatpickr-calendar .flatpickr-day {
	width: 100% !important;
	max-width: none !important;
	height: 48px !important;
	line-height: 48px !important;
	border-radius: 8px !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	margin: 0 !important;
	border: 1.5px solid transparent !important;
	transition: all 0.15s ease !important;
	flex: none !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}

/* Day states */
.ppp-owner-portal .flatpickr-calendar .flatpickr-day.ppp-op-day--past,
.ppp-owner-portal .flatpickr-calendar .flatpickr-day.flatpickr-disabled.ppp-op-day--past {
	background: #f8fafc !important;
	border-color: #e2e8f0 !important;
	color: #94a3b8 !important;
}
.ppp-owner-portal .flatpickr-calendar .flatpickr-day.ppp-op-day--guest,
.ppp-owner-portal .flatpickr-calendar .flatpickr-day.flatpickr-disabled.ppp-op-day--guest {
	background: #fef2f2 !important;
	border-color: #fecaca !important;
	color: #dc2626 !important;
	font-weight: 600 !important;
}
.ppp-owner-portal .flatpickr-calendar .flatpickr-day.ppp-op-day--block,
.ppp-owner-portal .flatpickr-calendar .flatpickr-day.flatpickr-disabled.ppp-op-day--block {
	background: #fffbeb !important;
	border-color: var(--ppp-gold) !important;
	color: #92400e !important;
	font-weight: 600 !important;
}
.ppp-owner-portal .flatpickr-calendar .flatpickr-day.ppp-op-day--free:not(.flatpickr-disabled) {
	background: #f0fdf4 !important;
	border-color: #bbf7d0 !important;
	color: #166534 !important;
}
.ppp-owner-portal .flatpickr-calendar .flatpickr-day.ppp-op-day--free:not(.flatpickr-disabled):hover {
	background: #dcfce7 !important;
	border-color: #86efac !important;
}

/* Selected range */
.ppp-owner-portal .flatpickr-calendar .flatpickr-day.ppp-op-day--free.selected,
.ppp-owner-portal .flatpickr-calendar .flatpickr-day.ppp-op-day--free.startRange,
.ppp-owner-portal .flatpickr-calendar .flatpickr-day.ppp-op-day--free.endRange {
	background: var(--ppp-navy) !important;
	border-color: var(--ppp-navy) !important;
	color: var(--ppp-white) !important;
	box-shadow: 0 2px 8px rgba(2, 52, 90, 0.3) !important;
	font-weight: 700 !important;
}
.ppp-owner-portal .flatpickr-calendar .flatpickr-day.ppp-op-day--free.inRange {
	background: #dbeafe !important;
	border-color: #93c5fd !important;
	color: var(--ppp-navy) !important;
	box-shadow: none !important;
}
.ppp-owner-portal .flatpickr-calendar .flatpickr-day.ppp-op-day--free.selected:hover,
.ppp-owner-portal .flatpickr-calendar .flatpickr-day.ppp-op-day--free.startRange:hover,
.ppp-owner-portal .flatpickr-calendar .flatpickr-day.ppp-op-day--free.endRange:hover {
	background: #034a7a !important;
	color: var(--ppp-white) !important;
}

/* Today indicator */
.ppp-owner-portal .flatpickr-calendar .flatpickr-day.today:not(.selected):not(.startRange):not(.endRange) {
	border-color: var(--ppp-navy) !important;
}

/* Prev/next month days (dimmed) */
.ppp-owner-portal .flatpickr-calendar .flatpickr-day.prevMonthDay,
.ppp-owner-portal .flatpickr-calendar .flatpickr-day.nextMonthDay {
	color: #cbd5e1 !important;
	background: transparent !important;
	border-color: transparent !important;
}

/* Hide numInputWrapper arrows */
.ppp-owner-portal .flatpickr-calendar .numInputWrapper span {
	display: none;
}

/* ===== Right sidebar ===== */
.ppp-op-cal-sidebar {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

/* Property card */
.ppp-op-prop-card {
	background: var(--ppp-white);
	border: 1px solid var(--ppp-border);
	border-radius: var(--ppp-radius);
	overflow: hidden;
	box-shadow: var(--ppp-shadow);
}
.ppp-op-prop-card__img {
	width: 100%;
	height: 140px;
	object-fit: cover;
}
.ppp-op-prop-card__body {
	padding: 14px 16px 16px;
}
.ppp-op-prop-card__name {
	margin: 0 0 6px;
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--ppp-navy);
}
.ppp-op-prop-card__location {
	display: flex;
	align-items: center;
	gap: 4px;
	margin: 0 0 8px;
	font-size: 13px;
	color: var(--ppp-text-muted);
}
.ppp-op-prop-card__sync {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	font-size: 13px;
	color: #2e7d32;
	font-weight: 500;
}
.ppp-op-prop-card__sync::after {
	content: '';
	width: 8px;
	height: 8px;
	background: #4caf50;
	border-radius: 50%;
	margin-left: 4px;
}

/* Block panel */
.ppp-op-block-panel {
	background: var(--ppp-white);
	border: 1px solid var(--ppp-border);
	border-radius: var(--ppp-radius);
	padding: 20px;
	box-shadow: var(--ppp-shadow);
}
.ppp-op-block-panel__title {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 16px;
	font-size: 1rem;
	font-weight: 700;
	color: var(--ppp-navy);
}
.ppp-op-block-panel__dates {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin-bottom: 16px;
	padding: 12px 14px;
	background: var(--ppp-bg);
	border: 1px solid var(--ppp-border);
	border-radius: 8px;
}
.ppp-op-block-panel__dates-label {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	font-weight: 600;
	color: var(--ppp-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.03em;
}
.ppp-op-block-panel__dates-value {
	font-size: 14px;
	color: var(--ppp-text-muted);
	font-style: italic;
}
.ppp-op-block-panel__dates-value.has-dates {
	color: var(--ppp-navy);
	font-weight: 600;
	font-style: normal;
}
.ppp-op-block-panel__reason-label {
	display: block;
	margin-bottom: 6px;
	font-size: 14px;
	font-weight: 600;
	color: var(--ppp-navy);
}
.ppp-op-block-panel__textarea {
	width: 100%;
	min-height: 80px;
	padding: 12px 14px;
	border: 1px solid var(--ppp-border);
	border-radius: 8px;
	font-size: 14px;
	resize: vertical;
	margin-bottom: 16px;
	transition: border-color 0.2s;
}
.ppp-op-block-panel__textarea:focus {
	outline: none;
	border-color: var(--ppp-navy);
}
.ppp-op-block-panel__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	padding: 14px;
	background: var(--ppp-gold);
	color: var(--ppp-navy);
	border: none;
	border-radius: 8px;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
	transition: background 0.2s;
}
.ppp-op-block-panel__btn:hover {
	background: var(--ppp-gold-dark);
}
.ppp-op-block-panel__btn:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}
.ppp-op-block-panel__hint {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 12px 0 0;
	font-size: 12px;
	color: var(--ppp-text-muted);
}

/* ===== SVG icons ===== */
.ppp-op-icon {
	flex-shrink: 0;
	vertical-align: middle;
}

/* ===== Upcoming section ===== */
.ppp-op-upcoming-section {
	margin-top: 28px;
}
.ppp-op-section-heading {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 14px;
	font-size: 1rem;
	font-weight: 700;
	color: var(--ppp-navy);
}
.ppp-op-upcoming-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}
.ppp-op-upcoming-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	background: var(--ppp-white);
	border: 1px solid var(--ppp-border);
	border-radius: 8px;
	font-size: 14px;
	color: var(--ppp-text);
	box-shadow: 0 1px 4px rgba(0,0,0,0.04);
}
.ppp-op-icon--reservation {
	color: #e53e3e;
}
.ppp-op-empty {
	margin: 0;
	font-size: 14px;
	color: var(--ppp-text-muted);
	font-style: italic;
}

/* ===== Blocks section ===== */
.ppp-op-blocks-section {
	margin-top: 28px;
}
.ppp-owner-portal-my-blocks table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	border-radius: 8px;
	overflow: hidden;
	border: 1px solid var(--ppp-border);
}
.ppp-owner-portal-my-blocks th {
	background: var(--ppp-bg);
	color: var(--ppp-navy);
	font-weight: 600;
	text-align: left;
	padding: 10px 14px;
	border-bottom: 1px solid var(--ppp-border);
}
.ppp-owner-portal-my-blocks td {
	padding: 10px 14px;
	border-bottom: 1px solid var(--ppp-border);
	color: var(--ppp-text);
}
.ppp-owner-portal-my-blocks tr:last-child td {
	border-bottom: none;
}
.ppp-op-actions-cell {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}
.ppp-op-action-btn {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 5px 10px;
	border-radius: 6px;
	font-size: 13px;
	font-weight: 500;
	border: none;
	cursor: pointer;
	transition: background 0.2s;
}
.ppp-op-action-btn--edit {
	background: #eef5ff;
	color: var(--ppp-navy);
}
.ppp-op-action-btn--edit:hover {
	background: #d6e8ff;
}
.ppp-op-action-btn--delete {
	background: #fef2f2;
	color: #c53030;
}
.ppp-op-action-btn--delete:hover {
	background: #fde8e8;
}

/* ===== Toast feedback ===== */
.ppp-op-toast {
	position: fixed;
	bottom: 24px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 9999;
	padding: 12px 24px;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 500;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
	max-width: 90vw;
	text-align: center;
	animation: ppp-toast-in 0.3s ease;
}
.ppp-op-toast[hidden] {
	display: none !important;
}
.ppp-op-toast.is-error {
	background: #fef2f2;
	color: #c53030;
	border: 1px solid #fca5a5;
}
.ppp-op-toast.is-ok {
	background: #f0fdf4;
	color: #166534;
	border: 1px solid #86efac;
}
@keyframes ppp-toast-in {
	from {
		opacity: 0;
		transform: translateX(-50%) translateY(12px);
	}
	to {
		opacity: 1;
		transform: translateX(-50%) translateY(0);
	}
}

/* ===== Footer note ===== */
.ppp-owner-portal-footer {
	margin-top: 40px;
	padding-top: 20px;
	border-top: 1px solid var(--ppp-border);
	text-align: center;
	font-size: 13px;
	color: var(--ppp-text-muted);
}
