/*
 * Social Media Lawyers — Portal de Membresía
 *
 * Diseño sobrio a ancho completo (estructura de la maqueta del 2026-09-30)
 * con la imagen corporativa de Social Media Lawyers (2026-10-26): azul
 * marino #1D2846 y sus tonos, un solo acento dorado #DFC689 (los botones
 * llevan texto azul marino), grises de la marca para el texto, League
 * Spartan (títulos y cifras) + Arimo (texto). Superficies planas, sin
 * brillos ni degradados; menú lateral en computador y barra inferior en
 * celular.
 *
 * El panel ocupa todo el ancho de la ventana aunque el tema lo encierre
 * en un contenedor (margen negativo calculado; --sml-sbw lo ajusta el JS
 * con el ancho de la barra de desplazamiento). Recomendado además: en
 * Kadence, poner la página en diseño "Fullwidth" y sin título.
 *
 * "all: initial" aísla el panel de los estilos globales del tema.
 */

body.sml-portal-page{ overflow-x:clip; }

.sml-portal-app{
	--sml-bg:#141c33;
	--sml-side:#18203a;
	--sml-card:#1d2846;
	--sml-card-2:#232f52;
	--sml-card-hover:#212c4c;
	--sml-border:#2b3758;
	--sml-border-soft:#252f4e;
	--sml-border-strong:#3a4870;
	--sml-navy-mid:#26335a;
	--sml-gold:#dfc689;
	--sml-gold-bright:#e9d6a3;
	--sml-gold-light:#e6d3a1;
	--sml-navy-soft:#2e3a5f;
	--sml-gold-ink:#f0e2be;
	--sml-on-gold:#1d2846;
	--sml-silver:#d5d6d4;
	--sml-silver-bright:#f4f4f2;
	--sml-ink:#f4f4f2;
	--sml-text:#b9bdc9;
	--sml-muted:#a3a6b0;
	--sml-green:#3ecf8e;
	--sml-green-soft:#0f3a2c;
	--sml-green-ink:#6fe0ae;
	--sml-amber:#f0c26b;
	--sml-amber-soft:#3a2a0c;
	--sml-red:#ff9d97;
	--sml-red-soft:#3a1616;
	--sml-radius:14px;
	--sml-radius-sm:10px;
	--sml-display:'League Spartan', 'Arimo', Helvetica, Arial, sans-serif;
	--sml-sans:'Arimo', 'Helvetica Neue', Helvetica, Arial, sans-serif;

	all:initial;
	display:block;
	position:relative;
	box-sizing:border-box;
	width:calc(100vw - var(--sml-sbw, 0px));
	max-width:none;
	margin-left:calc(50% - 50vw + var(--sml-sbw, 0px) / 2);
	font-family:var(--sml-sans);
	font-size:15px;
	line-height:1.55;
	color:var(--sml-ink);
	background:var(--sml-bg);
	min-height:100vh;
	text-align:left;
}
.sml-portal-app *, .sml-portal-app *::before, .sml-portal-app *::after{ box-sizing:border-box; }
.sml-portal-app a{ color:var(--sml-gold-light); text-decoration:none; }
.sml-portal-app a:hover{ color:#f0e2be; }
.sml-portal-app button{ font-family:inherit; cursor:pointer; }
.sml-portal-app ul, .sml-portal-app ol{ margin:0; padding:0; list-style:none; }
.sml-portal-app h1, .sml-portal-app h2, .sml-portal-app h3, .sml-portal-app h4{
	font-family:var(--sml-sans); font-weight:700; margin:0; color:var(--sml-ink); line-height:1.25;
}
.sml-portal-app p{ margin:0 0 10px; color:var(--sml-text); }
.sml-portal-app strong{ color:var(--sml-ink); }
.sml-portal-app svg{ flex-shrink:0; }
.sml-portal-app :focus-visible{ outline:2px solid var(--sml-gold-light); outline-offset:2px; }

/* ---------- Estructura: menú lateral + contenido ---------- */
.sml-shell{ display:grid; grid-template-columns:264px minmax(0, 1fr); }
.sml-sidebar{
	position:sticky; top:0; height:100vh; align-self:start;
	display:flex; flex-direction:column; gap:30px;
	padding:28px 18px; background:var(--sml-side); border-right:1px solid var(--sml-border-soft);
}
.sml-brand{ display:flex; align-items:center; gap:12px; padding:0 8px; }
.sml-brand-mark{
	width:40px; height:40px; flex-shrink:0; border-radius:10px;
	background:var(--sml-navy-mid) url(../img/sml-isotipo-blanco.png) center / 74% no-repeat;
	box-shadow:0 0 0 1px rgba(223,198,137,0.45);
}
.sml-brand-text{ display:flex; flex-direction:column; gap:2px; }
.sml-brand-text strong{ font-size:14px; font-weight:700; letter-spacing:0.14em; }
.sml-brand-text span{ font-size:12px; color:var(--sml-muted); }

.sml-nav{ display:flex; flex-direction:column; gap:4px; }
.sml-tab{
	display:flex; align-items:center; gap:12px; width:100%;
	padding:11px 14px; border-radius:var(--sml-radius-sm); border:0; background:transparent;
	color:var(--sml-text); font-size:14.5px; font-weight:500; text-align:left;
	transition:background .15s ease, color .15s ease;
}
.sml-tab:hover{ background:rgba(255,255,255,0.04); color:var(--sml-ink); }
.sml-tab.is-active{ background:#26335a; color:var(--sml-ink); font-weight:600; }
.sml-tab .sml-tab-label{ flex-grow:1; }
.sml-tab-badge{
	padding:2px 8px; border-radius:999px; background:var(--sml-gold); color:var(--sml-on-gold);
	font-size:12px; font-weight:700; line-height:1.4;
}
.sml-tab-badge[hidden]{ display:none; }

.sml-sidebar-foot{
	margin-top:auto; display:flex; align-items:center; gap:12px;
	padding:16px 8px 0; border-top:1px solid var(--sml-border-soft);
}
.sml-avatar{
	width:36px; height:36px; border-radius:50%; background:#2b3866; flex-shrink:0;
	display:flex; align-items:center; justify-content:center; overflow:hidden;
	font-size:13px; font-weight:700; color:var(--sml-silver);
}
.sml-avatar img{ width:100%; height:100%; object-fit:cover; }
.sml-avatar-lg{ width:52px; height:52px; font-size:16px; }
.sml-sidebar-user{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.sml-sidebar-user strong{ font-size:14px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sml-sidebar-user span, .sml-sidebar-user a{ font-size:12.5px; color:var(--sml-muted); }

.sml-main{ min-width:0; padding:44px 56px 56px; display:flex; flex-direction:column; }
.sml-mobile-head{ display:none; }

.sml-panel{ display:flex; flex-direction:column; gap:28px; }
.sml-panel[hidden]{ display:none; }

.sml-page-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.sml-page-head-text{ display:flex; flex-direction:column; gap:6px; }
.sml-eyebrow{ font-size:13px; color:var(--sml-muted); letter-spacing:0.04em; }
.sml-page-title{
	font-family:var(--sml-display) !important; font-size:38px !important; font-weight:700 !important; line-height:1.1 !important;
}
.sml-page-lead{ margin:0 !important; font-size:15.5px; color:var(--sml-text); max-width:760px; }
.sml-chips{ display:flex; gap:10px; flex-wrap:wrap; }

/* ---------- Tarjetas, cuadrículas y estados ---------- */
.sml-card{
	padding:24px; border-radius:var(--sml-radius); background:var(--sml-card); border:1px solid var(--sml-border);
}
.sml-card-title{ font-size:17px !important; font-weight:700 !important; margin-bottom:16px !important; }
.sml-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:16px; }
.sml-stats{ display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:16px; }
.sml-stat{ display:flex; flex-direction:column; gap:10px; padding:22px; border-radius:var(--sml-radius); background:var(--sml-card); border:1px solid var(--sml-border); }
.sml-stat-label{ font-size:13px; color:var(--sml-muted); }
.sml-stat-value{ font-family:var(--sml-display); font-size:30px; font-weight:700; line-height:1.1; color:var(--sml-ink); }
.sml-stat-value small{ font-family:var(--sml-sans); font-size:14px; font-weight:500; color:var(--sml-text); margin-left:6px; }
.sml-stat-sub{ font-size:13px; color:var(--sml-text); }
.sml-bar{ height:6px; border-radius:3px; background:var(--sml-border); overflow:hidden; }
.sml-bar > span{ display:block; height:100%; border-radius:3px; background:var(--sml-gold-light); transition:width .3s ease; }
.sml-split{ display:grid; grid-template-columns:minmax(0, 2fr) minmax(0, 1fr); gap:16px; align-items:start; }
.sml-split-even{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px; }

.sml-loading, .sml-empty{
	display:flex; align-items:center; justify-content:center; gap:10px; text-align:center;
	padding:36px 20px; color:var(--sml-muted); font-size:14px;
}
.sml-empty{ border:1px dashed #34416a; border-radius:12px; flex-direction:column; }
.sml-spinner{
	width:18px; height:18px; border-radius:50%;
	border:2px solid rgba(223,198,137,0.25); border-top-color:var(--sml-gold-light);
	animation:sml-spin 0.8s linear infinite;
}
@keyframes sml-spin{ to{ transform:rotate(360deg); } }

.sml-notice{
	display:flex; align-items:center; gap:16px; flex-wrap:wrap;
	padding:16px 18px; border-radius:12px; border:1px solid var(--sml-border-strong); background:var(--sml-card);
	font-size:14px; color:var(--sml-silver);
}
.sml-notice > span{ flex-grow:1; }
.sml-notice-warn{ border-color:#5a4418; background:#1b1508; color:#f3d9a4; }
.sml-notice-danger{ border-color:#5a2424; background:#1c0e0e; color:#ffd2ce; }

.sml-check-list{ display:flex; flex-direction:column; gap:12px; font-size:14px; color:var(--sml-silver); }
.sml-check-list li{ display:flex; gap:10px; align-items:flex-start; }
.sml-check-list li svg{ margin-top:2px; color:var(--sml-gold-light); }
.sml-check-list li.is-muted{ color:var(--sml-text); }
.sml-check-list li.is-muted svg{ color:var(--sml-muted); }

/* ---------- Botones ---------- */
.sml-btn{
	display:inline-flex; align-items:center; justify-content:center; gap:9px;
	padding:12px 20px; border-radius:var(--sml-radius-sm); border:1px solid var(--sml-gold);
	background:var(--sml-gold); color:var(--sml-on-gold) !important; font-size:14.5px; font-weight:600; line-height:1.2;
	text-decoration:none; transition:background .15s ease, border-color .15s ease;
}
.sml-btn:hover{ background:var(--sml-gold-bright); border-color:var(--sml-gold-bright); color:var(--sml-on-gold) !important; }
.sml-btn:disabled, .sml-btn[aria-disabled="true"]{ background:#2a3352; border-color:#2a3352; color:#8c91a3 !important; cursor:not-allowed; }
.sml-btn-ghost{ background:transparent; border-color:var(--sml-border-strong); color:var(--sml-ink) !important; }
.sml-btn-ghost:hover{ background:rgba(255,255,255,0.04); border-color:#4a5884; }
.sml-btn-ghost:disabled{ background:transparent; border-color:var(--sml-border); }
.sml-btn-danger{ background:transparent; border-color:#6a2c2c; color:var(--sml-red) !important; }
.sml-btn-danger:hover{ background:var(--sml-red-soft); border-color:#8a3636; }
.sml-btn-link{ background:none; border:0; padding:0; color:var(--sml-gold-light) !important; font-weight:600; font-size:13.5px; }
.sml-btn-link:hover{ background:none; text-decoration:underline; }
.sml-btn-sm{ padding:9px 15px; font-size:13.5px; }
.sml-btn-block{ width:100%; }
.sml-icon-btn{
	display:inline-flex; padding:8px; border-radius:8px; border:1px solid var(--sml-border-strong);
	background:transparent; color:var(--sml-silver);
}
.sml-icon-btn:hover{ background:rgba(255,255,255,0.05); }

/* ---------- Formularios ---------- */
.sml-field{ display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.sml-field > label, .sml-label{ font-size:13px; font-weight:600; color:var(--sml-silver); }
.sml-field-help{ font-size:12.5px; color:var(--sml-muted); }
.sml-input, .sml-select, .sml-textarea{
	width:100%; padding:11px 12px; border-radius:var(--sml-radius-sm);
	border:1px solid #34416a !important; background:var(--sml-side) !important; color:var(--sml-ink) !important;
	font-family:var(--sml-sans) !important; font-size:14.5px !important; line-height:1.45; outline:none; box-shadow:none !important;
	transition:border-color .15s ease;
	/* !important: algunos temas imponen inputs claros con texto oscuro. */
}
.sml-input:focus, .sml-select:focus, .sml-textarea:focus{ border-color:var(--sml-gold-light) !important; }
.sml-input[readonly]{ color:var(--sml-text) !important; }
.sml-textarea{ resize:vertical; min-height:84px; }
/* Lista desplegable: colores fijos y !important porque el tema pinta las
   opciones con texto oscuro y quedaban casi invisibles sobre el fondo azul. */
.sml-select{ color-scheme:dark; }
.sml-select optgroup{ background:#1d2846 !important; color:#ffffff !important; font-weight:700; font-style:normal; }
.sml-select option{ background:#1d2846 !important; color:#f4f4f2 !important; font-weight:400; }
.sml-select option:disabled{ color:#a3a6b0 !important; }
.sml-select option:checked{ background:#3a4870 !important; color:#ffffff !important; }
.sml-checkbox{ display:flex; gap:10px; align-items:flex-start; font-size:14px; color:var(--sml-silver); cursor:pointer; }
.sml-checkbox input{ width:18px; height:18px; margin-top:2px; accent-color:var(--sml-gold-bright); flex-shrink:0; }
.sml-form-grid{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:0 12px; }
.sml-form-grid .sml-field-wide{ grid-column:1 / -1; }

/* ---------- Filas y estados ---------- */
.sml-row-list{ display:flex; flex-direction:column; gap:10px; }
.sml-row{
	display:flex; align-items:center; gap:18px; flex-wrap:wrap;
	padding:16px 18px; border-radius:12px; background:var(--sml-side); border:1px solid var(--sml-border-soft);
}
.sml-row-main{ flex-grow:1; display:flex; flex-direction:column; gap:3px; min-width:200px; }
.sml-row-title{ font-size:15px; font-weight:600; color:var(--sml-ink); }
.sml-row-sub{ font-size:13px; color:var(--sml-muted); }
.sml-row-actions{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.sml-code{ font-family:ui-monospace, 'SFMono-Regular', Consolas, monospace; letter-spacing:0.05em; }
.sml-status{
	display:inline-flex; align-items:center; padding:4px 11px; border-radius:999px;
	font-size:12.5px; font-weight:600; white-space:nowrap;
	background:var(--sml-card-2); color:var(--sml-silver);
}
.sml-status-confirmed, .sml-status-completed, .sml-status-ok{ background:var(--sml-green-soft); color:var(--sml-green-ink); }
.sml-status-pending, .sml-status-info{ background:var(--sml-navy-soft); color:var(--sml-gold-ink); }
.sml-status-warn{ background:var(--sml-amber-soft); color:var(--sml-amber); }
.sml-status-cancelled{ background:var(--sml-red-soft); color:var(--sml-red); }
.sml-chip{
	display:inline-flex; align-items:center; padding:6px 13px; border-radius:999px;
	background:var(--sml-card); border:1px solid var(--sml-border); font-size:13px; color:var(--sml-silver);
}

/* ---------- Tabla ---------- */
.sml-table-wrap{ border-radius:var(--sml-radius); background:var(--sml-card); border:1px solid var(--sml-border); overflow-x:auto; }
.sml-table{ width:100%; border-collapse:collapse; font-size:14px; }
.sml-table th{
	padding:13px 16px; background:var(--sml-side); color:var(--sml-muted); text-align:left;
	font-size:12px; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; white-space:nowrap;
}
.sml-table td{ padding:15px 16px; border-top:1px solid var(--sml-border-soft); color:var(--sml-ink); vertical-align:middle; }
.sml-table td.is-muted{ color:var(--sml-text); }
.sml-table tr.is-selected td{ background:var(--sml-card-hover); }
.sml-table .sml-table-actions{ text-align:right; white-space:nowrap; }

/* ---------- Profesionales ---------- */
.sml-pro-card{ display:flex; flex-direction:column; gap:14px; }
.sml-pro-head{ display:flex; align-items:center; gap:14px; }
.sml-pro-name{ font-size:16px; font-weight:700; color:var(--sml-ink); }
.sml-pro-meta{ font-size:13px; color:var(--sml-text); }
.sml-pro-rating{ font-size:12.5px; color:var(--sml-amber); }
.sml-pro-bio{ font-size:13.5px; color:var(--sml-text); margin:0 !important; }
.sml-card-actions{ display:flex; gap:8px; margin-top:auto; flex-wrap:wrap; }

/* ---------- Consulta (chat a pantalla completa) ---------- */
.sml-consultation{
	display:grid; grid-template-columns:minmax(0, 1fr) 340px; min-height:calc(100vh - 140px);
	border-radius:var(--sml-radius); border:1px solid var(--sml-border); overflow:hidden; background:var(--sml-bg);
}
.sml-chat-col{ display:flex; flex-direction:column; min-width:0; }
.sml-chat-head{
	display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
	padding:18px 26px; border-bottom:1px solid var(--sml-border-soft);
}
.sml-chat-head strong{ display:block; font-size:17px; }
.sml-chat-head span{ font-size:13px; color:var(--sml-muted); }
.sml-chat-messages{ flex:1; overflow-y:auto; padding:26px; display:flex; flex-direction:column; gap:18px; max-height:calc(100vh - 300px); min-height:320px; }
.sml-msg-wrap{ display:flex; flex-direction:column; gap:5px; max-width:620px; }
.sml-msg-wrap.is-user{ align-self:flex-end; align-items:flex-end; }
.sml-msg-wrap.is-assistant, .sml-msg-wrap.is-escalated{ align-self:flex-start; }
.sml-msg{ padding:13px 17px; font-size:15px; line-height:1.6; white-space:pre-wrap; word-wrap:break-word; }
.sml-msg-user{ border-radius:16px 16px 4px 16px; background:var(--sml-gold); color:var(--sml-on-gold); }
.sml-msg-assistant{ border-radius:16px 16px 16px 4px; background:var(--sml-card-2); color:var(--sml-ink); }
.sml-msg-escalated{ border-radius:16px 16px 16px 4px; background:#221b0c; border:1px solid #5a4418; color:#f3d9a4; }
.sml-msg-meta{ font-size:12px; color:var(--sml-muted); }
.sml-typing{ display:inline-flex; gap:4px; padding:14px 18px; border-radius:16px 16px 16px 4px; background:var(--sml-card-2); align-self:flex-start; }
.sml-typing i{ width:6px; height:6px; border-radius:50%; background:var(--sml-muted); animation:sml-blink 1.2s infinite ease-in-out; }
.sml-typing i:nth-child(2){ animation-delay:.2s; }
.sml-typing i:nth-child(3){ animation-delay:.4s; }
@keyframes sml-blink{ 0%, 80%, 100%{ opacity:.25; } 40%{ opacity:1; } }
.sml-chat-input{ padding:16px 26px 22px; border-top:1px solid var(--sml-border-soft); display:flex; flex-direction:column; gap:8px; }
.sml-chat-input-row{ display:flex; gap:12px; align-items:flex-end; }
.sml-chat-input-row textarea{ flex:1; min-height:52px; max-height:180px; resize:none; }
.sml-chat-note{ font-size:12.5px; color:var(--sml-muted); }
.sml-chat-note.is-warn{ color:var(--sml-amber); }
.sml-chat-side{
	display:flex; flex-direction:column; gap:24px; padding:26px 24px;
	background:var(--sml-side); border-left:1px solid var(--sml-border-soft);
}
.sml-side-label{ font-size:12px; color:var(--sml-muted); letter-spacing:0.08em; text-transform:uppercase; }
.sml-code-box{
	display:flex; align-items:center; justify-content:space-between; gap:10px;
	padding:13px 15px; border-radius:12px; background:var(--sml-card); border:1px solid var(--sml-border);
	font-size:18px; font-weight:600;
}
.sml-consent-banner{
	display:flex; flex-direction:column; gap:12px; align-items:flex-start; margin:26px;
	padding:20px 22px; border-radius:12px; background:var(--sml-card); border:1px solid var(--sml-border-strong);
	font-size:14px; color:var(--sml-text);
}
.sml-back{ display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:600; background:none; border:0; padding:0; color:var(--sml-gold-light); }

/* ---------- Documentos ---------- */
.sml-steps{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.sml-step{
	display:flex; align-items:center; gap:10px; padding:7px 16px 7px 7px; border-radius:999px;
	border:1px solid #34416a; color:var(--sml-muted); font-size:13.5px; font-weight:600;
}
.sml-step-num{ width:24px; height:24px; border-radius:50%; background:rgba(255,255,255,0.08); display:flex; align-items:center; justify-content:center; font-size:12px; }
.sml-step.is-current{ background:var(--sml-gold); border-color:var(--sml-gold); color:var(--sml-on-gold); }
.sml-step.is-done{ background:var(--sml-navy-soft); border-color:var(--sml-navy-soft); color:var(--sml-gold-ink); }
.sml-step-sep{ width:26px; height:1px; background:#34416a; }
.sml-doc-layout{ display:grid; grid-template-columns:420px minmax(0, 1fr); gap:28px; align-items:start; }
.sml-doc-side{ display:flex; flex-direction:column; gap:16px; min-width:0; }
.sml-doc-meta{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; font-size:13.5px; color:var(--sml-silver); }
.sml-paper{
	position:relative; overflow:hidden; border-radius:6px; background:#fbfaf7; color:#1b1f24;
	padding:48px 56px; min-height:520px; font-family:Georgia, 'Times New Roman', serif; font-size:15px; line-height:1.7;
	white-space:pre-wrap; word-wrap:break-word;
}
.sml-paper::before{
	content:'BORRADOR'; position:absolute; top:40%; left:50%; transform:translate(-50%, -50%) rotate(-24deg);
	font-family:var(--sml-sans); font-size:96px; font-weight:800; letter-spacing:0.1em; color:rgba(29,40,70,0.07); pointer-events:none;
}
.sml-data-list{ display:flex; flex-direction:column; gap:10px; font-size:14px; }
.sml-data-list div{ display:flex; flex-direction:column; gap:2px; }
.sml-data-list span{ font-size:12.5px; color:var(--sml-muted); }
.sml-success-box{
	display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; text-align:center;
	padding:48px 32px; border-radius:var(--sml-radius); background:var(--sml-card); border:1px solid var(--sml-border);
}
.sml-success-icon{ width:64px; height:64px; border-radius:50%; background:var(--sml-green-soft); color:var(--sml-green); display:flex; align-items:center; justify-content:center; }
.sml-success-title{ font-family:var(--sml-display); font-size:30px; font-weight:700; color:var(--sml-ink); }
.sml-dropzone{
	display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center;
	min-height:150px; padding:20px; border-radius:12px; border:1px dashed #3a4870; background:var(--sml-side); color:var(--sml-text);
	cursor:pointer; transition:border-color .15s ease, background .15s ease;
}
.sml-dropzone:hover, .sml-dropzone.is-over{ border-color:var(--sml-gold-light); background:#1a2340; }
.sml-dropzone strong{ font-size:14px; }
.sml-dropzone span{ font-size:12.5px; color:var(--sml-muted); }

/* ---------- Citas: horarios ---------- */
.sml-slots{ display:flex; flex-wrap:wrap; gap:8px; }
.sml-slot{
	padding:9px 14px; border-radius:var(--sml-radius-sm); border:1px solid var(--sml-border-strong);
	background:var(--sml-side); color:var(--sml-silver); font-size:13.5px; font-weight:600;
}
.sml-slot:hover{ border-color:var(--sml-gold-light); }
.sml-slot.is-selected{ background:var(--sml-gold); border-color:var(--sml-gold); color:var(--sml-on-gold); }

/* ---------- Disponibilidad del profesional ---------- */
.sml-week-grid{ display:grid; grid-template-columns:140px repeat(3, minmax(0, 1fr)); gap:10px; align-items:center; }
.sml-week-head{ font-size:12px; text-transform:uppercase; letter-spacing:0.06em; color:var(--sml-muted); font-weight:600; }
.sml-week-day{ display:flex; align-items:center; gap:8px; font-size:14px; font-weight:600; color:var(--sml-ink); }
.sml-week-day input{ width:17px; height:17px; accent-color:var(--sml-gold-bright); }

/* ---------- Ventanas emergentes ---------- */
.sml-modal-backdrop{
	position:fixed; inset:0; z-index:100000; padding:20px;
	display:flex; align-items:center; justify-content:center; background:rgba(2,5,10,0.72);
}
.sml-modal{
	width:100%; max-width:520px; max-height:88vh; overflow-y:auto;
	padding:26px; border-radius:var(--sml-radius); background:var(--sml-card); border:1px solid var(--sml-border-strong);
	box-shadow:0 30px 70px rgba(0,0,0,0.5);
}
.sml-modal-wide{ max-width:720px; }
.sml-modal-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:18px; }
.sml-modal-head h3{ font-size:18px !important; }
.sml-modal-close{ background:none; border:0; color:var(--sml-muted); font-size:24px; line-height:1; padding:4px 8px; }
.sml-modal-close:hover{ color:var(--sml-ink); }

/* ---------- Avisos flotantes ---------- */
.sml-toast-stack{ position:fixed; top:20px; right:20px; z-index:100001; display:flex; flex-direction:column; gap:10px; max-width:360px; }
.sml-toast{
	padding:13px 16px; border-radius:12px; background:var(--sml-card-2); border:1px solid var(--sml-border-strong);
	font-size:14px; color:var(--sml-ink); box-shadow:0 12px 30px rgba(0,0,0,0.4); animation:sml-toast-in .2s ease;
}
.sml-toast-error{ border-color:#7a3232; }
.sml-toast-success{ border-color:#1f6a4c; }
@keyframes sml-toast-in{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:none; } }

/* ---------- Acceso (sin sesión) ---------- */
.sml-login-shell{ display:flex; align-items:center; justify-content:center; min-height:100vh; padding:40px 16px; }
.sml-login-card{ width:100%; max-width:400px; padding:34px 30px; border-radius:var(--sml-radius); background:var(--sml-card); border:1px solid var(--sml-border); }
.sml-login-brand{ justify-content:center; margin-bottom:24px; }
.sml-login-title{ text-align:center; font-family:var(--sml-display) !important; font-size:28px !important; font-weight:700 !important; margin-bottom:6px !important; }
.sml-login-subtitle{ text-align:center; margin-bottom:22px !important; }
.sml-login-remember{ display:flex; align-items:center; gap:8px; font-size:13.5px; color:var(--sml-text); margin-bottom:16px; cursor:pointer; }
.sml-login-remember input{ accent-color:var(--sml-gold-bright); }
.sml-login-success{ margin:0 0 14px; padding:10px 14px; border-radius:10px; border:1px solid rgba(62,207,142,.45); background:rgba(62,207,142,.1); color:#c9f5df !important; font-size:13.5px; line-height:1.5; }
.sml-login-error{ padding:10px 14px; border-radius:10px; border:1px solid #7a3232; background:var(--sml-red-soft); color:#ffd2ce !important; font-size:13.5px; }
.sml-login-error[hidden]{ display:none; }
.sml-login-forgot{ display:block; text-align:center; margin-top:18px; font-size:13.5px; font-weight:600; }

/* ---------- Varios ---------- */
.sml-section-title{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.sml-section-title h2{ font-size:17px !important; }
.sml-muted-note{ font-size:13.5px; color:var(--sml-muted) !important; }
.sml-divider{ height:1px; background:var(--sml-border-soft); margin:6px 0; }
.sml-inline{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.sml-stack{ display:flex; flex-direction:column; gap:14px; }
.sml-hidden{ display:none !important; }
.sml-sr-only{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* ---------- Pantallas medianas ---------- */
@media (max-width:1280px){
	.sml-main{ padding:36px 32px 48px; }
	.sml-stats{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
	.sml-doc-layout{ grid-template-columns:minmax(0, 1fr); }
	.sml-consultation{ grid-template-columns:minmax(0, 1fr) 300px; }
}

/* ---------- Celular y tableta: barra inferior ---------- */
@media (max-width:900px){
	.sml-shell{ grid-template-columns:minmax(0, 1fr); }
	.sml-sidebar{
		position:fixed; top:auto; bottom:0; left:0; right:0; height:auto; z-index:9999;
		flex-direction:row; gap:0; padding:6px 6px calc(6px + env(safe-area-inset-bottom));
		border-right:0; border-top:1px solid var(--sml-border-soft);
	}
	.sml-sidebar .sml-brand, .sml-sidebar .sml-sidebar-foot{ display:none; }
	.sml-nav{ flex-direction:row; width:100%; overflow-x:auto; gap:2px; }
	.sml-tab{ position:relative; flex:1 0 72px; flex-direction:column; gap:4px; padding:8px 4px; font-size:11px; text-align:center; justify-content:center; }
	.sml-tab .sml-tab-label{ flex-grow:0; white-space:nowrap; }
	.sml-tab-badge{ position:absolute; margin:-4px 0 0 22px; padding:0 6px; font-size:10.5px; }
	.sml-main{ padding:0 16px 100px; }
	.sml-mobile-head{
		display:flex; align-items:center; gap:10px; margin:0 -16px 22px; padding:14px 16px;
		border-bottom:1px solid var(--sml-border-soft);
	}
	.sml-mobile-head .sml-brand{ padding:0; }
	.sml-mobile-head .sml-brand-mark{ width:32px; height:32px; font-size:20px; }
	.sml-mobile-head a{ margin-left:auto; font-size:13px; }
	.sml-page-title{ font-size:32px !important; }
	.sml-split, .sml-split-even, .sml-form-grid{ grid-template-columns:minmax(0, 1fr); }
	.sml-consultation{ grid-template-columns:minmax(0, 1fr); min-height:0; }
	.sml-chat-side{ border-left:0; border-top:1px solid var(--sml-border-soft); order:-1; padding:18px; gap:16px; }
	.sml-chat-messages{ max-height:none; padding:18px; }
	.sml-chat-input{ padding:14px 16px 18px; }
	.sml-paper{ padding:28px 22px; min-height:380px; font-size:14px; }
	.sml-paper::before{ font-size:56px; }
	.sml-week-grid{ grid-template-columns:minmax(0, 1fr); }
	.sml-toast-stack{ left:16px; right:16px; max-width:none; }
}
@media (max-width:560px){
	.sml-stats{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; }
	.sml-stat{ padding:16px; }
	.sml-stat-value{ font-size:24px; }
}
