:root { font-family: Inter, system-ui, Arial, sans-serif; }
body { margin: 0; background: #070d1a; color: #e3ebff; }

.ax-login-body {
  --ax-login-ambient-tint-a: rgba(143, 172, 255, 0.16);
  --ax-login-ambient-tint-b: rgba(104, 146, 241, 0.14);
  --ax-login-ambient-highlight: rgba(255, 255, 255, 0.32);
  --ax-login-ambient-veil: rgba(255, 255, 255, 0.06);
  --ax-login-panel-depth: rgba(1, 6, 18, 0.28);
  --ax-login-widget-tint: rgba(52, 83, 158, 0.16);
  --ax-login-widget-glow: rgba(101, 139, 235, 0.2);
  --ax-login-widget-icon-glow: rgba(152, 188, 255, 0.28);
  --ax-login-widget-shimmer: rgba(154, 182, 248, 0.18);
  --ax-login-bg-image: var(--ax-shell-bg-image, radial-gradient(circle at 10% 15%, rgba(90, 110, 255, 0.24), transparent 35%), radial-gradient(circle at 85% 10%, rgba(82, 127, 230, 0.2), transparent 40%), linear-gradient(152deg, #060b18 0%, #0c1530 60%, #111f3f 100%));
  --ax-login-overlay: linear-gradient(120deg, color-mix(in srgb, var(--ax-app-bg, #060b18) 72%, transparent), color-mix(in srgb, var(--ax-app-bg, #060b18) 42%, transparent));
  min-height: 100vh;
  color: var(--ax-text, #e3ebff);
  background-color: var(--ax-app-bg, #060b18);
  background-image: var(--ax-login-overlay), var(--ax-login-bg-image);
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  transition:
    background-image 900ms cubic-bezier(0.22, 1, 0.36, 1),
    background-color 900ms cubic-bezier(0.22, 1, 0.36, 1);
}


.ax-login-body[data-ax-theme='default'] {
  --ax-login-overlay: linear-gradient(120deg, color-mix(in srgb, var(--ax-app-bg, #060b18) 74%, transparent), color-mix(in srgb, var(--ax-app-bg, #060b18) 46%, transparent));
}
.ax-login-body[data-ax-theme='blanco'] {
  --ax-login-overlay: linear-gradient(120deg, rgba(228, 239, 255, 0.58), rgba(237, 246, 255, 0.44));
  --ax-login-panel-depth: rgba(39, 74, 122, 0.16);
  --ax-login-widget-tint: rgba(94, 134, 206, 0.16);
  --ax-login-widget-glow: rgba(89, 128, 207, 0.2);
  --ax-login-widget-icon-glow: rgba(102, 143, 219, 0.28);
  --ax-login-widget-shimmer: rgba(176, 202, 255, 0.2);
}
.ax-login-body[data-ax-theme='oscuro'] {
  --ax-login-overlay: linear-gradient(120deg, color-mix(in srgb, var(--ax-app-bg, #060b18) 78%, transparent), color-mix(in srgb, var(--ax-app-bg, #060b18) 58%, transparent));
  --ax-login-panel-depth: rgba(1, 6, 18, 0.42);
  --ax-login-widget-tint: rgba(41, 62, 108, 0.22);
  --ax-login-widget-glow: rgba(94, 123, 176, 0.2);
}
.ax-login-body[data-ax-login-bg='aurora'] { --ax-login-bg-image: radial-gradient(circle at 8% 10%, rgba(90, 138, 255, 0.24), transparent 36%), radial-gradient(circle at 90% 0%, rgba(117, 84, 219, 0.2), transparent 40%), linear-gradient(130deg, #080d1f 0%, #121d3a 55%, #18233f 100%); }
.ax-login-body[data-ax-login-bg='nebula'] { --ax-login-bg-image: radial-gradient(circle at 18% 18%, rgba(57, 158, 178, 0.24), transparent 36%), radial-gradient(circle at 85% 12%, rgba(37, 99, 235, 0.24), transparent 42%), linear-gradient(145deg, #06101f 0%, #0a1a2d 55%, #0d2238 100%); }
.ax-login-body[data-ax-login-bg='nocturne'] { --ax-login-bg-image: radial-gradient(circle at 16% 12%, rgba(140, 75, 172, 0.2), transparent 34%), radial-gradient(circle at 88% 5%, rgba(91, 105, 196, 0.21), transparent 39%), linear-gradient(150deg, #0b0c1d 0%, #151233 55%, #1c173e 100%); }
.ax-login-body[data-ax-login-bg='deep-grid'] { --ax-login-bg-image: linear-gradient(rgba(14, 21, 40, 0.82), rgba(14, 21, 40, 0.9)), linear-gradient(90deg, rgba(90, 120, 200, 0.12) 1px, transparent 1px), linear-gradient(0deg, rgba(90, 120, 200, 0.1) 1px, transparent 1px), linear-gradient(140deg, #0a1021 0%, #111c34 100%); background-size: auto, 34px 34px, 34px 34px, auto; }
.ax-login-body[style*='--ax-login-bg-image'] {
  --ax-login-overlay: linear-gradient(120deg, color-mix(in srgb, var(--ax-app-bg, #060b18) 82%, transparent), color-mix(in srgb, var(--ax-app-bg, #060b18) 55%, transparent));
}


.ax-login-body[data-ax-ambient='day_clear'] {
  --ax-login-ambient-tint-a: rgba(166, 190, 255, 0.18);
  --ax-login-ambient-tint-b: rgba(120, 170, 248, 0.17);
  --ax-login-ambient-highlight: rgba(255, 246, 218, 0.34);
  --ax-login-ambient-veil: rgba(255, 239, 205, 0.08);
  --ax-login-widget-tint: rgba(70, 108, 188, 0.18);
  --ax-login-widget-glow: rgba(132, 171, 250, 0.22);
  --ax-login-widget-shimmer: rgba(216, 202, 168, 0.2);
}
.ax-login-body[data-ax-ambient='day_cloudy'] {
  --ax-login-ambient-tint-a: rgba(132, 154, 210, 0.15);
  --ax-login-ambient-tint-b: rgba(101, 126, 172, 0.14);
  --ax-login-ambient-highlight: rgba(228, 236, 255, 0.3);
  --ax-login-ambient-veil: rgba(212, 224, 248, 0.06);
  --ax-login-widget-tint: rgba(46, 69, 128, 0.15);
  --ax-login-widget-glow: rgba(95, 124, 194, 0.18);
  --ax-login-widget-icon-glow: rgba(132, 164, 224, 0.24);
}
.ax-login-body[data-ax-ambient='day_rain'] {
  --ax-login-ambient-tint-a: rgba(122, 147, 214, 0.14);
  --ax-login-ambient-tint-b: rgba(95, 125, 186, 0.16);
  --ax-login-ambient-highlight: rgba(220, 232, 255, 0.27);
  --ax-login-ambient-veil: rgba(196, 218, 255, 0.06);
  --ax-login-panel-depth: rgba(1, 6, 18, 0.34);
  --ax-login-widget-tint: rgba(44, 70, 137, 0.19);
  --ax-login-widget-glow: rgba(88, 121, 198, 0.16);
  --ax-login-widget-icon-glow: rgba(128, 166, 232, 0.23);
}
.ax-login-body[data-ax-ambient='night_clear'] {
  --ax-login-ambient-tint-a: rgba(126, 151, 226, 0.14);
  --ax-login-ambient-tint-b: rgba(93, 121, 196, 0.15);
  --ax-login-ambient-highlight: rgba(220, 230, 255, 0.26);
  --ax-login-ambient-veil: rgba(190, 205, 246, 0.05);
  --ax-login-panel-depth: rgba(1, 6, 18, 0.36);
  --ax-login-widget-tint: rgba(37, 60, 121, 0.16);
  --ax-login-widget-glow: rgba(91, 125, 206, 0.17);
}
.ax-login-body[data-ax-ambient='night_cloudy'],
.ax-login-body[data-ax-ambient='night_rain'] {
  --ax-login-ambient-tint-a: rgba(105, 127, 188, 0.13);
  --ax-login-ambient-tint-b: rgba(82, 106, 166, 0.14);
  --ax-login-ambient-highlight: rgba(198, 212, 246, 0.23);
  --ax-login-ambient-veil: rgba(170, 188, 228, 0.045);
  --ax-login-panel-depth: rgba(1, 6, 18, 0.39);
  --ax-login-widget-tint: rgba(31, 52, 105, 0.16);
  --ax-login-widget-glow: rgba(72, 104, 178, 0.14);
  --ax-login-widget-icon-glow: rgba(112, 146, 214, 0.2);
}
.ax-login-body[data-ax-ambient='day_base'] {
  --ax-login-ambient-highlight: rgba(236, 241, 255, 0.33);
  --ax-login-ambient-veil: rgba(232, 239, 255, 0.07);
}
.ax-login-body[data-ax-ambient='night_base'] {
  --ax-login-panel-depth: rgba(1, 6, 18, 0.35);
  --ax-login-ambient-highlight: rgba(218, 228, 255, 0.27);
  --ax-login-ambient-veil: rgba(188, 205, 242, 0.05);
}

.ax-login-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.ax-login-panel {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(1.25rem, 3vw, 3rem);
}
.ax-login-panel--left {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  overflow: hidden;
  border-right: 1px solid color-mix(in srgb, var(--ax-border, rgba(148, 168, 216, 0.2)) 60%, transparent);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.11), rgba(255, 255, 255, 0.025) 44%, rgba(255, 255, 255, 0.05) 100%),
    linear-gradient(190deg, color-mix(in srgb, var(--ax-content-bg, rgba(8, 15, 31, 0.55)) 28%, transparent), color-mix(in srgb, var(--ax-content-bg, rgba(8, 15, 31, 0.35)) 26%, transparent));
  backdrop-filter: blur(24px) saturate(1.18);
  -webkit-backdrop-filter: blur(24px) saturate(1.18);
  box-shadow:
    inset -1px 0 0 rgba(255, 255, 255, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.24),
    inset 0 -1px 0 rgba(159, 186, 255, 0.08),
    20px 0 46px var(--ax-login-panel-depth);
  transition:
    border-color 700ms cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 900ms cubic-bezier(0.22, 1, 0.36, 1),
    backdrop-filter 800ms cubic-bezier(0.22, 1, 0.36, 1),
    -webkit-backdrop-filter 800ms cubic-bezier(0.22, 1, 0.36, 1);
}
.ax-login-panel--left-content {
  width: min(100%, 640px);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(1rem, 2.2vw, 1.9rem);
}
.ax-login-panel--left::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 18% 16%, var(--ax-login-ambient-highlight), transparent 35%),
    radial-gradient(circle at 80% 70%, var(--ax-login-ambient-tint-b), transparent 42%),
    linear-gradient(120deg, var(--ax-login-ambient-veil), transparent 30%, transparent 70%, var(--ax-login-ambient-tint-a));
  opacity: .7;
  transition: background 1100ms cubic-bezier(0.22, 1, 0.36, 1), opacity 650ms ease;
}

.ax-login-panel--left::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(100deg, transparent 12%, rgba(255, 255, 255, 0.09) 50%, transparent 88%);
  opacity: .1;
  transition: opacity 700ms cubic-bezier(0.22, 1, 0.36, 1);
}
.ax-login-panel--left > * {
  position: relative;
  z-index: 1;
}

.ax-login-time-weather {
  position: relative;
  width: min(100%, 520px);
  margin-bottom: 0;
  padding: clamp(.95rem, 1.95vw, 1.3rem) clamp(1rem, 2vw, 1.4rem);
  border-radius: 20px;
  border: 1px solid color-mix(in srgb, var(--ax-border, rgba(148, 168, 216, 0.2)) 78%, rgba(255, 255, 255, 0.08));
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.02) 58%),
    linear-gradient(200deg, var(--ax-login-widget-tint), rgba(18, 27, 53, 0.09));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.19),
    inset 0 -1px 0 rgba(129, 159, 228, 0.12),
    0 14px 34px rgba(5, 10, 28, 0.34),
    0 0 0 1px rgba(159, 183, 244, 0.08);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: clamp(.95rem, 1.8vw, 1.4rem);
  backdrop-filter: blur(15px) saturate(1.2);
  -webkit-backdrop-filter: blur(15px) saturate(1.2);
  transition:
    border-color 550ms cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 750ms cubic-bezier(0.22, 1, 0.36, 1),
    transform .35s ease,
    background 850ms cubic-bezier(0.22, 1, 0.36, 1),
    backdrop-filter 800ms cubic-bezier(0.22, 1, 0.36, 1),
    -webkit-backdrop-filter 800ms cubic-bezier(0.22, 1, 0.36, 1);
  animation: ax-login-widget-breathe 8.5s ease-in-out infinite;
}
.ax-login-time-weather::before {
  content: '';
  position: absolute;
  inset: 1px;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(115deg, rgba(255, 255, 255, 0.22), transparent 40%, transparent 60%, var(--ax-login-widget-shimmer));
  opacity: .42;
  transition: background 900ms cubic-bezier(0.22, 1, 0.36, 1), opacity 650ms ease;
}
.ax-login-time-weather::after {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  pointer-events: none;
  background: radial-gradient(circle at 18% 4%, rgba(255, 255, 255, 0.22), transparent 38%);
  opacity: .34;
  animation: ax-login-widget-shimmer 16s ease-in-out infinite;
  transition: opacity 700ms cubic-bezier(0.22, 1, 0.36, 1);
}
.ax-login-time-weather:hover {
  border-color: color-mix(in srgb, var(--ax-border, rgba(148, 168, 216, 0.2)) 65%, rgba(219, 232, 255, 0.34));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.2),
    inset 0 -1px 0 rgba(129, 159, 228, 0.14),
    0 16px 40px rgba(5, 10, 28, 0.36),
    0 0 18px var(--ax-login-widget-glow);
  transform: translateY(-1px);
}
.ax-login-time-weather__main { min-width: 0; display: grid; gap: .33rem; }
.ax-login-time-weather__time {
  margin: 0;
  font-size: clamp(2.05rem, 4.2vw, 2.95rem);
  line-height: .98;
  letter-spacing: .016em;
  font-weight: 680;
  color: #f4f7ff;
}
.ax-login-time-weather__date {
  margin: 0;
  text-transform: capitalize;
  font-size: .84rem;
  letter-spacing: .012em;
  color: var(--ax-text-secondary, #c9d6f5);
}
.ax-login-time-weather__weather { display: flex; gap: .75rem; align-items: center; text-align: right; padding-left: clamp(.3rem, 1vw, .7rem); border-left: 1px solid color-mix(in srgb, var(--ax-border, rgba(148, 168, 216, 0.2)) 68%, transparent); transition: border-color .35s ease; }
.ax-login-time-weather__icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.7rem;
  font-size: 1.52rem;
  line-height: 1;
  filter: drop-shadow(0 2px 7px rgba(0, 0, 0, 0.3));
  animation: ax-login-weather-icon-drift 6.8s ease-in-out infinite;
  transition: filter 600ms cubic-bezier(0.22, 1, 0.36, 1);
}
.ax-login-time-weather__icon::after {
  content: '';
  position: absolute;
  inset: 14%;
  border-radius: 50%;
  z-index: -1;
  background: radial-gradient(circle, var(--ax-login-widget-icon-glow), transparent 72%);
  opacity: .72;
  animation: ax-login-weather-icon-glow 4.8s ease-in-out infinite;
  transition: background 900ms cubic-bezier(0.22, 1, 0.36, 1), opacity 600ms ease;
}
.ax-login-time-weather__temp {
  margin: 0;
  font-size: 1.08rem;
  font-weight: 620;
  color: #e9efff;
}
.ax-login-time-weather__meta {
  margin: .08rem 0 0;
  font-size: .73rem;
  line-height: 1.3;
  color: var(--ax-muted, #9aabd0);
}

.ax-login-time-weather,
.ax-login-time-weather__time,
.ax-login-time-weather__date,
.ax-login-time-weather__temp,
.ax-login-time-weather__meta {
  transition: color 450ms cubic-bezier(0.22, 1, 0.36, 1), opacity 450ms ease;
}

@media (prefers-reduced-motion: reduce) {
  .ax-login-body,
  .ax-login-panel--left,
  .ax-login-panel--left::before,
  .ax-login-panel--left::after,
  .ax-login-time-weather,
  .ax-login-time-weather::before,
  .ax-login-time-weather::after,
  .ax-login-time-weather__icon,
  .ax-login-time-weather__icon::after,
  .ax-login-time-weather__weather,
  .ax-login-time-weather__time,
  .ax-login-time-weather__date,
  .ax-login-time-weather__temp,
  .ax-login-time-weather__meta {
    transition: none;
  }
}

@keyframes ax-login-widget-breathe {
  0%,
  100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}

@keyframes ax-login-widget-shimmer {
  0%,
  100% { opacity: .2; }
  50% { opacity: .38; }
}

@keyframes ax-login-weather-icon-drift {
  0%,
  100% { transform: translateY(0); }
  45% { transform: translateY(-1px); }
  55% { transform: translateY(-2px); }
}

@keyframes ax-login-weather-icon-glow {
  0%,
  100% { opacity: .58; transform: scale(.96); }
  50% { opacity: .84; transform: scale(1.05); }
}

.ax-login-hero-stack {
  width: min(100%, 620px);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(.62rem, 1.15vw, .95rem);
}
.ax-login-greeting {
  margin: 0;
  font-size: clamp(.8rem, 1.1vw, .9rem);
  font-weight: 520;
  letter-spacing: .018em;
  color: color-mix(in srgb, var(--ax-text-secondary, #c9d6f5) 78%, #ffffff);
  opacity: .86;
}
.ax-login-kicker {
  margin: 0;
  color: color-mix(in srgb, var(--ax-text-secondary, #c9d6f5) 74%, var(--ax-muted, #9aabd0));
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .69rem;
  font-weight: 600;
}
.ax-login-panel--left h1 {
  margin: 0;
  font-size: clamp(2rem, 3.4vw, 2.85rem);
  line-height: 1.08;
  max-width: 15ch;
  text-wrap: balance;
}
.ax-login-panel--left p {
  margin: 0;
  color: var(--ax-text-secondary, #c9d6f5);
  max-width: 50ch;
}
.ax-login-panel--right {
  padding-inline: clamp(1.5rem, 5vw, 5rem);
}

.ax-login-card {
  width: min(100%, 520px);
  border-radius: 24px;
  border: 1px solid color-mix(in srgb, var(--ax-card-border, rgba(145, 165, 214, 0.34)) 90%, rgba(255, 255, 255, 0.2));
  background:
    linear-gradient(165deg, color-mix(in srgb, var(--ax-surface, rgba(17, 27, 51, 0.94)) 90%, rgba(133, 167, 255, 0.14)) 0%, color-mix(in srgb, var(--ax-surface, rgba(17, 27, 51, 0.94)) 96%, rgba(8, 17, 36, 0.9)) 48%, color-mix(in srgb, var(--ax-surface, rgba(17, 27, 51, 0.94)) 98%, rgba(5, 10, 26, 0.95)) 100%);
  box-shadow:
    0 26px 52px color-mix(in srgb, var(--ax-login-panel-depth, rgba(1, 6, 18, 0.34)) 88%, transparent),
    0 0 0 1px color-mix(in srgb, var(--ax-primary, #5a6bff) 16%, transparent),
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    inset 0 -18px 30px rgba(3, 9, 24, 0.36);
  backdrop-filter: blur(15px) saturate(1.14);
  -webkit-backdrop-filter: blur(15px) saturate(1.14);
  padding: clamp(1.45rem, 3.2vw, 2.25rem);
  position: relative;
  overflow: hidden;
}
.ax-login-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(125% 58% at 50% -8%, color-mix(in srgb, var(--ax-login-widget-glow, rgba(101, 139, 235, 0.2)) 60%, transparent), transparent 55%);
  pointer-events: none;
}
.ax-login-brand {
  text-align: center;
  margin-bottom: 1.08rem;
  display: grid;
  gap: .42rem;
}
.ax-login-brand--with-logo {
  margin-bottom: .84rem;
  gap: .34rem;
}
.ax-login-brand--text-only {
  margin-bottom: 1.08rem;
  gap: .42rem;
}
.ax-login-logo { max-height: 58px; max-width: 210px; display: block; margin: 0 auto .7rem; object-fit: contain; }
.ax-login-app-name { margin: 0; font-size: clamp(1.4rem, 2.4vw, 1.55rem); letter-spacing: .01em; }
.ax-login-subtitle { margin: 0 auto; color: color-mix(in srgb, var(--ax-muted, #9aabd0) 88%, #d6e3ff); max-width: 32ch; line-height: 1.45; font-size: .97rem; }
.ax-login-alert {
  margin: .95rem 0 1.05rem;
  padding: .68rem .8rem;
  border-radius: 11px;
  background: color-mix(in srgb, var(--ax-danger, #d5465b) 24%, transparent);
  border: 1px solid color-mix(in srgb, var(--ax-danger, #d5465b) 72%, transparent);
  color: color-mix(in srgb, var(--ax-text, #e8efff) 86%, #fff);
}
.ax-login-form { display: grid; gap: .95rem; }
.ax-login-field { display: grid; gap: .38rem; }
.ax-login-form label {
  display: block;
  font-size: .81rem;
  color: color-mix(in srgb, var(--ax-text-secondary, #c9d6f5) 86%, #fff);
  margin-bottom: 0;
  letter-spacing: .03em;
  text-transform: uppercase;
  font-weight: 600;
}
.ax-login-input {
  width: 100%;
  box-sizing: border-box;
  min-height: 44px;
  padding: .7rem .84rem;
  border-radius: var(--ax-field-radius, 12px);
  border: 1px solid color-mix(in srgb, var(--ax-field-border, rgba(145, 165, 214, 0.38)) 90%, rgba(208, 223, 255, 0.24));
  background: linear-gradient(180deg, color-mix(in srgb, var(--ax-field-bg, rgba(12, 23, 44, 0.9)) 90%, rgba(152, 176, 233, 0.1)), color-mix(in srgb, var(--ax-field-bg, rgba(12, 23, 44, 0.9)) 98%, rgba(5, 11, 24, 0.9)));
  color: var(--ax-text, #e8efff);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 10px 22px rgba(3, 8, 20, 0.2);
  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease, transform .2s ease;
}
.ax-login-input::placeholder { color: var(--ax-placeholder, rgba(216, 226, 245, 0.58)); }
.ax-login-input:focus {
  outline: none;
  border-color: color-mix(in srgb, var(--ax-primary, #5a6bff) 76%, #dbe7ff);
  background: linear-gradient(180deg, color-mix(in srgb, var(--ax-field-bg, rgba(12, 23, 44, 0.9)) 82%, rgba(166, 191, 255, 0.16)), color-mix(in srgb, var(--ax-field-bg, rgba(12, 23, 44, 0.9)) 97%, rgba(7, 14, 31, 0.92)));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ax-focus, rgba(90, 124, 255, 0.32)) 88%, transparent), 0 15px 28px rgba(4, 10, 24, 0.28);
  transform: translateY(-1px);
}
.ax-login-submit {
  margin-top: .56rem;
  width: 100%;
  min-height: 48px;
  border: 1px solid color-mix(in srgb, var(--ax-primary, #5a6bff) 56%, #c8d8ff);
  border-radius: 12px;
  background: linear-gradient(138deg, color-mix(in srgb, var(--ax-primary, #5a6bff) 94%, #bfcfff), color-mix(in srgb, var(--ax-secondary, #3f8cff) 92%, #d8ecff));
  color: color-mix(in srgb, var(--ax-text, #eef2ff) 84%, #fff);
  font-weight: 700;
  letter-spacing: .012em;
  cursor: pointer;
  box-shadow: 0 14px 26px rgba(28, 61, 150, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.26);
  transition: transform .18s ease, filter .2s ease, box-shadow .22s ease, background .2s ease;
}
.ax-login-submit:hover {
  filter: brightness(1.06);
  transform: translateY(-1px);
  box-shadow: 0 18px 28px rgba(28, 61, 150, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.3);
}
.ax-login-submit:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ax-focus, rgba(90, 124, 255, 0.32)) 92%, transparent), 0 18px 28px rgba(28, 61, 150, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.3);
}
.ax-login-submit:active { transform: translateY(0); }
.ax-login-captcha-wrap {
  display: grid;
  justify-items: center;
  gap: .45rem;
  width: 100%;
  overflow: visible;
}
.ax-login-captcha-wrap .g-recaptcha,
.ax-login-captcha-wrap .h-captcha,
.ax-login-captcha-wrap .cf-turnstile {
  max-width: 100%;
}
.ax-login-recovery-actions {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
  gap: .25rem .62rem;
  margin-top: .1rem;
  font-size: .9rem;
  text-align: center;
  width: 100%;
  max-width: 100%;
  overflow-wrap: normal;
}
.ax-login-recovery-actions__link {
  display: inline-flex;
  align-items: center;
  width: auto;
  max-width: max-content;
  margin: 0;
  padding: 0;
  white-space: nowrap;
}
.ax-login-recovery-actions__link--password::before {
  content: "•";
  display: inline;
  color: color-mix(in srgb, var(--ax-muted, #b7c7ee) 88%, transparent);
  font-size: .86em;
  margin-right: .7rem;
  vertical-align: middle;
}
@media (max-width: 640px) {
  .ax-login-recovery-actions {
    gap: .22rem .52rem;
  }

  .ax-login-recovery-actions__link--password::before {
    margin-right: .52rem;
  }
}

@media (max-width: 420px) {
  .ax-login-recovery-actions {
    flex-wrap: wrap;
    gap: .34rem;
  }

  .ax-login-recovery-actions__link--password::before {
    content: none;
  }
}
.ax-login-version { text-align: center; margin-top: 1.05rem; color: color-mix(in srgb, var(--ax-muted, #9fb0de) 84%, #d4e0ff); font-size: .8rem; letter-spacing: .02em; }

.ax-login-body[data-ax-theme='blanco'] .ax-login-panel--left {
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.56), rgba(255, 255, 255, 0.28) 44%, rgba(246, 251, 255, 0.44) 100%),
    linear-gradient(190deg, rgba(245, 250, 255, 0.78), rgba(236, 245, 255, 0.62));
  border-right-color: color-mix(in srgb, var(--ax-border, rgba(124, 153, 196, 0.3)) 74%, transparent);
}
.ax-login-body[data-ax-theme='blanco'] .ax-login-card {
  background:
    linear-gradient(165deg, rgba(255, 255, 255, 0.94) 0%, rgba(248, 252, 255, 0.96) 48%, rgba(243, 248, 255, 0.98) 100%);
  box-shadow:
    0 24px 46px rgba(46, 84, 142, 0.18),
    0 0 0 1px color-mix(in srgb, var(--ax-primary) 14%, transparent),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
}
.ax-login-body[data-ax-theme='blanco'] .ax-login-input {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 252, 255, 0.96));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.88), 0 6px 16px rgba(39, 74, 122, 0.12);
}
.ax-login-body[data-ax-theme='blanco'] .ax-login-submit {
  color: #f6f9ff;
  box-shadow: 0 14px 24px rgba(36, 84, 171, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.24);
}
.ax-login-body[data-ax-theme='oscuro'] .ax-login-card {
  background:
    linear-gradient(165deg, rgba(17, 27, 45, 0.95) 0%, rgba(15, 24, 39, 0.97) 48%, rgba(12, 20, 33, 0.98) 100%);
  box-shadow:
    0 28px 58px rgba(2, 8, 20, 0.52),
    0 0 0 1px color-mix(in srgb, var(--ax-primary) 12%, transparent),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
}


@media (max-width: 1200px) {
  .ax-login-panel--right {
    padding-inline: clamp(1.25rem, 4vw, 3rem);
  }
}

@media (max-width: 980px) {
  .ax-login-shell { grid-template-columns: 1fr; }
  .ax-login-panel {
    min-height: auto;
    padding: 1rem;
  }
  .ax-login-panel--left {
    border-right: none;
    border-bottom: 1px solid color-mix(in srgb, var(--ax-border, rgba(148, 168, 216, 0.2)) 60%, transparent);
    min-height: clamp(220px, 36vh, 320px);
  }
  .ax-login-panel--left h1 { font-size: clamp(1.42rem, 7vw, 2.25rem); }
  .ax-login-panel--left-content { width: 100%; gap: .85rem; }
  .ax-login-hero-stack { width: min(100%, 560px); gap: .58rem; }
  .ax-login-time-weather {
    width: 100%;
  }
  .ax-login-panel--right {
    padding-inline: 1rem;
    padding-top: .4rem;
    justify-content: flex-start;
  }
  .ax-login-card { width: min(100%, 560px); }
}

@media (max-width: 640px) {
  .ax-login-panel { padding: .9rem; }
  .ax-login-card, .ax-login-panel--left { border-radius: 18px; }
  .ax-login-panel--left { min-height: 210px; }
  .ax-login-subtitle { max-width: 100%; }
  .ax-login-time-weather {
    animation-duration: 10s;
    flex-direction: column;
    align-items: flex-start;
    gap: .72rem;
  }
  .ax-login-time-weather__weather {
    width: 100%;
    text-align: left;
    padding-left: 0;
    border-left: none;
    border-top: 1px solid color-mix(in srgb, var(--ax-border, rgba(148, 168, 216, 0.2)) 68%, transparent);
    padding-top: .62rem;
  }

  .ax-login-captcha-wrap .g-recaptcha,
  .ax-login-captcha-wrap .h-captcha {
    transform: scale(0.92);
    transform-origin: center top;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ax-login-time-weather,
  .ax-login-time-weather::after,
  .ax-login-time-weather__icon,
  .ax-login-time-weather__icon::after {
    animation: none;
  }

  .ax-login-time-weather {
    transform: none;
  }
}

.portal-body {
  min-height: 100vh;
  background:
    radial-gradient(circle at 10% -8%, rgba(97, 126, 216, 0.24), transparent 36%),
    radial-gradient(circle at 92% 6%, rgba(133, 99, 224, 0.2), transparent 35%),
    linear-gradient(165deg, #060b18 0%, #0d1731 52%, #091124 100%);
  color: #e6ecff;
}
.portal-body--login {
  background:
    radial-gradient(circle at 18% -6%, rgba(112, 148, 242, 0.3), transparent 34%),
    radial-gradient(circle at 84% 8%, rgba(167, 123, 252, 0.22), transparent 38%),
    linear-gradient(168deg, #060b18 0%, #0d1630 54%, #091327 100%);
}
.portal-shell { max-width: 1080px; margin: 0 auto; padding: clamp(1rem, 2.8vw, 2rem) 1rem; }
.portal-shell--login { max-width: 920px; }
.portal-topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: .85rem 1rem;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.03) 44%), linear-gradient(188deg, rgba(11, 20, 40, 0.92), rgba(7, 13, 28, 0.87));
  border: 1px solid rgba(140, 166, 222, 0.38);
  border-radius: 16px;
  box-shadow: 0 18px 42px rgba(2, 8, 24, 0.52), inset 0 1px 0 rgba(255, 255, 255, 0.16);
  backdrop-filter: blur(14px) saturate(1.06);
  -webkit-backdrop-filter: blur(14px) saturate(1.06);
  margin-bottom: 1rem;
}
.portal-topbar--login {
  margin-bottom: clamp(1rem, 3.2vh, 1.8rem);
}
.portal-brand { display: inline-flex; align-items: center; gap: .82rem; min-width: 0; }
.portal-brand-logo { width: auto; height: 42px; max-width: min(200px, 38vw); object-fit: contain; object-position: left center; display: block; }
.portal-brand-meta { display: grid; gap: .08rem; min-width: 0; }
.portal-brand-text { font-size: 1rem; letter-spacing: .01em; color: #eff5ff; line-height: 1.15; }
.portal-brand-text--support { font-size: .94rem; color: color-mix(in srgb, #eff5ff 86%, #adc3ff); font-weight: 620; }
.portal-brand-portal { font-size: .79rem; text-transform: uppercase; letter-spacing: .12em; color: color-mix(in srgb, var(--ax-muted, #9fb0de) 85%, #dce8ff); }
.portal-brand.is-logo-fallback .portal-brand-portal { display: none; }
.portal-topbar-side { display: inline-flex; align-items: center; gap: .6rem; margin-left: auto; }
.portal-session-label { color: color-mix(in srgb, #c9d8fb 88%, #f2f7ff); font-size: .88rem; }
.portal-version {
  color: color-mix(in srgb, #9fb0de 80%, #dee9ff);
  font-size: .76rem;
  letter-spacing: .09em;
  text-transform: uppercase;
  border: 1px solid rgba(127, 155, 222, 0.34);
  border-radius: 999px;
  padding: .22rem .55rem;
}
.portal-nav { display: flex; align-items: center; gap: .6rem; margin-bottom: 1rem; }
.portal-nav a, .portal-nav button { display: inline-block; padding: .55rem .8rem; border-radius: 8px; border: 1px solid #32406a; color: #dbe6ff; text-decoration: none; background: #0f1730; }
.portal-nav a.active { background: #2b3d72; border-color: #4b74ff; }
.portal-logout-form { margin-left: auto; }
.portal-logout-form button { margin-top: 0; width: auto; background: #263153; }
.portal-card { margin: 4rem auto 0; }
.portal-login-card {
  width: min(530px, 100%);
  margin: clamp(2rem, 8vh, 5.2rem) auto 0;
  border-radius: 24px;
  border: 1px solid rgba(152, 179, 235, 0.42);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.17), rgba(255, 255, 255, 0.03) 48%), linear-gradient(190deg, rgba(11, 20, 40, 0.92), rgba(7, 13, 28, 0.84));
  box-shadow: 0 30px 72px rgba(2, 8, 24, 0.56), inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(138, 166, 231, 0.08);
  backdrop-filter: blur(15px) saturate(1.08);
  -webkit-backdrop-filter: blur(15px) saturate(1.08);
  padding: clamp(1.2rem, 3vw, 1.7rem);
}
.portal-login-card__head { display: grid; gap: .42rem; margin-bottom: 1rem; }
.portal-login-card__head h1 { margin: 0; font-size: clamp(1.45rem, 3.1vw, 1.9rem); letter-spacing: .01em; }
.portal-login-card__head p { margin: 0; color: color-mix(in srgb, var(--ax-muted, #9fb0de) 84%, #edf4ff); line-height: 1.42; font-size: .93rem; }
.portal-login-help { font-size: .86rem; }
.portal-login-help a { color: #dbe6ff; text-decoration: underline; }
.portal-login-card__kicker {
  margin: 0;
  font-size: .74rem;
  text-transform: uppercase;
  letter-spacing: .13em;
  color: color-mix(in srgb, #9fb0de 76%, #d8e6ff);
}
.portal-login-brand {
  display: grid;
  justify-items: center;
  gap: .5rem;
  margin-bottom: .28rem;
}
.portal-login-brand-logo {
  width: auto;
  max-height: 54px;
  max-width: min(230px, 68vw);
  object-fit: contain;
}
.portal-login-brand-fallback {
  font-size: 1.2rem;
  line-height: 1.2;
  letter-spacing: .01em;
  font-weight: 700;
  color: #edf4ff;
}
.portal-login-brand-name {
  font-size: .82rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: color-mix(in srgb, #9fb0de 82%, #dbe8ff);
}
.portal-login-brand.is-fallback .portal-login-brand-name { display: none; }
.portal-login-form { display: grid; gap: .74rem; }
.portal-login-form label {
  font-size: .86rem;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--ax-muted, #9fb0de) 78%, #f4f8ff);
}
.portal-login-form input {
  width: 100%;
  box-sizing: border-box;
  min-height: 46px;
  padding: .74rem .82rem;
  border-radius: 12px;
  border: 1px solid rgba(112, 139, 194, 0.56);
  background: linear-gradient(180deg, rgba(7, 13, 29, 0.9), rgba(6, 12, 26, 0.73));
  color: #eef5ff;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.portal-login-form input::placeholder { color: color-mix(in srgb, #9fb0de 78%, #dce8ff); }
.portal-login-form input:focus {
  outline: none;
  border-color: rgba(121, 166, 255, 0.96);
  box-shadow: 0 0 0 3px rgba(95, 132, 228, 0.24), inset 0 1px 0 rgba(255, 255, 255, 0.15);
}
.portal-login-form button {
  margin-top: .58rem;
  min-height: 48px;
  border-radius: 12px;
  border: 1px solid rgba(111, 145, 223, 0.7);
  background: linear-gradient(140deg, #466bdf, #5a56df);
  color: #f4f8ff;
  font-weight: 700;
  letter-spacing: .01em;
  box-shadow: 0 16px 34px rgba(34, 57, 126, 0.48);
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.portal-login-form button:hover { transform: translateY(-1px); box-shadow: 0 20px 36px rgba(34, 57, 126, 0.54); filter: brightness(1.04); }
.portal-login-form button:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(120, 162, 255, 0.3), 0 17px 34px rgba(34, 57, 126, 0.52); }
.portal-panel { background: #131a30; border: 1px solid #263153; border-radius: 12px; padding: 1rem; }
.portal-table { width: 100%; border-collapse: collapse; }
.portal-table th, .portal-table td { border-bottom: 1px solid #263153; padding: .65rem .5rem; text-align: left; }
.portal-empty { color: #9fb0de; padding: .75rem 0; }
.portal-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px,1fr)); gap: .85rem; }
.portal-grid--split { grid-template-columns: repeat(auto-fit, minmax(280px,1fr)); }
.portal-stat { background: #131a30; border: 1px solid #263153; border-radius: 12px; padding: 1rem; }
.portal-stat h2 { margin: 0 0 .4rem; font-size: 1rem; }
.portal-stat p { margin: 0; font-size: 1.8rem; font-weight: 700; }
.portal-detail-grid { display: grid; grid-template-columns: 200px 1fr; gap: .5rem .75rem; }
.portal-detail-grid dt { color: #9fb0de; }
.portal-detail-grid dd { margin: 0; }
.portal-history li { margin-bottom: .45rem; }
.portal-muted { color: #9fb0de; margin: 0 0 .8rem; }
.portal-quick-links { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .7rem; }
.portal-quick-links a { display: inline-block; padding: .5rem .78rem; border-radius: 8px; border: 1px solid #32406a; background: #0f1730; color: #dbe6ff; text-decoration: none; }
.portal-list { list-style: none; margin: .2rem 0 0; padding: 0; display: grid; gap: .65rem; }
.portal-list li { display: flex; flex-direction: column; gap: .2rem; padding-bottom: .6rem; border-bottom: 1px solid #263153; }
.portal-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.portal-list a { color: #dbe6ff; text-decoration: none; font-weight: 600; }
.portal-list span { color: #9fb0de; font-size: .86rem; }
.portal-pill { display:inline-block; padding:4px 10px; border-radius:999px; background: rgba(59,130,246,.2); color:#b7d4ff; font-size:12px; font-weight:600; }
.portal-pagination { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.portal-pagination-link { display: inline-block; padding: .45rem .7rem; border-radius: 8px; border: 1px solid #32406a; color: #dbe6ff; text-decoration: none; background: #0f1730; font-size: .9rem; }
.portal-pagination-link.is-active { background: #2b3d72; border-color: #4b74ff; font-weight: 700; }
.portal-pagination-link.is-disabled { opacity: .55; pointer-events: none; }
.portal-payment-selector { margin: 12px 0; padding: 12px; border: 1px solid #32406a; border-radius: 10px; background: #0f1730; }
.portal-payment-selector h2 { margin: 0 0 6px; font-size: 1rem; }
.portal-payment-option { display:flex; align-items:center; justify-content:space-between; gap:10px; margin: 8px 0; padding: 8px 10px; border: 1px solid #263153; border-radius: 8px; background: #131a30; }

.ax-security-card {
  padding: 1rem;
  display: grid;
  gap: .9rem;
  max-width: 1100px;
}
.ax-security-card__head {
  display: grid;
  gap: .25rem;
}
.ax-security-card__head h2,
.ax-security-subcard h3 {
  margin: 0;
}
.ax-security-card__head p,
.ax-security-subcard p {
  margin: 0;
}
.ax-security-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}
.ax-security-layout {
  display: grid;
  gap: .85rem;
}
.ax-security-layout--captcha {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.ax-security-layout--captcha .ax-security-block--full {
  grid-column: 1 / -1;
}
.ax-security-layout--2fa {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.ax-security-layout--2fa .ax-security-block--full {
  grid-column: 1 / -1;
}
.ax-security-subcard {
  border: 1px solid color-mix(in srgb, var(--ax-border, rgba(122, 147, 207, 0.32)) 84%, transparent);
  border-radius: 12px;
  padding: .85rem;
  display: grid;
  gap: .7rem;
  min-width: 0;
}
.ax-security-fields {
  display: grid;
  gap: .7rem;
}
.ax-security-fields--split {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .7rem .85rem;
}
.ax-security-fields label {
  display: grid;
  gap: .32rem;
  min-width: 0;
}
.ax-security-fields label span {
  font-size: .85rem;
  color: color-mix(in srgb, var(--ax-text, #e6ecff) 85%, #c5d8ff);
}
.ax-security-field--full {
  grid-column: 1 / -1;
}
.ax-security-field-help {
  margin: .12rem 0 0;
  font-size: .78rem;
  line-height: 1.35;
}
.ax-security-toggles {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem .75rem;
}
.ax-security-toggles label {
  display: inline-flex;
  align-items: flex-start;
  gap: .5rem;
  padding: .55rem .65rem;
  border: 1px solid color-mix(in srgb, var(--ax-border, rgba(122, 147, 207, 0.32)) 78%, transparent);
  border-radius: 10px;
  background: color-mix(in srgb, var(--ax-surface, #111b33) 92%, rgba(147, 176, 236, 0.08));
}
.ax-security-toggles label input[type="checkbox"] {
  margin-top: .14rem;
}
.ax-security-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: .35rem;
}

.ax-security-block-stack {
  display: grid;
  gap: .85rem;
}
.ax-security-block-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem .9rem;
  min-width: 0;
}
.ax-security-block-row--single {
  grid-template-columns: minmax(0, 1fr);
}
.ax-security-block-col {
  border: 1px solid color-mix(in srgb, var(--ax-border, rgba(122, 147, 207, 0.32)) 76%, transparent);
  border-radius: 11px;
  padding: .75rem;
  display: grid;
  gap: .55rem;
  min-width: 0;
  background: color-mix(in srgb, var(--ax-surface, #111b33) 94%, rgba(147, 176, 236, 0.06));
}
.ax-security-block-col--full {
  width: 100%;
}
.ax-security-toggles--single {
  grid-template-columns: minmax(0, 1fr);
}
.ax-security-toggle-spacer {
  min-height: 0;
}
.ax-security-actions--spaced {
  margin-top: .75rem;
}

@media (max-width: 760px) {
  .portal-topbar { flex-wrap: wrap; }
  .portal-topbar-side { width: 100%; justify-content: space-between; margin-left: 0; }
  .portal-brand-logo { height: 36px; max-width: min(160px, 56vw); }
  .portal-login-card { border-radius: 20px; margin-top: clamp(1.2rem, 6vh, 2rem); }
  .portal-login-brand-logo { max-height: 46px; max-width: min(180px, 62vw); }
  .ax-security-grid {
    grid-template-columns: 1fr;
  }
  .ax-security-layout--captcha,
  .ax-security-layout--2fa,
  .ax-security-fields--split,
  .ax-security-toggles,
  .ax-security-block-row {
    grid-template-columns: 1fr;
  }
  .ax-security-actions {
    justify-content: stretch;
  }
  .ax-security-actions .ax-btn {
    width: 100%;
  }
}

@media (max-width: 980px) {
  .ax-security-layout--captcha,
  .ax-security-layout--2fa {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  }
  .ax-security-fields--split {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  }
  .ax-security-toggles {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  }
  .ax-security-block-row {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  }
}

.attendance-shell { display:grid; gap:1rem; }
.attendance-head { display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; flex-wrap:wrap; }
.attendance-head h1 { margin:0; }
.attendance-head .ax-muted { margin:0; }
.attendance-kpis { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }
.attendance-kpi { padding:.85rem .95rem; min-height:124px; display:grid; align-content:space-between; gap:.45rem; }
.attendance-kpi h3 { margin:0; font-size:.92rem; line-height:1.35; color:color-mix(in srgb, var(--ax-text, #e6ecff) 88%, #b9c8ef); font-weight:600; }
.attendance-kpi p { font-size:2.1rem; line-height:1; margin:0; font-weight:800; letter-spacing:-.01em; }
.attendance-grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.attendance-operational-block { padding:1rem; min-width:0; }
.attendance-operational-block h2 { margin:.1rem 0 .75rem; font-size:1.03rem; }
.attendance-secondary-grid { align-items:start; }
.attendance-recent-activity { width:100%; }
.attendance-recent-activity .ax-table { table-layout:auto; }
.attendance-filters { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:.75rem; align-items:end; }


@media (max-width: 1140px) {
  .attendance-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 760px) {
  .attendance-kpis,
  .attendance-grid-2 { grid-template-columns:1fr; }
}

.attendance-kiosk-wrap {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 3vw, 2.2rem);
  background:
    radial-gradient(circle at 10% 8%, rgba(111, 143, 231, 0.26), transparent 36%),
    radial-gradient(circle at 86% 0%, rgba(138, 101, 230, 0.2), transparent 42%),
    linear-gradient(150deg, #060b18 0%, #0d1731 56%, #091124 100%);
}
.attendance-kiosk-card {
  width: min(560px, 100%);
  border-radius: 24px;
  border: 1px solid rgba(149, 174, 229, 0.36);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.17), rgba(255, 255, 255, 0.03) 45%),
    linear-gradient(190deg, rgba(11, 20, 40, 0.92), rgba(7, 13, 28, 0.86));
  box-shadow:
    0 26px 60px rgba(2, 8, 20, 0.62),
    0 0 0 1px rgba(170, 194, 255, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.24),
    inset 0 -1px 0 rgba(131, 161, 230, 0.12);
  backdrop-filter: blur(16px) saturate(1.12);
  -webkit-backdrop-filter: blur(16px) saturate(1.12);
  padding: clamp(1rem, 2.4vw, 1.4rem);
}
.attendance-kiosk-access-head { display: grid; gap: .58rem; margin-bottom: 1rem; }
.attendance-kiosk-access-head h1 { margin: 0; font-size: clamp(1.45rem, 3.2vw, 1.82rem); letter-spacing: .01em; }
.attendance-kiosk-subtitle { margin: 0; color: color-mix(in srgb, var(--ax-muted, #9fb0de) 86%, #dce8ff); line-height: 1.42; }
.attendance-kiosk-access-form {
  margin-top: .45rem;
  display: grid;
  gap: 1rem;
  max-width: none;
}
.attendance-kiosk-access-form label {
  display: grid;
  font-size: .92rem;
  color: color-mix(in srgb, var(--ax-muted, #9fb0de) 80%, #ecf3ff);
  gap: .5rem;
}
.attendance-kiosk-access-form input[type="password"] {
  width: 100%;
  box-sizing: border-box;
  min-height: 46px;
  padding: .74rem .84rem;
  border-radius: 12px;
  border: 1px solid rgba(114, 142, 197, 0.52);
  background: linear-gradient(180deg, rgba(7, 13, 29, 0.88), rgba(7, 13, 26, 0.72));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.attendance-kiosk-access-form input[type="password"]:focus {
  border-color: rgba(114, 156, 255, 0.95);
  box-shadow: 0 0 0 3px rgba(95, 132, 228, 0.24), inset 0 1px 0 rgba(255, 255, 255, 0.17);
}
.attendance-kiosk-access-notes { display: grid; gap: .48rem; margin-top: .1rem; }
.attendance-kiosk-access-submit {
  margin-top: .32rem;
  justify-self: center;
  width: min(100%, 320px);
  min-height: 46px;
  border-radius: 12px;
  font-size: .98rem;
  font-weight: 700;
  letter-spacing: .01em;
  box-shadow: 0 14px 30px rgba(136, 28, 47, 0.34);
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.attendance-kiosk-access-submit:hover { transform: translateY(-1px); box-shadow: 0 18px 34px rgba(136, 28, 47, 0.4); filter: brightness(1.03); }
.attendance-kiosk-access-submit:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(121, 163, 255, 0.24), 0 16px 30px rgba(136, 28, 47, 0.35); }
.attendance-kiosk-note {
  margin: 0;
  padding: .64rem .72rem;
  border-radius: 12px;
  border: 1px solid rgba(104, 128, 174, 0.42);
  background: linear-gradient(180deg, rgba(17, 29, 55, 0.62), rgba(12, 22, 45, 0.42));
  font-size: .88rem;
  line-height: 1.4;
}
.attendance-kiosk-note-secondary { margin: 0; font-size: .84rem; line-height: 1.38; }
.attendance-kiosk-version { margin-top: .94rem; }
.attendance-kiosk-terminal { width:min(1280px, 100%); display:grid; gap:.95rem; padding:1rem; border:1px solid rgba(110,138,188,.35); box-shadow:0 22px 60px rgba(2,7,18,.55); }
.attendance-kiosk-head { display:flex; justify-content:space-between; gap:1rem; align-items:center; }
.attendance-kiosk-head-copy { flex:1; display:grid; gap:.22rem; text-align:center; }
.attendance-kiosk-company { margin:0; font-size:.86rem; letter-spacing:.08em; text-transform:uppercase; color:#9db7ff; font-weight:700; }
.attendance-kiosk-title { margin:0; font-size:clamp(1.25rem, 2.1vw, 1.7rem); color:#e7efff; font-weight:800; }
.attendance-kiosk-logout { white-space:nowrap; }
.attendance-kiosk-grid { display:grid; grid-template-columns:minmax(460px,1.32fr) minmax(360px,.95fr); gap:.8rem; align-items:start; }
.attendance-kiosk-section { border:1px solid rgba(113,141,189,.35); background:linear-gradient(180deg,rgba(10,17,36,.9),rgba(7,12,24,.82)); border-radius:16px; padding:.82rem; display:grid; gap:.68rem; min-width:0; }
.attendance-kiosk-section h2 { margin:0; }
.attendance-kiosk-section-head { display:flex; align-items:center; justify-content:space-between; gap:.75rem; }
.attendance-kiosk-label { display:block; margin:0; font-size:.9rem; color:#bdd0ff; }
.attendance-kiosk-select { width:100%; border-radius:12px; border:1px solid rgba(108,132,178,.42); background:rgba(7,13,30,.75); color:#e8f0ff; padding:.72rem .8rem; outline:none; }
.attendance-kiosk-select:focus { border-color:#6f97ff; box-shadow:0 0 0 3px rgba(84,122,255,.2); }
.attendance-kiosk-refresh { margin:0; }
.attendance-kiosk-camera-frame { border-radius:16px; border:1px solid rgba(120,146,189,.4); overflow:hidden; background:#040712; box-shadow:inset 0 0 0 1px rgba(183,206,255,.04); aspect-ratio:16/9; }
.attendance-kiosk-camera-preview { width:100%; height:100%; display:block; background:#040712; object-fit:cover; }
.attendance-kiosk-camera-canvas { display:none; }

.attendance-kiosk-form { display:grid; gap:.72rem; align-content:start; min-width:0; }
.attendance-kiosk-form label { display:grid; gap:.32rem; font-weight:600; color:#d8e6ff; min-width:0; }
.attendance-kiosk-form input[type="text"],
.attendance-kiosk-form select,
.attendance-kiosk-form textarea { width:100%; min-width:0; box-sizing:border-box; display:block; border-radius:12px; border:1px solid rgba(108,132,178,.42); background:rgba(7,13,30,.75); color:#ecf3ff; padding:.72rem .8rem; font:inherit; }
.attendance-kiosk-form textarea { min-height:84px; resize:vertical; }
.attendance-kiosk-form input[type="text"]::placeholder,
.attendance-kiosk-form textarea::placeholder { color:#93a8d1; }
.attendance-kiosk-form input[type="text"]:focus,
.attendance-kiosk-form select:focus,
.attendance-kiosk-form textarea:focus { border-color:#6f97ff; box-shadow:0 0 0 3px rgba(84,122,255,.2); outline:none; }
.attendance-kiosk-status { margin:0; border-radius:10px; padding:.55rem .68rem; border:1px solid transparent; font-size:.88rem; }
.attendance-kiosk-status-info { color:#cddcfe; background:rgba(42,65,116,.28); border-color:rgba(84,116,186,.4); }
.attendance-kiosk-status-success { color:#d4ffe9; background:rgba(16,95,65,.25); border-color:rgba(69,166,123,.45); }
.attendance-kiosk-status-warning { color:#ffeec8; background:rgba(132,95,24,.23); border-color:rgba(197,157,78,.45); }
.attendance-kiosk-status-danger { color:#ffd9df; background:rgba(122,32,49,.25); border-color:rgba(190,76,102,.45); }
.attendance-kiosk-submit { width:100%; font-size:1rem; padding:.78rem .95rem; font-weight:700; border-radius:12px; margin-top:.1rem; }

.attendance-kiosk-recognize-btn { margin:0; width:100%; }
.attendance-kiosk-recognition { border:1px solid rgba(108,132,178,.42); border-radius:12px; padding:.62rem .72rem; background:rgba(9,15,33,.66); display:grid; gap:.18rem; }
.attendance-kiosk-recognition-title { margin:0; font-weight:700; color:#d8e7ff; }
.attendance-kiosk-recognition-meta { margin:0; color:#a9bde3; font-size:.9rem; }
.attendance-kiosk-recognition-idle { border-color:rgba(89,112,154,.45); background:rgba(9,15,33,.58); }
.attendance-kiosk-recognition-info { border-color:rgba(84,116,186,.45); background:rgba(42,65,116,.2); }
.attendance-kiosk-recognition-success { border-color:rgba(69,166,123,.5); background:rgba(16,95,65,.2); }
.attendance-kiosk-recognition-danger { border-color:rgba(190,76,102,.5); background:rgba(122,32,49,.2); }
.attendance-kiosk-success-screen { display:none; width:min(760px,100%); justify-self:center; border:1px solid rgba(92,177,143,.48); border-radius:18px; padding:.9rem 1rem; background:linear-gradient(145deg,rgba(8,31,30,.84),rgba(9,18,36,.9)); box-shadow:0 18px 44px rgba(3,14,22,.52), inset 0 0 0 1px rgba(161,230,203,.08); gap:.72rem; }
.attendance-kiosk-success-screen.is-visible { display:grid; }
.attendance-kiosk-success-eyebrow { margin:0; text-transform:uppercase; letter-spacing:.08em; font-size:.73rem; color:#8ee3c2; }
.attendance-kiosk-success-title { margin:0; font-size:clamp(1.25rem,2vw,1.58rem); color:#ecfff6; line-height:1.15; }
.attendance-kiosk-success-secondary { margin:0; color:#b9d7e9; font-size:.92rem; }
.attendance-kiosk-success-body { display:grid; grid-template-columns:minmax(170px,.66fr) minmax(260px,1fr); gap:.72rem; align-items:stretch; }
.attendance-kiosk-success-photo-wrap { border-radius:12px; border:1px solid rgba(128,202,173,.42); background:rgba(7,16,22,.55); overflow:hidden; min-height:130px; max-height:180px; display:grid; }
.attendance-kiosk-success-photo { width:100%; height:100%; object-fit:cover; display:block; }
.attendance-kiosk-success-photo-fallback { display:grid; place-items:center; color:#a3c2d5; font-weight:600; padding:.72rem; text-align:center; font-size:.9rem; }
.attendance-kiosk-success-details { margin:0; display:grid; gap:.4rem; grid-template-columns:repeat(2,minmax(0,1fr)); }
.attendance-kiosk-success-details div { border:1px solid rgba(119,164,187,.32); border-radius:10px; padding:.46rem .58rem; background:rgba(8,18,34,.48); min-width:0; }
.attendance-kiosk-success-details dt { margin:0; font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; color:#98b6ce; }
.attendance-kiosk-success-details dd { margin:.12rem 0 0; color:#e8f5ff; font-size:.9rem; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.attendance-kiosk-unavailable { display:grid; gap:1rem; }
.attendance-kiosk-badge { display:inline-flex; width:fit-content; margin:0; padding:.25rem .7rem; border-radius:999px; border:1px solid rgba(132,151,179,.35); background:rgba(10,16,32,.45); color:#d7e4ff; font-size:.82rem; letter-spacing:.02em; }
.attendance-kiosk-unavailable-list { border:1px solid rgba(132,151,179,.35); border-radius:14px; background:rgba(11,19,40,.55); padding:.9rem 1rem; }
.attendance-kiosk-unavailable-list h2 { margin:0 0 .4rem; font-size:1rem; }
.attendance-kiosk-unavailable-list ul { margin:0; padding-left:1.1rem; display:grid; gap:.4rem; }

@media (max-width: 920px) {
  .attendance-kiosk-grid { grid-template-columns:1fr; }
  .attendance-kiosk-head { flex-direction:column; }
  .attendance-kiosk-logout { width:100%; }
  .attendance-kiosk-camera-frame { aspect-ratio:4/3; }
  .attendance-kiosk-success-body { grid-template-columns:1fr; }
  .attendance-kiosk-success-screen { width:100%; }
  .attendance-kiosk-success-photo-wrap { max-height:220px; }
  .attendance-kiosk-success-details { grid-template-columns:1fr; }
  .attendance-kiosk-card { border-radius: 20px; padding: .95rem; }
}


.attendance-kiosk-maps-link { display:inline-flex; align-items:center; gap:.35rem; }
.attendance-kiosk-evidence-link { display:inline-block; color:inherit; text-decoration:none; cursor:pointer; }
.attendance-kiosk-records-table td { vertical-align:middle; }
.attendance-kiosk-records-table td .attendance-evidence-thumb-wrap { width:120px; min-width:120px; max-width:120px; overflow:hidden; }
.attendance-kiosk-records-table td .attendance-evidence-thumb-wrap .attendance-kiosk-evidence-link { width:120px; max-width:120px; }
.attendance-kiosk-records-table td .attendance-evidence-thumb-wrap .attendance-evidence-thumb { width:120px; min-width:120px; max-width:120px; height:90px; min-height:90px; max-height:90px; border-radius:10px; object-fit:cover; object-position:center; border:1px solid rgba(120,146,189,.45); background:#040712; overflow:hidden; display:block; }


.attendance-kiosk-filters-bar {
  display:grid;
  grid-template-columns:176px 176px minmax(220px, 240px) minmax(190px, 220px) 132px;
  align-items:center;
  justify-content:space-between;
  gap:.78rem;
  width:100%;
  margin:.4rem 0 1.25rem;
  padding:.95rem 1rem;
  border:1px solid rgba(123,149,197,.34);
  border-radius:16px;
  background:linear-gradient(180deg, rgba(10,18,36,.75) 0%, rgba(8,14,29,.82) 100%);
  box-shadow:inset 0 1px 0 rgba(220,230,255,.07), 0 12px 20px rgba(2,7,18,.22);
}
.attendance-kiosk-filters-bar > * { min-width:0; }
.attendance-kiosk-filters-bar .attendance-kiosk-filters-bar__field {
  width:100%;
  min-width:0;
  box-sizing:border-box;
  height:44px;
  border-radius:12px;
  border:1px solid rgba(122,149,198,.42);
  background:rgba(9,17,36,.88);
  color:#ecf3ff;
  padding:0 .92rem;
  font:inherit;
  line-height:1.2;
  transition:border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.attendance-kiosk-filters-bar .attendance-kiosk-filters-bar__field:focus {
  border-color:#79a1ff;
  box-shadow:0 0 0 3px rgba(84,122,255,.24);
  background:rgba(11,21,43,.95);
  outline:none;
}
.attendance-kiosk-filters-bar .attendance-kiosk-filters-bar__field[type="date"] {
  color-scheme:dark;
}
.attendance-kiosk-filters-bar select.attendance-kiosk-filters-bar__field {
  -webkit-appearance:none;
  appearance:none;
  background-image:linear-gradient(45deg, transparent 50%, #9ab4f5 50%), linear-gradient(135deg, #9ab4f5 50%, transparent 50%);
  background-position:calc(100% - 18px) calc(50% - 2px), calc(100% - 12px) calc(50% - 2px);
  background-size:6px 6px, 6px 6px;
  background-repeat:no-repeat;
  padding-right:2rem;
}
.attendance-kiosk-filters-bar .attendance-kiosk-filters-bar__submit {
  width:100%;
  height:44px;
  min-height:44px;
  border-radius:12px;
  padding:0 1.1rem;
  align-self:center;
  justify-self:stretch;
  white-space:nowrap;
  font-weight:600;
  letter-spacing:.01em;
  box-shadow:0 8px 18px rgba(160,35,55,.22);
}

@media (max-width: 1100px) {
  .attendance-kiosk-filters-bar {
    grid-template-columns:repeat(2, minmax(220px, 1fr)) !important;
  }
  .attendance-kiosk-filters-bar .attendance-kiosk-filters-bar__submit { grid-column:span 2; }
}

@media (max-width: 700px) {
  .attendance-kiosk-filters-bar {
    grid-template-columns:1fr !important;
  }
  .attendance-kiosk-filters-bar .attendance-kiosk-filters-bar__submit { grid-column:auto; }
}


.rrhh-employee-stats-page {
  display:grid;
  width:100%;
  max-width:none;
  gap:1rem;
  grid-template-columns:minmax(0, 1fr);
  align-items:start;
}
.rrhh-employee-stats-header {
  width:100%;
  padding:1.15rem 1.2rem;
  border:1px solid rgba(118, 144, 196, .34);
  background:linear-gradient(165deg, rgba(10, 21, 46, .94), rgba(7, 13, 28, .88));
  display:grid;
  gap:1rem;
  grid-template-columns:minmax(0, 1.3fr) minmax(0, 1fr);
}
.rrhh-employee-stats-header__main { display:grid; gap:.42rem; align-content:start; }
.rrhh-employee-stats-header__eyebrow { margin:0; font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; color:#9ab4f5; }
.rrhh-employee-stats-header__subtitle { margin:0; max-width:66ch; }
.rrhh-employee-stats-header__name { margin:.25rem 0 0; font-size:1.48rem; font-weight:700; color:#f2f7ff; line-height:1.18; }
.rrhh-employee-stats-header__identity {
  margin:0;
  display:grid;
  gap:.7rem;
  grid-template-columns:repeat(2, minmax(160px, 1fr));
}
.rrhh-employee-stats-header__identity-card {
  margin:0;
  padding:.7rem .75rem;
  border:1px solid rgba(124, 156, 211, .3);
  border-radius:12px;
  background:rgba(7, 16, 33, .62);
}
.rrhh-employee-stats-header__identity-card dt { margin:0; font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; color:#97b2d4; }
.rrhh-employee-stats-header__identity-card dd { margin:.26rem 0 0; font-size:1rem; font-weight:600; color:#eff5ff; }
.rrhh-employee-stats-header__actions {
  grid-column:1 / -1;
  display:flex;
  justify-content:flex-end;
  gap:.5rem;
  flex-wrap:wrap;
}
.rrhh-employee-stats-filters {
  width:100%;
  padding:.85rem .95rem;
  border:1px solid rgba(114, 149, 204, .28);
  background:rgba(8, 17, 35, .72);
}
.rrhh-employee-stats-filters__bar {
  width:100%;
  max-width:none;
  margin:0;
  display:grid;
  gap:.7rem;
  align-items:end;
  grid-template-columns:minmax(170px, 1.1fr) minmax(170px, 1fr) minmax(170px, 1fr) minmax(180px, .85fr);
}
.rrhh-employee-stats-filters__bar label { margin:0; display:grid; gap:.3rem; }
.rrhh-employee-stats-filters__action { display:flex; align-items:stretch; }
.rrhh-employee-stats-filters__action .crm-btn { width:100%; min-height:42px; }
.rrhh-employee-stats-kpi-section { display:grid; gap:.7rem; }
.rrhh-employee-stats-section-head { display:grid; gap:.2rem; }
.rrhh-employee-stats-section-head h2 { margin:0; font-size:1.06rem; }
.rrhh-employee-stats-section-head p { margin:0; }
.rrhh-employee-stats-kpi-grid {
  display:grid;
  width:100%;
  gap:.75rem;
  grid-template-columns:repeat(4, minmax(0, 1fr));
}
.rrhh-employee-stats-kpi-card {
  padding:.95rem .98rem;
  border:1px solid rgba(120, 146, 189, .35);
  background:linear-gradient(180deg, rgba(10, 17, 36, .95), rgba(7, 12, 24, .82));
  display:grid;
  align-content:start;
  gap:.3rem;
  min-height:136px;
}
.rrhh-employee-stats-kpi-card__label { margin:0; font-size:.79rem; color:#bdd0ff; line-height:1.3; text-transform:uppercase; letter-spacing:.03em; }
.rrhh-employee-stats-kpi-card__value { margin:.1rem 0 0; font-size:1.58rem; font-weight:700; color:#ecf3ff; line-height:1.14; }
.rrhh-employee-stats-kpi-card__unit { margin:0; font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; color:#91acd1; }
.rrhh-employee-stats-summary,
.rrhh-employee-stats-daily-block {
  width:100%;
  padding:1rem 1.1rem;
  border:1px solid rgba(113, 144, 193, .28);
}
.rrhh-employee-stats-summary-grid {
  margin:.8rem 0 0;
  display:grid;
  width:100%;
  gap:.58rem;
  grid-template-columns:repeat(5, minmax(160px, 1fr));
}
.rrhh-employee-stats-summary-card {
  margin:0;
  border:1px solid rgba(119, 164, 187, .26);
  border-radius:10px;
  padding:.62rem .7rem;
  background:rgba(8, 18, 34, .42);
}
.rrhh-employee-stats-summary-card dt { margin:0; font-size:.74rem; color:#98b6ce; text-transform:uppercase; letter-spacing:.04em; line-height:1.3; }
.rrhh-employee-stats-summary-card dd { margin:.26rem 0 0; font-weight:700; color:#e8f5ff; }
.rrhh-employee-stats-daily-block__table-wrap { margin-top:.8rem; overflow:auto; border-radius:12px; width:100%; }
.rrhh-employee-stats-daily-block__table td,
.rrhh-employee-stats-daily-block__table th { white-space:nowrap; }
.rrhh-employee-stats-daily-block__empty {
  margin-top:.8rem;
  width:100%;
  border:1px dashed rgba(138, 171, 222, .33);
  background:rgba(7, 15, 31, .5);
}

@media (max-width: 1180px) {
  .rrhh-employee-stats-header {
    grid-template-columns:1fr;
  }
  .rrhh-employee-stats-header__actions { justify-content:flex-start; }
  .rrhh-employee-stats-kpi-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .rrhh-employee-stats-summary-grid { grid-template-columns:repeat(3, minmax(150px, 1fr)); }
}

@media (max-width: 860px) {
  .rrhh-employee-stats-filters__bar { grid-template-columns:repeat(2, minmax(160px, 1fr)); }
  .rrhh-employee-stats-filters__action { grid-column:1 / -1; }
}

@media (max-width: 640px) {
  .rrhh-employee-stats-header__identity,
  .rrhh-employee-stats-filters__bar,
  .rrhh-employee-stats-kpi-grid,
  .rrhh-employee-stats-summary-grid { grid-template-columns:1fr; }
}

.services-ticket-closure-form textarea{min-height:100px}
.services-ticket-closure-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.services-ticket-signature{border:1px solid #dbe4ff;border-radius:12px;padding:12px;background:rgba(17,26,48,.35);margin-bottom:12px}
.services-ticket-signature__head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}
.services-ticket-signature canvas{width:100%;max-width:100%;height:160px;border:1px dashed #7e8fbf;border-radius:8px;background:#fff;touch-action:none}
.services-ticket-confirm-check{display:flex;align-items:flex-start;gap:8px;font-size:.95rem}
.services-ticket-confirm-check input{margin-top:4px}
.services-ticket-closure-summary{border:1px solid #dbe4ff;border-radius:12px;background:rgba(9,16,35,.35);padding:12px;margin-bottom:10px}
.services-ticket-closure-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}
.services-ticket-closure-actions form{margin:0}

.ax-assets-kpi-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: .65rem;
  margin: .9rem 0 1rem;
}
.ax-assets-kpi-row article {
  border: 1px solid rgba(140, 176, 255, 0.22);
  border-radius: 12px;
  padding: .6rem .75rem;
  background: rgba(17, 29, 59, 0.38);
}
.ax-assets-kpi-row small {
  color: #a9b8d9;
  display: block;
  margin-bottom: .2rem;
}
.ax-assets-kpi-row strong {
  font-size: 1.1rem;
}
.ax-assets-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 0 0 1rem;
}
.ax-assets-context-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: .6rem;
  margin: .9rem 0 1rem;
}
.ax-assets-context-grid article {
  border: 1px solid rgba(140, 176, 255, 0.22);
  border-radius: 12px;
  background: rgba(15, 25, 49, 0.45);
  padding: .6rem .75rem;
}
.ax-assets-context-grid small {
  color: #9fb2de;
  display: block;
  margin-bottom: .2rem;
}
.ax-assets-context-grid strong {
  font-size: .98rem;
}

@media (max-width: 760px) {
  .ax-assets-kpi-row,
  .ax-assets-context-grid {
    grid-template-columns: 1fr;
  }
}

.rrhh-credentials-dashboard__head{
  align-items:flex-start;
  gap:1rem;
}
.rrhh-credentials-dashboard__actions{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  justify-content:flex-end;
}
.rrhh-credentials-dashboard__kpis{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:stretch;
  gap:.85rem;
  margin:.9rem 0 1rem;
}
.rrhh-credentials-dashboard__kpi{
  margin:0;
  padding:1rem 1.05rem;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(15,28,51,.55);
  min-height:124px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.rrhh-credentials-dashboard__kpi-label{
  margin:0;
  font-size:.8rem;
  color:var(--ax-text-secondary);
}
.rrhh-credentials-dashboard__kpi-value{
  margin:.2rem 0;
  font-size:1.6rem;
  font-weight:700;
}
.rrhh-credentials-dashboard__kpi-help{
  margin:0;
  font-size:.8rem;
  color:var(--ax-text-secondary);
}
.rrhh-credentials-dashboard__list-block{
  margin-top:.6rem;
  padding:1rem;
}
.rrhh-credentials-dashboard__list-head h2{
  margin:.2rem 0;
}
.rrhh-credentials-dashboard__cards{
  display:grid;
  grid-template-columns:repeat(2,minmax(280px,1fr));
  gap:.75rem;
}
.rrhh-credentials-dashboard__card{
  margin:0;
  padding:.9rem;
  display:flex;
  flex-direction:column;
  gap:.65rem;
}
.rrhh-credentials-dashboard__card h3{
  margin:0;
}
.rrhh-credentials-dashboard__card p{
  margin:0;
}
.rrhh-credentials-dashboard__card-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
}
@media (max-width:1024px){
  .rrhh-credentials-dashboard__kpis{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .rrhh-credentials-dashboard__cards{
    grid-template-columns:1fr;
  }
}
@media (max-width:680px){
  .rrhh-credentials-dashboard__head{
    flex-direction:column;
    align-items:stretch;
  }
  .rrhh-credentials-dashboard__actions .crm-btn{
    flex:1 1 100%;
    text-align:center;
  }
  .rrhh-credentials-dashboard__kpis{
    grid-template-columns:1fr;
  }
}
