/* ============================================================
   Lethouse · Dashboard de propietario (rediseño 2026)
   Sistema propio con prefijo dsh- para no colisionar con las
   clases legacy lh-dashboard-* / lh-command-* de main.css.
   Mobile-first, responsive, estética moderna.
   ============================================================ */

:root {
	--dsh-bg: #f5f6f8;
	--dsh-surface: #ffffff;
	--dsh-surface-2: #f7f8fa;
	--dsh-border: #e9ebee;
	--dsh-border-strong: #dfe2e6;
	--dsh-text: #14161a;
	--dsh-muted: #6b7280;
	--dsh-faint: #9aa1ab;
	--dsh-accent: #37957d;
	--dsh-accent-dark: #2b7565;
	--dsh-accent-soft: #e7f2ee;
	--dsh-radius: 18px;
	--dsh-radius-sm: 12px;
	--dsh-shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 8px 24px rgba(16, 24, 40, 0.05);
	--dsh-shadow-lg: 0 12px 40px rgba(16, 24, 40, 0.12);
	--dsh-sidebar-w: 252px;

	/* Tonos para chips de KPI / iconos */
	--tone-green: #1a8f6f;   --tone-green-bg: #e5f4ee;
	--tone-blue: #2563eb;    --tone-blue-bg: #e7effe;
	--tone-yellow: #b45309;  --tone-yellow-bg: #fbf0dc;
	--tone-red: #dc2626;     --tone-red-bg: #fdeaea;
	--tone-black: #16181c;   --tone-black-bg: #ecedef;
}

/* ---------- reset de página ---------- */
body.dsh-page {
	margin: 0;
	background: var(--dsh-bg);
	color: var(--dsh-text);
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
	-webkit-font-smoothing: antialiased;
}
.dsh * { box-sizing: border-box; }
.dsh a { text-decoration: none; color: inherit; }
.dsh h1, .dsh h2, .dsh h3, .dsh h4, .dsh p { margin: 0; }
.dsh button { font-family: inherit; }

/* ================= LAYOUT ================= */
.dsh { min-height: 100vh; }

.dsh-sidebar {
	position: fixed;
	top: 0; left: 0; bottom: 0;
	width: var(--dsh-sidebar-w);
	background: var(--dsh-surface);
	border-right: 1px solid var(--dsh-border);
	display: flex;
	flex-direction: column;
	padding: 20px 16px;
	z-index: 60;
	overflow-x: hidden;
	transition: transform 0.25s ease;
}

.dsh-brand {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 4px 8px 22px;
}
.dsh-brand img { height: 24px; width: auto; max-width: 100%; }
.dsh-brand span {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.6px;
	text-transform: uppercase;
	color: var(--dsh-faint);
	padding-top: 4px;
}

.dsh-nav { display: flex; flex-direction: column; gap: 3px; flex: 1; }
.dsh-nav a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 12px;
	border-radius: var(--dsh-radius-sm);
	font-size: 14.5px;
	font-weight: 500;
	color: var(--dsh-muted);
	transition: background 0.12s, color 0.12s;
}
.dsh-nav a i { width: 18px; text-align: center; font-size: 15px; }
.dsh-nav a:hover { background: var(--dsh-surface-2); color: var(--dsh-text); }
.dsh-nav a.is-active {
	background: var(--dsh-accent-soft);
	color: var(--dsh-accent-dark);
	font-weight: 600;
}

.dsh-verif {
	margin-top: 14px;
	padding: 14px;
	border-radius: var(--dsh-radius-sm);
	background: var(--dsh-surface-2);
	border: 1px solid var(--dsh-border);
}
.dsh-verif-top { display: flex; align-items: center; gap: 9px; margin-bottom: 10px; }
.dsh-verif-top i { color: var(--dsh-accent); }
.dsh-verif-top strong { font-size: 13px; display: block; }
.dsh-verif-top span { font-size: 11.5px; color: var(--dsh-muted); }
.dsh-verif-bar { height: 6px; border-radius: 99px; background: #e6e8eb; overflow: hidden; margin-bottom: 10px; }
.dsh-verif-bar span { display: block; height: 100%; background: var(--dsh-accent); border-radius: 99px; }
.dsh-verif a { font-size: 12.5px; font-weight: 600; color: var(--dsh-accent); }

/* Backdrop del sidebar en mobile */
.dsh-backdrop {
	position: fixed; inset: 0;
	background: rgba(16, 24, 40, 0.45);
	z-index: 55; opacity: 0; pointer-events: none;
	transition: opacity 0.2s;
}
.dsh.is-menu-open .dsh-backdrop { opacity: 1; pointer-events: auto; }

/* ---------- main ---------- */
.dsh-main { margin-left: var(--dsh-sidebar-w); min-height: 100vh; display: flex; flex-direction: column; }

.dsh-topbar {
	position: sticky; top: 0; z-index: 40;
	display: flex; align-items: center; gap: 16px;
	padding: 14px 28px;
	background: rgba(245, 246, 248, 0.85);
	backdrop-filter: saturate(180%) blur(10px);
	border-bottom: 1px solid var(--dsh-border);
}
.dsh-hamburger {
	display: none;
	width: 40px; height: 40px;
	border: 1px solid var(--dsh-border);
	background: var(--dsh-surface);
	border-radius: 10px; cursor: pointer;
	font-size: 16px; color: var(--dsh-text);
}
.dsh-topbar-title .eyebrow {
	font-size: 11px; font-weight: 700; letter-spacing: 0.6px;
	text-transform: uppercase; color: var(--dsh-faint);
}
.dsh-topbar-title h1 { font-size: 19px; font-weight: 700; letter-spacing: -0.3px; }
.dsh-topbar-spacer { flex: 1; }

.dsh-search {
	display: flex; align-items: center; gap: 8px;
	height: 40px; padding: 0 14px;
	background: var(--dsh-surface);
	border: 1px solid var(--dsh-border);
	border-radius: 10px; width: 260px;
}
.dsh-search i { color: var(--dsh-faint); font-size: 13px; }
.dsh-search input { border: none; outline: none; background: transparent; font-size: 14px; width: 100%; }

.dsh-new-btn {
	display: inline-flex; align-items: center; gap: 8px;
	height: 40px; padding: 0 16px;
	background: var(--dsh-accent); color: #fff;
	border-radius: 10px; font-size: 14px; font-weight: 600;
}
.dsh-new-btn:hover { background: var(--dsh-accent-dark); }

.dsh-admin-btn {
	display: inline-flex; align-items: center; gap: 8px;
	height: 40px; padding: 0 14px;
	background: var(--dsh-surface); color: var(--dsh-text);
	border: 1px solid var(--dsh-border);
	border-radius: 10px; font-size: 14px; font-weight: 600;
}
.dsh-admin-btn:hover { border-color: var(--dsh-accent); color: var(--dsh-accent-dark); }

.dsh-bell {
	position: relative;
	width: 40px; height: 40px;
	border: 1px solid var(--dsh-border);
	background: var(--dsh-surface);
	border-radius: 10px; cursor: pointer; color: var(--dsh-text);
}
.dsh-bell span {
	position: absolute; top: -5px; right: -5px;
	min-width: 18px; height: 18px; padding: 0 5px;
	background: var(--tone-red); color: #fff;
	border-radius: 99px; font-size: 11px; font-weight: 700;
	display: flex; align-items: center; justify-content: center;
	border: 2px solid var(--dsh-bg);
}
.dsh-userchip { display: flex; align-items: center; gap: 10px; }
.dsh-avatar {
	width: 38px; height: 38px; border-radius: 50%;
	background: var(--dsh-accent); color: #fff;
	display: flex; align-items: center; justify-content: center;
	font-size: 14px; font-weight: 700; flex-shrink: 0;
}
.dsh-userchip strong { font-size: 13.5px; display: block; line-height: 1.2; }
.dsh-userchip span { font-size: 12px; color: var(--dsh-muted); }

.dsh-content { padding: 26px 28px 90px; max-width: 1240px; width: 100%; }

/* ================= ONBOARDING DEL PRIMER INVENTARIO ================= */
.dsh-onboarding-mode {
	--dsh-bg: #f4f7f5;
}
.dsh-onboarding-mode .dsh-content {
	max-width: 1180px;
}
.dsh-onboarding {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
	gap: 56px 64px;
	align-items: center;
	min-height: calc(100vh - 180px);
	padding: clamp(42px, 6vw, 80px);
	border: 1px solid #dfe9e5;
	border-radius: 28px;
	background:
		radial-gradient(circle at 86% 10%, rgba(55,149,125,.14), transparent 31%),
		linear-gradient(145deg, #ffffff 0%, #f8fbfa 64%, #edf5f1 100%);
	box-shadow: 0 24px 70px rgba(20,67,58,.08);
	overflow: hidden;
}
.dsh-onboarding-main {
	position: relative;
	z-index: 1;
	max-width: 620px;
}
.dsh-onboarding-main .eyebrow {
	display: inline-flex;
	margin-bottom: 14px;
	color: var(--dsh-accent-dark);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .9px;
	text-transform: uppercase;
}
.dsh-onboarding-main h2 {
	max-width: 600px;
	font-size: clamp(36px, 4.6vw, 62px);
	line-height: .98;
	letter-spacing: -2.5px;
	font-weight: 760;
	color: #13231f;
}
.dsh-onboarding-lead {
	max-width: 590px;
	margin-top: 22px !important;
	color: #53645f;
	font-size: 17px;
	line-height: 1.65;
}
.dsh-onboarding-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-height: 52px;
	margin-top: 30px;
	padding: 0 24px;
	border-radius: 13px;
	background: #173e35;
	color: #fff !important;
	font-size: 15px;
	font-weight: 700;
	box-shadow: 0 12px 26px rgba(20,67,58,.18);
	transition: transform .15s ease, background .15s ease;
}
.dsh-onboarding-cta:hover {
	transform: translateY(-2px);
	background: #0f3029;
}
.dsh-onboarding-cta:focus-visible {
	outline: 3px solid rgba(55,149,125,.36);
	outline-offset: 3px;
}
.dsh-onboarding-note {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	max-width: 540px;
	margin-top: 18px !important;
	color: #65736f;
	font-size: 13px;
	line-height: 1.5;
}
.dsh-onboarding-note i {
	margin-top: 3px;
	color: var(--dsh-accent);
}
.dsh-onboarding-preview {
	position: relative;
	z-index: 1;
	width: min(100%, 350px);
	justify-self: end;
	padding: 14px;
	border: 1px solid rgba(20,67,58,.13);
	border-radius: 22px;
	background: rgba(255,255,255,.88);
	box-shadow: 0 28px 64px rgba(20,67,58,.14);
	transform: rotate(2.5deg);
}
.dsh-onboarding-preview-top {
	display: flex;
	gap: 5px;
	padding: 2px 2px 11px;
}
.dsh-onboarding-preview-top span {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #cdd8d4;
}
.dsh-onboarding-preview-photo {
	display: grid;
	place-items: center;
	aspect-ratio: 1.48;
	border-radius: 14px;
	background: linear-gradient(145deg, #d9ebe4, #aacfc2);
	color: rgba(20,67,58,.44);
	font-size: 44px;
}
.dsh-onboarding-preview-copy {
	display: grid;
	gap: 8px;
	padding: 15px 5px 5px;
}
.dsh-onboarding-preview-copy > span {
	display: block;
	width: 54%;
	height: 8px;
	border-radius: 99px;
	background: #dfe6e3;
}
.dsh-onboarding-preview-copy > span.wide {
	width: 82%;
	height: 11px;
	background: #aabbb5;
}
.dsh-onboarding-preview-copy div {
	display: flex;
	gap: 7px;
	margin-top: 4px;
}
.dsh-onboarding-preview-copy i {
	width: 46px;
	height: 24px;
	border-radius: 7px;
	background: #edf2f0;
}
.dsh-onboarding-steps {
	position: relative;
	z-index: 1;
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid #dfe9e5;
}
.dsh-onboarding-steps li {
	display: flex;
	gap: 14px;
	padding: 28px 28px 0 0;
}
.dsh-onboarding-steps li + li {
	padding-left: 28px;
	border-left: 1px solid #dfe9e5;
}
.dsh-onboarding-steps > li > span {
	color: var(--dsh-accent);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .5px;
}
.dsh-onboarding-steps h3 {
	margin: 0 0 6px;
	color: #183029;
	font-size: 14px;
	line-height: 1.25;
}
.dsh-onboarding-steps p {
	color: #697873;
	font-size: 12.5px;
	line-height: 1.55;
}

/* ================= SUPERADMIN ================= */
.dsh-superadmin {
	--dsh-super: #4c1d95;
	--dsh-super-dark: #35106d;
	--dsh-super-soft: #f0eafe;
}
.dsh-superadmin .dsh-avatar { background: var(--dsh-super); box-shadow: 0 0 0 3px var(--dsh-super-soft); }
.dsh-super-nav { position: relative; }
.dsh-nav .dsh-super-nav span {
	margin-left: auto; padding: 2px 6px; border-radius: 99px;
	background: var(--dsh-super-soft); color: var(--dsh-super);
	font-size: 9px; font-weight: 800; letter-spacing: .5px;
}
.dsh-nav .dsh-super-nav.is-active { background: var(--dsh-super-soft); color: var(--dsh-super-dark); }
.dsh-super-card {
	margin-top: 14px; padding: 14px; border-radius: var(--dsh-radius-sm);
	background: linear-gradient(145deg, var(--dsh-super-dark), var(--dsh-super));
	color: #fff; display: grid; grid-template-columns: 34px 1fr; gap: 10px;
	box-shadow: 0 12px 30px rgba(76, 29, 149, .22);
}
.dsh-super-card-icon {
	width: 34px; height: 34px; border-radius: 9px; display: flex;
	align-items: center; justify-content: center; background: rgba(255,255,255,.14);
}
.dsh-super-card strong { display: block; font-size: 13px; }
.dsh-super-card span { display: block; margin-top: 2px; font-size: 10.5px; opacity: .78; overflow-wrap: anywhere; }
.dsh-super-card a { grid-column: 1 / -1; font-size: 12px; font-weight: 700; color: #fff; }
.dsh-super-hero {
	display: flex; align-items: center; justify-content: space-between; gap: 24px;
	padding: 26px 28px; margin-bottom: 18px; border-radius: var(--dsh-radius);
	background: linear-gradient(135deg, #21113d 0%, var(--dsh-super) 62%, #6d3dc1 100%);
	color: #fff; box-shadow: 0 18px 40px rgba(53, 16, 109, .18);
}
.dsh-super-hero .eyebrow { margin-bottom: 6px; color: #d9ccff; font-size: 11px; font-weight: 800; letter-spacing: .7px; text-transform: uppercase; }
.dsh-super-hero h2 { color: #fff; font-size: 25px; letter-spacing: -.5px; }
.dsh-super-hero p { max-width: 690px; margin-top: 8px; color: rgba(255,255,255,.78); font-size: 13.5px; line-height: 1.55; }
.dsh-super-actions { display: flex; gap: 8px; flex-shrink: 0; }
.dsh-super-actions a {
	display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 0 13px;
	border: 1px solid rgba(255,255,255,.25); border-radius: 10px; background: rgba(255,255,255,.1);
	font-size: 12.5px; font-weight: 700; white-space: nowrap;
}
.dsh-super-actions a:first-child { background: #fff; color: var(--dsh-super-dark); }
.dsh-super-toolbar {
	position: sticky; top: 69px; z-index: 20; display: flex; align-items: center; gap: 16px;
	padding: 12px 14px; margin-bottom: 18px; border: 1px solid var(--dsh-border);
	border-radius: 14px; background: rgba(255,255,255,.94); box-shadow: var(--dsh-shadow);
	backdrop-filter: blur(10px);
}
.dsh-super-toolbar label {
	display: flex; align-items: center; gap: 9px; min-width: 270px; padding: 0 12px;
	height: 40px; border: 1px solid var(--dsh-border); border-radius: 10px; background: var(--dsh-surface-2);
	color: var(--dsh-faint);
}
.dsh-super-toolbar input { width: 100%; border: 0; outline: 0; background: transparent; font: inherit; font-size: 13px; color: var(--dsh-text); }
.dsh-super-toolbar nav { display: flex; align-items: center; gap: 6px; overflow-x: auto; }
.dsh-super-toolbar nav { scrollbar-width: none; }
.dsh-super-toolbar nav::-webkit-scrollbar { display: none; }
.dsh-super-toolbar nav a {
	display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 10px;
	border-radius: 9px; color: var(--dsh-muted); font-size: 12px; font-weight: 700; white-space: nowrap;
}
.dsh-super-toolbar nav a:hover { background: var(--dsh-super-soft); color: var(--dsh-super); }
.dsh-super-toolbar nav span { padding: 2px 6px; border-radius: 99px; background: var(--dsh-surface-2); font-size: 10px; }
.dsh-global-kpis { margin-bottom: 22px; }
.dsh-global-block { padding: 0; margin-bottom: 18px; scroll-margin-top: 140px; overflow: hidden; }
.dsh-global-head {
	display: flex; align-items: flex-end; justify-content: space-between; gap: 16px;
	padding: 18px 20px; border-bottom: 1px solid var(--dsh-border);
}
.dsh-global-head .eyebrow { color: var(--dsh-super); font-size: 10px; font-weight: 800; letter-spacing: .6px; text-transform: uppercase; }
.dsh-global-head h3 { margin-top: 3px; font-size: 17px; }
.dsh-global-head > a { color: var(--dsh-super); font-size: 12px; font-weight: 700; white-space: nowrap; }
.dsh-global-block .dsh-table-wrap { max-height: 520px; overflow: auto; }
.dsh-global-block .dsh-table thead { position: sticky; top: 0; z-index: 2; background: var(--dsh-surface-2); }
.dsh-global-block .dsh-table-actions .approve { background: var(--dsh-super); border-color: var(--dsh-super); }
.dsh-status.st-pendiente { background: var(--tone-yellow-bg); color: var(--tone-yellow); }
.dsh-status.st-pagada, .dsh-status.st-enCurso, .dsh-status.st-completada, .dsh-status.st-publicada { background: var(--tone-green-bg); color: var(--tone-green); }
.dsh-status.st-cancelada, .dsh-status.st-rechazada { background: var(--tone-red-bg); color: var(--tone-red); }
.dsh-status.st-aprobada { background: var(--tone-blue-bg); color: var(--tone-blue); }
.dsh-presence { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 700; color: var(--dsh-muted); white-space: nowrap; }
.dsh-presence i { width: 8px; height: 8px; border-radius: 50%; background: var(--dsh-faint); }
.dsh-presence.is-online { color: var(--tone-green); }
.dsh-presence.is-online i { background: var(--tone-green); box-shadow: 0 0 0 4px var(--tone-green-bg); }
.dsh-presence.is-recent { color: var(--tone-blue); }
.dsh-presence.is-recent i { background: var(--tone-blue); }
.dsh-global-secondary { align-items: start; grid-template-columns: 1.1fr .9fr; }
.dsh-global-stack { display: grid; gap: 18px; }
.dsh-global-list { max-height: 520px; overflow-y: auto; }
.dsh-global-list > a, .dsh-global-list > div {
	display: grid; grid-template-columns: 36px 1fr auto; align-items: center; gap: 10px;
	padding: 12px 18px; border-bottom: 1px solid var(--dsh-border);
}
.dsh-global-list > :last-child { border-bottom: 0; }
.dsh-global-list > a:hover { background: var(--dsh-surface-2); }
.dsh-global-list-icon {
	width: 34px; height: 34px; border-radius: 9px; display: flex; align-items: center;
	justify-content: center; background: var(--dsh-super-soft); color: var(--dsh-super);
}
.dsh-global-list strong { display: block; font-size: 12.5px; }
.dsh-global-list small { display: block; margin-top: 2px; color: var(--dsh-muted); font-size: 11px; }
.dsh-global-list > a > span:last-child, .dsh-global-list time { text-align: right; font-size: 11px; color: var(--dsh-muted); }
.dsh-global-list.compact { max-height: 300px; }

/* Secciones SPA: ocultas por defecto, visibles con .is-visible */
[data-dsh-section] { display: none; }
[data-dsh-section].is-visible { display: block; }

/* ================= COMPONENTES ================= */
.dsh-card {
	background: var(--dsh-surface);
	border: 1px solid var(--dsh-border);
	border-radius: var(--dsh-radius);
	box-shadow: var(--dsh-shadow);
}
.dsh-card-pad { padding: 20px 22px; }

.dsh-section-head {
	display: flex; align-items: flex-end; justify-content: space-between;
	gap: 14px; margin-bottom: 16px; flex-wrap: wrap;
}
.dsh-section-head h2 { font-size: 20px; font-weight: 700; letter-spacing: -0.3px; }
.dsh-section-head .eyebrow {
	font-size: 11px; font-weight: 700; letter-spacing: 0.6px;
	text-transform: uppercase; color: var(--dsh-accent);
}

.dsh-season-form { display: grid; gap: 12px; }
.dsh-season-form label {
	display: grid; gap: 6px; color: var(--dsh-muted);
	font-size: 12px; font-weight: 600;
}
.dsh-season-form input,
.dsh-season-form select,
.dsh-season-form textarea {
	width: 100%; min-height: 40px; padding: 9px 11px;
	border: 1px solid var(--dsh-border); border-radius: 9px;
	background: #fff; color: var(--dsh-text); font: inherit;
}
.dsh-section-head p { font-size: 13.5px; color: var(--dsh-muted); }

/* ---- Hero alert ---- */
.dsh-hero {
	display: flex; align-items: center; gap: 18px;
	padding: 22px 24px; margin-bottom: 22px;
	border-radius: var(--dsh-radius);
	background: linear-gradient(135deg, #14433a, #2b7565);
	color: #fff; position: relative; overflow: hidden;
}
.dsh-hero.is-dismissed { display: none; }
.dsh-hero-icon {
	width: 52px; height: 52px; border-radius: 14px;
	background: rgba(255,255,255,0.16);
	display: flex; align-items: center; justify-content: center;
	font-size: 22px; flex-shrink: 0;
}
.dsh-hero-copy { flex: 1; }
.dsh-hero-copy h2 { font-size: 19px; font-weight: 700; color: #fff; margin-bottom: 4px; }
.dsh-hero-copy p { font-size: 14px; color: rgba(255,255,255,0.9); }
.dsh-hero-actions { display: flex; gap: 10px; flex-shrink: 0; }
.dsh-hero-actions a {
	display: inline-flex; align-items: center; gap: 7px;
	height: 42px; padding: 0 18px; border-radius: 10px;
	font-size: 14px; font-weight: 600;
}
.dsh-hero-actions a.primary { background: #fff; color: var(--dsh-accent-dark); }
.dsh-hero-actions a.ghost { background: rgba(255,255,255,0.14); color: #fff; }
.dsh-hero-close {
	position: absolute; top: 14px; right: 14px;
	width: 30px; height: 30px; border-radius: 8px;
	background: rgba(255,255,255,0.14); border: none; color: #fff; cursor: pointer;
}

/* ---- KPI grid ---- */
.dsh-kpis {
	display: grid; gap: 14px; margin-bottom: 22px;
	grid-template-columns: repeat(4, 1fr);
}
.dsh-kpis-2 { grid-template-columns: repeat(2, 1fr); }
.dsh-kpi {
	display: flex; flex-direction: column; gap: 8px;
	padding: 18px; border-radius: var(--dsh-radius);
	background: var(--dsh-surface); border: 1px solid var(--dsh-border);
	box-shadow: var(--dsh-shadow); transition: transform 0.12s, box-shadow 0.12s;
}
.dsh-kpi:hover { transform: translateY(-2px); box-shadow: var(--dsh-shadow-lg); }
.dsh-kpi-icon {
	width: 40px; height: 40px; border-radius: 11px;
	display: flex; align-items: center; justify-content: center; font-size: 16px;
}
.dsh-kpi.tone-green  .dsh-kpi-icon { background: var(--tone-green-bg);  color: var(--tone-green); }
.dsh-kpi.tone-blue   .dsh-kpi-icon { background: var(--tone-blue-bg);   color: var(--tone-blue); }
.dsh-kpi.tone-yellow .dsh-kpi-icon { background: var(--tone-yellow-bg); color: var(--tone-yellow); }
.dsh-kpi.tone-red    .dsh-kpi-icon { background: var(--tone-red-bg);    color: var(--tone-red); }
.dsh-kpi.tone-black  .dsh-kpi-icon { background: var(--tone-black-bg);  color: var(--tone-black); }
.dsh-kpi-value { font-size: 26px; font-weight: 800; letter-spacing: -0.6px; line-height: 1; }
.dsh-kpi-label { font-size: 13px; color: var(--dsh-muted); font-weight: 500; }
.dsh-kpi-sub { font-size: 12px; color: var(--dsh-faint); }
.dsh-kpi-trend { font-size: 12px; font-weight: 600; color: var(--tone-yellow); }

/* ---- Grid de dos columnas ---- */
.dsh-grid-2 { display: grid; grid-template-columns: 1.55fr 1fr; gap: 18px; margin-bottom: 22px; }
.dsh-grid-2.rev { grid-template-columns: 1fr 1.55fr; }

/* ---- Bar chart de ingresos ---- */
.dsh-chart-bars { display: flex; align-items: flex-end; gap: 14px; height: 180px; padding-top: 10px; }
.dsh-chart-col { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 8px; height: 100%; justify-content: flex-end; }
.dsh-chart-stack { display: flex; align-items: flex-end; gap: 4px; height: 100%; width: 100%; justify-content: center; }
.dsh-bar { width: 14px; border-radius: 6px 6px 0 0; min-height: 3px; }
.dsh-bar.gross { background: var(--dsh-accent); }
.dsh-bar.net { background: #9fd3c5; }
.dsh-chart-x { font-size: 11px; color: var(--dsh-muted); text-transform: capitalize; }
.dsh-legend { display: flex; gap: 16px; margin-top: 14px; font-size: 12px; color: var(--dsh-muted); }
.dsh-legend span { display: inline-flex; align-items: center; gap: 6px; }
.dsh-legend i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }

/* ---- Ocupación (barras segmentadas) ---- */
.dsh-occ-bar { display: flex; height: 14px; border-radius: 99px; overflow: hidden; margin: 6px 0 16px; background: var(--dsh-surface-2); }
.dsh-occ-bar span { display: block; height: 100%; }
.dsh-occ-bar .seg-res { background: var(--dsh-accent); }
.dsh-occ-bar .seg-blk { background: #f0b429; }
.dsh-occ-bar .seg-av { background: #e2e5e9; }
.dsh-occ-list { display: flex; flex-direction: column; gap: 10px; }
.dsh-occ-list li { display: flex; align-items: center; justify-content: space-between; font-size: 13px; list-style: none; }
.dsh-occ-list .dot { width: 9px; height: 9px; border-radius: 3px; display: inline-block; margin-right: 8px; }

/* ---- Lista "requiere atención" ---- */
.dsh-attn { display: flex; flex-direction: column; }
.dsh-attn-item { display: flex; align-items: center; gap: 14px; padding: 13px 0; border-bottom: 1px solid var(--dsh-border); }
.dsh-attn-item:last-child { border-bottom: none; }
.dsh-attn-icon { width: 40px; height: 40px; border-radius: 11px; background: var(--dsh-surface-2); display: flex; align-items: center; justify-content: center; color: var(--dsh-accent); flex-shrink: 0; }
.dsh-attn-body { flex: 1; min-width: 0; }
.dsh-attn-body strong { font-size: 14px; display: block; }
.dsh-attn-body span { font-size: 12.5px; color: var(--dsh-muted); }
.dsh-attn-item.prio-alta .dsh-attn-icon { background: var(--tone-red-bg); color: var(--tone-red); }
.dsh-pill-time { font-size: 11.5px; color: var(--dsh-faint); }
.dsh-attn-cta { font-size: 13px; font-weight: 600; color: var(--dsh-accent); white-space: nowrap; }

/* ---- Acciones rápidas ---- */
.dsh-quick { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.dsh-quick a {
	display: flex; flex-direction: column; gap: 8px; padding: 16px;
	border-radius: var(--dsh-radius-sm); background: var(--dsh-surface);
	border: 1px solid var(--dsh-border); transition: border-color 0.12s, transform 0.1s;
}
.dsh-quick a:hover { border-color: var(--dsh-accent); transform: translateY(-1px); }
.dsh-quick i { color: var(--dsh-accent); font-size: 17px; }
.dsh-quick strong { font-size: 13.5px; }
.dsh-quick span { font-size: 12px; color: var(--dsh-muted); }
.dsh-quick a.urgent { border-color: #f0b429; background: #fffaf0; }

/* ---- Chips de filtro ---- */
.dsh-filters { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 18px; }
.dsh-filters button {
	height: 36px; padding: 0 15px; border-radius: 99px;
	border: 1px solid var(--dsh-border); background: var(--dsh-surface);
	font-size: 13px; font-weight: 500; color: var(--dsh-muted); cursor: pointer;
}
.dsh-filters button.is-active { background: var(--dsh-text); color: #fff; border-color: var(--dsh-text); }

/* ---- Publicaciones (cards) ---- */
.dsh-pubs { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.dsh-pub {
	display: flex; flex-direction: column;
	background: var(--dsh-surface); border: 1px solid var(--dsh-border);
	border-radius: var(--dsh-radius); overflow: hidden; box-shadow: var(--dsh-shadow);
}
.dsh-pub-media { position: relative; aspect-ratio: 16/9; background: var(--dsh-surface-2); }
.dsh-pub-media img { width: 100%; height: 100%; object-fit: cover; }
.dsh-pub-status {
	position: absolute; top: 12px; left: 12px;
	padding: 5px 11px; border-radius: 99px; font-size: 12px; font-weight: 600;
	background: rgba(255,255,255,0.95); color: var(--dsh-text); backdrop-filter: blur(4px);
}
.dsh-pub-status.st-publicada { color: var(--tone-green); }
.dsh-pub-status.st-pendiente { color: var(--tone-yellow); }
.dsh-pub-status.st-pausada { color: var(--dsh-muted); }
.dsh-pub-body { padding: 16px 18px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.dsh-pub-body h3 { font-size: 16px; font-weight: 700; letter-spacing: -0.2px; }
.dsh-pub-loc { font-size: 13px; color: var(--dsh-muted); }
.dsh-pub-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 12.5px; color: var(--dsh-muted); }
.dsh-pub-meta strong { color: var(--dsh-text); font-weight: 700; }
.dsh-pub-modo { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.dsh-pub-modo > span { font-size: 12px; color: var(--dsh-muted); }
.dsh-toggle { display: inline-flex; padding: 3px; background: var(--dsh-surface-2); border-radius: 99px; gap: 2px; }
.dsh-toggle button {
	border: none; background: transparent; padding: 6px 13px; border-radius: 99px;
	font-size: 12.5px; font-weight: 600; color: var(--dsh-muted); cursor: pointer;
}
.dsh-toggle button.is-active { background: #fff; color: var(--dsh-text); box-shadow: 0 1px 3px rgba(0,0,0,0.12); }
.dsh-pub-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; padding-top: 6px; }
.dsh-pub-actions a, .dsh-pub-actions button {
	font-size: 12.5px; font-weight: 600; color: var(--dsh-text);
	background: var(--dsh-surface-2); border: none; border-radius: 8px;
	padding: 7px 11px; cursor: pointer;
}
.dsh-pub-actions a:hover, .dsh-pub-actions button:hover { background: var(--dsh-border); }
.dsh-pub-actions .danger { color: var(--tone-red); }
.dsh-pub-actions form { display: inline; }

/* ---- Tablas ---- */
.dsh-table-wrap { overflow-x: auto; }
.dsh-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.dsh-table thead th {
	text-align: left; font-size: 11px; font-weight: 700; letter-spacing: 0.4px;
	text-transform: uppercase; color: var(--dsh-faint);
	padding: 0 14px 12px; border-bottom: 1px solid var(--dsh-border);
}
.dsh-table tbody td { padding: 14px; border-bottom: 1px solid var(--dsh-border); vertical-align: middle; }
.dsh-table tbody tr:last-child td { border-bottom: none; }
.dsh-table tbody tr:hover { background: var(--dsh-surface-2); }
.dsh-table small { display: block; font-size: 11.5px; color: var(--dsh-muted); margin-top: 3px; }
.dsh-table .num { font-weight: 700; }
.dsh-table-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.dsh-table-actions a, .dsh-table-actions button {
	font-size: 12px; font-weight: 600; padding: 6px 10px; border-radius: 8px;
	border: 1px solid var(--dsh-border); background: var(--dsh-surface); cursor: pointer; color: var(--dsh-text);
}
.dsh-table-actions .approve { background: var(--dsh-accent); color: #fff; border-color: var(--dsh-accent); }
.dsh-table-actions form { display: inline; }

.dsh-status { display: inline-flex; padding: 4px 10px; border-radius: 99px; font-size: 12px; font-weight: 600; background: var(--dsh-surface-2); color: var(--dsh-text); }
.dsh-verif-chip { display: inline-flex; align-items: center; gap: 5px; padding: 2px 8px; border-radius: 99px; font-size: 11px; font-weight: 600; margin-top: 4px; }
.dsh-verif-chip.is-ok { background: var(--tone-green-bg); color: var(--tone-green); }
.dsh-verif-chip.is-warning { background: var(--tone-yellow-bg); color: var(--tone-yellow); }
.dsh-verif-chip.is-neutral { background: var(--dsh-surface-2); color: var(--dsh-muted); }

.dsh-empty { text-align: center; padding: 40px 20px; color: var(--dsh-muted); }
.dsh-empty i { font-size: 30px; color: var(--dsh-faint); margin-bottom: 12px; display: block; }

/* ---- Calendario ---- */
.dsh-cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; }
.dsh-cal-head { margin-bottom: 8px; }
.dsh-cal-head span { text-align: center; font-size: 11px; font-weight: 700; letter-spacing: 0.4px; text-transform: uppercase; color: var(--dsh-faint); padding: 4px 0; }
.dsh-cal-blank { aspect-ratio: 1; }
.dsh-cal-day {
	aspect-ratio: 1; border-radius: 10px; border: 1px solid var(--dsh-border);
	display: flex; align-items: center; justify-content: center;
	font-size: 13px; font-weight: 600; background: var(--dsh-surface); position: relative;
}
.dsh-cal-day.st-reserved { background: var(--dsh-accent); color: #fff; border-color: var(--dsh-accent); }
.dsh-cal-day.st-pending { background: #fbf0dc; color: var(--tone-yellow); border-color: #f0d9a8; }
.dsh-cal-day.st-blocked { background: #f0f1f3; color: var(--dsh-faint); }
.dsh-cal-legend { display: flex; gap: 16px; margin-top: 16px; font-size: 12.5px; color: var(--dsh-muted); flex-wrap: wrap; }
.dsh-cal-legend span { display: inline-flex; align-items: center; gap: 6px; }
.dsh-cal-legend i { width: 12px; height: 12px; border-radius: 4px; display: inline-block; }

/* ---- Verificación (perfil) ---- */
.dsh-steps { display: flex; flex-direction: column; gap: 4px; }
.dsh-step { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: var(--dsh-radius-sm); background: var(--dsh-surface-2); }
.dsh-step i { width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; background: #e2e5e9; color: var(--dsh-faint); }
.dsh-step.is-done i { background: var(--tone-green-bg); color: var(--tone-green); }
.dsh-step span { font-size: 14px; }

/* ---- Wizard ---- */
.dsh-wizard-steps { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 14px; margin-bottom: 18px; border-bottom: 1px solid var(--dsh-border); }
.dsh-wizard-steps button {
	white-space: nowrap; padding: 7px 13px; border-radius: 99px; border: 1px solid var(--dsh-border);
	background: var(--dsh-surface); font-size: 12.5px; font-weight: 600; color: var(--dsh-muted); cursor: pointer;
}
.dsh-wizard-steps button.is-active { background: var(--dsh-accent); color: #fff; border-color: var(--dsh-accent); }
.dsh-wizard-step { display: none; }
.dsh-wizard-step.is-active { display: block; }
.dsh-wizard-step h3 { font-size: 17px; margin-bottom: 16px; }
.dsh-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.dsh-form-grid label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; color: var(--dsh-text); }
.dsh-form-grid label.is-wide { grid-column: 1 / -1; }
.dsh-form-grid input, .dsh-form-grid select, .dsh-form-grid textarea {
	height: 46px; padding: 0 14px; border: 1px solid var(--dsh-border); border-radius: 10px;
	font-size: 14px; font-weight: 400; background: var(--dsh-surface); color: var(--dsh-text);
}
.dsh-form-grid textarea { height: 90px; padding: 12px 14px; resize: vertical; }
.dsh-form-grid input:focus, .dsh-form-grid select:focus, .dsh-form-grid textarea:focus {
	outline: none; border-color: var(--dsh-accent); box-shadow: 0 0 0 3px rgba(55,149,125,0.15);
}
.dsh-choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dsh-choice-grid label {
	display: flex; align-items: center; gap: 10px; padding: 14px 16px;
	border: 1px solid var(--dsh-border); border-radius: 12px; font-size: 14px; cursor: pointer;
}
.dsh-choice-grid input { width: 18px; height: 18px; accent-color: var(--dsh-accent); }
.dsh-upload { text-align: center; padding: 34px; border: 2px dashed var(--dsh-border); border-radius: 14px; }
.dsh-upload i { font-size: 30px; color: var(--dsh-accent); margin-bottom: 12px; display: block; }
.dsh-upload strong { display: block; margin-bottom: 6px; }
.dsh-upload span { font-size: 13px; color: var(--dsh-muted); }
.dsh-review { text-align: center; padding: 30px; background: var(--dsh-surface-2); border-radius: 14px; }
.dsh-review strong { display: block; font-size: 17px; margin-bottom: 8px; }
.dsh-review span { display: block; font-size: 13.5px; color: var(--dsh-muted); margin-bottom: 18px; }
.dsh-review button, .dsh-wizard-actions button {
	height: 44px; padding: 0 22px; border-radius: 10px; font-size: 14px; font-weight: 600; cursor: pointer; border: none;
}
.dsh-review button { background: var(--dsh-accent); color: #fff; }
.dsh-wizard-actions { display: flex; justify-content: space-between; margin-top: 20px; }
.dsh-wizard-actions button { background: var(--dsh-surface); border: 1px solid var(--dsh-border); color: var(--dsh-text); }
.dsh-wizard-actions [data-step-next] { background: var(--dsh-text); color: #fff; border-color: var(--dsh-text); }
.dsh-map-hint { display: flex; align-items: center; gap: 8px; margin-top: 14px; font-size: 12.5px; color: var(--dsh-muted); }

/* ---- Drawer de notificaciones ---- */
.dsh-drawer {
	position: fixed; top: 0; right: 0; bottom: 0; width: 340px; max-width: 90vw;
	background: var(--dsh-surface); border-left: 1px solid var(--dsh-border);
	transform: translateX(100%); transition: transform 0.25s; z-index: 70; padding: 20px;
	box-shadow: var(--dsh-shadow-lg); overflow-y: auto;
}
.dsh.is-drawer-open .dsh-drawer { transform: translateX(0); }
.dsh-drawer-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.dsh-drawer-head strong { font-size: 16px; }
.dsh-drawer-head button { width: 32px; height: 32px; border-radius: 8px; border: 1px solid var(--dsh-border); background: var(--dsh-surface); cursor: pointer; }
.dsh-notif { display: flex; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--dsh-border); }
.dsh-notif i { width: 34px; height: 34px; border-radius: 9px; background: var(--dsh-surface-2); color: var(--dsh-accent); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.dsh-notif strong { font-size: 13.5px; display: block; }
.dsh-notif span { font-size: 12.5px; color: var(--dsh-muted); display: block; }
.dsh-notif small { font-size: 11.5px; color: var(--dsh-faint); }

/* ---- Bottom nav (mobile) ---- */
.dsh-bottom-nav { display: none; }

/* ================= RESPONSIVE ================= */
@media (max-width: 1024px) {
	.dsh-sidebar { transform: translateX(-100%); box-shadow: var(--dsh-shadow-lg); }
	.dsh.is-menu-open .dsh-sidebar { transform: translateX(0); }
	.dsh-main { margin-left: 0; }
	.dsh-hamburger { display: flex; align-items: center; justify-content: center; }
	.dsh-search { display: none; }
	.dsh-kpis { grid-template-columns: repeat(2, 1fr); }
	.dsh-grid-2, .dsh-grid-2.rev { grid-template-columns: 1fr; }
	.dsh-quick { grid-template-columns: repeat(2, 1fr); }
	.dsh-pubs { grid-template-columns: 1fr; }
	.dsh-super-hero { align-items: flex-start; }
	.dsh-super-actions { flex-direction: column; }
	.dsh-super-toolbar { top: 65px; align-items: stretch; flex-direction: column; }
	.dsh-super-toolbar label { min-width: 0; width: 100%; }
	.dsh-global-secondary { grid-template-columns: 1fr; }
	.dsh-onboarding {
		min-height: auto;
		grid-template-columns: minmax(0, 1.2fr) minmax(240px, .8fr);
		gap: 42px;
		padding: 48px;
	}
}

@media (max-width: 800px) {
	.dsh-topbar { gap: 9px; padding-left: 14px; padding-right: 14px; }
	.dsh-topbar-spacer { min-width: 0; }
	.dsh-new-btn span, .dsh-admin-btn span, .dsh-userchip strong, .dsh-userchip span { display: none; }
	.dsh-new-btn, .dsh-admin-btn { width: 40px; padding: 0; justify-content: center; flex: 0 0 40px; }
	.dsh-userchip { flex: 0 0 38px; }
}

@media (max-width: 640px) {
	.dsh-topbar { padding: 12px 16px; gap: 10px; }
	.dsh-topbar-title .eyebrow { display: none; }
	.dsh-topbar-title h1 { font-size: 16px; }
	.dsh-content { padding: 18px 16px 96px; }
	.dsh-new-btn span, .dsh-admin-btn span { display: none; }
	.dsh-new-btn, .dsh-admin-btn { padding: 0; width: 40px; justify-content: center; }
	.dsh-userchip strong, .dsh-userchip span { display: none; }
	.dsh-kpis { grid-template-columns: repeat(2, 1fr); gap: 10px; }
	.dsh-kpi-value { font-size: 22px; }
	.dsh-quick { grid-template-columns: 1fr; }
	.dsh-hero { flex-direction: column; align-items: flex-start; }
	.dsh-hero-actions { width: 100%; }
	.dsh-hero-actions a { flex: 1; justify-content: center; }
	.dsh-form-grid, .dsh-choice-grid { grid-template-columns: 1fr; }
	.dsh-onboarding {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 32px;
		padding: 34px 24px 28px;
		border-radius: 22px;
	}
	.dsh-onboarding-main h2 {
		font-size: 39px;
		line-height: 1.02;
		letter-spacing: -1.8px;
	}
	.dsh-onboarding-lead {
		margin-top: 17px !important;
		font-size: 15.5px;
		line-height: 1.58;
	}
	.dsh-onboarding-cta {
		width: 100%;
		margin-top: 24px;
	}
	.dsh-onboarding-preview {
		display: none;
	}
	.dsh-onboarding-steps {
		display: grid;
		grid-template-columns: 1fr;
		width: 100%;
	}
	.dsh-onboarding-steps li,
	.dsh-onboarding-steps li + li {
		padding: 18px 0;
		border-left: 0;
		border-bottom: 1px solid #dfe9e5;
	}
	.dsh-onboarding-steps li:last-child {
		padding-bottom: 0;
		border-bottom: 0;
	}

	/* Tablas → cards apiladas */
	.dsh-table thead { display: none; }
	.dsh-table, .dsh-table tbody, .dsh-table tr, .dsh-table td { display: block; width: 100%; }
	.dsh-table tr { border: 1px solid var(--dsh-border); border-radius: 12px; margin-bottom: 12px; padding: 6px 4px; }
	.dsh-table tbody td { border: none; padding: 8px 14px; display: flex; justify-content: space-between; gap: 14px; text-align: right; }
	.dsh-table tbody td { min-width: 0; overflow-wrap: anywhere; word-break: break-word; }
	.dsh-table tbody td::before {
		content: attr(data-label); font-size: 12px; font-weight: 600; color: var(--dsh-muted);
		text-align: left; flex-shrink: 0;
	}
	.dsh-table td small { text-align: right; }
	.dsh-table-actions { justify-content: flex-end; max-width: 68%; }
	.dsh-super-hero { padding: 20px; flex-direction: column; }
	.dsh-super-hero h2 { font-size: 21px; }
	.dsh-super-actions { width: 100%; flex-direction: row; }
	.dsh-super-actions a { flex: 1; justify-content: center; }
	.dsh-super-toolbar { position: static; }
	.dsh-global-head { align-items: flex-start; }
	.dsh-global-head > a { white-space: normal; text-align: right; }
	.dsh-global-block .dsh-table-wrap { max-height: none; }
	.dsh-global-list > a, .dsh-global-list > div { padding: 11px 14px; }
	.dsh-global-list > a > span:last-child, .dsh-global-list time { max-width: 92px; }

	/* Bottom nav */
	.dsh-bottom-nav {
		display: flex; position: fixed; bottom: 0; left: 0; right: 0; z-index: 50;
		background: var(--dsh-surface); border-top: 1px solid var(--dsh-border);
		padding: 8px 4px calc(8px + env(safe-area-inset-bottom, 0));
	}
	.dsh-bottom-nav a {
		flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px;
		font-size: 10.5px; color: var(--dsh-muted); padding: 4px 0;
	}
	.dsh-bottom-nav a i { font-size: 17px; }
	.dsh-bottom-nav a.is-active { color: var(--dsh-accent); }
	.dsh-bottom-nav-onboarding {
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0));
		background: rgba(255,255,255,.96);
		backdrop-filter: blur(12px);
	}
	.dsh-bottom-nav-onboarding a {
		min-height: 48px;
		flex-direction: row;
		justify-content: center;
		gap: 9px;
		border-radius: 12px;
		background: #173e35;
		color: #fff;
		font-size: 14px;
		font-weight: 700;
	}
	.dsh-bottom-nav-onboarding a i { font-size: 14px; }
}

@media (min-width: 641px) and (max-width: 1024px) {
	.dsh-kpis { grid-template-columns: repeat(2, 1fr); }
}

/* Tags de huésped en la fila de reservas (evita wrap feo en mobile) */
.dsh-guest-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 5px; }
@media (max-width: 640px) { .dsh-guest-tags { justify-content: flex-end; } }

/* ── Gestión de calendario: formulario de bloqueo + lista ──────── */
.dsh-block-form { display: flex; flex-direction: column; gap: 12px; }
.dsh-block-form label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; color: var(--dsh-text); }
.dsh-block-form input, .dsh-block-form select {
	height: 44px; padding: 0 13px; border: 1px solid var(--dsh-border); border-radius: 10px;
	font-size: 14px; font-weight: 400; background: var(--dsh-surface); color: var(--dsh-text);
}
.dsh-block-form input:focus, .dsh-block-form select:focus {
	outline: none; border-color: var(--dsh-accent); box-shadow: 0 0 0 3px rgba(55,149,125,0.15);
}
.dsh-block-dates { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.dsh-block-submit {
	height: 46px; border: none; border-radius: 10px; background: var(--dsh-text); color: #fff;
	font-size: 14px; font-weight: 600; cursor: pointer; margin-top: 4px;
}
.dsh-block-submit:hover { background: #000; }

.dsh-block-list { display: flex; flex-direction: column; gap: 10px; }
.dsh-block-item {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	padding: 12px 14px; background: var(--dsh-surface-2); border-radius: 12px;
}
.dsh-block-item strong { font-size: 14px; display: block; }
.dsh-block-item span { font-size: 12.5px; color: var(--dsh-muted); }
.dsh-block-tag {
	display: inline-block; padding: 1px 8px; border-radius: 99px; font-size: 11px; font-weight: 600;
	background: #e2e5e9; color: var(--dsh-muted);
}
.dsh-block-tag.is-ext { background: var(--tone-green-bg); color: var(--tone-green); }
.dsh-block-item button {
	border: 1px solid var(--dsh-border); background: var(--dsh-surface); color: var(--tone-red);
	font-size: 12.5px; font-weight: 600; padding: 7px 12px; border-radius: 8px; cursor: pointer; white-space: nowrap;
}
.dsh-block-item button:hover { border-color: var(--tone-red); }

/* ================= CALENDARIO INTERACTIVO ================= */
.dsh-cal-toolbar { display: flex; align-items: center; gap: 10px; }
.dsh-cal-toolbar select {
	height: 38px; padding: 0 12px; border: 1px solid var(--dsh-border); border-radius: 10px;
	background: var(--dsh-surface); font-size: 13.5px; font-weight: 500; color: var(--dsh-text); cursor: pointer;
}
.dsh-view-toggle { display: inline-flex; background: var(--dsh-surface-2); border-radius: 99px; padding: 3px; }
.dsh-view-toggle button {
	border: none; background: transparent; padding: 7px 15px; border-radius: 99px;
	font-size: 13px; font-weight: 600; color: var(--dsh-muted); cursor: pointer;
}
.dsh-view-toggle button.is-active { background: #fff; color: var(--dsh-text); box-shadow: 0 1px 3px rgba(0,0,0,.12); }

.dsh-cal-nav { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.dsh-cal-nav button {
	width: 36px; height: 36px; border: 1px solid var(--dsh-border); background: var(--dsh-surface);
	border-radius: 9px; cursor: pointer; color: var(--dsh-text); font-size: 13px;
}
.dsh-cal-nav button:hover { border-color: var(--dsh-accent); color: var(--dsh-accent); }
.dsh-cal-nav strong { font-size: 15.5px; font-weight: 700; min-width: 170px; }
.dsh-cal-hint { margin-left: auto; font-size: 12.5px; color: var(--dsh-muted); display: inline-flex; align-items: center; gap: 6px; }

.dsh-cal2 { display: flex; gap: 30px; flex-wrap: wrap; user-select: none; touch-action: none; }
.dsh-cal-m { flex: 1; min-width: 250px; }
.dsh-cal-m-title { font-size: 14px; font-weight: 700; text-align: center; margin-bottom: 12px; }
.dsh-cal-dow { display: grid; grid-template-columns: repeat(7, 1fr); margin-bottom: 4px; }
.dsh-cal-dow span { text-align: center; font-size: 11px; font-weight: 600; color: var(--dsh-faint); }
.dsh-cal-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.dsh-cal-x { aspect-ratio: 1; }
.dsh-cal-d {
	aspect-ratio: 1; display: flex; align-items: center; justify-content: center;
	border-radius: 9px; font-size: 13px; font-weight: 600; border: 1px solid var(--dsh-border);
	background: #fff; color: var(--dsh-text); cursor: pointer; transition: background .1s, box-shadow .1s;
}
.dsh-cal-d:hover { border-color: var(--dsh-accent); }
.dsh-cal-d.st-reserved { background: var(--dsh-accent); color: #fff; border-color: var(--dsh-accent); }
.dsh-cal-d.st-external { background: #c9e7dd; color: var(--dsh-accent-dark); border-color: var(--dsh-accent); }
.dsh-cal-d.st-pending { background: #fbf0dc; color: var(--tone-yellow); border-color: #f0d9a8; }
.dsh-cal-d.st-blocked { background: #e9ebee; color: var(--dsh-muted); }
.dsh-cal-d.is-locked { cursor: not-allowed; }
.dsh-cal-d.is-past { opacity: .35; cursor: default; pointer-events: none; }
.dsh-cal-d.is-today { box-shadow: inset 0 0 0 1.5px var(--dsh-text); }
.dsh-cal-d.is-sel { box-shadow: inset 0 0 0 2px var(--dsh-accent); background: var(--dsh-accent-soft); color: var(--dsh-accent-dark); }

/* Vista año (12 mini meses) */
.dsh-cal2.is-year { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.dsh-cal-mini { padding: 10px; border-radius: 12px; cursor: pointer; border: 1px solid transparent; }
.dsh-cal-mini:hover { background: var(--dsh-surface-2); border-color: var(--dsh-border); }
.dsh-cal-mini-t { font-size: 12.5px; font-weight: 700; text-align: center; margin-bottom: 8px; }
.dsh-cal-mini-g { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.dsh-cal-mini-g i { aspect-ratio: 1; border-radius: 2px; background: #fff; border: 1px solid var(--dsh-border); }
.dsh-cal-mini-g i.st-reserved { background: var(--dsh-accent); border-color: var(--dsh-accent); }
.dsh-cal-mini-g i.st-external { background: #c9e7dd; border-color: var(--dsh-accent); }
.dsh-cal-mini-g i.st-pending { background: #f7e3bf; border-color: #f0d9a8; }
.dsh-cal-mini-g i.st-blocked { background: #e2e5e9; border-color: #e2e5e9; }

/* Barra de acción de selección */
.dsh-cal-actionbar[hidden] { display: none; }
.dsh-cal-actionbar {
	position: sticky; bottom: 16px; margin-top: 18px; z-index: 30;
	display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
	padding: 14px 18px; background: var(--dsh-text); color: #fff;
	border-radius: 14px; box-shadow: var(--dsh-shadow-lg);
}
.dsh-cal-ab-info { flex: 1; min-width: 160px; }
.dsh-cal-ab-info strong { font-size: 14.5px; display: block; }
.dsh-cal-ab-info span { font-size: 12px; opacity: .72; }
.dsh-cal-actionbar select {
	height: 40px; border: none; border-radius: 10px; padding: 0 12px; font-size: 13px; cursor: pointer;
}
.dsh-cal-actionbar button { height: 40px; padding: 0 18px; border-radius: 10px; font-size: 14px; font-weight: 600; cursor: pointer; border: none; }
.dsh-cal-ab-block { background: var(--dsh-accent); color: #fff; }
.dsh-cal-ab-block:hover { background: var(--dsh-accent-dark); }
.dsh-cal-ab-free { background: #fff; color: var(--dsh-text); }
.dsh-cal-ab-cancel { width: 40px; padding: 0; background: rgba(255,255,255,.14); color: #fff; }

@media (max-width: 640px) {
	.dsh-cal-hint { display: none; }
	.dsh-cal-m-title { display: none; }
	.dsh-cal-nav strong { min-width: 0; flex: 1; text-align: center; font-size: 14px; }
	.dsh-cal2.is-year { grid-template-columns: repeat(2, 1fr); gap: 12px; }
	.dsh-cal-actionbar { flex-direction: column; align-items: stretch; }
	.dsh-cal-actionbar button, .dsh-cal-actionbar select { width: 100%; }
	.dsh-cal-ab-cancel { position: absolute; top: 10px; right: 10px; width: 32px; height: 32px; }
}

/* ================= FORMULARIO DE PUBLICACIÓN (moderno) ================= */
.dsh-form-cancel { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 600; color: var(--dsh-muted); }
.dsh-form-cancel:hover { color: var(--dsh-accent); }

.dsh-form-layout { display: grid; grid-template-columns: 1fr 300px; gap: 20px; align-items: start; }
.dsh-form-main { display: flex; flex-direction: column; gap: 16px; }
.dsh-form-aside { position: sticky; top: 82px; }

.dsh-fs { background: var(--dsh-surface); border: 1px solid var(--dsh-border); border-radius: var(--dsh-radius); padding: 22px 24px; box-shadow: var(--dsh-shadow); }
.dsh-fs-head { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 18px; }
.dsh-fs-num { width: 26px; height: 26px; border-radius: 50%; background: var(--dsh-accent-soft); color: var(--dsh-accent-dark); font-size: 13px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.dsh-fs-head h3 { font-size: 16px; font-weight: 700; }
.dsh-fs-head p { font-size: 12.5px; color: var(--dsh-muted); margin-top: 2px; }
.dsh-lbl { display: block; font-size: 13px; font-weight: 600; margin-bottom: 10px; color: var(--dsh-text); }

/* Tiles de tipo */
.dsh-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.dsh-tile { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 16px 10px; border: 1px solid var(--dsh-border); border-radius: 12px; cursor: pointer; text-align: center; transition: border-color .12s, background .12s; }
.dsh-tile input { display: none; }
.dsh-tile i { font-size: 20px; color: var(--dsh-muted); }
.dsh-tile span { font-size: 12.5px; font-weight: 600; }
.dsh-tile.is-on { border-color: var(--dsh-accent); background: var(--dsh-accent-soft); }
.dsh-tile.is-on i { color: var(--dsh-accent-dark); }

/* Opciones de modalidad */
.dsh-opts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.dsh-opt { padding: 14px 16px; border: 1px solid var(--dsh-border); border-radius: 12px; cursor: pointer; transition: border-color .12s, background .12s; }
.dsh-opt input { display: none; }
.dsh-opt strong { display: block; font-size: 14px; }
.dsh-opt span { font-size: 12px; color: var(--dsh-muted); }
.dsh-opt.is-on { border-color: var(--dsh-accent); background: var(--dsh-accent-soft); }

/* Switches */
.dsh-switches { display: flex; flex-wrap: wrap; gap: 22px; margin-top: 16px; }
.dsh-switch { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; font-size: 14px; font-weight: 500; }
.dsh-switch input { display: none; }
.dsh-switch-tr { width: 42px; height: 24px; border-radius: 99px; background: #d5d8dd; position: relative; transition: background .15s; flex-shrink: 0; }
.dsh-switch-tr::after { content: ''; position: absolute; top: 2px; left: 2px; width: 20px; height: 20px; border-radius: 50%; background: #fff; transition: transform .15s; box-shadow: 0 1px 2px rgba(0,0,0,.2); }
.dsh-switch input:checked + .dsh-switch-tr { background: var(--dsh-accent); }
.dsh-switch input:checked + .dsh-switch-tr::after { transform: translateX(18px); }

/* Chips de servicios */
.dsh-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.dsh-chip { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border: 1px solid var(--dsh-border); border-radius: 99px; cursor: pointer; font-size: 13px; font-weight: 500; transition: border-color .12s, background .12s; }
.dsh-chip input { display: none; }
.dsh-chip i { color: var(--dsh-muted); font-size: 13px; }
.dsh-chip.is-on { border-color: var(--dsh-accent); background: var(--dsh-accent-soft); color: var(--dsh-accent-dark); }
.dsh-chip.is-on i { color: var(--dsh-accent-dark); }

/* Vista previa en vivo */
.dsh-preview { background: var(--dsh-surface); border: 1px solid var(--dsh-border); border-radius: var(--dsh-radius); overflow: hidden; box-shadow: var(--dsh-shadow); }
.dsh-preview-media { aspect-ratio: 16/10; background: var(--dsh-surface-2); display: flex; align-items: center; justify-content: center; color: var(--dsh-faint); font-size: 30px; }
.dsh-preview-body { padding: 14px 16px; display: flex; flex-direction: column; gap: 4px; }
.dsh-preview-body strong { font-size: 15px; }
.dsh-preview-body > span { font-size: 12.5px; color: var(--dsh-muted); }
.dsh-preview-price { font-weight: 700 !important; color: var(--dsh-text) !important; font-size: 13.5px !important; margin-top: 4px; }
.dsh-preview-note { padding: 0 16px 16px; font-size: 11.5px; color: var(--dsh-faint); }

/* Barra fija de guardar */
.dsh-form-bar { position: sticky; bottom: 16px; margin-top: 18px; z-index: 25; display: flex; justify-content: flex-end; gap: 14px; align-items: center; padding: 13px 18px; background: var(--dsh-surface); border: 1px solid var(--dsh-border); border-radius: 14px; box-shadow: var(--dsh-shadow-lg); }
.dsh-form-bar-cancel { font-size: 14px; font-weight: 600; color: var(--dsh-muted); padding: 0 10px; }
.dsh-form-bar-save { height: 44px; padding: 0 26px; border: none; border-radius: 10px; background: var(--dsh-accent); color: #fff; font-size: 14.5px; font-weight: 600; cursor: pointer; }
.dsh-form-bar-save:hover { background: var(--dsh-accent-dark); }

@media (max-width: 1024px) {
	.dsh-form-layout { grid-template-columns: 1fr; }
	.dsh-form-aside { position: static; }
}
@media (max-width: 640px) {
	.dsh-form-aside { display: none; }
	.dsh-tiles { grid-template-columns: repeat(2, 1fr); }
	.dsh-opts { grid-template-columns: 1fr; }
	.dsh-form-bar { flex-direction: column-reverse; }
	.dsh-form-bar-save { width: 100%; }
	.dsh-form-bar-cancel { width: 100%; text-align: center; padding: 8px; }
}
.lh-owner-chat {
	max-height: 360px;
	margin: 16px 0;
	padding: 14px;
	overflow-y: auto;
	background: #f8faf9;
	border: 1px solid #e1e7e4;
	border-radius: 10px;
}

.lh-owner-chat-bubble {
	width: fit-content;
	max-width: 88%;
	margin: 0 0 10px;
	padding: 10px 12px;
	background: #fff;
	border: 1px solid #dde5e1;
	border-radius: 4px 11px 11px;
}

.lh-owner-chat-bubble.is-own {
	margin-left: auto;
	background: #eaf4f0;
	border-color: #cbe3da;
	border-radius: 11px 4px 11px 11px;
}

.lh-owner-chat-bubble small,
.lh-owner-chat-bubble time {
	color: #73807b;
	font-size: 10px;
}

.lh-owner-chat-bubble p { margin: 4px 0; font-size: 13px; line-height: 1.45; }
