﻿:root {
  --nucleo-ui-font: Inter, "Helvetica Neue", "Segoe UI Variable Text", "Segoe UI", system-ui, sans-serif;
  --nucleo-display-font: Inter, "Helvetica Neue", "Segoe UI Variable Display", "Segoe UI", system-ui, sans-serif;
  --cc-blue-dark: #0b1b2e;
  --cc-blue: #173a5e;
  --cc-blue-light: #3e6fa3;
  --cc-cream: #f4eadd;
  --cc-green: #1e4d3b;
  --cc-violet: #4b2e63;
  --cc-gold: #cfa45a;
  --cc-gold-muted: #b98d44;
  --cc-warm: #cfa45a;
  --ink: #142335;
  --muted: #687380;
  --soft: #f8f5ef;
  --paper: #fffaf2;
  --line: rgba(23, 58, 94, 0.14);
  --shadow: 0 18px 46px rgba(11, 27, 46, 0.10);
  --section-accent: var(--cc-blue-light);
  --section-accent-rgb: 62, 111, 163;
  --library-cover-width: clamp(11.25rem, 14.4vw, 13.95rem);
  --library-cover-height: calc(var(--library-cover-width) * 1.5);
  --radius: 8px;
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  min-height: 100vh;
}

html.is-biblioteca-surface,
html.is-biblioteca-surface body {
  background: #01040b;
  overscroll-behavior-y: none;
}

body {
  color: var(--ink);
  background:
    radial-gradient(circle at 12% 8%, rgba(207, 164, 90, 0.14), transparent 24rem),
    radial-gradient(circle at 88% 12%, rgba(62, 111, 163, 0.09), transparent 30rem),
    linear-gradient(145deg, rgba(11, 27, 46, 0.04), transparent 40%),
    linear-gradient(180deg, #fff7ea 0%, #f8efe1 48%, #f7f9fb 100%);
  font-family: var(--nucleo-ui-font);
  letter-spacing: 0;
}

button,
input {
  font: inherit;
}

button {
  cursor: pointer;
}

.is-hidden {
  display: none !important;
}

.eyebrow {
  margin: 0 0 0.45rem;
  color: var(--cc-blue-dark);
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.app-shell .eyebrow {
  color: var(--section-accent);
}

.button,
.ghost-button,
.prompt-button {
  min-height: 2.55rem;
  padding: 0.62rem 0.95rem;
  border: 1px solid transparent;
  border-radius: var(--radius);
  background: var(--cc-blue);
  color: #fff;
  text-decoration: none;
  white-space: nowrap;
  transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease, border-color 160ms ease;
}

.button:hover,
.ghost-button:hover,
.prompt-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(31, 45, 47, 0.08);
}

.button:hover {
  background: var(--cc-blue-dark);
}

.ghost-button,
.prompt-button {
  border-color: var(--line);
  color: var(--cc-blue-dark);
  background: rgba(255, 255, 255, 0.82);
}

.public-screen {
  position: relative;
  min-height: 100vh;
  overflow: hidden;
  padding: 1rem;
}

.public-screen::before,
.login-screen::before,
.app-shell::before {
  content: "";
  position: fixed;
  pointer-events: none;
  z-index: -1;
  inset: 8% -12% auto auto;
  width: 42rem;
  height: 22rem;
  border-radius: 28rem 10rem 24rem 12rem;
  background: linear-gradient(135deg, rgba(82, 194, 170, 0.18), rgba(169, 152, 220, 0.16));
  transform: rotate(-12deg);
}

.public-header {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 1rem;
  align-items: center;
  width: min(100%, 75rem);
  margin: 0 auto;
  padding: 0.75rem;
  border: 1px solid rgba(222, 235, 231, 0.85);
  border-radius: var(--radius);
  background: rgba(255, 253, 248, 0.72);
  backdrop-filter: blur(18px);
}

.public-brand,
.brand {
  display: grid;
  grid-template-columns: 2.8rem 1fr;
  gap: 0.75rem;
  align-items: center;
  border: 0;
  color: var(--ink);
  background: transparent;
  text-align: left;
  text-decoration: none;
}

.public-brand img,
.brand img {
  width: 2.8rem;
  height: 2.8rem;
  border-radius: 50%;
  box-shadow: 0 10px 26px rgba(35, 135, 201, 0.16);
}

.public-nav {
  display: flex;
  justify-content: center;
  gap: 0.25rem;
}

.public-nav button {
  min-height: 2.45rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid transparent;
  border-radius: var(--radius);
  color: #445254;
  background: transparent;
  transition: background 160ms ease, color 160ms ease;
}

.public-nav button:hover,
.public-nav button.is-active {
  color: var(--cc-blue-dark);
  background: rgba(255, 255, 255, 0.76);
}

.public-main {
  width: min(100%, 75rem);
  height: calc(100vh - 6rem);
  margin: 0 auto;
  padding: clamp(1rem, 3vw, 2.3rem) 0 0;
  overflow: hidden;
}

.public-screen.is-confirmation-route {
  min-height: 100vh;
  background:
    linear-gradient(140deg, rgba(21, 86, 74, 0.10) 0%, transparent 34%),
    linear-gradient(215deg, rgba(36, 104, 153, 0.12) 0%, transparent 38%),
    linear-gradient(180deg, #f8fbf9 0%, #eef6f5 48%, #fffdf8 100%);
}

.public-screen.is-confirmation-route::before,
.public-screen.is-confirmation-route::after,
.public-screen.is-confirmation-route .public-nav,
.public-screen.is-confirmation-route .public-login {
  display: none;
}

.public-screen.is-confirmation-route .public-header {
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  padding: 1.2rem clamp(1.2rem, 4vw, 3rem);
  border: 0;
  background: transparent;
  box-shadow: none;
}

.public-screen.is-confirmation-route .public-brand {
  pointer-events: none;
  color: #1d3a2d;
  background: rgba(255, 255, 255, 0.56);
  border: 1px solid rgba(29, 58, 45, 0.10);
  box-shadow: 0 14px 34px rgba(29, 58, 45, 0.08);
  backdrop-filter: blur(18px);
}

.public-screen.is-confirmation-route .public-main {
  width: 100%;
  height: auto;
  min-height: 100vh;
  padding: clamp(5.5rem, 9vw, 7rem) clamp(1rem, 4vw, 4rem) clamp(2rem, 5vw, 4rem);
  overflow: visible;
}

.confirmation-page {
  width: min(100%, 76rem);
  margin: 0 auto;
}

.confirmation-shell {
  border: 1px solid rgba(27, 73, 63, 0.13);
  border-radius: 1.65rem;
  background: rgba(255, 255, 255, 0.68);
  box-shadow: 0 32px 86px rgba(25, 54, 48, 0.14);
  backdrop-filter: blur(22px);
  overflow: hidden;
}

.confirmation-shell.is-missing {
  padding: clamp(2rem, 5vw, 4rem);
}

.confirmation-shell.is-missing h1,
.confirmation-hero h1 {
  margin: 0;
  color: #10241d;
  font-size: clamp(2.45rem, 6vw, 5rem);
  line-height: 0.98;
  font-weight: 760;
  letter-spacing: 0;
}

.confirmation-hero {
  position: relative;
  padding: clamp(2.4rem, 5vw, 4.8rem);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(240, 249, 246, 0.82)),
    linear-gradient(90deg, rgba(29, 107, 89, 0.11), rgba(34, 104, 166, 0.10));
  border-bottom: 1px solid rgba(27, 73, 63, 0.08);
}

.confirmation-hero p:not(.eyebrow) {
  max-width: 49rem;
  margin: 1.1rem 0 0;
  color: #39514a;
  font-size: clamp(1.14rem, 2vw, 1.55rem);
  line-height: 1.48;
}

.confirmation-token {
  display: inline-flex;
  margin-top: 1.45rem;
  padding: 0.52rem 0.78rem;
  border: 1px solid rgba(27, 98, 82, 0.16);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.76);
  color: #31584c;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.confirmation-info-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(0.85rem, 1.6vw, 1.2rem);
  padding: clamp(1.15rem, 3vw, 2rem);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.50), rgba(246, 250, 248, 0.72));
  border-bottom: 1px solid rgba(27, 73, 63, 0.08);
}

.confirmation-info-grid article {
  min-height: 8.8rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 0.8rem;
  padding: 1.18rem;
  border: 1px solid rgba(27, 73, 63, 0.11);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.70);
  box-shadow: 0 16px 38px rgba(25, 54, 48, 0.07);
}

.confirmation-info-grid span,
.confirmation-form label span,
.agreement-panel .eyebrow {
  display: block;
  color: #6f7f78;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.confirmation-info-grid strong {
  display: block;
  color: #17362c;
  font-size: 1.04rem;
  line-height: 1.35;
  font-weight: 780;
}

.confirmation-form {
  display: grid;
  gap: clamp(1.3rem, 2.2vw, 1.8rem);
  padding: clamp(1.5rem, 4vw, 3.2rem);
  background: rgba(255, 255, 255, 0.50);
}

.confirmation-form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.05rem;
}

.confirmation-form label,
.agreement-check {
  display: grid;
  gap: 0.45rem;
}

.confirmation-form input[type="text"],
.confirmation-form input[type="tel"],
.confirmation-form textarea,
.confirmation-form input:not([type]) {
  width: 100%;
  min-height: 3.35rem;
  border: 1px solid rgba(33, 71, 62, 0.13);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.82);
  color: #10241d;
  font: inherit;
  padding: 0.95rem 1rem;
  outline: none;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.82), 0 10px 24px rgba(25, 54, 48, 0.04);
  transition: border-color 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.confirmation-form input:focus,
.confirmation-form textarea:focus {
  border-color: rgba(28, 118, 93, 0.42);
  box-shadow: 0 0 0 4px rgba(28, 118, 93, 0.10);
  background: #fff;
}

.confirmation-wide {
  grid-column: 1 / -1;
}

.agreement-panel {
  display: grid;
  gap: 1rem;
  padding: clamp(1.25rem, 2.4vw, 1.8rem);
  border: 1px solid rgba(35, 101, 72, 0.18);
  border-radius: 1.25rem;
  background:
    linear-gradient(135deg, rgba(246, 251, 248, 0.92), rgba(239, 247, 249, 0.84)),
    rgba(255, 255, 255, 0.72);
  box-shadow: 0 18px 44px rgba(25, 54, 48, 0.08);
}

.agreement-panel h2 {
  margin: 0.25rem 0 0.75rem;
  color: #17362c;
  font-size: clamp(1.35rem, 2vw, 1.75rem);
  letter-spacing: 0;
}

.agreement-panel ul {
  margin: 0;
  padding-left: 1.2rem;
  color: #40564f;
  line-height: 1.65;
}

.agreement-panel details {
  color: #40564f;
}

.agreement-panel summary {
  width: fit-content;
  cursor: pointer;
  color: #155646;
  font-weight: 800;
  padding: 0.72rem 0.95rem;
  border: 1px solid rgba(21, 86, 70, 0.14);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.62);
  box-shadow: 0 10px 22px rgba(25, 54, 48, 0.06);
}

.agreement-panel details p {
  max-width: 52rem;
  margin: 0.85rem 0 0;
  color: #40564f;
  line-height: 1.6;
}

.agreement-check {
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem;
  border-top: 1px solid rgba(35, 101, 72, 0.10);
  border-radius: 0.95rem;
  background: rgba(255, 255, 255, 0.64);
  color: #17362c;
  font-weight: 800;
}

.agreement-check input,
.confirmation-choice input {
  accent-color: #1c765d;
}

.confirmation-choice {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
  border: 0;
  margin: 0;
  padding: 0;
}

.confirmation-choice legend {
  width: 100%;
  margin-bottom: 0.2rem;
  color: #6f7f78;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.confirmation-choice label {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  min-height: 4rem;
  padding: 1rem 1.05rem;
  border: 1px solid rgba(33, 71, 62, 0.13);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.76);
  color: #17362c;
  font-weight: 800;
  box-shadow: 0 12px 28px rgba(25, 54, 48, 0.05);
}

.confirmation-choice label:has(input:checked) {
  border-color: rgba(28, 118, 93, 0.34);
  background: rgba(237, 249, 244, 0.90);
  box-shadow: 0 16px 34px rgba(28, 118, 93, 0.10);
}

.confirmation-submit {
  justify-self: start;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(135deg, #10241d, #1c765d);
  color: #fff;
  padding: 1.08rem 1.7rem;
  font: inherit;
  font-weight: 900;
  cursor: pointer;
  box-shadow: 0 20px 42px rgba(16, 36, 29, 0.22);
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.confirmation-submit:hover {
  transform: translateY(-1px);
  box-shadow: 0 24px 48px rgba(16, 36, 29, 0.26);
}

.confirmation-result {
  margin: 0;
  color: #567066;
  font-weight: 700;
}

.confirmation-result.is-confirmed {
  padding: 1rem 1.1rem;
  border: 1px solid rgba(28, 118, 93, 0.18);
  border-radius: 1rem;
  background: rgba(237, 249, 244, 0.88);
  color: #155646;
  box-shadow: 0 14px 30px rgba(28, 118, 93, 0.09);
}

@media (max-width: 820px) {
  .biblioteca-starfield-diagnostic-copy {
    display: none;
  }

  .confirmation-info-grid,
  .confirmation-form-grid {
    grid-template-columns: 1fr;
  }

  .confirmation-choice {
    display: grid;
    grid-template-columns: 1fr;
  }

  .confirmation-submit {
    width: 100%;
  }

  .confirmation-shell {
    border-radius: 1.15rem;
  }

  .confirmation-info-grid,
  .confirmation-form {
    padding-inline: 1rem;
  }
}

.public-screen.is-confirmation-route {
  background:
    radial-gradient(circle at 12% 3%, rgba(52, 128, 106, 0.18), transparent 18rem),
    radial-gradient(circle at 92% 16%, rgba(43, 96, 145, 0.15), transparent 20rem),
    linear-gradient(180deg, #f9fbf8 0%, #edf5f2 46%, #fbfaf5 100%);
}

.public-screen.is-confirmation-route .public-main {
  padding: clamp(5.25rem, 12vw, 7.5rem) clamp(0.75rem, 3vw, 3rem) clamp(2.5rem, 6vw, 5rem);
}

.confirmation-page {
  width: min(100%, 46rem);
}

.confirmation-shell {
  display: grid;
  gap: 0;
  border-radius: clamp(1.15rem, 4vw, 2rem);
  background: rgba(255, 255, 255, 0.58);
  box-shadow: 0 24px 80px rgba(16, 44, 38, 0.12);
}

.confirmation-hero {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.35rem;
  padding: clamp(1.35rem, 5vw, 4.8rem);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.90), rgba(247, 251, 249, 0.62)),
    linear-gradient(140deg, rgba(30, 114, 93, 0.10), rgba(35, 82, 132, 0.08));
}

.confirmation-hero-copy {
  position: relative;
  z-index: 1;
}

.confirmation-hero h1 {
  max-width: 12ch;
  font-size: clamp(3rem, 18vw, 5.4rem);
  letter-spacing: 0;
}

.confirmation-hero p:not(.eyebrow) {
  max-width: 34rem;
  font-size: clamp(1.08rem, 4.2vw, 1.55rem);
}

.confirmation-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 1.35rem;
}

.confirmation-hero-meta span,
.confirmation-token {
  border: 1px solid rgba(24, 85, 70, 0.13);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.66);
  color: #21483d;
  backdrop-filter: blur(14px);
}

.confirmation-hero-meta span {
  padding: 0.58rem 0.78rem;
  font-size: 0.82rem;
  font-weight: 850;
}

.confirmation-hero-visual {
  position: relative;
  margin: 0;
  min-height: 0;
  border: 1px solid rgba(23, 78, 67, 0.13);
  border-radius: 1.35rem;
  overflow: hidden;
  background: #dfeae6;
  box-shadow: 0 22px 52px rgba(16, 44, 38, 0.12);
}

.confirmation-hero-visual::before {
  content: "";
  position: absolute;
  inset: -12%;
  background: inherit;
  filter: blur(18px);
  opacity: 0.42;
}

.confirmation-hero-visual img {
  position: relative;
  width: 100%;
  height: auto;
  max-height: 18rem;
  display: block;
  object-fit: contain;
}

.confirmation-section,
.confirmation-visual-section,
.confirmation-location-card,
.confirmation-parking-card {
  margin: clamp(0.85rem, 3vw, 1.5rem);
}

.confirmation-accordion {
  display: grid;
  gap: 0.85rem;
  margin: clamp(0.85rem, 3vw, 1.5rem);
}

.confirmation-disclosure {
  border: 1px solid rgba(24, 85, 70, 0.12);
  border-radius: 1.2rem;
  background: rgba(255, 255, 255, 0.62);
  box-shadow: 0 16px 42px rgba(16, 44, 38, 0.07);
  backdrop-filter: blur(18px);
  overflow: hidden;
}

.confirmation-disclosure summary {
  min-height: 4.65rem;
  display: grid;
  gap: 0.32rem;
  padding: 1rem 3rem 1rem 1rem;
  position: relative;
  cursor: pointer;
  list-style: none;
}

.confirmation-disclosure summary::-webkit-details-marker {
  display: none;
}

.confirmation-disclosure summary::after {
  content: "+";
  position: absolute;
  top: 50%;
  right: 1rem;
  width: 1.9rem;
  height: 1.9rem;
  display: grid;
  place-items: center;
  border-radius: 999px;
  transform: translateY(-50%);
  background: rgba(28, 118, 93, 0.10);
  color: #155646;
  font-weight: 900;
}

.confirmation-disclosure[open] summary::after {
  content: "âˆ’";
}

.confirmation-disclosure summary span {
  color: #6e8178;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.confirmation-disclosure summary strong {
  color: #10241d;
  font-size: clamp(1.05rem, 4vw, 1.28rem);
  line-height: 1.15;
}

.confirmation-disclosure > .confirmation-info-grid,
.confirmation-disclosure > .confirmation-recommendation-layout,
.confirmation-disclosure > .confirmation-location-card,
.confirmation-disclosure > .confirmation-parking-card,
.confirmation-data-disclosure > .confirmation-form-grid {
  margin: 0;
  padding: 0 1rem 1rem;
  box-shadow: none;
  border: 0;
  background: transparent;
  backdrop-filter: none;
}

.confirmation-section-head {
  display: grid;
  gap: 0.35rem;
  margin-bottom: 1rem;
}

.confirmation-section-head h2,
.confirmation-location-card h2,
.confirmation-parking-card h2 {
  margin: 0;
  color: #10241d;
  font-size: clamp(1.55rem, 7vw, 2.55rem);
  line-height: 1.04;
  letter-spacing: 0;
}

.confirmation-info-grid {
  grid-template-columns: 1fr;
  padding: 0;
  background: transparent;
  border: 0;
}

.confirmation-info-grid article,
.confirmation-location-card,
.confirmation-parking-card,
.confirmation-visual-section,
.confirmation-final-card {
  border: 1px solid rgba(24, 85, 70, 0.12);
  border-radius: 1.25rem;
  background: rgba(255, 255, 255, 0.64);
  box-shadow: 0 18px 48px rgba(16, 44, 38, 0.08);
  backdrop-filter: blur(18px);
}

.confirmation-info-grid article {
  min-height: auto;
  padding: 1.05rem;
}

.confirmation-info-grid span,
.confirmation-form-grid label > span,
.agreement-panel .eyebrow,
.confirmation-section-head .eyebrow,
.confirmation-location-card .eyebrow,
.confirmation-parking-card .eyebrow {
  color: #6e8178;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.confirmation-info-grid strong {
  font-size: 1.02rem;
}

.confirmation-schedule-lines {
  display: grid;
  gap: 1rem;
  color: #17362c;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1.04rem;
  line-height: 1.55;
  text-transform: none;
  letter-spacing: 0;
}

.confirmation-schedule-lines span {
  display: grid;
  gap: 0.2rem;
  padding: 0.35rem 0 1rem;
  border-bottom: 1px solid rgba(24, 85, 70, 0.10);
}

.confirmation-schedule-lines span:last-child {
  padding-bottom: 0.35rem;
  border-bottom: 0;
}

.confirmation-schedule-lines strong {
  display: block;
  color: #10241d;
  font-size: 1.08rem;
  font-weight: 900;
}

.confirmation-schedule-lines em {
  display: block;
  color: #40564f;
  font-style: normal;
  font-weight: 750;
}

.confirmation-location-card,
.confirmation-parking-card {
  display: grid;
  gap: 1rem;
  padding: 1rem;
}

.confirmation-location-card p,
.confirmation-parking-card p {
  margin: 0.65rem 0 0;
  color: #40564f;
  line-height: 1.58;
}

.confirmation-parking-card .confirmation-parking-copy {
  margin: 0;
}

.confirmation-parking-copy strong {
  color: #10241d;
  font-weight: 900;
}

.confirmation-location-card a,
.agreement-panel details a {
  width: fit-content;
  display: inline-flex;
  margin-top: 1rem;
  padding: 0.76rem 1rem;
  border: 1px solid rgba(21, 86, 70, 0.14);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  color: #155646;
  font-weight: 900;
  text-decoration: none;
}

.confirmation-location-card figure,
.confirmation-parking-card figure,
.confirmation-recommendation-layout figure {
  margin: 0;
  border-radius: 1rem;
  overflow: hidden;
  background: rgba(223, 234, 230, 0.7);
}

.confirmation-location-card img,
.confirmation-parking-card img,
.confirmation-recommendation-layout img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}

.confirmation-location-card img {
  max-height: none;
}

.confirmation-visual-section {
  padding: 1rem;
}

.confirmation-recommendation-layout {
  display: grid;
  gap: 1rem;
}

.confirmation-recommendation-layout figure {
  max-height: none;
}

.confirmation-recommendation-list {
  display: grid;
  gap: 0.75rem;
}

.confirmation-recommendation-list article {
  display: grid;
  gap: 0.25rem;
  padding: 0.9rem;
  border: 1px solid rgba(24, 85, 70, 0.10);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.58);
}

.confirmation-recommendation-list span {
  grid-row: span 2;
  width: 2rem;
  height: 2rem;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(28, 118, 93, 0.10);
  color: #155646;
  font-size: 0.72rem;
  font-weight: 900;
}

.confirmation-recommendation-list strong {
  color: #17362c;
  font-size: 1rem;
}

.confirmation-recommendation-list p {
  margin: 0;
  color: #536760;
  line-height: 1.45;
}

.confirmation-final-card {
  display: flex;
  gap: 0.95rem;
  align-items: flex-start;
  margin: clamp(0.85rem, 3vw, 1.5rem);
  padding: 1rem;
  background: rgba(237, 249, 244, 0.76);
}

.confirmation-final-card > span {
  width: 2.35rem;
  height: 2.35rem;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 999px;
  background: rgba(28, 118, 93, 0.14);
  color: #155646;
}

.confirmation-final-card svg {
  width: 1.15rem;
  height: 1.15rem;
}

.confirmation-final-card strong {
  display: block;
  color: #155646;
  font-size: 1.12rem;
}

.confirmation-final-card p {
  margin: 0.2rem 0 0;
  color: #40564f;
}

.confirmation-form {
  margin: clamp(0.85rem, 3vw, 1.5rem);
  padding: 0;
  border: 1px solid rgba(24, 85, 70, 0.12);
  border-radius: 1.4rem;
  background: rgba(255, 255, 255, 0.66);
  box-shadow: 0 18px 52px rgba(16, 44, 38, 0.08);
  backdrop-filter: blur(18px);
}

.confirmation-form-grid {
  grid-template-columns: 1fr;
}

.confirmation-data-disclosure {
  border: 0;
  border-radius: 1.2rem;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

.confirmation-form-grid label > span {
  display: block;
}

.confirmation-form input[type="text"],
.confirmation-form input[type="tel"],
.confirmation-form textarea,
.confirmation-form input:not([type]) {
  border-radius: 1.05rem;
  background: rgba(255, 255, 255, 0.78);
}

.confirmation-form input[readonly] {
  color: #5d7169;
}

.agreement-panel {
  border-radius: 1.35rem;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.82), rgba(240, 248, 245, 0.70)),
    rgba(255, 255, 255, 0.66);
  gap: 1.35rem;
}

.agreement-panel h2 {
  max-width: 22rem;
  font-size: clamp(1.55rem, 7vw, 2.4rem);
  line-height: 1.05;
  margin-bottom: 1rem;
}

.agreement-panel ul {
  display: grid;
  gap: 0.85rem;
  padding-left: 1.1rem;
  margin-top: 1.15rem;
}

.agreement-panel details {
  padding-top: 0.35rem;
}

.agreement-panel summary {
  list-style: none;
}

.agreement-panel summary::-webkit-details-marker {
  display: none;
}

.agreement-check {
  border: 1px solid rgba(21, 86, 70, 0.12);
  border-top: 1px solid rgba(21, 86, 70, 0.12);
}

.agreement-check span {
  color: #17362c;
  font-size: 0.98rem;
  line-height: 1.35;
  letter-spacing: 0;
  text-transform: none;
}

.confirmation-choice {
  grid-template-columns: 1fr;
}

.confirmation-choice label {
  justify-content: flex-start;
  min-height: 5rem;
}

.confirmation-choice label > span {
  display: grid;
  gap: 0.2rem;
  color: inherit;
  font-size: 1rem;
  letter-spacing: 0;
  text-transform: none;
}

.confirmation-choice strong {
  color: #17362c;
  font-size: 1.05rem;
}

.confirmation-choice small {
  color: #65776f;
  font-size: 0.86rem;
  font-weight: 700;
}

.confirmation-submit {
  width: 100%;
  min-height: 3.55rem;
}

.confirmation-form:has(input[name="agreementAccepted"]:not(:checked)) .confirmation-submit {
  opacity: 0.72;
}

@media (min-width: 760px) {
  .confirmation-hero {
    grid-template-columns: 1fr;
    align-items: center;
  }

  .confirmation-info-grid,
  .confirmation-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .confirmation-wide {
    grid-column: 1 / -1;
  }

  .confirmation-location-card,
  .confirmation-parking-card,
  .confirmation-recommendation-layout {
    grid-template-columns: 1fr;
    align-items: center;
  }

  .confirmation-parking-card figure {
    order: 0;
  }

  .confirmation-choice {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .confirmation-submit {
    width: fit-content;
    min-width: 16rem;
  }
}

.public-screen.is-confirmation-route,
.public-screen.is-confirmation-route *,
.public-screen.is-confirmation-route *::before,
.public-screen.is-confirmation-route *::after {
  box-sizing: border-box;
}

html:has(.public-screen.is-confirmation-route),
body:has(.public-screen.is-confirmation-route),
.public-screen.is-confirmation-route {
  max-width: 100%;
  overflow-x: hidden;
}

.public-screen.is-confirmation-route {
  width: 100%;
}

.public-screen.is-confirmation-route .public-header {
  width: 100%;
  max-width: 100%;
  padding: max(0.75rem, env(safe-area-inset-top)) max(0.75rem, env(safe-area-inset-right)) 0.75rem max(0.75rem, env(safe-area-inset-left));
}

.public-screen.is-confirmation-route .public-main {
  width: 100%;
  max-width: 100%;
  padding:
    calc(4.75rem + env(safe-area-inset-top))
    max(0.75rem, env(safe-area-inset-right))
    calc(1.5rem + env(safe-area-inset-bottom))
    max(0.75rem, env(safe-area-inset-left));
  overflow-x: hidden;
}

.confirmation-page,
.confirmation-shell,
.confirmation-hero,
.confirmation-accordion,
.confirmation-form,
.confirmation-final-card,
.confirmation-disclosure,
.confirmation-info-grid,
.confirmation-recommendation-layout,
.confirmation-location-card,
.confirmation-parking-card,
.agreement-panel,
.confirmation-choice,
.confirmation-section-head,
.confirmation-hero-copy,
.confirmation-hero-visual,
.confirmation-hero-visual img,
.confirmation-location-card img,
.confirmation-parking-card img,
.confirmation-recommendation-layout img {
  max-width: 100%;
}

.confirmation-page {
  width: 100%;
  margin-inline: auto;
}

.confirmation-shell {
  width: 100%;
  border-radius: 1.25rem;
  overflow: clip;
}

.confirmation-hero {
  gap: 1.1rem;
  padding: 1.1rem;
}

.confirmation-hero h1 {
  max-width: 100%;
  overflow-wrap: anywhere;
  font-size: clamp(2.05rem, 10vw, 3.25rem);
  line-height: 1.02;
}

.confirmation-hero p:not(.eyebrow) {
  max-width: 100%;
  font-size: clamp(1rem, 4vw, 1.22rem);
  line-height: 1.5;
}

.confirmation-hero p strong {
  color: #10241d;
  font-weight: 900;
}

.confirmation-hero-meta {
  max-width: 100%;
  gap: 0.45rem;
}

.confirmation-hero-meta span,
.confirmation-token {
  max-width: 100%;
  min-width: 0;
  overflow-wrap: anywhere;
}

.confirmation-hero-visual {
  width: calc(100% + 0.4rem);
  margin-inline: -0.2rem;
  border-radius: 1.2rem;
  box-shadow: 0 18px 42px rgba(16, 44, 38, 0.10);
}

.confirmation-hero-visual img {
  width: 100%;
  max-height: none;
  object-fit: contain;
}

.confirmation-accordion,
.confirmation-form,
.confirmation-final-card {
  margin: 0.8rem;
}

.confirmation-disclosure {
  border-radius: 1.05rem;
}

.confirmation-disclosure summary {
  min-height: 3.9rem;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.7rem;
  padding: 0.85rem 3rem 0.85rem 0.85rem;
}

.confirmation-disclosure summary span {
  width: 1.9rem;
  height: 1.9rem;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(28, 118, 93, 0.10);
  color: #155646;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: none;
}

.confirmation-disclosure summary strong {
  min-width: 0;
  font-size: 1.05rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.confirmation-disclosure summary::after {
  right: 0.8rem;
  width: 1.55rem;
  height: 1.55rem;
  background: rgba(16, 36, 29, 0.06);
}

.confirmation-disclosure > .confirmation-info-grid,
.confirmation-disclosure > .confirmation-recommendation-layout,
.confirmation-disclosure > .confirmation-location-card,
.confirmation-disclosure > .confirmation-parking-card,
.confirmation-data-disclosure > .confirmation-form-grid {
  padding: 0 0.85rem 0.85rem;
}

.confirmation-info-grid {
  gap: 0.7rem;
}

.confirmation-info-grid article,
.confirmation-recommendation-list article,
.confirmation-location-card,
.confirmation-parking-card,
.agreement-panel {
  border-radius: 0.95rem;
}

.confirmation-location-card,
.confirmation-parking-card,
.confirmation-recommendation-layout {
  grid-template-columns: minmax(0, 1fr);
}

.confirmation-location-card figure,
.confirmation-parking-card figure,
.confirmation-recommendation-layout figure {
  width: 100%;
  border-radius: 0.9rem;
}

.confirmation-location-card img,
.confirmation-parking-card img,
.confirmation-recommendation-layout img {
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

.confirmation-section-head {
  margin-bottom: 0.8rem;
}

.confirmation-section-head h2 {
  font-size: clamp(1.35rem, 6vw, 2rem);
}

.confirmation-form {
  display: grid;
  gap: 0.85rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

.confirmation-data-disclosure {
  border: 1px solid rgba(24, 85, 70, 0.12);
  border-radius: 1.05rem;
  background: rgba(255, 255, 255, 0.62);
  box-shadow: 0 16px 42px rgba(16, 44, 38, 0.07);
  backdrop-filter: blur(18px);
}

.agreement-panel {
  margin: 0;
  border: 1px solid rgba(24, 85, 70, 0.12);
  box-shadow: 0 16px 42px rgba(16, 44, 38, 0.07);
  backdrop-filter: blur(18px);
}

.confirmation-form-grid {
  gap: 0.85rem;
}

.confirmation-form input[type="text"],
.confirmation-form input[type="tel"],
.confirmation-form textarea,
.confirmation-form input:not([type]) {
  min-width: 0;
  font-size: 1rem;
}

.agreement-panel {
  padding: 1rem;
}

.agreement-panel h2 {
  max-width: 100%;
  font-size: clamp(1.35rem, 6.4vw, 2rem);
}

.agreement-panel ul {
  padding-left: 1rem;
}

.agreement-panel summary,
.agreement-panel details a,
.confirmation-location-card a {
  max-width: 100%;
  white-space: normal;
}

.agreement-check {
  grid-template-columns: auto minmax(0, 1fr);
}

.confirmation-choice {
  gap: 0.75rem;
  min-width: 0;
}

.confirmation-choice label {
  min-width: 0;
  min-height: 4.45rem;
  padding: 0.9rem;
  border-radius: 0.95rem;
}

.confirmation-choice label > span {
  min-width: 0;
}

.confirmation-choice small {
  line-height: 1.3;
}

.confirmation-submit {
  width: 100%;
  min-width: 0;
  min-height: 3.4rem;
}

@media (min-width: 760px) {
  .public-screen.is-confirmation-route .public-main {
    padding-inline: 1.25rem;
  }

  .confirmation-page {
    width: min(100%, 43rem);
  }

  .confirmation-hero {
    padding: 1.35rem;
  }

  .confirmation-hero h1 {
    font-size: clamp(2.7rem, 5.8vw, 3.8rem);
  }

  .confirmation-hero-visual {
    width: 100%;
    margin-inline: 0;
  }

  .confirmation-accordion,
  .confirmation-form,
  .confirmation-final-card {
    margin: 1rem;
  }

  .confirmation-info-grid,
  .confirmation-form-grid,
  .confirmation-choice {
    grid-template-columns: minmax(0, 1fr);
  }

  .confirmation-submit {
    width: 100%;
    min-width: 0;
  }
}

.public-screen.is-confirmation-route {
  --confirmation-font: Inter, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, Arial, sans-serif;
  --confirmation-display-font: Inter, -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, Arial, sans-serif;
  font-family: var(--confirmation-font);
  font-feature-settings: "kern" 1, "liga" 1, "calt" 1;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

.public-screen.is-confirmation-route .public-brand strong {
  font-family: var(--confirmation-display-font);
  font-size: clamp(0.98rem, 4vw, 1.18rem);
  font-weight: 780;
  line-height: 1.05;
  letter-spacing: 0;
}

.confirmation-hero h1,
.confirmation-section-head h2,
.agreement-panel h2,
.confirmation-location-card h2,
.confirmation-parking-card h2 {
  font-family: var(--confirmation-display-font);
  font-weight: 780;
  letter-spacing: 0;
}

.confirmation-hero h1 {
  font-size: clamp(2rem, 9vw, 3rem);
}

.confirmation-hero p:not(.eyebrow) {
  color: #314b42;
  font-size: clamp(1rem, 3.7vw, 1.14rem);
  font-weight: 480;
  line-height: 1.52;
  letter-spacing: 0;
}

.confirmation-hero p strong {
  font-weight: 780;
}

.confirmation-disclosure summary strong,
.confirmation-choice strong,
.confirmation-final-card strong {
  font-family: var(--confirmation-display-font);
  font-weight: 770;
  letter-spacing: 0;
}

.confirmation-disclosure summary strong {
  color: #10241d;
  font-size: 1.12rem;
  line-height: 1.12;
}

.confirmation-disclosure summary {
  letter-spacing: 0;
}

.confirmation-disclosure summary span {
  font-size: 0.7rem;
  font-weight: 780;
  letter-spacing: 0;
}

.confirmation-info-grid span,
.confirmation-form-grid label > span,
.agreement-panel .eyebrow,
.confirmation-section-head .eyebrow,
.confirmation-location-card .eyebrow,
.confirmation-parking-card .eyebrow,
.confirmation-choice legend {
  color: #596d65;
  font-size: 0.74rem;
  font-weight: 680;
  letter-spacing: 0;
  text-transform: none;
}

.confirmation-form-grid label {
  gap: 0.5rem;
}

.confirmation-info-grid strong,
.confirmation-location-card p,
.confirmation-parking-card p,
.confirmation-recommendation-list p,
.agreement-panel li,
.agreement-panel details p,
.agreement-check span,
.confirmation-choice small,
.confirmation-result {
  font-family: var(--confirmation-font);
  letter-spacing: 0;
}

.confirmation-info-grid strong {
  color: #10241d;
  font-size: 1.04rem;
  font-weight: 720;
  line-height: 1.42;
}

.confirmation-schedule-lines {
  font-family: var(--confirmation-font);
  font-size: 1rem;
  line-height: 1.58;
}

.confirmation-schedule-lines strong {
  font-family: var(--confirmation-display-font);
  font-size: 1.04rem;
  font-weight: 790;
}

.confirmation-schedule-lines em,
.confirmation-recommendation-list p,
.confirmation-location-card p,
.confirmation-parking-card p {
  color: #3f554d;
  font-weight: 540;
}

.confirmation-form input[type="text"],
.confirmation-form input[type="tel"],
.confirmation-form textarea,
.confirmation-form input:not([type]) {
  font-family: var(--confirmation-font);
  font-weight: 520;
  letter-spacing: 0;
}

.agreement-panel h2 {
  font-size: clamp(1.42rem, 5.7vw, 1.95rem);
  line-height: 1.06;
}

.agreement-panel li {
  color: #3f554d;
  font-size: 0.98rem;
  font-weight: 520;
  line-height: 1.52;
}

.agreement-panel summary,
.agreement-panel details a,
.confirmation-location-card a,
.confirmation-submit {
  font-family: var(--confirmation-font);
  font-weight: 760;
  letter-spacing: 0;
}

.confirmation-submit {
  font-size: 1rem;
  letter-spacing: 0.005em;
}

@media (min-width: 760px) {
  .confirmation-hero h1 {
    font-size: clamp(2.45rem, 5vw, 3.45rem);
  }
}

.public-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(18rem, 0.72fr);
  gap: clamp(1rem, 4vw, 3rem);
  align-items: center;
  min-height: 42vh;
}

.hero-text h1 {
  max-width: 43rem;
  margin: 0;
  font-size: clamp(2.05rem, 5vw, 4.4rem);
  font-weight: 720;
  line-height: 1.03;
}

.hero-text p {
  max-width: 35rem;
  color: var(--muted);
  font-size: 1.08rem;
  line-height: 1.7;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.2rem;
}

.public-orbit {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.8rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.84), rgba(246, 250, 247, 0.7)),
    linear-gradient(90deg, rgba(35, 135, 201, 0.08) 1px, transparent 1px),
    linear-gradient(rgba(82, 194, 170, 0.08) 1px, transparent 1px);
  background-size: auto, 2.4rem 2.4rem, 2.4rem 2.4rem;
  box-shadow: var(--shadow);
}

.public-orbit span {
  min-height: 5rem;
  display: grid;
  place-items: center;
  border: 1px solid rgba(222, 235, 231, 0.9);
  border-radius: var(--radius);
  background: rgba(255, 253, 248, 0.82);
  color: #3f5052;
  font-weight: 700;
}

.public-card-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.9rem;
  margin-top: clamp(1rem, 3vh, 2rem);
}

.public-card,
.card {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 12px 32px rgba(31, 45, 47, 0.05);
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.public-card {
  min-height: 12rem;
  padding: 1rem;
  color: var(--ink);
  text-align: left;
}

.public-card:hover,
.card:hover {
  transform: translateY(-2px);
  border-color: rgba(var(--section-accent-rgb), 0.24);
  box-shadow: var(--shadow);
}

.public-card h2,
.public-detail-card h1 {
  margin: 0.7rem 0 0.45rem;
  font-size: 1.18rem;
}

.public-card p,
.public-detail-card p,
.card p,
.panel p,
.editorial-block p,
.section-heading p,
.list-row p {
  color: var(--muted);
  line-height: 1.58;
}

.public-icon,
.card-icon {
  display: inline-grid;
  place-items: center;
  width: 2.3rem;
  height: 2.3rem;
  border-radius: var(--radius);
  background:
    linear-gradient(145deg, rgba(var(--section-accent-rgb), 0.11), rgba(207, 164, 90, 0.08));
  color: var(--section-accent);
  font-weight: 800;
}

.accent-green {
  border-top: 3px solid var(--cc-green);
}

.accent-blue {
  border-top: 3px solid var(--cc-blue);
}

.accent-violet {
  border-top: 3px solid var(--cc-violet);
}

.accent-aqua {
  border-top: 3px solid var(--cc-blue-light);
}

.accent-warm {
  border-top: 3px solid var(--cc-warm);
}

.public-detail {
  height: 100%;
  display: grid;
  place-items: center;
  gap: 1rem;
}

.public-detail-card {
  width: min(100%, 42rem);
  padding: clamp(1.4rem, 4vw, 2.4rem);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.84);
  box-shadow: var(--shadow);
}

.public-detail-card h1 {
  font-size: clamp(2rem, 5vw, 3.8rem);
  line-height: 1.02;
}

.login-screen {
  position: relative;
  height: 100vh;
  overflow: hidden;
  display: grid;
  place-items: center;
  padding: 1.2rem;
  background:
    radial-gradient(circle at 50% 15%, rgba(62, 111, 163, 0.18), transparent 28rem),
    radial-gradient(circle at 12% 86%, rgba(82, 194, 170, 0.08), transparent 22rem),
    linear-gradient(180deg, #020b16 0%, #061426 54%, #020813 100%);
}

.back-public {
  position: fixed;
  z-index: 3;
  top: 1rem;
  left: 1rem;
}

.login-layout {
  display: grid;
  grid-template-columns: minmax(20rem, 0.72fr) minmax(24rem, 1fr);
  gap: 1rem;
  width: min(100%, 66rem);
  max-height: calc(100vh - 2.4rem);
}

.app-auth-layout {
  grid-template-columns: minmax(18rem, 26rem);
  justify-content: center;
  width: min(100%, 28rem);
  transform: scale(0.76);
  transform-origin: center;
}

.login-panel,
.login-features,
.panel,
.editorial-block,
.chat-shell,
.person-card {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.84);
  box-shadow: var(--shadow);
  backdrop-filter: blur(16px);
}

.login-panel {
  display: grid;
  align-content: center;
  padding: clamp(1.2rem, 3vw, 2rem);
}

.app-auth-panel {
  gap: 1.1rem;
  border-color: rgba(152, 203, 255, 0.16);
  border-radius: 0.8125rem;
  background:
    linear-gradient(180deg, rgba(9, 25, 45, 0.88), rgba(4, 15, 29, 0.92));
  color: #edf6ff;
  box-shadow: 0 28px 70px rgba(0, 0, 0, 0.34);
}

.login-brand {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.9rem;
  align-items: center;
  text-align: center;
}

.login-brand img {
  width: 3.6rem;
  height: 3.6rem;
  border-radius: 50%;
  box-shadow: 0 10px 26px rgba(35, 135, 201, 0.18);
}

.login-brand h1,
.topbar h1,
.dashboard-intro h2,
.section-heading h2,
.editorial-block h2 {
  margin: 0;
  font-family: var(--nucleo-display-font);
  font-weight: 720;
  line-height: 1.08;
}

.login-brand h1 {
  font-size: clamp(1.42rem, 2.4vw, 2rem);
  font-weight: 560;
}

.app-auth-panel .eyebrow {
  color: rgba(152, 203, 255, 0.68);
}

.app-auth-panel .login-brand h1 {
  color: #f4f9ff;
  font-weight: 540;
}

.login-copy,
.form-note {
  color: var(--muted);
  line-height: 1.58;
}

.login-form,
.registration-form {
  display: grid;
  gap: 0.8rem;
}

.login-form label,
.registration-form label {
  display: grid;
  gap: 0.35rem;
  color: #3e4b4d;
  font-size: 0.88rem;
  font-weight: 650;
}

.app-auth-panel .login-form label {
  color: rgba(226, 240, 255, 0.84);
  font-weight: 620;
}

.login-form input,
.registration-form input,
.chat-compose input {
  width: 100%;
  min-height: 2.75rem;
  padding: 0 0.8rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  color: var(--ink);
  background: #fff;
  outline: 0;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.app-auth-panel .login-form input {
  border-color: rgba(152, 203, 255, 0.18);
  color: #edf6ff;
  background: rgba(1, 9, 19, 0.42);
}

.app-auth-panel .login-form input::placeholder {
  color: rgba(226, 240, 255, 0.34);
}

.login-form input:focus,
.registration-form input:focus,
.chat-compose input:focus {
  border-color: rgba(35, 135, 201, 0.55);
  box-shadow: 0 0 0 3px rgba(35, 135, 201, 0.10);
}

.form-note.is-error {
  color: #9b352e;
}

.app-auth-panel .form-note {
  min-height: 1.35rem;
  color: rgba(226, 240, 255, 0.58);
  font-size: 0.86rem;
  text-align: center;
}

.app-auth-panel .form-note.is-error {
  color: #ffb5ad;
}

.app-auth-panel .form-note.is-success {
  padding: 0.78rem 0.9rem;
  border: 1px solid rgba(138, 214, 244, 0.24);
  border-radius: 0.85rem;
  color: rgba(231, 248, 255, 0.94);
  background:
    radial-gradient(circle at 12% 18%, rgba(101, 203, 239, 0.16), transparent 40%),
    rgba(20, 83, 119, 0.2);
  box-shadow: 0 0.8rem 2.2rem rgba(1, 18, 34, 0.16);
}

.auth-divider {
  display: grid;
  place-items: center;
  margin: 0.1rem 0;
}

.auth-divider span {
  width: min(100%, 13rem);
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(152, 203, 255, 0.28), transparent);
}

.auth-secondary-action {
  min-height: 2.3rem;
  border: 0;
  color: rgba(226, 240, 255, 0.78);
  background: transparent;
  transition: color 160ms ease, opacity 160ms ease;
}

.auth-inline-action {
  justify-self: center;
  border: 0;
  padding: 0;
  color: rgba(152, 203, 255, 0.72);
  background: transparent;
  font-size: 0.84rem;
  font-weight: 680;
  transition: color 160ms ease, opacity 160ms ease;
}

.auth-secondary-action:hover,
.auth-inline-action:hover {
  color: #ffffff;
  box-shadow: none;
  transform: none;
}

.local-dev-login-controls {
  display: grid;
  justify-items: center;
  gap: 0.15rem;
  margin-top: -0.35rem;
}

.local-dev-login-controls.is-hidden {
  display: none;
}

.local-dev-login-button {
  color: rgba(180, 220, 255, 0.88);
  font-weight: 680;
}

.local-dev-login-button:disabled {
  opacity: 0.38;
  cursor: progress;
}

.local-dev-login-controls small {
  color: rgba(152, 203, 255, 0.42);
  font-size: 0.66rem;
  letter-spacing: 0;
}

.login-features {
  padding: clamp(1.2rem, 3vw, 1.8rem);
}

.login-features h2 {
  margin: 0 0 1rem;
  font-size: 1.35rem;
}

.feature-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
}

.mini-feature {
  min-height: 4.8rem;
  display: grid;
  grid-template-columns: 2rem 1fr;
  gap: 0.7rem;
  align-items: center;
  padding: 0.8rem;
  border: 1px solid rgba(222, 235, 231, 0.92);
  border-radius: var(--radius);
  background: rgba(255, 253, 248, 0.78);
}

.mini-feature span {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: var(--radius);
  background: rgba(82, 194, 170, 0.12);
  color: var(--cc-blue-dark);
  font-weight: 800;
}

.mini-feature strong {
  font-size: 0.92rem;
}

.app-shell {
  position: relative;
  display: grid;
  grid-template-columns: 7.35rem minmax(0, 1fr);
  height: 100vh;
  overflow: visible;
  transition: grid-template-columns 380ms cubic-bezier(0.22, 1, 0.36, 1);
}

.app-shell.is-route-inicio {
  --section-accent: var(--cc-gold);
  --section-accent-rgb: 207, 164, 90;
}

.app-shell.is-route-nueva-ficha {
  --section-accent: #236548;
  --section-accent-rgb: 35, 101, 72;
}

.app-shell.is-route-biblioteca {
  --section-accent: var(--cc-blue-dark);
  --section-accent-rgb: 11, 27, 46;
}

.app-shell.is-route-comunidad {
  --section-accent: var(--cc-blue-light);
  --section-accent-rgb: 62, 111, 163;
}

.app-shell.is-route-calendario {
  --section-accent: var(--cc-blue);
  --section-accent-rgb: 23, 58, 94;
}

.app-shell.is-route-oficinas {
  --section-accent: #236548;
  --section-accent-rgb: 35, 101, 72;
}

.app-shell.is-route-asistente {
  --section-accent: var(--cc-violet);
  --section-accent-rgb: 75, 46, 99;
}

.app-shell.is-sidebar-collapsed {
  grid-template-columns: 4.65rem minmax(0, 1fr);
}

.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  padding: 1rem 0.72rem;
  border-right: 1px solid var(--line);
  background:
    linear-gradient(180deg, rgba(255, 250, 242, 0.94), rgba(244, 234, 221, 0.76)),
    linear-gradient(145deg, rgba(11, 27, 46, 0.045), transparent 46%);
  backdrop-filter: blur(18px);
  overflow: visible;
  transition: width 380ms cubic-bezier(0.22, 1, 0.36, 1), padding 380ms cubic-bezier(0.22, 1, 0.36, 1), opacity 320ms ease, transform 380ms cubic-bezier(0.22, 1, 0.36, 1), background 380ms ease, border-color 380ms ease, box-shadow 380ms ease;
}

.app-shell.is-sidebar-collapsed .sidebar {
  align-items: center;
  gap: 0.7rem;
  padding: 0.72rem 0.55rem;
}

.sidebar-head {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.62rem;
  align-items: center;
  justify-items: center;
  width: 100%;
  transition: grid-template-columns 320ms cubic-bezier(0.22, 1, 0.36, 1), gap 320ms ease;
}

.brand {
  width: 3rem;
  grid-template-columns: 1fr;
  justify-items: center;
  gap: 0;
}

.brand span {
  display: none;
}

.app-shell.is-sidebar-collapsed .sidebar-head {
  grid-template-columns: 1fr;
  justify-items: center;
  gap: 0;
}

.app-shell.is-sidebar-collapsed .brand {
  display: none;
}

.sidebar-collapse {
  display: grid;
  place-items: center;
  gap: 0.22rem;
  width: 2.45rem;
  height: 2.45rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.86);
  color: var(--cc-blue-dark);
  transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.sidebar-collapse:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(31, 45, 47, 0.06);
}

.sidebar-collapse span {
  display: block;
  width: 1.05rem;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
}

.brand strong {
  display: block;
  font-weight: 750;
}

.brand small {
  display: block;
  margin-top: 0.12rem;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.35;
}

.brand span {
  transition: opacity 240ms ease, max-width 320ms ease;
}

.nav {
  display: grid;
  gap: 0.42rem;
  overflow: visible;
  justify-items: center;
  padding-right: 0;
  width: 100%;
  transition: gap 320ms ease;
}

.sidebar-footer {
  width: 100%;
  display: grid;
  justify-items: center;
  margin-top: auto;
  padding-top: 0.75rem;
}

.nav-item {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  justify-items: center;
  gap: 0.28rem;
  align-items: center;
  width: 5rem;
  min-height: 4.55rem;
  padding: 0.58rem 0.36rem;
  border: 1px solid transparent;
  border-radius: 0.9rem;
  color: #415052;
  background: transparent;
  text-align: center;
  transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.app-shell.is-sidebar-collapsed .nav {
  gap: 0.16rem;
  justify-items: center;
  padding-right: 0;
  margin-top: 0.2rem;
}

.app-shell.is-sidebar-collapsed .sidebar-footer {
  padding-top: 0.35rem;
}

.app-shell.is-sidebar-collapsed .nav-item {
  width: 2.55rem;
  min-height: 2.35rem;
  grid-template-columns: 1fr;
  justify-items: center;
  gap: 0;
  padding: 0.34rem;
  border-radius: 10px;
}

.app-shell.is-route-oficinas .sidebar {
  border-color: rgba(95, 156, 214, 0.24);
  background:
    radial-gradient(circle at 90% 0%, rgba(95, 156, 214, 0.24), transparent 16rem),
    linear-gradient(180deg, rgba(8, 30, 54, 0.97), rgba(4, 18, 34, 0.95)),
    linear-gradient(145deg, rgba(207, 164, 90, 0.08), transparent 48%);
  box-shadow: 18px 0 54px rgba(3, 12, 24, 0.30);
}

.app-shell.is-route-asistente .sidebar {
  border-color: rgba(165, 128, 194, 0.22);
  background:
    radial-gradient(circle at 88% 0%, rgba(165, 128, 194, 0.22), transparent 16rem),
    linear-gradient(180deg, rgba(31, 18, 43, 0.97), rgba(16, 9, 25, 0.95)),
    linear-gradient(145deg, rgba(207, 164, 90, 0.07), transparent 48%);
  box-shadow: 18px 0 54px rgba(10, 5, 16, 0.30);
}

.app-shell.is-route-oficinas .brand strong,
.app-shell.is-route-oficinas .nav-item,
.app-shell.is-route-oficinas .sidebar-footer .nav-item,
.app-shell.is-route-asistente .brand strong,
.app-shell.is-route-asistente .nav-item,
.app-shell.is-route-asistente .sidebar-footer .nav-item {
  color: rgba(255, 250, 242, 0.88);
}

.app-shell.is-route-oficinas .brand small,
.app-shell.is-route-asistente .brand small {
  color: rgba(255, 250, 242, 0.58);
}

.app-shell.is-route-oficinas .sidebar-collapse,
.app-shell.is-route-asistente .sidebar-collapse {
  color: rgba(255, 250, 242, 0.88);
  background: rgba(255, 250, 242, 0.08);
  border-color: rgba(255, 250, 242, 0.16);
}

.app-shell.is-route-oficinas .nav-icon {
  color: rgba(146, 194, 232, 0.88);
}

.app-shell.is-route-asistente .nav-icon {
  color: rgba(199, 171, 222, 0.86);
}

.app-shell.is-route-oficinas .nav-item:hover,
.app-shell.is-route-oficinas .nav-item.is-active,
.app-shell.is-route-oficinas .sidebar-footer .nav-item:hover,
.app-shell.is-route-oficinas .sidebar-footer .nav-item.is-active {
  color: rgba(255, 250, 242, 0.96);
  border-color: rgba(95, 156, 214, 0.38);
  background:
    linear-gradient(135deg, rgba(95, 156, 214, 0.20), rgba(255, 250, 242, 0.08));
  box-shadow: 0 12px 30px rgba(3, 12, 24, 0.30);
}

.app-shell.is-route-asistente .nav-item:hover,
.app-shell.is-route-asistente .nav-item.is-active,
.app-shell.is-route-asistente .sidebar-footer .nav-item:hover,
.app-shell.is-route-asistente .sidebar-footer .nav-item.is-active {
  color: rgba(255, 250, 242, 0.96);
  border-color: rgba(165, 128, 194, 0.38);
  background:
    linear-gradient(135deg, rgba(165, 128, 194, 0.18), rgba(255, 250, 242, 0.08));
  box-shadow: 0 12px 30px rgba(10, 5, 16, 0.30);
}

.app-shell.is-route-oficinas .nav-item:hover .nav-icon,
.app-shell.is-route-oficinas .nav-item.is-active .nav-icon {
  color: #cfa45a;
}

.app-shell.is-route-asistente .nav-item:hover .nav-icon,
.app-shell.is-route-asistente .nav-item.is-active .nav-icon {
  color: #d8b46f;
}

.app-shell.is-sidebar-collapsed .nav-label {
  width: 0;
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
}

.app-shell.is-sidebar-collapsed .nav-item::after {
  content: attr(data-tooltip);
  position: absolute;
  z-index: 80;
  top: 50%;
  left: calc(100% + 0.65rem);
  min-width: max-content;
  padding: 0.42rem 0.62rem;
  border: 1px solid rgba(23, 58, 94, 0.14);
  border-radius: 8px;
  color: var(--ink);
  background: rgba(255, 250, 242, 0.96);
  box-shadow: 0 14px 34px rgba(11, 27, 46, 0.12);
  font-size: 0.8rem;
  font-weight: 720;
  opacity: 0;
  pointer-events: none;
  transform: translate(0.35rem, -50%);
  transition: opacity 180ms ease, transform 180ms ease;
}

.app-shell.is-sidebar-collapsed .nav-item:hover::after,
.app-shell.is-sidebar-collapsed .nav-item:focus-visible::after {
  opacity: 1;
  transform: translate(0, -50%);
}

.nav-icon {
  display: inline-grid;
  place-items: center;
  width: 2.1rem;
  height: 2.1rem;
  color: rgba(185, 141, 68, 0.74);
  transition: color 160ms ease, transform 160ms ease;
}

.nav-icon svg,
.card-icon svg,
.topbar-icon-button svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.nav-icon svg {
  width: 1.32rem;
  height: 1.32rem;
}

.nav-item.is-frequent-module:not(.is-active) {
  border-color: rgba(207, 164, 90, 0.18);
  background:
    linear-gradient(145deg, rgba(207, 164, 90, 0.06), rgba(255, 255, 255, 0.04));
}

.nav-label {
  min-width: 0;
  max-width: 4.6rem;
  color: inherit;
  font-size: 0.67rem;
  font-weight: 750;
  line-height: 1.12;
  text-align: center;
  transition: opacity 240ms ease, max-width 320ms ease;
}

.nav-item:hover,
.nav-item.is-active {
  border-color: rgba(var(--section-accent-rgb), 0.18);
  background:
    linear-gradient(135deg, rgba(var(--section-accent-rgb), 0.08), rgba(255, 250, 242, 0.86));
  box-shadow: 0 10px 24px rgba(11, 27, 46, 0.06);
}

.nav-item.is-active {
  color: var(--cc-blue-dark);
  border-color: rgba(207, 164, 90, 0.36);
}

.nav-item:hover .nav-icon,
.nav-item.is-active .nav-icon {
  color: var(--cc-gold-muted);
  transform: translateY(-1px);
}

.avatar {
  width: 2.55rem;
  height: 2.55rem;
  object-fit: cover;
  border-radius: 50%;
}

.main-content {
  min-width: 0;
  height: 100vh;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  padding: 1rem clamp(1rem, 3vw, 2rem);
  overflow: hidden;
  background:
    radial-gradient(circle at 92% 6%, rgba(var(--section-accent-rgb), 0.075), transparent 27rem),
    linear-gradient(180deg, rgba(255, 250, 242, 0.30), rgba(255, 255, 255, 0));
}

.app-shell.is-route-inicio .main-content {
  background:
    radial-gradient(circle at 18% 8%, rgba(207, 164, 90, 0.25), transparent 27rem),
    radial-gradient(circle at 88% 14%, rgba(62, 111, 163, 0.18), transparent 30rem),
    linear-gradient(145deg, #dcc9ad 0%, #cfb98f 48%, #c4c0ad 100%);
}

.app-shell.is-route-comunidad .main-content {
  background:
    radial-gradient(circle at 18% 10%, rgba(62, 111, 163, 0.24), transparent 28rem),
    radial-gradient(circle at 92% 18%, rgba(207, 164, 90, 0.14), transparent 27rem),
    linear-gradient(145deg, #d5c7ad 0%, #c8b891 48%, #bbc6bb 100%);
}

.app-shell.is-route-calendario .main-content {
  background:
    radial-gradient(circle at 82% 10%, rgba(23, 58, 94, 0.24), transparent 29rem),
    radial-gradient(circle at 14% 84%, rgba(62, 111, 163, 0.17), transparent 25rem),
    linear-gradient(145deg, #d7c7ab 0%, #c9b488 46%, #b8c0b4 100%);
}

.app-shell.is-route-nueva-ficha .main-content {
  background:
    radial-gradient(circle at 18% 10%, rgba(35, 101, 72, 0.18), transparent 28rem),
    radial-gradient(circle at 92% 18%, rgba(207, 164, 90, 0.14), transparent 27rem),
    linear-gradient(145deg, #eef5ee 0%, #e8f0e6 46%, #dde8dd 100%);
}

.app-shell.is-route-asistente .main-content {
  background:
    radial-gradient(circle at 84% 8%, rgba(165, 128, 194, 0.28), transparent 29rem),
    radial-gradient(circle at 12% 84%, rgba(207, 164, 90, 0.10), transparent 25rem),
    linear-gradient(145deg, #24142f 0%, #3b2450 48%, #150c21 100%);
}

.topbar {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  width: min(100%, 76rem);
  margin: 0 auto 1rem;
}

.topbar-session {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin-left: auto;
}

.topbar-icon-button {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 2.65rem;
  height: 2.65rem;
  border: 1px solid rgba(207, 164, 90, 0.28);
  border-radius: var(--radius);
  color: var(--cc-gold-muted);
  background:
    linear-gradient(145deg, rgba(255, 250, 242, 0.88), rgba(255, 255, 255, 0.74));
  box-shadow: 0 10px 24px rgba(11, 27, 46, 0.055);
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease, background 160ms ease;
}

.notification-count {
  position: absolute;
  top: -0.28rem;
  right: -0.28rem;
  min-width: 1.12rem;
  height: 1.12rem;
  display: none;
  place-items: center;
  padding: 0 0.24rem;
  border: 2px solid rgba(255, 250, 242, 0.92);
  border-radius: 999px;
  color: #fffaf2;
  background: #1f7a56;
  font-size: 0.66rem;
  font-weight: 850;
  line-height: 1;
}

.topbar-notification-button.has-alerts .notification-count {
  display: grid;
}

.topbar-notification-button.has-alerts {
  color: #1f7a56;
  border-color: rgba(31, 122, 86, 0.30);
}

.topbar-notification-button,
.topbar-notification-button.has-alerts {
  border-color: transparent;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.topbar-notification-button svg {
  width: 1.18rem;
  height: 1.18rem;
}

.topbar-notification-button:hover,
.topbar-notification-button:focus-visible,
.topbar-notification-button.is-open {
  transform: none;
  border-color: transparent;
  background: transparent;
  box-shadow: none;
}

.topbar-my-fichas-button {
  color: #9a6a1e;
  border-color: rgba(189, 145, 70, 0.26);
}

.topbar-popover {
  position: absolute;
  z-index: 90;
  top: calc(100% + 0.75rem);
  right: 3.45rem;
  width: min(22rem, calc(100vw - 2rem));
}

.topbar-popover.is-hidden {
  display: none;
}

#notification-popover {
  position: fixed;
  z-index: 360;
  top: calc(max(0.8rem, env(safe-area-inset-top)) + 3.35rem);
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(0.75rem, env(safe-area-inset-bottom));
  width: min(36rem, calc(100vw - 2rem));
}

#notification-popover .notification-panel {
  border: 0;
}

body.is-notification-panel-open .documents-page :is(
  .document-search,
  .biblioteca-search-backdrop,
  .biblioteca-search-focus-results
) {
  display: none !important;
}

.notification-panel {
  height: 100%;
  display: grid;
  align-content: start;
  gap: 0.7rem;
  padding: 0.85rem;
  border: 1px solid rgba(35, 101, 72, 0.14);
  border-radius: 1rem;
  color: #0b1b2e;
  background:
    radial-gradient(circle at 100% 0%, rgba(112, 177, 130, 0.14), transparent 12rem),
    rgba(255, 255, 255, 0.96);
  box-shadow: 0 22px 52px rgba(11, 27, 46, 0.14);
  overflow-y: auto;
  box-sizing: border-box;
}

.notification-panel > strong {
  font-size: 0.92rem;
}

.notification-list {
  display: grid;
  gap: 0.55rem;
}

.notification-list p {
  margin: 0;
  color: #64717c;
  font-size: 0.86rem;
}

.notification-item {
  position: relative;
  appearance: none;
  width: 100%;
  display: grid;
  gap: 0.18rem;
  padding: 0.68rem;
  border: 1px solid rgba(31, 122, 86, 0.10);
  border-radius: 0.8rem;
  color: inherit;
  background: rgba(247, 250, 247, 0.74);
  cursor: pointer;
  font: inherit;
  text-align: left;
  transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
}

.notification-item.is-unread::after {
  content: "";
  position: absolute;
  top: 0.72rem;
  right: 0.72rem;
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: #4ba4da;
  box-shadow: 0 0 0 0.2rem rgba(75, 164, 218, 0.12);
}

.notification-item.is-read {
  opacity: 0.7;
}

.notification-item:hover {
  transform: translateY(-1px);
  border-color: rgba(31, 122, 86, 0.22);
  background: rgba(247, 250, 247, 0.94);
}

.notification-item span {
  color: #236548;
  font-size: 0.68rem;
  font-weight: 850;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.notification-item strong {
  font-size: 0.9rem;
}

.notification-item small {
  color: #64717c;
  line-height: 1.35;
}

.notification-item.type-cambio-nombre {
  border-color: rgba(141, 60, 60, 0.14);
  background: rgba(160, 70, 70, 0.07);
}

.notification-item.type-cambio-nombre span {
  color: #8d3c3c;
}

.notification-item.type-sede-tijuana {
  border-color: rgba(31, 111, 175, 0.15);
  background: rgba(31, 111, 175, 0.07);
}

.notification-item.type-sede-tijuana span {
  color: #1f6faf;
}

.pending-users-notification-panel {
  width: 100%;
  min-height: 0;
  grid-template-rows: auto minmax(0, 1fr);
  color: rgba(232, 242, 249, 0.94);
  border-color: rgba(104, 174, 222, 0.24);
  background:
    radial-gradient(circle at 82% 8%, rgba(51, 125, 180, 0.25), transparent 24rem),
    rgba(4, 24, 44, 0.88);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.42);
  -webkit-backdrop-filter: blur(24px) saturate(125%);
  backdrop-filter: blur(24px) saturate(125%);
  overflow: hidden;
}

.pending-users-notification-panel > header,
.administrative-notification-tabpanel > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
}

.pending-users-notification-panel > header div,
.administrative-notification-tabpanel > header div {
  display: grid;
  gap: 0.12rem;
}

.pending-users-notification-panel > header span,
.administrative-notification-tabpanel > header span,
.pending-users-notification-item span {
  color: rgba(150, 183, 207, 0.68);
  font-size: 0.72rem;
}

.pending-users-notification-panel button {
  border: 0;
  color: rgba(168, 211, 238, 0.9);
  background: transparent;
  font: inherit;
  font-size: 0.76rem;
  cursor: pointer;
}

.pending-users-notification-list {
  max-height: none;
  overflow: visible;
}

.administrative-notification-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.2rem;
  padding: 0.18rem;
  border: 1px solid rgba(137, 177, 207, 0.13);
  border-radius: 0.72rem;
  background: rgba(15, 35, 54, 0.48);
}

.pending-users-notification-panel .administrative-notification-tab {
  min-height: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.36rem;
  padding: 0.34rem 0.6rem;
  border-radius: 0.55rem;
  color: rgba(157, 188, 211, 0.7);
  font-size: 0.72rem;
  font-weight: 620;
  transition: color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.pending-users-notification-panel .administrative-notification-tab.is-active {
  color: rgba(233, 243, 249, 0.96);
  background: rgba(56, 89, 114, 0.44);
  box-shadow: inset 0 0 0 1px rgba(154, 195, 222, 0.1);
}

.administrative-notification-tab small {
  min-width: 1.15rem;
  padding: 0.08rem 0.28rem;
  border-radius: 999px;
  color: rgba(230, 196, 132, 0.94);
  background: rgba(230, 196, 132, 0.1);
  font-size: 0.6rem;
  font-weight: 720;
  line-height: 1.2;
  text-align: center;
}

.administrative-notification-tabpanel {
  min-width: 0;
  min-height: 0;
  display: grid;
  align-content: start;
  gap: 0.7rem;
  padding: 0 0.12rem 0.5rem;
  overflow-y: auto;
  overscroll-behavior: contain;
}

#notification-popover :is(
  .notification-panel,
  .administrative-notification-tabpanel,
  .pending-users-notification-list,
  .sophia-change-notifications.is-tab-content,
  .app-feedback-notifications
) {
  scrollbar-width: none;
}

#notification-popover :is(
  .notification-panel,
  .administrative-notification-tabpanel,
  .pending-users-notification-list,
  .sophia-change-notifications.is-tab-content,
  .app-feedback-notifications
)::-webkit-scrollbar {
  width: 0;
  height: 0;
}

#notification-popover .pending-users-notification-panel :is(
  .sophia-change-notifications.is-tab-content,
  .app-feedback-notifications
) {
  max-height: none;
  overflow: visible;
}

.pending-users-notification-list p {
  margin: 0;
  color: rgba(173, 195, 211, 0.76);
}

.pending-users-notification-list > p.is-error,
.pending-users-notification-notice.is-error {
  color: rgba(255, 171, 171, 0.92);
}

.pending-users-notification-group {
  display: grid;
  gap: 0.12rem;
}

.pending-users-notification-group + .pending-users-notification-group {
  margin-top: 0.72rem;
  padding-top: 0.72rem;
  border-top: 1px solid rgba(137, 177, 207, 0.13);
}

.pending-users-notification-group-title {
  margin-bottom: 0.28rem;
  color: rgba(156, 190, 215, 0.72);
  font-size: 0.65rem;
  font-weight: 650;
  text-transform: uppercase;
}

.pending-users-notification-item {
  display: block;
  padding: 0;
  border-bottom: 1px solid rgba(137, 177, 207, 0.11);
}

.pending-users-notification-item:last-child {
  border-bottom: 0;
}

.pending-users-notification-item summary {
  min-height: 3.25rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 0.7rem;
  align-items: center;
  gap: 0.7rem;
  padding: 0.62rem 0;
  cursor: pointer;
  list-style: none;
}

.pending-users-notification-item summary::-webkit-details-marker {
  display: none;
}

.pending-users-notification-item div {
  min-width: 0;
  display: grid;
  gap: 0.18rem;
}

.pending-users-notification-state {
  justify-items: end;
  text-align: right;
}

.pending-users-notification-state em {
  color: rgba(230, 196, 132, 0.9);
  font-size: 0.68rem;
  font-style: normal;
}

.pending-users-notification-item.is-approved .pending-users-notification-state em {
  color: rgba(154, 224, 187, 0.9);
}

.pending-users-notification-state time {
  color: rgba(141, 171, 194, 0.58);
  font-size: 0.62rem;
  white-space: nowrap;
}

.pending-users-notification-chevron {
  width: 0.42rem;
  height: 0.42rem;
  border-right: 1px solid rgba(184, 210, 228, 0.72);
  border-bottom: 1px solid rgba(184, 210, 228, 0.72);
  transform: rotate(45deg);
  transition: transform 200ms ease, opacity 200ms ease;
}

.pending-users-notification-item[open] .pending-users-notification-chevron {
  transform: rotate(225deg);
}

.pending-users-notification-details {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem 0.8rem !important;
  padding: 0.1rem 0 0.78rem;
}

.pending-users-notification-details > div {
  align-content: start;
}

.pending-users-notification-details > div > span {
  color: rgba(137, 169, 193, 0.58);
  font-size: 0.62rem;
}

.pending-users-notification-details > div > strong {
  color: rgba(220, 234, 244, 0.86);
  font-size: 0.72rem;
  font-weight: 560;
  white-space: normal;
}

.pending-users-notification-item strong,
.pending-users-notification-item span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pending-users-notification-item button {
  grid-column: 1 / -1;
  justify-self: start;
  padding: 0.42rem 0.62rem;
  border: 1px solid rgba(135, 193, 230, 0.22);
  border-radius: 0.55rem;
  background: rgba(32, 75, 105, 0.28);
}

.pending-users-notification-item button:disabled {
  cursor: wait;
  opacity: 0.55;
}

.pending-users-notification-notice {
  margin: 0;
  color: rgba(154, 224, 187, 0.9);
  font-size: 0.76rem;
}

.sophia-change-notifications { display: grid; gap: 0.4rem; margin-top: 0.72rem; padding-top: 0.72rem; border-top: 1px solid rgba(137, 177, 207, 0.13); }
.sophia-change-notifications.is-tab-content { max-height: min(24rem, 58vh); margin-top: 0; padding-top: 0; overflow-y: auto; border-top: 0; }
.sophia-change-notifications > p { margin: 0; color: rgba(173, 195, 211, 0.76); font-size: 0.78rem; }
.sophia-change-notifications > p.is-error { color: rgba(255, 171, 171, 0.92); }
.sophia-change-notification { border-bottom: 1px solid rgba(137, 177, 207, 0.11); }
.sophia-change-notification summary { display: grid; gap: 0.16rem; padding: 0.55rem 0; cursor: pointer; list-style: none; }
.sophia-change-notification summary::-webkit-details-marker { display: none; }
.sophia-change-notification summary strong { font-size: 0.78rem; font-weight: 620; }
.sophia-change-notification summary span, .sophia-change-notification-details > span { color: rgba(150, 183, 207, 0.68); font-size: 0.64rem; }
.sophia-change-notification summary .sophia-change-notification-author { color: rgba(184, 211, 229, 0.82); font-size: 0.62rem; font-weight: 650; letter-spacing: 0.025em; }
.sophia-change-notification-details { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.32rem 0.6rem; padding: 0.1rem 0 0.7rem; }
.sophia-change-notification-details > strong { font-size: 0.7rem; font-weight: 560; }
.sophia-change-notification-details > p, .sophia-change-notification-actions { grid-column: 1 / -1; margin: 0.15rem 0 0; }
.sophia-change-notification-actions { display: flex; flex-wrap: wrap; gap: 0.38rem; }
.sophia-change-notification-actions a, .sophia-change-notification-actions button { padding: 0.34rem 0.5rem; border: 1px solid rgba(135, 193, 230, 0.22); border-radius: 0.5rem; color: inherit; background: rgba(32, 75, 105, 0.28); font: inherit; font-size: 0.68rem; text-decoration: none; cursor: pointer; }

.app-feedback-notifications {
  max-height: min(24rem, 58vh);
  display: grid;
  gap: 0.38rem;
  overflow-y: auto;
}

.app-feedback-notifications > p {
  margin: 0;
  color: rgba(173, 195, 211, 0.76);
  font-size: 0.78rem;
}

.app-feedback-notification {
  border-bottom: 1px solid rgba(137, 177, 207, 0.11);
}

.app-feedback-notification summary {
  display: grid;
  gap: 0.14rem;
  padding: 0.62rem 0;
  cursor: pointer;
  list-style: none;
}

.app-feedback-notification summary::-webkit-details-marker {
  display: none;
}

.app-feedback-notification summary > span,
.app-feedback-notification summary > small {
  color: rgba(150, 183, 207, 0.68);
  font-size: 0.64rem;
}

.app-feedback-notification summary > strong {
  color: rgba(232, 242, 249, 0.94);
  font-size: 0.8rem;
}

.app-feedback-notification-thread {
  display: grid;
  gap: 0.42rem;
  padding: 0 0 0.72rem;
}

.app-feedback-notification-thread p {
  margin: 0;
  padding: 0.55rem 0.65rem;
  border-radius: 0.68rem;
  color: rgba(226, 238, 247, 0.88);
  background: rgba(45, 82, 109, 0.26);
  font-size: 0.74rem;
  line-height: 1.42;
}

.pending-users-notification-panel .app-feedback-notification-thread button {
  justify-self: end;
  padding: 0.36rem 0.52rem;
  border: 1px solid rgba(135, 193, 230, 0.2);
  border-radius: 0.5rem;
  background: rgba(32, 75, 105, 0.28);
  font-size: 0.68rem;
}

.topbar-icon-button:hover {
  transform: translateY(-1px);
  border-color: rgba(207, 164, 90, 0.44);
  background:
    linear-gradient(145deg, rgba(244, 234, 221, 0.94), rgba(255, 255, 255, 0.82));
  box-shadow: 0 14px 30px rgba(11, 27, 46, 0.08);
}

.topbar-icon-button[data-tooltip]::after {
  content: attr(data-tooltip);
  position: absolute;
  z-index: 120;
  top: calc(100% + 0.55rem);
  right: 50%;
  transform: translate(50%, -0.2rem);
  min-width: max-content;
  padding: 0.42rem 0.58rem;
  border: 1px solid rgba(23, 58, 94, 0.10);
  border-radius: 999px;
  color: #0b1b2e;
  background: rgba(255, 250, 242, 0.96);
  box-shadow: 0 14px 28px rgba(11, 27, 46, 0.11);
  font-size: 0.72rem;
  font-weight: 850;
  opacity: 0;
  pointer-events: none;
  transition: opacity 160ms ease, transform 160ms ease;
}

.topbar-icon-button[data-tooltip]:hover::after,
.topbar-icon-button[data-tooltip]:focus-visible::after {
  opacity: 1;
  transform: translate(50%, 0);
}

.top-user-button {
  display: inline-grid;
  place-items: center;
  width: 2.85rem;
  height: 2.85rem;
  align-items: center;
  min-height: 0;
  max-width: none;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: var(--ink);
  background: transparent;
  text-align: center;
  box-shadow: none;
  transition: transform 160ms ease;
}

.top-user-button:hover {
  transform: translateY(-1px);
  box-shadow: none;
}

.top-user-button img {
  width: 2.35rem;
  height: 2.35rem;
  object-fit: cover;
  border-radius: 50%;
}

.top-user-button span {
  display: none;
}

.top-user-button strong,
.top-user-button small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.top-user-button strong {
  font-size: 0.9rem;
  font-weight: 750;
}

.top-user-button small {
  margin-top: 0.08rem;
  color: var(--muted);
  font-size: 0.76rem;
}

.topbar h1 {
  margin-top: 0.08rem;
  font-size: clamp(1.45rem, 2.4vw, 2.1rem);
}

.topbar h1.is-hidden {
  display: none;
}

.topbar .eyebrow:empty {
  display: none;
}

.app-shell.is-messages-route .topbar .eyebrow {
  display: none;
}

.app-shell.is-route-oficinas .topbar h1,
.app-shell.is-route-oficinas .topbar .eyebrow,
.app-shell.is-route-asistente .topbar h1,
.app-shell.is-route-asistente .topbar .eyebrow {
  color: rgba(255, 250, 242, 0.94);
}

.app-shell.is-route-oficinas .topbar .eyebrow,
.app-shell.is-route-asistente .topbar .eyebrow {
  opacity: 0.74;
}

.app-shell.is-documents-immersive {
  grid-template-columns: 4.65rem minmax(0, 1fr);
  background: #01040b;
  transition: grid-template-columns 320ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.app-shell.is-documents-immersive.is-documents-nav-open {
  grid-template-columns: 7.35rem minmax(0, 1fr);
}

.app-shell.is-documents-immersive::before {
  display: none;
}

.app-shell.is-documents-immersive .sidebar {
  position: sticky;
  z-index: 32;
  width: auto;
  height: 100vh;
  display: flex;
  padding: 0.9rem 0.65rem;
  border-right: 1px solid rgba(126, 157, 187, 0.16);
  color: rgba(236, 245, 255, 0.88);
  background:
    radial-gradient(circle at 50% 0%, rgba(207, 164, 90, 0.10), transparent 15rem),
    radial-gradient(circle at 20% 0%, rgba(35, 135, 201, 0.16), transparent 18rem),
    linear-gradient(180deg, rgba(5, 18, 36, 0.98), rgba(2, 9, 20, 0.98));
  box-shadow: 12px 0 42px rgba(0, 0, 0, 0.22);
  opacity: 1;
  pointer-events: auto;
  transform: none;
  transition: padding 320ms cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 320ms ease, background 320ms ease;
}

.app-shell.is-documents-immersive.is-documents-nav-open .sidebar {
  padding: 1rem;
  box-shadow: 24px 0 64px rgba(0, 0, 0, 0.34);
}

.app-shell.is-documents-immersive:not(.is-documents-nav-open) .sidebar {
  align-items: center;
}

.app-shell.is-documents-immersive:not(.is-documents-nav-open) .sidebar-head {
  grid-template-columns: 1fr;
  justify-items: center;
  gap: 0.7rem;
}

.app-shell.is-documents-immersive:not(.is-documents-nav-open) .brand {
  width: 2.8rem;
  grid-template-columns: 1fr;
  gap: 0;
  justify-items: center;
}

.app-shell.is-documents-immersive:not(.is-documents-nav-open) .brand span,
.app-shell.is-documents-immersive:not(.is-documents-nav-open) .nav-label {
  width: 0;
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
}

.app-shell.is-documents-immersive:not(.is-documents-nav-open) .nav {
  width: 100%;
  justify-items: center;
  padding-right: 0;
}

.app-shell.is-documents-immersive:not(.is-documents-nav-open) .nav-item {
  width: 2.8rem;
  grid-template-columns: 1fr;
  justify-items: center;
  padding: 0.48rem;
}

.app-shell.is-documents-immersive:not(.is-documents-nav-open) .nav-icon {
  color: rgba(207, 164, 90, 0.72);
}

.app-shell.is-documents-immersive .brand,
.app-shell.is-documents-immersive .nav-item {
  color: rgba(236, 245, 255, 0.88);
}

.app-shell.is-documents-immersive .brand small,
.app-shell.is-documents-immersive .nav-icon {
  color: rgba(178, 202, 224, 0.58);
}

.app-shell.is-documents-immersive .brand img {
  box-shadow: 0 0 0 1px rgba(207, 164, 90, 0.24), 0 12px 28px rgba(0, 0, 0, 0.24);
}

.app-shell.is-documents-immersive .sidebar-collapse {
  border-color: rgba(126, 157, 187, 0.22);
  color: rgba(236, 245, 255, 0.82);
  background: rgba(9, 25, 45, 0.76);
}

.app-shell.is-documents-immersive .nav-item {
  border-color: rgba(126, 157, 187, 0.10);
  background: rgba(255, 255, 255, 0.025);
}

.app-shell.is-documents-immersive .nav-item:hover,
.app-shell.is-documents-immersive .nav-item.is-active {
  border-color: rgba(207, 164, 90, 0.34);
  background: rgba(207, 164, 90, 0.10);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.22);
}

.app-shell.is-documents-immersive .nav-item.is-active {
  color: #ffffff;
}

.app-shell.is-documents-immersive .nav-item:hover .nav-icon,
.app-shell.is-documents-immersive .nav-item.is-active .nav-icon {
  color: var(--cc-gold);
}

.app-shell.is-documents-immersive .main-content {
  position: relative;
  display: block;
  height: 100vh;
  padding: 0;
  overflow: hidden;
  background: #01040b;
}

.app-shell.is-documents-immersive .topbar {
  position: fixed;
  z-index: 30;
  top: 1rem;
  right: 1rem;
  width: auto;
  margin: 0;
  padding: 0;
  background: transparent;
}

.app-shell.is-documents-immersive .topbar-title {
  display: none;
}

.app-shell.is-documents-immersive .topbar-session {
  display: flex;
  align-items: center;
  gap: 0.48rem;
}

.app-shell.is-documents-immersive .topbar-message-button,
.app-shell.is-documents-immersive .topbar-my-fichas-button,
.app-shell.is-documents-immersive .topbar-notification-button {
  display: none;
}

.app-shell.is-documents-immersive.has-pending-users-access .topbar-notification-button.is-pending-users-mode {
  display: inline-grid;
  color: rgba(196, 220, 238, 0.82);
  border-color: rgba(126, 157, 187, 0.26);
  background: rgba(6, 16, 31, 0.72);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.22);
}

.app-shell.is-documents-immersive .topbar-notification-button.is-pending-users-mode.has-alerts {
  color: rgba(151, 215, 249, 0.98);
  border-color: rgba(106, 188, 235, 0.42);
}

.app-shell.is-documents-immersive.has-pending-users-access .topbar-notification-button.is-pending-users-mode,
.app-shell.is-documents-immersive .topbar-notification-button.is-pending-users-mode.has-alerts {
  border-color: transparent;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.app-shell.is-documents-immersive.has-pending-users-access .topbar-notification-button.is-pending-users-mode:hover,
.app-shell.is-documents-immersive.has-pending-users-access .topbar-notification-button.is-pending-users-mode:focus-visible,
.app-shell.is-documents-immersive.has-pending-users-access .topbar-notification-button.is-pending-users-mode.is-open {
  transform: none;
  border-color: transparent;
  background: transparent;
  box-shadow: none;
}

.app-shell.is-documents-immersive .top-user-button {
  width: 2.8rem;
  height: 2.8rem;
  min-height: 0;
  display: grid;
  grid-template-columns: 1fr;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.app-shell.is-documents-immersive .top-user-button img {
  width: 2.35rem;
  height: 2.35rem;
  border: 0;
}

.app-shell.is-documents-immersive .top-user-button span {
  display: none;
}

.date-pill,
.status-pill,
.tag {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0.35rem 0.7rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: #516064;
  background: rgba(255, 255, 255, 0.74);
  font-size: 0.82rem;
}

.view {
  width: min(100%, 76rem);
  min-height: 0;
  margin: 0 auto;
  overflow: auto;
  padding: 0.2rem 0 1rem;
}

.dashboard {
  height: 100%;
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 1rem;
}

.dashboard-intro {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: end;
  padding: clamp(1rem, 2vw, 1.4rem);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.74);
  box-shadow: 0 12px 32px rgba(31, 45, 47, 0.05);
}

.dashboard-intro h2 {
  font-size: clamp(1.55rem, 2.8vw, 2.35rem);
}

.dashboard-intro p {
  max-width: 35rem;
  margin: 0.55rem 0 0;
  color: var(--muted);
  line-height: 1.55;
}

.session-summary {
  min-width: 10rem;
  padding: 0.85rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(246, 250, 247, 0.9);
}

.session-summary span {
  display: block;
  color: var(--muted);
  font-size: 0.78rem;
}

.session-summary strong {
  display: block;
  margin-top: 0.15rem;
}

.dashboard-grid,
.quick-grid,
.media-grid,
.training-grid,
.profile-grid,
.people-grid,
.registration-shell,
.grid {
  display: grid;
  gap: 0.9rem;
}

.dashboard-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-content: start;
  min-height: 0;
}

.launcher-page {
  grid-template-rows: auto auto auto;
}

.launcher-intro {
  align-items: center;
}

.launcher-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.home-portal {
  height: 100%;
  min-height: 0;
  display: grid;
  align-items: center;
  justify-items: center;
}

.home-visual-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(0.9rem, 1.6vw, 1.25rem);
  width: min(100%, 74rem);
}

.home-visual-card {
  position: relative;
  grid-column: span 2;
  aspect-ratio: 16 / 10;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.62);
  border-radius: var(--radius);
  background: #f6efe2;
  box-shadow: 0 18px 42px rgba(31, 45, 47, 0.08);
  cursor: pointer;
  line-height: 0;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.home-visual-card:nth-child(4) {
  grid-column: 2 / span 2;
}

.home-visual-card:nth-child(5) {
  grid-column: 4 / span 2;
}

.home-visual-card:hover {
  transform: translateY(-3px);
  border-color: rgba(35, 135, 201, 0.26);
  box-shadow: 0 22px 54px rgba(31, 45, 47, 0.13);
}

.home-visual-card img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}

.home-control-page {
  width: min(100%, 76rem);
  display: grid;
  gap: clamp(1rem, 2vw, 1.35rem);
  padding-bottom: 1rem;
}

.home-hero-control {
  min-height: clamp(13.75rem, 25vh, 17.5rem);
  display: grid;
  grid-template-columns: minmax(22rem, 0.95fr) minmax(24rem, 1.15fr);
  align-items: center;
  gap: clamp(1rem, 2.4vw, 1.6rem);
  overflow: hidden;
  padding: clamp(1rem, 2.1vw, 1.6rem);
  border: 1px solid rgba(207, 164, 90, 0.18);
  border-radius: 1.45rem;
  background:
    radial-gradient(circle at 72% 38%, rgba(255, 255, 255, 0.90), transparent 19rem),
    radial-gradient(circle at 24% 8%, rgba(207, 164, 90, 0.16), transparent 18rem),
    linear-gradient(135deg, rgba(255, 250, 242, 0.94), rgba(240, 230, 211, 0.66));
  box-shadow: 0 28px 74px rgba(77, 59, 33, 0.12);
}

.home-hero-copy {
  position: relative;
  z-index: 2;
  display: grid;
  justify-items: start;
  gap: 0.75rem;
}

.home-hero-copy h2 {
  max-width: 34rem;
  margin: 0;
  color: #0b1b2e;
  font-size: clamp(1.95rem, 3.8vw, 3.15rem);
  line-height: 1.04;
  font-weight: 720;
}

.home-hero-copy p:not(.eyebrow) {
  max-width: 31rem;
  margin: 0;
  color: #5b6875;
  font-size: 0.98rem;
  line-height: 1.55;
}

.home-primary-action {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  min-height: 2.9rem;
  padding: 0.55rem 1.05rem 0.55rem 1.25rem;
  border: 1px solid rgba(185, 141, 68, 0.28);
  border-radius: 999px;
  color: #fffaf2;
  background: linear-gradient(145deg, #bd9146, #cfa45a);
  box-shadow: 0 18px 38px rgba(147, 103, 38, 0.22);
  font-weight: 800;
  cursor: pointer;
}

.home-primary-action svg {
  width: 1.05rem;
  height: 1.05rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.home-hero-art {
  position: relative;
  min-height: 12.75rem;
  align-self: stretch;
  border-radius: 50% 0 0 50%;
  background:
    radial-gradient(circle at 42% 62%, rgba(207, 164, 90, 0.17), transparent 8rem),
    radial-gradient(circle at 72% 35%, rgba(35, 101, 72, 0.11), transparent 12rem),
    linear-gradient(135deg, rgba(255, 255, 255, 0.74), rgba(226, 214, 195, 0.60));
}

.home-hero-mark {
  position: absolute;
  right: 9%;
  top: 32%;
  color: rgba(11, 27, 46, 0.18);
  font-size: clamp(4rem, 9vw, 7rem);
  font-weight: 650;
  letter-spacing: -0.08em;
}

.home-hero-tree {
  position: absolute;
  left: 18%;
  bottom: 20%;
  width: 7.7rem;
  height: 7.7rem;
  border-bottom: 0.35rem solid rgba(35, 101, 72, 0.42);
  border-radius: 0 0 50% 50%;
}

.home-hero-tree::before,
.home-hero-tree::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0.15rem;
  transform: translateX(-50%);
}

.home-hero-tree::before {
  width: 0.38rem;
  height: 6.5rem;
  border-radius: 999px;
  background: rgba(80, 91, 66, 0.45);
}

.home-hero-tree::after {
  width: 6.4rem;
  height: 5rem;
  bottom: 3.35rem;
  border-radius: 50%;
  background:
    radial-gradient(circle at 28% 42%, rgba(35, 101, 72, 0.34) 0 0.42rem, transparent 0.46rem),
    radial-gradient(circle at 58% 35%, rgba(207, 164, 90, 0.26) 0 0.38rem, transparent 0.42rem),
    radial-gradient(circle at 44% 68%, rgba(35, 101, 72, 0.24) 0 0.38rem, transparent 0.42rem),
    radial-gradient(circle at 74% 60%, rgba(88, 119, 75, 0.22) 0 0.36rem, transparent 0.40rem);
}

.home-control-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.75rem;
}

.home-control-card,
.home-summary-stat,
.home-panel,
.home-day-summary,
.home-quote-panel {
  border: 1px solid rgba(185, 141, 68, 0.12);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 18px 45px rgba(77, 59, 33, 0.08);
  backdrop-filter: blur(16px);
}

.home-control-card {
  position: relative;
  min-height: 12.6rem;
  display: grid;
  align-content: start;
  gap: 0.7rem;
  padding: 1rem;
  color: #0b1b2e;
  text-align: left;
  cursor: pointer;
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.home-control-card:hover {
  transform: translateY(-2px);
  border-color: rgba(var(--home-accent-rgb), 0.22);
  box-shadow: 0 24px 58px rgba(77, 59, 33, 0.12);
}

.home-control-card.accent-green,
.home-summary-stat.accent-green,
.home-activity-row.accent-green {
  --home-accent: #267654;
  --home-accent-rgb: 38, 118, 84;
}

.home-control-card.accent-violet,
.home-summary-stat.accent-violet,
.home-activity-row.accent-violet {
  --home-accent: #6452aa;
  --home-accent-rgb: 100, 82, 170;
}

.home-control-card.accent-blue,
.home-summary-stat.accent-blue,
.home-activity-row.accent-blue {
  --home-accent: #2877b8;
  --home-accent-rgb: 40, 119, 184;
}

.home-control-card.accent-gold,
.home-summary-stat.accent-gold,
.home-activity-row.accent-gold {
  --home-accent: #bd9146;
  --home-accent-rgb: 189, 145, 70;
}

.home-control-card.accent-indigo,
.home-summary-stat.accent-indigo,
.home-activity-row.accent-indigo {
  --home-accent: #5567bf;
  --home-accent-rgb: 85, 103, 191;
}

.home-control-icon,
.home-summary-icon,
.home-activity-row > span {
  display: grid;
  place-items: center;
  color: var(--home-accent);
  background: rgba(var(--home-accent-rgb), 0.13);
}

.home-control-icon {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
}

.home-control-icon svg,
.home-control-arrow svg,
.home-summary-icon svg,
.home-activity-row svg,
.home-panel-link svg {
  width: 1.35rem;
  height: 1.35rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.85;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.home-control-card strong {
  margin-top: 0.45rem;
  font-size: 1.22rem;
  line-height: 1.08;
}

.home-control-card small {
  max-width: 12rem;
  color: #5b6875;
  line-height: 1.52;
}

.home-control-arrow {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  width: 2.45rem;
  height: 2.45rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--home-accent);
  background: rgba(var(--home-accent-rgb), 0.10);
}

.home-day-summary {
  display: grid;
  gap: 0.9rem;
  padding: 1.15rem;
}

.home-day-summary h3,
.home-panel h3 {
  margin: 0;
  color: #0b1b2e;
  font-size: 1rem;
}

.home-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
}

.home-summary-stat {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: 0.85rem;
  align-items: center;
  min-height: 5.6rem;
  padding: 0.8rem;
  text-align: left;
  color: #0b1b2e;
  cursor: pointer;
}

.home-summary-icon {
  width: 2.65rem;
  height: 2.65rem;
  border-radius: 0.8rem;
}

.home-summary-stat strong {
  display: block;
  font-size: 1.55rem;
}

.home-summary-stat small,
.home-summary-stat em {
  display: block;
  color: #5b6875;
  font-size: 0.78rem;
  font-style: normal;
}

.home-summary-stat em {
  margin-top: 0.25rem;
  color: var(--home-accent);
  font-weight: 800;
}

.home-lower-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.9rem;
}

.home-panel {
  display: grid;
  gap: 0.9rem;
  padding: 1.15rem;
}

.home-panel-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
}

.home-panel-head button,
.home-panel-link {
  border: 0;
  color: #1f6faf;
  background: transparent;
  font-weight: 800;
  cursor: pointer;
}

.home-activity-list,
.home-event-list {
  display: grid;
  gap: 0.75rem;
}

.home-activity-row,
.home-event-row {
  display: grid;
  align-items: center;
  gap: 0.8rem;
}

.home-activity-row {
  grid-template-columns: 2.4rem minmax(0, 1fr) auto;
}

.home-activity-row > span {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 0.7rem;
}

.home-activity-row strong,
.home-event-row strong {
  display: block;
  color: #0b1b2e;
  font-size: 0.92rem;
}

.home-activity-row small,
.home-activity-row time,
.home-event-row small {
  color: #6a7680;
  font-size: 0.78rem;
}

.home-event-row {
  grid-template-columns: 4rem minmax(0, 1fr) auto;
}

.home-event-row time {
  display: grid;
  place-items: center;
  min-height: 3.7rem;
  border: 1px solid rgba(185, 141, 68, 0.12);
  border-radius: 0.8rem;
  background: rgba(255, 250, 242, 0.70);
  color: #0b1b2e;
  text-transform: uppercase;
}

.home-event-row time span {
  color: #bd9146;
  font-size: 0.72rem;
  font-weight: 800;
}

.home-event-pill {
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
  color: #267654;
  background: rgba(38, 118, 84, 0.12);
  font-size: 0.74rem;
  font-weight: 800;
}

.home-empty {
  margin: 0;
  color: #6a7680;
}

.home-panel-link {
  display: inline-flex;
  justify-content: space-between;
  align-items: center;
  padding: 0;
}

.home-quote-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  min-height: 6.2rem;
  padding: 1rem;
  color: #5a6876;
}

.home-quote-panel span {
  color: rgba(185, 141, 68, 0.42);
  font-size: 3rem;
  line-height: 1;
}

.home-quote-panel p {
  margin: 0;
  font-style: italic;
}

.home-quote-panel strong {
  color: #bd9146;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.activity-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
}

.activity-strip article {
  padding: 0.9rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 12px 32px rgba(31, 45, 47, 0.04);
}

.activity-strip span {
  display: block;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
}

.activity-strip strong {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.95rem;
}

.compact-section {
  padding-block: 1rem;
}

.office-page {
  position: relative;
  isolation: isolate;
  display: grid;
  align-content: start;
  gap: 1rem;
}

.office-launcher,
.office-workspace {
  height: 100%;
  min-height: 0;
  align-content: start;
  overflow-x: hidden;
  overflow-y: auto;
}

.office-access-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.6rem);
  width: min(100%, 76rem);
}

.office-image-button {
  --office-card-accent: #1f7a56;
  --office-card-accent-rgb: 31, 122, 86;
  position: relative;
  width: 100%;
  min-height: clamp(18rem, 34vh, 23rem);
  display: grid;
  align-content: space-between;
  gap: 1.1rem;
  overflow: hidden;
  padding: clamp(1.3rem, 2vw, 1.8rem);
  border: 1px solid rgba(var(--office-card-accent-rgb), 0.18);
  border-radius: 1.2rem;
  color: #0b1b2e;
  background:
    radial-gradient(circle at 22% 18%, rgba(var(--office-card-accent-rgb), 0.09), transparent 12rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(247, 250, 247, 0.82));
  box-shadow: 0 22px 48px rgba(29, 58, 45, 0.10);
  cursor: pointer;
  text-align: left;
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.office-image-button.accent-violet {
  --office-card-accent: #5b3b91;
  --office-card-accent-rgb: 91, 59, 145;
  background:
    radial-gradient(circle at 22% 18%, rgba(91, 59, 145, 0.10), transparent 12rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(250, 247, 253, 0.86));
}

.office-image-button.accent-blue {
  --office-card-accent: #1f6faf;
  --office-card-accent-rgb: 31, 111, 175;
  background:
    radial-gradient(circle at 22% 18%, rgba(31, 111, 175, 0.10), transparent 12rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(246, 250, 255, 0.86));
}

.office-image-button::after {
  content: "";
  position: absolute;
  right: -4.2rem;
  bottom: -4.7rem;
  width: 12rem;
  height: 12rem;
  border: 1px solid rgba(var(--office-card-accent-rgb), 0.16);
  border-radius: 50%;
  pointer-events: none;
}

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

.office-image-button:hover {
  transform: translateY(-2px);
  border-color: rgba(var(--office-card-accent-rgb), 0.34);
  box-shadow: 0 28px 62px rgba(29, 58, 45, 0.15);
}

.office-image-button.is-frequent-module,
.home-control-card.is-frequent-module {
  border-color: rgba(207, 164, 90, 0.28);
  box-shadow:
    0 24px 58px rgba(29, 58, 45, 0.12),
    inset 0 0 0 1px rgba(207, 164, 90, 0.10);
}

.office-action-icon {
  width: 3.8rem;
  height: 3.8rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--office-card-accent);
  background: rgba(var(--office-card-accent-rgb), 0.12);
}

.office-action-icon svg,
.office-action-arrow svg {
  width: 1.65rem;
  height: 1.65rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.office-action-copy {
  display: grid;
  gap: 0.85rem;
}

.office-action-copy strong {
  max-width: 15rem;
  font-size: clamp(1.45rem, 2vw, 1.85rem);
  line-height: 1.08;
  color: #081728;
}

.office-action-copy small {
  max-width: 16rem;
  color: #566577;
  font-size: clamp(0.95rem, 1.2vw, 1.08rem);
  line-height: 1.55;
}

.office-action-arrow {
  position: absolute;
  right: 1.35rem;
  bottom: 1.25rem;
  width: 3rem;
  height: 3rem;
  display: grid;
  place-items: center;
  border: 1px solid rgba(var(--office-card-accent-rgb), 0.14);
  border-radius: 50%;
  color: var(--office-card-accent);
  background: rgba(255, 255, 255, 0.76);
  box-shadow: 0 14px 28px rgba(20, 42, 32, 0.10);
}

.office-back-button {
  width: max-content;
  min-height: 2.85rem;
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.42rem 0.95rem 0.42rem 0.48rem;
  border: 1px solid rgba(35, 101, 72, 0.16);
  border-radius: 999px;
  color: #0b1b2e;
  background: rgba(255, 255, 255, 0.76);
  box-shadow: 0 14px 30px rgba(29, 58, 45, 0.09);
  font-weight: 750;
  cursor: pointer;
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.app-shell.is-route-oficinas .office-back-button {
  position: fixed;
  top: 1.35rem;
  left: calc(4.65rem + clamp(1rem, 2vw, 1.55rem));
  z-index: 48;
}

.app-shell.is-route-oficinas:not(.is-sidebar-collapsed) .office-back-button {
  left: calc(7.35rem + clamp(1rem, 2vw, 1.55rem));
}

.app-shell.is-route-oficinas .office-subnav-row {
  position: fixed;
  top: 1.35rem;
  left: calc(4.65rem + clamp(1rem, 2vw, 1.55rem));
  z-index: 49;
  display: flex;
  gap: 0.65rem;
  align-items: center;
}

.app-shell.is-route-oficinas:not(.is-sidebar-collapsed) .office-subnav-row {
  left: calc(7.35rem + clamp(1rem, 2vw, 1.55rem));
}

.app-shell.is-route-oficinas .office-subnav-row .office-back-button {
  position: static;
  top: auto;
  left: auto;
}

.app-shell.is-route-oficinas .office-workspace,
.app-shell.is-route-oficinas .registry-overview,
.app-shell.is-route-oficinas .office-registry-page,
.app-shell.is-route-oficinas .payment-admin-page,
.app-shell.is-route-oficinas .fichas-ops-page,
.app-shell.is-route-oficinas .global-base-page,
.app-shell.is-route-oficinas .admin-general-page,
.app-shell.is-route-oficinas .income-admin-page {
  padding-top: 4rem;
}

.app-shell.is-fichas-route .view,
.app-shell.is-new-ficha-route .view,
.app-shell.is-my-fichas-route .view {
  width: min(100%, 96rem);
  padding-top: 0;
}

.app-shell.is-fichas-route .fichas-ops-page,
.app-shell.is-new-ficha-route .ficha-leader-page,
.app-shell.is-my-fichas-route .my-fichas-page {
  padding-top: 2.55rem;
}

.app-shell.is-fichas-route {
  grid-template-columns: 0 minmax(0, 1fr);
}

.app-shell.is-fichas-route .sidebar {
  width: 0;
  padding: 0;
  border: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transform: translateX(-100%);
  box-shadow: none;
}

.app-shell.is-fichas-route .main-content {
  padding-top: 0.72rem;
  background:
    radial-gradient(circle at 82% 8%, rgba(38, 92, 102, 0.26), transparent 30rem),
    radial-gradient(circle at 18% 82%, rgba(27, 75, 63, 0.22), transparent 32rem),
    radial-gradient(circle at 52% 50%, rgba(17, 52, 64, 0.12), transparent 40rem),
    linear-gradient(145deg, #d6e3d6 0%, #c8d8cb 44%, #b8cec1 100%);
}

.app-shell.is-fichas-route .topbar {
  width: min(100%, 100rem);
  margin-bottom: 0.28rem;
}

.app-shell.is-fichas-route .view {
  width: min(100%, 100rem);
}

.app-shell.is-fichas-stack-route .view {
  height: 100%;
  overflow: hidden;
  padding-bottom: 0;
}

.app-shell.is-fichas-stack-route .fichas-ops-page {
  height: 100%;
  min-height: 0;
  grid-template-rows: auto auto auto minmax(0, 1fr);
  align-content: stretch;
  gap: 0.5rem;
  padding-top: 0;
  overflow: hidden;
}

.app-shell.is-fichas-stack-route .ficha-widget-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.52rem;
  max-height: 4.9rem;
}

.app-shell.is-fichas-stack-route .ficha-widget-grid.is-stats-hidden {
  max-height: 0;
  gap: 0;
}

.app-shell.is-fichas-stack-route .ficha-widget {
  min-height: 3.85rem;
  padding: 0.58rem 0.68rem;
}

.app-shell.is-fichas-stack-route .ficha-widget span {
  width: 2rem;
  height: 2rem;
}

.app-shell.is-fichas-route .office-subnav-row,
.app-shell.is-fichas-route:not(.is-sidebar-collapsed) .office-subnav-row {
  top: 0.92rem;
  left: clamp(0.9rem, 2vw, 1.45rem);
}

.app-shell.is-fichas-route .office-subnav-row .office-back-button:first-child {
  width: 2.85rem;
  min-height: 2.85rem;
  justify-content: center;
  gap: 0;
  padding: 0.42rem;
}

.app-shell.is-fichas-route .office-subnav-row .office-back-button:first-child > span:not(.office-back-icon) {
  display: none;
}

.app-shell.is-new-ficha-route .ficha-leader-page,
.app-shell.is-my-fichas-route .my-fichas-page {
  width: min(100%, 84rem);
  padding-top: 0;
}

.office-back-button:hover {
  transform: translateY(-1px);
  border-color: rgba(35, 101, 72, 0.28);
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 18px 38px rgba(29, 58, 45, 0.12);
}

.office-back-icon {
  width: 2.1rem;
  height: 2.1rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #1f7a56;
  background: rgba(31, 122, 86, 0.12);
}

.office-back-icon svg {
  width: 1.05rem;
  height: 1.05rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transform: rotate(180deg);
}

.office-database-button .office-back-icon svg {
  transform: none;
}

.office-workspace-image {
  width: min(100%, 76rem);
  height: auto;
  aspect-ratio: 16 / 9;
  border: 1px solid rgba(112, 177, 130, 0.34);
  border-radius: var(--radius);
  box-shadow: 0 24px 58px rgba(5, 22, 16, 0.22);
}

.office-library-shortcuts {
  width: min(100%, 76rem);
  margin-top: clamp(4rem, 10vh, 7rem);
}

.office-library-shortcuts h3 {
  margin: 0 0 0.85rem;
  color: #152437;
  font-size: 0.9rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.office-library-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 7.5rem));
  gap: clamp(0.75rem, 1.4vw, 1rem);
  align-items: start;
}

.office-library-shortcut {
  position: relative;
  aspect-ratio: 2 / 3;
  overflow: hidden;
  padding: 0;
  border: 1px solid rgba(35, 101, 72, 0.16);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 14px 32px rgba(29, 58, 45, 0.10);
  cursor: pointer;
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.office-library-shortcut img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.office-library-shortcut:hover {
  transform: translateY(-2px);
  border-color: rgba(35, 101, 72, 0.28);
  box-shadow: 0 18px 40px rgba(29, 58, 45, 0.14);
}

.office-library-shortcut.is-frequent-module {
  border-color: rgba(207, 164, 90, 0.34);
  box-shadow: 0 18px 40px rgba(29, 58, 45, 0.13), inset 0 0 0 1px rgba(207, 164, 90, 0.12);
}

.office-launcher {
  width: min(100%, 96rem);
  grid-template-columns: minmax(0, 64rem) minmax(15rem, 23rem);
  grid-template-rows: auto minmax(0, 1fr);
  column-gap: clamp(1.25rem, 2.5vw, 2.5rem);
  align-items: start;
}

.office-launcher .office-access-grid {
  width: 100%;
  grid-column: 1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-areas:
    "fichas confirmaciones"
    "admin registro";
}

.office-launcher .office-image-button {
  min-height: clamp(13rem, 24vh, 18.5rem);
}

.office-route-fichas {
  grid-area: fichas;
}

.office-route-registro {
  grid-area: registro;
}

.office-route-confirmaciones {
  grid-area: confirmaciones;
}

.office-route-vista-administrativa {
  grid-area: admin;
}

.office-confirmation-widget {
  min-height: clamp(13rem, 24vh, 18.5rem);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1rem;
  padding: clamp(1.1rem, 2vw, 1.45rem);
  border: 1px solid rgba(31, 111, 175, 0.16);
  border-radius: 1.2rem;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.95), rgba(241, 247, 250, 0.9));
  box-shadow: 0 24px 58px rgba(29, 58, 45, 0.10);
  color: #0b1b2e;
}

.office-confirmation-head {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.office-confirmation-head > span {
  width: 2.8rem;
  height: 2.8rem;
  display: grid;
  place-items: center;
  border-radius: 0.9rem;
  background: rgba(31, 111, 175, 0.12);
  color: #1f6faf;
}

.office-confirmation-head svg {
  width: 1.25rem;
  height: 1.25rem;
}

.office-confirmation-head small,
.office-confirmation-metrics span,
.office-confirmation-widget p {
  color: #5d6d75;
  font-size: 0.78rem;
  font-weight: 800;
}

.office-confirmation-head strong {
  display: block;
  color: #0b1b2e;
  font-size: clamp(1.45rem, 2.2vw, 2rem);
  line-height: 1.05;
}

.office-confirmation-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
}

.office-confirmation-metrics div {
  min-width: 0;
  padding: 0.85rem;
  border: 1px solid rgba(31, 111, 175, 0.12);
  border-radius: 0.8rem;
  background: rgba(255, 255, 255, 0.78);
}

.office-confirmation-metrics strong {
  display: block;
  margin-top: 0.35rem;
  color: #123d5e;
  font-size: clamp(1.3rem, 2vw, 1.8rem);
}

.office-confirmation-widget p {
  margin: 0;
  line-height: 1.35;
}

.office-library-shortcuts {
  grid-column: 2;
  width: 100%;
  margin-top: clamp(12rem, 30vh, 20rem);
  align-self: end;
}

.office-library-row {
  grid-template-columns: repeat(2, minmax(0, 6.8rem));
}

.office-coming-soon-panel {
  width: min(100%, 76rem);
  min-height: 22rem;
  display: grid;
  place-items: center;
  border: 1px solid rgba(35, 101, 72, 0.16);
  border-radius: 1.2rem;
  background:
    radial-gradient(circle at 75% 18%, rgba(112, 177, 130, 0.10), transparent 18rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.94), rgba(246, 250, 247, 0.82));
  box-shadow: 0 24px 58px rgba(29, 58, 45, 0.10);
  color: #0b1b2e;
  font-size: clamp(1.3rem, 2.5vw, 2.1rem);
  font-weight: 700;
  text-align: center;
}

.ficha-leader-page,
.fichas-ops-page,
.global-base-page {
  width: min(100%, 96rem);
  display: grid;
  gap: 0.72rem;
}

.global-query-toolbar {
  display: grid;
  grid-template-columns: minmax(22rem, 1fr) minmax(11rem, 0.32fr) minmax(10rem, 0.28fr);
  gap: 0.55rem;
  align-items: end;
  padding: 0.68rem;
  border: 1px solid rgba(24, 75, 97, 0.12);
  border-radius: 0.95rem;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.88), rgba(238, 247, 247, 0.72));
  box-shadow: 0 12px 28px rgba(29, 58, 45, 0.055);
}

.global-query-toolbar label {
  display: grid;
  gap: 0.28rem;
}

.global-query-toolbar span {
  color: #4f5e68;
  font-size: 0.65rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.global-query-toolbar input,
.global-query-toolbar select {
  width: 100%;
  min-height: 2.12rem;
  padding: 0 0.68rem;
  border: 1px solid rgba(24, 75, 97, 0.14);
  border-radius: 0.72rem;
  color: #0b1b2e;
  background: rgba(255, 255, 255, 0.90);
  outline: 0;
  font-size: 0.78rem;
}

.global-query-toolbar input:focus,
.global-query-toolbar select:focus {
  border-color: rgba(31, 111, 175, 0.34);
  box-shadow: 0 0 0 3px rgba(31, 111, 175, 0.08);
}

.ficha-leader-page {
  color: #0b1b2e;
}

.ficha-leader-hero,
.ficha-form,
.ficha-leader-side,
.fichas-ops-head,
.fichas-toolbar,
.fichas-table-wrap,
.fichas-side-panel,
.global-base-head,
.global-table-wrap {
  border: 1px solid rgba(35, 101, 72, 0.13);
  border-radius: 1.2rem;
  background:
    radial-gradient(circle at 92% 0%, rgba(112, 177, 130, 0.08), transparent 14rem),
    rgba(255, 255, 255, 0.86);
  box-shadow: 0 18px 42px rgba(29, 58, 45, 0.08);
}

.fichas-ops-page {
  gap: 0.82rem;
}

.fichas-ops-actions {
  padding: 0.78rem;
}

.ficha-notification-strip {
  min-width: 0;
  display: flex;
  gap: 0.45rem;
  flex-wrap: wrap;
}

.ficha-leader-hero,
.fichas-ops-head,
.global-base-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  padding: clamp(1rem, 2vw, 1.4rem);
}

.ficha-leader-hero h2,
.fichas-ops-head h2,
.global-base-head h2 {
  margin: 0.15rem 0;
  color: #0b1b2e;
  font-size: clamp(1.7rem, 3vw, 2.55rem);
}

.ficha-leader-hero p:not(.eyebrow) {
  max-width: 42rem;
  margin: 0;
  color: #5b6875;
  line-height: 1.55;
}

.ficha-leader-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(5.6rem, 1fr));
  gap: 0.55rem;
}

.ficha-leader-kpis div,
.global-base-count {
  display: grid;
  gap: 0.15rem;
  padding: 0.75rem 0.85rem;
  border: 1px solid rgba(31, 122, 86, 0.14);
  border-radius: 0.9rem;
  background: rgba(247, 250, 247, 0.78);
}

.ficha-leader-kpis strong,
.global-base-count strong {
  color: #174f3a;
  font-size: 1.35rem;
}

.ficha-leader-kpis span,
.global-base-count span {
  color: #5b6875;
  font-size: 0.74rem;
  font-weight: 800;
}

.ficha-declared-toast {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.95rem 1rem;
  border: 1px solid rgba(31, 122, 86, 0.18);
  border-radius: 1rem;
  background: rgba(228, 245, 236, 0.82);
  color: #174f3a;
}

.ficha-declared-toast > span {
  width: 2.35rem;
  height: 2.35rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(31, 122, 86, 0.12);
}

.ficha-declared-toast svg,
.ficha-form-icon svg,
.ficha-widget svg,
.ficha-status-badge svg,
.fichas-ops-head .ghost-button svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ficha-declared-toast p {
  margin: 0.18rem 0 0;
  color: #52706b;
}

.ficha-leader-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(16rem, 0.65fr);
  gap: 1rem;
  align-items: start;
}

.ficha-leader-layout.ficha-form-only {
  grid-template-columns: minmax(0, 1fr);
}

.ficha-form {
  display: grid;
  gap: 1rem;
  padding: clamp(1rem, 2vw, 1.35rem);
}

.ficha-remote-status,
.ficha-form-notice {
  margin: 0 0 1rem;
  padding: 0.8rem 1rem;
  border: 1px solid rgba(31, 122, 86, 0.2);
  border-radius: 0.85rem;
  background: rgba(31, 122, 86, 0.08);
  color: #245b46;
  font-size: 0.9rem;
  line-height: 1.45;
}

.ficha-remote-status.is-error,
.ficha-form-notice.is-error {
  border-color: rgba(141, 60, 60, 0.24);
  background: rgba(141, 60, 60, 0.08);
  color: #7a3030;
}

.ficha-form-notice.is-success {
  grid-column: 1 / -1;
}

.office-ficha-capture-panel {
  position: fixed;
  inset: 0;
  z-index: 6200;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 3vw, 2.4rem);
  pointer-events: auto;
}

.office-ficha-capture-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 10%, rgba(255, 255, 255, 0.76), rgba(237, 247, 243, 0.42) 34%, rgba(8, 20, 15, 0.26)),
    rgba(17, 31, 28, 0.28);
  backdrop-filter: blur(12px) saturate(1.08);
}

.office-ficha-form {
  position: relative;
  z-index: 1;
  width: min(58rem, calc(100vw - 2rem));
  max-height: min(86vh, 55rem);
  overflow: auto;
  border: 1px solid rgba(255, 255, 255, 0.78);
  border-radius: 1.4rem;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.94), rgba(245, 251, 248, 0.86)),
    radial-gradient(circle at 90% 0%, rgba(31, 111, 175, 0.10), transparent 16rem);
  box-shadow: 0 36px 86px rgba(15, 34, 28, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

.office-ficha-form .ficha-form-head {
  position: sticky;
  top: 0;
  z-index: 2;
  margin: calc(clamp(1rem, 2vw, 1.35rem) * -1) calc(clamp(1rem, 2vw, 1.35rem) * -1) 0;
  padding: 1rem clamp(1rem, 2vw, 1.35rem);
  border-bottom: 1px solid rgba(35, 101, 72, 0.10);
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(18px);
}

.office-ficha-form-body {
  display: grid;
  gap: 0.82rem;
}

.office-ficha-form-section {
  display: grid;
  gap: 0.72rem;
  padding: 0.85rem;
  border: 1px solid rgba(35, 101, 72, 0.10);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.58);
}

.office-ficha-section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
}

.office-ficha-section-head span {
  color: #1f6faf;
  font-size: 0.68rem;
  font-weight: 920;
  text-transform: uppercase;
}

.office-ficha-section-head strong {
  color: #0b1b2e;
  font-size: 0.9rem;
}

.office-ficha-form-actions {
  position: sticky;
  bottom: calc(clamp(1rem, 2vw, 1.35rem) * -1);
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: wrap;
  margin: 0 calc(clamp(1rem, 2vw, 1.35rem) * -1) calc(clamp(1rem, 2vw, 1.35rem) * -1);
  padding: 0.9rem clamp(1rem, 2vw, 1.35rem);
  border-top: 1px solid rgba(35, 101, 72, 0.10);
  background: rgba(255, 255, 255, 0.86);
  backdrop-filter: blur(18px);
}

.fichas-ops-page.is-capture-open .ficha-stack-stage,
.fichas-ops-page.is-capture-open .ficha-card-grid,
.fichas-ops-page.is-capture-open .ficha-widget-grid,
.fichas-ops-page.is-capture-open .fichas-command-center {
  filter: blur(5px);
  opacity: 0.42;
  pointer-events: none;
}

@media (max-width: 700px) {
  .office-ficha-capture-panel {
    align-items: stretch;
    padding: 0.55rem;
  }

  .office-ficha-form {
    width: 100%;
    max-height: calc(100vh - 1.1rem);
    border-radius: 1rem;
  }

  .office-ficha-form .ficha-form-head {
    align-items: flex-start;
  }

  .office-ficha-form-section {
    padding: 0.72rem;
  }

  .office-ficha-form .ficha-form-grid {
    grid-template-columns: 1fr;
    gap: 0.62rem;
  }

  .office-ficha-form-actions {
    align-items: stretch;
  }

  .office-ficha-form-actions button {
    width: 100%;
    justify-content: center;
  }
}

.ficha-new-office-button.is-active {
  color: #1f6faf;
  border-color: rgba(31, 111, 175, 0.22);
  background: rgba(31, 111, 175, 0.10);
}

.app-shell.is-new-ficha-route .ficha-form {
  gap: 0.82rem;
  padding-top: clamp(1rem, 1.5vw, 1.2rem);
}

.ficha-form-head {
  display: flex;
  gap: 0.9rem;
  align-items: center;
}

.ficha-form-head h3,
.ficha-leader-side h3,
.fichas-side-panel h3 {
  margin: 0;
  color: #0b1b2e;
}

.ficha-form-head p {
  margin: 0.25rem 0 0;
  color: #5b6875;
}

.ficha-form-icon {
  width: 3.1rem;
  height: 3.1rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #1f7a56;
  background: rgba(31, 122, 86, 0.12);
}

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

.ficha-field {
  display: grid;
  gap: 0.35rem;
}

.ficha-field-full,
.ficha-dreams {
  grid-column: 1 / -1;
}

.ficha-field span,
.fichas-toolbar span {
  color: #52616c;
  font-size: 0.76rem;
  font-weight: 850;
  letter-spacing: 0.02em;
}

.ficha-field input,
.ficha-field select,
.ficha-field textarea,
.fichas-toolbar input,
.fichas-toolbar select,
.ficha-state-select,
.ficha-payment-controls input,
.ficha-payment-controls select {
  width: 100%;
  min-height: 2.55rem;
  padding: 0 0.78rem;
  border: 1px solid rgba(35, 101, 72, 0.14);
  border-radius: 0.82rem;
  color: #0b1b2e;
  background: rgba(255, 255, 255, 0.88);
  outline: 0;
}

.ficha-field textarea {
  min-height: 5rem;
  padding-top: 0.75rem;
  resize: vertical;
}

.app-shell.is-fichas-route .fichas-toolbar span {
  font-size: 0.66rem;
}

.app-shell.is-fichas-route .fichas-toolbar input,
.app-shell.is-fichas-route .fichas-toolbar select {
  min-height: 2rem;
  padding: 0 0.58rem;
  border-radius: 0.72rem;
  font-size: 0.72rem;
}

.ficha-dreams {
  display: grid;
  gap: 0.65rem;
  padding: 0.9rem;
  border: 1px solid rgba(189, 145, 70, 0.14);
  border-radius: 1rem;
  background: rgba(255, 250, 242, 0.62);
}

.ficha-dreams h4 {
  margin: 0;
  color: #0b1b2e;
}

.declare-life-button {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 3.2rem;
  padding: 0 1.35rem;
  border: 1px solid rgba(189, 145, 70, 0.24);
  border-radius: 999px;
  color: #fffaf2;
  background: linear-gradient(145deg, #236548, #bd9146);
  box-shadow: 0 18px 38px rgba(35, 101, 72, 0.20);
  font-weight: 850;
  cursor: pointer;
}

.declare-life-button svg {
  width: 1.05rem;
  height: 1.05rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

.ficha-leader-side,
.fichas-side-panel {
  display: grid;
  gap: 0.75rem;
  padding: 1rem;
}

.ficha-leader-list {
  display: grid;
  gap: 0.6rem;
}

.leader-ficha-card {
  display: grid;
  gap: 0.55rem;
  padding: 0.8rem;
  border: 1px solid rgba(35, 101, 72, 0.10);
  border-radius: 0.9rem;
  background: rgba(255, 255, 255, 0.70);
}

.leader-ficha-card {
  grid-template-columns: minmax(0, 1fr);
}

.leader-ficha-card span,
.muted-text {
  color: #5b6875;
}

.my-fichas-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
  gap: 1rem;
}

.my-ficha-card,
.my-ficha-empty {
  display: grid;
  gap: 0.75rem;
  padding: 1rem;
  border: 1px solid rgba(35, 101, 72, 0.12);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 14px 30px rgba(29, 58, 45, 0.06);
}

.my-ficha-card {
  position: relative;
  min-height: 19rem;
  align-content: space-between;
  overflow: hidden;
  background:
    radial-gradient(circle at 85% 0%, rgba(189, 145, 70, 0.08), transparent 9rem),
    rgba(255, 255, 255, 0.78);
}

.my-ficha-card.status-declarada {
  background:
    radial-gradient(circle at 92% 0%, rgba(151, 103, 167, 0.18), transparent 12rem),
    rgba(255, 255, 255, 0.78);
}

.my-ficha-card.status-conanticipo {
  background:
    radial-gradient(circle at 92% 0%, rgba(31, 122, 86, 0.18), transparent 12rem),
    rgba(247, 250, 247, 0.80);
}

.my-ficha-card.status-pagada,
.my-ficha-card.status-linkenviado,
.my-ficha-card.status-confirmada,
.my-ficha-card.status-enregistro,
.my-ficha-card.status-sentada {
  background:
    radial-gradient(circle at 92% 0%, rgba(31, 111, 175, 0.16), transparent 12rem),
    rgba(255, 255, 255, 0.80);
}

.my-ficha-card.status-vencida,
.my-ficha-card.status-rezagada {
  background:
    radial-gradient(circle at 92% 0%, rgba(141, 60, 60, 0.14), transparent 12rem),
    rgba(255, 255, 255, 0.78);
}

.my-ficha-card-head {
  display: flex;
  justify-content: space-between;
  gap: 0.65rem;
  align-items: flex-start;
}

.my-ficha-card-head > div {
  display: grid;
  gap: 0.12rem;
}

.my-ficha-card-head > div strong {
  font-size: 0.95rem;
}

.my-ficha-card-head > div span {
  margin: 0;
  color: #64717c;
  font-size: 0.72rem;
  font-weight: 850;
}

.my-ficha-card-main {
  display: grid;
  gap: 0.32rem;
}

.my-ficha-card strong {
  color: #0b1b2e;
  font-size: 1.18rem;
}

.my-ficha-card span,
.my-ficha-card small {
  display: block;
  margin-top: 0.18rem;
  color: #64717c;
}

.my-ficha-card-state {
  display: grid;
  gap: 0.45rem;
  padding-right: 3.15rem;
}

.my-ficha-card .ficha-indicator-groups {
  width: 100%;
  justify-content: center;
  padding: 0.35rem;
}

.my-ficha-progress {
  display: grid;
  gap: 0.42rem;
  padding-right: 3.25rem;
}

.my-ficha-progress > div {
  display: flex;
  justify-content: space-between;
  gap: 0.8rem;
  align-items: center;
}

.my-ficha-progress span {
  margin: 0;
  color: #52616c;
  font-size: 0.72rem;
  font-weight: 850;
}

.my-ficha-progress strong {
  font-size: 0.92rem;
}

.my-ficha-progress i {
  height: 0.46rem;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(82, 97, 108, 0.12);
}

.my-ficha-progress b {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #1f7a56, #1f6faf);
}

.my-ficha-progress small {
  font-size: 0.68rem;
}

.my-ficha-open-button {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  width: 2.8rem;
  height: 2.8rem;
}

.my-ficha-open-button svg {
  width: 1rem;
  height: 1rem;
}

.my-ficha-empty {
  grid-template-columns: auto minmax(0, 1fr);
}

.my-ficha-empty > span {
  width: 2.7rem;
  height: 2.7rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #9a6a1e;
  background: rgba(189, 145, 70, 0.12);
}

.my-ficha-empty svg {
  width: 1.1rem;
  height: 1.1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

.ficha-detail-page {
  display: grid;
  gap: 1rem;
  align-content: start;
}

.ficha-detail-card {
  display: grid;
  gap: 1rem;
  padding: clamp(1rem, 2vw, 1.4rem);
  border: 1px solid rgba(35, 101, 72, 0.13);
  border-radius: 1.25rem;
  background:
    radial-gradient(circle at 82% 0%, rgba(112, 177, 130, 0.08), transparent 16rem),
    rgba(255, 255, 255, 0.82);
  box-shadow: 0 18px 42px rgba(29, 58, 45, 0.08);
}

.ficha-detail-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: start;
}

.ficha-detail-head h2 {
  margin: 0.2rem 0 0;
  color: #0b1b2e;
  font-size: clamp(1.8rem, 3vw, 2.7rem);
}

.ficha-detail-actions {
  display: flex;
  justify-content: flex-end;
}

.ficha-edit-form {
  display: grid;
  gap: 0.75rem;
  padding: 0.9rem;
  border: 1px solid rgba(31, 122, 86, 0.12);
  border-radius: 1rem;
  background: rgba(247, 250, 247, 0.70);
}

.ficha-edit-warning {
  padding: 0.62rem 0.78rem;
  border: 1px solid rgba(189, 145, 70, 0.18);
  border-radius: 0.85rem;
  color: #7a5521;
  background: rgba(246, 232, 203, 0.55);
  font-size: 0.78rem;
  font-weight: 800;
}

.ficha-edit-warning.is-locked {
  color: #8d3c3c;
  border-color: rgba(141, 60, 60, 0.18);
  background: rgba(141, 60, 60, 0.08);
}

.ficha-edit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

.ficha-edit-grid label {
  display: grid;
  gap: 0.3rem;
}

.ficha-edit-grid span {
  color: #52616c;
  font-size: 0.72rem;
  font-weight: 850;
}

.ficha-edit-grid input {
  width: 100%;
  min-height: 2.35rem;
  padding: 0 0.7rem;
  border: 1px solid rgba(35, 101, 72, 0.14);
  border-radius: 0.82rem;
  color: #0b1b2e;
  background: rgba(255, 255, 255, 0.88);
  outline: 0;
}

.ficha-edit-wide {
  grid-column: 1 / -1;
}

.ficha-edit-save {
  justify-self: start;
  min-height: 2.35rem;
  padding: 0 1rem;
  border: 1px solid rgba(31, 122, 86, 0.16);
  border-radius: 999px;
  color: #174f3a;
  background: rgba(31, 122, 86, 0.10);
  font-weight: 850;
}

.ficha-detail-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.7rem;
}

.ficha-detail-item {
  display: grid;
  gap: 0.18rem;
  padding: 0.8rem;
  border: 1px solid rgba(35, 101, 72, 0.10);
  border-radius: 0.9rem;
  background: rgba(255, 255, 255, 0.66);
}

.ficha-detail-item span,
.ficha-detail-dreams strong {
  color: #52616c;
  font-size: 0.74rem;
  font-weight: 850;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.ficha-detail-item strong,
.ficha-detail-dreams p {
  margin: 0;
  color: #0b1b2e;
}

.ficha-detail-dreams {
  display: grid;
  gap: 0.45rem;
  padding: 1rem;
  border: 1px solid rgba(189, 145, 70, 0.14);
  border-radius: 1rem;
  background: rgba(255, 250, 242, 0.62);
}

.ficha-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  width: max-content;
  max-width: 100%;
  padding: 0.35rem 0.55rem;
  border: 1px solid rgba(35, 101, 72, 0.16);
  border-radius: 999px;
  color: #236548;
  background: rgba(31, 122, 86, 0.10);
  font-size: 0.72rem;
  font-weight: 850;
  white-space: nowrap;
}

.ficha-state-con-anticipo {
  color: #9a6a1e;
  background: rgba(189, 145, 70, 0.12);
  border-color: rgba(189, 145, 70, 0.22);
}

.ficha-state-pagada,
.ficha-state-confirmada,
.ficha-state-sentada {
  color: #1f7a56;
  background: rgba(31, 122, 86, 0.11);
  border-color: rgba(31, 122, 86, 0.22);
}

.ficha-state-link-enviado,
.ficha-state-en-registro {
  color: #1f6faf;
  background: rgba(31, 111, 175, 0.10);
  border-color: rgba(31, 111, 175, 0.22);
}

.ficha-state-vencida,
.ficha-state-rezagada {
  color: #8d3c3c;
  background: rgba(160, 70, 70, 0.10);
  border-color: rgba(160, 70, 70, 0.22);
}

.ficha-timeline {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.22rem;
  width: min(100%, 8rem);
  align-items: center;
}

.ficha-timeline span {
  height: 0.36rem;
  margin: 0 !important;
  border-radius: 999px;
  background: rgba(82, 97, 108, 0.16);
}

.ficha-timeline span.is-done {
  background: rgba(31, 122, 86, 0.55);
}

.ficha-timeline span.is-current {
  background: #1f7a56;
}

.ficha-timeline.is-diverted span.is-muted {
  background: rgba(82, 97, 108, 0.14);
}

.ficha-timeline.is-diverted span.is-current {
  background: #8d3c3c;
}

.ficha-widget-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.75rem;
  max-height: 12rem;
  opacity: 1;
  overflow: hidden;
  transform: translateY(0);
  transition: max-height 320ms cubic-bezier(0.22, 1, 0.36, 1), opacity 220ms ease, transform 320ms cubic-bezier(0.22, 1, 0.36, 1), gap 220ms ease;
}

.ficha-widget {
  --ficha-widget-accent: #1f7a56;
  --ficha-widget-rgb: 31, 122, 86;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem;
  border: 1px solid rgba(var(--ficha-widget-rgb), 0.14);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.76);
  box-shadow: 0 14px 32px rgba(29, 58, 45, 0.07);
}

.ficha-widget.accent-gold {
  --ficha-widget-accent: #bd9146;
  --ficha-widget-rgb: 189, 145, 70;
}

.ficha-widget.accent-blue {
  --ficha-widget-accent: #1f6faf;
  --ficha-widget-rgb: 31, 111, 175;
}

.ficha-widget.accent-red {
  --ficha-widget-accent: #8d3c3c;
  --ficha-widget-rgb: 141, 60, 60;
}

.ficha-widget.accent-violet {
  --ficha-widget-accent: #6a55aa;
  --ficha-widget-rgb: 106, 85, 170;
}

.ficha-widget > span {
  width: 2.65rem;
  height: 2.65rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--ficha-widget-accent);
  background: rgba(var(--ficha-widget-rgb), 0.12);
}

.ficha-widget strong {
  display: block;
  color: #0b1b2e;
  font-size: 1.35rem;
}

.ficha-widget small {
  color: #5b6875;
  font-weight: 750;
}

.app-shell.is-fichas-route .ficha-widget-grid {
  gap: 0.5rem;
}

.app-shell.is-fichas-route .ficha-widget {
  gap: 0.52rem;
  padding: 0.58rem 0.68rem;
  border-radius: 0.82rem;
  box-shadow: 0 10px 22px rgba(29, 58, 45, 0.05);
}

.app-shell.is-fichas-route .ficha-widget > span {
  width: 2rem;
  height: 2rem;
}

.app-shell.is-fichas-route .ficha-widget strong {
  font-size: 1rem;
}

.app-shell.is-fichas-route .ficha-widget small {
  font-size: 0.68rem;
}

.fichas-toolbar {
  display: grid;
  grid-template-columns: minmax(16rem, 1fr) minmax(12rem, 0.35fr) minmax(10rem, 0.3fr);
  gap: 0.75rem;
  padding: 0.9rem;
}

.app-shell.is-fichas-route .fichas-toolbar {
  grid-template-columns: minmax(18rem, 1.25fr) repeat(4, minmax(7rem, 0.42fr)) auto;
  align-items: end;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.82), rgba(237, 247, 243, 0.68));
  gap: 0.62rem;
  padding: 0.68rem 0.78rem;
  border-color: rgba(35, 101, 72, 0.12);
  box-shadow: 0 14px 32px rgba(29, 58, 45, 0.055);
}

.fichas-base-button {
  min-height: 2.55rem;
  align-self: end;
}

.fichas-toolbar label {
  display: grid;
  gap: 0.35rem;
}

.fichas-command-center {
  display: grid;
  gap: 0.48rem;
  padding: 0.72rem;
  border: 1px solid rgba(35, 101, 72, 0.11);
  border-radius: 1.08rem;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.88), rgba(237, 247, 243, 0.70));
  box-shadow: 0 16px 36px rgba(29, 58, 45, 0.06);
}

.ficha-primary-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.55rem;
  align-items: end;
}

.ficha-primary-search label,
.ficha-filter-row label {
  display: grid;
  gap: 0.24rem;
}

.ficha-primary-search span,
.ficha-filter-row span {
  color: #52616c;
  font-size: 0.65rem;
  font-weight: 900;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.ficha-primary-search input {
  width: 100%;
  min-height: 3.15rem;
  padding: 0 1rem;
  border: 1px solid rgba(31, 111, 175, 0.12);
  border-radius: 999px;
  color: #0b1b2e;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
  font-size: 1rem;
  font-weight: 750;
  outline: 0;
}

.ficha-primary-search input::placeholder {
  color: rgba(82, 97, 108, 0.60);
}

.ficha-filter-row {
  display: grid;
  grid-template-columns: repeat(5, minmax(6.5rem, 1fr));
  gap: 0.42rem;
}

.ficha-filter-row select {
  width: 100%;
  min-height: 2rem;
  padding: 0 0.58rem;
  border: 1px solid rgba(35, 101, 72, 0.11);
  border-radius: 0.7rem;
  color: #0b1b2e;
  background: rgba(255, 255, 255, 0.82);
  font-size: 0.72rem;
  font-weight: 820;
  outline: 0;
}

.ficha-filter-reset {
  align-self: end;
  width: 3.15rem;
  min-height: 3.15rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid rgba(31, 111, 175, 0.14);
  border-radius: 50%;
  color: #1f6faf;
  background: rgba(255, 255, 255, 0.68);
  font-size: 0.72rem;
  font-weight: 900;
  cursor: pointer;
  transition: transform 180ms ease, color 180ms ease, border-color 180ms ease, background 180ms ease;
}

.ficha-filter-reset:hover {
  transform: translateY(-1px);
  color: #0b1b2e;
  border-color: rgba(31, 111, 175, 0.22);
  background: rgba(250, 253, 255, 0.92);
}

.ficha-filter-reset svg {
  width: 1.05rem;
  height: 1.05rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ficha-filter-reset span {
  display: none;
}

.ficha-widget-grid.is-stats-hidden {
  max-height: 0;
  gap: 0;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-0.35rem);
}

.ficha-stats-toggle {
  width: 2.85rem;
  padding: 0.42rem;
  justify-content: center;
}

.ficha-stats-toggle:not(.is-active) {
  opacity: 0.72;
}

.ficha-view-switch {
  width: 2.85rem;
  padding: 0.42rem;
  justify-content: center;
}

.ficha-view-switch.is-simple {
  border-color: rgba(31, 122, 86, 0.15);
  background:
    radial-gradient(circle at 50% 20%, rgba(31, 122, 86, 0.12), transparent 1.8rem),
    rgba(255, 250, 242, 0.86);
}

.ficha-view-switch.is-multiview {
  border-color: rgba(31, 111, 175, 0.18);
  background:
    radial-gradient(circle at 50% 20%, rgba(31, 111, 175, 0.14), transparent 1.8rem),
    rgba(255, 250, 242, 0.90);
}

.fichas-view-toggle {
  display: inline-flex;
  gap: 0.28rem;
  align-self: end;
  padding: 0.26rem;
  border: 1px solid rgba(23, 58, 94, 0.10);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.58);
}

.fichas-view-toggle button {
  min-height: 1.9rem;
  padding: 0 0.68rem;
  border: 1px solid transparent;
  border-radius: 999px;
  color: #52616c;
  background: transparent;
  font-weight: 850;
  cursor: pointer;
}

.fichas-view-toggle button.is-active {
  color: #0b1b2e;
  border-color: rgba(31, 122, 86, 0.16);
  background: rgba(255, 250, 242, 0.82);
  box-shadow: 0 8px 18px rgba(11, 27, 46, 0.06);
}

.fichas-ops-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(17rem, 0.34fr);
  gap: 1rem;
  align-items: start;
}

.fichas-table-wrap,
.global-table-wrap {
  overflow: auto;
}

.global-base-page .global-table-wrap {
  border-radius: 0.95rem;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.92), rgba(244, 249, 248, 0.78));
  box-shadow: 0 12px 30px rgba(29, 58, 45, 0.055);
}

.ficha-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
  gap: 0.9rem;
}

.ficha-stack-stage {
  position: relative;
  min-height: 32rem;
  overflow: hidden;
  border: 1px solid rgba(31, 111, 175, 0.08);
  border-radius: 1.25rem;
  background:
    radial-gradient(circle at 70% 12%, rgba(31, 111, 175, 0.18), transparent 20rem),
    radial-gradient(circle at 30% 92%, rgba(31, 122, 86, 0.16), transparent 24rem),
    linear-gradient(145deg, rgba(238, 246, 241, 0.42), rgba(204, 224, 213, 0.32));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.42),
    inset 0 -26px 70px rgba(25, 72, 68, 0.08);
}

.app-shell.is-fichas-stack-route .fichas-command-center {
  padding: 0.54rem 0.62rem;
  border-radius: 1rem;
}

.app-shell.is-fichas-stack-route .ficha-primary-search input {
  min-height: 2.9rem;
}

.app-shell.is-fichas-stack-route .ficha-filter-row select {
  min-height: 2rem;
}

.app-shell.is-fichas-stack-route .ficha-stack-stage {
  height: 100%;
  min-height: 0;
}

.ficha-stack-stage::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(110deg, transparent 0%, transparent 42%, rgba(255, 255, 255, 0.34) 50%, transparent 58%, transparent 100%);
  transform: translateX(-120%);
  animation: fichaStackSweep 1200ms 420ms cubic-bezier(0.22, 1, 0.36, 1) both;
  mix-blend-mode: screen;
}

.fichas-stack-settled .ficha-stack-stage::after,
.fichas-stack-settled .ficha-stack-item {
  animation: none;
}

.ficha-stack-hint {
  position: absolute;
  right: 1rem;
  top: 1rem;
  z-index: 130;
  display: inline-flex;
  align-items: baseline;
  gap: 0.38rem;
  padding: 0.42rem 0.66rem;
  border: 1px solid rgba(31, 111, 175, 0.10);
  border-radius: 999px;
  color: #52616c;
  background: rgba(255, 255, 255, 0.64);
  font-size: 0.72rem;
  font-weight: 850;
  backdrop-filter: blur(10px);
}

.ficha-stack-hint strong {
  color: #0b1b2e;
  font-size: 0.92rem;
}

.ficha-stack-item {
  position: absolute;
  top: 2.5rem;
  left: 50%;
  z-index: var(--stack-z);
  width: min(24rem, calc(100% - 3rem));
  opacity: var(--stack-opacity);
  transform: translateX(-50%) translate(var(--stack-x), var(--stack-y)) scale(var(--stack-scale));
  filter: blur(calc(var(--i) * 0.16px));
  pointer-events: none;
  animation: fichaAutoStack 920ms cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: calc(var(--i) * 34ms);
  will-change: transform, opacity, filter;
}

.ficha-stack-item.is-front {
  opacity: 1;
  filter: none;
  pointer-events: auto;
}

.ficha-stack-item .ficha-card {
  min-height: 21rem;
}

.ficha-stack-item.is-front .ficha-card {
  background:
    radial-gradient(circle at 88% 0%, rgba(31, 111, 175, 0.10), transparent 12rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(248, 251, 250, 0.98));
  backdrop-filter: none;
}

.ficha-stack-item.is-front .ficha-card.status-declarada {
  background:
    radial-gradient(circle at 88% 0%, rgba(151, 103, 167, 0.20), transparent 12rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.99), rgba(251, 247, 253, 0.98));
}

.ficha-stack-item.is-front .ficha-card.status-conanticipo {
  background:
    radial-gradient(circle at 88% 0%, rgba(31, 122, 86, 0.20), transparent 12rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.99), rgba(245, 251, 247, 0.98));
}

.ficha-stack-item.is-front .ficha-card.status-pagada,
.ficha-stack-item.is-front .ficha-card.status-linkenviado,
.ficha-stack-item.is-front .ficha-card.status-confirmada,
.ficha-stack-item.is-front .ficha-card.status-enregistro,
.ficha-stack-item.is-front .ficha-card.status-sentada {
  background:
    radial-gradient(circle at 88% 0%, rgba(31, 111, 175, 0.18), transparent 12rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.99), rgba(246, 250, 255, 0.98));
}

@keyframes fichaAutoStack {
  0% {
    opacity: 0.88;
    filter: blur(0);
    transform: translateX(-50%) translate(var(--spread-x), var(--spread-y)) scale(0.95);
  }
  58% {
    opacity: 0.92;
    filter: blur(0.4px);
  }
  100% {
    opacity: var(--stack-opacity);
    filter: blur(calc(var(--i) * 0.16px));
    transform: translateX(-50%) translate(var(--stack-x), var(--stack-y)) scale(var(--stack-scale));
  }
}

@keyframes fichaStackSweep {
  0% { transform: translateX(-120%); opacity: 0; }
  18% { opacity: 1; }
  100% { transform: translateX(120%); opacity: 0; }
}

.ficha-card {
  min-height: 20rem;
  display: grid;
  align-content: start;
  gap: 0.72rem;
  padding: 1rem;
  border: 1px solid rgba(23, 58, 94, 0.09);
  border-radius: 1.18rem;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 18px 42px rgba(11, 27, 46, 0.07);
  overflow: visible;
}

.ficha-card.status-declarada {
  background:
    radial-gradient(circle at 88% 0%, rgba(151, 103, 167, 0.18), transparent 12rem),
    rgba(255, 255, 255, 0.72);
  border-color: rgba(151, 103, 167, 0.18);
}

.ficha-card.status-conanticipo {
  background:
    radial-gradient(circle at 88% 0%, rgba(31, 122, 86, 0.18), transparent 12rem),
    rgba(247, 250, 247, 0.78);
  border-color: rgba(31, 122, 86, 0.18);
}

.ficha-card.status-pagada,
.ficha-card.status-linkenviado,
.ficha-card.status-confirmada,
.ficha-card.status-enregistro,
.ficha-card.status-sentada {
  background:
    radial-gradient(circle at 88% 0%, rgba(31, 111, 175, 0.16), transparent 12rem),
    rgba(255, 255, 255, 0.74);
  border-color: rgba(31, 111, 175, 0.14);
}

.ficha-card.status-vencida,
.ficha-card.status-rezagada {
  background:
    radial-gradient(circle at 88% 0%, rgba(141, 60, 60, 0.13), transparent 12rem),
    rgba(255, 255, 255, 0.74);
  border-color: rgba(141, 60, 60, 0.15);
}

.ficha-card.is-empty {
  min-height: 10rem;
  align-items: center;
  justify-items: center;
  color: #64717c;
}

.ficha-card-head {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: start;
}

.ficha-card-person {
  display: grid;
  gap: 0.25rem;
}

.ficha-card-person strong {
  color: #0b1b2e;
  font-size: clamp(1.35rem, 2vw, 1.7rem);
  line-height: 1.05;
}

.ficha-card-person span,
.ficha-card-payment span {
  color: #64717c;
}

.ficha-card-payment {
  display: flex;
  justify-content: space-between;
  gap: 0.65rem;
  align-items: baseline;
  padding: 0.58rem 0.72rem;
  border: 1px solid rgba(23, 58, 94, 0.08);
  border-radius: 0.8rem;
  background: rgba(255, 250, 242, 0.58);
}

.ficha-card-payment strong {
  color: #0b1b2e;
}

.ficha-card-movement-slots {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
}

.app-shell.is-fichas-route .fichas-table-wrap {
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.fichas-table,
.global-table {
  width: 100%;
  min-width: 84rem;
  border-collapse: collapse;
}

.global-base-page .global-table {
  font-size: 0.76rem;
}

.app-shell.is-fichas-route .fichas-table {
  min-width: 0;
  table-layout: fixed;
}

.fichas-table th,
.fichas-table td,
.global-table th,
.global-table td {
  padding: 0.75rem;
  border-bottom: 1px solid rgba(35, 101, 72, 0.10);
  text-align: left;
  vertical-align: middle;
  overflow-wrap: anywhere;
}

.app-shell.is-fichas-route .fichas-table th,
.app-shell.is-fichas-route .fichas-table td {
  padding: 0.52rem 0.48rem;
  font-size: 0.76rem;
}

.app-shell.is-fichas-route .fichas-table th:nth-child(1),
.app-shell.is-fichas-route .fichas-table td:nth-child(1) {
  width: 7%;
}

.app-shell.is-fichas-route .fichas-table th:nth-child(2),
.app-shell.is-fichas-route .fichas-table td:nth-child(2) {
  width: 19%;
}

.app-shell.is-fichas-route .fichas-table th:nth-child(3),
.app-shell.is-fichas-route .fichas-table td:nth-child(3) {
  width: 16%;
}

.app-shell.is-fichas-route .fichas-table th:nth-child(4),
.app-shell.is-fichas-route .fichas-table td:nth-child(4) {
  width: 12%;
}

.app-shell.is-fichas-route .fichas-table th:nth-child(5),
.app-shell.is-fichas-route .fichas-table td:nth-child(5) {
  width: 36%;
}

.app-shell.is-fichas-route .fichas-table th:nth-child(6),
.app-shell.is-fichas-route .fichas-table td:nth-child(6) {
  width: 10%;
}

.fichas-table th,
.global-table th {
  color: #52616c;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.global-base-page .global-table th,
.global-base-page .global-table td {
  padding: 0.52rem 0.58rem;
  border-bottom-color: rgba(24, 75, 97, 0.09);
}

.global-base-page .global-table th {
  color: #53616c;
  font-size: 0.64rem;
  letter-spacing: 0.075em;
}

.global-base-page .global-table td {
  color: #142337;
}

.global-base-page .global-table td strong {
  font-size: 0.78rem;
  line-height: 1.2;
}

.global-base-page .global-table tr:hover td {
  background: rgba(236, 245, 246, 0.56);
}

.fichas-table td span,
.global-table td span {
  display: block;
  margin-top: 0.18rem;
  color: #64717c;
  font-size: 0.78rem;
}

.global-base-page .global-table td span {
  color: #667580;
  font-size: 0.70rem;
}

.global-command-page {
  position: relative;
  isolation: isolate;
  min-height: calc(100vh - 6.5rem);
  grid-template-rows: auto minmax(24rem, 1fr) auto auto;
  gap: clamp(0.8rem, 1.4vw, 1.2rem);
  padding: clamp(0.35rem, 1vw, 0.75rem);
  overflow: visible;
}

.global-command-page::before {
  content: "";
  position: absolute;
  z-index: -2;
  inset: -5.5rem -4rem -4rem -4rem;
  background:
    radial-gradient(circle at 18% 18%, rgba(255, 250, 235, 0.86), transparent 23rem),
    radial-gradient(circle at 78% 16%, rgba(206, 229, 236, 0.70), transparent 26rem),
    radial-gradient(circle at 50% 72%, rgba(191, 218, 203, 0.58), transparent 30rem),
    linear-gradient(135deg, #f6efe2 0%, #e9f0e8 44%, #ddebe7 100%);
}

.global-command-page::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -2rem;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(11, 27, 46, 0.035) 1px, transparent 1px),
    linear-gradient(180deg, rgba(11, 27, 46, 0.026) 1px, transparent 1px),
    radial-gradient(circle at 50% 48%, rgba(255, 255, 255, 0.48), transparent 28rem);
  background-size: 5rem 5rem, 5rem 5rem, auto;
  mask-image: radial-gradient(circle at 52% 48%, black, transparent 74%);
}

.global-topbar {
  position: relative;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.global-live-pulse {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.52rem 0.78rem;
  border: 1px solid rgba(31, 111, 175, 0.12);
  border-radius: 999px;
  color: #53616c;
  background: rgba(255, 255, 255, 0.54);
  box-shadow: 0 18px 48px rgba(33, 78, 94, 0.10);
  backdrop-filter: blur(20px);
}

.global-live-pulse span {
  width: 0.58rem;
  height: 0.58rem;
  border-radius: 50%;
  background: #1f7a56;
  box-shadow: 0 0 0 0.32rem rgba(31, 122, 86, 0.10), 0 0 1.2rem rgba(31, 122, 86, 0.32);
}

.global-live-pulse strong {
  color: #0b1b2e;
}

.global-live-pulse small {
  font-size: 0.72rem;
  font-weight: 800;
}

.global-vision-stage {
  position: relative;
  min-height: clamp(26rem, 49vh, 34rem);
  display: grid;
  align-items: center;
}

.global-orb {
  position: absolute;
  z-index: -1;
  border-radius: 999px;
  filter: blur(8px);
  opacity: 0.9;
}

.global-orb-a {
  width: 24rem;
  height: 24rem;
  left: 7%;
  top: 4%;
  background: radial-gradient(circle, rgba(88, 130, 191, 0.16), transparent 68%);
}

.global-orb-b {
  width: 30rem;
  height: 30rem;
  right: 8%;
  bottom: -18%;
  background: radial-gradient(circle, rgba(198, 156, 84, 0.12), transparent 66%);
}

.global-stage-glass {
  position: relative;
  min-height: inherit;
  display: grid;
  grid-template-columns: minmax(14rem, 0.72fr) minmax(24rem, 1.12fr) minmax(14rem, 0.72fr);
  align-items: center;
  gap: clamp(1rem, 2vw, 1.6rem);
  padding: clamp(1rem, 2vw, 1.5rem);
  border: 1px solid rgba(255, 255, 255, 0.46);
  border-radius: 2rem;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.56), rgba(244, 249, 247, 0.26)),
    radial-gradient(circle at 50% 10%, rgba(255, 255, 255, 0.52), transparent 30rem);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.62),
    0 34px 90px rgba(34, 70, 78, 0.13);
  backdrop-filter: blur(26px);
  overflow: hidden;
}

.global-stage-glass::before {
  content: "";
  position: absolute;
  inset: 8% 12%;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.58), transparent 62%);
  filter: blur(26px);
  pointer-events: none;
}

.global-context-panel,
.global-stack-cloud article,
.global-focus-card,
.global-result-tile,
.global-empty-result,
.global-command-bar {
  position: relative;
  border: 1px solid rgba(255, 255, 255, 0.54);
  background: rgba(255, 255, 255, 0.50);
  box-shadow: 0 22px 54px rgba(22, 58, 68, 0.10);
  backdrop-filter: blur(24px);
}

.global-context-panel {
  display: grid;
  gap: 0.4rem;
  align-self: start;
  margin-top: clamp(1rem, 4vw, 2.5rem);
  padding: 1rem;
  border-radius: 1.35rem;
}

.global-context-panel span,
.global-focus-head span,
.global-focus-meta strong,
.global-search-field span,
.global-command-bar label > span {
  color: #6b7580;
  font-size: 0.66rem;
  font-weight: 900;
  letter-spacing: 0.075em;
  text-transform: uppercase;
}

.global-context-panel strong {
  color: #0b1b2e;
  font-size: 1.15rem;
}

.global-context-panel small {
  color: #5b6875;
  font-weight: 750;
  line-height: 1.45;
}

.global-focus-card {
  z-index: 3;
  display: grid;
  gap: 1rem;
  padding: clamp(1.15rem, 2.2vw, 1.75rem);
  border-radius: 1.7rem;
  background:
    radial-gradient(circle at 92% 0%, rgba(31, 111, 175, 0.12), transparent 13rem),
    radial-gradient(circle at 4% 100%, rgba(31, 122, 86, 0.10), transparent 12rem),
    rgba(255, 255, 255, 0.66);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.68),
    0 38px 92px rgba(20, 58, 68, 0.18);
}

.global-focus-card::before,
.global-focus-card::after {
  content: "";
  position: absolute;
  inset: 0.8rem;
  z-index: -1;
  border-radius: inherit;
  background: rgba(255, 255, 255, 0.22);
  transform: translate(0.8rem, 0.7rem) scale(0.97);
  filter: blur(0.5px);
}

.global-focus-card::after {
  transform: translate(1.55rem, 1.35rem) scale(0.94);
  opacity: 0.52;
}

.global-focus-card.is-empty {
  min-height: 18rem;
  align-content: center;
}

.global-focus-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: start;
}

.global-focus-head h2 {
  margin: 0.24rem 0 0;
  color: #0b1b2e;
  font-size: clamp(2rem, 4vw, 3.25rem);
  line-height: 0.98;
  letter-spacing: 0;
}

.global-focus-head p {
  margin: 0.42rem 0 0;
  color: #60707c;
  font-size: 1.05rem;
  font-weight: 750;
}

.global-focus-telemetry {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: wrap;
}

.global-finance-orbit {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  padding: 0.85rem;
  border: 1px solid rgba(31, 111, 175, 0.10);
  border-radius: 1.2rem;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.68), rgba(231, 241, 239, 0.46));
}

.global-finance-orbit span,
.global-finance-orbit small {
  display: block;
  color: #64717c;
  font-size: 0.72rem;
  font-weight: 850;
}

.global-finance-orbit strong {
  display: block;
  margin: 0.1rem 0;
  color: #0b1b2e;
  font-size: clamp(1.55rem, 3vw, 2.25rem);
}

.global-progress-ring {
  width: 4.5rem;
  height: 4.5rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background:
    conic-gradient(from -90deg, #1f7a56 var(--global-progress), rgba(31, 111, 175, 0.10) 0),
    rgba(255, 255, 255, 0.72);
  box-shadow: inset 0 0 0 0.55rem rgba(255, 255, 255, 0.80);
}

.global-progress-ring span {
  color: #0b1b2e;
  font-size: 0.82rem;
  font-weight: 900;
}

.global-focus-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
}

.global-focus-meta span {
  min-width: 0;
  padding: 0.72rem;
  border: 1px solid rgba(24, 75, 97, 0.08);
  border-radius: 0.95rem;
  color: #45535f;
  background: rgba(255, 255, 255, 0.42);
  font-size: 0.76rem;
  font-weight: 750;
  overflow-wrap: anywhere;
}

.global-focus-meta strong {
  display: block;
  margin-bottom: 0.24rem;
}

.global-stack-cloud {
  display: grid;
  gap: 0.68rem;
}

.global-stack-cloud article {
  display: grid;
  gap: 0.22rem;
  padding: 0.86rem 0.95rem;
  border-radius: 1.1rem;
  opacity: calc(0.9 - (var(--ghost-index, 0) * 0.08));
  transform: translateX(calc(var(--ghost-index, 0) * -0.32rem)) scale(calc(1 - (var(--ghost-index, 0) * 0.018)));
}

.global-stack-cloud strong {
  color: #0b1b2e;
  font-size: 0.92rem;
}

.global-stack-cloud span {
  color: #61717d;
  font-size: 0.72rem;
  font-weight: 800;
}

.global-result-ribbon {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.65rem;
}

.global-result-tile,
.global-empty-result {
  min-height: 5.4rem;
  display: grid;
  align-content: space-between;
  gap: 0.4rem;
  padding: 0.72rem;
  border-radius: 1rem;
}

.global-result-tile strong,
.global-empty-result strong {
  color: #0b1b2e;
  font-size: 0.86rem;
  line-height: 1.15;
}

.global-result-tile span,
.global-empty-result span {
  display: block;
  margin-top: 0.16rem;
  color: #64717c;
  font-size: 0.68rem;
  font-weight: 780;
}

.global-result-tile small {
  width: max-content;
  padding: 0.18rem 0.42rem;
  border: 1px solid rgba(31, 111, 175, 0.12);
  border-radius: 999px;
  color: #355e7b;
  background: rgba(232, 243, 249, 0.78);
  font-size: 0.62rem;
  font-weight: 900;
}

.global-result-tile b {
  color: #0b1b2e;
  font-size: 0.96rem;
}

.global-command-bar {
  position: sticky;
  bottom: 0.85rem;
  z-index: 30;
  grid-template-columns: minmax(24rem, 1fr) minmax(12rem, 0.24fr) minmax(10rem, 0.18fr);
  padding: 0.72rem;
  border-radius: 1.35rem;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.72), rgba(244, 250, 248, 0.56));
}

.global-command-bar input,
.global-command-bar select {
  min-height: 3rem;
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.74);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.74),
    0 10px 30px rgba(33, 78, 94, 0.06);
}

.global-search-field input {
  font-size: 1rem;
  font-weight: 760;
}

.global-database-page {
  position: relative;
  isolation: isolate;
  gap: 0.82rem;
  overflow: visible;
}

.global-database-page::before {
  content: "";
  position: absolute;
  z-index: -2;
  inset: -5rem -3rem -3rem;
  background:
    radial-gradient(circle at 18% 8%, rgba(255, 250, 235, 0.68), transparent 22rem),
    radial-gradient(circle at 84% 10%, rgba(204, 225, 235, 0.52), transparent 26rem),
    radial-gradient(circle at 56% 98%, rgba(193, 219, 204, 0.46), transparent 30rem),
    linear-gradient(135deg, #f6efe3 0%, #edf3ed 50%, #dfece8 100%);
}

.global-database-page::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -1rem;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(11, 27, 46, 0.026) 1px, transparent 1px),
    linear-gradient(180deg, rgba(11, 27, 46, 0.02) 1px, transparent 1px);
  background-size: 4rem 4rem;
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.85), transparent 95%);
}

.global-database-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.global-database-count {
  display: inline-flex;
  align-items: baseline;
  gap: 0.42rem;
  padding: 0.48rem 0.72rem;
  border: 1px solid rgba(24, 75, 97, 0.12);
  border-radius: 999px;
  color: #5e6b76;
  background: rgba(255, 255, 255, 0.58);
  box-shadow: 0 16px 42px rgba(33, 78, 94, 0.08);
  backdrop-filter: blur(18px);
}

.global-database-count strong {
  color: #0b1b2e;
}

.global-database-count span {
  font-size: 0.72rem;
  font-weight: 850;
}

.global-database-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
}

.global-database-metric {
  display: grid;
  gap: 0.18rem;
  padding: 0.76rem 0.86rem;
  border: 1px solid rgba(24, 75, 97, 0.10);
  border-radius: 1rem;
  background:
    radial-gradient(circle at 92% 0%, rgba(var(--metric-rgb, 31, 111, 175), 0.13), transparent 7rem),
    rgba(255, 255, 255, 0.62);
  box-shadow: 0 18px 48px rgba(33, 78, 94, 0.075);
  backdrop-filter: blur(18px);
}

.global-database-metric.accent-blue { --metric-rgb: 31, 111, 175; }
.global-database-metric.accent-green { --metric-rgb: 31, 122, 86; }
.global-database-metric.accent-gold { --metric-rgb: 198, 144, 49; }
.global-database-metric.accent-violet { --metric-rgb: 126, 96, 176; }

.global-database-metric span {
  color: #6b7580;
  font-size: 0.64rem;
  font-weight: 900;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.global-database-metric strong {
  color: #0b1b2e;
  font-size: 1.25rem;
}

.global-database-metric small {
  color: #667580;
  font-weight: 760;
}

.global-database-toolbar {
  grid-template-columns: minmax(24rem, 1fr) minmax(12rem, 0.26fr) minmax(10rem, 0.22fr);
  border: 1px solid rgba(255, 255, 255, 0.52);
  background: rgba(255, 255, 255, 0.58);
  box-shadow: 0 18px 54px rgba(33, 78, 94, 0.08);
  backdrop-filter: blur(20px);
}

.global-database-table-wrap {
  max-height: calc(100vh - 21rem);
  border-color: rgba(255, 255, 255, 0.58);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.72), rgba(244, 249, 248, 0.52));
  box-shadow: 0 26px 76px rgba(33, 78, 94, 0.11);
  backdrop-filter: blur(18px);
}

.global-database-table th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: rgba(247, 251, 250, 0.92);
  backdrop-filter: blur(18px);
}

.global-detail-button,
.ficha-card-detail-button {
  display: inline-grid;
  place-items: center;
  width: 2.2rem;
  height: 2.2rem;
  border: 1px solid rgba(31, 111, 175, 0.12);
  border-radius: 50%;
  color: #0b1b2e;
  background: rgba(255, 255, 255, 0.74);
  box-shadow: 0 12px 28px rgba(11, 27, 46, 0.08);
  cursor: pointer;
}

.global-detail-button svg,
.ficha-card-detail-button svg {
  width: 1rem;
  height: 1rem;
  transform: none;
}

.global-detail-button:hover,
.ficha-card-detail-button:hover {
  transform: translateY(-1px);
  border-color: rgba(31, 111, 175, 0.22);
  box-shadow: 0 16px 36px rgba(11, 27, 46, 0.12);
}

.ficha-card-detail-button {
  justify-self: end;
  margin-top: -0.18rem;
}

.participant-detail-page {
  width: min(100%, 96rem);
  gap: 1rem;
}

.participant-detail-grid {
  display: grid;
  grid-template-columns: minmax(24rem, 1fr) minmax(18rem, 0.42fr);
  gap: 1rem;
  align-items: start;
}

.participant-detail-side {
  display: grid;
  gap: 0.75rem;
}

.participant-detail-panel {
  display: grid;
  gap: 0.5rem;
  padding: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.54);
  border-radius: 1.2rem;
  background: rgba(255, 255, 255, 0.52);
  box-shadow: 0 20px 48px rgba(22, 58, 68, 0.10);
  backdrop-filter: blur(22px);
}

.participant-detail-panel > span {
  color: #6b7580;
  font-size: 0.66rem;
  font-weight: 900;
  letter-spacing: 0.075em;
  text-transform: uppercase;
}

.participant-detail-panel p {
  margin: 0;
  color: #45535f;
  line-height: 1.5;
}

.participant-history-list {
  display: grid;
  gap: 0.45rem;
}

.participant-history-list div {
  padding: 0.68rem;
  border: 1px solid rgba(24, 75, 97, 0.08);
  border-radius: 0.86rem;
  background: rgba(255, 255, 255, 0.48);
}

.participant-history-list strong,
.participant-history-list span,
.participant-history-list small {
  display: block;
}

.participant-history-list strong {
  color: #0b1b2e;
}

.participant-history-list span,
.participant-history-list small {
  margin-top: 0.14rem;
  color: #667580;
  font-size: 0.74rem;
  font-weight: 760;
}

.community-related-fichas {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
  gap: 0.55rem;
}

.community-related-fichas button {
  text-align: left;
  padding: 0.78rem;
  border: 1px solid rgba(31, 111, 175, 0.10);
  border-radius: 0.95rem;
  background: rgba(255, 255, 255, 0.68);
  box-shadow: 0 12px 30px rgba(11, 27, 46, 0.05);
  cursor: pointer;
}

.community-related-fichas strong,
.community-related-fichas span {
  display: block;
}

.community-related-fichas strong {
  color: #0b1b2e;
}

.community-related-fichas span {
  margin-top: 0.18rem;
  color: #667580;
  font-size: 0.74rem;
  font-weight: 760;
}

.global-audit-id code {
  display: inline-flex;
  padding: 0.16rem 0.36rem;
  border: 1px solid rgba(24, 75, 97, 0.13);
  border-radius: 0.42rem;
  color: #183149;
  background: rgba(241, 247, 248, 0.88);
  font-family: inherit;
  font-size: 0.68rem;
  font-weight: 850;
  letter-spacing: 0.01em;
}

.global-base-page .ficha-status-badge {
  padding: 0.18rem 0.42rem;
  gap: 0.22rem;
  font-size: 0.64rem;
  box-shadow: none;
}

.global-base-page .ficha-status-badge svg {
  width: 0.78rem;
  height: 0.78rem;
}

.global-confirmation-badge {
  display: inline-flex;
  align-items: center;
  min-height: 1.5rem;
  padding: 0.2rem 0.46rem;
  border: 1px solid rgba(24, 75, 97, 0.12);
  border-radius: 999px;
  color: #263746;
  background: rgba(248, 250, 250, 0.86);
  font-size: 0.66rem;
  font-weight: 850;
  white-space: nowrap;
}

.global-confirmation-badge.link-enviado,
.global-confirmation-badge.confirmada,
.global-confirmation-badge.en-registro,
.global-confirmation-badge.sentada {
  border-color: rgba(31, 111, 175, 0.15);
  color: #1d557d;
  background: rgba(232, 243, 249, 0.82);
}

.global-confirmation-badge.sentada {
  border-color: rgba(31, 122, 86, 0.16);
  color: #1f6f50;
  background: rgba(231, 245, 237, 0.82);
}

.app-shell.is-fichas-route .ficha-row td {
  transition: background 180ms ease, box-shadow 180ms ease;
}

.app-shell.is-fichas-route .ficha-row.status-declarada td {
  background:
    linear-gradient(90deg, rgba(151, 103, 167, 0.14), rgba(151, 103, 167, 0.06));
}

.app-shell.is-fichas-route .ficha-row.status-conanticipo td {
  background:
    linear-gradient(90deg, rgba(31, 122, 86, 0.16), rgba(31, 122, 86, 0.07));
}

.app-shell.is-fichas-route .ficha-row.status-pagada td,
.app-shell.is-fichas-route .ficha-row.status-linkenviado td,
.app-shell.is-fichas-route .ficha-row.status-confirmada td,
.app-shell.is-fichas-route .ficha-row.status-enregistro td,
.app-shell.is-fichas-route .ficha-row.status-sentada td {
  background:
    linear-gradient(90deg, rgba(31, 111, 175, 0.10), rgba(31, 111, 175, 0.04));
}

.app-shell.is-fichas-route .ficha-row.status-vencida td,
.app-shell.is-fichas-route .ficha-row.status-rezagada td {
  background:
    linear-gradient(90deg, rgba(141, 60, 60, 0.11), rgba(141, 60, 60, 0.04));
}

.ficha-id-cell {
  color: #52616c;
}

.ficha-id-details {
  max-width: 100%;
}

.ficha-id-details summary {
  display: grid;
  gap: 0.1rem;
  cursor: pointer;
  list-style: none;
}

.ficha-id-details summary::-webkit-details-marker {
  display: none;
}

.ficha-id-details summary strong {
  color: #0b1b2e;
  font-size: 0.78rem;
}

.ficha-id-details summary span {
  margin: 0 !important;
  font-size: 0.68rem !important;
}

.ficha-id-details code {
  display: block;
  margin-top: 0.35rem;
  padding: 0.35rem 0.45rem;
  border: 1px solid rgba(23, 58, 94, 0.10);
  border-radius: 0.58rem;
  color: #0b1b2e;
  background: rgba(255, 255, 255, 0.62);
  font-size: 0.66rem;
  overflow-wrap: anywhere;
}

.ficha-state-select {
  min-width: 11rem;
  font-weight: 850;
}

.app-shell.is-fichas-route .ficha-state-select {
  min-width: 0;
  padding-inline: 0.45rem;
  font-size: 0.72rem;
}

.ficha-payment-controls {
  display: grid;
  grid-template-columns: minmax(5rem, 0.7fr) minmax(8rem, 1fr);
  gap: 0.4rem;
}

.ficha-payment-ledger {
  display: grid;
  gap: 0.5rem;
}

.ficha-payment-summary {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.45rem 0.55rem;
  border: 1px solid rgba(31, 122, 86, 0.10);
  border-radius: 0.75rem;
  background: rgba(247, 250, 247, 0.72);
}

.ficha-payment-summary strong {
  color: #0b1b2e;
  font-size: 0.78rem;
}

.ficha-payment-summary span {
  margin: 0 !important;
  color: #52616c !important;
  font-size: 0.68rem !important;
  font-weight: 850;
}

.ficha-payment-blocks {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.42rem;
}

.ficha-abono-form {
  display: grid;
  grid-template-columns: minmax(4.8rem, 0.7fr) minmax(7rem, 0.85fr) minmax(8rem, 1fr) auto;
  gap: 0.42rem;
  align-items: end;
  padding: 0.48rem;
  border: 1px solid rgba(35, 101, 72, 0.10);
  border-radius: 0.78rem;
  background: rgba(255, 255, 255, 0.50);
}

.ficha-card .ficha-abono-form {
  grid-template-columns: 1fr 1fr;
}

.ficha-abono-form > span {
  align-self: center;
  color: #174f3a;
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
}

.ficha-abono-form input,
.ficha-abono-form select {
  width: 100%;
  min-height: 2rem;
  padding: 0 0.5rem;
  border: 1px solid rgba(35, 101, 72, 0.12);
  border-radius: 0.66rem;
  color: #0b1b2e;
  background: rgba(255, 255, 255, 0.88);
  font-size: 0.72rem;
  outline: 0;
}

.ficha-abono-form button {
  min-height: 2rem;
  padding-inline: 0.78rem;
  border: 1px solid rgba(31, 122, 86, 0.16);
  border-radius: 999px;
  color: #174f3a;
  background: rgba(31, 122, 86, 0.08);
  font-size: 0.7rem;
  font-weight: 850;
  cursor: pointer;
}

.ficha-arrival-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.42rem;
  width: 100%;
  min-height: 2.15rem;
  padding: 0 0.72rem;
  border: 1px solid rgba(31, 111, 175, 0.18);
  border-radius: 0.72rem;
  color: #1f6faf;
  background: rgba(31, 111, 175, 0.08);
  font-size: 0.72rem;
  font-weight: 880;
  cursor: pointer;
}

.ficha-arrival-action span {
  display: grid;
  place-items: center;
  width: 1.2rem;
  height: 1.2rem;
  color: inherit;
}

.ficha-arrival-action svg {
  width: 1rem;
  height: 1rem;
}

.ficha-arrival-action.is-ready:hover {
  border-color: rgba(31, 111, 175, 0.32);
  background: rgba(31, 111, 175, 0.13);
}

.ficha-arrival-action.is-done {
  color: #1f7a56;
  border-color: rgba(31, 122, 86, 0.20);
  background: rgba(31, 122, 86, 0.10);
}

.ficha-arrival-action.is-blocked {
  color: #8d3c3c;
  border-color: rgba(141, 60, 60, 0.16);
  background: rgba(141, 60, 60, 0.07);
}

.ficha-arrival-action:disabled {
  cursor: not-allowed;
}

.ficha-payment-entry {
  display: grid;
  gap: 0.32rem;
  padding: 0.48rem;
  border: 1px solid rgba(35, 101, 72, 0.10);
  border-radius: 0.78rem;
  background: rgba(255, 255, 255, 0.58);
}

.ficha-payment-entry.has-payment {
  border-color: rgba(31, 122, 86, 0.20);
  background:
    linear-gradient(145deg, rgba(31, 122, 86, 0.08), rgba(255, 255, 255, 0.58));
}

.ficha-payment-entry.is-covered {
  opacity: 0.62;
}

.ficha-payment-empty-slot {
  min-height: 6.3rem;
  display: grid;
  place-items: center;
  padding: 0.65rem;
  border: 1px dashed rgba(23, 58, 94, 0.12);
  border-radius: 0.76rem;
  color: #64717c;
  background: rgba(255, 255, 255, 0.36);
  text-align: center;
  font-size: 0.72rem;
  font-weight: 800;
}

.ficha-payment-entry > span {
  margin: 0 !important;
  color: #174f3a !important;
  font-size: 0.68rem !important;
  font-weight: 900;
  text-transform: uppercase;
}

.ficha-payment-entry input,
.ficha-payment-entry select {
  width: 100%;
  min-height: 2rem;
  padding: 0 0.5rem;
  border: 1px solid rgba(35, 101, 72, 0.12);
  border-radius: 0.66rem;
  color: #0b1b2e;
  background: rgba(255, 255, 255, 0.88);
  font-size: 0.72rem;
  outline: 0;
}

.ficha-payment-entry small {
  color: #64717c;
  font-size: 0.66rem;
  font-weight: 750;
}

.ficha-payment-entry input:disabled,
.ficha-payment-entry select:disabled,
.ficha-payment-entry button:disabled {
  cursor: not-allowed;
  opacity: 0.72;
}

.ficha-payment-entry select.method-efectivo,
.ficha-abono-form select.method-efectivo,
.ficha-payment-movement.method-efectivo,
.payment-method-select.method-efectivo,
.payment-total-pill.method-efectivo {
  color: #0f7650;
  background: rgba(31, 122, 86, 0.16);
  border-color: rgba(31, 122, 86, 0.34);
  font-weight: 920;
}

.ficha-payment-entry select.method-transferencia,
.ficha-abono-form select.method-transferencia,
.ficha-payment-movement.method-transferencia,
.payment-method-select.method-transferencia,
.payment-total-pill.method-transferencia {
  color: #b65d16;
  background: rgba(218, 139, 58, 0.18);
  border-color: rgba(218, 139, 58, 0.38);
  font-weight: 920;
}

.ficha-payment-entry select.method-tarjeta,
.ficha-abono-form select.method-tarjeta,
.ficha-payment-movement.method-tarjeta,
.payment-method-select.method-tarjeta,
.payment-total-pill.method-tarjeta {
  color: #5f45b0;
  background: rgba(106, 85, 170, 0.16);
  border-color: rgba(106, 85, 170, 0.34);
  font-weight: 920;
}

.ficha-payment-entry button {
  min-height: 2rem;
  border: 1px solid rgba(31, 122, 86, 0.16);
  border-radius: 999px;
  color: #174f3a;
  background: rgba(31, 122, 86, 0.08);
  font-size: 0.7rem;
  font-weight: 850;
}

.ficha-payment-history {
  display: grid;
  gap: 0.32rem;
}

.ficha-history-toggle {
  justify-self: start;
  min-height: 1.8rem;
  padding: 0 0.62rem;
  border: 1px solid rgba(23, 58, 94, 0.10);
  border-radius: 999px;
  color: #52616c;
  background: rgba(255, 255, 255, 0.54);
  font-size: 0.66rem;
  font-weight: 850;
  cursor: pointer;
}

.ficha-payment-history.is-empty {
  padding: 0.45rem 0.55rem;
  border: 1px dashed rgba(35, 101, 72, 0.13);
  border-radius: 0.7rem;
  color: #64717c;
  font-size: 0.72rem;
}

.ficha-payment-movement {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.18rem 0.5rem;
  padding: 0.45rem 0.55rem;
  border: 1px solid rgba(23, 58, 94, 0.08);
  border-radius: 0.72rem;
  background: rgba(255, 250, 242, 0.58);
}

.ficha-payment-movement strong {
  color: #0b1b2e;
}

.ficha-payment-movement span,
.ficha-payment-movement small,
.ficha-payment-movement em {
  margin: 0 !important;
  color: #64717c !important;
  font-size: 0.68rem !important;
}

.ficha-payment-movement em {
  grid-column: 1;
  font-style: normal;
  color: #52616c !important;
}

.ficha-payment-movement.method-efectivo span {
  color: #0f7650 !important;
  font-weight: 920;
}

.ficha-payment-movement.method-transferencia span {
  color: #b65d16 !important;
  font-weight: 920;
}

.ficha-payment-movement.method-tarjeta span {
  color: #5f45b0 !important;
  font-weight: 920;
}

.ficha-payment-movement small {
  grid-row: 1 / span 2;
  grid-column: 2;
  align-self: center;
}

.ficha-payment-movement.is-audit {
  border-color: rgba(151, 103, 167, 0.18);
  background: rgba(151, 103, 167, 0.08);
}

.ficha-indicator-groups {
  position: relative;
  z-index: 20;
  isolation: isolate;
  width: max-content;
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  padding: 0.34rem 0.42rem 0.34rem 0.52rem;
  border: 1px solid rgba(23, 58, 94, 0.10);
  border-radius: 999px;
  background:
    linear-gradient(90deg, rgba(31, 122, 86, 0.12), rgba(255, 255, 255, 0.68) 33%, rgba(31, 111, 175, 0.07) 66%, rgba(255, 255, 255, 0.62)),
    linear-gradient(145deg, rgba(255, 255, 255, 0.78), rgba(226, 239, 234, 0.66));
  box-shadow:
    inset 0.42rem 0 0 rgba(31, 122, 86, 0.13),
    inset 0 1px 0 rgba(255, 255, 255, 0.72),
    0 8px 18px rgba(11, 27, 46, 0.045);
  overflow: visible;
}

.ficha-indicator-groups::before {
  content: "";
  position: absolute;
  z-index: 1;
  left: 0.35rem;
  top: 0.42rem;
  bottom: 0.42rem;
  width: 0.16rem;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(34, 141, 100, 0.92), rgba(31, 111, 175, 0.78));
  box-shadow:
    0 0 0 3px rgba(31, 122, 86, 0.08),
    0 0 18px rgba(31, 122, 86, 0.22);
}

.ficha-indicator-pair {
  position: relative;
  z-index: 2;
  isolation: isolate;
  display: inline-flex;
  flex-direction: column;
  gap: 0.18rem;
  padding: 0.26rem 0.32rem;
  border-radius: 999px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.78), rgba(242, 247, 246, 0.58));
  box-shadow:
    inset 0 0 0 1px rgba(23, 58, 94, 0.055),
    0 4px 10px rgba(11, 27, 46, 0.035);
  overflow: visible;
}

.ficha-indicator-pair:hover,
.ficha-indicator-pair:focus-within {
  z-index: 45;
}

.ficha-indicator-pair:first-child {
  border: 1px solid rgba(31, 122, 86, 0.22);
  background:
    linear-gradient(180deg, rgba(232, 246, 238, 0.94), rgba(255, 255, 255, 0.70));
  box-shadow:
    inset 0.28rem 0 0 rgba(31, 122, 86, 0.12),
    0 6px 14px rgba(31, 122, 86, 0.085);
}

.ficha-indicator-pair:first-child::after {
  content: "";
  position: absolute;
  left: 0.12rem;
  top: 0.22rem;
  bottom: 0.22rem;
  width: 0.14rem;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(34, 141, 100, 0.95), rgba(31, 111, 175, 0.74));
  box-shadow:
    0 0 0 0.18rem rgba(31, 122, 86, 0.08),
    0 0 1rem rgba(31, 122, 86, 0.18);
}

.ficha-indicator-pair + .ficha-indicator-pair::before {
  content: "";
  position: absolute;
  left: -0.26rem;
  top: 0.26rem;
  bottom: 0.26rem;
  width: 1px;
  border-radius: 999px;
  background: linear-gradient(180deg, transparent, rgba(23, 58, 94, 0.16), transparent);
}

.ficha-indicator-dot {
  position: relative;
  z-index: 1;
  width: 0.72rem;
  height: 0.72rem;
  display: inline-block;
  border: 1px solid rgba(82, 97, 108, 0.18);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: inset 0 1px 2px rgba(11, 27, 46, 0.05);
}

.ficha-indicator-dot:hover,
.ficha-indicator-dot:focus-visible {
  z-index: 70;
}

.ficha-indicator-dot::after {
  content: attr(data-tooltip);
  position: absolute;
  z-index: 5000;
  left: 50%;
  bottom: calc(100% + 0.55rem);
  min-width: max-content;
  padding: 0.36rem 0.52rem;
  border: 1px solid rgba(23, 58, 94, 0.14);
  border-radius: 999px;
  color: #0b1b2e;
  background: rgba(255, 250, 242, 0.98);
  box-shadow: 0 14px 32px rgba(11, 27, 46, 0.16);
  font-size: 0.67rem;
  font-weight: 850;
  line-height: 1;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 0.25rem);
  transition: opacity 150ms ease, transform 150ms ease;
  white-space: nowrap;
}

.ficha-indicator-dot::before {
  content: "";
  position: absolute;
  z-index: 4999;
  left: 50%;
  bottom: calc(100% + 0.34rem);
  width: 0.42rem;
  height: 0.42rem;
  border-right: 1px solid rgba(23, 58, 94, 0.12);
  border-bottom: 1px solid rgba(23, 58, 94, 0.12);
  background: rgba(255, 250, 242, 0.98);
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 0.22rem) rotate(45deg);
  transition: opacity 150ms ease, transform 150ms ease;
}

.ficha-indicator-dot:hover::after,
.ficha-indicator-dot:hover::before,
.ficha-indicator-dot:focus-visible::after,
.ficha-indicator-dot:focus-visible::before {
  opacity: 1;
  transform: translate(-50%, 0) rotate(0deg);
}

.ficha-indicator-dot:hover::before,
.ficha-indicator-dot:focus-visible::before {
  transform: translate(-50%, 0) rotate(45deg);
}

.ficha-indicator-dot.is-active {
  border-color: rgba(31, 122, 86, 0.26);
  background:
    radial-gradient(circle at 35% 30%, rgba(255, 255, 255, 0.75), transparent 0.22rem),
    #1f7a56;
  box-shadow: 0 0 0 3px rgba(31, 122, 86, 0.08);
}

.ficha-card.is-highlighted {
  border-color: rgba(31, 111, 175, 0.36);
  box-shadow:
    0 0 0 4px rgba(31, 111, 175, 0.10),
    0 22px 56px rgba(11, 27, 46, 0.12);
  animation: fichaFocusPulse 1150ms ease both;
}

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

.ficha-mini-timeline {
  display: flex;
  gap: 0.18rem;
  flex-wrap: wrap;
  margin-top: 0.55rem;
}

.ficha-mini-timeline span {
  margin: 0 !important;
  min-height: 1.18rem;
  padding: 0.14rem 0.36rem;
  border: 1px solid rgba(23, 58, 94, 0.08);
  border-radius: 999px;
  color: #667480 !important;
  background: rgba(255, 255, 255, 0.45);
  font-size: 0.58rem !important;
  font-weight: 850;
  line-height: 1;
}

.ficha-mini-timeline span.is-complete {
  color: #174f3a !important;
  border-color: rgba(31, 122, 86, 0.18);
  background: rgba(31, 122, 86, 0.10);
}

.ficha-mini-timeline span.is-warning {
  color: #8d3c3c !important;
  border-color: rgba(141, 60, 60, 0.18);
  background: rgba(141, 60, 60, 0.10);
}

.app-shell.is-fichas-route .ficha-payment-controls {
  grid-template-columns: 1fr;
}

.app-shell.is-fichas-route .ficha-payment-controls input,
.app-shell.is-fichas-route .ficha-payment-controls select {
  min-height: 2.15rem;
  padding-inline: 0.5rem;
  font-size: 0.72rem;
}

.ficha-payment-date {
  display: grid;
  gap: 0.25rem;
}

.ficha-payment-date input {
  width: 100%;
  min-height: 2.15rem;
  padding-inline: 0.5rem;
  border: 1px solid rgba(35, 101, 72, 0.14);
  border-radius: 0.78rem;
  color: #0b1b2e;
  background: rgba(255, 255, 255, 0.88);
  font-size: 0.72rem;
}

.ficha-payment-date span {
  margin-top: 0 !important;
  color: #5b6875 !important;
  font-size: 0.68rem !important;
  font-weight: 750;
}

.sensitive-dot {
  width: max-content;
  margin-top: 0.3rem;
  padding: 0.25rem 0.45rem;
  border-radius: 999px;
  color: #8d3c3c !important;
  background: rgba(160, 70, 70, 0.10);
  font-weight: 800;
}

.ficha-inline-alert {
  display: inline-flex !important;
  align-items: center;
  width: max-content;
  max-width: 15rem;
  padding: 0.32rem 0.55rem;
  border: 1px solid rgba(189, 145, 70, 0.20);
  border-radius: 999px;
  color: #9a6a1e !important;
  background: rgba(189, 145, 70, 0.11);
  font-size: 0.72rem !important;
  font-weight: 820;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ficha-inline-alert.is-sensitive {
  border-color: rgba(141, 60, 60, 0.20);
  color: #8d3c3c !important;
  background: rgba(160, 70, 70, 0.10);
}

.ficha-inline-alert.is-calm {
  border-color: rgba(31, 122, 86, 0.12);
  color: #52616c !important;
  background: rgba(31, 122, 86, 0.06);
}

.office-ficha-alert {
  display: grid;
  gap: 0.15rem;
  max-width: 16rem;
  margin-top: 0.1rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid rgba(31, 122, 86, 0.14);
  border-radius: 0.85rem;
  color: #236548;
  background: rgba(31, 122, 86, 0.08);
}

.office-ficha-alert strong {
  font-size: 0.9rem;
}

.office-ficha-alert small {
  display: block;
  overflow: hidden;
  color: #526b61;
  font-size: 0.72rem;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.office-ficha-alert.has-unread {
  border-color: rgba(189, 145, 70, 0.24);
  color: #9a6a1e;
  background: rgba(189, 145, 70, 0.11);
}

.global-base-count {
  min-width: 8rem;
  text-align: right;
}

.ficha-empty {
  margin: 0;
  color: #64717c;
}

@media (max-width: 980px) {
  .community-live-page {
    grid-template-columns: 1fr;
  }

  .ficha-leader-hero,
  .fichas-ops-head,
  .global-base-head,
  .ficha-leader-layout,
  .fichas-ops-grid {
    grid-template-columns: 1fr;
  }

  .ficha-leader-hero,
  .fichas-ops-head,
  .global-base-head {
    display: grid;
  }

  .ficha-form-grid,
  .fichas-toolbar,
  .global-query-toolbar {
    grid-template-columns: 1fr;
  }

  .office-launcher {
    grid-template-columns: 1fr;
  }

  .office-launcher .office-access-grid {
    grid-template-columns: 1fr;
    grid-template-areas:
      "fichas"
      "registro"
      "admin";
  }

  .office-library-shortcuts {
    grid-column: 1;
    margin-top: 2rem;
  }

  .ficha-widget-grid,
  .ficha-leader-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .ficha-widget-grid,
  .ficha-leader-kpis,
  .ficha-payment-controls {
    grid-template-columns: 1fr;
  }

  .declare-life-button {
    width: 100%;
    justify-content: center;
  }
}

.app-shell.is-route-oficinas .view,
.app-shell.is-route-oficinas .office-page {
  overflow-x: hidden;
}

.app-shell.is-route-oficinas .main-content {
  background:
    radial-gradient(circle at 86% 10%, rgba(112, 177, 130, 0.22), transparent 32rem),
    radial-gradient(circle at 12% 84%, rgba(207, 164, 90, 0.10), transparent 28rem),
    linear-gradient(145deg, #eef6ef 0%, #e6f0e8 45%, #dbe9df 100%);
}

.app-shell.is-route-oficinas .registry-overview,
.app-shell.is-route-oficinas .office-registry-page {
  width: min(100%, 76rem);
}

.app-shell.is-route-oficinas .generation-grid {
  width: min(100%, 76rem);
}

.app-shell.is-route-oficinas .registry-toolbar,
.app-shell.is-route-oficinas .metric-card,
.app-shell.is-route-oficinas .manual-form,
.app-shell.is-route-oficinas .participant-card,
.app-shell.is-route-oficinas .admin-row,
.app-shell.is-route-oficinas .export-panel,
.app-shell.is-route-oficinas .admin-heading {
  border-color: rgba(35, 101, 72, 0.14);
  border-radius: 1.2rem;
  background:
    radial-gradient(circle at 90% 0%, rgba(112, 177, 130, 0.08), transparent 12rem),
    rgba(255, 255, 255, 0.86);
  box-shadow: 0 18px 42px rgba(29, 58, 45, 0.08);
}

.app-shell.is-route-oficinas .registry-toolbar {
  align-items: center;
}

.app-shell.is-route-oficinas .participant-notes {
  border-color: rgba(35, 101, 72, 0.10);
  background: rgba(247, 250, 247, 0.72);
}

.app-shell.is-route-oficinas .office-page::before {
  display: none;
}

.app-shell.is-route-oficinas .topbar h1 {
  color: #0b1b2e;
}

.app-shell.is-route-oficinas .topbar .eyebrow {
  color: #5a6876;
  opacity: 1;
}

.app-shell.is-route-oficinas .office-grid .quick-card {
  border-color: rgba(91, 150, 111, 0.34);
  border-top-color: rgba(112, 177, 130, 0.88);
  background:
    linear-gradient(145deg, rgba(255, 250, 242, 0.88), rgba(232, 241, 229, 0.78)),
    radial-gradient(circle at 94% 0%, rgba(42, 113, 76, 0.22), transparent 12rem);
}

.app-shell.is-route-oficinas .office-grid .quick-card .card-icon {
  color: #1f6f4b;
  background:
    linear-gradient(145deg, rgba(42, 113, 76, 0.16), rgba(244, 234, 221, 0.22));
}

.app-shell.is-route-oficinas .office-grid .quick-card:hover {
  border-color: rgba(112, 177, 130, 0.46);
  box-shadow: 0 20px 48px rgba(5, 22, 16, 0.22);
}

.quick-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 1rem 0 2rem;
}

.grid.two,
.profile-grid {
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.75fr);
}

.media-grid,
.training-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.people-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.registration-shell {
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.55fr);
  align-items: start;
}

.card {
  padding: 1rem;
}

.quick-card {
  min-height: 9rem;
  display: grid;
  align-content: start;
  gap: 0.5rem;
  color: var(--ink);
  background:
    linear-gradient(145deg, rgba(255, 250, 242, 0.82), rgba(255, 255, 255, 0.76)),
    linear-gradient(180deg, rgba(var(--section-accent-rgb), 0.045), transparent);
  text-align: left;
}

.card h3,
.panel h3 {
  margin: 0 0 0.35rem;
  font-size: 1rem;
}

.editorial-block,
.panel {
  padding: clamp(1rem, 3vw, 1.7rem);
}

.section-heading {
  margin: 0.2rem 0 0.9rem;
}

.section-heading h2,
.editorial-block h2 {
  font-size: clamp(1.45rem, 3vw, 2.35rem);
}

.hero {
  display: none;
}

.knowledge-map {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
  padding: 0.9rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background:
    linear-gradient(90deg, rgba(35, 135, 201, 0.07) 1px, transparent 1px),
    linear-gradient(rgba(82, 194, 170, 0.06) 1px, transparent 1px),
    rgba(255, 255, 255, 0.74);
  background-size: 3rem 3rem;
}

.map-node {
  min-height: 7.2rem;
  padding: 1rem;
  border: 1px solid rgba(35, 135, 201, 0.14);
  border-radius: var(--radius);
  background: rgba(255, 253, 248, 0.92);
}

.map-node strong {
  display: block;
  margin-bottom: 0.45rem;
}

.map-node small {
  color: var(--muted);
  line-height: 1.55;
}

.map-node.center {
  border-color: rgba(82, 194, 170, 0.48);
  background: #f7fcfa;
}

.list {
  display: grid;
  gap: 0.75rem;
}

.list-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.86);
}

.list-row h3 {
  margin: 0 0 0.2rem;
}

.video-frame,
.image-frame {
  overflow: hidden;
  border-radius: var(--radius);
  border: 1px solid var(--line);
  background: #102123;
}

.video-frame video,
.image-frame img {
  display: block;
  width: 100%;
}

.image-frame img {
  height: 18rem;
  object-fit: cover;
}

.video-caption {
  padding: 0.85rem 1rem;
  color: #e6f0ee;
  background: #102123;
}

.tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.tab {
  min-height: 2.4rem;
  padding: 0.45rem 0.8rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--muted);
}

.tab.is-active {
  color: #fff;
  border-color: var(--cc-blue);
  background: var(--cc-blue);
}

.chat-shell {
  display: grid;
  grid-template-columns: minmax(13rem, 0.42fr) minmax(0, 1fr);
  overflow: hidden;
}

.app-shell.is-route-asistente .view {
  height: 100%;
  overflow: hidden;
}

.assistant-home-shell {
  width: min(100%, 64rem);
  height: 100%;
  margin: 0 auto;
  border: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  grid-template-columns: 1fr;
  place-items: center;
}

.assistant-home {
  width: min(100%, 54rem);
  min-height: min(100%, 38rem);
  display: grid;
  grid-template-rows: auto auto minmax(0, auto) auto;
  align-content: center;
  gap: clamp(1rem, 2vw, 1.35rem);
}

.assistant-home-heading {
  display: grid;
  justify-items: center;
  gap: 0.8rem;
  color: rgba(255, 250, 242, 0.96);
  text-align: center;
}

.assistant-mark {
  width: 3rem;
  height: 3rem;
  display: grid;
  place-items: center;
  border: 1px solid rgba(216, 180, 111, 0.24);
  border-radius: var(--radius);
  color: #d8b46f;
  background: rgba(255, 250, 242, 0.08);
  box-shadow: 0 20px 48px rgba(10, 5, 16, 0.24);
}

.assistant-mark svg {
  width: 1.35rem;
  height: 1.35rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.assistant-home-heading h2 {
  margin: 0;
  font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 1.05;
  letter-spacing: 0;
}

.assistant-suggestions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
}

.assistant-suggestion {
  min-height: 6.2rem;
  padding: 1rem;
  border: 1px solid rgba(255, 250, 242, 0.13);
  border-radius: var(--radius);
  color: rgba(255, 250, 242, 0.88);
  background:
    linear-gradient(145deg, rgba(255, 250, 242, 0.08), rgba(255, 250, 242, 0.035)),
    rgba(12, 7, 20, 0.32);
  box-shadow: 0 18px 44px rgba(10, 5, 16, 0.16);
  font-weight: 700;
  line-height: 1.35;
  text-align: left;
  cursor: pointer;
  transition: transform 160ms ease, border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.assistant-suggestion:hover {
  transform: translateY(-2px);
  border-color: rgba(216, 180, 111, 0.34);
  background:
    linear-gradient(145deg, rgba(255, 250, 242, 0.12), rgba(255, 250, 242, 0.05)),
    rgba(12, 7, 20, 0.38);
  box-shadow: 0 24px 56px rgba(10, 5, 16, 0.24);
}

.assistant-messages {
  max-height: 17rem;
  padding: 0.15rem;
  scrollbar-color: rgba(199, 171, 222, 0.32) transparent;
}

.assistant-messages:empty {
  display: none;
}

.assistant-messages .message {
  border: 1px solid rgba(255, 250, 242, 0.12);
  box-shadow: 0 14px 36px rgba(10, 5, 16, 0.16);
}

.assistant-messages .message.user {
  background: linear-gradient(135deg, rgba(98, 68, 130, 0.96), rgba(66, 39, 96, 0.96));
}

.assistant-messages .message.ai {
  color: rgba(255, 250, 242, 0.92);
  background: rgba(255, 250, 242, 0.08);
}

.assistant-compose {
  min-height: 3.75rem;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  padding: 0.5rem;
  border: 1px solid rgba(255, 250, 242, 0.16);
  border-radius: 1.35rem;
  background:
    linear-gradient(145deg, rgba(255, 250, 242, 0.12), rgba(255, 250, 242, 0.06)),
    rgba(11, 7, 18, 0.36);
  box-shadow: 0 24px 64px rgba(10, 5, 16, 0.26);
  backdrop-filter: blur(18px);
}

.assistant-compose input {
  min-height: 2.35rem;
  border: 0;
  color: rgba(255, 250, 242, 0.94);
  background: transparent;
}

.assistant-compose input::placeholder {
  color: rgba(255, 250, 242, 0.48);
}

.assistant-compose input:focus {
  box-shadow: none;
}

.assistant-send {
  display: grid;
  place-items: center;
  width: 2.35rem;
  height: 2.35rem;
  border: 1px solid rgba(216, 180, 111, 0.28);
  border-radius: 1rem;
  color: #1f142a;
  background: rgba(216, 180, 111, 0.9);
  cursor: pointer;
  transition: transform 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.assistant-send:hover {
  transform: translateY(-1px);
  background: rgba(236, 204, 138, 0.96);
  box-shadow: 0 14px 34px rgba(10, 5, 16, 0.24);
}

.assistant-send svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (max-width: 900px) {
  .assistant-home {
    align-content: start;
  }

  .assistant-suggestions {
    grid-template-columns: 1fr;
  }
}

.prompt-list {
  display: grid;
  align-content: start;
  gap: 0.6rem;
  padding: 1rem;
  border-right: 1px solid var(--line);
  background: rgba(246, 250, 247, 0.86);
}

.prompt-button {
  width: 100%;
  height: auto;
  white-space: normal;
  text-align: left;
}

.chat-window {
  min-height: 28rem;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
}

.messages {
  display: grid;
  align-content: start;
  gap: 0.85rem;
  padding: 1rem;
  overflow: auto;
}

.message {
  max-width: 78%;
  padding: 0.85rem 1rem;
  border-radius: var(--radius);
  line-height: 1.55;
}

.message.user {
  justify-self: end;
  color: #fff;
  background: var(--cc-blue);
}

.message.ai {
  justify-self: start;
  background: var(--soft);
}

.chat-compose {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.7rem;
  padding: 1rem;
  border-top: 1px solid var(--line);
}

.messages-page {
  height: 100%;
  min-height: 34rem;
  display: grid;
  grid-template-columns: minmax(18rem, 0.34fr) minmax(0, 1fr);
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background:
    radial-gradient(circle at 12% 8%, rgba(62, 111, 163, 0.10), transparent 26rem),
    radial-gradient(circle at 85% 12%, rgba(82, 194, 170, 0.09), transparent 28rem),
    transparent;
  box-shadow: none;
}

.conversation-column {
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  border-right: 1px solid rgba(23, 58, 94, 0.08);
  background: rgba(255, 250, 242, 0.16);
  backdrop-filter: blur(10px);
}

.messages-heading {
  padding: 1rem 1rem 0.7rem;
}

.messages-heading h2 {
  margin: 0;
  font-size: 1.35rem;
}

.conversation-search {
  display: grid;
  gap: 0.35rem;
  padding: 0.45rem 1rem 0.8rem;
  color: #536469;
  font-size: 0.78rem;
  font-weight: 750;
}

.conversation-search input,
.message-compose input {
  width: 100%;
  min-height: 2.55rem;
  padding: 0 0.85rem;
  border: 1px solid rgba(23, 58, 94, 0.10);
  border-radius: 999px;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.92);
  outline: 0;
}

.conversation-search input:focus,
.message-compose input:focus {
  border-color: rgba(35, 135, 201, 0.42);
  box-shadow: 0 0 0 3px rgba(35, 135, 201, 0.10);
}

.conversation-list {
  min-height: 0;
  display: grid;
  align-content: start;
  gap: 0.45rem;
  padding: 0.55rem 0.75rem 0.9rem;
  overflow: auto;
}

.conversation-item {
  position: relative;
  width: 100%;
  display: grid;
  grid-template-columns: 2.7rem minmax(0, 1fr) auto;
  gap: 0.7rem;
  align-items: center;
  padding: 0.72rem;
  border: 1px solid transparent;
  border-radius: var(--radius);
  color: var(--ink);
  background: transparent;
  text-align: left;
  transition: transform 160ms ease, background 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.message-user-result {
  grid-template-columns: 2.7rem minmax(0, 1fr);
}

.message-user-result strong {
  overflow: hidden;
  color: var(--ink);
  font-size: 0.94rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.conversation-item:hover,
.conversation-item.is-active {
  transform: translateY(-1px);
  border-color: rgba(35, 135, 201, 0.16);
  background: rgba(255, 255, 255, 0.76);
  box-shadow: 0 10px 22px rgba(31, 45, 47, 0.05);
}

.conversation-item.has-unread .conversation-last {
  color: var(--ink);
  font-weight: 760;
}

.conversation-avatar {
  display: grid;
  place-items: center;
  width: 2.7rem;
  height: 2.7rem;
  overflow: hidden;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(135deg, var(--cc-blue), var(--cc-green));
  font-size: 0.78rem;
  font-weight: 850;
}

.conversation-avatar.is-large {
  width: 3.2rem;
  height: 3.2rem;
}

.conversation-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.conversation-summary,
.conversation-line,
.conversation-last {
  min-width: 0;
}

.conversation-line {
  display: flex;
  justify-content: space-between;
  gap: 0.6rem;
  align-items: center;
}

.conversation-line strong,
.conversation-last {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.conversation-line strong {
  font-size: 0.92rem;
}

.conversation-line small,
.conversation-last {
  color: var(--muted);
  font-size: 0.78rem;
}

.conversation-last {
  display: block;
  margin-top: 0.18rem;
}

.unread-dot {
  display: grid;
  place-items: center;
  min-width: 1.35rem;
  height: 1.35rem;
  padding: 0 0.32rem;
  border-radius: 999px;
  color: #fff;
  background: var(--cc-blue);
  font-size: 0.72rem;
  font-weight: 850;
}

.conversation-panel {
  min-height: 0;
  display: grid;
  background:
    radial-gradient(circle at 80% 0%, rgba(82, 194, 170, 0.08), transparent 24rem),
    rgba(255, 253, 248, 0.14);
}

.active-conversation {
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.conversation-header {
  display: flex;
  gap: 0.8rem;
  align-items: center;
  padding: 0.95rem 1rem;
  border-bottom: 1px solid rgba(23, 58, 94, 0.10);
  background: rgba(255, 250, 242, 0.34);
  backdrop-filter: blur(10px);
}

.conversation-header h2 {
  margin: 0;
  font-size: 1.12rem;
}

.conversation-header p {
  margin: 0.15rem 0 0;
  color: var(--muted);
  font-size: 0.84rem;
}

.conversation-messages {
  min-height: 0;
  display: grid;
  align-content: start;
  gap: 0.7rem;
  padding: clamp(1rem, 2vw, 1.35rem);
  overflow: auto;
}

.message-bubble {
  max-width: min(72%, 34rem);
  display: grid;
  gap: 0.24rem;
  padding: 0.78rem 0.9rem;
  border-radius: var(--radius);
  line-height: 1.48;
  box-shadow: 0 10px 22px rgba(31, 45, 47, 0.04);
}

.message-bubble p {
  margin: 0;
}

.message-bubble span,
.message-bubble small {
  font-size: 0.72rem;
  font-weight: 760;
}

.message-bubble small {
  opacity: 0.68;
}

.message-bubble.is-sent {
  justify-self: end;
  color: #fff;
  background: linear-gradient(135deg, var(--cc-blue), #1d75af);
}

.message-bubble.is-received {
  justify-self: start;
  border: 1px solid rgba(222, 235, 231, 0.82);
  background: rgba(255, 255, 255, 0.92);
}

.message-bubble.is-received span {
  color: var(--cc-blue-dark);
}

.message-compose {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.7rem;
  padding: 0.95rem 1rem;
  border-top: 1px solid rgba(23, 58, 94, 0.10);
  background: rgba(255, 250, 242, 0.36);
  backdrop-filter: blur(10px);
}

.message-compose .button {
  min-width: 2.8rem;
  width: 2.8rem;
  padding: 0;
  border-radius: 50%;
}

.message-compose .button svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

.conversation-day-note {
  justify-self: center;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  color: #64717c;
  background: rgba(255, 255, 255, 0.58);
  font-size: 0.74rem;
  font-weight: 750;
}

.conversation-empty-state,
.messages-empty-note {
  display: grid;
  place-items: center;
  color: var(--muted);
  text-align: center;
}

.conversation-empty-state {
  min-height: 100%;
  padding: 2rem;
}

.conversation-empty-state h2 {
  max-width: 28rem;
  margin: 0;
  color: var(--ink);
  font-size: clamp(1.3rem, 2.2vw, 1.9rem);
}

.messages-empty-note {
  min-height: 9rem;
  padding: 1rem;
}

.community-live-page {
  width: min(100%, 64rem);
  min-height: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(1rem, 2vw, 1.35rem);
  align-items: start;
  margin-inline: auto;
}

.community-feed,
.community-side,
.community-news-card {
  display: grid;
  gap: 0.95rem;
}

.community-composer,
.community-post,
.community-news-card,
.community-side-action {
  border: 1px solid rgba(23, 58, 94, 0.10);
  border-radius: 1.15rem;
  background:
    radial-gradient(circle at 92% 0%, rgba(62, 111, 163, 0.06), transparent 12rem),
    rgba(255, 255, 255, 0.72);
  box-shadow: 0 16px 36px rgba(11, 27, 46, 0.055);
}

.community-composer {
  grid-template-columns: 2.7rem 1fr;
  gap: 0.8rem;
  align-items: start;
  padding: 0.8rem;
}

.community-composer img,
.community-post header img {
  width: 2.7rem;
  height: 2.7rem;
  border-radius: 50%;
  object-fit: cover;
}

.community-avatar-button {
  width: 2.7rem;
  height: 2.7rem;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
}

.community-avatar-button img {
  display: block;
}

.community-compose-box {
  display: grid;
  gap: 0.7rem;
}

.community-compose-box textarea {
  width: 100%;
  min-height: 5.8rem;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(23, 58, 94, 0.10);
  border-radius: 1rem;
  color: #0b1b2e;
  background: rgba(255, 250, 242, 0.72);
  resize: vertical;
  outline: 0;
  font: inherit;
}

.community-compose-actions {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.community-compose-actions label,
.community-compose-actions button {
  min-height: 2.7rem;
  padding: 0 1rem;
  border: 1px solid rgba(23, 58, 94, 0.10);
  border-radius: 999px;
  color: #415364;
  background: rgba(255, 250, 242, 0.78);
  display: inline-flex;
  gap: 0.42rem;
  align-items: center;
  font-weight: 700;
  cursor: pointer;
}

.community-compose-actions button {
  color: #fffaf2;
  background: linear-gradient(135deg, #1f6faf, #bd9146);
}

.community-compose-actions input {
  display: none;
}

.community-compose-actions svg {
  width: 0.95rem;
  height: 0.95rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

.community-post {
  display: grid;
  gap: 0.9rem;
  padding: clamp(1rem, 2vw, 1.25rem);
}

.community-post header {
  display: grid;
  grid-template-columns: 2.7rem minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: center;
}

.community-post header strong,
.community-news-card strong {
  display: block;
  color: #0b1b2e;
}

.community-profile-link {
  padding: 0;
  border: 0;
  color: #0b1b2e;
  background: transparent;
  font: inherit;
  font-weight: 850;
  text-align: left;
  cursor: pointer;
}

.community-post header span,
.community-post header small,
.community-news-card p,
.community-side-action small {
  color: #65727e;
}

.community-post header small {
  padding: 0.32rem 0.55rem;
  border-radius: 999px;
  background: rgba(62, 111, 163, 0.09);
  font-weight: 800;
}

.community-post p {
  margin: 0;
  color: #253647;
  font-size: 1rem;
  line-height: 1.65;
}

.community-post footer {
  display: flex;
  gap: 0.55rem;
  flex-wrap: wrap;
  padding-top: 0.25rem;
  border-top: 1px solid rgba(23, 58, 94, 0.08);
}

.community-post footer button {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 2rem;
  padding: 0 0.7rem;
  border: 1px solid rgba(23, 58, 94, 0.08);
  border-radius: 999px;
  color: #415364;
  background: rgba(255, 250, 242, 0.54);
  font-weight: 760;
}

.community-post footer span {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 2rem;
  padding: 0 0.7rem;
  border: 1px solid rgba(23, 58, 94, 0.08);
  border-radius: 999px;
  color: #415364;
  background: rgba(255, 250, 242, 0.42);
  font-weight: 760;
}

.community-post footer button.is-liked {
  color: #9a6a1e;
  border-color: rgba(189, 145, 70, 0.24);
  background: rgba(207, 164, 90, 0.11);
}

.community-post footer svg,
.community-side-action svg {
  width: 0.95rem;
  height: 0.95rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

.community-media-grid {
  display: grid;
  gap: 0.65rem;
}

.community-media-grid img,
.community-media-grid video {
  width: 100%;
  max-height: 34rem;
  border: 1px solid rgba(23, 58, 94, 0.08);
  border-radius: 1rem;
  object-fit: contain;
  background: rgba(11, 27, 46, 0.05);
}

.community-comments {
  display: grid;
  gap: 0.55rem;
  padding-top: 0.2rem;
}

.community-comment {
  display: grid;
  grid-template-columns: 2.1rem minmax(0, 1fr);
  gap: 0.55rem;
  align-items: start;
}

.community-comment .conversation-avatar {
  width: 2.1rem;
  height: 2.1rem;
}

.community-comment div {
  padding: 0.55rem 0.7rem;
  border-radius: 0.9rem;
  background: rgba(255, 250, 242, 0.56);
}

.community-comment strong {
  font-size: 0.78rem;
}

.community-comment p {
  margin: 0.12rem 0 0;
  font-size: 0.88rem;
  line-height: 1.45;
}

.community-comment-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 2.35rem;
  gap: 0.45rem;
}

.community-comment-form input {
  width: 100%;
  min-height: 2.35rem;
  padding: 0 0.75rem;
  border: 1px solid rgba(23, 58, 94, 0.09);
  border-radius: 999px;
  color: #0b1b2e;
  background: rgba(255, 255, 255, 0.68);
  outline: 0;
}

.community-comment-form button {
  display: grid;
  place-items: center;
  border: 1px solid rgba(31, 111, 175, 0.15);
  border-radius: 50%;
  color: #1f6faf;
  background: rgba(31, 111, 175, 0.08);
}

.community-profile-page {
  width: min(100%, 64rem);
  display: grid;
  gap: 1rem;
  margin-inline: auto;
}

.community-profile-card {
  display: grid;
  grid-template-columns: 5rem minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
  padding: 1rem;
  border: 1px solid rgba(23, 58, 94, 0.10);
  border-radius: 1.15rem;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 16px 36px rgba(11, 27, 46, 0.055);
}

.community-profile-card img {
  width: 5rem;
  height: 5rem;
  border-radius: 50%;
  object-fit: cover;
}

.community-profile-card strong {
  display: block;
  color: #0b1b2e;
  font-size: 1.2rem;
}

.community-profile-card span,
.community-profile-card small {
  display: block;
  margin-top: 0.2rem;
  color: #65727e;
}

.community-side-action {
  display: grid;
  grid-template-columns: 2.8rem minmax(0, 1fr);
  gap: 0.8rem;
  align-items: center;
  padding: 1rem;
  color: #0b1b2e;
  text-align: left;
}

.community-side-action span {
  grid-row: span 2;
  width: 2.8rem;
  height: 2.8rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #1f6faf;
  background: rgba(31, 111, 175, 0.10);
}

.community-news-card {
  padding: 1rem;
}

.community-news-card h3 {
  margin: 0;
  color: #0b1b2e;
}

.community-news-card article {
  padding-top: 0.8rem;
  border-top: 1px solid rgba(23, 58, 94, 0.08);
}

.community-news-card p {
  margin: 0.2rem 0 0;
  line-height: 1.45;
}

.topbar-message-button.has-alerts .message-count {
  display: grid;
  background: #bd9146;
}

.topbar-message-button.is-open,
.topbar-icon-button.is-open {
  border-color: rgba(189, 145, 70, 0.42);
  background: rgba(255, 250, 242, 0.96);
}

.message-popover {
  right: 3.25rem;
  z-index: 360;
  isolation: isolate;
  opacity: 1;
  mix-blend-mode: normal;
  backdrop-filter: none;
  filter: drop-shadow(0 22px 48px rgba(11, 27, 46, 0.18));
  transform: translateZ(0);
}

.message-preview-panel {
  position: relative;
  z-index: 1;
  isolation: isolate;
  overflow: hidden;
  display: grid;
  gap: 0.72rem;
  padding: 0.85rem;
  border: 1px solid rgba(23, 58, 94, 0.14);
  border-radius: 1rem;
  color: #0b1b2e;
  background: #fffaf2;
  background-clip: padding-box;
  box-shadow:
    0 24px 58px rgba(11, 27, 46, 0.22),
    0 0 0 1px rgba(255, 250, 242, 0.92) inset;
  backdrop-filter: none;
  mix-blend-mode: normal;
}

.message-preview-panel::before,
.message-preview-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
}

.message-preview-panel::before {
  z-index: 0;
  background: #fffaf2;
}

.message-preview-panel::after {
  z-index: 1;
  background:
    radial-gradient(circle at 100% 0%, rgba(207, 164, 90, 0.10), transparent 12rem),
    linear-gradient(180deg, rgba(255, 253, 248, 0.96) 0%, rgba(255, 250, 242, 0.96) 100%);
}

.message-preview-panel > * {
  position: relative;
  z-index: 2;
}

.message-preview-panel header {
  display: flex;
  justify-content: space-between;
  gap: 0.8rem;
  align-items: center;
}

.message-preview-panel header span {
  color: #65727e;
  font-size: 0.78rem;
  font-weight: 820;
}

.message-preview-panel header strong {
  color: #9a6a1e;
  font-size: 0.78rem;
}

.message-preview-list {
  display: grid;
  gap: 0.52rem;
}

.message-preview-list p {
  margin: 0;
  color: #65727e;
  font-size: 0.86rem;
}

.message-preview-item {
  position: relative;
  width: 100%;
  display: grid;
  grid-template-columns: 2.55rem minmax(0, 1fr) auto;
  gap: 0.65rem;
  align-items: center;
  padding: 0.68rem;
  border: 1px solid rgba(23, 58, 94, 0.08);
  border-radius: 0.82rem;
  color: inherit;
  background: #fffaf2;
  text-align: left;
  cursor: pointer;
  transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
}

.message-preview-item:hover {
  transform: translateY(-1px);
  border-color: rgba(31, 111, 175, 0.20);
  background: #ffffff;
}

.message-preview-item span,
.message-preview-item strong,
.message-preview-item small {
  min-width: 0;
}

.message-preview-item strong,
.message-preview-item small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.message-preview-item strong {
  font-size: 0.9rem;
}

.message-preview-item small,
.message-preview-item em {
  color: #65727e;
  font-size: 0.74rem;
  font-style: normal;
}

.message-preview-item.has-unread strong {
  color: #1f6faf;
}

.message-preview-item b {
  position: absolute;
  right: 0.55rem;
  bottom: 0.48rem;
  display: grid;
  place-items: center;
  min-width: 1.1rem;
  height: 1.1rem;
  padding: 0 0.28rem;
  border-radius: 999px;
  color: #fff;
  background: #1f6faf;
  font-size: 0.66rem;
}

.message-preview-all {
  min-height: 2.45rem;
  border: 1px solid rgba(189, 145, 70, 0.20);
  border-radius: 999px;
  color: #9a6a1e;
  background: #fff7e6;
  font-weight: 820;
}

.app-shell.is-route-comunidad .view {
  width: calc(100% + clamp(1rem, 3vw, 2rem));
  margin-right: calc(-1 * clamp(1rem, 3vw, 2rem));
  padding-right: clamp(1rem, 3vw, 2rem);
  scrollbar-width: thin;
  scrollbar-color: rgba(11, 27, 46, 0.18) transparent;
}

.app-shell.is-route-comunidad .view::-webkit-scrollbar {
  width: 7px;
}

.app-shell.is-route-comunidad .view::-webkit-scrollbar-track {
  background: transparent;
}

.app-shell.is-route-comunidad .view::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(11, 27, 46, 0.16);
}

.community-live-page {
  width: min(100%, 43rem);
  gap: 0.95rem;
}

.community-today-panel {
  display: grid;
  gap: 0.95rem;
  padding: clamp(1rem, 2vw, 1.25rem);
  border: 1px solid rgba(23, 58, 94, 0.10);
  border-radius: 1.35rem;
  background:
    linear-gradient(145deg, rgba(255, 250, 242, 0.90), rgba(255, 255, 255, 0.72));
  box-shadow: 0 18px 42px rgba(11, 27, 46, 0.06);
}

.community-greeting {
  display: grid;
  gap: 0.22rem;
}

.community-greeting span,
.community-section-label span {
  color: #9a6a1e;
  font-size: 0.78rem;
  font-weight: 860;
}

.community-greeting strong {
  color: #0b1b2e;
  font-size: clamp(1.55rem, 4vw, 2.35rem);
  line-height: 1;
}

.community-greeting p,
.community-section-label small {
  margin: 0;
  color: #65727e;
  line-height: 1.45;
}

.community-active-strip {
  display: flex;
  gap: 0.62rem;
  overflow-x: auto;
  padding-bottom: 0.15rem;
}

.community-active-strip button {
  min-width: 4.4rem;
  display: grid;
  justify-items: center;
  gap: 0.38rem;
  padding: 0;
  border: 0;
  color: #253647;
  background: transparent;
  font-weight: 780;
}

.community-active-strip .conversation-avatar {
  width: 3rem;
  height: 3rem;
  box-shadow: 0 0 0 3px rgba(255, 250, 242, 0.96), 0 9px 22px rgba(11, 27, 46, 0.10);
}

.community-active-strip span {
  max-width: 4.8rem;
  overflow: hidden;
  font-size: 0.76rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.community-moment-list {
  display: grid;
  gap: 0.55rem;
}

.community-moment-list article {
  padding: 0.7rem 0.78rem;
  border: 1px solid rgba(23, 58, 94, 0.08);
  border-radius: 0.95rem;
  background: rgba(255, 255, 255, 0.58);
}

.community-moment-list small {
  display: block;
  color: #65727e;
  font-size: 0.72rem;
  font-weight: 820;
}

.community-moment-list strong {
  display: block;
  margin-top: 0.16rem;
  color: #253647;
  font-size: 0.9rem;
  line-height: 1.35;
}

.community-section-label {
  display: grid;
  gap: 0.15rem;
  padding-inline: 0.2rem;
}

.community-feed {
  gap: 0.78rem;
}

.community-composer,
.community-post {
  border-radius: 1.18rem;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 14px 34px rgba(11, 27, 46, 0.052);
}

.community-composer {
  grid-template-columns: 2.45rem 1fr;
  padding: 0.72rem;
  align-items: center;
}

.community-composer img,
.community-composer .community-avatar-button {
  width: 2.45rem;
  height: 2.45rem;
}

.community-compose-box {
  gap: 0.5rem;
}

.community-compose-box textarea {
  min-height: 3.25rem;
  max-height: 7rem;
  padding: 0.72rem 0.85rem;
  border-radius: 0.9rem;
  resize: vertical;
}

.community-compose-actions {
  justify-content: space-between;
}

.community-compose-actions label,
.community-compose-actions button {
  min-height: 2.25rem;
  padding: 0 0.82rem;
  font-size: 0.82rem;
}

.community-post {
  gap: 0.8rem;
  padding: clamp(1rem, 2.5vw, 1.32rem);
}

.community-post header {
  grid-template-columns: 2.75rem minmax(0, 1fr);
}

.community-post header small {
  display: none;
}

.community-post p {
  color: #213244;
  font-size: 0.98rem;
}

.community-media-grid img,
.community-media-grid video {
  max-height: 28rem;
  border-radius: 1.05rem;
  object-fit: cover;
}

.community-post footer {
  gap: 0.45rem;
  justify-content: space-between;
}

.community-post footer button,
.community-post footer span {
  min-height: 2.15rem;
  padding: 0 0.82rem;
  background: rgba(255, 250, 242, 0.66);
}

.community-like-button {
  position: relative;
}

.community-like-button::after {
  content: attr(data-like-tooltip);
  position: absolute;
  z-index: 8;
  left: 50%;
  bottom: calc(100% + 0.48rem);
  width: max-content;
  max-width: min(16rem, 78vw);
  padding: 0.48rem 0.65rem;
  border: 1px solid rgba(23, 58, 94, 0.10);
  border-radius: 999px;
  color: #0b1b2e;
  background: rgba(255, 250, 242, 0.98);
  box-shadow: 0 16px 32px rgba(11, 27, 46, 0.14);
  font-size: 0.76rem;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 0.22rem);
  transition: opacity 160ms ease, transform 160ms ease;
}

.community-like-button:hover::after,
.community-like-button:focus-visible::after {
  opacity: 1;
  transform: translate(-50%, 0);
}

.community-comments {
  border-top: 1px solid rgba(23, 58, 94, 0.06);
  padding-top: 0.55rem;
}

.profile-hero {
  display: grid;
  grid-template-columns: 7rem 1fr;
  gap: 1.1rem;
  align-items: center;
}

.profile-avatar-zone {
  position: relative;
}

.profile-avatar-editor {
  position: relative;
  display: block;
  width: 7rem;
  height: 7rem;
  padding: 0;
  border: 0;
  border-radius: var(--radius);
  overflow: hidden;
  background: transparent;
}

.profile-avatar-editor:disabled {
  cursor: default;
}

.profile-hero img,
.profile-avatar-editor img {
  width: 7rem;
  height: 7rem;
  border-radius: var(--radius);
  object-fit: cover;
}

.profile-avatar-editor span {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 0.75rem;
  color: #fff;
  font-size: 0.82rem;
  font-weight: 700;
  text-align: center;
  background: rgba(2, 11, 22, 0.62);
  opacity: 0;
  transition: opacity 160ms ease;
}

.profile-avatar-editor:hover span,
.profile-avatar-editor:focus-visible span {
  opacity: 1;
}

.profile-avatar-message {
  margin-top: 0.45rem;
}

.app-version-panel {
  display: grid;
  align-content: start;
  gap: 0.35rem;
}

.app-version-panel h3,
.app-version-panel strong,
.app-version-panel span,
.app-version-panel small {
  margin: 0;
}

.app-version-panel h3 {
  color: var(--ink);
  font-size: 1.08rem;
  font-weight: 560;
}

.app-version-panel strong {
  color: var(--cc-blue-dark);
  font-size: 1rem;
}

.app-version-panel span,
.app-version-panel small {
  color: var(--muted);
}

.biblioteca-update-notice {
  position: fixed;
  z-index: 10000;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, env(safe-area-inset-bottom));
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.7rem 0.75rem 0.7rem 0.95rem;
  border: 1px solid rgba(152, 203, 255, 0.18);
  border-radius: 999px;
  color: rgba(238, 247, 255, 0.92);
  background: rgba(3, 13, 26, 0.88);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.24);
  backdrop-filter: blur(18px);
  opacity: 0;
  pointer-events: none;
  transform: translateY(0.7rem);
  transition: opacity 180ms ease, transform 180ms ease;
}

.biblioteca-update-notice.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.biblioteca-update-notice span {
  font-size: 0.9rem;
}

.biblioteca-update-notice button {
  min-height: 2rem;
  padding: 0 0.85rem;
  border: 1px solid rgba(152, 203, 255, 0.25);
  border-radius: 999px;
  color: #f6fbff;
  background: rgba(152, 203, 255, 0.13);
}

.biblioteca-update-notice button:disabled {
  opacity: 0.7;
  cursor: progress;
}

.profile-session-panel {
  display: grid;
  align-content: center;
  gap: 0.7rem;
}

.profile-session-panel .ghost-button {
  justify-self: start;
}

.profile-admin-link {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
}

.profile-admin-link span,
.profile-admin-link svg {
  width: 1.05rem;
  height: 1.05rem;
}

.pending-users-page {
  width: min(100%, 72rem);
  display: grid;
  gap: 2rem;
  margin: 0 auto;
}

.pending-users-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
  padding-bottom: 1.35rem;
  border-bottom: 1px solid rgba(23, 58, 94, 0.12);
}

.pending-users-header h2 {
  margin: 0.2rem 0 0.45rem;
  font-size: clamp(1.75rem, 3vw, 2.55rem);
  letter-spacing: 0;
}

.pending-users-header p:last-child {
  max-width: 42rem;
  margin: 0;
  color: #61707c;
}

.pending-users-refresh {
  width: 2.65rem;
  height: 2.65rem;
  flex: 0 0 2.65rem;
  display: grid;
  place-items: center;
  border: 1px solid rgba(23, 58, 94, 0.13);
  border-radius: 50%;
  color: #173a5e;
  background: rgba(255, 255, 255, 0.58);
  transition: transform 180ms ease, background-color 180ms ease;
}

.pending-users-refresh:hover {
  transform: rotate(-18deg);
  background: rgba(255, 255, 255, 0.9);
}

.pending-users-refresh svg {
  width: 1.12rem;
  height: 1.12rem;
}

.pending-users-section,
.pending-users-rejected {
  display: grid;
  gap: 0.85rem;
}

.pending-users-section-title {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.pending-users-section-title h3 {
  margin: 0;
  font-size: 1rem;
}

.pending-users-section-title > span {
  min-width: 1.65rem;
  min-height: 1.65rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #52616c;
  background: rgba(23, 58, 94, 0.07);
  font-size: 0.74rem;
  font-weight: 760;
}

.pending-users-list {
  display: grid;
  gap: 0.75rem;
}

.pending-user-row {
  display: grid;
  grid-template-columns: minmax(13rem, 1.35fr) minmax(14rem, 1fr) minmax(13rem, 0.9fr);
  gap: 1rem 1.35rem;
  align-items: end;
  padding: 1.1rem 1.15rem;
  border: 1px solid rgba(23, 58, 94, 0.1);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.62);
  box-shadow: 0 12px 28px rgba(11, 27, 46, 0.045);
}

.pending-user-identity {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.pending-user-identity h3 {
  margin: 0.42rem 0 0.15rem;
  font-size: 1.03rem;
}

.pending-user-identity p,
.pending-user-identity time {
  margin: 0;
  color: #6b7883;
  font-size: 0.76rem;
}

.pending-user-identity time {
  max-width: 8.5rem;
  text-align: right;
}

.pending-user-status {
  display: inline-flex;
  color: #82611c;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
}

.pending-user-status.is-approved {
  color: #26714d;
}

.pending-user-status.is-rejected {
  color: #9a4747;
}

.pending-user-facts {
  display: grid;
  gap: 0.55rem;
  margin: 0;
}

.pending-user-facts div {
  min-width: 0;
}

.pending-user-facts dt,
.pending-user-username-field > span {
  color: #7b8790;
  font-size: 0.67rem;
  font-weight: 780;
  text-transform: uppercase;
}

.pending-user-facts dd {
  overflow-wrap: anywhere;
  margin: 0.12rem 0 0;
  color: #263b4e;
  font-size: 0.82rem;
}

.pending-user-username-field {
  display: grid;
  gap: 0.35rem;
}

.pending-user-username-field input {
  width: 100%;
  min-height: 2.45rem;
  padding: 0 0.7rem;
  border: 1px solid rgba(23, 58, 94, 0.14);
  border-radius: 6px;
  color: #14283b;
  background: rgba(255, 255, 255, 0.82);
  outline: none;
}

.pending-user-username-field input:focus {
  border-color: rgba(35, 135, 201, 0.52);
  box-shadow: 0 0 0 3px rgba(35, 135, 201, 0.1);
}

.pending-user-actions {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
  gap: 0.55rem;
  padding-top: 0.2rem;
}

.pending-user-actions button {
  min-height: 2.35rem;
}

.pending-user-actions button:disabled {
  opacity: 0.5;
  cursor: progress;
}

.pending-user-reject {
  color: #8c4545;
}

.pending-user-approve {
  background: #173a5e;
}

.pending-users-empty {
  display: grid;
  gap: 0.35rem;
  padding: 1.35rem 0;
  color: #6b7883;
}

.pending-users-empty.is-error {
  color: #8c4545;
}

.pending-users-approved-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}

.pending-users-approved-list div {
  display: flex;
  gap: 0.5rem;
  padding: 0.55rem 0.75rem;
  border: 1px solid rgba(38, 113, 77, 0.13);
  border-radius: 6px;
  color: #26714d;
  background: rgba(38, 113, 77, 0.055);
  font-size: 0.78rem;
}

.pending-users-approved-list span {
  color: #688074;
}

.pending-users-approved-list em {
  color: #26714d;
  font-size: 0.68rem;
  font-style: normal;
  font-weight: 800;
  text-transform: uppercase;
}

.pending-users-rejected summary {
  cursor: pointer;
  color: #6b7883;
  font-size: 0.84rem;
  font-weight: 720;
}

.pending-users-rejected[open] summary {
  margin-bottom: 0.85rem;
}

.pending-users-toast {
  position: fixed;
  z-index: 90;
  top: 1.5rem;
  left: 50%;
  max-width: min(90vw, 34rem);
  padding: 0.8rem 1rem;
  border: 1px solid rgba(38, 113, 77, 0.16);
  border-radius: 8px;
  color: #1f5d40;
  background: rgba(241, 249, 244, 0.96);
  box-shadow: 0 18px 42px rgba(11, 27, 46, 0.13);
  transform: translateX(-50%);
}

.pending-users-toast.is-error {
  border-color: rgba(140, 69, 69, 0.16);
  color: #8c4545;
  background: rgba(253, 246, 246, 0.97);
}

@media (max-width: 900px) {
  .pending-user-row {
    grid-template-columns: 1fr 1fr;
  }

  .pending-user-username-field {
    grid-column: 1 / -1;
  }
}

@media (max-width: 620px) {
  .pending-users-header,
  .pending-user-identity,
  .pending-user-actions {
    align-items: stretch;
  }

  .pending-user-row {
    grid-template-columns: 1fr;
  }

  .pending-user-username-field,
  .pending-user-actions {
    grid-column: auto;
  }

  .pending-user-actions {
    flex-direction: column-reverse;
  }

  .pending-user-actions button {
    width: 100%;
  }
}

.profile-security-panel {
  display: grid;
  align-content: start;
  gap: 0.65rem;
}

.profile-security-form {
  display: grid;
  gap: 0.72rem;
}

.profile-security-form label {
  display: grid;
  gap: 0.35rem;
  color: #52616c;
  font-size: 0.78rem;
  font-weight: 780;
}

.profile-security-form input {
  min-height: 2.62rem;
  padding: 0 0.78rem;
  border: 1px solid rgba(23, 58, 94, 0.12);
  border-radius: var(--radius);
  color: #0b1b2e;
  background: rgba(255, 255, 255, 0.86);
  outline: 0;
}

.profile-security-form input:focus {
  border-color: rgba(35, 135, 201, 0.50);
  box-shadow: 0 0 0 3px rgba(35, 135, 201, 0.10);
}

.profile-security-form .ghost-button {
  justify-self: start;
}

.settings-page {
  width: min(100%, 52rem);
  display: grid;
  gap: 1rem;
}

.settings-multiview-back {
  width: 2.65rem;
  height: 2.65rem;
  display: none;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 999px;
  color: rgba(23, 58, 94, 0.82);
  background: transparent;
  cursor: pointer;
  transition: color 160ms ease, transform 160ms ease, background 160ms ease;
}

.app-shell.is-settings-route .settings-multiview-back {
  display: inline-grid;
}

.settings-multiview-back:hover,
.settings-multiview-back:focus-visible {
  color: #0b1b2e;
  background: rgba(23, 58, 94, 0.06);
  transform: translateX(-0.12rem);
}

.settings-multiview-back span,
.settings-multiview-back svg {
  width: 1.2rem;
  height: 1.2rem;
}

.settings-multiview-back svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.settings-panel {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
  padding: clamp(1.15rem, 2vw, 1.6rem);
  border: 1px solid rgba(23, 58, 94, 0.10);
  border-radius: 1.2rem;
  background:
    radial-gradient(circle at 90% 0%, rgba(207, 164, 90, 0.10), transparent 16rem),
    rgba(255, 255, 255, 0.76);
  box-shadow: 0 18px 40px rgba(11, 27, 46, 0.06);
}

.settings-icon {
  width: 3.2rem;
  height: 3.2rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--cc-gold-muted);
  background: rgba(207, 164, 90, 0.12);
}

.settings-icon svg {
  width: 1.35rem;
  height: 1.35rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.settings-panel h2 {
  margin: 0.15rem 0;
  color: #0b1b2e;
  font-size: clamp(1.55rem, 2.6vw, 2.2rem);
}

.settings-panel p {
  max-width: 34rem;
  margin: 0;
  color: #5c6976;
  line-height: 1.55;
}

.settings-field,
.settings-confirm {
  grid-column: 1 / -1;
}

.settings-field {
  display: grid;
  gap: 0.42rem;
  max-width: 24rem;
}

.settings-field span {
  color: #52616c;
  font-size: 0.76rem;
  font-weight: 850;
  letter-spacing: 0.02em;
}

.settings-field select {
  min-height: 2.75rem;
  padding: 0 0.85rem;
  border: 1px solid rgba(23, 58, 94, 0.12);
  border-radius: 0.9rem;
  color: #0b1b2e;
  background: rgba(255, 255, 255, 0.88);
}

.settings-confirm {
  width: max-content;
  max-width: 100%;
  padding: 0.58rem 0.8rem;
  border-radius: 999px;
  color: #236548;
  background: rgba(31, 122, 86, 0.10);
  font-size: 0.86rem;
  font-weight: 780;
}

.settings-page:has(.biblioteca-analytics-panel) {
  width: min(100%, 76rem);
}

.biblioteca-analytics-panel {
  grid-template-columns: auto minmax(0, 1fr);
}

.biblioteca-analytics-toolbar,
.biblioteca-analytics-report {
  grid-column: 1 / -1;
}

.biblioteca-analytics-toolbar {
  display: flex;
  align-items: end;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.biblioteca-analytics-toolbar .settings-field {
  width: min(100%, 18rem);
}

.biblioteca-analytics-toolbar .ghost-button {
  min-height: 2.75rem;
}

.biblioteca-analytics-report {
  display: grid;
  gap: 1rem;
}

.biblioteca-analytics-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
}

.biblioteca-analytics-metrics > div {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
  padding: 0.9rem;
  border: 1px solid rgba(23, 58, 94, 0.09);
  border-radius: 0.95rem;
  background: rgba(246, 250, 247, 0.72);
}

.biblioteca-analytics-metrics strong {
  color: #0b1b2e;
  font-size: clamp(1.45rem, 2.7vw, 2rem);
  line-height: 1;
}

.biblioteca-analytics-metrics span {
  color: #687581;
  font-size: 0.76rem;
  font-weight: 760;
}

.biblioteca-analytics-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
}

.biblioteca-analytics-grid > section {
  min-width: 0;
  padding: 0.9rem;
  border: 1px solid rgba(23, 58, 94, 0.09);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.7);
}

.biblioteca-analytics-grid h3 {
  margin: 0 0 0.75rem;
  color: #0b1b2e;
  font-size: 1rem;
}

.biblioteca-analytics-table-wrap {
  max-height: 25rem;
  overflow: auto;
}

.biblioteca-analytics-table {
  width: 100%;
  border-collapse: collapse;
  color: #263746;
  font-size: 0.78rem;
}

.biblioteca-analytics-table th,
.biblioteca-analytics-table td {
  padding: 0.62rem 0.5rem;
  border-bottom: 1px solid rgba(23, 58, 94, 0.08);
  text-align: right;
  vertical-align: top;
  white-space: nowrap;
}

.biblioteca-analytics-table th:first-child,
.biblioteca-analytics-table td:first-child {
  width: 100%;
  text-align: left;
  white-space: normal;
}

.biblioteca-analytics-table td strong,
.biblioteca-analytics-table td small {
  display: block;
}

.biblioteca-analytics-table td small {
  margin-top: 0.18rem;
  color: #7a8791;
}

.biblioteca-analytics-empty {
  grid-column: 1 / -1;
  padding: 0.8rem;
  border-radius: 0.85rem;
  background: rgba(23, 58, 94, 0.05);
}

.biblioteca-analytics-empty.is-error {
  color: #9a342d;
  background: rgba(175, 60, 49, 0.08);
}

@media (max-width: 760px) {
  .biblioteca-analytics-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .biblioteca-analytics-grid {
    grid-template-columns: 1fr;
  }
}

.profile-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.8fr);
  gap: 0.9rem;
  margin-top: 0.9rem;
}

.profile-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

.profile-facts div {
  padding: 0.75rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(246, 250, 247, 0.72);
}

.profile-facts span {
  display: block;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 700;
}

.profile-facts strong {
  display: block;
  margin-top: 0.18rem;
  overflow-wrap: anywhere;
}

.profile-tags,
.permission-list {
  margin-top: 0.85rem;
}

.permission-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.audio-card {
  margin-top: 1rem;
}

.audio-card audio {
  width: 100%;
}

.person-identity {
  display: grid;
  grid-template-columns: 4.8rem 1fr;
  gap: 1rem;
  align-items: center;
}

.person-identity img,
.person-card img {
  width: 4.8rem;
  height: 4.8rem;
  object-fit: cover;
  border-radius: 50%;
  border: 3px solid #fff;
  box-shadow: 0 12px 30px rgba(31, 45, 47, 0.10);
}

.person-identity h3,
.person-card h3 {
  margin: 0 0 0.2rem;
}

.person-identity p,
.person-card p {
  margin: 0 0 0.7rem;
  color: var(--muted);
}

.person-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.person-card {
  min-height: 14rem;
  display: grid;
  align-content: start;
  gap: 1rem;
  padding: 1rem;
}

.credential-box {
  display: grid;
  gap: 0.35rem;
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--soft);
}

.credential-box span {
  color: var(--muted);
  font-size: 0.78rem;
  text-transform: uppercase;
}

.credential-box strong {
  overflow-wrap: anywhere;
}

.registration-submit {
  justify-self: start;
}

button:disabled {
  cursor: not-allowed;
  opacity: 0.58;
  transform: none !important;
  box-shadow: none !important;
}

.registry-page {
  display: grid;
  gap: 1rem;
}

.registry-overview,
.documents-page,
.calendar-page {
  display: grid;
  gap: 1rem;
}

.registry-hero,
.registry-toolbar,
.documents-hero,
.calendar-hero,
.admin-heading {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: end;
  padding: clamp(1rem, 2vw, 1.35rem);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 12px 32px rgba(31, 45, 47, 0.05);
}

.registry-hero h2,
.documents-hero h2,
.calendar-hero h2,
.admin-heading h2,
.export-panel h3 {
  margin: 0;
  font-size: clamp(1.55rem, 2.8vw, 2.35rem);
  line-height: 1.08;
}

.registry-hero p,
.documents-hero p,
.calendar-hero p,
.admin-heading p {
  max-width: 48rem;
  margin: 0.55rem 0 0;
  color: var(--muted);
  line-height: 1.55;
}

.generation-state {
  min-width: 16rem;
  padding: 0.9rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(246, 250, 247, 0.88);
}

.generation-state span,
.metric-card span,
.participant-notes span,
.registry-search span {
  display: block;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
}

.generation-state strong,
.metric-card strong {
  display: block;
  margin-top: 0.16rem;
}

.registry-summary,
.admin-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
}

.admin-summary {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.metric-card {
  padding: 0.9rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.78);
}

.metric-card strong {
  font-size: 1.45rem;
}

.registry-toolbar {
  align-items: center;
}

.registry-search {
  display: grid;
  gap: 0.35rem;
  flex: 1;
  min-width: min(100%, 18rem);
}

.registry-search input,
.manual-form input,
.manual-form textarea {
  width: 100%;
  min-height: 2.65rem;
  padding: 0 0.78rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  color: var(--ink);
  background: rgba(255, 255, 255, 0.92);
  outline: 0;
}

.manual-form textarea {
  min-height: 5.8rem;
  padding-top: 0.72rem;
  resize: vertical;
}

.registry-actions,
.manual-form-actions,
.participant-actions,
.admin-row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  align-items: center;
}

.registry-actions .button,
.registry-actions .ghost-button,
.manual-form-actions .button,
.manual-form-actions .ghost-button,
.participant-actions .button,
.participant-actions .ghost-button,
.admin-row-actions .button,
.admin-row-actions .ghost-button {
  white-space: normal;
}

.generation-grid,
.document-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
}

.generation-card,
.document-card {
  display: grid;
  gap: 0.85rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.84);
  color: var(--ink);
  text-align: left;
  box-shadow: 0 12px 32px rgba(31, 45, 47, 0.05);
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.generation-card {
  --generation-accent-rgb: 35, 101, 72;
  border-color: rgba(var(--generation-accent-rgb), 0.14);
  background:
    radial-gradient(circle at 86% 12%, rgba(var(--generation-accent-rgb), 0.08), transparent 10rem),
    rgba(255, 255, 255, 0.86);
}

.generation-card.tone-closed {
  --generation-accent-rgb: 90, 104, 118;
}

.generation-card.tone-active {
  --generation-accent-rgb: 31, 122, 86;
}

.generation-card.tone-prep {
  --generation-accent-rgb: 31, 111, 175;
}

.generation-card:hover,
.document-card:hover {
  transform: translateY(-2px);
  border-color: rgba(var(--generation-accent-rgb, 35, 135, 201), 0.28);
  box-shadow: var(--shadow);
}

.generation-card.is-muted {
  opacity: 0.68;
}

.generation-label {
  display: inline-grid;
  place-items: center;
  min-width: 3.1rem;
  min-height: 2rem;
  padding: 0.2rem 0.55rem;
  border-radius: var(--radius);
  background: rgba(var(--generation-accent-rgb), 0.12);
  color: rgb(var(--generation-accent-rgb));
  font-weight: 800;
}

.generation-card h3,
.document-card h3 {
  margin: 0.65rem 0 0.2rem;
  font-size: 1.08rem;
}

.generation-card p,
.document-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.52;
}

.generation-card dl {
  display: grid;
  gap: 0.45rem;
  margin: 0;
}

.generation-card dl div {
  display: flex;
  justify-content: space-between;
  gap: 0.8rem;
  padding-top: 0.45rem;
  border-top: 1px solid rgba(222, 235, 231, 0.72);
}

.generation-card dt {
  color: var(--muted);
  font-size: 0.8rem;
}

.generation-card dd {
  margin: 0;
  font-weight: 750;
}

.registry-subnav {
  display: flex;
  justify-content: flex-start;
}

.registry-confirmation {
  display: grid;
  gap: 0.25rem;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(82, 194, 170, 0.36);
  border-radius: var(--radius);
  background: rgba(82, 194, 170, 0.10);
  color: #245f55;
}

.registry-confirmation span {
  color: #52706b;
  line-height: 1.45;
}

.registry-modal-backdrop {
  position: fixed;
  z-index: 120;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 1rem;
  background: rgba(7, 24, 18, 0.28);
  backdrop-filter: blur(8px);
}

.registry-finalized-card {
  width: min(100%, 31rem);
  display: grid;
  justify-items: center;
  gap: 1rem;
  padding: clamp(1.35rem, 3vw, 2rem);
  border: 1px solid rgba(31, 122, 86, 0.18);
  border-radius: 1.3rem;
  background:
    radial-gradient(circle at 50% 0%, rgba(112, 177, 130, 0.16), transparent 14rem),
    rgba(255, 255, 255, 0.94);
  box-shadow: 0 28px 70px rgba(29, 58, 45, 0.20);
  text-align: center;
}

.registry-finalized-icon {
  width: 4rem;
  height: 4rem;
  display: grid;
  place-items: center;
  border: 1.5px solid rgba(31, 122, 86, 0.42);
  border-radius: 50%;
  color: #1f7a56;
  background: rgba(31, 122, 86, 0.08);
}

.registry-finalized-icon svg {
  width: 2rem;
  height: 2rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.85;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.registry-finalized-card h3 {
  margin: 0;
  color: #0b1b2e;
  font-size: 1.45rem;
}

.registry-finalized-card p {
  margin: 0.45rem 0 0;
  color: #5b6875;
  line-height: 1.55;
}

.registry-finalized-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.65rem;
}

.payment-admin-page {
  width: min(100%, 76rem);
  display: grid;
  gap: 1rem;
}

.payment-admin-panel {
  display: grid;
  gap: 1rem;
  padding: clamp(1rem, 2vw, 1.35rem);
  border: 1px solid rgba(35, 101, 72, 0.14);
  border-radius: 1.2rem;
  background:
    radial-gradient(circle at 90% 0%, rgba(112, 177, 130, 0.10), transparent 14rem),
    rgba(255, 255, 255, 0.88);
  box-shadow: 0 18px 42px rgba(29, 58, 45, 0.08);
}

.payment-admin-head {
  display: flex;
  gap: 1rem;
  align-items: center;
}

.payment-admin-icon {
  width: 3.6rem;
  height: 3.6rem;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 50%;
  color: #1f6faf;
  background: rgba(31, 111, 175, 0.12);
}

.payment-admin-icon svg {
  width: 1.55rem;
  height: 1.55rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.payment-admin-head h2 {
  margin: 0;
  color: #0b1b2e;
  font-size: clamp(1.65rem, 3vw, 2.25rem);
}

.payment-admin-head p:not(.eyebrow) {
  margin: 0.35rem 0 0;
  color: #5b6875;
}

.payment-table-wrap {
  overflow: auto;
  border: 1px solid rgba(35, 101, 72, 0.12);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.72);
}

.payment-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 44rem;
}

.payment-table th,
.payment-table td {
  padding: 0.85rem;
  border-bottom: 1px solid rgba(35, 101, 72, 0.10);
  text-align: left;
  vertical-align: middle;
}

.payment-table th {
  color: #52616c;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.payment-table th:last-child,
.payment-table td:last-child {
  width: 7rem;
  text-align: center;
}

.payment-table td strong,
.payment-table td span {
  display: block;
}

.payment-table td span {
  margin-top: 0.2rem;
  color: #6a7680;
  font-size: 0.8rem;
}

.payment-table tr.is-payment-validated td {
  background:
    linear-gradient(90deg, rgba(31, 122, 86, 0.08), rgba(31, 122, 86, 0.025));
}

.admin-general-page,
.income-admin-page {
  width: min(100%, 86rem);
  display: grid;
  gap: 0.62rem;
}

.app-shell.is-route-oficinas .admin-general-page,
.app-shell.is-route-oficinas .income-admin-page {
  padding-top: 3.2rem;
}

.admin-view-tabs {
  justify-self: start;
  display: inline-flex;
  gap: 0.35rem;
  padding: 0.28rem;
  border: 1px solid rgba(31, 111, 175, 0.12);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.62);
  box-shadow: 0 12px 24px rgba(31, 69, 105, 0.055);
  margin-top: -0.2rem;
}

.admin-view-tabs button {
  min-height: 2.15rem;
  padding: 0 0.9rem;
  border: 1px solid transparent;
  border-radius: 999px;
  color: #52616c;
  background: transparent;
  font-size: 0.76rem;
  font-weight: 900;
  cursor: pointer;
}

.admin-view-tabs button.is-active {
  color: #0b1b2e;
  border-color: rgba(31, 111, 175, 0.16);
  background: rgba(250, 253, 255, 0.90);
  box-shadow: 0 8px 18px rgba(11, 27, 46, 0.055);
}

.admin-hero-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  padding: clamp(0.86rem, 1.6vw, 1.08rem);
  border: 1px solid rgba(31, 111, 175, 0.12);
  border-radius: 1.25rem;
  background:
    radial-gradient(circle at 90% 0%, rgba(31, 111, 175, 0.14), transparent 16rem),
    linear-gradient(145deg, rgba(250, 253, 255, 0.92), rgba(234, 246, 252, 0.72));
  box-shadow: 0 18px 42px rgba(31, 69, 105, 0.07);
}

.admin-hero-summary article {
  display: grid;
  gap: 0.22rem;
}

.admin-hero-summary span,
.admin-metric-card small,
.admin-chart-panel h3 {
  color: #52616c;
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0.02em;
}

.admin-hero-summary strong {
  color: #0b1b2e;
  font-size: clamp(2rem, 4vw, 3.35rem);
  line-height: 0.96;
}

.admin-hero-summary small {
  color: #64717c;
  font-weight: 750;
}

.admin-metric-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.52rem;
}

.admin-metric-card {
  display: grid;
  gap: 0.28rem;
  padding: 0.72rem;
  border: 1px solid rgba(31, 111, 175, 0.10);
  border-radius: 1rem;
  background: rgba(250, 253, 255, 0.78);
  box-shadow: 0 12px 24px rgba(31, 69, 105, 0.05);
}

.admin-metric-card > span {
  width: 2rem;
  height: 2rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #1f6faf;
  background: rgba(31, 111, 175, 0.10);
}

.admin-metric-card svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

.admin-metric-card strong {
  color: #0b1b2e;
  font-size: clamp(1.05rem, 1.6vw, 1.42rem);
  line-height: 1;
}

.admin-metric-card.tone-green > span {
  color: #0f7650;
  background: rgba(31, 122, 86, 0.12);
}

.admin-metric-card.tone-gold > span {
  color: #9a6a1e;
  background: rgba(189, 145, 70, 0.14);
}

.admin-metric-card.tone-violet > span {
  color: #5f45b0;
  background: rgba(106, 85, 170, 0.12);
}

.admin-chart-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.62rem;
}

.admin-chart-panel {
  display: grid;
  gap: 0.75rem;
  padding: 0.86rem;
  border: 1px solid rgba(31, 111, 175, 0.10);
  border-radius: 1.1rem;
  background: rgba(250, 253, 255, 0.78);
  box-shadow: 0 14px 30px rgba(31, 69, 105, 0.055);
}

.admin-chart-panel h3 {
  margin: 0;
  color: #0b1b2e;
}

.admin-bar-list {
  display: grid;
  gap: 0.52rem;
}

.admin-bar-row {
  display: grid;
  grid-template-columns: minmax(5.8rem, 0.5fr) minmax(0, 1fr) auto;
  gap: 0.62rem;
  align-items: center;
}

.admin-bar-row span {
  color: #52616c;
  font-size: 0.74rem;
  font-weight: 850;
}

.admin-bar-row div {
  height: 0.58rem;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(31, 111, 175, 0.10);
}

.admin-bar-row i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #78b8d8, #1f6faf);
}

.admin-bar-row strong {
  color: #0b1b2e;
  font-size: 0.76rem;
  white-space: nowrap;
}

.income-summary-grid {
  display: grid;
  grid-template-columns: minmax(14rem, 1.2fr) repeat(3, minmax(10rem, 0.75fr));
  gap: 0.65rem;
}

.income-summary-card {
  display: grid;
  gap: 0.22rem;
  padding: 0.86rem 0.98rem;
  border: 1px solid rgba(31, 111, 175, 0.10);
  border-radius: 0.95rem;
  background: rgba(250, 253, 255, 0.78);
  box-shadow: 0 12px 24px rgba(31, 69, 105, 0.055);
}

.income-summary-card.is-total {
  background:
    radial-gradient(circle at 85% 10%, rgba(31, 111, 175, 0.10), transparent 8rem),
    rgba(255, 255, 255, 0.82);
}

.income-summary-card span,
.income-summary-card small {
  color: #52616c;
  font-size: 0.72rem;
  font-weight: 850;
}

.income-summary-card strong {
  color: #0b1b2e;
  font-size: clamp(1.3rem, 2.2vw, 2rem);
  line-height: 1;
}

.income-summary-card.method-efectivo {
  border-color: rgba(31, 122, 86, 0.18);
  background: rgba(31, 122, 86, 0.08);
}

.income-summary-card.method-transferencia {
  border-color: rgba(218, 139, 58, 0.22);
  background: rgba(218, 139, 58, 0.10);
}

.income-summary-card.method-tarjeta {
  border-color: rgba(106, 85, 170, 0.18);
  background: rgba(106, 85, 170, 0.08);
}

.income-ticket-toolbar {
  display: grid;
  grid-template-columns: repeat(5, minmax(7rem, 0.55fr)) minmax(12rem, 1fr);
  gap: 0.42rem;
  padding: 0.48rem 0.56rem;
  border: 1px solid rgba(35, 101, 72, 0.10);
  border-radius: 0.82rem;
  background: rgba(255, 255, 255, 0.60);
}

.income-ticket-toolbar label {
  display: grid;
  gap: 0.25rem;
}

.income-ticket-toolbar span {
  color: #52616c;
  font-size: 0.66rem;
  font-weight: 850;
}

.income-ticket-toolbar input,
.income-ticket-toolbar select {
  width: 100%;
  min-height: 1.9rem;
  padding: 0 0.58rem;
  border: 1px solid rgba(35, 101, 72, 0.13);
  border-radius: 0.72rem;
  color: #0b1b2e;
  background: rgba(255, 255, 255, 0.88);
  font-size: 0.72rem;
  outline: 0;
}

.income-ticket-groups {
  display: grid;
  gap: 0.58rem;
}

.income-day-group {
  display: grid;
  gap: 0.48rem;
}

.income-day-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  padding-inline: 0.2rem;
}

.income-day-head strong {
  color: #0b1b2e;
}

.income-day-head span {
  color: #52616c;
  font-size: 0.76rem;
  font-weight: 850;
}

.income-ticket-list {
  display: grid;
  gap: 0.3rem;
}

.income-ticket-card {
  display: grid;
  grid-template-columns: minmax(8.5rem, 0.75fr) minmax(5.5rem, 0.32fr) minmax(9rem, 0.55fr) minmax(12rem, 1fr) auto;
  gap: 0.72rem;
  align-items: center;
  padding: 0.52rem 0.72rem;
  border: 1px solid rgba(31, 111, 175, 0.10);
  border-radius: 0.76rem;
  background:
    linear-gradient(145deg, rgba(250, 253, 255, 0.88), rgba(241, 248, 252, 0.72));
  box-shadow: 0 8px 18px rgba(31, 69, 105, 0.042);
}

.income-ticket-card.method-efectivo {
  border-color: rgba(31, 122, 86, 0.24);
  background: linear-gradient(90deg, rgba(31, 122, 86, 0.11), rgba(250, 253, 255, 0.84));
}

.income-ticket-card.method-transferencia {
  border-color: rgba(218, 139, 58, 0.30);
  background: linear-gradient(90deg, rgba(218, 139, 58, 0.12), rgba(250, 253, 255, 0.84));
}

.income-ticket-card.method-tarjeta {
  border-color: rgba(106, 85, 170, 0.24);
  background: linear-gradient(90deg, rgba(106, 85, 170, 0.11), rgba(250, 253, 255, 0.84));
}

.income-ticket-amount,
.income-ticket-core,
.income-ticket-date,
.income-ticket-person {
  display: grid;
  gap: 0.1rem;
}

.income-ticket-amount strong {
  color: #0b1b2e;
  font-size: clamp(1.18rem, 1.6vw, 1.48rem);
  line-height: 1;
}

.income-ticket-amount span {
  width: max-content;
  padding: 0.18rem 0.46rem;
  border-radius: 999px;
  color: #52616c;
  background: rgba(255, 255, 255, 0.55);
  font-size: 0.68rem;
  font-weight: 940;
}

.income-ticket-card.method-efectivo .income-ticket-amount span {
  color: #0f7650;
  background: rgba(31, 122, 86, 0.16);
}

.income-ticket-card.method-transferencia .income-ticket-amount span {
  color: #b65d16;
  background: rgba(218, 139, 58, 0.18);
}

.income-ticket-card.method-tarjeta .income-ticket-amount span {
  color: #5f45b0;
  background: rgba(106, 85, 170, 0.16);
}

.income-ticket-core strong,
.income-ticket-date strong,
.income-ticket-person strong {
  color: #0b1b2e;
  font-size: 0.88rem;
}

.income-ticket-person strong {
  color: #3f4e5b;
  font-size: 0.82rem;
  font-weight: 850;
}

.income-ticket-core span,
.income-ticket-date span,
.income-ticket-person span,
.income-ticket-details span {
  color: #64717c;
  font-size: 0.68rem;
}

.income-ticket-details {
  justify-self: end;
  min-width: 5rem;
}

.income-ticket-details summary {
  cursor: pointer;
  color: #52616c;
  font-size: 0.72rem;
  font-weight: 850;
}

.income-ticket-details span {
  display: block;
  margin-top: 0.22rem;
  overflow-wrap: anywhere;
}

.income-empty-state {
  display: grid;
  gap: 0.28rem;
  min-height: 9rem;
  place-items: center;
  border: 1px dashed rgba(35, 101, 72, 0.14);
  border-radius: 1rem;
  color: #64717c;
  background: rgba(255, 255, 255, 0.52);
  text-align: center;
}

.payment-amount-input,
.payment-method-select {
  width: 100%;
  min-height: 2.5rem;
  padding: 0 0.75rem;
  border: 1px solid rgba(35, 101, 72, 0.14);
  border-radius: 0.75rem;
  color: #0b1b2e;
  background: rgba(255, 255, 255, 0.88);
  outline: 0;
}

.payment-method-select,
.payment-total-pill {
  font-weight: 920;
}

.payment-method-select.method-efectivo,
.payment-total-pill.method-efectivo {
  color: #0f7650;
  background: rgba(31, 122, 86, 0.16);
  border-color: rgba(31, 122, 86, 0.34);
}

.payment-method-select.method-transferencia,
.payment-total-pill.method-transferencia {
  color: #b65d16;
  background: rgba(218, 139, 58, 0.18);
  border-color: rgba(218, 139, 58, 0.38);
}

.payment-method-select.method-tarjeta,
.payment-total-pill.method-tarjeta {
  color: #5f45b0;
  background: rgba(106, 85, 170, 0.16);
  border-color: rgba(106, 85, 170, 0.34);
}

.payment-total-pill.method-completo {
  color: #bd9146;
  background: rgba(189, 145, 70, 0.12);
  border-color: rgba(189, 145, 70, 0.24);
}

.payment-summary-box {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.85rem;
  align-items: end;
  padding: 1rem;
  border: 1px solid rgba(35, 101, 72, 0.12);
  border-radius: 1rem;
  background: rgba(247, 250, 247, 0.72);
}

.payment-validate-button {
  width: 2.35rem;
  height: 2.35rem;
  margin-inline: auto;
  display: grid;
  place-items: center;
  border: 1px solid rgba(31, 122, 86, 0.20);
  border-radius: 50%;
  color: #1f7a56;
  background: rgba(31, 122, 86, 0.09);
  cursor: pointer;
  transition: transform 180ms ease, border-color 180ms ease, background 180ms ease;
}

.payment-validate-button:hover {
  transform: translateY(-1px);
  border-color: rgba(31, 122, 86, 0.34);
  background: rgba(31, 122, 86, 0.15);
}

.payment-validate-button.is-active {
  color: #fffaf2;
  border-color: rgba(31, 122, 86, 0.28);
  background: #1f7a56;
  box-shadow: 0 10px 22px rgba(31, 122, 86, 0.18);
}

.payment-validate-button svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.payment-summary-box label {
  display: grid;
  gap: 0.35rem;
}

.payment-summary-box label span {
  color: #5b6875;
  font-size: 0.78rem;
  font-weight: 800;
}

.payment-summary-total {
  display: grid;
  gap: 0.15rem;
}

.payment-summary-total span {
  color: #5b6875;
  font-size: 0.8rem;
  font-weight: 800;
}

.payment-summary-total strong {
  color: #0b1b2e;
  font-size: 1.65rem;
}

.payment-total-pills {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.45rem;
}

.payment-total-pill {
  display: inline-grid;
  gap: 0.1rem;
  min-width: 7.25rem;
  padding: 0.5rem 0.65rem;
  border: 1px solid;
  border-radius: 0.85rem;
}

.payment-total-pill small {
  font-size: 0.7rem;
}

.payment-empty {
  padding: 1rem;
  border: 1px dashed rgba(35, 101, 72, 0.18);
  border-radius: 1rem;
  color: #5b6875;
  background: rgba(255, 255, 255, 0.58);
}

.payment-empty strong {
  display: block;
  color: #0b1b2e;
}

.document-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.document-card-head {
  display: flex;
  justify-content: space-between;
  gap: 0.8rem;
  align-items: center;
}

.document-icon {
  display: inline-grid;
  place-items: center;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: var(--radius);
  background: rgba(82, 194, 170, 0.12);
  color: #267365;
  font-weight: 800;
}

.document-tools {
  display: flex;
  gap: 0.35rem;
}

.icon-button {
  display: grid;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.84);
  color: #657478;
  font-size: 1.05rem;
  transition: transform 160ms ease, box-shadow 160ms ease, color 160ms ease, background 160ms ease;
}

.icon-button:hover,
.icon-button.is-active {
  transform: translateY(-1px);
  color: var(--cc-blue-dark);
  background: rgba(35, 135, 201, 0.08);
  box-shadow: 0 10px 22px rgba(31, 45, 47, 0.06);
}

.view.is-documents-view {
  width: min(100%, 94rem);
  padding: 0;
  overflow: auto;
  border-radius: var(--radius);
}

.app-shell.is-documents-immersive .view.is-documents-view {
  width: 100%;
  height: 100vh;
  overflow: auto;
  border-radius: 0;
  background: #01040b;
}

.documents-page {
  position: relative;
  min-height: 100%;
  padding: clamp(1.1rem, 2vw, 1.6rem);
  overflow: hidden;
  border: 1px solid rgba(73, 103, 132, 0.2);
  border-radius: var(--radius);
  color: rgba(240, 246, 255, 0.92);
  background:
    radial-gradient(circle at 18% 0%, rgba(35, 135, 201, 0.18), transparent 34rem),
    radial-gradient(circle at 82% 20%, rgba(82, 194, 170, 0.10), transparent 28rem),
    linear-gradient(145deg, #020714 0%, #030b1a 48%, #01040b 100%);
  box-shadow: 0 24px 70px rgba(2, 7, 20, 0.28);
}

.app-shell.is-documents-immersive .documents-page {
  min-height: 100vh;
  padding: 0.2rem clamp(1rem, 3vw, 2.4rem) 2rem;
  border: 0;
  border-radius: 0;
  background:
    radial-gradient(circle at 50% -12%, rgba(35, 135, 201, 0.22), transparent 35rem),
    radial-gradient(circle at 82% 16%, rgba(82, 194, 170, 0.10), transparent 32rem),
    radial-gradient(circle at 18% 70%, rgba(169, 152, 220, 0.08), transparent 30rem),
    linear-gradient(145deg, #01040b 0%, #020817 42%, #030b1a 100%);
  box-shadow: none;
}

.app-shell.is-documents-immersive .documents-page.biblioteca-view-multivista {
  background:
    radial-gradient(ellipse 76% 42% at 51% 8%, rgba(61, 100, 137, 0.07), transparent 72%),
    radial-gradient(ellipse 42% 58% at 6% 60%, rgba(15, 44, 76, 0.055), transparent 76%),
    radial-gradient(ellipse 38% 50% at 93% 44%, rgba(117, 101, 67, 0.018), transparent 78%),
    linear-gradient(152deg, #01050d 0%, #020817 48%, #01040b 100%);
}

.documents-page::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px);
  background-size: 4rem 4rem;
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.42), transparent 78%);
}

.documents-page.biblioteca-view-multivista::before {
  z-index: 0;
  background:
    radial-gradient(circle at 2% 42%, rgba(255, 255, 255, 0.96) 0 1px, transparent 2.2px),
    radial-gradient(circle at 6% 71%, rgba(232, 245, 255, 0.86) 0 0.75px, transparent 1.8px),
    radial-gradient(circle at 12% 25%, rgba(255, 255, 255, 0.98) 0 1.15px, transparent 2.5px),
    radial-gradient(circle at 17% 57%, rgba(222, 240, 255, 0.86) 0 0.7px, transparent 1.75px),
    radial-gradient(circle at 21% 93%, rgba(255, 255, 255, 0.92) 0 0.95px, transparent 2.15px),
    radial-gradient(circle at 27% 38%, rgba(239, 248, 255, 0.94) 0 0.8px, transparent 1.95px),
    radial-gradient(circle at 34% 82%, rgba(255, 255, 255, 0.98) 0 1.2px, transparent 2.7px),
    radial-gradient(circle at 39% 11%, rgba(222, 240, 255, 0.84) 0 0.7px, transparent 1.8px),
    radial-gradient(circle at 46% 61%, rgba(255, 255, 255, 0.96) 0 0.95px, transparent 2.2px),
    radial-gradient(circle at 53% 3%, rgba(231, 245, 255, 0.88) 0 0.75px, transparent 1.85px),
    radial-gradient(circle at 58% 87%, rgba(255, 255, 255, 0.98) 0 1.15px, transparent 2.55px),
    radial-gradient(circle at 65% 47%, rgba(222, 240, 255, 0.88) 0 0.75px, transparent 1.9px),
    radial-gradient(circle at 70% 23%, rgba(255, 255, 255, 0.94) 0 0.9px, transparent 2.1px),
    radial-gradient(circle at 76% 73%, rgba(235, 247, 255, 0.88) 0 0.7px, transparent 1.8px),
    radial-gradient(circle at 81% 7%, rgba(255, 255, 255, 0.98) 0 1.2px, transparent 2.7px),
    radial-gradient(circle at 86% 55%, rgba(225, 242, 255, 0.9) 0 0.8px, transparent 1.95px),
    radial-gradient(circle at 91% 89%, rgba(255, 255, 255, 0.96) 0 1.05px, transparent 2.35px),
    radial-gradient(circle at 96% 33%, rgba(230, 245, 255, 0.86) 0 0.75px, transparent 1.85px);
  opacity: 0.86;
  mask-image: radial-gradient(ellipse 88% 76% at 50% 14%, #000 0%, rgba(0, 0, 0, 0.64) 46%, transparent 92%);
}

.app-shell.is-documents-immersive .documents-page.biblioteca-view-multivista::after {
  opacity: 0.92;
}

.biblioteca-shell {
  position: relative;
  z-index: 1;
  display: block;
}

.biblioteca-shell.is-sidebar-collapsed {
  display: block;
}

.biblioteca-main-panel {
  position: relative;
  min-width: 0;
  padding-top: clamp(4.35rem, 7vh, 5.4rem);
  padding-bottom: clamp(5.2rem, 8vh, 6.4rem);
}

.biblioteca-sidebar-detail-panel {
  position: fixed;
  z-index: 37;
  top: 0;
  right: 0;
  bottom: 0;
  left: min(18rem, 84vw);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0.95rem;
  min-width: 0;
  padding: clamp(1rem, 2vw, 1.35rem);
  padding-top: clamp(3.35rem, 6vh, 4.65rem);
  border-left: 1px solid rgba(126, 157, 187, 0.14);
  color: rgba(240, 246, 255, 0.92);
  background:
    radial-gradient(circle at 78% 18%, rgba(35, 135, 201, 0.08), transparent 30rem),
    linear-gradient(180deg, #04101f 0%, #020817 100%);
  box-shadow: -24px 0 54px rgba(0, 0, 0, 0.18);
  overflow: hidden;
}

.biblioteca-sidebar-detail-head h3 {
  flex: 0 1 auto;
  margin: 0;
  color: rgba(241, 248, 255, 0.96);
  font-size: clamp(1.24rem, 2vw, 1.72rem);
  font-weight: 720;
  letter-spacing: 0;
}

.biblioteca-sidebar-detail-head {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.72rem;
  flex-wrap: wrap;
}

.biblioteca-sidebar-detail-actions {
  flex: 0 0 auto;
  justify-content: flex-start;
}

.biblioteca-sidebar-detail-scroll {
  min-height: 0;
  overflow: auto;
  padding-right: 0.18rem;
  scrollbar-width: none;
}

.biblioteca-sidebar-detail-scroll::-webkit-scrollbar {
  display: none;
}

.biblioteca-sidebar-detail-panel .biblioteca-focused-section {
  min-height: 100%;
}

.biblioteca-sidebar-document-preview {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(1rem, 2vw, 1.4rem);
  align-items: start;
}

.biblioteca-sidebar-document-preview .document-preview-panel {
  min-height: min(48vh, 28rem);
}

.biblioteca-sidebar-detail-panel.is-video-collection {
  grid-template-rows: minmax(0, 1fr);
}

.biblioteca-video-collection-drawer {
  position: fixed;
  z-index: 48;
  top: 0;
  right: 0;
  bottom: 0;
  width: clamp(25rem, 39vw, 44rem);
  max-width: calc(100vw - 1rem);
  padding: clamp(1.15rem, 2.4vw, 2rem);
  color: rgba(240, 246, 255, 0.92);
  background: rgba(3, 14, 28, 0.985);
  border-left: 1px solid rgba(145, 186, 220, 0.18);
  box-shadow: -1.4rem 0 3.8rem rgba(0, 0, 0, 0.38);
  overflow: hidden;
  animation: bibliotecaVideoCollectionDrawerIn 360ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes bibliotecaVideoCollectionDrawerIn {
  from {
    opacity: 0;
    transform: translateX(2.5rem);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.biblioteca-video-collection-drawer .biblioteca-video-collection-panel {
  height: 100%;
}

.biblioteca-video-collection-panel {
  min-height: 0;
  display: grid;
  grid-template-rows: auto auto auto minmax(0, 1fr) auto;
  gap: 1rem;
}

.biblioteca-video-collection-panel.has-active-player {
  grid-template-rows: auto auto auto auto minmax(0, 1fr) auto;
}

.biblioteca-video-collection-head {
  position: relative;
  display: grid;
  grid-template-columns: minmax(6.2rem, 8.6rem) minmax(0, 1fr);
  gap: 1rem;
  align-items: end;
}

.biblioteca-video-collection-cover {
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border: 1px solid rgba(141, 184, 218, 0.18);
  border-radius: 0.82rem;
  background: rgba(7, 20, 38, 0.78);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.28);
}

.biblioteca-video-collection-cover img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.biblioteca-video-collection-copy {
  min-width: 0;
  display: grid;
  gap: 0.32rem;
}

.biblioteca-video-collection-copy p,
.biblioteca-video-collection-copy small {
  margin: 0;
  color: rgba(168, 193, 214, 0.7);
  font-size: 0.75rem;
  font-weight: 560;
}

.biblioteca-video-collection-copy .biblioteca-video-collection-kicker {
  color: rgba(143, 195, 232, 0.82);
  font-size: 0.68rem;
  font-weight: 720;
  letter-spacing: 0.08em;
}

.biblioteca-video-collection-copy .biblioteca-video-collection-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.42rem 0.75rem;
  color: rgba(199, 218, 234, 0.78);
}

.biblioteca-video-collection-copy .biblioteca-video-collection-facts span + span::before {
  content: "·";
  margin-right: 0.75rem;
  color: rgba(125, 171, 205, 0.62);
}

.biblioteca-video-collection-copy h3 {
  margin: 0;
  color: rgba(243, 249, 255, 0.96);
  font-size: clamp(1.35rem, 2.4vw, 2rem);
  font-weight: 720;
  letter-spacing: 0;
}

.biblioteca-video-collection-copy span {
  color: rgba(216, 232, 245, 0.76);
  font-size: 0.88rem;
  line-height: 1.45;
}

.biblioteca-video-collection-close {
  position: static;
  width: 2rem;
  height: 2rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  color: rgba(220, 236, 248, 0.7);
  background: transparent;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  transition: color 180ms ease, opacity 180ms ease, transform 180ms ease;
}

.biblioteca-video-collection-tools {
  position: absolute;
  z-index: 3;
  top: -0.3rem;
  right: -0.18rem;
  display: flex;
  align-items: center;
  gap: 0.28rem;
}

.biblioteca-presentation-action.is-collection-panel {
  width: 2rem;
  height: 2rem;
  border-color: transparent;
  background: transparent;
  box-shadow: none;
}

.biblioteca-video-collection-close:hover {
  color: rgba(248, 252, 255, 0.95);
  transform: scale(1.06);
}

.biblioteca-video-collection-primary,
.biblioteca-video-collection-fullscreen-link {
  justify-self: start;
  padding: 0;
  border: 0;
  color: rgba(241, 248, 255, 0.9);
  background: transparent;
  font: inherit;
  font-size: 0.9rem;
  font-weight: 680;
  cursor: pointer;
  transition: color 180ms ease, opacity 180ms ease, transform 180ms ease;
}

.biblioteca-video-collection-fullscreen-link {
  color: rgba(166, 203, 232, 0.78);
  font-size: 0.82rem;
}

.biblioteca-video-collection-primary:hover,
.biblioteca-video-collection-fullscreen-link:hover {
  color: rgba(255, 255, 255, 0.98);
  transform: translateX(0.12rem);
}

.biblioteca-video-collection-player {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border: 1px solid rgba(139, 184, 220, 0.18);
  border-radius: 1rem;
  background: #020816;
  box-shadow: 0 22px 58px rgba(0, 0, 0, 0.34);
}

.biblioteca-video-collection-player iframe {
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
}

.biblioteca-video-collection-list {
  min-height: 0;
  display: grid;
  align-content: start;
  gap: 0.78rem;
  overflow: auto;
  padding-right: 0.18rem;
  scrollbar-width: none;
}

.biblioteca-video-collection-list::-webkit-scrollbar {
  display: none;
}

.biblioteca-video-collection-item {
  position: relative;
  display: grid;
  grid-template-columns: minmax(5.7rem, 7.4rem) minmax(0, 1fr);
  gap: 0.8rem;
  align-items: center;
  padding: 0.42rem;
  border: 1px solid rgba(127, 173, 210, 0.12);
  border-radius: 0.9rem;
  color: rgba(230, 240, 249, 0.86);
  background: rgba(8, 25, 45, 0.42);
  cursor: pointer;
  transition: border-color 200ms ease, background 200ms ease, transform 200ms ease;
}

.biblioteca-video-collection-play {
  width: 100%;
  display: block;
  padding: 0;
  border: 0;
  color: rgba(230, 240, 249, 0.86);
  background: transparent;
  cursor: pointer;
  transition: opacity 180ms ease, transform 220ms ease;
}

.biblioteca-video-collection-item.is-active,
.biblioteca-video-collection-item:hover,
.biblioteca-video-collection-item:focus-within {
  border-color: rgba(126, 198, 245, 0.28);
  background: rgba(13, 42, 70, 0.58);
  transform: translateY(-0.06rem);
}

.biblioteca-video-collection-play:hover,
.biblioteca-video-collection-play:focus-visible {
  opacity: 0.9;
  transform: scale(1.015);
}

.biblioteca-video-collection-item.is-locked {
  cursor: default;
  border-color: rgba(127, 173, 210, 0.08);
  color: rgba(189, 209, 226, 0.68);
  background:
    linear-gradient(135deg, rgba(19, 46, 72, 0.34), rgba(4, 15, 29, 0.52)),
    rgba(8, 25, 45, 0.3);
}

.biblioteca-video-collection-item.is-locked:hover,
.biblioteca-video-collection-item.is-locked:focus-within {
  transform: none;
  border-color: rgba(127, 173, 210, 0.12);
  background:
    linear-gradient(135deg, rgba(19, 46, 72, 0.38), rgba(4, 15, 29, 0.56)),
    rgba(8, 25, 45, 0.34);
}

.biblioteca-video-collection-thumb {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 0.58rem;
  background: rgba(3, 11, 23, 0.96);
}

.biblioteca-video-collection-thumb img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.biblioteca-video-collection-thumb span {
  position: absolute;
  right: 0.5rem;
  bottom: 0.45rem;
  color: rgba(255, 255, 255, 0.92);
  font-size: 0.78rem;
  text-shadow: 0 6px 16px rgba(0, 0, 0, 0.5);
}

.biblioteca-video-collection-thumb.is-locked {
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 28% 24%, rgba(136, 202, 243, 0.16), transparent 34%),
    linear-gradient(135deg, rgba(9, 31, 55, 0.84), rgba(2, 9, 20, 0.92));
  box-shadow: inset 0 0 0 1px rgba(143, 196, 231, 0.08);
}

.biblioteca-video-collection-lock-mark {
  position: static !important;
  display: inline-grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  color: rgba(177, 216, 241, 0.64);
  text-shadow: none !important;
}

.biblioteca-video-collection-lock-mark svg {
  width: 1.3rem;
  height: 1.3rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
}

.biblioteca-video-collection-item-copy {
  min-width: 0;
  display: grid;
  gap: 0.22rem;
}

.biblioteca-video-collection-item-copy strong {
  color: rgba(238, 247, 255, 0.9);
  font-size: 0.9rem;
  font-weight: 650;
  line-height: 1.25;
}

.biblioteca-video-collection-item-copy strong[data-video-title-editable] {
  cursor: text;
  border-radius: 0.28rem;
  transition: color 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

.biblioteca-video-collection-item-copy strong.is-editing {
  padding: 0.16rem 0.24rem;
  color: rgba(253, 254, 255, 0.98);
  background: rgba(4, 15, 29, 0.86);
  box-shadow: 0 0 0 1px rgba(132, 199, 242, 0.36);
  outline: none;
}

.biblioteca-video-collection-item-copy > span {
  overflow: hidden;
  color: rgba(190, 211, 228, 0.72);
  font-size: 0.78rem;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.biblioteca-video-collection-item.is-hidden {
  opacity: 0.52;
}

.biblioteca-video-collection-unlock-notice {
  min-height: 1.1rem;
  margin: -0.35rem 0 0;
  color: rgba(189, 224, 246, 0);
  font-size: 0.78rem;
  font-weight: 620;
  letter-spacing: 0.01em;
  transition: color 280ms ease, transform 320ms ease, opacity 280ms ease;
  opacity: 0;
  transform: translateY(-0.2rem);
}

.biblioteca-video-collection-unlock-notice.is-visible {
  color: rgba(189, 224, 246, 0.78);
  opacity: 1;
  transform: translateY(0);
}

.biblioteca-video-collection-item-copy small {
  color: rgba(163, 190, 212, 0.68);
  font-size: 0.74rem;
  font-weight: 540;
}

.biblioteca-video-collection-fullscreen-view {
  min-height: calc(100vh - 9rem);
  padding: clamp(0.4rem, 1.5vw, 1rem) clamp(1rem, 3vw, 2.5rem) 4rem;
}

.biblioteca-video-collection-panel.is-fullscreen {
  max-width: min(72rem, 100%);
  margin: 0 auto;
  grid-template-rows: auto auto auto minmax(0, 1fr);
}

.biblioteca-video-collection-panel.is-fullscreen.has-active-player {
  grid-template-rows: auto auto auto auto minmax(0, 1fr);
}

.biblioteca-video-collection-panel.is-fullscreen .biblioteca-video-collection-head {
  grid-template-columns: minmax(12rem, 19rem) minmax(0, 1fr);
  align-items: center;
}

.biblioteca-video-collection-panel.is-fullscreen .biblioteca-video-collection-list {
  overflow: visible;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
}

.biblioteca-sidebar-process-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(8.6rem, 11.2rem));
  gap: 0.9rem;
  align-items: start;
}

.biblioteca-sidebar-process-card {
  display: grid;
  gap: 0;
  padding: 0;
  border: 0;
  color: rgba(238, 247, 255, 0.9);
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.biblioteca-sidebar-process-card .doc-cover-art {
  width: 100%;
  aspect-ratio: 2 / 3;
}

.biblioteca-sidebar {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  z-index: 38;
  width: min(18rem, 84vw);
  height: 100vh;
  display: grid;
  align-content: start;
  gap: 0.92rem;
  min-width: 0;
  padding: 0.86rem 0.85rem 1.2rem;
  border: 0;
  border-right: 1px solid rgba(126, 157, 187, 0.16);
  border-radius: 0;
  background:
    linear-gradient(180deg, rgba(4, 14, 28, 0.98), rgba(2, 8, 18, 0.97));
  box-shadow: 18px 0 44px rgba(0, 0, 0, 0.26);
  backdrop-filter: blur(18px);
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-width: none;
  opacity: 1;
  transform: translateX(0);
  will-change: transform, opacity;
  transition:
    opacity 260ms ease,
    transform 360ms cubic-bezier(0.18, 0.82, 0.18, 1),
    box-shadow 360ms ease;
}

.biblioteca-sidebar::-webkit-scrollbar {
  display: none;
}

.biblioteca-shell.is-sidebar-collapsed .biblioteca-sidebar {
  opacity: 0;
  pointer-events: none;
  transform: translateX(-102%);
}

.biblioteca-sidebar-header {
  min-height: 3.18rem;
  display: flex;
  align-items: center;
  margin-bottom: 0.82rem;
  padding-right: 4.25rem;
}

.biblioteca-sidebar .biblioteca-sidebar-home {
  width: 100%;
  min-height: 2.85rem;
  display: flex;
  align-items: center;
  padding: 0 0.36rem;
  border: 0;
  color: rgba(232, 242, 250, 0.94);
  background: transparent;
  font-family: var(--nucleo-ui-font);
  font-size: 1.02rem;
  font-weight: 560;
  letter-spacing: 0;
  text-align: left;
  cursor: pointer;
}

.biblioteca-sidebar-item {
  display: grid;
  gap: 0.48rem;
}

.biblioteca-sidebar-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.42rem;
  border-radius: 0;
  transition: transform 220ms ease, color 220ms ease;
}

.biblioteca-sidebar-row:hover {
  transform: translateX(3px);
  background: transparent;
}

.biblioteca-sidebar-row.is-active {
  background: transparent;
  box-shadow: none;
}

.biblioteca-sidebar button,
.biblioteca-sidebar-composer button {
  min-height: 2.95rem;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.82rem;
  border: 0;
  color: rgba(221, 235, 247, 0.76);
  background: transparent;
  font-family: var(--nucleo-ui-font);
  font-size: 1.08rem;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.1;
  text-align: left;
  cursor: pointer;
}

.biblioteca-sidebar-feedback {
  width: 100%;
  margin-top: clamp(3.2rem, 12vh, 6rem);
  min-height: 3.55rem !important;
  padding: 0.82rem 0.36rem 0 !important;
  border-top: 0 !important;
  color: rgba(216, 231, 243, 0.68) !important;
  font-size: 0.84rem !important;
  font-weight: 540 !important;
  gap: 0.62rem !important;
}

.biblioteca-sidebar-feedback .biblioteca-sidebar-icon {
  width: 1.9rem;
  height: 1.9rem;
  min-width: 1.9rem;
}

.biblioteca-sidebar-settings {
  margin-top: 0.25rem;
  padding: 0.78rem 0.36rem 0;
  border-top: 1px solid rgba(126, 157, 187, 0.12);
}

.biblioteca-sidebar-settings > button {
  width: 100%;
  min-height: 3.55rem;
  padding: 0;
  gap: 0.62rem;
  color: rgba(216, 231, 243, 0.72);
  font-size: 0.84rem;
  font-weight: 560;
}

.biblioteca-sidebar-settings > button:hover,
.biblioteca-sidebar-settings > button:focus-visible {
  color: rgba(248, 252, 255, 0.96);
}

.biblioteca-sidebar-settings .biblioteca-sidebar-icon {
  width: 1.9rem;
  height: 1.9rem;
  min-width: 1.9rem;
}

.biblioteca-sidebar-row.is-active .biblioteca-sidebar-option > span:last-child,
.biblioteca-sidebar-feedback.is-active > span:last-child {
  color: rgba(255, 255, 255, 0.98);
}

.biblioteca-initial-loading,
.biblioteca-feedback-section {
  min-height: clamp(25rem, 72dvh, 48rem);
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 0.8rem;
  padding: 5rem 1.25rem 2rem;
  color: rgba(232, 242, 250, 0.82);
  text-align: center;
}

.biblioteca-initial-loading {
  font-size: 0.86rem;
  letter-spacing: 0.04em;
}

.biblioteca-initial-loading-mark {
  width: 1.7rem;
  height: 1.7rem;
  border: 1px solid rgba(219, 239, 253, 0.22);
  border-top-color: rgba(240, 250, 255, 0.78);
  border-radius: 50%;
  animation: biblioteca-initial-loading-spin 820ms linear infinite;
}

@keyframes biblioteca-initial-loading-spin {
  to { transform: rotate(360deg); }
}

.biblioteca-feedback-section {
  position: relative;
  width: 100%;
  max-width: 36rem;
  margin: 0 auto;
  display: grid;
  place-content: center;
  justify-items: center;
  padding: 5rem 1.25rem 6.5rem;
  text-align: center;
}

.biblioteca-feedback-intro {
  display: grid;
  justify-items: center;
  gap: 0.72rem;
}

.biblioteca-feedback-composer {
  position: fixed;
  z-index: 46;
  right: max(0.8rem, env(safe-area-inset-right));
  bottom: max(0.85rem, env(safe-area-inset-bottom));
  left: max(0.8rem, env(safe-area-inset-left));
  width: min(34rem, calc(100vw - 1.6rem));
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 2.65rem;
  align-items: end;
  gap: 0.48rem;
  padding: 0.42rem;
  border: 1px solid rgba(157, 190, 218, 0.16);
  border-radius: 1.25rem;
  background: rgba(4, 13, 25, 0.96);
  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.34);
}

.biblioteca-feedback-composer textarea {
  width: 100%;
  min-height: 2.55rem;
  max-height: 8rem;
  resize: vertical;
  padding: 0.72rem 0.78rem;
  border: 0;
  outline: 0;
  color: rgba(247, 251, 255, 0.94);
  background: transparent;
  font: inherit;
  line-height: 1.35;
}

.biblioteca-feedback-composer textarea::placeholder {
  color: rgba(184, 204, 220, 0.42);
}

.biblioteca-feedback-composer button {
  width: 2.55rem;
  height: 2.55rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(170, 211, 238, 0.16);
  border-radius: 50%;
  color: rgba(247, 252, 255, 0.9);
  background: rgba(67, 123, 162, 0.42);
}

.biblioteca-feedback-composer button:disabled,
.biblioteca-feedback-composer textarea:disabled {
  opacity: 0.5;
}

.biblioteca-feedback-composer svg {
  width: 1.18rem;
  height: 1.18rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
}

.biblioteca-feedback-composer-status {
  grid-column: 1 / -1;
  justify-self: center;
  padding-bottom: 0.2rem;
  color: rgba(179, 207, 225, 0.68);
  font-size: 0.68rem;
}

.biblioteca-feedback-composer-status.is-error {
  color: rgba(242, 151, 148, 0.9);
}

.biblioteca-feedback-icon {
  width: 2.5rem;
  height: 2.5rem;
  display: grid;
  place-items: center;
  color: rgba(238, 248, 255, 0.86);
}

.biblioteca-feedback-icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.35;
}

.biblioteca-feedback-section h2 {
  margin: 0.2rem 0 0;
  color: rgba(249, 252, 255, 0.96);
  font-family: var(--nucleo-display-font);
  font-size: clamp(1.45rem, 5vw, 2rem);
  font-weight: 620;
}

.biblioteca-feedback-section p {
  max-width: 31rem;
  margin: 0;
  color: rgba(224, 237, 247, 0.8);
  font-size: clamp(1rem, 3.8vw, 1.12rem);
  line-height: 1.58;
}

.biblioteca-sidebar-option {
  width: 100%;
  display: grid;
  grid-template-columns: 2.05rem minmax(0, 1fr) auto;
  gap: 0.78rem;
  justify-content: initial;
  padding: 0 0.36rem;
  border-radius: 0;
}

.biblioteca-sidebar-row.is-active .biblioteca-sidebar-option {
  color: rgba(255, 255, 255, 0.96);
}

.biblioteca-sidebar-row:hover .biblioteca-sidebar-option {
  color: rgba(242, 248, 255, 0.92);
}

.biblioteca-sidebar-icon {
  width: 1.96rem;
  height: 1.96rem;
  min-width: 1.96rem;
  display: grid;
  place-items: center;
  color: rgba(143, 205, 242, 0.92);
}

.biblioteca-sidebar-icon svg,
.biblioteca-sidebar-toggle svg,
.biblioteca-sidebar-disclosure svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-sidebar small {
  justify-self: end;
  color: rgba(186, 216, 240, 0.72);
  font-size: 0.9rem;
  font-weight: 600;
}

.biblioteca-sidebar-add,
.biblioteca-sidebar-disclosure {
  position: relative;
  width: 2.05rem;
  min-width: 2.05rem;
  justify-content: center;
  border-radius: 50%;
  color: rgba(242, 248, 255, 0.92);
  background: transparent;
  transition: transform 160ms ease, color 160ms ease, background 160ms ease, opacity 160ms ease;
}

.biblioteca-sidebar-add:hover {
  transform: scale(1.08);
  color: #ffffff;
  background: transparent;
}

.biblioteca-sidebar-disclosure {
  opacity: 0.74;
}

.biblioteca-sidebar-disclosure:hover {
  color: #ffffff;
  background: transparent;
  opacity: 1;
}

.biblioteca-sidebar-add > span,
.biblioteca-sidebar-disclosure > span {
  display: grid;
  place-items: center;
  width: 1em;
  height: 1em;
  line-height: 1;
}

.biblioteca-sidebar-disclosure svg {
  width: 1.18rem;
  height: 1.18rem;
  transform: rotate(0deg);
  transition: transform 160ms ease;
}

.biblioteca-sidebar-disclosure.is-open svg {
  transform: rotate(180deg);
}

.biblioteca-sidebar-disclosure:hover svg {
  transform: scale(1.12);
}

.biblioteca-sidebar-disclosure.is-open:hover svg {
  transform: rotate(180deg) scale(1.12);
}

.biblioteca-sidebar-composer {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.35rem;
  margin: -0.04rem 0 0 2.15rem;
  padding: 0.35rem 0 0;
  border: 1px solid rgba(126, 157, 187, 0.14);
  border-width: 0 0 0 1px;
  border-radius: 0;
  background: transparent;
}

.biblioteca-sidebar-composer input {
  min-width: 0;
  min-height: 2.3rem;
  padding: 0 0.62rem;
  border: 1px solid rgba(126, 157, 187, 0.2);
  border-radius: 0.54rem;
  color: rgba(242, 248, 255, 0.92);
  background: rgba(7, 18, 35, 0.68);
  font-size: 0.92rem;
  outline: 0;
}

.biblioteca-sidebar-composer button {
  min-height: 2.1rem;
  padding: 0 0.62rem;
  border-radius: 0.62rem;
  color: rgba(255, 255, 255, 0.94);
  background: rgba(35, 135, 201, 0.22);
  font-size: 0.76rem;
}

.biblioteca-sidebar-composer .biblioteca-form-status {
  grid-column: 1 / -1;
  min-height: 0;
  color: rgba(224, 236, 248, 0.7);
  font-size: 0.74rem;
}

.biblioteca-sidebar-nested-list {
  position: relative;
  display: grid;
  gap: 0.24rem;
  max-height: 12.2rem;
  margin: -0.05rem 0 0 2.15rem;
  padding: 0 0 1.1rem 0.72rem;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-width: none;
}

.biblioteca-sidebar-nested-list.has-scroll-hint {
  -webkit-mask-image: linear-gradient(180deg, #000 0, #000 calc(100% - 1.9rem), rgba(0, 0, 0, 0.35) calc(100% - 0.55rem), transparent 100%);
  mask-image: linear-gradient(180deg, #000 0, #000 calc(100% - 1.9rem), rgba(0, 0, 0, 0.35) calc(100% - 0.55rem), transparent 100%);
}

.biblioteca-sidebar-nested-list::-webkit-scrollbar {
  display: none;
}

.biblioteca-sidebar-nested-list.has-scroll-pill::-webkit-scrollbar,
.biblioteca-sidebar-collections.has-scroll-pill::-webkit-scrollbar {
  display: none;
}

.biblioteca-sidebar-nested-list button {
  min-height: 2.05rem;
  padding: 0;
  justify-content: flex-start;
  color: rgba(196, 217, 236, 0.68);
  font-size: 1.02rem;
  font-weight: 560;
  line-height: 1.2;
  transition: color 160ms ease, opacity 200ms ease, transform 200ms ease, filter 200ms ease;
}

.biblioteca-sidebar-nested-list button:hover,
.biblioteca-sidebar-nested-list button.is-active {
  color: rgba(246, 250, 255, 0.94);
  transform: translateX(2px);
}

.biblioteca-sidebar-nested-list button.is-removing {
  opacity: 0;
  filter: blur(5px);
  transform: translateX(0.8rem);
  pointer-events: none;
}

.biblioteca-sidebar-nested-list span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.biblioteca-sidebar-empty {
  min-height: 1.9rem;
  display: flex;
  align-items: center;
  color: rgba(171, 197, 219, 0.48);
  font-size: 0.84rem;
}

.biblioteca-sidebar-collections {
  display: grid;
  gap: 0.28rem;
  max-height: 12.2rem;
  margin: -0.06rem 0 0 0;
  padding-left: 2.44rem;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-width: none;
}

.biblioteca-sidebar-collections.has-scroll-hint {
  -webkit-mask-image: linear-gradient(180deg, #000 0, #000 calc(100% - 1.9rem), rgba(0, 0, 0, 0.35) calc(100% - 0.55rem), transparent 100%);
  mask-image: linear-gradient(180deg, #000 0, #000 calc(100% - 1.9rem), rgba(0, 0, 0, 0.35) calc(100% - 0.55rem), transparent 100%);
}

.biblioteca-sidebar-collections::-webkit-scrollbar {
  display: none;
}

.biblioteca-sidebar-collections button {
  min-height: 2.05rem;
  padding: 0;
  justify-content: flex-start;
  gap: 0.45rem;
  color: rgba(185, 206, 226, 0.64);
  font-size: 1.02rem;
  font-weight: 600;
  transition: transform 160ms ease, color 160ms ease;
}

.biblioteca-sidebar-collections button:hover,
.biblioteca-sidebar-collections button.is-active {
  transform: translateX(2px);
  color: rgba(244, 249, 255, 0.92);
}

.biblioteca-sidebar-collections small {
  margin-left: 0.2rem;
  color: rgba(151, 181, 208, 0.5);
}

.documents-library-head,
.document-shelves,
.document-detail-nav,
.document-detail-stage,
.document-related,
.document-collection-stage,
.document-collection-grid {
  position: relative;
  z-index: 1;
}

.documents-library-head {
  position: fixed;
  left: max(1rem, calc(50% - 15rem));
  bottom: clamp(1rem, 2.2vw, 1.45rem);
  z-index: 43;
  width: min(calc(100vw - 2rem), 30rem);
  display: flex;
  justify-content: center;
  gap: 1rem;
  align-items: center;
  margin: 0;
  padding: 0;
  pointer-events: none;
}

.documents-library-head > * {
  pointer-events: auto;
}

.app-shell.is-documents-immersive .documents-library-head {
  min-height: 0.25rem;
  margin-bottom: 0;
  padding-inline: 0;
}

.biblioteca-sidebar-toggle {
  position: fixed;
  z-index: 45;
  left: calc(max(0.9rem, env(safe-area-inset-left)) + 0.12rem);
  top: 0.58rem;
  width: 3.28rem;
  height: 3.28rem;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 0;
  color: rgba(226, 241, 253, 0.72);
  background: transparent;
  cursor: pointer;
  transition: transform 220ms ease, color 220ms ease, opacity 220ms ease;
}

.biblioteca-sidebar-toggle.is-open {
  left: calc(min(18rem, 84vw) - 4.06rem);
}

.biblioteca-sidebar-toggle:hover {
  transform: translateY(-1px) scale(1.04);
  color: #ffffff;
  opacity: 1;
}

.biblioteca-sidebar-toggle svg {
  width: 1.88rem;
  height: 1.88rem;
}

.biblioteca-sidebar-toggle::after {
  content: attr(data-tooltip);
  position: absolute;
  z-index: 4;
  bottom: calc(100% + 0.45rem);
  left: 50%;
  width: max-content;
  max-width: 10rem;
  padding: 0.32rem 0.5rem;
  border: 1px solid rgba(126, 157, 187, 0.24);
  border-radius: 999px;
  color: rgba(236, 244, 252, 0.9);
  background: rgba(4, 12, 24, 0.96);
  font-size: 0.72rem;
  line-height: 1.2;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 0.25rem);
  transition: opacity 140ms ease, transform 140ms ease;
}

.biblioteca-sidebar-toggle:hover::after {
  opacity: 1;
  transform: translate(-50%, 0);
}

.biblioteca-sidebar-toggle::after {
  top: calc(100% + 0.45rem);
  bottom: auto;
  left: 0;
  transform: translate(0, 0.25rem);
}

.biblioteca-sidebar-toggle:hover::after {
  transform: translate(0, 0);
}

.documents-library-head h2 {
  margin: 0;
  color: #f7fbff;
  font-size: clamp(1.45rem, 2.4vw, 2.1rem);
  letter-spacing: 0;
}

.biblioteca-head-title {
  position: absolute;
  left: 0;
  top: 50%;
  display: none;
  transform: translateY(-50%);
  font-size: clamp(1.25rem, 2vw, 1.8rem) !important;
  font-weight: 760;
}

.documents-page.biblioteca-view-sencilla .biblioteca-head-title {
  display: none;
}

.biblioteca-view-switch {
  position: fixed;
  z-index: 44;
  left: calc(max(0.9rem, env(safe-area-inset-left)) + 3.45rem);
  top: 0.66rem;
  flex: 0 0 auto;
  width: 3.08rem;
  height: 3.08rem;
  min-height: 3.08rem;
  display: grid;
  place-items: center;
  align-items: center;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: rgba(226, 241, 253, 0.72);
  background: transparent;
  font-size: 0.78rem;
  font-weight: 720;
  letter-spacing: 0;
  cursor: pointer;
  transform: translateY(0);
  backdrop-filter: none;
  transition: transform 160ms ease, color 160ms ease, opacity 160ms ease;
}

.biblioteca-shell.is-sidebar-open .biblioteca-view-switch {
  opacity: 0;
  pointer-events: none;
  transform: translateY(-0.25rem);
}

.biblioteca-view-switch.is-hidden {
  opacity: 0;
  pointer-events: none;
  transform: translateY(-0.25rem);
}

.biblioteca-view-switch:hover {
  color: rgba(255, 255, 255, 0.98);
  opacity: 1;
  transform: translateY(-1px);
}

.biblioteca-view-switch span {
  width: 1.62rem;
  height: 1.62rem;
  display: grid;
  place-items: center;
}

.biblioteca-view-switch svg {
  width: 1.62rem;
  height: 1.62rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-top-divider {
  position: fixed;
  z-index: 44;
  left: calc(max(0.9rem, env(safe-area-inset-left)) + 6.92rem);
  top: 1.09rem;
  width: 1px;
  height: 2.18rem;
  background: linear-gradient(180deg, transparent 0%, rgba(246, 251, 255, 0.28) 18%, rgba(246, 251, 255, 0.58) 50%, rgba(246, 251, 255, 0.28) 82%, transparent 100%);
  box-shadow: 0 0 12px rgba(166, 215, 248, 0.14);
  pointer-events: none;
  transition: opacity 160ms ease, transform 160ms ease;
}

.biblioteca-academy-toggle {
  position: fixed;
  z-index: 44;
  left: calc(max(0.9rem, env(safe-area-inset-left)) + 7.34rem);
  top: 0.66rem;
  width: 3.08rem;
  height: 3.08rem;
  min-height: 3.08rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: rgba(226, 241, 253, 0.72);
  background: transparent;
  cursor: pointer;
  transition: transform 160ms ease, color 160ms ease, opacity 160ms ease;
}

.biblioteca-academy-toggle:hover,
.biblioteca-academy-toggle.is-active {
  color: rgba(255, 255, 255, 0.98);
  opacity: 1;
}

.biblioteca-academy-toggle:hover {
  transform: translateY(-1px);
}

.biblioteca-academy-toggle span {
  width: 1.66rem;
  height: 1.66rem;
  display: grid;
  place-items: center;
}

.biblioteca-academy-toggle svg {
  width: 1.66rem;
  height: 1.66rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-editorial-top-controls {
  position: fixed;
  z-index: 46;
  top: 0.83rem;
  left: calc(max(0.9rem, env(safe-area-inset-left)) + 14.1rem);
  display: flex;
  align-items: center;
  gap: 0.42rem;
  transition: opacity 160ms ease, transform 160ms ease;
}

body:not(.is-alan-session) .biblioteca-editorial-top-controls {
  left: calc(max(0.9rem, env(safe-area-inset-left)) + 10.42rem);
}

.biblioteca-editorial-top-controls.is-hidden {
  opacity: 0;
  pointer-events: none;
  transform: translateY(-0.25rem);
}

.biblioteca-introduction-switch,
.biblioteca-starfield-diagnostic-copy,
.biblioteca-editorial-index > summary {
  min-height: 2.48rem;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0 0.72rem;
  border: 1px solid rgba(216, 232, 244, 0.11);
  border-radius: 0.72rem;
  color: rgba(224, 235, 244, 0.72);
  background: rgba(8, 14, 23, 0.52);
  box-shadow: none;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 580;
  cursor: pointer;
  transition: color 160ms ease, border-color 160ms ease, background 160ms ease;
}

.biblioteca-introduction-switch,
.biblioteca-starfield-diagnostic-copy {
  position: relative;
  width: 2.48rem;
  min-width: 2.48rem;
  justify-content: center;
  padding: 0;
}

.biblioteca-introduction-switch:hover,
.biblioteca-introduction-switch:focus-visible,
.biblioteca-starfield-diagnostic-copy:hover,
.biblioteca-starfield-diagnostic-copy:focus-visible,
.biblioteca-starfield-diagnostic-copy.is-copied,
.biblioteca-editorial-index > summary:hover,
.biblioteca-editorial-index > summary:focus-visible,
.biblioteca-editorial-index[open] > summary {
  border-color: rgba(216, 232, 244, 0.2);
  color: rgba(247, 251, 255, 0.96);
  background: rgba(14, 22, 33, 0.82);
}

.biblioteca-introduction-switch-icon {
  display: grid;
  place-items: center;
  opacity: 0.42;
  transition: opacity 160ms ease;
}

.biblioteca-introduction-switch-icon svg {
  width: 1.2rem;
  height: 1.2rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-starfield-diagnostic-copy > span {
  display: grid;
  place-items: center;
}

.biblioteca-starfield-diagnostic-copy svg {
  width: 1.16rem;
  height: 1.16rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-introduction-switch.is-on {
  color: rgba(224, 235, 244, 0.92);
  border-color: rgba(216, 232, 244, 0.18);
  background: rgba(8, 14, 23, 0.64);
}

.biblioteca-introduction-switch.is-on .biblioteca-introduction-switch-icon {
  opacity: 1;
}

.biblioteca-editorial-index {
  position: relative;
}

.biblioteca-editorial-index > summary {
  max-width: min(18rem, 35vw);
  list-style: none;
}

.biblioteca-editorial-index > summary::-webkit-details-marker {
  display: none;
}

.biblioteca-editorial-index-icon,
.biblioteca-editorial-index-chevron {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
}

.biblioteca-editorial-index-icon svg {
  width: 1.08rem;
  height: 1.08rem;
  fill: none;
  stroke: currentColor;
}

.biblioteca-editorial-index-chevron svg {
  width: 0.9rem;
  height: 0.9rem;
  fill: none;
  stroke: currentColor;
  transition: transform 160ms ease;
}

.biblioteca-editorial-index[open] .biblioteca-editorial-index-chevron svg {
  transform: rotate(180deg);
}

.biblioteca-editorial-index-current {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.biblioteca-editorial-index-popover {
  position: absolute;
  z-index: 80;
  top: calc(100% + 0.48rem);
  left: 0;
  width: min(21rem, calc(100vw - 2rem));
  padding: 0.5rem;
  border: 1px solid rgba(224, 235, 244, 0.12);
  border-radius: 0.85rem;
  background: rgba(13, 18, 26, 0.97);
  box-shadow: 0 1.2rem 3.4rem rgba(0, 0, 0, 0.42);
  backdrop-filter: blur(28px);
  -webkit-backdrop-filter: blur(28px);
}

.biblioteca-editorial-index-popover > header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.58rem 0.62rem 0.68rem;
  color: rgba(245, 248, 251, 0.9);
}

.biblioteca-editorial-index-popover > header span {
  font-size: 0.78rem;
  font-weight: 670;
}

.biblioteca-editorial-index-popover > header small {
  color: rgba(185, 198, 210, 0.5);
  font-size: 0.68rem;
}

.biblioteca-editorial-index-list {
  display: grid;
  gap: 0.12rem;
}

.biblioteca-editorial-index-item {
  width: 100%;
  min-height: 3.3rem;
  display: grid;
  grid-template-columns: 1.65rem minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.55rem;
  padding: 0.45rem 0.58rem;
  border: 0;
  border-radius: 0.62rem;
  color: rgba(219, 228, 236, 0.78);
  background: transparent;
  text-align: left;
  cursor: pointer;
  transition: color 140ms ease, background 140ms ease;
}

.biblioteca-editorial-index-item:hover,
.biblioteca-editorial-index-item:focus-visible,
.biblioteca-editorial-index-item.is-current {
  color: rgba(250, 252, 254, 0.98);
  background: rgba(255, 255, 255, 0.07);
}

.biblioteca-editorial-index-number {
  color: rgba(181, 194, 205, 0.4);
  font-size: 0.65rem;
  font-variant-numeric: tabular-nums;
}

.biblioteca-editorial-index-copy {
  min-width: 0;
  display: grid;
  gap: 0.12rem;
}

.biblioteca-editorial-index-copy strong,
.biblioteca-editorial-index-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.biblioteca-editorial-index-copy strong {
  font-size: 0.78rem;
  font-weight: 590;
}

.biblioteca-editorial-index-copy small {
  color: rgba(180, 194, 206, 0.46);
  font-size: 0.65rem;
  font-weight: 500;
}

.biblioteca-editorial-index-status {
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: rgba(166, 178, 189, 0.3);
}

.biblioteca-editorial-index-status.is-current {
  background: rgba(104, 194, 147, 0.92);
  box-shadow: 0 0 0 3px rgba(104, 194, 147, 0.08);
}

.biblioteca-editorial-index-empty {
  margin: 0;
  padding: 0.8rem 0.65rem;
  color: rgba(182, 194, 205, 0.56);
  font-size: 0.74rem;
}

.biblioteca-view-switch::after,
.biblioteca-academy-toggle::after,
.biblioteca-introduction-switch::after,
.biblioteca-starfield-diagnostic-copy::after,
.biblioteca-editorial-hero-control::after,
.biblioteca-floating-create::after {
  content: attr(data-tooltip);
  position: absolute;
  z-index: 4;
  bottom: calc(100% + 0.45rem);
  left: 50%;
  width: max-content;
  max-width: 10rem;
  padding: 0.32rem 0.5rem;
  border: 1px solid rgba(126, 157, 187, 0.24);
  border-radius: 999px;
  color: rgba(236, 244, 252, 0.9);
  background: rgba(4, 12, 24, 0.96);
  font-size: 0.72rem;
  line-height: 1.2;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 0.25rem);
  transition: opacity 140ms ease, transform 140ms ease;
}

.biblioteca-view-switch::after,
.biblioteca-academy-toggle::after,
.biblioteca-introduction-switch::after,
.biblioteca-starfield-diagnostic-copy::after {
  top: calc(100% + 0.45rem);
  bottom: auto;
  left: 0;
  transform: translate(0, 0.25rem);
}

.biblioteca-view-switch:hover::after,
.biblioteca-view-switch:focus-visible::after,
.biblioteca-academy-toggle:hover::after,
.biblioteca-academy-toggle:focus-visible::after,
.biblioteca-introduction-switch:hover::after,
.biblioteca-introduction-switch:focus-visible::after,
.biblioteca-starfield-diagnostic-copy:hover::after,
.biblioteca-starfield-diagnostic-copy:focus-visible::after,
.biblioteca-editorial-hero-control:hover::after,
.biblioteca-editorial-hero-control:focus-visible::after,
.biblioteca-floating-create:hover::after,
.biblioteca-floating-create:focus-visible::after {
  opacity: 1;
  transform: translate(-50%, 0);
}

.biblioteca-view-switch:hover::after,
.biblioteca-view-switch:focus-visible::after,
.biblioteca-academy-toggle:hover::after,
.biblioteca-academy-toggle:focus-visible::after,
.biblioteca-introduction-switch:hover::after,
.biblioteca-introduction-switch:focus-visible::after,
.biblioteca-starfield-diagnostic-copy:hover::after,
.biblioteca-starfield-diagnostic-copy:focus-visible::after {
  transform: translate(0, 0);
}

.is-tooltip-suppressed::after,
.biblioteca-editorial-hero:fullscreen [data-tooltip]::after,
.biblioteca-editorial-hero:-webkit-full-screen [data-tooltip]::after,
.biblioteca-video-immersive-stage:fullscreen [data-tooltip]::after,
.biblioteca-video-immersive-stage:-webkit-full-screen [data-tooltip]::after {
  opacity: 0 !important;
  visibility: hidden;
  transform: translate(-50%, 0.25rem) !important;
}

.biblioteca-top-divider.is-hidden,
.biblioteca-academy-toggle.is-hidden {
  opacity: 0;
  pointer-events: none;
  transform: translateY(-0.25rem);
}

.documents-library-head .eyebrow,
.document-shelf h3,
.document-related h3 {
  color: rgba(173, 205, 232, 0.86);
}

.document-search {
  position: fixed;
  z-index: 43;
  left: 50%;
  bottom: clamp(1rem, 2.2vw, 1.45rem);
  width: min(100%, 30rem);
  min-width: 0;
  display: grid;
  gap: 0.35rem;
  color: rgba(210, 224, 238, 0.72);
  font-size: 0.78rem;
  font-weight: 750;
  transform: translateX(-50%);
  transition:
    bottom 520ms cubic-bezier(0.16, 1, 0.3, 1),
    width 520ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 520ms cubic-bezier(0.16, 1, 0.3, 1);
}

.biblioteca-search-backdrop {
  position: fixed;
  z-index: 251;
  inset: 0;
  width: 100vw;
  height: 100dvh;
  padding: 0;
  border: 0;
  border-radius: 0;
  opacity: 0;
  pointer-events: none;
  background: rgba(1, 6, 13, 0.38);
  -webkit-backdrop-filter: blur(0);
  backdrop-filter: blur(0);
  transition: opacity 420ms ease, backdrop-filter 520ms ease, -webkit-backdrop-filter 520ms ease;
}

.biblioteca-search-backdrop.is-visible {
  opacity: 1;
  pointer-events: auto;
  -webkit-backdrop-filter: blur(15px) saturate(0.82);
  backdrop-filter: blur(15px) saturate(0.82);
}

.biblioteca-search-backdrop.is-search-stable,
.document-search.is-search-stable,
.biblioteca-search-focus-results.is-search-stable {
  transition: none;
}

.biblioteca-search-focus-results {
  position: fixed;
  z-index: 252;
  left: 50%;
  bottom: calc(50% + 3.8rem);
  width: min(46rem, calc(100vw - 2rem));
  min-height: 8.2rem;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: clamp(0.35rem, 1.1vw, 0.72rem);
  perspective: 900px;
  opacity: 0;
  pointer-events: none;
  transform: translateX(-50%) translateY(0.75rem) scale(0.97);
  transition: opacity 360ms ease, transform 480ms cubic-bezier(0.16, 1, 0.3, 1);
}

.biblioteca-search-focus-results.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0) scale(1);
}

.biblioteca-search-focus-card {
  position: relative;
  width: clamp(5.4rem, 9vw, 7.4rem);
  aspect-ratio: 4 / 5;
  overflow: hidden;
  padding: 0;
  border: 1px solid rgba(175, 207, 231, 0.16);
  border-radius: 0.75rem;
  color: rgba(244, 249, 253, 0.94);
  background: linear-gradient(155deg, rgba(19, 43, 66, 0.94), rgba(3, 11, 21, 0.98));
  box-shadow: 0 1.2rem 2.8rem rgba(0, 0, 0, 0.34);
  cursor: pointer;
  transform-origin: center bottom;
  transition: border-color 180ms ease, filter 180ms ease, transform 260ms cubic-bezier(0.16, 1, 0.3, 1);
}

.biblioteca-search-focus-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 34%, rgba(2, 8, 15, 0.28) 58%, rgba(2, 8, 15, 0.96) 100%);
  pointer-events: none;
}

.biblioteca-search-focus-card img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.biblioteca-search-focus-card > span {
  height: 100%;
  display: grid;
  place-items: center;
  color: rgba(173, 211, 238, 0.72);
}

.biblioteca-search-focus-card > span svg {
  width: 1.5rem;
  height: 1.5rem;
  fill: none;
  stroke: currentColor;
}

.biblioteca-search-focus-card strong {
  position: absolute;
  z-index: 1;
  right: 0.55rem;
  bottom: 0.52rem;
  left: 0.55rem;
  overflow: hidden;
  font-size: 0.66rem;
  font-weight: 620;
  line-height: 1.25;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.biblioteca-search-focus-card:nth-child(1) { transform: translateY(1.15rem) rotateY(18deg) rotateZ(-4deg) scale(0.88); filter: brightness(0.68); }
.biblioteca-search-focus-card:nth-child(2) { transform: translateY(0.38rem) rotateY(10deg) rotateZ(-2deg) scale(0.96); filter: brightness(0.84); }
.biblioteca-search-focus-card:nth-child(3) { transform: translateY(0) scale(1.04); }
.biblioteca-search-focus-card:nth-child(4) { transform: translateY(0.38rem) rotateY(-10deg) rotateZ(2deg) scale(0.96); filter: brightness(0.84); }
.biblioteca-search-focus-card:nth-child(5) { transform: translateY(1.15rem) rotateY(-18deg) rotateZ(4deg) scale(0.88); filter: brightness(0.68); }

.biblioteca-search-focus-card:hover,
.biblioteca-search-focus-card:focus-visible {
  z-index: 2;
  border-color: rgba(164, 215, 248, 0.42);
  filter: brightness(1);
}

@media (max-width: 560px) {
  .biblioteca-search-focus-results {
    bottom: calc(50% + 3.45rem);
    width: calc(100vw - 0.8rem);
    min-height: 6.4rem;
    gap: 0.22rem;
  }

  .biblioteca-search-focus-card {
    width: clamp(3.8rem, 18vw, 5rem);
    border-radius: 0.6rem;
  }

  .biblioteca-search-focus-card strong {
    right: 0.38rem;
    bottom: 0.38rem;
    left: 0.38rem;
    font-size: 0.58rem;
  }
}

.document-search.is-search-focused {
  z-index: 252;
  bottom: 50%;
  width: min(48rem, calc(100vw - 2rem));
  transform: translate(-50%, 50%);
}

.documents-library-head.is-search-focused {
  z-index: 252;
}

.documents-library-head.is-search-focused .biblioteca-view-switch {
  opacity: 0;
  pointer-events: none;
}

.documents-library-head.is-search-focused .biblioteca-editorial-top-controls {
  opacity: 0;
  pointer-events: none;
}

.document-search.is-search-focused input {
  position: relative;
  z-index: 1;
  min-height: 3.5rem;
  padding-inline: 1.35rem;
  border-color: rgba(176, 196, 226, 0.2);
  background: rgba(7, 11, 20, 0.88);
  box-shadow: 0 1.8rem 5rem rgba(0, 0, 0, 0.32), inset 0 1px 0 rgba(255, 255, 255, 0.04);
  font-size: 1.04rem;
}

.app-shell.is-documents-immersive .document-search {
  width: min(100%, 30rem);
}

.document-search input {
  width: 100%;
  min-height: 2.55rem;
  padding: 0 1rem;
  border: 1px solid rgba(146, 178, 207, 0.12);
  border-radius: 999px;
  color: rgba(244, 249, 255, 0.9);
  background: rgba(7, 18, 35, 0.18);
  outline: 0;
  text-align: center;
  backdrop-filter: blur(10px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.025);
}

.document-search input::placeholder {
  color: rgba(178, 195, 211, 0.34);
}

.document-search input:focus {
  border-color: rgba(91, 165, 215, 0.32);
  background: rgba(7, 18, 35, 0.28);
  box-shadow: 0 0 0 3px rgba(35, 135, 201, 0.08);
}

.documents-page.biblioteca-view-sencilla .document-search,
.app-shell.is-documents-immersive .documents-page.biblioteca-view-sencilla .document-search {
  width: min(100%, 30rem);
}

.documents-page.biblioteca-view-sencilla .document-search input {
  min-height: 2.55rem;
  border-color: rgba(146, 178, 207, 0.12);
  color: rgba(244, 249, 255, 0.9);
  background: rgba(7, 18, 35, 0.18);
  font-size: inherit;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.025);
}

.documents-page.biblioteca-view-sencilla .document-search input:focus {
  border-color: rgba(91, 165, 215, 0.32);
  background: rgba(7, 18, 35, 0.28);
  box-shadow: 0 0 0 3px rgba(35, 135, 201, 0.08);
}

.documents-page .document-search.is-search-focused {
  width: min(48rem, calc(100vw - 2rem));
}

.documents-page .document-search.is-search-focused input {
  position: relative;
  z-index: 1;
  min-height: 3.5rem;
  padding-inline: 1.35rem;
  border-color: rgba(176, 196, 226, 0.2);
  background: rgba(7, 11, 20, 0.88);
  box-shadow: 0 1.8rem 5rem rgba(0, 0, 0, 0.32), inset 0 1px 0 rgba(255, 255, 255, 0.04);
  font-size: 1.04rem;
}

.biblioteca-floating-create {
  position: fixed;
  z-index: 240;
  right: clamp(1rem, 2.8vw, 2rem);
  bottom: clamp(1rem, 2.8vw, 2rem);
  width: 3.1rem;
  height: 3.1rem;
  display: grid;
  place-items: center;
  border: 1px solid rgba(210, 226, 241, 0.3);
  border-radius: 50%;
  color: #08111f;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(213, 229, 242, 0.9)),
    #f8fbff;
  box-shadow:
    0 18px 42px rgba(0, 0, 0, 0.34),
    0 0 0 6px rgba(35, 135, 201, 0.1);
  cursor: pointer;
  font-size: 1.85rem;
  line-height: 1;
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.biblioteca-floating-create > span,
.biblioteca-inline-create > span {
  display: grid;
  place-items: center;
  width: 1em;
  height: 1em;
  line-height: 1;
  transform: none;
}

.biblioteca-floating-create > span {
  position: relative;
  width: 1.12rem;
  height: 1.12rem;
  font-size: 0;
}

.biblioteca-floating-create > span::before,
.biblioteca-floating-create > span::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 1.1rem;
  height: 0.12rem;
  border-radius: 999px;
  background: currentColor;
  transform: translate(-50%, -50%);
}

.biblioteca-floating-create > span::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.biblioteca-floating-create:hover {
  transform: translateY(-2px) scale(1.03);
  border-color: rgba(152, 203, 235, 0.64);
  box-shadow:
    0 24px 56px rgba(0, 0, 0, 0.42),
    0 0 0 7px rgba(35, 135, 201, 0.16);
}

.doc-icon-action.biblioteca-admin-create-action,
.collection-item-download.biblioteca-admin-create-action {
  color: rgba(231, 240, 248, 0.9);
  border-color: rgba(192, 208, 222, 0.2);
  background:
    linear-gradient(180deg, rgba(116, 134, 150, 0.5), rgba(67, 82, 98, 0.48)),
    rgba(42, 54, 68, 0.7);
  box-shadow:
    0 12px 24px rgba(0, 0, 0, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.doc-icon-action.biblioteca-admin-create-action:hover,
.collection-item-download.biblioteca-admin-create-action:hover {
  color: #ffffff;
  border-color: rgba(192, 214, 230, 0.36);
  background:
    linear-gradient(180deg, rgba(135, 153, 169, 0.6), rgba(79, 96, 113, 0.58)),
    rgba(52, 66, 82, 0.82);
  box-shadow:
    0 14px 28px rgba(0, 0, 0, 0.24),
    0 0 0 4px rgba(126, 157, 187, 0.1);
}

.doc-icon-action.biblioteca-admin-create-action > span,
.collection-item-download.biblioteca-admin-create-action > span {
  position: relative;
  width: 1rem;
  height: 1rem;
  font-size: 0;
}

.doc-icon-action.biblioteca-admin-create-action > span::before,
.doc-icon-action.biblioteca-admin-create-action > span::after,
.collection-item-download.biblioteca-admin-create-action > span::before,
.collection-item-download.biblioteca-admin-create-action > span::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 1rem;
  height: 0.11rem;
  border-radius: 999px;
  background: currentColor;
  transform: translate(-50%, -50%);
}

.doc-icon-action.biblioteca-admin-create-action > span::after,
.collection-item-download.biblioteca-admin-create-action > span::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.biblioteca-save-notice {
  position: fixed;
  z-index: 340;
  top: 50%;
  left: 50%;
  width: min(25rem, calc(100vw - 2rem));
  display: inline-flex;
  align-items: center;
  gap: 0.95rem;
  margin: 0;
  padding: 1.05rem 1.2rem 1.05rem 1.05rem;
  border: 1px solid rgba(174, 211, 238, 0.16);
  border-radius: 1.35rem;
  color: rgba(239, 247, 253, 0.94);
  background:
    linear-gradient(145deg, rgba(20, 39, 58, 0.88), rgba(5, 14, 25, 0.94));
  -webkit-backdrop-filter: blur(24px) saturate(125%);
  backdrop-filter: blur(24px) saturate(125%);
  text-align: left;
  box-shadow:
    0 1.8rem 5rem rgba(0, 4, 10, 0.38),
    inset 0 1px 0 rgba(255, 255, 255, 0.07);
  pointer-events: none;
  transform: translate(-50%, -50%);
  animation: biblioteca-toast-premium-in 420ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.biblioteca-save-notice.is-success {
  border-color: rgba(130, 203, 170, 0.2);
}

.biblioteca-save-notice.is-error {
  border-color: rgba(226, 111, 99, 0.4);
  color: rgba(255, 242, 240, 0.94);
  background: rgba(82, 24, 25, 0.76);
}

.biblioteca-personal-context-menu {
  position: fixed;
  z-index: 360;
  width: min(13.5rem, calc(100vw - 1rem));
  padding: 0.34rem;
  border: 1px solid rgba(138, 174, 204, 0.22);
  border-radius: 0.72rem;
  background: rgba(5, 14, 27, 0.96);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.34), 0 0 0 1px rgba(255, 255, 255, 0.03);
}

.biblioteca-personal-context-menu button {
  width: 100%;
  min-height: 2.35rem;
  display: flex;
  align-items: center;
  padding: 0 0.72rem;
  border: 0;
  border-radius: 0.5rem;
  color: rgba(232, 243, 252, 0.88);
  background: transparent;
  font-size: 0.94rem;
  font-weight: 600;
  letter-spacing: 0;
  text-align: left;
  cursor: pointer;
  transition: color 140ms ease, background 140ms ease;
}

.biblioteca-personal-context-menu button:hover {
  color: rgba(255, 255, 255, 0.98);
  background: rgba(103, 161, 207, 0.14);
}

@keyframes biblioteca-toast-in {
  from {
    opacity: 0;
    transform: translate(-50%, calc(-50% + 0.5rem));
  }
  to {
    opacity: 1;
    transform: translate(-50%, -50%);
  }
}

.biblioteca-modal-backdrop {
  position: fixed;
  z-index: 260;
  inset: 0;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 3vw, 2.2rem);
  background: rgba(0, 7, 14, 0.48);
  backdrop-filter: blur(14px);
}

.biblioteca-folder-modal {
  position: relative;
  width: min(48rem, calc(100vw - 2rem));
  max-height: min(46rem, calc(100vh - 2rem));
  overflow: auto;
  padding: clamp(1.1rem, 2.6vw, 1.8rem);
  border: 1px solid rgba(218, 228, 234, 0.92);
  border-radius: 0.9rem;
  color: #101d2c;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(244, 248, 250, 0.96)),
    #ffffff;
  box-shadow:
    0 28px 80px rgba(0, 0, 0, 0.42),
    inset 0 1px 0 rgba(255, 255, 255, 0.92);
  animation: calendarModalIn 180ms ease-out both;
}

.biblioteca-modal-close {
  position: absolute;
  top: 0.85rem;
  right: 0.85rem;
  width: 2.15rem;
  height: 2.15rem;
  display: grid;
  place-items: center;
  border: 1px solid rgba(16, 29, 44, 0.12);
  border-radius: 50%;
  color: #304257;
  background: rgba(245, 248, 250, 0.92);
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
}

.biblioteca-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.38rem;
  padding-right: 2.6rem;
  margin-bottom: 1.05rem;
}

.biblioteca-modal-tabs {
  display: inline-flex;
  gap: 0.18rem;
  padding: 0.22rem;
  border: 1px solid rgba(16, 29, 44, 0.1);
  border-radius: 999px;
  background: rgba(231, 238, 244, 0.9);
}

.biblioteca-modal-tabs button {
  min-height: 2.15rem;
  padding: 0 0.86rem;
  border: 0;
  border-radius: 999px;
  color: #506176;
  background: transparent;
  cursor: pointer;
  font-size: 0.82rem;
  font-weight: 780;
}

.biblioteca-modal-tabs button.is-active {
  color: #0b1b2e;
  background: #fff;
  box-shadow: 0 8px 20px rgba(16, 29, 44, 0.1);
}

.biblioteca-modal-head > span {
  width: fit-content;
  padding: 0.28rem 0.55rem;
  border: 1px solid rgba(16, 29, 44, 0.1);
  border-radius: 999px;
  color: #41546b;
  background: rgba(238, 243, 247, 0.9);
  font-size: 0.72rem;
  font-weight: 750;
}

.biblioteca-folder-form,
.biblioteca-folder-form label {
  display: grid;
  gap: 0.5rem;
}

.biblioteca-folder-form {
  gap: 0.95rem;
}

.biblioteca-form-context {
  display: grid;
  gap: 0.24rem;
  padding: 0.78rem 0.9rem;
  border: 1px solid rgba(37, 57, 81, 0.1);
  border-radius: 0.7rem;
  background: rgba(248, 251, 252, 0.86);
}

.biblioteca-form-context strong {
  color: #142235;
  font-size: 0.98rem;
}

.biblioteca-form-context span {
  color: #6a7d91;
  font-size: 0.8rem;
  line-height: 1.4;
}

.biblioteca-form-context.is-danger {
  border-color: rgba(155, 53, 46, 0.22);
  background: rgba(255, 246, 244, 0.94);
}

.biblioteca-form-context.is-danger strong {
  color: #72241f;
}

.biblioteca-folder-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(9rem, 0.36fr);
  gap: 0.75rem;
}

.biblioteca-folder-form label > span,
.biblioteca-subfolder-head span {
  color: #253951;
  font-size: 0.82rem;
  font-weight: 780;
}

.biblioteca-folder-form input,
.biblioteca-folder-form textarea,
.biblioteca-folder-form select {
  width: 100%;
  min-height: 2.62rem;
  border: 1px solid rgba(37, 57, 81, 0.14);
  border-radius: 0.55rem;
  color: #101d2c;
  background: rgba(255, 255, 255, 0.94);
  outline: 0;
  font: inherit;
}

.biblioteca-folder-form input,
.biblioteca-folder-form select {
  padding: 0 0.78rem;
}

.biblioteca-folder-form textarea {
  resize: vertical;
  padding: 0.74rem 0.78rem;
  line-height: 1.48;
}

.biblioteca-folder-form input:focus,
.biblioteca-folder-form textarea:focus,
.biblioteca-folder-form select:focus {
  border-color: rgba(35, 135, 201, 0.52);
  box-shadow: 0 0 0 3px rgba(35, 135, 201, 0.12);
}

.biblioteca-file-drop {
  min-height: 4.4rem;
  align-content: center;
  padding: 0.9rem;
  border: 1px dashed rgba(37, 57, 81, 0.22);
  border-radius: 0.68rem;
  background:
    linear-gradient(180deg, rgba(247, 250, 252, 0.86), rgba(238, 244, 248, 0.82));
  cursor: pointer;
}

.biblioteca-file-drop input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.biblioteca-file-drop small,
.biblioteca-subfolder-head small,
.biblioteca-subfolder-index {
  color: #6a7d91;
  font-size: 0.76rem;
  line-height: 1.35;
}

.biblioteca-subfolder-area {
  display: grid;
  gap: 0.7rem;
  padding-top: 0.2rem;
}

.biblioteca-subfolder-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
}

.biblioteca-subfolder-list {
  display: grid;
  gap: 0.72rem;
}

.biblioteca-subfolder-card {
  display: grid;
  gap: 0.68rem;
  padding: 0.8rem;
  border: 1px solid rgba(37, 57, 81, 0.12);
  border-radius: 0.7rem;
  background: rgba(248, 251, 252, 0.88);
}

.biblioteca-subfolder-title {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 2.15rem;
  gap: 0.6rem;
  align-items: end;
}

.biblioteca-subfolder-remove {
  width: 2.15rem;
  height: 2.15rem;
  display: grid;
  place-items: center;
  border: 1px solid rgba(37, 57, 81, 0.12);
  border-radius: 50%;
  color: #5c6d7e;
  background: #fff;
  cursor: pointer;
}

.biblioteca-form-status {
  min-height: 1.25rem;
  color: #5c6d7e;
  font-size: 0.82rem;
}

.biblioteca-form-status.is-error {
  color: #9b352e;
}

.biblioteca-form-status.is-info {
  color: #225c8c;
}

.biblioteca-form-status.is-success {
  color: #217254;
}

.biblioteca-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.65rem;
  padding-top: 0.15rem;
}

.danger-button {
  background: linear-gradient(180deg, #a73732, #852a28);
  color: #fff;
  box-shadow: 0 14px 28px rgba(133, 42, 40, 0.18);
}

.biblioteca-folder-modal.is-delete-confirmation {
  width: min(34rem, calc(100vw - 2rem));
}

.biblioteca-delete-warning {
  display: grid;
  gap: 0.5rem;
  padding: 1rem;
  border: 1px solid rgba(155, 53, 46, 0.18);
  border-radius: 0.75rem;
  background: rgba(255, 246, 244, 0.94);
}

.biblioteca-delete-warning strong {
  color: #72241f;
  font-size: 1.04rem;
}

.biblioteca-delete-warning p {
  margin: 0;
  color: #5f3432;
  font-size: 0.88rem;
  line-height: 1.5;
}

.biblioteca-drafts-panel {
  display: grid;
  gap: 0.95rem;
}

.biblioteca-drafts-list {
  display: grid;
  gap: 0.72rem;
}

.biblioteca-draft-card,
.biblioteca-drafts-empty {
  border: 1px solid rgba(37, 57, 81, 0.12);
  border-radius: 0.7rem;
  background: rgba(248, 251, 252, 0.88);
}

.biblioteca-draft-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 0.8rem;
  padding: 0.82rem;
}

.biblioteca-draft-card strong {
  display: block;
  color: #142235;
  font-size: 0.96rem;
}

.biblioteca-draft-card p {
  margin: 0.22rem 0 0;
  color: #6a7d91;
  font-size: 0.8rem;
  line-height: 1.4;
}

.biblioteca-draft-meta {
  display: grid;
  justify-items: end;
  gap: 0.24rem;
  color: #6a7d91;
  font-size: 0.76rem;
  white-space: nowrap;
}

.biblioteca-draft-meta span {
  padding: 0.24rem 0.5rem;
  border: 1px solid rgba(207, 164, 90, 0.22);
  border-radius: 999px;
  color: #70582c;
  background: rgba(207, 164, 90, 0.1);
  font-weight: 760;
}

.biblioteca-draft-actions {
  display: flex;
  gap: 0.45rem;
}

.biblioteca-drafts-empty {
  display: grid;
  place-items: center;
  min-height: 8rem;
  padding: 1rem;
  color: #6a7d91;
  text-align: center;
  font-size: 0.86rem;
}

.biblioteca-drafts-empty.is-warning {
  color: #8d3e35;
  background: rgba(255, 246, 242, 0.9);
}

.app-shell.is-documents-immersive .view.is-documents-view,
.app-shell.is-documents-immersive .documents-page,
.app-shell.is-documents-immersive .document-cover-row,
.app-shell.is-documents-immersive .document-preview-panel,
.app-shell.is-documents-immersive .document-reader,
.app-shell.is-documents-immersive .reader-frame,
.app-shell.is-documents-immersive .sidebar {
  scrollbar-color: #12365a #020b16;
  scrollbar-width: thin;
}

.app-shell.is-documents-immersive .view.is-documents-view::-webkit-scrollbar,
.app-shell.is-documents-immersive .documents-page::-webkit-scrollbar,
.app-shell.is-documents-immersive .document-cover-row::-webkit-scrollbar,
.app-shell.is-documents-immersive .document-preview-panel::-webkit-scrollbar,
.app-shell.is-documents-immersive .document-reader::-webkit-scrollbar,
.app-shell.is-documents-immersive .reader-frame::-webkit-scrollbar,
.app-shell.is-documents-immersive .sidebar::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

.app-shell.is-documents-immersive .view.is-documents-view::-webkit-scrollbar-track,
.app-shell.is-documents-immersive .documents-page::-webkit-scrollbar-track,
.app-shell.is-documents-immersive .document-cover-row::-webkit-scrollbar-track,
.app-shell.is-documents-immersive .document-preview-panel::-webkit-scrollbar-track,
.app-shell.is-documents-immersive .document-reader::-webkit-scrollbar-track,
.app-shell.is-documents-immersive .reader-frame::-webkit-scrollbar-track,
.app-shell.is-documents-immersive .sidebar::-webkit-scrollbar-track {
  background: #020b16;
}

.app-shell.is-documents-immersive .view.is-documents-view::-webkit-scrollbar-thumb,
.app-shell.is-documents-immersive .documents-page::-webkit-scrollbar-thumb,
.app-shell.is-documents-immersive .document-cover-row::-webkit-scrollbar-thumb,
.app-shell.is-documents-immersive .document-preview-panel::-webkit-scrollbar-thumb,
.app-shell.is-documents-immersive .document-reader::-webkit-scrollbar-thumb,
.app-shell.is-documents-immersive .reader-frame::-webkit-scrollbar-thumb,
.app-shell.is-documents-immersive .sidebar::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: #12365a;
}

.app-shell.is-documents-immersive .view.is-documents-view::-webkit-scrollbar-thumb:hover,
.app-shell.is-documents-immersive .documents-page::-webkit-scrollbar-thumb:hover,
.app-shell.is-documents-immersive .document-cover-row::-webkit-scrollbar-thumb:hover,
.app-shell.is-documents-immersive .document-preview-panel::-webkit-scrollbar-thumb:hover,
.app-shell.is-documents-immersive .document-reader::-webkit-scrollbar-thumb:hover,
.app-shell.is-documents-immersive .reader-frame::-webkit-scrollbar-thumb:hover,
.app-shell.is-documents-immersive .sidebar::-webkit-scrollbar-thumb:hover {
  background: #1f5f9c;
}

.document-shelves {
  display: grid;
  gap: 1.25rem;
}

.biblioteca-editorial-hero-stage {
  display: contents;
}

.biblioteca-editorial-hero {
  position: relative;
  width: 100%;
  margin: 0;
  aspect-ratio: 21 / 9;
  min-height: clamp(13.5rem, 29vw, 25rem);
  display: block;
  overflow: hidden;
  border: 0;
  border-radius: clamp(1rem, 2vw, 1.5rem);
  color: rgba(248, 252, 255, 0.96);
  background: #061426;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.34);
  isolation: isolate;
  cursor: pointer;
}

.biblioteca-editorial-hero.hero--immersive-soft {
  --hero-soft-bleed: clamp(0.9rem, 3vw, 2.8rem);
  width: calc(100% + var(--hero-soft-bleed));
  margin-left: calc(var(--hero-soft-bleed) * -0.5);
  margin-right: calc(var(--hero-soft-bleed) * -0.5);
}

@media (min-width: 821px) {
  .document-shelves > .biblioteca-editorial-hero-stage {
    justify-self: center;
  }

  .biblioteca-editorial-hero-stage {
    position: relative;
    width: min(calc(100% - clamp(2rem, 8vw, 8rem)), 56rem);
    margin-inline: auto;
    display: block;
    isolation: isolate;
  }

  .biblioteca-view-multivista .biblioteca-editorial-hero-stage::before {
    content: "";
    position: absolute;
    z-index: 0;
    inset: -4.8rem -6.2rem -4.2rem;
    pointer-events: none;
    background:
      radial-gradient(circle at 3% 20%, rgba(255, 255, 255, 1) 0 1.7px, rgba(212, 235, 255, 0.48) 2.8px, transparent 5.6px),
      radial-gradient(circle at 7% 67%, rgba(236, 248, 255, 0.92) 0 0.8px, transparent 2.2px),
      radial-gradient(circle at 12% 6%, rgba(255, 250, 231, 0.95) 0 1.15px, transparent 3.2px),
      radial-gradient(circle at 15% 86%, rgba(255, 255, 255, 0.86) 0 0.7px, transparent 1.9px),
      radial-gradient(circle at 20% 28%, rgba(204, 233, 255, 0.9) 0 1.35px, rgba(204, 233, 255, 0.34) 2.4px, transparent 4.8px),
      radial-gradient(circle at 25% 94%, rgba(255, 255, 255, 0.9) 0 0.9px, transparent 2.4px),
      radial-gradient(circle at 30% 12%, rgba(228, 244, 255, 0.82) 0 0.7px, transparent 1.9px),
      radial-gradient(circle at 36% 78%, rgba(255, 255, 255, 0.96) 0 1.3px, rgba(224, 242, 255, 0.32) 2.3px, transparent 4.5px),
      radial-gradient(circle at 43% 4%, rgba(255, 255, 255, 0.88) 0 0.75px, transparent 2px),
      radial-gradient(circle at 51% 96%, rgba(208, 235, 255, 0.9) 0 1.05px, transparent 2.8px),
      radial-gradient(circle at 59% 8%, rgba(255, 249, 223, 0.88) 0 0.85px, transparent 2.2px),
      radial-gradient(circle at 65% 83%, rgba(255, 255, 255, 0.98) 0 1.55px, rgba(220, 240, 255, 0.38) 2.6px, transparent 5.1px),
      radial-gradient(circle at 71% 15%, rgba(230, 246, 255, 0.86) 0 0.7px, transparent 1.9px),
      radial-gradient(circle at 76% 93%, rgba(255, 255, 255, 0.9) 0 0.95px, transparent 2.5px),
      radial-gradient(circle at 82% 38%, rgba(203, 233, 255, 0.92) 0 1.3px, rgba(203, 233, 255, 0.32) 2.3px, transparent 4.6px),
      radial-gradient(circle at 88% 7%, rgba(255, 255, 255, 0.88) 0 0.72px, transparent 1.95px),
      radial-gradient(circle at 92% 74%, rgba(255, 250, 228, 0.94) 0 0.88px, transparent 2.45px),
      radial-gradient(circle at 98% 24%, rgba(255, 255, 255, 1) 0 1.3px, rgba(212, 235, 255, 0.44) 2.2px, transparent 4.4px),
      radial-gradient(circle at 4% 51%, rgba(255, 255, 255, 0.88) 0 0.48px, transparent 1.25px),
      radial-gradient(circle at 9% 91%, rgba(226, 243, 255, 0.82) 0 0.42px, transparent 1.15px),
      radial-gradient(circle at 13% 45%, rgba(255, 255, 255, 0.9) 0 0.55px, transparent 1.4px),
      radial-gradient(circle at 18% 3%, rgba(244, 249, 255, 0.8) 0 0.4px, transparent 1.1px),
      radial-gradient(circle at 23% 70%, rgba(255, 255, 255, 0.9) 0 0.5px, transparent 1.3px),
      radial-gradient(circle at 28% 54%, rgba(220, 241, 255, 0.78) 0 0.4px, transparent 1.1px),
      radial-gradient(circle at 32% 31%, rgba(255, 255, 255, 0.88) 0 0.46px, transparent 1.2px),
      radial-gradient(circle at 38% 97%, rgba(235, 247, 255, 0.84) 0 0.5px, transparent 1.3px),
      radial-gradient(circle at 42% 48%, rgba(255, 255, 255, 0.9) 0 0.44px, transparent 1.18px),
      radial-gradient(circle at 47% 20%, rgba(222, 241, 255, 0.78) 0 0.4px, transparent 1.1px),
      radial-gradient(circle at 54% 69%, rgba(255, 255, 255, 0.9) 0 0.52px, transparent 1.35px),
      radial-gradient(circle at 57% 34%, rgba(232, 246, 255, 0.8) 0 0.42px, transparent 1.15px),
      radial-gradient(circle at 62% 57%, rgba(255, 255, 255, 0.88) 0 0.48px, transparent 1.25px),
      radial-gradient(circle at 68% 96%, rgba(223, 242, 255, 0.8) 0 0.4px, transparent 1.1px),
      radial-gradient(circle at 73% 52%, rgba(255, 255, 255, 0.92) 0 0.55px, transparent 1.4px),
      radial-gradient(circle at 79% 87%, rgba(233, 246, 255, 0.8) 0 0.42px, transparent 1.15px),
      radial-gradient(circle at 84% 29%, rgba(255, 255, 255, 0.88) 0 0.48px, transparent 1.25px),
      radial-gradient(circle at 90% 49%, rgba(222, 242, 255, 0.78) 0 0.4px, transparent 1.1px),
      radial-gradient(circle at 94% 12%, rgba(255, 255, 255, 0.9) 0 0.5px, transparent 1.3px),
      radial-gradient(circle at 99% 63%, rgba(236, 248, 255, 0.82) 0 0.44px, transparent 1.18px);
    opacity: 0.84;
    filter: drop-shadow(0 0 0.32rem rgba(205, 232, 255, 0.46));
    animation: bibliotecaStarfieldSessionDrift var(--biblioteca-starfield-session-duration, 40s) linear infinite;
  }

  /* Las estrellas viven en el anillo exterior: la portada permanece siempre por encima. */
  .biblioteca-view-multivista .biblioteca-editorial-hero-stage::before {
    inset: -5.8rem -7.4rem -5.2rem;
    background:
      radial-gradient(circle at 2% 12%, #fff 0 1.05px, rgba(214, 237, 255, 0.48) 2px, transparent 4.4px),
      radial-gradient(circle at 5% 30%, rgba(235, 248, 255, 0.96) 0 0.82px, transparent 2px),
      radial-gradient(circle at 3% 51%, #fff 0 1.18px, rgba(221, 240, 255, 0.44) 2.1px, transparent 4.5px),
      radial-gradient(circle at 7% 70%, rgba(246, 251, 255, 0.98) 0 0.92px, transparent 2.2px),
      radial-gradient(circle at 4% 88%, rgba(255, 248, 224, 0.94) 0 1.12px, transparent 2.65px),
      radial-gradient(circle at 98% 10%, #fff 0 1.08px, rgba(216, 239, 255, 0.46) 2px, transparent 4.3px),
      radial-gradient(circle at 94% 27%, rgba(235, 248, 255, 0.98) 0 0.84px, transparent 2px),
      radial-gradient(circle at 97% 46%, #fff 0 1.2px, rgba(220, 241, 255, 0.46) 2.2px, transparent 4.7px),
      radial-gradient(circle at 92% 66%, rgba(246, 251, 255, 0.98) 0 0.88px, transparent 2.1px),
      radial-gradient(circle at 99% 86%, rgba(255, 249, 226, 0.96) 0 1.1px, transparent 2.7px),
      radial-gradient(circle at 12% 2%, rgba(255, 255, 255, 0.98) 0 0.92px, transparent 2.2px),
      radial-gradient(circle at 24% 6%, #fff 0 1.14px, rgba(221, 241, 255, 0.42) 2.1px, transparent 4.5px),
      radial-gradient(circle at 38% 3%, rgba(239, 249, 255, 0.98) 0 0.84px, transparent 2px),
      radial-gradient(circle at 52% 7%, rgba(255, 250, 230, 0.95) 0 1.06px, transparent 2.5px),
      radial-gradient(circle at 66% 2%, #fff 0 1.16px, rgba(215, 239, 255, 0.44) 2.15px, transparent 4.6px),
      radial-gradient(circle at 79% 7%, rgba(241, 250, 255, 0.98) 0 0.88px, transparent 2.1px),
      radial-gradient(circle at 89% 3%, rgba(255, 255, 255, 0.98) 0 0.96px, transparent 2.25px),
      radial-gradient(circle at 14% 98%, rgba(236, 249, 255, 0.98) 0 0.9px, transparent 2.1px),
      radial-gradient(circle at 28% 94%, #fff 0 1.14px, rgba(220, 241, 255, 0.44) 2.1px, transparent 4.5px),
      radial-gradient(circle at 42% 99%, rgba(246, 252, 255, 0.98) 0 0.85px, transparent 2px),
      radial-gradient(circle at 56% 93%, rgba(255, 250, 231, 0.95) 0 1.05px, transparent 2.5px),
      radial-gradient(circle at 70% 98%, #fff 0 1.17px, rgba(216, 239, 255, 0.44) 2.15px, transparent 4.6px),
      radial-gradient(circle at 83% 94%, rgba(239, 249, 255, 0.98) 0 0.88px, transparent 2.1px),
      radial-gradient(circle at 91% 99%, rgba(255, 255, 255, 0.98) 0 0.97px, transparent 2.3px);
    opacity: 0.98;
    filter: drop-shadow(0 0 0.38rem rgba(210, 235, 255, 0.58));
  }

  .biblioteca-editorial-hero-stage .biblioteca-editorial-hero,
  .biblioteca-editorial-hero-stage .biblioteca-editorial-hero.hero--immersive-soft {
    position: relative;
    z-index: 1;
    width: 100%;
    margin-inline: 0;
    aspect-ratio: 16 / 9;
    min-height: 0;
    border-radius: 0.9rem;
    box-shadow: 0 1.25rem 3.8rem rgba(0, 0, 0, 0.28);
  }

  .biblioteca-editorial-hero-preview iframe {
    top: 0;
    height: 100%;
  }
}

/* Capa real: funciona también cuando el stage deja de ser una caja de escritorio. */
.biblioteca-view-multivista .biblioteca-editorial-hero-stage {
  position: relative;
  display: block;
  isolation: isolate;
  /* El anillo estelar necesita altura, no un gutter lateral: éste descentraba el Hero en teléfono. */
  padding: clamp(2.4rem, 9vw, 3.8rem) 0;
}

.biblioteca-view-multivista .biblioteca-editorial-hero-stage::before {
  content: none;
}

.biblioteca-view-multivista .biblioteca-editorial-hero-starfield {
  position: absolute;
  z-index: 0;
  inset: 0;
  display: block;
  pointer-events: none;
  background:
    radial-gradient(circle at 2% 12%, #fff 0 1.35px, rgba(214, 237, 255, 0.58) 2.3px, transparent 5px),
    radial-gradient(circle at 5% 30%, #fff 0 1.15px, transparent 2.5px),
    radial-gradient(circle at 3% 51%, #fff 0 1.45px, rgba(221, 240, 255, 0.55) 2.5px, transparent 5.2px),
    radial-gradient(circle at 7% 70%, #fff 0 1.2px, transparent 2.6px),
    radial-gradient(circle at 4% 88%, #fff 0 1.4px, rgba(255, 248, 224, 0.48) 2.5px, transparent 5px),
    radial-gradient(circle at 98% 10%, #fff 0 1.38px, rgba(216, 239, 255, 0.56) 2.35px, transparent 5px),
    radial-gradient(circle at 94% 27%, #fff 0 1.16px, transparent 2.5px),
    radial-gradient(circle at 97% 46%, #fff 0 1.5px, rgba(220, 241, 255, 0.56) 2.55px, transparent 5.3px),
    radial-gradient(circle at 92% 66%, #fff 0 1.2px, transparent 2.6px),
    radial-gradient(circle at 99% 86%, #fff 0 1.4px, rgba(255, 249, 226, 0.5) 2.7px, transparent 5.2px),
    radial-gradient(circle at 12% 2%, #fff 0 1.18px, transparent 2.5px),
    radial-gradient(circle at 24% 6%, #fff 0 1.42px, rgba(221, 241, 255, 0.54) 2.5px, transparent 5.1px),
    radial-gradient(circle at 38% 3%, #fff 0 1.16px, transparent 2.5px),
    radial-gradient(circle at 52% 7%, #fff 0 1.36px, rgba(255, 250, 230, 0.48) 2.55px, transparent 5px),
    radial-gradient(circle at 66% 2%, #fff 0 1.45px, rgba(215, 239, 255, 0.54) 2.55px, transparent 5.2px),
    radial-gradient(circle at 79% 7%, #fff 0 1.18px, transparent 2.5px),
    radial-gradient(circle at 89% 3%, #fff 0 1.25px, transparent 2.6px),
    radial-gradient(circle at 14% 98%, #fff 0 1.2px, transparent 2.55px),
    radial-gradient(circle at 28% 94%, #fff 0 1.43px, rgba(220, 241, 255, 0.54) 2.5px, transparent 5.1px),
    radial-gradient(circle at 42% 99%, #fff 0 1.17px, transparent 2.5px),
    radial-gradient(circle at 56% 93%, #fff 0 1.35px, rgba(255, 250, 231, 0.48) 2.55px, transparent 5px),
    radial-gradient(circle at 70% 98%, #fff 0 1.46px, rgba(216, 239, 255, 0.54) 2.55px, transparent 5.2px),
    radial-gradient(circle at 83% 94%, #fff 0 1.18px, transparent 2.5px),
    radial-gradient(circle at 91% 99%, #fff 0 1.28px, transparent 2.65px);
  opacity: 1;
  filter: drop-shadow(0 0 0.42rem rgba(215, 239, 255, 0.7));
  animation: bibliotecaStarfieldSessionDrift var(--biblioteca-starfield-session-duration, 40s) linear infinite;
  will-change: transform;
}

.biblioteca-editorial-hero-star {
  display: none;
}

.biblioteca-view-multivista .biblioteca-editorial-hero-stage > .biblioteca-editorial-hero {
  position: relative;
  z-index: 1;
}

.biblioteca-view-multivista .biblioteca-editorial-hero-stage > .biblioteca-editorial-hero.hero--immersive-soft {
  width: 100%;
  margin-inline: 0;
}

/* En teléfono se conserva la geometría editorial original: el stage no forma una caja lateral. */
@media (max-width: 820px) {
  .document-shelves {
    gap: 1.9rem;
  }

  .biblioteca-view-multivista .biblioteca-editorial-hero-stage {
    display: contents;
  }

  .biblioteca-view-multivista .biblioteca-editorial-hero-stage > .biblioteca-editorial-hero.hero--immersive-soft {
    width: calc(100% + var(--hero-soft-bleed));
    margin-left: calc(var(--hero-soft-bleed) * -0.5);
    margin-right: calc(var(--hero-soft-bleed) * -0.5);
  }

  .biblioteca-view-multivista .biblioteca-editorial-hero-starfield {
    display: none;
  }

  .biblioteca-view-multivista .biblioteca-editorial-hero {
    border-radius: 0.75rem;
  }
}

@media (min-width: 821px) {
  .biblioteca-view-multivista .biblioteca-editorial-hero-stage {
    padding: 0;
  }

  .biblioteca-view-multivista .biblioteca-editorial-hero-starfield {
    inset: -5.8rem -7.4rem -5.2rem;
    z-index: 1;
    background: none;
  }

  .biblioteca-view-multivista .biblioteca-editorial-hero-stage > .biblioteca-editorial-hero {
    z-index: 2;
  }

  .biblioteca-view-multivista .biblioteca-editorial-hero-starfield-svg {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
    filter: drop-shadow(0 0 0.2rem rgba(214, 238, 255, 0.9));
  }

  .biblioteca-view-multivista .biblioteca-editorial-hero-starfield-svg circle {
    display: block;
    paint-order: stroke;
    stroke: rgba(210, 237, 255, 0.7);
    stroke-width: 0.06;
  }
}

@media (prefers-reduced-motion: reduce) {
  .biblioteca-view-multivista .biblioteca-editorial-hero-stage::before {
    animation: none;
  }

  .biblioteca-view-multivista .biblioteca-editorial-hero-starfield {
    animation: none;
  }
}

.biblioteca-editorial-hero:fullscreen,
.biblioteca-editorial-hero:-webkit-full-screen {
  width: 100vw;
  height: 100vh;
  aspect-ratio: auto;
  min-height: 100vh;
  border-radius: 0;
  border: 0;
}

.biblioteca-editorial-hero:fullscreen .biblioteca-editorial-hero-copy,
.biblioteca-editorial-hero:-webkit-full-screen .biblioteca-editorial-hero-copy {
  display: none;
}

.biblioteca-featured-shelf {
  margin-top: 0.1rem;
}

.biblioteca-video-works-shelf {
  --biblioteca-video-motion: cubic-bezier(0.24, 0.62, 0.28, 1);
  --biblioteca-video-motion-soft: cubic-bezier(0.24, 0.62, 0.28, 1);
  margin-top: 0.05rem;
}

.biblioteca-video-works-row {
  display: flex;
  align-items: flex-start;
  gap: clamp(0.85rem, 1.7vw, 1.25rem);
  overflow-x: auto;
  overflow-y: hidden;
  padding: 0.15rem 0.05rem 1rem;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.biblioteca-video-works-row::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.biblioteca-video-work-shell {
  position: relative;
  flex: 0 0 clamp(14.2rem, 24vw, 21.4rem);
  width: clamp(14.2rem, 24vw, 21.4rem);
  scroll-snap-align: start;
  scroll-snap-stop: always;
  isolation: isolate;
}

.biblioteca-video-work-card {
  width: 100%;
  display: grid;
  gap: 0.36rem;
  padding: 0;
  border: 0;
  color: rgba(235, 245, 254, 0.88);
  text-align: left;
  background: transparent;
  cursor: pointer;
  transform: none;
  transition: color 100ms ease;
}

.biblioteca-video-work-cover {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border: 1px solid rgba(132, 172, 207, 0.18);
  border-radius: clamp(0.75rem, 1.3vw, 1.05rem);
  background: linear-gradient(145deg, rgba(10, 29, 52, 0.95), rgba(3, 10, 22, 0.98));
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.22);
  transition:
    border-color 100ms var(--biblioteca-video-motion, cubic-bezier(0.24, 0.62, 0.28, 1)),
    box-shadow 120ms var(--biblioteca-video-motion, cubic-bezier(0.24, 0.62, 0.28, 1)),
    background 120ms ease;
  will-change: border-color, box-shadow;
}

.biblioteca-video-work-cover img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: var(--presentation-position, center center);
  transform: scale(var(--presentation-zoom, 1));
  filter: saturate(1.05) contrast(1.02) brightness(0.98);
  transition: transform 220ms var(--biblioteca-video-motion-soft, cubic-bezier(0.24, 0.62, 0.28, 1)), filter 120ms ease;
}

.biblioteca-video-work-cover::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(3, 10, 22, 0.28) 0%, transparent 48%);
  pointer-events: none;
}

.biblioteca-video-work-play {
  position: absolute;
  left: 0.9rem;
  bottom: 0.82rem;
  z-index: 1;
  color: rgba(248, 252, 255, 0.92);
  font-size: 1rem;
  line-height: 1;
  text-shadow: 0 8px 20px rgba(0, 0, 0, 0.42);
  opacity: 0.88;
  transition: opacity 100ms ease, color 100ms ease;
}

.biblioteca-video-hover-preview {
  position: fixed;
  z-index: 62;
  top: var(--video-preview-top);
  left: var(--video-preview-left);
  width: var(--video-preview-width);
  overflow: hidden;
  border: 1px solid rgba(151, 195, 228, 0.2);
  border-radius: 0.86rem;
  color: rgba(239, 247, 253, 0.94);
  background: rgba(5, 17, 32, 0.985);
  box-shadow: 0 1rem 2.2rem rgba(0, 0, 0, 0.34), 0 0 0 1px rgba(92, 167, 220, 0.04);
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transform: translateY(0.2rem) scale(0.992);
  transform-origin: center;
  transition:
    opacity 160ms ease,
    transform 210ms var(--biblioteca-video-motion, cubic-bezier(0.2, 0.72, 0.24, 1));
  will-change: opacity, transform;
}

body:has(.biblioteca-video-hover-preview) .lf-assistant__launcher,
body:has(.biblioteca-video-consultation-backdrop) .lf-assistant__launcher {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-0.25rem);
}

.biblioteca-video-hover-preview.preview-opening {
  opacity: 0;
  pointer-events: none;
  transform: translateY(0.2rem) scale(0.992);
}

.biblioteca-video-hover-preview.preview-open {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.biblioteca-video-hover-preview.preview-closing {
  opacity: 0;
  pointer-events: none;
  transform: translateY(0.1rem) scale(0.996);
  transition-duration: 110ms, 130ms;
}

.biblioteca-video-hover-media {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #020812;
  cursor: pointer;
}

.biblioteca-video-hover-media::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  display: grid;
  place-items: center;
  padding: 1rem;
  color: rgba(218, 234, 246, 0.72);
  background:
    radial-gradient(circle at 28% 22%, rgba(118, 190, 240, 0.14), transparent 34%),
    linear-gradient(145deg, rgba(10, 29, 52, 0.92), rgba(3, 10, 22, 0.98));
  font-size: 0.82rem;
  font-weight: 620;
  line-height: 1.35;
  text-align: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 150ms ease;
}

.biblioteca-video-hover-media.is-poster-missing::before {
  content: "Portada no disponible";
  opacity: 1;
}

.biblioteca-video-hover-media.is-preview-ready::before {
  opacity: 0;
}

.biblioteca-video-hover-media iframe,
.biblioteca-video-hover-media video,
.biblioteca-video-hover-poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
  object-fit: cover;
}

.biblioteca-video-hover-poster {
  pointer-events: none;
  opacity: 1;
  transition: opacity 180ms ease 45ms;
}

.biblioteca-video-hover-media iframe,
.biblioteca-video-hover-media video {
  opacity: 0;
  pointer-events: auto;
  transform: scale(1.008);
  transition: opacity 180ms ease, transform 260ms ease;
}

.biblioteca-video-hover-open-zone {
  position: absolute;
  z-index: 3;
  inset: 0 0 clamp(3.4rem, 24%, 4.8rem);
  width: 100%;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  cursor: pointer;
}

.biblioteca-video-hover-open-zone:hover,
.biblioteca-video-hover-open-zone:focus-visible {
  background: transparent;
  box-shadow: none;
  transform: none;
}

.biblioteca-video-hover-poster.has-preview {
  z-index: 2;
}

.biblioteca-video-hover-media.is-preview-ready .biblioteca-video-hover-poster.has-preview {
  opacity: 0;
}

.biblioteca-video-hover-media.is-preview-ready iframe,
.biblioteca-video-hover-media.is-preview-ready video {
  opacity: 1;
  transform: scale(1);
}

.biblioteca-video-hover-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.55rem 0.8rem;
  align-items: center;
  padding: 0.82rem 0.9rem 0.9rem;
}

.biblioteca-video-hover-metadata {
  min-width: 0;
  display: grid;
  gap: 0.18rem;
  padding: 0;
  border: 0;
  color: inherit;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.biblioteca-video-hover-metadata strong {
  overflow: hidden;
  font-family: Inter, "Helvetica Neue", "Segoe UI", sans-serif;
  font-size: 1rem;
  font-weight: 460;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.biblioteca-video-hover-metadata span {
  overflow: hidden;
  color: rgba(176, 201, 220, 0.7);
  font-size: 0.77rem;
  font-weight: 540;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.biblioteca-video-hover-actions {
  display: flex;
  align-items: center;
  gap: 0.34rem;
}

.biblioteca-video-hover-actions button,
.biblioteca-video-consultation-save,
.biblioteca-video-consultation-folder {
  width: 2.15rem;
  height: 2.15rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(178, 211, 235, 0.24);
  border-radius: 50%;
  color: rgba(229, 242, 251, 0.82);
  background: rgba(12, 34, 56, 0.62);
  cursor: pointer;
  transform: none;
  transition: color 120ms ease, border-color 120ms ease, background 120ms ease;
}

.biblioteca-video-hover-actions button:first-child {
  color: rgba(4, 15, 27, 0.96);
  background: rgba(245, 249, 252, 0.94);
  border-color: transparent;
}

.biblioteca-video-hover-actions button:hover,
.biblioteca-video-hover-actions button:focus-visible,
.biblioteca-video-consultation-save:hover,
.biblioteca-video-consultation-save:focus-visible,
.biblioteca-video-consultation-folder:hover,
.biblioteca-video-consultation-folder:focus-visible {
  color: #fff;
  border-color: rgba(169, 217, 247, 0.46);
  transform: none;
}

.biblioteca-video-hover-actions button:first-child:hover,
.biblioteca-video-hover-actions button:first-child:focus-visible {
  color: rgba(4, 15, 27, 1);
}

.biblioteca-video-hover-actions button.is-active,
.biblioteca-video-consultation-save.is-active {
  color: rgba(139, 213, 255, 0.98);
  border-color: rgba(113, 194, 241, 0.5);
  background: rgba(15, 52, 79, 0.78);
}

.biblioteca-video-hover-actions svg,
.biblioteca-video-consultation button svg,
.biblioteca-video-consultation-nav svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
}

.biblioteca-video-hover-actions button:first-child svg,
.biblioteca-video-consultation-play svg {
  fill: currentColor;
}

.biblioteca-video-hover-progress {
  grid-column: 1 / -1;
  height: 2px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(157, 185, 206, 0.18);
}

.biblioteca-video-hover-progress span {
  display: block;
  width: var(--video-preview-progress);
  height: 100%;
  background: linear-gradient(90deg, rgba(246, 251, 255, 0.98), rgba(126, 201, 243, 0.92));
}

.biblioteca-video-consultation-backdrop {
  position: fixed;
  z-index: 72;
  inset: 0;
  display: grid;
  place-items: start center;
  padding: clamp(1rem, 5vh, 3rem) clamp(0.75rem, 3vw, 2rem);
  overflow-y: auto;
  background: rgba(0, 5, 14, 0.76);
  backdrop-filter: blur(8px);
  animation: bibliotecaVideoConsultationBackdropIn 260ms ease both;
}

@keyframes bibliotecaVideoConsultationBackdropIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.biblioteca-video-consultation-backdrop.is-direct-entry,
.biblioteca-video-consultation.is-direct-entry {
  animation: none;
}

.biblioteca-video-consultation {
  position: relative;
  width: min(68rem, calc(100vw - clamp(5.8rem, 12vw, 9rem)));
  overflow: hidden;
  border: 1px solid rgba(143, 184, 216, 0.18);
  border-radius: 1rem;
  color: rgba(237, 246, 253, 0.92);
  background: rgba(5, 16, 30, 0.995);
  box-shadow: 0 2.4rem 7rem rgba(0, 0, 0, 0.64);
  animation: bibliotecaVideoConsultationIn 430ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes bibliotecaVideoConsultationIn {
  from { opacity: 0; transform: translateY(1.1rem) scale(0.975); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.biblioteca-save-notice-copy {
  min-width: 0;
  display: grid;
  gap: 0.22rem;
}

.biblioteca-save-notice-copy strong {
  font-size: 1rem;
  font-weight: 650;
  letter-spacing: -0.015em;
  line-height: 1.25;
}

.biblioteca-save-notice-copy small {
  overflow: hidden;
  color: rgba(188, 211, 229, 0.66);
  font-size: 0.76rem;
  font-weight: 480;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.biblioteca-video-consultation-backdrop.is-carousel-transitioning .biblioteca-video-consultation-nav {
  pointer-events: none;
}

.biblioteca-video-consultation.is-carousel-leaving.is-to-left {
  animation: bibliotecaVideoConsultationLeaveLeft 180ms ease-in both;
}

.biblioteca-video-consultation.is-carousel-leaving.is-to-right {
  animation: bibliotecaVideoConsultationLeaveRight 180ms ease-in both;
}

.biblioteca-video-consultation.is-carousel-entering.is-from-right {
  animation: bibliotecaVideoConsultationEnterRight 360ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.biblioteca-video-consultation.is-carousel-entering.is-from-left {
  animation: bibliotecaVideoConsultationEnterLeft 360ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

/* Keep the lateral handoff finished: without this persistent state, removing the
   carousel class re-applies the default vertical entrance animation. */
.biblioteca-video-consultation.is-carousel-settled {
  animation: none;
}

@keyframes bibliotecaVideoConsultationLeaveLeft {
  from { opacity: 1; transform: translateX(0); }
  to { opacity: 0; transform: translateX(-2.4rem); }
}

@keyframes bibliotecaVideoConsultationLeaveRight {
  from { opacity: 1; transform: translateX(0); }
  to { opacity: 0; transform: translateX(2.4rem); }
}

@keyframes bibliotecaVideoConsultationEnterRight {
  from { opacity: 0; transform: translateX(2.4rem); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes bibliotecaVideoConsultationEnterLeft {
  from { opacity: 0; transform: translateX(-2.4rem); }
  to { opacity: 1; transform: translateX(0); }
}

@media (prefers-reduced-motion: reduce) {
  .biblioteca-video-consultation.is-carousel-leaving,
  .biblioteca-video-consultation.is-carousel-entering {
    animation: none !important;
  }
}

.biblioteca-video-consultation-close {
  position: absolute;
  z-index: 5;
  top: 0.85rem;
  right: 0.85rem;
  width: 2rem;
  height: 2rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: rgba(244, 250, 255, 0.76);
  background: transparent;
  font-size: 1.45rem;
  font-weight: 300;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.72);
  cursor: pointer;
  transition: color 180ms ease, transform 180ms ease;
}

.biblioteca-video-consultation-close:hover,
.biblioteca-video-consultation-close:focus-visible {
  color: rgba(255, 255, 255, 0.98);
  background: transparent;
  transform: scale(1.08);
}

.biblioteca-document-consultation-back {
  display: none;
}

@media (max-width: 820px) {
  .biblioteca-document-consultation-back {
    position: absolute;
    z-index: 6;
    top: max(0.58rem, env(safe-area-inset-top));
    left: max(0.58rem, env(safe-area-inset-left));
    width: 2.92rem;
    height: 2.92rem;
    display: grid;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 0;
    color: rgba(247, 252, 255, 0.8);
    background: transparent;
    cursor: pointer;
    transition: color 160ms ease, transform 160ms ease;
  }

  .biblioteca-document-consultation-back:hover,
  .biblioteca-document-consultation-back:focus-visible {
    color: rgba(255, 255, 255, 0.98);
    transform: translateX(-0.08rem);
  }

  .biblioteca-document-consultation-back svg {
    width: 1.72rem;
    height: 1.72rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
}

.biblioteca-file-selection.is-selected {
  color: #16824a;
  font-weight: 600;
}

.biblioteca-field-note {
  color: #6a7d91;
  font-size: 0.72rem;
  font-weight: 400;
  line-height: 1.4;
}

.biblioteca-audiovisual-cover {
  gap: 0.6rem;
}

.biblioteca-cover-preview[hidden] {
  display: none;
}

.biblioteca-cover-preview {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 7;
  overflow: hidden;
  border: 1px solid rgba(37, 57, 81, 0.15);
  background: #e9eef2;
}

.biblioteca-cover-preview img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.biblioteca-save-notice-check {
  width: 2.35rem;
  height: 2.35rem;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border: 1px solid rgba(127, 220, 177, 0.22);
  border-radius: 0.78rem;
  color: rgba(170, 239, 205, 0.96);
  background: linear-gradient(145deg, rgba(59, 145, 103, 0.28), rgba(21, 78, 52, 0.16));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07);
  animation: biblioteca-toast-check-in 520ms 80ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.biblioteca-save-notice-check svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@keyframes biblioteca-toast-premium-in {
  from { opacity: 0; filter: blur(5px); transform: translate(-50%, calc(-50% + 0.85rem)) scale(0.94); }
  to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .biblioteca-save-notice,
  .biblioteca-save-notice-check {
    animation: none !important;
  }
}

@keyframes biblioteca-toast-check-in {
  from { opacity: 0; transform: scale(0.55) rotate(-12deg); }
  to { opacity: 1; transform: scale(1) rotate(0); }
}

.biblioteca-video-consultation-back {
  display: none;
}

.biblioteca-video-consultation-nav {
  position: fixed;
  z-index: 5;
  top: 50%;
  width: clamp(2.3rem, 3.4vw, 2.9rem);
  height: clamp(2.3rem, 3.4vw, 2.9rem);
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  color: rgba(238, 247, 255, 0.58);
  background: rgba(4, 16, 30, 0.22);
  border-radius: 50%;
  cursor: pointer;
  opacity: 0.66;
  transform: translateY(-50%);
  backdrop-filter: blur(12px);
  transition: color 220ms ease, background 220ms ease, opacity 220ms ease, transform 260ms cubic-bezier(0.16, 1, 0.3, 1);
}

.biblioteca-video-consultation-nav.is-prev {
  left: max(0.85rem, calc((100vw - min(68rem, calc(100vw - clamp(5.8rem, 12vw, 9rem)))) / 2 - 3.55rem));
}

.biblioteca-video-consultation-nav.is-next {
  right: max(0.85rem, calc((100vw - min(68rem, calc(100vw - clamp(5.8rem, 12vw, 9rem)))) / 2 - 3.55rem));
}

.biblioteca-video-consultation-nav:hover,
.biblioteca-video-consultation-nav:focus-visible {
  color: rgba(255, 255, 255, 0.96);
  background: rgba(7, 26, 46, 0.48);
  opacity: 1;
}

.biblioteca-video-consultation-nav.is-prev:hover,
.biblioteca-video-consultation-nav.is-prev:focus-visible {
  transform: translateY(-50%) translateX(-0.08rem);
}

.biblioteca-video-consultation-nav.is-next:hover,
.biblioteca-video-consultation-nav.is-next:focus-visible {
  transform: translateY(-50%) translateX(0.08rem);
}

.biblioteca-video-consultation-nav svg {
  width: 1.35rem;
  height: 1.35rem;
  stroke-width: 1.55;
}

.biblioteca-document-consultation {
  max-height: calc(100vh - clamp(2rem, 10vh, 6rem));
  overflow: auto;
  scrollbar-width: none;
}

.biblioteca-document-consultation::-webkit-scrollbar {
  display: none;
}

.biblioteca-document-consultation-stage {
  min-height: min(70vh, 44rem);
  display: grid;
  grid-template-columns: minmax(12rem, 18rem) minmax(0, 1fr);
  gap: clamp(1.15rem, 2.8vw, 2.4rem);
  align-items: stretch;
  padding: clamp(1.4rem, 3.2vw, 2.8rem);
}

.biblioteca-document-consultation-cover {
  display: grid;
  align-content: start;
  justify-items: center;
  gap: 0.9rem;
}

.biblioteca-document-consultation-cover .doc-cover-art.is-large {
  width: min(100%, 17rem);
}

.biblioteca-document-consultation-cover .document-action-bar {
  flex-wrap: wrap;
}

.biblioteca-document-consultation-content {
  min-width: 0;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  gap: clamp(1rem, 2vw, 1.6rem);
}

.biblioteca-document-orientation-entry {
  width: 100%;
  display: grid;
  grid-template-columns: 2.65rem minmax(0, 1fr) 1.4rem;
  align-items: center;
  gap: 0.9rem;
  padding: 0.9rem 0.25rem;
  border: 0;
  border-top: 1px solid rgba(178, 204, 224, 0.14);
  border-bottom: 1px solid rgba(178, 204, 224, 0.14);
  color: rgba(240, 247, 252, 0.94);
  background: transparent;
  text-align: left;
  cursor: pointer;
  transition: border-color 180ms ease, background 180ms ease;
}

.biblioteca-document-orientation-entry .biblioteca-knowledge-symbol {
  width: 2.65rem;
  height: 2.65rem;
  padding: 0.54rem;
  border: 1px solid rgba(166, 210, 235, 0.2);
  border-radius: 50%;
  background: rgba(14, 35, 53, 0.42);
}

.biblioteca-document-orientation-entry-copy {
  min-width: 0;
  display: grid;
  gap: 0.15rem;
}

.biblioteca-document-orientation-entry-copy small {
  color: rgba(173, 198, 216, 0.58);
  font-size: 0.68rem;
  font-weight: 650;
}

.biblioteca-document-orientation-entry-copy strong {
  color: inherit;
  font-size: 1.02rem;
  font-weight: 680;
  line-height: 1.2;
}

.biblioteca-document-orientation-entry-arrow {
  width: 1.1rem;
  height: 1.1rem;
  color: rgba(188, 220, 238, 0.72);
  transition: transform 180ms ease, color 180ms ease;
}

.biblioteca-document-orientation-entry-arrow svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
}

.biblioteca-document-orientation-entry:hover,
.biblioteca-document-orientation-entry:focus-visible {
  border-color: rgba(156, 208, 237, 0.28);
  background: rgba(47, 104, 140, 0.08);
}

.biblioteca-document-orientation-entry:hover .biblioteca-document-orientation-entry-arrow,
.biblioteca-document-orientation-entry:focus-visible .biblioteca-document-orientation-entry-arrow {
  color: rgba(229, 243, 251, 0.94);
  transform: translateX(0.18rem);
}

.biblioteca-document-consultation-preview {
  min-height: 0;
}

.biblioteca-video-consultation-media {
  position: relative;
  aspect-ratio: 16 / 7.8;
  overflow: hidden;
  background: #020812;
}

.biblioteca-video-consultation-frame {
  display: contents;
}

.biblioteca-video-consultation-frame > img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.biblioteca-video-consultation-frame > iframe,
.biblioteca-video-consultation-frame > video {
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
  background: #020812;
}

.biblioteca-video-consultation-frame > span {
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(5, 16, 30, 0.98) 0%, rgba(5, 16, 30, 0.1) 34%, rgba(5, 16, 30, 0.12) 100%);
  pointer-events: none;
}

.biblioteca-video-consultation-media-actions {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.biblioteca-video-consultation-footer {
  position: absolute;
  z-index: 2;
  right: clamp(1.2rem, 4vw, 3rem);
  bottom: clamp(1rem, 3vw, 2.2rem);
  left: clamp(1.2rem, 4vw, 3rem);
  display: grid;
  grid-template-columns: minmax(3rem, 25%) auto;
  justify-content: start;
  align-items: center;
  gap: clamp(1rem, 2.5vw, 2rem);
}

.biblioteca-video-consultation-play {
  min-height: 2.6rem;
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.55rem 1rem;
  border: 0;
  border-radius: 0.35rem;
  color: rgba(3, 13, 24, 0.98);
  background: rgba(247, 250, 252, 0.96);
  font: inherit;
  font-size: 0.9rem;
  font-weight: 690;
  cursor: pointer;
}

.biblioteca-video-consultation-save,
.biblioteca-video-consultation-folder {
  width: 2.6rem;
  height: 2.6rem;
  background: rgba(5, 20, 36, 0.72);
}

.biblioteca-video-consultation-folder {
  font-size: 1.25rem;
  font-weight: 430;
  line-height: 1;
}

.biblioteca-video-consultation-progress {
  width: 100%;
  min-width: 3rem;
  height: 2px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(154, 177, 195, 0.28);
}

.biblioteca-video-consultation-progress span {
  display: block;
  width: var(--video-preview-progress);
  height: 100%;
  background: rgba(238, 246, 252, 0.96);
}

.biblioteca-video-consultation-media > .biblioteca-collection-picker {
  position: absolute;
  z-index: 4;
  right: clamp(1.2rem, 4vw, 3rem);
  bottom: clamp(4.2rem, 7vw, 5.5rem);
}

.biblioteca-video-consultation-content {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(13rem, 0.8fr);
  gap: clamp(1.5rem, 4vw, 3.5rem);
  padding: clamp(1.4rem, 3.5vw, 2.8rem);
}

.biblioteca-video-consultation-primary {
  display: grid;
  gap: 0.7rem;
}

.biblioteca-video-consultation-primary > span {
  color: rgba(135, 195, 234, 0.78);
  font-size: 0.72rem;
  font-weight: 720;
  letter-spacing: 0.08em;
}

.biblioteca-video-consultation-primary h2,
.biblioteca-video-consultation-primary p,
.biblioteca-video-consultation-meta {
  margin: 0;
}

.biblioteca-video-consultation-primary h2 {
  font-size: clamp(1.8rem, 4vw, 3.25rem);
  font-weight: 650;
  letter-spacing: 0;
}

.biblioteca-video-consultation-primary p {
  max-width: 46rem;
  color: rgba(203, 221, 235, 0.78);
  font-size: 0.98rem;
  line-height: 1.65;
}

.biblioteca-video-consultation-meta {
  display: grid;
  align-content: start;
  gap: 0.9rem;
}

.biblioteca-video-consultation-meta div {
  display: grid;
  gap: 0.18rem;
}

.biblioteca-video-consultation-meta dt {
  color: rgba(139, 169, 192, 0.6);
  font-size: 0.75rem;
}

.biblioteca-video-consultation-meta dd {
  margin: 0;
  color: rgba(226, 238, 247, 0.88);
  font-size: 0.88rem;
  line-height: 1.45;
}

.biblioteca-video-consultation-collection {
  display: grid;
  gap: 1rem;
  padding: 0 clamp(1.4rem, 3.5vw, 2.8rem) clamp(1.4rem, 3.5vw, 2.8rem);
}

.biblioteca-video-consultation-collection-head {
  display: grid;
  gap: 0.22rem;
}

.biblioteca-video-consultation-collection-head span {
  color: rgba(135, 195, 234, 0.72);
  font-size: 0.68rem;
  font-weight: 720;
  letter-spacing: 0.08em;
}

.biblioteca-video-consultation-collection-head strong {
  color: rgba(241, 248, 253, 0.94);
  font-size: clamp(1rem, 1.8vw, 1.25rem);
  font-weight: 650;
}

.biblioteca-video-consultation-collection-head small {
  color: rgba(181, 204, 221, 0.7);
}

.biblioteca-video-consultation-collection-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  gap: 0.75rem;
}

.biblioteca-video-consultation-collection-item {
  min-width: 0;
  display: grid;
  gap: 0.42rem;
  padding: 0;
  border: 0;
  color: inherit;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.biblioteca-video-consultation-collection-item > span {
  aspect-ratio: 16 / 9;
  display: block;
  overflow: hidden;
  border-radius: 0.56rem;
  background: rgba(2, 8, 18, 0.9);
}

.biblioteca-video-consultation-collection-item img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform 320ms cubic-bezier(0.16, 1, 0.3, 1);
}

.biblioteca-video-consultation-collection-item:hover img,
.biblioteca-video-consultation-collection-item:focus-visible img {
  transform: scale(1.035);
}

.biblioteca-video-consultation-collection-item.is-locked {
  cursor: default;
  color: rgba(185, 207, 224, 0.68);
}

.biblioteca-video-consultation-collection-item.is-locked > span {
  display: grid;
  place-items: center;
  border: 1px solid rgba(127, 173, 210, 0.08);
  background:
    radial-gradient(circle at 28% 24%, rgba(136, 202, 243, 0.14), transparent 34%),
    linear-gradient(135deg, rgba(9, 31, 55, 0.78), rgba(2, 9, 20, 0.9));
}

.biblioteca-video-consultation-collection-item.is-locked > span > span {
  display: inline-grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  color: rgba(177, 216, 241, 0.6);
}

.biblioteca-video-consultation-collection-item.is-locked svg {
  width: 1.25rem;
  height: 1.25rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
}

.biblioteca-video-consultation-collection-item strong {
  color: rgba(237, 246, 253, 0.9);
  font-size: 0.84rem;
  font-weight: 650;
}

.biblioteca-video-consultation-collection-item small {
  color: rgba(164, 187, 207, 0.68);
  font-size: 0.73rem;
}

.biblioteca-video-consultation-collection-open {
  width: fit-content;
  padding: 0;
  border: 0;
  color: rgba(203, 232, 249, 0.86);
  background: transparent;
  font: inherit;
  font-size: 0.86rem;
  font-weight: 650;
  cursor: pointer;
}

@media (max-width: 760px), (hover: none) {
  .biblioteca-video-hover-preview {
    display: none;
  }
}

@media (max-width: 760px) and (orientation: portrait) {
  .biblioteca-video-consultation-backdrop {
    place-items: start stretch;
    padding: 0;
    background: #020812;
    backdrop-filter: none;
  }

  .biblioteca-video-consultation {
    width: 100vw;
    min-height: 100dvh;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .biblioteca-video-consultation-media {
    width: 100%;
    aspect-ratio: 16 / 9;
  }

  .biblioteca-video-consultation-media-actions {
    justify-content: flex-end;
  }

  .biblioteca-video-consultation-footer {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    grid-template-columns: minmax(3rem, 25%) auto;
    justify-content: start;
    gap: 0.9rem;
    padding: 1rem 1.1rem;
    background: linear-gradient(0deg, rgba(5, 16, 30, 0.98), rgba(5, 16, 30, 0.72));
  }

  .biblioteca-video-consultation-media > .biblioteca-collection-picker {
    right: 1.1rem;
    bottom: 4.7rem;
  }

  .biblioteca-video-consultation-close {
    display: none;
  }

  .biblioteca-video-consultation-back {
    position: fixed;
    z-index: 6;
    top: max(0.65rem, env(safe-area-inset-top));
    left: 0.65rem;
    width: 2.35rem;
    min-height: 2.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 0;
    color: rgba(244, 250, 255, 0.94);
    background: transparent;
    font: inherit;
    font-size: 0.82rem;
  }

  .biblioteca-video-consultation-back svg {
    width: 1rem;
    height: 1rem;
  }

  .biblioteca-video-consultation-frame > iframe,
  .biblioteca-video-consultation-frame > video {
    animation: bibliotecaMobileConsultationMediaIn 420ms ease both;
  }

  .biblioteca-video-consultation-media .biblioteca-custom-video-controls {
    left: 0.55rem;
    right: 0.55rem;
    bottom: 0.55rem;
    padding: 0.4rem 0.5rem;
    border-radius: 0.65rem;
  }

  .biblioteca-video-consultation-nav {
    display: none;
  }

  .biblioteca-video-consultation-content {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.35rem;
    padding: 1.25rem 1.1rem 1.6rem;
  }

  .biblioteca-video-consultation-primary h2 {
    font-size: clamp(1.7rem, 8vw, 2.4rem);
  }

  .biblioteca-video-consultation-primary p {
    font-size: 0.94rem;
    line-height: 1.55;
  }

  .biblioteca-video-consultation-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding-top: 1rem;
    border-top: 1px solid rgba(152, 191, 220, 0.14);
  }

  .biblioteca-video-consultation-collection {
    padding: 0 1.1rem calc(1.4rem + env(safe-area-inset-bottom));
  }

}

@keyframes bibliotecaMobileConsultationMediaIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@media (max-width: 760px) {
  .biblioteca-document-consultation-stage {
    grid-template-columns: minmax(0, 1fr);
  }

  .biblioteca-document-consultation-cover .doc-cover-art.is-large {
    width: min(100%, 13rem);
  }
}

.biblioteca-video-collection-badge {
  position: absolute;
  z-index: 90;
  top: 0.62rem;
  right: 0.62rem;
  min-width: 2.42rem;
  height: 1.82rem;
  display: inline-grid;
  grid-template-columns: auto auto;
  align-items: center;
  gap: 0.18rem;
  padding: 0 0.42rem;
  border: 1px solid rgba(180, 216, 242, 0.24);
  border-radius: 999px;
  color: rgba(239, 248, 255, 0.9);
  background: rgba(4, 14, 28, 0.62);
  backdrop-filter: blur(16px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.3);
  cursor: pointer;
  opacity: 0.88;
  transition: transform 220ms ease, opacity 220ms ease, border-color 220ms ease, background 220ms ease;
}

.biblioteca-video-collection-badge:hover {
  opacity: 1;
  transform: translateY(-0.08rem);
  border-color: rgba(173, 222, 255, 0.42);
  background: rgba(8, 28, 50, 0.74);
}

.biblioteca-video-collection-badge-icon {
  width: 1rem;
  height: 1rem;
  display: inline-grid;
  place-items: center;
}

.biblioteca-video-collection-badge-icon svg {
  width: 1rem;
  height: 1rem;
}

.biblioteca-video-collection-badge-count {
  min-width: 0.92rem;
  display: inline-grid;
  place-items: center;
  color: rgba(246, 252, 255, 0.96);
  font-size: 0.72rem;
  font-weight: 760;
  line-height: 1;
}

.biblioteca-video-work-title {
  color: rgba(228, 239, 249, 0.82);
  font-size: 0.88rem;
  font-weight: 620;
  line-height: 1.25;
}

.biblioteca-video-work-meta {
  margin-top: -0.18rem;
  color: rgba(167, 190, 210, 0.68);
  font-size: 0.76rem;
  font-weight: 520;
  line-height: 1.2;
}

.biblioteca-video-work-card:hover,
.biblioteca-video-work-shell.is-video-hover-intent .biblioteca-video-work-card {
  transform: none;
}

.biblioteca-video-work-card:hover .biblioteca-video-work-cover,
.biblioteca-video-work-shell.is-video-hover-intent .biblioteca-video-work-cover {
  border-color: rgba(118, 190, 240, 0.32);
  box-shadow: 0 15px 34px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(118, 190, 240, 0.045);
}

.biblioteca-video-work-card:hover .biblioteca-video-work-cover img,
.biblioteca-video-work-shell.is-video-hover-intent .biblioteca-video-work-cover img {
  filter: saturate(1.055) contrast(1.025) brightness(1.012);
}

.biblioteca-video-work-card:hover .biblioteca-video-work-play,
.biblioteca-video-work-shell.is-video-hover-intent .biblioteca-video-work-play {
  opacity: 1;
}

.biblioteca-video-work-cover.is-missing::after {
  content: "Portada no disponible";
  display: grid;
  place-items: center;
  padding: 1rem;
  color: rgba(223, 234, 245, 0.78);
  font-size: 0.82rem;
  line-height: 1.35;
  text-align: center;
  background: linear-gradient(145deg, rgba(16, 40, 67, 0.92), rgba(4, 12, 26, 0.98));
}

.biblioteca-presentation-action {
  position: relative;
  z-index: 8;
  width: 2rem;
  height: 2rem;
  display: inline-grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(164, 203, 236, 0.18);
  border-radius: 999px;
  color: rgba(221, 239, 252, 0.76);
  background: rgba(6, 18, 34, 0.58);
  backdrop-filter: blur(14px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.24);
  cursor: pointer;
  opacity: 0.28;
  transition:
    opacity 220ms ease,
    color 220ms ease,
    border-color 220ms ease,
    background 220ms ease,
    transform 260ms cubic-bezier(0.16, 1, 0.3, 1);
}

.biblioteca-presentation-action:hover,
.biblioteca-presentation-action:focus-visible {
  opacity: 1;
  color: rgba(255, 255, 255, 0.96);
  border-color: rgba(139, 206, 250, 0.34);
  background: rgba(12, 37, 63, 0.78);
  transform: translateY(-0.08rem);
}

.biblioteca-presentation-action svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-presentation-action.is-card {
  position: absolute;
  top: 0.55rem;
  right: 0.55rem;
  opacity: 0;
  pointer-events: none;
}

.biblioteca-presentation-action.is-card.is-video-work-editor {
  top: 0.38rem;
  right: 0.38rem;
  width: 1.72rem;
  height: 1.72rem;
  opacity: 0.24;
  pointer-events: auto;
  border-color: rgba(164, 203, 236, 0.1);
  background: rgba(4, 14, 28, 0.38);
  box-shadow: none;
}

.biblioteca-video-work-shell:has(.biblioteca-video-collection-badge) .biblioteca-presentation-action.is-card.is-video-work-editor {
  right: 3.5rem;
}

.biblioteca-presentation-card-wrap:hover .biblioteca-presentation-action.is-card,
.biblioteca-presentation-card-wrap:focus-within .biblioteca-presentation-action.is-card,
.biblioteca-video-work-shell:hover .biblioteca-presentation-action.is-card,
.biblioteca-video-work-shell:focus-within .biblioteca-presentation-action.is-card {
  opacity: 0.42;
  pointer-events: auto;
}

.biblioteca-presentation-action.is-hero {
  position: absolute;
  top: clamp(0.9rem, 2vw, 1.35rem);
  right: clamp(0.95rem, 2.2vw, 1.6rem);
}

.biblioteca-presentation-action.is-inline {
  width: 1.85rem;
  height: 1.85rem;
  opacity: 0.72;
}

.biblioteca-folder-modal.is-presentation-modal {
  width: min(48rem, calc(100vw - 2rem));
}

.biblioteca-presentation-form {
  max-height: min(78vh, 48rem);
  overflow: auto;
  padding-right: 0.15rem;
}

.biblioteca-presentation-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.82rem;
}

.biblioteca-presentation-grid.is-photo-controls {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.biblioteca-presentation-cover-upload {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  align-items: center;
  gap: 0.55rem 0.75rem;
}

.biblioteca-presentation-cover-upload input {
  position: absolute;
  width: 1px;
  height: 1px;
  min-height: 0;
  opacity: 0;
  pointer-events: none;
}

.biblioteca-presentation-cover-upload-button {
  min-height: 2.45rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.48rem;
  padding: 0 0.82rem;
  border: 1px solid rgba(139, 178, 210, 0.2);
  border-radius: 0.62rem;
  color: rgba(232, 244, 253, 0.9);
  background: rgba(12, 35, 58, 0.72);
  cursor: pointer;
  transition: border-color 220ms ease, background 220ms ease, transform 220ms ease;
}

.biblioteca-presentation-cover-upload-button:hover {
  border-color: rgba(126, 198, 245, 0.4);
  background: rgba(18, 49, 79, 0.86);
  transform: translateY(-1px);
}

.biblioteca-presentation-cover-upload-button svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-presentation-cover-upload small {
  min-width: 0;
  overflow: hidden;
  color: rgba(164, 190, 212, 0.7);
  font-size: 0.76rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.biblioteca-presentation-video-collection {
  display: grid;
  gap: 0.8rem;
  padding-top: 0.9rem;
  border-top: 1px solid rgba(139, 178, 210, 0.14);
}

.biblioteca-presentation-video-head {
  display: grid;
  gap: 0.2rem;
}

.biblioteca-presentation-video-head strong {
  color: rgba(241, 248, 255, 0.94);
  font-size: 0.96rem;
  font-weight: 680;
}

.biblioteca-presentation-video-head span,
.biblioteca-presentation-video-item legend {
  color: rgba(164, 190, 212, 0.68);
  font-size: 0.75rem;
}

.biblioteca-presentation-video-list {
  display: grid;
  gap: 0.72rem;
}

.biblioteca-presentation-video-item {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.68rem 0.8rem;
  min-width: 0;
  margin: 0;
  padding: 0.78rem;
  border: 1px solid rgba(139, 178, 210, 0.14);
  border-radius: 0.85rem;
  background: rgba(7, 21, 39, 0.48);
}

.biblioteca-presentation-video-item.is-focus-target {
  border-color: rgba(126, 198, 245, 0.42);
  box-shadow: 0 0 0 1px rgba(126, 198, 245, 0.08);
}

.biblioteca-presentation-video-item legend {
  padding: 0 0.28rem;
  font-weight: 620;
}

.biblioteca-presentation-video-controls {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(5rem, 0.32fr) minmax(12rem, 1fr);
  gap: 0.8rem;
  align-items: end;
}

.biblioteca-presentation-video-controls .biblioteca-presentation-check {
  min-height: 100%;
}

.biblioteca-presentation-check {
  display: flex !important;
  align-items: center;
  justify-content: flex-start;
  gap: 0.58rem;
  padding: 0.65rem 0.72rem;
  border: 1px solid rgba(139, 178, 210, 0.14);
  border-radius: 0.85rem;
  background: rgba(9, 25, 43, 0.52);
}

.biblioteca-presentation-check input {
  width: auto;
}

.biblioteca-photo-collections-shelf {
  margin-top: 0.15rem;
}

.biblioteca-photo-collection-feature {
  position: relative;
  display: grid;
  gap: clamp(0.72rem, 1.5vw, 1rem);
}

.biblioteca-photo-collection-head,
.biblioteca-photo-gallery-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.biblioteca-photo-collection-head h3,
.biblioteca-photo-gallery-head h2 {
  margin: 0;
  color: rgba(241, 248, 255, 0.94);
  font-weight: 650;
  letter-spacing: 0;
}

.biblioteca-photo-open-all,
.biblioteca-photo-back {
  border: 0;
  color: rgba(197, 221, 241, 0.72);
  background: transparent;
  cursor: pointer;
  transition: color 240ms ease, opacity 240ms ease, transform 240ms ease;
}

.biblioteca-photo-open-all {
  padding: 0.2rem 0;
  font-size: 0.82rem;
  font-weight: 620;
}

.biblioteca-photo-collection-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
}

.biblioteca-photo-collection-mobile-meta {
  display: none;
}

.biblioteca-photo-collection-author,
.biblioteca-mobile-pull-refresh {
  display: none;
}

.biblioteca-photo-open-all:hover,
.biblioteca-photo-back:hover {
  color: rgba(248, 252, 255, 0.95);
  transform: translateX(0.08rem);
}

.biblioteca-photo-mosaic {
  width: 100%;
  min-height: clamp(20rem, 41vw, 36rem);
  display: grid;
  grid-template-columns: 1.25fr 1fr 0.85fr 1.1fr;
  grid-auto-rows: clamp(5.2rem, 10vw, 8.5rem);
  gap: clamp(0.55rem, 1.1vw, 0.9rem);
  padding: clamp(0.55rem, 1.2vw, 0.9rem);
  border: 1px solid rgba(130, 170, 205, 0.14);
  border-radius: clamp(1rem, 1.9vw, 1.45rem);
  background:
    radial-gradient(circle at 18% 12%, rgba(87, 149, 197, 0.1), transparent 34%),
    linear-gradient(145deg, rgba(8, 25, 45, 0.76), rgba(2, 8, 19, 0.9));
  box-shadow: 0 22px 64px rgba(0, 0, 0, 0.28);
  cursor: pointer;
}

.biblioteca-photo-tile {
  position: relative;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  border: 1px solid rgba(150, 187, 218, 0.13);
  border-radius: clamp(0.7rem, 1.3vw, 1rem);
  background: rgba(5, 15, 29, 0.8);
  box-shadow: 0 16px 42px rgba(0, 0, 0, 0.24);
}

.biblioteca-photo-tile.is-featured {
  grid-column: span 2;
  grid-row: span 2;
}

.biblioteca-photo-tile.is-wide {
  grid-column: span 2;
}

.biblioteca-photo-tile.is-tall {
  grid-row: span 2;
}

.biblioteca-photo-tile img,
.biblioteca-photo-gallery-item img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: var(--presentation-position, center center);
  transform: scale(var(--presentation-zoom, 1));
  filter: saturate(1.02) contrast(1.02) brightness(0.96);
  transition: transform 620ms cubic-bezier(0.16, 1, 0.3, 1), filter 620ms cubic-bezier(0.16, 1, 0.3, 1);
}

.biblioteca-photo-mosaic:hover .biblioteca-photo-tile img {
  filter: saturate(1.08) contrast(1.03) brightness(1.03);
}

.biblioteca-photo-mosaic:hover .biblioteca-photo-tile.is-featured img {
  transform: scale(calc(var(--presentation-zoom, 1) + 0.018));
}

.biblioteca-photo-caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: grid;
  gap: 0.16rem;
  padding: clamp(0.9rem, 2.1vw, 1.4rem);
  color: rgba(248, 252, 255, 0.94);
  text-align: left;
  background: linear-gradient(0deg, rgba(2, 8, 18, 0.72), rgba(2, 8, 18, 0));
}

.biblioteca-photo-caption strong {
  font-size: clamp(1.05rem, 2vw, 1.65rem);
  font-weight: 690;
  letter-spacing: 0;
}

.biblioteca-photo-caption small {
  color: rgba(216, 231, 244, 0.74);
  font-size: 0.82rem;
  font-weight: 560;
}

.biblioteca-photo-gallery-view {
  display: grid;
  gap: clamp(1rem, 2vw, 1.6rem);
  padding-bottom: clamp(5rem, 8vw, 7rem);
}

.biblioteca-photo-gallery-head {
  align-items: flex-end;
  padding-top: 0.3rem;
}

.biblioteca-photo-gallery-head p {
  margin: 0.22rem 0 0;
  color: rgba(176, 201, 222, 0.7);
  font-size: 0.86rem;
  font-weight: 520;
}

.biblioteca-photo-back {
  position: sticky;
  top: clamp(0.85rem, 1.8vw, 1.25rem);
  z-index: 35;
  width: 2.6rem;
  height: 2.6rem;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  font-size: 1.35rem;
  border-radius: 999px;
  background: rgba(4, 14, 28, 0.42);
  backdrop-filter: blur(12px);
}

.biblioteca-photo-gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: clamp(9rem, 15vw, 15.5rem);
  gap: clamp(0.65rem, 1.2vw, 1rem);
}

.biblioteca-photo-gallery-item {
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  padding: 0;
  border: 1px solid rgba(140, 176, 207, 0.14);
  border-radius: clamp(0.8rem, 1.25vw, 1.05rem);
  background: rgba(4, 13, 26, 0.88);
  cursor: pointer;
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.24);
}

.biblioteca-photo-gallery-item:nth-child(9n + 1),
.biblioteca-photo-gallery-item:nth-child(9n + 6) {
  grid-column: span 2;
  grid-row: span 2;
}

.biblioteca-photo-gallery-item:nth-child(9n + 4) {
  grid-row: span 2;
}

.biblioteca-photo-gallery-item:hover img {
  transform: scale(calc(var(--presentation-zoom, 1) + 0.018));
  filter: saturate(1.08) contrast(1.04) brightness(1.04);
}

.biblioteca-photo-lightbox {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  grid-template-columns: minmax(3rem, 1fr) minmax(0, min(82vw, 74rem)) minmax(3rem, 1fr);
  place-items: center;
  padding: clamp(1.1rem, 3vw, 2.6rem);
  background:
    radial-gradient(circle at 50% 18%, rgba(78, 136, 184, 0.12), transparent 28rem),
    rgba(1, 6, 15, 0.9);
  backdrop-filter: blur(18px);
}

.biblioteca-photo-lightbox-frame {
  grid-column: 2;
  width: 100%;
  max-height: min(82vh, 54rem);
  display: grid;
  place-items: center;
  margin: 0;
}

.biblioteca-photo-lightbox-frame img {
  max-width: 100%;
  max-height: min(82vh, 54rem);
  display: block;
  border-radius: clamp(0.85rem, 1.5vw, 1.2rem);
  object-fit: contain;
  box-shadow: 0 2rem 6rem rgba(0, 0, 0, 0.42);
}

.biblioteca-photo-lightbox-nav {
  width: clamp(2.4rem, 4vw, 3.2rem);
  height: clamp(3.2rem, 6vw, 4.8rem);
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  color: rgba(232, 244, 255, 0.48);
  background: transparent;
  cursor: pointer;
  transition: color 220ms ease, opacity 220ms ease, transform 260ms cubic-bezier(0.16, 1, 0.3, 1);
}

.biblioteca-photo-lightbox-nav:hover {
  color: rgba(255, 255, 255, 0.94);
}

.biblioteca-photo-lightbox-nav.is-prev {
  grid-column: 1;
}

.biblioteca-photo-lightbox-nav.is-next {
  grid-column: 3;
}

.biblioteca-photo-lightbox-nav.is-prev:hover {
  transform: translateX(-0.14rem);
}

.biblioteca-photo-lightbox-nav.is-next:hover {
  transform: translateX(0.14rem);
}

.biblioteca-photo-lightbox-nav svg {
  width: clamp(1.55rem, 2.6vw, 2.15rem);
  height: clamp(1.55rem, 2.6vw, 2.15rem);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.35;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (max-width: 820px) {
  .biblioteca-knowledge-workspace,
  .biblioteca-knowledge-workspace.has-collapsed-index {
    grid-template-columns: 1fr;
  }

  .biblioteca-knowledge-perspectives {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .biblioteca-knowledge-choice-panel {
    grid-template-columns: 1fr;
  }

  .biblioteca-knowledge-choice-card {
    min-height: 24rem;
  }

  .biblioteca-knowledge-node-list {
    width: auto;
    max-height: none;
  }

  .biblioteca-knowledge-node-list.is-collapsed {
    width: auto;
    padding: 0.62rem;
  }

  .biblioteca-knowledge-node-list.is-collapsed .biblioteca-knowledge-index-head span,
  .biblioteca-knowledge-node-list.is-collapsed .biblioteca-knowledge-query-label,
  .biblioteca-knowledge-node-list.is-collapsed .biblioteca-knowledge-node-card-main strong,
  .biblioteca-knowledge-node-list.is-collapsed .biblioteca-knowledge-node-card-main small {
    display: initial;
  }

  .biblioteca-knowledge-node-list.is-collapsed .biblioteca-knowledge-node-card-main {
    display: grid;
  }

  .biblioteca-knowledge-node-list.is-collapsed .biblioteca-knowledge-node-order {
    display: grid;
  }

  .biblioteca-knowledge-node-list.is-collapsed .biblioteca-knowledge-node-card {
    min-height: auto;
    padding: 0.46rem 0.5rem;
    border-left: 2px solid transparent;
    border-radius: 0.38rem;
    background: transparent;
  }

  .biblioteca-knowledge-topbar {
    align-items: stretch;
    flex-direction: column;
  }

  .biblioteca-knowledge-topbar .biblioteca-knowledge-search {
    width: 100%;
    margin-left: 0;
  }

  .biblioteca-knowledge-contextbar {
    align-items: stretch;
    flex-direction: column;
  }

  .biblioteca-photo-mosaic,
  .biblioteca-photo-gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .biblioteca-photo-mosaic {
    grid-auto-rows: clamp(6rem, 25vw, 10rem);
    min-height: auto;
  }

  .biblioteca-photo-tile.is-featured,
  .biblioteca-photo-tile.is-wide,
  .biblioteca-photo-gallery-item:nth-child(9n + 1),
  .biblioteca-photo-gallery-item:nth-child(9n + 6) {
    grid-column: span 2;
  }

  .biblioteca-photo-gallery-grid {
    grid-auto-rows: clamp(8rem, 28vw, 13rem);
  }

  .biblioteca-photo-lightbox {
    grid-template-columns: 2.8rem minmax(0, 1fr) 2.8rem;
    padding: 0.9rem;
  }
}

.biblioteca-editorial-hero-link {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  color: inherit;
  background: transparent;
  cursor: default;
  pointer-events: none;
}

.biblioteca-editorial-hero-media,
.biblioteca-editorial-hero-media picture,
.biblioteca-editorial-hero-media img,
.biblioteca-editorial-hero-media object,
.biblioteca-editorial-hero-media > span {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.biblioteca-editorial-hero-media img,
.biblioteca-editorial-hero-media object,
.biblioteca-editorial-hero-media > span {
  display: block;
  object-fit: cover;
  object-position: var(--presentation-position, center center);
  transform: scale(var(--presentation-zoom, 1.01));
  filter: saturate(1.07) contrast(1.02) brightness(1.08);
  transition:
    transform 980ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 980ms cubic-bezier(0.16, 1, 0.3, 1);
}

.biblioteca-editorial-hero-media picture {
  display: block;
}

.biblioteca-editorial-hero:hover .biblioteca-editorial-hero-media img,
.biblioteca-editorial-hero:hover .biblioteca-editorial-hero-media object,
.biblioteca-editorial-hero:hover .biblioteca-editorial-hero-media > span {
  transform: scale(calc(var(--presentation-zoom, 1.01) + 0.012));
  filter: saturate(1.1) contrast(1.04) brightness(1.1);
}

.biblioteca-editorial-hero-preview {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
  background: #061426;
  transition: opacity 1200ms cubic-bezier(0.16, 1, 0.3, 1);
}

.biblioteca-editorial-hero-preview.is-active {
  opacity: 1;
}

.biblioteca-editorial-hero.is-preview-paused .biblioteca-editorial-hero-preview.is-active {
  opacity: 1;
}

.biblioteca-editorial-hero-preview video,
.biblioteca-editorial-hero-preview iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
  pointer-events: none;
}

.biblioteca-editorial-hero-preview video {
  object-fit: cover;
  object-position: center calc(50% + var(--hero-video-offset-y, 0px));
}

.biblioteca-editorial-hero-preview iframe {
  top: -16%;
  height: 132%;
  transform: translateY(var(--hero-video-offset-y, 0px));
  pointer-events: none;
}

.biblioteca-editorial-hero-shade {
  position: absolute;
  inset: 0;
  opacity: var(--hero-gradient-opacity, 1);
  z-index: 2;
  background:
    linear-gradient(90deg, rgba(4, 12, 26, 0.62) 0%, rgba(4, 12, 26, 0.34) 22%, rgba(4, 12, 26, 0.08) 42%, transparent 68%, rgba(4, 12, 26, 0.02) 100%),
    linear-gradient(0deg, rgba(4, 12, 26, 0.1) 0%, transparent 38%, transparent 100%);
  pointer-events: none;
  transition: opacity 1400ms cubic-bezier(0.22, 1, 0.36, 1);
}

.biblioteca-editorial-hero::after {
  content: "";
  position: absolute;
  z-index: 2.5;
  right: 0;
  bottom: 0;
  left: 0;
  height: 32%;
  pointer-events: none;
  background:
    radial-gradient(
      ellipse 82% 125% at 0% 100%,
      rgba(3, 13, 31, 0.5) 0%,
      rgba(3, 13, 31, 0.24) 34%,
      rgba(3, 13, 31, 0.08) 59%,
      transparent 82%
    ),
    linear-gradient(
      0deg,
      rgba(3, 13, 31, 0.9) 0%,
      rgba(3, 13, 31, 0.72) 27%,
      rgba(3, 13, 31, 0.28) 68%,
      transparent 100%
    );
  opacity: 0.94;
  transition:
    height 820ms cubic-bezier(0.16, 1, 0.3, 1),
    opacity 820ms cubic-bezier(0.16, 1, 0.3, 1);
}

.biblioteca-editorial-hero.is-preview-playing::after {
  height: 28%;
  opacity: 0.78;
}

.biblioteca-editorial-hero.is-preview-settled::after {
  height: 22%;
  opacity: 0.52;
}

@media (prefers-reduced-motion: reduce) {
  .biblioteca-editorial-hero::after {
    transition: none;
  }
}

.biblioteca-editorial-hero-copy {
  position: absolute;
  left: clamp(1.25rem, 4.2vw, 3.8rem);
  bottom: clamp(1.15rem, 3.8vw, 3.2rem);
  z-index: 4;
  width: min(34rem, 72%);
  display: grid;
  gap: clamp(0.38rem, 1.2vw, 0.7rem);
  font-family: Inter, "Helvetica Neue", "Segoe UI", sans-serif;
  text-align: left;
  transition:
    width 760ms cubic-bezier(0.16, 1, 0.3, 1),
    gap 760ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 760ms cubic-bezier(0.16, 1, 0.3, 1);
}

.biblioteca-editorial-hero-title {
  color: rgba(250, 253, 255, 0.98);
  font-size: clamp(2rem, 5.2vw, 4.4rem);
  font-weight: 620;
  line-height: 0.98;
  letter-spacing: 0;
  text-shadow: 0 16px 34px rgba(0, 0, 0, 0.34);
  transition:
    font-size 820ms cubic-bezier(0.16, 1, 0.3, 1),
    opacity 820ms cubic-bezier(0.16, 1, 0.3, 1),
    text-shadow 820ms cubic-bezier(0.16, 1, 0.3, 1);
}

.biblioteca-editorial-hero-subtitle {
  max-width: 32rem;
  color: rgba(226, 238, 249, 0.78);
  font-size: clamp(0.9rem, 1.4vw, 1.05rem);
  font-weight: 520;
  line-height: 1.45;
  transition:
    max-width 820ms cubic-bezier(0.16, 1, 0.3, 1),
    font-size 820ms cubic-bezier(0.16, 1, 0.3, 1),
    opacity 820ms cubic-bezier(0.16, 1, 0.3, 1);
}

.biblioteca-editorial-hero.is-preview-playing .biblioteca-editorial-hero-copy {
  width: min(24rem, 56%);
  gap: clamp(0.24rem, 0.75vw, 0.44rem);
  transform: translateY(0.18rem);
}

.biblioteca-editorial-hero.is-preview-playing .biblioteca-editorial-hero-title {
  font-size: clamp(1.08rem, 2.6vw, 2.2rem);
  text-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
}

.biblioteca-editorial-hero.is-preview-playing .biblioteca-editorial-hero-subtitle {
  max-width: 21rem;
  font-size: clamp(0.68rem, 0.88vw, 0.8rem);
  opacity: 1;
}

.biblioteca-editorial-hero.is-preview-playing .biblioteca-editorial-hero-shade {
  opacity: calc(var(--hero-gradient-opacity, 1) * 0.72);
}

.biblioteca-editorial-hero.is-preview-settled .biblioteca-editorial-hero-copy {
  gap: 0;
}

.biblioteca-editorial-hero.is-preview-settled .biblioteca-editorial-hero-shade {
  opacity: calc(var(--hero-gradient-opacity, 1) * 0.5);
}

.biblioteca-editorial-hero.is-preview-settled .biblioteca-editorial-hero-title {
  font-size: clamp(0.54rem, 1.3vw, 1.1rem);
  opacity: 0.5;
}

.biblioteca-editorial-hero.is-preview-settled .biblioteca-editorial-hero-subtitle,
.biblioteca-editorial-hero.is-preview-settled .biblioteca-editorial-hero-action {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transform: translateY(0.18rem);
}

.biblioteca-editorial-hero-action {
  width: fit-content;
  margin-top: clamp(0.15rem, 0.8vw, 0.35rem);
  padding: 0;
  border: 0;
  border-radius: 0;
  color: rgba(248, 252, 255, 0.9);
  background: transparent;
  box-shadow: none;
  font-size: clamp(0.88rem, 1.15vw, 1rem);
  font-weight: 560;
  line-height: 1;
  text-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
  transition: color 220ms ease, opacity 520ms cubic-bezier(0.16, 1, 0.3, 1), transform 220ms ease;
}

.biblioteca-editorial-hero-link:hover .biblioteca-editorial-hero-action {
  color: rgba(255, 255, 255, 0.98);
  transform: translateX(0.12rem);
}

.biblioteca-editorial-hero-controls {
  position: absolute;
  right: clamp(1.05rem, 2.6vw, 2rem);
  bottom: clamp(1rem, 2.7vw, 2rem);
  z-index: 6;
  display: flex;
  align-items: center;
  gap: clamp(0.28rem, 0.7vw, 0.5rem);
  padding: 0.22rem 0.35rem 0.22rem 0.42rem;
  border: 1px solid rgba(229, 239, 247, 0.1);
  border-radius: 999px;
  background: rgba(5, 10, 16, 0.46);
  box-shadow: 0 0.65rem 1.8rem rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  opacity: 0.76;
  transition: opacity 280ms ease, background 280ms ease;
}

.biblioteca-editorial-hero.is-preview-playing .biblioteca-editorial-hero-controls {
  opacity: 0.58;
}

.biblioteca-editorial-hero.is-preview-settled .biblioteca-editorial-hero-controls {
  opacity: 0;
  pointer-events: none;
}

.biblioteca-editorial-hero.is-preview-settled:hover .biblioteca-editorial-hero-controls,
.biblioteca-editorial-hero.is-preview-settled .biblioteca-editorial-hero-controls:focus-within {
  opacity: 1;
  pointer-events: auto;
}

.biblioteca-editorial-hero.is-preview-playing:hover .biblioteca-editorial-hero-controls,
.biblioteca-editorial-hero.is-preview-playing .biblioteca-editorial-hero-controls:focus-within {
  opacity: 1;
  background: rgba(5, 10, 16, 0.68);
}

@media (min-width: 821px) {
  .biblioteca-editorial-hero-controls {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .biblioteca-editorial-hero.is-preview-playing:hover .biblioteca-editorial-hero-controls,
  .biblioteca-editorial-hero.is-preview-playing .biblioteca-editorial-hero-controls:focus-within {
    background: transparent;
  }

}

.biblioteca-editorial-hero:fullscreen .biblioteca-editorial-hero-controls,
.biblioteca-editorial-hero:-webkit-full-screen .biblioteca-editorial-hero-controls {
  left: clamp(1rem, 3vw, 3rem);
  right: clamp(1rem, 3vw, 3rem);
  bottom: clamp(1rem, 3.2vh, 2.2rem);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  gap: clamp(0.55rem, 1.4vw, 0.95rem);
  align-items: center;
  opacity: 0;
  pointer-events: none;
  transform: translateY(0.45rem);
  transition:
    opacity 420ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 420ms cubic-bezier(0.16, 1, 0.3, 1);
}

.biblioteca-editorial-hero:fullscreen.is-controls-visible .biblioteca-editorial-hero-controls,
.biblioteca-editorial-hero:-webkit-full-screen.is-controls-visible .biblioteca-editorial-hero-controls,
.biblioteca-editorial-hero:fullscreen .biblioteca-editorial-hero-controls:focus-within,
.biblioteca-editorial-hero:-webkit-full-screen .biblioteca-editorial-hero-controls:focus-within {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.biblioteca-editorial-hero:fullscreen .biblioteca-editorial-hero-scrubber,
.biblioteca-editorial-hero:-webkit-full-screen .biblioteca-editorial-hero-scrubber {
  width: 100%;
  opacity: 0.92;
}

.biblioteca-editorial-hero:fullscreen .biblioteca-editorial-hero-control,
.biblioteca-editorial-hero:-webkit-full-screen .biblioteca-editorial-hero-control {
  width: 2.4rem;
  height: 2.4rem;
}

.biblioteca-editorial-hero-scrubber {
  --hero-progress: 0%;
  width: clamp(7rem, 18vw, 17rem);
  height: 1.9rem;
  display: grid;
  align-items: center;
  opacity: 0.58;
  transition:
    opacity 220ms ease,
    transform 260ms cubic-bezier(0.16, 1, 0.3, 1);
}

.biblioteca-editorial-hero-scrubber:hover,
.biblioteca-editorial-hero-scrubber:focus-within {
  opacity: 0.96;
  transform: translateY(-0.04rem);
}

.biblioteca-editorial-hero-scrubber input {
  width: 100%;
  height: 1.1rem;
  margin: 0;
  padding: 0;
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  cursor: pointer;
}

.biblioteca-editorial-hero-scrubber input::-webkit-slider-runnable-track {
  height: 2px;
  border-radius: 999px;
  background:
    linear-gradient(90deg, rgba(250, 253, 255, 0.92) 0 var(--hero-progress), rgba(216, 231, 246, 0.28) var(--hero-progress) 100%);
}

.biblioteca-editorial-hero-scrubber input::-webkit-slider-thumb {
  width: 0.55rem;
  height: 0.55rem;
  margin-top: calc(-0.275rem + 1px);
  border: 0;
  border-radius: 999px;
  -webkit-appearance: none;
  background: rgba(250, 253, 255, 0.96);
  box-shadow: 0 0 16px rgba(180, 222, 255, 0.24);
  opacity: 0;
  transition: opacity 200ms ease, transform 200ms ease;
}

.biblioteca-editorial-hero-scrubber:hover input::-webkit-slider-thumb,
.biblioteca-editorial-hero-scrubber:focus-within input::-webkit-slider-thumb {
  opacity: 1;
  transform: scale(1.08);
}

.biblioteca-editorial-hero-scrubber input::-moz-range-track {
  height: 2px;
  border: 0;
  border-radius: 999px;
  background: rgba(216, 231, 246, 0.28);
}

.biblioteca-editorial-hero-scrubber input::-moz-range-progress {
  height: 2px;
  border-radius: 999px;
  background: rgba(250, 253, 255, 0.92);
}

.biblioteca-editorial-hero-scrubber input::-moz-range-thumb {
  width: 0.55rem;
  height: 0.55rem;
  border: 0;
  border-radius: 999px;
  background: rgba(250, 253, 255, 0.96);
  box-shadow: 0 0 16px rgba(180, 222, 255, 0.24);
  opacity: 0;
  transition: opacity 200ms ease, transform 200ms ease;
}

.biblioteca-editorial-hero-scrubber:hover input::-moz-range-thumb,
.biblioteca-editorial-hero-scrubber:focus-within input::-moz-range-thumb {
  opacity: 1;
  transform: scale(1.08);
}

.biblioteca-editorial-hero-control {
  position: relative;
  width: clamp(2.1rem, 3vw, 2.55rem);
  height: clamp(2.1rem, 3vw, 2.55rem);
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  color: rgba(240, 248, 255, 0.5);
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  opacity: 0.72;
  transform: translateY(0);
  transition:
    color 220ms ease,
    opacity 220ms ease,
    transform 260ms cubic-bezier(0.16, 1, 0.3, 1);
}

.biblioteca-editorial-hero-audio:focus,
.biblioteca-editorial-hero-audio:focus-visible {
  outline: 0;
  box-shadow: none;
}

.app-shell.is-documents-immersive .documents-page::after {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 3% 8%, rgba(255, 255, 255, 1) 0 1.65px, rgba(218, 238, 255, 0.36) 2.5px, transparent 4px),
    radial-gradient(circle at 7% 32%, rgba(210, 235, 255, 0.86) 0 1px, transparent 2.4px),
    radial-gradient(circle at 11% 67%, rgba(255, 244, 208, 0.92) 0 1.35px, transparent 3px),
    radial-gradient(circle at 14% 17%, rgba(255, 255, 255, 0.78) 0 0.8px, transparent 2.1px),
    radial-gradient(circle at 18% 84%, rgba(191, 225, 255, 0.94) 0 1.5px, rgba(191, 225, 255, 0.3) 2.2px, transparent 3.8px),
    radial-gradient(circle at 22% 46%, rgba(255, 255, 255, 0.88) 0 1.1px, transparent 2.6px),
    radial-gradient(circle at 26% 5%, rgba(255, 232, 179, 0.88) 0 1.25px, transparent 2.8px),
    radial-gradient(circle at 29% 73%, rgba(201, 232, 255, 0.8) 0 0.8px, transparent 2px),
    radial-gradient(circle at 33% 27%, rgba(255, 255, 255, 0.96) 0 1.6px, rgba(230, 243, 255, 0.32) 2.45px, transparent 4.1px),
    radial-gradient(circle at 37% 58%, rgba(220, 238, 255, 0.9) 0 1.15px, transparent 2.7px),
    radial-gradient(circle at 41% 13%, rgba(255, 248, 225, 0.86) 0 0.95px, transparent 2.35px),
    radial-gradient(circle at 44% 91%, rgba(255, 255, 255, 0.8) 0 1.05px, transparent 2.4px),
    radial-gradient(circle at 48% 40%, rgba(180, 219, 255, 0.92) 0 1.45px, rgba(180, 219, 255, 0.26) 2.2px, transparent 3.9px),
    radial-gradient(circle at 52% 76%, rgba(255, 255, 255, 0.88) 0 1.1px, transparent 2.65px),
    radial-gradient(circle at 56% 20%, rgba(255, 232, 184, 0.9) 0 1.3px, transparent 2.9px),
    radial-gradient(circle at 59% 54%, rgba(211, 236, 255, 0.82) 0 0.8px, transparent 2px),
    radial-gradient(circle at 63% 7%, rgba(255, 255, 255, 0.98) 0 1.6px, rgba(230, 244, 255, 0.34) 2.5px, transparent 4.2px),
    radial-gradient(circle at 67% 88%, rgba(193, 225, 255, 0.92) 0 1.35px, transparent 3px),
    radial-gradient(circle at 71% 35%, rgba(255, 249, 225, 0.86) 0 1px, transparent 2.4px),
    radial-gradient(circle at 74% 63%, rgba(255, 255, 255, 0.78) 0 0.8px, transparent 2.05px),
    radial-gradient(circle at 78% 16%, rgba(203, 232, 255, 0.95) 0 1.5px, rgba(203, 232, 255, 0.28) 2.25px, transparent 3.9px),
    radial-gradient(circle at 82% 79%, rgba(255, 255, 255, 0.9) 0 1.15px, transparent 2.7px),
    radial-gradient(circle at 86% 44%, rgba(255, 230, 176, 0.88) 0 1.25px, transparent 2.85px),
    radial-gradient(circle at 89% 4%, rgba(193, 225, 255, 0.84) 0 0.85px, transparent 2.1px),
    radial-gradient(circle at 93% 68%, rgba(255, 255, 255, 0.98) 0 1.6px, rgba(230, 244, 255, 0.34) 2.5px, transparent 4.2px),
    radial-gradient(circle at 97% 26%, rgba(215, 238, 255, 0.9) 0 1.1px, transparent 2.65px);
  opacity: 1;
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.88), rgba(0, 0, 0, 0.48) 72%, transparent 100%);
  filter: drop-shadow(0 0 0.22rem rgba(204, 231, 255, 0.34));
  animation: bibliotecaStarfieldSessionDrift var(--biblioteca-starfield-session-duration, 40s) linear infinite;
  will-change: transform;
}

@keyframes bibliotecaStarfieldSessionDrift {
  0%, 100% {
    transform: translate3d(var(--biblioteca-starfield-session-x-0, -12.96px), var(--biblioteca-starfield-session-y-0, 2.52px), 0) scale(1);
  }
  12.5% {
    transform: translate3d(var(--biblioteca-starfield-session-x-1, -5.4px), var(--biblioteca-starfield-session-y-1, -7.56px), 0) scale(1.002);
  }
  25% {
    transform: translate3d(var(--biblioteca-starfield-session-x-2, 7.56px), var(--biblioteca-starfield-session-y-2, -11.88px), 0) scale(1.004);
  }
  37.5% {
    transform: translate3d(var(--biblioteca-starfield-session-x-3, 18.72px), var(--biblioteca-starfield-session-y-3, -6.48px), 0) scale(1.005);
  }
  50% {
    transform: translate3d(var(--biblioteca-starfield-session-x-4, 23.04px), var(--biblioteca-starfield-session-y-4, 6.12px), 0) scale(1.006);
  }
  62.5% {
    transform: translate3d(var(--biblioteca-starfield-session-x-5, 14.4px), var(--biblioteca-starfield-session-y-5, 14.76px), 0) scale(1.005);
  }
  75% {
    transform: translate3d(var(--biblioteca-starfield-session-x-6, 1.08px), var(--biblioteca-starfield-session-y-6, 16.56px), 0) scale(1.003);
  }
  87.5% {
    transform: translate3d(var(--biblioteca-starfield-session-x-7, -10.08px), var(--biblioteca-starfield-session-y-7, 10.44px), 0) scale(1.001);
  }
}

@media (prefers-reduced-motion: reduce) {
  .app-shell.is-documents-immersive .documents-page::after {
    animation: none;
  }
}

.biblioteca-editorial-hero-audio:focus-visible {
  color: rgba(255, 255, 255, 0.96);
  opacity: 1;
  filter: drop-shadow(0 0 0.35rem rgba(199, 229, 255, 0.3));
}

.biblioteca-editorial-hero-control:hover,
.biblioteca-editorial-hero-control.is-on {
  color: rgba(255, 255, 255, 0.96);
  opacity: 1;
}

.biblioteca-editorial-hero-control:hover {
  transform: translateY(-0.08rem);
}

.biblioteca-editorial-hero-control svg {
  width: clamp(1.25rem, 1.8vw, 1.55rem);
  height: clamp(1.25rem, 1.8vw, 1.55rem);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.55;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-editorial-hero-nav {
  display: none;
}

@media (min-width: 821px) {
  .biblioteca-editorial-hero-nav {
    position: absolute;
    top: 50%;
    z-index: 7;
    width: 2.65rem;
    height: 3.4rem;
    place-items: center;
    padding: 0;
    border: 0;
    color: rgba(235, 247, 255, 0.82);
    background: transparent;
    box-shadow: none;
    cursor: pointer;
    transform: translateY(-50%);
    opacity: 0.48;
    transition: opacity 260ms ease, color 260ms ease, transform 220ms ease, filter 320ms ease;
  }

  .biblioteca-editorial-hero-stage > .biblioteca-editorial-hero-nav,
  .biblioteca-editorial-hero:fullscreen .biblioteca-editorial-hero-nav.is-fullscreen-navigation,
  .biblioteca-editorial-hero:-webkit-full-screen .biblioteca-editorial-hero-nav.is-fullscreen-navigation {
    display: grid;
  }

  .biblioteca-editorial-hero-nav:hover,
  .biblioteca-editorial-hero-nav:focus-visible {
    color: rgba(255, 255, 255, 0.98);
    opacity: 0.92;
    filter: drop-shadow(0 0 0.6rem rgba(107, 188, 238, 0.22));
  }

  .biblioteca-editorial-hero-nav svg {
    width: 1.25rem;
    height: 1.25rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .biblioteca-editorial-hero-prev {
    left: 0.8rem;
  }

  .biblioteca-editorial-hero-next {
    right: 0.8rem;
  }

  .biblioteca-editorial-hero-prev:hover,
  .biblioteca-editorial-hero-prev:focus-visible {
    transform: translate(-0.12rem, -50%);
  }

  .biblioteca-editorial-hero-next:hover,
  .biblioteca-editorial-hero-next:focus-visible {
    transform: translate(0.12rem, -50%);
  }

  .biblioteca-editorial-hero.is-sliding-next .biblioteca-editorial-hero-media,
  .biblioteca-editorial-hero.is-sliding-next .biblioteca-editorial-hero-preview,
  .biblioteca-editorial-hero.is-sliding-next .biblioteca-editorial-hero-shade,
  .biblioteca-editorial-hero.is-sliding-next .biblioteca-editorial-hero-link {
    animation: bibliotecaHeroSlideNext 360ms cubic-bezier(0.16, 1, 0.3, 1);
  }

  .biblioteca-editorial-hero.is-sliding-prev .biblioteca-editorial-hero-media,
  .biblioteca-editorial-hero.is-sliding-prev .biblioteca-editorial-hero-preview,
  .biblioteca-editorial-hero.is-sliding-prev .biblioteca-editorial-hero-shade,
  .biblioteca-editorial-hero.is-sliding-prev .biblioteca-editorial-hero-link {
    animation: bibliotecaHeroSlidePrev 360ms cubic-bezier(0.16, 1, 0.3, 1);
  }

  .biblioteca-editorial-hero-title {
    font-size: clamp(1.8rem, 3.2vw, 3.1rem);
  }
}

@media (min-width: 1100px) {
  .biblioteca-editorial-hero-stage > .biblioteca-editorial-hero-prev {
    left: -3.35rem;
  }

  .biblioteca-editorial-hero-stage > .biblioteca-editorial-hero-next {
    right: -3.35rem;
  }
}

@keyframes bibliotecaHeroSlideNext {
  from {
    opacity: 0.76;
    transform: translateX(1.25rem);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes bibliotecaHeroSlidePrev {
  from {
    opacity: 0.76;
    transform: translateX(-1.25rem);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.biblioteca-continue-section {
  display: grid;
  gap: 0.72rem;
}

.biblioteca-continue-section h3 {
  margin: 0;
  color: rgba(241, 248, 255, 0.96);
  font-size: 0.92rem;
  font-weight: 620;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.biblioteca-continue-row {
  display: flex;
  gap: clamp(0.7rem, 1.6vw, 1rem);
  overflow-x: auto;
  overflow-y: hidden;
  padding: 0.1rem 0.05rem 0.9rem;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.biblioteca-continue-row::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.biblioteca-continue-row.can-scroll-right {
  -webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 3.2rem), transparent 100%);
  mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 3.2rem), transparent 100%);
}

.biblioteca-continue-row.can-scroll-left {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 3.2rem, #000 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 3.2rem, #000 100%);
}

.biblioteca-continue-row.can-scroll-left.can-scroll-right {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 3.2rem, #000 calc(100% - 3.2rem), transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 3.2rem, #000 calc(100% - 3.2rem), transparent 100%);
}

.biblioteca-continue-card {
  flex: 0 0 clamp(12rem, 22vw, 18rem);
  width: clamp(12rem, 22vw, 18rem);
  display: grid;
  gap: 0.54rem;
  padding: 0;
  border: 0;
  color: rgba(238, 247, 255, 0.92);
  background: transparent;
  cursor: pointer;
  text-align: left;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

.biblioteca-continue-thumb {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border: 1px solid rgba(126, 157, 187, 0.16);
  border-radius: clamp(0.75rem, 1.4vw, 1rem);
  background: rgba(6, 17, 33, 0.74);
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.28);
}

.biblioteca-continue-thumb .doc-cover-art,
.biblioteca-continue-thumb .biblioteca-file-visual {
  width: 100%;
  height: 100%;
  min-width: 100%;
  min-height: 100%;
  max-width: 100%;
  max-height: 100%;
  border: 0;
  border-radius: inherit;
  aspect-ratio: auto;
  box-shadow: none;
}

.biblioteca-continue-thumb .doc-cover-art img,
.biblioteca-continue-thumb .doc-cover-art object {
  object-fit: cover;
}

.biblioteca-continue-video-preview {
  position: relative;
  width: 100%;
  height: 100%;
  display: block;
  overflow: hidden;
  border-radius: inherit;
  background: rgba(5, 14, 28, 0.86);
}

.biblioteca-continue-video-preview img,
video.biblioteca-continue-video-preview {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.biblioteca-continue-video-preview.is-youtube img {
  filter: saturate(1.04) contrast(1.02) brightness(0.92);
}

.biblioteca-continue-video-preview > span {
  position: absolute;
  right: 0.72rem;
  bottom: 0.56rem;
  display: block;
  color: rgba(248, 252, 255, 0.9);
  font-size: 0.82rem;
  line-height: 1;
  text-shadow: 0 8px 18px rgba(0, 0, 0, 0.38);
}

.biblioteca-continue-title {
  display: block;
  min-height: 2.15em;
  overflow: hidden;
  color: rgba(241, 248, 255, 0.93);
  font-size: clamp(0.82rem, 1vw, 0.92rem);
  font-weight: 720;
  line-height: 1.18;
}

.biblioteca-continue-progress {
  position: relative;
  display: block;
  width: 100%;
  height: 2px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(196, 216, 235, 0.18);
}

.biblioteca-continue-progress span {
  display: block;
  width: var(--continue-progress, 32%);
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, rgba(244, 251, 255, 0.96), rgba(199, 229, 249, 0.86));
  box-shadow: 0 0 18px rgba(185, 224, 249, 0.18);
}

.biblioteca-continue-card .biblioteca-continue-thumb,
.biblioteca-continue-card .biblioteca-continue-title,
.biblioteca-continue-card .biblioteca-continue-progress {
  transition:
    transform 240ms cubic-bezier(0.16, 1, 0.3, 1),
    opacity 220ms ease,
    border-color 220ms ease,
    color 220ms ease;
}

.biblioteca-continue-card:hover .biblioteca-continue-thumb {
  transform: translateY(-0.12rem);
  border-color: rgba(126, 197, 246, 0.32);
}

.biblioteca-continue-card:hover .biblioteca-continue-title {
  color: rgba(255, 255, 255, 0.98);
}

.biblioteca-focused-section {
  display: grid;
  gap: 0.85rem;
}

.biblioteca-simple-view {
  width: min(100%, 64rem);
  display: grid;
  gap: clamp(1rem, 2.4vw, 1.6rem);
  margin: clamp(0.15rem, 1.2vw, 0.7rem) auto 0;
}

.biblioteca-simple-section-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  color: rgba(223, 239, 252, 0.9);
}

.biblioteca-simple-section-label span {
  font-size: 0.94rem;
  font-weight: 760;
  letter-spacing: 0;
}

.biblioteca-simple-section-label small {
  color: rgba(176, 204, 229, 0.58);
  font-size: 0.78rem;
  font-weight: 650;
}

.biblioteca-simple-recents,
.biblioteca-simple-results {
  display: grid;
  gap: 0.72rem;
}

.biblioteca-simple-stack-stage {
  position: fixed;
  inset: 0;
  z-index: 0;
  min-height: 100vh;
  display: grid;
  place-items: center;
  overflow: visible;
  pointer-events: none;
  transform: translateY(clamp(-2.6rem, -4vh, -1.4rem));
}

.biblioteca-simple-recent-list {
  display: flex;
  gap: 0.58rem;
  overflow-x: auto;
  padding-bottom: 0.1rem;
  scrollbar-width: none;
}

.biblioteca-simple-recent-list::-webkit-scrollbar {
  display: none;
}

.biblioteca-simple-stack {
  position: relative;
  width: 100%;
  flex: 1 0 100%;
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 0;
  pointer-events: none;
}

.biblioteca-simple-nav {
  position: fixed;
  top: 50%;
  z-index: 24;
  min-width: 0;
  min-height: 0;
  padding: clamp(0.9rem, 2vw, 1.5rem);
  border: 0;
  border-radius: 0;
  color: rgba(214, 232, 248, 0.34);
  background: transparent;
  box-shadow: none;
  font-size: clamp(2.1rem, 4.4vw, 3.9rem);
  font-weight: 260;
  line-height: 1;
  letter-spacing: 0;
  cursor: pointer;
  opacity: 0.34;
  pointer-events: auto;
  transform: translate(-50%, -50%);
  transition: opacity 220ms ease, color 220ms ease, transform 320ms cubic-bezier(0.18, 0.82, 0.18, 1);
}

.biblioteca-simple-stack:hover .biblioteca-simple-nav {
  opacity: 0.5;
}

.biblioteca-simple-nav span,
.biblioteca-simple-nav svg {
  width: 1em;
  height: 1em;
  display: block;
}

.biblioteca-simple-nav svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.35;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-simple-nav:hover {
  color: rgba(247, 252, 255, 0.74);
  opacity: 0.82;
}

.biblioteca-simple-nav-prev {
  left: calc(50% - clamp(9.7rem, 34vw, 25rem));
}

.biblioteca-simple-nav-next {
  left: calc(50% + clamp(9.7rem, 34vw, 25rem));
}

.biblioteca-simple-nav-prev:hover {
  transform: translate(calc(-50% - 0.25rem), -50%) scale(1.04);
}

.biblioteca-simple-nav-next:hover {
  transform: translate(calc(-50% + 0.25rem), -50%) scale(1.04);
}

.biblioteca-simple-stack-item {
  position: absolute;
  z-index: var(--stack-z);
  width: min(29rem, 76vw, 56vh);
  aspect-ratio: 2 / 3;
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  gap: 0;
  padding: 0.82rem;
  border: 1px solid rgba(126, 157, 187, 0.18);
  border-radius: 1.05rem;
  color: rgba(238, 247, 255, 0.92);
  background: #071223;
  box-shadow: 0 24px 62px rgba(0, 0, 0, 0.24);
  cursor: pointer;
  text-align: left;
  opacity: var(--stack-opacity);
  filter: blur(var(--stack-blur));
  transform:
    translateX(var(--stack-x))
    translateY(var(--stack-y))
    scale(var(--stack-scale));
  transform-origin: center;
  will-change: transform, opacity, filter;
  transition:
    transform 420ms cubic-bezier(0.18, 0.82, 0.18, 1),
    opacity 320ms ease,
    filter 320ms ease,
    border-color 260ms ease;
}

.biblioteca-simple-stack.is-shifting-next .biblioteca-simple-stack-item {
  animation: bibliotecaSimpleSlideNext 520ms cubic-bezier(0.18, 0.82, 0.18, 1);
}

.biblioteca-simple-stack.is-shifting-prev .biblioteca-simple-stack-item {
  animation: bibliotecaSimpleSlidePrev 520ms cubic-bezier(0.18, 0.82, 0.18, 1);
}

.biblioteca-simple-stack-item.is-front {
  opacity: 1;
  filter: drop-shadow(0 24px 54px rgba(0, 0, 0, 0.22));
  pointer-events: auto;
  background: #071223;
}

.biblioteca-simple-stack-item:not(.is-front) {
  pointer-events: none;
}

.biblioteca-simple-stack-item:hover {
  border-color: rgba(72, 162, 220, 0.38);
  transform:
    translateX(var(--stack-x))
    translateY(calc(var(--stack-y) - 0.1rem))
    scale(var(--stack-scale));
}

.biblioteca-simple-stack-cover {
  min-width: 0;
  min-height: 0;
  display: grid;
  place-items: stretch;
  overflow: hidden;
  border-radius: 0.78rem;
  background: #061426;
}

.biblioteca-simple-stack-cover > img,
.biblioteca-simple-stack-cover > object,
.biblioteca-simple-stack-cover > span {
  width: 100%;
  height: 100%;
}

.biblioteca-simple-stack-cover img {
  object-fit: cover;
}

@keyframes bibliotecaSimpleSlideNext {
  from {
    opacity: 0.42;
    filter: blur(7px);
    transform:
      translateX(calc(var(--stack-x) + 4.4rem))
      translateY(var(--stack-y))
      scale(var(--stack-scale));
  }
  to {
    opacity: var(--stack-opacity);
    filter: blur(var(--stack-blur));
    transform:
      translateX(var(--stack-x))
      translateY(var(--stack-y))
      scale(var(--stack-scale));
  }
}

@keyframes bibliotecaSimpleSlidePrev {
  from {
    opacity: 0.42;
    filter: blur(7px);
    transform:
      translateX(calc(var(--stack-x) - 4.4rem))
      translateY(var(--stack-y))
      scale(var(--stack-scale));
  }
  to {
    opacity: var(--stack-opacity);
    filter: blur(var(--stack-blur));
    transform:
      translateX(var(--stack-x))
      translateY(var(--stack-y))
      scale(var(--stack-scale));
  }
}

.biblioteca-simple-stack-label {
  display: none;
  gap: 0.22rem;
}

.biblioteca-simple-stack-label strong,
.biblioteca-simple-stack-label small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.biblioteca-simple-stack-label strong {
  color: rgba(248, 252, 255, 0.97);
  font-size: 1.02rem;
}

.biblioteca-simple-stack-label small {
  color: rgba(180, 207, 229, 0.66);
  font-size: 0.78rem;
  font-weight: 620;
}

.biblioteca-simple-recent-item,
.biblioteca-simple-result {
  border: 1px solid rgba(126, 157, 187, 0.18);
  color: rgba(238, 247, 255, 0.92);
  background: rgba(7, 18, 35, 0.46);
  cursor: pointer;
  transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
}

.biblioteca-simple-recent-item:hover,
.biblioteca-simple-result:hover {
  transform: translateY(-1px);
  border-color: rgba(79, 164, 220, 0.34);
  background: rgba(12, 30, 54, 0.66);
}

.biblioteca-simple-recent-item {
  flex: 0 0 auto;
  min-width: 10.4rem;
  max-width: 13rem;
  min-height: 3.2rem;
  display: grid;
  grid-template-columns: 2.35rem minmax(0, 1fr);
  align-items: center;
  gap: 0.55rem;
  padding: 0.42rem 0.62rem;
  border-radius: 0.74rem;
  text-align: left;
}

.biblioteca-simple-recent-item span:last-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.86rem;
  font-weight: 700;
}

.biblioteca-simple-thumb {
  width: 2.35rem;
  height: 2.35rem;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 0.45rem;
  color: rgba(155, 205, 240, 0.86);
  background: rgba(20, 48, 79, 0.76);
}

.biblioteca-simple-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.biblioteca-simple-thumb svg {
  width: 1.05rem;
  height: 1.05rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-simple-result {
  width: 100%;
  min-height: 4rem;
  display: grid;
  grid-template-columns: 2.7rem minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem;
  padding: 0.58rem 0.72rem;
  border-radius: 0.78rem;
  text-align: left;
}

.biblioteca-simple-result .biblioteca-simple-thumb {
  width: 2.7rem;
  height: 2.7rem;
}

.biblioteca-simple-result strong,
.biblioteca-simple-result small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.biblioteca-simple-result strong {
  color: rgba(248, 252, 255, 0.96);
  font-size: 0.96rem;
}

.biblioteca-simple-result small,
.biblioteca-simple-result em {
  color: rgba(179, 205, 227, 0.64);
  font-size: 0.78rem;
  font-style: normal;
  font-weight: 620;
}

.biblioteca-simple-result em {
  justify-self: end;
}

.biblioteca-simple-empty {
  min-height: 3.4rem;
  display: grid;
  place-items: center;
  padding: 0.8rem;
  border: 1px solid rgba(126, 157, 187, 0.14);
  border-radius: 0.78rem;
  color: rgba(185, 206, 226, 0.62);
  background: rgba(7, 18, 35, 0.32);
  font-size: 0.86rem;
  text-align: center;
}

.biblioteca-section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
}

.biblioteca-section-head h3 {
  margin: 0;
  color: rgba(241, 248, 255, 0.96);
  font-size: 1.08rem;
  letter-spacing: 0;
}

.biblioteca-section-head p {
  max-width: 36rem;
  margin: 0.25rem 0 0;
  color: rgba(185, 206, 226, 0.68);
  font-size: 0.84rem;
  line-height: 1.45;
}

.biblioteca-personal-create {
  position: relative;
  width: 2.55rem;
  height: 2.55rem;
  display: grid;
  place-items: center;
  border: 1px solid rgba(126, 157, 187, 0.24);
  border-radius: 999px;
  color: rgba(8, 17, 31, 0.94);
  background: rgba(247, 251, 255, 0.94);
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.22);
}

.biblioteca-personal-create > span {
  transform: none;
}

.biblioteca-personal-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  gap: 0.72rem;
}

.biblioteca-personal-card {
  min-height: 7rem;
  border: 1px solid rgba(126, 157, 187, 0.16);
  border-radius: var(--radius);
  background: rgba(7, 18, 35, 0.48);
}

.biblioteca-personal-card button {
  width: 100%;
  height: 100%;
  display: grid;
  align-content: end;
  gap: 0.25rem;
  padding: 0.9rem;
  border: 0;
  color: rgba(238, 247, 255, 0.92);
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.biblioteca-personal-card strong {
  font-size: 0.95rem;
}

.biblioteca-personal-card span,
.biblioteca-section-back {
  color: rgba(185, 206, 226, 0.68);
  font-size: 0.78rem;
}

.biblioteca-section-back {
  margin: 0 0 0.5rem;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.biblioteca-collection-picker {
  width: min(100%, 15.5rem);
  display: grid;
  gap: 0.45rem;
  padding: 0.65rem;
  border: 1px solid rgba(126, 157, 187, 0.22);
  border-radius: var(--radius);
  color: rgba(235, 244, 252, 0.9);
  background: rgba(4, 12, 24, 0.9);
  box-shadow: 0 1.2rem 3rem rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(14px);
  opacity: 0;
  transform: translateY(0.35rem) scale(0.98);
  transition: opacity 180ms ease, transform 180ms ease;
}

.biblioteca-collection-picker.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.biblioteca-collection-picker.is-anchored {
  position: fixed !important;
  z-index: 1300;
  right: auto !important;
  bottom: auto !important;
}

@supports (view-transition-name: none) {
  ::view-transition-old(root),
  ::view-transition-new(root) {
    animation-duration: 180ms;
    animation-timing-function: ease-out;
  }
}

.biblioteca-collection-picker span {
  color: rgba(184, 204, 222, 0.82);
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
}

.biblioteca-collection-picker button {
  min-height: 2.15rem;
  border: 1px solid rgba(126, 157, 187, 0.2);
  border-radius: 999px;
  color: rgba(239, 247, 255, 0.92);
  background: rgba(16, 44, 72, 0.72);
  cursor: pointer;
  font-size: 0.8rem;
  font-weight: 760;
}

.biblioteca-reference-browser {
  display: grid;
  gap: 0.7rem;
  padding: 0.85rem;
  border: 1px solid rgba(126, 157, 187, 0.16);
  border-radius: 0.85rem;
  background: rgba(4, 12, 24, 0.5);
}

.biblioteca-reference-browser > div:first-child {
  display: grid;
  gap: 0.2rem;
}

.biblioteca-reference-browser strong {
  color: rgba(241, 248, 255, 0.94);
  font-size: 0.9rem;
}

.biblioteca-reference-browser span {
  color: rgba(185, 206, 226, 0.68);
  font-size: 0.78rem;
  line-height: 1.35;
}

.biblioteca-reference-list {
  max-height: 18rem;
  display: grid;
  gap: 0.38rem;
  overflow: auto;
  padding-right: 0.2rem;
}

.biblioteca-reference-list button {
  min-height: 2.6rem;
  display: grid;
  grid-template-columns: 1.15rem minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.55rem;
  padding: 0.45rem 0.58rem;
  border: 1px solid rgba(126, 157, 187, 0.14);
  border-radius: 0.68rem;
  color: rgba(239, 247, 255, 0.92);
  background: rgba(7, 18, 35, 0.48);
  cursor: pointer;
  text-align: left;
  transition: transform 150ms ease, border-color 150ms ease, background 150ms ease;
}

.biblioteca-reference-list button:hover {
  transform: translateY(-1px);
  border-color: rgba(72, 162, 220, 0.34);
  background: rgba(16, 44, 72, 0.56);
}

.biblioteca-reference-list svg {
  width: 1.05rem;
  height: 1.05rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-reference-list strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.biblioteca-reference-list small {
  color: rgba(168, 194, 218, 0.58);
  font-size: 0.72rem;
}

.document-shelf,
.document-related {
  display: grid;
  gap: 0.7rem;
}

.document-shelf h3,
.document-related h3 {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.document-cover-row {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 0.2rem 0.05rem 1rem;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.document-cover-row::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.app-shell.is-documents-immersive .document-cover-row,
.app-shell.is-documents-immersive .biblioteca-video-works-row,
.app-shell.is-documents-immersive .biblioteca-continue-row {
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.app-shell.is-documents-immersive .document-cover-row::-webkit-scrollbar,
.app-shell.is-documents-immersive .biblioteca-video-works-row::-webkit-scrollbar,
.app-shell.is-documents-immersive .biblioteca-continue-row::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}

.biblioteca-carousel-shell {
  position: relative;
  min-width: 0;
}

.biblioteca-carousel-arrow {
  position: absolute;
  z-index: 260;
  top: 0;
  bottom: 0;
  width: clamp(2.45rem, 3.8vw, 3.7rem);
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  color: rgba(235, 247, 255, 0.82);
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 260ms ease, color 260ms ease, filter 320ms ease;
}

.biblioteca-carousel-arrow.is-previous {
  left: 0;
  justify-items: start;
  padding-left: 0.34rem;
  background: linear-gradient(90deg, rgba(2, 11, 23, 0.82), rgba(2, 11, 23, 0));
}

.biblioteca-carousel-arrow.is-next {
  right: 0;
  justify-items: end;
  padding-right: 0.34rem;
  background: linear-gradient(270deg, rgba(2, 11, 23, 0.82), rgba(2, 11, 23, 0));
}

.biblioteca-carousel-arrow.is-visible {
  opacity: 0.48;
  pointer-events: auto;
}

.biblioteca-carousel-shell:hover .biblioteca-carousel-arrow.is-visible,
.biblioteca-carousel-arrow.is-visible:focus-visible {
  color: rgba(255, 255, 255, 0.98);
  opacity: 0.92;
  filter: drop-shadow(0 0 0.6rem rgba(107, 188, 238, 0.22));
}

.biblioteca-carousel-arrow svg {
  width: 1.25rem;
  height: 1.25rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  transition: transform 280ms cubic-bezier(0.16, 1, 0.3, 1);
}

.biblioteca-carousel-arrow.is-visible:hover svg {
  transform: scale(1.12);
}

.biblioteca-carousel-arrow:disabled {
  opacity: 0;
  pointer-events: none;
}

.biblioteca-video-works-shelf .biblioteca-carousel-arrow {
  z-index: 320;
}

.biblioteca-video-hover-carousel-controls {
  position: fixed;
  z-index: 9999;
  inset: 0;
  pointer-events: none;
}

.biblioteca-video-hover-carousel-controls .biblioteca-carousel-arrow.is-video-hover-overlay {
  position: fixed;
  z-index: 9999;
  top: var(--biblioteca-carousel-control-top);
  right: auto;
  bottom: auto;
  left: var(--biblioteca-carousel-control-left);
  width: var(--biblioteca-carousel-control-width);
  height: var(--biblioteca-carousel-control-height);
  opacity: 0.94;
  pointer-events: auto;
}

.document-cover-row.can-scroll-right {
  -webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 3.2rem), transparent 100%);
  mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 3.2rem), transparent 100%);
}

.document-cover-row.can-scroll-left {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 3.2rem, #000 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 3.2rem, #000 100%);
}

.document-cover-row.can-scroll-left.can-scroll-right {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 3.2rem, #000 calc(100% - 3.2rem), transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 3.2rem, #000 calc(100% - 3.2rem), transparent 100%);
}

.doc-cover-button {
  flex: 0 0 var(--library-cover-width);
  width: var(--library-cover-width);
  height: var(--library-cover-height);
  min-width: var(--library-cover-width);
  min-height: var(--library-cover-height);
  max-width: var(--library-cover-width);
  max-height: var(--library-cover-height);
  padding: 0;
  border: 0;
  border-radius: var(--radius);
  background: transparent;
  cursor: pointer;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

.doc-cover-button.is-compact {
  flex-basis: clamp(7.4rem, 10vw, 9.5rem);
  width: clamp(7.4rem, 10vw, 9.5rem);
  height: calc(clamp(7.4rem, 10vw, 9.5rem) * 1.5);
  min-width: clamp(7.4rem, 10vw, 9.5rem);
  min-height: calc(clamp(7.4rem, 10vw, 9.5rem) * 1.5);
}

.doc-cover-art {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 2 / 3;
  overflow: hidden;
  border: 1px solid rgba(126, 157, 187, 0.18);
  border-radius: var(--radius);
  background:
    linear-gradient(145deg, rgba(16, 40, 67, 0.92), rgba(4, 12, 26, 0.98)),
    #071223;
  box-shadow: 0 18px 46px rgba(0, 0, 0, 0.34);
  transform-origin: center;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.documents-page .document-cover-row > .doc-cover-button:not(.is-compact) {
  flex: 0 0 var(--library-cover-width) !important;
  width: var(--library-cover-width) !important;
  height: var(--library-cover-height) !important;
  min-width: var(--library-cover-width) !important;
  min-height: var(--library-cover-height) !important;
  max-width: var(--library-cover-width) !important;
  max-height: var(--library-cover-height) !important;
}

.documents-page .document-cover-row > .biblioteca-presentation-card-wrap:not(.is-compact) {
  position: relative;
  flex: 0 0 var(--library-cover-width) !important;
  width: var(--library-cover-width) !important;
  height: var(--library-cover-height) !important;
  min-width: var(--library-cover-width) !important;
  min-height: var(--library-cover-height) !important;
  max-width: var(--library-cover-width) !important;
  max-height: var(--library-cover-height) !important;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

.biblioteca-presentation-card-wrap.is-compact {
  position: relative;
  flex: 0 0 clamp(7.4rem, 10vw, 9.5rem);
  width: clamp(7.4rem, 10vw, 9.5rem);
  height: calc(clamp(7.4rem, 10vw, 9.5rem) * 1.5);
  min-width: clamp(7.4rem, 10vw, 9.5rem);
  min-height: calc(clamp(7.4rem, 10vw, 9.5rem) * 1.5);
}

.biblioteca-presentation-card-wrap > .doc-cover-button {
  width: 100%;
  height: 100%;
  min-width: 100%;
  min-height: 100%;
}

.documents-page .document-cover-row > .doc-cover-button:not(.is-compact) > .doc-cover-art {
  width: 100% !important;
  height: 100% !important;
  min-width: 100%;
  min-height: 100%;
  max-width: 100%;
  max-height: 100%;
}

.doc-cover-button[data-personal-collection-item-context] {
  -webkit-touch-callout: none;
  touch-action: manipulation;
}

.doc-cover-art img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: var(--presentation-position, center center);
  transform: scale(var(--presentation-zoom, 1));
}

.doc-cover-pdf-preview {
  width: calc(100% + 2.5rem);
  height: 100%;
  display: block;
  margin-right: -2.5rem;
  border: 0;
  background: rgba(255, 255, 255, 0.94);
  pointer-events: none;
}

.biblioteca-file-visual {
  width: 100%;
  height: 100%;
  min-height: 9rem;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 0.85rem;
  padding: 1rem;
  color: rgba(238, 247, 255, 0.92);
  background:
    linear-gradient(145deg, rgba(18, 45, 76, 0.94), rgba(4, 12, 25, 0.98)),
    #071223;
  text-align: center;
}

.biblioteca-file-visual.is-pdf {
  background:
    linear-gradient(145deg, rgba(92, 30, 30, 0.92), rgba(18, 8, 12, 0.98)),
    #16070b;
}

.biblioteca-file-visual.is-audio {
  background:
    linear-gradient(145deg, rgba(29, 74, 88, 0.92), rgba(4, 17, 25, 0.98)),
    #071923;
}

.biblioteca-file-visual.is-sheet {
  background:
    linear-gradient(145deg, rgba(27, 86, 55, 0.92), rgba(4, 20, 14, 0.98)),
    #071b12;
}

.biblioteca-file-visual.is-detail {
  min-height: 13rem;
  border: 1px solid rgba(126, 157, 187, 0.18);
  border-radius: var(--radius);
  box-shadow: 0 18px 46px rgba(0, 0, 0, 0.26);
}

.biblioteca-file-visual > span:last-child {
  width: 100%;
  max-width: 18rem;
  overflow-wrap: anywhere;
  font-size: 0.84rem;
  font-weight: 760;
  line-height: 1.22;
}

.biblioteca-file-mark {
  display: grid;
  place-items: center;
  width: 4.3rem;
  height: 5.5rem;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 0.48rem;
  color: rgba(255, 255, 255, 0.94);
  background: rgba(255, 255, 255, 0.08);
  font-size: 1rem;
  font-weight: 850;
  letter-spacing: 0.06em;
}

.biblioteca-audio-wave {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.28rem;
  min-height: 4.8rem;
}

.biblioteca-audio-wave i {
  width: 0.36rem;
  border-radius: 999px;
  background: rgba(223, 246, 255, 0.88);
  box-shadow: 0 0 18px rgba(118, 221, 245, 0.28);
}

.biblioteca-audio-wave i:nth-child(1),
.biblioteca-audio-wave i:nth-child(5) {
  height: 1.5rem;
}

.biblioteca-audio-wave i:nth-child(2),
.biblioteca-audio-wave i:nth-child(4) {
  height: 2.8rem;
}

.biblioteca-audio-wave i:nth-child(3) {
  height: 4.4rem;
}

.biblioteca-sheet-grid {
  width: 5.2rem;
  height: 4.8rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.22rem;
  padding: 0.4rem;
  border: 1px solid rgba(217, 252, 228, 0.22);
  border-radius: 0.55rem;
  background: rgba(255, 255, 255, 0.08);
}

.biblioteca-sheet-grid i {
  border-radius: 0.16rem;
  background: rgba(219, 255, 230, 0.82);
}

.doc-cover-button:hover .doc-cover-art {
  transform: scale(1.035);
  border-color: rgba(72, 162, 220, 0.48);
  box-shadow:
    0 0 0 1px rgba(35, 135, 201, 0.22),
    0 0 28px rgba(35, 135, 201, 0.22),
    0 28px 70px rgba(0, 0, 0, 0.52);
}

.doc-cover-art.is-missing::after {
  content: "Portada no disponible";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 1rem;
  color: rgba(223, 234, 245, 0.78);
  font-size: 0.82rem;
  line-height: 1.35;
  text-align: center;
}

.document-empty-shelf {
  min-width: 10rem;
  min-height: 7rem;
  display: grid;
  place-items: center;
  padding: 1rem;
  border: 1px dashed rgba(126, 157, 187, 0.22);
  border-radius: var(--radius);
  color: rgba(183, 201, 218, 0.52);
  background: rgba(7, 18, 35, 0.42);
  font-size: 0.84rem;
}

.document-detail-page {
  display: grid;
  gap: 1rem;
}

.app-shell.is-documents-immersive .document-detail-page,
.app-shell.is-documents-immersive .document-collection-page {
  padding-top: clamp(4.35rem, 7vh, 5.4rem);
}

.document-detail-page > .biblioteca-shell,
.document-collection-page > .biblioteca-shell {
  display: contents;
}

.biblioteca-document-topbar {
  position: fixed;
  z-index: 44;
  top: 0.66rem;
  left: calc(max(0.9rem, env(safe-area-inset-left)) + 3.45rem);
  right: clamp(0.9rem, 2vw, 1.5rem);
  min-height: 3.08rem;
  display: flex;
  align-items: center;
  gap: 0.68rem;
  color: rgba(224, 239, 252, 0.76);
  pointer-events: none;
  transition: left 240ms ease, opacity 180ms ease;
}

.documents-page.is-biblioteca-sidebar-open .biblioteca-document-topbar {
  left: calc(min(18rem, 84vw) + 0.65rem);
}

.biblioteca-document-back {
  width: 3.08rem;
  height: 3.08rem;
  min-width: 3.08rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  color: rgba(226, 241, 253, 0.86);
  background: transparent;
  cursor: pointer;
  pointer-events: auto;
  transition: color 160ms ease, opacity 160ms ease, transform 160ms ease;
}

.biblioteca-document-back:hover,
.biblioteca-document-back:focus-visible {
  color: rgba(255, 255, 255, 0.98);
  transform: translateX(-0.08rem);
}

.biblioteca-document-back svg {
  width: 1.62rem;
  height: 1.62rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-document-location,
.biblioteca-document-current {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  letter-spacing: 0;
}

.biblioteca-document-location {
  flex: 0 0 auto;
  color: rgba(229, 243, 255, 0.82);
  font-size: 0.88rem;
  font-weight: 660;
}

.biblioteca-document-current {
  color: rgba(181, 207, 229, 0.62);
  font-size: 0.84rem;
  font-weight: 560;
}

.biblioteca-document-separator {
  width: 1px;
  height: 1.2rem;
  flex: 0 0 auto;
  background: linear-gradient(180deg, transparent, rgba(219, 239, 255, 0.35), transparent);
}

.document-back-button,
.reader-close {
  width: max-content;
  max-width: 100%;
  min-height: 2.35rem;
  padding: 0.5rem 0.8rem;
  border: 1px solid rgba(126, 157, 187, 0.24);
  border-radius: var(--radius);
  color: rgba(234, 244, 255, 0.86);
  background: rgba(7, 18, 35, 0.72);
  font-size: 0.84rem;
  line-height: 1.1;
  transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
}

.document-back-button:hover,
.reader-close:hover {
  transform: translateY(-1px);
  border-color: rgba(72, 162, 220, 0.44);
  background: rgba(16, 38, 68, 0.92);
}

.document-detail-stage {
  min-height: min(62vh, 42rem);
  display: grid;
  grid-template-columns: minmax(12rem, 0.28fr) minmax(0, 1fr);
  gap: clamp(1rem, 2vw, 1.4rem);
  align-items: stretch;
}

.document-detail-left {
  display: grid;
  align-content: start;
  justify-items: center;
  gap: 0.9rem;
}

.doc-cover-art.is-large {
  width: min(100%, 18rem);
}

.document-action-bar {
  display: flex;
  justify-content: center;
  gap: 0.55rem;
}

.document-action-menu {
  position: relative;
  display: inline-flex;
  justify-self: start;
  justify-content: flex-start;
}

.document-action-menu .collection-item-more {
  position: static;
}

.document-action-menu .collection-item-menu {
  bottom: calc(100% + 0.45rem);
}

.doc-icon-action {
  position: relative;
  display: grid;
  place-items: center;
  width: 2.45rem;
  height: 2.45rem;
  border: 1px solid rgba(126, 157, 187, 0.24);
  border-radius: 999px;
  color: rgba(234, 244, 255, 0.84);
  background: rgba(7, 18, 35, 0.72);
  font-size: 1rem;
  text-decoration: none;
  transition: transform 160ms ease, color 160ms ease, border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.doc-icon-action:hover,
.doc-icon-action.is-active {
  transform: translateY(-1px);
  color: #ffffff;
  border-color: rgba(72, 162, 220, 0.5);
  background: rgba(35, 135, 201, 0.18);
  box-shadow: 0 0 22px rgba(35, 135, 201, 0.18);
}

.doc-icon-action:disabled {
  color: rgba(178, 195, 211, 0.38);
  background: rgba(7, 18, 35, 0.42);
}

.biblioteca-knowledge-entry {
  width: min(100%, 18rem);
  display: grid;
  gap: 0.14rem;
  padding: 0.74rem 0.9rem;
  border: 1px solid rgba(126, 198, 245, 0.22);
  border-radius: 0.72rem;
  color: rgba(237, 247, 255, 0.9);
  background:
    linear-gradient(135deg, rgba(20, 66, 104, 0.34), rgba(5, 17, 32, 0.7)),
    rgba(7, 18, 35, 0.62);
  text-align: left;
  cursor: pointer;
  transition: transform 180ms ease, border-color 180ms ease, background 180ms ease;
}

.biblioteca-knowledge-entry span {
  font-size: 0.86rem;
  font-weight: 680;
}

.biblioteca-knowledge-entry small {
  color: rgba(181, 210, 232, 0.62);
  font-size: 0.72rem;
  font-weight: 560;
}

.biblioteca-knowledge-entry:hover,
.biblioteca-knowledge-entry:focus-visible {
  transform: translateY(-0.06rem);
  border-color: rgba(126, 198, 245, 0.36);
  background:
    linear-gradient(135deg, rgba(24, 78, 121, 0.44), rgba(5, 17, 32, 0.76)),
    rgba(7, 18, 35, 0.7);
}

.biblioteca-knowledge-choice-panel {
  min-height: inherit;
  height: 100%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(0.8rem, 1.4vw, 1rem);
  padding: clamp(0.75rem, 1.4vw, 1rem);
}

.biblioteca-knowledge-choice-card {
  position: relative;
  min-height: 30rem;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgba(126, 157, 187, 0.14);
  border-radius: calc(var(--radius) - 0.18rem);
  background:
    linear-gradient(160deg, rgba(16, 43, 72, 0.34), rgba(2, 8, 18, 0.88)),
    rgba(4, 14, 29, 0.72);
}

.biblioteca-knowledge-choice-action {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 0.18rem;
  padding: clamp(0.9rem, 1.7vw, 1.25rem);
  border: 0;
  color: rgba(242, 248, 255, 0.94);
  background: linear-gradient(180deg, rgba(1, 8, 18, 0.82), rgba(1, 8, 18, 0.32));
  text-align: left;
  cursor: pointer;
}

.biblioteca-knowledge-choice-action span {
  font-size: clamp(1.15rem, 2.1vw, 1.65rem);
  font-weight: 680;
  line-height: 1;
}

.biblioteca-knowledge-choice-action small {
  color: rgba(188, 214, 232, 0.7);
  font-size: 0.82rem;
}

.biblioteca-knowledge-choice-preview {
  position: relative;
  min-height: 0;
  overflow: hidden;
}

.biblioteca-knowledge-choice-preview .doc-pdf-object,
.biblioteca-knowledge-choice-preview .doc-preview-empty {
  height: 100%;
  min-height: 0;
  pointer-events: none;
}

.biblioteca-knowledge-choice-card:hover,
.biblioteca-knowledge-choice-card:focus-within {
  border-color: rgba(126, 198, 245, 0.34);
  transform: translateY(-0.08rem);
  transition: transform 180ms ease, border-color 180ms ease;
}

.biblioteca-knowledge-choice-map {
  height: 100%;
  display: grid;
  align-content: center;
  justify-items: start;
  gap: 0.72rem;
  padding: clamp(1.2rem, 2.4vw, 2rem);
  background:
    radial-gradient(circle at 82% 16%, rgba(105, 186, 236, 0.16), transparent 18rem),
    linear-gradient(150deg, rgba(7, 30, 56, 0.72), rgba(2, 8, 18, 0.95));
}

.biblioteca-knowledge-choice-map strong {
  color: rgba(240, 248, 255, 0.94);
  font-size: clamp(1.45rem, 3vw, 2.4rem);
  font-weight: 650;
}

.biblioteca-knowledge-choice-map span {
  min-width: min(100%, 16rem);
  padding: 0.62rem 0.78rem;
  border: 1px solid rgba(126, 157, 187, 0.14);
  border-radius: 999px;
  color: rgba(203, 225, 240, 0.78);
  background: rgba(2, 10, 22, 0.38);
  font-size: 0.88rem;
}

.biblioteca-knowledge-page {
  display: grid;
  gap: clamp(0.58rem, 1vw, 0.82rem);
  padding-bottom: clamp(4.5rem, 8vw, 7rem);
}

.biblioteca-knowledge-topbar {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 1rem;
  padding-right: clamp(7.6rem, 12vw, 9rem);
}

.app-shell.is-documents-immersive.has-pending-users-access .biblioteca-knowledge-topbar {
  padding-right: clamp(10.3rem, 15vw, 12rem);
}

.biblioteca-knowledge-back {
  min-height: 2.18rem;
  padding: 0 0.72rem;
  border-radius: 999px;
  font-size: 0.84rem;
}

.biblioteca-knowledge-topbar .biblioteca-knowledge-search {
  width: min(100%, 34rem);
  margin: 0 0 0 auto;
  margin-bottom: 0;
}

.biblioteca-knowledge-pdf {
  min-height: 2.35rem;
  padding: 0.5rem 0.85rem;
  border: 1px solid rgba(126, 157, 187, 0.2);
  border-radius: var(--radius);
  color: rgba(234, 244, 255, 0.84);
  background: rgba(7, 18, 35, 0.64);
  font-size: 0.84rem;
  font-weight: 660;
  cursor: pointer;
  transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
}

.biblioteca-knowledge-pdf:hover,
.biblioteca-knowledge-pdf:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(72, 162, 220, 0.44);
  background: rgba(16, 38, 68, 0.86);
}

.biblioteca-knowledge-side h3,
.biblioteca-knowledge-section-head span,
.biblioteca-knowledge-node-card span,
.biblioteca-knowledge-node-detail header span {
  margin: 0;
  color: rgba(135, 195, 234, 0.72);
  font-size: 0.68rem;
  font-weight: 720;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.biblioteca-knowledge-side p,
.biblioteca-knowledge-node-placeholder p,
.biblioteca-knowledge-empty-path span {
  color: rgba(184, 207, 225, 0.72);
  font-size: 0.9rem;
  line-height: 1.55;
}

.biblioteca-knowledge-start {
  display: grid;
  gap: clamp(1rem, 2vw, 1.4rem);
  padding: clamp(1rem, 2vw, 1.4rem) 0;
}

.biblioteca-knowledge-start h3 {
  max-width: 46rem;
  margin: 0;
  color: rgba(241, 248, 255, 0.94);
  font-size: clamp(1.7rem, 4vw, 3.3rem);
  font-weight: 650;
  line-height: 1.05;
}

.biblioteca-knowledge-perspectives {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.74rem;
}

.biblioteca-knowledge-perspective-card {
  min-height: 10rem;
  display: grid;
  align-content: end;
  gap: 0.42rem;
  padding: 1rem;
  border: 1px solid rgba(126, 157, 187, 0.13);
  border-radius: 0.78rem;
  color: rgba(234, 244, 255, 0.86);
  background:
    linear-gradient(160deg, rgba(20, 53, 86, 0.42), rgba(5, 17, 32, 0.74)),
    rgba(7, 18, 35, 0.54);
  text-align: left;
  cursor: pointer;
  transition: transform 220ms cubic-bezier(0.16, 1, 0.3, 1), border-color 180ms ease, background 220ms ease;
}

.biblioteca-knowledge-perspective-card:hover,
.biblioteca-knowledge-perspective-card:focus-visible {
  transform: translateY(-0.18rem);
  border-color: rgba(126, 198, 245, 0.3);
  background:
    linear-gradient(160deg, rgba(27, 72, 111, 0.5), rgba(5, 17, 32, 0.82)),
    rgba(7, 18, 35, 0.64);
}

.biblioteca-knowledge-perspective-card span {
  color: rgba(241, 248, 255, 0.94);
  font-size: 1rem;
  font-weight: 700;
}

.biblioteca-knowledge-perspective-card small {
  color: rgba(184, 207, 225, 0.66);
  font-size: 0.78rem;
  line-height: 1.38;
}

.biblioteca-knowledge-workspace {
  display: grid;
  grid-template-columns: minmax(13rem, 18rem) minmax(0, 1fr);
  gap: clamp(0.72rem, 1.3vw, 1rem);
  align-items: start;
}

.biblioteca-knowledge-workspace.has-collapsed-index {
  grid-template-columns: 3.2rem minmax(0, 1fr);
}

.biblioteca-knowledge-node-list,
.biblioteca-knowledge-node-panel {
  min-width: 0;
  border: 1px solid rgba(126, 157, 187, 0.12);
  border-radius: 0.82rem;
  background: rgba(3, 13, 27, 0.48);
}

.biblioteca-knowledge-workbench {
  display: grid;
  gap: clamp(0.58rem, 1vw, 0.82rem);
}

.biblioteca-knowledge-contextbar {
  display: flex;
  align-items: center;
  gap: clamp(0.72rem, 1.4vw, 1.1rem);
  min-width: 0;
}

.biblioteca-knowledge-side {
  display: grid;
  align-content: start;
  gap: 0.95rem;
  padding: 0.2rem 0.45rem 0.2rem 0;
  border-color: transparent;
  background: transparent;
}

.biblioteca-knowledge-side h3 {
  color: rgba(241, 248, 255, 0.9);
  font-size: 1.05rem;
  letter-spacing: 0;
  text-transform: none;
}

.biblioteca-knowledge-perspective-menu {
  position: relative;
  flex: 0 0 auto;
}

.biblioteca-knowledge-perspective-menu summary {
  min-height: 2rem;
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  padding: 0 0.68rem;
  border: 1px solid rgba(126, 157, 187, 0.12);
  border-radius: 999px;
  color: rgba(205, 226, 240, 0.72);
  background: rgba(4, 16, 31, 0.42);
  font-size: 0.78rem;
  font-weight: 640;
  cursor: pointer;
  list-style: none;
}

.biblioteca-knowledge-perspective-menu summary::-webkit-details-marker {
  display: none;
}

.biblioteca-knowledge-perspective-menu summary i {
  color: rgba(151, 184, 207, 0.62);
  font-style: normal;
  transition: transform 160ms ease;
}

.biblioteca-knowledge-perspective-menu[open] summary i {
  transform: rotate(180deg);
}

.biblioteca-knowledge-perspective-menu summary:hover,
.biblioteca-knowledge-perspective-menu summary:focus-visible {
  color: rgba(241, 248, 255, 0.92);
  border-color: rgba(126, 198, 245, 0.24);
}

.biblioteca-knowledge-perspective-menu-list {
  position: absolute;
  top: calc(100% + 0.42rem);
  left: 0;
  z-index: 18;
  min-width: 12.5rem;
  display: grid;
  gap: 0.2rem;
  padding: 0.42rem;
  border: 1px solid rgba(126, 157, 187, 0.14);
  border-radius: 0.7rem;
  background: rgba(3, 13, 27, 0.96);
  box-shadow: 0 24px 50px rgba(0, 0, 0, 0.32);
}

.biblioteca-knowledge-perspective-menu-list button {
  min-height: 2rem;
  width: 100%;
  padding: 0 0.2rem;
  border: 0;
  color: rgba(184, 207, 225, 0.68);
  background: transparent;
  font-size: 0.82rem;
  font-weight: 640;
  text-align: left;
  cursor: pointer;
  transition: color 160ms ease, transform 160ms ease;
}

.biblioteca-knowledge-perspective-menu-list button:hover,
.biblioteca-knowledge-perspective-menu-list button:focus-visible,
.biblioteca-knowledge-perspective-menu-list button.is-active {
  color: rgba(240, 248, 255, 0.9);
  transform: translateX(0.12rem);
}

.biblioteca-knowledge-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.42rem;
  margin-bottom: 0.28rem;
}

.biblioteca-knowledge-search input,
.biblioteca-knowledge-edit-form input,
.biblioteca-knowledge-edit-form textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid rgba(126, 157, 187, 0.14);
  border-radius: 0.58rem;
  color: rgba(236, 245, 252, 0.9);
  background: rgba(2, 10, 22, 0.42);
  outline: none;
}

.biblioteca-knowledge-search input {
  min-height: 2.68rem;
  padding: 0 0.72rem;
}

.biblioteca-knowledge-search button,
.biblioteca-knowledge-edit-actions button,
.biblioteca-knowledge-edit-button {
  border: 1px solid rgba(126, 157, 187, 0.13);
  border-radius: 999px;
  color: rgba(224, 240, 250, 0.82);
  background: rgba(12, 38, 64, 0.46);
  cursor: pointer;
}

.biblioteca-knowledge-search button {
  min-height: 2.24rem;
  padding: 0 0.7rem;
}

.biblioteca-knowledge-node-card {
  min-width: 0;
  display: grid;
  gap: 0.1rem;
  padding: 0.46rem 0.5rem;
  border: 0;
  border-left: 2px solid transparent;
  border-radius: 0.38rem;
  color: rgba(230, 240, 249, 0.82);
  background: transparent;
  text-align: left;
  cursor: pointer;
  transition: transform 180ms ease, border-color 180ms ease, background 180ms ease;
}

.biblioteca-knowledge-node-card {
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
}

.biblioteca-knowledge-node-card-main {
  min-width: 0;
  display: grid;
  gap: 0.08rem;
  padding: 0;
  border: 0;
  color: inherit;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.biblioteca-knowledge-node-card-main em {
  overflow: hidden;
  color: rgba(184, 207, 225, 0.58);
  font-size: 0.72rem;
  font-style: normal;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.biblioteca-knowledge-node-order {
  display: grid;
  gap: 0.2rem;
}

.biblioteca-knowledge-node-order button {
  width: 1.65rem;
  height: 1.45rem;
  border: 1px solid rgba(126, 157, 187, 0.12);
  border-radius: 999px;
  color: rgba(205, 229, 245, 0.72);
  background: rgba(2, 10, 22, 0.26);
  cursor: pointer;
}

.biblioteca-knowledge-inline-title-form {
  min-width: 0;
  display: grid;
}

.biblioteca-knowledge-inline-title-form input {
  width: 100%;
  min-width: 0;
  min-height: 2rem;
  padding: 0.2rem 0.38rem;
  border: 1px solid rgba(126, 198, 245, 0.28);
  border-radius: 0.38rem;
  color: rgba(241, 248, 255, 0.94);
  background: rgba(2, 10, 22, 0.72);
  font-size: 0.9rem;
  font-weight: 680;
  outline: none;
}

.biblioteca-knowledge-context-menu {
  position: fixed;
  z-index: 260;
  min-width: 13rem;
  display: grid;
  gap: 0.16rem;
  padding: 0.36rem;
  border: 1px solid rgba(126, 157, 187, 0.16);
  border-radius: 0.58rem;
  background: rgba(3, 13, 27, 0.96);
  box-shadow: 0 22px 54px rgba(0, 0, 0, 0.34);
  backdrop-filter: blur(18px);
}

.biblioteca-knowledge-context-menu button {
  min-height: 2rem;
  padding: 0 0.5rem;
  border: 0;
  border-radius: 0.42rem;
  color: rgba(224, 240, 250, 0.82);
  background: transparent;
  font-size: 0.8rem;
  font-weight: 640;
  text-align: left;
  cursor: pointer;
  transition: color 160ms ease, background 160ms ease, transform 160ms ease;
}

.biblioteca-knowledge-context-menu button:hover,
.biblioteca-knowledge-context-menu button:focus-visible {
  color: rgba(241, 248, 255, 0.96);
  background: rgba(22, 63, 96, 0.42);
  transform: translateX(0.1rem);
}

.biblioteca-knowledge-node-card.is-dragging {
  opacity: 0.48;
}

.biblioteca-knowledge-node-card.is-drop-target {
  border-color: rgba(146, 213, 255, 0.48);
  box-shadow: 0 0 0 1px rgba(146, 213, 255, 0.12);
}

.biblioteca-knowledge-node-card.is-active,
.biblioteca-knowledge-node-card:hover {
  transform: translateX(0.06rem);
  border-color: rgba(126, 198, 245, 0.26);
  background: rgba(13, 42, 70, 0.42);
}

.biblioteca-knowledge-node-list {
  display: grid;
  align-content: start;
  gap: 0.18rem;
  padding: 0.62rem;
  max-height: min(76vh, 48rem);
  overflow: auto;
  scrollbar-width: none;
  transition: width 220ms ease, padding 220ms ease, opacity 180ms ease;
}

.biblioteca-knowledge-node-list::-webkit-scrollbar {
  display: none;
}

.biblioteca-knowledge-index-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.34rem;
  padding: 0 0.12rem 0.32rem;
  border-bottom: 1px solid rgba(126, 157, 187, 0.08);
}

.biblioteca-knowledge-index-head span {
  color: rgba(151, 184, 207, 0.66);
  font-size: 0.68rem;
  font-weight: 720;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.biblioteca-knowledge-index-head button {
  width: 1.72rem;
  height: 1.72rem;
  border: 0;
  border-radius: 999px;
  color: rgba(205, 229, 245, 0.72);
  background: transparent;
  cursor: pointer;
}

.biblioteca-knowledge-query-label {
  overflow: hidden;
  margin: 0 0 0.28rem;
  padding: 0 0.12rem;
  color: rgba(184, 207, 225, 0.58);
  font-size: 0.76rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.biblioteca-knowledge-node-list.is-collapsed {
  width: 3.2rem;
  padding: 0.62rem 0.36rem;
  overflow: hidden;
}

.biblioteca-knowledge-node-list.is-collapsed .biblioteca-knowledge-index-head span,
.biblioteca-knowledge-node-list.is-collapsed .biblioteca-knowledge-query-label,
.biblioteca-knowledge-node-list.is-collapsed .biblioteca-knowledge-node-card-main strong,
.biblioteca-knowledge-node-list.is-collapsed .biblioteca-knowledge-node-card-main small,
.biblioteca-knowledge-node-list.is-collapsed .biblioteca-knowledge-node-order {
  display: none;
}

.biblioteca-knowledge-node-list.is-collapsed .biblioteca-knowledge-index-head {
  justify-content: center;
  padding: 0;
  border-bottom: 0;
}

.biblioteca-knowledge-node-list.is-collapsed .biblioteca-knowledge-node-card {
  min-height: 1.9rem;
  padding: 0;
  border-left: 0;
  border-radius: 999px;
  background: rgba(126, 198, 245, 0.12);
}

.biblioteca-knowledge-option-tabs {
  display: flex;
  align-items: flex-end;
  gap: 0.28rem;
  flex: 1 1 auto;
  min-width: 0;
  overflow-x: auto;
  padding: 0 0.1rem 0.28rem;
  border-bottom: 1px solid rgba(126, 157, 187, 0.1);
  scrollbar-width: none;
}

.biblioteca-knowledge-option-tabs::-webkit-scrollbar {
  display: none;
}

.biblioteca-knowledge-option-tabs button {
  position: relative;
  min-height: 2rem;
  flex: 0 0 auto;
  padding: 0 0.74rem;
  border: 0;
  color: rgba(184, 207, 225, 0.7);
  background: transparent;
  font-size: 0.84rem;
  font-weight: 650;
  cursor: pointer;
  transition: color 160ms ease, background 160ms ease;
}

.biblioteca-knowledge-option-tabs button::after {
  content: "";
  position: absolute;
  right: 0.58rem;
  bottom: -0.43rem;
  left: 0.58rem;
  height: 2px;
  border-radius: 999px;
  background: transparent;
  transition: background 160ms ease;
}

.biblioteca-knowledge-option-tabs button:hover,
.biblioteca-knowledge-option-tabs button:focus-visible,
.biblioteca-knowledge-option-tabs button.is-active {
  color: rgba(241, 248, 255, 0.94);
}

.biblioteca-knowledge-option-tabs button.is-active::after {
  background: rgba(126, 198, 245, 0.76);
}

.biblioteca-knowledge-option-tabs small {
  margin-left: 0.32rem;
  color: rgba(168, 198, 220, 0.54);
  font-size: 0.68rem;
}

.biblioteca-knowledge-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.7rem;
  padding: 0.2rem 0.1rem 0.35rem;
}

.biblioteca-knowledge-section-head strong {
  color: rgba(184, 207, 225, 0.64);
  font-size: 0.76rem;
  font-weight: 640;
}

.biblioteca-knowledge-node-card strong {
  overflow: hidden;
  color: rgba(241, 248, 255, 0.92);
  font-size: 0.9rem;
  font-weight: 680;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.biblioteca-knowledge-node-card small {
  color: rgba(184, 207, 225, 0.62);
  font-size: 0.72rem;
}

.biblioteca-knowledge-node-panel {
  min-height: min(66vh, 42rem);
  padding: clamp(0.9rem, 1.8vw, 1.2rem);
}

.biblioteca-knowledge-node-placeholder,
.biblioteca-knowledge-empty-path {
  display: grid;
  gap: 0.55rem;
  padding: 1rem;
  border: 1px dashed rgba(126, 157, 187, 0.16);
  border-radius: 0.72rem;
  background: rgba(2, 8, 18, 0.34);
}

.biblioteca-knowledge-node-placeholder span,
.biblioteca-knowledge-empty-path strong {
  color: rgba(241, 248, 255, 0.9);
  font-weight: 680;
}

.biblioteca-knowledge-node-detail {
  display: grid;
  gap: 1rem;
}

.biblioteca-knowledge-node-detail header {
  display: grid;
  gap: 0.28rem;
}

.biblioteca-knowledge-node-detail h3 {
  margin: 0;
  color: rgba(241, 248, 255, 0.96);
  font-size: clamp(1.35rem, 2.4vw, 2.2rem);
  font-weight: 650;
  line-height: 1.05;
}

.biblioteca-knowledge-node-detail header p {
  margin: 0;
  color: rgba(184, 207, 225, 0.68);
  font-size: 0.86rem;
}

.biblioteca-knowledge-node-detail header small {
  color: rgba(151, 184, 207, 0.64);
  line-height: 1.45;
}

.biblioteca-knowledge-subnode-list {
  display: grid;
  gap: 0.46rem;
  margin: 0;
  padding: 0.24rem 0 0;
  color: rgba(203, 223, 237, 0.72);
}

.biblioteca-knowledge-subnode-card {
  display: grid;
  gap: 0.24rem;
  padding: 0.58rem 0.64rem;
  border: 1px solid rgba(126, 157, 187, 0.1);
  border-radius: 0.56rem;
  background: rgba(2, 8, 18, 0.22);
}

.biblioteca-knowledge-subnode-card strong {
  color: rgba(232, 243, 252, 0.9);
  font-size: 0.84rem;
  font-weight: 680;
}

.biblioteca-knowledge-subnode-card p {
  margin: 0;
  color: rgba(184, 207, 225, 0.72);
  font-size: 0.82rem;
  line-height: 1.55;
}

.biblioteca-knowledge-edit-button {
  justify-self: start;
  min-height: 2rem;
  padding: 0 0.72rem;
}

.biblioteca-knowledge-edit-form label {
  display: grid;
  gap: 0.35rem;
}

.biblioteca-knowledge-edit-form input,
.biblioteca-knowledge-edit-form textarea {
  padding: 0.62rem 0.72rem;
  resize: vertical;
}

.biblioteca-knowledge-edit-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.62rem;
}

.biblioteca-knowledge-subnode-editor {
  display: grid;
  gap: 0.58rem;
}

.biblioteca-knowledge-subnode-editor-head {
  display: grid;
  gap: 0.16rem;
}

.biblioteca-knowledge-subnode-editor-head small {
  color: rgba(151, 184, 207, 0.72);
  font-size: 0.74rem;
  font-weight: 720;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.biblioteca-knowledge-subnode-editor-head span {
  color: rgba(184, 207, 225, 0.62);
  font-size: 0.78rem;
}

.biblioteca-knowledge-subnode-edit-card {
  display: grid;
  gap: 0.5rem;
  padding: 0.68rem;
  border: 1px solid rgba(126, 157, 187, 0.11);
  border-radius: 0.62rem;
  background: rgba(3, 13, 27, 0.34);
}

.biblioteca-knowledge-edit-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.biblioteca-knowledge-edit-actions button {
  min-height: 2.18rem;
  padding: 0 0.85rem;
}

.biblioteca-knowledge-field-stack {
  display: grid;
  gap: 0.48rem;
}

.biblioteca-knowledge-field {
  border: 1px solid rgba(126, 157, 187, 0.1);
  border-radius: 0.64rem;
  background: rgba(8, 25, 45, 0.28);
}

.biblioteca-knowledge-field summary {
  padding: 0.72rem 0.78rem;
  color: rgba(232, 243, 252, 0.86);
  font-size: 0.86rem;
  font-weight: 660;
  cursor: pointer;
}

.biblioteca-knowledge-field > p,
.biblioteca-knowledge-field > ul,
.biblioteca-knowledge-subfields,
.biblioteca-knowledge-relations {
  margin: 0;
  padding: 0 0.78rem 0.78rem;
}

.biblioteca-knowledge-field p,
.biblioteca-knowledge-field li {
  color: rgba(188, 211, 229, 0.72);
  font-size: 0.82rem;
  line-height: 1.55;
}

.biblioteca-knowledge-pending {
  font-style: italic;
}

.biblioteca-knowledge-future {
  color: rgba(203, 228, 245, 0.78) !important;
}

.biblioteca-knowledge-subfields {
  display: grid;
  gap: 0.58rem;
}

.biblioteca-knowledge-subfields > div,
.biblioteca-knowledge-subfields > label {
  display: grid;
  gap: 0.22rem;
  padding: 0.62rem;
  border-radius: 0.5rem;
  background: rgba(2, 8, 18, 0.26);
}

.biblioteca-knowledge-subfields strong {
  color: rgba(220, 237, 249, 0.78);
  font-size: 0.74rem;
  font-weight: 700;
}

.biblioteca-knowledge-relations {
  display: flex;
  flex-wrap: wrap;
  gap: 0.44rem;
}

.biblioteca-knowledge-relations button {
  padding: 0.42rem 0.6rem;
  border: 1px solid rgba(126, 198, 245, 0.18);
  border-radius: 999px;
  color: rgba(214, 236, 249, 0.86);
  background: rgba(16, 51, 82, 0.38);
  font-size: 0.76rem;
  cursor: pointer;
}

.biblioteca-knowledge-relations button:hover {
  border-color: rgba(126, 198, 245, 0.32);
  background: rgba(16, 51, 82, 0.58);
}

/* Manual Avanzado: composicion de estudio centrada en el bloque activo. */
.biblioteca-knowledge-page {
  --knowledge-study-zoom: 1.15;
  gap: clamp(0.42rem, 1vw, 0.82rem);
  height: 100vh;
  min-height: 0;
  padding: clamp(1rem, 2vw, 1.7rem) clamp(1rem, 2.8vw, 2.4rem) clamp(6.8rem, 10vw, 8.2rem);
  overflow: hidden;
  background:
    linear-gradient(145deg, rgba(6, 8, 14, 0.98) 0%, rgba(10, 13, 22, 0.98) 48%, rgba(7, 9, 16, 0.98) 100%);
}

.biblioteca-knowledge-page::before {
  opacity: 0.2;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255, 255, 255, 0.018) 1px, transparent 1px);
  background-size: 5rem 5rem;
}

.biblioteca-knowledge-topbar {
  position: fixed;
  z-index: 56;
  top: 0.58rem;
  left: calc(max(0.9rem, env(safe-area-inset-left)) + 0.12rem);
  right: clamp(0.9rem, 2vw, 1.4rem);
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 0.16rem;
  min-width: 0;
  pointer-events: none;
}

.app-shell.is-documents-immersive.has-pending-users-access .biblioteca-knowledge-topbar {
  right: clamp(4rem, 8vw, 7rem);
}

.biblioteca-knowledge-topbar > * {
  pointer-events: auto;
}

.biblioteca-knowledge-nav-icon {
  flex: 0 0 auto;
  width: 3.08rem;
  height: 3.08rem;
  min-height: 3.08rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: rgba(226, 241, 253, 0.78);
  background: transparent;
  cursor: pointer;
  transition: transform 160ms ease, color 160ms ease, opacity 160ms ease;
}

.biblioteca-knowledge-index-toggle {
  width: 3.28rem;
  height: 3.28rem;
  min-height: 3.28rem;
}

.biblioteca-knowledge-index-toggle span,
.biblioteca-knowledge-index-toggle svg {
  width: 1.88rem;
  height: 1.88rem;
}

.biblioteca-knowledge-nav-icon:hover,
.biblioteca-knowledge-nav-icon:focus-visible,
.biblioteca-knowledge-nav-icon.is-active {
  color: rgba(255, 255, 255, 0.98);
  opacity: 1;
}

.biblioteca-knowledge-nav-icon:hover,
.biblioteca-knowledge-nav-icon:focus-visible {
  transform: translateY(-1px);
}

.biblioteca-knowledge-nav-icon span {
  width: 1.62rem;
  height: 1.62rem;
  display: grid;
  place-items: center;
}

.biblioteca-knowledge-nav-icon svg {
  width: 1.62rem;
  height: 1.62rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-knowledge-location {
  min-width: 0;
  max-width: clamp(9rem, 24vw, 18rem);
  margin-left: 0.16rem;
  overflow: hidden;
  color: rgba(222, 232, 243, 0.72);
  font-size: 0.88rem;
  font-weight: 650;
  letter-spacing: 0;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.biblioteca-knowledge-current-node {
  min-width: 0;
  max-width: clamp(8rem, 22vw, 19rem);
  overflow: hidden;
  color: rgba(238, 244, 250, 0.86);
  font-size: 0.88rem;
  font-weight: 560;
  line-height: 1.2;
  opacity: 0;
  pointer-events: none;
  text-overflow: ellipsis;
  transform: translateX(-0.36rem);
  transition: opacity 260ms ease, transform 340ms cubic-bezier(0.16, 1, 0.3, 1);
  white-space: nowrap;
}

.biblioteca-knowledge-current-node::before {
  content: "/";
  margin: 0 0.48rem 0 0.26rem;
  color: rgba(180, 196, 216, 0.38);
}

.biblioteca-knowledge-page.is-node-title-docked .biblioteca-knowledge-current-node {
  opacity: 1;
  transform: translateX(0);
}

.biblioteca-knowledge-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.42rem;
  margin: 0;
}

.biblioteca-knowledge-search-dock {
  position: fixed;
  z-index: 54;
  left: 50%;
  right: auto;
  bottom: clamp(0.42rem, 1.1vh, 0.72rem);
  width: min(34rem, calc(100vw - 1.4rem));
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 0.42rem;
  opacity: 0.5;
  transform: translateX(-50%);
  transition:
    bottom 520ms cubic-bezier(0.16, 1, 0.3, 1),
    width 520ms cubic-bezier(0.16, 1, 0.3, 1),
    opacity 220ms ease,
    transform 520ms cubic-bezier(0.16, 1, 0.3, 1);
}

.biblioteca-knowledge-search-dock:hover,
.biblioteca-knowledge-search-dock:focus-within {
  opacity: 0.96;
  transform: translate(-50%, -0.04rem);
}

.biblioteca-knowledge-search-backdrop {
  position: fixed;
  z-index: 153;
  inset: 0;
  display: block;
  width: 100vw;
  height: 100dvh;
  padding: 0;
  border: 0;
  border-radius: 0;
  opacity: 0;
  pointer-events: none;
  background: rgba(1, 6, 13, 0.38);
  -webkit-backdrop-filter: blur(0);
  backdrop-filter: blur(0);
  transition: opacity 420ms ease, backdrop-filter 520ms ease, -webkit-backdrop-filter 520ms ease;
}

.biblioteca-knowledge-search-dock.is-search-focused,
.biblioteca-knowledge-search-dock.is-search-focused:hover,
.biblioteca-knowledge-search-dock.is-search-focused:focus-within {
  z-index: 154;
  bottom: 50%;
  width: min(48rem, calc(100vw - 2rem));
  opacity: 1;
  isolation: isolate;
  transform: translate(-50%, 50%);
}

.biblioteca-knowledge-search-backdrop.is-visible {
  opacity: 1;
  pointer-events: auto;
  -webkit-backdrop-filter: blur(15px) saturate(0.82);
  backdrop-filter: blur(15px) saturate(0.82);
}

.biblioteca-knowledge-search-dock.is-search-focused .biblioteca-knowledge-search,
.biblioteca-knowledge-search-dock.is-search-focused .biblioteca-knowledge-dock-filters {
  position: relative;
  z-index: 1;
}

.biblioteca-knowledge-search-dock.is-search-focused .biblioteca-knowledge-search.is-docked input {
  min-height: 3.5rem;
  padding-inline: 1.35rem;
  border-color: rgba(176, 196, 226, 0.2);
  color: rgba(242, 247, 252, 0.94);
  background: rgba(7, 11, 20, 0.88);
  box-shadow:
    0 1.8rem 5rem rgba(0, 0, 0, 0.32),
    inset 0 1px 0 rgba(255, 255, 255, 0.04);
  font-size: 1.04rem;
}

.biblioteca-knowledge-search-dock.is-search-focused .biblioteca-knowledge-dock-filters > summary {
  width: 3.5rem;
  min-height: 3.5rem;
  background: rgba(7, 11, 20, 0.88);
}

.biblioteca-knowledge-search-dock .biblioteca-knowledge-search {
  grid-template-columns: minmax(0, 1fr) auto;
  min-width: 0;
}

.biblioteca-knowledge-dock-filters {
  position: relative;
  align-self: start;
}

.biblioteca-knowledge-dock-filters > summary {
  width: 2.12rem;
  min-height: 2.12rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(185, 193, 209, 0.1);
  border-radius: 999px;
  color: rgba(232, 240, 248, 0.72);
  background: rgba(9, 11, 18, 0.58);
  box-shadow:
    0 0.8rem 2rem rgba(0, 0, 0, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.025);
  cursor: pointer;
  list-style: none;
  backdrop-filter: blur(18px);
  transition: color 160ms ease, border-color 160ms ease, background 160ms ease, transform 160ms ease;
}

.biblioteca-knowledge-dock-filters > summary::-webkit-details-marker {
  display: none;
}

.biblioteca-knowledge-dock-filters > summary:hover,
.biblioteca-knowledge-dock-filters > summary:focus-visible,
.biblioteca-knowledge-dock-filters[open] > summary {
  color: rgba(250, 252, 255, 0.94);
  border-color: rgba(190, 202, 220, 0.24);
  background: rgba(31, 35, 47, 0.72);
}

.biblioteca-knowledge-dock-filters > summary svg {
  width: 1.12rem;
  height: 1.12rem;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-knowledge-dock-filter-panel {
  position: absolute;
  right: 0;
  bottom: calc(100% + 0.52rem);
  z-index: 24;
  width: min(22rem, calc(100vw - 1.4rem));
  display: grid;
  gap: 0.74rem;
  padding: 0.74rem;
  border: 1px solid rgba(174, 186, 205, 0.14);
  border-radius: 8px;
  background: rgba(8, 10, 16, 0.94);
  box-shadow:
    0 1.4rem 3.2rem rgba(0, 0, 0, 0.34),
    inset 0 1px 0 rgba(255, 255, 255, 0.03);
  backdrop-filter: blur(18px);
}

.biblioteca-knowledge-dock-filter-panel .biblioteca-knowledge-perspective-menu {
  justify-self: stretch;
  min-width: 0;
}

.biblioteca-knowledge-dock-filter-panel .biblioteca-knowledge-perspective-menu summary {
  width: 100%;
  justify-content: space-between;
}

.biblioteca-knowledge-dock-filter-panel .biblioteca-knowledge-perspective-menu-list {
  z-index: 28;
}

.biblioteca-knowledge-dock-filter-options {
  display: grid;
  gap: 0.42rem;
}

.biblioteca-knowledge-dock-option-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.28rem;
}

.biblioteca-knowledge-dock-option-list.is-tiempo {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.biblioteca-knowledge-dock-option-list button {
  min-height: 2.1rem;
  padding: 0 0.62rem;
  border: 1px solid rgba(174, 186, 205, 0.1);
  border-radius: 999px;
  color: rgba(190, 204, 222, 0.72);
  background: rgba(15, 18, 27, 0.22);
  font-size: 0.82rem;
  font-weight: 650;
  cursor: pointer;
  transition: color 160ms ease, border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.biblioteca-knowledge-dock-option-list button:hover,
.biblioteca-knowledge-dock-option-list button:focus-visible {
  color: rgba(240, 245, 250, 0.92);
  background: rgba(33, 37, 50, 0.42);
}

.biblioteca-knowledge-dock-option-list button.is-active {
  border-color: rgba(174, 186, 205, 0.2);
  color: rgba(244, 248, 252, 0.94);
  background: rgba(38, 41, 54, 0.88);
  box-shadow: 0 0.7rem 1.8rem rgba(0, 0, 0, 0.16);
}

.biblioteca-knowledge-search input {
  min-height: 2.2rem;
  padding: 0 0.78rem;
  border-color: rgba(160, 176, 198, 0.13);
  border-radius: 999px;
  color: rgba(233, 239, 246, 0.86);
  background: rgba(22, 25, 35, 0.54);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

.biblioteca-knowledge-search.is-docked input {
  min-height: 2.12rem;
  border-color: rgba(185, 193, 209, 0.1);
  color: rgba(232, 240, 248, 0.74);
  background: rgba(9, 11, 18, 0.58);
  box-shadow:
    0 0.8rem 2rem rgba(0, 0, 0, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.025);
  backdrop-filter: blur(18px);
}

.biblioteca-knowledge-search input:focus {
  border-color: rgba(156, 183, 224, 0.32);
  background: rgba(29, 32, 43, 0.72);
  box-shadow: 0 0 0 3px rgba(120, 143, 190, 0.08);
}

.biblioteca-knowledge-search button,
.biblioteca-knowledge-edit-actions button,
.biblioteca-knowledge-edit-button {
  border-color: rgba(160, 176, 198, 0.16);
  color: rgba(226, 235, 244, 0.78);
  background: rgba(37, 42, 55, 0.64);
}

.biblioteca-knowledge-workbench {
  position: relative;
  z-index: 1;
  display: grid;
  gap: clamp(0.16rem, 0.5vw, 0.42rem);
  min-height: 0;
  padding-top: clamp(2.7rem, 3.8vw, 3.25rem);
}

.biblioteca-knowledge-contextbar {
  width: min(100%, 100rem);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: end;
  gap: clamp(0.7rem, 1.4vw, 1.1rem);
  margin: 0 auto;
  zoom: var(--knowledge-study-zoom);
}

.biblioteca-knowledge-contextbar.is-day-menu-centered {
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
}

.biblioteca-knowledge-contextbar.is-day-menu-centered .biblioteca-knowledge-perspective-menu {
  grid-column: 1;
  justify-self: start;
}

.biblioteca-knowledge-contextbar.is-day-menu-centered .biblioteca-knowledge-option-tabs {
  grid-column: 2;
  width: max-content;
  max-width: 100%;
  justify-self: center;
  flex: 0 1 auto;
}

.biblioteca-knowledge-contextbar.is-day-menu-centered .biblioteca-knowledge-day-index {
  grid-column: 2;
  justify-self: center;
}

.biblioteca-knowledge-contextbar.is-day-index-collapsed {
  align-items: center;
}

.biblioteca-knowledge-contextbar.is-perspective-only {
  grid-template-columns: auto;
  justify-content: start;
  align-items: center;
}

.biblioteca-knowledge-perspective-menu summary {
  min-height: 2.2rem;
  border-color: rgba(160, 176, 198, 0.12);
  color: rgba(202, 216, 232, 0.68);
  background: rgba(14, 17, 26, 0.34);
}

.biblioteca-knowledge-option-tabs {
  align-items: flex-end;
  gap: 0.16rem;
  padding: 0 0.2rem;
  border-bottom: 1px solid rgba(174, 186, 205, 0.16);
}

.biblioteca-knowledge-option-tabs button {
  min-height: 2.28rem;
  padding: 0 1rem;
  border: 1px solid transparent;
  border-bottom: 0;
  border-radius: 8px 8px 0 0;
  color: rgba(188, 203, 221, 0.72);
  background: rgba(15, 18, 27, 0.22);
  font-size: 0.86rem;
}

.biblioteca-knowledge-option-tabs button::after {
  display: none;
}

.biblioteca-knowledge-option-tabs button:hover,
.biblioteca-knowledge-option-tabs button:focus-visible {
  color: rgba(240, 245, 250, 0.92);
  background: rgba(33, 37, 50, 0.42);
}

.biblioteca-knowledge-option-tabs button.is-active {
  border-color: rgba(174, 186, 205, 0.18);
  color: rgba(244, 248, 252, 0.94);
  background: rgba(38, 41, 54, 0.88);
  box-shadow: 0 -0.6rem 1.8rem rgba(0, 0, 0, 0.16);
}

.biblioteca-knowledge-day-index {
  position: relative;
  display: grid;
  gap: 0.3rem;
  justify-items: center;
  min-width: min(100%, 8.5rem);
}

.biblioteca-knowledge-day-index-toggle {
  min-width: 7.6rem;
  min-height: 2.14rem;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.64rem;
  padding: 0 0.82rem;
  border: 1px solid rgba(174, 186, 205, 0.14);
  border-radius: 999px;
  color: rgba(230, 238, 248, 0.82);
  background: rgba(16, 19, 28, 0.46);
  font-size: 0.86rem;
  font-weight: 690;
  cursor: pointer;
  transition: color 160ms ease, border-color 160ms ease, background 160ms ease, transform 160ms ease;
}

.biblioteca-knowledge-day-index-toggle:hover,
.biblioteca-knowledge-day-index-toggle:focus-visible {
  color: rgba(244, 248, 252, 0.92);
  border-color: rgba(190, 202, 220, 0.24);
  background: rgba(31, 35, 47, 0.58);
  transform: translateY(-0.04rem);
}

.biblioteca-knowledge-day-index-toggle i {
  color: rgba(180, 196, 216, 0.62);
  font-style: normal;
  line-height: 1;
}

.biblioteca-knowledge-day-index-list {
  position: absolute;
  z-index: 18;
  top: calc(100% + 0.42rem);
  left: 50%;
  width: 8.8rem;
  display: grid;
  gap: 0.18rem;
  padding: 0.32rem;
  border: 1px solid rgba(174, 186, 205, 0.12);
  border-radius: 8px;
  background: rgba(8, 10, 16, 0.9);
  box-shadow:
    0 1.2rem 2.8rem rgba(0, 0, 0, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.025);
  transform: translateX(-50%);
}

.biblioteca-knowledge-day-index-list button {
  min-height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.48rem;
  padding: 0 0.72rem;
  border: 1px solid transparent;
  border-radius: 999px;
  color: rgba(190, 204, 222, 0.72);
  background: transparent;
  font-size: 0.84rem;
  font-weight: 650;
  cursor: pointer;
  transition: color 160ms ease, border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.biblioteca-knowledge-day-index-list button:hover,
.biblioteca-knowledge-day-index-list button:focus-visible {
  color: rgba(242, 247, 252, 0.92);
  background: rgba(36, 40, 52, 0.42);
}

.biblioteca-knowledge-day-index-list button.is-active {
  border-color: rgba(210, 220, 236, 0.18);
  color: rgba(249, 250, 252, 0.96);
  background: rgba(45, 49, 62, 0.84);
  box-shadow: 0 0.7rem 1.8rem rgba(0, 0, 0, 0.16);
}

.biblioteca-knowledge-day-index-list small {
  color: rgba(175, 191, 211, 0.58);
  font-size: 0.68rem;
  font-weight: 640;
}

.biblioteca-knowledge-topbar .biblioteca-knowledge-day-index {
  flex: 0 1 auto;
  min-width: 0;
  justify-items: start;
  margin-left: 0.62rem;
}

.biblioteca-knowledge-topbar .biblioteca-knowledge-day-index::before {
  content: "";
  position: absolute;
  left: -0.36rem;
  top: 50%;
  width: 1px;
  height: 1.1rem;
  background: rgba(194, 209, 226, 0.18);
  transform: translateY(-50%);
}

.biblioteca-knowledge-topbar .biblioteca-knowledge-day-index-toggle {
  min-width: auto;
  min-height: 2.16rem;
  justify-content: center;
  gap: 0.42rem;
  padding: 0 0.56rem;
  border-color: transparent;
  color: rgba(224, 234, 246, 0.74);
  background: transparent;
  box-shadow: none;
  font-size: 0.88rem;
}

.biblioteca-knowledge-topbar .biblioteca-knowledge-day-index-toggle:hover,
.biblioteca-knowledge-topbar .biblioteca-knowledge-day-index-toggle:focus-visible {
  color: rgba(250, 252, 255, 0.96);
  border-color: transparent;
  background: rgba(230, 241, 252, 0.06);
  transform: translateY(-1px);
}

.biblioteca-knowledge-topbar .biblioteca-knowledge-day-index-list {
  left: 0;
  transform: none;
}

.biblioteca-knowledge-topbar .biblioteca-knowledge-perspective-menu {
  flex: 0 0 auto;
  margin-left: 0.18rem;
}

.biblioteca-knowledge-topbar .biblioteca-knowledge-perspective-menu summary {
  min-height: 2.16rem;
  padding: 0 0.56rem;
  border-color: transparent;
  color: rgba(224, 234, 246, 0.62);
  background: transparent;
  box-shadow: none;
  font-size: 0.84rem;
  font-weight: 660;
}

.biblioteca-knowledge-topbar .biblioteca-knowledge-perspective-menu summary:hover,
.biblioteca-knowledge-topbar .biblioteca-knowledge-perspective-menu summary:focus-visible {
  color: rgba(250, 252, 255, 0.9);
  border-color: transparent;
  background: rgba(230, 241, 252, 0.05);
}

.biblioteca-knowledge-topbar .biblioteca-knowledge-perspective-menu-list {
  min-width: 9.5rem;
}

.biblioteca-knowledge-toast {
  position: fixed;
  z-index: 80;
  top: 50%;
  left: 50%;
  max-width: min(22rem, calc(100vw - 2rem));
  padding: 0.78rem 1.05rem;
  border: 1px solid rgba(217, 229, 241, 0.14);
  border-radius: 999px;
  color: rgba(246, 250, 253, 0.92);
  background: rgba(20, 23, 31, 0.84);
  box-shadow:
    0 1.6rem 4rem rgba(0, 0, 0, 0.34),
    0 0 34px rgba(181, 210, 232, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.05);
  font-size: 0.9rem;
  line-height: 1.25;
  text-align: center;
  pointer-events: none;
  transform: translate(-50%, -50%);
  animation: bibliotecaKnowledgeToast 2200ms ease both;
}

.biblioteca-knowledge-toast.is-success {
  color: rgba(235, 249, 245, 0.94);
  border-color: rgba(174, 222, 207, 0.16);
}

@keyframes bibliotecaKnowledgeToast {
  0% {
    opacity: 0;
    transform: translate(-50%, -46%) scale(0.98);
  }
  14%,
  78% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
  100% {
    opacity: 0;
    transform: translate(-50%, -54%) scale(0.98);
  }
}

.biblioteca-knowledge-workspace {
  position: relative;
  width: min(100%, 100rem);
  height: calc(100vh - clamp(8.1rem, 12vh, 9.4rem));
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(10rem, 15rem) minmax(0, 64rem) minmax(10rem, 15rem);
  justify-content: center;
  gap: clamp(1rem, 2.2vw, 2.4rem);
  align-items: start;
  margin: clamp(0rem, 0.35vw, 0.32rem) auto 0;
  zoom: var(--knowledge-study-zoom);
  transition: grid-template-columns 360ms cubic-bezier(0.18, 0.82, 0.18, 1);
}

.biblioteca-knowledge-workspace.has-collapsed-index {
  grid-template-columns: minmax(10rem, 15rem) minmax(0, 64rem) minmax(10rem, 15rem);
}

.biblioteca-knowledge-node-panel {
  grid-column: 2;
  min-width: 0;
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.biblioteca-knowledge-right-rail {
  grid-column: 3;
  min-width: 0;
  min-height: 1px;
}

.biblioteca-knowledge-node-list {
  position: sticky;
  top: clamp(4.7rem, 8vh, 6.2rem);
  grid-column: 1;
  display: grid;
  align-content: start;
  gap: 0.42rem;
  max-height: calc(100vh - 7.4rem);
  margin-left: clamp(0.55rem, 1.2vw, 1.05rem);
  padding: 0.38rem 0 1rem clamp(1.85rem, 2.4vw, 2.35rem);
  overflow: auto;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  opacity: 1;
  transform: translateX(0);
  will-change: transform, opacity;
  transition:
    opacity 260ms ease,
    transform 360ms cubic-bezier(0.18, 0.82, 0.18, 1);
}

.biblioteca-knowledge-node-list.is-hidden {
  opacity: 0;
  pointer-events: none;
  transform: translateX(-102%);
}

.biblioteca-knowledge-node-list.is-visible {
  opacity: 1;
  transform: translateX(0);
}

@keyframes bibliotecaKnowledgeIndexIn {
  from {
    opacity: 0;
    transform: translateX(-0.5rem);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.biblioteca-knowledge-node-list::before {
  content: "";
  position: absolute;
  top: 2.75rem;
  bottom: 0.65rem;
  left: clamp(0.62rem, 1.3vw, 0.9rem);
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(171, 190, 216, 0.28) 12%, rgba(171, 190, 216, 0.18) 78%, transparent);
}

.biblioteca-knowledge-index-head {
  position: relative;
  z-index: 1;
  margin: 0 0 0.35rem;
  padding: 0 0 0.55rem;
  border-bottom: 0;
}

.biblioteca-knowledge-index-head span {
  color: rgba(191, 205, 223, 0.68);
  font-size: 0.72rem;
  letter-spacing: 0;
  text-transform: none;
}

.biblioteca-knowledge-index-head button {
  width: 1.7rem;
  height: 1.7rem;
  color: rgba(202, 216, 232, 0.58);
  background: rgba(32, 36, 48, 0.38);
}

.biblioteca-knowledge-index-head button:hover,
.biblioteca-knowledge-index-head button:focus-visible {
  color: rgba(242, 247, 252, 0.9);
  background: rgba(51, 57, 73, 0.56);
}

.biblioteca-knowledge-query-label {
  margin: 0 0 0.5rem;
  padding: 0;
  color: rgba(190, 204, 222, 0.54);
}

.biblioteca-knowledge-node-card {
  position: relative;
  min-height: 2.35rem;
  padding: 0.28rem 0.36rem 0.28rem 0.82rem;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: rgba(231, 238, 246, 0.82);
  transition: color 160ms ease, background 160ms ease, transform 160ms ease;
}

.biblioteca-knowledge-node-card::before {
  content: "";
  position: absolute;
  top: 1rem;
  left: clamp(-1.12rem, -1vw, -0.92rem);
  z-index: 1;
  width: 0.38rem;
  height: 0.38rem;
  border-radius: 999px;
  background: rgba(154, 170, 193, 0.44);
  box-shadow: 0 0 0 3px rgba(8, 10, 16, 0.95);
}

.biblioteca-knowledge-node-card-main {
  display: flex;
  align-items: center;
  gap: 0.54rem;
  min-width: 0;
}

.biblioteca-knowledge-node-card strong {
  min-width: 0;
  color: inherit;
  font-size: 0.88rem;
  font-weight: 610;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.biblioteca-knowledge-node-card.is-active,
.biblioteca-knowledge-node-card:hover {
  transform: translateX(0.08rem);
  color: rgba(246, 249, 252, 0.96);
  background: linear-gradient(90deg, rgba(102, 120, 160, 0.16), transparent);
}

.biblioteca-knowledge-node-card.is-active::before {
  width: 0.54rem;
  height: 0.54rem;
  top: 0.92rem;
  left: clamp(-1.2rem, -1.08vw, -1rem);
  background: rgba(214, 224, 239, 0.92);
  box-shadow:
    0 0 0 3px rgba(8, 10, 16, 0.96),
    0 0 0 6px rgba(144, 160, 202, 0.12);
}

.biblioteca-knowledge-symbol {
  flex: 0 0 auto;
  width: 1.35rem;
  height: 1.35rem;
  display: grid;
  place-items: center;
  color: rgba(224, 235, 246, 0.78);
}

.biblioteca-knowledge-symbol svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.34;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-knowledge-symbol.is-index {
  width: 1.22rem;
  height: 1.22rem;
  opacity: 0.86;
}

.biblioteca-knowledge-node-card.is-active .biblioteca-knowledge-symbol,
.biblioteca-knowledge-node-card:hover .biblioteca-knowledge-symbol {
  opacity: 1;
  color: rgba(236, 244, 252, 0.88);
}

.biblioteca-knowledge-symbol.is-primary {
  width: 4.65rem;
  height: 4.65rem;
  padding: 0.72rem;
  border: 1px solid rgba(218, 228, 244, 0.14);
  border-radius: 999px;
  color: rgba(238, 246, 252, 0.9);
  background: rgba(14, 17, 25, 0.72);
  box-shadow:
    0 1.2rem 3rem rgba(0, 0, 0, 0.26),
    0 0 30px rgba(184, 207, 235, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.045);
}

.biblioteca-knowledge-symbol.is-primary svg {
  stroke-width: 1.42;
}

.biblioteca-knowledge-symbol.is-orientation,
.biblioteca-knowledge-symbol.is-expansion {
  color: rgba(185, 222, 244, 0.78);
}

.biblioteca-knowledge-symbol.is-seal,
.biblioteca-knowledge-symbol.is-plume {
  color: rgba(224, 204, 158, 0.78);
}

.biblioteca-knowledge-symbol.is-connected,
.biblioteca-knowledge-symbol.is-breath {
  color: rgba(188, 224, 211, 0.76);
}

.biblioteca-knowledge-symbol.is-mask,
.biblioteca-knowledge-symbol.is-figure,
.biblioteca-knowledge-symbol.is-waves {
  color: rgba(215, 199, 232, 0.76);
}

.biblioteca-knowledge-index-float {
  position: sticky;
  top: clamp(4.9rem, 8vh, 6.4rem);
  grid-column: 1;
  justify-self: start;
  align-self: start;
  min-height: 2.15rem;
  padding: 0 0.82rem;
  border: 1px solid rgba(172, 188, 210, 0.18);
  border-radius: 999px;
  color: rgba(226, 235, 244, 0.78);
  background: rgba(31, 35, 47, 0.72);
  box-shadow: 0 1rem 2.4rem rgba(0, 0, 0, 0.24);
  cursor: pointer;
  animation: bibliotecaKnowledgeIndexIn 220ms ease both;
}

.biblioteca-knowledge-node-detail {
  --knowledge-detail-padding: clamp(2.35rem, 4.2vw, 4rem);
  --knowledge-detail-top-fade: clamp(5.8rem, 9vw, 7.8rem);
  position: relative;
  isolation: isolate;
  width: 100%;
  max-width: 64rem;
  max-height: calc(100vh - clamp(8.1rem, 12vh, 9.4rem));
  display: grid;
  gap: clamp(1.35rem, 2.2vw, 1.95rem);
  margin: 0 auto;
  padding: var(--knowledge-detail-padding);
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid rgba(210, 220, 236, 0.12);
  border-radius: 8px;
  color: rgba(239, 243, 248, 0.92);
  background:
    linear-gradient(180deg, rgba(33, 35, 45, 0.96), rgba(18, 20, 29, 0.98));
  box-shadow:
    0 3.8rem 8.8rem rgba(0, 0, 0, 0.46),
    0 1.2rem 2.8rem rgba(0, 0, 0, 0.22),
    0 0 56px rgba(184, 207, 235, 0.085),
    inset 0 1px 0 rgba(255, 255, 255, 0.045);
  scrollbar-width: none;
}

.biblioteca-knowledge-node-detail::-webkit-scrollbar {
  display: none;
}

.biblioteca-knowledge-node-detail::before {
  content: "";
  position: sticky;
  z-index: 14;
  top: 0;
  height: var(--knowledge-detail-top-fade);
  display: block;
  margin:
    0
    calc(var(--knowledge-detail-padding) * -1)
    calc((var(--knowledge-detail-top-fade) + var(--knowledge-detail-padding)) * -1);
  border-radius: 8px 8px 0 0;
  background: linear-gradient(
    180deg,
    rgba(33, 35, 45, 1) 0%,
    rgba(33, 35, 45, 1) 34%,
    rgba(33, 35, 45, 0.92) 66%,
    rgba(33, 35, 45, 0) 100%
  );
  pointer-events: none;
  transform: translateY(calc(var(--knowledge-detail-padding) * -1));
}

.biblioteca-knowledge-node-detail header {
  display: grid;
  gap: clamp(0.92rem, 1.5vw, 1.2rem);
  padding-bottom: clamp(0.25rem, 0.7vw, 0.5rem);
}

.biblioteca-knowledge-node-kicker {
  display: flex;
  align-items: center;
  gap: 0.92rem;
  margin-bottom: clamp(0.12rem, 0.5vw, 0.36rem);
}

.biblioteca-knowledge-node-title-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: clamp(0.95rem, 1.8vw, 1.35rem);
}

.biblioteca-knowledge-node-detail header span,
.biblioteca-knowledge-node-kicker span {
  color: rgba(190, 204, 222, 0.58);
  font-size: 0.76rem;
  letter-spacing: 0;
  text-transform: none;
}

.biblioteca-knowledge-node-detail h3 {
  max-width: 14ch;
  margin: 0;
  color: rgba(249, 250, 252, 0.97);
  font-size: 3.35rem;
  font-weight: 640;
  line-height: 1.02;
  letter-spacing: 0;
}

.biblioteca-knowledge-node-title-row h3 {
  max-width: none;
}

.biblioteca-knowledge-node-detail header p {
  max-width: 46rem;
  margin: 0;
  color: rgba(216, 224, 234, 0.76);
  font-size: 1.04rem;
  line-height: 1.82;
}

.biblioteca-knowledge-node-subtitle {
  color: rgba(232, 238, 246, 0.82) !important;
  font-size: 1.1rem !important;
  line-height: 1.62 !important;
}

.biblioteca-knowledge-node-main-text {
  padding-top: 0.1rem;
  color: rgba(216, 224, 234, 0.78) !important;
}

.biblioteca-knowledge-primary-video {
  display: grid;
  gap: 0.6rem;
  width: 40%;
  min-width: min(100%, 18rem);
  margin: 0.3rem 0 clamp(1.6rem, 2.4vw, 2.4rem);
}

.biblioteca-knowledge-primary-video-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  color: rgba(201, 213, 229, 0.72);
  font-size: 0.82rem;
}

.biblioteca-knowledge-primary-video-head span {
  color: rgba(222, 230, 240, 0.82);
  font-size: 0.82rem;
  font-weight: 650;
}

.biblioteca-knowledge-primary-video-head a {
  color: rgba(206, 222, 244, 0.66);
  font-size: 0.78rem;
  text-decoration: none;
}

.biblioteca-knowledge-primary-video-head a:hover,
.biblioteca-knowledge-primary-video-head a:focus-visible {
  color: rgba(246, 249, 252, 0.94);
}

.biblioteca-knowledge-primary-video-frame {
  overflow: hidden;
  aspect-ratio: 16 / 9;
  border: 1px solid rgba(190, 200, 218, 0.14);
  border-radius: 8px;
  background: rgba(7, 8, 12, 0.58);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.025);
}

.biblioteca-knowledge-primary-video-frame iframe {
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
}

.biblioteca-knowledge-subnode-list {
  gap: 0.5rem;
  padding: 0.25rem 0 0;
}

.biblioteca-knowledge-subnode-card {
  padding: 0.15rem 0 0.15rem 0.85rem;
  border: 0;
  border-left: 1px solid rgba(190, 200, 218, 0.18);
  border-radius: 0;
  background: transparent;
}

.biblioteca-knowledge-subnode-card strong {
  color: rgba(235, 240, 246, 0.88);
  font-size: 0.95rem;
  font-weight: 610;
}

.biblioteca-knowledge-subnode-card small {
  color: rgba(192, 205, 220, 0.62);
  font-size: 0.8rem;
  line-height: 1.45;
}

.biblioteca-knowledge-subnode-card p {
  color: rgba(216, 224, 234, 0.74);
  font-size: 0.93rem;
}

.biblioteca-knowledge-edit-button {
  justify-self: start;
  min-height: 2rem;
  padding: 0 0.78rem;
  color: rgba(226, 235, 244, 0.74);
  background: rgba(16, 18, 26, 0.34);
}

.biblioteca-knowledge-edit-form label {
  gap: 0.4rem;
}

.biblioteca-knowledge-edit-form {
  font-family: "Inter", "Aptos", "Segoe UI", system-ui, sans-serif;
}

.biblioteca-knowledge-edit-form label small,
.biblioteca-knowledge-edit-form label strong {
  color: rgba(218, 230, 243, 0.74);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}

.biblioteca-knowledge-edit-form input,
.biblioteca-knowledge-edit-form textarea {
  border-color: rgba(185, 193, 209, 0.16);
  color: rgba(244, 248, 252, 0.9);
  background: rgba(10, 12, 18, 0.48);
  font-family: "Inter", "Aptos", "Segoe UI", system-ui, sans-serif;
  font-size: 0.98rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.58;
}

.biblioteca-knowledge-edit-form textarea {
  min-height: 7rem;
  padding: 0.82rem 0.9rem;
  overflow: auto;
  resize: vertical;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.biblioteca-knowledge-edit-form textarea::-webkit-scrollbar {
  display: none;
}

.biblioteca-knowledge-edit-form .biblioteca-knowledge-main-textarea {
  min-height: clamp(15rem, 32vh, 23rem);
  font-size: 1.03rem;
  line-height: 1.72;
}

.biblioteca-knowledge-edit-grid {
  grid-template-columns: 1fr;
  gap: 0.72rem;
}

.biblioteca-knowledge-subnode-edit-card {
  border-color: rgba(185, 193, 209, 0.13);
  border-radius: 8px;
  background: rgba(18, 21, 30, 0.48);
}

.biblioteca-knowledge-field-stack {
  gap: 0;
  border-top: 1px solid rgba(190, 200, 218, 0.12);
}

.biblioteca-knowledge-field {
  border: 0;
  border-bottom: 1px solid rgba(190, 200, 218, 0.12);
  border-radius: 0;
  background: transparent;
}

.biblioteca-knowledge-field summary {
  padding: 1rem 0;
  color: rgba(238, 243, 248, 0.86);
  font-size: 0.98rem;
  font-weight: 620;
}

.biblioteca-knowledge-field > p,
.biblioteca-knowledge-field > ul,
.biblioteca-knowledge-subfields,
.biblioteca-knowledge-relations {
  padding: 0 0 1rem;
}

.biblioteca-knowledge-field p,
.biblioteca-knowledge-field li {
  max-width: 46rem;
  color: rgba(215, 224, 235, 0.74);
  font-size: 0.98rem;
  line-height: 1.78;
}

.biblioteca-knowledge-node-detail:not(.biblioteca-knowledge-edit-form) {
  --knowledge-reading-serif: Cambria, "Times New Roman", Times, serif;
}

.biblioteca-knowledge-node-detail:not(.biblioteca-knowledge-edit-form) h3 {
  font-family: var(--knowledge-reading-serif);
  font-weight: 480;
  line-height: 1.08;
}

.biblioteca-knowledge-node-detail:not(.biblioteca-knowledge-edit-form) .biblioteca-knowledge-node-subtitle,
.biblioteca-knowledge-node-detail:not(.biblioteca-knowledge-edit-form) .biblioteca-knowledge-node-main-text,
.biblioteca-knowledge-node-detail:not(.biblioteca-knowledge-edit-form) .biblioteca-knowledge-subnode-card strong,
.biblioteca-knowledge-node-detail:not(.biblioteca-knowledge-edit-form) .biblioteca-knowledge-subnode-card p,
.biblioteca-knowledge-node-detail:not(.biblioteca-knowledge-edit-form) .biblioteca-knowledge-field p,
.biblioteca-knowledge-node-detail:not(.biblioteca-knowledge-edit-form) .biblioteca-knowledge-field li {
  font-family: var(--knowledge-reading-serif);
  font-style: normal;
  font-weight: 380;
  letter-spacing: 0;
  overflow-wrap: break-word;
  text-rendering: optimizeLegibility;
}

.biblioteca-knowledge-node-detail:not(.biblioteca-knowledge-edit-form) .biblioteca-knowledge-node-subtitle {
  font-size: 1.16rem !important;
  line-height: 1.78 !important;
}

.biblioteca-knowledge-node-detail:not(.biblioteca-knowledge-edit-form) .biblioteca-knowledge-node-main-text {
  max-width: 48rem;
  color: rgba(224, 231, 240, 0.84) !important;
  font-size: 1.1rem;
  line-height: 1.94 !important;
}

.biblioteca-knowledge-node-detail:not(.biblioteca-knowledge-edit-form) .biblioteca-knowledge-subnode-card strong {
  font-size: 1.02rem;
  font-weight: 480;
}

.biblioteca-knowledge-node-detail:not(.biblioteca-knowledge-edit-form) .biblioteca-knowledge-subnode-card p,
.biblioteca-knowledge-node-detail:not(.biblioteca-knowledge-edit-form) .biblioteca-knowledge-field p,
.biblioteca-knowledge-node-detail:not(.biblioteca-knowledge-edit-form) .biblioteca-knowledge-field li {
  max-width: 48rem;
  color: rgba(222, 230, 240, 0.82);
  font-size: 1.04rem;
  line-height: 1.9;
}

.biblioteca-knowledge-node-detail:not(.biblioteca-knowledge-edit-form) .biblioteca-knowledge-field ul {
  display: grid;
  gap: 0.42rem;
  padding-left: 1.16rem;
}

.biblioteca-knowledge-subfields > div,
.biblioteca-knowledge-subfields > label {
  padding: 0.76rem 0;
  border-radius: 0;
  background: transparent;
}

.biblioteca-knowledge-future {
  color: rgba(218, 229, 244, 0.76) !important;
}

@media (max-width: 1100px) {
  .biblioteca-knowledge-workspace,
  .biblioteca-knowledge-workspace.has-collapsed-index {
    grid-template-columns: minmax(4.5rem, 9rem) minmax(0, 1fr) minmax(4.5rem, 9rem);
    gap: clamp(0.76rem, 1.6vw, 1.25rem);
  }

  .biblioteca-knowledge-node-panel {
    grid-column: 2;
  }

  .biblioteca-knowledge-workspace.has-collapsed-index .biblioteca-knowledge-node-panel {
    grid-column: 2;
  }

  .biblioteca-knowledge-right-rail {
    display: block;
  }
}

@media (max-width: 860px) {
  .biblioteca-knowledge-search-dock {
    left: 50%;
    right: auto;
    width: min(34rem, calc(100vw - 1.4rem));
    bottom: 0.42rem;
    transform: translateX(-50%);
  }

  .biblioteca-knowledge-search-dock:hover,
  .biblioteca-knowledge-search-dock:focus-within {
    transform: translate(-50%, -0.04rem);
  }

  .biblioteca-knowledge-search-dock.is-search-focused,
  .biblioteca-knowledge-search-dock.is-search-focused:hover,
  .biblioteca-knowledge-search-dock.is-search-focused:focus-within {
    bottom: 50%;
    width: min(42rem, calc(100vw - 1.4rem));
    transform: translate(-50%, 50%);
  }

  .biblioteca-knowledge-contextbar {
    grid-template-columns: 1fr;
  }

  .biblioteca-knowledge-topbar {
    left: calc(max(0.9rem, env(safe-area-inset-left)) + 0.12rem);
    right: 0.72rem;
    gap: 0.04rem;
  }

  .biblioteca-knowledge-nav-icon {
    width: 2.76rem;
    height: 2.76rem;
    min-height: 2.76rem;
  }

  .biblioteca-knowledge-index-toggle {
    width: 3.28rem;
    height: 3.28rem;
    min-height: 3.28rem;
  }

  .biblioteca-knowledge-location {
    flex: 1 1 auto;
    max-width: none;
    min-width: 2.4rem;
    font-size: 0.82rem;
  }

  .biblioteca-knowledge-topbar .biblioteca-knowledge-day-index {
    flex: 0 0 auto;
    margin-left: 0.38rem;
  }

  .biblioteca-knowledge-topbar .biblioteca-knowledge-day-index::before {
    left: -0.24rem;
  }

  .biblioteca-knowledge-topbar .biblioteca-knowledge-day-index-toggle {
    max-width: 6.4rem;
    min-height: 2rem;
    padding: 0 0.42rem;
  }

  .biblioteca-knowledge-topbar .biblioteca-knowledge-perspective-menu summary {
    max-width: 7.8rem;
    min-height: 2rem;
    overflow: hidden;
    padding: 0 0.42rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .biblioteca-knowledge-contextbar.is-day-menu-centered .biblioteca-knowledge-perspective-menu,
  .biblioteca-knowledge-contextbar.is-day-menu-centered .biblioteca-knowledge-option-tabs,
  .biblioteca-knowledge-contextbar.is-day-menu-centered .biblioteca-knowledge-day-index {
    grid-column: 1;
  }

  .biblioteca-knowledge-day-index {
    justify-self: stretch;
    justify-items: stretch;
  }

  .biblioteca-knowledge-day-index-toggle {
    justify-content: center;
  }

  .biblioteca-knowledge-day-index-list {
    justify-content: center;
    border-radius: 8px;
  }

  .biblioteca-knowledge-primary-video {
    width: 100%;
  }

  .biblioteca-knowledge-workspace,
  .biblioteca-knowledge-workspace.has-collapsed-index {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(0, 11.5rem) minmax(0, 1fr);
    height: calc(100vh - 8.2rem);
    overflow: hidden;
  }

  .biblioteca-knowledge-node-list,
  .biblioteca-knowledge-node-panel {
    grid-column: 1;
  }

  .biblioteca-knowledge-right-rail {
    display: none;
  }

  .biblioteca-knowledge-node-list {
    position: relative;
    top: auto;
    max-height: 100%;
    margin-left: 0;
    overflow: auto;
  }

  .biblioteca-knowledge-node-panel {
    min-height: 0;
    overflow: hidden;
  }

  .biblioteca-knowledge-node-detail {
    max-height: 100%;
  }

  .biblioteca-knowledge-node-detail h3 {
    max-width: 100%;
    font-size: 2.45rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .document-search,
  .biblioteca-search-backdrop,
  .biblioteca-search-focus-results,
  .biblioteca-knowledge-search-dock,
  .biblioteca-knowledge-search-backdrop,
  .biblioteca-knowledge-search.is-docked input,
  .biblioteca-knowledge-dock-filters > summary {
    transition-duration: 1ms !important;
  }
}

@media (max-width: 560px) {
  .biblioteca-knowledge-page {
    padding: 0.8rem 0.72rem 6rem;
  }

  .biblioteca-knowledge-topbar {
    left: calc(max(0.9rem, env(safe-area-inset-left)) + 0.12rem);
    right: 0.54rem;
  }

  .biblioteca-knowledge-nav-icon {
    width: 2.54rem;
    height: 2.54rem;
    min-height: 2.54rem;
  }

  .biblioteca-knowledge-index-toggle {
    width: 3.28rem;
    height: 3.28rem;
    min-height: 3.28rem;
  }

  .biblioteca-knowledge-nav-icon span,
  .biblioteca-knowledge-nav-icon svg {
    width: 1.42rem;
    height: 1.42rem;
  }

  .biblioteca-knowledge-index-toggle span,
  .biblioteca-knowledge-index-toggle svg {
    width: 1.88rem;
    height: 1.88rem;
  }

  .biblioteca-knowledge-location {
    font-size: 0.78rem;
  }

  .biblioteca-knowledge-current-node {
    max-width: 8rem;
    font-size: 0.78rem;
  }

  .biblioteca-knowledge-workspace,
  .biblioteca-knowledge-workspace.has-collapsed-index {
    grid-template-rows: minmax(0, 9rem) minmax(0, 1fr);
    height: calc(100vh - 7.2rem);
  }

  .biblioteca-knowledge-topbar .biblioteca-knowledge-day-index-toggle {
    max-width: 5.5rem;
    font-size: 0.78rem;
  }

  .biblioteca-knowledge-topbar .biblioteca-knowledge-perspective-menu {
    margin-left: 0.02rem;
  }

  .biblioteca-knowledge-topbar .biblioteca-knowledge-perspective-menu summary {
    max-width: 6.6rem;
    font-size: 0.76rem;
  }

  .biblioteca-knowledge-node-detail {
    --knowledge-detail-padding: 1.45rem;
    --knowledge-detail-top-fade: 5.2rem;
    padding: var(--knowledge-detail-padding);
  }

  .biblioteca-knowledge-node-kicker {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.55rem;
  }

  .biblioteca-knowledge-node-title-row {
    gap: 0.72rem;
  }

  .biblioteca-knowledge-node-title-row h3 {
    font-size: 2rem;
    line-height: 1.05;
  }

  .biblioteca-knowledge-symbol.is-primary {
    width: 2.7rem;
    height: 2.7rem;
  }

  .biblioteca-knowledge-day-index-list {
    align-items: stretch;
    flex-direction: column;
    padding: 0.36rem;
  }

  .biblioteca-knowledge-day-index-list button {
    justify-content: space-between;
    width: 100%;
  }

  .biblioteca-knowledge-primary-video-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.25rem;
  }
}

@media (max-width: 560px) {
  .biblioteca-knowledge-perspectives {
    grid-template-columns: 1fr;
  }

  .biblioteca-knowledge-perspective-card {
    min-height: 7.5rem;
  }

  .biblioteca-knowledge-search,
  .biblioteca-knowledge-edit-grid {
    grid-template-columns: 1fr;
  }
}

.doc-icon-action svg,
.collection-item-download svg {
  width: 1rem;
  height: 1rem;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.doc-icon-action::after {
  content: attr(data-tooltip);
  position: absolute;
  z-index: 4;
  bottom: calc(100% + 0.45rem);
  left: 50%;
  width: max-content;
  max-width: 10rem;
  padding: 0.32rem 0.5rem;
  border: 1px solid rgba(126, 157, 187, 0.24);
  border-radius: 999px;
  color: rgba(236, 244, 252, 0.9);
  background: rgba(4, 12, 24, 0.96);
  font-size: 0.72rem;
  line-height: 1.2;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 0.25rem);
  transition: opacity 140ms ease, transform 140ms ease;
}

.doc-icon-action:hover::after,
.doc-icon-action:focus-visible::after {
  opacity: 1;
  transform: translate(-50%, 0);
}

.document-download-choice {
  width: min(100%, 15rem);
  padding: 0.75rem;
  border: 1px solid rgba(126, 157, 187, 0.22);
  border-radius: 1rem;
  color: rgba(235, 244, 252, 0.9);
  background: rgba(4, 12, 24, 0.88);
  box-shadow: 0 1.2rem 3rem rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(14px);
}

.document-download-choice span {
  display: block;
  margin-bottom: 0.55rem;
  color: rgba(184, 204, 222, 0.82);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.document-download-choice div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
}

.document-download-choice a {
  display: grid;
  place-items: center;
  min-height: 2.25rem;
  border: 1px solid rgba(126, 157, 187, 0.2);
  border-radius: 999px;
  color: rgba(239, 247, 255, 0.92);
  background: rgba(16, 44, 72, 0.72);
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: none;
  transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
}

.document-download-choice a:hover {
  transform: translateY(-1px);
  border-color: rgba(74, 157, 213, 0.48);
  background: rgba(32, 101, 154, 0.55);
}

.document-preview-panel {
  min-height: 32rem;
  overflow: hidden;
  border: 1px solid rgba(126, 157, 187, 0.18);
  border-radius: var(--radius);
  background: rgba(2, 7, 20, 0.62);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

.doc-pdf-object,
.doc-office-object {
  width: 100%;
  height: 100%;
  min-height: 32rem;
  display: block;
  border: 0;
  background: rgba(2, 7, 20, 0.72);
}

.doc-office-object {
  background: #f5f5f5;
}

.doc-image-preview {
  width: 100%;
  min-height: 32rem;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 2vw, 1.4rem);
  background:
    radial-gradient(circle at 50% 20%, rgba(35, 135, 201, 0.12), transparent 19rem),
    rgba(2, 7, 20, 0.72);
}

.doc-image-preview img {
  max-width: 100%;
  max-height: min(74vh, 48rem);
  display: block;
  border-radius: calc(var(--radius) - 0.15rem);
  object-fit: contain;
  box-shadow: 0 1.4rem 4rem rgba(0, 0, 0, 0.38);
}

.doc-image-preview.is-reader {
  height: 100%;
  min-height: 0;
}

.doc-image-preview.is-reader img {
  max-height: calc(100vh - 4.8rem);
}

.doc-image-preview.is-missing::after {
  content: "Vista previa no disponible todavÃ­a.";
  color: rgba(213, 226, 238, 0.68);
}

.doc-video-preview {
  width: 100%;
  min-height: 32rem;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 2vw, 1.4rem);
  background:
    radial-gradient(circle at 50% 20%, rgba(35, 135, 201, 0.12), transparent 19rem),
    rgba(2, 7, 20, 0.72);
}

.doc-video-preview video,
.doc-video-preview iframe {
  width: min(100%, 64rem);
  max-height: min(74vh, 48rem);
  display: block;
  border: 0;
  border-radius: calc(var(--radius) - 0.15rem);
  background: #000;
  box-shadow: 0 1.4rem 4rem rgba(0, 0, 0, 0.38);
}

.doc-video-preview iframe {
  aspect-ratio: 16 / 9;
  height: auto;
  min-height: min(48vh, 32rem);
}

.doc-video-preview.is-reader {
  height: 100%;
  min-height: 0;
}

.doc-video-preview.is-reader video,
.doc-video-preview.is-reader iframe {
  max-height: calc(100vh - 4.8rem);
}

.biblioteca-video-immersive-page {
  min-height: 100vh;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: clamp(0.85rem, 1.6vw, 1.25rem);
  padding: clamp(1rem, 2.2vw, 1.6rem);
  background:
    radial-gradient(circle at 72% 8%, rgba(68, 131, 184, 0.11), transparent 24rem),
    linear-gradient(180deg, rgba(2, 8, 18, 0.98), rgba(2, 7, 16, 1));
}

.biblioteca-video-immersive-topbar {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.biblioteca-video-immersive-back {
  min-height: 2.35rem;
  padding: 0.46rem 0;
  border: 0;
  color: rgba(203, 221, 238, 0.72);
  background: transparent;
  font-size: 0.86rem;
  font-weight: 650;
  cursor: pointer;
  transition: color 220ms ease, transform 220ms ease;
}

.biblioteca-video-immersive-back:hover {
  color: rgba(250, 253, 255, 0.94);
  transform: translateX(-0.08rem);
}

.biblioteca-video-immersive-stage {
  position: relative;
  min-height: min(76vh, 52rem);
  overflow: hidden;
  border: 1px solid rgba(128, 168, 204, 0.16);
  border-radius: clamp(1rem, 2vw, 1.5rem);
  background: #020711;
  box-shadow: 0 26px 80px rgba(0, 0, 0, 0.36);
  isolation: isolate;
}

.biblioteca-video-immersive-stage:fullscreen,
.biblioteca-video-immersive-stage:-webkit-full-screen {
  width: 100vw;
  height: 100vh;
  border: 0;
  border-radius: 0;
}

.biblioteca-video-immersive-stage:fullscreen:not(.is-controls-visible),
.biblioteca-video-immersive-stage:-webkit-full-screen:not(.is-controls-visible) {
  cursor: none;
}

.biblioteca-video-immersive-stage:fullscreen .biblioteca-video-immersive-copy,
.biblioteca-video-immersive-stage:-webkit-full-screen .biblioteca-video-immersive-copy {
  display: none;
}

.biblioteca-video-immersive-poster {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-position: center;
  background-size: cover;
  filter: saturate(1.04) contrast(1.02) brightness(0.7);
  transform: scale(1.02);
}

.biblioteca-video-immersive-frame {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: grid;
  place-items: center;
  background: rgba(2, 7, 17, 0.86);
}

.biblioteca-video-immersive-frame iframe,
.biblioteca-video-immersive-frame video {
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
  background: #000;
}

.biblioteca-video-immersive-frame video {
  object-fit: cover;
}

.biblioteca-video-immersive-shade {
  position: absolute;
  inset: 0;
  z-index: 2;
  background:
    linear-gradient(180deg, rgba(2, 7, 16, 0.36), transparent 24%, transparent 68%, rgba(2, 7, 16, 0.48)),
    linear-gradient(90deg, rgba(2, 7, 16, 0.52), transparent 42%, rgba(2, 7, 16, 0.22));
  pointer-events: none;
}

.biblioteca-video-immersive-copy {
  position: absolute;
  left: clamp(1.1rem, 3vw, 2.5rem);
  bottom: clamp(1rem, 2.5vw, 2.2rem);
  z-index: 3;
  display: grid;
  gap: 0.24rem;
  color: rgba(248, 252, 255, 0.94);
  pointer-events: none;
}

.biblioteca-video-immersive-copy span {
  color: rgba(188, 211, 232, 0.68);
  font-size: 0.74rem;
  font-weight: 640;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.biblioteca-video-immersive-copy h2 {
  margin: 0;
  max-width: min(44rem, 72vw);
  font-size: clamp(1.85rem, 4vw, 3.8rem);
  font-weight: 700;
  line-height: 1.02;
  letter-spacing: 0;
  text-shadow: 0 18px 42px rgba(0, 0, 0, 0.38);
}

.biblioteca-video-immersive-fullscreen {
  position: absolute;
  right: clamp(1rem, 2.5vw, 2rem);
  bottom: clamp(1rem, 2.5vw, 2rem);
  z-index: 4;
  width: clamp(2.35rem, 3.4vw, 3rem);
  height: clamp(2.35rem, 3.4vw, 3rem);
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  color: rgba(241, 248, 255, 0.58);
  background: transparent;
  cursor: pointer;
  transition: color 220ms ease, opacity 220ms ease, transform 260ms cubic-bezier(0.16, 1, 0.3, 1);
}

.biblioteca-video-immersive-fullscreen:hover {
  color: rgba(255, 255, 255, 0.96);
  transform: translateY(-0.08rem);
}

.biblioteca-video-immersive-fullscreen svg {
  width: clamp(1.35rem, 2vw, 1.8rem);
  height: clamp(1.35rem, 2vw, 1.8rem);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.55;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-custom-video-controls {
  position: absolute;
  z-index: 5;
  left: clamp(0.8rem, 2.4vw, 1.8rem);
  right: clamp(0.8rem, 2.4vw, 1.8rem);
  bottom: clamp(0.75rem, 2vw, 1.5rem);
  display: grid;
  align-items: center;
  gap: clamp(0.45rem, 1.4vw, 0.9rem);
  grid-template-columns: auto minmax(0, 1fr) auto auto;
}

/* Estándar audiovisual de La Fuente: el hero define la apariencia y las
   superficies de consulta reutilizan las mismas piezas sin contenedor visible. */
.biblioteca-playback-controls {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.biblioteca-video-immersive-stage:fullscreen .biblioteca-custom-video-controls,
.biblioteca-video-immersive-stage:-webkit-full-screen .biblioteca-custom-video-controls {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  opacity: 0;
  pointer-events: none;
  transform: translateY(0.4rem);
  transition: opacity 420ms cubic-bezier(0.16, 1, 0.3, 1), transform 420ms cubic-bezier(0.16, 1, 0.3, 1);
}

.biblioteca-video-immersive-stage:fullscreen.is-controls-visible .biblioteca-custom-video-controls,
.biblioteca-video-immersive-stage:-webkit-full-screen.is-controls-visible .biblioteca-custom-video-controls,
.biblioteca-video-immersive-stage:fullscreen .biblioteca-custom-video-controls:focus-within,
.biblioteca-video-immersive-stage:-webkit-full-screen .biblioteca-custom-video-controls:focus-within {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.biblioteca-video-immersive-empty {
  z-index: 2;
  color: rgba(211, 226, 239, 0.66);
  font-size: 0.9rem;
}

.doc-audio-preview,
.doc-sheet-preview {
  width: 100%;
  min-height: 32rem;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 2vw, 1.4rem);
  background:
    radial-gradient(circle at 50% 20%, rgba(35, 135, 201, 0.12), transparent 19rem),
    rgba(2, 7, 20, 0.72);
}

.doc-audio-preview > div,
.doc-sheet-preview > div {
  width: min(100%, 30rem);
  display: grid;
  gap: 0.85rem;
}

.doc-audio-preview audio {
  width: 100%;
}

.doc-sheet-preview a {
  min-height: 2.45rem;
  display: grid;
  place-items: center;
  border: 1px solid rgba(126, 157, 187, 0.24);
  border-radius: 999px;
  color: rgba(239, 247, 255, 0.92);
  background: rgba(16, 44, 72, 0.72);
  font-size: 0.84rem;
  font-weight: 760;
  text-decoration: none;
}

.document-collection-information {
  display: none;
}

@media (max-width: 820px) {
  /* En teléfono la navegación se mantiene en una sola vista: no se aparcan recursos ni se abren pestañas. */
  .biblioteca-stay-tabs,
  .biblioteca-video-consultation-stay-add {
    display: none !important;
  }

  /* El resaltado azul es la respuesta táctil nativa; se conserva :focus-visible para teclado. */
  .app-shell.is-documents-immersive,
  .app-shell.is-documents-immersive button,
  .app-shell.is-documents-immersive a {
    -webkit-tap-highlight-color: transparent;
  }

  /* Los controles del encabezado comparten una retícula de 2.92rem en teléfono. */
  .biblioteca-sidebar-toggle,
  .biblioteca-view-switch,
  .biblioteca-academy-toggle {
    top: max(0.58rem, env(safe-area-inset-top));
    width: 2.92rem;
    height: 2.92rem;
    min-height: 2.92rem;
  }

  .biblioteca-view-switch {
    left: calc(max(0.7rem, env(safe-area-inset-left)) + 3.27rem);
  }

  .biblioteca-top-divider {
    left: calc(max(0.7rem, env(safe-area-inset-left)) + 6.42rem);
    top: calc(max(0.58rem, env(safe-area-inset-top)) + 0.37rem);
    height: 2.18rem;
  }

  .biblioteca-academy-toggle {
    left: calc(max(0.7rem, env(safe-area-inset-left)) + 6.82rem);
  }

  .biblioteca-sidebar-toggle::after,
  .biblioteca-sidebar-toggle:hover::after,
  .biblioteca-sidebar-toggle:focus-visible::after {
    display: none;
  }

  .document-collection-page {
    height: auto;
    min-height: 100dvh;
    overflow: visible;
  }

  .document-collection-stage {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.15rem;
  }

  .document-collection-left {
    display: grid;
    align-content: start;
    justify-items: center;
    gap: 0.9rem;
  }

  .document-collection-left .doc-cover-art.is-collection-cover {
    width: min(100%, 18rem);
    max-width: 18rem;
    aspect-ratio: 2 / 3;
  }

  .document-collection-information {
    display: none;
  }

  .document-collection-information h1,
  .document-collection-information p {
    margin: 0;
  }

  .document-collection-information h1 {
    color: rgba(244, 249, 253, 0.96);
    font-size: clamp(1.65rem, 7vw, 2.1rem);
    line-height: 1.05;
  }

  .document-collection-kicker,
  .document-collection-facts {
    color: rgba(177, 204, 225, 0.68);
    font-size: 0.76rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

  .document-collection-description {
    color: rgba(215, 228, 239, 0.76);
    font-size: 0.95rem;
    line-height: 1.55;
  }

  .document-collection-facts {
    display: flex;
    flex-wrap: wrap;
    gap: 0.42rem 0.75rem;
  }

  .document-collection-facts span + span::before {
    content: "·";
    margin-right: 0.75rem;
  }

  .document-collection-left .document-action-bar {
    justify-self: center;
  }

  .document-collection-preview {
    height: auto;
    overflow: visible;
  }

  .document-collection-grid,
  .document-collection-grid.is-many-items {
    height: auto;
    min-height: 0;
    grid-template-rows: none;
    grid-auto-rows: auto;
  }

  .document-collection-related {
    display: grid;
    margin-top: 0.55rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(126, 157, 187, 0.14);
  }

  .collection-item-card {
    min-height: 14rem;
  }

  .biblioteca-video-immersive-stage .biblioteca-custom-video-controls,
  .biblioteca-video-consultation-media .biblioteca-custom-video-controls {
    left: 0.7rem;
    right: 0.7rem;
    bottom: 0.65rem;
  }

  /* En teléfono la Biblioteca permanece en Multivista; estos controles se reservan para escritorio. */
  .app-shell.is-documents-immersive .biblioteca-view-switch,
  .app-shell.is-documents-immersive .biblioteca-top-divider,
  .app-shell.is-documents-immersive .biblioteca-academy-toggle,
  .app-shell.is-documents-immersive .lf-assistant__launcher {
    display: none;
  }

  body:has(.documents-page) .lf-assistant__launcher {
    display: none;
  }

  .app-shell.is-documents-immersive .topbar-notification-button {
    transform: translateY(-0.18rem);
  }

  .biblioteca-editorial-hero-stage > .biblioteca-editorial-hero-nav {
    position: absolute;
    top: 50%;
    z-index: 7;
    width: 2.55rem;
    height: 3.2rem;
    display: grid;
    place-items: center;
    padding: 0;
    border: 0;
    color: rgba(235, 247, 255, 0.82);
    background: transparent;
    box-shadow: none;
    opacity: 0.78;
    transform: translateY(-50%);
  }

  .biblioteca-editorial-hero-stage > .biblioteca-editorial-hero-prev { left: 0.25rem; }
  .biblioteca-editorial-hero-stage > .biblioteca-editorial-hero-next { right: 0.25rem; }

  .biblioteca-editorial-hero-stage > .biblioteca-editorial-hero-nav svg {
    width: 1.28rem;
    height: 1.28rem;
  }

  .biblioteca-editorial-hero-subtitle,
  .biblioteca-editorial-hero-action {
    display: none;
  }

  .biblioteca-editorial-hero-copy,
  .biblioteca-editorial-hero.is-preview-playing .biblioteca-editorial-hero-copy {
    width: min(76%, 24rem);
    gap: 0;
  }

  .biblioteca-editorial-hero-controls {
    right: 0.65rem;
    bottom: 0.65rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .biblioteca-editorial-hero.is-preview-playing:hover .biblioteca-editorial-hero-controls,
  .biblioteca-editorial-hero.is-preview-playing .biblioteca-editorial-hero-controls:focus-within {
    background: transparent;
  }

  .document-search.is-search-focused { bottom: 43%; }
  .biblioteca-search-focus-results { bottom: calc(43% + 3.45rem); }

  .biblioteca-video-consultation-media {
    aspect-ratio: auto;
    overflow: visible;
  }

  .biblioteca-video-consultation-frame {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #020812;
  }

  .biblioteca-video-consultation-frame > img,
  .biblioteca-video-consultation-frame > iframe,
  .biblioteca-video-consultation-frame > video {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  .biblioteca-video-consultation-footer {
    position: static;
    right: auto;
    bottom: auto;
    left: auto;
    grid-template-columns: minmax(3.5rem, 27%) auto;
    gap: 0.65rem;
    padding: 0.8rem 1.1rem 0;
    background: transparent;
  }

  .biblioteca-video-consultation-media .biblioteca-custom-video-controls {
    right: 0.7rem;
    bottom: clamp(0.8rem, 4.5vw, 1.15rem);
    left: 0.7rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    backdrop-filter: none;
  }

  .biblioteca-sidebar-home,
  .biblioteca-sidebar button,
  .biblioteca-sidebar-composer button {
    font-size: 1.04rem;
    font-weight: 520;
  }

  .biblioteca-sidebar-home {
    color: rgba(232, 242, 250, 0.94);
    font-size: 1.28rem;
    font-weight: 620;
  }

  .biblioteca-sidebar-option {
    grid-template-columns: 1.72rem minmax(0, 1fr) auto;
    gap: 0.52rem;
    color: rgba(220, 231, 240, 0.82);
  }

  .biblioteca-sidebar-icon {
    width: 1.72rem;
    height: 1.72rem;
    min-width: 1.72rem;
    color: rgba(174, 199, 218, 0.74);
  }

  .biblioteca-sidebar-icon svg {
    stroke-width: 1.45;
  }

  .biblioteca-sidebar-nested-list button {
    font-size: 0.94rem;
    font-weight: 480;
  }

  .app-shell.is-documents-immersive .documents-page.biblioteca-view-multivista {
    background:
      radial-gradient(ellipse 84% 34% at 52% 7%, rgba(61, 100, 137, 0.045), transparent 76%),
      linear-gradient(158deg, #01050d 0%, #020715 50%, #01040b 100%);
  }

  .documents-page.biblioteca-view-multivista::before {
    opacity: 0.72;
  }

  .documents-page.biblioteca-view-multivista::after {
    opacity: 0.1;
  }

  .biblioteca-editorial-top-controls {
    top: 0.78rem;
    left: calc(max(0.7rem, env(safe-area-inset-left)) + 4.2rem);
  }

  .biblioteca-introduction-switch {
    position: fixed;
    z-index: 47;
    top: max(0.8rem, env(safe-area-inset-top));
    left: calc(max(0.7rem, env(safe-area-inset-left)) + 4.2rem);
  }

  .biblioteca-sidebar-header + .biblioteca-sidebar-item {
    margin-top: 1.28rem;
  }

  .biblioteca-sidebar-item + .biblioteca-sidebar-item {
    margin-top: 0.62rem;
  }

  .biblioteca-sidebar-header + .biblioteca-sidebar-item::before,
  .biblioteca-sidebar-item:has([data-biblioteca-section="collections"])::before {
    display: block;
    margin: 0 0.36rem 0.28rem;
    color: rgba(158, 185, 207, 0.38);
    font-size: 0.61rem;
    font-weight: 520;
    letter-spacing: 0.18em;
    line-height: 1;
  }

  .biblioteca-sidebar-header + .biblioteca-sidebar-item::before {
    content: "BIBLIOTECA";
  }

  .biblioteca-sidebar-item:has([data-biblioteca-section="collections"])::before {
    content: "PERSONAL";
    margin-top: 0.72rem;
  }

  .biblioteca-sidebar-row.is-active .biblioteca-sidebar-option,
  .biblioteca-sidebar-row.is-active .biblioteca-sidebar-option > span:last-child {
    color: rgba(248, 252, 255, 0.98);
  }

  .biblioteca-sidebar-row.is-active .biblioteca-sidebar-icon {
    color: rgba(143, 205, 242, 0.98);
  }

  .biblioteca-sidebar-feedback {
    margin-top: clamp(2.6rem, 10vh, 4.8rem);
    min-height: 3.1rem !important;
    padding-top: 0.5rem !important;
    color: rgba(205, 220, 232, 0.68) !important;
    font-size: 0.84rem !important;
    font-weight: 500 !important;
    gap: 0.48rem !important;
  }

  .biblioteca-sidebar-feedback .biblioteca-sidebar-icon {
    width: 1.5rem;
    height: 1.5rem;
    min-width: 1.5rem;
  }

  .biblioteca-sidebar-feedback.is-active,
  .biblioteca-sidebar-feedback.is-active > span:last-child,
  .biblioteca-sidebar-feedback.is-active .biblioteca-sidebar-icon {
    color: rgba(248, 252, 255, 0.94) !important;
  }

  .biblioteca-sidebar-settings {
    padding-top: 0.62rem;
  }

  .biblioteca-sidebar-settings > button {
    min-height: 3.1rem;
    gap: 0.48rem;
  }

  .biblioteca-sidebar-settings .biblioteca-sidebar-icon {
    width: 1.5rem;
    height: 1.5rem;
    min-width: 1.5rem;
  }

  .biblioteca-sidebar-add {
    width: 1.72rem;
    min-width: 1.72rem;
    padding: 0;
    color: rgba(220, 231, 240, 0.78);
    font-size: 1.08rem !important;
    font-weight: 360 !important;
  }

  .biblioteca-editorial-hero-stage > .biblioteca-editorial-hero-nav {
    display: none !important;
  }

  .biblioteca-editorial-hero > .biblioteca-editorial-hero-nav.is-mobile-navigation {
    position: absolute;
    top: 50%;
    z-index: 12;
    width: 2.65rem;
    height: 3.4rem;
    display: grid !important;
    place-items: center;
    padding: 0;
    border: 0;
    color: rgba(235, 247, 255, 0.82);
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    cursor: pointer;
    opacity: 0.48;
    transition: opacity 260ms ease, color 260ms ease, transform 220ms ease, filter 320ms ease;
    transform: translateY(-50%);
  }

  .biblioteca-editorial-hero > .biblioteca-editorial-hero-nav.is-mobile-navigation:hover,
  .biblioteca-editorial-hero > .biblioteca-editorial-hero-nav.is-mobile-navigation:focus-visible {
    color: rgba(255, 255, 255, 0.98);
    opacity: 0.92;
    filter: drop-shadow(0 0 0.6rem rgba(107, 188, 238, 0.22));
  }

  .biblioteca-editorial-hero > .biblioteca-editorial-hero-prev.is-mobile-navigation { left: 0.8rem; }
  .biblioteca-editorial-hero > .biblioteca-editorial-hero-next.is-mobile-navigation { right: 0.8rem; }

  .biblioteca-editorial-hero > .biblioteca-editorial-hero-nav.is-mobile-navigation svg {
    width: 1.25rem;
    height: 1.25rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .biblioteca-editorial-hero > .biblioteca-editorial-hero-prev.is-mobile-navigation:hover,
  .biblioteca-editorial-hero > .biblioteca-editorial-hero-prev.is-mobile-navigation:focus-visible {
    transform: translate(-0.12rem, -50%);
  }

  .biblioteca-editorial-hero > .biblioteca-editorial-hero-next.is-mobile-navigation:hover,
  .biblioteca-editorial-hero > .biblioteca-editorial-hero-next.is-mobile-navigation:focus-visible {
    transform: translate(0.12rem, -50%);
  }

  .biblioteca-video-consultation-media .biblioteca-custom-video-controls {
    left: 0.7rem;
    right: 0.7rem;
    bottom: 0.65rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .documents-page:has(.biblioteca-shell.is-sidebar-open) .documents-library-head {
    opacity: 0;
    visibility: hidden;
    pointer-events: none !important;
    transform: translateY(-0.35rem);
  }

  .documents-page:has(.biblioteca-shell.is-sidebar-open) .documents-library-head > * {
    visibility: hidden;
    pointer-events: none !important;
  }

  .documents-page:has(.biblioteca-shell.is-sidebar-open) .biblioteca-main-panel,
  .documents-page:has(.biblioteca-shell.is-sidebar-open) .biblioteca-sidebar-detail-panel {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
  }

  .biblioteca-introduction-switch,
  .biblioteca-editorial-index > summary {
    width: 2.48rem;
    min-width: 2.48rem;
    justify-content: center;
    padding: 0;
  }

  .biblioteca-introduction-switch-label,
  .biblioteca-editorial-index-current,
  .biblioteca-editorial-index-chevron {
    display: none;
  }

  .biblioteca-editorial-index-popover {
    position: fixed;
    top: 4.2rem;
    right: max(0.7rem, env(safe-area-inset-right));
    left: max(0.7rem, env(safe-area-inset-left));
    width: auto;
  }

  .app-shell.is-documents-immersive {
    --library-cover-width: clamp(7.34rem, 33.3vw, 8.46rem);
    --library-cover-height: calc(var(--library-cover-width) * 1.5);
  }

  .biblioteca-shell {
    display: block;
  }

  .biblioteca-shell.is-sidebar-collapsed {
    display: block;
  }

  .biblioteca-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    display: grid;
    width: 100vw;
    height: 100dvh;
    max-height: none;
    padding: calc(max(4.35rem, env(safe-area-inset-top) + 3.5rem)) max(1rem, env(safe-area-inset-right)) calc(max(1.25rem, env(safe-area-inset-bottom) + 0.75rem)) max(1rem, env(safe-area-inset-left));
    overflow-x: hidden;
    overflow-y: auto;
    border-radius: 0;
    background: linear-gradient(180deg, #040e1c 0%, #020812 100%);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    scrollbar-width: none;
  }

  .biblioteca-sidebar::-webkit-scrollbar {
    display: none;
  }

  .biblioteca-sidebar-detail-panel {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    padding: max(4.5rem, calc(env(safe-area-inset-top) + 3.6rem)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
  }

  .biblioteca-sidebar-toggle.is-open {
    z-index: 46;
    top: max(0.58rem, env(safe-area-inset-top));
    left: max(0.7rem, env(safe-area-inset-left));
  }

  .biblioteca-sidebar-header {
    position: absolute;
    top: max(0.72rem, env(safe-area-inset-top));
    left: calc(max(1rem, env(safe-area-inset-left)) + 3.35rem);
    right: max(1rem, env(safe-area-inset-right));
  }

  .biblioteca-sidebar-home,
  .biblioteca-sidebar-option {
    min-height: 3.15rem;
  }

  .biblioteca-sidebar-row {
    border-bottom-color: rgba(142, 181, 214, 0.1);
  }

  .documents-page.is-biblioteca-sidebar-open .biblioteca-document-topbar {
    opacity: 0;
    pointer-events: none;
  }

  .biblioteca-video-collection-drawer {
    width: min(31rem, calc(100vw - 0.75rem));
    max-width: none;
    padding: 1rem;
  }

  .biblioteca-video-collection-head {
    grid-template-columns: minmax(5.5rem, 7.4rem) minmax(0, 1fr);
    gap: 0.78rem;
  }

  .biblioteca-presentation-video-item {
    grid-template-columns: minmax(0, 1fr);
  }

  .biblioteca-presentation-video-controls {
    grid-column: 1;
    grid-template-columns: minmax(4.5rem, 0.32fr) minmax(10rem, 1fr);
  }

  .biblioteca-sidebar-document-preview {
    grid-template-columns: 1fr;
  }

  .biblioteca-sidebar-document-preview .doc-cover-art.is-large {
    width: min(100%, 11rem);
  }

  .biblioteca-sidebar-item,
  .biblioteca-sidebar-row,
  .biblioteca-sidebar button {
    flex: initial;
  }

  .biblioteca-presentation-action.is-card.is-video-work-editor {
    display: none !important;
  }

  .biblioteca-cover-context-menu.is-centered {
    top: 50%;
    left: 50%;
    width: min(22rem, calc(100vw - 2rem));
    padding: 0.55rem;
    transform: translate(-50%, -50%);
  }

  .biblioteca-cover-context-menu.is-centered button {
    min-height: 3.2rem;
    justify-content: center;
    text-align: center;
  }

  .biblioteca-sidebar-composer {
    min-width: 14rem;
  }

  .biblioteca-head-title {
    display: none;
  }

  .biblioteca-view-switch {
    width: 2.92rem;
    height: 2.92rem;
    min-height: 2.92rem;
  }

  .biblioteca-simple-result {
    grid-template-columns: 2.7rem minmax(0, 1fr);
  }

  .biblioteca-simple-result em {
    justify-self: start;
  }

  .doc-video-preview video.are-controls-idle {
    cursor: none;
  }
}

.doc-preview-empty {
  width: 100%;
  min-height: 32rem;
  display: grid;
  place-items: center;
  padding: 2rem;
  color: rgba(213, 226, 238, 0.68);
  background:
    radial-gradient(circle at 50% 35%, rgba(35, 135, 201, 0.12), transparent 18rem),
    rgba(2, 7, 20, 0.72);
  text-align: center;
}

.document-related {
  padding-top: 0.4rem;
}

@media (min-width: 821px) {
  .document-collection-related {
    display: none;
  }
}

.document-collection-page {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: clamp(0.85rem, 1.6vw, 1.25rem);
  height: 100vh;
  overflow: hidden;
}

.document-collection-nav {
  margin-bottom: 0;
}

.document-collection-stage {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(12rem, 15.5rem) minmax(0, 1fr);
  gap: clamp(1.1rem, 2.2vw, 1.7rem);
  align-items: stretch;
}

.document-collection-left {
  display: grid;
  align-content: start;
  justify-items: center;
  gap: 0.9rem;
}

.document-collection-preview {
  min-height: 0;
  height: 100%;
  padding: clamp(0.85rem, 1.6vw, 1.2rem);
}

.document-collection-preview.is-many-items {
  overflow: auto;
}

.document-collection-grid {
  height: 100%;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: clamp(1.1rem, 2.2vw, 1.7rem);
  align-items: stretch;
}

.document-collection-grid.is-many-items {
  height: auto;
  min-height: 100%;
  grid-template-rows: none;
  grid-auto-rows: minmax(12rem, 17rem);
}

.document-collection-preview.is-portrait-cards { overflow-x: hidden; overflow-y: auto; }
.document-collection-grid.is-portrait-cards {
  height: auto;
  min-height: 100%;
  grid-template-columns: repeat(3, minmax(10rem, 1fr));
  grid-template-rows: none;
  grid-auto-rows: auto;
  align-content: start;
  align-items: start;
}

.document-collection-preview.is-portrait-cards {
  overflow-x: hidden;
  overflow-y: auto;
}

.document-collection-grid.is-portrait-cards {
  height: auto;
  min-height: 100%;
  grid-template-columns: repeat(3, minmax(10rem, 1fr));
  grid-template-rows: none;
  grid-auto-rows: auto;
  align-content: start;
  align-items: start;
  min-width: 0;
  gap: clamp(1.7rem, 3vw, 2.8rem);
}

.doc-cover-art.is-collection-cover {
  width: min(100%, 15.5rem);
}

.collection-item-card {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 0.45rem;
  height: 100%;
  min-height: 0;
  min-width: 0;
  overflow: visible;
  padding: 0;
  border: 0;
  color: rgba(235, 244, 252, 0.9);
  background: transparent;
  text-align: left;
}

.collection-item-card.is-portrait-card {
  width: min(100%, 17rem);
  height: auto;
  justify-self: center;
  grid-template-rows: auto auto;
}
.collection-item-card.is-portrait-card .collection-item-open { width: 100%; height: auto; aspect-ratio: 4 / 5; }
.collection-item-card.is-portrait-card .collection-item-thumb.is-custom-preview { padding: 0; }
.collection-item-card.is-portrait-card .collection-item-thumb.is-custom-preview img { object-fit: cover; }
.collection-item-card.is-portrait-card .collection-item-title {
  display: -webkit-box;
  overflow: hidden;
  font-size: 0.86rem;
  line-height: 1.35;
  text-overflow: clip;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.collection-item-card.is-portrait-card .collection-item-meta,
.collection-item-card.is-transcription-item .collection-item-meta { position: relative; padding-right: 2.25rem; }
.collection-item-more {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 999px;
  color: rgba(235, 244, 252, 0.86);
  background: rgba(255, 255, 255, 0.08);
  font: 700 1.2rem/1 Arial, sans-serif;
  cursor: pointer;
}
.collection-item-more:hover, .collection-item-more:focus-visible { background: rgba(255, 255, 255, 0.16); }
.collection-item-menu {
  position: absolute;
  z-index: 5;
  right: 0;
  bottom: 2.3rem;
  display: grid;
  min-width: 11rem;
  padding: 0.35rem;
  gap: 0.15rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0.7rem;
  background: rgba(11, 22, 39, 0.98);
  box-shadow: 0 0.8rem 2rem rgba(0, 0, 0, 0.28);
}
.collection-item-menu > button,
.collection-item-menu > a {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  min-height: 2rem;
  gap: 0.65rem;
  padding: 0.45rem 0.55rem;
  border: 0;
  border-radius: 0.45rem;
  color: rgba(235, 244, 252, 0.9);
  background: transparent;
  text-decoration: none;
}
.collection-item-menu-label { font-size: 0.78rem; line-height: 1.2; white-space: nowrap; }
.collection-item-menu > button:hover,
.collection-item-menu > button:focus-visible,
.collection-item-menu > a:hover,
.collection-item-menu > a:focus-visible { background: rgba(255, 255, 255, 0.08); }

.collection-item-menu.is-transcription-menu {
  min-width: 16rem;
  padding: 0.6rem;
  gap: 0.3rem;
}

.collection-item-menu.is-transcription-menu > button,
.collection-item-menu.is-transcription-menu > a {
  min-height: 2.7rem;
  padding: 0.6rem 0.7rem;
  gap: 0.8rem;
}

.collection-item-menu.is-transcription-menu .collection-item-menu-label {
  font-size: 0.94rem;
}

/* Las fichas documentales usan una sola acción compacta, alineada bajo la portada. */
.collection-item-card.is-compact-action-item .collection-item-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  padding-right: 0;
}

.collection-item-card.is-compact-action-item .collection-item-title {
  flex: 0 0 100%;
}

.collection-item-card.is-compact-action-item .collection-item-more {
  position: static;
  margin: 0;
}

.collection-item-card.is-compact-action-item .collection-item-menu,
.document-action-menu .collection-item-menu.is-compact-action-menu {
  left: 0;
  right: auto;
  transform: none;
  min-width: 16rem;
  padding: 0.65rem;
  gap: 0.3rem;
}

.collection-item-card.is-compact-action-item .collection-item-menu {
  bottom: calc(2rem + 0.55rem);
}

.collection-item-menu.is-compact-action-menu > :is(button, a),
.collection-item-menu.is-compact-action-menu .collection-item-download {
  width: 100%;
  min-width: 0;
  height: auto;
  min-height: 2.7rem;
  padding: 0.6rem 0.7rem;
  border: 0;
  box-shadow: none;
}

.collection-item-menu.is-compact-action-menu .collection-item-download svg {
  flex: 0 0 auto;
  width: 1.15rem;
  height: 1.15rem;
}

/* El menú compacto es la única barra de acciones de Transcripciones, también en escritorio. */
.document-action-menu .collection-item-more,
.collection-item-card.is-portrait-card .collection-item-more,
.collection-item-card.is-compact-action-item .collection-item-more,
.collection-item-card.is-transcription-item .collection-item-more {
  display: grid;
}
@media (max-width: 820px) {
  .document-collection-grid.is-portrait-cards { grid-template-columns: repeat(2, minmax(8.5rem, 1fr)); }
}
@media (max-width: 520px) {
  .document-collection-grid.is-portrait-cards { grid-template-columns: minmax(0, 1fr); }
  .collection-item-card.is-portrait-card { width: min(100%, 18rem); }
}

.collection-item-card.is-portrait-card {
  width: min(100%, 17rem);
  height: auto;
  justify-self: center;
  grid-template-rows: auto auto;
}

.collection-item-card.is-portrait-card .collection-item-open {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
}

.collection-item-card.is-portrait-card .collection-item-thumb.is-custom-preview {
  padding: 0;
}

.collection-item-card.is-portrait-card .collection-item-thumb.is-custom-preview img {
  object-fit: cover;
}

.collection-item-card.is-portrait-card .collection-item-title {
  display: -webkit-box;
  overflow: hidden;
  font-size: 0.86rem;
  line-height: 1.35;
  text-overflow: clip;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

@media (max-width: 820px) {
  .document-collection-grid.is-portrait-cards {
    grid-template-columns: repeat(2, minmax(8.5rem, 1fr));
  }
}

@media (max-width: 520px) {
  .document-collection-grid.is-portrait-cards {
    grid-template-columns: minmax(0, 1fr);
  }

  .collection-item-card.is-portrait-card {
    width: min(100%, 18rem);
  }
}

.collection-item-open {
  display: grid;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.collection-item-thumb {
  position: relative;
  height: 100%;
  min-height: 0;
  display: grid;
  place-items: center;
  padding: clamp(0.45rem, 1vw, 0.7rem);
  overflow: hidden;
  border: 1px solid rgba(126, 157, 187, 0.18);
  border-radius: var(--radius);
  background:
    linear-gradient(145deg, rgba(16, 40, 67, 0.92), rgba(4, 12, 26, 0.98)),
    #071223;
  box-shadow: 0 18px 46px rgba(0, 0, 0, 0.28);
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.collection-item-thumb img,
.collection-item-thumb video {
  width: 100%;
  height: 100%;
  display: block;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.collection-item-thumb.is-file-preview {
  padding: 0;
  background:
    linear-gradient(145deg, rgba(13, 35, 60, 0.95), rgba(2, 7, 20, 0.98)),
    #071223;
}

.collection-file-preview {
  width: calc(100% + 3rem);
  height: 100%;
  min-height: 100%;
  margin-right: -3rem;
  display: block;
  border: 0;
  background: rgba(255, 255, 255, 0.92);
  pointer-events: none;
}

.collection-file-preview span {
  display: grid;
  place-items: center;
  height: 100%;
  padding: 1rem;
  color: rgba(223, 234, 245, 0.78);
  background: rgba(7, 18, 35, 0.8);
  text-align: center;
}

.collection-item-meta {
  min-width: 0;
  min-height: 2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  padding-inline: 0.15rem;
}

.collection-item-actions {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex: 0 0 auto;
}

.collection-item-title {
  min-width: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  color: rgba(231, 241, 250, 0.88);
  background: transparent;
  font-size: 0.82rem;
  font-weight: 750;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
}

.collection-item-title:hover {
  color: #ffffff;
}

.collection-item-download {
  position: relative;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 1.85rem;
  height: 1.85rem;
  border: 1px solid rgba(126, 157, 187, 0.22);
  border-radius: 999px;
  color: rgba(234, 244, 255, 0.82);
  background: rgba(7, 18, 35, 0.62);
  font-size: 0.82rem;
  text-decoration: none;
  cursor: pointer;
  transition: transform 160ms ease, color 160ms ease, border-color 160ms ease, background 160ms ease;
}

.collection-item-download::after,
.biblioteca-personal-create::after {
  content: attr(data-tooltip);
  position: absolute;
  z-index: 4;
  bottom: calc(100% + 0.45rem);
  left: 50%;
  width: max-content;
  max-width: 10rem;
  padding: 0.32rem 0.5rem;
  border: 1px solid rgba(126, 157, 187, 0.24);
  border-radius: 999px;
  color: rgba(236, 244, 252, 0.9);
  background: rgba(4, 12, 24, 0.96);
  font-size: 0.72rem;
  line-height: 1.2;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 0.25rem);
  transition: opacity 140ms ease, transform 140ms ease;
}

.collection-item-download:hover::after,
.collection-item-download:focus-visible::after,
.biblioteca-personal-create:hover::after,
.biblioteca-personal-create:focus-visible::after {
  opacity: 1;
  transform: translate(-50%, 0);
}

.collection-item-download:hover,
.collection-item-download.is-active {
  transform: translateY(-1px);
  color: #ffffff;
  border-color: rgba(72, 162, 220, 0.48);
  background: rgba(35, 135, 201, 0.18);
}

.doc-icon-action.biblioteca-admin-delete-action,
.collection-item-download.biblioteca-admin-delete-action {
  color: rgba(238, 230, 229, 0.92);
  border-color: rgba(202, 185, 183, 0.22);
  background:
    linear-gradient(180deg, rgba(127, 116, 116, 0.52), rgba(79, 70, 74, 0.5)),
    rgba(48, 47, 56, 0.7);
  box-shadow:
    0 12px 24px rgba(0, 0, 0, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.doc-icon-action.biblioteca-admin-delete-action:hover,
.collection-item-download.biblioteca-admin-delete-action:hover {
  color: #ffffff;
  border-color: rgba(226, 181, 176, 0.36);
  background:
    linear-gradient(180deg, rgba(145, 129, 128, 0.62), rgba(94, 82, 86, 0.6)),
    rgba(61, 57, 66, 0.82);
  box-shadow:
    0 14px 28px rgba(0, 0, 0, 0.24),
    0 0 0 4px rgba(226, 111, 99, 0.08);
}

.biblioteca-admin-delete-action > span {
  display: grid;
  place-items: center;
  width: 1em;
  height: 1em;
  font-size: 1.28rem;
  line-height: 1;
}

.collection-item-download:disabled {
  cursor: default;
  opacity: 0.45;
  transform: none;
}

.collection-item-card .document-download-choice {
  width: 100%;
  padding: 0.58rem;
}

.collection-item-card .document-download-choice div {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.collection-item-card:hover .collection-item-thumb {
  transform: scale(1.025);
  border-color: rgba(72, 162, 220, 0.44);
  box-shadow:
    0 0 0 1px rgba(35, 135, 201, 0.18),
    0 0 26px rgba(35, 135, 201, 0.16),
    0 26px 60px rgba(0, 0, 0, 0.45);
}

.collection-item-thumb.is-missing::after {
  content: "Archivo no disponible";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 1rem;
  color: rgba(223, 234, 245, 0.78);
  font-size: 0.82rem;
  text-align: center;
}

.app-shell.is-document-reading {
  grid-template-columns: minmax(0, 1fr);
  background: #01040b;
}

.app-shell.is-document-reading .sidebar,
.app-shell.is-document-reading .topbar {
  display: none;
}

.app-shell.is-document-reading .main-content {
  height: 100vh;
  padding: 0;
}

.app-shell.is-document-reading .view.is-documents-view {
  width: 100%;
  height: 100vh;
  overflow: hidden;
  border-radius: 0;
}

.document-reader {
  position: relative;
  width: 100%;
  height: 100vh;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0.75rem;
  padding: 0.9rem;
  background:
    radial-gradient(circle at 50% -10%, rgba(35, 135, 201, 0.16), transparent 34rem),
    #01040b;
}

.reader-close {
  z-index: 2;
  justify-self: end;
}

.reader-frame {
  min-height: 0;
  overflow: hidden;
  border: 1px solid rgba(126, 157, 187, 0.18);
  border-radius: var(--radius);
  background: rgba(2, 7, 20, 0.86);
}

.doc-pdf-object.is-reader,
.doc-office-object.is-reader,
.doc-preview-empty.is-reader {
  height: 100%;
  min-height: 0;
}

.empty-state {
  grid-column: 1 / -1;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.76);
  color: var(--muted);
}

.calendar-filters {
  display: grid;
  grid-template-columns: repeat(2, minmax(12rem, 1fr)) auto;
  gap: 0.75rem;
  align-items: end;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 12px 32px rgba(31, 45, 47, 0.05);
}

.calendar-filters label {
  display: grid;
  gap: 0.35rem;
  color: #3e4b4d;
  font-size: 0.86rem;
  font-weight: 700;
}

.calendar-filters select {
  min-height: 2.65rem;
  padding: 0 0.78rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  color: var(--ink);
  background: rgba(255, 255, 255, 0.92);
  outline: 0;
}

.calendar-toggle {
  min-height: 2.65rem;
  display: flex !important;
  grid-template-columns: none;
  gap: 0.55rem !important;
  align-items: center;
  justify-content: center;
  padding: 0 0.8rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(246, 250, 247, 0.82);
}

.calendar-toggle input {
  width: 1rem;
  height: 1rem;
  accent-color: var(--cc-blue);
}

.calendar-layout {
  display: grid;
  grid-template-columns: minmax(18rem, 0.42fr) minmax(0, 1fr);
  gap: 0.9rem;
}

.upcoming-panel,
.week-panel {
  display: grid;
  align-content: start;
  gap: 0.75rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 12px 32px rgba(31, 45, 47, 0.05);
}

.upcoming-list {
  display: grid;
  gap: 0.65rem;
}

.calendar-event-card {
  display: grid;
  gap: 0.75rem;
  padding: 0.9rem;
  border: 1px solid var(--line);
  border-left: 4px solid var(--cc-blue);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.84);
}

.calendar-event-card h3 {
  margin: 0.25rem 0 0.25rem;
  font-size: 1rem;
}

.calendar-event-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}

.event-date {
  color: var(--cc-blue-dark);
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.event-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.event-meta span {
  display: inline-flex;
  min-height: 1.75rem;
  align-items: center;
  padding: 0.25rem 0.55rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(246, 250, 247, 0.76);
  color: #536469;
  font-size: 0.76rem;
  font-weight: 700;
}

.event-bÃ¡sico,
.event-basico {
  border-left-color: var(--cc-green);
}

.event-avanzado,
.event-pl1,
.event-pl2,
.event-pl3 {
  border-left-color: var(--cc-violet);
}

.event-registro,
.event-administraciÃ³n,
.event-administracion {
  border-left-color: var(--cc-warm);
}

.event-socios,
.event-junta,
.event-preparaciÃ³n,
.event-preparacion {
  border-left-color: var(--cc-blue);
}

.week-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(8rem, 1fr));
  gap: 0.55rem;
  overflow-x: auto;
  padding-bottom: 0.2rem;
}

.week-day {
  min-height: 18rem;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0.65rem;
  padding: 0.75rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(246, 250, 247, 0.68);
}

.week-day.is-today {
  border-color: rgba(35, 135, 201, 0.34);
  background: rgba(35, 135, 201, 0.08);
}

.week-day-head {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  align-items: center;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.week-day-head strong {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.86);
  color: var(--ink);
}

.week-day-events {
  display: grid;
  align-content: start;
  gap: 0.5rem;
}

.week-event {
  display: grid;
  gap: 0.2rem;
  padding: 0.55rem;
  border: 1px solid rgba(222, 235, 231, 0.86);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.86);
}

.week-event strong {
  font-size: 0.82rem;
  line-height: 1.3;
}

.week-event span,
.week-empty {
  color: var(--muted);
  font-size: 0.74rem;
  line-height: 1.35;
}

.calendar-page {
  min-height: 100%;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  gap: 0.75rem;
}

.calendar-month-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 0.75rem;
  align-items: center;
  padding: 0.85rem 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 12px 28px rgba(31, 45, 47, 0.05);
}

.calendar-month-toolbar h2 {
  margin: 0;
  font-size: clamp(1.25rem, 2vw, 1.75rem);
}

.calendar-nav-actions,
.calendar-view-switch {
  display: flex;
  gap: 0.45rem;
  align-items: center;
}

.icon-nav {
  min-width: 2.5rem;
  padding-inline: 0.75rem;
  font-size: 1.25rem;
}

.calendar-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  align-items: center;
  padding: 0.6rem;
  border: 1px solid rgba(222, 235, 231, 0.88);
  background: rgba(255, 255, 255, 0.62);
  box-shadow: none;
}

.calendar-filters label {
  display: flex;
  gap: 0.45rem;
  align-items: center;
  font-size: 0.78rem;
  font-weight: 750;
}

.calendar-filters select {
  min-height: 2.25rem;
  max-width: 11.5rem;
  padding: 0 0.65rem;
}

.basic-event-tool {
  padding: 0.7rem;
  border: 1px solid rgba(222, 235, 231, 0.88);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.7);
}

.basic-event-form {
  display: grid;
  grid-template-columns: repeat(4, minmax(8rem, 1fr)) minmax(9rem, auto);
  gap: 0.6rem;
  align-items: end;
}

.basic-event-form label,
.basic-event-copy {
  display: grid;
  gap: 0.35rem;
}

.basic-event-form span,
.basic-event-copy span,
.basic-event-schedule span,
.basic-trigger-metrics span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
}

.basic-event-form input,
.basic-event-form select {
  min-width: 0;
  min-height: 2.45rem;
  padding: 0 0.75rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.86);
  color: var(--ink);
  font: inherit;
  font-weight: 700;
}

.basic-event-wide {
  grid-column: span 2;
}

.basic-event-schedule,
.basic-trigger-metrics {
  display: grid;
  gap: 0.5rem;
}

.basic-event-schedule {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.basic-event-schedule span,
.basic-trigger-metrics div {
  padding: 0.7rem;
  border: 1px solid rgba(222, 235, 231, 0.9);
  border-radius: 8px;
  background: rgba(246, 250, 247, 0.72);
}

.basic-event-schedule strong,
.basic-trigger-metrics strong {
  display: block;
  margin-top: 0.18rem;
  color: var(--ink);
  font-size: 0.98rem;
}

.basic-trigger-metrics {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.basic-trigger-button {
  width: 100%;
  justify-content: center;
}

.basic-trigger-button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.calendar-toggle {
  min-height: 2.25rem;
  gap: 0.45rem !important;
  padding: 0 0.7rem;
  background: rgba(246, 250, 247, 0.72);
}

.calendar-toggle input {
  width: 0.95rem;
  height: 0.95rem;
}

.calendar-month-layout,
.calendar-layout {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.32fr);
  gap: 0.85rem;
}

.month-panel,
.upcoming-panel,
.week-panel,
.calendar-detail-panel {
  min-height: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 12px 32px rgba(31, 45, 47, 0.05);
}

.month-panel {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
}

.month-weekdays {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  border-bottom: 1px solid var(--line);
  background: rgba(246, 250, 247, 0.7);
}

.month-weekdays span {
  padding: 0.62rem 0.7rem;
  color: #536469;
  font-size: 0.74rem;
  font-weight: 800;
  text-transform: uppercase;
}

.month-grid {
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  grid-template-rows: repeat(6, minmax(6.4rem, 1fr));
  overflow: hidden;
}

.month-day {
  min-width: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0.35rem;
  padding: 0.5rem;
  border-right: 1px solid rgba(222, 235, 231, 0.82);
  border-bottom: 1px solid rgba(222, 235, 231, 0.82);
  background: rgba(255, 255, 255, 0.66);
  cursor: pointer;
  transition: background 160ms ease, box-shadow 160ms ease;
}

.month-day:hover,
.month-day.is-selected {
  background: rgba(35, 135, 201, 0.07);
  box-shadow: inset 0 0 0 1px rgba(35, 135, 201, 0.16);
}

.month-day.is-outside {
  background: rgba(246, 250, 247, 0.46);
  color: #97a4a6;
}

.month-day.is-today .month-day-number {
  background: var(--cc-blue);
  color: #fff;
}

.month-day-number {
  display: grid;
  place-items: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  color: #405053;
  font-size: 0.82rem;
  font-weight: 800;
}

.month-day-events {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 0.28rem;
  overflow: hidden;
}

.calendar-event-pill {
  appearance: none;
  width: 100%;
  min-width: 0;
  min-height: 1.5rem;
  display: block;
  padding: 0.18rem 0.45rem;
  border: 0;
  border-left: 3px solid var(--cc-blue);
  border-radius: 6px;
  color: #314145;
  background: rgba(35, 135, 201, 0.09);
  cursor: pointer;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.25;
  overflow: hidden;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: transform 150ms ease, background 150ms ease;
}

.calendar-event-pill:hover {
  transform: translateY(-1px);
  background: rgba(35, 135, 201, 0.14);
}

.calendar-event-pill.is-multi-day {
  border-left-width: 5px;
  box-shadow: inset 0 0 0 1px rgba(82, 194, 170, 0.16);
}

.calendar-event-pill span {
  margin-right: 0.25rem;
  color: var(--muted);
  font-weight: 800;
}

.calendar-more {
  padding-left: 0.45rem;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 750;
}

.calendar-detail-panel {
  display: grid;
  align-content: start;
  gap: 0.8rem;
  padding: 1rem;
  overflow: auto;
}

.calendar-detail-panel h3 {
  margin: 0;
  font-size: 1.08rem;
}

.calendar-detail-panel p {
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}

.calendar-detail-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
}

.calendar-detail-facts div,
.visible-list {
  display: grid;
  gap: 0.2rem;
  padding: 0.65rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(246, 250, 247, 0.66);
}

.calendar-detail-facts span,
.visible-list span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
}

.calendar-detail-facts strong,
.visible-list strong {
  min-width: 0;
  font-size: 0.86rem;
  line-height: 1.35;
}

.day-event-list {
  display: grid;
  gap: 0.55rem;
}

.day-event-row {
  appearance: none;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.25rem 0.6rem;
  align-items: center;
  padding: 0.65rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  color: var(--ink);
  background: rgba(255, 255, 255, 0.78);
  cursor: pointer;
  text-align: left;
  transition: transform 150ms ease, box-shadow 150ms ease;
}

.day-event-row:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(31, 45, 47, 0.06);
}

.day-event-row span {
  grid-row: span 2;
  color: var(--cc-blue-dark);
  font-size: 0.76rem;
  font-weight: 850;
}

.day-event-row strong {
  min-width: 0;
  font-size: 0.86rem;
}

.day-event-row small {
  color: var(--muted);
}

.upcoming-panel,
.week-panel {
  overflow: auto;
}

.calendar-event-card {
  appearance: none;
  color: var(--ink);
  cursor: pointer;
  font: inherit;
  text-align: left;
  transition: transform 150ms ease, box-shadow 150ms ease;
}

.calendar-event-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(31, 45, 47, 0.06);
}

.event-basico.calendar-event-pill {
  background: rgba(82, 194, 170, 0.12);
}

.event-avanzado.calendar-event-pill,
.event-pl1.calendar-event-pill,
.event-pl2.calendar-event-pill,
.event-pl3.calendar-event-pill {
  background: rgba(169, 152, 220, 0.14);
}

.event-registro.calendar-event-pill,
.event-administracion.calendar-event-pill {
  background: rgba(244, 184, 121, 0.16);
}

.event-socios.calendar-event-pill,
.event-junta.calendar-event-pill,
.event-preparacion.calendar-event-pill {
  background: rgba(35, 135, 201, 0.1);
}

.week-day {
  min-height: 18rem;
}

.week-day:hover {
  background: rgba(35, 135, 201, 0.06);
}

.week-event {
  appearance: none;
  color: var(--ink);
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.week-event:hover {
  border-color: rgba(35, 135, 201, 0.24);
}

.week-event.is-multi-day {
  border-color: rgba(82, 194, 170, 0.34);
  background: rgba(82, 194, 170, 0.1);
}

.manual-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.8rem;
  padding: clamp(1rem, 2vw, 1.35rem);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 12px 32px rgba(31, 45, 47, 0.05);
}

.manual-form-heading,
.manual-form-wide,
.manual-form-actions {
  grid-column: 1 / -1;
}

.manual-form h3 {
  margin: 0;
}

.manual-form label {
  display: grid;
  gap: 0.35rem;
  color: #3e4b4d;
  font-size: 0.88rem;
  font-weight: 650;
}

.registry-list,
.admin-list {
  display: grid;
  gap: 0.75rem;
}

.participant-card,
.admin-row,
.export-panel {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.84);
  box-shadow: 0 12px 32px rgba(31, 45, 47, 0.05);
}

.participant-card {
  display: grid;
  gap: 0.85rem;
  padding: 1rem;
}

.participant-card.is-hidden-by-search {
  display: none;
}

.participant-main,
.admin-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: start;
}

.participant-main h3,
.admin-row h3 {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
}

.participant-main p,
.admin-row p,
.participant-notes p {
  margin: 0.2rem 0 0;
  color: var(--muted);
  line-height: 1.48;
}

.participant-status {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.4rem;
  max-width: 24rem;
}

.state-chip {
  display: inline-flex;
  align-items: center;
  min-height: 1.8rem;
  padding: 0.28rem 0.6rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.86);
  color: #506064;
  font-size: 0.78rem;
  font-weight: 700;
}

.state-ok {
  border-color: rgba(35, 135, 201, 0.22);
  color: var(--cc-blue-dark);
  background: rgba(35, 135, 201, 0.08);
}

.state-arrived {
  border-color: rgba(82, 194, 170, 0.28);
  color: #257664;
  background: rgba(82, 194, 170, 0.10);
}

.state-manual {
  border-color: rgba(244, 184, 121, 0.32);
  color: #8a5b1f;
  background: rgba(244, 184, 121, 0.12);
}

.state-pending {
  border-color: rgba(169, 152, 220, 0.34);
  color: #6958a3;
  background: rgba(169, 152, 220, 0.12);
}

.state-done {
  border-color: rgba(82, 194, 170, 0.34);
  color: #246f60;
  background: rgba(82, 194, 170, 0.12);
}

.participant-notes {
  padding: 0.8rem;
  border: 1px solid rgba(222, 235, 231, 0.86);
  border-radius: var(--radius);
  background: rgba(246, 250, 247, 0.68);
}

.admin-panel {
  display: grid;
  gap: 0.9rem;
  margin-top: 0.8rem;
}

.admin-row {
  padding: 1rem;
}

.admin-credentials {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.65rem;
}

.admin-credentials span {
  display: inline-flex;
  min-height: 1.85rem;
  align-items: center;
  padding: 0.28rem 0.55rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(246, 250, 247, 0.72);
  color: #526367;
  font-size: 0.78rem;
}

.export-panel {
  display: grid;
  gap: 0.75rem;
  padding: 1rem;
}

.export-table-wrap {
  max-height: 32rem;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.export-table {
  width: 100%;
  min-width: 92rem;
  border-collapse: collapse;
  background: #fff;
  font-size: 0.82rem;
}

.export-table th,
.export-table td {
  padding: 0.65rem 0.7rem;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}

.export-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--soft);
  color: #405053;
  font-size: 0.74rem;
  text-transform: uppercase;
}

@media (max-width: 1080px) {
  .public-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .dashboard-grid,
  .home-visual-grid,
  .home-control-grid,
  .home-summary-grid,
  .activity-strip,
  .media-grid,
  .training-grid,
  .office-access-grid,
  .people-grid,
  .generation-grid,
  .document-grid,
  .calendar-layout,
  .registry-summary,
  .admin-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .calendar-month-layout,
  .calendar-layout,
  .home-hero-control,
  .home-lower-grid,
  .payment-summary-box {
    grid-template-columns: 1fr;
  }

  .home-visual-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: min(100%, 48rem);
  }

  .income-summary-grid,
  .admin-metric-grid,
  .admin-chart-grid,
  .ficha-filter-row,
  .income-ticket-toolbar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .income-ticket-card {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .basic-event-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-visual-card,
  .home-visual-card:nth-child(4),
  .home-visual-card:nth-child(5) {
    grid-column: auto;
  }

  .month-panel {
    overflow-x: auto;
  }

  .month-weekdays,
  .month-grid {
    min-width: 54rem;
  }
}

@media (max-width: 980px) {
  .public-header {
    grid-template-columns: 1fr auto;
  }

  .public-nav {
    grid-column: 1 / -1;
    justify-content: start;
    overflow-x: auto;
  }

  .public-main,
  .login-screen {
    height: auto;
    min-height: 100vh;
    overflow: auto;
  }

  .public-hero,
  .login-layout,
  .app-shell {
    grid-template-columns: 1fr;
  }

  .app-shell {
    height: 100vh;
    grid-template-columns: 7.35rem minmax(0, 1fr);
  }

  .sidebar {
    position: sticky;
    z-index: 5;
    inset: auto;
    width: auto;
    transform: none;
    transition: padding 380ms cubic-bezier(0.22, 1, 0.36, 1), background 380ms ease, border-color 380ms ease, box-shadow 380ms ease;
  }

  .app-shell.is-sidebar-collapsed {
    grid-template-columns: 4.65rem minmax(0, 1fr);
  }

  .app-shell.is-documents-immersive {
    grid-template-columns: 4.65rem minmax(0, 1fr);
  }

  .app-shell.is-documents-immersive.is-documents-nav-open {
    grid-template-columns: 7.35rem minmax(0, 1fr);
  }

  .app-shell.is-documents-immersive .sidebar {
    position: sticky;
    inset: auto;
    width: auto;
    transform: none;
  }

  .app-shell.is-document-reading {
    grid-template-columns: minmax(0, 1fr);
  }

  .topbar {
    align-items: start;
  }

  .calendar-month-toolbar {
    grid-template-columns: 1fr;
  }

  .basic-event-schedule,
  .basic-trigger-metrics {
    grid-template-columns: 1fr;
  }

  .documents-library-head,
  .document-detail-stage,
  .document-collection-stage {
    grid-template-columns: 1fr;
  }

  .documents-library-head {
    display: flex;
    flex-wrap: nowrap;
  }

  .document-search {
    width: 100%;
  }

  .quick-grid,
  .grid.two,
  .profile-grid,
  .profile-detail-grid,
  .registration-shell,
  .chat-shell,
  .messages-page,
  .manual-form,
  .participant-main,
  .admin-row {
    grid-template-columns: 1fr;
  }

  .conversation-column {
    max-height: 22rem;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .registry-hero,
  .registry-toolbar,
  .documents-hero,
  .calendar-hero,
  .admin-heading {
    display: grid;
  }

  .participant-status {
    justify-content: flex-start;
    max-width: none;
  }

  .prompt-list {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
}

@media (max-width: 680px) {
  .public-screen {
    overflow: auto;
  }

  .public-card-grid,
  .dashboard-grid,
  .home-visual-grid,
  .home-control-grid,
  .home-summary-grid,
  .home-lower-grid,
  .activity-strip,
  .media-grid,
  .training-grid,
  .people-grid,
  .generation-grid,
  .document-grid,
  .calendar-filters,
  .feature-grid,
  .office-access-grid,
  .registry-summary,
  .admin-summary,
  .admin-hero-summary,
  .admin-metric-grid,
  .admin-chart-grid,
  .admin-bar-row,
  .ficha-primary-search,
  .ficha-filter-row,
  .income-summary-grid,
  .income-ticket-toolbar,
  .income-ticket-card {
    grid-template-columns: 1fr;
  }

  .basic-event-form {
    grid-template-columns: 1fr;
  }

  .basic-event-wide {
    grid-column: auto;
  }

  .office-library-row {
    grid-template-columns: repeat(2, minmax(0, 8rem));
  }

  .office-launcher .office-access-grid {
    grid-template-areas:
      "fichas"
      "confirmaciones"
      "registro"
      "admin";
  }

  .office-confirmation-metrics {
    grid-template-columns: 1fr;
  }

  .public-main {
    height: auto;
    overflow: visible;
  }

  .hero-text h1 {
    font-size: 2.1rem;
  }

  .public-orbit {
    grid-template-columns: 1fr;
  }

  .main-content {
    padding: 0.8rem;
  }

  .topbar {
    flex-wrap: wrap;
  }

  .home-visual-card {
    aspect-ratio: 16 / 10;
  }

  .home-hero-control,
  .home-day-summary,
  .home-panel,
  .home-quote-panel {
    border-radius: 1rem;
  }

  .home-hero-copy h2 {
    font-size: 2.15rem;
  }

  .home-hero-art {
    min-height: 12rem;
  }

  .home-event-row,
  .home-activity-row,
  .payment-admin-head {
    grid-template-columns: 1fr;
  }

  .payment-total-pills {
    justify-content: flex-start;
  }

  .calendar-filters {
    align-items: stretch;
  }

  .calendar-filters label,
  .calendar-filters select,
  .calendar-toggle {
    width: 100%;
    max-width: none;
  }

  .documents-page {
    padding: 0.9rem;
  }

  .biblioteca-floating-create {
    right: 1rem;
    bottom: 1rem;
  }

  .biblioteca-folder-modal {
    width: calc(100vw - 1rem);
    max-height: calc(100vh - 1rem);
    padding: 1rem;
  }

  .biblioteca-folder-grid,
  .biblioteca-subfolder-title {
    grid-template-columns: 1fr;
  }

  .biblioteca-subfolder-remove {
    justify-self: end;
  }

  .biblioteca-subfolder-head,
  .biblioteca-modal-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .biblioteca-modal-head,
  .biblioteca-draft-card,
  .biblioteca-draft-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .biblioteca-draft-meta {
    justify-items: start;
  }

  .doc-cover-button {
    flex-basis: 8.4rem;
    width: 8.4rem;
    height: 12.6rem;
    min-width: 8.4rem;
    min-height: 12.6rem;
  }

  .doc-cover-button.is-compact {
    flex-basis: 7rem;
    width: 7rem;
    height: 10.5rem;
    min-width: 7rem;
    min-height: 10.5rem;
  }

  .document-preview-panel,
  .doc-pdf-object,
  .doc-office-object,
  .doc-preview-empty {
    min-height: 24rem;
  }

  .dashboard-intro,
  .list-row,
  .profile-hero {
    display: grid;
    grid-template-columns: 1fr;
  }

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

  .knowledge-map {
    grid-template-columns: 1fr;
  }

  .message {
    max-width: 100%;
  }

  .message-bubble {
    max-width: 92%;
  }

  .message-compose {
    grid-template-columns: 1fr;
  }

  .app-shell.is-route-comunidad .view {
    width: 100%;
    margin-right: auto;
    padding-right: 0;
  }

  .community-live-page {
    width: 100%;
  }

  .community-today-panel,
  .community-composer,
  .community-post {
    border-radius: 1rem;
  }

  .community-compose-actions {
    justify-content: flex-start;
  }

  .community-post footer {
    justify-content: flex-start;
  }

  .message-popover {
    right: 0;
  }
}

/* Operating shell: app environment navigation */
.app-shell,
.app-shell.is-sidebar-collapsed,
.app-shell.is-documents-immersive,
.app-shell.is-documents-immersive.is-documents-nav-open,
.app-shell.is-document-reading,
.app-shell.is-fichas-route {
  grid-template-columns: minmax(0, 1fr);
}

.sidebar,
.app-shell.is-documents-immersive .sidebar,
.app-shell.is-fichas-route .sidebar {
  display: none;
}

.main-content {
  padding-bottom: clamp(4.8rem, 9vh, 6.8rem);
}

.app-shell.is-document-reading .main-content {
  padding-bottom: 0;
}

.dock-hover-zone {
  position: fixed;
  z-index: 210;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2.4rem;
  pointer-events: auto;
}

.app-dock {
  position: fixed;
  z-index: 220;
  left: 50%;
  bottom: 1.05rem;
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  padding: 0.58rem;
  border: 1px solid rgba(255, 250, 242, 0.24);
  border-radius: 1.45rem;
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 250, 242, 0.26), transparent 5.6rem),
    linear-gradient(135deg, rgba(7, 18, 31, 0.76), rgba(13, 36, 54, 0.58));
  box-shadow:
    0 24px 70px rgba(2, 8, 16, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.20);
  backdrop-filter: blur(24px) saturate(1.18);
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, calc(100% + 1.2rem)) scale(0.98);
  transition:
    opacity 260ms ease,
    transform 360ms cubic-bezier(0.22, 1, 0.36, 1),
    background 240ms ease,
    box-shadow 240ms ease;
}

.dock-hover-zone:hover + .app-dock,
.app-dock:hover,
.app-dock:focus-within {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0) scale(1);
}

.app-shell.is-fichas-query-open .dock-hover-zone,
.app-shell.is-fichas-query-open .app-dock,
.app-shell.is-document-reading .dock-hover-zone,
.app-shell.is-document-reading .app-dock {
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, calc(100% + 1.2rem)) scale(0.98);
}

.dock-item {
  position: relative;
  width: 3.45rem;
  height: 3.45rem;
  display: inline-grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 1.05rem;
  color: rgba(235, 244, 250, 0.82);
  background:
    radial-gradient(circle at 38% 20%, rgba(255, 250, 242, 0.16), transparent 2.1rem),
    rgba(255, 255, 255, 0.055);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.10);
  cursor: pointer;
  transition:
    transform 180ms ease,
    color 180ms ease,
    border-color 180ms ease,
    background 180ms ease,
    box-shadow 180ms ease;
}

.dock-item:hover,
.dock-item:focus-visible {
  transform: translateY(-0.28rem) scale(1.05);
  color: #fffaf2;
  border-color: rgba(207, 164, 90, 0.36);
  background:
    radial-gradient(circle at 45% 18%, rgba(207, 164, 90, 0.22), transparent 2.4rem),
    rgba(255, 255, 255, 0.10);
  box-shadow:
    0 14px 34px rgba(2, 8, 16, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.18);
}

.dock-item.is-active {
  color: var(--cc-gold);
  border-color: rgba(207, 164, 90, 0.48);
  background:
    radial-gradient(circle at 50% 20%, rgba(207, 164, 90, 0.30), transparent 2.6rem),
    rgba(255, 255, 255, 0.12);
}

.dock-item.is-frequent-module:not(.is-active) {
  border-color: rgba(207, 164, 90, 0.22);
  background:
    radial-gradient(circle at 50% 20%, rgba(207, 164, 90, 0.14), transparent 2.4rem),
    rgba(255, 255, 255, 0.07);
}

.dock-item.is-hidden {
  display: none;
}

.dock-item svg {
  width: 1.28rem;
  height: 1.28rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.85;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.dock-item::after {
  content: attr(data-tooltip);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 0.56rem);
  min-width: max-content;
  padding: 0.38rem 0.56rem;
  border: 1px solid rgba(207, 164, 90, 0.18);
  border-radius: 0.62rem;
  color: #fffaf2;
  background: rgba(6, 18, 31, 0.82);
  box-shadow: 0 16px 34px rgba(2, 8, 16, 0.22);
  font-size: 0.72rem;
  font-weight: 760;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 0.3rem);
  transition: opacity 180ms ease, transform 180ms ease;
  backdrop-filter: blur(18px);
}

.dock-item:hover::after,
.dock-item:focus-visible::after {
  opacity: 1;
  transform: translate(-50%, 0);
}

.app-shell.is-route-oficinas .office-back-button,
.app-shell.is-route-oficinas:not(.is-sidebar-collapsed) .office-back-button,
.app-shell.is-route-oficinas .office-subnav-row,
.app-shell.is-route-oficinas:not(.is-sidebar-collapsed) .office-subnav-row {
  left: clamp(0.9rem, 2vw, 1.45rem);
}

.app-shell.is-fichas-route .main-content {
  padding-top: 0.72rem;
  padding-bottom: 0;
  background:
    radial-gradient(circle at 78% 4%, rgba(33, 78, 92, 0.34), transparent 30rem),
    radial-gradient(circle at 30% 94%, rgba(28, 89, 74, 0.24), transparent 32rem),
    radial-gradient(circle at 52% 52%, rgba(255, 250, 242, 0.16), transparent 24rem),
    linear-gradient(145deg, #becfc3 0%, #a7c1b4 46%, #8eb2a6 100%);
}

.app-shell.is-fichas-stack-route .view {
  height: 100%;
  overflow: hidden;
  padding-bottom: 0;
}

.app-shell.is-fichas-stack-route .fichas-ops-page {
  height: 100%;
  min-height: 0;
  grid-template-rows: auto auto minmax(0, 1fr);
  padding-top: 2.95rem;
  padding-bottom: 0.8rem;
}

.app-shell.is-fichas-route .fichas-ops-page {
  width: min(100%, 108rem);
}

.app-shell.is-fichas-route .office-subnav-row,
.app-shell.is-fichas-route:not(.is-sidebar-collapsed) .office-subnav-row {
  top: 0.84rem;
  left: clamp(0.9rem, 2vw, 1.45rem);
  z-index: 190;
}

.app-shell.is-fichas-route .topbar {
  position: relative;
  z-index: 190;
}

.ficha-query-toggle {
  width: 2.85rem;
  padding: 0.42rem;
  justify-content: center;
}

.ficha-query-toggle.is-active {
  border-color: rgba(31, 111, 175, 0.20);
  background:
    radial-gradient(circle at 50% 20%, rgba(31, 111, 175, 0.16), transparent 1.8rem),
    rgba(255, 250, 242, 0.88);
}

.app-shell.is-fichas-route .fichas-command-center {
  position: fixed;
  z-index: 185;
  left: 50%;
  bottom: clamp(1rem, 2.2vh, 1.45rem);
  width: min(calc(100vw - 2rem), 64rem);
  display: grid;
  gap: 0.5rem;
  padding: 0.68rem;
  border: 1px solid rgba(255, 250, 242, 0.28);
  border-radius: 1.35rem;
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 250, 242, 0.24), transparent 16rem),
    linear-gradient(145deg, rgba(247, 252, 249, 0.82), rgba(223, 239, 232, 0.66));
  box-shadow:
    0 24px 76px rgba(14, 45, 42, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.50);
  backdrop-filter: blur(24px) saturate(1.12);
  transform: translateX(-50%);
  transition:
    opacity 240ms ease,
    transform 320ms cubic-bezier(0.22, 1, 0.36, 1),
    max-height 320ms cubic-bezier(0.22, 1, 0.36, 1);
}

.app-shell.is-fichas-route .fichas-command-center.is-collapsed {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transform: translate(-50%, calc(100% + 1rem));
}

.app-shell.is-fichas-route .ficha-primary-search input {
  min-height: 3.35rem;
  border-color: rgba(31, 111, 175, 0.10);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.68),
    0 12px 28px rgba(14, 45, 42, 0.08);
}

.app-shell.is-fichas-route .ficha-filter-row {
  grid-template-columns: repeat(5, minmax(6.5rem, 1fr));
}

.app-shell.is-fichas-route .ficha-filter-row select {
  min-height: 2rem;
  background: rgba(255, 255, 255, 0.74);
}

.app-shell.is-fichas-route .ficha-card-grid {
  padding-bottom: 6.8rem;
}

.app-shell.is-fichas-stack-route .ficha-stack-stage {
  height: 100%;
  min-height: 0;
  border-color: rgba(255, 250, 242, 0.16);
  border-radius: 1.65rem;
  background:
    radial-gradient(circle at 50% 22%, rgba(255, 250, 242, 0.20), transparent 20rem),
    radial-gradient(circle at 78% 20%, rgba(31, 111, 175, 0.18), transparent 24rem),
    radial-gradient(circle at 28% 92%, rgba(31, 122, 86, 0.22), transparent 27rem),
    linear-gradient(145deg, rgba(55, 89, 85, 0.22), rgba(42, 77, 76, 0.18));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.24),
    inset 0 -34px 100px rgba(13, 49, 50, 0.24),
    0 24px 90px rgba(19, 53, 48, 0.14);
  perspective: 1200px;
}

.app-shell.is-fichas-stack-route .ficha-stack-stage::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(9, 28, 34, 0.26), transparent 22%, transparent 78%, rgba(9, 28, 34, 0.22)),
    radial-gradient(circle at 50% 90%, rgba(255, 250, 242, 0.14), transparent 28rem);
}

.app-shell.is-fichas-stack-route .ficha-stack-stage::after {
  z-index: 145;
  background:
    linear-gradient(110deg, transparent 0%, transparent 42%, rgba(255, 250, 242, 0.30) 50%, transparent 58%, transparent 100%);
}

.app-shell.is-fichas-stack-route .ficha-stack-hint {
  z-index: 150;
  color: rgba(235, 245, 239, 0.78);
  border-color: rgba(255, 250, 242, 0.16);
  background: rgba(11, 38, 44, 0.34);
  box-shadow: 0 16px 42px rgba(8, 28, 32, 0.18);
}

.app-shell.is-fichas-stack-route .ficha-stack-hint strong {
  color: #fffaf2;
}

.app-shell.is-fichas-stack-route .ficha-stack-item {
  top: 50%;
  width: min(25.5rem, calc(100% - 3rem));
  transform:
    translateX(-50%)
    translateY(-54%)
    translate(var(--stack-x), var(--stack-y))
    scale(var(--stack-scale))
    rotateX(calc(var(--i) * -0.28deg));
  filter: blur(calc(var(--i) * 0.32px)) saturate(calc(1 - var(--i) * 0.025));
}

.app-shell.is-fichas-stack-route .ficha-stack-item:not(.is-front) {
  opacity: calc(var(--stack-opacity) * 0.72);
}

.app-shell.is-fichas-stack-route .ficha-stack-item.is-front {
  opacity: 1;
  filter: drop-shadow(0 24px 42px rgba(7, 24, 32, 0.18));
}

.app-shell.is-fichas-stack-route .ficha-stack-item .ficha-card {
  background:
    radial-gradient(circle at 85% 0%, rgba(31, 111, 175, 0.08), transparent 12rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.82), rgba(247, 251, 249, 0.76));
  backdrop-filter: blur(18px) saturate(1.05);
}

.app-shell.is-fichas-stack-route .ficha-stack-item.is-front .ficha-card {
  background:
    radial-gradient(circle at 88% 0%, rgba(31, 111, 175, 0.12), transparent 12rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(248, 251, 250, 0.96));
  box-shadow:
    0 28px 70px rgba(11, 27, 46, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.62);
}

@keyframes fichaAutoStack {
  0% {
    opacity: 0.84;
    filter: blur(0);
    transform: translateX(-50%) translate(var(--spread-x), var(--spread-y)) scale(0.95);
  }
  58% {
    opacity: 0.92;
    filter: blur(0.45px);
  }
  100% {
    opacity: var(--stack-opacity);
    filter: blur(calc(var(--i) * 0.32px)) saturate(calc(1 - var(--i) * 0.025));
    transform:
      translateX(-50%)
      translateY(-54%)
      translate(var(--stack-x), var(--stack-y))
      scale(var(--stack-scale))
      rotateX(calc(var(--i) * -0.28deg));
  }
}

@media (max-width: 720px) {
  .app-dock {
    width: calc(100vw - 1.2rem);
    justify-content: center;
    overflow-x: auto;
  }

  .dock-item {
    flex: 0 0 auto;
    width: 3.1rem;
    height: 3.1rem;
  }

  .app-shell.is-fichas-route .fichas-command-center {
    width: calc(100vw - 1rem);
    bottom: 0.55rem;
  }

  .app-shell.is-fichas-route .ficha-filter-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Fichas: stack focus and separated bottom command controls */
.dock-hover-zone {
  height: 5.4rem;
}

.app-shell.is-fichas-route .ficha-primary-search {
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: end;
}

.ficha-filter-toggle {
  align-self: end;
  width: 3.15rem;
  min-height: 3.15rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid rgba(35, 101, 72, 0.14);
  border-radius: 50%;
  color: #236548;
  background:
    radial-gradient(circle at 45% 25%, rgba(35, 101, 72, 0.10), transparent 1.7rem),
    rgba(255, 255, 255, 0.70);
  cursor: pointer;
  transition: transform 180ms ease, color 180ms ease, border-color 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

.ficha-filter-toggle:hover,
.ficha-filter-toggle.is-active {
  transform: translateY(-1px);
  color: #0b1b2e;
  border-color: rgba(35, 101, 72, 0.24);
  background:
    radial-gradient(circle at 45% 25%, rgba(35, 101, 72, 0.16), transparent 1.7rem),
    rgba(250, 253, 251, 0.92);
  box-shadow: 0 12px 28px rgba(14, 45, 42, 0.08);
}

.ficha-filter-toggle svg {
  width: 1.08rem;
  height: 1.08rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ficha-filter-panel {
  display: grid;
  margin-top: 0.52rem;
  padding: 0.62rem;
  border: 1px solid rgba(35, 101, 72, 0.10);
  border-radius: 1rem;
  background:
    radial-gradient(circle at 12% 0%, rgba(255, 250, 242, 0.42), transparent 14rem),
    rgba(238, 248, 242, 0.52);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.40);
  transition:
    opacity 220ms ease,
    max-height 280ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 280ms cubic-bezier(0.22, 1, 0.36, 1),
    padding 220ms ease,
    margin 220ms ease;
}

.ficha-filter-panel.is-collapsed {
  max-height: 0;
  margin-top: 0;
  padding-block: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transform: translateY(0.45rem);
  border-color: transparent;
}

.app-shell.is-fichas-stack-route .ficha-stack-stage {
  position: fixed;
  z-index: 80;
  top: clamp(5.8rem, 12vh, 7.4rem);
  left: clamp(1.3rem, 2.1vw, 2.3rem);
  right: clamp(1.3rem, 2.1vw, 2.3rem);
  bottom: 8.5rem;
  height: auto;
  min-height: 24rem;
}

.app-shell.is-fichas-stack-route .fichas-ops-page.is-query-open .ficha-stack-stage {
  bottom: 8.7rem;
}

.app-shell.is-fichas-stack-route .fichas-ops-page.is-query-open.is-filters-open .ficha-stack-stage {
  bottom: 13rem;
}

.app-shell.is-fichas-stack-route .ficha-stack-item {
  top: 48%;
}

.app-shell.is-fichas-stack-route .ficha-stack-item.is-front {
  transform:
    translateX(-50%)
    translateY(-54%)
    translate(0, 0)
    scale(1)
    rotateX(0deg);
}

@media (max-width: 720px) {
  .dock-hover-zone {
    height: 6rem;
  }

  .app-shell.is-fichas-route .ficha-primary-search {
    grid-template-columns: minmax(0, 1fr) auto auto;
  }

  .app-shell.is-fichas-stack-route .ficha-stack-stage {
    left: 0.75rem;
    right: 0.75rem;
    top: 5.5rem;
    bottom: 8.2rem;
  }
}

/* App dock and Fichas immersive operating surface */
.dock-hover-zone {
  height: 7.4rem;
}

.app-shell.is-fichas-route {
  min-height: 100vh;
  overflow: hidden;
  background:
    radial-gradient(circle at 76% 6%, rgba(34, 76, 91, 0.34), transparent 32rem),
    radial-gradient(circle at 18% 88%, rgba(22, 78, 67, 0.26), transparent 34rem),
    linear-gradient(145deg, #a8c0b5 0%, #91afa5 48%, #789f97 100%);
}

.app-shell.is-fichas-route .main-content {
  min-height: 100vh;
  overflow: hidden;
  padding: clamp(0.65rem, 1.4vw, 1rem);
  background:
    radial-gradient(circle at 82% 7%, rgba(21, 62, 78, 0.38), transparent 30rem),
    radial-gradient(circle at 24% 94%, rgba(13, 64, 55, 0.30), transparent 34rem),
    radial-gradient(circle at 50% 46%, rgba(255, 250, 242, 0.12), transparent 32rem),
    linear-gradient(145deg, rgba(166, 192, 181, 0.94), rgba(126, 164, 155, 0.96));
}

.app-shell.is-fichas-route .view {
  width: 100%;
  max-width: none;
  height: 100%;
  overflow: hidden;
}

.app-shell.is-fichas-route .topbar {
  position: fixed;
  z-index: 235;
  top: 1rem;
  right: clamp(1rem, 2vw, 1.55rem);
  width: auto;
  pointer-events: none;
}

.app-shell.is-fichas-route .topbar-session {
  pointer-events: auto;
}

.app-shell.is-fichas-route .office-subnav-row,
.app-shell.is-fichas-route:not(.is-sidebar-collapsed) .office-subnav-row {
  position: fixed;
  z-index: 260;
  top: clamp(0.9rem, 2vh, 1.18rem);
  left: clamp(1rem, 2vw, 1.55rem);
  pointer-events: auto;
}

.app-shell.is-fichas-route .ficha-widget-grid {
  position: fixed;
  z-index: 205;
  top: clamp(4.7rem, 9vh, 5.7rem);
  left: clamp(1rem, 2vw, 1.55rem);
  right: clamp(1rem, 2vw, 1.55rem);
  max-height: 5.4rem;
  pointer-events: auto;
}

.app-shell.is-fichas-route .ficha-widget-grid.is-stats-hidden {
  max-height: 0;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-0.45rem);
}

.app-shell.is-fichas-stack-route .fichas-ops-page {
  height: 100vh;
  width: 100%;
  padding: 0;
  overflow: hidden;
}

.app-shell.is-fichas-stack-route .fichas-ops-page.is-stats-open .ficha-stack-stage {
  top: clamp(8.4rem, 16vh, 10.2rem);
}

.app-shell.is-fichas-stack-route .fichas-ops-page.is-stats-closed .ficha-stack-stage {
  top: clamp(4.9rem, 10vh, 6.3rem);
}

.app-shell.is-fichas-stack-route .ficha-stack-stage {
  position: fixed;
  z-index: 80;
  left: clamp(1rem, 2vw, 1.55rem);
  right: clamp(1rem, 2vw, 1.55rem);
  bottom: 8.6rem;
  min-height: 22rem;
  border-color: rgba(255, 250, 242, 0.18);
  background:
    radial-gradient(circle at 50% 18%, rgba(255, 250, 242, 0.18), transparent 20rem),
    radial-gradient(circle at 78% 16%, rgba(23, 82, 103, 0.20), transparent 25rem),
    radial-gradient(circle at 24% 90%, rgba(14, 70, 60, 0.26), transparent 28rem),
    linear-gradient(145deg, rgba(26, 64, 68, 0.25), rgba(17, 53, 56, 0.20));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.24),
    inset 0 -34px 100px rgba(8, 33, 39, 0.25),
    0 26px 90px rgba(8, 32, 36, 0.18);
}

.app-shell.is-fichas-stack-route .ficha-stack-item:not(.is-front) {
  opacity: calc(var(--stack-opacity) * 0.58);
  filter: blur(calc(1.4px + var(--i) * 0.4px)) saturate(0.92);
}

.app-shell.is-fichas-stack-route .ficha-stack-item.is-front .ficha-card {
  opacity: 1;
  background:
    radial-gradient(circle at 86% 0%, rgba(31, 111, 175, 0.13), transparent 12rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.985), rgba(248, 251, 250, 0.985));
}

.app-shell.is-fichas-route .fichas-command-center {
  z-index: 230;
  bottom: clamp(0.9rem, 2.2vh, 1.3rem);
  width: min(calc(100vw - 2rem), 65rem);
}

.app-shell.is-fichas-route .fichas-command-center.is-collapsed {
  max-height: 12rem;
  opacity: 0.78;
  overflow: visible;
  pointer-events: auto;
  transform: translate(-50%, calc(100% - 1.15rem));
}

.app-shell.is-fichas-route .fichas-command-center.is-collapsed:hover,
.app-shell.is-fichas-route .fichas-command-center.is-collapsed:focus-within {
  opacity: 1;
  transform: translateX(-50%);
}

.app-shell.is-fichas-route .fichas-command-center.is-collapsed .ficha-filter-panel {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
}

.app-shell.is-fichas-route .ficha-filter-panel {
  padding-top: 0.42rem;
  border-top: 1px solid rgba(31, 111, 175, 0.08);
}

.app-shell.is-fichas-route .ficha-primary-search {
  grid-template-columns: minmax(0, 1fr) auto auto;
}

@media (max-width: 720px) {
  .dock-hover-zone {
    height: 7.8rem;
  }

  .app-shell.is-fichas-route .ficha-widget-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-height: 10.5rem;
  }

  .app-shell.is-fichas-stack-route .fichas-ops-page.is-stats-open .ficha-stack-stage {
    top: 10.5rem;
  }
}

/* App dock refinements and Oficinas/Fichas spatial polish */
.app-dock {
  gap: 0.86rem;
  padding-inline: 0.76rem;
}

.dock-item img {
  width: 1.72rem;
  height: 1.72rem;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 4px 10px rgba(2, 8, 16, 0.18));
}

.app-shell.is-route-oficinas .main-content {
  min-height: 100vh;
  background:
    radial-gradient(circle at 77% 5%, rgba(24, 76, 96, 0.34), transparent 34rem),
    radial-gradient(circle at 18% 90%, rgba(18, 82, 67, 0.28), transparent 34rem),
    radial-gradient(circle at 50% 46%, rgba(255, 250, 242, 0.16), transparent 34rem),
    linear-gradient(145deg, #b5cec1 0%, #9fbcaf 46%, #87ab9f 100%);
}

.app-shell.is-route-oficinas .main-content::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(8, 30, 39, 0.16), transparent 24%, transparent 78%, rgba(8, 30, 39, 0.12)),
    radial-gradient(circle at 52% 58%, rgba(255, 250, 242, 0.12), transparent 32rem);
}

.app-shell.is-route-oficinas .topbar,
.app-shell.is-route-oficinas .view {
  position: relative;
  z-index: 1;
}

.app-shell.is-fichas-route:not(.is-fichas-stack-route) .ficha-card-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1.15rem, 2vw, 1.6rem);
  align-items: stretch;
}

.app-shell.is-fichas-route:not(.is-fichas-stack-route) .ficha-card {
  min-width: 0;
}

.app-shell.is-fichas-route .fichas-command-center.is-collapsed,
.app-shell.is-fichas-route .fichas-command-center.is-collapsed:hover,
.app-shell.is-fichas-route .fichas-command-center.is-collapsed:focus-within {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transform: translate(-50%, calc(100% + 1.2rem));
}

@media (max-width: 1180px) {
  .app-shell.is-fichas-route:not(.is-fichas-stack-route) .ficha-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 880px) {
  .app-shell.is-fichas-route:not(.is-fichas-stack-route) .ficha-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .app-dock {
    gap: 0.5rem;
  }

  .app-shell.is-fichas-route:not(.is-fichas-stack-route) .ficha-card-grid {
    grid-template-columns: 1fr;
  }
}

/* Fichas final composition: full-surface glass, floating search, fixed session tools */
.app-shell.is-fichas-route .topbar {
  position: fixed !important;
  z-index: 285;
  top: clamp(1rem, 2vh, 1.25rem) !important;
  right: clamp(1rem, 2vw, 1.45rem) !important;
  left: auto !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex;
  justify-content: flex-end;
  pointer-events: none;
}

.app-shell.is-fichas-route .topbar-title {
  display: none;
}

.app-shell.is-fichas-route .topbar-session {
  position: relative;
  z-index: 286;
  pointer-events: auto;
}

.app-shell.is-fichas-stack-route .ficha-stack-stage {
  inset: 0 !important;
  width: auto;
  min-height: 100vh;
  border: 0;
  border-radius: 0;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.16),
    inset 0 -50px 140px rgba(7, 28, 36, 0.22);
  background:
    radial-gradient(circle at 50% 18%, rgba(255, 250, 242, 0.18), transparent 20rem),
    radial-gradient(circle at 78% 16%, rgba(23, 82, 103, 0.22), transparent 28rem),
    radial-gradient(circle at 20% 88%, rgba(11, 70, 58, 0.28), transparent 32rem),
    linear-gradient(145deg, rgba(86, 132, 124, 0.84), rgba(58, 103, 100, 0.90));
}

.app-shell.is-fichas-stack-route .ficha-stack-stage::before {
  background:
    linear-gradient(90deg, rgba(7, 28, 36, 0.30), transparent 20%, transparent 78%, rgba(7, 28, 36, 0.22)),
    radial-gradient(circle at 50% 90%, rgba(255, 250, 242, 0.13), transparent 31rem);
}

.app-shell.is-fichas-stack-route .ficha-stack-item {
  top: 49%;
}

.app-shell.is-fichas-route .fichas-command-center {
  width: min(calc(100vw - 3rem), 62rem);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

.app-shell.is-fichas-route .ficha-primary-search {
  padding: 0;
  border: 0;
  background: transparent;
}

.app-shell.is-fichas-route .ficha-primary-search label {
  gap: 0;
}

.app-shell.is-fichas-route .ficha-primary-search label > span {
  display: none;
}

.app-shell.is-fichas-route .ficha-primary-search input {
  min-height: 3.2rem;
  border-color: rgba(255, 250, 242, 0.28);
  background: rgba(255, 255, 255, 0.58);
  box-shadow:
    0 24px 72px rgba(9, 35, 38, 0.20),
    inset 0 1px 0 rgba(255, 255, 255, 0.58);
  backdrop-filter: blur(24px) saturate(1.08);
}

.app-shell.is-fichas-route .ficha-filter-panel {
  margin-top: 0.5rem;
  padding: 0.58rem;
  border: 1px solid rgba(255, 250, 242, 0.16);
  border-radius: 1rem;
  background: rgba(238, 248, 242, 0.34);
  box-shadow: 0 18px 54px rgba(9, 35, 38, 0.12);
  backdrop-filter: blur(18px);
}

.dock-item[data-route="biblioteca"] span {
  width: 2rem;
  height: 2rem;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 0.5rem;
}

.dock-item[data-route="biblioteca"] img {
  width: 3rem;
  height: 3rem;
  max-width: none;
  object-fit: contain;
  transform: scale(1.28);
  transform-origin: center;
}

/* Fichas: fixed command bar, larger stack focus and breathable multiview */
.app-shell.is-fichas-route .ficha-query-toggle,
.app-shell.is-fichas-stack-route .ficha-stack-hint {
  display: none !important;
}

.app-shell.is-fichas-stack-route .ficha-stack-item {
  top: 42%;
  width: min(34rem, calc(100% - 3rem));
}

.app-shell.is-fichas-stack-route .ficha-stack-item.is-front {
  transform:
    translateX(-50%)
    translateY(-51%)
    translate(0, 0)
    scale(1)
    rotateX(0deg);
}

.app-shell.is-fichas-stack-route .ficha-stack-item .ficha-card {
  min-height: 29rem;
}

.app-shell.is-fichas-route .fichas-command-center {
  width: min(calc(100vw - 3.5rem), 61rem);
  opacity: 0.72;
}

.app-shell.is-fichas-route .fichas-command-center:hover,
.app-shell.is-fichas-route .fichas-command-center:focus-within {
  opacity: 1;
}

.app-shell.is-fichas-route .ficha-primary-search input {
  border-color: rgba(255, 250, 242, 0.14);
  color: rgba(11, 27, 46, 0.88);
  background: rgba(255, 255, 255, 0.24);
  box-shadow:
    0 18px 60px rgba(9, 35, 38, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.34);
  backdrop-filter: blur(22px) saturate(1.05);
}

.app-shell.is-fichas-route .ficha-primary-search input::placeholder {
  color: rgba(11, 27, 46, 0.46);
}

.app-shell.is-fichas-route:not(.is-fichas-stack-route) .main-content {
  min-height: 100vh;
  overflow-y: auto;
  overflow-x: hidden;
}

.app-shell.is-fichas-route:not(.is-fichas-stack-route) .view {
  height: auto;
  min-height: 100vh;
  overflow: visible;
  padding-top: 0;
  padding-bottom: 8rem;
}

.app-shell.is-fichas-route:not(.is-fichas-stack-route) .fichas-ops-page {
  height: auto;
  min-height: 100vh;
  overflow: visible;
  padding-top: clamp(7.4rem, 13vh, 9rem);
  padding-bottom: 8rem;
}

.app-shell.is-fichas-route:not(.is-fichas-stack-route) .fichas-ops-page.is-stats-open {
  padding-top: clamp(10.8rem, 18vh, 12.4rem);
}

.app-shell.is-fichas-route:not(.is-fichas-stack-route) .fichas-ops-page.is-stats-closed {
  padding-top: clamp(6.4rem, 11vh, 7.6rem);
}

.app-shell.is-fichas-route:not(.is-fichas-stack-route) .ficha-card-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.55rem, 2.7vw, 2.35rem);
  padding: 0 clamp(1rem, 2vw, 1.75rem) 8rem;
}

@media (max-width: 1120px) {
  .app-shell.is-fichas-route:not(.is-fichas-stack-route) .ficha-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .app-shell.is-fichas-stack-route .ficha-stack-item {
    width: min(30rem, calc(100% - 1.4rem));
  }

  .app-shell.is-fichas-route:not(.is-fichas-stack-route) .ficha-card-grid {
    grid-template-columns: 1fr;
  }
}

/* Fichas: more vertical physical card proportion */
.ficha-card {
  min-height: 24rem;
}

.app-shell.is-fichas-stack-route .ficha-stack-item {
  width: min(31.5rem, calc(100% - 3rem));
}

.app-shell.is-fichas-stack-route .ficha-stack-item .ficha-card {
  min-height: 34rem;
  padding: 1.16rem;
  gap: 0.95rem;
}

.app-shell.is-fichas-stack-route .ficha-stack-item.is-front {
  transform:
    translateX(-50%)
    translateY(-50%)
    translate(0, 0)
    scale(1)
    rotateX(0deg);
}

.app-shell.is-fichas-route:not(.is-fichas-stack-route) .ficha-card {
  min-height: 31rem;
  padding: 1.15rem;
  gap: 0.92rem;
}

.app-shell.is-fichas-route:not(.is-fichas-stack-route) .ficha-card-grid {
  align-items: stretch;
}

.app-shell.is-my-fichas-route .my-fichas-page {
  width: min(100%, 96rem);
}

.my-fichas-grid {
  grid-template-columns: repeat(auto-fill, minmax(21rem, 1fr));
  gap: clamp(1.35rem, 2.4vw, 2rem);
}

.my-ficha-card {
  min-height: 25rem;
  padding: 1.25rem;
  border-radius: 1.35rem;
  gap: 1rem;
}

.my-ficha-card-main {
  gap: 0.44rem;
}

.my-ficha-card-main > strong,
.my-ficha-card strong {
  font-size: clamp(1.32rem, 2vw, 1.65rem);
  line-height: 1.08;
}

.my-ficha-card .ficha-indicator-groups {
  padding: 0.48rem;
}

@media (max-width: 680px) {
  .app-shell.is-fichas-stack-route .ficha-stack-item {
    width: min(29rem, calc(100% - 1.2rem));
  }

  .app-shell.is-fichas-stack-route .ficha-stack-item .ficha-card {
    min-height: 31rem;
  }

  .my-fichas-grid {
    grid-template-columns: 1fr;
  }
}

/* Fichas: calm operational state after the entrance motion */
.app-shell.is-fichas-stack-route .ficha-stack-item.is-front:has(.ficha-payment-movement) {
  top: 50%;
  transform:
    translateX(-50%)
    translateY(-45%)
    translate(0, 0)
    scale(1)
    rotateX(0deg);
}

.app-shell.is-fichas-route .ficha-card.status-declarada {
  background:
    radial-gradient(circle at 86% 2%, rgba(151, 103, 167, 0.115), transparent 12.5rem),
    radial-gradient(circle at 12% 100%, rgba(202, 150, 181, 0.07), transparent 14rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.955), rgba(250, 247, 251, 0.91));
}

.app-shell.is-fichas-route .ficha-card.status-conanticipo {
  background:
    radial-gradient(circle at 86% 2%, rgba(31, 122, 86, 0.12), transparent 12.5rem),
    radial-gradient(circle at 10% 100%, rgba(98, 166, 131, 0.075), transparent 14rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.955), rgba(246, 251, 248, 0.91));
}

.app-shell.is-fichas-route .ficha-card.status-pagada,
.app-shell.is-fichas-route .ficha-card.status-linkenviado,
.app-shell.is-fichas-route .ficha-card.status-confirmada,
.app-shell.is-fichas-route .ficha-card.status-enregistro,
.app-shell.is-fichas-route .ficha-card.status-sentada {
  background:
    radial-gradient(circle at 86% 2%, rgba(31, 111, 175, 0.105), transparent 12.5rem),
    radial-gradient(circle at 12% 100%, rgba(45, 139, 151, 0.07), transparent 14rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.955), rgba(246, 250, 252, 0.91));
}

.app-shell.is-fichas-route .ficha-card.status-vencida,
.app-shell.is-fichas-route .ficha-card.status-rezagada {
  background:
    radial-gradient(circle at 86% 2%, rgba(190, 123, 50, 0.11), transparent 12.5rem),
    radial-gradient(circle at 12% 100%, rgba(151, 103, 167, 0.06), transparent 14rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.955), rgba(252, 249, 244, 0.91));
}

.app-shell.is-fichas-stack-route .ficha-stack-item.is-front .ficha-card {
  box-shadow:
    0 32px 72px rgba(7, 24, 32, 0.25),
    0 0 0 1px rgba(255, 255, 255, 0.38),
    inset 0 1px 0 rgba(255, 255, 255, 0.74);
}

/* Fichas telemetry: return to six quiet dots without the vertical start rails */
.ficha-indicator-groups {
  gap: 0.42rem;
  padding: 0.44rem 0.58rem;
  border: 1px solid rgba(23, 58, 94, 0.095);
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.64), transparent 2.8rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.58), rgba(234, 243, 240, 0.42));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.62),
    0 8px 20px rgba(11, 27, 46, 0.045);
}

.ficha-indicator-groups::before,
.ficha-indicator-pair:first-child::after,
.ficha-indicator-pair + .ficha-indicator-pair::before {
  display: none;
}

.ficha-indicator-pair,
.ficha-indicator-pair:first-child {
  flex-direction: row;
  gap: 0.28rem;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.ficha-indicator-dot {
  width: 0.76rem;
  height: 0.76rem;
  background: rgba(255, 255, 255, 0.82);
  box-shadow:
    inset 0 1px 2px rgba(11, 27, 46, 0.055),
    0 1px 6px rgba(11, 27, 46, 0.035);
}

.ficha-indicator-dot.is-active {
  border-color: rgba(31, 122, 86, 0.30);
  background:
    radial-gradient(circle at 34% 28%, rgba(255, 255, 255, 0.82), transparent 0.2rem),
    linear-gradient(145deg, #2d966e, #1f7a56);
  box-shadow:
    0 0 0 3px rgba(31, 122, 86, 0.085),
    0 4px 10px rgba(31, 122, 86, 0.13);
}

/* Dock: crop the Biblioteca artwork into the same visual footprint as the app icons */
.dock-item[data-route="biblioteca"] span {
  width: 1.72rem;
  height: 1.72rem;
  border-radius: 0.54rem;
}

.dock-item[data-route="biblioteca"] img {
  width: 2.7rem;
  height: 2.7rem;
  object-fit: contain;
  transform: translateY(0.01rem) scale(1.08);
}

/* Fichas: contextual history lives beside the protagonist card */
.ficha-context-panel {
  position: fixed;
  z-index: 170;
  top: clamp(6.2rem, 11vh, 7.4rem);
  right: clamp(1rem, 2.2vw, 2rem);
  width: clamp(18rem, 23vw, 25rem);
  max-height: min(61vh, 34rem);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0.78rem;
  padding: 1rem;
  border: 1px solid rgba(255, 250, 242, 0.24);
  border-radius: 1.25rem;
  background:
    radial-gradient(circle at 100% 0%, rgba(255, 250, 242, 0.18), transparent 12rem),
    linear-gradient(145deg, rgba(236, 247, 242, 0.42), rgba(220, 237, 233, 0.24));
  box-shadow:
    0 26px 74px rgba(7, 28, 36, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.34);
  backdrop-filter: blur(26px) saturate(1.08);
  animation: fichaContextPanelIn 260ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.ficha-context-panel-head {
  display: grid;
  gap: 0.18rem;
}

.ficha-context-panel-head span {
  color: rgba(11, 27, 46, 0.56);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ficha-context-panel-head strong {
  color: #0b1b2e;
  font-size: 1.04rem;
  line-height: 1.1;
}

.ficha-context-panel-list {
  display: grid;
  align-content: start;
  gap: 0.54rem;
  max-height: min(49vh, 26rem);
  overflow-y: auto;
  padding-right: 0.12rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(31, 111, 175, 0.34) transparent;
}

.ficha-context-panel-list::-webkit-scrollbar {
  width: 6px;
}

.ficha-context-panel-list::-webkit-scrollbar-track {
  background: transparent;
}

.ficha-context-panel-list::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(31, 111, 175, 0.34);
}

@keyframes fichaContextPanelIn {
  from {
    opacity: 0;
    transform: translateX(1.2rem) scale(0.985);
    filter: blur(10px);
  }
  to {
    opacity: 1;
    transform: translateX(0) scale(1);
    filter: blur(0);
  }
}

@media (max-width: 1180px) {
  .ficha-context-panel {
    top: auto;
    left: 50%;
    right: auto;
    bottom: 8.4rem;
    width: min(34rem, calc(100vw - 2rem));
    max-height: 16rem;
    transform: translateX(-50%);
  }

  @keyframes fichaContextPanelIn {
    from {
      opacity: 0;
      transform: translate(-50%, 0.8rem) scale(0.985);
      filter: blur(10px);
    }
    to {
      opacity: 1;
      transform: translate(-50%, 0) scale(1);
      filter: blur(0);
    }
  }
}

/* Fichas: taller cards and a clearer contextual ledger */
.ficha-card {
  min-height: 25.6rem;
}

.app-shell.is-fichas-stack-route .ficha-stack-item {
  width: min(30.4rem, calc(100% - 3rem));
}

.app-shell.is-fichas-stack-route .ficha-stack-item .ficha-card {
  min-height: 36rem;
}

.app-shell.is-fichas-route:not(.is-fichas-stack-route) .ficha-card {
  min-height: 33rem;
}

.my-ficha-card {
  min-height: 27rem;
}

.ficha-context-panel {
  top: clamp(5.8rem, 10vh, 7rem);
  width: clamp(17.4rem, 21vw, 23rem);
  max-height: min(68vh, 40rem);
  padding: 1.06rem;
  border-color: rgba(255, 250, 242, 0.36);
  background:
    radial-gradient(circle at 100% 0%, rgba(255, 250, 242, 0.26), transparent 12rem),
    linear-gradient(145deg, rgba(245, 251, 248, 0.68), rgba(221, 239, 234, 0.50));
  box-shadow:
    0 30px 86px rgba(7, 28, 36, 0.34),
    0 0 0 1px rgba(255, 255, 255, 0.20),
    inset 0 1px 0 rgba(255, 255, 255, 0.48);
  transform-origin: left center;
  animation: fichaContextPanelUnfold 340ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.ficha-context-panel-list {
  max-height: min(57vh, 32rem);
}

.ficha-context-panel .ficha-payment-movement {
  border-color: rgba(23, 58, 94, 0.13);
  background: rgba(255, 250, 242, 0.72);
  box-shadow:
    0 10px 24px rgba(7, 28, 36, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.62);
}

.ficha-context-panel .ficha-payment-movement.is-audit {
  background: rgba(247, 237, 250, 0.76);
}

.ficha-context-panel .ficha-payment-movement strong {
  color: #071827;
}

.ficha-context-panel .ficha-payment-movement span,
.ficha-context-panel .ficha-payment-movement small,
.ficha-context-panel .ficha-payment-movement em {
  color: #425463 !important;
}

@keyframes fichaContextPanelUnfold {
  from {
    opacity: 0;
    clip-path: inset(0 100% 0 0 round 1.25rem);
    transform: translateX(-1rem) scaleX(0.92);
    filter: blur(12px);
  }
  56% {
    opacity: 1;
  }
  to {
    opacity: 1;
    clip-path: inset(0 0 0 0 round 1.25rem);
    transform: translateX(0) scaleX(1);
    filter: blur(0);
  }
}

@media (max-width: 1180px) {
  .ficha-context-panel {
    width: min(31rem, calc(100vw - 2rem));
    max-height: 18rem;
    transform-origin: center bottom;
    animation: fichaContextPanelUnfoldMobile 300ms cubic-bezier(0.22, 1, 0.36, 1) both;
  }

  .ficha-context-panel-list {
    max-height: 12rem;
  }

  @keyframes fichaContextPanelUnfoldMobile {
    from {
      opacity: 0;
      clip-path: inset(100% 0 0 0 round 1.25rem);
      transform: translate(-50%, 0.8rem) scaleY(0.92);
      filter: blur(10px);
    }
    to {
      opacity: 1;
      clip-path: inset(0 0 0 0 round 1.25rem);
      transform: translate(-50%, 0) scaleY(1);
      filter: blur(0);
    }
  }
}

/* Oficinas and administrative pages: single-screen operational composition */
.app-shell.is-route-oficinas .office-launcher {
  height: calc(100vh - 5.25rem);
  min-height: 0;
  overflow: hidden !important;
  row-gap: clamp(0.75rem, 1.5vh, 1.2rem);
  grid-template-columns: minmax(0, 62rem) minmax(12rem, 19rem);
  column-gap: clamp(1rem, 2vw, 2rem);
}

.app-shell.is-route-oficinas .office-launcher .office-image-button {
  min-height: clamp(10.2rem, 22vh, 15.4rem);
  padding: clamp(1rem, 1.8vw, 1.45rem);
}

.app-shell.is-route-oficinas .office-library-shortcuts {
  margin-top: clamp(2.6rem, 7vh, 5.2rem);
  align-self: start;
}

.app-shell.is-route-oficinas .office-library-row {
  grid-template-columns: repeat(2, minmax(0, 6.2rem));
  gap: 0.68rem;
}

.app-shell.is-route-oficinas .office-library-shortcuts h3 {
  margin-bottom: 0.62rem;
  font-size: 0.78rem;
}

.app-shell.is-route-oficinas .admin-general-page {
  height: calc(100vh - 4.25rem);
  min-height: 0;
  overflow: hidden !important;
  gap: 0.42rem;
  padding-top: 2.2rem !important;
}

.app-shell.is-route-oficinas .admin-view-tabs {
  padding: 0.2rem;
}

.app-shell.is-route-oficinas .admin-view-tabs button {
  min-height: 1.9rem;
  padding: 0 0.72rem;
  font-size: 0.72rem;
}

.app-shell.is-route-oficinas .admin-hero-summary {
  padding: 0.66rem 0.78rem;
  gap: 0.72rem;
}

.app-shell.is-route-oficinas .admin-hero-summary strong {
  font-size: clamp(1.65rem, 3vw, 2.45rem);
}

.app-shell.is-route-oficinas .admin-metric-grid {
  gap: 0.36rem;
}

.app-shell.is-route-oficinas .admin-metric-card {
  gap: 0.18rem;
  padding: 0.48rem;
  border-radius: 0.82rem;
}

.app-shell.is-route-oficinas .admin-metric-card > span {
  width: 1.45rem;
  height: 1.45rem;
}

.app-shell.is-route-oficinas .admin-metric-card svg {
  width: 0.78rem;
  height: 0.78rem;
}

.app-shell.is-route-oficinas .admin-metric-card strong {
  font-size: clamp(0.86rem, 1.2vw, 1.05rem);
}

.app-shell.is-route-oficinas .admin-chart-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.38rem;
}

.app-shell.is-route-oficinas .admin-chart-panel {
  gap: 0.42rem;
  padding: 0.54rem;
  border-radius: 0.82rem;
}

.app-shell.is-route-oficinas .admin-bar-list {
  gap: 0.34rem;
}

.app-shell.is-route-oficinas .admin-bar-row {
  grid-template-columns: minmax(4.1rem, 0.48fr) minmax(0, 1fr) auto;
  gap: 0.38rem;
}

.app-shell.is-route-oficinas .admin-bar-row span,
.app-shell.is-route-oficinas .admin-bar-row strong {
  font-size: 0.66rem;
}

.app-shell.is-route-oficinas .admin-bar-row div {
  height: 0.42rem;
}

@media (max-width: 1180px) {
  .app-shell.is-route-oficinas .office-launcher,
  .app-shell.is-route-oficinas .admin-general-page {
    height: auto;
    overflow: visible !important;
  }

  .app-shell.is-route-oficinas .admin-chart-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Fichas: stronger vertical reading and closer contextual history */
.ficha-card {
  min-height: 27rem;
}

.app-shell.is-fichas-stack-route .ficha-stack-item {
  width: min(29rem, calc(100% - 3rem));
}

.app-shell.is-fichas-stack-route .ficha-stack-item .ficha-card {
  min-height: 38rem;
}

.app-shell.is-fichas-route:not(.is-fichas-stack-route) .ficha-card {
  min-height: 35rem;
}

.app-shell.is-my-fichas-route .my-ficha-card {
  min-height: 29rem;
}

.ficha-context-panel {
  right: clamp(4.5rem, 9vw, 10.5rem);
  width: clamp(16.5rem, 19vw, 21rem);
  max-height: min(72vh, 43rem);
}

.ficha-context-panel-list {
  max-height: min(61vh, 35rem);
}

/* Fichas: hierarchy, generation atmosphere and contextual history refinements */
.office-database-button.is-icon-only {
  width: 2.85rem;
  min-width: 2.85rem;
  padding: 0;
  justify-content: center;
}

.office-database-button.is-icon-only .office-back-icon svg {
  transform: translateX(1px);
}

.ficha-card {
  position: relative;
  isolation: isolate;
}

.ficha-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  border-radius: inherit;
  opacity: 0.88;
  background:
    radial-gradient(circle at 0% 0%, rgba(31, 111, 175, 0.10), transparent 12.5rem),
    linear-gradient(135deg, rgba(255, 255, 255, 0.34), transparent 36%);
}

.ficha-card.generation-c79::before {
  background:
    radial-gradient(circle at 0% 0%, rgba(31, 111, 175, 0.16), transparent 13rem),
    linear-gradient(135deg, rgba(214, 232, 245, 0.34), transparent 38%);
}

.ficha-card.generation-c80::before {
  background:
    radial-gradient(circle at 0% 0%, rgba(193, 146, 63, 0.16), transparent 13rem),
    linear-gradient(135deg, rgba(250, 239, 211, 0.36), transparent 38%);
}

.ficha-card.generation-c81::before {
  background:
    radial-gradient(circle at 0% 0%, rgba(121, 92, 167, 0.15), transparent 13rem),
    linear-gradient(135deg, rgba(236, 226, 249, 0.34), transparent 38%);
}

.ficha-card > * {
  position: relative;
  z-index: 1;
}

.ficha-card-head {
  gap: 1rem;
  margin-bottom: 0.16rem;
}

.ficha-id-details summary {
  gap: 0.34rem;
}

.ficha-id-details summary strong {
  line-height: 1;
}

.ficha-card-person {
  gap: 0.42rem;
  margin-top: 0.08rem;
}

.ficha-card-person strong {
  font-size: clamp(1.58rem, 2.25vw, 2.05rem);
  line-height: 1.02;
  letter-spacing: 0;
}

.app-shell.is-fichas-stack-route .ficha-card-person strong {
  font-size: clamp(1.82rem, 2.75vw, 2.35rem);
}

.app-shell.is-fichas-route:not(.is-fichas-stack-route) .ficha-card-person strong {
  font-size: clamp(1.72rem, 2.12vw, 2.18rem);
}

.app-shell.is-fichas-stack-route .ficha-context-panel {
  left: calc(50% + 15rem);
  right: auto;
  width: clamp(17.5rem, 20vw, 22.5rem);
}

.ficha-context-panel .ficha-payment-movement.method-efectivo {
  color: #0f7650;
  border-color: rgba(31, 122, 86, 0.24);
  background:
    linear-gradient(135deg, rgba(31, 122, 86, 0.16), rgba(255, 250, 242, 0.76));
  box-shadow:
    0 10px 24px rgba(31, 122, 86, 0.10),
    inset 0 1px 0 rgba(255, 255, 255, 0.74);
}

.ficha-context-panel .ficha-payment-movement.method-transferencia {
  color: #b65d16;
  border-color: rgba(218, 139, 58, 0.28);
  background:
    linear-gradient(135deg, rgba(218, 139, 58, 0.18), rgba(255, 250, 242, 0.76));
  box-shadow:
    0 10px 24px rgba(218, 139, 58, 0.11),
    inset 0 1px 0 rgba(255, 255, 255, 0.74);
}

.ficha-context-panel .ficha-payment-movement.method-tarjeta {
  color: #5f45b0;
  border-color: rgba(106, 85, 170, 0.25);
  background:
    linear-gradient(135deg, rgba(106, 85, 170, 0.17), rgba(255, 250, 242, 0.78));
  box-shadow:
    0 10px 24px rgba(106, 85, 170, 0.10),
    inset 0 1px 0 rgba(255, 255, 255, 0.74);
}

.ficha-context-panel .ficha-payment-movement.method-efectivo span {
  color: #0f7650 !important;
}

.ficha-context-panel .ficha-payment-movement.method-transferencia span {
  color: #b65d16 !important;
}

.ficha-context-panel .ficha-payment-movement.method-tarjeta span {
  color: #5f45b0 !important;
}

@media (max-width: 1180px) {
  .app-shell.is-fichas-stack-route .ficha-context-panel {
    left: 50%;
    right: auto;
  }
}

/* Fichas: stable focus spacing and quieter contextual panel */
.app-shell.is-fichas-stack-route .ficha-stack-item {
  top: 49%;
}

.app-shell.is-fichas-stack-route .ficha-stack-item.is-front {
  transform:
    translateX(-50%)
    translateY(-47%)
    translate(0, 0)
    scale(1)
    rotateX(0deg);
}

.app-shell.is-fichas-stack-route .fichas-command-center {
  bottom: clamp(0.18rem, 0.45vh, 0.45rem);
}

.app-shell.is-fichas-stack-route .fichas-ops-page.is-query-open .ficha-stack-stage,
.app-shell.is-fichas-stack-route .fichas-ops-page.is-query-open.is-filters-open .ficha-stack-stage {
  bottom: 0;
}

.app-shell.is-fichas-stack-route .ficha-context-panel {
  left: calc(50% + 17.6rem);
  right: auto;
  top: clamp(6.4rem, 10vh, 7.6rem);
  width: clamp(14.8rem, 15.8vw, 17.4rem);
  max-height: min(78vh, 46rem);
  padding: 0.72rem;
}

.ficha-context-panel-list {
  max-height: min(72vh, 42rem);
}

@media (max-width: 1180px) {
  .app-shell.is-fichas-stack-route .ficha-stack-item {
    top: 52%;
  }

  .app-shell.is-fichas-stack-route .ficha-context-panel {
    left: 50%;
    top: auto;
    width: min(30rem, calc(100vw - 2rem));
    max-height: 18rem;
  }
}

/* Fichas: slimmer command search */
.app-shell.is-fichas-route .ficha-primary-search input {
  min-height: 2.52rem;
  padding-inline: 0.96rem;
  font-size: 0.9rem;
}

.app-shell.is-fichas-route .ficha-filter-toggle,
.app-shell.is-fichas-route .ficha-filter-reset {
  width: 2.52rem;
  min-height: 2.52rem;
}

.app-shell.is-fichas-route .ficha-filter-toggle svg,
.app-shell.is-fichas-route .ficha-filter-reset svg {
  width: 0.92rem;
  height: 0.92rem;
}

/* Fichas: clearer command search contrast without changing scale */
.app-shell.is-fichas-route .fichas-command-center {
  opacity: 0.88;
}

.app-shell.is-fichas-route .fichas-command-center:hover,
.app-shell.is-fichas-route .fichas-command-center:focus-within {
  opacity: 1;
}

.app-shell.is-fichas-route .ficha-primary-search input {
  color: rgba(7, 24, 39, 0.96);
  background: rgba(255, 255, 255, 0.34);
  border-color: rgba(255, 250, 242, 0.30);
  box-shadow:
    0 18px 58px rgba(9, 35, 38, 0.17),
    inset 0 1px 0 rgba(255, 255, 255, 0.46);
}

.app-shell.is-fichas-route .fichas-command-center:hover .ficha-primary-search input,
.app-shell.is-fichas-route .fichas-command-center:focus-within .ficha-primary-search input {
  background: rgba(255, 255, 255, 0.48);
  border-color: rgba(255, 250, 242, 0.46);
  box-shadow:
    0 22px 68px rgba(9, 35, 38, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.62);
}

.app-shell.is-fichas-route .ficha-primary-search input::placeholder {
  color: rgba(7, 24, 39, 0.58);
}

/* Global payment method color language: efectivo green, transferencia violet, tarjeta orange */
.ficha-payment-entry select.method-transferencia,
.ficha-abono-form select.method-transferencia,
.ficha-payment-movement.method-transferencia,
.payment-method-select.method-transferencia,
.payment-total-pill.method-transferencia {
  color: #5f45b0;
  background: rgba(106, 85, 170, 0.16);
  border-color: rgba(106, 85, 170, 0.34);
}

.ficha-payment-entry select.method-tarjeta,
.ficha-abono-form select.method-tarjeta,
.ficha-payment-movement.method-tarjeta,
.payment-method-select.method-tarjeta,
.payment-total-pill.method-tarjeta {
  color: #b65d16;
  background: rgba(218, 139, 58, 0.18);
  border-color: rgba(218, 139, 58, 0.38);
}

.ficha-payment-movement.method-transferencia span,
.ficha-context-panel .ficha-payment-movement.method-transferencia span {
  color: #5f45b0 !important;
}

.ficha-payment-movement.method-tarjeta span,
.ficha-context-panel .ficha-payment-movement.method-tarjeta span {
  color: #b65d16 !important;
}

.income-summary-card.method-transferencia {
  border-color: rgba(106, 85, 170, 0.18);
  background: rgba(106, 85, 170, 0.08);
}

.income-summary-card.method-tarjeta {
  border-color: rgba(218, 139, 58, 0.22);
  background: rgba(218, 139, 58, 0.10);
}

.income-ticket-card.method-transferencia {
  border-color: rgba(106, 85, 170, 0.24);
  background: linear-gradient(90deg, rgba(106, 85, 170, 0.11), rgba(250, 253, 255, 0.84));
}

.income-ticket-card.method-tarjeta {
  border-color: rgba(218, 139, 58, 0.30);
  background: linear-gradient(90deg, rgba(218, 139, 58, 0.12), rgba(250, 253, 255, 0.84));
}

.income-ticket-card.method-transferencia .income-ticket-amount span {
  color: #5f45b0;
  background: rgba(106, 85, 170, 0.16);
}

.income-ticket-card.method-tarjeta .income-ticket-amount span {
  color: #b65d16;
  background: rgba(218, 139, 58, 0.18);
}

.ficha-context-panel .ficha-payment-movement.method-transferencia {
  color: #5f45b0;
  border-color: rgba(106, 85, 170, 0.25);
  background:
    linear-gradient(135deg, rgba(106, 85, 170, 0.17), rgba(255, 250, 242, 0.78));
  box-shadow:
    0 10px 24px rgba(106, 85, 170, 0.10),
    inset 0 1px 0 rgba(255, 255, 255, 0.74);
}

.ficha-context-panel .ficha-payment-movement.method-tarjeta {
  color: #b65d16;
  border-color: rgba(218, 139, 58, 0.28);
  background:
    linear-gradient(135deg, rgba(218, 139, 58, 0.18), rgba(255, 250, 242, 0.76));
  box-shadow:
    0 10px 24px rgba(218, 139, 58, 0.11),
    inset 0 1px 0 rgba(255, 255, 255, 0.74);
}

.ficha-abono-form select option[value="Efectivo"],
.payment-method-select option[value="Efectivo"] {
  color: #0f7650;
  background: #e6f3ed;
  font-weight: 800;
}

.ficha-abono-form select option[value="Transferencia"],
.payment-method-select option[value="Transferencia"] {
  color: #5f45b0;
  background: #eee9f8;
  font-weight: 800;
}

.ficha-abono-form select option[value="Tarjeta"],
.payment-method-select option[value="Tarjeta"] {
  color: #b65d16;
  background: #f8eadc;
  font-weight: 800;
}

/* Fichas multiview: keep scrolling usable but visually quiet */
.app-shell.is-fichas-route:not(.is-fichas-stack-route) .main-content,
.app-shell.is-fichas-route:not(.is-fichas-stack-route) .view,
.app-shell.is-fichas-route:not(.is-fichas-stack-route) .fichas-ops-page {
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 250, 242, 0.10) transparent;
}

.app-shell.is-fichas-route:not(.is-fichas-stack-route) .main-content::-webkit-scrollbar,
.app-shell.is-fichas-route:not(.is-fichas-stack-route) .view::-webkit-scrollbar,
.app-shell.is-fichas-route:not(.is-fichas-stack-route) .fichas-ops-page::-webkit-scrollbar {
  width: 6px;
}

.app-shell.is-fichas-route:not(.is-fichas-stack-route) .main-content::-webkit-scrollbar-track,
.app-shell.is-fichas-route:not(.is-fichas-stack-route) .view::-webkit-scrollbar-track,
.app-shell.is-fichas-route:not(.is-fichas-stack-route) .fichas-ops-page::-webkit-scrollbar-track {
  background: transparent;
}

.app-shell.is-fichas-route:not(.is-fichas-stack-route) .main-content::-webkit-scrollbar-thumb,
.app-shell.is-fichas-route:not(.is-fichas-stack-route) .view::-webkit-scrollbar-thumb,
.app-shell.is-fichas-route:not(.is-fichas-stack-route) .fichas-ops-page::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(255, 250, 242, 0.10);
}

.app-shell.is-fichas-route:not(.is-fichas-stack-route) .main-content::-webkit-scrollbar-thumb:hover,
.app-shell.is-fichas-route:not(.is-fichas-stack-route) .view::-webkit-scrollbar-thumb:hover,
.app-shell.is-fichas-route:not(.is-fichas-stack-route) .fichas-ops-page::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 250, 242, 0.18);
}

/* Oficinas launcher: fit main screen without page scrollbar */
.app-shell.is-route-oficinas:has(.office-launcher) .main-content,
.app-shell.is-route-oficinas:has(.office-launcher) .view {
  height: 100vh;
  overflow: hidden !important;
}

.app-shell.is-route-oficinas:has(.office-launcher) .office-launcher {
  height: calc(100vh - 4.7rem);
  max-height: calc(100vh - 4.7rem);
  overflow: hidden !important;
  grid-template-columns: minmax(0, 56rem) minmax(10rem, 16.5rem);
  column-gap: clamp(0.9rem, 1.6vw, 1.35rem);
  row-gap: 0.58rem;
  align-items: start;
}

.app-shell.is-route-oficinas:has(.office-launcher) .office-launcher .office-access-grid {
  gap: clamp(0.8rem, 1.25vw, 1.05rem);
}

.app-shell.is-route-oficinas:has(.office-launcher) .office-launcher .office-image-button {
  min-height: clamp(9.2rem, 20vh, 13.3rem);
  padding: clamp(0.86rem, 1.35vw, 1.16rem);
  gap: 0.62rem;
}

.app-shell.is-route-oficinas:has(.office-launcher) .office-action-icon {
  width: clamp(2.45rem, 4.8vw, 3.65rem);
  height: clamp(2.45rem, 4.8vw, 3.65rem);
}

.app-shell.is-route-oficinas:has(.office-launcher) .office-action-copy strong {
  font-size: clamp(1.28rem, 2.2vw, 1.92rem);
  line-height: 1.04;
}

.app-shell.is-route-oficinas:has(.office-launcher) .office-action-copy small {
  font-size: clamp(0.82rem, 1.15vw, 1.06rem);
  line-height: 1.45;
}

.app-shell.is-route-oficinas:has(.office-launcher) .office-library-shortcuts {
  margin-top: clamp(1.8rem, 5vh, 3.4rem);
}

.app-shell.is-route-oficinas:has(.office-launcher) .office-library-row {
  grid-template-columns: repeat(2, minmax(0, 5.45rem));
  gap: 0.54rem;
}

.app-shell.is-route-oficinas:has(.office-launcher) .office-library-shortcut {
  min-height: clamp(7.2rem, 15.5vh, 9.15rem);
}

.app-shell.is-route-oficinas:has(.office-launcher) .office-library-shortcuts h3 {
  margin-bottom: 0.46rem;
  font-size: 0.72rem;
}

/* Fichas: simple view never exposes statistics, and detail routes fit without page scrollbars */
.app-shell.is-fichas-stack-route .ficha-widget-grid,
.app-shell.is-fichas-stack-route .ficha-widget-grid:not(.is-stats-hidden) {
  max-height: 0 !important;
  gap: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transform: translateY(-0.45rem) !important;
}

.app-shell.is-ficha-detail-route .main-content,
.app-shell.is-participant-detail-route .main-content,
.app-shell.is-ficha-detail-route .view,
.app-shell.is-participant-detail-route .view {
  height: 100vh;
  max-height: 100vh;
  overflow: hidden !important;
}

body:has(.app-shell.is-ficha-detail-route),
body:has(.app-shell.is-participant-detail-route),
.app-shell.is-ficha-detail-route,
.app-shell.is-participant-detail-route {
  height: 100vh;
  overflow: hidden !important;
}

.app-shell.is-ficha-detail-route .view,
.app-shell.is-participant-detail-route .view {
  width: min(100%, 94rem);
  padding-bottom: 0;
}

.app-shell.is-ficha-detail-route .ficha-detail-page {
  height: calc(100vh - 4.85rem);
  max-height: calc(100vh - 4.85rem);
  gap: 0.58rem;
  overflow: hidden !important;
  align-content: start;
}

.app-shell.is-ficha-detail-route .ficha-detail-card {
  max-height: calc(100vh - 8.3rem);
  overflow: hidden !important;
  gap: 0.58rem;
  padding: clamp(0.78rem, 1.35vw, 1rem);
}

.app-shell.is-ficha-detail-route .ficha-detail-head h2 {
  font-size: clamp(1.45rem, 2.2vw, 2.12rem);
}

.app-shell.is-ficha-detail-route .ficha-detail-actions {
  margin-top: -0.15rem;
}

.app-shell.is-ficha-detail-route .ficha-detail-grid {
  gap: 0.48rem;
}

.app-shell.is-ficha-detail-route .ficha-detail-item,
.app-shell.is-ficha-detail-route .ficha-detail-dreams,
.app-shell.is-ficha-detail-route .ficha-edit-form {
  padding: 0.58rem;
}

.app-shell.is-ficha-detail-route .ficha-detail-item span,
.app-shell.is-ficha-detail-route .ficha-detail-dreams strong {
  font-size: 0.64rem;
}

.app-shell.is-ficha-detail-route .ficha-detail-dreams {
  gap: 0.32rem;
}

.app-shell.is-ficha-detail-route .ficha-detail-dreams p {
  line-height: 1.34;
  font-size: 0.86rem;
}

.app-shell.is-participant-detail-route .participant-detail-page {
  height: calc(100vh - 4.85rem);
  max-height: calc(100vh - 4.85rem);
  min-height: 0;
  gap: 0.62rem;
  overflow: hidden !important;
  grid-template-rows: auto minmax(0, 1fr);
}

.app-shell.is-participant-detail-route .global-topbar {
  min-height: 2.8rem;
}

.app-shell.is-participant-detail-route .participant-detail-grid {
  height: 100%;
  min-height: 0;
  overflow: hidden !important;
  grid-template-columns: minmax(0, 1fr) minmax(16rem, 0.34fr);
  gap: 0.72rem;
  align-items: stretch;
}

.app-shell.is-participant-detail-route .global-focus-card {
  height: 100%;
  min-height: 0;
  overflow: hidden !important;
  gap: 0.62rem;
  padding: clamp(0.88rem, 1.45vw, 1.12rem);
}

.app-shell.is-participant-detail-route .global-focus-card::before,
.app-shell.is-participant-detail-route .global-focus-card::after {
  inset: 0.55rem;
}

.app-shell.is-participant-detail-route .global-focus-head h2 {
  font-size: clamp(1.62rem, 2.7vw, 2.5rem);
  line-height: 1;
}

.app-shell.is-participant-detail-route .global-focus-head p {
  margin-top: 0.26rem;
  font-size: 0.92rem;
}

.app-shell.is-participant-detail-route .global-focus-telemetry {
  gap: 0.42rem;
}

.app-shell.is-participant-detail-route .global-finance-orbit {
  gap: 0.68rem;
  padding: 0.62rem;
}

.app-shell.is-participant-detail-route .global-finance-orbit strong {
  font-size: clamp(1.25rem, 2.1vw, 1.78rem);
}

.app-shell.is-participant-detail-route .global-progress-ring {
  width: 3.55rem;
  height: 3.55rem;
}

.app-shell.is-participant-detail-route .global-focus-meta {
  gap: 0.42rem;
}

.app-shell.is-participant-detail-route .global-focus-meta span {
  padding: 0.55rem;
}

.app-shell.is-participant-detail-route .participant-detail-side {
  min-height: 0;
  overflow: hidden !important;
  gap: 0.48rem;
  grid-template-rows: minmax(0, 1fr) auto auto;
}

.app-shell.is-participant-detail-route .participant-detail-panel {
  min-height: 0;
  overflow: hidden !important;
  gap: 0.36rem;
  padding: 0.72rem;
}

.app-shell.is-participant-detail-route .participant-detail-panel > span {
  font-size: 0.58rem;
}

.app-shell.is-participant-detail-route .participant-history-list {
  gap: 0.34rem;
  overflow: hidden !important;
}

.app-shell.is-participant-detail-route .participant-history-list div {
  padding: 0.52rem;
}

.app-shell.is-participant-detail-route .participant-history-list span,
.app-shell.is-participant-detail-route .participant-history-list small,
.app-shell.is-participant-detail-route .participant-detail-panel p {
  font-size: 0.7rem;
  line-height: 1.34;
}

/* Dock app icons: full-bleed app artwork and separate the Fichas shortcut */
.app-dock {
  gap: clamp(0.78rem, 1.45vw, 1.12rem);
  overflow: visible;
}

.dock-item {
  width: 4rem;
  height: 4rem;
  overflow: hidden;
  padding: 0;
  border-radius: 1.18rem;
  isolation: isolate;
}

.dock-item > span {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  overflow: hidden;
  border-radius: inherit;
}

.dock-item img,
.dock-item[data-route="biblioteca"] img {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  display: block;
  object-fit: cover;
  transform: none;
  filter:
    drop-shadow(0 5px 12px rgba(2, 8, 16, 0.20))
    saturate(1.03);
}

.dock-item[data-route="biblioteca"] span {
  width: 100%;
  height: 100%;
  border-radius: inherit;
}

.dock-item-shortcut {
  margin-left: clamp(0.72rem, 1.25vw, 1rem);
}

.dock-item-shortcut::before {
  content: "";
  position: absolute;
  left: calc(-0.5 * clamp(0.72rem, 1.25vw, 1rem));
  top: 0.48rem;
  bottom: 0.48rem;
  width: 1px;
  border-radius: 999px;
  background: linear-gradient(
    180deg,
    transparent,
    rgba(255, 250, 242, 0.28),
    rgba(207, 164, 90, 0.24),
    transparent
  );
  pointer-events: none;
}

@media (max-width: 560px) {
  .app-dock {
    gap: 0.58rem;
  }

  .dock-item {
    width: 3.55rem;
    height: 3.55rem;
    border-radius: 1.04rem;
  }

  .dock-item-shortcut {
    margin-left: 0.48rem;
  }
}

@media (hover: none), (pointer: coarse) {
  .dock-hover-zone {
    height: calc(5.6rem + env(safe-area-inset-bottom));
    bottom: 0;
    pointer-events: auto;
    touch-action: manipulation;
  }

  .app-dock {
    bottom: calc(1.05rem + env(safe-area-inset-bottom));
  }

  .app-shell.is-fichas-query-open .dock-hover-zone,
  .app-shell.is-document-reading .dock-hover-zone {
    opacity: 1;
    pointer-events: auto;
    transform: none;
  }

  .dock-hover-zone:hover + .app-dock,
  .app-dock:hover {
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, calc(100% + 1.2rem)) scale(0.98);
  }

  .app-shell.is-touch-dock-open .app-dock,
  .app-shell.is-touch-dock-open .dock-hover-zone:hover + .app-dock,
  .app-shell.is-touch-dock-open .app-dock:hover,
  .app-shell.is-touch-dock-open .app-dock:focus-within {
    opacity: 1;
    pointer-events: auto;
    transform: translate(-50%, 0) scale(1);
  }

  .app-shell.is-touch-dock-open .dock-hover-zone {
    pointer-events: auto;
  }

}

.biblioteca-dock-invoker {
  position: fixed;
  z-index: 235;
  left: calc(max(0.85rem, env(safe-area-inset-left)) + 0.15rem);
  bottom: clamp(1.65rem, 3.4vh, 2.35rem);
  width: 1.1rem;
  height: 2.75rem;
  display: none;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
  opacity: 0.52;
  transition: opacity 180ms ease, filter 180ms ease, transform 180ms ease;
}

.biblioteca-dock-invoker::before {
  content: "";
  width: 2px;
  height: 2.25rem;
  border-radius: 999px;
  background: rgba(167, 213, 246, 0.54);
  box-shadow: 0 0 0 rgba(52, 162, 235, 0);
  transition: background 180ms ease, box-shadow 180ms ease, height 180ms ease;
}

.app-shell.is-documents-immersive .biblioteca-dock-invoker {
  display: grid;
}

.app-shell.is-documents-immersive .biblioteca-dock-invoker:hover,
.app-shell.is-documents-immersive.is-touch-dock-open .biblioteca-dock-invoker {
  opacity: 0.82;
  filter: drop-shadow(0 0 10px rgba(74, 176, 244, 0.18));
}

.app-shell.is-documents-immersive .biblioteca-dock-invoker:hover::before,
.app-shell.is-documents-immersive.is-touch-dock-open .biblioteca-dock-invoker::before {
  height: 2.45rem;
  background: rgba(190, 228, 255, 0.76);
  box-shadow: 0 0 16px rgba(72, 174, 244, 0.2);
}

.app-shell.is-documents-immersive .dock-hover-zone {
  pointer-events: none;
}

.app-shell.is-documents-immersive.is-touch-dock-open .app-dock,
.app-shell.is-documents-immersive.is-touch-dock-open .app-dock:hover,
.app-shell.is-documents-immersive.is-touch-dock-open .app-dock:focus-within {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0) scale(1);
}

/* Timeline orbital */
.dock-item .dock-orbit-icon {
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 50% 32%, rgba(190, 224, 255, 0.22), transparent 2.1rem),
    linear-gradient(145deg, rgba(7, 20, 36, 0.98), rgba(2, 6, 14, 0.98));
}

.dock-item .dock-timeline-icon {
  width: 100%;
  height: 100%;
  padding: 0.78rem;
  box-sizing: border-box;
  fill: none;
  stroke: rgba(235, 247, 255, 0.92);
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 0 10px rgba(125, 190, 255, 0.34));
}

.dock-item .dock-timeline-icon circle {
  fill: rgba(235, 247, 255, 0.95);
  stroke: rgba(125, 190, 255, 0.92);
}

.app-shell.is-timeline-route {
  grid-template-columns: 0 minmax(0, 1fr);
  background: #020611;
}

.app-shell.is-timeline-route::before,
.app-shell.is-timeline-route .sidebar,
.app-shell.is-timeline-route .topbar {
  display: none;
}

.app-shell.is-timeline-route .main-content {
  grid-column: 1 / -1;
  display: block;
  width: 100vw;
  height: 100vh;
  padding: 0;
  overflow: hidden;
  background:
    radial-gradient(circle at 52% 44%, rgba(31, 86, 129, 0.20), transparent 30rem),
    radial-gradient(circle at 82% 18%, rgba(142, 185, 218, 0.10), transparent 25rem),
    linear-gradient(180deg, #01040a 0%, #03101c 54%, #01050d 100%);
}

.app-shell.is-timeline-route .view {
  width: 100%;
  height: 100vh;
  padding: 0;
  overflow: hidden;
}

.timeline-page {
  position: relative;
  z-index: 0;
  isolation: isolate;
  width: 100%;
  height: 100vh;
  min-height: 0;
  overflow: hidden;
  color: rgba(235, 247, 255, 0.92);
  background:
    radial-gradient(circle at 50% 112%, rgba(45, 119, 178, 0.24), transparent 27rem),
    radial-gradient(circle at 12% 14%, rgba(87, 132, 170, 0.09), transparent 20rem),
    linear-gradient(180deg, rgba(1, 4, 10, 0), rgba(1, 6, 13, 0.92));
}

.timeline-page::before,
.timeline-page::after,
.timeline-space-field {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.timeline-page::before {
  z-index: 0;
  background:
    radial-gradient(circle at 12% 20%, rgba(255, 255, 255, 0.18) 0 1px, transparent 1.6px),
    radial-gradient(circle at 72% 12%, rgba(255, 255, 255, 0.14) 0 1px, transparent 1.8px),
    radial-gradient(circle at 88% 50%, rgba(255, 255, 255, 0.12) 0 1px, transparent 1.8px);
  background-size: 17rem 13rem, 23rem 19rem, 29rem 17rem;
  opacity: 0.25;
}

.timeline-page::after {
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(0, 0, 0, 0.64), transparent 18%, transparent 82%, rgba(0, 0, 0, 0.66)),
    linear-gradient(180deg, rgba(0, 0, 0, 0.18), transparent 28%, rgba(0, 0, 0, 0.40));
}

.timeline-space-field {
  z-index: 0;
  opacity: 0.24;
  background:
    repeating-linear-gradient(90deg, transparent 0 7.8rem, rgba(135, 180, 220, 0.08) 7.82rem, transparent 7.86rem),
    repeating-linear-gradient(0deg, transparent 0 5.8rem, rgba(135, 180, 220, 0.045) 5.82rem, transparent 5.86rem);
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.55), transparent 72%);
}

.timeline-mission-strip {
  position: absolute;
  z-index: 4;
  top: clamp(1rem, 2vw, 1.35rem);
  left: clamp(1rem, 2.4vw, 2rem);
  display: inline-flex;
  align-items: center;
  gap: clamp(0.65rem, 1.4vw, 1.2rem);
  color: rgba(235, 247, 255, 0.58);
  font-size: clamp(0.62rem, 0.85vw, 0.78rem);
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.timeline-mission-strip strong {
  color: #ffffff;
  font-size: clamp(1.2rem, 2.2vw, 2.1rem);
  font-weight: 800;
  line-height: 1;
  text-shadow: 0 0 24px rgba(180, 220, 255, 0.22);
}

.timeline-filter-row {
  position: absolute;
  z-index: 5;
  top: clamp(1rem, 2vw, 1.35rem);
  right: clamp(10rem, 18vw, 18rem);
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.45rem;
  max-width: min(45rem, 56vw);
}

.timeline-campus-selector {
  position: absolute;
  z-index: 6;
  top: clamp(1rem, 2vw, 1.35rem);
  right: clamp(1rem, 2.4vw, 2rem);
  display: inline-grid;
  grid-template-columns: auto auto;
  align-items: center;
  gap: 0.52rem;
  padding: 0.35rem 0.42rem 0.35rem 0.7rem;
  border: 1px solid rgba(186, 219, 248, 0.16);
  border-radius: 999px;
  color: rgba(235, 247, 255, 0.68);
  background: rgba(7, 19, 33, 0.48);
  box-shadow: 0 14px 38px rgba(0, 0, 0, 0.18);
  backdrop-filter: blur(16px) saturate(1.2);
}

.timeline-campus-selector span {
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  white-space: nowrap;
}

.timeline-campus-selector select {
  min-height: 1.65rem;
  max-width: 7.2rem;
  padding: 0 1.4rem 0 0.48rem;
  border: 1px solid rgba(205, 231, 255, 0.16);
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.9);
  background: rgba(255, 255, 255, 0.08);
  font: inherit;
  font-size: 0.72rem;
  font-weight: 800;
  outline: none;
}

.timeline-campus-selector select option {
  color: #071321;
  background: #f4f9ff;
}

.timeline-filter-row button {
  min-height: 1.9rem;
  padding: 0.38rem 0.68rem;
  border: 1px solid rgba(186, 219, 248, 0.16);
  border-radius: 999px;
  color: rgba(235, 247, 255, 0.62);
  background: rgba(7, 19, 33, 0.42);
  backdrop-filter: blur(16px) saturate(1.2);
  cursor: pointer;
  transition: color 160ms ease, border-color 160ms ease, background 160ms ease, transform 160ms ease;
}

.timeline-filter-row button:hover,
.timeline-filter-row button.is-active {
  color: #ffffff;
  border-color: rgba(205, 231, 255, 0.44);
  background: rgba(85, 137, 179, 0.18);
  transform: translateY(-1px);
}

.timeline-detail-card {
  position: absolute;
  z-index: 4;
  top: clamp(5rem, 9vh, 6.5rem);
  left: clamp(1rem, 4vw, 4rem);
  width: min(54rem, 60vw);
  max-height: 46vh;
  display: grid;
  gap: clamp(0.7rem, 1.1vw, 0.95rem);
  padding: clamp(1rem, 2vw, 1.45rem);
  border: 1px solid rgba(188, 222, 255, 0.14);
  border-radius: 0.7rem;
  background:
    linear-gradient(135deg, rgba(12, 30, 50, 0.62), rgba(4, 12, 24, 0.42));
  box-shadow:
    0 32px 90px rgba(0, 0, 0, 0.30),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(22px) saturate(1.16);
}

.timeline-detail-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.5rem 1rem;
  align-items: start;
}

.timeline-detail-heading p {
  grid-column: 1 / -1;
  margin: 0;
  color: rgba(191, 219, 243, 0.58);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.timeline-detail-heading h2 {
  margin: 0;
  color: #ffffff;
  font-size: clamp(1.28rem, 2.5vw, 2.35rem);
  line-height: 0.98;
  letter-spacing: 0;
  max-width: 16ch;
}

.timeline-status-pill {
  justify-self: end;
  padding: 0.42rem 0.62rem;
  border: 1px solid rgba(169, 216, 255, 0.20);
  border-radius: 999px;
  color: rgba(236, 248, 255, 0.82);
  background: rgba(126, 179, 224, 0.11);
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
}

.timeline-detail-copy {
  max-width: 48rem;
  margin: 0;
  color: rgba(222, 238, 252, 0.74);
  font-size: clamp(0.9rem, 1.2vw, 1rem);
  line-height: 1.55;
}

.timeline-metric-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
}

.timeline-metric-row div {
  min-width: 0;
  padding: 0.65rem 0.72rem;
  border: 1px solid rgba(188, 222, 255, 0.10);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.035);
}

.timeline-metric-row span,
.timeline-metric-row strong {
  display: block;
}

.timeline-metric-row span {
  color: rgba(189, 215, 239, 0.52);
  font-size: 0.62rem;
  font-weight: 800;
  text-transform: uppercase;
}

.timeline-metric-row strong {
  margin-top: 0.15rem;
  color: rgba(255, 255, 255, 0.88);
  font-size: 0.86rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.timeline-drawer-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.5rem;
  min-height: 0;
}

.timeline-disclosure {
  min-width: 0;
  border: 1px solid rgba(188, 222, 255, 0.10);
  border-radius: 0.5rem;
  background: rgba(1, 8, 17, 0.26);
  overflow: hidden;
}

.timeline-disclosure summary {
  list-style: none;
  cursor: pointer;
  padding: 0.62rem 0.7rem;
  color: rgba(235, 247, 255, 0.84);
  font-size: 0.76rem;
  font-weight: 800;
}

.timeline-disclosure summary::-webkit-details-marker {
  display: none;
}

.timeline-disclosure ul {
  max-height: 7.5rem;
  margin: 0;
  padding: 0 0.72rem 0.72rem 1.45rem;
  overflow: auto;
  color: rgba(218, 236, 252, 0.68);
  font-size: 0.78rem;
  line-height: 1.45;
}

.timeline-orbit-stage {
  position: absolute;
  z-index: 3;
  left: clamp(1rem, 2vw, 2rem);
  right: clamp(1rem, 2vw, 2rem);
  bottom: clamp(4.9rem, 9vh, 6.1rem);
  height: min(40vh, 25rem);
}

.timeline-page-fallback {
  display: grid;
  place-items: center;
}

.timeline-fallback-card {
  position: relative;
  z-index: 5;
  display: grid;
  gap: 0.35rem;
  width: min(24rem, calc(100vw - 2rem));
  padding: 1rem 1.15rem;
  border: 1px solid rgba(188, 222, 255, 0.16);
  border-radius: 0.65rem;
  color: rgba(235, 247, 255, 0.86);
  background: rgba(7, 19, 33, 0.62);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(18px);
  text-align: center;
}

.timeline-fallback-card strong {
  color: #ffffff;
  font-size: 1rem;
}

.timeline-fallback-card span {
  color: rgba(212, 232, 250, 0.62);
  font-size: 0.82rem;
}

.timeline-orbit-lines,
.timeline-node-layer {
  position: absolute;
  inset: 0;
}

.timeline-orbit-lines {
  overflow: visible;
}

.timeline-orbit-lines path {
  fill: none;
  vector-effect: non-scaling-stroke;
}

.timeline-orbit-shadow {
  stroke: rgba(103, 156, 206, 0.10);
  stroke-width: 18;
  filter: blur(16px);
}

.timeline-orbit-main {
  stroke: rgba(238, 248, 255, 0.84);
  stroke-width: 1.8;
  filter: drop-shadow(0 0 8px rgba(176, 222, 255, 0.28));
}

.timeline-orbit-secondary {
  stroke: rgba(178, 214, 244, 0.16);
  stroke-width: 1.1;
}

.timeline-node {
  position: absolute;
  left: var(--node-x);
  top: var(--node-y);
  width: 1.18rem;
  height: 1.18rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: #ffffff;
  background: transparent;
  cursor: pointer;
  transform: translate(-50%, -50%);
  transition: opacity 160ms ease, transform 160ms ease, filter 160ms ease;
}

.timeline-node:hover,
.timeline-node.is-active {
  z-index: 8;
  transform: translate(-50%, -50%) scale(1.28);
}

.timeline-node.is-muted {
  opacity: 0.18;
  filter: saturate(0.45);
}

.timeline-node-dot {
  width: 0.56rem;
  height: 0.56rem;
  border: 1px solid rgba(235, 247, 255, 0.78);
  border-radius: 50%;
  background: rgba(235, 247, 255, 0.78);
  box-shadow: 0 0 14px rgba(160, 217, 255, 0.28);
}

.timeline-node.importance-alta .timeline-node-dot {
  width: 0.72rem;
  height: 0.72rem;
  border-color: rgba(175, 224, 255, 0.92);
  background: rgba(175, 224, 255, 0.90);
}

.timeline-node.importance-principal .timeline-node-dot {
  width: 1rem;
  height: 1rem;
  border: 2px solid rgba(255, 255, 255, 0.94);
  background:
    radial-gradient(circle, #ffffff 0 22%, rgba(154, 214, 255, 0.92) 24% 55%, rgba(154, 214, 255, 0.18) 58%);
  box-shadow:
    0 0 0 0.42rem rgba(126, 196, 255, 0.08),
    0 0 28px rgba(176, 226, 255, 0.62);
}

.timeline-node.is-active .timeline-node-dot {
  border-color: #ffffff;
  background: #ffffff;
  box-shadow:
    0 0 0 0.42rem rgba(142, 207, 255, 0.12),
    0 0 28px rgba(220, 244, 255, 0.72);
}

.timeline-node-label {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 0.5rem);
  min-width: 8.6rem;
  max-width: 11rem;
  display: none;
  padding: 0.46rem 0.56rem;
  border: 1px solid rgba(199, 229, 255, 0.16);
  border-radius: 0.48rem;
  color: rgba(235, 247, 255, 0.9);
  background: rgba(5, 15, 28, 0.78);
  box-shadow: 0 16px 42px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(14px);
  transform: translateX(-50%);
  pointer-events: none;
}

.timeline-node.importance-principal .timeline-node-label,
.timeline-node.is-active .timeline-node-label,
.timeline-node:hover .timeline-node-label {
  display: grid;
  gap: 0.12rem;
}

.timeline-node-label small {
  color: rgba(171, 210, 243, 0.65);
  font-size: 0.58rem;
  font-weight: 800;
  text-transform: uppercase;
}

.timeline-node-label strong {
  color: #ffffff;
  font-size: 0.74rem;
  line-height: 1.12;
}

@media (max-width: 900px) {
  .timeline-filter-row {
    top: 4.5rem;
    left: clamp(1rem, 2.4vw, 2rem);
    right: clamp(1rem, 2.4vw, 2rem);
    justify-content: flex-start;
    max-width: calc(100vw - 2rem);
  }

  .timeline-campus-selector {
    top: 1rem;
    grid-template-columns: 1fr;
    justify-items: end;
    gap: 0.24rem;
  }

  .timeline-detail-card {
    top: 8.2rem;
    left: 1rem;
    right: 1rem;
    width: auto;
    max-height: 42vh;
  }

  .timeline-drawer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .timeline-node-label {
    min-width: 7rem;
    max-width: 9rem;
  }
}

@media (max-width: 640px) {
  .timeline-metric-row {
    grid-template-columns: 1fr;
  }

  .timeline-drawer-grid {
    display: none;
  }

  .timeline-detail-card {
    max-height: 36vh;
  }
}

/* Timeline: quiet room mode */
.app-shell.is-timeline-route .main-content {
  background:
    radial-gradient(ellipse at 50% 64%, rgba(210, 230, 245, 0.105), rgba(77, 118, 148, 0.045) 23rem, transparent 46rem),
    radial-gradient(ellipse at 50% 75%, rgba(125, 168, 201, 0.105), transparent 39rem),
    linear-gradient(180deg, rgba(0, 0, 0, 0.28), transparent 22%, rgba(0, 0, 0, 0.22) 100%),
    radial-gradient(ellipse at 50% 103%, rgba(205, 154, 86, 0.08), transparent 39rem),
    linear-gradient(180deg, #010207 0%, #020711 48%, #030915 100%);
}

.timeline-page {
  font-family: "Aptos", "Segoe UI", system-ui, sans-serif;
  background:
    radial-gradient(ellipse at 50% 66%, rgba(238, 247, 255, 0.075), rgba(132, 174, 207, 0.038) 21rem, transparent 42rem),
    radial-gradient(ellipse at 50% 78%, rgba(83, 121, 151, 0.09), transparent 33rem),
    linear-gradient(180deg, rgba(255, 255, 255, 0.012), transparent 48%),
    radial-gradient(ellipse at 50% 98%, rgba(136, 176, 205, 0.08), transparent 42rem),
    linear-gradient(180deg, rgba(1, 3, 8, 0), rgba(1, 5, 12, 0.96));
}

.timeline-page::before {
  background:
    radial-gradient(circle at 12% 18%, rgba(255, 255, 255, 0.16) 0 1px, transparent 1.45px),
    radial-gradient(circle at 72% 11%, rgba(255, 255, 255, 0.11) 0 1px, transparent 1.45px);
  background-size: 24rem 18rem, 33rem 24rem;
  opacity: 0.20;
  filter: blur(0.35px);
}

.timeline-page::after {
  background:
    radial-gradient(ellipse at 50% 50%, transparent 0 22rem, rgba(0, 0, 0, 0.08) 46rem, rgba(0, 0, 0, 0.24) 72rem),
    linear-gradient(180deg, rgba(0, 0, 0, 0.04), transparent 36%, rgba(0, 0, 0, 0.34));
  backdrop-filter: blur(0.55px);
}

.timeline-space-field,
.timeline-mission-strip,
.timeline-filter-row {
  display: none;
}

.timeline-campus-selector {
  top: clamp(1rem, 2vw, 1.45rem);
  right: clamp(1rem, 2.2vw, 1.8rem);
  grid-template-columns: 1fr;
  gap: 0;
  padding: 0;
  border: 0;
  border-radius: 999px;
  color: rgba(232, 244, 255, 0.50);
  background: rgba(255, 255, 255, 0.035);
  box-shadow: none;
  backdrop-filter: blur(14px);
}

.timeline-campus-selector select {
  min-height: 2rem;
  max-width: 7rem;
  padding: 0 1.25rem 0 0.72rem;
  border-color: rgba(220, 238, 255, 0.11);
  color: rgba(232, 244, 255, 0.58);
  background: rgba(5, 14, 26, 0.36);
  font-size: 0.72rem;
  font-weight: 520;
}

.timeline-campus-selector select:focus {
  border-color: rgba(232, 244, 255, 0.30);
  color: rgba(255, 255, 255, 0.84);
}

.timeline-orbital-clock {
  position: absolute;
  z-index: 6;
  top: clamp(2.2rem, 5.6vh, 4.4rem);
  left: 50%;
  width: clamp(9.4rem, 11vw, 12.2rem);
  height: clamp(8rem, 9.6vw, 10.8rem);
  display: grid;
  place-items: center;
  color: rgba(235, 247, 255, 0.64);
  pointer-events: none;
  transform: translateX(-50%);
}

.timeline-orbital-clock::before,
.timeline-orbital-clock::after {
  content: "";
  position: absolute;
  top: 51%;
  width: clamp(2rem, 3.4vw, 3.8rem);
  height: 1px;
  background: linear-gradient(90deg, rgba(226, 242, 255, 0), rgba(226, 242, 255, 0.18), rgba(226, 242, 255, 0));
  opacity: 0.55;
  filter: blur(0.15px);
}

.timeline-orbital-clock::before {
  right: calc(100% - 0.9rem);
  transform: rotate(-12deg);
}

.timeline-orbital-clock::after {
  left: calc(100% - 0.9rem);
  transform: rotate(12deg);
}

.timeline-orbital-clock-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  opacity: 0.88;
}

.timeline-orbital-clock-svg circle {
  fill: none;
  vector-effect: non-scaling-stroke;
  transform-box: fill-box;
  transform-origin: center;
}

.timeline-clock-aura {
  stroke: rgba(192, 225, 250, 0.045);
  stroke-width: 18;
  filter: blur(9px);
}

.timeline-clock-segments {
  stroke: rgba(226, 242, 255, 0.15);
  stroke-width: 1.15;
  stroke-linecap: round;
  stroke-dasharray: 13.8 6.2;
  transform: rotate(-90deg);
}

.timeline-clock-progress {
  stroke: rgba(248, 252, 255, 0.42);
  stroke-width: 1.45;
  stroke-linecap: round;
  stroke-dasharray: var(--timeline-clock-progress) 100;
  filter: drop-shadow(0 0 13px rgba(221, 241, 255, 0.13));
  transform: rotate(-90deg);
}

.timeline-clock-marker-halo {
  fill: rgba(232, 245, 255, 0.16);
  stroke: rgba(255, 255, 255, 0.12);
  stroke-width: 0.5;
  filter: blur(0.35px) drop-shadow(0 0 16px rgba(230, 245, 255, 0.18));
  animation: timelineClockMarkerBreath 4.2s ease-in-out infinite;
}

.timeline-clock-marker {
  fill: rgba(255, 255, 255, 0.78);
  stroke: rgba(231, 244, 255, 0.34);
  stroke-width: 0.8;
  filter: drop-shadow(0 0 10px rgba(226, 242, 255, 0.28));
}

.timeline-clock-reading {
  position: relative;
  display: grid;
  gap: 0.4rem;
  justify-items: center;
  text-align: center;
  transform: translateY(0.14rem);
  text-shadow: 0 0 30px rgba(194, 226, 250, 0.12);
}

.timeline-clock-reading strong {
  color: rgba(244, 250, 255, 0.68);
  font-size: clamp(1.34rem, 1.7vw, 1.92rem);
  font-weight: 260;
  line-height: 1;
  letter-spacing: 0;
}

.timeline-clock-reading em {
  color: rgba(232, 244, 255, 0.50);
  font-size: clamp(0.6rem, 0.78vw, 0.84rem);
  font-style: normal;
  font-weight: 420;
  line-height: 1;
  letter-spacing: 0;
}

.timeline-operational-metrics {
  position: absolute;
  z-index: 5;
  left: clamp(1.1rem, 2.6vw, 3rem);
  bottom: clamp(0.85rem, 2.4vh, 1.55rem);
  display: flex;
  align-items: end;
  gap: clamp(0.5rem, 1.1vw, 0.95rem);
  color: rgba(238, 247, 255, 0.72);
  pointer-events: none;
}

.timeline-operational-gauge {
  position: relative;
  width: clamp(5.8rem, 6.8vw, 7.1rem);
  height: clamp(5.8rem, 6.8vw, 7.1rem);
  display: grid;
  place-items: center;
  opacity: 0.86;
}

.timeline-operational-gauge.is-secondary {
  opacity: 0.68;
}

.timeline-operational-arc {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.timeline-operational-arc path {
  fill: none;
  vector-effect: non-scaling-stroke;
}

.timeline-operational-arc-base {
  stroke: rgba(232, 244, 255, 0.16);
  stroke-width: 2.35;
  stroke-linecap: round;
}

.timeline-operational-arc-active {
  stroke: rgba(247, 251, 255, 0.82);
  stroke-width: 3.15;
  stroke-linecap: round;
  stroke-dasharray: var(--timeline-operational-progress) 100;
  filter:
    drop-shadow(0 0 7px rgba(217, 238, 255, 0.18))
    drop-shadow(0 0 18px rgba(205, 154, 86, 0.06));
}

.timeline-operational-gauge.is-secondary .timeline-operational-arc-active {
  stroke-dasharray: 72 100;
  opacity: 0.62;
}

.timeline-operational-arc-ghost {
  stroke: rgba(180, 213, 238, 0.08);
  stroke-width: 0.7;
  stroke-linecap: round;
}

.timeline-operational-reading {
  position: relative;
  top: 0.44rem;
  display: grid;
  justify-items: center;
  text-align: center;
  text-shadow: 0 0 26px rgba(190, 225, 250, 0.12);
}

.timeline-operational-reading em {
  color: rgba(232, 244, 255, 0.46);
  font-size: clamp(0.52rem, 0.62vw, 0.64rem);
  font-style: normal;
  font-weight: 460;
  line-height: 1;
  letter-spacing: 0;
}

.timeline-operational-reading strong {
  margin: 0 0 0.12rem;
  color: rgba(255, 255, 255, 0.88);
  font-size: clamp(0.98rem, 1.28vw, 1.32rem);
  font-weight: 310;
  line-height: 1;
  letter-spacing: 0;
}

.timeline-layer-control {
  position: absolute;
  z-index: 6;
  top: clamp(1rem, 2vw, 1.45rem);
  left: clamp(1rem, 2.2vw, 1.8rem);
  min-height: 2rem;
  padding: 0 0.86rem;
  border: 1px solid rgba(220, 238, 255, 0.11);
  border-radius: 999px;
  color: rgba(232, 244, 255, 0.54);
  background: rgba(5, 14, 26, 0.34);
  backdrop-filter: blur(14px);
  cursor: pointer;
  font-size: 0.72rem;
  font-weight: 520;
  letter-spacing: 0;
  transition: color 180ms ease, border-color 180ms ease, background 180ms ease;
}

.timeline-layer-control:hover {
  color: rgba(255, 255, 255, 0.86);
  border-color: rgba(232, 244, 255, 0.26);
  background: rgba(255, 255, 255, 0.05);
}

.timeline-orbit-stage {
  left: 0;
  right: 0;
  top: clamp(15.5rem, 31vh, 22rem);
  bottom: auto;
  height: min(27vh, 16rem);
  z-index: 3;
}

.timeline-earth-limb {
  display: none;
}

.timeline-orbit-lines {
  position: absolute;
  z-index: 1;
  left: 0;
  right: 0;
  top: clamp(2.8rem, 8vh, 5.2rem);
  width: 100%;
  height: min(14vh, 8.4rem);
  display: block;
  overflow: visible;
  pointer-events: none;
  filter: saturate(0.95);
}

.timeline-orbit-shadow {
  stroke: url("#timeline-horizon-glow");
  stroke-width: 26;
  filter: blur(18px);
  opacity: 0.74;
}

.timeline-orbit-atmosphere {
  stroke: url("#timeline-horizon-glow");
  stroke-width: 54;
  filter: blur(28px);
  opacity: 0.42;
}

.timeline-orbit-main {
  stroke: url("#timeline-horizon-line");
  stroke-width: 0.48;
  opacity: 0.22;
  filter:
    drop-shadow(0 0 8px rgba(176, 222, 255, 0.05))
    drop-shadow(0 0 24px rgba(205, 154, 86, 0.03));
}

.timeline-orbit-traveled-wake {
  stroke: url("#timeline-horizon-glow");
  stroke-width: 15;
  stroke-linecap: round;
  stroke-dasharray: var(--timeline-traveled-progress) 100;
  opacity: 0.68;
  filter: blur(9px);
}

.timeline-orbit-traveled {
  stroke: url("#timeline-horizon-line");
  stroke-width: 2.35;
  stroke-linecap: round;
  stroke-dasharray: var(--timeline-traveled-progress) 100;
  opacity: 0.96;
  filter:
    drop-shadow(0 0 9px rgba(235, 248, 255, 0.23))
    drop-shadow(0 0 28px rgba(205, 154, 86, 0.09));
}

.timeline-orbit-energy {
  stroke: rgba(249, 253, 255, 0.78);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-dasharray: 2.7 100;
  stroke-dashoffset: var(--timeline-energy-offset);
  opacity: 0.82;
  filter:
    blur(0.18px)
    drop-shadow(0 0 11px rgba(232, 246, 255, 0.38))
    drop-shadow(0 0 28px rgba(205, 154, 86, 0.10));
  animation: timelineEnergyDrift 4.8s ease-in-out infinite;
}

.timeline-orbit-current-halo {
  fill: url("#timeline-current-glow");
  opacity: 0.86;
  transform-box: fill-box;
  transform-origin: center;
  animation: timelineCurrentBreath 3.4s ease-in-out infinite;
}

.timeline-orbit-current-core {
  fill: rgba(255, 255, 255, 0.86);
  stroke: rgba(236, 248, 255, 0.28);
  stroke-width: 1;
  filter:
    drop-shadow(0 0 8px rgba(228, 244, 255, 0.34))
    drop-shadow(0 0 18px rgba(205, 154, 86, 0.08));
}

.timeline-orbit-inner {
  stroke: url("#timeline-horizon-glow");
  stroke-width: 0.55;
  filter: blur(1px);
  opacity: 0.18;
}

.timeline-orbit-tick {
  display: none;
}

.timeline-orbit-secondary,
.timeline-node-layer {
  display: none;
}

.timeline-main-rail {
  position: absolute;
  z-index: 5;
  left: 0;
  right: 0;
  bottom: clamp(2.6rem, 5vh, 3.4rem);
  overflow-x: auto;
  overflow-y: visible;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  cursor: grab;
}

.timeline-main-rail::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.timeline-main-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(11rem, 21.5vw);
  align-items: end;
  gap: clamp(1.9rem, 5.1vw, 6.2rem);
  width: max-content;
  min-width: 100%;
  padding: clamp(1.3rem, 2.5vw, 2rem) max(12vw, calc((100vw - 66rem) / 2)) 0;
  scroll-snap-type: x mandatory;
  animation: timelineTrackArrive 420ms cubic-bezier(0.2, 0.72, 0.16, 1) both;
}

.timeline-main-track.is-root-track {
  grid-auto-flow: unset;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  grid-auto-columns: unset;
  gap: clamp(0.8rem, 2vw, 3rem);
  width: 100%;
  min-width: 100%;
  padding: clamp(1.1rem, 2.2vw, 1.7rem) clamp(5.6rem, 9vw, 11.5rem) 0;
}

.timeline-main-track.is-internal-track {
  grid-auto-columns: clamp(8.6rem, 10.6vw, 10.2rem);
  gap: clamp(1rem, 2.2vw, 2.5rem);
  align-items: center;
  padding-inline: max(18vw, calc((100vw - 58rem) / 2));
  animation-name: timelineDiveIn;
}

.timeline-main-node {
  --timeline-label-arc: 0px;
  --timeline-dot-arc: 0px;
  position: relative;
  min-height: 8.7rem;
  display: grid;
  justify-items: center;
  align-content: end;
  gap: 1.18rem;
  padding: 0 0 0.35rem;
  border: 0;
  color: rgba(238, 247, 255, 0.78);
  background: transparent;
  cursor: pointer;
  scroll-snap-align: center;
  transition: transform 220ms ease, color 220ms ease, opacity 220ms ease;
  filter: drop-shadow(0 18px 26px rgba(0, 0, 0, 0.16));
}

.timeline-main-node-dot {
  width: 0.68rem;
  height: 0.68rem;
  border: 1px solid rgba(239, 249, 255, 0.68);
  border-radius: 50%;
  background: rgba(239, 249, 255, 0.42);
  box-shadow:
    0 0 0 0.52rem rgba(178, 216, 245, 0.035),
    0 0 22px rgba(178, 216, 245, 0.24);
  transform: translateY(var(--timeline-dot-arc));
  transition: transform 220ms ease, background 220ms ease, box-shadow 220ms ease;
}

.timeline-main-node-copy {
  display: grid;
  gap: 0.5rem;
  justify-items: center;
  text-align: center;
  transform: translateY(calc(-0.25rem + var(--timeline-label-arc)));
}

.timeline-main-track.is-root-track .timeline-main-node:nth-child(1),
.timeline-main-track.is-root-track .timeline-main-node:nth-child(5) {
  --timeline-label-arc: 1.14rem;
  --timeline-dot-arc: -0.05rem;
}

.timeline-main-track.is-root-track .timeline-main-node:nth-child(2),
.timeline-main-track.is-root-track .timeline-main-node:nth-child(4) {
  --timeline-label-arc: 0.4rem;
  --timeline-dot-arc: -0.28rem;
}

.timeline-main-track.is-root-track .timeline-main-node:nth-child(3) {
  --timeline-label-arc: -0.82rem;
  --timeline-dot-arc: -0.35rem;
}

.timeline-main-node-copy small {
  color: rgba(237, 248, 255, 0.64);
  font-size: clamp(0.76rem, 1.26vw, 1.12rem);
  font-weight: 340;
  line-height: 1;
  letter-spacing: 0;
  text-shadow: 0 0 34px rgba(202, 229, 250, 0.18);
}

.timeline-main-node strong {
  color: inherit;
  font-size: clamp(1.58rem, 2.56vw, 2.92rem);
  font-weight: 280;
  line-height: 0.95;
  letter-spacing: 0;
  text-transform: none;
  text-shadow:
    0 0 30px rgba(170, 211, 244, 0.13),
    0 18px 52px rgba(0, 0, 0, 0.28);
}

.timeline-main-node:hover,
.timeline-main-node.is-active {
  color: rgba(255, 255, 255, 0.96);
  transform: translateY(-0.24rem);
}

.timeline-main-node:hover .timeline-main-node-dot,
.timeline-main-node.is-active .timeline-main-node-dot {
  background: rgba(255, 255, 255, 0.92);
  box-shadow:
    0 0 0 0.58rem rgba(178, 216, 245, 0.06),
    0 0 32px rgba(222, 241, 255, 0.48),
    0 0 52px rgba(205, 154, 86, 0.12);
  transform: translateY(var(--timeline-dot-arc)) scale(1.1);
}

.timeline-stage-node {
  --timeline-stage-label-arc: 0px;
  --timeline-stage-dot-arc: 0px;
  position: relative;
  min-height: 9rem;
  display: grid;
  justify-items: center;
  align-content: end;
  gap: 0.72rem;
  padding: 0 0 0.2rem;
  border: 0;
  color: rgba(231, 244, 255, 0.58);
  background: transparent;
  cursor: pointer;
  scroll-snap-align: center;
  transition: transform 220ms ease, color 220ms ease, opacity 220ms ease;
}

.timeline-stage-node-dot {
  width: 0.48rem;
  height: 0.48rem;
  border: 1px solid rgba(239, 249, 255, 0.60);
  border-radius: 50%;
  background: rgba(239, 249, 255, 0.34);
  box-shadow:
    0 0 0 0.38rem rgba(178, 216, 245, 0.028),
    0 0 18px rgba(178, 216, 245, 0.18);
  transform: translateY(var(--timeline-stage-dot-arc));
  transition: transform 220ms ease, background 220ms ease, box-shadow 220ms ease;
}

.timeline-stage-node-copy {
  order: -1;
  display: grid;
  gap: 0.3rem;
  justify-items: center;
  max-width: min(13rem, 18vw);
  text-align: center;
  transform: translateY(calc(-0.08rem + var(--timeline-stage-label-arc)));
}

.timeline-main-track.is-internal-track .timeline-stage-node:nth-child(3n + 1) {
  --timeline-stage-label-arc: 0.16rem;
  --timeline-stage-dot-arc: 0.12rem;
}

.timeline-main-track.is-internal-track .timeline-stage-node:nth-child(3n + 2) {
  --timeline-stage-label-arc: -0.16rem;
  --timeline-stage-dot-arc: -0.12rem;
}

.timeline-main-track.is-internal-track .timeline-stage-node:nth-child(3n) {
  --timeline-stage-label-arc: 0.02rem;
  --timeline-stage-dot-arc: 0.02rem;
}

.timeline-stage-node-copy small,
.timeline-focus-panel > p {
  color: rgba(231, 244, 255, 0.52);
  font-size: clamp(0.68rem, 0.8vw, 0.84rem);
  font-weight: 420;
  line-height: 1;
  letter-spacing: 0;
}

.timeline-stage-node-copy strong {
  color: inherit;
  font-size: clamp(0.95rem, 1.18vw, 1.22rem);
  font-weight: 330;
  line-height: 1.08;
  letter-spacing: 0;
  text-shadow: 0 0 22px rgba(170, 211, 244, 0.10);
}

.timeline-stage-node:hover,
.timeline-stage-node.is-active {
  color: rgba(255, 255, 255, 0.92);
  transform: translateY(-0.24rem);
}

.timeline-stage-node:hover .timeline-stage-node-dot,
.timeline-stage-node.is-active .timeline-stage-node-dot {
  background: rgba(255, 255, 255, 0.88);
  box-shadow:
    0 0 0 0.48rem rgba(178, 216, 245, 0.048),
    0 0 28px rgba(222, 241, 255, 0.40),
    0 0 42px rgba(205, 154, 86, 0.10);
  transform: translateY(var(--timeline-stage-dot-arc)) scale(1.08);
}

.timeline-stage-day-card {
  position: relative;
  z-index: 8;
  aspect-ratio: 9 / 16;
  min-height: clamp(13.7rem, 30vh, 17.2rem);
  display: grid;
  align-content: start;
  gap: clamp(0.85rem, 1.7vh, 1.2rem);
  padding: clamp(0.9rem, 1.7vw, 1.12rem) clamp(0.72rem, 1.1vw, 0.95rem);
  border: 1px solid rgba(230, 245, 255, 0.16);
  border-left-color: rgba(244, 250, 255, 0.30);
  border-top-color: rgba(244, 250, 255, 0.22);
  border-radius: 0.55rem;
  color: rgba(238, 248, 255, 0.78);
  background:
    linear-gradient(180deg, rgba(238, 248, 255, 0.105), rgba(238, 248, 255, 0.038) 44%, rgba(8, 15, 23, 0.10)),
    linear-gradient(90deg, rgba(244, 250, 255, 0.085), rgba(244, 250, 255, 0.018) 58%, rgba(0, 0, 0, 0));
  box-shadow:
    inset 1px 0 0 rgba(255, 255, 255, 0.10),
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    0 22px 56px rgba(0, 0, 0, 0.30),
    0 0 34px rgba(178, 216, 245, 0.055);
  backdrop-filter: blur(18px) saturate(1.12);
  scroll-snap-align: center;
  transform: translateY(-0.7rem);
  animation: timelineStageCardArrive 440ms cubic-bezier(0.2, 0.72, 0.16, 1) both;
}

.timeline-stage-day-card::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -0.42rem;
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: rgba(248, 252, 255, 0.74);
  box-shadow:
    0 0 0 0.42rem rgba(178, 216, 245, 0.042),
    0 0 20px rgba(222, 241, 255, 0.30);
  transform: translateX(-50%);
}

.timeline-stage-day-card::after {
  content: "";
  position: absolute;
  inset: 0.42rem;
  border-radius: 0.42rem;
  border: 1px solid rgba(244, 250, 255, 0.045);
  pointer-events: none;
}

.timeline-stage-day-label {
  color: rgba(248, 252, 255, 0.82);
  font-size: clamp(0.86rem, 1vw, 1.08rem);
  font-weight: 390;
  line-height: 1;
  letter-spacing: 0;
  text-shadow: 0 0 26px rgba(194, 226, 250, 0.18);
}

.timeline-stage-day-events {
  display: grid;
  gap: 0.54rem;
}

.timeline-stage-day-event {
  display: flex;
  align-items: center;
  gap: 0.44rem;
  min-width: 0;
  padding: 0.04rem 0;
  border: 0;
  color: rgba(239, 248, 255, 0.70);
  background: transparent;
  font: inherit;
  font-size: clamp(0.9rem, 1.02vw, 1.08rem);
  font-weight: 320;
  line-height: 1.2;
  letter-spacing: 0;
  text-align: left;
  cursor: pointer;
  transition: color 180ms ease, transform 180ms ease, text-shadow 180ms ease;
}

.timeline-stage-day-event::before {
  content: "";
  flex: 0 0 auto;
  width: 0.24rem;
  height: 0.24rem;
  border-radius: 50%;
  background: rgba(244, 250, 255, 0.52);
  box-shadow: 0 0 12px rgba(222, 241, 255, 0.18);
}

.timeline-stage-day-event:hover,
.timeline-stage-day-event.is-active {
  color: rgba(255, 255, 255, 0.90);
  text-shadow: 0 0 24px rgba(200, 232, 255, 0.18);
  transform: translateX(0.08rem);
}

.timeline-stage-day-event:hover::before,
.timeline-stage-day-event.is-active::before {
  background: rgba(255, 255, 255, 0.86);
  box-shadow:
    0 0 12px rgba(222, 241, 255, 0.36),
    0 0 26px rgba(205, 154, 86, 0.10);
}

.timeline-page.is-stage-active .timeline-orbit-main {
  stroke: url("#timeline-horizon-line");
  opacity: 0.28;
  filter:
    drop-shadow(0 0 14px rgba(176, 222, 255, 0.16))
    drop-shadow(0 0 38px rgba(205, 154, 86, 0.07));
}

.timeline-page.is-stage-active .timeline-orbit-traveled-wake {
  opacity: 0.50;
}

.timeline-page.is-stage-active .timeline-orbit-traveled {
  opacity: 0.88;
}

.timeline-page.is-stage-active .timeline-orbit-energy {
  opacity: 0.62;
}

.timeline-page.is-stage-active .timeline-main-rail {
  z-index: 8;
  bottom: clamp(1.1rem, 2.2vh, 1.7rem);
}

.timeline-focus-panel {
  position: absolute;
  z-index: 6;
  top: clamp(6rem, 13vh, 8.5rem);
  left: 50%;
  width: min(38rem, calc(100vw - 2rem));
  max-height: min(42vh, 23rem);
  display: grid;
  gap: 0.95rem;
  padding: clamp(1rem, 2vw, 1.35rem);
  border: 1px solid rgba(222, 238, 255, 0.12);
  border-radius: 0.65rem;
  color: rgba(236, 247, 255, 0.82);
  background:
    linear-gradient(145deg, rgba(9, 22, 36, 0.56), rgba(4, 10, 19, 0.38));
  box-shadow:
    0 28px 82px rgba(0, 0, 0, 0.34),
    inset 0 1px 0 rgba(255, 255, 255, 0.07);
  backdrop-filter: blur(24px) saturate(1.08);
  transform: translateX(-50%);
  animation: timelinePanelIn 260ms ease both;
}

.timeline-focus-panel > p {
  margin: 0 0 -0.42rem;
}

.timeline-focus-panel h2 {
  margin: 0;
  color: rgba(255, 255, 255, 0.92);
  font-size: clamp(1.55rem, 3vw, 2.6rem);
  font-weight: 300;
  line-height: 0.95;
  letter-spacing: 0;
}

.timeline-panel-close {
  position: absolute;
  top: 0.7rem;
  right: 0.75rem;
  width: 1.85rem;
  height: 1.85rem;
  display: grid;
  place-items: center;
  border: 1px solid rgba(222, 238, 255, 0.11);
  border-radius: 50%;
  color: rgba(236, 247, 255, 0.55);
  background: rgba(255, 255, 255, 0.035);
  cursor: pointer;
}

.timeline-focus-sections {
  display: grid;
  gap: 0.46rem;
  overflow: auto;
  scrollbar-width: none;
}

.timeline-focus-sections::-webkit-scrollbar {
  display: none;
}

.timeline-focus-sections .timeline-disclosure {
  border-color: rgba(222, 238, 255, 0.09);
  border-radius: 0.45rem;
  background: rgba(255, 255, 255, 0.026);
}

.timeline-focus-sections .timeline-disclosure summary {
  padding: 0.72rem 0.78rem;
  color: rgba(236, 247, 255, 0.72);
  font-size: 0.82rem;
  font-weight: 420;
  letter-spacing: 0;
}

.timeline-focus-sections .timeline-disclosure ul {
  max-height: 8.2rem;
  padding: 0 0.9rem 0.85rem 1.55rem;
  color: rgba(220, 235, 248, 0.62);
  font-size: 0.82rem;
}

@keyframes timelinePanelIn {
  from {
    opacity: 0;
    transform: translate(-50%, 0.45rem) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translate(-50%, 0) scale(1);
  }
}

@keyframes timelineCurrentBreath {
  0%,
  100% {
    opacity: 0.52;
    transform: scale(0.9);
  }

  50% {
    opacity: 0.82;
    transform: scale(1.08);
  }
}

@keyframes timelineClockMarkerBreath {
  0%,
  100% {
    opacity: 0.42;
    transform: scale(0.92);
  }

  50% {
    opacity: 0.78;
    transform: scale(1.08);
  }
}

@keyframes timelineEnergyDrift {
  0%,
  100% {
    stroke-dashoffset: calc(var(--timeline-energy-offset) + 0.9px);
    opacity: 0.68;
  }

  50% {
    stroke-dashoffset: calc(var(--timeline-energy-offset) - 0.9px);
    opacity: 0.92;
  }
}

@keyframes timelineTrackArrive {
  from {
    opacity: 0;
    transform: translateX(2.2rem) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translateX(0) scale(1);
  }
}

@keyframes timelineDiveIn {
  from {
    opacity: 0;
    transform: translateX(3.6rem) translateY(0.28rem) scale(0.96);
    filter: blur(7px);
  }
  to {
    opacity: 1;
    transform: translateX(0) translateY(0) scale(1);
    filter: blur(0);
  }
}

@keyframes timelineStageCardArrive {
  from {
    opacity: 0;
    transform: translateX(1.4rem) translateY(0.35rem) scale(0.97);
    filter: blur(5px);
  }
  to {
    opacity: 1;
    transform: translateX(0) translateY(-0.7rem) scale(1);
    filter: blur(0);
  }
}

@media (max-width: 900px) {
  .timeline-main-track {
    grid-auto-columns: minmax(11rem, 44vw);
    gap: 2.4rem;
    padding-inline: 12vw;
  }

  .timeline-main-track.is-root-track {
    grid-auto-flow: column;
    grid-template-columns: none;
    grid-auto-columns: minmax(11rem, 38vw);
    width: max-content;
    min-width: 100%;
    gap: 2.4rem;
    padding-inline: 12vw;
  }

  .timeline-main-track.is-internal-track {
    grid-auto-columns: minmax(10rem, 35vw);
    gap: 2.2rem;
    padding-inline: 12vw;
  }

  .timeline-stage-node-copy {
    max-width: 34vw;
  }

  .timeline-focus-panel {
    top: 6.2rem;
    max-height: 40vh;
  }
}

@media (max-width: 640px) {
  .timeline-main-track {
    grid-auto-columns: 62vw;
    padding-inline: 19vw;
  }

  .timeline-main-track.is-root-track {
    grid-auto-columns: 62vw;
    padding-inline: 19vw;
  }

  .timeline-main-track.is-internal-track {
    grid-auto-columns: 58vw;
    padding-inline: 21vw;
  }

  .timeline-main-node strong {
    font-size: clamp(2rem, 13vw, 3.6rem);
  }

  .timeline-stage-node-copy {
    max-width: 50vw;
  }

  .timeline-operational-metrics {
    left: 0.85rem;
    bottom: 0.9rem;
    transform: scale(0.86);
    transform-origin: bottom left;
  }

  .timeline-focus-panel {
    top: 5rem;
    max-height: 42vh;
  }
}

/* Calendario premium */
.app-shell.is-route-calendario {
  --calendar-glass: rgba(255, 255, 255, 0.105);
  --calendar-glass-strong: rgba(255, 255, 255, 0.16);
  --calendar-line: rgba(232, 246, 242, 0.18);
  --calendar-ink: rgba(255, 250, 242, 0.96);
  --calendar-soft: rgba(233, 244, 239, 0.66);
  --calendar-muted: rgba(233, 244, 239, 0.52);
  --section-accent: #8cd9bf;
  --section-accent-rgb: 140, 217, 191;
}

.app-shell.is-route-calendario .main-content {
  position: relative;
  display: block;
  height: 100vh;
  padding: clamp(0.52rem, 1vw, 0.9rem);
  overflow: hidden;
  background:
    radial-gradient(circle at 18% 8%, rgba(140, 217, 191, 0.22), transparent 27rem),
    radial-gradient(circle at 88% 16%, rgba(62, 111, 163, 0.26), transparent 31rem),
    radial-gradient(circle at 52% 105%, rgba(207, 164, 90, 0.12), transparent 26rem),
    linear-gradient(145deg, #07131b 0%, #0b1c28 45%, #122a2a 100%);
}

.app-shell.is-route-calendario .main-content::before {
  content: "";
  position: absolute;
  inset: -18%;
  background:
    linear-gradient(115deg, transparent 0 42%, rgba(255, 255, 255, 0.06) 46%, transparent 56%),
    radial-gradient(circle at 46% 42%, rgba(255, 255, 255, 0.075), transparent 22rem);
  filter: blur(22px);
  opacity: 0.76;
  pointer-events: none;
}

.app-shell.is-route-calendario .topbar {
  position: absolute;
  z-index: 8;
  top: 0.8rem;
  right: 1rem;
  width: auto;
  padding: 0;
  color: var(--calendar-ink);
}

.app-shell.is-route-calendario .topbar-title {
  display: none;
}

.app-shell.is-route-calendario .topbar-session {
  backdrop-filter: blur(18px) saturate(1.15);
}

.app-shell.is-route-calendario .view {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: none;
  height: 100%;
  overflow: hidden;
}

.calendar-page {
  height: 100%;
  min-height: 0;
  display: grid;
  grid-template-rows: minmax(4.3rem, auto) auto minmax(0, 1fr);
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(0.45rem, 0.8vw, 0.7rem);
  color: var(--calendar-ink);
}

.calendar-month-toolbar {
  align-self: start;
  display: grid;
  grid-template-columns: minmax(14rem, 1fr) auto;
  gap: 0.8rem;
  padding: 0.15rem 10.8rem 0.2rem 0.15rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.calendar-month-toolbar h2 {
  color: var(--calendar-ink);
  font-size: clamp(2.7rem, 5.8vw, 5.8rem);
  font-weight: 560;
  letter-spacing: 0;
  line-height: 0.9;
  text-shadow: 0 18px 38px rgba(0, 0, 0, 0.3);
}

.calendar-nav-actions,
.calendar-view-switch {
  justify-self: end;
  align-self: center;
  display: inline-flex;
  gap: 0.28rem;
  padding: 0.28rem;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.09);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 18px 46px rgba(0, 0, 0, 0.18);
  backdrop-filter: blur(20px) saturate(1.18);
}

.calendar-nav-actions {
  margin-left: auto;
}

.calendar-view-switch .tab,
.calendar-nav-actions .ghost-button {
  min-height: 2.05rem;
  padding: 0 0.82rem;
  border: 0;
  border-radius: 999px;
  color: rgba(255, 250, 242, 0.74);
  background: transparent;
  box-shadow: none;
  font-size: 0.76rem;
  font-weight: 760;
}

.calendar-view-switch .tab.is-active,
.calendar-nav-actions .ghost-button:hover {
  color: #08201a;
  background: rgba(255, 250, 242, 0.78);
}

.calendar-nav-actions .icon-nav {
  min-width: 2.05rem;
  padding-inline: 0.62rem;
}

.calendar-filters,
.basic-event-tool {
  align-self: start;
  width: min(100%, 74rem);
  min-height: 2.65rem;
  display: flex;
  flex-wrap: nowrap;
  gap: 0.42rem;
  align-items: center;
  padding: 0.34rem;
  border: 1px solid var(--calendar-line);
  border-radius: 1.2rem;
  color: var(--calendar-soft);
  background: rgba(255, 255, 255, 0.08);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.14);
  backdrop-filter: blur(22px) saturate(1.18);
}

.calendar-filters {
  position: absolute;
  z-index: 5;
  top: clamp(4.9rem, 8vw, 7.1rem);
  left: clamp(0.52rem, 1vw, 0.9rem);
  width: auto;
}

.calendar-filters label,
.calendar-toggle,
.basic-event-form label {
  min-height: 2rem;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0 0.58rem;
  border-radius: 999px;
  color: var(--calendar-muted);
  background: rgba(255, 255, 255, 0.055);
  font-size: 0.72rem;
  font-weight: 720;
}

.calendar-filters label > span,
.basic-event-form label > span {
  color: rgba(233, 244, 239, 0.48);
  font-size: 0.66rem;
  font-weight: 760;
}

.calendar-filters select,
.basic-event-form input,
.basic-event-form select {
  min-height: 2rem;
  max-width: 10rem;
  padding: 0 0.2rem;
  border: 0;
  border-radius: 999px;
  color: var(--calendar-ink);
  background: transparent;
  box-shadow: none;
  font-size: 0.78rem;
  font-weight: 760;
}

.calendar-filters select option,
.basic-event-form select option {
  color: #0b1b2e;
}

.calendar-toggle {
  padding-right: 0.7rem;
  background: rgba(255, 255, 255, 0.08);
}

.basic-event-tool {
  justify-self: end;
  margin-top: -0.35rem;
  width: min(100%, 54rem);
}

.basic-event-form {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(6.8rem, 0.7fr) minmax(7rem, 0.7fr) minmax(8rem, 0.8fr) minmax(8rem, 0.8fr) minmax(10rem, 1fr) auto;
  gap: 0.38rem;
  align-items: center;
}

.basic-event-wide {
  grid-column: auto;
}

.basic-event-form button {
  min-height: 2.18rem;
  padding: 0 0.9rem;
  border-radius: 999px;
  color: #072018;
  background: rgba(181, 239, 216, 0.82);
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.16);
  font-size: 0.74rem;
}

.calendar-month-layout,
.calendar-layout {
  min-height: 0;
  height: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 22vw);
  gap: clamp(0.62rem, 1vw, 0.95rem);
}

.month-panel,
.upcoming-panel,
.week-panel,
.calendar-detail-panel {
  min-height: 0;
  border: 0;
  border-radius: 1.65rem;
  color: var(--calendar-ink);
  background: transparent;
  box-shadow: none;
}

.month-panel {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: visible;
}

.month-weekdays {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.42rem;
  padding: 0 0.2rem 0.36rem;
  border: 0;
  background: transparent;
}

.month-weekdays span {
  padding: 0 0.36rem;
  color: rgba(233, 244, 239, 0.54);
  font-size: 0.66rem;
  font-weight: 760;
  letter-spacing: 0;
  text-transform: uppercase;
}

.month-grid {
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  grid-template-rows: repeat(6, minmax(0, 1fr));
  gap: 0.42rem;
  overflow: visible;
}

.month-day {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0.28rem;
  padding: clamp(0.4rem, 0.65vw, 0.62rem);
  border: 1px solid rgba(255, 255, 255, 0.105);
  border-radius: clamp(0.9rem, 1.2vw, 1.25rem);
  color: var(--calendar-soft);
  background: rgba(255, 255, 255, 0.072);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(16px) saturate(1.12);
  transition: transform 180ms ease, background 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.month-day:hover,
.month-day.is-selected {
  transform: translateY(-1px);
  border-color: rgba(181, 239, 216, 0.28);
  background: rgba(255, 255, 255, 0.12);
  box-shadow: 0 16px 38px rgba(0, 0, 0, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.month-day.is-outside {
  color: rgba(233, 244, 239, 0.26);
  background: rgba(255, 255, 255, 0.035);
  border-color: rgba(255, 255, 255, 0.06);
}

.month-day-number {
  width: 1.55rem;
  height: 1.55rem;
  color: rgba(255, 250, 242, 0.82);
  background: transparent;
  font-size: 0.78rem;
  font-weight: 720;
}

.month-day.is-today .month-day-number {
  color: #072018;
  background: rgba(181, 239, 216, 0.92);
  box-shadow: 0 8px 18px rgba(4, 20, 17, 0.22);
}

.month-day-events {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 0.22rem;
  overflow: hidden;
}

.calendar-event-pill {
  position: relative;
  min-height: 1.45rem;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.34rem;
  align-items: center;
  padding: 0.18rem 0.48rem;
  border: 0;
  border-radius: 999px;
  color: rgba(255, 250, 242, 0.92);
  background: rgba(88, 151, 180, 0.22);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.11);
  font-size: 0.68rem;
  font-weight: 760;
}

.calendar-event-pill span {
  margin: 0;
  color: rgba(255, 250, 242, 0.58);
  font-size: 0.62rem;
}

.calendar-event-pill:hover {
  transform: translateY(-1px);
  background: rgba(88, 151, 180, 0.32);
}

.event-basico.calendar-event-pill,
.calendar-event-pill.is-multi-day {
  color: #f7fff9;
  background: linear-gradient(90deg, rgba(87, 209, 168, 0.54), rgba(66, 128, 190, 0.32));
  box-shadow:
    inset 0 0 0 1px rgba(207, 255, 235, 0.22),
    0 9px 24px rgba(21, 101, 83, 0.18);
}

.calendar-event-pill.is-multi-day.is-range-start {
  margin-right: -0.34rem;
  border-radius: 999px 0.35rem 0.35rem 999px;
}

.calendar-event-pill.is-multi-day.is-range-middle {
  margin-inline: -0.34rem;
  border-radius: 0.35rem;
}

.calendar-event-pill.is-multi-day.is-range-end {
  margin-left: -0.34rem;
  border-radius: 0.35rem 999px 999px 0.35rem;
}

.calendar-event-pill.is-multi-day::before {
  content: "";
  position: absolute;
  inset: 0.18rem auto 0.18rem -0.42rem;
  width: 0.42rem;
  border-radius: 999px 0 0 999px;
  background: rgba(87, 209, 168, 0.34);
}

.month-day:has(.calendar-event-pill.is-multi-day) {
  border-color: rgba(181, 239, 216, 0.2);
  background: linear-gradient(180deg, rgba(181, 239, 216, 0.105), rgba(255, 255, 255, 0.062));
}

.calendar-more {
  color: rgba(233, 244, 239, 0.5);
  font-size: 0.66rem;
}

.calendar-detail-panel {
  align-self: stretch;
  display: grid;
  align-content: start;
  gap: 0.7rem;
  padding: clamp(0.85rem, 1.2vw, 1.15rem);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 1.65rem;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.075));
  box-shadow: 0 24px 54px rgba(0, 0, 0, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.16);
  backdrop-filter: blur(24px) saturate(1.16);
}

.calendar-detail-panel .eyebrow {
  color: rgba(181, 239, 216, 0.76);
  font-size: 0.68rem;
}

.calendar-detail-panel h3 {
  color: var(--calendar-ink);
  font-size: clamp(1.8rem, 3.5vw, 3.2rem);
  font-weight: 560;
  line-height: 0.94;
}

.basic-event-place {
  margin-top: -0.4rem;
  color: rgba(255, 250, 242, 0.68);
  font-size: 1rem;
  font-weight: 650;
}

.calendar-detail-panel p,
.basic-event-copy {
  color: rgba(233, 244, 239, 0.64);
}

.calendar-detail-facts,
.basic-trigger-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.44rem;
}

.calendar-detail-facts div,
.visible-list,
.basic-trigger-metrics div,
.basic-event-schedule span {
  min-height: 4.15rem;
  padding: 0.68rem;
  border: 1px solid rgba(255, 255, 255, 0.105);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.075);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.calendar-detail-facts span,
.visible-list span,
.basic-trigger-metrics span,
.basic-event-schedule span,
.basic-event-copy span {
  color: rgba(233, 244, 239, 0.48);
  font-size: 0.62rem;
  font-weight: 780;
}

.calendar-detail-facts strong,
.visible-list strong,
.basic-trigger-metrics strong,
.basic-event-schedule strong {
  color: rgba(255, 250, 242, 0.92);
  font-size: 0.86rem;
  font-weight: 690;
}

.basic-trigger-metrics strong {
  font-size: 1.55rem;
  font-weight: 560;
}

.basic-event-schedule {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.44rem;
}

.basic-event-copy {
  max-height: 9.2rem;
  overflow: hidden;
  gap: 0.2rem;
}

.basic-event-copy p {
  font-size: 0.76rem;
  line-height: 1.35;
}

.basic-trigger-button {
  min-height: 2.55rem;
  border-radius: 999px;
  color: #062018;
  background: rgba(181, 239, 216, 0.86);
}

.day-event-row,
.calendar-event-card,
.week-event {
  border: 1px solid rgba(255, 255, 255, 0.105);
  border-radius: 1rem;
  color: var(--calendar-ink);
  background: rgba(255, 255, 255, 0.08);
}

.week-panel,
.upcoming-panel {
  overflow: hidden;
}

.week-grid {
  height: 100%;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.42rem;
}

.week-day {
  min-height: 0;
  border: 1px solid rgba(255, 255, 255, 0.105);
  border-radius: 1.25rem;
  background: rgba(255, 255, 255, 0.07);
  backdrop-filter: blur(16px);
}

@media (max-width: 1180px) {
  .app-shell.is-route-calendario .main-content {
    overflow: auto;
  }

  .calendar-page {
    min-height: 52rem;
  }

  .calendar-month-toolbar {
    padding-right: 0;
  }

  .basic-event-tool,
  .calendar-filters {
    position: static;
    width: 100%;
  }

  .calendar-month-layout,
  .calendar-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .basic-event-form {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .calendar-detail-panel {
    min-height: 24rem;
  }
}

@media (max-width: 760px) {
  .calendar-page {
    min-height: 64rem;
  }

  .calendar-month-toolbar,
  .basic-event-form,
  .calendar-detail-facts,
  .basic-trigger-metrics,
  .basic-event-schedule {
    grid-template-columns: 1fr;
  }

  .calendar-month-toolbar h2 {
    font-size: 3rem;
  }

  .month-grid,
  .month-weekdays {
    min-width: 48rem;
  }

  .month-panel {
    overflow-x: auto;
  }
}

/* Calendario refinamiento operativo */
.calendar-page {
  grid-template-rows: auto minmax(0, 1fr);
  gap: clamp(0.5rem, 1.1vh, 0.85rem);
}

.calendar-month-toolbar {
  grid-template-columns: minmax(10rem, auto) minmax(0, 1fr);
  align-items: start;
  padding: 0.1rem clamp(5.5rem, 8vw, 10rem) 0 0.1rem;
}

.calendar-month-toolbar h2 {
  font-size: clamp(1.8rem, 3.2vw, 3.65rem);
  line-height: 1;
  font-weight: 540;
}

.calendar-control-bar {
  justify-self: end;
  display: grid;
  gap: 0.45rem;
  max-width: min(100%, 72rem);
}

.calendar-control-drawer {
  display: grid;
  grid-template-columns: auto minmax(22rem, 1fr);
  gap: 0.42rem;
  align-items: center;
  overflow: hidden;
  max-height: 5.2rem;
  opacity: 1;
  transform: translateY(0);
  transition: max-height 220ms ease, opacity 180ms ease, transform 220ms ease;
}

.calendar-control-bar.is-collapsed .calendar-control-drawer {
  max-height: 0;
  opacity: 0;
  transform: translateY(-0.35rem);
  pointer-events: none;
}

.calendar-filter-toggle {
  min-width: 7.8rem;
}

.calendar-filters,
.basic-event-tool {
  position: static;
  z-index: auto;
  width: auto;
  margin: 0;
  min-height: 2.35rem;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.12);
}

.basic-event-tool {
  width: min(100%, 48rem);
}

.basic-event-form {
  grid-template-columns: minmax(5.8rem, 0.8fr) minmax(5.6rem, 0.75fr) minmax(7.4rem, 0.85fr) minmax(7.4rem, 0.85fr) minmax(9rem, 1.1fr) auto;
}

.calendar-month-layout,
.calendar-layout {
  height: min(100%, calc(100vh - clamp(7.2rem, 11vh, 10.2rem)));
  grid-template-columns: minmax(0, 1fr);
}

.month-panel {
  min-height: 0;
  height: 100%;
}

.month-grid {
  grid-template-rows: repeat(var(--calendar-weeks, 5), minmax(0, 1fr));
  gap: clamp(0.36rem, 0.68vw, 0.62rem);
}

.month-day {
  border-radius: clamp(0.82rem, 1vw, 1.16rem);
  padding: clamp(0.34rem, 0.58vw, 0.56rem);
}

.calendar-detail-panel {
  overflow: visible;
}

.calendar-modal-backdrop {
  position: fixed;
  z-index: 40;
  inset: 0;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 3vw, 2.2rem);
  background: rgba(0, 9, 14, 0.34);
  backdrop-filter: blur(10px);
}

.calendar-event-modal {
  width: min(42rem, calc(100vw - 2rem));
  max-height: min(45rem, calc(100vh - 2rem));
  overflow: auto;
  border-radius: 1.85rem;
  animation: calendarModalIn 180ms ease-out both;
}

.calendar-modal-close {
  position: absolute;
  top: 0.85rem;
  right: 0.9rem;
  width: 2.15rem;
  height: 2.15rem;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 50%;
  color: rgba(255, 250, 242, 0.82);
  background: rgba(255, 255, 255, 0.09);
  cursor: pointer;
  font-size: 1.25rem;
  line-height: 1;
}

.calendar-event-modal h3 {
  padding-right: 2.4rem;
}

.calendar-event-pill {
  min-height: clamp(1.42rem, 2.1vh, 1.75rem);
  padding: 0.2rem 0.58rem;
  gap: 0.42rem;
  background: rgba(88, 151, 180, 0.18);
}

.event-basico.calendar-event-pill,
.calendar-event-pill.is-multi-day {
  min-height: clamp(1.78rem, 2.8vh, 2.18rem);
  padding-inline: 0.72rem;
  background:
    linear-gradient(90deg, rgba(114, 238, 195, 0.68), rgba(76, 154, 208, 0.34)),
    linear-gradient(180deg, rgba(255, 255, 255, 0.18), transparent);
  box-shadow:
    inset 0 0 0 1px rgba(218, 255, 239, 0.28),
    0 0 24px rgba(87, 209, 168, 0.16),
    0 12px 28px rgba(0, 0, 0, 0.18);
}

.calendar-event-pill.is-multi-day.is-range-start {
  margin-right: calc(-1 * clamp(0.28rem, 0.52vw, 0.5rem));
}

.calendar-event-pill.is-multi-day.is-range-middle {
  margin-inline: calc(-1 * clamp(0.28rem, 0.52vw, 0.5rem));
}

.calendar-event-pill.is-multi-day.is-range-end {
  margin-left: calc(-1 * clamp(0.28rem, 0.52vw, 0.5rem));
}

@keyframes calendarModalIn {
  from {
    opacity: 0;
    transform: translateY(0.45rem) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@media (max-width: 1280px) {
  .calendar-month-toolbar {
    grid-template-columns: 1fr;
    padding-right: clamp(5rem, 9vw, 8rem);
  }

  .calendar-control-bar {
    justify-self: stretch;
  }

  .calendar-control-drawer {
    grid-template-columns: 1fr;
  }

  .basic-event-tool {
    width: 100%;
  }

  .basic-event-form {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .calendar-month-layout {
    height: min(100%, calc(100vh - clamp(10rem, 18vh, 14rem)));
  }
}

@media (max-width: 900px) {
  .app-shell.is-route-calendario .main-content {
    overflow: auto;
  }

  .calendar-page {
    min-height: 48rem;
  }

  .calendar-month-toolbar {
    padding-right: 0;
  }

  .calendar-nav-actions {
    justify-self: start;
    flex-wrap: wrap;
  }

  .calendar-filters {
    flex-wrap: wrap;
  }

  .calendar-month-layout {
    height: auto;
    min-height: 36rem;
  }
}

/* Global message popover layer: keep chat preview above route-specific shells */
.app-shell .topbar:has(.topbar-message-button.is-open) {
  z-index: 9000 !important;
  overflow: visible !important;
  isolation: isolate;
}

.app-shell:not(.is-route-calendario):not(.is-fichas-route):not(.is-documents-immersive) .topbar:has(.topbar-message-button.is-open) {
  position: relative !important;
}

.app-shell.is-route-calendario .topbar:has(.topbar-message-button.is-open) {
  position: absolute !important;
  z-index: 9000 !important;
}

.app-shell.is-fichas-route .topbar:has(.topbar-message-button.is-open) {
  position: fixed !important;
  z-index: 9000 !important;
}

.topbar-session:has(.topbar-message-button.is-open) {
  position: relative;
  z-index: 9001 !important;
  overflow: visible !important;
  isolation: isolate;
}

.topbar-popover.message-popover {
  z-index: 9002 !important;
}

/* Demo Oficinas Tijuana: ajustes ligeros de experiencia */
.app-shell.is-new-ficha-route .view {
  display: grid;
  place-items: start center;
  padding-top: clamp(1rem, 3.2vh, 2.3rem);
}

.app-shell.is-new-ficha-route .ficha-leader-page {
  width: min(100%, 48rem);
}

.app-shell.is-new-ficha-route .ficha-leader-layout.ficha-form-only {
  justify-items: center;
}

.app-shell.is-new-ficha-route .ficha-form {
  width: min(44rem, calc(100vw - 2rem));
  gap: 0.95rem;
  padding: clamp(1.15rem, 2vw, 1.55rem);
  border-radius: 1.65rem;
  background:
    radial-gradient(circle at 18% 0%, rgba(255, 255, 255, 0.82), transparent 15rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.92), rgba(242, 249, 246, 0.84));
  box-shadow:
    0 34px 82px rgba(10, 31, 28, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.78);
}

.app-shell.is-new-ficha-route .ficha-form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.78rem;
}

.app-shell.is-new-ficha-route .ficha-field span,
.office-ficha-form .ficha-field span {
  color: rgba(11, 27, 46, 0.72);
  font-size: 0.79rem;
  font-weight: 900;
  letter-spacing: 0.01em;
}

.app-shell.is-new-ficha-route .ficha-field input,
.app-shell.is-new-ficha-route .ficha-field select,
.app-shell.is-new-ficha-route .ficha-field textarea,
.office-ficha-form .ficha-field input,
.office-ficha-form .ficha-field select,
.office-ficha-form .ficha-field textarea {
  min-height: 2.75rem;
  color: #071a2b;
  font-size: 0.98rem;
  font-weight: 650;
  border-color: rgba(30, 95, 72, 0.18);
  background: rgba(255, 255, 255, 0.92);
}

.office-ficha-form {
  width: min(43rem, calc(100vw - 2rem));
  max-height: min(88vh, 58rem);
  border-radius: 1.65rem;
}

.office-ficha-form .ficha-form-grid {
  grid-template-columns: 1fr;
}

.office-ficha-form-section {
  padding: 0.92rem;
}

.app-shell.is-my-fichas-route .my-ficha-card .ficha-indicator-groups {
  width: min(100%, 14rem);
  justify-self: center;
  gap: 0.42rem;
  padding: 0.44rem 0.58rem;
}

.app-shell.is-my-fichas-route .my-ficha-card .ficha-indicator-dot {
  width: 0.76rem;
  height: 0.76rem;
}

.app-shell.is-route-calendario .view {
  width: min(100%, 74rem);
  margin-inline: auto;
  padding-top: clamp(0.75rem, 2vh, 1.35rem);
}

.app-shell.is-route-calendario .calendar-page {
  width: 100%;
  max-width: 74rem;
  margin-inline: auto;
  min-height: 0;
  height: min(100%, calc(100vh - 3.5rem));
  gap: clamp(0.45rem, 1vh, 0.72rem);
}

.app-shell.is-route-calendario .calendar-month-toolbar {
  grid-template-columns: minmax(8rem, auto) minmax(0, 1fr);
  align-items: center;
  padding: 0.2rem 0.25rem 0.05rem;
}

.app-shell.is-route-calendario .calendar-month-toolbar h2 {
  font-size: clamp(1.55rem, 2.8vw, 2.8rem);
  letter-spacing: 0;
}

.app-shell.is-route-calendario .calendar-control-bar {
  max-width: min(100%, 50rem);
}

.app-shell.is-route-calendario .calendar-control-drawer {
  max-height: 4.3rem;
  grid-template-columns: auto minmax(18rem, 1fr);
}

.app-shell.is-route-calendario .calendar-control-bar.is-collapsed .calendar-control-drawer {
  max-height: 0;
  opacity: 0;
  transform: translateY(-0.35rem);
  pointer-events: none;
}

.app-shell.is-route-calendario .calendar-filters,
.app-shell.is-route-calendario .basic-event-tool {
  min-height: 2.15rem;
  border-radius: 1rem;
}

.app-shell.is-route-calendario .calendar-month-layout,
.app-shell.is-route-calendario .calendar-layout {
  height: min(100%, calc(100vh - clamp(7rem, 10vh, 8.6rem)));
}

.app-shell.is-route-calendario .month-panel {
  border-radius: clamp(1.15rem, 1.8vw, 1.55rem);
}

.documents-page .document-category,
.document-collection-view .collection-item-card {
  content-visibility: auto;
  contain-intrinsic-size: 1px 22rem;
}

.documents-page .doc-cover-art img,
.document-collection-view .collection-item-thumb img,
.document-detail-left .doc-cover-art img,
.document-collection-left .doc-cover-art img {
  image-rendering: auto;
}

/* Demo performance: keep Biblioteca responsive while heavy covers finish loading */
.documents-page .doc-cover-button,
.documents-page .doc-cover-art,
.document-collection-view .collection-item-card,
.document-collection-view .collection-item-thumb {
  contain: layout paint;
}

/* Demo performance: preserve Fichas atmosphere with lighter GPU effects */
.app-shell.is-fichas-route .fichas-command-center {
  backdrop-filter: blur(12px) saturate(1.05);
}

.app-shell.is-fichas-stack-route .ficha-stack-stage {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.18),
    inset 0 -24px 72px rgba(13, 49, 50, 0.18),
    0 18px 58px rgba(19, 53, 48, 0.10);
}

.app-shell.is-fichas-stack-route .ficha-stack-stage::after {
  opacity: 0.42;
}

.app-shell.is-fichas-stack-route .ficha-stack-item {
  will-change: transform, opacity;
}

.app-shell.is-fichas-stack-route .ficha-stack-item:not(.is-front) {
  opacity: calc(var(--stack-opacity) * 0.54);
  filter: blur(calc(0.35px + var(--i) * 0.08px)) saturate(0.96);
}

.app-shell.is-fichas-stack-route .ficha-stack-item.is-front {
  filter: none;
}

.app-shell.is-fichas-stack-route .ficha-stack-item .ficha-card {
  backdrop-filter: blur(10px) saturate(1.02);
}

.app-shell.is-fichas-stack-route .ficha-stack-item.is-front .ficha-card {
  box-shadow:
    0 24px 54px rgba(7, 24, 32, 0.20),
    0 0 0 1px rgba(255, 255, 255, 0.34),
    inset 0 1px 0 rgba(255, 255, 255, 0.68);
}

@media (max-width: 760px) {
  .app-shell.is-new-ficha-route .ficha-form-grid,
  .office-ficha-form .ficha-form-grid {
    grid-template-columns: 1fr;
  }

  .app-shell.is-route-calendario .calendar-control-drawer {
    grid-template-columns: 1fr;
    max-height: 8rem;
  }

  .app-shell.is-route-calendario .calendar-control-bar.is-collapsed .calendar-control-drawer {
    max-height: 0;
  }
}
html[data-boot-diagnostic="true"] .boot-diagnostic-copy {
  position: fixed;
  right: max(1rem, env(safe-area-inset-right));
  top: max(0.9rem, env(safe-area-inset-top));
  z-index: 10000;
  width: 2.08rem;
  height: 2.08rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(166, 213, 242, 0.3);
  border-radius: 50%;
  background: rgba(3, 16, 29, 0.74);
  color: #e8f3ff;
  font: 600 12px/1.2 Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing: 0;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22);
  cursor: pointer;
  opacity: 0.64;
  transition: opacity 180ms ease, border-color 180ms ease, transform 180ms ease, background 180ms ease;
}

html[data-boot-diagnostic="true"] .app-dock .boot-diagnostic-copy {
  position: relative;
  right: auto;
  top: auto;
  z-index: auto;
  flex: 0 0 auto;
  width: 2.16rem;
  height: 2.16rem;
  border-color: rgba(255, 255, 255, 0.12);
  border-radius: 0.78rem;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.02)),
    rgba(5, 22, 36, 0.58);
  box-shadow: none;
  opacity: 0.72;
}

html[data-boot-diagnostic="true"] .boot-diagnostic-copy svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-alan-switch {
  position: fixed;
  z-index: 236;
  left: calc(max(0.85rem, env(safe-area-inset-left)) + 1.95rem);
  bottom: clamp(1.98rem, 3.8vh, 2.68rem);
  width: 1.9rem;
  height: 1.9rem;
  display: none;
  place-items: center;
  padding: 2px;
  border: 1px solid rgba(167, 213, 246, 0.2);
  border-radius: 50%;
  background: rgba(3, 16, 29, 0.74);
  opacity: 0.58;
  transition: opacity 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.biblioteca-alan-switch img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}

.app-shell.is-documents-immersive .biblioteca-alan-switch:not(.is-hidden) {
  display: grid;
}

.biblioteca-alan-switch:hover,
.biblioteca-alan-switch:focus-visible {
  opacity: 0.92;
  border-color: rgba(190, 228, 255, 0.48);
  transform: scale(1.05);
}

html[data-boot-diagnostic="true"] .boot-diagnostic-copy:hover:not(:disabled) {
  border-color: rgba(166, 213, 242, 0.58);
  background: rgba(7, 28, 47, 0.96);
  opacity: 0.94;
  transform: translateY(-0.03rem);
}

html[data-boot-diagnostic="true"] .app-dock .boot-diagnostic-copy:hover:not(:disabled) {
  transform: translateY(-0.08rem);
}

html[data-boot-diagnostic="true"] .boot-diagnostic-copy:disabled {
  opacity: 0.38;
  cursor: wait;
}

html[data-boot-diagnostic="true"] .boot-diagnostic-copy::after {
  content: attr(data-tooltip);
  position: absolute;
  top: calc(100% + 0.5rem);
  right: 0;
  width: max-content;
  max-width: 15rem;
  padding: 0.42rem 0.58rem;
  border: 1px solid rgba(151, 199, 232, 0.2);
  border-radius: 0.46rem;
  color: rgba(237, 247, 255, 0.94);
  background: rgba(3, 15, 27, 0.94);
  box-shadow: 0 0.8rem 1.8rem rgba(0, 0, 0, 0.28);
  font-size: 0.72rem;
  line-height: 1.2;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transform: translateY(-0.12rem);
  transition: opacity 160ms ease, transform 160ms ease;
}

html[data-boot-diagnostic="true"] .app-dock .boot-diagnostic-copy::after {
  top: auto;
  right: 50%;
  bottom: calc(100% + 0.58rem);
  transform: translate(50%, 0.12rem);
}

html[data-boot-diagnostic="true"] .boot-diagnostic-copy:hover::after,
html[data-boot-diagnostic="true"] .boot-diagnostic-copy:focus-visible::after {
  opacity: 1;
  transform: translateY(0);
}

html[data-boot-diagnostic="true"] .app-dock .boot-diagnostic-copy:hover::after,
html[data-boot-diagnostic="true"] .app-dock .boot-diagnostic-copy:focus-visible::after {
  transform: translate(50%, 0);
}

/* Manual Avanzado: Atlas del Manual */
.biblioteca-knowledge-atlas-page {
  --atlas-ink: rgba(232, 230, 220, 0.9);
  --atlas-muted: rgba(177, 184, 184, 0.56);
  --atlas-surface: rgba(5, 10, 14, 0.82);
  height: 100vh;
  padding: 0;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 50% 118%, rgba(144, 111, 66, 0.105), transparent 42%),
    radial-gradient(ellipse at 52% 42%, rgba(34, 58, 67, 0.24), transparent 46%),
    radial-gradient(circle at 18% 28%, rgba(30, 47, 61, 0.16), transparent 30%),
    linear-gradient(158deg, #01060c 0%, #061018 48%, #02070d 100%);
}

.biblioteca-knowledge-atlas-page::before {
  opacity: 0.2;
  background:
    radial-gradient(circle, rgba(224, 224, 211, 0.38) 0 0.7px, transparent 1.2px),
    radial-gradient(circle, rgba(180, 156, 113, 0.25) 0 0.55px, transparent 1px);
  background-position: 1.5rem 0.8rem, 4rem 3.2rem;
  background-size: 11rem 10rem, 17rem 15rem;
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.7), transparent 88%);
}

.biblioteca-knowledge-atlas-topbar {
  top: clamp(0.9rem, 2.4vh, 1.45rem);
  left: clamp(1rem, 2.7vw, 3.2rem);
  right: clamp(1rem, 2.7vw, 3.2rem);
  gap: 0.38rem;
}

.biblioteca-knowledge-atlas-topbar .biblioteca-knowledge-back {
  width: 2rem;
  height: 2rem;
  min-height: 2rem;
  margin-right: 0.9rem;
  color: rgba(218, 224, 223, 0.56);
}

.biblioteca-knowledge-atlas-topbar .biblioteca-knowledge-back span,
.biblioteca-knowledge-atlas-topbar .biblioteca-knowledge-back svg {
  width: 1.05rem;
  height: 1.05rem;
}

.biblioteca-knowledge-atlas-topbar .biblioteca-knowledge-location,
.biblioteca-knowledge-atlas-topbar .biblioteca-knowledge-current-node {
  color: rgba(212, 214, 208, 0.62);
  font-family: Inter, "Helvetica Neue", "Segoe UI", sans-serif;
  font-size: 0.67rem;
  font-weight: 460;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.biblioteca-knowledge-atlas-topbar .biblioteca-knowledge-current-node {
  color: rgba(228, 224, 212, 0.82);
}

.biblioteca-knowledge-atlas-topbar .biblioteca-knowledge-current-node::before {
  content: "·";
  margin-inline: 0.42rem 0.18rem;
  color: rgba(180, 156, 113, 0.5);
}

.biblioteca-knowledge-atlas-topbar .biblioteca-knowledge-current-node.is-visible {
  opacity: 1;
  transform: translateX(0);
}

.biblioteca-knowledge-atlas-reset {
  width: 2rem;
  height: 2rem;
  min-height: 2rem;
  margin-left: auto;
  color: rgba(201, 214, 229, 0.46);
  opacity: 0.72;
}

.biblioteca-knowledge-atlas-reset span,
.biblioteca-knowledge-atlas-reset svg {
  width: 1rem;
  height: 1rem;
}

.biblioteca-knowledge-atlas-reset:hover,
.biblioteca-knowledge-atlas-reset:focus-visible {
  color: rgba(231, 240, 248, 0.88);
  opacity: 1;
}

.biblioteca-knowledge-atlas-filters {
  position: fixed;
  z-index: 58;
  top: clamp(1rem, 2.4vh, 1.55rem);
  left: 50%;
  width: min(100% - 1.6rem, 25rem);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(0.7rem, 2.4vw, 1.75rem);
  padding: 0.35rem 0.8rem;
  border: 0;
  border-radius: 0;
  background: linear-gradient(90deg, transparent, rgba(3, 9, 13, 0.62) 18%, rgba(3, 9, 13, 0.62) 82%, transparent);
  box-shadow: none;
  backdrop-filter: blur(8px);
  transform: translateX(-50%);
}

.biblioteca-knowledge-atlas-filters button {
  flex: 0 0 auto;
  min-height: 1.7rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: rgba(190, 197, 196, 0.48);
  background: transparent;
  font-size: 0.64rem;
  font-weight: 560;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  line-height: 1;
  cursor: pointer;
  transition: color 240ms ease, opacity 240ms ease;
}

.biblioteca-knowledge-atlas-filters button:hover,
.biblioteca-knowledge-atlas-filters button:focus-visible,
.biblioteca-knowledge-atlas-filters button.is-active {
  color: rgba(232, 229, 218, 0.9);
  border-color: transparent;
  background: transparent;
  box-shadow: none;
}

.biblioteca-knowledge-atlas-page.is-study-open .biblioteca-knowledge-atlas-filters {
  opacity: 0.3;
  filter: blur(1px);
  pointer-events: none;
}

.biblioteca-knowledge-atlas-day-filters {
  display: inline-flex;
  gap: 0.18rem;
  margin-left: 0.18rem;
  padding-left: 0.34rem;
  border-left: 1px solid rgba(205, 218, 235, 0.12);
}

.biblioteca-knowledge-atlas-day-filters button:not(.is-active) {
  color: rgba(206, 218, 230, 0.54);
}

.biblioteca-knowledge-atlas-stage {
  position: relative;
  z-index: 1;
  height: calc(100vh - clamp(3.8rem, 7vh, 4.8rem));
  min-height: 36rem;
  margin-top: clamp(3.8rem, 7vh, 4.8rem);
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background:
    radial-gradient(ellipse at 50% 55%, rgba(50, 77, 82, 0.09), transparent 30%),
    linear-gradient(180deg, transparent, rgba(0, 4, 8, 0.18));
  box-shadow: inset 0 1px 0 rgba(218, 206, 174, 0.025);
  isolation: isolate;
}

.biblioteca-knowledge-atlas-world {
  --atlas-pan-x: 0%;
  --atlas-pan-y: 0%;
  --atlas-zoom: 1;
  --atlas-focus-y: 0%;
  position: absolute;
  inset: 0;
  transform: translate(var(--atlas-pan-x), var(--atlas-pan-y)) translateY(var(--atlas-focus-y)) scale(var(--atlas-zoom));
  transform-origin: var(--atlas-origin-x, 50%) var(--atlas-origin-y, 50%);
  transition:
    transform 1180ms cubic-bezier(0.22, 0.72, 0.24, 1),
    filter 460ms ease,
    opacity 460ms ease;
}

.biblioteca-knowledge-atlas-stage.has-study-card .biblioteca-knowledge-atlas-world {
  filter: blur(1.5px) brightness(0.72) saturate(0.82);
  opacity: 0.74;
}

.biblioteca-knowledge-atlas-stage.is-revealing-path .biblioteca-knowledge-atlas-world {
  filter: blur(0.35px) brightness(0.92) saturate(0.9);
  opacity: 0.92;
}

.biblioteca-knowledge-atlas-stage.has-study-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 6;
  background: rgba(2, 5, 10, 0.1);
  pointer-events: none;
}

.biblioteca-knowledge-atlas-depth {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse at 50% 54%, transparent 0 13rem, rgba(211, 201, 174, 0.018) 13.05rem 13.1rem, transparent 13.18rem),
    radial-gradient(ellipse at 50% 54%, transparent 0 25rem, rgba(211, 201, 174, 0.012) 25.05rem 25.1rem, transparent 25.18rem),
    linear-gradient(104deg, transparent 0 26%, rgba(174, 150, 107, 0.012) 26.1% 26.2%, transparent 26.3% 100%);
  opacity: 0.66;
}

.biblioteca-knowledge-atlas-connections {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

.biblioteca-knowledge-atlas-connections path {
  fill: none;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
  transition: opacity 420ms ease, stroke 420ms ease;
}

.biblioteca-knowledge-atlas-connections .is-core {
  stroke: rgba(194, 184, 157, 0.13);
  stroke-width: 0.52;
}

.biblioteca-knowledge-atlas-connections .is-relation {
  stroke: rgba(184, 192, 187, 0.16);
  stroke-width: 0.46;
  stroke-dasharray: 0.35 3.8 1.4 6.2;
}

.biblioteca-knowledge-atlas-connections .is-connection-hidden,
.biblioteca-knowledge-atlas-connections .is-connection-oculto,
.biblioteca-knowledge-atlas-connections .is-connection-insinuado {
  opacity: 0;
}

.biblioteca-knowledge-atlas-connections .is-connection-visible,
.biblioteca-knowledge-atlas-connections .is-connection-descubierto {
  opacity: 0.24;
  animation: bibliotecaAtlasConnectionIn 1600ms ease both;
}

.biblioteca-knowledge-atlas-connections .is-connection-estudiado,
.biblioteca-knowledge-atlas-connections .is-connection-relacionado,
.biblioteca-knowledge-atlas-connections .is-connection-favorito {
  opacity: 0.38;
  stroke: rgba(207, 202, 184, 0.24);
  animation: bibliotecaAtlasConnectionIn 1600ms ease both;
}

.biblioteca-knowledge-atlas-connections .is-filter-muted {
  opacity: 0.035;
}

.biblioteca-knowledge-atlas-connections .is-hidden-by-day {
  opacity: 0;
}

.biblioteca-knowledge-atlas-core {
  position: absolute;
  z-index: 4;
  left: var(--atlas-core-x);
  top: var(--atlas-core-y);
  width: 0.34rem;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: transparent;
  background: rgba(218, 208, 178, 0.42);
  box-shadow:
    0 0 0 1.7rem rgba(108, 102, 78, 0.012),
    0 0 4.8rem rgba(82, 115, 110, 0.12);
  transform: translate(-50%, -50%);
  animation: bibliotecaAtlasBreath 9s ease-in-out infinite;
  transition: left 720ms cubic-bezier(0.22, 0.72, 0.24, 1), top 720ms cubic-bezier(0.22, 0.72, 0.24, 1);
}

.biblioteca-knowledge-atlas-core span {
  width: 2rem;
  height: 2rem;
  display: none;
  place-items: center;
}

.biblioteca-knowledge-atlas-core svg {
  width: 100%;
  height: 100%;
  fill: rgba(96, 169, 139, 0.16);
  stroke: currentColor;
  stroke-width: 1.35;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-knowledge-atlas-nodes {
  position: absolute;
  inset: 0;
  z-index: 3;
}

.biblioteca-knowledge-atlas-node {
  position: absolute;
  left: var(--atlas-x);
  top: var(--atlas-y);
  width: clamp(7.2rem, 9vw, 8.6rem);
  height: 5.2rem;
  display: grid;
  grid-template-rows: 2.8rem minmax(1.5rem, auto);
  justify-items: center;
  align-items: center;
  gap: 0.18rem;
  padding: 0 0.18rem;
  border: 0;
  color: rgba(226, 225, 216, 0.84);
  background: transparent;
  cursor: pointer;
  opacity: 0;
  transform: translate(-50%, -50%);
  transition:
    left 720ms cubic-bezier(0.22, 0.72, 0.24, 1),
    top 720ms cubic-bezier(0.22, 0.72, 0.24, 1),
    opacity 480ms ease,
    filter 420ms ease,
    transform 360ms cubic-bezier(0.22, 0.72, 0.24, 1);
}

.biblioteca-knowledge-atlas-node::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 1.15rem;
  left: 50%;
  width: calc(0.82rem * var(--atlas-presence-scale, 1));
  aspect-ratio: 1;
  border: 0;
  border-radius: 50%;
  background:
    radial-gradient(circle, rgba(255, 253, 238, 0.94) 0 7%, color-mix(in srgb, var(--atlas-color), white 28%) 16%, color-mix(in srgb, var(--atlas-color), #071017 40%) 48%, transparent 72%);
  box-shadow:
    0 0 calc(0.7rem * var(--atlas-presence-scale, 1)) var(--atlas-glow),
    0 0 calc(1.7rem * var(--atlas-presence-scale, 1)) color-mix(in srgb, var(--atlas-glow), transparent 42%);
  transform: translateX(-50%);
  transition: box-shadow 520ms ease, filter 360ms ease, width 520ms ease, transform 520ms cubic-bezier(0.22, 0.72, 0.24, 1);
}

.biblioteca-knowledge-atlas-node.is-hexagon::before,
.biblioteca-knowledge-atlas-node.is-hexagon .biblioteca-knowledge-atlas-node-orbit {
  clip-path: none;
}

.biblioteca-knowledge-atlas-node.is-circle::before,
.biblioteca-knowledge-atlas-node.is-circle .biblioteca-knowledge-atlas-node-orbit {
  border-radius: 50%;
}

.biblioteca-knowledge-atlas-node.is-diamond::before,
.biblioteca-knowledge-atlas-node.is-diamond .biblioteca-knowledge-atlas-node-orbit {
  border-radius: 50%;
  clip-path: none;
}

.biblioteca-knowledge-atlas-node.is-organic::before,
.biblioteca-knowledge-atlas-node.is-organic .biblioteca-knowledge-atlas-node-orbit {
  border-radius: 50%;
}

.biblioteca-knowledge-atlas-node:focus-visible,
.biblioteca-knowledge-atlas-node.is-selected {
  filter: saturate(1.08) brightness(1.06);
}

.biblioteca-knowledge-atlas-node:focus-visible::before,
.biblioteca-knowledge-atlas-node.is-selected::before {
  box-shadow:
    0 0 0 0.32rem color-mix(in srgb, var(--atlas-color), transparent 91%),
    0 0 1.3rem var(--atlas-glow),
    0 0 3.5rem color-mix(in srgb, var(--atlas-glow), transparent 25%);
  transform: translateX(-50%) scale(1.38);
}

.biblioteca-knowledge-atlas-node.is-early-discovery:hover {
  z-index: 2;
  filter: saturate(1.12) brightness(1.08);
  transform: translate(-50%, -50%) scale(1.02);
}

.biblioteca-knowledge-atlas-node.is-early-discovery:hover::before {
  box-shadow:
    0 0 0 0.28rem color-mix(in srgb, var(--atlas-color), transparent 92%),
    0 0 1.15rem var(--atlas-glow),
    0 0 2.8rem color-mix(in srgb, var(--atlas-glow), transparent 38%);
  transform: translateX(-50%) scale(1.28);
}

.biblioteca-knowledge-atlas-node.is-atlas-oculto {
  opacity: 0.12;
  pointer-events: none;
  filter: grayscale(1) brightness(0.72);
}

.biblioteca-knowledge-atlas-node.is-atlas-insinuado {
  opacity: 0.2;
  pointer-events: none;
  filter: saturate(0.2) brightness(0.78);
}

.biblioteca-knowledge-atlas-node.is-atlas-oculto::before,
.biblioteca-knowledge-atlas-node.is-atlas-insinuado::before {
  width: calc(0.28rem * var(--atlas-presence-scale, 1));
  background: rgba(210, 215, 210, 0.68);
  box-shadow: 0 0 0.55rem rgba(201, 210, 205, 0.16);
}

.biblioteca-knowledge-atlas-node.is-atlas-oculto strong {
  opacity: 0;
}

.biblioteca-knowledge-atlas-node.is-atlas-insinuado strong,
.biblioteca-knowledge-atlas-node.is-atlas-insinuado .biblioteca-knowledge-atlas-node-symbol {
  opacity: 0;
}

.biblioteca-knowledge-atlas-node.is-atlas-descubierto,
.biblioteca-knowledge-atlas-node.is-atlas-estudiado,
.biblioteca-knowledge-atlas-node.is-atlas-relacionado,
.biblioteca-knowledge-atlas-node.is-atlas-favorito {
  animation: bibliotecaAtlasNodeIn 760ms ease var(--atlas-delay) both;
}

.biblioteca-knowledge-atlas-node.is-newly-revealed {
  animation: bibliotecaAtlasDiscoveryIn 1.28s cubic-bezier(0.2, 0.72, 0.24, 1) var(--atlas-reveal-delay) both;
}

.biblioteca-knowledge-atlas-node.is-atlas-descubierto::before,
.biblioteca-knowledge-atlas-node.is-atlas-estudiado::before,
.biblioteca-knowledge-atlas-node.is-atlas-relacionado::before,
.biblioteca-knowledge-atlas-node.is-atlas-favorito::before {
  animation: bibliotecaAtlasNodeBreath 8.6s ease-in-out calc(var(--atlas-delay) * -0.22) infinite;
}

.biblioteca-knowledge-atlas-node.is-atlas-descubierto {
  opacity: 0.9;
}

.biblioteca-knowledge-atlas-node.is-atlas-estudiado,
.biblioteca-knowledge-atlas-node.is-atlas-relacionado,
.biblioteca-knowledge-atlas-node.is-atlas-favorito {
  opacity: 1;
}

.biblioteca-knowledge-atlas-node.is-atlas-estudiado::before,
.biblioteca-knowledge-atlas-node.is-atlas-relacionado::before,
.biblioteca-knowledge-atlas-node.is-atlas-favorito::before {
  width: calc(1.02rem * var(--atlas-presence-scale, 1));
}

.biblioteca-knowledge-atlas-node.is-atlas-estudiado .biblioteca-knowledge-atlas-node-orbit,
.biblioteca-knowledge-atlas-node.is-atlas-relacionado .biblioteca-knowledge-atlas-node-orbit,
.biblioteca-knowledge-atlas-node.is-atlas-favorito .biblioteca-knowledge-atlas-node-orbit {
  opacity: 0.72;
}

.biblioteca-knowledge-atlas-node.is-atlas-relacionado .biblioteca-knowledge-atlas-node-orbit {
  border-style: double;
  opacity: 0.92;
}

.biblioteca-knowledge-atlas-node.is-atlas-favorito .biblioteca-knowledge-atlas-node-orbit {
  border-color: rgba(232, 203, 125, 0.58);
  box-shadow: 0 0 26px rgba(199, 155, 67, 0.2);
}

.biblioteca-knowledge-atlas-node.is-filter-muted {
  opacity: 0.055 !important;
  filter: saturate(0.3) brightness(0.54);
}

.biblioteca-knowledge-atlas-node.is-hidden-by-day {
  opacity: 0 !important;
  pointer-events: none;
}

.biblioteca-knowledge-atlas-node.is-explored .biblioteca-knowledge-atlas-node-orbit,
.biblioteca-knowledge-atlas-node.is-favorite .biblioteca-knowledge-atlas-node-orbit,
.biblioteca-knowledge-atlas-node.is-updated .biblioteca-knowledge-atlas-node-orbit {
  opacity: 1;
}

.biblioteca-knowledge-atlas-node.is-favorite .biblioteca-knowledge-atlas-node-orbit {
  border-color: rgba(246, 233, 174, 0.42);
}

.biblioteca-knowledge-atlas-node.is-updated .biblioteca-knowledge-atlas-node-orbit {
  box-shadow: 0 0 28px rgba(246, 233, 174, 0.24);
}

.biblioteca-knowledge-atlas-node-orbit {
  position: absolute;
  z-index: 0;
  top: 0.72rem;
  left: 50%;
  width: calc(1.7rem * var(--atlas-presence-scale, 1));
  aspect-ratio: 1;
  border: 1px solid color-mix(in srgb, var(--atlas-color), transparent 78%);
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  transform: translateX(-50%);
  transition: opacity 420ms ease, border-color 420ms ease, box-shadow 420ms ease;
}

.biblioteca-knowledge-atlas-node-symbol {
  z-index: 1;
  grid-row: 1;
  width: 1.16rem;
  height: 1.16rem;
  display: none;
  place-items: center;
  opacity: 0.82;
}

.biblioteca-knowledge-atlas-node-symbol svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.55;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-knowledge-atlas-node strong {
  grid-row: 2;
  display: block;
  width: 100%;
  max-width: 8.3rem;
  min-height: 1.7rem;
  overflow: visible;
  color: inherit;
  font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  font-size: 0.68rem;
  font-weight: 400;
  letter-spacing: 0.025em;
  line-height: 1.24;
  text-align: center;
  opacity: 0.48;
  text-shadow: 0 0.2rem 0.9rem rgba(0, 0, 0, 0.96);
  text-overflow: clip;
  overflow-wrap: anywhere;
  hyphens: auto;
  transition: color 320ms ease, opacity 320ms ease, transform 420ms ease;
}

.biblioteca-knowledge-atlas-node:hover strong,
.biblioteca-knowledge-atlas-node:focus-visible strong,
.biblioteca-knowledge-atlas-node.is-selected strong {
  color: rgba(243, 240, 226, 0.94);
  opacity: 1;
  transform: translateY(0.12rem);
}

.biblioteca-knowledge-atlas-study-layer {
  position: absolute;
  inset: 0;
  z-index: 10;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 3vw, 2.4rem);
}

.biblioteca-knowledge-atlas-study-facets {
  position: relative;
  z-index: 2;
  display: grid;
  width: 100%;
  gap: 1.12rem;
  align-content: center;
  padding-right: clamp(0.9rem, 2vw, 1.4rem);
  border-right: 1px solid color-mix(in srgb, var(--atlas-study-color), transparent 86%);
}

.biblioteca-knowledge-atlas-study-facets button {
  display: grid;
  grid-template-columns: 1.4rem minmax(0, 1fr);
  align-items: center;
  gap: 0.72rem;
  padding: 0;
  border: 0;
  color: rgba(191, 205, 220, 0.58);
  background: transparent;
  font-size: 1.23rem;
  font-weight: 520;
  letter-spacing: 0.02em;
  text-align: left;
  cursor: pointer;
  transition: color 70ms linear;
}

.biblioteca-knowledge-atlas-study-facets button > span {
  width: 1.22rem;
  height: 1.22rem;
  display: grid;
  place-items: center;
  color: color-mix(in srgb, var(--atlas-study-color, #87a9d8), white 18%);
}

.biblioteca-knowledge-atlas-study-facets button svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.55;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-knowledge-atlas-study-facets button strong {
  max-width: 9rem;
  font: inherit;
  font-weight: 540;
  line-height: 1.18;
  white-space: normal;
  overflow-wrap: anywhere;
}

.biblioteca-knowledge-atlas-study-facets button:hover,
.biblioteca-knowledge-atlas-study-facets button:focus-visible,
.biblioteca-knowledge-atlas-study-facets button.is-active {
  color: rgba(242, 247, 252, 0.94);
}

.biblioteca-knowledge-atlas-study-card {
  position: relative;
  width: min(62rem, 100%);
  height: min(74vh, 45rem);
  max-height: calc(100% - 2rem);
  margin-top: -2rem;
  display: grid;
  gap: clamp(1rem, 2vw, 1.5rem);
  padding: clamp(1.4rem, 3vw, 2.5rem);
  overflow-y: auto;
  border: 1px solid color-mix(in srgb, var(--atlas-study-color), white 22%);
  border-radius: 18px;
  color: rgba(242, 247, 252, 0.94);
  background:
    linear-gradient(148deg, rgba(29, 35, 53, 0.95), rgba(11, 15, 25, 0.97) 58%, rgba(9, 13, 20, 0.98)),
    rgba(8, 11, 18, 0.94);
  box-shadow:
    0 2.8rem 8rem rgba(0, 0, 0, 0.58),
    0 0 62px var(--atlas-study-glow),
    inset 0 1px 0 rgba(255, 255, 255, 0.07);
  backdrop-filter: blur(24px);
  animation: bibliotecaAtlasStudyIn 320ms ease both;
}

.biblioteca-knowledge-atlas-study-card.has-study-facets {
  grid-template-columns: minmax(9.5rem, 11.5rem) minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr) auto;
  column-gap: clamp(1.15rem, 2.5vw, 1.8rem);
}

.biblioteca-knowledge-atlas-study-card.has-study-facets .biblioteca-knowledge-atlas-study-heading,
.biblioteca-knowledge-atlas-study-card.has-study-facets .biblioteca-knowledge-atlas-study-actions {
  grid-column: 1 / -1;
}

.biblioteca-knowledge-atlas-study-card.has-study-facets .biblioteca-knowledge-atlas-study-heading {
  grid-row: 1;
}

.biblioteca-knowledge-atlas-study-card.has-study-facets .biblioteca-knowledge-atlas-study-facets,
.biblioteca-knowledge-atlas-study-card.has-study-facets .biblioteca-knowledge-atlas-study-content {
  grid-row: 2;
}

.biblioteca-knowledge-atlas-study-card.has-study-facets .biblioteca-knowledge-atlas-study-actions {
  grid-row: 3;
}

.biblioteca-knowledge-atlas-stage.is-revealing-path .biblioteca-knowledge-atlas-study-card {
  opacity: 0;
  transform: translateY(0.72rem) scale(0.985);
  transition: opacity 240ms ease, transform 240ms ease;
}

.biblioteca-knowledge-atlas-study-card::-webkit-scrollbar {
  width: 0.34rem;
}

.biblioteca-knowledge-atlas-study-card::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: color-mix(in srgb, var(--atlas-study-color), transparent 52%);
}

.biblioteca-knowledge-atlas-study-halo {
  position: absolute;
  inset: 0.62rem;
  border: 1px solid color-mix(in srgb, var(--atlas-study-color), transparent 78%);
  border-radius: 13px;
  pointer-events: none;
}

.biblioteca-knowledge-atlas-study-close {
  position: absolute;
  z-index: 2;
  top: 0.9rem;
  right: 0.9rem;
  width: 2rem;
  height: 2rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: rgba(228, 237, 246, 0.78);
  background: transparent;
  cursor: pointer;
}

.biblioteca-knowledge-atlas-study-close span {
  font-size: 1.25rem;
  line-height: 1;
}

.biblioteca-knowledge-atlas-study-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.42rem;
  margin-top: 0.22rem;
}

.biblioteca-knowledge-atlas-study-meta span {
  display: inline;
  padding: 0;
  border: 0;
  color: rgba(190, 204, 219, 0.46);
  background: transparent;
  font-size: 0.7rem;
  font-weight: 520;
}

.biblioteca-knowledge-atlas-study-meta span + span::before {
  content: "·";
  margin-right: 0.42rem;
  color: rgba(205, 218, 231, 0.34);
}

.biblioteca-knowledge-atlas-study-heading {
  display: grid;
  grid-template-columns: clamp(2.4rem, 4vw, 3.2rem) minmax(0, 1fr) clamp(2.4rem, 4vw, 3.2rem);
  align-items: center;
  gap: clamp(0.85rem, 2vw, 1.2rem);
  padding: 0.1rem 3rem 1rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--atlas-study-color), transparent 82%);
}

.biblioteca-knowledge-atlas-study-heading::after {
  content: "";
  width: 100%;
}

.biblioteca-knowledge-atlas-study-heading > div {
  min-width: 0;
  text-align: center;
}

.biblioteca-knowledge-atlas-study-heading .biblioteca-knowledge-symbol {
  width: clamp(2.4rem, 4vw, 3.2rem);
  height: clamp(2.4rem, 4vw, 3.2rem);
  flex: 0 0 auto;
  color: color-mix(in srgb, var(--atlas-study-color), white 28%);
  border-color: color-mix(in srgb, var(--atlas-study-color), transparent 54%);
  background: color-mix(in srgb, var(--atlas-study-color), transparent 88%);
  box-shadow: 0 0 32px var(--atlas-study-glow);
}

.biblioteca-knowledge-atlas-study-heading h1 {
  margin: 0;
  color: rgba(250, 252, 255, 0.98);
  font-size: clamp(1.45rem, 2.8vw, 2.2rem);
  font-weight: 610;
  letter-spacing: 0;
  line-height: 1;
  overflow-wrap: anywhere;
}

.biblioteca-knowledge-atlas-inline-title-editor {
  width: min(100%, 42rem);
  padding: 0.12rem 0.2rem;
  border: 0;
  border-bottom: 1px solid color-mix(in srgb, var(--atlas-study-color), white 18%);
  color: rgba(250, 252, 255, 0.98);
  background: transparent;
  font: inherit;
  font-size: clamp(1.45rem, 2.8vw, 2.2rem);
  font-weight: 610;
  line-height: 1;
  outline: none;
}

.biblioteca-knowledge-atlas-study-heading p {
  max-width: 38rem;
  margin: 0.55rem 0 0;
  color: rgba(199, 211, 224, 0.66);
  font-size: 0.9rem;
  line-height: 1.5;
}

.biblioteca-knowledge-atlas-study-text {
  min-width: 0;
  max-width: 46rem;
  margin: 0;
  color: rgba(225, 233, 241, 0.88);
  font-size: clamp(1.02rem, 1.8vw, 1.24rem);
  line-height: 1.72;
  white-space: pre-line;
  overflow-wrap: anywhere;
}

.biblioteca-knowledge-atlas-study-content {
  position: relative;
  min-width: 0;
  min-height: 0;
  display: grid;
  align-content: start;
  gap: clamp(1.1rem, 2.2vw, 1.7rem);
  padding: clamp(1.4rem, 3.2vw, 2.6rem);
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--atlas-study-color), transparent 52%) transparent;
  border: 1px solid color-mix(in srgb, var(--atlas-study-color), transparent 78%);
  border-radius: 14px;
  background:
    radial-gradient(circle at 14% 12%, color-mix(in srgb, var(--atlas-study-color), transparent 88%), transparent 42%),
    rgba(255, 255, 255, 0.015);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

.biblioteca-knowledge-atlas-study-content::-webkit-scrollbar {
  width: 0.32rem;
}

.biblioteca-knowledge-atlas-study-content::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: color-mix(in srgb, var(--atlas-study-color), transparent 52%);
}

.biblioteca-knowledge-atlas-study-section-heading {
  min-width: 0;
  display: grid;
  grid-template-columns: 2.45rem minmax(0, 1fr) 2.45rem;
  align-items: center;
  gap: 0.9rem;
}

.biblioteca-knowledge-atlas-study-section-heading::after {
  content: "";
  width: 2.45rem;
  height: 2.45rem;
}

.biblioteca-knowledge-atlas-study-section-heading > span {
  width: 2.45rem;
  height: 2.45rem;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  color: color-mix(in srgb, var(--atlas-study-color), white 34%);
  border: 1px solid color-mix(in srgb, var(--atlas-study-color), transparent 58%);
  border-radius: 50%;
  background: color-mix(in srgb, var(--atlas-study-color), transparent 88%);
  box-shadow: 0 0 24px color-mix(in srgb, var(--atlas-study-glow), transparent 28%);
}

.biblioteca-knowledge-atlas-study-section-heading svg {
  width: 1.2rem;
  height: 1.2rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-knowledge-atlas-study-section-heading h2 {
  min-width: 0;
  max-width: 100%;
  margin: 0;
  color: rgba(248, 251, 255, 0.96);
  font-size: clamp(1.45rem, 2.7vw, 2.15rem);
  font-weight: 620;
  letter-spacing: -0.015em;
  line-height: 1.08;
  text-align: center;
  overflow-wrap: anywhere;
}

.biblioteca-knowledge-atlas-study-text.is-editable {
  cursor: text;
}

.biblioteca-knowledge-atlas-continuation {
  position: relative;
  display: grid;
  grid-template-columns: 2.2rem minmax(0, 1fr);
  align-items: start;
  gap: 0.8rem;
  padding: 1.05rem 0;
  border-top: 1px solid rgba(210, 224, 238, 0.12);
  border-bottom: 1px solid rgba(210, 224, 238, 0.12);
}

.biblioteca-knowledge-atlas-continuation::before {
  content: "";
  position: absolute;
  top: 1.75rem;
  bottom: -1.5rem;
  left: 0.24rem;
  width: 1px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--atlas-study-color), transparent 36%), transparent);
}

.biblioteca-knowledge-atlas-continuation > span {
  color: color-mix(in srgb, var(--atlas-study-color), white 34%);
  font-size: 0.72rem;
  font-weight: 760;
}

.biblioteca-knowledge-atlas-continuation > div {
  min-width: 0;
  display: grid;
  gap: 0.18rem;
}

.biblioteca-knowledge-atlas-continuation small {
  color: rgba(187, 202, 216, 0.56);
  font-size: 0.68rem;
  font-weight: 680;
}

.biblioteca-knowledge-atlas-continuation strong {
  color: rgba(244, 248, 252, 0.94);
  font-size: 1.02rem;
  font-weight: 680;
  line-height: 1.25;
}

.biblioteca-knowledge-atlas-continuation p {
  margin: 0.24rem 0 0;
  color: color-mix(in srgb, var(--atlas-study-color), white 42%);
  font-size: 0.84rem;
  line-height: 1.45;
}

.biblioteca-knowledge-atlas-gift-study {
  display: grid;
  gap: 0.9rem;
}

.biblioteca-knowledge-atlas-gift-lead {
  max-width: 46rem;
  margin: 0;
  color: rgba(225, 233, 241, 0.86);
  font-size: clamp(0.98rem, 1.6vw, 1.14rem);
  line-height: 1.68;
  white-space: pre-line;
}

.biblioteca-knowledge-atlas-gift-topics {
  position: relative;
  display: grid;
  padding-left: 0.15rem;
}

.biblioteca-knowledge-atlas-gift-topics::before {
  content: "";
  position: absolute;
  top: 1.45rem;
  bottom: 1.45rem;
  left: 1rem;
  width: 1px;
  background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--atlas-study-color), transparent 56%) 15%, color-mix(in srgb, var(--atlas-study-color), transparent 74%) 85%, transparent);
}

.biblioteca-knowledge-atlas-gift-topic {
  position: relative;
  border-bottom: 1px solid rgba(210, 224, 238, 0.1);
}

.biblioteca-knowledge-atlas-gift-topic:first-child {
  border-top: 1px solid rgba(210, 224, 238, 0.1);
}

.biblioteca-knowledge-atlas-gift-topic summary {
  min-height: 4.35rem;
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr) 1rem;
  align-items: center;
  gap: 0.8rem;
  padding: 0.62rem 0;
  color: rgba(239, 245, 250, 0.92);
  cursor: pointer;
  list-style: none;
}

.biblioteca-knowledge-atlas-gift-topic summary::-webkit-details-marker {
  display: none;
}

.biblioteca-knowledge-atlas-gift-order {
  position: relative;
  z-index: 1;
  width: 1.7rem;
  height: 1.7rem;
  display: grid;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--atlas-study-color), transparent 58%);
  border-radius: 50%;
  color: color-mix(in srgb, var(--atlas-study-color), white 34%);
  background: color-mix(in srgb, var(--atlas-study-color), #111620 74%);
  font-size: 0.62rem;
  font-weight: 760;
  transition: box-shadow 240ms ease, border-color 240ms ease;
}

.biblioteca-knowledge-atlas-gift-title {
  min-width: 0;
  display: grid;
  gap: 0.16rem;
}

.biblioteca-knowledge-atlas-gift-title strong {
  color: rgba(244, 248, 252, 0.94);
  font-size: 0.96rem;
  font-weight: 680;
  line-height: 1.25;
}

.biblioteca-knowledge-atlas-gift-title small {
  color: rgba(187, 202, 216, 0.58);
  font-size: 0.72rem;
  line-height: 1.35;
}

.biblioteca-knowledge-atlas-gift-toggle {
  position: relative;
  width: 0.9rem;
  height: 0.9rem;
  color: rgba(197, 211, 224, 0.58);
}

.biblioteca-knowledge-atlas-gift-toggle::before,
.biblioteca-knowledge-atlas-gift-toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.72rem;
  height: 1px;
  background: currentColor;
  transform: translate(-50%, -50%);
  transition: opacity 180ms ease, transform 180ms ease;
}

.biblioteca-knowledge-atlas-gift-toggle::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.biblioteca-knowledge-atlas-gift-topic[open] .biblioteca-knowledge-atlas-gift-toggle::after {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(0deg);
}

.biblioteca-knowledge-atlas-gift-topic[open] .biblioteca-knowledge-atlas-gift-order {
  border-color: color-mix(in srgb, var(--atlas-study-color), white 22%);
  box-shadow: 0 0 20px var(--atlas-study-glow);
}

.biblioteca-knowledge-atlas-gift-topic > p {
  margin: 0;
  padding: 0 1.5rem 1.05rem 2.8rem;
  color: rgba(211, 222, 232, 0.76);
  font-size: 0.9rem;
  line-height: 1.62;
  animation: bibliotecaAtlasGiftTopicIn 220ms ease both;
}

@keyframes bibliotecaAtlasGiftTopicIn {
  from {
    opacity: 0;
    transform: translateY(0.2rem);
  }

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

.biblioteca-knowledge-atlas-study-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(210, 224, 238, 0.12);
}

.biblioteca-knowledge-atlas-study-action-context > span {
  color: color-mix(in srgb, var(--atlas-study-color), white 34%);
  font-size: 0.76rem;
  font-weight: 710;
}

.biblioteca-knowledge-atlas-study-action-context {
  display: grid;
  gap: 0.08rem;
}

.biblioteca-knowledge-atlas-study-actions button {
  min-height: 2.65rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0 0.9rem;
  border: 1px solid color-mix(in srgb, var(--atlas-study-color), white 16%);
  border-radius: 8px;
  color: rgba(249, 252, 255, 0.96);
  background: color-mix(in srgb, var(--atlas-study-color), #101722 36%);
  font-size: 0.86rem;
  font-weight: 760;
  cursor: pointer;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.biblioteca-knowledge-atlas-study-actions button:hover,
.biblioteca-knowledge-atlas-study-actions button:focus-visible {
  border-color: color-mix(in srgb, var(--atlas-study-color), white 34%);
  box-shadow: 0 0 28px var(--atlas-study-glow);
  transform: translateY(-1px);
}

.biblioteca-knowledge-atlas-study-actions svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-knowledge-atlas-card {
  position: absolute;
  z-index: 8;
  right: clamp(1rem, 2.4vw, 2rem);
  bottom: clamp(1rem, 2.4vw, 2rem);
  width: min(23rem, calc(100% - 2rem));
  display: grid;
  gap: 1.4rem;
  padding: clamp(1rem, 2vw, 1.35rem) clamp(1rem, 2vw, 1.45rem);
  border: 0;
  border-left: 1px solid color-mix(in srgb, var(--atlas-card-color), transparent 68%);
  border-radius: 0;
  color: var(--atlas-ink);
  background: linear-gradient(90deg, rgba(5, 11, 15, 0.9), rgba(5, 11, 15, 0.64) 74%, transparent);
  box-shadow:
    -1.4rem 0 4rem rgba(0, 0, 0, 0.16),
    -0.8rem 0 3rem color-mix(in srgb, var(--atlas-card-glow), transparent 82%);
  backdrop-filter: blur(9px);
  animation: bibliotecaAtlasCardIn 420ms ease both;
}

.biblioteca-knowledge-node-main-text.is-empty-editable,
.biblioteca-knowledge-atlas-study-text.is-empty-editable {
  color: rgba(190, 202, 216, 0.5);
  cursor: text;
  font-style: italic;
}

.biblioteca-knowledge-inline-main-text-editor {
  width: 100%;
  min-height: 12rem;
  resize: vertical;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(170, 190, 216, 0.28);
  border-radius: 8px;
  color: rgba(245, 248, 252, 0.96);
  background: rgba(7, 11, 19, 0.72);
  font: inherit;
  line-height: 1.65;
  outline: none;
}

.biblioteca-knowledge-inline-main-text-editor:focus {
  border-color: rgba(170, 196, 232, 0.58);
  box-shadow: 0 0 0 3px rgba(116, 150, 204, 0.1);
}

.biblioteca-knowledge-atlas-card-host {
  position: static;
  transition: opacity 320ms ease;
}

.biblioteca-knowledge-atlas-card-host.is-filter-hidden {
  opacity: 0;
  pointer-events: none;
}

.biblioteca-knowledge-atlas-card-close {
  position: absolute;
  top: 0.64rem;
  right: 0.64rem;
  width: 1.8rem;
  height: 1.8rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: rgba(228, 237, 246, 0.78);
  background: transparent;
  cursor: pointer;
  font-size: 1.15rem;
  line-height: 1;
}

.biblioteca-knowledge-atlas-card-favorite {
  position: absolute;
  top: 0.64rem;
  right: 2.8rem;
  width: 1.8rem;
  height: 1.8rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: rgba(228, 237, 246, 0.68);
  background: transparent;
  cursor: pointer;
}

.biblioteca-knowledge-atlas-card-favorite.is-active {
  color: rgba(244, 214, 133, 0.96);
  border-color: rgba(224, 190, 104, 0.32);
  background: rgba(199, 155, 67, 0.12);
  box-shadow: 0 0 22px rgba(199, 155, 67, 0.13);
}

.biblioteca-knowledge-atlas-card-favorite svg {
  width: 0.94rem;
  height: 0.94rem;
  fill: currentColor;
  fill-opacity: 0.08;
  stroke: currentColor;
  stroke-width: 1.6;
}

.biblioteca-knowledge-atlas-card-favorite.is-active svg {
  fill-opacity: 0.22;
}

.biblioteca-knowledge-atlas-card-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.34rem;
}

.biblioteca-knowledge-atlas-card-type {
  padding: 0.28rem 0.48rem;
  border: 1px solid rgba(222, 233, 244, 0.11);
  border-radius: 999px;
  color: rgba(206, 218, 230, 0.72);
  background: rgba(255, 255, 255, 0.04);
  font-size: 0.7rem;
  font-weight: 760;
}

.biblioteca-knowledge-atlas-card-state {
  padding: 0.28rem 0.48rem;
  border: 1px solid color-mix(in srgb, var(--atlas-card-color), transparent 68%);
  border-radius: 999px;
  color: color-mix(in srgb, var(--atlas-card-color), white 34%);
  background: color-mix(in srgb, var(--atlas-card-color), transparent 90%);
  font-size: 0.7rem;
  font-weight: 760;
}

.biblioteca-knowledge-atlas-card h3 {
  max-width: calc(100% - 2rem);
  margin: 0;
  color: rgba(250, 252, 255, 0.98);
  font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  font-weight: 400;
  letter-spacing: 0.015em;
  line-height: 1.12;
}

.biblioteca-knowledge-atlas-card p {
  margin: 0;
  color: var(--atlas-muted);
  font-size: 0.92rem;
  line-height: 1.55;
}

.biblioteca-knowledge-atlas-card-purpose {
  color: rgba(235, 242, 249, 0.84) !important;
}

.biblioteca-knowledge-atlas-card-connections {
  display: flex;
  flex-wrap: wrap;
  gap: 0.28rem;
}

.biblioteca-knowledge-atlas-card-connections button,
.biblioteca-knowledge-atlas-card-connections span {
  min-height: 1.8rem;
  display: inline-flex;
  align-items: center;
  padding: 0 0.56rem;
  border: 1px solid rgba(206, 220, 236, 0.12);
  border-radius: 999px;
  color: rgba(218, 229, 240, 0.76);
  background: rgba(255, 255, 255, 0.04);
  font-size: 0.76rem;
  font-weight: 650;
}

.biblioteca-knowledge-atlas-card-connections button {
  cursor: pointer;
}

.biblioteca-knowledge-atlas-enter {
  justify-self: start;
  min-height: 2rem;
  display: inline-flex;
  align-items: center;
  gap: 0.48rem;
  padding: 0 0 0.28rem;
  border: 0;
  border-bottom: 1px solid rgba(205, 198, 174, 0.25);
  border-radius: 0;
  color: rgba(226, 224, 213, 0.78);
  background: transparent;
  font-size: 0.7rem;
  font-weight: 560;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.biblioteca-knowledge-atlas-enter:hover,
.biblioteca-knowledge-atlas-enter:focus-visible {
  transform: translateX(0.16rem);
  border-color: rgba(224, 215, 186, 0.48);
  box-shadow: none;
}

.biblioteca-knowledge-atlas-enter svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@keyframes bibliotecaAtlasNodeIn {
  from {
    opacity: 0;
    filter: brightness(0.72) saturate(0.72);
  }
  to {
    opacity: 1;
    filter: brightness(1) saturate(1);
  }
}

@keyframes bibliotecaAtlasDiscoveryIn {
  0% {
    opacity: 0;
    filter: blur(5px) brightness(0.62) saturate(0.52);
  }
  56% {
    opacity: 0.48;
    filter: blur(1.5px) brightness(0.86) saturate(0.78);
  }
  100% {
    opacity: 1;
    filter: blur(0) brightness(1) saturate(1);
  }
}

@keyframes bibliotecaAtlasNodeBreath {
  0%,
  100% {
    box-shadow:
      0 0 calc(0.7rem * var(--atlas-presence-scale, 1)) var(--atlas-glow),
      0 0 calc(1.7rem * var(--atlas-presence-scale, 1)) color-mix(in srgb, var(--atlas-glow), transparent 42%);
  }
  50% {
    box-shadow:
      0 0 calc(0.9rem * var(--atlas-presence-scale, 1)) var(--atlas-glow),
      0 0 calc(2.1rem * var(--atlas-presence-scale, 1)) color-mix(in srgb, var(--atlas-glow), transparent 32%);
  }
}

@keyframes bibliotecaAtlasBreath {
  0%,
  100% {
    box-shadow:
      0 0 0 1.7rem rgba(108, 102, 78, 0.012),
      0 0 4.8rem rgba(82, 115, 110, 0.12);
  }
  50% {
    box-shadow:
      0 0 0 2.1rem rgba(108, 102, 78, 0.016),
      0 0 5.6rem rgba(82, 115, 110, 0.15);
  }
}

@keyframes bibliotecaAtlasConnectionIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes bibliotecaAtlasCardIn {
  from {
    opacity: 0;
    transform: translateY(0.42rem);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes bibliotecaAtlasStudyIn {
  from {
    opacity: 0;
    transform: translateY(0.45rem) scale(0.99);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@media (max-width: 980px) {
  .biblioteca-knowledge-atlas-study-card {
    height: auto;
    margin-top: 0;
  }

  .biblioteca-knowledge-atlas-study-card.has-study-facets {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto minmax(0, 1fr) auto;
  }

  .biblioteca-knowledge-atlas-study-layer {
    padding: clamp(1rem, 3vw, 2.4rem);
  }

  .biblioteca-knowledge-atlas-study-facets {
    grid-column: 1;
    grid-row: 2;
    grid-auto-flow: column;
    align-content: initial;
    padding: 0 0 0.85rem;
    border-right: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--atlas-study-color), transparent 86%);
  }

  .biblioteca-knowledge-atlas-study-card.has-study-facets .biblioteca-knowledge-atlas-study-content {
    grid-column: 1;
    grid-row: 3;
  }

  .biblioteca-knowledge-atlas-study-card.has-study-facets .biblioteca-knowledge-atlas-study-actions {
    grid-row: 4;
  }

  .biblioteca-knowledge-atlas-filters {
    justify-content: flex-start;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .biblioteca-knowledge-atlas-filters::-webkit-scrollbar {
    display: none;
  }

  .biblioteca-knowledge-atlas-node {
    width: 7.2rem;
    height: 5.2rem;
  }

  .biblioteca-knowledge-atlas-card {
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    width: auto;
  }
}

@media (max-width: 680px) {
  .biblioteca-knowledge-atlas-page {
    padding: 0;
  }

  .biblioteca-knowledge-atlas-filters {
    top: 3.15rem;
    width: calc(100% - 0.8rem);
  }

  .biblioteca-knowledge-atlas-stage {
    height: calc(100vh - 6.25rem);
    min-height: 34rem;
    margin-top: 6.25rem;
  }

  .biblioteca-knowledge-atlas-stage.has-gravity-focus .biblioteca-knowledge-atlas-world {
    --atlas-focus-y: -9%;
  }

  .biblioteca-knowledge-atlas-core {
    width: 0.3rem;
  }

  .biblioteca-knowledge-atlas-node {
    width: 5.9rem;
    height: 4.2rem;
    grid-template-rows: 2.5rem minmax(1.35rem, auto);
    padding: 0 0.1rem;
  }

  .biblioteca-knowledge-atlas-node::before {
    width: calc(0.72rem * var(--atlas-presence-scale, 1));
  }

  .biblioteca-knowledge-atlas-node-orbit {
    top: 0.65rem;
    width: calc(1.5rem * var(--atlas-presence-scale, 1));
  }

  .biblioteca-knowledge-atlas-node-symbol {
    width: 1rem;
    height: 1rem;
  }

  .biblioteca-knowledge-atlas-node strong {
    max-width: 5.9rem;
    min-height: 1.45rem;
    font-size: 0.57rem;
    line-height: 1.14;
  }

  .biblioteca-knowledge-atlas-study-layer {
    padding: 0.55rem;
  }

  .biblioteca-knowledge-atlas-study-card {
    max-height: calc(100% - 0.5rem);
    gap: 0.95rem;
    padding: 1.1rem;
  }

  .biblioteca-knowledge-atlas-study-heading {
    align-items: flex-start;
    gap: 0.72rem;
  }

  .biblioteca-knowledge-atlas-study-heading .biblioteca-knowledge-symbol {
    width: 2.7rem;
    height: 2.7rem;
  }

  .biblioteca-knowledge-atlas-study-heading h1 {
    font-size: 2rem;
  }

  .biblioteca-knowledge-atlas-study-text {
    font-size: 0.98rem;
    line-height: 1.6;
  }

  .biblioteca-knowledge-atlas-continuation {
    grid-template-columns: 1.65rem minmax(0, 1fr);
    gap: 0.55rem;
  }

  .biblioteca-knowledge-atlas-gift-topic summary {
    grid-template-columns: 1.8rem minmax(0, 1fr) 0.9rem;
    gap: 0.58rem;
  }

  .biblioteca-knowledge-atlas-gift-topic > p {
    padding: 0 0 0.95rem 2.38rem;
  }

  .biblioteca-knowledge-atlas-study-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .biblioteca-knowledge-atlas-study-actions button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .biblioteca-video-work-card,
  .biblioteca-video-work-cover,
  .biblioteca-video-work-cover img,
  .biblioteca-video-work-play,
  .biblioteca-video-hover-preview,
  .biblioteca-video-hover-poster,
  .biblioteca-video-hover-media iframe,
  .biblioteca-video-hover-media video,
  .biblioteca-video-hover-actions button {
    transition-duration: 1ms !important;
  }

  .biblioteca-video-work-card,
  .biblioteca-video-work-shell.is-video-hover-intent .biblioteca-video-work-card,
  .biblioteca-video-hover-preview,
  .biblioteca-video-hover-preview.preview-opening,
  .biblioteca-video-hover-preview.preview-open,
  .biblioteca-video-hover-preview.preview-closing {
    transform: none !important;
  }

  .biblioteca-knowledge-atlas-world,
  .biblioteca-knowledge-atlas-core,
  .biblioteca-knowledge-atlas-node,
  .biblioteca-knowledge-atlas-card-host {
    transition-duration: 1ms !important;
  }

  .biblioteca-knowledge-atlas-core,
  .biblioteca-knowledge-atlas-node,
  .biblioteca-knowledge-atlas-connections path,
  .biblioteca-knowledge-atlas-card,
  .biblioteca-knowledge-atlas-study-card {
    animation: none !important;
  }
}

/* Editorial Card: voz visual reutilizable de La Fuente. */
.editorial-card-layer {
  position: fixed;
  z-index: 12100;
  inset: 0;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 4vw, 3rem);
  background: rgba(1, 7, 14, 0.56);
  -webkit-backdrop-filter: blur(11px) saturate(0.82);
  backdrop-filter: blur(11px) saturate(0.82);
  animation: editorialCardBackdropIn 360ms ease both;
}

.editorial-card-layer.has-transparent-backdrop {
  background: transparent;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  pointer-events: none;
}

.editorial-card-layer.has-transparent-backdrop .editorial-card {
  pointer-events: auto;
}

.editorial-card-layer.is-closing {
  animation: editorialCardBackdropOut 280ms ease both;
}

.editorial-card {
  position: relative;
  width: min(38rem, calc(100vw - 2rem));
  display: grid;
  gap: clamp(1.5rem, 3vw, 2.2rem);
  padding: clamp(2rem, 5vw, 4.1rem);
  overflow: hidden;
  border: 1px solid rgba(24, 54, 73, 0.1);
  border-radius: clamp(1.25rem, 2.3vw, 1.8rem);
  color: #172a38;
  background:
    radial-gradient(circle at 5% 2%, rgba(255, 210, 111, 0.2), transparent 15rem),
    radial-gradient(circle at 98% 100%, rgba(116, 199, 184, 0.12), transparent 16rem),
    #fbfaf7;
  box-shadow: 0 2rem 6rem rgba(0, 8, 16, 0.3);
  outline: none;
  transform-origin: center;
  animation: editorialCardIn 520ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.editorial-card-layer.is-closing .editorial-card {
  animation: editorialCardOut 280ms ease both;
}

.editorial-card-layer.is-large .editorial-card {
  width: min(43rem, calc(100vw - 2rem));
}

.editorial-card-layer.is-welcome .editorial-card {
  isolation: isolate;
  border-color: rgba(22, 51, 72, 0.08);
  background:
    radial-gradient(circle at 8% 5%, rgba(255, 211, 112, 0.3), transparent 16rem),
    radial-gradient(circle at 94% 92%, rgba(120, 205, 190, 0.2), transparent 17rem),
    #fbfaf7;
  box-shadow:
    0 2.2rem 7rem rgba(0, 9, 18, 0.32),
    inset 0 1px 0 rgba(255, 255, 255, 0.72);
  animation: editorialWelcomeCardIn 760ms cubic-bezier(0.22, 0.78, 0.24, 1) both;
}

.editorial-card-layer.is-welcome .editorial-card::before,
.editorial-card-layer.is-welcome .editorial-card::after {
  content: "";
  position: absolute;
  z-index: -1;
  border-radius: 50%;
  pointer-events: none;
}

.editorial-card-layer.is-welcome .editorial-card::before {
  top: 2.5rem;
  right: 3.2rem;
  width: 0.72rem;
  height: 0.72rem;
  background: #ef9c72;
  box-shadow:
    0 0 0 0.42rem rgba(255, 255, 255, 0.62),
    -2.2rem 2.7rem 0 -0.08rem #e3a63f,
    -2.2rem 2.7rem 0 0.3rem rgba(227, 166, 63, 0.11);
}

.editorial-card-layer.is-welcome .editorial-card::after {
  right: -4.5rem;
  bottom: -5.5rem;
  width: 14rem;
  height: 14rem;
  border: 1px solid rgba(42, 97, 129, 0.12);
  box-shadow: 0 0 0 2.2rem rgba(120, 205, 190, 0.035);
}

.editorial-card-layer.is-welcome .editorial-card-copy,
.editorial-card-layer.is-welcome .editorial-card-actions {
  position: relative;
  z-index: 1;
}

.editorial-card-layer.is-welcome .editorial-card-eyebrow {
  display: flex;
  align-items: center;
  gap: 0.58rem;
  color: #406379;
  font-family: Inter, "Helvetica Neue", "Segoe UI", sans-serif;
  font-weight: 680;
}

.editorial-card-layer.is-welcome .editorial-card-eyebrow::before {
  content: "";
  width: 0.48rem;
  height: 0.48rem;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #e3a63f;
  box-shadow: 0 0 0 0.3rem rgba(227, 166, 63, 0.13);
}

.editorial-card-layer.is-welcome .editorial-card h2 {
  max-width: 15ch;
  font-family: Inter, "Helvetica Neue", "Segoe UI", sans-serif;
  font-weight: 570;
  line-height: 0.98;
  letter-spacing: -0.055em;
}

.editorial-card-layer.is-welcome .editorial-card-description,
.editorial-card-layer.is-welcome .editorial-card-actions {
  font-family: Inter, "Helvetica Neue", "Segoe UI", sans-serif;
}

.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome {
  background: rgba(0, 5, 9, 0.48);
  -webkit-backdrop-filter: blur(8px) saturate(0.72);
  backdrop-filter: blur(8px) saturate(0.72);
}

.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card {
  width: min(35rem, calc(100vw - 2rem));
  gap: 1.8rem;
  padding: clamp(2rem, 4vw, 3.2rem);
  border: 1px solid rgba(207, 196, 164, 0.13);
  border-radius: 2px;
  color: rgba(230, 228, 217, 0.9);
  background:
    radial-gradient(circle at 8% 8%, rgba(137, 116, 77, 0.09), transparent 15rem),
    linear-gradient(148deg, rgba(8, 18, 23, 0.96), rgba(3, 10, 14, 0.98));
  box-shadow:
    0 3rem 9rem rgba(0, 0, 0, 0.5),
    inset 0 1px 0 rgba(229, 221, 195, 0.035);
}

.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card::before {
  top: 2.4rem;
  right: 2.6rem;
  width: 0.26rem;
  height: 0.26rem;
  background: rgba(213, 190, 137, 0.7);
  box-shadow:
    0 0 0 0.45rem rgba(213, 190, 137, 0.025),
    -1.8rem 2.4rem 0 -0.04rem rgba(179, 193, 186, 0.42);
}

.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card::after {
  display: none;
}

.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card-eyebrow {
  color: rgba(181, 190, 188, 0.54);
  font-size: 0.62rem;
  font-weight: 540;
  letter-spacing: 0.18em;
}

.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card-eyebrow::before {
  width: 0.28rem;
  height: 0.28rem;
  background: rgba(207, 184, 130, 0.72);
  box-shadow: 0 0 0 0.35rem rgba(207, 184, 130, 0.035);
}

.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card h2 {
  max-width: 18ch;
  color: rgba(239, 235, 221, 0.94);
  font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1.02;
}

.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card-description {
  max-width: 34rem;
  color: rgba(190, 198, 197, 0.64);
  font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  font-size: 0.98rem;
  line-height: 1.65;
}

.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card-primary,
.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card-secondary {
  min-height: 2rem;
  padding: 0 0 0.24rem;
  border: 0;
  border-bottom: 1px solid rgba(205, 196, 168, 0.2);
  border-radius: 0;
  color: rgba(218, 218, 209, 0.72);
  background: transparent;
  box-shadow: none;
  font-size: 0.66rem;
  font-weight: 560;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card-primary:hover,
.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card-primary:focus-visible,
.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card-secondary:hover,
.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card-secondary:focus-visible {
  color: rgba(241, 237, 222, 0.94);
  border-color: rgba(220, 209, 178, 0.48);
  background: transparent;
  box-shadow: none;
}

.editorial-card-layer.is-compact {
  align-items: center;
  background: rgba(1, 7, 14, 0.24);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}

.editorial-card-layer.is-compact .editorial-card {
  width: min(30rem, calc(100vw - 2rem));
  gap: 1.1rem;
  padding: clamp(1.45rem, 4vw, 2.1rem);
  border-radius: 1.2rem;
}

.editorial-card-copy {
  display: grid;
  gap: 0.9rem;
}

.editorial-card-eyebrow {
  margin: 0;
  color: rgba(47, 79, 96, 0.68);
  font-size: 0.7rem;
  font-weight: 760;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.editorial-card h2 {
  margin: 0;
  max-width: 12.5ch;
  color: #152b39;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.15rem, 5vw, 3.65rem);
  font-weight: 500;
  line-height: 0.98;
  letter-spacing: -0.035em;
}

.editorial-card-layer.is-compact .editorial-card h2 {
  max-width: 16ch;
  font-size: clamp(1.65rem, 4vw, 2.35rem);
}

.editorial-card-description {
  margin: 0;
  max-width: 34rem;
  color: rgba(36, 61, 77, 0.72);
  font-size: clamp(0.96rem, 1.7vw, 1.08rem);
  line-height: 1.65;
}

.editorial-card-actions {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.editorial-card-primary,
.editorial-card-secondary {
  min-height: 2.9rem;
  padding: 0.72rem 1.15rem;
  border-radius: 0.62rem;
  font: inherit;
  font-size: 0.86rem;
  font-weight: 700;
  cursor: pointer;
}

.editorial-card-primary {
  border: 1px solid #152b39;
  color: rgba(252, 250, 245, 0.98);
  background: #152b39;
  box-shadow: 0 0.8rem 1.8rem rgba(9, 29, 42, 0.16);
}

.editorial-card-layer.is-welcome .editorial-card-primary {
  border-radius: 999px;
}

.editorial-card-secondary {
  border: 1px solid rgba(28, 57, 75, 0.14);
  color: #294659;
  background: transparent;
}

.editorial-card-primary:hover,
.editorial-card-primary:focus-visible {
  background: #203d4f;
}

.editorial-card button:focus-visible {
  outline: 2px solid rgba(38, 91, 119, 0.45);
  outline-offset: 3px;
}

@keyframes editorialCardBackdropIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes editorialCardBackdropOut {
  from { opacity: 1; }
  to { opacity: 0; }
}

@keyframes editorialCardIn {
  from { opacity: 0; transform: translateY(0.8rem) scale(0.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes editorialWelcomeCardIn {
  from { opacity: 0; transform: translateY(0.45rem) scale(0.994); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes editorialCardOut {
  from { opacity: 1; transform: translateY(0) scale(1); }
  to { opacity: 0; transform: translateY(0.35rem) scale(0.992); }
}

@media (max-width: 560px) {
  .editorial-card-layer {
    padding: max(0.85rem, env(safe-area-inset-top)) 0.85rem max(0.85rem, env(safe-area-inset-bottom));
  }

  .editorial-card,
  .editorial-card-layer.is-large .editorial-card {
    width: 100%;
    gap: 1.5rem;
    padding: 2rem 1.45rem;
    border-radius: 1.25rem;
  }

  .editorial-card h2 {
    font-size: clamp(2rem, 11vw, 3rem);
  }

  .editorial-card-actions,
  .editorial-card-primary,
  .editorial-card-secondary {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .editorial-card-layer,
  .editorial-card,
  .editorial-card-layer.is-closing,
  .editorial-card-layer.is-closing .editorial-card {
    animation: none !important;
  }
}

/* La Fuente install announcement: browser-only surface */
.biblioteca-install-notice {
  position: fixed;
  z-index: 12000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: clamp(1.25rem, 4vw, 3.5rem);
  font-family: Inter, "Helvetica Neue", "Segoe UI", sans-serif;
  opacity: 0;
  pointer-events: none;
  transition: opacity 640ms ease-out;
}

.biblioteca-install-notice::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(2, 10, 18, 0.52);
  -webkit-backdrop-filter: blur(12px) saturate(0.86);
  backdrop-filter: blur(12px) saturate(0.86);
}

.biblioteca-install-notice.is-visible {
  opacity: 1;
  pointer-events: auto;
}

.biblioteca-install-card {
  position: relative;
  width: min(52rem, calc(100vw - clamp(2.5rem, 8vw, 7rem)));
  min-height: min(30rem, calc(100dvh - 5rem));
  display: grid;
  grid-template-columns: minmax(13rem, 0.82fr) minmax(20rem, 1.18fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 4.5rem);
  padding: clamp(3.25rem, 6vw, 5.5rem);
  overflow: hidden;
  border: 1px solid rgba(22, 51, 72, 0.1);
  border-radius: clamp(1.65rem, 3vw, 2.5rem);
  color: #132536;
  background:
    radial-gradient(circle at 9% 12%, rgba(255, 211, 112, 0.25), transparent 22rem),
    radial-gradient(circle at 91% 92%, rgba(120, 205, 190, 0.17), transparent 20rem),
    #fbfaf7;
  box-shadow: 0 2.2rem 7rem rgba(0, 9, 18, 0.32);
  opacity: 0;
  transform: translateY(1.15rem) scale(0.988);
  transition:
    opacity 780ms ease-out,
    transform 980ms cubic-bezier(0.22, 0.72, 0.24, 1);
}

.biblioteca-install-notice.is-visible .biblioteca-install-card {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.biblioteca-install-close {
  position: absolute;
  z-index: 2;
  top: clamp(1.1rem, 2.5vw, 1.65rem);
  right: clamp(1.1rem, 2.5vw, 1.65rem);
  width: 2.55rem;
  height: 2.55rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(21, 46, 65, 0.1);
  border-radius: 50%;
  color: rgba(17, 39, 56, 0.62);
  background: rgba(255, 255, 255, 0.56);
  cursor: pointer;
  transition: color 180ms ease, background 180ms ease, transform 180ms ease;
}

.biblioteca-install-close:hover {
  color: #102b40;
  background: rgba(255, 255, 255, 0.92);
  transform: rotate(4deg);
}

.biblioteca-install-close svg {
  width: 1.15rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.55;
  stroke-linecap: round;
}

.biblioteca-install-art {
  position: relative;
  width: min(100%, 14.5rem);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  justify-self: center;
}

.biblioteca-install-art::before {
  content: "";
  position: absolute;
  inset: 14%;
  border-radius: 35%;
  background: linear-gradient(145deg, rgba(241, 197, 91, 0.3), rgba(101, 182, 208, 0.2));
  filter: blur(1.4rem);
}

.biblioteca-install-art img {
  position: relative;
  z-index: 2;
  width: 53%;
  aspect-ratio: 1;
  border-radius: 31%;
  box-shadow: 0 1.3rem 2.7rem rgba(15, 43, 64, 0.16);
  animation: bibliotecaInstallIconFloat 5.6s ease-in-out infinite;
}

.biblioteca-install-orbit {
  position: absolute;
  border: 1px solid rgba(42, 97, 129, 0.16);
  border-radius: 50%;
}

.biblioteca-install-orbit-one {
  inset: 6%;
  animation: bibliotecaInstallOrbit 18s linear infinite;
}

.biblioteca-install-orbit-two {
  inset: 20%;
  border-color: rgba(212, 151, 51, 0.22);
  animation: bibliotecaInstallOrbit 13s linear infinite reverse;
}

.biblioteca-install-spark {
  position: absolute;
  z-index: 3;
  width: 0.72rem;
  height: 0.72rem;
  border-radius: 50%;
  box-shadow: 0 0 0 0.42rem rgba(255, 255, 255, 0.58);
}

.biblioteca-install-spark-one {
  top: 14%;
  right: 18%;
  background: #ef9c72;
}

.biblioteca-install-spark-two {
  bottom: 18%;
  left: 9%;
  width: 0.55rem;
  height: 0.55rem;
  background: #62b6a6;
}

.biblioteca-install-copy {
  position: relative;
  z-index: 1;
  max-width: 27rem;
}

.biblioteca-install-eyebrow {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0 0 1.15rem;
  color: #406379;
  font-size: 0.68rem;
  font-weight: 680;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.biblioteca-install-eyebrow span {
  width: 0.48rem;
  height: 0.48rem;
  border-radius: 50%;
  background: #e3a63f;
  box-shadow: 0 0 0 0.3rem rgba(227, 166, 63, 0.13);
}

.biblioteca-install-copy h2 {
  margin: 0;
  color: #102a3d;
  font-family: Inter, "Helvetica Neue", "Segoe UI", sans-serif;
  font-size: clamp(2.15rem, 4.2vw, 3.5rem);
  font-weight: 570;
  letter-spacing: -0.055em;
  line-height: 0.98;
}

.biblioteca-install-description {
  max-width: 25rem;
  margin: 1.35rem 0 0;
  color: rgba(28, 53, 70, 0.7);
  font-size: clamp(0.96rem, 1.4vw, 1.08rem);
  line-height: 1.65;
}

.biblioteca-install-guidance {
  margin: 1rem 0 0;
  padding: 0.85rem 1rem;
  border-left: 2px solid #e3a63f;
  border-radius: 0 0.55rem 0.55rem 0;
  color: #36566b;
  background: rgba(232, 220, 190, 0.25);
  font-size: 0.86rem;
  line-height: 1.5;
}

.biblioteca-install-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 2rem;
}

.biblioteca-install-primary,
.biblioteca-install-later {
  min-height: 3rem;
  border-radius: 999px;
  font: inherit;
  cursor: pointer;
}

.biblioteca-install-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  padding: 0.78rem 1.2rem;
  border: 1px solid #173d57;
  color: #f8fbfd;
  background: #173d57;
  box-shadow: 0 0.8rem 1.7rem rgba(19, 57, 82, 0.18);
  transition: transform 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

.biblioteca-install-primary:hover {
  background: #0f334c;
  box-shadow: 0 1rem 2rem rgba(19, 57, 82, 0.24);
  transform: translateY(-2px);
}

.biblioteca-install-primary svg {
  width: 1.1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.biblioteca-install-later {
  padding: 0.72rem 0.95rem;
  border: 0;
  color: rgba(25, 51, 68, 0.62);
  background: transparent;
  transition: color 180ms ease, background 180ms ease;
}

.biblioteca-install-later:hover {
  color: #173d57;
  background: rgba(23, 61, 87, 0.055);
}

@keyframes bibliotecaInstallIconFloat {
  0%, 100% { transform: translateY(0) rotate(-0.6deg); }
  50% { transform: translateY(-0.5rem) rotate(0.6deg); }
}

@keyframes bibliotecaInstallOrbit {
  to { transform: rotate(360deg); }
}

@media (max-width: 680px) {
  .biblioteca-install-notice {
    align-items: center;
    padding: max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom));
  }

  .biblioteca-install-card {
    width: min(100%, 27rem);
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 1.3rem;
    padding: 3.5rem 1.65rem 1.8rem;
    border-radius: 1.8rem;
    text-align: center;
  }

  .biblioteca-install-art {
    width: min(46vw, 10.5rem);
  }

  .biblioteca-install-copy {
    max-width: none;
  }

  .biblioteca-install-eyebrow {
    justify-content: center;
    margin-bottom: 0.95rem;
  }

  .biblioteca-install-copy h2 {
    font-size: clamp(2.15rem, 10vw, 2.8rem);
  }

  .biblioteca-install-description {
    margin: 1rem auto 0;
    font-size: 0.96rem;
    line-height: 1.58;
  }

  .biblioteca-install-guidance {
    text-align: left;
  }

  .biblioteca-install-actions {
    align-items: stretch;
    flex-direction: column;
    gap: 0.2rem;
    margin-top: 1.5rem;
  }

  .biblioteca-install-primary,
  .biblioteca-install-later {
    width: 100%;
  }
}

@media (max-height: 620px) and (max-width: 900px) {
  .biblioteca-install-card {
    grid-template-columns: 8rem minmax(0, 1fr);
    gap: 1.4rem;
    padding: 2.4rem;
  }

  .biblioteca-install-art {
    width: 8rem;
  }

  .biblioteca-install-copy h2 {
    font-size: 2.15rem;
  }

  .biblioteca-install-description {
    margin-top: 0.8rem;
  }

  .biblioteca-install-actions {
    margin-top: 1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .biblioteca-install-notice,
  .biblioteca-install-card,
  .biblioteca-install-primary,
  .biblioteca-install-close {
    transition-duration: 1ms !important;
  }

  .biblioteca-install-art img,
  .biblioteca-install-orbit {
    animation: none !important;
  }
}

/* Login de La Fuente: marca y composición vertical nativa en teléfono */
.login-app-mark {
  width: 4.4rem;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  justify-self: center;
  border-radius: 1.18rem;
  background: transparent;
  box-shadow:
    0 1rem 2.5rem rgba(0, 0, 0, 0.2);
}

.login-app-mark img {
  width: 100%;
  height: 100%;
  display: block;
  border-radius: 31%;
}

.login-screen .button:focus-visible,
.login-screen .auth-inline-action:focus-visible,
.login-screen .auth-secondary-action:focus-visible {
  outline: 2px solid rgba(135, 202, 246, 0.78);
  outline-offset: 3px;
}

.login-screen .login-form input:focus-visible {
  outline: 0;
}

@media (prefers-reduced-motion: reduce) {
  .login-screen .button,
  .login-screen .auth-inline-action,
  .login-screen .auth-secondary-action,
  .login-screen .login-form input {
    transition-duration: 1ms !important;
  }
}

/* Login de La Fuente: una antesala silenciosa para entrar a la biblioteca */
@media (min-width: 681px) {
  .login-screen {
    isolation: isolate;
    padding: clamp(2rem, 6vh, 4.5rem) clamp(2rem, 7vw, 7rem);
    background:
      radial-gradient(ellipse at 50% 18%, rgba(38, 94, 139, 0.22), transparent 38rem),
      radial-gradient(ellipse at 12% 92%, rgba(16, 74, 86, 0.12), transparent 34rem),
      linear-gradient(160deg, #01050b 0%, #041321 48%, #00040a 100%);
  }

  .login-screen::before,
  .login-screen::after {
    content: none;
  }

  .app-auth-layout {
    position: relative;
    z-index: 1;
    width: min(100%, 25.5rem);
    max-height: calc(100vh - clamp(4rem, 10vh, 8rem));
    grid-template-columns: minmax(0, 1fr);
    transform: none;
  }

  .app-auth-panel {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    width: 100%;
    gap: 0.95rem;
    padding: clamp(2rem, 4.2vh, 2.55rem) clamp(2.15rem, 3.5vw, 2.65rem);
    border-color: rgba(157, 199, 230, 0.12);
    border-radius: 0.8125rem;
    background:
      linear-gradient(160deg, rgba(7, 24, 41, 0.72), rgba(1, 7, 15, 0.86));
    box-shadow:
      0 2.4rem 6.5rem rgba(0, 0, 0, 0.38);
    -webkit-backdrop-filter: blur(28px) saturate(105%);
    backdrop-filter: blur(28px) saturate(105%);
  }

  .app-auth-panel::before,
  .app-auth-panel::after {
    content: none;
  }

  .app-auth-panel[data-auth-mode="login"] .login-brand {
    margin-bottom: 0.45rem;
  }

  .app-auth-panel[data-auth-mode="login"] {
    min-height: min(34rem, calc(100vh - clamp(4rem, 10vh, 8rem)));
    gap: 1.05rem;
    padding-block: clamp(2.45rem, 5.2vh, 3.1rem);
  }

  .login-app-mark {
    position: relative;
    width: 4.05rem;
    padding: 0.12rem;
    border: 1px solid rgba(137, 188, 226, 0.13);
    border-radius: 0.95rem;
    background: linear-gradient(155deg, rgba(21, 55, 88, 0.52), rgba(2, 13, 27, 0.72));
    box-shadow:
      0 1rem 2.4rem rgba(0, 0, 0, 0.24);
  }

  .login-app-mark img {
    border-radius: 0.78rem;
    filter: saturate(0.88) contrast(1.03);
  }

  .login-brand {
    gap: 0.85rem;
  }

  .app-auth-panel .login-brand h1 {
    font-size: clamp(1.62rem, 2vw, 1.85rem);
    font-weight: 550;
    letter-spacing: -0.03em;
    text-shadow: none;
  }

  .app-auth-panel .login-brand .eyebrow {
    margin-bottom: 0.35rem;
    color: rgba(157, 199, 230, 0.56);
    font-size: 0.62rem;
    letter-spacing: 0.2em;
  }

  .app-auth-panel .login-form {
    gap: 1rem;
  }

  .app-auth-panel .login-form label {
    gap: 0.3rem;
    color: rgba(221, 236, 249, 0.7);
    font-size: 0.74rem;
    letter-spacing: 0.01em;
  }

  .app-auth-panel .login-form input,
  .app-auth-panel .login-form .button {
    min-height: 3rem;
  }

  .app-auth-panel .login-form input {
    padding: 0.3rem 0.1rem 0.12rem;
    border: 0;
    border-bottom: 1px solid rgba(152, 203, 255, 0.22);
    border-radius: 0;
    font-size: 0.93rem;
    background: transparent;
    box-shadow: none;
    transition: border-color 180ms ease, box-shadow 180ms ease;
  }

  .app-auth-panel .login-form input:hover {
    border-bottom-color: rgba(152, 203, 255, 0.46);
  }

  .app-auth-panel .login-form input:focus {
    border-bottom-color: rgba(117, 190, 238, 0.74);
    box-shadow:
      0 1px 0 rgba(117, 190, 238, 0.18),
      0 0.7rem 1.3rem -1.1rem rgba(65, 153, 211, 0.38);
  }

  .app-auth-panel .login-form .button {
    margin-top: 0.35rem;
    border-radius: 0.7rem;
    border: 1px solid rgba(142, 204, 246, 0.13);
    color: #f4f9ff;
    background:
      linear-gradient(145deg, rgba(37, 86, 130, 0.96), rgba(25, 65, 101, 0.98));
    box-shadow:
      0 0.8rem 1.8rem rgba(1, 15, 30, 0.2),
      0 1px 0 rgba(255, 255, 255, 0.07) inset;
    transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease, transform 160ms ease;
  }

  .app-auth-panel .login-form .button:not(:disabled):hover {
    border-color: rgba(142, 211, 255, 0.24);
    background:
      linear-gradient(145deg, rgba(42, 98, 147, 0.98), rgba(28, 73, 113, 1));
    box-shadow:
      0 0.9rem 2rem rgba(1, 15, 30, 0.26);
    transform: translateY(-1px);
  }

  .app-auth-panel .login-form .button:not(:disabled):active {
    box-shadow: 0 0.4rem 1rem rgba(1, 15, 30, 0.2);
    transform: translateY(0);
  }

  .app-auth-panel .form-note {
    color: rgba(202, 222, 240, 0.52);
    font-size: 0.76rem;
  }

  .app-auth-panel .auth-inline-action {
    color: rgba(132, 194, 236, 0.82);
    letter-spacing: 0.01em;
  }

  .app-auth-panel .auth-divider span {
    background: linear-gradient(90deg, transparent, rgba(125, 186, 227, 0.2), transparent);
  }

  .app-auth-panel > .auth-secondary-action {
    color: rgba(221, 235, 248, 0.78);
    font-size: 0.88rem;
  }

  .app-auth-panel #resume-alan-session-button,
  .app-auth-panel .local-dev-login-button {
    min-height: 2.35rem;
    border: 1px solid rgba(132, 194, 236, 0.1);
    border-radius: 999px;
    color: rgba(180, 220, 248, 0.82);
    background: rgba(64, 134, 184, 0.035);
  }

  .app-auth-panel #resume-alan-session-button:hover,
  .app-auth-panel .local-dev-login-button:hover {
    border-color: rgba(132, 194, 236, 0.28);
    color: #f4f9ff;
    background: rgba(64, 134, 184, 0.1);
  }

  .app-auth-panel > .auth-secondary-action,
  .app-auth-panel > .local-dev-login-controls {
    width: min(100%, 20rem);
    justify-self: center;
  }

  .app-auth-panel:not([data-auth-mode="login"]) {
    max-height: calc(100vh - 3rem);
    overflow-y: auto;
  }
}

@media (min-width: 681px) and (max-height: 760px) {
  .login-screen {
    padding-block: 1.25rem;
  }

  .app-auth-layout {
    max-height: calc(100vh - 2.5rem);
  }

  .app-auth-panel {
    gap: 0.68rem;
    padding-block: 1.25rem;
  }

  .login-app-mark {
    width: 3.65rem;
  }

  .login-brand {
    gap: 0.65rem;
  }

  .app-auth-panel[data-auth-mode="login"] .login-brand {
    margin-bottom: 0;
  }

  .app-auth-panel .login-form {
    gap: 0.65rem;
  }

  .app-auth-panel .login-form input,
  .app-auth-panel .login-form .button {
    min-height: 2.85rem;
  }
}

@media (max-width: 680px) {
  html:has(.login-screen:not(.is-hidden)),
  body:has(.login-screen:not(.is-hidden)) {
    min-height: 100%;
    overflow: hidden;
    background: #020b16;
  }

  .login-screen {
    width: 100%;
    height: 100dvh;
    min-height: 100dvh;
    place-items: stretch;
    overflow-x: hidden;
    overflow-y: auto;
    padding:
      max(0.8rem, env(safe-area-inset-top))
      max(1.15rem, env(safe-area-inset-right))
      max(1rem, env(safe-area-inset-bottom))
      max(1.15rem, env(safe-area-inset-left));
    background:
      radial-gradient(ellipse at 50% 5%, rgba(39, 97, 143, 0.22), transparent 22rem),
      radial-gradient(ellipse at 8% 92%, rgba(17, 72, 84, 0.1), transparent 20rem),
      linear-gradient(165deg, #020c17 0%, #010912 52%, #00040a 100%);
  }

  .login-screen::after {
    content: none;
  }

  .app-auth-layout {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 25rem;
    min-height: calc(100dvh - max(1.8rem, env(safe-area-inset-top)) - max(2rem, env(safe-area-inset-bottom)));
    justify-self: center;
    transform: none;
  }

  .app-auth-panel {
    width: 100%;
    min-height: inherit;
    align-content: center;
    gap: clamp(0.9rem, 2.1dvh, 1.2rem);
    padding: clamp(1.5rem, 5vw, 2.1rem) clamp(0.45rem, 3vw, 0.9rem);
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }

  .app-auth-panel[data-auth-mode="login"] .login-brand {
    margin-bottom: clamp(0.8rem, 2.6dvh, 1.45rem);
  }

  .login-app-mark {
    width: clamp(4rem, 18vw, 4.65rem);
    padding: 0.1rem;
    border: 1px solid rgba(137, 188, 226, 0.12);
    border-radius: 1rem;
    background: linear-gradient(155deg, rgba(21, 55, 88, 0.46), rgba(2, 13, 27, 0.68));
    box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.24);
  }

  .login-app-mark img {
    border-radius: 0.84rem;
    filter: saturate(0.88) contrast(1.03);
  }

  .login-brand {
    gap: 0.85rem;
  }

  .app-auth-panel .login-brand .eyebrow {
    margin-bottom: 0.42rem;
    font-size: 0.67rem;
    letter-spacing: 0.15em;
  }

  .app-auth-panel .login-brand h1 {
    font-family: Inter, "Helvetica Neue", "Segoe UI", sans-serif;
    font-size: clamp(1.68rem, 7.5vw, 1.95rem);
    font-weight: 550;
    letter-spacing: -0.035em;
  }

  .app-auth-panel > .login-form,
  .app-auth-panel > .auth-secondary-action,
  .app-auth-panel > .auth-divider,
  .app-auth-panel > .local-dev-login-controls {
    width: min(100%, 21.5rem);
    justify-self: center;
  }

  .login-form {
    gap: 1rem;
  }

  .app-auth-panel .login-form label {
    gap: 0.3rem;
    font-size: 0.76rem;
    font-weight: 590;
  }

  .app-auth-panel .login-form input {
    min-height: 3.1rem;
    padding: 0.35rem 0.1rem 0.12rem;
    border: 0;
    border-bottom: 1px solid rgba(152, 203, 255, 0.24);
    border-radius: 0;
    font-size: 0.96rem;
    background: transparent;
    box-shadow: none;
  }

  .app-auth-panel .login-form input:focus {
    border-bottom-color: rgba(117, 190, 238, 0.78);
    box-shadow:
      0 1px 0 rgba(117, 190, 238, 0.18),
      0 0.7rem 1.3rem -1.1rem rgba(65, 153, 211, 0.38);
  }

  .app-auth-panel .login-form .button {
    min-height: 3.1rem;
    margin-top: 0.28rem;
    border: 1px solid rgba(142, 204, 246, 0.13);
    border-radius: 0.72rem;
    font-size: 0.94rem;
    background: linear-gradient(145deg, rgba(37, 86, 130, 0.96), rgba(25, 65, 101, 0.98));
    box-shadow: 0 0.8rem 1.8rem rgba(1, 15, 30, 0.2);
  }

  .app-auth-panel .form-note {
    min-height: 1.2rem;
    margin-block: 0.22rem 0;
    font-size: 0.79rem;
  }

  .auth-inline-action {
    min-height: 2.5rem;
    font-size: 0.82rem;
  }

  .auth-divider {
    margin-block: 0.1rem;
  }

  .auth-secondary-action {
    min-height: 2.75rem;
    border-radius: 999px;
    font-size: 0.9rem;
  }
}

@media (max-width: 680px) and (max-height: 700px) {
  .app-auth-panel {
    align-content: start;
    gap: 0.72rem;
    padding-top: 1rem;
  }

  .app-auth-panel[data-auth-mode="login"] .login-brand {
    margin-bottom: 0.35rem;
  }

  .login-app-mark {
    width: 3.65rem;
    border-radius: 0.9rem;
  }

  .login-brand {
    gap: 0.7rem;
  }

  .app-auth-panel .login-brand h1 {
    font-size: 1.65rem;
  }

  .app-auth-panel .login-form input,
  .app-auth-panel .login-form .button {
    min-height: 2.85rem;
  }
}

/* El acceso rápido de Alan conserva su acción sin presentarse como pastilla. */
.app-auth-panel #resume-alan-session-button,
.app-auth-panel .local-dev-login-button {
  width: auto;
  min-height: auto;
  padding: 0.4rem 0.2rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.app-auth-panel #resume-alan-session-button:hover,
.app-auth-panel .local-dev-login-button:hover {
  border-color: transparent;
  background: transparent;
  box-shadow: none;
}
/* Recursos en estancia: pestañas discretas para navegar sin perder el contexto. */
.biblioteca-stay-tabs {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  color: rgba(245, 247, 251, 0.88);
}

.documents-library-head .biblioteca-stay-tabs {
  margin-right: auto;
  margin-left: 14px;
}

.biblioteca-stay-tabs-track {
  min-width: 0;
  max-width: min(42vw, 620px);
  display: flex;
  align-items: center;
  gap: 6px;
  overflow-x: auto;
  scrollbar-width: none;
}

.biblioteca-stay-tabs-track::-webkit-scrollbar {
  display: none;
}

.biblioteca-stay-tab-shell {
  position: relative;
  flex: 0 1 330px;
  min-width: 104px;
  max-width: 330px;
  display: flex;
  align-items: center;
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.11);
  border-right: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 9px 9px 0 0;
  background: linear-gradient(180deg, rgba(27, 34, 43, 0.72), rgba(15, 20, 27, 0.48));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
  backdrop-filter: blur(18px) saturate(125%);
  -webkit-backdrop-filter: blur(18px) saturate(125%);
  transition: border-color 180ms ease, background 180ms ease, transform 180ms ease;
}

/* Ajustes de revisión UX: consistencia, aire y transición estable. */
.biblioteca-stay-tab-shell {
  flex: 0 0 330px;
  width: 330px;
}

.biblioteca-stay-tab-shell.is-home {
  flex-basis: 330px;
  width: 330px;
}

.documents-page.is-leaving-for-stay-multiview {
  animation: bibliotecaStayPageDeparture 180ms ease-out both;
}

.documents-page.biblioteca-view-multivista.is-arriving-from-stay {
  animation: bibliotecaStayMultiviewArrival 180ms ease-out both;
}

@keyframes bibliotecaStayPageDeparture {
  from { opacity: 1; filter: none; transform: none; }
  to { opacity: 0.18; filter: none; transform: none; }
}

@keyframes bibliotecaStayMultiviewArrival {
  from { opacity: 0.18; transform: none; }
  to { opacity: 1; transform: none; }
}

@media (max-width: 820px) {
  .biblioteca-stay-tab-shell,
  .biblioteca-stay-tab-shell.is-home {
    flex-basis: 231px;
    width: 231px;
  }
}

/* Banderas institucionales: una capa de fondo, sin participar en la retícula. */
@media (min-width: 821px) {
  .documents-page .biblioteca-sidebar-toggle,
  .documents-page .biblioteca-view-switch,
  .documents-page .biblioteca-academy-toggle,
  body:has(.documents-page) .lf-assistant__launcher,
  .documents-page .biblioteca-introduction-switch,
  .documents-page .biblioteca-saved-top-action {
    isolation: isolate;
    overflow: visible;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    filter: none !important;
  }

  /* Restaura el anclaje propio de los accesos; no modifica sus medidas ni sus offsets. */
  .documents-page .biblioteca-sidebar-toggle,
  .documents-page .biblioteca-view-switch,
  .documents-page .biblioteca-academy-toggle,
  body:has(.documents-page) .lf-assistant__launcher {
    position: fixed !important;
  }

  .documents-page .biblioteca-sidebar-toggle::before,
  .documents-page .biblioteca-view-switch::before,
  .documents-page .biblioteca-academy-toggle::before,
  body:has(.documents-page) .lf-assistant__launcher::before,
  .documents-page .biblioteca-introduction-switch::before,
  .documents-page .biblioteca-saved-top-action::before {
    --flag-top: -0.66rem;
    --flag-light: rgba(116, 94, 43, 0.2);
    --flag-mid: rgba(56, 44, 18, 0.9);
    --flag-deep: rgba(17, 14, 8, 0.98);
    content: "";
    position: absolute;
    z-index: -1;
    top: var(--flag-top);
    left: 50%;
    width: 1.5rem;
    height: 4.22rem;
    transform: translateX(-50%);
    border: 0 !important;
    border-radius: 0 !important;
    clip-path: polygon(0 0, 100% 0, 98% 94%, 52% 100%, 3% 95%);
    background:
      radial-gradient(ellipse at 16% 18%, rgba(255, 250, 225, 0.095) 0 0.42px, transparent 0.92px) 0 0 / 15px 19px repeat,
      radial-gradient(ellipse at 76% 70%, rgba(0, 0, 0, 0.2) 0 0.52px, transparent 1.02px) 5px 8px / 23px 27px repeat,
      linear-gradient(100deg, rgba(255, 255, 255, 0.035), transparent 37%, rgba(0, 0, 0, 0.18) 80%),
      linear-gradient(180deg, var(--flag-light) 0%, var(--flag-mid) 34%, var(--flag-deep) 100%) !important;
    box-shadow: 0 0.34rem 0.82rem rgba(0, 0, 0, 0.24) !important;
    opacity: 0.8;
    pointer-events: none;
  }

  .documents-page .biblioteca-sidebar-toggle::before {
    --flag-top: -0.58rem;
    --flag-light: rgba(150, 121, 51, 0.22);
    --flag-mid: rgba(78, 59, 17, 0.92);
    --flag-deep: rgba(22, 18, 8, 0.99);
  }

  .documents-page .biblioteca-view-switch::before {
    --flag-light: rgba(59, 79, 108, 0.23);
    --flag-mid: rgba(19, 38, 62, 0.94);
    --flag-deep: rgba(6, 15, 28, 0.99);
  }

  .documents-page .biblioteca-academy-toggle::before {
    --flag-light: rgba(45, 89, 62, 0.22);
    --flag-mid: rgba(21, 62, 42, 0.94);
    --flag-deep: rgba(7, 25, 17, 0.99);
  }

  body:has(.documents-page) .lf-assistant__launcher::before {
    --flag-top: -0.48rem;
    --flag-light: rgba(75, 55, 103, 0.22);
    --flag-mid: rgba(47, 33, 69, 0.94);
    --flag-deep: rgba(19, 13, 30, 0.99);
  }

  .documents-page .biblioteca-introduction-switch::before {
    --flag-top: -0.83rem;
    --flag-light: rgba(35, 83, 83, 0.22);
    --flag-mid: rgba(16, 53, 57, 0.94);
    --flag-deep: rgba(5, 24, 28, 0.99);
  }

  .documents-page .biblioteca-saved-top-action::before {
    --flag-top: -0.83rem;
    --flag-light: rgba(105, 49, 53, 0.22);
    --flag-mid: rgba(66, 24, 30, 0.94);
    --flag-deep: rgba(29, 9, 13, 0.99);
  }

  .documents-page .biblioteca-sidebar-toggle:hover::before,
  .documents-page .biblioteca-view-switch:hover::before,
  .documents-page .biblioteca-academy-toggle:hover::before,
  body:has(.documents-page) .lf-assistant__launcher:hover::before,
  .documents-page .biblioteca-introduction-switch:hover::before,
  .documents-page .biblioteca-saved-top-action:hover::before {
    opacity: 0.92;
    filter: brightness(1.035) !important;
  }
}

@media (max-width: 820px) {
  .documents-page .biblioteca-sidebar-toggle,
  .documents-page .biblioteca-introduction-switch {
    isolation: isolate;
    overflow: visible;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .documents-page .biblioteca-sidebar-toggle::before,
  .documents-page .biblioteca-introduction-switch::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: -0.58rem;
    left: 50%;
    width: 1.42rem;
    height: 3.8rem;
    transform: translateX(-50%);
    border: 0 !important;
    border-radius: 0 !important;
    clip-path: polygon(0 0, 100% 0, 98% 94%, 52% 100%, 3% 95%);
    background:
      radial-gradient(ellipse at 17% 18%, rgba(255, 250, 225, 0.08) 0 0.4px, transparent 0.88px) 0 0 / 15px 19px repeat,
      linear-gradient(100deg, rgba(255, 255, 255, 0.035), transparent 37%, rgba(0, 0, 0, 0.18) 80%),
      linear-gradient(180deg, rgba(55, 77, 106, 0.2), rgba(17, 38, 62, 0.94) 35%, rgba(6, 15, 28, 0.99)) !important;
    box-shadow: 0 0.28rem 0.7rem rgba(0, 0, 0, 0.22) !important;
    opacity: 0.78;
    pointer-events: none;
  }

  .documents-page .biblioteca-introduction-switch::before {
    top: -0.8rem;
    background:
      radial-gradient(ellipse at 17% 18%, rgba(255, 250, 225, 0.08) 0 0.4px, transparent 0.88px) 0 0 / 15px 19px repeat,
      linear-gradient(100deg, rgba(255, 255, 255, 0.035), transparent 37%, rgba(0, 0, 0, 0.18) 80%),
      linear-gradient(180deg, rgba(34, 82, 82, 0.2), rgba(16, 53, 57, 0.94) 35%, rgba(5, 24, 28, 0.99)) !important;
  }
}

/* El velo inferior del Hero sólo se oscurece: no cambia de tamaño ni de posición. */
.biblioteca-editorial-hero::after {
  height: 28%;
  opacity: 0.96;
  background:
    radial-gradient(ellipse 82% 125% at 0% 100%, rgba(1, 7, 16, 0.72) 0%, rgba(1, 7, 16, 0.34) 34%, rgba(1, 7, 16, 0.08) 59%, transparent 82%),
    linear-gradient(0deg, rgba(1, 7, 16, 0.96) 0%, rgba(1, 7, 16, 0.8) 27%, rgba(1, 7, 16, 0.3) 68%, transparent 100%);
  filter: none;
  transition: opacity 360ms cubic-bezier(0.22, 1, 0.36, 1);
}

.biblioteca-editorial-hero.is-preview-playing::after,
.biblioteca-editorial-hero.is-preview-settled::after {
  height: 28%;
  opacity: 0;
  filter: none;
}

@media (prefers-reduced-motion: reduce) {
  .biblioteca-editorial-hero::after {
    transition: none;
  }
}

/* Las banderas forman una sola franja superior; la retícula de los íconos permanece intacta. */
@media (min-width: 821px) {
  .documents-page .biblioteca-sidebar-toggle::before,
  .documents-page .biblioteca-view-switch::before,
  .documents-page .biblioteca-academy-toggle::before,
  body:has(.documents-page) .lf-assistant__launcher::before,
  .documents-page .biblioteca-introduction-switch::before,
  .documents-page .biblioteca-saved-top-action::before {
    width: 3.32rem;
  }
}

/* Banderas verticales: capa de fondo sobria, sin intervenir la geometría. */
@media (min-width: 821px) {
  .documents-page .biblioteca-sidebar-toggle,
  .documents-page .biblioteca-view-switch,
  .documents-page .biblioteca-academy-toggle,
  body:has(.documents-page) .lf-assistant__launcher,
  .documents-page .biblioteca-introduction-switch,
  .documents-page .biblioteca-saved-top-action {
    isolation: isolate;
    overflow: visible;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    filter: none !important;
  }

  .documents-page .biblioteca-sidebar-toggle { position: fixed; }
  .documents-page .biblioteca-view-switch { position: fixed; }
  .documents-page .biblioteca-academy-toggle { position: fixed; }
  body:has(.documents-page) .lf-assistant__launcher { position: fixed; }
  .documents-page .biblioteca-introduction-switch,
  .documents-page .biblioteca-saved-top-action { position: relative; }

  .documents-page .biblioteca-sidebar-toggle::before,
  .documents-page .biblioteca-view-switch::before,
  .documents-page .biblioteca-academy-toggle::before,
  body:has(.documents-page) .lf-assistant__launcher::before,
  .documents-page .biblioteca-introduction-switch::before,
  .documents-page .biblioteca-saved-top-action::before {
    --flag-top: -0.66rem;
    --flag-light: rgba(151, 136, 82, 0.18);
    --flag-middle: rgba(55, 47, 28, 0.88);
    --flag-shadow: rgba(12, 14, 18, 0.96);
    content: "";
    position: absolute;
    z-index: -1;
    top: var(--flag-top);
    left: 50%;
    width: 1.86rem;
    height: 4.08rem;
    transform: translateX(-50%);
    border: 0;
    border-radius: 0 0 0.12rem 0.12rem;
    clip-path: polygon(0 0, 100% 0, 96% 96%, 50% 100%, 4% 96%);
    background:
      radial-gradient(ellipse at 19% 17%, rgba(255, 255, 255, 0.12) 0 0.42px, transparent 0.86px) 0 0 / 13px 17px repeat,
      radial-gradient(ellipse at 72% 67%, rgba(0, 0, 0, 0.18) 0 0.5px, transparent 1px) 4px 7px / 19px 23px repeat,
      linear-gradient(102deg, rgba(255, 255, 255, 0.045), transparent 34%, rgba(0, 0, 0, 0.17) 78%),
      linear-gradient(180deg, var(--flag-light) 0%, var(--flag-middle) 34%, var(--flag-shadow) 100%);
    box-shadow: 0 0.32rem 0.85rem rgba(0, 0, 0, 0.32);
    opacity: 0.92;
    pointer-events: none;
  }

  .documents-page .biblioteca-sidebar-toggle::before { --flag-top: -0.58rem; --flag-light: rgba(170, 139, 62, 0.24); --flag-middle: rgba(83, 65, 20, 0.9); --flag-shadow: rgba(24, 20, 10, 0.98); }
  .documents-page .biblioteca-view-switch::before { --flag-light: rgba(68, 94, 128, 0.23); --flag-middle: rgba(24, 43, 68, 0.92); --flag-shadow: rgba(7, 16, 29, 0.98); }
  .documents-page .biblioteca-academy-toggle::before { --flag-light: rgba(102, 78, 130, 0.22); --flag-middle: rgba(61, 43, 84, 0.93); --flag-shadow: rgba(25, 18, 39, 0.98); }
  body:has(.documents-page) .lf-assistant__launcher::before { --flag-top: -0.48rem; --flag-light: rgba(51, 110, 112, 0.22); --flag-middle: rgba(22, 66, 70, 0.93); --flag-shadow: rgba(7, 29, 32, 0.98); }
  .documents-page .biblioteca-introduction-switch::before { --flag-top: -0.83rem; --flag-light: rgba(64, 103, 77, 0.22); --flag-middle: rgba(27, 69, 47, 0.93); --flag-shadow: rgba(9, 29, 21, 0.98); }
  .documents-page .biblioteca-saved-top-action::before { --flag-top: -0.83rem; --flag-light: rgba(116, 61, 62, 0.22); --flag-middle: rgba(76, 31, 35, 0.93); --flag-shadow: rgba(35, 12, 16, 0.98); }

  .documents-page .biblioteca-sidebar-toggle:hover::before,
  .documents-page .biblioteca-view-switch:hover::before,
  .documents-page .biblioteca-academy-toggle:hover::before,
  body:has(.documents-page) .lf-assistant__launcher:hover::before,
  .documents-page .biblioteca-introduction-switch:hover::before,
  .documents-page .biblioteca-saved-top-action:hover::before {
    opacity: 1;
    filter: brightness(1.06);
  }
}

/* La Biblioteca mantiene las portadas y superficies audiovisuales sin filetes azules. */
.documents-page .doc-cover-art,
.documents-page .biblioteca-file-visual,
.documents-page .biblioteca-video-work-cover,
.documents-page .biblioteca-video-hover-preview,
.documents-page .biblioteca-video-consultation,
.documents-page .biblioteca-document-consultation,
.documents-page .biblioteca-continue-thumb,
.documents-page .biblioteca-photo-mosaic-tile,
.documents-page .collection-item-card {
  border-color: transparent !important;
}

.documents-page .biblioteca-video-work-card:hover .biblioteca-video-work-cover,
.documents-page .biblioteca-video-work-shell.is-video-hover-intent .biblioteca-video-work-cover {
  border-color: transparent !important;
  box-shadow: 0 15px 34px rgba(0, 0, 0, 0.25) !important;
}

/* La expansión nace y vuelve exactamente al centro de la tarjeta de origen. */
.biblioteca-video-hover-preview,
.biblioteca-video-hover-preview.preview-opening,
.biblioteca-video-hover-preview.preview-open,
.biblioteca-video-hover-preview.preview-closing {
  transform-origin: center center;
}

.biblioteca-video-hover-preview.preview-opening {
  transform: scale(0.985);
}

.biblioteca-video-hover-preview.preview-open {
  transform: scale(1);
}

.biblioteca-video-hover-preview.preview-closing {
  transform: scale(0.992);
}

@media (max-width: 820px) {
  .documents-page .biblioteca-sidebar-toggle,
  .documents-page .biblioteca-introduction-switch {
    isolation: isolate;
    overflow: visible;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .documents-page .biblioteca-sidebar-toggle::before,
  .documents-page .biblioteca-introduction-switch::before {
    content: "";
    position: absolute;
    z-index: -1;
    left: 50%;
    width: 1.78rem;
    height: 3.72rem;
    transform: translateX(-50%);
    border: 0;
    border-radius: 0 0 0.12rem 0.12rem;
    clip-path: polygon(0 0, 100% 0, 96% 96%, 50% 100%, 4% 96%);
    background:
      radial-gradient(ellipse at 20% 18%, rgba(255, 255, 255, 0.1) 0 0.42px, transparent 0.84px) 0 0 / 13px 17px repeat,
      linear-gradient(104deg, rgba(255, 255, 255, 0.04), transparent 38%, rgba(0, 0, 0, 0.18) 80%),
      linear-gradient(180deg, rgba(69, 94, 126, 0.22), rgba(20, 42, 67, 0.92) 38%, rgba(6, 16, 29, 0.98));
    box-shadow: 0 0.28rem 0.76rem rgba(0, 0, 0, 0.28);
    pointer-events: none;
  }

  .documents-page .biblioteca-sidebar-toggle::before { top: -0.58rem; }
  .documents-page .biblioteca-introduction-switch::before { top: -0.8rem; }
}

/* Acciones editoriales y portadas sin contornos lineales. */
.biblioteca-saved-top-action {
  position: relative;
  width: 2.48rem;
  min-width: 2.48rem;
  min-height: 2.48rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: rgba(224, 235, 244, 0.72);
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  cursor: pointer;
  transition: color 160ms ease, border-color 160ms ease, background 160ms ease;
}

.biblioteca-saved-top-action:hover,
.biblioteca-saved-top-action:focus-visible {
  color: rgba(255, 255, 255, 0.96);
}

.biblioteca-saved-top-action svg {
  width: 1.2rem;
  height: 1.2rem;
  fill: none;
  stroke: currentColor;
}

.biblioteca-saved-top-action svg {
  stroke-width: 2.1;
}

.biblioteca-saved-top-action:hover,
.biblioteca-saved-top-action:focus-visible {
  color: rgba(255, 255, 255, 0.96);
}

.biblioteca-saved-top-action::after {
  content: attr(data-tooltip);
  position: absolute;
  z-index: 4;
  top: calc(100% + 0.45rem);
  left: 50%;
  width: max-content;
  max-width: min(13rem, 80vw);
  padding: 0.38rem 0.52rem;
  border: 1px solid rgba(205, 224, 240, 0.14);
  border-radius: 0.48rem;
  color: rgba(239, 247, 253, 0.94);
  background: rgba(5, 12, 21, 0.94);
  box-shadow: 0 0.72rem 1.6rem rgba(0, 0, 0, 0.25);
  font-size: 0.7rem;
  line-height: 1.15;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -0.25rem);
  transition: opacity 150ms ease, transform 150ms ease;
}

.biblioteca-saved-top-action:hover::after,
.biblioteca-saved-top-action:focus-visible::after {
  opacity: 1;
  transform: translate(-50%, 0);
}

.biblioteca-editorial-hero,
.biblioteca-video-work-cover,
.biblioteca-video-consultation,
.biblioteca-video-hover-preview,
.doc-cover-art,
.document-card {
  border-color: transparent !important;
}

.biblioteca-editorial-hero {
  outline: none !important;
}

.biblioteca-video-work-card:hover .biblioteca-video-work-cover,
.biblioteca-video-work-shell.is-video-hover-intent .biblioteca-video-work-cover {
  border-color: transparent !important;
  box-shadow: 0 15px 34px rgba(0, 0, 0, 0.25) !important;
}

/* Revisión visual: controles más legibles y mosaico editorial 1 + 4. */
.biblioteca-editorial-hero-controls {
  opacity: 0.92 !important;
}

/* El control del hero queda flotando sobre el cielo, sin superficie propia. */
.documents-page .biblioteca-introduction-switch {
  background-color: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

/* Consulta del Manual Avanzado: dos fichas de estudio verticales, como Transcripciones. */
.biblioteca-manual-study-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 12.5rem));
  justify-content: start;
  align-content: start;
  gap: clamp(1.45rem, 2.8vw, 2.15rem);
  padding: clamp(1.55rem, 3vw, 2.3rem) clamp(1.45rem, 3vw, 2.4rem);
}

/* El panel sólo conserva su caja de layout: las fichas flotan directamente sobre el fondo. */
.biblioteca-document-consultation-preview.is-manual-study-cards {
  border-color: transparent;
  background: transparent;
  box-shadow: none;
}

/* Conserva la coordenada original del título aunque se hayan retirado los textos auxiliares. */
.biblioteca-document-consultation-content.is-manual-advanced {
  grid-template-rows: auto minmax(0, 1fr);
}

.biblioteca-manual-consultation-primary {
  padding-top: 1.55rem;
}

.biblioteca-manual-study-card {
  width: 100%;
  display: grid;
  gap: 0.82rem;
  padding: 0;
  border: 0;
  color: rgba(231, 241, 250, 0.9);
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.biblioteca-manual-study-card-open {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: inherit;
  cursor: pointer;
}

.biblioteca-manual-study-card-caption {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.55rem;
  min-width: 0;
}

.biblioteca-manual-study-card-preview {
  position: relative;
  display: block;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border: 0;
  border-radius: 0.72rem;
  background: rgba(7, 18, 35, 0.82);
  box-shadow: 0 18px 46px rgba(0, 0, 0, 0.28);
  transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

.biblioteca-manual-study-card-preview .doc-pdf-object,
.biblioteca-manual-study-card-preview .doc-preview-empty {
  width: 148%;
  height: 148%;
  min-height: 0;
  margin: -8% -24%;
  pointer-events: none;
}

.biblioteca-manual-study-card-preview.is-emilio img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}

.biblioteca-manual-study-card-title {
  padding-inline: 0.14rem;
  padding-block: 0;
  border: 0;
  color: rgba(231, 241, 250, 0.9);
  background: transparent;
  font-size: 0.86rem;
  font-weight: 750;
  line-height: 1.35;
  text-align: left;
  cursor: pointer;
}

.biblioteca-manual-study-card-actions {
  position: relative;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
}

.biblioteca-manual-study-card-actions .collection-item-more {
  width: 1.65rem;
  height: 1.65rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: rgba(219, 233, 244, 0.72);
  background: transparent;
  font-size: 1.05rem;
  line-height: 1;
  cursor: pointer;
  transition: color 180ms ease, transform 180ms ease;
}

.biblioteca-manual-study-card-actions .collection-item-more:hover,
.biblioteca-manual-study-card-actions .collection-item-more:focus-visible {
  color: #fff;
  transform: translateY(-0.1rem);
  outline: none;
}

.biblioteca-manual-study-card-actions .collection-item-menu {
  right: 0;
  left: auto;
}

/* Profundidad contenida para la tarjeta de consulta, sin alterar su geometría. */
.biblioteca-document-consultation {
  background:
    radial-gradient(ellipse 88% 105% at 12% 112%, rgba(38, 77, 104, 0.34), transparent 61%),
    radial-gradient(ellipse 58% 72% at 88% 8%, rgba(16, 43, 66, 0.2), transparent 70%),
    radial-gradient(ellipse 70% 80% at 53% 54%, rgba(8, 24, 42, 0.46), transparent 76%),
    linear-gradient(148deg, rgba(2, 9, 19, 0.998) 0%, rgba(6, 19, 34, 0.995) 48%, rgba(1, 6, 15, 0.998) 100%);
  background-size: 128% 128%, 118% 118%, 112% 112%, 100% 100%;
  border-color: transparent !important;
  outline: none !important;
}

/* Los controles de icono quedan libres de cápsulas o círculos. */
.document-action-menu .collection-item-more {
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  transition: color 180ms ease, transform 180ms ease;
}

.document-action-menu .collection-item-more:hover,
.document-action-menu .collection-item-more:focus-visible {
  background: transparent;
  color: #fff;
  transform: translateY(-0.1rem);
  outline: none;
}

/* El interruptor del hero conserva su función, pero se presenta sólo como icono flotante. */
.documents-page .biblioteca-introduction-switch,
.documents-page .biblioteca-introduction-switch:hover,
.documents-page .biblioteca-introduction-switch:focus-visible,
.documents-page .biblioteca-introduction-switch.is-on {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}

.biblioteca-manual-study-card:hover .biblioteca-manual-study-card-preview,
.biblioteca-manual-study-card:focus-within .biblioteca-manual-study-card-preview {
  transform: translateY(-0.1rem);
  box-shadow: 0 22px 52px rgba(0, 0, 0, 0.34);
}

.biblioteca-manual-study-card:focus-within { outline: none; }
.biblioteca-manual-study-card:focus-within .biblioteca-manual-study-card-title { color: #fff; }

.biblioteca-manual-study-card-preview.is-claire {
  padding: clamp(0.8rem, 1.8vw, 1.2rem);
  background: linear-gradient(150deg, rgba(224, 231, 225, 0.96), rgba(165, 183, 180, 0.94));
}

.biblioteca-manual-claire-page {
  height: 100%;
  display: grid;
  align-content: start;
  gap: 0.52rem;
  padding: 1rem 0.8rem;
  color: rgba(20, 38, 43, 0.88);
  background: linear-gradient(160deg, rgba(255, 255, 252, 0.7), rgba(205, 218, 212, 0.2));
}

.biblioteca-manual-claire-page small { font-size: 0.52rem; font-weight: 800; letter-spacing: 0.12em; }
.biblioteca-manual-claire-page strong { font-family: Georgia, serif; font-size: clamp(0.96rem, 1.6vw, 1.2rem); line-height: 1.08; }
.biblioteca-manual-claire-page i { width: 100%; height: 1px; background: rgba(29, 62, 67, 0.28); }
.biblioteca-manual-claire-page i:nth-last-child(1) { width: 58%; }

.document-action-menu .biblioteca-cover-knowledge-action {
  width: 2rem;
  height: 2rem;
  margin-left: 0.55rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: rgba(226, 241, 253, 0.86);
  background: transparent;
  font: 700 0.96rem/1 Georgia, serif;
  cursor: pointer;
  transition: color 180ms ease, transform 180ms ease;
}

.document-action-menu .biblioteca-cover-knowledge-action:hover,
.document-action-menu .biblioteca-cover-knowledge-action:focus-visible {
  color: #fff;
  transform: translateY(-0.12rem) scale(1.06);
  outline: none;
}

@media (max-width: 520px) {
  .biblioteca-manual-study-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.biblioteca-editorial-hero.is-preview-playing .biblioteca-editorial-hero-controls {
  opacity: 0.84 !important;
}

.biblioteca-editorial-hero.is-preview-settled .biblioteca-editorial-hero-controls {
  opacity: 0.72 !important;
  pointer-events: auto;
}

body.is-alan-session .biblioteca-editorial-top-controls,
body.is-alan-session .biblioteca-multiview-stay-controls {
  left: calc(max(0.9rem, env(safe-area-inset-left)) + 12.24rem) !important;
}

/* El interruptor editorial vive dentro de la barra de Multivista: esta regla
   debe prevalecer sobre su alineación interna para quedar junto a la IA. */
body.is-alan-session .biblioteca-multiview-stay-controls .biblioteca-editorial-top-controls {
  position: fixed;
  top: 0.83rem;
  left: calc(max(0.9rem, env(safe-area-inset-left)) + 13.6rem) !important;
}

body.is-alan-session .biblioteca-editorial-top-controls {
  gap: 0.68rem !important;
}

.biblioteca-install-close {
  width: auto;
  height: auto;
  padding: 0.28rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.biblioteca-install-close:hover {
  background: transparent;
}

.biblioteca-photo-mosaic {
  min-height: 0 !important;
  height: auto !important;
  aspect-ratio: 32 / 9;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
  grid-auto-rows: minmax(0, 1fr) !important;
  grid-auto-flow: row;
}

/* Las flechas recorren la colección sin modificar la retícula ni su altura. */
.biblioteca-photo-mosaic-stage {
  position: relative;
}

.biblioteca-photo-mosaic-nav {
  position: absolute;
  z-index: 3;
  inset: 50% -0.78rem auto;
  display: flex;
  justify-content: space-between;
  pointer-events: none;
  transform: translateY(-50%);
}

.biblioteca-photo-mosaic-nav button {
  width: 2.45rem;
  height: 2.45rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  color: rgba(229, 241, 246, 0.86);
  background: rgba(3, 13, 25, 0.42);
  box-shadow: 0 0.45rem 1.4rem rgba(0, 0, 0, 0.25);
  cursor: pointer;
  opacity: 0.6;
  pointer-events: auto;
  transition: color 260ms ease, background 260ms ease, opacity 260ms ease, transform 320ms cubic-bezier(.16, 1, .3, 1);
}

.biblioteca-photo-mosaic-nav button:first-child { transform: translateX(-0.1rem); }
.biblioteca-photo-mosaic-nav button:last-child { transform: translateX(0.1rem); }
.biblioteca-photo-mosaic-nav button svg { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.biblioteca-photo-mosaic-stage:hover .biblioteca-photo-mosaic-nav button,
.biblioteca-photo-mosaic-nav button:focus-visible { opacity: 1; }
.biblioteca-photo-mosaic-nav button:hover,
.biblioteca-photo-mosaic-nav button:focus-visible { color: #fff; background: rgba(8, 25, 41, 0.7); outline: none; }
.biblioteca-photo-mosaic-nav button:first-child:hover,
.biblioteca-photo-mosaic-nav button:first-child:focus-visible { transform: translateX(-0.28rem); }
.biblioteca-photo-mosaic-nav button:last-child:hover,
.biblioteca-photo-mosaic-nav button:last-child:focus-visible { transform: translateX(0.28rem); }

/* Las flechas quedan suspendidas sobre las fotografías, sin superficie propia. */
.biblioteca-photo-mosaic-nav button,
.biblioteca-photo-mosaic-nav button:hover,
.biblioteca-photo-mosaic-nav button:focus-visible {
  background: transparent;
  box-shadow: none;
}

.biblioteca-photo-mosaic-stage.is-rotating .biblioteca-photo-tile {
  animation: biblioteca-photo-mosaic-rotate-in 940ms cubic-bezier(.16, 1, .3, 1) both;
}

.biblioteca-photo-mosaic-stage.is-rotating.is-previous .biblioteca-photo-tile {
  animation-name: biblioteca-photo-mosaic-rotate-in-previous;
}

.biblioteca-photo-mosaic-stage.is-rotating .biblioteca-photo-tile:nth-child(2) { animation-delay: 65ms; }
.biblioteca-photo-mosaic-stage.is-rotating .biblioteca-photo-tile:nth-child(3) { animation-delay: 130ms; }
.biblioteca-photo-mosaic-stage.is-rotating .biblioteca-photo-tile:nth-child(4) { animation-delay: 195ms; }
.biblioteca-photo-mosaic-stage.is-rotating .biblioteca-photo-tile:nth-child(5) { animation-delay: 260ms; }

@keyframes biblioteca-photo-mosaic-rotate-in {
  from { opacity: 0; transform: translateX(0.4rem) scale(0.996); }
  to { opacity: 1; transform: translateX(0) scale(1); }
}

@keyframes biblioteca-photo-mosaic-rotate-in-previous {
  from { opacity: 0; transform: translateX(-0.4rem) scale(0.996); }
  to { opacity: 1; transform: translateX(0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .biblioteca-photo-mosaic-stage.is-rotating .biblioteca-photo-tile { animation: none; }
}

.biblioteca-photo-mosaic .biblioteca-photo-mosaic-tile.is-featured {
  grid-column: span 2 !important;
  grid-row: span 2 !important;
}

.biblioteca-photo-mosaic .biblioteca-photo-mosaic-tile:not(.is-featured) {
  grid-column: span 1 !important;
  grid-row: span 1 !important;
}

@media (max-width: 820px) {
  .biblioteca-photo-mosaic {
    height: auto !important;
    aspect-ratio: auto;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(4, minmax(5rem, auto)) !important;
    grid-auto-rows: minmax(5rem, auto) !important;
    overflow: visible !important;
  }
}

/* Override final: los encabezados de carruseles deben permanecer visibles. */
.documents-page .document-shelf > h3,
.documents-page .biblioteca-focused-section > .biblioteca-section-head,
.biblioteca-continue-heading {
  visibility: visible !important;
  opacity: 0.85;
  color: rgba(191, 214, 233, 0.82);
  font-size: 0.76rem;
  font-weight: 560;
  letter-spacing: 0.055em;
}

/* Ritmo vertical ligeramente más abierto entre hero y repisas. */
.document-shelves {
  gap: 1.58rem;
}

.biblioteca-editorial-hero-stage {
  margin-bottom: 0.18rem;
}

/* Los títulos vuelven como guía discreta, sin competir con las portadas. */
.documents-page .document-shelf > h3,
.documents-page .biblioteca-focused-section > .biblioteca-section-head,
.biblioteca-continue-heading {
  visibility: visible;
  opacity: 0.85;
  color: rgba(191, 214, 233, 0.82);
  font-size: 0.76rem;
  font-weight: 560;
  letter-spacing: 0.055em;
}

/* La certificación conserva el mosaico dinámico, limitado a dos filas visuales. */
.biblioteca-photo-mosaic {
  min-height: 0;
  height: clamp(13.5rem, 24vw, 20rem);
  grid-template-rows: repeat(2, minmax(0, 1fr));
  grid-auto-rows: minmax(0, 1fr);
}

@media (max-width: 820px) {
  .document-shelves {
    gap: 2.05rem;
  }

  .biblioteca-photo-mosaic {
    height: clamp(13rem, 52vw, 17.5rem);
    grid-auto-rows: minmax(0, 1fr);
    overflow: hidden;
  }
}

/* Con el acceso de IA de Alan restaurado, los controles conservan su separación. */
body.is-alan-session .biblioteca-editorial-top-controls,
body.is-alan-session .biblioteca-multiview-stay-controls {
  left: calc(max(0.9rem, env(safe-area-inset-left)) + 10.84rem);
}

body:not(.is-alan-session) .biblioteca-editorial-top-controls,
body:not(.is-alan-session) .biblioteca-multiview-stay-controls {
  left: calc(max(0.9rem, env(safe-area-inset-left)) + 6.92rem);
}

/* Azul noche profundo: una transición entre el azul anterior y el negro reciente. */
html.is-biblioteca-surface,
html.is-biblioteca-surface body,
.app-shell.is-documents-immersive,
.app-shell.is-document-reading,
.app-shell.is-documents-immersive .view.is-documents-view {
  background: #020914;
}

.documents-page {
  background:
    radial-gradient(circle at 18% 0%, rgba(35, 135, 201, 0.18), transparent 34rem),
    radial-gradient(circle at 82% 20%, rgba(82, 194, 170, 0.10), transparent 28rem),
    linear-gradient(145deg, #020914 0%, #030d1d 48%, #010611 100%);
}

.app-shell.is-documents-immersive .documents-page {
  background:
    radial-gradient(circle at 50% -12%, rgba(35, 135, 201, 0.22), transparent 35rem),
    radial-gradient(circle at 82% 16%, rgba(82, 194, 170, 0.10), transparent 32rem),
    radial-gradient(circle at 18% 70%, rgba(169, 152, 220, 0.08), transparent 30rem),
    linear-gradient(145deg, #020914 0%, #020a18 42%, #030d1d 100%);
}

/* Se reserva la misma altura del carrusel sin mostrar su rótulo. */
.biblioteca-continue-heading {
  visibility: hidden;
}

/* With two open tabs, both share the same compact width. */
.biblioteca-stay-tabs-track:has(.biblioteca-stay-tab-shell:nth-child(2)) .biblioteca-stay-tab-shell {
  flex: 0 0 min(330px, calc((min(42vw, 520px) - 6px) / 2));
  width: min(330px, calc((min(42vw, 520px) - 6px) / 2));
}

.documents-library-head.has-stay-tabs .biblioteca-stay-tabs.is-multiview,
.documents-library-head.has-stay-tabs .biblioteca-stay-tabs-track {
  min-width: 0;
}

/* Academy and diagnostic controls were removed; align the remaining controls. */
.biblioteca-editorial-top-controls,
.biblioteca-multiview-stay-controls {
  left: calc(max(0.9rem, env(safe-area-inset-left)) + 6.92rem);
}

@media (max-width: 820px) {
  .biblioteca-stay-tabs-track:has(.biblioteca-stay-tab-shell:nth-child(2)) .biblioteca-stay-tab-shell {
    flex-basis: calc((min(44vw, 231px) - 6px) / 2);
    width: calc((min(44vw, 231px) - 6px) / 2);
  }

  .biblioteca-editorial-top-controls,
  .biblioteca-multiview-stay-controls {
    left: 6.1rem;
  }
}

/* Azul noche: entre el azul original y el negro que se había intensificado. */
html.is-biblioteca-surface,
html.is-biblioteca-surface body,
.app-shell.is-documents-immersive,
.app-shell.is-document-reading,
.app-shell.is-documents-immersive .view.is-documents-view {
  background: #020914;
}

.documents-page {
  background:
    radial-gradient(circle at 18% 0%, rgba(35, 135, 201, 0.18), transparent 34rem),
    radial-gradient(circle at 82% 20%, rgba(82, 194, 170, 0.10), transparent 28rem),
    linear-gradient(145deg, #020914 0%, #030d1d 48%, #010611 100%);
}

.app-shell.is-documents-immersive .documents-page {
  background:
    radial-gradient(circle at 50% -12%, rgba(35, 135, 201, 0.22), transparent 35rem),
    radial-gradient(circle at 82% 16%, rgba(82, 194, 170, 0.10), transparent 32rem),
    radial-gradient(circle at 18% 70%, rgba(169, 152, 220, 0.08), transparent 30rem),
    linear-gradient(145deg, #020914 0%, #020a18 42%, #030d1d 100%);
}

/* Las pestañas representan ventanas del mismo sistema: todas conservan el mismo ancho. */
.biblioteca-stay-tab-shell {
  flex: 0 0 330px;
  width: 330px;
}

.biblioteca-stay-tab-shell:hover,
.biblioteca-stay-tab-shell:focus-within,
.biblioteca-stay-tab-shell.is-active {
  border-top-color: rgba(155, 208, 223, 0.3);
  border-right-color: rgba(155, 208, 223, 0.22);
  background: linear-gradient(180deg, rgba(37, 47, 58, 0.84), rgba(18, 24, 31, 0.62));
}

.biblioteca-stay-tab-shell:hover {
  transform: translateY(-1px);
}

.biblioteca-collection-picker .biblioteca-collection-picker-new {
  margin-top: 0.2rem;
  border-color: rgba(176, 211, 228, 0.3);
  color: rgba(221, 239, 247, 0.96);
  background: rgba(20, 58, 83, 0.46);
}

.biblioteca-stay-tab-shell.is-active {
  opacity: 1;
  border-top-color: rgba(176, 226, 235, 0.72);
  border-right-color: rgba(155, 208, 223, 0.34);
  background: linear-gradient(180deg, rgba(53, 70, 82, 0.94), rgba(22, 30, 38, 0.8));
  box-shadow: inset 0 1px 0 rgba(221, 247, 249, 0.18), 0 0.35rem 1.1rem rgba(8, 20, 28, 0.18);
}

.biblioteca-stay-tab-shell.is-active .biblioteca-stay-tab-label {
  color: rgba(255, 255, 255, 0.98);
  font-weight: 650;
}

.biblioteca-stay-tab-shell.is-home {
  flex-basis: 330px;
  min-width: 104px;
  max-width: 330px;
}

.biblioteca-stay-tab-shell.is-closing {
  z-index: 2;
  pointer-events: none;
  animation: bibliotecaStayTabClose 240ms cubic-bezier(0.4, 0, 0.2, 1) both;
}

@keyframes bibliotecaStayTabClose {
  from {
    max-width: 330px;
    opacity: 1;
    transform: translateX(0) scale(1);
  }
  to {
    min-width: 0;
    max-width: 0;
    opacity: 0;
    transform: translateX(0.45rem) scale(0.94);
  }
}

.biblioteca-stay-tab {
  min-width: 0;
  flex: 1;
  height: 40px;
  display: flex;
  align-items: center;
  padding: 0 32px 0 13px;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
}

.biblioteca-stay-tab-label {
  min-width: 0;
  overflow: hidden;
  color: rgba(245, 247, 251, 0.86);
  font-size: 0.78rem;
  font-weight: 560;
  letter-spacing: 0.01em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.biblioteca-stay-tab-playing {
  height: 12px;
  display: inline-flex;
  align-items: flex-end;
  gap: 2px;
  margin-left: auto;
}

.biblioteca-stay-tab-playing i {
  width: 2px;
  height: 5px;
  border-radius: 2px;
  background: rgba(151, 224, 211, 0.88);
  animation: biblioteca-stay-signal 900ms ease-in-out infinite alternate;
}

.biblioteca-stay-tab-playing i:nth-child(2) {
  height: 9px;
  animation-delay: -300ms;
}

.biblioteca-stay-tab-playing i:nth-child(3) {
  height: 7px;
  animation-delay: -600ms;
}

@keyframes biblioteca-stay-signal {
  to { height: 3px; opacity: 0.55; }
}

.biblioteca-stay-tab-close {
  position: absolute;
  top: 50%;
  right: 8px;
  width: 21px;
  height: 21px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: rgba(235, 241, 246, 0.48);
  font: 400 15px/1 sans-serif;
  cursor: pointer;
  transform: translateY(-50%);
  transition: color 160ms ease, background 160ms ease;
}

.biblioteca-stay-tab-close:hover,
.biblioteca-stay-tab-close:focus-visible {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.94);
}

.documents-page.biblioteca-view-multivista .documents-library-head .biblioteca-stay-tabs.is-multiview {
  position: relative;
  z-index: auto;
  top: auto;
  left: auto;
  right: auto;
  width: auto;
  max-width: min(42vw, 520px);
  margin: 0;
  justify-content: flex-start;
  pointer-events: auto;
}

.documents-library-head.has-stay-tabs {
  width: min(calc(100vw - 2rem), 30rem);
}

.biblioteca-multiview-stay-controls {
  min-width: 0;
  position: fixed;
  z-index: 46;
  top: 0.83rem;
  left: calc(max(0.9rem, env(safe-area-inset-left)) + 14.1rem);
  right: clamp(8rem, 15vw, 12rem);
  display: flex;
  align-items: center;
  gap: 0.55rem;
  pointer-events: auto;
}

body:not(.is-alan-session) .biblioteca-multiview-stay-controls {
  left: calc(max(0.9rem, env(safe-area-inset-left)) + 10.42rem);
}

.biblioteca-multiview-stay-controls .biblioteca-editorial-top-controls {
  position: relative;
  z-index: auto;
  top: auto;
  left: auto !important;
  flex: 0 0 auto;
}

.documents-library-head.has-stay-tabs .biblioteca-multiview-stay-controls {
  min-width: 0;
}

.documents-library-head.has-stay-tabs .biblioteca-stay-tabs.is-multiview {
  min-width: min(330px, 42vw);
  flex: 1 1 330px;
}

.documents-library-head.has-stay-tabs .biblioteca-stay-tabs.is-multiview .biblioteca-stay-tabs-track {
  min-width: min(330px, 42vw);
}

.documents-page.biblioteca-view-multivista .biblioteca-stay-tabs.is-multiview .biblioteca-stay-tabs-track {
  max-width: min(42vw, 520px);
}

.biblioteca-stay-add {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(169, 221, 231, 0.24);
  border-radius: 11px;
  background: rgba(12, 17, 23, 0.42);
  color: rgba(225, 244, 247, 0.84);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 0 18px rgba(100, 204, 220, 0.05);
  font: 300 22px/1 Inter, sans-serif;
  cursor: pointer;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  transition: border-color 180ms ease, background 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.biblioteca-stay-add:hover,
.biblioteca-stay-add:focus-visible {
  border-color: rgba(161, 225, 235, 0.52);
  background: rgba(25, 38, 46, 0.66);
  box-shadow: 0 0 22px rgba(112, 213, 229, 0.12);
  transform: translateY(-1px);
}

#biblioteca-stay-media-host {
  position: fixed;
  z-index: -1;
  right: 0;
  bottom: 0;
  width: 2px;
  height: 2px;
  overflow: hidden;
  pointer-events: none;
  opacity: 0.001;
}

.biblioteca-stay-parked-media,
.biblioteca-stay-parked-media > * {
  width: 2px !important;
  height: 2px !important;
}

.biblioteca-video-immersive-topbar {
  gap: 12px;
}

.biblioteca-video-immersive-topbar .biblioteca-stay-tabs {
  flex: 1;
  justify-content: flex-end;
}

@media (max-width: 820px) {
  .biblioteca-stay-tabs {
    gap: 6px;
  }

  .biblioteca-stay-tabs-track {
    max-width: min(54vw, 310px);
  }

  .biblioteca-stay-tab-shell {
    flex: 0 0 231px;
    width: 231px;
    min-width: 94px;
    max-width: 231px;
  }

  .biblioteca-stay-tab-label {
    font-size: 0.72rem;
  }

  .documents-library-head .biblioteca-stay-tabs {
    margin-left: 8px;
  }

  .documents-page.biblioteca-view-multivista .documents-library-head .biblioteca-stay-tabs.is-multiview {
    top: auto;
    left: auto;
    right: auto;
    max-width: min(48vw, 190px);
    margin: 0;
  }

  .documents-library-head.has-stay-tabs {
    width: min(calc(100vw - 1rem), 30rem);
  }

  .documents-library-head.has-stay-tabs .biblioteca-multiview-stay-controls {
    top: max(0.72rem, env(safe-area-inset-top));
    left: 8.9rem;
    right: 4rem;
    min-width: 0;
    gap: 0.35rem;
  }

  .documents-library-head.has-stay-tabs .biblioteca-stay-tabs.is-multiview,
  .documents-library-head.has-stay-tabs .biblioteca-stay-tabs.is-multiview .biblioteca-stay-tabs-track {
    min-width: min(231px, 44vw);
  }
}

/* Los carruseles mantienen el espacio editorial, pero dejan la vista limpia de rótulos. */
.documents-page .document-shelf > h3,
.documents-page .biblioteca-focused-section > .biblioteca-section-head {
  visibility: hidden;
}

.documents-page .document-cover-row {
  gap: clamp(1.15rem, 2.4vw, 1.9rem);
}

.documents-page .biblioteca-video-works-row {
  gap: clamp(1.2rem, 2.8vw, 2.2rem);
}

.biblioteca-visibility-checks {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1rem;
  margin: 0;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(166, 204, 220, 0.16);
  border-radius: 0.8rem;
}

.biblioteca-visibility-checks legend {
  padding: 0 0.35rem;
  color: rgba(215, 235, 243, 0.78);
  font-size: 0.76rem;
}

.biblioteca-visibility-checks label {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  color: rgba(227, 240, 247, 0.78);
  font-size: 0.78rem;
}

/* Evita el salto de escala/filtro al pasar a Multivista; el layout permanece estable. */
.documents-page.is-leaving-for-stay-multiview,
.documents-page.biblioteca-view-multivista.is-arriving-from-stay {
  animation-duration: 180ms;
  animation-timing-function: ease-out;
}

@keyframes bibliotecaStayPageDeparture {
  from { opacity: 1; filter: none; transform: none; }
  to { opacity: 0.18; filter: none; transform: none; }
}

@keyframes bibliotecaStayMultiviewArrival {
  from { opacity: 0.18; transform: none; }
  to { opacity: 1; transform: none; }
}

/* Transición de estancia: el recurso retrocede y deja su pestaña en Multivista. */
.documents-page.is-leaving-for-stay-multiview {
  pointer-events: none;
  animation: bibliotecaStayPageDeparture 260ms cubic-bezier(0.4, 0, 0.2, 1) both;
}

.biblioteca-stay-departure-trace {
  position: fixed;
  z-index: 13000;
  min-width: 6.5rem;
  max-width: 12rem;
  height: 2.2rem;
  display: flex;
  align-items: center;
  padding: 0 0.85rem;
  overflow: hidden;
  border: 1px solid rgba(164, 204, 216, 0.22);
  border-radius: 10px;
  color: rgba(236, 244, 247, 0.86);
  background: rgba(8, 15, 21, 0.82);
  box-shadow: 0 0.8rem 2rem rgba(0, 0, 0, 0.2);
  font-size: 0.7rem;
  font-weight: 560;
  text-overflow: ellipsis;
  white-space: nowrap;
  pointer-events: none;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  animation: bibliotecaStayTraceDeparture 260ms cubic-bezier(0.22, 0.72, 0.24, 1) both;
}

.documents-page.biblioteca-view-multivista.is-arriving-from-stay {
  animation: bibliotecaStayMultiviewArrival 300ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes bibliotecaStayPageDeparture {
  from { opacity: 1; filter: blur(0); transform: scale(1); }
  to { opacity: 0.12; filter: blur(3px); transform: scale(0.975); }
}

@keyframes bibliotecaStayTraceDeparture {
  0% { opacity: 0; transform: translate(0, 0) scale(0.72); }
  22% { opacity: 1; }
  100% { opacity: 0.92; transform: translate(var(--stay-travel-x), var(--stay-travel-y)) scale(0.92); }
}

@keyframes bibliotecaStayMultiviewArrival {
  from { opacity: 0; transform: scale(1.012); }
  to { opacity: 1; transform: scale(1); }
}

/* Recupera la tarjeta editorial luminosa anterior dentro de la sala oscura. */
.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome {
  background: rgba(0, 4, 9, 0.6);
  -webkit-backdrop-filter: blur(11px) saturate(0.82);
  backdrop-filter: blur(11px) saturate(0.82);
}

.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card {
  width: min(43rem, calc(100vw - 2rem));
  gap: clamp(1.5rem, 3vw, 2.2rem);
  padding: clamp(2rem, 5vw, 4.1rem);
  border: 1px solid rgba(22, 51, 72, 0.08);
  border-radius: clamp(1.25rem, 2.3vw, 1.8rem);
  color: #172a38;
  background:
    radial-gradient(circle at 8% 5%, rgba(255, 211, 112, 0.3), transparent 16rem),
    radial-gradient(circle at 94% 92%, rgba(120, 205, 190, 0.2), transparent 17rem),
    #fbfaf7;
  box-shadow:
    0 2.2rem 7rem rgba(0, 9, 18, 0.32),
    inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card::before {
  top: 2.5rem;
  right: 3.2rem;
  width: 0.72rem;
  height: 0.72rem;
  background: #ef9c72;
  box-shadow:
    0 0 0 0.42rem rgba(255, 255, 255, 0.62),
    -2.2rem 2.7rem 0 -0.08rem #e3a63f,
    -2.2rem 2.7rem 0 0.3rem rgba(227, 166, 63, 0.11);
}

.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card::after {
  display: block;
  right: -4.5rem;
  bottom: -5.5rem;
  width: 14rem;
  height: 14rem;
  border: 1px solid rgba(42, 97, 129, 0.12);
  box-shadow: 0 0 0 2.2rem rgba(120, 205, 190, 0.035);
}

.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card-eyebrow {
  color: #406379;
  font-size: inherit;
  font-weight: 680;
  letter-spacing: inherit;
}

.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card-eyebrow::before {
  width: 0.48rem;
  height: 0.48rem;
  background: #e3a63f;
  box-shadow: 0 0 0 0.3rem rgba(227, 166, 63, 0.13);
}

.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card h2 {
  max-width: 15ch;
  color: #172a38;
  font-family: Inter, "Helvetica Neue", "Segoe UI", sans-serif;
  font-size: clamp(2.2rem, 5vw, 4.2rem);
  font-weight: 570;
  letter-spacing: -0.055em;
  line-height: 0.98;
}

.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card-description {
  max-width: none;
  color: #4d6170;
  font-family: Inter, "Helvetica Neue", "Segoe UI", sans-serif;
  font-size: 1rem;
  line-height: 1.65;
}

.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card-primary,
.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card-secondary {
  min-height: 2.9rem;
  padding: 0.72rem 1.15rem;
  border-radius: 0.62rem;
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}

.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card-primary {
  border: 1px solid #152b39;
  border-radius: 999px;
  color: rgba(252, 250, 245, 0.98);
  background: #152b39;
  box-shadow: 0 0.8rem 1.8rem rgba(9, 29, 42, 0.16);
  transition: color 180ms ease, background 180ms ease, border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card-primary:hover,
.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card-primary:focus-visible {
  border-color: #1c3748;
  color: rgba(255, 252, 247, 0.98);
  background: #1c3748;
  box-shadow: 0 0.95rem 2rem rgba(9, 29, 42, 0.2);
  transform: translateY(-1px);
}

.biblioteca-knowledge-atlas-page .editorial-card-layer.is-welcome .editorial-card-secondary {
  border: 1px solid rgba(28, 57, 75, 0.14);
  color: #294659;
  background: transparent;
}

@media (prefers-reduced-motion: reduce) {
  .documents-page.is-leaving-for-stay-multiview,
  .biblioteca-stay-departure-trace,
  .documents-page.biblioteca-view-multivista.is-arriving-from-stay {
    animation: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .biblioteca-stay-tab-playing i {
    animation: none;
  }
}

/* Ajuste de estancia: el + continúa la familia de controles izquierdos. */
.biblioteca-document-topbar .biblioteca-stay-tabs,
.biblioteca-knowledge-topbar .biblioteca-stay-tabs {
  margin-right: auto;
  margin-left: 0.55rem;
}

.biblioteca-document-topbar .biblioteca-stay-tabs {
  pointer-events: auto;
}

.biblioteca-document-topbar .biblioteca-stay-add,
.biblioteca-knowledge-topbar .biblioteca-stay-add {
  width: 2.5rem;
  height: 2.5rem;
  flex-basis: 2.5rem;
  border-color: transparent;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: rgba(220, 235, 244, 0.68);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.biblioteca-document-topbar .biblioteca-stay-add:hover,
.biblioteca-document-topbar .biblioteca-stay-add:focus-visible,
.biblioteca-knowledge-topbar .biblioteca-stay-add:hover,
.biblioteca-knowledge-topbar .biblioteca-stay-add:focus-visible {
  border-color: transparent;
  background: transparent;
  box-shadow: none;
  color: rgba(255, 255, 255, 0.94);
}

.biblioteca-video-consultation-stay-add {
  position: absolute;
  z-index: 6;
  top: 1.05rem;
  left: 1.05rem;
  width: 2.55rem;
  height: 2.55rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: rgba(244, 248, 249, 0.76);
  background: transparent;
  box-shadow: none;
  font: 300 1.5rem/1 Inter, sans-serif;
  cursor: pointer;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transition: color 160ms ease, border-color 160ms ease, background 160ms ease, transform 160ms ease;
}

.biblioteca-video-consultation-stay-add:hover,
.biblioteca-video-consultation-stay-add:focus-visible {
  color: rgba(255, 255, 255, 0.96);
  border-color: transparent;
  background: transparent;
  transform: translateY(-1px);
}

/* Atlas equilibrado: controles anteriores dentro de una habitación más profunda. */
.biblioteca-knowledge-atlas-page {
  --atlas-ink: rgba(238, 240, 236, 0.92);
  --atlas-muted: rgba(184, 195, 198, 0.62);
  --atlas-surface: rgba(3, 7, 11, 0.9);
  background:
    radial-gradient(ellipse at 50% 112%, rgba(119, 87, 49, 0.075), transparent 39%),
    radial-gradient(ellipse at 50% 43%, rgba(20, 43, 52, 0.2), transparent 43%),
    radial-gradient(circle at 16% 26%, rgba(18, 33, 46, 0.12), transparent 27%),
    linear-gradient(158deg, #000207 0%, #030a10 48%, #000308 100%);
}

.biblioteca-knowledge-atlas-page::before {
  opacity: 0.2;
}

.biblioteca-knowledge-atlas-topbar {
  top: 0.72rem;
  left: calc(max(0.95rem, env(safe-area-inset-left)) + 0.12rem);
  right: clamp(0.95rem, 2.2vw, 1.65rem);
  gap: 0.18rem;
}

.biblioteca-knowledge-atlas-topbar .biblioteca-knowledge-back {
  width: 3rem;
  height: 3rem;
  min-height: 3rem;
  margin-right: 0;
  color: rgba(221, 233, 239, 0.7);
}

.biblioteca-knowledge-atlas-topbar .biblioteca-knowledge-back span,
.biblioteca-knowledge-atlas-topbar .biblioteca-knowledge-back svg {
  width: 1.55rem;
  height: 1.55rem;
}

.biblioteca-knowledge-atlas-topbar .biblioteca-knowledge-location,
.biblioteca-knowledge-atlas-topbar .biblioteca-knowledge-current-node {
  color: rgba(222, 232, 238, 0.72);
  font-family: var(--nucleo-ui-font);
  font-size: 0.84rem;
  font-weight: 620;
  letter-spacing: 0;
  text-transform: none;
}

.biblioteca-knowledge-atlas-topbar .biblioteca-knowledge-current-node {
  color: rgba(239, 242, 238, 0.88);
}

.biblioteca-knowledge-atlas-topbar .biblioteca-knowledge-current-node::before {
  content: "/";
  margin: 0 0.48rem 0 0.28rem;
  color: rgba(183, 166, 127, 0.44);
}

.biblioteca-knowledge-atlas-topbar .biblioteca-stay-tabs {
  margin-left: 0.45rem;
}

.biblioteca-knowledge-atlas-reset {
  width: 2.6rem;
  height: 2.6rem;
  min-height: 2.6rem;
  color: rgba(215, 226, 232, 0.56);
}

.biblioteca-knowledge-atlas-filters {
  top: clamp(3.6rem, 6.7vh, 4.25rem);
  width: min(100% - 1.6rem, 27rem);
  gap: 0.3rem;
  padding: 0.28rem;
  border: 1px solid rgba(183, 201, 214, 0.12);
  border-radius: 9px;
  background: rgba(3, 8, 13, 0.68);
  box-shadow: 0 1.2rem 3rem rgba(0, 0, 0, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.035);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.biblioteca-knowledge-atlas-filters button {
  flex: 1 1 0;
  min-height: 2.08rem;
  padding: 0 0.72rem;
  border: 1px solid transparent;
  border-radius: 7px;
  color: rgba(198, 211, 219, 0.66);
  font-size: 0.76rem;
  font-weight: 640;
  letter-spacing: 0;
  text-transform: none;
  transition: color 160ms ease, border-color 160ms ease, background 160ms ease;
}

.biblioteca-knowledge-atlas-filters button:hover,
.biblioteca-knowledge-atlas-filters button:focus-visible,
.biblioteca-knowledge-atlas-filters button.is-active {
  color: rgba(248, 250, 248, 0.96);
  border-color: rgba(198, 215, 224, 0.14);
  background: rgba(35, 47, 56, 0.58);
  box-shadow: none;
}

.biblioteca-knowledge-atlas-stage {
  height: calc(100vh - clamp(6.6rem, 12vh, 7.5rem));
  margin: clamp(5.9rem, 10.8vh, 6.8rem) clamp(0.75rem, 1.7vw, 1.3rem) 0;
  border: 1px solid rgba(180, 199, 211, 0.06);
  border-radius: 9px;
  background:
    radial-gradient(ellipse at 50% 54%, rgba(35, 66, 72, 0.065), transparent 31%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.012), rgba(0, 2, 5, 0.16));
  box-shadow: inset 0 1px 0 rgba(227, 220, 196, 0.022), 0 2.8rem 7rem rgba(0, 0, 0, 0.24);
}

@media (max-width: 820px) {
  .biblioteca-video-immersive-stay-add {
    top: max(0.85rem, env(safe-area-inset-top));
    left: max(0.85rem, env(safe-area-inset-left));
    width: 2.5rem;
    height: 2.5rem;
  }

  .biblioteca-video-consultation-stay-add {
    top: max(0.85rem, env(safe-area-inset-top));
    left: 3.95rem;
    width: 2.4rem;
    height: 2.4rem;
  }

  .biblioteca-knowledge-atlas-topbar .biblioteca-knowledge-location,
  .biblioteca-knowledge-atlas-topbar .biblioteca-knowledge-current-node {
    max-width: 8rem;
    font-size: 0.76rem;
  }

  .biblioteca-knowledge-atlas-filters {
    top: 4.2rem;
    width: calc(100% - 1.2rem);
  }

  .biblioteca-knowledge-atlas-stage {
    height: calc(100dvh - 8.1rem);
    min-height: 30rem;
    margin: 7.45rem 0.45rem 0;
  }
}

/* La consulta de carpetas en teléfono comparte el desplazamiento de la página,
   igual que Gen Key 24: portada, contenido y relaciones en un solo flujo. */
@media (max-width: 820px) {
  .document-collection-page {
    display: block;
    height: auto;
    min-height: 100dvh;
    overflow: visible;
  }

  .document-collection-stage {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
  }

  .document-collection-preview,
  .document-collection-preview.is-many-items,
  .document-collection-preview.is-portrait-cards {
    height: auto;
    min-height: 0;
    overflow: visible;
  }

  .document-collection-grid,
  .document-collection-grid.is-many-items,
  .document-collection-grid.is-portrait-cards {
    height: auto;
    min-height: 0;
    grid-template-rows: none;
    grid-auto-rows: auto;
    align-items: start;
  }

  .document-collection-grid .collection-item-card {
    height: auto;
    min-height: 14rem;
  }

  .document-collection-related {
    display: grid;
  }

  .document-collection-page.is-documentacion-basico .document-collection-preview {
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  .document-collection-page.is-documentacion-basico .document-collection-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .collection-item-meta {
    position: relative;
    width: 100%;
  }

  .collection-item-title {
    flex: 1 1 auto;
  }

  .collection-item-actions {
    display: none;
  }

  .collection-item-more {
    position: static;
    display: grid;
    flex: 0 0 2rem;
    width: 2rem;
    height: 2rem;
    margin-left: auto;
  }

  .collection-item-menu {
    right: 0;
    bottom: 2.25rem;
  }

  .biblioteca-document-topbar {
    right: max(3.2rem, calc(env(safe-area-inset-right) + 2.8rem));
    gap: 0.45rem;
  }

  .biblioteca-document-location,
  .biblioteca-document-separator {
    display: none;
  }

  .biblioteca-document-current {
    flex: 1 1 auto;
    -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 calc(100% - 1.5rem), transparent 100%);
    mask-image: linear-gradient(90deg, #000 0%, #000 calc(100% - 1.5rem), transparent 100%);
  }
}

.collection-item-more {
  display: none;
}

/* Las acciones propias de las dos fichas del Manual son siempre visibles. */
.biblioteca-manual-study-card-actions .collection-item-more {
  display: inline-grid !important;
  place-items: center;
  color: rgba(219, 233, 244, 0.84);
}

@media (max-width: 820px) {
  .collection-item-more {
    display: grid;
  }
}

@media (max-width: 820px) {
  .document-collection-page,
  .document-collection-stage,
  .document-collection-preview,
  .document-collection-grid {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .document-collection-page {
    overflow-x: clip;
  }

  .document-collection-grid,
  .document-collection-grid.is-portrait-cards {
    grid-template-columns: minmax(0, 1fr);
  }

  .document-collection-page .document-cover-row {
    overflow-x: hidden;
    flex-wrap: wrap;
  }

  .collection-item-card,
  .collection-item-open,
  .collection-item-thumb {
    min-width: 0;
    max-width: 100%;
  }

  .collection-item-thumb.is-pdf-preview {
    aspect-ratio: 16 / 9;
    height: auto;
    padding: 0;
  }

  .collection-item-thumb.is-pdf-preview .collection-file-preview {
    display: none;
  }

  .collection-item-pdf-cover {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    object-fit: cover;
  }

  .collection-item-menu {
    min-width: min(18rem, calc(100vw - 2rem));
    padding: 0.55rem;
    gap: 0.3rem;
  }

  .collection-item-menu > button,
  .collection-item-menu > a {
    min-height: 3rem;
    padding: 0.7rem 0.75rem;
    gap: 0.75rem;
    font-size: 0.95rem;
  }

  .collection-item-menu-label {
    font-size: 0.95rem;
  }
}

@media (max-width: 820px) {
  .collection-item-menu {
    left: 50%;
    right: auto;
    bottom: calc(100% + 0.55rem);
    width: min(22rem, calc(100vw - 1rem));
    min-width: 0;
    max-width: calc(100vw - 1rem);
    padding: 0.8rem;
    gap: 0.42rem;
    transform: translateX(-50%);
    border-radius: 1rem;
  }

  .collection-item-menu > button,
  .collection-item-menu > a {
    min-height: 3.35rem;
    padding: 0.82rem 0.9rem;
    gap: 0.9rem;
    font-size: 1.02rem;
  }

  .collection-item-menu .collection-item-download {
    width: 2.35rem;
    height: 2.35rem;
    font-size: 1.15rem;
  }

  .collection-item-menu .collection-item-download svg {
    width: 1.3rem;
    height: 1.3rem;
  }

  .collection-item-menu-label {
    font-size: 1.02rem;
    line-height: 1.25;
  }
}

/* Biblioteca espacio profundo 20260806: bloque reversible, limitado a fondos y estrellas. */
.app-shell.is-documents-immersive,
.app-shell.is-documents-immersive .main-content {
  background: #000208;
}

.app-shell.is-documents-immersive .sidebar {
  background:
    radial-gradient(circle at 48% -8%, rgba(44, 105, 157, 0.12), transparent 17rem),
    linear-gradient(180deg, rgba(3, 12, 26, 0.99), rgba(0, 3, 10, 0.995));
}

.app-shell.is-documents-immersive .documents-page {
  background:
    radial-gradient(ellipse 72% 34% at 50% -4%, rgba(34, 85, 130, 0.13), transparent 70%),
    radial-gradient(ellipse 34% 48% at 8% 58%, rgba(18, 47, 84, 0.075), transparent 76%),
    radial-gradient(ellipse 38% 44% at 96% 38%, rgba(39, 48, 89, 0.05), transparent 78%),
    linear-gradient(154deg, #00030a 0%, #010611 48%, #000208 100%);
}

.app-shell.is-documents-immersive .documents-page.biblioteca-view-multivista {
  background:
    radial-gradient(ellipse 76% 38% at 51% 5%, rgba(42, 87, 128, 0.115), transparent 72%),
    radial-gradient(ellipse 38% 54% at 5% 62%, rgba(13, 38, 70, 0.07), transparent 76%),
    radial-gradient(ellipse 36% 46% at 95% 42%, rgba(55, 48, 83, 0.035), transparent 78%),
    linear-gradient(154deg, #00030a 0%, #010611 50%, #000208 100%);
}

/* Profundidad lejana: puntos diminutos y numerosos en toda la superficie de Biblioteca. */
.app-shell.is-documents-immersive .documents-page::before,
.app-shell.is-documents-immersive .documents-page.biblioteca-view-multivista::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: -2rem;
  pointer-events: none;
  background:
    radial-gradient(circle at 17% 23%, rgba(226, 242, 255, 0.72) 0 0.42px, transparent 0.95px) 0 0 / 173px 211px repeat,
    radial-gradient(circle at 71% 61%, rgba(255, 255, 255, 0.58) 0 0.5px, transparent 1.08px) 31px 47px / 257px 193px repeat,
    radial-gradient(circle at 36% 82%, rgba(192, 222, 249, 0.52) 0 0.38px, transparent 0.9px) 89px 19px / 311px 277px repeat,
    radial-gradient(circle at 86% 14%, rgba(255, 248, 226, 0.48) 0 0.46px, transparent 1px) 13px 107px / 389px 239px repeat,
    radial-gradient(circle at 48% 42%, rgba(218, 237, 255, 0.44) 0 0.34px, transparent 0.84px) 127px 73px / 149px 283px repeat;
  opacity: 0.76;
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.96), rgba(0, 0, 0, 0.72) 82%, rgba(0, 0, 0, 0.88));
  filter: none;
  animation: bibliotecaStarfieldSessionDrift var(--biblioteca-starfield-session-duration, 40s) linear infinite;
  will-change: transform;
}

/* Plano medio: menos estrellas, blancos naturales y halos apenas perceptibles. */
.app-shell.is-documents-immersive .documents-page::after,
.app-shell.is-documents-immersive .documents-page.biblioteca-view-multivista::after {
  content: "";
  position: absolute;
  z-index: 0;
  inset: -2rem;
  pointer-events: none;
  background:
    radial-gradient(circle at 19% 31%, #fff 0 0.72px, rgba(205, 231, 255, 0.28) 1.5px, transparent 3.2px) 0 0 / 337px 293px repeat,
    radial-gradient(circle at 78% 18%, rgba(236, 248, 255, 0.92) 0 0.58px, transparent 1.45px) 97px 53px / 419px 347px repeat,
    radial-gradient(circle at 43% 76%, rgba(255, 247, 222, 0.82) 0 0.64px, rgba(255, 239, 195, 0.17) 1.45px, transparent 3px) 41px 139px / 521px 401px repeat,
    radial-gradient(circle at 91% 67%, rgba(214, 237, 255, 0.84) 0 0.9px, rgba(180, 218, 250, 0.2) 1.8px, transparent 3.8px) 181px 11px / 607px 457px repeat,
    radial-gradient(circle at 12% 88%, rgba(255, 255, 255, 0.74) 0 0.48px, transparent 1.3px) 73px 211px / 283px 509px repeat;
  opacity: 0.74;
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.98), rgba(0, 0, 0, 0.62) 86%, rgba(0, 0, 0, 0.78));
  filter: drop-shadow(0 0 0.18rem rgba(190, 224, 252, 0.26));
  animation: bibliotecaStarfieldSessionDrift var(--biblioteca-starfield-session-duration, 40s) linear infinite;
  will-change: transform;
}

/* Primer plano del Hero: círculos corregidos, tres distancias y temperaturas de luz. */
@media (min-width: 821px) {
  .biblioteca-view-multivista .biblioteca-editorial-hero-starfield {
    filter: none;
  }

  .biblioteca-view-multivista .biblioteca-editorial-hero-starfield-svg {
    filter: none;
  }

  .biblioteca-view-multivista .biblioteca-editorial-hero-starfield-svg circle {
    transform-box: fill-box;
    transform-origin: center;
    transform: scaleX(0.6);
    stroke: none;
    paint-order: normal;
    animation: bibliotecaStarfieldTwinkle var(--star-twinkle-duration, 8s) ease-in-out var(--star-twinkle-delay, 0s) infinite alternate;
  }

  .biblioteca-view-multivista .biblioteca-editorial-hero-starfield-svg circle.is-distant {
    opacity: 0.78;
  }

  .biblioteca-view-multivista .biblioteca-editorial-hero-starfield-svg circle.is-distant:nth-of-type(7n + 2) {
    filter: blur(0.32px);
    opacity: 0.62;
  }

  .biblioteca-view-multivista .biblioteca-editorial-hero-starfield-svg circle.is-mid {
    filter: drop-shadow(0 0 0.12rem rgba(205, 233, 255, 0.52));
  }

  .biblioteca-view-multivista .biblioteca-editorial-hero-starfield-svg circle.is-luminous {
    stroke: rgba(224, 242, 255, 0.58);
    stroke-width: 0.045;
    filter:
      drop-shadow(0 0 0.12rem rgba(235, 247, 255, 0.94))
      drop-shadow(0 0 0.42rem rgba(154, 207, 249, 0.52));
  }

  .biblioteca-view-multivista .biblioteca-editorial-hero-starfield-svg circle.is-warm {
    filter: drop-shadow(0 0 0.18rem rgba(255, 224, 165, 0.44));
  }

  .biblioteca-view-multivista .biblioteca-editorial-hero-starfield-svg circle.is-luminous.is-warm {
    filter:
      drop-shadow(0 0 0.14rem rgba(255, 246, 221, 0.92))
      drop-shadow(0 0 0.46rem rgba(255, 211, 139, 0.46));
  }
}

@keyframes bibliotecaStarfieldTwinkle {
  0%, 18% { opacity: 0.72; }
  64%, 100% { opacity: 1; }
}

@media (max-width: 820px) {
  .app-shell.is-documents-immersive .documents-page::before,
  .app-shell.is-documents-immersive .documents-page.biblioteca-view-multivista::before {
    opacity: 0.58;
  }

  .app-shell.is-documents-immersive .documents-page::after,
  .app-shell.is-documents-immersive .documents-page.biblioteca-view-multivista::after {
    opacity: 0.5;
  }
}

@media (prefers-reduced-motion: reduce) {
  .app-shell.is-documents-immersive .documents-page::before,
  .app-shell.is-documents-immersive .documents-page::after,
  .biblioteca-view-multivista .biblioteca-editorial-hero-starfield,
  .biblioteca-view-multivista .biblioteca-editorial-hero-starfield-svg circle {
    animation: none;
  }
}

/* Ajustes de revisión UX: consistencia, aire y transición estable. */
.biblioteca-stay-tab-shell {
  flex: 0 0 330px;
  width: 330px;
}

.biblioteca-stay-tab-shell.is-home {
  flex-basis: 330px;
  width: 330px;
}

.documents-page.is-leaving-for-stay-multiview {
  animation: bibliotecaStayPageDeparture 180ms ease-out both;
}

.documents-page.biblioteca-view-multivista.is-arriving-from-stay {
  animation: bibliotecaStayMultiviewArrival 180ms ease-out both;
}

@keyframes bibliotecaStayPageDeparture {
  from { opacity: 1; filter: none; transform: none; }
  to { opacity: 0.18; filter: none; transform: none; }
}

@keyframes bibliotecaStayMultiviewArrival {
  from { opacity: 0.18; transform: none; }
  to { opacity: 1; transform: none; }
}

@media (max-width: 820px) {
  .biblioteca-stay-tab-shell,
  .biblioteca-stay-tab-shell.is-home {
    flex-basis: 231px;
    width: 231px;
  }
}

/* Fondo de topbar: banderas verticales, separado por completo de los íconos. */
@media (min-width: 821px) {
  .documents-page .biblioteca-sidebar-toggle,
  .documents-page .biblioteca-view-switch,
  .documents-page .biblioteca-academy-toggle,
  body:has(.documents-page) .lf-assistant__launcher,
  .documents-page .biblioteca-introduction-switch,
  .documents-page .biblioteca-saved-top-action {
    isolation: isolate;
    overflow: visible;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    filter: none !important;
  }

  .documents-page .biblioteca-sidebar-toggle,
  .documents-page .biblioteca-view-switch,
  .documents-page .biblioteca-academy-toggle,
  body:has(.documents-page) .lf-assistant__launcher {
    position: fixed !important;
    color: rgba(226, 241, 253, 0.72) !important;
  }

  .documents-page .biblioteca-introduction-switch,
  .documents-page .biblioteca-saved-top-action {
    color: rgba(224, 235, 244, 0.72) !important;
  }

  .documents-page .biblioteca-sidebar-toggle::before,
  .documents-page .biblioteca-view-switch::before,
  .documents-page .biblioteca-academy-toggle::before,
  body:has(.documents-page) .lf-assistant__launcher::before,
  .documents-page .biblioteca-introduction-switch::before,
  .documents-page .biblioteca-saved-top-action::before {
    --flag-top: -0.66rem;
    --flag-light: rgba(112, 87, 42, 0.2);
    --flag-mid: rgba(53, 40, 17, 0.92);
    --flag-deep: rgba(16, 13, 8, 0.99);
    content: "";
    position: absolute;
    z-index: -1;
    top: var(--flag-top);
    left: 50%;
    width: 3.32rem;
    height: 4.22rem;
    transform: translateX(-50%);
    border: 0 !important;
    border-radius: 0 !important;
    clip-path: polygon(0 0, 100% 0, 98% 94%, 52% 100%, 3% 95%);
    background:
      radial-gradient(ellipse at 16% 18%, rgba(255, 250, 225, 0.09) 0 0.42px, transparent 0.92px) 0 0 / 15px 19px repeat,
      radial-gradient(ellipse at 76% 70%, rgba(0, 0, 0, 0.2) 0 0.52px, transparent 1.02px) 5px 8px / 23px 27px repeat,
      linear-gradient(100deg, rgba(255, 255, 255, 0.035), transparent 37%, rgba(0, 0, 0, 0.18) 80%),
      linear-gradient(180deg, var(--flag-light), var(--flag-mid) 34%, var(--flag-deep)) !important;
    box-shadow: 0 0.34rem 0.82rem rgba(0, 0, 0, 0.24) !important;
    opacity: 0.8;
    pointer-events: none;
  }

  .documents-page .biblioteca-sidebar-toggle::before { --flag-top: -0.58rem; --flag-light: rgba(150, 121, 51, 0.22); --flag-mid: rgba(78, 59, 17, 0.92); --flag-deep: rgba(22, 18, 8, 0.99); }
  .documents-page .biblioteca-view-switch::before { --flag-light: rgba(59, 79, 108, 0.23); --flag-mid: rgba(19, 38, 62, 0.94); --flag-deep: rgba(6, 15, 28, 0.99); }
  .documents-page .biblioteca-academy-toggle::before { --flag-light: rgba(45, 89, 62, 0.22); --flag-mid: rgba(21, 62, 42, 0.94); --flag-deep: rgba(7, 25, 17, 0.99); }
  body:has(.documents-page) .lf-assistant__launcher::before { --flag-top: -0.48rem; --flag-light: rgba(75, 55, 103, 0.22); --flag-mid: rgba(47, 33, 69, 0.94); --flag-deep: rgba(19, 13, 30, 0.99); }
  .documents-page .biblioteca-introduction-switch::before { --flag-top: -0.83rem; --flag-light: rgba(35, 83, 83, 0.22); --flag-mid: rgba(16, 53, 57, 0.94); --flag-deep: rgba(5, 24, 28, 0.99); }
  .documents-page .biblioteca-saved-top-action::before { --flag-top: -0.83rem; --flag-light: rgba(105, 49, 53, 0.22); --flag-mid: rgba(66, 24, 30, 0.94); --flag-deep: rgba(29, 9, 13, 0.99); }

  .documents-page .biblioteca-sidebar-toggle:hover::before,
  .documents-page .biblioteca-view-switch:hover::before,
  .documents-page .biblioteca-academy-toggle:hover::before,
  body:has(.documents-page) .lf-assistant__launcher:hover::before,
  .documents-page .biblioteca-introduction-switch:hover::before,
  .documents-page .biblioteca-saved-top-action:hover::before {
    opacity: 0.92;
    filter: brightness(1.035) !important;
  }
}

@media (max-width: 820px) {
  .documents-page .biblioteca-sidebar-toggle,
  .documents-page .biblioteca-introduction-switch {
    isolation: isolate;
    overflow: visible;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .documents-page .biblioteca-sidebar-toggle::before,
  .documents-page .biblioteca-introduction-switch::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: -0.58rem;
    left: 50%;
    width: 1.42rem;
    height: 3.8rem;
    transform: translateX(-50%);
    border: 0 !important;
    border-radius: 0 !important;
    clip-path: polygon(0 0, 100% 0, 98% 94%, 52% 100%, 3% 95%);
    background: radial-gradient(ellipse at 17% 18%, rgba(255, 250, 225, 0.08) 0 0.4px, transparent 0.88px) 0 0 / 15px 19px repeat, linear-gradient(100deg, rgba(255, 255, 255, 0.035), transparent 37%, rgba(0, 0, 0, 0.18) 80%), linear-gradient(180deg, rgba(55, 77, 106, 0.2), rgba(17, 38, 62, 0.94) 35%, rgba(6, 15, 28, 0.99)) !important;
    box-shadow: 0 0.28rem 0.7rem rgba(0, 0, 0, 0.22) !important;
    opacity: 0.78;
    pointer-events: none;
  }

  .documents-page .biblioteca-introduction-switch::before {
    top: -0.8rem;
    background: radial-gradient(ellipse at 17% 18%, rgba(255, 250, 225, 0.08) 0 0.4px, transparent 0.88px) 0 0 / 15px 19px repeat, linear-gradient(100deg, rgba(255, 255, 255, 0.035), transparent 37%, rgba(0, 0, 0, 0.18) 80%), linear-gradient(180deg, rgba(34, 82, 82, 0.2), rgba(16, 53, 57, 0.94) 35%, rgba(5, 24, 28, 0.99)) !important;
  }
}

/* La primera repisa gana aire respecto al topbar sin alterar la estructura del Hero. */
.app-shell.is-documents-immersive .documents-page.biblioteca-view-multivista .document-shelves {
  padding-top: clamp(0.15rem, 0.55vw, 0.48rem);
  gap: clamp(2.1rem, 2.8vw, 2.65rem);
}

@media (max-width: 820px) {
  .app-shell.is-documents-immersive .documents-page.biblioteca-view-multivista .document-shelves {
    padding-top: 0.3rem;
    gap: 2.3rem;
  }
}

/* Identidad cromática del topbar: silencio en reposo, pigmento sólo al interactuar. */
:root {
  --lf-nav-neutral: rgba(226, 241, 253, 0.72);
  --lf-nav-biblioteca: #b59651;
  --lf-nav-oficinas: #829dbb;
  --lf-nav-academia: #6f9d7a;
  --lf-nav-asistente: #947eaa;
  --lf-nav-pausa: #5f9996;
  --lf-nav-guardados: #a76b70;
}

.documents-page .biblioteca-sidebar-toggle,
.documents-page .biblioteca-view-switch,
.documents-page .biblioteca-academy-toggle,
body:has(.documents-page) .lf-assistant__launcher,
.documents-page .biblioteca-introduction-switch,
.documents-page .biblioteca-saved-top-action {
  color: var(--lf-nav-neutral) !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  transition: color 260ms cubic-bezier(0.22, 1, 0.36, 1), filter 260ms cubic-bezier(0.22, 1, 0.36, 1), opacity 260ms ease;
}

/* Retira todas las capas experimentales de banderas sin intervenir en el layout. */
.documents-page .biblioteca-sidebar-toggle::before,
.documents-page .biblioteca-view-switch::before,
.documents-page .biblioteca-academy-toggle::before,
body:has(.documents-page) .lf-assistant__launcher::before,
.documents-page .biblioteca-introduction-switch::before,
.documents-page .biblioteca-saved-top-action::before {
  content: none !important;
  display: none !important;
}

.documents-page .biblioteca-sidebar-toggle:hover,
.documents-page .biblioteca-sidebar-toggle:focus-visible,
.documents-page .biblioteca-sidebar-toggle.is-open {
  color: var(--lf-nav-biblioteca) !important;
  filter: drop-shadow(0 0 0.3rem color-mix(in srgb, var(--lf-nav-biblioteca) 28%, transparent)) !important;
}

.documents-page .biblioteca-view-switch:hover,
.documents-page .biblioteca-view-switch:focus-visible {
  color: var(--lf-nav-oficinas) !important;
  filter: drop-shadow(0 0 0.3rem color-mix(in srgb, var(--lf-nav-oficinas) 25%, transparent)) !important;
}

.documents-page .biblioteca-academy-toggle:hover,
.documents-page .biblioteca-academy-toggle:focus-visible,
.documents-page .biblioteca-academy-toggle.is-active {
  color: var(--lf-nav-academia) !important;
  filter: drop-shadow(0 0 0.3rem color-mix(in srgb, var(--lf-nav-academia) 27%, transparent)) !important;
}

body:has(.documents-page) .lf-assistant__launcher:hover,
body:has(.documents-page) .lf-assistant__launcher:focus-visible,
body:has(.documents-page) .lf-assistant__launcher[aria-expanded="true"],
body:has(.documents-page) .lf-assistant__launcher.is-active {
  color: var(--lf-nav-asistente) !important;
  filter: drop-shadow(0 0 0.3rem color-mix(in srgb, var(--lf-nav-asistente) 26%, transparent)) !important;
}

.documents-page .biblioteca-introduction-switch:hover,
.documents-page .biblioteca-introduction-switch:focus-visible,
.documents-page .biblioteca-introduction-switch.is-on {
  color: var(--lf-nav-pausa) !important;
  filter: drop-shadow(0 0 0.3rem color-mix(in srgb, var(--lf-nav-pausa) 26%, transparent)) !important;
}

.documents-page .biblioteca-saved-top-action:hover,
.documents-page .biblioteca-saved-top-action:focus-visible,
.documents-page .biblioteca-saved-top-action.is-active,
.documents-page .biblioteca-saved-top-action[aria-current="page"] {
  color: var(--lf-nav-guardados) !important;
  filter: drop-shadow(0 0 0.3rem color-mix(in srgb, var(--lf-nav-guardados) 26%, transparent)) !important;
}

/* Sin filete decorativo: sólo cambia el pigmento propio del ícono. */
.documents-page .biblioteca-sidebar-toggle:hover::before,
.documents-page .biblioteca-view-switch:hover::before,
.documents-page .biblioteca-academy-toggle:hover::before,
body:has(.documents-page) .lf-assistant__launcher:hover::before,
.documents-page .biblioteca-introduction-switch:hover::before,
.documents-page .biblioteca-saved-top-action:hover::before {
  content: none !important;
  display: none !important;
}

/* El control de ocultar el Hero conserva su discreción, pero ya es legible en reposo. */
.documents-page .biblioteca-introduction-switch-icon {
  opacity: 0.86;
  transition: opacity 240ms cubic-bezier(0.22, 1, 0.36, 1);
}

.documents-page .biblioteca-introduction-switch-icon svg {
  stroke-width: 2.1;
}

.documents-page .biblioteca-introduction-switch:hover .biblioteca-introduction-switch-icon,
.documents-page .biblioteca-introduction-switch:focus-visible .biblioteca-introduction-switch-icon,
.documents-page .biblioteca-introduction-switch.is-on .biblioteca-introduction-switch-icon {
  opacity: 1;
}

/* Notificaciones: un blanco claro y un crecimiento leve, sin entrar a la paleta editorial. */
.app-shell.is-documents-immersive .topbar-notification-button,
.app-shell.is-documents-immersive .topbar-notification-button.has-alerts {
  color: rgba(226, 241, 253, 0.7);
  transition: color 220ms cubic-bezier(0.22, 1, 0.36, 1), transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

.app-shell.is-documents-immersive .topbar-notification-button:hover,
.app-shell.is-documents-immersive .topbar-notification-button:focus-visible {
  color: rgba(255, 255, 255, 0.96);
  transform: scale(1.055);
}

/* Notificaciones toma el mismo gesto editorial del topbar, sin color persistente. */
.app-shell.is-documents-immersive .topbar-notification-button,
.app-shell.is-documents-immersive .topbar-notification-button.has-alerts {
  background-image: linear-gradient(90deg, transparent 0%, currentColor 30%, currentColor 70%, transparent 100%) !important;
  background-repeat: no-repeat !important;
  background-position: center 0.08rem !important;
  background-size: 0 1px !important;
  transition: color 260ms cubic-bezier(0.22, 1, 0.36, 1), transform 220ms cubic-bezier(0.22, 1, 0.36, 1), background-size 620ms cubic-bezier(0.22, 1, 0.36, 1) !important;
}

.app-shell.is-documents-immersive .topbar-notification-button:hover,
.app-shell.is-documents-immersive .topbar-notification-button:focus-visible {
  color: rgba(255, 255, 255, 0.96) !important;
  transform: translateY(-0.1rem) !important;
  background-size: 1.28rem 1px !important;
}

@media (prefers-reduced-motion: reduce) {
  .documents-page .biblioteca-sidebar-toggle,
  .documents-page .biblioteca-view-switch,
  .documents-page .biblioteca-academy-toggle,
  body:has(.documents-page) .lf-assistant__launcher,
  .documents-page .biblioteca-introduction-switch,
  .documents-page .biblioteca-saved-top-action,
  .app-shell.is-documents-immersive .topbar-notification-button {
    transition: none;
  }
}

/* Tooltips ligeramente separados y un filete superior casi imperceptible al descubrir cada acceso. */
.documents-page .biblioteca-sidebar-toggle::after,
.documents-page .biblioteca-view-switch::after,
.documents-page .biblioteca-academy-toggle::after,
body:has(.documents-page) .lf-assistant__launcher::after,
.documents-page .biblioteca-introduction-switch::after,
.documents-page .biblioteca-saved-top-action::after {
  top: calc(100% + 0.7rem);
  bottom: auto;
}

.documents-page .biblioteca-sidebar-toggle::before,
.documents-page .biblioteca-view-switch::before,
.documents-page .biblioteca-academy-toggle::before,
body:has(.documents-page) .lf-assistant__launcher::before,
.documents-page .biblioteca-introduction-switch::before,
.documents-page .biblioteca-saved-top-action::before {
  content: "" !important;
  display: block !important;
  position: absolute;
  z-index: 0;
  inset: auto !important;
  top: var(--topbar-hover-line-top, 0.24rem);
  right: auto !important;
  bottom: auto !important;
  left: 50%;
  width: 1.28rem;
  height: 1.5px;
  border: 0 !important;
  border-radius: 0 !important;
  background: linear-gradient(90deg, transparent 0%, currentColor 38%, currentColor 62%, transparent 100%) !important;
  box-shadow: 0 0.18rem 0.52rem currentColor !important;
  filter: blur(0.32px) !important;
  opacity: 0;
  transform: translateX(-50%);
  transition: opacity 680ms cubic-bezier(0.22, 1, 0.36, 1), filter 680ms cubic-bezier(0.22, 1, 0.36, 1);
  pointer-events: none;
}

.documents-page .biblioteca-sidebar-toggle:hover::before,
.documents-page .biblioteca-sidebar-toggle:focus-visible::before,
.documents-page .biblioteca-sidebar-toggle.is-open::before,
.documents-page .biblioteca-view-switch:hover::before,
.documents-page .biblioteca-view-switch:focus-visible::before,
.documents-page .biblioteca-academy-toggle:hover::before,
.documents-page .biblioteca-academy-toggle:focus-visible::before,
.documents-page .biblioteca-academy-toggle.is-active::before,
body:has(.documents-page) .lf-assistant__launcher:hover::before,
body:has(.documents-page) .lf-assistant__launcher:focus-visible::before,
body:has(.documents-page) .lf-assistant__launcher[aria-expanded="true"]::before,
.documents-page .biblioteca-introduction-switch:hover::before,
.documents-page .biblioteca-introduction-switch:focus-visible::before,
.documents-page .biblioteca-introduction-switch.is-on::before,
.documents-page .biblioteca-saved-top-action:hover::before,
.documents-page .biblioteca-saved-top-action:focus-visible::before {
  opacity: 0.0575 !important;
  transform: translateX(-50%);
  filter: blur(0.32px) !important;
}

/* La línea vive en una misma coordenada óptica aunque los controles tengan distintos offsets. */
.documents-page .biblioteca-sidebar-toggle { --topbar-hover-line-top: 0.32rem; }
.documents-page .biblioteca-view-switch,
.documents-page .biblioteca-academy-toggle { --topbar-hover-line-top: 0.24rem; }
body:has(.documents-page) .lf-assistant__launcher { --topbar-hover-line-top: 0.42rem; }
.documents-page .biblioteca-introduction-switch,
.documents-page .biblioteca-saved-top-action { --topbar-hover-line-top: 0.07rem; }

@media (prefers-reduced-motion: reduce) {
  .documents-page .biblioteca-sidebar-toggle::before,
  .documents-page .biblioteca-view-switch::before,
  .documents-page .biblioteca-academy-toggle::before,
  body:has(.documents-page) .lf-assistant__launcher::before,
  .documents-page .biblioteca-introduction-switch::before,
  .documents-page .biblioteca-saved-top-action::before {
    transition: none;
  }
}

/* Filete definitivo: una geometría idéntica que prevalece sobre experimentos anteriores. */
.documents-page .biblioteca-sidebar-toggle::before,
.documents-page .biblioteca-view-switch::before,
.documents-page .biblioteca-academy-toggle::before,
body:has(.documents-page) .lf-assistant__launcher::before,
.documents-page .biblioteca-introduction-switch::before,
.documents-page .biblioteca-saved-top-action::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: auto !important;
  top: var(--topbar-hover-line-top, 0.24rem) !important;
  right: auto !important;
  bottom: auto !important;
  left: 50% !important;
  width: 1.28rem !important;
  min-width: 1.28rem !important;
  max-width: 1.28rem !important;
  height: 1px !important;
  min-height: 1px !important;
  max-height: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: linear-gradient(90deg, transparent 0%, currentColor 35%, currentColor 65%, transparent 100%) !important;
  box-shadow: 0 0.24rem 0.7rem currentColor !important;
  filter: blur(0.45px) !important;
  opacity: 0 !important;
  transform: translateX(-50%) !important;
  transition: opacity 780ms cubic-bezier(0.22, 1, 0.36, 1) !important;
  pointer-events: none !important;
}

.documents-page .biblioteca-sidebar-toggle:hover::before,
.documents-page .biblioteca-sidebar-toggle:focus-visible::before,
.documents-page .biblioteca-sidebar-toggle.is-open::before,
.documents-page .biblioteca-view-switch:hover::before,
.documents-page .biblioteca-view-switch:focus-visible::before,
.documents-page .biblioteca-academy-toggle:hover::before,
.documents-page .biblioteca-academy-toggle:focus-visible::before,
.documents-page .biblioteca-academy-toggle.is-active::before,
body:has(.documents-page) .lf-assistant__launcher:hover::before,
body:has(.documents-page) .lf-assistant__launcher:focus-visible::before,
body:has(.documents-page) .lf-assistant__launcher[aria-expanded="true"]::before,
.documents-page .biblioteca-introduction-switch:hover::before,
.documents-page .biblioteca-introduction-switch:focus-visible::before,
.documents-page .biblioteca-introduction-switch.is-on::before,
.documents-page .biblioteca-saved-top-action:hover::before,
.documents-page .biblioteca-saved-top-action:focus-visible::before {
  opacity: 0.16 !important;
}

/* Estela editorial: una luz breve que se abre suavemente hacia el ícono. */
.documents-page .biblioteca-sidebar-toggle::before,
.documents-page .biblioteca-view-switch::before,
.documents-page .biblioteca-academy-toggle::before,
body:has(.documents-page) .lf-assistant__launcher::before,
.documents-page .biblioteca-introduction-switch::before,
.documents-page .biblioteca-saved-top-action::before {
  z-index: 2 !important;
  height: 1.5px !important;
  background: linear-gradient(90deg, transparent 0%, currentColor 30%, currentColor 70%, transparent 100%) !important;
  box-shadow: 0 0.32rem 0.92rem currentColor !important;
  filter: blur(0.5px) !important;
  transition: opacity 520ms cubic-bezier(0.22, 1, 0.36, 1) !important;
}

/* Los últimos dos accesos responden con un salto corto, sin afectar su posición base. */
.documents-page .biblioteca-introduction-switch,
.documents-page .biblioteca-saved-top-action {
  transition: color 260ms cubic-bezier(0.22, 1, 0.36, 1), filter 260ms cubic-bezier(0.22, 1, 0.36, 1), transform 220ms cubic-bezier(0.22, 1, 0.36, 1) !important;
}

.documents-page .biblioteca-introduction-switch:hover,
.documents-page .biblioteca-introduction-switch:focus-visible,
.documents-page .biblioteca-saved-top-action:hover,
.documents-page .biblioteca-saved-top-action:focus-visible {
  transform: translateY(-1px);
}

.documents-page .biblioteca-academy-toggle {
  transition: color 260ms cubic-bezier(0.22, 1, 0.36, 1), filter 260ms cubic-bezier(0.22, 1, 0.36, 1), transform 220ms cubic-bezier(0.22, 1, 0.36, 1) !important;
}

.documents-page .biblioteca-academy-toggle:hover,
.documents-page .biblioteca-academy-toggle:focus-visible {
  transform: translateY(-1px);
}

.documents-page .biblioteca-view-switch.is-academy-back > span {
  transform: rotate(180deg);
}

/* Dorado envejecido: luz mineral arriba y sombra negra hacia abajo. */
:root {
  --lf-nav-biblioteca: #d4ad4d;
}

.documents-page .biblioteca-sidebar-toggle:hover,
.documents-page .biblioteca-sidebar-toggle:focus-visible {
  color: var(--lf-nav-biblioteca) !important;
  filter: drop-shadow(0 0.22rem 0.58rem rgba(0, 0, 0, 0.94)) drop-shadow(0 -0.04rem 0.18rem rgba(255, 230, 154, 0.3)) !important;
}

/* Abrir el panel no es un estado cromático: el dorado queda reservado al gesto directo. */
.documents-page .biblioteca-sidebar-toggle.is-open {
  color: var(--lf-nav-neutral) !important;
  filter: none !important;
}

/* El sidebar conserva su respuesta cromática, pero nunca el filete editorial. */
.documents-page .biblioteca-sidebar-toggle,
.documents-page .biblioteca-sidebar-toggle:hover,
.documents-page .biblioteca-sidebar-toggle:focus-visible {
  background: transparent !important;
  background-image: none !important;
  background-size: 0 1px !important;
  transition: color 300ms cubic-bezier(0.22, 1, 0.36, 1), filter 300ms cubic-bezier(0.22, 1, 0.36, 1), transform 240ms cubic-bezier(0.22, 1, 0.36, 1) !important;
}

.documents-page .biblioteca-sidebar-toggle::before {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  animation: none !important;
  transition: none !important;
}

/* El navegador interpola la posición real de cada carrusel durante el cambio del hero. */
::view-transition-group(biblioteca-shelf-featured),
::view-transition-group(biblioteca-shelf-featured-video),
::view-transition-group(biblioteca-shelf-continue),
::view-transition-group(biblioteca-shelf-recientes) {
  animation-duration: 760ms;
  animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
}

@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(biblioteca-shelf-featured),
  ::view-transition-group(biblioteca-shelf-featured-video),
  ::view-transition-group(biblioteca-shelf-continue),
  ::view-transition-group(biblioteca-shelf-recientes) { animation-duration: 1ms; }
}

/* La aparición y la salida del destacado conservan el ritmo del resto de La Fuente. */
.biblioteca-editorial-hero.is-introduction-entering {
  animation: biblioteca-hero-introduction-in 760ms cubic-bezier(0.16, 1, 0.3, 1) both;
  transform-origin: center top;
}

.biblioteca-editorial-hero.is-introduction-leaving {
  animation: biblioteca-hero-introduction-out 460ms cubic-bezier(0.4, 0, 0.2, 1) both;
  pointer-events: none;
}

@keyframes biblioteca-hero-introduction-in {
  from { opacity: 0; transform: translateY(-0.75rem) scale(0.992); filter: saturate(0.86) brightness(0.8); }
  to { opacity: 1; transform: translateY(0) scale(1); filter: saturate(1) brightness(1); }
}

@keyframes biblioteca-hero-introduction-out {
  from { opacity: 1; transform: translateY(0) scale(1); filter: saturate(1) brightness(1); }
  to { opacity: 0; transform: translateY(-0.5rem) scale(0.994); filter: saturate(0.88) brightness(0.82); }
}

@media (prefers-reduced-motion: reduce) {
  .biblioteca-editorial-hero.is-introduction-entering,
  .biblioteca-editorial-hero.is-introduction-leaving { animation: none; }
}

/* La estela se sitúa fuera del botón para que permanezca visible sobre el cielo. */
.documents-page .biblioteca-sidebar-toggle { --topbar-hover-line-top: -0.42rem; }
.documents-page .biblioteca-view-switch,
.documents-page .biblioteca-academy-toggle { --topbar-hover-line-top: -0.5rem; }
body:has(.documents-page) .lf-assistant__launcher { --topbar-hover-line-top: -0.32rem; }
.documents-page .biblioteca-introduction-switch,
.documents-page .biblioteca-saved-top-action { --topbar-hover-line-top: -0.67rem; }

.documents-page .biblioteca-sidebar-toggle:hover::before,
.documents-page .biblioteca-sidebar-toggle:focus-visible::before,
.documents-page .biblioteca-sidebar-toggle.is-open::before,
.documents-page .biblioteca-view-switch:hover::before,
.documents-page .biblioteca-view-switch:focus-visible::before,
.documents-page .biblioteca-academy-toggle:hover::before,
.documents-page .biblioteca-academy-toggle:focus-visible::before,
.documents-page .biblioteca-academy-toggle.is-active::before,
body:has(.documents-page) .lf-assistant__launcher:hover::before,
body:has(.documents-page) .lf-assistant__launcher:focus-visible::before,
body:has(.documents-page) .lf-assistant__launcher[aria-expanded="true"]::before,
.documents-page .biblioteca-introduction-switch:hover::before,
.documents-page .biblioteca-introduction-switch:focus-visible::before,
.documents-page .biblioteca-introduction-switch.is-on::before,
.documents-page .biblioteca-saved-top-action:hover::before,
.documents-page .biblioteca-saved-top-action:focus-visible::before {
  opacity: 0.22 !important;
}

/* Indicador definitivo: vive en el fondo del botón, no en las capas heredadas. */
.documents-page .biblioteca-sidebar-toggle,
.documents-page .biblioteca-view-switch,
.documents-page .biblioteca-academy-toggle,
body:has(.documents-page) .lf-assistant__launcher,
.documents-page .biblioteca-introduction-switch,
.documents-page .biblioteca-saved-top-action {
  background-image: linear-gradient(90deg, transparent 0%, currentColor 30%, currentColor 70%, transparent 100%) !important;
  background-repeat: no-repeat !important;
  background-position: center 0.08rem !important;
  background-size: 0 1px !important;
  transition: color 260ms cubic-bezier(0.22, 1, 0.36, 1), filter 260ms cubic-bezier(0.22, 1, 0.36, 1), transform 220ms cubic-bezier(0.22, 1, 0.36, 1), background-size 620ms cubic-bezier(0.22, 1, 0.36, 1) !important;
}

.documents-page .biblioteca-sidebar-toggle::before,
.documents-page .biblioteca-view-switch::before,
.documents-page .biblioteca-academy-toggle::before,
body:has(.documents-page) .lf-assistant__launcher::before,
.documents-page .biblioteca-introduction-switch::before,
.documents-page .biblioteca-saved-top-action::before {
  content: none !important;
  display: none !important;
}

.documents-page .biblioteca-sidebar-toggle:hover,
.documents-page .biblioteca-sidebar-toggle:focus-visible,
.documents-page .biblioteca-view-switch:hover,
.documents-page .biblioteca-view-switch:focus-visible,
.documents-page .biblioteca-academy-toggle:hover,
.documents-page .biblioteca-academy-toggle:focus-visible,
body:has(.documents-page) .lf-assistant__launcher:hover,
body:has(.documents-page) .lf-assistant__launcher:focus-visible,
.documents-page .biblioteca-introduction-switch:hover,
.documents-page .biblioteca-introduction-switch:focus-visible,
.documents-page .biblioteca-saved-top-action:hover,
.documents-page .biblioteca-saved-top-action:focus-visible {
  background-size: 1.28rem 1px !important;
}

.documents-page .biblioteca-introduction-switch:hover,
.documents-page .biblioteca-introduction-switch:focus-visible,
.documents-page .biblioteca-saved-top-action:hover,
.documents-page .biblioteca-saved-top-action:focus-visible,
.documents-page .biblioteca-academy-toggle:hover,
.documents-page .biblioteca-academy-toggle:focus-visible {
  transform: translateY(-0.1rem);
}

/* Guía editorial de instalación: superficie clara, aislada del resto de Biblioteca. */
.biblioteca-install-guide-trigger {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-top: 1.35rem;
  padding: 0 0 0.32rem;
  border: 0;
  border-bottom: 1px solid rgba(43, 84, 102, 0.22);
  color: rgba(35, 76, 98, 0.72);
  background: transparent;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  cursor: pointer;
}

.biblioteca-install-guide-trigger::before { content: "↗"; font-family: Inter, sans-serif; font-size: 0.84rem; }
.biblioteca-install-guide-trigger:hover { border-bottom-color: rgba(23, 61, 87, 0.58); color: #173d57; }

.biblioteca-install-guide {
  position: fixed;
  z-index: 12200;
  inset: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 0.85rem;
  padding: clamp(1rem, 2.3vw, 2.1rem);
  color: #183548;
  background: rgba(236, 240, 238, 0.86);
  -webkit-backdrop-filter: blur(16px) saturate(0.9);
  backdrop-filter: blur(16px) saturate(0.9);
  opacity: 0;
  isolation: isolate;
  transition: opacity 260ms ease;
}

.biblioteca-install-guide.is-visible { opacity: 1; }

.biblioteca-install-guide-head,
.biblioteca-install-guide-nav {
  width: min(73rem, 100%);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.biblioteca-install-guide-head p {
  margin: 0;
  color: rgba(48, 92, 111, 0.68);
  font-size: 0.72rem;
  font-weight: 760;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.biblioteca-install-guide-head button {
  width: 2.2rem;
  height: 2.2rem;
  border: 0;
  border-radius: 50%;
  color: rgba(30, 62, 79, 0.72);
  background: rgba(255, 255, 255, 0.7);
  box-shadow: 0 0.4rem 1.2rem rgba(17, 46, 62, 0.08);
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}

.biblioteca-install-guide-deck {
  width: min(73rem, 100%);
  min-height: 0;
  margin: 0 auto;
}

.biblioteca-install-guide-card {
  width: 100%;
  height: 100%;
  min-height: min(39rem, calc(100dvh - 10rem));
  display: none;
  grid-template-columns: minmax(16rem, 0.76fr) minmax(0, 1.24fr);
  overflow: hidden;
  border: 1px solid rgba(36, 75, 95, 0.1);
  border-radius: 1.55rem;
  background: #fbfaf7;
  box-shadow: 0 2rem 5rem rgba(13, 43, 59, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.biblioteca-install-guide-card.is-active { display: grid; animation: biblioteca-install-guide-in 920ms cubic-bezier(.16, 1, .3, 1) both; }
.biblioteca-install-guide-card.is-active.is-next { animation-name: biblioteca-install-guide-slide-next; }
.biblioteca-install-guide-card.is-active.is-previous { animation-name: biblioteca-install-guide-slide-previous; }

.biblioteca-install-guide-copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(2rem, 4vw, 4rem);
  padding-bottom: clamp(2rem, 4vw, 4rem);
  background:
    radial-gradient(circle at 8% 4%, rgba(255, 211, 112, 0.34), transparent 13rem),
    radial-gradient(circle at 95% 95%, rgba(120, 205, 190, 0.16), transparent 17rem),
    #fbfaf7;
}

.biblioteca-install-guide-copy > img { width: 4rem; height: 4rem; margin-top: clamp(2rem, 5vw, 4.8rem); object-fit: contain; }

.biblioteca-install-guide-copy h2 {
  max-width: 8.5ch;
  margin: 1.35rem 0 0;
  color: #19394d;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.25rem, 4.4vw, 4.35rem);
  font-weight: 500;
  line-height: 0.96;
  letter-spacing: -0.045em;
}

.biblioteca-install-guide-copy p { max-width: 21rem; margin: 1.45rem 0 0; color: rgba(35, 68, 85, 0.72); font-size: clamp(0.95rem, 1.5vw, 1.1rem); line-height: 1.62; }

.biblioteca-install-guide-visual {
  position: relative;
  display: grid;
  place-items: center;
  min-width: 0;
  padding: clamp(1.25rem, 3vw, 3rem);
  background: linear-gradient(135deg, #eff1ed, #e8edeb);
}

.biblioteca-install-guide-progress {
  position: static;
  z-index: 2;
  display: flex;
  width: 100%;
  margin-top: auto;
  padding-top: 1.4rem;
  gap: 0.34rem;
  align-items: center;
  pointer-events: none;
}

.biblioteca-install-guide-progress i {
  width: 1.05rem;
  height: 0.18rem;
  border-radius: 999px;
  background: rgba(44, 83, 99, 0.16);
  transition: width 680ms cubic-bezier(.16, 1, .3, 1), background 680ms ease;
}

.biblioteca-install-guide-progress i.is-complete {
  width: 1.8rem;
  background: rgba(45, 105, 111, 0.68);
}

.biblioteca-install-browser,
.biblioteca-install-complete-screen {
  position: relative;
  width: min(100%, 44rem);
  height: min(28rem, 72%);
  overflow: hidden;
  border: 1px solid rgba(29, 62, 80, 0.16);
  border-radius: 1rem;
  background: #f9faf9;
  box-shadow: 0 1.6rem 3.5rem rgba(24, 54, 71, 0.2);
}

.biblioteca-install-browser-bar,
.biblioteca-install-complete-toolbar {
  height: 3.4rem;
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0 0.82rem 0 1rem;
  border-bottom: 1px solid rgba(35, 70, 87, 0.12);
  background: #f0f2f1;
}

.biblioteca-install-address { flex: 1; padding: 0.5rem 0.85rem; border-radius: 999px; color: rgba(35, 64, 78, 0.64); background: #fff; font-size: 0.75rem; }
.biblioteca-install-browser-profile { width: 1.3rem; height: 1.3rem; border-radius: 50%; background: linear-gradient(145deg, #799ab0, #31536a); }
.biblioteca-install-browser-menu { width: 2.2rem; height: 2.2rem; display: grid; place-items: center; border-radius: 50%; color: #29485a; font-size: 1.45rem; line-height: 1; }

.biblioteca-install-browser-menu.is-highlighted,
.biblioteca-install-chrome-menu .is-highlighted,
.biblioteca-install-chrome-submenu .is-highlighted {
  color: #1e5561;
  background: rgba(120, 205, 190, 0.18);
  box-shadow: inset 0 0 0 2px rgba(67, 144, 132, 0.64), 0 0 0 0.26rem rgba(120, 205, 190, 0.13);
}

.biblioteca-install-browser-stage { position: absolute; inset: 3.4rem 0 0; background: linear-gradient(145deg, rgba(220, 231, 228, 0.78), rgba(249, 248, 242, 0.88)); }
.biblioteca-install-chrome-menu { position: absolute; z-index: 2; top: 3.85rem; right: 0.72rem; width: min(21rem, 69%); padding: 0.55rem; border-radius: 0.78rem; background: rgba(255, 255, 255, 0.97); box-shadow: 0 1rem 2.7rem rgba(16, 45, 60, 0.24); }
.biblioteca-install-chrome-menu span, .biblioteca-install-chrome-submenu span { min-height: 2.12rem; display: flex; align-items: center; justify-content: space-between; gap: 0.8rem; padding: 0 0.7rem; border-radius: 0.42rem; color: #2c4656; font-size: 0.75rem; }
.biblioteca-install-chrome-menu b { font-size: 1rem; font-weight: 400; }
.biblioteca-install-chrome-submenu { position: absolute; z-index: 3; top: 9.6rem; left: 0.35rem; width: min(16rem, 55%); padding: 0.55rem; border-radius: 0.78rem; background: rgba(255, 255, 255, 0.98); box-shadow: 0 1rem 2.7rem rgba(16, 45, 60, 0.25); }
.biblioteca-install-chrome-submenu small { display: block; margin: 0.62rem 0.7rem 0.28rem; color: rgba(43, 78, 94, 0.55); font-size: 0.58rem; font-weight: 760; letter-spacing: 0.08em; text-transform: uppercase; }
.biblioteca-install-chrome-submenu img { width: 1.05rem; height: 1.05rem; margin-right: 0.12rem; object-fit: contain; }
.biblioteca-install-chrome-submenu .is-highlighted { justify-content: flex-start; }
.biblioteca-install-browser.is-compact-menu .biblioteca-install-chrome-menu { top: 4.15rem; }
.biblioteca-install-browser.is-compact-menu .biblioteca-install-chrome-menu span { min-height: 1.94rem; }
.biblioteca-install-browser.is-compact-menu .biblioteca-install-chrome-submenu { top: 6.85rem; }
.biblioteca-install-browser.is-compact-menu .biblioteca-install-chrome-submenu span { min-height: 1.84rem; }
.biblioteca-install-browser.is-compact-menu .biblioteca-install-chrome-submenu small { margin-top: 0.42rem; }

.biblioteca-install-confirm-dialog { position: absolute; z-index: 5; right: clamp(1rem, 6vw, 4rem); bottom: clamp(1.2rem, 5vw, 3.6rem); width: min(30rem, 82%); padding: 1.5rem; border: 1px solid rgba(39, 76, 93, 0.14); border-radius: 1rem; background: #fbfaf7; box-shadow: 0 1.5rem 3.5rem rgba(14, 43, 58, 0.26); }
.biblioteca-install-confirm-dialog > strong { display: block; color: #1a384a; font-size: 1.05rem; }
.biblioteca-install-confirm-dialog > button { position: absolute; top: 0.85rem; right: 0.85rem; border: 0; color: rgba(30, 58, 73, 0.56); background: transparent; font-size: 1.25rem; }
.biblioteca-install-confirm-dialog > div { display: flex; align-items: center; gap: 0.7rem; margin: 1.5rem 0; }
.biblioteca-install-confirm-dialog img, .biblioteca-install-complete-toolbar img, .biblioteca-install-complete-toast img { width: 2.4rem; height: 2.4rem; object-fit: contain; }
.biblioteca-install-confirm-dialog span, .biblioteca-install-complete-toast span { display: grid; gap: 0.2rem; }
.biblioteca-install-confirm-dialog small, .biblioteca-install-complete-toast small { color: rgba(38, 69, 84, 0.62); font-size: 0.75rem; }
.biblioteca-install-confirm-dialog footer { display: flex; justify-content: flex-end; gap: 0.65rem; }
.biblioteca-install-confirm-dialog footer i, .biblioteca-install-confirm-dialog footer em { padding: 0.56rem 0.9rem; border-radius: 999px; font-size: 0.76rem; font-style: normal; }
.biblioteca-install-confirm-dialog footer i { color: #36576a; box-shadow: inset 0 0 0 1px rgba(42, 78, 95, 0.18); }
.biblioteca-install-confirm-dialog footer em { color: #fff; background: #173d57; box-shadow: 0 0.48rem 1.1rem rgba(23, 61, 87, 0.22); }

.biblioteca-install-complete-screen { height: min(29rem, 74%); }
.biblioteca-install-complete-toolbar { justify-content: space-between; color: rgba(35, 66, 81, 0.6); font-size: 0.75rem; }
.biblioteca-install-complete-page { height: calc(100% - 3.4rem); padding: 3rem 1.8rem; background: linear-gradient(145deg, #e3efec, #f7f5ef); }
.biblioteca-install-complete-toast { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 0.8rem; padding: 1.2rem; border-radius: 0.92rem; background: rgba(255, 255, 255, 0.9); box-shadow: 0 1rem 2.5rem rgba(21, 60, 74, 0.15); }
.biblioteca-install-complete-toast b { color: #1d4053; font-size: 0.9rem; }
.biblioteca-install-complete-toast em { padding: 0.5rem 0.75rem; border-radius: 999px; color: #fff; background: #337260; font-size: 0.72rem; font-style: normal; }

.biblioteca-install-guide-nav { gap: 0.75rem; }
.biblioteca-install-guide-nav span { color: rgba(40, 77, 94, 0.64); font-size: 0.75rem; font-weight: 720; }
.biblioteca-install-guide-nav button { min-width: 6.6rem; padding: 0.62rem 0.9rem; border: 1px solid rgba(42, 79, 96, 0.14); border-radius: 999px; color: #24485c; background: rgba(255, 255, 255, 0.76); font: inherit; font-size: 0.78rem; font-weight: 720; cursor: pointer; }
.biblioteca-install-guide-nav button:last-child { color: #fff; border-color: #173d57; background: #173d57; }
.biblioteca-install-guide-nav button:disabled { opacity: 0.32; cursor: default; }

.biblioteca-install-guide-side-nav {
  position: fixed;
  z-index: 3;
  top: 50%;
  width: 2.45rem;
  height: 2.45rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  color: rgba(239, 248, 252, 0.94);
  background: transparent;
  text-shadow: 0 0.35rem 1.1rem rgba(0, 0, 0, 0.42);
  cursor: pointer;
  transform: translateY(-50%);
  transition: color 180ms ease, transform 220ms cubic-bezier(.16, 1, .3, 1), opacity 180ms ease;
}

.biblioteca-install-guide-side-nav.is-previous { left: max(0.8rem, calc(50% - 29rem)); }
.biblioteca-install-guide-side-nav.is-next { right: max(0.8rem, calc(50% - 29rem)); }
.biblioteca-install-guide-side-nav svg { width: 1.5rem; height: 1.5rem; fill: none; stroke: currentColor; stroke-width: 2.1; stroke-linecap: round; stroke-linejoin: round; }
.biblioteca-install-guide-side-nav:hover:not(:disabled), .biblioteca-install-guide-side-nav:focus-visible:not(:disabled) { color: #fff; transform: translateY(-50%) scale(1.1); outline: none; }
.biblioteca-install-guide-side-nav:disabled { opacity: 0.18; cursor: default; }

@keyframes biblioteca-install-guide-in { from { opacity: 0; transform: translateY(0.2rem) scale(0.998); } to { opacity: 1; transform: none; } }
@keyframes biblioteca-install-guide-slide-next { from { opacity: 0; transform: translateX(0.38rem) scale(0.998); } to { opacity: 1; transform: translateX(0) scale(1); } }
@keyframes biblioteca-install-guide-slide-previous { from { opacity: 0; transform: translateX(-0.38rem) scale(0.998); } to { opacity: 1; transform: translateX(0) scale(1); } }

@media (max-width: 760px) {
  .biblioteca-install-guide-card { grid-template-columns: 1fr; overflow: auto; }
  .biblioteca-install-guide-copy { min-height: 19rem; }
  .biblioteca-install-guide-copy > img { margin-top: 1.5rem; }
  .biblioteca-install-guide-copy h2 { font-size: clamp(2.1rem, 10vw, 3.2rem); }
  .biblioteca-install-guide-visual { min-height: 24rem; }
}

/* La guía se presenta dentro de la misma atmósfera desenfocada de la invitación. */
@media (min-width: 761px) {
  .biblioteca-install-guide {
    display: grid;
    grid-template-rows: 1fr;
    place-items: center;
    padding: 1.5rem;
    background: transparent;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }

  .biblioteca-install-guide-head,
  .biblioteca-install-guide-nav {
    position: fixed;
    z-index: 2;
    width: min(52rem, calc(100vw - clamp(2.5rem, 8vw, 7rem)));
  }

  .biblioteca-install-guide-head { top: max(1.15rem, env(safe-area-inset-top)); }
  .biblioteca-install-guide-nav { top: calc(50% + min(15rem, calc((100dvh - 8rem) / 2)) + 0.38rem); bottom: auto; }

  .biblioteca-install-guide-deck {
    width: min(52rem, calc(100vw - clamp(2.5rem, 8vw, 7rem)));
    height: min(30rem, calc(100dvh - 8rem));
    margin: 0;
  }

  .biblioteca-install-guide-card {
    min-height: 0;
    height: 100%;
    grid-template-columns: minmax(13rem, 0.82fr) minmax(20rem, 1.18fr);
    border-radius: clamp(1.35rem, 2.4vw, 2.1rem);
  }

  .biblioteca-install-guide-copy {
    padding: clamp(2rem, 4.4vw, 3.25rem);
    padding-bottom: clamp(2rem, 4.4vw, 3.25rem);
  }
  .biblioteca-install-guide-copy > img { width: 3.2rem; height: 3.2rem; margin-top: clamp(1.25rem, 3.5vw, 2.75rem); }
  .biblioteca-install-guide-copy h2 { font-size: clamp(2.1rem, 4vw, 3.45rem); }
  .biblioteca-install-guide-copy p { margin-top: 1rem; font-size: 0.92rem; }
  .biblioteca-install-guide-visual { padding: clamp(1rem, 2.5vw, 2rem); }
}

.biblioteca-install-notice.is-guide-open .biblioteca-install-card {
  visibility: hidden;
  pointer-events: none;
}

/* Las superficies editoriales toman el foco: la IA se oculta hasta cerrarlas. */
body:has(.biblioteca-install-notice.is-visible) .lf-assistant__launcher,
body:has(.editorial-card-layer) .lf-assistant__launcher {
  opacity: 0 !important;
  pointer-events: none !important;
  transform: translateY(-0.25rem) !important;
}

/* Colecciones fotográficas en escritorio: el mismo lenguaje del feed móvil,
   en una columna compacta de 470 px y respetando la proporción de cada foto. */
@media (min-width: 821px) {
  .biblioteca-photo-collections-shelf {
    width: 100%;
    display: grid;
    justify-items: center;
    gap: clamp(4rem, 7vw, 6.5rem);
    padding-block: clamp(2.5rem, 5vw, 4.5rem);
  }

  .biblioteca-photo-collection-feature {
    width: min(100%, 31.25rem);
    gap: 0.52rem;
  }

  .biblioteca-photo-collection-head {
    display: none;
  }

  .biblioteca-photo-collection-author {
    display: flex;
    align-items: center;
    gap: 0.58rem;
    min-height: 2rem;
    color: rgba(237, 245, 251, 0.92);
    font-size: 0.82rem;
    font-weight: 570;
  }

  .biblioteca-photo-collection-author img {
    width: 1.78rem;
    height: 1.78rem;
    flex: 0 0 1.78rem;
    border-radius: 50%;
    object-fit: cover;
  }

  .biblioteca-photo-collection-author-copy {
    min-width: 0;
    display: grid;
    gap: 0.12rem;
    line-height: 1.18;
  }

  .biblioteca-photo-collection-author-copy strong {
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
  }

  .biblioteca-photo-collection-author-copy small {
    color: rgba(197, 215, 229, 0.68);
    font-size: 0.66rem;
    font-weight: 450;
    letter-spacing: 0.018em;
  }

  .biblioteca-photo-mosaic-stage {
    width: 100%;
    overflow: visible;
    border-radius: 0.35rem;
  }

  .biblioteca-photo-mosaic-nav {
    right: -2.65rem;
    left: -2.65rem;
  }

  .biblioteca-photo-mosaic {
    position: relative;
    width: 100%;
    height: auto !important;
    aspect-ratio: auto !important;
    display: block !important;
    overflow: hidden !important;
    padding: 0;
    border-radius: inherit !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
  }

  .biblioteca-photo-mosaic .biblioteca-photo-tile,
  .biblioteca-photo-mosaic .biblioteca-photo-mosaic-tile {
    position: relative;
    inset: auto;
    width: 100%;
    height: auto;
    display: block;
    border-radius: inherit !important;
    grid-column: auto !important;
    grid-row: auto !important;
    transition: opacity 360ms ease, transform 520ms cubic-bezier(0.22, 0.72, 0.24, 1);
  }

  .biblioteca-photo-mosaic .biblioteca-photo-tile.is-carousel-entering {
    position: absolute;
    inset: 0;
    z-index: 2;
    opacity: 0;
  }

  .biblioteca-photo-tile.is-carousel-entering.is-next {
    transform: translateX(3.5%);
  }

  .biblioteca-photo-tile.is-carousel-entering.is-previous {
    transform: translateX(-3.5%);
  }

  .biblioteca-photo-mosaic-stage.is-carousel-transitioning .biblioteca-photo-tile.is-carousel-entering {
    opacity: 1;
    transform: translateX(0);
  }

  .biblioteca-photo-mosaic-stage.is-carousel-transitioning .biblioteca-photo-tile.is-carousel-leaving.is-next {
    opacity: 0;
    transform: translateX(-3.5%);
  }

  .biblioteca-photo-mosaic-stage.is-carousel-transitioning .biblioteca-photo-tile.is-carousel-leaving.is-previous {
    opacity: 0;
    transform: translateX(3.5%);
  }

  .biblioteca-photo-mosaic .biblioteca-photo-tile img,
  .biblioteca-photo-mosaic .biblioteca-photo-mosaic-tile img {
    width: 100%;
    height: auto !important;
    border-radius: inherit !important;
    object-fit: contain;
  }

  .biblioteca-photo-mosaic .biblioteca-photo-caption {
    display: none;
  }

  .biblioteca-photo-collection-mobile-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 1.8rem;
  }

  .biblioteca-photo-collection-mobile-meta h3 {
    margin: 0;
    color: rgba(226, 238, 247, 0.86);
    font-size: 0.88rem;
    font-weight: 460;
    letter-spacing: 0;
    text-transform: none;
  }

  .biblioteca-photo-collection-mobile-meta .biblioteca-photo-open-all {
    min-width: 1.8rem;
    min-height: 1.8rem;
    display: grid;
    place-items: center end;
    padding: 0;
    font-size: 1.04rem;
  }
}

/* Acceso al manual de instalación: sólo se muestra en navegador, como icono flotante. */
.biblioteca-install-top-action {
  position: relative;
  width: 2.48rem;
  height: 2.48rem;
  display: inline-grid;
  flex: 0 0 auto;
  place-items: center;
  padding: 0;
  border: 0;
  color: rgba(192, 218, 232, 0.82);
  background: transparent;
  cursor: pointer;
  transition: color 180ms ease, transform 180ms ease;
}

.biblioteca-install-top-action svg { width: 1.22rem; height: 1.22rem; fill: none; stroke: currentColor; stroke-width: 1.85; stroke-linecap: round; stroke-linejoin: round; }
.biblioteca-install-top-action:hover, .biblioteca-install-top-action:focus-visible { color: #fff; transform: translateY(-0.1rem); outline: none; }
.biblioteca-install-top-action::after { content: attr(data-tooltip); position: absolute; z-index: 8; top: calc(100% + 0.56rem); left: 50%; width: max-content; padding: 0.38rem 0.52rem; border: 1px solid rgba(205, 224, 240, 0.14); border-radius: 0.48rem; color: rgba(239, 247, 253, 0.94); background: rgba(5, 12, 21, 0.94); box-shadow: 0 0.72rem 1.6rem rgba(0, 0, 0, 0.25); font-size: 0.7rem; line-height: 1.15; opacity: 0; pointer-events: none; transform: translate(-50%, -0.22rem); transition: opacity 160ms ease, transform 160ms ease; }
.biblioteca-install-top-action:hover::after, .biblioteca-install-top-action:focus-visible::after { opacity: 1; transform: translate(-50%, 0); }

/* El mosaico conserva su retícula y respiración; desaparecen sólo sus superficies contenedoras. */
.biblioteca-photo-mosaic {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.biblioteca-photo-mosaic .biblioteca-photo-tile {
  border: 0 !important;
  background: transparent !important;
}

/* Las fichas y recursos flotan sin filetes: sólo queda su sombra de profundidad. */
.documents-page :is(
  .doc-cover-art,
  .biblioteca-file-visual,
  .biblioteca-video-work-cover,
  .biblioteca-video-hover-preview,
  .biblioteca-video-consultation,
  .biblioteca-document-consultation,
  .biblioteca-video-consultation-frame,
  .biblioteca-continue-thumb,
  .biblioteca-photo-mosaic-tile,
  .collection-item-card,
  .collection-item-thumb
) {
  border: 0 !important;
  outline: 0 !important;
}

.documents-page .doc-cover-button:hover .doc-cover-art,
.documents-page .collection-item-card:hover .collection-item-thumb,
.documents-page .biblioteca-video-work-card:hover .biblioteca-video-work-cover,
.documents-page .biblioteca-video-work-shell.is-video-hover-intent .biblioteca-video-work-cover {
  border: 0 !important;
  box-shadow: 0 22px 52px rgba(0, 0, 0, 0.34) !important;
}

/* Los puntos pertenecen a la línea del título, no a la esquina de la ficha. */
.biblioteca-manual-study-card-actions .collection-item-more {
  position: static !important;
  right: auto;
  align-self: center;
}

/* Retícula canónica del topbar móvil: navegación y acciones editoriales fluyen en una sola línea. */
.profile-multiview-back {
  display: none;
}

@media (max-width: 820px) {
  #notification-popover {
    top: calc(max(0.58rem, env(safe-area-inset-top)) + 3.35rem);
    right: max(0.68rem, env(safe-area-inset-right));
    bottom: env(safe-area-inset-bottom);
    left: max(0.88rem, env(safe-area-inset-left));
    width: auto;
  }

  .app-shell.is-documents-immersive .topbar-notification-button,
  .app-shell.is-profile-route .topbar-notification-button {
    transform: translateY(-0.28rem);
  }

  .app-shell.is-documents-immersive .topbar-notification-button:hover,
  .app-shell.is-documents-immersive .topbar-notification-button:focus-visible,
  .app-shell.is-profile-route .topbar-notification-button:hover,
  .app-shell.is-profile-route .topbar-notification-button:focus-visible {
    transform: translateY(-0.28rem) !important;
  }

  .app-shell.is-documents-immersive .top-user-button,
  .app-shell.is-profile-route .top-user-button {
    transform: translateY(-0.18rem);
  }

  .app-shell.is-documents-immersive .biblioteca-sidebar-toggle svg {
    width: 1.78rem;
    height: 1.78rem;
  }

  .app-shell.is-documents-immersive .biblioteca-multiview-stay-controls {
    top: calc(max(0.58rem, env(safe-area-inset-top)) + 0.22rem) !important;
    right: auto !important;
    left: calc(max(0.7rem, env(safe-area-inset-left)) + 3.39rem) !important;
    width: max-content;
    gap: 0;
  }

  body.is-alan-session .biblioteca-multiview-stay-controls .biblioteca-editorial-top-controls,
  .app-shell.is-documents-immersive .biblioteca-multiview-stay-controls .biblioteca-editorial-top-controls {
    position: relative !important;
    inset: auto !important;
    display: grid;
    grid-template-columns: repeat(3, 2.48rem);
    gap: 0.34rem !important;
  }

  .app-shell.is-documents-immersive .biblioteca-editorial-top-controls .biblioteca-introduction-switch {
    position: relative;
    inset: auto;
  }

  .biblioteca-sidebar .biblioteca-sidebar-home {
    font-size: 1.4rem !important;
    line-height: 1.1;
  }

  .app-shell.is-documents-immersive .biblioteca-sidebar-toggle,
  .app-shell.is-documents-immersive .biblioteca-introduction-switch,
  .app-shell.is-documents-immersive .biblioteca-saved-top-action,
  .app-shell.is-documents-immersive .biblioteca-install-top-action,
  .app-shell.is-documents-immersive .topbar-notification-button,
  .app-shell.is-documents-immersive .topbar-notification-button.has-alerts {
    color: rgba(247, 252, 255, 0.8) !important;
    opacity: 1;
  }

  .biblioteca-editorial-hero-title {
    max-height: 6rem;
    overflow: hidden;
    transition:
      max-height 620ms cubic-bezier(0.16, 1, 0.3, 1),
      opacity 520ms cubic-bezier(0.16, 1, 0.3, 1),
      transform 620ms cubic-bezier(0.16, 1, 0.3, 1),
      visibility 0s linear 620ms;
  }

  .biblioteca-editorial-hero.is-preview-settled .biblioteca-editorial-hero-title {
    max-height: 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(0.24rem);
  }

  .app-shell.is-profile-route .main-content {
    padding-top: 4.8rem;
  }

  .app-shell.is-profile-route .topbar {
    position: fixed;
    z-index: 50;
    top: max(0.8rem, env(safe-area-inset-top));
    right: max(1rem, env(safe-area-inset-right));
    width: auto;
    margin: 0;
    flex-wrap: nowrap;
    align-items: center;
  }

  .app-shell.is-profile-route .topbar-title {
    display: none;
  }

  .app-shell.is-profile-route .topbar-session {
    gap: 0.34rem;
  }

  .app-shell.is-profile-route .topbar-icon-button {
    width: 2.48rem;
    height: 2.48rem;
    border-color: rgba(23, 58, 94, 0.12);
    color: rgba(23, 58, 94, 0.78);
    background: rgba(255, 250, 242, 0.66);
    box-shadow: none;
  }

  .app-shell.is-profile-route .top-user-button {
    width: 2.8rem;
    height: 2.8rem;
    padding: 0.2rem;
    box-shadow: none;
  }

  .profile-multiview-back {
    position: fixed;
    z-index: 52;
    top: max(0.58rem, env(safe-area-inset-top));
    left: calc(max(0.7rem, env(safe-area-inset-left)) + 0.32rem);
    width: 2.92rem;
    height: 2.92rem;
    display: grid;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 0;
    color: rgba(23, 58, 94, 0.86);
    background: transparent;
  }

  .profile-multiview-back span,
  .profile-multiview-back svg {
    width: 1.72rem;
    height: 1.72rem;
  }

  .profile-multiview-back svg {
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .documents-page .document-shelf > h3,
  .documents-page .biblioteca-focused-section > .biblioteca-section-head,
  .biblioteca-continue-heading {
    opacity: 0.85 !important;
  }
}

.biblioteca-focused-section .biblioteca-personal-create.is-saved-add {
  width: auto;
  height: auto;
  min-width: 0;
  padding: 0.18rem 0.3rem;
  border: 0;
  border-radius: 0;
  color: rgba(247, 252, 255, 0.84);
  background: transparent;
  box-shadow: none;
}

.biblioteca-focused-section .biblioteca-personal-create.is-saved-add > span {
  font-size: 1.7rem;
  font-weight: 320;
  line-height: 1;
}

/* Certificación móvil: una fotografía por vez, a todo el ancho del teléfono. */
@media (max-width: 820px) {
  .app-shell.is-documents-immersive .documents-page.biblioteca-view-multivista .document-shelves {
    grid-template-columns: minmax(0, 1fr);
  }

  .biblioteca-view-multivista .biblioteca-editorial-hero-stage {
    --biblioteca-mobile-page-gutter: clamp(1rem, 3vw, 2.4rem);
    width: 100%;
    display: block;
    padding: clamp(1.7rem, 7vw, 2rem) 0 clamp(0.65rem, 3vw, 0.85rem);
    margin-bottom: 0;
    margin-inline: 0;
    transform: translateX(0);
    transform-origin: left center;
    transition: width 520ms cubic-bezier(0.22, 0.72, 0.24, 1), transform 520ms cubic-bezier(0.22, 0.72, 0.24, 1), margin 520ms cubic-bezier(0.22, 0.72, 0.24, 1);
  }

  .biblioteca-editorial-hero-stage.is-mobile-full-bleed {
    width: var(--biblioteca-mobile-viewport-width, calc(100% + (2 * var(--biblioteca-mobile-page-gutter))));
    max-width: none;
    justify-self: start;
    margin-inline: 0;
    transform: translateX(var(--biblioteca-mobile-viewport-shift, calc(-1 * var(--biblioteca-mobile-page-gutter))));
  }

  .biblioteca-editorial-hero-stage > .biblioteca-editorial-hero.hero--immersive-soft {
    width: 100% !important;
    margin-inline: 0 !important;
    aspect-ratio: 16 / 9;
    min-height: 0;
    border-radius: 0 !important;
  }

  .biblioteca-editorial-hero-preview.is-youtube iframe {
    inset: 0 !important;
    top: 0 !important;
    width: 100% !important;
    height: 100% !important;
    transform: none !important;
  }

  .biblioteca-mobile-pull-refresh {
    position: fixed;
    z-index: 45;
    top: calc(max(0.55rem, env(safe-area-inset-top)) + 3.7rem);
    left: 50%;
    min-height: 2rem;
    display: flex;
    align-items: center;
    gap: 0.48rem;
    padding: 0.34rem 0.72rem;
    border-radius: 999px;
    color: rgba(222, 237, 248, 0.8);
    background: rgba(2, 11, 24, 0.78);
    box-shadow: 0 0.75rem 2rem rgba(0, 0, 0, 0.2);
    backdrop-filter: blur(12px);
    font-size: 0.66rem;
    font-weight: 460;
    letter-spacing: 0.035em;
    pointer-events: none;
    opacity: 0;
    transform: translate(-50%, calc(-1.9rem + var(--biblioteca-pull-distance, 0px))) scale(0.96);
    transition: opacity 160ms ease, transform 180ms cubic-bezier(0.22, 0.72, 0.24, 1);
  }

  .documents-page.is-pulling-to-refresh .biblioteca-mobile-pull-refresh,
  .documents-page.is-refreshing-from-pull .biblioteca-mobile-pull-refresh {
    opacity: 1;
    transform: translate(-50%, min(1.15rem, calc(-1.9rem + var(--biblioteca-pull-distance, 0px)))) scale(1);
  }

  .biblioteca-mobile-pull-refresh-mark {
    width: 0.72rem;
    height: 0.72rem;
    flex: 0 0 0.72rem;
    border: 1px solid rgba(184, 211, 231, 0.3);
    border-top-color: rgba(220, 240, 253, 0.92);
    border-radius: 50%;
    transform: rotate(var(--biblioteca-pull-rotation, 0deg));
  }

  .documents-page.is-pull-refresh-ready .biblioteca-mobile-pull-refresh-mark {
    border-color: rgba(167, 215, 244, 0.64);
    border-top-color: rgba(239, 248, 255, 0.98);
  }

  .documents-page.is-refreshing-from-pull .biblioteca-mobile-pull-refresh-mark {
    animation: biblioteca-mobile-pull-refresh-spin 720ms linear infinite;
  }

  .biblioteca-photo-collections-shelf {
    padding-block: clamp(3rem, 11vw, 4.4rem) clamp(3.6rem, 13vw, 5.2rem);
    gap: clamp(3.8rem, 14vw, 5.4rem);
  }

  .biblioteca-photo-collection-head {
    display: none;
  }

  .biblioteca-photo-collection-author {
    display: flex;
    align-items: center;
    gap: 0.52rem;
    margin-bottom: 0.18rem;
    color: rgba(237, 245, 251, 0.88);
    font-size: 0.8rem;
    font-weight: 520;
  }

  .biblioteca-photo-collection-author img {
    width: 1.34rem;
    height: 1.34rem;
    flex: 0 0 1.34rem;
    border-radius: 50%;
    object-fit: cover;
  }

  .biblioteca-photo-collection-author-copy {
    min-width: 0;
    display: grid;
    gap: 0.08rem;
    line-height: 1.18;
  }

  .biblioteca-photo-collection-author-copy strong {
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
  }

  .biblioteca-photo-collection-author-copy small {
    color: rgba(197, 215, 229, 0.72);
    font-size: 0.63rem;
    font-weight: 450;
    letter-spacing: 0.025em;
  }

  .biblioteca-photo-mosaic-stage {
    width: 100vw;
    margin-inline: calc(50% - 50vw);
    overflow: hidden;
  }

  .biblioteca-photo-mosaic {
    position: relative;
    width: 100%;
    height: auto !important;
    aspect-ratio: 16 / 9 !important;
    display: block !important;
    overflow: hidden !important;
    padding: 0;
    border-radius: 0 !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
  }

  .biblioteca-photo-mosaic .biblioteca-photo-tile,
  .biblioteca-photo-mosaic .biblioteca-photo-mosaic-tile {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    border-radius: 0 !important;
    grid-column: auto !important;
    grid-row: auto !important;
    transition: transform 940ms cubic-bezier(0.22, 0.72, 0.24, 1);
    will-change: transform;
  }

  .biblioteca-photo-mosaic .biblioteca-photo-tile img,
  .biblioteca-photo-mosaic .biblioteca-photo-mosaic-tile img {
    border-radius: 0 !important;
  }

  .biblioteca-photo-tile.is-carousel-entering.is-next { z-index: 2; transform: translateX(100%); }
  .biblioteca-photo-tile.is-carousel-entering.is-previous { z-index: 2; transform: translateX(-100%); }
  .biblioteca-photo-mosaic-stage.is-carousel-transitioning .biblioteca-photo-tile.is-carousel-entering { transform: translateX(0); }
  .biblioteca-photo-mosaic-stage.is-carousel-transitioning .biblioteca-photo-tile.is-carousel-leaving.is-next { transform: translateX(-100%); }
  .biblioteca-photo-mosaic-stage.is-carousel-transitioning .biblioteca-photo-tile.is-carousel-leaving.is-previous { transform: translateX(100%); }

  .biblioteca-photo-mosaic-nav {
    top: 50%;
    right: max(0.35rem, env(safe-area-inset-right));
    bottom: auto;
    left: max(0.35rem, env(safe-area-inset-left));
  }

  .biblioteca-photo-mosaic .biblioteca-photo-caption {
    display: none;
  }

  .biblioteca-photo-collection-mobile-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 0.08rem;
  }

  .biblioteca-photo-collection-mobile-meta h3 {
    margin: 0;
    color: rgba(226, 238, 247, 0.82);
    font-size: 0.94rem;
    font-weight: 430;
    letter-spacing: 0;
    text-transform: none;
  }

  .biblioteca-photo-collection-mobile-meta .biblioteca-photo-open-all {
    min-width: 2rem;
    min-height: 2rem;
    display: grid;
    place-items: center end;
    padding: 0;
    font-size: 1.18rem;
  }
}

@keyframes biblioteca-mobile-pull-refresh-spin {
  to { transform: rotate(1turn); }
}

@media (max-width: 820px) and (prefers-reduced-motion: reduce) {
  .biblioteca-photo-mosaic .biblioteca-photo-tile,
  .biblioteca-photo-mosaic .biblioteca-photo-mosaic-tile {
    transition: none;
  }
}

/* Laboratorio móvil reversible 20260824: profundidad intermedia sin velos blancos. */
@media (max-width: 820px) {
  .app-shell.is-documents-immersive .documents-page.biblioteca-view-multivista {
    background:
      radial-gradient(ellipse 76% 38% at 51% 5%, rgba(47, 98, 143, 0.135), transparent 72%),
      radial-gradient(ellipse 42% 52% at 7% 64%, rgba(20, 52, 88, 0.07), transparent 78%),
      radial-gradient(ellipse 38% 46% at 95% 43%, rgba(37, 51, 88, 0.045), transparent 80%),
      linear-gradient(154deg, #00030a 0%, #010611 50%, #000208 100%);
  }

  .app-shell.is-documents-immersive .documents-page.biblioteca-view-multivista::before {
    background:
      radial-gradient(circle at 17% 23%, rgba(247, 251, 255, 0.94) 0 0.48px, rgba(202, 231, 255, 0.3) 0.68px, transparent 1.2px) 0 0 / 173px 211px repeat,
      radial-gradient(circle at 71% 61%, rgba(255, 255, 255, 0.88) 0 0.56px, rgba(219, 239, 255, 0.22) 0.78px, transparent 1.32px) 31px 47px / 257px 193px repeat,
      radial-gradient(circle at 36% 82%, rgba(218, 239, 255, 0.8) 0 0.44px, transparent 1.05px) 89px 19px / 311px 277px repeat,
      radial-gradient(circle at 86% 14%, rgba(255, 252, 242, 0.78) 0 0.5px, transparent 1.14px) 13px 107px / 389px 239px repeat,
      radial-gradient(circle at 48% 42%, rgba(232, 246, 255, 0.7) 0 0.4px, transparent 1px) 127px 73px / 149px 283px repeat;
    opacity: 0.67;
    filter: drop-shadow(0 0 0.08rem rgba(205, 234, 255, 0.12));
  }

  .app-shell.is-documents-immersive .documents-page.biblioteca-view-multivista::after {
    background:
      radial-gradient(circle at 19% 31%, #fff 0 0.8px, rgba(229, 244, 255, 0.62) 1.45px, rgba(153, 207, 248, 0.18) 2.5px, transparent 4.3px) 0 0 / 337px 293px repeat,
      radial-gradient(circle at 78% 18%, rgba(252, 254, 255, 0.98) 0 0.68px, rgba(213, 239, 255, 0.28) 1.5px, transparent 3.4px) 97px 53px / 419px 347px repeat,
      radial-gradient(circle at 43% 76%, rgba(255, 252, 242, 0.96) 0 0.72px, rgba(255, 239, 195, 0.28) 1.55px, transparent 3.5px) 41px 139px / 521px 401px repeat,
      radial-gradient(circle at 91% 67%, rgba(245, 251, 255, 0.98) 0 0.96px, rgba(188, 224, 252, 0.32) 1.9px, transparent 4.5px) 181px 11px / 607px 457px repeat,
      radial-gradient(circle at 12% 88%, rgba(255, 255, 255, 0.92) 0 0.56px, rgba(221, 240, 255, 0.2) 1.3px, transparent 2.9px) 73px 211px / 283px 509px repeat;
    opacity: 0.6;
    filter:
      drop-shadow(0 0 0.16rem rgba(225, 242, 255, 0.24))
      drop-shadow(0 0 0.4rem rgba(123, 187, 235, 0.1));
  }
}

/* Nueva Ficha: entrada ligera e instalable dentro del mismo Nucleo CC. */
.app-shell:is(.is-new-ficha-route, .is-my-fichas-route) .topbar-notification-button,
.app-shell:is(.is-new-ficha-route, .is-my-fichas-route) .topbar-message-button,
.app-shell:is(.is-new-ficha-route, .is-my-fichas-route) #notification-popover,
.app-shell:is(.is-new-ficha-route, .is-my-fichas-route) #message-popover {
  display: none !important;
}

.app-shell.is-new-ficha-route .topbar-my-fichas-button {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transition: color 180ms ease, opacity 180ms ease, transform 180ms ease;
}

.app-shell.is-new-ficha-route .topbar-my-fichas-button:hover,
.app-shell.is-new-ficha-route .topbar-my-fichas-button:focus-visible {
  color: #176b4b;
  border-color: transparent;
  background: transparent;
  box-shadow: none;
  transform: translateY(-1px) scale(1.045);
}

.app-shell.is-new-ficha-route .topbar-my-fichas-button:focus-visible,
.ficha-topbar-back:focus-visible {
  outline: 2px solid rgba(31, 122, 86, 0.42);
  outline-offset: 2px;
}

.app-shell:is(.is-new-ficha-route, .is-my-fichas-route, .is-ficha-detail-route) .main-content,
.app-shell:is(.is-new-ficha-route, .is-my-fichas-route, .is-ficha-detail-route) .view,
.app-shell:is(.is-new-ficha-route, .is-my-fichas-route, .is-ficha-detail-route) .ficha-leader-page,
.app-shell:is(.is-new-ficha-route, .is-my-fichas-route, .is-ficha-detail-route) .ficha-detail-page {
  min-width: 0;
  max-width: 100%;
  overflow-x: clip;
}

.app-shell:is(.is-new-ficha-route, .is-my-fichas-route, .is-ficha-detail-route) .view {
  scrollbar-width: none;
  -ms-overflow-style: none;
  overscroll-behavior-x: none;
}

.app-shell:is(.is-new-ficha-route, .is-my-fichas-route, .is-ficha-detail-route) .view::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.ficha-topbar-back {
  position: relative;
  width: 3.08rem;
  height: 3.08rem;
  min-width: 3.08rem;
  display: none;
  place-items: center;
  padding: 0;
  border: 0;
  color: rgba(23, 58, 94, 0.82);
  background: transparent;
  cursor: pointer;
  transition: color 160ms ease, opacity 160ms ease, transform 160ms ease;
}

.app-shell.is-my-fichas-route .ficha-topbar-back {
  display: inline-grid;
}

.ficha-topbar-back svg {
  width: 1.62rem;
  height: 1.62rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ficha-topbar-back:hover,
.ficha-topbar-back:focus-visible {
  color: #0b1b2e;
  background: transparent;
  transform: translateX(-0.08rem);
}

.ficha-topbar-back[data-tooltip]::after {
  content: attr(data-tooltip);
  position: absolute;
  z-index: 120;
  top: 50%;
  left: calc(100% + 0.42rem);
  transform: translate(-0.2rem, -50%);
  min-width: max-content;
  padding: 0.42rem 0.58rem;
  border: 1px solid rgba(23, 58, 94, 0.10);
  border-radius: 999px;
  color: #0b1b2e;
  background: rgba(255, 250, 242, 0.96);
  box-shadow: 0 14px 28px rgba(11, 27, 46, 0.11);
  font-size: 0.72rem;
  font-weight: 850;
  line-height: 1;
  opacity: 0;
  pointer-events: none;
  transition: opacity 160ms ease, transform 160ms ease;
}

.ficha-topbar-back[data-tooltip]:hover::after,
.ficha-topbar-back[data-tooltip]:focus-visible::after {
  opacity: 1;
  transform: translate(0, -50%);
}

@media (max-width: 760px) {
  .app-shell.is-new-ficha-route .main-content {
    padding-right: 0;
    padding-left: 0;
  }

  .app-shell.is-new-ficha-route .topbar {
    width: 100%;
    padding-right: max(0.8rem, env(safe-area-inset-right));
    padding-left: max(0.8rem, env(safe-area-inset-left));
  }

  .app-shell.is-new-ficha-route .view {
    width: 100%;
    place-items: start stretch;
    padding-right: 0;
    padding-left: 0;
  }

  .app-shell.is-new-ficha-route .ficha-leader-page,
  .app-shell.is-new-ficha-route .ficha-leader-layout.ficha-form-only,
  .app-shell.is-new-ficha-route .ficha-form {
    width: 100%;
    max-width: none;
  }

  .app-shell.is-new-ficha-route .ficha-form {
    padding-right: max(1rem, env(safe-area-inset-right));
    padding-left: max(1rem, env(safe-area-inset-left));
    border-right: 0;
    border-left: 0;
    border-radius: 1.65rem;
    box-shadow:
      0 22px 44px rgba(10, 31, 28, 0.15),
      inset 0 1px 0 rgba(255, 255, 255, 0.78);
  }

}

.app-shell.is-new-ficha-route #page-title {
  transform: translateY(3px);
}

.app-shell.is-my-fichas-route .topbar-my-fichas-button {
  display: none !important;
}

.my-ficha-mobile-summary {
  display: none;
}

.my-ficha-card-details {
  display: contents;
}

@media (max-width: 760px) {
  .app-shell.is-my-fichas-route .my-fichas-grid {
    gap: 0.72rem;
  }

  .app-shell.is-my-fichas-route .my-ficha-card {
    min-height: 0;
    align-content: normal;
    gap: 0;
    padding: 0.92rem 1rem;
    border-radius: 1.15rem;
    transition: border-color 200ms ease, box-shadow 200ms ease, background 200ms ease;
  }

  .my-ficha-mobile-summary {
    width: 100%;
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(4.8rem, 0.42fr) 1.35rem;
    gap: 0.8rem;
    align-items: center;
    padding: 0;
    border: 0;
    color: #0b1b2e;
    background: transparent;
    text-align: left;
    cursor: pointer;
  }

  .my-ficha-mobile-summary > strong {
    min-width: 0;
    overflow: hidden;
    font-size: 1rem;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .my-ficha-mobile-progress {
    display: block;
    margin: 0;
  }

  .my-ficha-mobile-progress i {
    width: 100%;
    height: 0.32rem;
    display: block;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(82, 97, 108, 0.13);
  }

  .my-ficha-mobile-progress b {
    height: 100%;
    display: block;
    border-radius: inherit;
    background: linear-gradient(90deg, #1f7a56, #1f6faf);
  }

  .my-ficha-mobile-chevron {
    width: 1.35rem;
    height: 1.35rem;
    display: grid;
    place-items: center;
    margin: 0;
    color: rgba(23, 58, 94, 0.48);
    transition: color 180ms ease, transform 220ms ease;
  }

  .my-ficha-mobile-chevron svg {
    width: 0.9rem;
    height: 0.9rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.55;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .my-ficha-mobile-summary:hover .my-ficha-mobile-chevron,
  .my-ficha-mobile-summary:focus-visible .my-ficha-mobile-chevron {
    color: rgba(23, 58, 94, 0.82);
  }

  .my-ficha-mobile-summary:focus-visible {
    outline: 2px solid rgba(31, 122, 86, 0.32);
    outline-offset: 0.45rem;
    border-radius: 0.45rem;
  }

  .my-ficha-card-details {
    display: none;
  }

  .my-ficha-card.is-expanded {
    padding-bottom: 1.15rem;
    border-color: rgba(35, 101, 72, 0.2);
    box-shadow: 0 18px 38px rgba(29, 58, 45, 0.1);
  }

  .my-ficha-card.is-expanded .my-ficha-card-details {
    min-height: 23rem;
    display: grid;
    align-content: space-between;
    gap: 1rem;
    padding-top: 1.15rem;
  }

  .my-ficha-card.is-expanded .my-ficha-mobile-chevron {
    transform: rotate(180deg);
  }
}
