.ix-panel {
	max-width: 1000px;
	margin: 40px auto;
	padding: 0 20px;
}

.ix-breadcrumb {
	font-size: 13px;
	color: #666;
	margin-bottom: 20px;
}

.ix-company-grid,
.ix-module-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 16px;
	margin-top: 20px;
}

.ix-company-card,
.ix-module-card {
	display: block;
	padding: 20px;
	border: 1px solid #e2e2e2;
	border-radius: 10px;
	text-decoration: none;
	color: #1d1d1f;
	background: #fff;
	transition: box-shadow .15s ease, transform .15s ease;
}

.ix-company-card:hover,
.ix-module-card:hover {
	box-shadow: 0 4px 14px rgba(0,0,0,.08);
	transform: translateY(-1px);
}

.ix-company-name {
	display: block;
	font-weight: 600;
	font-size: 16px;
	margin-bottom: 6px;
}

.ix-company-meta {
	display: block;
	font-size: 12px;
	color: #777;
	text-transform: uppercase;
	letter-spacing: .03em;
}

.ix-submodule-list {
	margin: 8px 0 0 4px;
	padding: 0;
	list-style: none;
}

.ix-submodule-list li a {
	display: block;
	padding: 6px 8px;
	font-size: 13px;
	color: #444;
	text-decoration: none;
	border-left: 2px solid #ddd;
	padding-left: 12px;
}

.ix-submodule-list li a:hover {
	border-left-color: #333;
	color: #000;
}

.ix-login-wrap {
	max-width: 380px;
	margin: 60px auto;
	padding: 32px;
	border: 1px solid #e2e2e2;
	border-radius: 12px;
	background: #fff;
}

.ix-login-form label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	margin: 14px 0 6px;
}

.ix-login-form input[type="text"],
.ix-login-form input[type="password"] {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #ccc;
	border-radius: 6px;
	box-sizing: border-box;
}

.ix-login-form .ix-remember {
	display: flex;
	align-items: center;
	gap: 6px;
	font-weight: 400;
}

.ix-login-form button {
	width: 100%;
	margin-top: 18px;
	padding: 11px;
	border: 0;
	border-radius: 6px;
	background: #1d1d1f;
	color: #fff;
	font-weight: 600;
	cursor: pointer;
}

.ix-login-error {
	background: #fdecea;
	color: #a00;
	padding: 10px 12px;
	border-radius: 6px;
	font-size: 13px;
	margin-bottom: 10px;
}

.ix-forgot-link {
	display: block;
	margin-top: 14px;
	font-size: 12px;
	text-align: center;
	color: #666;
}

/* ===================== SHELL: HEADER + SIDEBAR ===================== */

* { box-sizing: border-box; }

body.ix-app-body {
	margin: 0;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	background: #f5f6f8;
	color: #1d1d1f;
}

.ix-header-bar {
	position: sticky;
	top: 0;
	z-index: 100;
	height: 56px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 16px;
	background: #16181d;
	color: #fff;
}

.ix-header-left { display: flex; align-items: center; gap: 14px; }

.ix-sidebar-toggle {
	display: none; /* solo aparece si hay sidebar */
	flex-direction: column;
	justify-content: center;
	gap: 4px;
	width: 34px;
	height: 34px;
	border: 0;
	background: transparent;
	cursor: pointer;
}
.ix-has-sidebar .ix-sidebar-toggle { display: flex; }
.ix-sidebar-toggle span { display: block; width: 18px; height: 2px; background: #fff; }

.ix-header-brand { color: #fff; text-decoration: none; font-weight: 700; font-size: 15px; }

.ix-header-right { display: flex; align-items: center; gap: 14px; }

.ix-header-icon { color: #ccc; display: flex; }
.ix-header-icon:hover { color: #fff; }

.ix-header-user { display: flex; align-items: center; gap: 8px; }
.ix-user-avatar {
	width: 28px; height: 28px; border-radius: 50%;
	background: #4b5563; color: #fff; font-size: 12px; font-weight: 700;
	display: flex; align-items: center; justify-content: center;
}
.ix-user-name { font-size: 13px; color: #eee; }

.ix-header-logout {
	font-size: 12px;
	color: #ccc;
	text-decoration: none;
	border: 1px solid #444;
	padding: 6px 12px;
	border-radius: 6px;
}
.ix-header-logout:hover { color: #fff; border-color: #777; }

.ix-app-shell {
	display: flex;
	min-height: calc(100vh - 56px);
}

.ix-sidebar {
	width: 250px;
	flex-shrink: 0;
	background: #1d2026;
	color: #cfd3da;
	padding: 18px 0;
	transition: margin-left .2s ease;
}

body.ix-sidebar-collapsed .ix-sidebar { margin-left: -250px; }

.ix-sidebar-company {
	padding: 0 18px 16px;
	border-bottom: 1px solid #2c303a;
	margin-bottom: 12px;
}
.ix-sidebar-logo { max-width: 100%; max-height: 40px; margin-bottom: 8px; }
.ix-sidebar-company-name { display: block; font-weight: 700; color: #fff; font-size: 14px; margin-bottom: 8px; }
.ix-sidebar-switch { display: block; font-size: 12px; color: #9aa1ac; text-decoration: none; margin-top: 4px; }
.ix-sidebar-switch:hover { color: #fff; }

.ix-sidebar-nav { padding: 0 10px; }
.ix-sidebar-group { margin-bottom: 2px; }
.ix-sidebar-link {
	display: block;
	padding: 10px 12px;
	font-size: 13px;
	font-weight: 600;
	color: #cfd3da;
	text-decoration: none;
	border-radius: 8px;
}
.ix-sidebar-link:hover, .ix-sidebar-link.is-active { background: #2c303a; color: #fff; }

.ix-sidebar-submenu { padding-left: 14px; }
.ix-sidebar-sublink {
	display: block;
	padding: 8px 12px;
	font-size: 12.5px;
	color: #9aa1ac;
	text-decoration: none;
	border-left: 2px solid #333;
	margin-left: 6px;
}
.ix-sidebar-sublink:hover, .ix-sidebar-sublink.is-active { color: #fff; border-left-color: #6c8cff; }

.ix-main {
	flex: 1;
	min-width: 0;
	padding: 30px;
}

@media (max-width: 782px) {
	.ix-sidebar { position: fixed; top: 56px; bottom: 0; left: 0; z-index: 90; margin-left: -250px; }
	body:not(.ix-sidebar-collapsed) .ix-sidebar { margin-left: 0; box-shadow: 2px 0 12px rgba(0,0,0,.2); }
	.ix-main { padding: 18px; }
}

/* ===================== PLAYBOOKS ===================== */

.ix-playbook-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 20px;
}
.ix-playbook-filters a {
	padding: 6px 14px;
	border-radius: 999px;
	background: #fff;
	border: 1px solid #ddd;
	font-size: 12.5px;
	text-decoration: none;
	color: #444;
}
.ix-playbook-filters a.is-active { background: #1d1d1f; color: #fff; border-color: #1d1d1f; }

.ix-playbook-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 16px;
}
.ix-playbook-card {
	background: #fff;
	border: 1px solid #e2e2e2;
	border-radius: 10px;
	padding: 18px;
}
.ix-playbook-card h3 { margin: 0 0 8px; font-size: 15px; }
.ix-playbook-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.ix-playbook-tags span {
	font-size: 11px;
	padding: 3px 8px;
	background: #f0f1f3;
	border-radius: 999px;
	color: #555;
}
.ix-playbook-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.ix-playbook-actions a {
	font-size: 12.5px;
	padding: 8px 14px;
	border-radius: 6px;
	text-decoration: none;
	border: 1px solid #ccc;
	color: #333;
}
.ix-playbook-actions a.button-primary { background: #1d1d1f; color: #fff; border-color: #1d1d1f; }

/* ===================== LOGIN MODAL ===================== */

.ix-login-modal-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(0,0,0,.5);
	z-index: 1000;
	align-items: center;
	justify-content: center;
}
.ix-login-modal-overlay.is-open { display: flex; }
.ix-login-modal-box {
	position: relative;
	max-width: 380px;
	width: 92%;
}
.ix-login-modal-box .ix-login-wrap { margin: 0; }
.ix-login-modal-close {
	position: absolute;
	top: -14px;
	right: -14px;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid #ddd;
	cursor: pointer;
	font-size: 16px;
	line-height: 1;
}
.ix-login-trigger {
	padding: 10px 18px;
	border-radius: 6px;
	background: #1d1d1f;
	color: #fff;
	border: 0;
	cursor: pointer;
	font-weight: 600;
	text-decoration: none;
	display: inline-block;
}

/* Página bare de login para popup externo (window.open) */
body.ix-popup-body {
	margin: 0;
	background: #f5f6f8;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 100vh;
}
.ix-popup-brand { text-align: center; margin-bottom: 18px; }
.ix-popup-brand img { max-height: 46px; max-width: 220px; }
.ix-popup-brand span { display: block; font-weight: 700; font-size: 16px; margin-top: 8px; }
