
/* ── Fuentes auto-alojadas (sin dependencia de Google Fonts) ─────────────── */

/* IBM Plex Sans — latin-ext */
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/ibm-plex-sans-latin-ext-400.woff2') format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/ibm-plex-sans-latin-ext-500.woff2') format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/ibm-plex-sans-latin-ext-600.woff2') format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }

/* IBM Plex Sans — latin */
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/ibm-plex-sans-latin-400.woff2') format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/ibm-plex-sans-latin-500.woff2') format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/ibm-plex-sans-latin-600.woff2') format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

/* Manrope — latin-ext */
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/manrope-latin-ext-500.woff2') format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/manrope-latin-ext-600.woff2') format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/manrope-latin-ext-700.woff2') format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 800; font-display: swap; src: url('../fonts/manrope-latin-ext-800.woff2') format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }

/* Manrope — latin */
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/manrope-latin-500.woff2') format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/manrope-latin-600.woff2') format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/manrope-latin-700.woff2') format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 800; font-display: swap; src: url('../fonts/manrope-latin-800.woff2') format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

:root {
	/* ── Brand ─────────────────────────────────────── */
	--c-primary:       #0D2D4A;
	--c-primary-mid:   #11436A;
	--c-action:        #8FB32E;
	--c-action-soft:   #C8DC78;

	/* ── Azules auxiliares ──────────────────────────── */
	--c-blue-1:        #175C94;
	--c-blue-2:        #4F6E9C;

	/* ── Semánticos ─────────────────────────────────── */
	--c-success:       #1AAB7E;
	--c-warn:          #E07B2A;
	--c-danger:        #C94040;
	--c-info:          #3A82C4;
	--c-neutral:       #7090AD;

	/* ── Grises UI ──────────────────────────────────── */
	--c-gray-1:        #E8EEF4;
	--c-gray-2:        #A8B8C8;
	--c-warn-soft:     #F4E0D6;
	--c-white:         #fff;
	--c-black:         #141E28;

	/* ── Superficies ────────────────────────────────── */
	--c-surface:       #F5F8FC;
	--c-surface-soft:  #EAF0F8;
	--c-surface-card:  #FFFFFF;
	--c-line:          #D4DFE9;
	--c-line-soft:     #E6EEF5;

	/* ── Texto ──────────────────────────────────────── */
	--c-text:          #1A2D3E;
	--c-text-soft:     #5A7490;
	--c-text-muted:    #8FA8BE;

	/* ── Sombras ────────────────────────────────────── */
	--shadow-soft:     0 4px 16px rgba(13, 45, 74, .07);
	--shadow-card:     0 2px 8px rgba(13, 45, 74, .06), 0 8px 24px rgba(13, 45, 74, .05);
	--shadow-strong:   0 12px 36px rgba(13, 45, 74, .14);
	--shadow-sidebar:  18px 0 40px rgba(13, 45, 74, .18);
}

/* ── LOGIN PAGE ─────────────────────────────────── */
.login-page,
.login-page * {
	box-sizing: border-box;
}

.login-page {
	margin: 0;
	font-family: "IBM Plex Sans", "Segoe UI", sans-serif;
	color: var(--c-text);
	min-height: 100vh;
	background:
		radial-gradient(ellipse 70% 60% at 20% 80%, rgba(143,179,46,.08) 0%, transparent 60%),
		radial-gradient(circle at 84% 18%, rgba(255,255,255,.08) 0%, transparent 28%),
		linear-gradient(145deg, #071826 0%, #0D2237 45%, #0f3254 100%);
	display: grid;
	place-items: center;
	padding: 24px;
	position: relative;
	overflow: hidden;
}

.login-page .login-scene {
	position: fixed;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}

.login-page .login-particle-canvas {
	display: block;
	width: 100%;
	height: 100%;
	opacity: .92;
}

.login-page .login-scene-overlay {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 18% 18%, rgba(255,255,255,.1), transparent 24%),
		radial-gradient(circle at 84% 24%, rgba(143,179,46,.08), transparent 28%),
		linear-gradient(180deg, rgba(7,24,38,.12) 0%, rgba(7,24,38,.22) 100%);
}

/* ── SHELL ──────────────────────────────────────── */
.login-page .shell {
  width: 100%;
	max-width: 1120px;
  border-radius: 22px;
  overflow: hidden;
  box-shadow:
    0 50px 100px rgba(0, 0, 0, .38),
    0 12px 32px rgba(0, 0, 0, .22),
    0 0 0 1px rgba(255, 255, 255, .04);
	animation: login-shell-enter .5s ease-out both;
	position: relative;
	z-index: 1;
}

/* ── SPLIT LAYOUT ───────────────────────────────── */
.login-page .login-layout {
  display: grid;
	grid-template-columns: 1.08fr .92fr;
	min-height: 640px;
}

.login-page .login-layout-rh {
	grid-template-columns: .96fr 1.04fr;
}

/* ── LEFT PANEL — brand ─────────────────────────── */
.login-page .login-aside {
  position: relative;
  background: linear-gradient(165deg, #071826 0%, #0D2237 50%, #0b3050 100%);
  display: flex;
  flex-direction: column;
	align-items: flex-start;
  justify-content: space-between;
	padding: 54px 46px 40px;
  overflow: hidden;
}

.login-page .login-aside::before {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  border: 1px solid rgba(143, 179, 46, .12);
  top: -120px;
  right: -120px;
  pointer-events: none;
}

.login-page .login-aside::after {
  content: "";
  position: absolute;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  border: 1px solid rgba(143, 179, 46, .06);
  bottom: -80px;
  left: -60px;
  pointer-events: none;
}

/* Glow de fondo sutil en el panel izquierdo */
.login-page .login-aside-glow {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 55% 40% at 50% 50%, rgba(143,179,46,.06) 0%, transparent 70%);
  pointer-events: none;
}

.login-page .login-aside-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 24px;
  flex: 1;
  justify-content: center;
}

.login-page .login-logo {
	width: 156px;
	height: 156px;
  object-fit: contain;
	align-self: center;
  filter: drop-shadow(0 14px 36px rgba(0, 0, 0, .42));
}

.login-page .login-tagline {
  margin: 0;
	align-self: center;
  font-family: "IBM Plex Sans", sans-serif;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .20em;
  text-transform: uppercase;
  color: rgba(143, 179, 46, .80);
}

.login-page .login-tagline,
.login-page .login-logo,
.login-page .login-copy-block,
.login-page .login-feature-list,
.login-page .login-footnote {
	animation-duration: .78s;
	animation-timing-function: cubic-bezier(.22, 1, .36, 1);
	animation-fill-mode: both;
}

.login-page .login-tagline {
	animation-name: login-content-rise;
	animation-delay: .12s;
}

.login-page .login-logo {
	animation-name: login-content-float-in;
	animation-delay: .2s;
}

.login-page .login-copy-block {
	animation-name: login-content-rise;
	animation-delay: .3s;
}

.login-page .login-feature-list {
	animation-name: login-content-rise;
	animation-delay: .42s;
}

.login-page .login-footnote {
	animation-name: login-content-fade;
	animation-delay: .52s;
}

.login-page .login-footnote {
  position: relative;
  z-index: 1;
  margin: 0;
  font-size: 10.5px;
  color: rgba(255, 255, 255, .18);
  letter-spacing: .05em;
}

.login-page .login-version {
	display: inline-block;
	margin-left: 10px;
	font-size: 10px;
	letter-spacing: .08em;
	color: rgba(255, 255, 255, .34);
}

.login-page .login-copy-block {
	display: grid;
	gap: 12px;
	max-width: 430px;
	justify-items: center;
	text-align: center;
}

.login-page .login-badge,
.login-page .login-platform-badge {
	display: inline-flex;
	width: fit-content;
	align-items: center;
	justify-content: center;
	align-self: center;
	gap: 8px;
	padding: 6px 14px;
	border-radius: 999px;
	border: 1px solid rgba(143, 179, 46, .28);
	background: rgba(143, 179, 46, .14);
	color: rgba(235, 245, 214, .96);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.login-page .login-platform-badge {
	margin-bottom: 18px;
	background: rgba(13, 45, 74, .06);
	border-color: rgba(13, 45, 74, .12);
	color: var(--c-primary);
}

.login-page .login-aside-title {
	margin: 0;
	color: #f5f8fc;
	font-family: "Manrope", sans-serif;
	font-size: 38px;
	line-height: 1.04;
	letter-spacing: -.045em;
	max-width: 430px;
}

.login-page .login-aside-copy {
	margin: 0;
	max-width: 390px;
	color: rgba(232, 241, 252, .72);
	font-size: 15px;
	line-height: 1.72;
}

.login-page .login-feature-list {
	display: grid;
	gap: 12px;
	width: min(100%, 340px);
	margin: 0;
	padding: 0;
	list-style: none;
	align-self: center;
	text-align: left;
}

.login-page .login-feature-list li {
	position: relative;
	padding-left: 34px;
	color: rgba(245, 250, 255, .92);
	font-size: 14px;
	line-height: 1.55;
}

.login-page .login-feature-list li::before {
	content: "";
	position: absolute;
	top: 4px;
	left: 0;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	border: 1px solid rgba(143, 179, 46, .42);
	background: rgba(143, 179, 46, .12);
	box-shadow: inset 0 0 0 4px rgba(143, 179, 46, .1);
}

/* ── RIGHT PANEL — form ─────────────────────────── */
.login-page .login-form-card {
	background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(247,249,253,.9) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
	padding: 60px 56px;
	position: relative;
  backdrop-filter: blur(18px);
}

.login-page .login-form-card::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 0% 0%, rgba(13, 45, 74, .08) 0%, transparent 34%),
		linear-gradient(145deg, rgba(255,255,255,.3), transparent 44%);
	pointer-events: none;
}

.login-page .login-form-inner {
  width: 100%;
	max-width: 360px;
	position: relative;
	z-index: 1;
}

.login-page h1 {
  margin: 0 0 6px;
  font-family: "Manrope", sans-serif;
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -.02em;
  color: var(--c-primary);
}

.login-page .sub {
  margin: 0 0 28px;
  color: var(--c-text-soft);
  font-size: 14px;
  line-height: 1.5;
}

.login-page .error {
  background: #fff1f1;
  color: #8a3e3e;
  border: 1px solid #ebc3c3;
  border-radius: 10px;
  padding: 10px 12px;
  margin-bottom: 20px;
  font-size: 13px;
  font-weight: 500;
}

.login-page .field {
  margin-bottom: 18px;
}

.login-page .label {
  display: block;
  margin-bottom: 7px;
  color: var(--c-text-soft);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.login-page .input {
  width: 100%;
  border: 1.5px solid var(--c-line);
  border-radius: 12px;
  padding: 12px 14px;
  font: inherit;
  font-size: 14px;
  color: var(--c-text);
  background: var(--c-surface);
  transition: border-color .2s ease, box-shadow .2s ease;
}

.login-page .input::placeholder {
  color: var(--c-gray-2);
}

.login-page .input:focus {
  outline: none;
  border-color: var(--c-blue-1);
  box-shadow: 0 0 0 3px rgba(23, 92, 148, .12);
  background: var(--c-surface-card);
}

.login-page .row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 24px;
  color: var(--c-text-soft);
  font-size: 13px;
}

.login-page .login-captcha-field {
	display: flex;
	justify-content: center;
	margin: 16px 0 4px;
}

.login-page .login-captcha-field--modal {
	margin-top: 2px;
	margin-bottom: 14px;
}

.login-page .login-captcha-widget {
	min-height: 78px;
}

.login-page .grecaptcha-badge {
	visibility: hidden;
}

.login-page .login-captcha-legal {
	margin: 2px 0 14px;
	color: var(--c-text-soft);
	font-size: 11px;
	line-height: 1.45;
}

.login-page .login-captcha-legal a {
	color: var(--c-blue-1);
	text-decoration: none;
}

.login-page .login-captcha-legal a:hover {
	color: var(--c-primary);
	text-decoration: underline;
}

.login-page .login-captcha-legal--modal {
	margin-top: 0;
	margin-bottom: 12px;
}

.login-page .login-inline-error {
	margin-bottom: 16px;
}

.login-page .remember {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  cursor: pointer;
}

.login-page .remember input {
  accent-color: var(--c-action);
}

.login-page .help-link {
  color: var(--c-blue-1);
  font-weight: 600;
  font-size: 12px;
  text-decoration: none;
}

.login-page .help-link:hover {
  color: var(--c-primary);
}

.login-page .success {
	background: #eef9f4;
	color: #206447;
	border: 1px solid #bfdfcf;
	border-radius: 10px;
	padding: 10px 12px;
	margin-bottom: 20px;
	font-size: 13px;
	font-weight: 500;
}

.login-page .login-reset-modal {
	position: fixed;
	inset: 0;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 24px;
	z-index: 1200;
}

.login-page .login-reset-modal.is-open {
	display: flex;
}

.login-page .login-reset-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(7, 24, 38, .48);
	backdrop-filter: blur(6px);
}

.login-page .login-reset-modal__dialog {
	position: relative;
	width: min(100%, 460px);
	padding: 22px;
	border: 1px solid rgba(13, 45, 74, .10);
	border-radius: 24px;
	background: linear-gradient(180deg, rgba(255, 255, 255, .99) 0%, rgba(245, 248, 252, .98) 100%);
	box-shadow: 0 24px 54px rgba(13, 45, 74, .24);
	z-index: 1;
}

.login-page .login-reset-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 18px;
}

.login-page .login-reset-head h2 {
	margin: 0;
	font-family: "Manrope", sans-serif;
	font-size: 18px;
	font-weight: 800;
	color: var(--c-primary);
}

.login-page .login-reset-close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border: 1px solid rgba(13, 45, 74, .12);
	border-radius: 999px;
	background: #fff;
	color: var(--c-primary);
	font-size: 20px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 8px 18px rgba(13, 45, 74, .08);
}

.login-page .login-reset-close:hover {
	background: var(--c-surface);
}

.login-page .login-reset-form + .login-reset-form {
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid rgba(13, 45, 74, .08);
}

.login-page .login-reset-form--stacked .btn {
	margin-top: 4px;
}

.login-page .login-reset-form .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

.login-page .login-reset-help-trigger {
	position: relative;
	overflow: visible;
}

.login-page .login-reset-help-trigger::after {
	content: attr(data-help-tooltip);
	position: absolute;
	left: 50%;
	bottom: calc(100% + 10px);
	transform: translateX(-50%) translateY(4px);
	min-width: 38px;
	padding: 6px 8px;
	border-radius: 999px;
	background: rgba(13, 45, 74, .96);
	color: #fff;
	font-size: calc(1em + 4px);
	line-height: 1;
	text-align: center;
	box-shadow: 0 10px 24px rgba(13, 45, 74, .22);
	opacity: 0;
	pointer-events: none;
	transition: opacity .18s ease, transform .18s ease;
	z-index: 2;
}

.login-page .login-reset-help-trigger:hover::after,
.login-page .login-reset-help-trigger:focus-visible::after {
	opacity: 1;
	transform: translateX(-50%) translateY(0);
}

.login-page .login-reset-help-icon {
	display: inline-block;
	font-size: calc(1em + 4px);
	line-height: 1;
}

.login-page .login-reset-otp {
	text-align: center;
	font-size: 22px;
	font-weight: 800;
	letter-spacing: .34em;
}

.login-page .login-reset-hint {
	margin: -6px 0 14px;
	color: var(--c-text-soft);
	font-size: 12px;
	line-height: 1.5;
}

.login-page .login-otp-code {
	text-align: center;
	font-size: 22px;
	font-weight: 800;
	letter-spacing: .34em;
}

.login-page .login-otp-hint {
	margin: -6px 0 14px;
	color: var(--c-text-soft);
	font-size: 12px;
	line-height: 1.5;
}

.login-page .login-otp-cancel-form {
	margin-top: 12px;
}

.login-page .btn {
  border: 0;
  width: 100%;
  border-radius: 12px;
  padding: 13px 16px;
  font-family: "Manrope", sans-serif;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .02em;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .2s ease, filter .18s ease;
}

.login-page .btn:active {
  transform: translateY(1px);
}

.login-page .btn-primary {
  background: linear-gradient(90deg, #7aa228 0%, #8FB32E 60%, #a3cc34 100%);
  color: #fff;
  box-shadow: 0 8px 22px rgba(143, 179, 46, .30);
}

.login-page .btn-primary:hover {
  filter: brightness(1.06);
  box-shadow: 0 14px 32px rgba(143, 179, 46, .42);
}

.login-page .login-platform-switch {
	margin-top: 28px;
	padding-top: 22px;
	border-top: 1px solid rgba(13, 45, 74, .08);
}

.login-page .login-platform-switch-label {
	display: block;
	margin-bottom: 12px;
	color: var(--c-text-soft);
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
}

.login-page .login-platform-tabs {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px;
	padding: 8px;
	border-radius: 18px;
	background: rgba(13, 45, 74, .06);
	overflow: hidden;
}

.login-page .login-platform-tabs::before {
	content: "";
	position: absolute;
	top: 8px;
	left: 8px;
	width: calc(50% - 8px);
	height: calc(100% - 16px);
	border-radius: 14px;
	background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(242, 249, 222, .94));
	box-shadow: 0 12px 28px rgba(13, 45, 74, .18);
	transition: transform .42s cubic-bezier(.22, 1, .36, 1), box-shadow .28s ease, opacity .28s ease;
}

.login-page .login-platform-tabs.is-rh::before {
	background: linear-gradient(135deg, rgba(255,255,255,.99), rgba(226, 241, 255, .96));
	box-shadow: 0 12px 28px rgba(23, 92, 148, .18), inset 0 0 0 1px rgba(79, 110, 156, .08);
}

.login-page .login-platform-tabs.is-soporte::before {
	transform: translateX(100%);
	background: linear-gradient(135deg, rgba(255,255,255,.99), rgba(239, 248, 210, .96));
	box-shadow: 0 12px 28px rgba(143, 179, 46, .18), inset 0 0 0 1px rgba(143, 179, 46, .08);
}

.login-page .login-platform-tab {
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	border-radius: 14px;
	color: var(--c-primary);
	font-family: "Manrope", sans-serif;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	position: relative;
	z-index: 1;
	transition: transform .24s ease, color .24s ease, opacity .24s ease, letter-spacing .24s ease;
}

.login-page .login-platform-tab:not(.is-active) {
	opacity: .74;
}

.login-page .login-platform-tab:hover:not(.is-active) {
	opacity: 1;
	transform: translateY(-1px) scale(1.02);
}

.login-page .login-platform-tab.is-active {
	color: var(--c-primary);
	letter-spacing: .01em;
}

.login-page .login-platform-tabs:hover::before {
	box-shadow: 0 14px 30px rgba(13, 45, 74, .2);
}

.login-page.is-platform-switching .login-tagline,
.login-page.is-platform-switching .login-logo,
.login-page.is-platform-switching .login-copy-block,
.login-page.is-platform-switching .login-feature-list,
.login-page.is-platform-switching .login-footnote {
	animation: login-content-exit .4s ease forwards;
}

.login-page.is-platform-switching .login-form-card,
.login-page.is-platform-switching .login-aside {
	animation: login-panel-exit .4s cubic-bezier(.4, 0, .2, 1) forwards;
}

@keyframes login-content-float-in {
	0% {
		opacity: 0;
		transform: translateX(42px) scale(.86);
	}

	100% {
		opacity: 1;
		transform: translateX(0) scale(1);
	}
}

@keyframes login-content-rise {
	0% {
		opacity: 0;
		transform: translateY(44px);
	}

	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes login-content-fade {
	0% {
		opacity: 0;
		transform: translateY(24px);
	}

	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes login-content-exit {
	0% {
		opacity: 1;
		transform: translateY(0) scale(1);
	}

	100% {
		opacity: 0;
		transform: translateY(-22px) scale(.98);
	}
}

@keyframes login-panel-exit {
	0% {
		opacity: 1;
		transform: translateX(0);
		filter: blur(0);
	}

	100% {
		opacity: .12;
		transform: translateX(24px);
		filter: blur(8px);
	}
}

@keyframes login-shell-enter {
	from {
		opacity: 0;
		transform: translateY(14px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* ── LOGIN RESPONSIVE ───────────────────────────── */
@media (max-width: 760px) {
  .login-page { padding: 16px; }

	.login-page .login-particle-canvas {
		opacity: .68;
	}

  .login-page .login-layout {
    grid-template-columns: 1fr;
  }

  .login-page .login-aside {
		padding: 40px 28px 30px;
		min-height: 220px;
  }

  .login-page .login-aside-inner {
    gap: 16px;
  }

  .login-page .login-logo {
    width: 110px;
    height: 110px;
  }

  .login-page .login-form-card {
    padding: 40px 32px;
  }

	.login-page .login-aside-title {
		font-size: 30px;
	}
}

@media (max-width: 480px) {
  .login-page .login-form-card {
    padding: 32px 24px;
  }

  .login-page .login-form-inner {
    max-width: 100%;
  }
}

@media (max-width: 420px) {
  .login-page .row {
    flex-direction: column;
    align-items: flex-start;
  }

  .login-page h1 {
    font-size: 24px;
  }
}

.dashboard-page,
.dashboard-page * {
	box-sizing: border-box;
}

.dashboard-page {
	margin: 0;
	font-family: "IBM Plex Sans", "Segoe UI", sans-serif;
	color: var(--c-text);
	min-height: 100vh;
	overflow-x: hidden;
	--dash-sidebar-mobile-width: 0px;
	background: linear-gradient(180deg, #eaf1f8 0%, #f7f9fc 100%);
}

.dash-app {
	display: grid;
	grid-template-columns: 250px minmax(0, 1fr);
	min-height: 100vh;
	transition: grid-template-columns .22s ease;
	position: relative;
}

.dashboard-page.is-sidebar-collapsed .dash-app {
	grid-template-columns: 0 minmax(0, 1fr);
}

.dash-sidebar {
	background: linear-gradient(180deg, #0D2237 0%, #0A1C2E 100%);
	border-right: 1px solid rgba(255, 255, 255, .04);
	box-shadow: var(--shadow-sidebar);
	padding: 18px 12px 16px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	height: 100vh;
	position: sticky;
	top: 0;
	overflow-y: auto;
	overflow-x: hidden;
	transition: opacity .22s ease, transform .22s ease, padding .22s ease;
}

.dash-sidebar-footer {
	margin-top: auto;
	padding-top: 12px;
	border-top: 1px solid rgba(255, 255, 255, .07);
	background: linear-gradient(180deg, rgba(10, 28, 46, 0) 0%, rgba(10, 28, 46, .80) 40%, rgba(8, 22, 36, .96) 100%);
}

.dash-sidebar-footer .dash-nav-item {
	width: 100%;
	border: 0;
	background: rgba(255, 255, 255, .08);
	text-align: left;
	font: inherit;
	cursor: pointer;
}

.dash-sidebar-footer .dash-nav-item:hover {
	background: rgba(255, 255, 255, .12);
}

.dashboard-page.is-sidebar-collapsed .dash-sidebar {
	opacity: 0;
	pointer-events: none;
	transform: translateX(-18px);
	padding-left: 0;
	padding-right: 0;
	transition: opacity .22s ease, transform .26s cubic-bezier(.4,0,.2,1), padding .22s ease;
}

.dash-sidebar-overlay {
	display: none;
	position: fixed;
	inset: 0;
	border: 0;
	padding: 0;
	background: transparent;
	opacity: 0;
	pointer-events: none;
	appearance: none;
}

.dash-sidebar-handle {
	/* Tab pegado al borde derecho del sidebar */
	position: absolute;
	top: 50%;
	left: 250px;
	transform: translateY(-50%);          /* solo centra verticalmente, sin desplazar */
	width: 18px;
	height: 48px;
	padding: 0;
	border: 0;
	border-radius: 0 6px 6px 0;
	background: rgba(255, 255, 255, .07);
	color: rgba(196, 216, 234, .55);
	font-size: 13px;
	line-height: 1;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	z-index: 15;
	transition:
		left .26s cubic-bezier(.4,0,.2,1),
		background .18s ease,
		color .18s ease;
}

.dash-sidebar-handle:hover {
	background: rgba(255, 255, 255, .13);
	color: rgba(255, 255, 255, .90);
}

/* Colapsado: el tab se convierte en un botón visible en el borde de la pantalla */
.dashboard-page.is-sidebar-collapsed .dash-sidebar-handle {
	left: 0;
	border-radius: 0 6px 6px 0;
	background: var(--c-primary);
	color: rgba(255, 255, 255, .80);
	box-shadow: 3px 0 12px rgba(13, 45, 74, .22);
}

.dashboard-page.is-sidebar-collapsed .dash-sidebar-handle:hover {
	background: var(--c-blue-1);
	color: #ffffff;
}

.dash-logo {
	font-family: "Manrope", sans-serif;
	font-size: 18px;
	font-weight: 800;
	color: #ffffff;
	letter-spacing: -.02em;
}

.dash-company-brand {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	padding: 18px 14px;
	border-radius: 16px;
	background: linear-gradient(180deg, rgba(255, 255, 255, .06) 0%, rgba(255, 255, 255, .03) 100%);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08);
	text-align: center;
}

.dash-company-brand-image,
.dash-company-brand-fallback {
	width: 132px;
	height: 132px;
	border-radius: 50%;
	flex: 0 0 auto;
	background: linear-gradient(145deg, var(--c-action) 0%, #bfd86c 100%);
	box-shadow: 0 18px 34px rgba(160, 191, 59, .24);
}

.dash-company-brand-image {
	object-fit: cover;
	padding: 10px;
	background: #ffffff;
	border: 1px solid rgba(255, 255, 255, .12);
}

.dash-company-brand-fallback {
	display: grid;
	place-items: center;
	font-family: "Manrope", sans-serif;
	font-size: 42px;
	font-weight: 800;
	color: var(--c-primary);
	text-transform: uppercase;
}

.dash-company-brand-meta {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.dash-company-brand-meta strong {
	font-size: 15px;
	font-weight: 800;
	color: #ffffff;
	line-height: 1.2;
}

.dash-company-brand-meta span {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .64);
}

.dash-user {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 12px;
	border-radius: 12px;
	background: rgba(255, 255, 255, .05);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .07);
}

.dash-avatar {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	font-family: "Manrope", sans-serif;
	font-size: 14px;
	font-weight: 800;
	color: var(--c-primary);
	background: linear-gradient(145deg, var(--c-action) 0%, #bfd86c 100%);
	box-shadow: 0 10px 18px rgba(160, 191, 59, .24);
	flex: 0 0 auto;
	overflow: hidden;
}

.dash-avatar-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.dash-user-meta {
	min-width: 0;
}

.dash-user-name {
	font-size: 14px;
	font-weight: 700;
	color: #fff;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.dash-user-role {
	font-size: 12px;
	color: rgba(255, 255, 255, .72);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.dash-sidebar-title {
	margin: 4px 0 0;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: rgba(255, 255, 255, .72);
}

.dash-nav {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.dash-nav-list,
.dash-submenu-group {
	list-style: none;
	margin: 0;
	padding: 0;
}

.dash-nav-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.dash-nav-group {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.dash-nav-heading {
	margin: 10px 0 4px;
	padding: 0 10px;
	font-size: 10px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .14em;
	color: rgba(205, 220, 234, .62);
}

.dash-nav-divider {
	height: 1px;
	background: rgba(255, 255, 255, .10);
	margin: 8px 0 2px;
}

.dash-nav-item {
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 12px 10px 16px;
	border-radius: 10px;
	color: rgba(196, 216, 234, .78);
	text-decoration: none;
	font-size: 13px;
	font-weight: 600;
	transition: background .18s ease, color .18s ease, box-shadow .18s ease;
}

.dash-nav-item::before {
	content: "";
	position: absolute;
	left: 0;
	top: 6px;
	bottom: 6px;
	width: 3px;
	border-radius: 0 3px 3px 0;
	background: transparent;
	transition: background .18s ease, transform .18s ease;
	transform: scaleY(0);
}

.dash-nav-item:hover {
	background: rgba(255, 255, 255, .06);
	color: rgba(230, 242, 252, .95);
}


.dash-nav-item:hover::before {
	background: rgba(143, 179, 46, .50);
	transform: scaleY(1);
}

.dash-nav-item.is-active::before {
	background: var(--c-action);
	transform: scaleY(1);
}

.dash-nav-icon {
	width: 18px;
	text-align: center;
	font-size: 16px;
	line-height: 1;
	opacity: .96;
}

.dash-content {
	padding: 10px 7px 10px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.dash-topbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 14px;
	padding: 12px 16px;
	width: 100%;
	max-width: 100%;
	background: #0D2D4A;
	border: none;
	border-radius: 14px;
	box-shadow: var(--shadow-card);
	position: sticky;
	top: 10px;
	overflow: visible;
	isolation: isolate;
	z-index: 80;
	color: #ffffff;
}

.dash-topbar::after {
	display: none;
}

.dash-topbar-left,
.dash-topbar-right {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
	flex-wrap: wrap;
	position: relative;
	z-index: 1;
	overflow: visible;
}

.dash-topbar-left {
	flex: 1 1 auto;
}

.dash-topbar-right {
	margin-left: auto;
	justify-content: flex-end;
}

.dash-brand {
	font-family: "Manrope", sans-serif;
	font-size: 20px;
	font-weight: 800;
	letter-spacing: -.02em;
	color: #ffffff;
}

.dash-brand small {
	display: block;
	font-family: "IBM Plex Sans", sans-serif;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .07em;
	color: rgba(255, 255, 255, .7);
	margin-top: 3px;
}

.dash-actions {
	display: flex;
	align-items: center;
	gap: 10px;
}

.dash-mobile-menu-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 1px solid rgba(255, 255, 255, .35);
	border-radius: 10px;
	background: rgba(255, 255, 255, .15);
	color: #ffffff;
	font-size: 20px;
	font-weight: 800;
	cursor: pointer;
	box-shadow: none;
}

.dash-icon-btn {
	width: 40px;
	height: 40px;
	border-radius: 10px;
	border: 1px solid #d9e3ef;
	background: #fff;
	color: #435a72;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	cursor: pointer;
	box-shadow: none;
	transition: transform .12s ease, filter .2s ease, box-shadow .2s ease, background .2s ease;
}

.dash-icon-btn:hover {
	background: #f5f8fb;
	filter: none;
	box-shadow: 0 8px 18px rgba(17, 67, 106, .08);
}

.dash-icon-btn:active {
	transform: translateY(1px);
}
.dash-notification {
	position: relative;
}

.dash-notification::after {
	content: "";
	position: absolute;
	top: 10px;
	right: 11px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #ff5d7d;
	box-shadow: 0 0 0 3px #fff;
}

.dash-search {
	min-width: 220px;
	padding: 10px 14px;
	border-radius: 10px;
	border: 1px solid rgba(255, 255, 255, .3);
	background: rgba(255, 255, 255, .15);
	color: #ffffff;
	font: inherit;
	box-shadow: none;
}

.dash-search::placeholder {
	color: rgba(255, 255, 255, .6);
}

.dash-search:focus {
	outline: none;
	background: rgba(255, 255, 255, .25);
	border-color: rgba(255, 255, 255, .6);
	box-shadow: 0 0 0 3px rgba(255, 255, 255, .15);
}

/* ── Autocomplete dropdown del topbar ── */
.dash-search-wrap {
	position: relative;
}

.dash-topbar-profile {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 8px 14px 8px 10px;
	border: 0;
	border-radius: 16px;
	background: rgba(255, 255, 255, .08);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08);
	min-width: 0;
	font: inherit;
	text-align: left;
	cursor: pointer;
	transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}

.dash-topbar-profile:hover,
.dash-topbar-profile:focus-visible {
	background: rgba(255, 255, 255, .12);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .16), 0 8px 20px rgba(13, 45, 74, .12);
}

.dash-topbar-profile:active {
	transform: translateY(1px);
}

.dash-topbar-profile:focus-visible {
	outline: 2px solid rgba(200, 220, 120, .85);
	outline-offset: 2px;
}

.dash-topbar-profile-avatar {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	overflow: hidden;
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	font-family: "Manrope", sans-serif;
	font-size: 16px;
	font-weight: 800;
	color: var(--c-primary);
	background: linear-gradient(145deg, var(--c-action) 0%, #bfd86c 100%);
	box-shadow: 0 10px 20px rgba(160, 191, 59, .24);
}

.dash-topbar-profile-meta {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.dash-topbar-profile-meta strong,
.dash-topbar-profile-meta span {
	display: block;
	max-width: 180px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.dash-topbar-profile-meta strong {
	font-size: 14px;
	font-weight: 800;
	color: #ffffff;
}

.dash-topbar-profile-meta span {
	font-size: 12px;
	font-weight: 700;
	color: rgba(255, 255, 255, .72);
}

.dash-search-dropdown {
	position: absolute;
	top: calc(100% + 6px);
	right: 0;
	min-width: 320px;
	max-width: 420px;
	background: #fff;
	border: 1px solid #dce4ee;
	border-radius: 14px;
	box-shadow: 0 12px 32px rgba(17, 67, 106, .14), 0 2px 8px rgba(17, 67, 106, .06);
	list-style: none;
	margin: 0;
	padding: 6px 0;
	z-index: 200;
	overflow: hidden;
	animation: fadeSlideUp .14s ease reverse;
}

.dash-search-dropdown[hidden] {
	display: none;
}

.dash-search-suggestion {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 10px 16px;
	cursor: pointer;
	transition: background .1s ease;
	border-radius: 0;
}

.dash-search-suggestion:hover,
.dash-search-suggestion.is-active {
	background: #f0f5fb;
}

.dash-search-suggestion strong {
	font-family: "Manrope", sans-serif;
	font-size: 14px;
	font-weight: 700;
	color: var(--c-primary);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.dash-search-suggestion span {
	font-size: 12px;
	color: #73879c;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.dash-search-suggestion-empty {
	padding: 12px 16px;
	font-size: 13px;
	color: #9aafc5;
	text-align: center;
}

.dash-main {
	display: block;
	
	
}

.dash-panel {
	background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
	border: 1px solid #e4ebf5;
	border-radius: 18px;
	padding: 15px;
	box-shadow: 0 14px 32px rgba(37, 61, 89, .07);
	width: 100%;
	max-width: 100%;
	min-width: 0;
	height: 100%;
	position: relative;
	overflow: hidden;
}



.dash-panel h1,
.dash-panel h2,
.dash-panel h3 {
	margin-top: 0;
	font-family: "Manrope", sans-serif;
	color: #22354b;
}

.dash-h1 {
	margin: 0 0 6px;
	font-size: 31px;
	font-weight: 800;
	letter-spacing: -.03em;
}

.dash-sub {
	margin: 4px 0 20px;
	color: var(--c-text-muted);
	font-size: 13px;
	line-height: 1.55;
}

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

.kpi {
	position: relative;
	background: linear-gradient(180deg, #ffffff 0%, #f7fafd 100%);
	border: none;
	border-radius: 12px;
	padding: 15px 14px 14px;
	min-height: 94px;
	box-shadow: var(--shadow-card);
	overflow: hidden;
}

.kpi::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 2px;
	background: linear-gradient(90deg, var(--c-blue-2) 0%, var(--c-action) 100%);
}

.kpi .label {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: #6e87a0;
	margin-bottom: 8px;
	display: block;
	font-weight: 800;
}

.kpi .value {
	font-size: 25px;
	font-family: "Manrope", sans-serif;
	font-weight: 800;
	color: #2a3f54;
}

.alert {
	border-radius: 14px;
	padding: 12px 14px;
	margin-bottom: 14px;
	font-size: 14px;
}

.alert ul {
	margin: 0;
	padding-left: 18px;
}

.alert-error {
	background: #fff1f1;
	border: 1px solid #ebc3c3;
	color: #8a3e3e;
}

.alert-success {
	background: #eef7dd;
	border: 1px solid #d5e7a4;
	color: #345118;
	font-weight: 600;
}

.form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.field-block {
	padding-top: 5px;
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.field-block.span-2 {
	grid-column: span 2;
}

.field-block label {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .08em;
	font-weight: 800;
	color: #5a738e;
}

.field-block input,
.field-block select,
.field-block textarea {
	width: 100%;
	border: 1px solid #d9e3ee;
	border-radius: 12px;
	padding: 12px 13px;
	font: inherit;
	color: #25384e;
	background: linear-gradient(180deg, #ffffff 0%, #f9fbfd 100%);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
	transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.field-block input:focus,
.field-block select:focus,
.field-block textarea:focus {
	outline: none;
	border-color: #4F6E9C;
	box-shadow: 0 0 0 4px rgba(79, 110, 156, .10);
	background: #fff;
}

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border: 1px solid rgba(17, 67, 106, .20);
	border-radius: 16px;
	padding: 12px 18px;
	min-height: 42px;
	font-family: "Manrope", sans-serif;
	font-size: 14px;
	font-weight: 800;
	letter-spacing: .01em;
	text-decoration: none;
	color: #fff;
	cursor: pointer;
	background: linear-gradient(135deg, var(--c-blue-1) 0%, var(--c-primary) 100%);
	box-shadow: var(--shadow-soft);
	transition: filter .2s ease, transform .1s ease, box-shadow .2s ease;
}

.btn:active {
	transform: translateY(1px);
}

.btn-action {
	background: linear-gradient(135deg, var(--c-action) 0%, #bfd86c 100%);
	color: var(--c-primary);
	border-color: rgba(160, 191, 59, .40);
	box-shadow: 0 12px 26px rgba(160, 191, 59, .22);
}

.btn-secondary {
	background: linear-gradient(135deg, var(--c-blue-2) 0%, var(--c-blue-1) 100%);
	color: #fff;
	border: 1px solid rgba(17, 67, 106, .22);
}

.btn:hover {
	filter: brightness(1.03);
}

.btn:disabled,
.qa-btn:disabled,
.grid-profile-btn:disabled,
.rh-grid-export:disabled,
.profile-edit-btn:disabled,
.password-eye:disabled {
	opacity: .58;
	cursor: not-allowed;
	box-shadow: none;
	filter: grayscale(.1);
}

/* Base para acciones rapidas (enlaces o botones) */
.quick-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.qa-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	border: 1px solid #d7e1ec;
	background: linear-gradient(180deg, #ffffff 0%, #f7fafc 100%);
	color: #425b74;
	border-radius: 10px;
	padding: 9px 14px;
	font-size: 12px;
	font-weight: 800;
	text-decoration: none;
	cursor: pointer;
	box-shadow: 0 4px 10px rgba(17, 67, 106, .05);
}

.qa-btn span {
	font-size: 13px;
}

.section-gap {
	margin-bottom: 12px;
}

.empty-copy {
	margin: 0;
	color: #7d8fa5;
	font-size: 14px;
}

.stack {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.info-card {
	position: relative;
	padding: 22px 22px 20px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	border-radius: 16px;
	border: none;
	background: var(--c-surface-card);
	box-shadow: var(--shadow-card);
	overflow: hidden;
}

.info-card::after {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 3px;
	background: linear-gradient(90deg, var(--c-success) 0%, var(--c-blue-1) 60%, var(--c-action) 100%);
	opacity: .7;
}

/* ── Título de sección ───────────────────────────── */
.info-card h3,
.section-title-inline {
	margin: 0 0 4px;
	font-family: "Manrope", sans-serif;
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .14em;
	color: var(--c-text-muted);
}

/* Línea separadora decorativa bajo el título */
.info-card > h3::after,
.section-title-inline::after {
	content: "";
	display: block;
	width: 28px;
	height: 2px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--c-action) 0%, var(--c-success) 100%);
	margin-top: 6px;
	margin-bottom: 14px;
}

.code-block {
	background: #f8fbff;
	border: 1px solid #e0e8f2;
	border-radius: 14px;
	padding: 14px;
	color: #445a72;
	font-size: 12px;
	white-space: pre-wrap;
	word-break: break-word;
	overflow-x: auto;
	margin: 0;
}

.link-list {
	margin: 0;
	padding-left: 18px;
	color: #60768e;
	font-size: 14px;
}

.link-list a {
	color: var(--c-blue-1);
	text-decoration: none;
}

.link-list a:hover {
	color: var(--c-primary);
}

.metric-strip {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
	margin-bottom: 18px;
}



.metric-mini {
	position: relative;
	padding: 18px 16px 16px 20px;
	border: none;
	border-radius: 14px;
	background: var(--c-surface-card);
	box-shadow: var(--shadow-card);
	overflow: hidden;
}



.metric-mini::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(255,255,255,0) 60%, rgba(240,247,255,.55) 100%);
	pointer-events: none;
}

.metric-mini strong {
	display: block;
	font-family: "Manrope", sans-serif;
	font-size: 36px;
	font-weight: 800;
	line-height: 1;
	color: var(--c-text);
	margin-bottom: 6px;
	letter-spacing: -.03em;
}

.metric-mini span {
	font-size: 11.5px;
	font-weight: 600;
	color: var(--c-text-soft);
	line-height: 1.4;
	text-transform: uppercase;
	letter-spacing: .04em;
}

:is(.dash-panel, .kpi, .info-card, .metric-mini, .gerente-focus-item, .admin-modal-card) {
	transition: transform .18s ease, box-shadow .22s ease, border-color .22s ease;
}

:is(.dash-panel, .kpi, .info-card, .metric-mini, .gerente-focus-item):hover {
	transform: translateY(-3px);
	box-shadow: 0 16px 32px rgba(13, 45, 74, .12);
}

@media (prefers-reduced-motion: no-preference) {
	/* Cards individuales con stagger por posición */
	.metric-mini,
	.gerente-focus-item {
		animation: fadeSlideUp .32s cubic-bezier(.22,.68,0,1.2) both;
	}

	.metric-mini:nth-child(1), .gerente-focus-item:nth-child(1) { animation-delay: .04s; }
	.metric-mini:nth-child(2), .gerente-focus-item:nth-child(2) { animation-delay: .09s; }
	.metric-mini:nth-child(3), .gerente-focus-item:nth-child(3) { animation-delay: .14s; }
	.metric-mini:nth-child(4), .gerente-focus-item:nth-child(4) { animation-delay: .19s; }
	.metric-mini:nth-child(5), .gerente-focus-item:nth-child(5) { animation-delay: .24s; }
	.metric-mini:nth-child(6), .gerente-focus-item:nth-child(6) { animation-delay: .29s; }

	.dash-panel,
	.kpi,
	.info-card {
		animation: fadeSlideUp .38s cubic-bezier(.22,.68,0,1.1) both;
	}

	/* Sidebar entra desde la izquierda */
	.dash-sidebar {
		animation: sidebarEnter .36s cubic-bezier(.4,0,.2,1) both;
	}

	/* Login form entra desde abajo */
	.login-page .login-form-inner {
		animation: fadeSlideUp .40s cubic-bezier(.22,.68,0,1.1) .10s both;
	}

	/* Panel izquierdo del login */
	.login-page .login-aside-inner {
		animation: fadeSlideUp .44s cubic-bezier(.22,.68,0,1.1) .05s both;
	}
}

@keyframes fadeSlideUp {
	from {
		opacity: 0;
		transform: translateY(10px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes sidebarEnter {
	from {
		opacity: 0;
		transform: translateX(-18px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

:where(.dash-sidebar)::-webkit-scrollbar {
	width: 4px;
	height: 4px;
}

:where(.dash-sidebar)::-webkit-scrollbar-thumb {
	background: rgba(143, 179, 46, .35);
	border-radius: 999px;
}

:where(.dash-sidebar)::-webkit-scrollbar-thumb:hover {
	background: rgba(143, 179, 46, .60);
}

:where(.dash-sidebar)::-webkit-scrollbar-track {
	background: rgba(255, 255, 255, .04);
	border-radius: 999px;
}

.profile-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.profile-layout-shell {
	display: grid;
	gap: 14px;
}

.profile-hero-grid {
	display: grid;
	grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
	gap: 18px;
	align-items: stretch;
}

.profile-photo-input {
	position: absolute;
	inline-size: 1px;
	block-size: 1px;
	overflow: hidden;
	opacity: 0;
	pointer-events: none;
}

.profile-photo-card-body {
	display: grid;
	gap: 14px;
}

.profile-photo-card--compact {
	padding: 18px 20px 20px;
}

.profile-photo-card-body.is-compact {
	
	align-items: center;
	gap: 18px;
}

.profile-hero-grid--compact {
	grid-template-columns: 1fr;
}

.profile-photo-dropzone,
.profile-photo-dropzone.is-static {
	display: grid;
	gap: 10px;
	text-decoration: none;
	color: inherit;
	cursor: pointer;
}

.profile-photo-dropzone.is-static {
	cursor: default;
}

.profile-photo-preview {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 260px;
	padding: 16px;
	border-radius: 24px;
	background: radial-gradient(circle at 18% 18%, rgba(143, 179, 46, .22), transparent 34%), linear-gradient(180deg, #f7fbef 0%, #edf4fb 100%);
	border: 1px solid rgba(17, 67, 106, .12);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.8), 0 10px 24px rgba(13, 45, 74, .08);
	overflow: hidden;
}

.profile-photo-preview.is-compact {
	min-height: 208px;
}

.profile-photo-preview.is-empty {
	border-style: dashed;
	background: linear-gradient(180deg, #f8fbfd 0%, #eef4fa 100%);
}

.profile-photo-preview img {
	width: 100%;
	height: 100%;
	max-height: 280px;
	object-fit: cover;
	border-radius: 20px;
	box-shadow: 0 12px 28px rgba(13, 45, 74, .12);
}

.profile-photo-fallback {
	display: grid;
	place-items: center;
	align-content: center;
	gap: 10px;
	width: 100%;
	height: 100%;
	min-height: 228px;
	border-radius: 20px;
	background: linear-gradient(145deg, rgba(143, 179, 46, .22) 0%, rgba(79, 110, 156, .12) 100%);
	color: var(--c-primary);
	text-align: center;
	padding: 24px;
}

.profile-photo-fallback strong {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 108px;
	height: 108px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--c-action) 0%, #bfd86c 100%);
	box-shadow: 0 16px 28px rgba(143, 179, 46, .24);
	font-family: "Manrope", sans-serif;
	font-size: 34px;
	font-weight: 800;
	letter-spacing: -.04em;
}

.profile-photo-fallback small,
.profile-photo-caption,
.profile-photo-hint {
	font-size: 12px;
	font-weight: 700;
	color: var(--c-text-soft);
}

.profile-photo-caption {
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--c-blue-1);
}

.profile-photo-hint {
	font-weight: 600;
	line-height: 1.45;
	text-transform: none;
	letter-spacing: normal;
}

.profile-photo-fallback.is-hidden {
	display: none;
}

.profile-metric-strip {
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	margin-bottom: 0;
	height: 100%;
	align-content: start;
}

.profile-identity-card {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	align-content: start;
}

.profile-identity-item {
	padding: 14px 16px;
	border: 1px solid rgba(17, 67, 106, .10);
	border-radius: 16px;
	background: linear-gradient(180deg, rgba(248, 251, 253, .92) 0%, rgba(238, 244, 250, .98) 100%);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.72);
	min-width: 0;
}

.profile-identity-item span {
	display: block;
	margin-bottom: 6px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--c-text-soft);
}

.profile-identity-item strong {
	display: block;
	font-family: "Manrope", sans-serif;
	font-size: clamp(18px, 2vw, 24px);
	line-height: 1.15;
	letter-spacing: -.03em;
	color: var(--c-text);
	overflow-wrap: anywhere;
}

.profile-form-card {
	display: grid;
	gap: 12px;
	padding-top: 2px;
}

.profile-actions-row {
	display: flex;
	justify-content: center;
	padding-top: 2px;
}

.profile-actions-row .btn {
	min-width: 180px;
}

.profile-field {
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.profile-field-label {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .08em;
	font-weight: 800;
	color: var(--c-blue-1);
}

.profile-input {
	width: 70%;
	border: 1px solid var(--c-line);
	border-radius: 12px;
	padding: 10px 12px;
	font: inherit;
	color: #25384e;
	background: var(--c-surface);
	transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.profile-input:focus {
	outline: none;
	border-color: var(--c-primary);
	box-shadow: 0 0 0 4px rgba(17, 67, 106, .10);
	background: #fff;
}

.password-wrap {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 42px;
	gap: 8px;
}

.password-eye {
	border: 1px solid rgba(17, 67, 106, .22);
	border-radius: 14px;
	background: linear-gradient(135deg, var(--c-blue-1) 0%, var(--c-primary) 100%);
	color: #fff;
	cursor: pointer;
	font-size: 16px;
	line-height: 1;
	box-shadow: 0 8px 18px rgba(17, 67, 106, .14);
}

.password-eye:hover {
	filter: brightness(1.03);
}

.profile-note {
	margin: 12px 0 0;
	font-size: 12px;
	color: #7d8fa5;
}

.section-label-caps {
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--c-blue-1);
	margin: 0 0 14px;
}

.profile-input-wrap {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 36px;
	gap: 8px;
	align-items: center;
}

.profile-edit-btn {
	border: 1px solid rgba(17, 67, 106, .22);
	border-radius: 12px;
	background: linear-gradient(135deg, var(--c-blue-1) 0%, var(--c-primary) 100%);
	color: #fff;
	font-size: 13px;
	font-weight: 800;
	line-height: 1;
	height: 100%;
	min-height: 32px;
	cursor: pointer;
	box-shadow: 0 8px 18px rgba(17, 67, 106, .14);
}

.profile-edit-btn:hover {
	filter: brightness(1.03);
	border-color: rgba(17, 67, 106, .28);
}

.profile-tabs-card {
	padding-top: 12px;
}

.profile-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	padding: 5px 6px;
	margin-bottom: 18px;
	background: var(--c-surface-soft);
	border-radius: 14px;
	border: none;
	box-shadow: inset 0 1px 3px rgba(13, 45, 74, .07);
	align-items: center;
}

.profile-tab {
	position: static;
	border: none;
	background: transparent;
	color: var(--c-text-soft);
	border-radius: 10px;
	padding: 6px 14px;
	font-size: 11.5px;
	font-weight: 700;
	cursor: pointer;
	transition: background .18s ease, color .18s ease, box-shadow .18s ease, transform .15s ease;
	white-space: nowrap;
}

.profile-tab:hover {
	background: rgba(255, 255, 255, .75);
	color: var(--c-primary);
	box-shadow: 0 2px 8px rgba(13, 45, 74, .08);
}

.profile-tab.is-active {
	background: linear-gradient(135deg, var(--c-primary) 0%, var(--c-primary-mid) 100%);
	color: #ffffff;
	box-shadow: 0 4px 14px rgba(13, 45, 74, .22), inset 0 1px 0 rgba(255,255,255,.12);
	transform: translateY(-1px);
}

.profile-tab-panel {
	padding: 6px 2px 12px;
}

.profile-tab-panel[hidden] {
	display: none;
}

.profile-tab-panel h4 {
	margin: 0 0 8px;
	font-size: 15px;
	color: #23415f;
}

.profile-tab-panel p {
	margin: 0;
	font-size: 13px;
	color: #6d86a0;
}

.documents-widget {
	display: grid;
	gap: 16px;
}

.contacts-widget {
	display: grid;
	gap: 14px;
}

.contacts-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
}

.contacts-grid-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.contacts-readonly-note {
	margin: 0;
	font-size: 12px;
	color: var(--c-text-soft);
	padding-top: 8px;
}

.contact-empty-state {
	display: grid;
	gap: 6px;
	padding: 16px 18px;
	border-radius: 14px;
	border: 1px dashed var(--c-line);
	background: linear-gradient(180deg, #fbfdff 0%, #f2f7fc 100%);
	color: var(--c-text-soft);
}

.contact-empty-state strong {
	font-size: 14px;
	color: var(--c-primary);
}

.contacts-grid-table tbody tr {
	cursor: pointer;
}

.contacts-grid-table tbody tr.is-selected {
	background: linear-gradient(180deg, #f9fcff 0%, #edf4fb 100%);
	box-shadow: inset 3px 0 0 var(--c-action);
}

.contacts-name-cell {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.contacts-primary-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 3px 8px;
	border-radius: 999px;
	font-size: 10px;
	font-weight: 800;
	background: rgba(160, 191, 59, .18);
	color: #3d5914;
}

.contacts-primary-field {
	display: grid;
	align-content: end;
}

.contacts-primary-toggle {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px 12px;
	border: 1px solid var(--c-line);
	border-radius: 12px;
	background: var(--c-surface);
	color: var(--c-text);
	font-size: 13px;
	min-height: 44px;
}

.contacts-primary-toggle input {
	accent-color: var(--c-action);
}

.contacts-notes-input {
	min-height: 88px;
	resize: vertical;
}

.documents-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
}

.documents-header-actions {
	display: flex;
	justify-content: flex-end;
	width: 100%;
	margin-left: auto;
}

.documents-widget {
	display: grid;
	gap: 14px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}

.documents-header .btn {
	min-width: 160px;
}

.documents-layout {
	display: grid;
	grid-template-columns: minmax(280px, 340px) minmax(620px, 1fr);
	gap: 14px;
	align-items: stretch;
	min-width: 980px;
}

.documents-list {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 10px;
	align-content: start;
	min-width: 0;
}

.document-item {
	display: grid;
	gap: 6px;
	width: 100%;
	max-width: 100%;
	min-height: 78px;
	overflow: hidden;
	padding: 11px 12px;
	text-align: left;
	align-content: start;
	border-radius: 14px;
	border: 1px solid rgba(17, 67, 106, 0.16);
	background: #fff;
	box-shadow: 0 3px 12px rgba(13, 45, 74, 0.10), inset 0 1px 0 rgba(255, 255, 255, 0.7);
	cursor: pointer;
	transition: transform .14s ease, box-shadow .18s ease, border-color .18s ease;
}

.document-item:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(22, 92, 148, 0.14);
}

.document-item.is-active {
	border-color: rgba(22, 92, 148, 0.34);
	box-shadow: 0 6px 16px rgba(22, 92, 148, 0.14);
}

.document-item:focus-visible {
	outline: 2px solid rgba(17, 67, 106, .35);
	outline-offset: 2px;
}

.document-item.is-ok {
	border-color: rgba(160, 191, 59, .48);
	background: linear-gradient(180deg, #ffffff 0%, #f6fbef 100%);
}

.document-item.is-warning {
	border-color: rgba(224, 123, 42, .42);
	background: linear-gradient(180deg, #fffdfa 0%, #fbf2e8 100%);
}

.document-item.is-expired {
	border-color: rgba(201, 64, 64, .42);
	background: linear-gradient(180deg, #fffafa 0%, #fbeaea 100%);
}

.document-item.is-pending {
	border-color: rgba(79, 110, 156, .24);
	background: linear-gradient(180deg, #ffffff 0%, #f5f8fc 100%);
}

.document-item-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 6px;
}

.document-item-title {
	font-weight: 800;
	font-size: 12px;
	line-height: 1.3;
	color: var(--c-text);
}

.document-item-chip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 2px 7px;
	border-radius: 999px;
	font-size: 9px;
	font-weight: 800;
	white-space: nowrap;
	background: rgba(79, 110, 156, .14);
	color: #3f5c82;
}

.document-item-chip.is-ok {
	background: rgba(160, 191, 59, .18);
	color: #3d5914;
}

.document-item-chip.is-warning {
	background: rgba(224, 123, 42, .15);
	color: #8b4b15;
}

.document-item-chip.is-expired {
	background: rgba(201, 64, 64, .14);
	color: #8f2c2c;
}

.document-item-chip.is-pending {
	background: rgba(79, 110, 156, .14);
	color: #3f5c82;
}

.document-item-meta {
	font-size: 10px;
	line-height: 1.3;
	color: var(--c-text-soft);
}

.document-item-expiry {
	font-weight: 700;
	color: var(--c-warn);
}

.document-preview {
	display: grid;
	gap: 12px;
	padding: 14px;
	border: 1px dashed #c7d7e8;
	border-radius: 16px;
	background: linear-gradient(180deg, #fbfdff 0%, #f3f8fc 100%);
	min-height: 460px;
}

.document-preview-top {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
}

.document-preview-top h5 {
	margin: 0;
	font-size: 17px;
	color: var(--c-primary);
}

.document-preview-copy {
	margin: 4px 0 0 !important;
}

.document-preview-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	font-size: 12px;
	color: var(--c-text-soft);
}

.document-status-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 6px 10px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .02em;
	background: #eef3f7;
	color: #44627f;
}

.document-status-badge.is-ok {
	background: rgba(160, 191, 59, .18);
	color: #3d5914;
}

.document-status-badge.is-warning {
	background: rgba(224, 123, 42, .15);
	color: #8b4b15;
}

.document-status-badge.is-expired {
	background: rgba(201, 64, 64, .14);
	color: #8f2c2c;
}

.document-status-badge.is-pending {
	background: rgba(79, 110, 156, .14);
	color: #3f5c82;
}

.document-preview-body {
	min-height: 280px;
	border-radius: 14px;
	background: #eef4fa;
	border: 1px solid rgba(17, 67, 106, .08);
	overflow: auto;
	display: block;
	position: relative;
	transition: opacity .18s ease, filter .18s ease;
}

.document-preview-body.is-loading::after {
	content: 'Cargando vista previa...';
	position: absolute;
	inset: 14px 14px auto 14px;
	padding: 8px 12px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .92);
	color: var(--c-primary);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .02em;
	box-shadow: 0 8px 24px rgba(13, 45, 74, .12);
	pointer-events: none;
	z-index: 2;
}

.document-preview-body.is-loading > * {
	opacity: .45;
	filter: saturate(.8);
}

.document-preview-empty {
	display: grid;
	gap: 8px;
	padding: 24px;
	text-align: left;
	color: var(--c-text-soft);
}

.document-preview-empty strong {
	font-size: 15px;
	color: var(--c-primary);
}

.document-summary-grid {
	display: grid;
	gap: 10px;
	padding: 18px;
}

.document-summary-item {
	display: grid;
	gap: 4px;
	padding: 10px 12px;
	border-radius: 12px;
	background: #fff;
	border: 1px solid rgba(17, 67, 106, .10);
	box-shadow: 0 4px 12px rgba(13, 45, 74, .04);
}

.document-summary-label {
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: .08em;
	font-weight: 800;
	color: var(--c-text-soft);
}

.document-summary-value {
	font-size: 13px;
	font-weight: 700;
	color: var(--c-primary);
	line-height: 1.35;
}

.document-item-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 4px;
}

.document-item-actions .qa-btn {
	padding: 7px 10px;
	font-size: 11px;
}

.document-preview-embed {
	width: 100%;
	min-height: 680px;
	border: 0;
	background: #fff;
}

.document-preview-content {
	display: grid;
	gap: 12px;
	padding: 14px;
	min-width: 0;
}

.document-preview-loading {
	margin: 0;
	padding: 8px 12px;
	border-radius: 999px;
	background: rgba(17, 67, 106, .08);
	color: var(--c-primary);
	font-size: 12px;
	font-weight: 700;
	justify-self: center;
}

.document-preview-pdf-shell {
	display: grid;
	gap: 12px;
	justify-items: center;
	width: 100%;
	min-width: 0;
}

.document-preview-pdf-toolbar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 8px 12px;
	border: 1px solid rgba(17, 67, 106, .14);
	border-radius: 999px;
	background: rgba(255, 255, 255, .96);
	box-shadow: 0 10px 26px rgba(13, 45, 74, .10);
	position: sticky;
	top: 0;
	z-index: 1;
	justify-self: center;
}

.document-preview-pdf-toolbar--bottom {
	display: none !important;
}

.document-preview-pdf-button {
	width: 30px;
	height: 30px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(17, 67, 106, .18);
	border-radius: 8px;
	background: #fff;
	color: var(--c-primary);
	font-size: 16px;
	font-weight: 800;
	line-height: 1;
	cursor: pointer;
	transition: background .16s ease, border-color .16s ease, transform .16s ease, color .16s ease;
}

.document-preview-pdf-button:hover:not(:disabled),
.document-preview-pdf-button:focus-visible:not(:disabled) {
	background: rgba(17, 67, 106, .08);
	border-color: rgba(17, 67, 106, .32);
	outline: none;
	transform: translateY(-1px);
}

.document-preview-pdf-button:disabled {
	opacity: .45;
	cursor: not-allowed;
}

.document-preview-pdf-indicator {
	min-width: 120px;
	text-align: center;
	font-size: 13px;
	font-weight: 700;
	color: var(--c-primary);
	white-space: nowrap;
}

.document-preview-canvas {
	max-width: 100%;
	height: auto;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 12px 28px rgba(13, 45, 74, .10);
}

.document-preview-image {
	width: 100%;
	height: 100%;
	max-height: 420px;
	object-fit: contain;
	background: #fff;
}

.document-preview-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.document-readonly-note {
	margin: 0;
	font-size: 12px;
	color: var(--c-text-soft);
	padding-top: 6px;
}

.document-upload-form {
	display: grid;
	gap: 16px;
}

.vacation-module,
.vacation-history-card {
	display: grid;
	gap: 16px;
}

.vacation-panel-head,
.vacation-card-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
	flex-wrap: wrap;
}

.vacation-panel-head h4,
.vacation-card-head h4,
.vacation-card-head h3 {
	margin: 0;
	color: var(--c-primary);
}

.vacation-panel-actions {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}

.vacation-panel-actions .btn {
	width: auto;
	min-width: 160px;
}

.vacation-top-grid,
.vacation-form-preview,
.vacation-review-grid {
	align-items: start;
}

.vacation-split-grid {
	display: grid;
	grid-template-columns: minmax(280px, 4fr) minmax(380px, 6fr);
	gap: 16px;
	align-items: start;
}

.vacation-split-panel {
	display: grid;
	gap: 14px;
	padding: 18px;
	border: 1px solid rgba(17, 67, 106, .12);
	border-radius: 18px;
	background: linear-gradient(180deg, #ffffff 0%, #f9fbfe 100%);
	box-shadow: 0 12px 28px rgba(17, 67, 106, .08);
	min-width: 0;
}

.vacation-split-head,
.vacation-company-group-head,
.vacation-grid-actions {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
	flex-wrap: wrap;
}

.vacation-split-head h5,
.vacation-company-group-head h6 {
	margin: 0;
	color: var(--c-primary);
}

.vacation-benefits-stack {
	display: grid;
	gap: 12px;
}

.vacation-company-group {
	display: grid;
	gap: 10px;
	padding: 14px;
	border: 1px solid rgba(17, 67, 106, .1);
	border-radius: 14px;
	background: rgba(255, 255, 255, .8);
	min-width: 0;
}

.vacation-mini-grid th,
.vacation-mini-grid td {
	vertical-align: middle;
}

.vacation-grid-actions {
	justify-content: flex-start;
	align-items: center;
	gap: 8px;
}

.vacation-grid-action-btn {
	width: auto;
	min-width: 0;
	padding: 8px 12px;
	font-size: 12px;
}

.vacation-grid-action-empty {
	font-size: 12px;
	font-weight: 700;
	color: var(--c-text-soft);
}

.vacation-benefits-table td[colspan="4"],
.vacation-mini-grid td[colspan="5"] {
	color: var(--c-text-soft);
	font-style: italic;
}

@media (max-width: 1100px) {
	.vacation-split-grid {
		grid-template-columns: 1fr;
	}
}

.vacation-rule-strip {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.vacation-chip,
.vacation-status-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 6px 10px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .02em;
	background: rgba(79, 110, 156, .14);
	color: #3f5c82;
}

.vacation-chip.is-ok,
.vacation-status-badge.is-approved {
	background: rgba(160, 191, 59, .18);
	color: #3d5914;
}

.vacation-chip.is-warn,
.vacation-status-badge.is-pending {
	background: rgba(224, 123, 42, .16);
	color: #8b4b15;
}

.vacation-chip.is-neutral,
.vacation-status-badge.is-neutral {
	background: rgba(79, 110, 156, .14);
	color: #3f5c82;
}

.vacation-status-badge.is-rejected,
.vacation-status-badge.is-cancelled {
	background: rgba(201, 64, 64, .14);
	color: #8f2c2c;
}

.vacation-inline-note {
	padding: 12px 14px;
	border-radius: 12px;
	border: 1px dashed rgba(17, 67, 106, .18);
	background: linear-gradient(180deg, #fbfdff 0%, #f3f8fc 100%);
	color: var(--c-text-soft);
	font-size: 13px;
	line-height: 1.5;
}

.vacation-inline-note.is-loaded {
	border-style: solid;
	border-color: rgba(160, 191, 59, .42);
	background: linear-gradient(180deg, #f9ffef 0%, #eff8dd 100%);
	color: #2f4b17;
	font-weight: 700;
	box-shadow: 0 10px 22px rgba(160, 191, 59, .14);
}

.vacation-detail-label {
	display: block;
	margin-bottom: 6px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--c-text-soft);
}

.vacation-review-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 12px;
}

.vacation-review-grid > div {
	padding: 12px 14px;
	border: 1px solid var(--c-line);
	border-radius: 14px;
	background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.vacation-review-grid strong {
	color: var(--c-primary);
}

.vacation-validation-list {
	margin: 0;
	padding-left: 18px;
}

.vacation-validation-list li + li {
	margin-top: 4px;
}

.vacation-request-shell {
	display: flex;
	flex-direction: row-reverse;
	justify-content: space-between;
	align-items: flex-start;
	gap: 16px;
}

.vacation-request-panel {
	min-width: 0;
}

.vacation-request-panel--calendar {
	padding: 12px;
	border: 1px solid #d9e4ef;
	border-radius: 16px;
	background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
	width: 50%;
}

.vacation-request-panel--form {
	padding-left: 4px;
	width: 50%;
}

.vacation-range-panels {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}
.vacation-date-picker-summary{
	display: flex;
	flex-direction: row;
	justify-content: space-between;
}

.vacation-date-picker {
	display: grid;
	gap: 10px;
	padding: 12px;
	border-radius: 16px;
	border: 1px solid #d5e0eb;
	background: linear-gradient(180deg, #f9fbfd 0%, #f2f6fa 100%);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}

.vacation-date-pill {
	padding: 10px 12px;
	border-radius: 14px;
	background: #eef3f8;
	border: 1px solid #dce5ef;
	color: var(--c-text-soft);
	font-size: 12px;
	width: 45%;
	
}

.vacation-date-pill strong {
	display: block;
	margin-top: 4px;
	font-size: 15px;
	font-weight: 800;
	color: #1d3146;
}

.vacation-date-pill--calendar {
	min-height: 58px;
}

.vacation-calendar-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}

.vacation-calendar-month {
	font-family: "Manrope", sans-serif;
	font-size: 18px;
	font-weight: 800;
	color: #30445a;
	text-transform: lowercase;
}

.vacation-calendar-nav {
	width: 32px;
	height: 32px;
	border: 1px solid #cad7e5;
	border-radius: 999px;
	background: rgba(255,255,255,.75);
	color: #3a5877;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
}

.vacation-calendar-weekdays,
.vacation-calendar-days {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 4px;
}

.vacation-calendar-weekdays span {
	text-align: center;
	font-size: 11px;
	font-weight: 800;
	color: #7186a1;
	text-transform: uppercase;
}

.vacation-calendar-day {
	min-height: 34px;
	border: 0;
	padding: 0;
	border-radius: 10px;
	background: transparent;
	color: #2c3642;
	font-weight: 700;
	cursor: pointer;
}

.vacation-calendar-day span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-height: 34px;
	border-radius: 10px;
}

.vacation-calendar-day.is-disabled {
	cursor: not-allowed;
	background: rgba(177,177,177,.24);
	color: #8a8f95;
}

.vacation-calendar-day.is-disabled span {
	text-decoration: line-through;
	text-decoration-thickness: 1.5px;
	text-decoration-color: rgba(104,111,119,.9);
	opacity: .9;
}

.vacation-calendar-day.is-in-range {
	background: rgba(54, 58, 64, .18);
}

.vacation-calendar-day.is-selected-start span,
.vacation-calendar-day.is-selected-end span {
	width: 34px;
	height: 34px;
	min-height: 34px;
	margin: 0 auto;
	border-radius: 999px;
	background: #23272d;
	color: #fff;
	box-shadow: 0 0 0 2px rgba(255,255,255,.28);
}

.vacation-calendar-day.is-today:not(.is-selected-start):not(.is-selected-end) span {
	border: 1px solid rgba(17, 67, 106, .22);
}

.vacation-calendar-day.is-empty {
	pointer-events: none;
	visibility: hidden;
}

.vacation-calendar-helper {
	margin: 0;
	font-size: 12px;
	color: #6a7f98;
}

.vacation-form-preview {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	padding: 12px;
	border: 1px solid rgba(17, 67, 106, .14);
	border-radius: 14px;
	background: #fff;
}

.vacation-form-note--full {
	grid-column: 1 / -1;
}

.vacation-request-confirmation {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 12px;
	padding: 10px 12px;
	border: 1px solid rgba(17, 67, 106, .14);
	border-radius: 12px;
	background: linear-gradient(180deg, #f7fbff 0%, #eef5fc 100%);
}

.vacation-request-confirmation input[type="checkbox"] {
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: var(--c-primary);
	flex-shrink: 0;
}

.vacation-request-confirmation span {
	font-size: 14px;
	color: #20364e;
	font-weight: 600;
	line-height: 1.35;
}

@media (max-width: 760px) {
	.vacation-panel-actions {
		width: 100%;
	}

	.vacation-panel-actions .btn {
		width: 100%;
	}

	.vacation-request-shell {
		flex-direction: column;
	}

	.vacation-request-panel--calendar {
		width: 100%;
	}

	.vacation-request-panel--form {
		padding-left: 0;
		width: 100%;
	}

	.vacation-range-panels,
	.vacation-form-preview {
		grid-template-columns: 1fr;
	}

	.ho-request-layout {
		grid-template-columns: 1fr;
	}

	.ho-request-panel {
		padding: 12px;
	}

	.ho-request-actions .btn {
		width: 100%;
		min-width: 0;
	}

	.request-modal-row--split {
		grid-template-columns: 1fr;
	}
}

.document-modal-card {
	max-width: 900px;
}

.profile-field--full {
	grid-column: 1 / -1;
}

.document-upload-toggle {
	width: 100%;
	justify-content: space-between;
	box-sizing: border-box;
}

.document-dropzone {
	display: grid;
	place-items: center;
	gap: 5px;
	padding: 10px 12px;
	border-radius: 12px;
	border: 1px dashed rgba(17, 67, 106, 0.22);
	background: #fff;
	text-align: center;
	color: var(--c-text-soft);
	cursor: pointer;
	transition: border-color .18s ease, background .18s ease, transform .18s ease;
}

.document-dropzone strong {
	font-size: 11px;
	font-weight: 700;
	color: var(--c-text);
}

.document-dropzone-icon {
	font-size: 28px;
}

.document-dropzone-icon-image {
	width: 30px;
	height: 30px;
	object-fit: contain;
	display: block;
}

.document-dropzone.is-dragover {
	border-color: rgba(22, 92, 148, 0.34);
	background: #fff;
	transform: translateY(-1px);
}

.ho-request-dropzone.is-disabled {
	opacity: .62;
	cursor: not-allowed;
	pointer-events: none;
}

.ho-request-dropzone.has-file {
	border-color: rgba(22, 92, 148, 0.34);
	background: #fff;
	box-shadow: 0 6px 16px rgba(22, 92, 148, 0.14);
}

.ho-request-section {
	display: grid;
	gap: 12px;
	margin-top: 8px;
	padding: 14px;
	border: 1px solid rgba(17, 67, 106, .12);
	border-radius: 16px;
	background: linear-gradient(180deg, #ffffff 0%, #f4f8fc 100%);
	box-shadow: 0 10px 24px rgba(17, 67, 106, .08);
}

.ho-request-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(260px, .9fr);
	gap: 14px;
	align-items: start;
}

.ho-request-panel {
	padding: 14px;
	border: 1px solid rgba(17, 67, 106, .1);
	border-radius: 14px;
	background: rgba(255, 255, 255, .86);
}

.ho-request-panel .profile-field.section-gap:first-child {
	margin-top: 0;
}

.ho-request-panel--file .profile-field {
	margin-top: 0;
}

.ho-request-dropzone {
	gap: 5px;
	padding: 10px 12px;
	min-height: 96px;
	border-radius: 14px;
}

.ho-request-dropzone .document-dropzone-icon {
	font-size: 22px;
}

.ho-request-dropzone .document-dropzone-icon-image {
	width: 30px;
	height: 30px;
}

.ho-request-dropzone strong {
	font-size: 11px;
}

.ho-request-dropzone--inline {
	display: block;
	padding: 10px 12px;
	text-align: left;
}

.ho-request-file-flex {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

.ho-request-file-main {
	flex: 1 1 260px;
	min-width: 0;
	display: grid;
	gap: 4px;
}

.ho-request-file-icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 10px;
	border: 1px dashed rgba(17, 67, 106, .18);
	background: #fff;
}

.ho-request-file-icon img {
	width: 24px;
	height: 24px;
	object-fit: contain;
	display: block;
}

.ho-request-actions {
	margin-top: 10px;
	padding-top: 0;
	justify-content: flex-end;
}

.ho-request-actions .btn {
	min-width: 220px;
}

.doc-download-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 78px;
	height: 78px;
	margin-top: 6px;
	border-radius: 14px;
	border: 1px dashed rgba(17, 67, 106, .24);
	background: linear-gradient(180deg, #f9fcff 0%, #eef5fb 100%);
	transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.doc-download-link:hover {
	transform: translateY(-1px);
	border-color: rgba(23, 92, 148, .42);
	background: linear-gradient(180deg, #ffffff 0%, #eef6ff 100%);
}

.doc-download-link img {
	width: 52px;
	height: 52px;
	object-fit: contain;
	display: block;
}

.request-modal-layout {
	display: grid;
	gap: 14px;
	margin-top: 12px;
}

.request-modal-row {
	display: grid;
	gap: 14px;
}

.request-modal-row--split {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: start;
}

.request-modal-card {
	display: grid;
	gap: 10px;
	padding: 16px;
	border: 1px solid rgba(17, 67, 106, .12);
	border-radius: 16px;
	background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
	box-shadow: 0 10px 22px rgba(17, 67, 106, .06);
	min-width: 0;
}

.request-modal-card--full {
	grid-column: 1 / -1;
}

.request-modal-card--status {
	align-content: start;
}

.request-status-stack {
	display: grid;
	gap: 6px;
	justify-items: start;
}

.request-status-stage {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 4px 10px;
	border-radius: 999px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
	background: rgba(224, 123, 42, .12);
	color: #8b4b15;
	border: 1px solid rgba(224, 123, 42, .22);
}

.request-status-stage.is-admin-review {
	background: rgba(17, 67, 106, .1);
	color: #1f527a;
	border-color: rgba(17, 67, 106, .18);
}

.request-status-stage.is-revision-loop {
	background: rgba(121, 89, 188, .12);
	color: #5e3b9e;
	border-color: rgba(121, 89, 188, .2);
}

.request-status-stage.is-approved {
	background: rgba(160, 191, 59, .16);
	color: #3d5914;
	border-color: rgba(160, 191, 59, .24);
}

.request-status-stage.is-rejected,
.request-status-stage.is-cancelled {
	background: rgba(201, 64, 64, .12);
	color: #8f2c2c;
	border-color: rgba(201, 64, 64, .18);
}

.request-status-summary {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

.request-status-description {
	margin: 0;
	font-size: 13px;
	line-height: 1.55;
	color: #5e748d;
}

.request-modal-preview-image {
	max-width: 100%;
	max-height: 260px;
	border-radius: 10px;
	object-fit: contain;
	background: rgba(17, 67, 106, .04);
	border: 1px solid rgba(17, 67, 106, .08);
	padding: 8px;
}

.request-modal-file-help,
.request-modal-file-empty {
	margin: 0;
	font-size: 11px;
	color: #6d86a0;
}

.request-modal-file-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	color: #175c94;
	text-decoration: none;
	font-weight: 600;
}

.request-modal-file-link:hover {
	text-decoration: underline;
}

.request-modal-dropzone {
	gap: 5px;
	padding: 10px 12px;
	min-height: 96px;
	border-radius: 14px;
}

.request-modal-dropzone strong {
	font-size: 11px;
}

.request-modal-dropzone.has-file {
	border-color: rgba(22, 92, 148, 0.34);
	background: #fff;
	box-shadow: 0 6px 16px rgba(22, 92, 148, 0.14);
}

.request-modal-form-stack {
	display: grid;
	gap: 14px;
	width: 100%;
	margin-top: 4px;
}

.ho-widget {
	display: grid;
	gap: 16px;
}

.ho-widget-intro h4 {
	margin: 0;
	font-size: 15px;
	color: #1f4264;
}

.ho-widget-intro p {
	margin: 6px 0 0 !important;
	font-size: 13px !important;
	color: #6d86a0 !important;
}

.ho-layout {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
	gap: 16px;
	align-items: start;
}

.ho-card {
	padding: 16px;
	min-width: 0;
	border-radius: 18px;
	border: 1px solid #dbe5f1;
	background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
	box-shadow: 0 12px 24px rgba(37, 61, 89, .06);
}

.ho-card-head {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 12px;
}

.ho-card-head--split {
	justify-content: space-between;
	flex-wrap: wrap;
}

.ho-card-title {
	margin: 0;
	font-size: 16px;
	color: #1f4264;
}

.ho-card-subtitle {
	margin: 4px 0 0 !important;
	font-size: 13px !important;
	color: #6d86a0 !important;
}

.ho-toolbar {
	display: flex;
	align-items: end;
	justify-content: flex-end;
	gap: 10px;
	flex-wrap: wrap;
}

.ho-select-wrap {
	display: grid;
	gap: 6px;
	min-width: 180px;
	font-size: 12px;
	font-weight: 700;
	color: #6b7f96;
}

.ho-month-nav {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-height: 38px;
	padding: 4px 6px;
	border: 1px solid rgba(17, 67, 106, .12);
	border-radius: 999px;
	background: linear-gradient(180deg, #ffffff 0%, #f3f8fc 100%);
	box-shadow: 0 10px 22px rgba(13, 45, 74, .08);
}

.ho-month-nav-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border: 1px solid rgba(17, 67, 106, .14);
	border-radius: 999px;
	background: #fff;
	color: #17324d;
	font-family: "Manrope", sans-serif;
	font-size: 14px;
	font-weight: 800;
	cursor: pointer;
	transition: transform .16s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}

.ho-month-nav-btn:hover,
.ho-month-nav-btn:focus-visible {
	transform: translateY(-1px);
	border-color: rgba(17, 67, 106, .26);
	box-shadow: 0 8px 16px rgba(13, 45, 74, .12);
	outline: none;
}

.ho-month-nav-btn[disabled],
.ho-month-nav-btn[aria-disabled="true"] {
	opacity: .42;
	cursor: not-allowed;
	transform: none;
	box-shadow: none;
}

.ho-month-nav-label {
	min-width: 126px;
	text-align: center;
	color: #17324d;
	font-family: "Manrope", sans-serif;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	white-space: nowrap;
}

.ho-month-select {
	min-width: 180px;
}

.ho-recalculate-btn {
	min-width: 132px;
	white-space: nowrap;
}

.ho-table-wrap {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow-x: scroll;
	overflow-y: hidden;
	padding-bottom: 10px;
	border-radius: 14px;
	border: 1px solid #dbe5f1;
	background: #fff;
	-webkit-overflow-scrolling: touch;
	scrollbar-gutter: stable both-edges;
	scrollbar-width: auto;
	scrollbar-color: rgba(23, 92, 148, .75) rgba(17, 67, 106, .14);
}

.ho-table-wrap--schedule {
	overflow-x: auto;
	scrollbar-gutter: auto;
}

.ho-table-wrap--attendance {
	padding: 0;
	max-height: none;
	overflow: visible;
	background: transparent;
	border: 0;
}

.ho-table th {
	padding: 11px 12px;
	background: #4F6E9C;
	color: #fff;
	text-align: left;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .03em;
}

.ho-table td {
	padding: 10px 12px;
	border-top: 1px solid #ecf1f7;
	font-size: 14px;
	color: #27415d;
	vertical-align: middle;
}

.ho-table--schedule {
	display: table;
	width: 100% !important;
	min-width: 100% !important;
	max-width: 100%;
	table-layout: auto;
	border-collapse: separate;
	border-spacing: 0;
}

.ho-table--schedule th,
.ho-table--schedule td {
	white-space: nowrap;
	width: 1%;
	padding: 9px 10px;
}

.ho-table--schedule th:first-child,
.ho-table--schedule td:first-child {
	width: auto;
	white-space: normal;
}

.ho-table--schedule th:nth-child(2),
.ho-table--schedule td:nth-child(2) {
	width: 128px;
	max-width: 128px;
}

.ho-table--schedule th:nth-child(3),
.ho-table--schedule td:nth-child(3),
.ho-table--schedule th:nth-child(6),
.ho-table--schedule td:nth-child(6) {
	text-align: center;
}

.ho-calendar {
	display: grid;
	gap: 14px;
}

.ho-calendar-caption {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	flex-wrap: wrap;
	padding: 10px 12px 0;
}

.ho-calendar-month-name {
	font-family: "Manrope", sans-serif;
	font-size: 16px;
	color: #1c405f;
}

.ho-calendar-helper {
	font-size: 12px;
	font-weight: 700;
	color: #7188a3;
}

.ho-calendar-scroll {
	overflow-x: auto;
	padding-bottom: 6px;
	-webkit-overflow-scrolling: touch;
}

.ho-calendar-frame {
	min-width: 0;
	width: 100%;
	display: grid;
	gap: 8px;
	padding: 10px;
	border-radius: 18px;
	border: 1px solid rgba(79, 110, 156, .16);
	background: linear-gradient(180deg, #fbfdff 0%, #f2f6fb 100%);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .75);
}

.ho-calendar-weekdays,
.ho-calendar-days {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 6px;
}

.ho-calendar-weekday {
	padding: 7px 4px;
	border-radius: 12px;
	border: 1px solid rgba(79, 110, 156, .12);
	background: linear-gradient(180deg, #f8fbff 0%, #edf4fb 100%);
	text-align: center;
	font-size: 10px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: #5d7693;
}

.ho-calendar-weekday.is-sunday,
.ho-calendar-weekday.is-saturday {
	background: linear-gradient(180deg, #f4f6f9 0%, #e8edf2 100%);
	color: #667789;
	border-color: rgba(102, 119, 137, .16);
}

.ho-calendar-day {
	min-height: 104px;
	padding: 9px;
	border-radius: 16px;
	border: 1px solid #dbe5f1;
	background: linear-gradient(180deg, #ffffff 0%, #f6faff 100%);
	box-shadow: 0 12px 24px rgba(37, 61, 89, .06);
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.ho-calendar-link {
	width: 100%;
	text-align: left;
	font: inherit;
	cursor: pointer;
	transition: transform .18s ease, box-shadow .22s ease, border-color .22s ease;
}

.ho-calendar-link:hover {
	transform: translateY(-1px);
	border-color: rgba(160, 191, 59, .52);
	box-shadow: 0 16px 28px rgba(37, 61, 89, .12);
}

.ho-calendar-link:focus-visible {
	outline: 2px solid #A0BF3B;
	outline-offset: 2px;
}

.ho-calendar-day.is-rest {
	border-color: #d8dde5;
	background: linear-gradient(180deg, #f1f4f7 0%, #e4e9ef 100%);
	box-shadow: none;
}

.ho-calendar-link.is-disabled {
	cursor: default;
	pointer-events: none;
	transform: none;
	border-color: #d8dde5;
	background: linear-gradient(180deg, #eef2f6 0%, #e1e7ee 100%);
	box-shadow: none;
	filter: grayscale(.14);
	opacity: .92;
}

.ho-calendar-link.is-disabled:hover {
	transform: none;
	border-color: #d8dde5;
	box-shadow: none;
}

.ho-calendar-link.is-disabled .ho-calendar-day-number,
.ho-calendar-link.is-disabled .ho-calendar-range {
	color: #728191;
}

.ho-calendar-link.is-disabled .ho-calendar-day-name {
	color: #8b97a5;
}

.ho-calendar-day.is-empty {
	min-height: 104px;
	border: 1px dashed #dbe5f1;
	background: rgba(248, 251, 255, .55);
	box-shadow: none;
}

.ho-calendar-day-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.ho-calendar-day-number {
	font-family: "Manrope", sans-serif;
	font-size: 18px;
	font-weight: 800;
	color: #173a5a;
}

.ho-calendar-day-name {
	font-size: 11px;
	font-weight: 700;
	color: #7b8ea4;
}

.ho-calendar-day-body {
	display: inline-flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 6px;
	margin-top: auto;
	min-width: 0;
	width: 100%;
}

.ho-calendar-range {
	font-family: "Manrope", sans-serif;
	font-size: 15px;
	line-height: 1.15;
	font-weight: 800;
	color: #173a5a;
	word-break: break-word;
	overflow-wrap: anywhere;
}

.ho-calendar-time-label {
	font-size: 10px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .07em;
	color: #8698ad;
}

.ho-calendar-time {
	font-family: "Manrope", sans-serif;
	font-size: 15px;
	line-height: 1.1;
	color: #1f4264;
}

.ho-day-open-label {
	margin-top: 2px;
	font-size: 11px;
	font-weight: 800;
	color: #175c94;
}

.ho-modal-sheet {
	display: grid;
	gap: 18px;
}

.ho-modal-day-title {
	margin: 0;
	font-size: 24px;
	font-weight: 800;
	color: #102f4c;
}

.ho-modal-person-block,
.ho-modal-location-block {
	display: grid;
	gap: 8px;
}

.ho-modal-label {
	margin: 0;
	font-size: 15px;
	font-weight: 800;
	color: #102f4c;
}

.ho-modal-person-name {
	font-size: 24px;
	line-height: 1.2;
	color: #173a5a;
}

.ho-modal-person-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 18px;
	font-size: 13px;
	color: #48617c;
}

.ho-modal-events-wrap {
	display: grid;
	gap: 8px;
}

.ho-modal-events-head,
.ho-modal-event-row {
	display: grid;
	grid-template-columns: 1.2fr .9fr 1fr .9fr;
	gap: 12px;
	align-items: start;
}

.ho-modal-events-head {
	font-weight: 800;
	color: #102f4c;
}

.ho-modal-events-body {
	display: grid;
	gap: 6px;
}

.ho-modal-event-row {
	padding: 8px 0;
	border-bottom: 1px solid #e5edf6;
	font-size: 14px;
	color: #203c58;
}

.ho-modal-empty {
	margin: 0;
	font-size: 13px;
	color: #7088a1;
}

.ho-modal-location {
	margin: 0;
	font-size: 16px;
	line-height: 1.55;
	color: #203c58;
}

.ho-detail-json-accordion {
	margin-top: 14px;
	border-radius: 16px;
	border: 1px solid rgba(79, 110, 156, .22);
	background: linear-gradient(135deg, #102b46 0%, #0c233a 100%);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04), 0 10px 24px rgba(9, 25, 41, .16);
	overflow: hidden;
}

.ho-detail-json-summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 14px;
	cursor: pointer;
	list-style: none;
}

.ho-detail-json-summary-main {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}

.ho-detail-json-icon {
	display: inline-grid;
	place-items: center;
	width: 24px;
	height: 24px;
	border-radius: 999px;
	background: rgba(160, 191, 59, .18);
	color: #b9d85f;
	font-size: 13px;
	font-weight: 900;
	box-shadow: inset 0 0 0 1px rgba(160, 191, 59, .20);
}

.ho-detail-json-heading {
	display: grid;
	gap: 2px;
	min-width: 0;
}

.ho-detail-json-summary::-webkit-details-marker {
	display: none;
}

.ho-detail-json-summary::after {
	content: "Mostrar";
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: #dce8f6;
	opacity: .9;
}

.ho-detail-json-accordion[open] .ho-detail-json-summary::after {
	content: "Ocultar";
}

.ho-detail-json-wrap {
	padding: 0 12px 12px;
}

.ho-detail-json-title {
	margin: 0 !important;
	font-size: 13px !important;
	font-weight: 800;
	color: #f4f8fc !important;
}

.ho-detail-json-subtitle {
	font-size: 11px;
	color: rgba(220, 232, 246, .76);
}

.ho-detail-json-pill {
	display: inline-flex;
	align-items: center;
	padding: 5px 10px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(255, 255, 255, .10);
	font-size: 11px;
	font-weight: 800;
	color: #dce8f6;
	white-space: nowrap;
}

.ho-detail-json {
	margin: 0;
	padding: 12px 14px;
	border-radius: 12px;
	border: 1px solid rgba(160, 191, 59, .14);
	background: rgba(6, 20, 33, .34);
	white-space: pre-wrap;
	word-break: break-word;
	font-size: 12px;
	line-height: 1.6;
	color: #f4f8fc;
}

.ho-day-cell {
	display: grid;
	gap: 2px;
}

.ho-day-cell strong {
	font-family: "Manrope", sans-serif;
	font-size: 14px;
	color: #183a5a;
}

.ho-day-cell span {
	font-size: 12px;
	color: #7f91a7;
}

.ho-inline-note {
	margin: 0 0 12px !important;
	padding: 10px 12px;
	border-radius: 12px;
	font-size: 13px !important;
	border: 1px solid #dbe5f1;
	background: #f6f9fd;
	color: #49627f !important;
}

.ho-inline-note.is-editable {
	border-color: rgba(160, 191, 59, .32);
	background: rgba(160, 191, 59, .10);
	color: #4b650d !important;
}

.ho-inline-note.is-locked {
	border-color: rgba(79, 110, 156, .22);
	background: rgba(79, 110, 156, .08);
	color: #35506d !important;
}

.ho-mode-select {
	min-width: 120px;
	height: 36px;
	padding: 5px 28px 8px 5px;
	font-size: 12px;
}

.ho-mode-select:disabled {
	opacity: .8;
	cursor: not-allowed;
	background: #f2f5f9;
}

.ho-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 116px;
	padding: 8px 12px;
	border-radius: 12px;
	border: 1px solid transparent;
	font-size: 13px;
	font-weight: 800;
}

.ho-badge--calendar {
	gap: 8px;
	justify-content: center;
	min-width: 0;
	width: 100%;
	padding-inline: 10px;
	border-radius: 12px;
	line-height: 1;
	white-space: nowrap;
}

.ho-badge-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
}

.ho-badge-icon svg {
	width: 16px;
	height: 16px;
	display: block;
	fill: currentColor;
}

.ho-badge-text {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
}

.ho-calendar-day-body {
	align-items: stretch;
}

.ho-calendar-event-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px;
	width: 100%;
}

.ho-calendar-event {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: relative;
	gap: 6px;
	min-height: 28px;
	padding: 0 10px;
	border-radius: 999px;
	border: 1px solid rgba(17, 67, 106, .14);
	background: rgba(255, 255, 255, .9);
	box-shadow: 0 4px 12px rgba(13, 45, 74, .08);
	color: #175c94;
}

.ho-calendar-event[data-ho-tooltip]::after {
	white-space: pre-line;
	text-align: left;
}

[data-ho-tooltip] {
	position: relative;
	overflow: visible;
}

[data-ho-tooltip]::after,
[data-ho-tooltip]::before {
	position: absolute;
	left: 50%;
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, 6px);
	transition: opacity .18s ease, transform .18s ease;
	z-index: 6;
}

[data-ho-tooltip]::after {
	content: attr(data-ho-tooltip);
	bottom: calc(100% + 10px);
	min-width: max-content;
	max-width: 220px;
	padding: 8px 10px;
	border-radius: 12px;
	border: 1px solid rgba(17, 67, 106, .14);
	background: linear-gradient(180deg, rgba(13, 45, 74, .98) 0%, rgba(23, 92, 148, .96) 100%);
	box-shadow: 0 14px 28px rgba(13, 45, 74, .22);
	color: #f5f8fc;
	font-family: "IBM Plex Sans", sans-serif;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.35;
	text-align: center;
	white-space: normal;
	letter-spacing: .01em;
	backdrop-filter: blur(10px);
	word-break: break-word;
}

[data-ho-tooltip]::before {
	content: "";
	bottom: calc(100% + 4px);
	border-width: 6px 6px 0;
	border-style: solid;
	border-color: rgba(23, 92, 148, .96) transparent transparent;
	filter: drop-shadow(0 4px 10px rgba(13, 45, 74, .16));
}

[data-ho-tooltip]:hover::after,
[data-ho-tooltip]:hover::before,
[data-ho-tooltip]:focus-visible::after,
[data-ho-tooltip]:focus-visible::before {
	opacity: 1;
	transform: translate(-50%, 0);
}

[data-ho-tooltip]:focus-visible {
	outline: 2px solid rgba(143, 179, 46, .55);
	outline-offset: 2px;
}

.ho-calendar-event-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 14px;
	height: 14px;
}

.ho-calendar-event-icon svg {
	display: block;
	width: 14px;
	height: 14px;
	fill: currentColor;
}

.ho-calendar-event-text {
	font-size: 11px;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
}

.ho-widget.is-dashboard-calendar-only .ho-badge--calendar {
	width: auto;
	padding: 8px;
	border-radius: 999px;
}

.ho-widget.is-dashboard-calendar-only .ho-badge--calendar .ho-badge-text {
	display: none;
}

.ho-widget.is-dashboard-calendar-only .ho-calendar-day-body {
	align-items: center;
}

.ho-widget.is-dashboard-calendar-only .ho-calendar-event {
	gap: 0;
	width: 28px;
	height: 28px;
	min-height: 28px;
	padding: 0;
}

.ho-widget.is-dashboard-calendar-only .ho-calendar-event-text,
.ho-widget.is-dashboard-calendar-only .ho-calendar-range {
	display: none;
}

.ho-calendar-event--birthday {
	color: #b56412;
	background: rgba(245, 201, 113, .2);
	border-color: rgba(181, 100, 18, .18);
}

.ho-calendar-event--vacation {
	color: #1f7a55;
	background: rgba(26, 171, 126, .14);
	border-color: rgba(26, 171, 126, .22);
}

.ho-calendar-event--permission {
	color: #175c94;
	background: rgba(23, 92, 148, .14);
	border-color: rgba(23, 92, 148, .22);
}

.ho-badge.is-office {
	background: rgba(23, 92, 148, .10);
	border-color: rgba(23, 92, 148, .18);
	color: #134c79;
}

.ho-badge.is-ok {
	background: rgba(160, 191, 59, .16);
	border-color: rgba(160, 191, 59, .28);
	color: #4f650f;
}

.ho-badge.is-late {
	background: rgba(196, 121, 32, .14);
	border-color: rgba(196, 121, 32, .22);
	color: #8b4a08;
}

.ho-badge.is-request-pending {
	background: rgba(200, 50, 40, .12);
	border-color: rgba(200, 50, 40, .22);
	color: #922020;
}

.ho-badge.is-reviewed {
	background: rgba(60, 130, 200, .12);
	border-color: rgba(60, 130, 200, .22);
	color: #1a5580;
}

.ho-badge.is-na {
	background: rgba(127, 145, 167, .12);
	border-color: rgba(127, 145, 167, .24);
	color: #5d7087;
}

.ho-badge.is-home {
	background: rgba(160, 191, 59, .16);
	border-color: rgba(160, 191, 59, .28);
	color: #4b650d;
}

.ho-badge.is-rest {
	background: rgba(176, 158, 159, .14);
	border-color: rgba(176, 158, 159, .26);
	color: #715d5f;
}

.ho-note {
	margin: 12px 0 0 !important;
	font-size: 13px !important;
	color: #6d86a0 !important;
}

@media (max-width: 960px) {
	.ho-layout {
		grid-template-columns: 1fr;
	}

	.ho-card {
		padding: 14px;
	}

	.ho-toolbar {
		justify-content: stretch;
	}

	.ho-select-wrap,
	.ho-month-select,
	.ho-recalculate-btn {
		min-width: 100%;
		width: 100%;
	}

	.ho-calendar-frame {
		min-width: 0;
	}

	.ho-calendar-weekdays,
	.ho-calendar-days {
		gap: 6px;
	}

	.ho-calendar-day,
	.ho-calendar-day.is-empty {
		min-height: 98px;
		padding: 7px;
		border-radius: 12px;
	}

	.ho-calendar-range {
		font-size: 13px;
	}

	.ho-badge {
		min-width: 0;
		width: 100%;
	}

	.ho-badge--calendar {
		width: auto;
		min-width: 36px;
		padding: 7px;
		border-radius: 11px;
	}

	.ho-widget.is-dashboard-calendar-only .ho-badge--calendar .ho-badge-text {
		display: none;
	}

	.ho-modal-day-title,
	.ho-modal-person-name {
		font-size: 20px;
	}

	.ho-detail-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 768px) {
	.ho-card {
		padding: 12px;
		border-radius: 16px;
	}

	.ho-card-head,
	.ho-card-head--split {
		gap: 10px;
	}

	.ho-card-title {
		font-size: 15px;
	}

	.ho-card-subtitle {
		font-size: 12px !important;
	}

	.ho-calendar-caption {
		align-items: flex-start;
	}

	.ho-calendar-helper {
		font-size: 11px;
	}

	.ho-calendar-frame {
		min-width: 0;
	}

	.ho-calendar-weekday {
		padding: 5px 3px;
		font-size: 9px;
	}

	.ho-calendar-day,
	.ho-calendar-day.is-empty {
		min-height: 84px;
		gap: 6px;
	}

	.ho-calendar-day-number {
		font-size: 14px;
	}

	.ho-calendar-day-name {
		font-size: 10px;
	}

	.ho-calendar-range {
		font-size: 12px;
	}

	.ho-modal-sheet {
		gap: 14px;
	}

	.ho-modal-day-title,
	.ho-modal-person-name {
		font-size: 18px;
	}

	.ho-modal-person-meta {
		display: grid;
		gap: 6px;
	}

	.home-calendar-day-summary-grid,
	.home-calendar-day-detail-panels {
		grid-template-columns: 1fr;
	}

	.home-calendar-day-summary-row {
		align-items: flex-start;
	}

	.ho-modal-events-head {
		display: none;
	}

	.ho-modal-event-row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px 10px;
		padding: 10px 12px;
		border: 1px solid #e5edf6;
		border-radius: 12px;
		background: #f8fbff;
	}

	.ho-modal-event-row span {
		display: grid;
		gap: 3px;
		word-break: break-word;
	}

	.ho-modal-event-row span::before {
		font-size: 10px;
		font-weight: 800;
		text-transform: uppercase;
		letter-spacing: .06em;
		color: #7389a2;
	}

	.ho-modal-event-row span:nth-child(1)::before { content: "Registro"; }
	.ho-modal-event-row span:nth-child(2)::before { content: "Hora"; }
	.ho-modal-event-row span:nth-child(3)::before { content: "Diferencia"; }
	.ho-modal-event-row span:nth-child(4)::before { content: "Tipo"; }
}

@media (max-width: 560px) {
	.ho-calendar-frame {
		min-width: 500px;
	}

	.home-calendar-day-summary-stats {
		grid-template-columns: 1fr;
	}

	.ho-modal-event-row {
		grid-template-columns: 1fr;
	}
}

.trajectory-wrap {
	display: grid;
	gap: 14px;
}

.trajectory-summary {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 10px;
}

.trajectory-summary-card {
	padding: 14px;
	border-radius: 16px;
	border: none;
	background: linear-gradient(180deg, #ffffff 0%, #f6faff 100%);
	box-shadow: var(--shadow-card);
}

.trajectory-summary-label {
	display: block;
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: #7d8fa5;
	margin-bottom: 6px;
}

.trajectory-summary-value {
	display: block;
	font-family: "Manrope", sans-serif;
	font-size: 24px;
	line-height: 1.1;
	color: #22354b;
	margin-bottom: 4px;
}

.trajectory-summary-helper {
	font-size: 12px;
	color: #7188a3;
}

.trajectory-empty {
	padding: 18px;
	border-radius: 16px;
	border: 1px dashed #d5e2f0;
	background: linear-gradient(180deg, #fbfdff 0%, #f4f8fd 100%);
	color: #5f7894;
}

.trajectory-empty strong {
	display: block;
	margin-bottom: 4px;
	color: #284563;
}

.trajectory-empty p {
	margin: 0;
}

.trajectory-timeline {
	position: relative;
	display: grid;
	gap: 10px;
	padding-left: 8px;
}

.trajectory-timeline::before {
	content: "";
	position: absolute;
	left: 20px;
	top: 10px;
	bottom: 10px;
	width: 3px;
	border-radius: 999px;
	background: linear-gradient(180deg, rgba(17, 67, 106, .28) 0%, rgba(79, 110, 156, .34) 55%, rgba(160, 191, 59, .42) 100%);
}

.trajectory-item {
	position: relative;
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr);
	gap: 0;
	align-items: center;
	max-width: 1180px;
}

.trajectory-marker {
	position: relative;
	z-index: 1;
	width: 65px;
	height: 65px;
	margin: 0 12px 0 0;
	border-radius: 50%;
	display: grid;
	place-items: center;
	color: #fff;
	font-size: 16px;
	box-shadow: 0 12px 22px rgba(37, 61, 89, .18);
	border: 2px solid #fff;
}

.trajectory-marker--success {
	background: linear-gradient(135deg, #7fb332 0%, #a0bf3b 100%);
}

.trajectory-marker--danger {
	background: linear-gradient(135deg, #d45c5c 0%, #b84343 100%);
}

.trajectory-marker--info {
	background: linear-gradient(135deg, #175c94 0%, #4f6e9c 100%);
}

.trajectory-marker--neutral {
	background: linear-gradient(135deg, #7f91a7 0%, #5f738d 100%);
}

.trajectory-card {
	padding: 12px 14px;
	border-radius: 16px;
	border: 1px solid #d8e4f1;
	background: linear-gradient(180deg, #ffffff 0%, #f9fbfe 100%);
	box-shadow: 0 12px 24px rgba(37, 61, 89, .06);
	max-width: 930px;
}

.trajectory-card-top {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 6px;
}

.trajectory-badge {
	display: inline-flex;
	align-items: center;
	padding: 5px 10px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .06em;
}

.trajectory-badge--success {
	background: rgba(160, 191, 59, .18);
	color: #48630d;
}

.trajectory-badge--danger {
	background: rgba(212, 92, 92, .14);
	color: #8d3232;
}

.trajectory-badge--info {
	background: rgba(23, 92, 148, .12);
	color: #1f4f79;
}

.trajectory-badge--neutral {
	background: rgba(127, 145, 167, .16);
	color: #4d6178;
}

.trajectory-date {
	font-size: 12px;
	font-weight: 700;
	color: #6d86a0;
}

.trajectory-note {
	margin: 0 0 8px !important;
	font-size: 14px !important;
	line-height: 1.45;
	color: #35506d !important;
}

.trajectory-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.trajectory-meta-item {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 5px 9px;
	border-radius: 999px;
	background: #f4f8fc;
	border: 1px solid #dfe8f2;
	font-size: 12px;
	color: #5b728d;
}

@media (max-width: 768px) {
	.trajectory-item {
		grid-template-columns: 44px minmax(0, 1fr);
		max-width: 100%;
	}

	.trajectory-marker {
		width: 34px;
		height: 34px;
		margin-right: 10px;
		font-size: 14px;
	}

	.trajectory-timeline::before {
		left: 17px;
	}
}

.dash-nav-subitem {
	display: block;
	padding: 8px 14px 8px 46px;
	border-radius: 10px;
	color: #dbe6ff;
	text-decoration: none;
	font-size: 14px;
	font-weight: 700;
	opacity: .92;
	margin-top: -4px;
	margin-bottom: 6px;
}

.dash-submenu-group {
	display: none;
	margin-top: -2px;
	margin-bottom: 2px;
}

.profile-nav-group:hover .dash-submenu-group,
.profile-nav-group:focus-within .dash-submenu-group,
.profile-nav-group.is-open .dash-submenu-group {
	display: block;
}

.dash-submenu-item {
	margin: 0;
}

.submenu-chevron {
	margin-left: auto;
	font-size: 13px;
	font-weight: 700;
	opacity: .95;
}

.dash-nav-subitem:hover,
.dash-nav-subitem.is-active {
	background: rgba(255,255,255,.16);
	color: #fff;
}

.dash-nav-subitem.is-disabled {
	opacity: .45;
	pointer-events: none;
	cursor: default;
}

.home-copy-list {
	margin: 0 0 12px;
	padding-left: 18px;
	color: #435f7f;
	font-size: 15px;
	line-height: 1.5;
}

.employee-home-grid {
	display: grid;
	grid-template-columns: minmax(280px, 30%) minmax(0, 70%);
	gap: 16px;
	align-items: stretch;
}

.employee-home-market-ribbon-shell {
	position: fixed;
	top: 50%;
	left: 0;
	right: 0;
	width: 80vw;
	margin-inline: auto;
	z-index: 9999;
	pointer-events: none;
	transform: translateY(-50%) rotate(-10deg);
	transform-origin: center;
	filter: drop-shadow(0 20px 40px rgba(11, 27, 45, .22));
}

.employee-home-market-ribbon-shell[hidden] {
	display: none !important;
}

.employee-home-market-ribbon-shell.is-preview {
	position: relative;
	top: auto;
	left: auto;
	right: auto;
	z-index: auto;
	pointer-events: auto;
	transform: none;
	width: min(100%, 860px);
	margin: 16px auto 20px;
	filter: drop-shadow(0 18px 32px rgba(11, 27, 45, .16));
}

.employee-home-market-ribbon {
	--market-ribbon-accent: #ff6b2c;
	--market-ribbon-accent-rgb: 255, 107, 44;
	--market-ribbon-background-image: none;
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(132px, .65fr);
	gap: 16px;
	align-items: center;
	width: 100%;
	height: auto;
	padding: 22px 24px;
	border-radius: 22px;
	overflow: hidden;
	pointer-events: auto;
	column-gap: clamp(16px, 3vw, 42px);
	border: 1px solid rgba(255, 255, 255, .28);
	background:
		radial-gradient(circle at top left, rgba(255, 255, 255, .32) 0%, rgba(255, 255, 255, 0) 38%),
		linear-gradient(105deg, rgba(10, 18, 30, .26) 0%, rgba(10, 18, 30, .08) 42%, rgba(255, 255, 255, 0) 100%),
		var(--market-ribbon-background-image),
		radial-gradient(circle at 75% 50%, var(--market-ribbon-tertiary-accent, #72d63c) 0%, var(--market-ribbon-secondary-accent, #ffd15c) 42%, var(--market-ribbon-accent) 100%);
	background-size: auto, auto, cover, cover;
	background-position: top left, center, center, center;
	box-shadow: 0 18px 40px rgba(var(--market-ribbon-accent-rgb), .24);
	color: #fffaf2;
	isolation: isolate;
}

.employee-home-market-ribbon-shell.is-preview .employee-home-market-ribbon {
	width: 100%;
}

.employee-home-market-ribbon::before,
.employee-home-market-ribbon::after {
	content: "";
	position: absolute;
	border-radius: 999px;
	background: rgba(255, 255, 255, .14);
	z-index: -1;
}

.employee-home-market-ribbon::before {
	width: 220px;
	height: 220px;
	right: -48px;
	top: -92px;
}

.employee-home-market-ribbon::after {
	width: 170px;
	height: 170px;
	left: -60px;
	bottom: -108px;
}

.employee-home-market-ribbon__copy {
	display: inline-grid;
	gap: 8px;
	min-width: 0;
	width: fit-content;
	align-content: center;
	position: relative;
	z-index: 2;
	justify-self: start;
	max-width: 100%;
	padding: 25px;
	border-radius: 22px;
	background: linear-gradient(180deg, rgba(10, 20, 33, .28) 0%, rgba(10, 20, 33, .18) 100%);
	border: 1px solid rgba(255, 255, 255, .18);
	backdrop-filter: blur(14px);
	box-shadow: 0 18px 34px rgba(7, 18, 31, .18);
}

.employee-home-market-ribbon__eyebrow {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	padding: 6px 10px;
	border-radius: 999px;
	background: rgba(106, 33, 0, .22);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #fff8ec;
}

.employee-home-market-ribbon__copy strong {
	font-family: "Manrope", sans-serif;
	font-size: clamp(24px, 2.7vw, 34px);
	line-height: 1.05;
	letter-spacing: -.03em;
	color: #fff;
}

.employee-home-market-ribbon__copy p {
	margin: 0;
	max-width: 46ch;
	font-size: 14px;
	line-height: 1.55;
	color: rgba(255, 250, 242, .92);
}

.employee-home-market-ribbon__meta {
	display: grid;
	justify-items: end;
	gap: 10px;
	min-width: 150px;
	align-content: center;
	position: relative;
	z-index: 2;
}

.employee-home-market-ribbon__celebration {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 180px;
	height: 180px;
	transform: translate(-50%, -50%);
	pointer-events: none;
	z-index: 1;
	filter: drop-shadow(0 0 16px rgba(255, 245, 210, .45));
}

.employee-home-market-ribbon__spark {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 12px;
	height: 12px;
	margin: -6px 0 0 -6px;
	border-radius: 999px;
	background: radial-gradient(circle, rgba(255,255,255,.98) 0%, rgba(255,242,184,.92) 45%, rgba(255,242,184,0) 72%);
	opacity: 0;
	animation: marketplaceRibbonSpark 2.8s ease-out infinite;
}

.employee-home-market-ribbon__spark::before {
	content: "";
	position: absolute;
	inset: 50% auto auto 50%;
	width: 54px;
	height: 2px;
	transform-origin: left center;
	background: linear-gradient(90deg, rgba(255,248,216,.92) 0%, rgba(255,248,216,0) 100%);
}

.employee-home-market-ribbon__spark--a {
	animation-delay: 0s;
	transform: translate(-50%, -50%) rotate(12deg);
}

.employee-home-market-ribbon__spark--a::before {
	transform: rotate(0deg);
}

.employee-home-market-ribbon__spark--b {
	animation-delay: .42s;
	transform: translate(-50%, -50%) rotate(74deg);
}

.employee-home-market-ribbon__spark--c {
	animation-delay: .86s;
	transform: translate(-50%, -50%) rotate(142deg);
}

.employee-home-market-ribbon__spark--d {
	animation-delay: 1.28s;
	transform: translate(-50%, -50%) rotate(218deg);
}

.employee-home-market-ribbon__spark--e {
	animation-delay: 1.74s;
	transform: translate(-50%, -50%) rotate(298deg);
}

@keyframes marketplaceRibbonSpark {
	0% {
		opacity: 0;
		transform: translate(-50%, -50%) scale(.18);
	}
	18% {
		opacity: 1;
	}
	55% {
		opacity: .92;
	}
	100% {
		opacity: 0;
		transform: translate(-50%, -50%) scale(1.18);
	}
}

.employee-home-market-ribbon__pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 14px;
	border-radius: 999px;
	background: rgba(109, 31, 0, .24);
	border: 1px solid rgba(255, 255, 255, .22);
	font-family: "Manrope", sans-serif;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	white-space: nowrap;
}

.employee-home-market-ribbon__close {
	position: absolute;
	top: 8px;
	right: 10px;
	width: 28px;
	height: 28px;
	display: inline-grid;
	place-items: center;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, .18);
	color: #fffdf8;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	box-shadow: inset 0 1px 0 rgba(255,255,255,.2);
	transition: background-color .18s ease, transform .18s ease;
}

.employee-home-market-ribbon__close:hover,
.employee-home-market-ribbon__close:focus-visible {
	background: rgba(255, 255, 255, .28);
	transform: scale(1.04);
}

.employee-home-market-ribbon__pill.is-accent {
	background: #fff4d1;
	color: #8f3d00;
	border-color: rgba(255, 255, 255, .4);
	box-shadow: 0 10px 22px rgba(var(--market-ribbon-accent-rgb), .18);
}

.employee-home-market-ribbon__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: relative;
	min-height: 42px;
	padding: 0 16px;
	border-radius: 999px;
	background: rgba(255, 250, 242, .96);
	color: #8f3d00;
	font-family: "Manrope", sans-serif;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	text-decoration: none;
	isolation: isolate;
	overflow: visible;
	box-shadow: 0 10px 24px rgba(96, 36, 0, .16);
	animation: marketplaceRibbonCtaFloat 2.6s ease-in-out infinite;
	transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.employee-home-market-ribbon__button::before,
.employee-home-market-ribbon__button::after {
	content: "";
	position: absolute;
	inset: -10px;
	border-radius: 999px;
	pointer-events: none;
	z-index: -1;
}

.employee-home-market-ribbon__button::before {
	background: radial-gradient(circle, rgba(255, 255, 255, .26) 0%, rgba(255, 255, 255, 0) 70%);
	filter: blur(10px);
	opacity: .7;
	animation: marketplaceRibbonCtaHalo 2.4s ease-out infinite;
}

.employee-home-market-ribbon__button::after {
	border: 1px solid rgba(255, 248, 216, .78);
	box-shadow: 0 0 0 0 rgba(255, 248, 216, .38);
	opacity: 0;
	animation: marketplaceRibbonCtaRing 2.4s ease-out infinite;
}

.employee-home-market-ribbon__button:hover,
.employee-home-market-ribbon__button:focus-visible {
	transform: translateY(-1px);
	box-shadow: 0 14px 28px rgba(96, 36, 0, .2);
	background: #fff;
}

.employee-home-market-ribbon__button:hover::before,
.employee-home-market-ribbon__button:hover::after,
.employee-home-market-ribbon__button:focus-visible::before,
.employee-home-market-ribbon__button:focus-visible::after {
	animation-play-state: paused;
	opacity: 1;
}

@keyframes marketplaceRibbonCtaFloat {
	0%,
	100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(-2px);
	}
}

@keyframes marketplaceRibbonCtaHalo {
	0% {
		opacity: 0;
		transform: scale(.88);
	}
	25% {
		opacity: .78;
	}
	100% {
		opacity: 0;
		transform: scale(1.22);
	}
}

@keyframes marketplaceRibbonCtaRing {
	0% {
		opacity: 0;
		transform: scale(.92);
		box-shadow: 0 0 0 0 rgba(255, 248, 216, .34);
	}
	30% {
		opacity: .92;
	}
	100% {
		opacity: 0;
		transform: scale(1.18);
		box-shadow: 0 0 0 18px rgba(255, 248, 216, 0);
	}
}

.marketplace-ribbon-admin-form {
	display: grid;
	gap: 14px;
}

.marketplace-ribbon-admin-row {
	display: grid;
	gap: 12px;
}

.marketplace-ribbon-admin-row--two-columns {
	grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
	align-items: stretch;
}

.marketplace-ribbon-admin-row--four-columns {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	align-items: end;
}

.marketplace-ribbon-admin-form > label,
.marketplace-ribbon-admin-grid > label {
	display: grid;
	gap: 6px;
}

.marketplace-ribbon-admin-form textarea.rh-grid-control {
	min-height: 96px;
	resize: vertical;
}

.marketplace-ribbon-admin-form .is-hidden {
	display: none;
}

.marketplace-ribbon-admin-form span,
.marketplace-ribbon-admin-grid span {
	font-size: 12px;
	font-weight: 700;
	color: #35516c;
}

.marketplace-ribbon-admin-dimensions {
	display: inline-flex;
	align-items: flex-end;
	gap: 8px;
	grid-column: span 2;
	justify-self: start;
	flex-wrap: nowrap;
}

.marketplace-ribbon-admin-dimensions > label {
	min-width: 120px;
}

.marketplace-ribbon-admin-operator {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding-bottom: 9px;
	font-size: 24px;
	font-weight: 800;
	letter-spacing: .08em;
	color: #35516c;
}

.marketplace-ribbon-admin-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	align-items: end;
}

.marketplace-ribbon-admin-toggle {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 12px 14px;
	border-radius: 14px;
	border: 1px solid rgba(17, 67, 106, .1);
	background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(242,247,251,.94) 100%);
}

.marketplace-ribbon-admin-toggle--status {
	justify-content: space-between;
	gap: 14px;
	padding: 12px 14px;
}

.marketplace-ribbon-admin-toggle--status.user-status-switch {
	width: 100%;
	min-height: 64px;
	padding: 12px 14px;
}

.marketplace-ribbon-admin-toggle--background.user-status-switch {
	align-self: stretch;
	min-height: 100%;
}

.marketplace-ribbon-admin-file-field {
	position: relative;
	padding: 14px 16px;
	border-radius: 16px;
	border: 1px dashed rgba(17, 67, 106, .24);
	background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(244,247,250,.96) 100%);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}

.marketplace-ribbon-admin-file-field small {
	margin: 2px 0 0;
	font-size: 12px;
	line-height: 1.5;
	color: #627487;
}

.marketplace-ribbon-admin-file-field input[type="file"].rh-grid-control {
	padding: 10px 12px;
	border-style: solid;
	border-color: rgba(17, 67, 106, .14);
	background: rgba(255,255,255,.92);
	cursor: pointer;
}

.marketplace-ribbon-admin-file-field input[type="file"].rh-grid-control::file-selector-button {
	margin-right: 12px;
	padding: 10px 14px;
	border: 0;
	border-radius: 12px;
	background: linear-gradient(135deg, #11436a 0%, #1f6aa0 100%);
	color: #fff;
	font-weight: 700;
	cursor: pointer;
	transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
	box-shadow: 0 8px 18px rgba(17, 67, 106, .18);
}

.marketplace-ribbon-admin-file-field input[type="file"].rh-grid-control:hover::file-selector-button,
.marketplace-ribbon-admin-file-field input[type="file"].rh-grid-control:focus::file-selector-button {
	transform: translateY(-1px);
	box-shadow: 0 12px 22px rgba(17, 67, 106, .24);
}

.marketplace-ribbon-admin-toggle__copy {
	display: grid;
	gap: 3px;
	flex: 1 1 auto;
}

.marketplace-ribbon-admin-toggle__copy strong {
	font-size: 13px;
	font-weight: 800;
	color: #17324d;
}

.marketplace-ribbon-admin-toggle__copy small {
	font-size: 11px;
	line-height: 1.45;
	color: #5a7590;
}

.marketplace-ribbon-admin-toggle__status {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 92px;
	padding: 9px 12px;
	border-radius: 999px;
	background: rgba(143, 61, 0, .08);
	color: #8f3d00;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	box-shadow: inset 0 0 0 1px rgba(143, 61, 0, .12);
}

.marketplace-ribbon-admin-toggle__status.is-active {
	background: rgba(35, 126, 74, .12);
	color: #1f7d49;
	box-shadow: inset 0 0 0 1px rgba(35, 126, 74, .16);
}

.marketplace-ribbon-admin-toggle.is-secondary {
	min-height: 44px;
	align-self: center;
}

.marketplace-ribbon-admin-toggle:not(.user-status-switch) input {
	margin: 0;
}

.marketplace-ribbon-admin-preview-frame {
	position: relative;
	display: grid;
	min-height: 220px;
	padding: 22px;
	border-radius: 28px;
	border: 1px solid rgba(17, 67, 106, .08);
	background:
		linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(243,247,251,.98) 100%),
		repeating-linear-gradient(45deg, rgba(17, 67, 106, .035) 0 16px, rgba(255,255,255,0) 16px 32px);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 14px 34px rgba(17, 67, 106, .06);
}

.marketplace-ribbon-admin-actions-top {
	margin: 6px 0 2px;
	justify-content: flex-start;
}

.marketplace-ribbon-admin-preview {
	display: grid;
	gap: 10px;
	padding-top: 4px;
}

.marketplace-ribbon-admin-preview-loading {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	padding: 28px;
	border-radius: 24px;
	background: rgba(248, 250, 252, .74);
	backdrop-filter: blur(10px);
	z-index: 4;
}

.marketplace-ribbon-admin-preview-loading[hidden] {
	display: none !important;
}

.marketplace-ribbon-admin-preview-loading__card {
	display: grid;
	justify-items: center;
	gap: 10px;
	min-width: min(100%, 280px);
	padding: 18px 20px;
	border-radius: 22px;
	background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(241,246,251,.96) 100%);
	border: 1px solid rgba(17, 67, 106, .12);
	box-shadow: 0 20px 40px rgba(17, 67, 106, .12);
	text-align: center;
}

.marketplace-ribbon-admin-preview-loading__card p {
	margin: 0;
	font-size: 12px;
	line-height: 1.5;
	font-weight: 700;
	color: #44627c;
}

.marketplace-ribbon-admin-preview-loading__spinner {
	width: 44px;
	height: 44px;
	border-radius: 999px;
	border: 3px solid rgba(17, 67, 106, .14);
	border-top-color: #1f6aa0;
	border-right-color: #9cc63b;
	box-shadow: 0 10px 18px rgba(17, 67, 106, .12);
	animation: marketplaceRibbonPreviewLoadingSpin 1s linear infinite;
}

.marketplace-ribbon-admin-preview-frame.is-loading .marketplace-ribbon-admin-preview {
	pointer-events: none;
	user-select: none;
}

@keyframes marketplaceRibbonPreviewLoadingSpin {
	0% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(360deg);
	}
}

.marketplace-ribbon-admin-preview-body,
.marketplace-ribbon-admin-preview-stack {
	display: grid;
	gap: 12px;
}

.marketplace-ribbon-admin-preview-body > .dash-sub {
	margin: 0;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #6a8095;
}

.marketplace-ribbon-admin-preview-stack {
	padding: 6px 0 2px;
}

.employee-home-market-ribbon-shell.is-preview {
	width: min(100%, 920px);
	margin: 0 auto;
	filter: drop-shadow(0 18px 32px rgba(11, 27, 45, .12));
}

.marketplace-ribbon-crop-preview {
	--market-ribbon-accent: #ff6b2c;
	--market-ribbon-accent-rgb: 255, 107, 44;
	--market-ribbon-background-image: none;
	position: relative;
	overflow: hidden;
	border-radius: 22px;
	min-height: 180px;
	padding: 18px;
	border: 1px solid rgba(17, 67, 106, .08);
	background:
		linear-gradient(105deg, rgba(10, 18, 30, .30) 0%, rgba(10, 18, 30, .12) 44%, rgba(255, 255, 255, 0) 100%),
		var(--market-ribbon-background-image),
		linear-gradient(135deg, var(--market-ribbon-accent) 0%, #ff9248 34%, #ffd15c 100%);
	background-size: cover, cover, cover;
	background-position: center, center, center;
	box-shadow: inset 0 1px 0 rgba(255,255,255,.24), 0 14px 34px rgba(var(--market-ribbon-accent-rgb), .18);
	color: #fffaf2;
}

.marketplace-ribbon-crop-preview__frame {
	display: grid;
	gap: 8px;
	max-width: 340px;
	padding: 16px;
	border-radius: 18px;
	background: rgba(12, 22, 36, .32);
	backdrop-filter: blur(6px);
}

.marketplace-ribbon-crop-preview__label {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: rgba(255, 248, 236, .84);
}

.marketplace-ribbon-crop-preview__frame strong {
	font-family: "Manrope", sans-serif;
	font-size: 24px;
	line-height: 1.1;
	letter-spacing: -.03em;
	color: #fff;
}

.marketplace-ribbon-crop-preview__frame small {
	font-size: 13px;
	line-height: 1.5;
	color: rgba(255, 249, 240, .9);
}

.employee-home-grid__summary,
.employee-home-grid__calendar {
	height: auto;
	min-width: 0;
}

.employee-home-grid__summary {
	display: grid;
	gap: 14px;
	align-content: start;
	align-self: stretch;
	padding: 18px;
	background: linear-gradient(180deg, #ffffff 0%, #f8fbfe 100%);
}

.employee-home-grid__calendar {
	display: grid;
	gap: 8px;
	padding: 18px 18px 16px;
	overflow: visible;
}

.employee-home-profile-card {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 10px;
	justify-items: center;
	align-items: start;
	padding: 14px;
	border-radius: 18px;
	border: 1px solid rgba(17, 67, 106, .10);
	background: linear-gradient(145deg, rgba(255,255,255,.98) 0%, rgba(238,244,250,.94) 100%);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.8), 0 10px 24px rgba(13, 45, 74, .06);
	min-width: 0;
}

.employee-home-profile-avatar {
	width: 92px;
	height: 92px;
	border-radius: 24px;
	overflow: hidden;
	display: grid;
	place-items: center;
	background: linear-gradient(145deg, var(--c-action) 0%, #bfd86c 100%);
	box-shadow: 0 14px 26px rgba(160, 191, 59, .22);
	font-family: "Manrope", sans-serif;
	font-size: 28px;
	font-weight: 800;
	color: var(--c-primary);
	flex: 0 0 auto;
}

.employee-home-profile-avatar .dash-avatar-image,
.employee-home-profile-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.employee-home-profile-copy {
	display: grid;
	gap: 4px;
	min-width: 0;
	justify-items: center;
	text-align: center;
}

.employee-home-profile-kicker {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	padding: 5px 10px;
	border-radius: 999px;
	background: rgba(79, 110, 156, .10);
	color: #4f6e9c;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.employee-home-profile-copy strong {
	font-family: "Manrope", sans-serif;
	font-size: clamp(20px, 2.2vw, 26px);
	line-height: 1.08;
	letter-spacing: -.03em;
	color: #1f3449;
	overflow-wrap: anywhere;
}

.employee-home-profile-copy p {
	margin: 0;
	font-size: 13px;
	line-height: 1.55;
	color: #607691;
}

.employee-home-grid__calendar::after,
.employee-home-grid__calendar > h3.section-title-inline::after {
	display: none;
}

.employee-home-grid__calendar .ho-widget,
.employee-home-grid__calendar .ho-layout,
.employee-home-grid__calendar .ho-month-panel,
.employee-home-grid__calendar .ho-calendar,
.employee-home-grid__calendar .ho-calendar-scroll,
.employee-home-grid__calendar .ho-calendar-frame {
	height: auto;
	min-width: 0;
	width: 100%;
}

.employee-home-grid__calendar .ho-widget {
	display: grid;
	gap: 0;
}

.employee-home-grid__calendar .ho-layout {
	display: block;
}

.employee-home-grid__calendar .ho-card--attendance {
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	height: auto;
}

.employee-home-grid__calendar .ho-calendar-scroll {
	overflow-y: visible;
}

.employee-home-grid__calendar .ho-card-head {
	margin-bottom: 8px;
	padding: 0 2px;
}

.employee-home-grid__calendar .ho-card-title {
	font-size: 0;
	margin: 0;
}

.employee-home-grid__calendar .ho-card-subtitle,
.employee-home-grid__calendar .dash-sub,
.employee-home-grid__calendar .ho-calendar-helper,
.employee-home-grid__calendar .ho-calendar-caption {
	display: none;
}

.employee-home-grid__calendar .ho-toolbar {
	width: 100%;
	justify-content: flex-end;
}


.employee-home-grid__calendar .ho-month-nav {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-left: auto;
	padding: 4px 8px;
}

.employee-home-grid__calendar .ho-month-nav-label {
	min-width: 140px;
	font-size: 11px;
}

.home-calendar-widget .ho-badge--calendar {
	width: 28px;
	height: 28px;
	min-width: 28px;
	min-height: 28px;
	padding: 0;
	justify-content: center;
	gap: 0;
	border-radius: 999px;
}

.home-calendar-widget .ho-badge--calendar .ho-badge-text {
	display: none;
}

.home-calendar-widget .ho-badge--calendar.home-attendance-badge--ok {
	background: rgba(160, 191, 59, .16);
	border-color: rgba(160, 191, 59, .30);
	color: #4f650f;
}

.home-calendar-widget .ho-badge--calendar.home-attendance-badge--warning {
	background: rgba(196, 121, 32, .14);
	border-color: rgba(196, 121, 32, .24);
	color: #8b4a08;
}

.home-calendar-widget .ho-badge--calendar.home-attendance-badge--stop {
	background: rgba(200, 50, 40, .12);
	border-color: rgba(200, 50, 40, .24);
	color: #922020;
}

.home-calendar-widget .ho-calendar-day.is-interactive {
	cursor: pointer;
	transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.home-calendar-widget .ho-calendar-day.is-interactive:hover {
	transform: translateY(-2px);
	border-color: #bfd2e5;
	box-shadow: 0 18px 32px rgba(37, 61, 89, .10);
}

.home-calendar-widget .ho-calendar-day.is-interactive:focus-visible {
	outline: none;
	border-color: #175c94;
	box-shadow: 0 0 0 3px rgba(23, 92, 148, .16), 0 18px 32px rgba(37, 61, 89, .10);
}

.home-calendar-widget .ho-calendar-day.home-calendar-day--ok {
	border-color: rgba(126, 176, 77, .38);
	background: linear-gradient(180deg, #fcfef9 0%, #e6f3d9 100%);
	box-shadow: 0 14px 28px rgba(77, 128, 45, .12);
}

.home-calendar-widget .ho-calendar-day.home-calendar-day--ok:hover {
	border-color: rgba(126, 176, 77, .54);
	box-shadow: 0 20px 34px rgba(77, 128, 45, .16);
}

.home-calendar-widget .ho-calendar-day.home-calendar-day--ok:focus-visible {
	border-color: #739f45;
	box-shadow: 0 0 0 3px rgba(115, 159, 69, .20), 0 20px 34px rgba(77, 128, 45, .16);
}

.home-calendar-widget .ho-calendar-event-list {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: auto;
	max-width: 100%;
}

.home-calendar-widget .ho-calendar-event {
	gap: 0;
	width: 28px;
	height: 28px;
	min-height: 28px;
	padding: 0;
}

.home-calendar-widget .ho-calendar-event-text {
	display: none;
}

.home-calendar-day-modal-card {
	width: min(920px, calc(100vw - 24px));
}

.admin-modal[data-home-day-modal] {
	align-items: center;
	justify-content: center;
	padding: clamp(12px, 2vw, 24px);
}

.admin-modal[data-home-day-modal] .admin-modal-header {
	padding: 18px 20px 14px;
}

.admin-modal[data-home-day-modal] .admin-modal-body {
	padding: 18px 20px 20px;
}

.home-calendar-day-modal-sheet {
	display: grid;
	gap: 18px;
}

.home-calendar-day-detail-panel {
	display: grid;
	gap: 12px;
	padding: 16px 18px;
	border-radius: 18px;
	border: 1px solid #dfe8f2;
	background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .5);
}

.home-calendar-day-detail-panel--single {
	padding: 18px;
}

.home-calendar-day-detail-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.home-calendar-day-detail-title {
	margin: 0;
	font-size: 18px;
	font-weight: 800;
	color: #102f4c;
}

.home-calendar-day-event-list {
	display: grid;
	gap: 10px;
}

.home-calendar-day-event-row {
	display: grid;
	gap: 4px;
	padding: 12px 14px;
	border-radius: 14px;
	border: 1px solid #e1eaf3;
	background: #f8fbff;
}

.home-calendar-day-event-kind {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #6f859a;
}

.home-calendar-day-event-title {
	font-size: 14px;
	line-height: 1.45;
	color: #203c58;
}

.home-calendar-day-event-meta {
	font-size: 12px;
	line-height: 1.45;
	color: #627b93;
}

.home-calendar-day-event-row.is-attendance {
	border-color: rgba(23, 92, 148, .16);
	background: linear-gradient(180deg, #fbfdff 0%, #eef6fd 100%);
}

.home-calendar-day-event-row.is-attendance .home-calendar-day-event-kind {
	color: #175c94;
}

.employee-home-grid__calendar .ho-month-select {
	position: absolute;
	width: 1px;
	min-width: 1px;
	max-width: 1px;
	height: 1px;
	min-height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
	opacity: 0;
	pointer-events: none;
}

.employee-home-grid__calendar .ho-calendar-frame {
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.employee-home-basic-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-top: 2px;
}

.employee-home-basic-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 10px;
}

.employee-home-basic-card {
	display: grid;
	gap: 5px;
	padding: 12px 14px;
	border-radius: 14px;
	border: 1px solid rgba(17, 67, 106, .10);
	background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(242,247,251,.94) 100%);
	box-shadow: 0 6px 16px rgba(13, 45, 74, .05);
	min-width: 0;
}

.employee-home-basic-label {
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #6c849b;
}

.employee-home-basic-value {
	font-family: "Manrope", sans-serif;
	font-size: 16px;
	line-height: 1.25;
	color: #17324d;
	overflow-wrap: anywhere;
}

.employee-home-kpi-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin-bottom: 0;
}

.employee-home-kpi-grid .kpi {
	min-height: 88px;
	padding: 13px 12px 12px;
	border-radius: 14px;
	box-shadow: 0 10px 22px rgba(13, 45, 74, .06);
}

.employee-home-kpi-grid .kpi .label {
	font-size: 10px;
	line-height: 1.35;
	min-height: 28px;
	margin-bottom: 6px;
	color: #6f88a1;
}

.employee-home-kpi-grid .kpi .value {
	font-size: clamp(18px, 1.8vw, 23px);
	line-height: 1.08;
	word-break: break-word;
}

.employee-home-grid__calendar .dash-sub {
	margin-bottom: 6px;
}

.employee-home-grid__calendar .ho-calendar,
.employee-home-grid__calendar .vacation-request-panel--calendar,
.employee-home-grid__calendar .profile-grid,
.employee-home-grid__calendar .stack {
	min-width: 0;
	width: 100%;
}

@media (max-width: 1100px) {
	.employee-home-market-ribbon-shell {
		width: 80vw;
	}

	.employee-home-market-ribbon {
		padding: 20px 22px;
	}

	.marketplace-ribbon-admin-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.marketplace-ribbon-admin-row--two-columns,
	.marketplace-ribbon-admin-row--four-columns {
		grid-template-columns: minmax(0, 1fr);
	}

	.marketplace-ribbon-crop-preview {
		min-height: 160px;
	}

	.employee-home-market-ribbon__meta {
		justify-items: start;
		min-width: 0;
	}

	.employee-home-market-ribbon__celebration {
		width: 150px;
		height: 150px;
	}

	.employee-home-grid {
		grid-template-columns: minmax(260px, 30%) minmax(0, 70%);
		gap: 14px;
	}

	.employee-home-profile-card {
		grid-template-columns: minmax(0, 1fr);
	}

	.employee-home-profile-avatar {
		width: 78px;
		height: 78px;
		border-radius: 20px;
	}

	.employee-home-kpi-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 760px) {
	.employee-home-market-ribbon-shell {
		width: 80vw;
		transform: translateY(-50%) rotate(-10deg) scale(.92);
	}

	.employee-home-market-ribbon-shell.is-preview {
		transform: none;
		transform-origin: center;
	}

	.marketplace-ribbon-crop-preview {
		padding: 14px;
		border-radius: 18px;
	}

	.marketplace-ribbon-crop-preview__frame {
		max-width: none;
		padding: 14px;
	}

	.employee-home-market-ribbon {
		grid-template-columns: minmax(0, 1fr);
		padding: 18px 18px 20px;
		gap: 12px;
	}

	.employee-home-market-ribbon__copy {
		padding: 25px;
	}

	.employee-home-market-ribbon__celebration {
		width: 118px;
		height: 118px;
		top: 56%;
	}

	.employee-home-market-ribbon {
		grid-template-columns: minmax(0, 1fr);
		width: min(420px, calc(100vw - 8px));
		aspect-ratio: auto;
		min-height: 210px;
		padding: 16px 16px 18px;
		border-radius: 18px;
		gap: 12px;
	}

	.employee-home-market-ribbon__copy strong {
		font-size: 22px;
	}

	.employee-home-market-ribbon__copy p {
		font-size: 13px;
	}

	.employee-home-market-ribbon__meta {
		gap: 8px;
	}

	.employee-home-market-ribbon__button {
		width: 100%;
	}

	.employee-home-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.employee-home-grid__summary,
	.employee-home-grid__calendar {
		padding: 16px;
	}

	.employee-home-profile-card {
		padding: 12px;
	}

	.employee-home-profile-avatar {
		width: 72px;
		height: 72px;
		border-radius: 18px;
		font-size: 22px;
	}

	.employee-home-basic-grid,
	.employee-home-kpi-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.employee-home-grid__calendar .ho-card-head {
		padding: 0;
	}

	.employee-home-grid__calendar .ho-toolbar,
	.employee-home-grid__calendar .ho-month-nav {
		width: 100%;
		justify-content: flex-start;
	}

	.employee-home-grid__calendar .ho-month-nav {
		justify-content: space-between;
	}

	.employee-home-grid__calendar .ho-month-nav-label {
		min-width: 0;
		flex: 1 1 auto;
	}
}

/* Clase base heredable para grids de registros */
.rh-grid {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	background: #fff;
	border: none;
	border-radius: 12px;
	overflow: hidden;
}

.rh-grid th,
.rh-grid td {
	padding: 10px 12px;
	border-bottom: 1px solid #e7eef6;
	color: #314d68;
	vertical-align: middle;
}

.rh-grid th {
	background: linear-gradient(180deg, #4F6E9C 0%, var(--c-primary) 100%);
	color: #fff;
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .06em;
}

.rh-grid tbody tr {
	transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.rh-grid tbody tr:nth-child(even) {
	background: #fbfdff;
}

.rh-grid tbody tr:hover {
	background: rgba(79, 110, 156, .08);
	transform: translateY(-1px);
	box-shadow: inset 3px 0 0 var(--c-action);
	border-bottom: solid 1px rgba(160, 191, 59, .28);
}

.rh-grid-form .field-block {
	transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
	border: 1px solid transparent;
	border-radius: 12px;
	padding: 8px;
}

.rh-grid-form .field-block:hover {
	background: linear-gradient(180deg, #f8fbff 0%, #f3f8fd 100%);
	border-color: rgba(17, 67, 106, .12);
	box-shadow: 0 8px 16px rgba(36, 63, 92, .06);
}

.dash-question {
	margin: -4px 0 16px;
	padding: 11px 14px;
	border-radius: 10px;
	background: linear-gradient(180deg, #f8fbfd 0%, #f2f7fb 100%);
	border-left: 4px solid #1abb9c;
	border-top: 1px solid #e0e8f1;
	border-right: 1px solid #e0e8f1;
	border-bottom: 1px solid #e0e8f1;
	color: #48627c;
	font-size: 14px;
}

.gerente-focus-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}



.gerente-focus-item {
	position: relative;
	padding: 16px 16px 14px 20px;
	border: none;
	border-radius: 14px;
	background: var(--c-surface-card);
	box-shadow: var(--shadow-card);
	overflow: hidden;
}

.gerente-focus-item::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 0px;
	border-radius: 14px 0 0 14px;
	background: var(--c-neutral);
}

.gerente-focus-item strong {
	display: block;
	font-family: "Manrope", sans-serif;
	font-size: 32px;
	font-weight: 800;
	line-height: 1;
	color: var(--c-text);
	margin-bottom: 6px;
	letter-spacing: -.03em;
}

.gerente-focus-item span {
	font-size: 11.5px;
	font-weight: 600;
	color: var(--c-text-soft);
	line-height: 1.4;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.gerente-grid-wrap {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow-x: scroll;
	overflow-y: hidden;
	padding-bottom: 10px;
	scrollbar-gutter: stable both-edges;
	scrollbar-width: auto;
	scrollbar-color: rgba(23, 92, 148, .75) rgba(17, 67, 106, .14);
	overscroll-behavior-x: contain;
	border: none;
	border-radius: 14px;
	background: var(--c-surface-card);
	box-shadow: var(--shadow-card);
}

:where(.gerente-grid-wrap, .ho-table-wrap, .permissions-tree-wrap)::-webkit-scrollbar {
	height: 14px;
	width: 14px;
}

:where(.gerente-grid-wrap, .ho-table-wrap, .permissions-tree-wrap)::-webkit-scrollbar-track {
	background: rgba(17, 67, 106, .12);
	border-radius: 999px;
	box-shadow: inset 0 0 0 1px rgba(17, 67, 106, .08);
}

:where(.gerente-grid-wrap, .ho-table-wrap, .permissions-tree-wrap)::-webkit-scrollbar-thumb {
	background: linear-gradient(180deg, rgba(23, 92, 148, .92) 0%, rgba(17, 67, 106, .86) 100%);
	border-radius: 999px;
	border: 2px solid rgba(255, 255, 255, .75);
}

:where(.gerente-grid-wrap, .ho-table-wrap, .permissions-tree-wrap)::-webkit-scrollbar-thumb:hover {
	background: linear-gradient(180deg, rgba(23, 92, 148, 1) 0%, rgba(13, 45, 74, .92) 100%);
}

.rh-grid-tools {
	display: grid;
	grid-template-columns: minmax(220px, 1.4fr) repeat(3, minmax(150px, .8fr)) auto auto;
	gap: 10px;
	align-items: center;
	margin: 0 0 14px;
}

.rh-grid-control {
	width: 100%;
	min-height: 38px;
	border: 1px solid var(--c-line);
	border-radius: 9px;
	padding: 0 12px;
	background: var(--c-surface-card);
	color: var(--c-text);
	font: inherit;
	font-size: 13px;
	transition: border-color .18s ease, box-shadow .18s ease;
}

.rh-grid-control:focus {
	outline: none;
	border-color: var(--c-blue-2);
	box-shadow: 0 0 0 3px rgba(79, 110, 156, .12);
}

.rh-grid-export {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 38px;
	border: 1px solid var(--c-line);
	border-radius: 9px;
	padding: 0 14px;
	font-family: "Manrope", sans-serif;
	font-size: 12px;
	font-weight: 700;
	color: var(--c-text-soft);
	cursor: pointer;
	background: var(--c-surface-card);
	letter-spacing: .03em;
	transition: background .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease;
}

.rh-grid-export:hover {
	background: var(--c-primary);
	border-color: var(--c-primary);
	color: #fff;
	box-shadow: 0 4px 12px rgba(13, 45, 74, .16);
}

.gerente-grid-table {
	width: max-content;
	min-width: max(100%, 900px);
	border-collapse: separate;
	border-spacing: 0;
	background: transparent;
}

.ho-table-wrap > .ho-table,
.ho-table-wrap > .rh-grid,
.gerente-grid-wrap > .gerente-grid-table,
.gerente-grid-wrap > .rh-grid {
	width: max-content;
	min-width: max(100%, 900px);
}

.ho-table-wrap--schedule > .ho-table--schedule,
.ho-table-wrap--schedule > .rh-grid.ho-table--schedule {
	width: 100% !important;
	min-width: 100% !important;
}

.gerente-grid-table tbody tr {
	transition: background-color .16s ease, box-shadow .16s ease;
}

.gerente-grid-table tbody tr:nth-child(even) {
	background: rgba(234, 240, 248, .40);
}

.gerente-grid-table tbody tr:hover {
	background: rgba(26, 171, 126, .06);
	box-shadow: inset 4px 0 0 var(--c-success);
}

.gerente-grid-table tbody tr:last-child td {
	border-bottom: none;
}

.gerente-grid-table th,
.gerente-grid-table td {
	padding: 12px 14px;
	text-align: left;
	border-bottom: 1px solid var(--c-line-soft);
	font-size: 13px;
	color: var(--c-text);
	vertical-align: middle;
}

.gerente-grid-table th {
	background: var(--c-surface);
	border-bottom: 2px solid var(--c-line);
	font-size: 10.5px;
	text-transform: uppercase;
	letter-spacing: .10em;
	font-weight: 800;
	color: var(--c-text-soft);
	position: sticky;
	top: 0;
	z-index: 1;
	white-space: nowrap;
}

.rh-grid th.sortable {
	cursor: pointer;
	user-select: none;
	position: relative;
	padding-right: 24px;
	transition: background-color .2s ease, color .2s ease;
}

.rh-grid th.sortable:hover {
	background: #e8eef5;
	color: #2f455b;
}

.rh-grid th.sortable::after {
	content: "⇅";
	position: absolute;
	right: 8px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 11px;
	opacity: .45;
}

.rh-grid th.sortable.sort-asc::after {
	content: "↑";
	opacity: .95;
	color: #2f567f;
}

.rh-grid th.sortable.sort-desc::after {
	content: "↓";
	opacity: .95;
	color: #2f567f;
}

.rh-grid th.no-sort {
	cursor: default;
}

.state-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 10px;
	border-radius: 999px;
	font-size: 10px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
	line-height: 1;
}

.state-pill::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: currentColor;
	opacity: .75;
}

.state-pill.is-active {
	background: rgba(26, 171, 126, .10);
	color: #0e7a5c;
	border: 1px solid rgba(26, 171, 126, .22);
}

.state-pill.is-inactive {
	background: rgba(201, 64, 64, .08);
	color: #943030;
	border: 1px solid rgba(201, 64, 64, .18);
}

.grid-profile-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	border: 1px solid rgba(17, 67, 106, .14);
	background: rgba(255, 255, 255, .88);
	color: #4e6783;
	border-radius: 999px;
	padding: 0 10px;
	min-height: 30px;
	font-size: 11px;
	font-weight: 700;
	cursor: pointer;
	text-decoration: none;
	width: max-content;
	letter-spacing: .01em;
	box-shadow: 0 2px 10px rgba(17, 67, 106, .05);
	transition: background .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease;
}

.grid-profile-btn:hover {
	background: rgba(255, 255, 255, .98);
	border-color: rgba(17, 67, 106, .18);
	color: #345a80;
	box-shadow: 0 6px 14px rgba(17, 67, 106, .08);
}

/* Regla base: las acciones dentro de grids deben verse mas discretas que los CTA primarios */
:where(.rh-grid, .gerente-grid-table) td :is(.grid-profile-btn, .company-grid-action-btn, .vacation-grid-action-btn, .btn).is-grid-action,
:where(.rh-grid, .gerente-grid-table) td :is(.grid-profile-btn, .company-grid-action-btn, .vacation-grid-action-btn) {
	min-height: 28px;
	padding: 0 10px;
	border-radius: 999px;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .01em;
	box-shadow: none;
	filter: none;
	transform: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

:where(.rh-grid, .gerente-grid-table) td :is(.grid-profile-btn, .company-grid-action-btn, .vacation-grid-action-btn, .btn).is-grid-action {
	border: 1px solid rgba(17, 67, 106, .12);
	background: linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(244,248,252,.96) 100%);
	color: var(--c-text-soft);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.85);
}

:where(.rh-grid, .gerente-grid-table) td .is-grid-action-primary {
	color: #275c88;
	border-color: rgba(39, 92, 136, .14);
	background: linear-gradient(180deg, rgba(39, 92, 136, .08) 0%, rgba(39, 92, 136, .04) 100%);
}

:where(.rh-grid, .gerente-grid-table) td .is-grid-action-secondary {
	color: #5f7388;
	border-color: rgba(17, 67, 106, .1);
	background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(246,249,252,.98) 100%);
}

:where(.rh-grid, .gerente-grid-table) td :is(.grid-profile-btn, .company-grid-action-btn, .vacation-grid-action-btn, .btn).is-grid-action:not(:disabled):hover,
:where(.rh-grid, .gerente-grid-table) td :is(.grid-profile-btn, .company-grid-action-btn, .vacation-grid-action-btn):not(:disabled):hover {
	transform: none;
	filter: none;
	box-shadow: 0 3px 10px rgba(17, 67, 106, .08);
	background: rgba(255, 255, 255, .98);
}

:where(.rh-grid, .gerente-grid-table) td .is-grid-action-primary:not(:disabled):hover {
	border-color: rgba(39, 92, 136, .22);
	background: linear-gradient(180deg, rgba(39, 92, 136, .12) 0%, rgba(39, 92, 136, .06) 100%);
	color: #234f75;
}

:where(.rh-grid, .gerente-grid-table) td .is-grid-action-secondary:not(:disabled):hover {
	border-color: rgba(17, 67, 106, .16);
	background: rgba(255, 255, 255, .99);
	color: #4e6783;
}

.grid-action-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 14px;
	height: 14px;
	flex: 0 0 auto;
	color: currentColor;
	opacity: .84;
}

.grid-action-icon svg {
	width: 14px;
	height: 14px;
	display: block;
	fill: currentColor;
}

:where(.rh-grid, .gerente-grid-table) td .company-grid-action-btn.is-edit,
:where(.rh-grid, .gerente-grid-table) td .vacation-grid-action-btn.btn-action,
:where(.rh-grid, .gerente-grid-table) td .btn.is-grid-action.btn-action {
	color: #275c88;
	border-color: rgba(39, 92, 136, .14);
	background: rgba(39, 92, 136, .06);
}

:where(.rh-grid, .gerente-grid-table) td .company-grid-action-btn.is-vacation,
:where(.rh-grid, .gerente-grid-table) td .vacation-grid-action-btn.admin-modal-secondary,
:where(.rh-grid, .gerente-grid-table) td .btn.is-grid-action.admin-modal-secondary {
	color: #246a59;
	border-color: rgba(26, 171, 126, .14);
	background: rgba(26, 171, 126, .05);
}

:where(.rh-grid, .gerente-grid-table) td .company-grid-action-btn.is-benefits {
	color: #7c5a20;
	border-color: rgba(224, 123, 42, .16);
	background: rgba(224, 123, 42, .06);
}

/* Hover global bonito para botones en todo el sitio */
:is(button, .btn, .qa-btn, .grid-profile-btn, .dash-icon-btn, .profile-edit-btn, .password-eye, .profile-tab, .rh-grid-export):not(:disabled) {
	transition: transform .18s ease, box-shadow .22s ease, filter .22s ease, border-color .22s ease, background .22s ease;
}

:is(button, .btn, .qa-btn, .grid-profile-btn, .dash-icon-btn, .profile-edit-btn, .password-eye, .profile-tab, .rh-grid-export):not(:disabled):hover {
	transform: translateY(-1px);
	filter: saturate(1.05);
	box-shadow: 0 8px 20px rgba(24, 57, 90, .14);
}

:is(button, .btn, .qa-btn, .grid-profile-btn, .dash-icon-btn, .profile-edit-btn, .password-eye, .profile-tab, .rh-grid-export):not(:disabled):focus-visible {
	outline: 2px solid #A0BF3B;
	outline-offset: 2px;
}

/* Admin RH / modales premium / herramientas */
.admin-modal {
	position: fixed;
	inset: 0;
	width: 100vw;
	min-height: 100vh;
	min-height: 100dvh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(12px, 2vw, 24px);
	overflow-y: auto;
	background: rgba(18, 32, 48, 0);
	backdrop-filter: blur(0px);
	z-index: 9999;
	/* Estado oculto: invisible pero en DOM para que las transiciones funcionen */
	visibility: hidden;
	pointer-events: none;
	transition:
		background      0.55s ease,
		backdrop-filter 0.55s ease,
		visibility      0s   linear 0.55s;
}

.admin-modal.is-open {
	background: rgba(18, 32, 48, 0.48);
	backdrop-filter: blur(8px);
	visibility: visible;
	pointer-events: auto;
	transition:
		background      0.55s ease,
		backdrop-filter 0.55s ease,
		visibility      0s   linear 0s;
}

.admin-modal-card {
	display: flex;
	flex-direction: column;
	width: min(960px, calc(100vw - 24px));
	max-height: min(94vh, calc(100dvh - 16px));
	overflow: hidden;
	position: relative;
	margin: auto;
	padding: 0;
	border-radius: 18px;
	border: 1px solid #dce5ef;
	background: linear-gradient(180deg, #ffffff 0%, var(--c-surface) 100%);
	box-shadow: 0 30px 80px rgba(17, 67, 106, 0.24);
	/* Estado colapsado */
	opacity: 0;
	transform: scale(0.88) translateY(12px);
	filter: blur(4px);
	transition:
		opacity   0.55s ease 0.06s,
		transform 0.65s cubic-bezier(0.34, 1.45, 0.64, 1) 0.06s,
		filter    0.55s ease 0.06s;
}

.admin-modal.is-open .admin-modal-card {
	opacity: 1;
	transform: none;
	filter: none;
}

.admin-modal-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	padding: 18px 20px 14px;
	border-bottom: 1px solid rgba(17, 67, 106, 0.16);
	background: linear-gradient(135deg, #2a3f54 0%, #175C94 100%);
}

.company-edit-header-copy {
	flex: 1 1 auto;
	min-width: 0;
}

.company-edit-header-brand {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-left: auto;
	margin-right: 6px;
}

.company-edit-logo-dropzone {
	display: grid;
	gap: 8px;
	justify-items: center;
	cursor: pointer;
}

.company-edit-logo-preview {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 136px;
	height: 92px;
	padding: 10px;
	border-radius: 16px;
	border: 1px dashed rgba(255, 255, 255, 0.34);
	background: rgba(255, 255, 255, 0.08);
	overflow: hidden;
}

.company-edit-logo-preview.is-empty {
	color: rgba(255, 255, 255, 0.8);
	font-size: 12px;
	font-weight: 700;
	text-align: center;
	line-height: 1.4;
}

.company-edit-logo-preview img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	display: block;
}

.company-edit-logo-caption {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .04em;
	color: rgba(255, 255, 255, 0.82);
	text-align: center;
	max-width: 136px;
	word-break: break-word;
}

.admin-modal-kicker {
	margin: 0 0 6px;
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: rgba(255, 255, 255, .76);
}

.admin-modal-title {
	margin: 0;
	color: #fff;
}

.admin-modal-intro {
	margin: 6px 0 0;
	color: rgba(240, 247, 255, .88);
}

.admin-modal-body {
	flex: 1 1 auto;
	min-height: 0;
	padding: 16px 20px 18px;
	overflow-y: auto;
	max-height: none;
	background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.admin-modal-card > .admin-modal-body,
.admin-modal-card > form,
.admin-modal-card > .contacts-modal-form,
.admin-modal-card > .document-upload-form {
	flex: 1 1 auto;
	min-height: 0;
}

.admin-modal-card > form,
.admin-modal-card > .contacts-modal-form,
.admin-modal-card > .document-upload-form {
	display: flex;
	flex-direction: column;
	gap: 12px;
	overflow-y: auto;
	padding: 16px 20px 18px;
	background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.admin-modal-status-stack {
	display: grid;
	gap: 10px;
	margin-bottom: 12px;
}

.users-inline-pair {
	grid-column: span 2;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 12px;
}

.users-inline-pair > .field-block {
	flex: 1 1 320px;
	min-width: 0;
	margin: 0;
}

/* Toggle de visibilidad de contraseña */
.password-reveal-wrap {
	position: relative;
	display: flex;
	align-items: center;
}

.password-reveal-wrap input {
	flex: 1;
	padding-right: 38px;
}

.password-reveal-btn {
	position: absolute;
	right: 8px;
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	color: var(--text-muted, #8a9ab5);
	display: flex;
	align-items: center;
	line-height: 1;
	transition: color .15s;
}

.password-reveal-btn:hover {
	color: var(--primary, #3b6fcf);
}

.eye-icon {
	width: 18px;
	height: 18px;
	display: block;
}

.admin-modal .kpi-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
	margin-bottom: 8px;
}

.admin-modal .kpi {
	padding: 10px 12px;
	border-radius: 12px;
	box-shadow: 0 4px 10px rgba(43, 63, 84, .05);
}

.admin-modal .kpi .label {
	font-size: 11px;
}

.admin-modal .kpi .value {
	font-size: 14px;
}

.admin-modal-form .rh-grid-form {
	gap: 10px;
}

.admin-modal-footer {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	flex-wrap: wrap;
	bottom: 0;
	z-index: 2;
	margin-top: 10px;
	padding: 12px;
	border-top: 1px solid #e3eaf2;
	background: linear-gradient(180deg, rgba(248, 251, 255, 0) 0%, #f8fbff 30%);
}

.admin-modal-card.is-complete .modal-primary-submit {
	display: none !important;
}

.user-status-switch {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	min-height: 42px;
	padding: 6px 0;
	cursor: pointer;
	user-select: none;
}

.user-status-switch input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.user-status-slider {
	position: relative;
	width: 54px;
	height: 30px;
	border-radius: 999px;
	background: #d7e3ef;
	box-shadow: inset 0 0 0 1px #bfd0e2;
	transition: background .2s ease, box-shadow .2s ease;
	flex: 0 0 auto;
}

.user-status-slider::after {
	content: '';
	position: absolute;
	top: 3px;
	left: 3px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 3px 10px rgba(17, 67, 106, 0.18);
	transition: transform .2s ease;
}

.user-status-switch input:checked + .user-status-slider {
	background: linear-gradient(135deg, #8fb53b 0%, #a9c954 100%);
	box-shadow: inset 0 0 0 1px rgba(111, 148, 35, 0.28);
}

.user-status-switch input:checked + .user-status-slider::after {
	transform: translateX(24px);
}

.user-status-switch input:disabled + .user-status-slider {
	opacity: .65;
	cursor: not-allowed;
}

.user-status-switch input:disabled ~ .user-status-text {
	opacity: .7;
}

.user-status-text {
	font-weight: 700;
	color: #2f425a;
	letter-spacing: .01em;
}

.company-directory-layout {
	display: grid;
	grid-template-columns: minmax(320px, 0.95fr) minmax(0, 1.65fr);
	gap: 18px;
	align-items: start;
}

.company-card,
.company-list-card,
.smtp-layout,
.smtp-config-card {
	display: grid;
	gap: 14px;
}

.company-card-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}

.company-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.company-form-grid .span-2 {
	grid-column: 1 / -1;
}

.company-form-grid textarea {
	width: 100%;
	min-height: 86px;
	resize: vertical;
}

/* Override final para el calendario embebido del home */
.employee-home-grid__calendar .ho-card--attendance {
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.employee-home-grid__calendar .ho-calendar-caption,
.employee-home-grid__calendar .ho-calendar-helper,
.employee-home-grid__calendar .dash-sub,
.employee-home-grid__calendar .ho-card-subtitle {
	display: none !important;
}

.employee-home-grid__calendar .ho-calendar-frame {
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.employee-home-grid__calendar .ho-month-select {
	position: absolute !important;
	width: 1px !important;
	min-width: 1px !important;
	max-width: 1px !important;
	height: 1px !important;
	min-height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

.company-action-row,
.company-primary-actions,
.company-row-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.company-registered-wrap .company-row-actions {
	flex-wrap: nowrap;
	justify-content: flex-start;
	white-space: nowrap;
}

.company-grid-action-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 30px;
	padding: 0 10px;
	border-radius: 999px;
	border: 1px solid rgba(17, 67, 106, .14);
	background: rgba(255, 255, 255, .88);
	color: #4e6783;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .01em;
	box-shadow: 0 2px 10px rgba(17, 67, 106, .05);
}

.company-grid-action-btn .company-grid-action-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	color: currentColor;
	flex: 0 0 auto;
}

.company-grid-action-btn .company-grid-action-icon svg {
	width: 14px;
	height: 14px;
	display: block;
	fill: currentColor;
}

.company-grid-action-btn.is-edit {
	color: #275c88;
	background: rgba(39, 92, 136, .08);
	border-color: rgba(39, 92, 136, .14);
}

.company-grid-action-btn.is-vacation {
	color: #246a59;
	background: rgba(26, 171, 126, .08);
	border-color: rgba(26, 171, 126, .16);
}

.company-grid-action-btn.is-benefits {
	color: #7c5a20;
	background: rgba(224, 123, 42, .10);
	border-color: rgba(224, 123, 42, .18);
}

.company-grid-action-btn:hover {
	background: rgba(255, 255, 255, .98);
	box-shadow: 0 6px 14px rgba(17, 67, 106, .08);
	filter: none;
}

.company-grid-action-btn:focus-visible {
	outline: 2px solid rgba(160, 191, 59, .65);
	outline-offset: 2px;
}

.company-registered-wrap {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow: hidden;
}

.company-registered-wrap .gerente-grid-table {
	min-width: max(100%, 1320px);
}

.company-grid-logo-cell {
	min-width: 86px;
}

.company-grid-logo-frame {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 38px;
	padding: 4px 6px;
	border-radius: 10px;
	border: 1px solid rgba(17, 67, 106, .12);
	background: linear-gradient(180deg, rgba(255, 255, 255, .98) 0%, rgba(234, 240, 248, .75) 100%);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .7);
}

.company-grid-logo-frame img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	display: block;
}

.company-grid-logo-empty,
.company-grid-files-empty {
	font-size: 12px;
	color: var(--c-text-soft);
	white-space: nowrap;
}

.company-grid-files-cell {
	min-width: 240px;
	max-width: 340px;
	white-space: normal;
}

.company-grid-files-list {
	display: grid;
	gap: 6px;
}

.company-grid-file-name {
	display: block;
	font-size: 12px;
	line-height: 1.35;
	color: var(--c-text);
	word-break: break-word;
}

.company-benefits-grid-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 8px;
}

.company-benefits-add-btn {
	min-height: 34px;
	padding: 0 14px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .03em;
}

.company-benefits-grid-wrap {
	border: 1px solid rgba(17, 67, 106, .10);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .7);
}

.company-benefits-grid-table {
	min-width: max(100%, 980px);
}

.company-benefits-grid-table td {
	vertical-align: top;
}

.company-benefits-grid-table td input,
.company-benefits-grid-table td select {
	min-width: 100%;
	padding: 10px 12px;
	border-radius: 10px;
	border: 1px solid #d9e3ee;
	background: linear-gradient(180deg, #ffffff 0%, #f9fbfd 100%);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
	font: inherit;
	color: #25384e;
}

.company-benefits-grid-table td select[multiple] {
	min-height: 132px;
	padding: 6px;
	background: #fff;
}

.company-benefits-grid-table td input:focus,
.company-benefits-grid-table td select:focus {
	outline: none;
	border-color: #4F6E9C;
	box-shadow: 0 0 0 4px rgba(79, 110, 156, .10);
	background: #fff;
}

.company-benefits-remove-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 999px;
	border: 1px solid rgba(201, 64, 64, .18);
	background: rgba(201, 64, 64, .07);
	color: #a43232;
	font-size: 18px;
	line-height: 1;
	box-shadow: none;
	filter: none;
	transform: none;
}

.company-benefits-remove-btn:hover,
.company-benefits-remove-btn:focus-visible {
	background: rgba(201, 64, 64, .12);
	color: #8b2424;
	box-shadow: none;
	filter: none;
	transform: none;
}

.company-registered-wrap .company-row-actions .company-grid-action-btn {
	flex: 0 0 auto;
}

.company-primary-actions {
	justify-content: flex-end;
}

.appchecar-hero {
	gap: 16px;
}

.appchecar-layout {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.appchecar-side-card {
	padding: 22px;
}

.appchecar-summary-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin-top: 14px;
	margin-bottom: 14px;
}

.appchecar-summary-item {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 14px;
	border-radius: 16px;
	background: linear-gradient(180deg, rgba(13, 45, 74, 0.04) 0%, rgba(143, 179, 46, 0.08) 100%);
	border: 1px solid rgba(17, 67, 106, 0.10);
}

.appchecar-summary-item strong {
	font-family: "Manrope", sans-serif;
	font-size: 15px;
	color: var(--c-primary);
}

.appchecar-summary-label {
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--c-text-soft);
}

.appchecar-tips-list {
	margin-top: 0;
	margin-bottom: 0;
}

.appchecar-flow-list {
	margin: 14px 0 18px;
	padding-left: 20px;
	color: var(--c-text);
	line-height: 1.55;
}

.appchecar-flow-list li + li {
	margin-top: 8px;
}

.appchecar-subtitle {
	margin-top: 18px;
}

.appchecar-quick-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 14px;
	margin-bottom: 14px;
}

.appchecar-quick-button {
	min-width: 132px;
}

.appchecar-inline-note {
	margin: 0;
	padding: 14px 16px;
	border-radius: 16px;
	background: rgba(15, 23, 42, 0.05);
	color: var(--muted);
	border: 1px dashed rgba(15, 23, 42, 0.12);
}

.appchecar-actions {
	justify-content: flex-start;
	padding: 0;
}

.appchecar-output-card {
	padding: 24px;
}

.appchecar-console {
	display: grid;
	grid-template-columns: minmax(320px, .95fr) minmax(420px, 1.25fr);
	gap: 18px;
	align-items: stretch;
}

.appchecar-console-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 20px;
}


.sj-shell--admin-console {
	grid-column: 1 / -1;
	align-self: start;
}

#marketplace-ribbon-admin-console {
	grid-column: auto;
	align-self: start;
}

.appchecar-schedules-card {
	padding: 24px;
}

.appchecar-schedules-head {
	align-items: center;
	gap: 16px;
}

.appchecar-schedule-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 16px;
}

.appchecar-schedule-card,
.appchecar-schedule-empty {
	display: grid;
	gap: 14px;
	padding: 18px;
	border-radius: 20px;
	border: 1px solid rgba(17, 67, 106, 0.10);
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(13, 45, 74, 0.03) 100%);
	box-shadow: 0 10px 24px rgba(13, 45, 74, 0.05);
}

.appchecar-schedule-empty p {
	margin: 0;
	color: var(--muted);
}

.appchecar-schedule-card-head {
	display: flex;
	justify-content: space-between;
	gap: 14px;
	align-items: flex-start;
}

.appchecar-schedule-card-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 10px;
	flex-wrap: wrap;
}

.appchecar-schedule-edit-button {
	min-width: 92px;
}

.appchecar-schedule-edit-button.is-grid-action {
	min-width: 0;
	min-height: 28px;
	padding: 0 10px;
	border-radius: 999px;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .01em;
	box-shadow: none;
	filter: none;
	transform: none;
	border: 1px solid rgba(39, 92, 136, .14);
	background: linear-gradient(180deg, rgba(39, 92, 136, .08) 0%, rgba(39, 92, 136, .04) 100%);
	color: #275c88;
}

.appchecar-schedule-edit-button.is-grid-action:not(:disabled):hover {
	transform: none;
	filter: none;
	box-shadow: 0 3px 10px rgba(17, 67, 106, .08);
	border-color: rgba(39, 92, 136, .22);
	background: linear-gradient(180deg, rgba(39, 92, 136, .12) 0%, rgba(39, 92, 136, .06) 100%);
	color: #234f75;
}

.appchecar-schedule-card-title {
	margin: 0;
	font-size: 18px;
	font-weight: 800;
	color: var(--c-primary);
}

.appchecar-schedule-card-subtitle {
	margin: 4px 0 0;
	font-size: 13px;
	color: var(--muted);
}

.appchecar-schedule-grid {
	display: grid;
	gap: 12px;
}

.appchecar-schedule-grid-head,
.appchecar-schedule-row {
	display: grid;
	grid-template-columns: minmax(140px, 1.6fr) 110px 110px;
	gap: 12px;
	align-items: center;
}

.appchecar-schedule-grid-head {
	padding: 0 16px;
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .07em;
	color: var(--c-text-soft);
}

.appchecar-schedule-grid-body {
	display: grid;
	gap: 10px;
}

.appchecar-schedule-row {
	padding: 14px 16px;
	border-radius: 18px;
	border: 1px solid rgba(17, 67, 106, 0.10);
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(13, 45, 74, 0.03) 100%);
	box-shadow: 0 8px 20px rgba(13, 45, 74, 0.05);
	color: var(--c-text);
}

.appchecar-day-chip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 46px;
	padding: 8px 10px;
	border-radius: 12px;
	border: 1px solid rgba(79, 110, 156, .18);
	background: linear-gradient(180deg, #f8fbff 0%, #edf4fb 100%);
	font-size: 12px;
	font-weight: 800;
	color: var(--c-primary);
}

.appchecar-schedule-modal-card {
	max-width: 1120px;
}

.appchecar-schedule-form {
	gap: 18px;
}


.appchecar-schedule-name-block {
	margin-bottom: 4px;
}

.appchecar-weekly-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.appchecar-weekday-card {
	display: grid;
	gap: 14px;
	padding: 18px;
	border-radius: 18px;
	border: 1px solid rgba(79, 110, 156, .14);
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(79, 110, 156, 0.04) 100%);
	opacity: .72;
	transition: opacity .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.appchecar-weekday-card.is-enabled {
	opacity: 1;
	border-color: rgba(23, 92, 148, .24);
	box-shadow: 0 10px 22px rgba(17, 67, 106, .07);
	transform: translateY(-1px);
}

.appchecar-weekday-card-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
}

.appchecar-weekday-title {
	margin: 0;
	font-size: 18px;
	font-weight: 800;
	color: var(--c-blue-1);
}

.appchecar-weekday-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	font-weight: 700;
	color: var(--c-primary);
	cursor: pointer;
}

.appchecar-weekday-toggle input {
	width: 18px;
	height: 18px;
	accent-color: var(--c-blue-1);
}

.appchecar-weekday-fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.appchecar-weekday-card .field-block {
	margin: 0;
}

.appchecar-time-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	align-items: start;
}

.appchecar-time-note {
	margin: 0;
	padding: 12px 14px;
	border-radius: 14px;
	border: 1px solid rgba(58, 130, 196, .16);
	background: rgba(58, 130, 196, .07);
	font-size: 13px;
	color: var(--c-blue-1);
}

.appchecar-schedule-footer {
	justify-content: flex-end;
	align-items: center;
	position: static;
	margin-top: 0;
	padding-top: 6px;
	background: transparent;
}

.appchecar-output {
	margin: 0;
	padding: 18px;
	border-radius: 18px;
	background: #0f172a;
	color: #d8ffe5;
	font: 600 0.86rem/1.6 "IBM Plex Mono", monospace;
	overflow-x: auto;
	white-space: pre-wrap;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.appchecar-output.is-error {
	color: #ffd7d7;
}

@media (max-width: 960px) {
	.appchecar-layout {
		grid-template-columns: 1fr;
	}

	.company-edit-header-brand {
		margin-right: 0;
	}

	.company-edit-logo-preview {
		width: 112px;
		height: 76px;
	}

	.appchecar-console,
	.appchecar-weekly-grid,
	.appchecar-schedule-grid-head,
	.appchecar-schedule-row {
		grid-template-columns: 1fr;
	}

	.appchecar-schedule-grid-head {
		display: none;
	}

	.appchecar-schedule-row {
		gap: 8px;
	}

	.appchecar-schedule-card-head,
	.appchecar-schedule-card-actions {
		align-items: stretch;
	}

	.appchecar-weekday-fields {
		grid-template-columns: 1fr;
	}

	.appchecar-summary-grid {
		grid-template-columns: 1fr;
	}

	.appchecar-quick-button {
		width: 100%;
	}
}

.company-name-link {
	color: #11436A;
	font-weight: 800;
	text-decoration: none;
}

.company-name-link:hover {
	text-decoration: underline;
}

.company-modal-caption,
.smtp-helper-copy {
	margin: 0 0 10px;
	color: #607691;
	font-size: 13px;
}

.welcome-gate-page,
.welcome-gate-page * {
	box-sizing: border-box;
}

.welcome-gate-page {
	margin: 0;
	font-family: "IBM Plex Sans", "Segoe UI", sans-serif;
	color: var(--c-text);
	min-height: 100vh;
	background: linear-gradient(180deg, #eaf1f8 0%, #f7f9fc 100%);
}

.employee-welcome-modal-card {
	width: min(860px, calc(100vw - 24px));
}

.employee-welcome-modal-header {
	background: linear-gradient(135deg, #1f3f63 0%, #175C94 62%, #9dbd38 100%);
}

.employee-welcome-modal-body {
	display: grid;
	gap: 18px;
}

.employee-welcome-hero {
	display: grid;
	grid-template-columns: 108px minmax(0, 1fr);
	gap: 18px;
	align-items: center;
	padding: 18px;
	border: 1px solid rgba(17, 67, 106, .10);
	border-radius: 20px;
	background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(235,242,249,.88) 100%);
}

.employee-welcome-avatar {
	width: 108px;
	height: 108px;
	border-radius: 28px;
	display: grid;
	place-items: center;
	font-family: "Manrope", sans-serif;
	font-size: 34px;
	font-weight: 800;
	letter-spacing: -.04em;
	color: #11436A;
	background: linear-gradient(145deg, #dce96f 0%, #9dbd38 100%);
	box-shadow: 0 18px 30px rgba(160, 191, 59, .26);
}

.employee-welcome-identity {
	display: grid;
	gap: 10px;
	min-width: 0;
}

.employee-welcome-identity h3 {
	margin: 0;
	font-size: clamp(24px, 3vw, 32px);
	line-height: 1.02;
	color: #16324f;
}

.employee-welcome-identity > p {
	margin: 0;
	font-size: 14px;
	font-weight: 700;
	color: #5a718b;
}

.employee-welcome-meta-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.employee-welcome-meta-card {
	display: grid;
	gap: 6px;
	padding: 12px 14px;
	border-radius: 16px;
	background: rgba(255,255,255,.8);
	border: 1px solid rgba(17, 67, 106, .08);
}

.employee-welcome-meta-label,
.employee-welcome-section-title {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #607691;
}

.employee-welcome-meta-card strong {
	font-size: 14px;
	line-height: 1.35;
	color: #16324f;
	word-break: break-word;
}

.employee-welcome-section {
	display: grid;
	gap: 10px;
}

.employee-welcome-notes {
	padding: 16px 18px;
	border-radius: 18px;
	border: 1px solid rgba(17, 67, 106, .10);
	background: linear-gradient(180deg, #ffffff 0%, #f5f8fb 100%);
	color: #334b63;
	line-height: 1.6;
	white-space: normal;
	word-break: break-word;
}

.employee-welcome-community-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
	gap: 18px;
	align-items: stretch;
}

.employee-welcome-community-grid > * {
	min-width: 0;
}

.employee-welcome-hybrid-video {
	display: grid;
	min-width: 0;
}

.employee-welcome-doc-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

.employee-welcome-doc-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 14px;
	border-radius: 14px;
	border: 1px solid rgba(17, 67, 106, .10);
	background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(238,244,249,.92) 100%);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.4;
	color: #224561;
	text-decoration: none;
	word-break: break-word;
}

.employee-welcome-doc-item::before {
	content: "📄";
	flex: 0 0 auto;
	font-size: 18px;
	line-height: 1;
	filter: drop-shadow(0 2px 4px rgba(17, 67, 106, .12));
}

.employee-welcome-doc-item a {
	color: inherit;
	text-decoration: none;
	font-weight: inherit;
	word-break: break-word;
}

.employee-welcome-doc-item a:hover,
.employee-welcome-doc-item a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.employee-welcome-empty {
	margin: 0;
	padding: 14px 16px;
	border-radius: 16px;
	background: rgba(17, 67, 106, .05);
	color: #607691;
	font-size: 13px;
}

.employee-welcome-terms {
	padding: 4px 2px;
	justify-content: flex-start;
	align-items: center;
	flex-wrap: wrap;
}

.employee-welcome-terms .user-status-text {
	font-size: 14px;
	line-height: 1.45;
	color: #274761;
}

.employee-welcome-video-modal-card {
	width: min(920px, calc(100vw - 24px));
}

.employee-welcome-video-modal-body {
	display: grid;
	gap: 18px;
	padding: 0;
}

.employee-welcome-video-frame {
	display: grid;
	gap: 12px;
	padding: 18px;
	border: 1px solid rgba(17, 67, 106, .10);
	border-radius: 20px;
	background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(235,242,249,.88) 100%);
	min-width: 0;
}

.employee-welcome-video-frame--hybrid {
	height: 100%;
	padding: 0;
	border: 0;
	background: transparent;
}

.employee-welcome-video-copy {
	display: grid;
	gap: 6px;
}

.employee-welcome-video-title {
	margin: 0;
	font-size: 26px;
	line-height: 1.08;
	color: #16324f;
}

.employee-welcome-video-description {
	margin: 0;
	font-size: 14px;
	line-height: 1.55;
	color: #607691;
}

.employee-welcome-video-shell {
	position: relative;
	display: grid;
	min-width: 0;
	border-radius: 18px;
	overflow: hidden;
}

.employee-welcome-video-player,
.employee-welcome-video-placeholder-card {
	width: 100%;
	min-height: 320px;
	border-radius: 18px;
	border: 1px solid rgba(17, 67, 106, .10);
	background: linear-gradient(145deg, rgba(16, 54, 84, .96) 0%, rgba(23, 92, 148, .92) 56%, rgba(157, 189, 56, .82) 100%);
	box-shadow: 0 16px 30px rgba(17, 67, 106, .16);
	overflow: hidden;
}

.employee-welcome-video-player {
	display: block;
	aspect-ratio: 16 / 9;
	max-height: min(62vh, 640px);
	background: #0f2740;
	object-fit: cover;
}

.employee-welcome-video-frame--hybrid .employee-welcome-video-player,
.employee-welcome-video-frame--hybrid .employee-welcome-video-placeholder-card {
	height: 100%;
	min-height: 184px;
}

.employee-welcome-video-fullscreen {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 2;
	border: 1px solid rgba(255, 255, 255, .18);
	border-radius: 999px;
	padding: 8px 14px;
	background: rgba(9, 24, 38, .78);
	backdrop-filter: blur(12px);
	color: #f5f8fc;
	font-family: "Manrope", sans-serif;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: 0 10px 22px rgba(9, 24, 38, .24);
	transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}

.employee-welcome-video-fullscreen:hover,
.employee-welcome-video-fullscreen:focus-visible {
	background: rgba(13, 45, 74, .92);
	box-shadow: 0 14px 30px rgba(9, 24, 38, .3);
	outline: none;
}

.employee-welcome-video-fullscreen:active {
	transform: translateY(1px);
}

.employee-welcome-video-shell.is-maximized {
	position: fixed;
	inset: 0;
	z-index: 10020;
	padding: 0;
	border-radius: 0;
	background: #020304;
	box-shadow: 0 28px 80px rgba(0, 0, 0, .56);
	align-content: center;
	justify-items: stretch;
	backdrop-filter: blur(18px);
	overflow: hidden;
}

.employee-welcome-video-shell.is-maximized .employee-welcome-video-player,
.employee-welcome-video-shell.is-maximized .employee-welcome-video-placeholder-card {
	max-height: none;
	height: 100dvh;
	min-height: 100dvh;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.employee-welcome-video-shell.is-maximized .employee-welcome-video-player {
	object-fit: contain;
	background: #000000;
}

.employee-welcome-video-shell.is-maximized .employee-welcome-video-fullscreen {
	top: 18px;
	left: 50%;
	right: auto;
	transform: translateX(-50%);
	width: 46px;
	height: 46px;
	padding: 0;
	border-radius: 50%;
	border-color: rgba(255, 255, 255, .22);
	background: rgba(6, 10, 18, .54);
	color: #ffffff;
	font-size: 20px;
	letter-spacing: 0;
	text-transform: none;
	box-shadow: 0 0 0 1px rgba(255,255,255,.14), 0 0 22px rgba(105, 250, 255, .28), 0 0 36px rgba(255, 69, 223, .18);
	backdrop-filter: blur(16px);
}

.employee-welcome-video-fullscreen.is-close-state,
.employee-welcome-video-shell.is-maximized .employee-welcome-video-fullscreen.is-close-state {
	min-width: 46px;
	padding-inline: 0;
	background: rgba(6, 10, 18, .58);
	color: #ffffff;
	border-color: rgba(255, 255, 255, .24);
	box-shadow: 0 0 0 1px rgba(255,255,255,.16), 0 0 24px rgba(105, 250, 255, .3), 0 0 38px rgba(255, 69, 223, .22);
	animation: welcome-video-close-orbit 2.1s ease-in-out infinite alternate;
}

.employee-welcome-video-fullscreen.is-close-state:hover,
.employee-welcome-video-fullscreen.is-close-state:focus-visible {
	background: rgba(16, 22, 36, .82);
	color: #ffffff;
	box-shadow: 0 0 0 1px rgba(255,255,255,.22), 0 0 28px rgba(105, 250, 255, .36), 0 0 44px rgba(255, 69, 223, .28);
}

.employee-welcome-video-placeholder-card {
	display: grid;
	align-content: end;
	gap: 10px;
	padding: 28px;
	color: #fff;
	position: relative;
	background:
		radial-gradient(circle at top right, rgba(221, 238, 111, .24), transparent 24%),
		radial-gradient(circle at bottom left, rgba(255,255,255,.14), transparent 30%),
		linear-gradient(145deg, rgba(16, 54, 84, .96) 0%, rgba(23, 92, 148, .92) 56%, rgba(157, 189, 56, .82) 100%);
}

.employee-welcome-video-placeholder-card::before {
	content: "";
	position: absolute;
	inset: 24px 24px auto auto;
	width: 92px;
	height: 92px;
	border-radius: 28px;
	border: 2px solid rgba(255,255,255,.24);
	background: rgba(255,255,255,.06);
	transform: rotate(-8deg);
}

.employee-welcome-video-placeholder-badge {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	padding: 8px 12px;
	border-radius: 999px;
	background: rgba(255,255,255,.14);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.employee-welcome-video-placeholder-card strong {
	font-size: clamp(24px, 4vw, 34px);
	line-height: 1.02;
}

.employee-welcome-video-placeholder-card p {
	margin: 0;
	max-width: 520px;
	font-size: 15px;
	line-height: 1.6;
	color: rgba(255,255,255,.86);
}

.employee-welcome-video-actions {
	padding-top: 2px;
}

.employee-welcome-video-modal-footer {
	justify-content: flex-end;
}

.employee-welcome-video-toggle {
	justify-content: end;
	align-items: flex-end;
	padding-bottom: 18px;
	padding-right: 18px;
	flex-wrap: wrap;
}

@media (max-width: 720px) {
	.employee-welcome-video-player,
	.employee-welcome-video-placeholder-card {
		min-height: 220px;
	}

	.employee-welcome-video-fullscreen {
		top: 10px;
		right: 10px;
		padding: 7px 12px;
		font-size: 10px;
	}

	.employee-welcome-video-shell.is-maximized {
		inset: 0;
		padding: 0;
		border-radius: 0;
	}

	.employee-welcome-video-shell.is-maximized .employee-welcome-video-player,
	.employee-welcome-video-shell.is-maximized .employee-welcome-video-placeholder-card {
		height: 100dvh;
	}

	.employee-welcome-video-shell.is-maximized .employee-welcome-video-fullscreen {
		top: 14px;
		left: 50%;
		right: auto;
		transform: translateX(-50%);
		width: 42px;
		height: 42px;
		font-size: 18px;
	}

	.employee-welcome-community-grid,
	.employee-welcome-doc-list {
		grid-template-columns: minmax(0, 1fr);
	}

	.employee-welcome-video-placeholder-card {
		padding: 22px;
	}
}
@keyframes welcome-video-close-orbit {
	from {
		transform: translateY(0) scale(1);
	}
	to {
		transform: translateY(-1px) scale(1.04);
	}
}

.admin-modal-card--wide {
	width: min(1180px, calc(100vw - 24px));
}

.btn-danger {
	background: linear-gradient(135deg, #c75c5c 0%, #b74848 100%);
	color: #fff;
	border: 1px solid rgba(140, 34, 34, 0.18);
}

.company-chip {
	display: inline-flex;
	align-items: center;
	border-radius: 999px;
	padding: 6px 10px;
	background: rgba(160, 191, 59, 0.18);
	color: #4f6714;
	font-weight: 800;
	font-size: 11px;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.company-footnote {
	margin: 0;
	color: #607691;
	font-size: 12px;
}

.company-metric-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	margin: 16px 0 8px;
}

.smtp-section-block {
	display: grid;
	gap: 12px;
	padding-top: 14px;
	border-top: 1px solid #e6edf5;
}

.smtp-section-block:first-of-type {
	padding-top: 0;
	border-top: 0;
}

.smtp-section-title {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	color: #11436A;
	font-size: 15px;
	font-weight: 800;
	letter-spacing: .03em;
	text-transform: uppercase;
}

.smtp-section-icon {
	font-size: 14px;
}

.smtp-form-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.smtp-form-grid--service {
	grid-template-columns: minmax(0, 1.8fr) minmax(80px, 0.4fr) auto minmax(140px, 0.8fr);
	align-items: end;
}

.smtp-form-grid .span-2 {
	grid-column: span 2;
}

.smtp-form-grid .span-3 {
	grid-column: 1 / -1;
}

.smtp-inline-option {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 42px;
	padding-top: 18px;
	flex-wrap: wrap;
}

.smtp-status-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}

.admin-modal-secondary {
	background: linear-gradient(135deg, #326fa4 0%, #1f5787 100%);
	color: #fff;
	border: 1px solid rgba(17, 67, 106, 0.22);
	box-shadow: 0 10px 22px rgba(17, 67, 106, 0.14);
}

.admin-modal-close {
	border: 1px solid rgba(17, 67, 106, 0.22);
	width: 34px;
	height: 34px;
	border-radius: 50%;
	cursor: pointer;
	font-size: 18px;
	font-weight: 700;
	color: #fff;
	background: linear-gradient(135deg, #326fa4 0%, #1f5787 100%);
	box-shadow: 0 8px 18px rgba(17, 67, 106, 0.16);
	flex: 0 0 auto;
}

.attendance-review-modal-card {
	width: min(980px, calc(100vw - 28px));
	max-height: min(92vh, calc(100dvh - 36px));
	border-radius: 22px;
	border-color: #cfdae7;
	background: #fdfefe;
	box-shadow: 0 30px 80px rgba(15, 43, 77, 0.24);
}

.attendance-review-modal-header {
	padding: 14px 20px 30px;
	border-bottom: 1px solid rgba(18, 66, 108, 0.18);
	background: linear-gradient(180deg, #2a5a87 0%, #29547d 100%);
}

.attendance-review-modal-heading {
	position: relative;
	padding-bottom: 10px;
}

.attendance-review-modal-heading::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 28px;
	height: 3px;
	border-radius: 999px;
	background: #93d252;
}

.attendance-review-modal-header .admin-modal-title {
	font-size: 22px;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.78);
	font-weight: 800;
}

.attendance-review-modal-header .admin-modal-title::after {
	display: none;
}

.attendance-review-modal-header .admin-modal-kicker {
	margin-bottom: 4px;
	color: rgba(255, 255, 255, 0.94);
	font-size: 14px;
	letter-spacing: .08em;
}

.attendance-review-modal-header .admin-modal-close {
	width: 34px;
	height: 34px;
	border-radius: 999px;
	border: none;
	background: rgba(255, 255, 255, 0.1);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
	font-size: 24px;
	align-self: flex-start;
}

.attendance-review-modal-body {
	padding: 14px 20px 18px;
	background: #fff;
}

.attendance-review-modal-form {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.attendance-review-grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	margin-bottom: 2px;
}

.attendance-review-grid-item {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 64px;
	padding: 14px 16px;
	border: 1px solid #d9e4ef;
	border-radius: 16px;
	background: linear-gradient(180deg, #ffffff 0%, #f9fbfe 100%);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.6);
}

.attendance-review-grid-item strong {
	margin-top: 4px;
	font-size: 15px;
	font-weight: 800;
	color: #284a6f;
}

.attendance-review-field {
	gap: 8px;
	margin-top: 0;
}

.attendance-review-textarea {
	min-height: 82px;
	padding: 12px 14px;
	border-radius: 15px;
	border-color: #d7e3ee;
	background: #f5f8fc;
	box-shadow: inset 0 1px 2px rgba(18, 66, 108, 0.04);
	resize: vertical;
}

.attendance-review-textarea[readonly] {
	color: #4c6179;
	background: #f3f7fc;
}

.attendance-review-comment {
	min-height: 80px;
	background: #fbfdff;
}

.attendance-review-attachment-field {
	padding-bottom: 2px;
}

.attendance-review-attachment-field p {
	margin: 0;
	font-size: 13px;
	color: #66798f;
}

.attendance-history-list {
	margin: 0;
	padding-left: 18px;
	color: #647b95;
	line-height: 1.5;
	font-size: 13px;
}

.attendance-history-list li + li {
	margin-top: 6px;
}

.attendance-review-modal-footer {
	margin-top: 6px;
	padding: 12px 0 2px;
	border-top: 1px solid #dde7f1;
	background: #fff;
}

.attendance-review-btn {
	min-width: 102px;
	min-height: 44px;
	padding: 11px 18px;
	border: none;
	border-radius: 15px;
	font-weight: 800;
	box-shadow: 0 8px 20px rgba(25, 55, 89, 0.12);
}

.attendance-review-btn:disabled {
	opacity: .62;
	box-shadow: none;
}

.attendance-review-btn--secondary {
	background: linear-gradient(180deg, #2f6aa3 0%, #2a5a87 100%);
	color: #fff;
}

.attendance-review-btn--approve {
	background: linear-gradient(180deg, #b7d74d 0%, #9dc13f 100%);
	color: #24420d;
}

.attendance-review-btn--reject {
	background: linear-gradient(180deg, #d94f3a 0%, #c63a28 100%);
	color: #fff;
}

body.modal-open {
	overflow: hidden;
}

.permissions-select-form {
	display: flex;
	align-items: flex-end;
	gap: 14px;
	flex-wrap: wrap;
	margin-bottom: 14px;
}

.permissions-tree-wrap {
	overflow: auto;
	border: 1px solid #e4ebf3;
	border-radius: 18px;
	background: #fff;
	scrollbar-width: thin;
}

.permissions-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	min-width: 760px;
	background: #fff;
}

.permissions-table th,
.permissions-table td {
	padding: 12px 14px;
	border-bottom: 1px solid #e9eef5;
	vertical-align: top;
}

.permissions-table th {
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: #4F6E9C;
	background: #f3f7fb;
}

.permissions-table tbody tr:nth-child(even) {
	background: #fbfdff;
}

.permissions-table tbody tr:hover {
	background: #f5f9fd;
}

.permission-cell {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.permission-node-label {
	font-weight: 700;
	color: #24364b;
}

.permission-node-key {
	flex-basis: 100%;
	color: #7c90aa;
	font-size: 12px;
}

.permission-depth-1 { padding-left: 18px; }
.permission-depth-2 { padding-left: 36px; }
.permission-depth-3 { padding-left: 54px; }

.permission-node-tag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 70px;
	padding: 4px 8px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .05em;
}

.permission-node-tag--module {
	background: rgba(17, 67, 106, 0.12);
	color: #11436A;
}

.permission-node-tag--form {
	background: rgba(79, 110, 156, 0.12);
	color: #385579;
}

.permission-node-tag--field {
	background: rgba(160, 191, 59, 0.16);
	color: #4f6714;
}

.permission-select {
	min-width: 120px;
}

.permission-select:disabled {
	opacity: .72;
	cursor: not-allowed;
	background: #eef3f8;
	color: #5d728d;
}

.permission-hint {
	margin: 10px 0 0;
	color: #607691;
	font-size: 13px;
}

.permissions-overview-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.1fr) minmax(260px, 0.8fr);
	gap: 16px;
	align-items: stretch;
}

.permission-panel {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.permission-panel .permissions-select-form {
	flex-direction: column;
	align-items: stretch;
	gap: 12px;
	margin-bottom: 0;
}

.permission-panel .field-block,
.permission-panel .rh-grid-control,
.permission-panel input,
.permission-panel select {
	width: 100%;
}

.permission-panel .btn {
	align-self: flex-start;
}

.admin-modal-form .field-block label {
	margin-bottom: -5px;
	font-size: 12px;
}

.admin-modal-form input,
.admin-modal-form select {
	min-height: 38px;
	padding-top: 8px;
	padding-bottom: 8px;
}

.permission-summary-list {
	margin: 0;
	padding-left: 18px;
	color: #4d6480;
	display: grid;
	gap: 6px;
}

.permission-empty-state {
	margin: 0;
	padding: 14px;
	border-radius: 14px;
	background: #f8fbff;
	color: #607691;
	border: 1px dashed #d7e2ee;
	font-size: 13px;
	line-height: 1.5;
}

.permission-accordion {
	display: grid;
	gap: 12px;
}

.permission-accordion-item {
	border: 1px solid #dbe5f0;
	border-radius: 16px;
	background: linear-gradient(180deg, #ffffff 0%, #f9fbfe 100%);
	overflow: hidden;
}

.permission-accordion-item--module {
	border-color: rgba(17, 67, 106, 0.22);
	box-shadow: 0 10px 28px rgba(17, 67, 106, 0.06);
}

.permission-accordion-item--form {
	margin-top: 10px;
}

.company-field-hint {
	display: block;
	margin-top: 6px;
	color: #607691;
	font-size: 12px;
	line-height: 1.5;
}

.company-documents-blocks {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 8px;
	align-items: stretch;
}

.company-document-block {
	display: grid;
	gap: 10px;
	align-content: start;
	grid-template-rows: auto auto 1fr auto;
	padding: 12px;
	flex: 0 1 205px;
	min-width: 180px;
	max-width: 220px;
	border-radius: 14px;
	border: 1px solid rgba(17, 67, 106, 0.16);
	background: #fff;
	box-shadow: 0 3px 12px rgba(13, 45, 74, 0.10), inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.company-document-block.is-dragover,
.company-document-block.has-file {
	border-color: rgba(22, 92, 148, 0.34);
	box-shadow: 0 6px 16px rgba(22, 92, 148, 0.14);
}

.company-document-block-head {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 8px;
	align-items: start;
}

.company-document-block-chrome {
	display: flex;
	justify-content: flex-end;
	min-height: 16px;
}

.company-document-delete {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	padding: 0;
	margin: 0;
	border: none;
	background: transparent;
	color: #d62828;
	font-size: 14px;
	line-height: 1;
	cursor: pointer;
	box-shadow: none;
	filter: none;
	transform: none;
}

.company-document-delete:hover,
.company-document-delete:focus-visible {
	color: #b91c1c;
	box-shadow: none;
	filter: none;
	transform: none;
	outline: none;
}

.company-document-block-title-wrap {
	display: grid;
	gap: 2px;
	min-width: 0;
}

.company-document-block-title {
	margin: 0;
	font-size: 12px;
	line-height: 1.3;
	color: var(--c-text);
	font-weight: 800;
	word-break: break-word;
}

.company-document-block-meta {
	font-size: 11px;
	line-height: 1.35;
	color: var(--c-text);
	word-break: break-word;
}

.company-document-block-actions {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
	justify-content: center;
	align-self: end;
	margin-top: auto;
}

.employee-welcome-video-admin-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 32px;
	padding: 0 12px;
	border-radius: 999px;
	border: 1px solid rgba(17, 67, 106, .12);
	background: linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(244,248,252,.96) 100%);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.85);
	color: var(--c-text-soft);
	font-family: "Manrope", sans-serif;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .01em;
	text-decoration: none;
	cursor: pointer;
	transition: box-shadow .2s ease, border-color .2s ease, background .2s ease, color .2s ease;
}

.employee-welcome-video-admin-form {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.employee-welcome-video-admin-file {
	max-width: 220px;
	min-height: 32px;
	padding: 3px;
	border-radius: 999px;
	border: 1px solid rgba(17, 67, 106, .12);
	background: linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(244,248,252,.96) 100%);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.85);
	color: #607691;
	font-family: "Manrope", sans-serif;
	font-size: 10.5px;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
	transition: box-shadow .2s ease, border-color .2s ease, background .2s ease, color .2s ease;
}

.employee-welcome-video-admin-file:hover,
.employee-welcome-video-admin-file:focus-visible {
	border-color: rgba(17, 67, 106, .16);
	background: rgba(255, 255, 255, .99);
	color: #4e6783;
	box-shadow: 0 3px 10px rgba(17, 67, 106, .08);
	outline: none;
}

.employee-welcome-video-admin-file::file-selector-button {
	margin-right: 8px;
	padding: 0 12px 0 28px;
	min-height: 26px;
	border: 0;
	border-radius: 999px;
	background-color: rgba(39, 92, 136, .08);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23275c88'%3E%3Cpath d='M8 1.5a.5.5 0 0 1 .5.5v5.8l1.6-1.6a.5.5 0 1 1 .7.7l-2.4 2.4a.5.5 0 0 1-.7 0L5.3 6.9a.5.5 0 0 1 .7-.7l1.5 1.6V2a.5.5 0 0 1 .5-.5m-4 9a.5.5 0 0 1 .5.5v1c0 .3.2.5.5.5h6a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 1 1 0v1A1.5 1.5 0 0 1 11 13.5H5A1.5 1.5 0 0 1 3.5 12v-1a.5.5 0 0 1 .5-.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: 10px center;
	background-size: 12px 12px;
	color: #275c88;
	font-family: inherit;
	font-size: 10.5px;
	font-weight: 700;
	cursor: pointer;
}

.employee-welcome-video-admin-file::file-selector-button:hover {
	background-color: rgba(39, 92, 136, .12);
	color: #234f75;
}

.employee-welcome-video-admin-btn .grid-action-icon {
	width: 12px;
	height: 12px;
}

.employee-welcome-video-admin-btn .grid-action-icon svg {
	width: 12px;
	height: 12px;
}

.employee-welcome-video-admin-btn--replace {
	color: #275c88;
	border-color: rgba(39, 92, 136, .14);
	background: linear-gradient(180deg, rgba(39, 92, 136, .08) 0%, rgba(39, 92, 136, .04) 100%);
}

.employee-welcome-video-admin-btn--reset {
	color: #4e6783;
}

.employee-welcome-video-admin-btn--replace:hover,
.employee-welcome-video-admin-btn--replace:focus-visible {
	border-color: rgba(39, 92, 136, .22);
	background: linear-gradient(180deg, rgba(39, 92, 136, .12) 0%, rgba(39, 92, 136, .06) 100%);
	color: #234f75;
}
.employee-welcome-video-admin-btn:hover,
.employee-welcome-video-admin-btn:focus-visible {
	border-color: rgba(17, 67, 106, .16);
	background: rgba(255, 255, 255, .99);
	color: #4e6783;
	box-shadow: 0 3px 10px rgba(17, 67, 106, .08);
	outline: none;
}

.company-document-block-actions .btn {
	min-height: 30px;
	padding: 0 12px;
	border-radius: 8px;
	font-size: 11px;
	min-width: 98px;
}

.company-document-dropzone {
	padding: 10px 12px;
	border-radius: 12px;
	gap: 5px;
	min-height: 84px;
	border-width: 1px;
	background: #fff;
	box-shadow: none;
}

.company-document-dropzone strong {
	font-size: 11px;
	font-weight: 700;
	color: #1d2837;
}

.company-document-dropzone span[data-company-doc-file-name] {
	display: none;
	font-size: 11px;
	line-height: 1.35;
	color: #2e3c50;
}

.company-document-dropzone .document-dropzone-icon-image {
	width: 30px;
	height: 30px;
}

.company-document-dropzone-meta {
	display: none;
	font-size: 10px;
	color: #607691;
	line-height: 1.3;
}

@media (max-width: 960px) {
	.company-document-block-head {
		grid-template-columns: 1fr;
	}

	.company-document-block-actions {
		justify-content: center;
	}
}

@media (max-width: 720px) {
	.company-document-block {
		flex-basis: calc(50% - 6px);
		max-width: none;
		min-width: 0;
	}
}

@media (max-width: 520px) {
	.company-document-block {
		flex-basis: 100%;
		max-width: none;
		min-width: 0;
	}
}

.permission-accordion-summary {
	display: flex;
	align-items: center;
	gap: 10px;
	list-style: none;
	cursor: pointer;
	padding: 14px 16px;
	font-weight: 700;
	color: #24364b;
	background: #f8fbff;
}

.permission-accordion-summary::-webkit-details-marker {
	display: none;
}

.permission-accordion-summary::before {
	content: '▸';
	color: #4F6E9C;
	font-size: 14px;
	transition: transform .18s ease;
}

.permission-accordion-item[open] > .permission-accordion-summary::before {
	transform: rotate(90deg);
}

.permission-accordion-body {
	padding: 12px 14px 14px;
	border-top: 1px solid #e6edf5;
	display: grid;
	gap: 10px;
}

.permission-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 14px;
	padding: 12px 14px;
	border: 1px solid #e6edf5;
	border-radius: 14px;
	background: #fff;
}

.permission-row--parent {
	background: #f8fbff;
}

.permission-row--leaf {
	margin-top: 8px;
}

.permission-row-helper {
	margin: 4px 0 0;
	font-size: 12px;
	color: #6e84a0;
}

.permission-row-control {
	flex: 0 0 auto;
}

.permission-level-1 { margin-left: 14px; }
.permission-level-2 { margin-left: 28px; }
.permission-level-3 { margin-left: 42px; }

.dash-topbar-right {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	overflow: visible;
	z-index: 120;
}

.dash-notification-wrap {
	position: relative;
	z-index: 140;
}

.dash-notification {
	position: relative;
	z-index: 141;
}

.dash-notification-badge {
	position: absolute;
	top: -6px;
	right: -4px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #d54b4b;
	color: #fff;
	font-size: 11px;
	font-weight: 800;
	box-shadow: 0 4px 12px rgba(213, 75, 75, 0.28);
}

.notification-tray {
	position: absolute;
	top: calc(100% + 12px);
	right: 0;
	width: min(420px, 90vw);
	max-height: 420px;
	overflow: auto;
	padding: 14px;
	border-radius: 18px;
	border: 1px solid #dbe5f0;
	background: #ffffff;
	box-shadow: 0 18px 42px rgba(17, 67, 106, 0.18);
	z-index: 15000;
	isolation: isolate;
	display: none;
}

.notification-tray.is-open {
	display: block;
}

.notification-tray-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 10px;
}

.notification-tray-title {
	margin: 0;
	font-size: 15px;
	font-weight: 800;
	color: #21354a;
}

.notification-tray-meta {
	font-size: 12px;
	color: #617891;
}

.notification-empty {
	margin: 0;
	padding: 12px 10px;
	border-radius: 12px;
	background: #f8fbff;
	color: #5c738f;
	font-size: 13px;
}

.notification-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}

.notification-item {
	padding: 12px;
	border-radius: 14px;
	border: 1px solid #e6edf5;
	background: #fbfdff;
}

.notification-item.is-unread {
	border-color: rgba(79, 110, 156, 0.35);
	background: linear-gradient(180deg, rgba(79, 110, 156, 0.08) 0%, #ffffff 100%);
}

.notification-item-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 6px;
}

.notification-item-title {
	margin: 0;
	font-size: 14px;
	font-weight: 800;
	color: #21354a;
}

.notification-severity {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 3px 8px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .04em;
	background: rgba(79, 110, 156, 0.12);
	color: #35516f;
}

.notification-severity--warning {
	background: rgba(230, 151, 41, 0.14);
	color: #8a5a0a;
}

.notification-severity--critical {
	background: rgba(213, 75, 75, 0.14);
	color: #a13434;
}

.notification-item-message {
	margin: 0;
	color: #526982;
	font-size: 13px;
	line-height: 1.45;
}

.notification-item-meta {
	margin-top: 8px;
	font-size: 12px;
	color: #7489a1;
}

.notification-item-actions {
	margin-top: 10px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.notification-item-actions form {
	margin: 0;
}

.notification-action-btn {
	border: 1px solid rgba(17, 67, 106, .16);
	border-radius: 999px;
	padding: 7px 11px;
	background: #11436A;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
}

.notification-action-btn--secondary {
	background: #f3f7fb;
	color: #2f4b67;
}

.notification-pill-read {
	display: inline-flex;
	align-items: center;
	padding: 7px 11px;
	border-radius: 999px;
	background: #eef5de;
	color: #45611d;
	font-size: 12px;
	font-weight: 700;
}

.request-highlight-row {
	outline: 2px solid rgba(160, 191, 59, .6);
	background: linear-gradient(180deg, rgba(160, 191, 59, .10) 0%, #ffffff 100%) !important;
}

.admin-create-summary-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
}

.admin-create-summary-card {
	grid-column: 4 / 6;
	text-align: right;
}

.admin-create-columns-3 {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.admin-modal [hidden],
.admin-create-columns-3[hidden],
[data-hire-fields][hidden],
[data-hide-on-rehire][hidden] {
	display: none !important;
}

.text-meta-label {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .08em;
	font-weight: 700;
	color: #7f91a7;
}

.text-meta-value {
	font-size: 11px;
	color: #8294ab;
}

.text-meta-value--spaced {
	margin: 0 0 18px;
}

.input-uppercase {
	text-transform: uppercase;
}

.field-block--section-divider {
	grid-column: 1 / -1;
	border-top: 1px solid #e2e8f0;
	padding-top: 16px;
	margin-top: 8px;
}

.flex-wrap-between-start {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}

.u-mb-12 { margin-bottom: 12px; }
.u-mb-16 { margin-bottom: 16px; }
.u-mb-20 { margin-bottom: 20px; }
.u-mt-16 { margin-top: 16px; }
@media (max-width: 1180px) {
	.dashboard-page.is-sidebar-open {
		overflow: hidden;
	}

	.dashboard-page {
		--dash-sidebar-mobile-width: clamp(220px, 78vw, 280px);
	}

	.dash-app {
		display: block;
		grid-template-columns: 1fr;
	}

	.dash-sidebar {
		position: fixed;
		inset: 0 auto 0 0;
		width: var(--dash-sidebar-mobile-width);
		max-width: calc(100vw - 40px);
		z-index: 20;
		box-shadow: 20px 0 48px rgba(7, 14, 24, .36);
		opacity: 0;
		visibility: hidden;
		transform: translateX(-100%);
		pointer-events: none;
		transition: transform .26s cubic-bezier(.4,0,.2,1), opacity .26s ease, visibility .26s ease;
	}

	.dashboard-page.is-sidebar-open .dash-sidebar {
		transform: translateX(0);
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}

	.dashboard-page.is-sidebar-collapsed .dash-sidebar {
		transform: translateX(-100%);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
	}

	.dash-sidebar-overlay {
		display: block;
		position: fixed;
		inset: 0;
		border: 0;
		padding: 0;
		background: rgba(7, 14, 24, .52);
		z-index: 19;
		backdrop-filter: blur(2px);
		opacity: 0;
		pointer-events: none;
	}

	.dashboard-page.is-sidebar-open .dash-sidebar-overlay {
		opacity: 1;
		pointer-events: auto;
	}

	.dash-sidebar-handle {
		display: none;
	}

	.dash-mobile-menu-toggle {
		display: inline-flex;
		flex: 0 0 auto;
	}

	.dash-topbar {
		padding-left: 16px;
		flex-wrap: wrap;
		align-items: stretch;
		transition: margin-left .26s cubic-bezier(.4,0,.2,1), width .26s cubic-bezier(.4,0,.2,1), padding .22s ease;
	}

	.dashboard-page.is-sidebar-open .dash-topbar {
		width: calc(100% - var(--dash-sidebar-mobile-width) - 10px);
		margin-left: calc(var(--dash-sidebar-mobile-width) + 10px);
	}

	.dash-topbar-left {
		width: 100%;
		display: flex;
		align-items: flex-start;
		justify-content: flex-start;
		gap: 10px;
	}

	.dash-topbar-right {
		width: 100%;
		display: flex;
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start;
		gap: 8px;
	}

	.dash-notification-wrap {
		align-self: flex-end;
		margin-left: auto;
	}

	.dash-search {
		width: 100%;
		min-width: 0;
	}

	.dash-content,
	.dash-main {
		min-width: 0;
		grid-template-columns: 1fr;
	}

	.profile-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.profile-hero-grid {
		grid-template-columns: 1fr;
	}

	.profile-photo-card-body.is-compact,
	.profile-identity-card {
		grid-template-columns: 1fr;
	}

	.profile-photo-preview {
		min-height: 220px;
	}

	.metric-strip,
	.kpi-grid,
	.gerente-focus-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		margin-bottom: 10px;
	}

	.rh-grid-tools {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 820px) {
	.dash-topbar-left {
		justify-content: flex-start;
	}

	.dash-topbar-right {
		justify-content: flex-start;
		align-items: stretch;
	}

	.dash-notification-wrap {
		align-self: flex-end;
		margin-left: auto;
	}

	.dash-search {
		width: 100%;
	}

	.rh-grid,
	.gerente-grid-table,
	.permissions-table,
	.ho-table {
		min-width: 720px;
	}

	.gerente-grid-wrap,
	.ho-table-wrap,
	.permissions-tree-wrap {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: thin;
	}
}

@media (max-width: 768px) {
	.admin-modal {
		padding: 12px;
	}

	.admin-modal-header,
	.admin-modal-body {
		padding-left: 16px;
		padding-right: 16px;
	}

	.admin-modal .kpi-grid,
	.permissions-overview-grid,
	.company-directory-layout,
	.company-metric-grid,
	.company-form-grid,
	.employee-welcome-meta-grid,
	.employee-welcome-doc-list,
	.smtp-form-grid,
	.smtp-form-grid--service {
		grid-template-columns: 1fr;
	}

	.employee-welcome-hero {
		grid-template-columns: 1fr;
		justify-items: center;
		text-align: center;
	}

	.admin-modal-footer {
		flex-direction: column-reverse;
	}

	.attendance-review-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.attendance-review-modal-card {
		width: min(980px, calc(100vw - 16px));
	}

	.attendance-review-modal-header {
		padding: 14px 16px 24px;
	}

	.attendance-review-modal-body {
		padding: 14px 16px 16px;
	}

	.admin-modal-footer .btn,
	.attendance-review-modal-footer .btn,
	.permissions-select-form .btn,
	.permissions-select-form .field-block,
	.permission-row-control,
	.permission-select {
		width: 100%;
	}

	.permissions-select-form {
		align-items: stretch;
	}

	.permission-row {
		flex-direction: column;
		align-items: stretch;
	}
}

@media (max-width: 720px) {
	.dashboard-page {
		--dash-sidebar-mobile-width: min(280px, 84vw);
	}

	.metric-strip,
	.kpi-grid,
	.form-grid,
	.gerente-focus-grid {
		grid-template-columns: 1fr;
	}

	.field-block.span-2 {
		grid-column: span 1;
	}

	.profile-grid {
		grid-template-columns: 1fr;
	}

	.profile-photo-fallback strong {
		width: 88px;
		height: 88px;
		font-size: 30px;
	}

	.dash-sidebar {
		width: var(--dash-sidebar-mobile-width);
		max-width: calc(100vw - 24px);
	}

	.dash-sidebar-handle {
		top: 12px;
		left: 10px;
		width: 38px;
		height: 38px;
	}

	.dashboard-page.is-sidebar-open .dash-sidebar-handle {
		left: min(290px, calc(100vw - 48px));
	}

	.documents-header,
	.documents-layout,
	.document-preview-top,
	.document-preview-actions,
	.document-item-head,
	.contacts-header,
	.contacts-grid-actions {
		grid-template-columns: 1fr;
		flex-direction: column;
	}

	.documents-header .btn,
	.document-preview-actions .btn {
		width: 100%;
	}

	.profile-tabs {
		gap: 6px;
	}

	.profile-tab {
		font-size: 11px;
		padding: 6px 10px;
	}

	.dash-topbar {
		flex-direction: column;
		align-items: stretch;
	}

	.dashboard-page.is-sidebar-open .dash-topbar {
		width: calc(100% - var(--dash-sidebar-mobile-width) - 8px);
		margin-left: calc(var(--dash-sidebar-mobile-width) + 8px);
	}

	.dash-topbar-left {
		justify-content: flex-start;
	}

	.dash-topbar-right {
		justify-content: flex-start;
		align-items: stretch;
	}

	.dash-notification-wrap {
		align-self: flex-end;
		margin-left: auto;
	}

	.dash-actions {
		flex-direction: column;
	}

	.dash-search {
		min-width: 0;
		width: 100%;
	}

	.rh-grid-tools {
		grid-template-columns: 1fr;
	}

	.rh-grid-export {
		width: 100%;
	}
}

