/*
 * LumaCite Reference Manager — Novo
 * Route-scoped design layer. The library DOM, API, and application behavior are
 * intentionally shared with the production reference manager.
 */

html.library-novo {
  --novo-ink: #091d2d;
  --novo-ink-soft: #173247;
  --novo-muted: #5d7282;
  --novo-blue: #1468e8;
  --novo-blue-strong: #0758cf;
  --novo-blue-soft: #eaf3ff;
  --novo-blue-pale: #f5f9ff;
  --novo-green: #177a5b;
  --novo-green-soft: #e9f7f1;
  --novo-line: #b4c6d3;
  --novo-line-soft: #dbe6ed;
  --novo-paper: #ffffff;
  --novo-canvas: #f7fafe;
  --novo-danger: #c63d4d;
  --novo-focus: 0 0 0 3px rgba(20, 104, 232, .18);
  color: var(--novo-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: var(--novo-canvas);
}

html.library-novo *,
html.library-novo *::before,
html.library-novo *::after {
  box-sizing: border-box;
}

html.library-novo body {
  color: var(--novo-ink);
  background:
    radial-gradient(ellipse at 12% 8%, rgba(20, 104, 232, .11), transparent 34rem),
    radial-gradient(ellipse at 88% 94%, rgba(71, 189, 151, .08), transparent 32rem),
    linear-gradient(rgba(20, 104, 232, .055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20, 104, 232, .055) 1px, transparent 1px),
    var(--novo-canvas);
  background-size: auto, auto, 44px 44px, 44px 44px, auto;
}

html.library-novo body::before {
  display: none;
}

html.library-novo button,
html.library-novo input,
html.library-novo select,
html.library-novo textarea {
  font: inherit;
}

html.library-novo button,
html.library-novo a,
html.library-novo input,
html.library-novo select,
html.library-novo textarea {
  -webkit-tap-highlight-color: transparent;
}

html.library-novo :focus-visible {
  outline: 2px solid var(--novo-blue);
  outline-offset: 2px;
}

/* Logged-out page: the editorial, evidence-first Novo language. */

html.library-novo body.auth-screen-open > .site-header.site-header--unified[data-auth-site-chrome] {
  min-height: 74px;
  padding: 12px clamp(20px, 4vw, 64px);
  color: var(--novo-ink);
  background: rgba(255, 255, 255, .9);
  border-bottom: 1px solid var(--novo-line-soft);
  backdrop-filter: blur(16px);
}

html.library-novo body.auth-screen-open .site-header .brand,
html.library-novo body.auth-screen-open .site-header a {
  color: var(--novo-ink);
}

html.library-novo body.auth-screen-open .site-header .home-code-brand-mark {
  color: var(--novo-blue);
  background: transparent;
}

html.library-novo body.auth-screen-open .site-header .header-tool-link {
  color: #fff;
  background: var(--novo-ink);
  border: 1px solid var(--novo-ink);
  border-radius: 9px;
  box-shadow: none;
}

html.library-novo body.auth-screen-open .site-header .header-tool-link:hover {
  background: var(--novo-blue);
  border-color: var(--novo-blue);
}

html.library-novo body.auth-screen-open .app-shell {
  width: min(1440px, calc(100% - 40px));
  max-width: none;
  min-height: auto;
  margin: 0 auto;
  padding: clamp(56px, 7vw, 104px) 0 clamp(72px, 9vw, 132px);
}

html.library-novo body.auth-screen-open .auth-page {
  display: grid;
  grid-template-columns: minmax(0, 1.16fr) minmax(390px, .84fr);
  width: 100%;
  min-height: 670px;
  overflow: hidden;
  background: rgba(255, 255, 255, .94);
  border: 1px solid var(--novo-line);
  border-radius: 14px;
  box-shadow: 0 28px 80px rgba(9, 29, 45, .10);
}

html.library-novo body.auth-screen-open .auth-art,
html.library-novo body.auth-screen-open .auth-card {
  min-width: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

html.library-novo body.auth-screen-open .auth-art {
  position: relative;
  padding: clamp(48px, 5vw, 80px);
  background:
    radial-gradient(circle at 88% 30%, transparent 0 138px, rgba(20, 104, 232, .12) 139px 188px, transparent 189px),
    linear-gradient(145deg, #edf5ff 0%, #f8fbff 54%, #edf9f5 100%);
  border-right: 1px solid var(--novo-line-soft);
}

html.library-novo body.auth-screen-open .auth-art::after {
  content: "SOURCE-LINKED  /  CLOUD-SYNCED  /  READY TO CITE";
  position: absolute;
  right: clamp(32px, 4vw, 64px);
  bottom: 38px;
  left: clamp(32px, 4vw, 64px);
  color: var(--novo-muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
}

html.library-novo body.auth-screen-open .glass-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

html.library-novo body.auth-screen-open .auth-brandline,
html.library-novo body.auth-screen-open .auth-logo-lockup {
  color: var(--novo-ink);
}

html.library-novo body.auth-screen-open .auth-brandline .brand-mark,
html.library-novo body.auth-screen-open .auth-logo-lockup .brand-mark {
  filter: hue-rotate(184deg) saturate(1.1);
}

html.library-novo body.auth-screen-open .auth-brand-copy strong,
html.library-novo body.auth-screen-open .auth-logo-lockup strong {
  color: var(--novo-ink);
  letter-spacing: -.035em;
}

html.library-novo body.auth-screen-open .auth-brand-copy small,
html.library-novo body.auth-screen-open .auth-logo-lockup small {
  color: var(--novo-muted);
}

html.library-novo body.auth-screen-open .auth-intro {
  max-width: 680px;
  margin: clamp(74px, 9vh, 112px) 0 0;
}

html.library-novo body.auth-screen-open .eyebrow {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 7px 12px;
  color: var(--novo-blue-strong);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .12em;
  text-transform: uppercase;
  background: rgba(255, 255, 255, .78);
  border: 1px solid #9bc3fb;
  border-radius: 999px;
}

html.library-novo body.auth-screen-open .glass-card h1 {
  max-width: 650px;
  margin: 24px 0 22px;
  color: var(--novo-ink);
  font-size: clamp(48px, 5.35vw, 80px);
  font-weight: 550;
  line-height: .98;
  letter-spacing: -.06em;
}

html.library-novo body.auth-screen-open .glass-card p {
  max-width: 620px;
  margin: 0;
  color: var(--novo-muted);
  font-size: clamp(17px, 1.4vw, 21px);
  line-height: 1.6;
}

html.library-novo body.auth-screen-open .auth-proof-grid {
  display: grid;
  grid-template-columns: repeat(3, max-content);
  gap: 10px;
  margin-top: auto;
  padding-bottom: 58px;
}

html.library-novo body.auth-screen-open .auth-proof-grid span {
  min-height: 42px;
  padding: 8px 14px 8px 9px;
  color: var(--novo-ink-soft);
  font-size: 13px;
  font-weight: 650;
  background: rgba(255, 255, 255, .76);
  border: 1px solid var(--novo-line-soft);
  border-radius: 8px;
}

html.library-novo body.auth-screen-open .auth-proof-grid b {
  display: inline-grid;
  place-items: center;
  width: 25px;
  height: 25px;
  margin-right: 7px;
  color: var(--novo-blue);
  background: var(--novo-blue-soft);
  border-radius: 6px;
}

html.library-novo body.auth-screen-open .auth-card {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: clamp(48px, 5vw, 82px);
  color: var(--novo-ink);
  background: #fff;
}

html.library-novo body.auth-screen-open .auth-card-head {
  margin-bottom: clamp(30px, 4vh, 46px);
}

html.library-novo body.auth-screen-open .auth-logo-lockup {
  display: none;
}

html.library-novo body.auth-screen-open .auth-access-pill {
  margin-left: auto;
  padding: 7px 12px;
  color: var(--novo-green);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
  background: var(--novo-green-soft);
  border: 1px solid #a9dac8;
  border-radius: 999px;
}

html.library-novo body.auth-screen-open .auth-heading {
  margin-bottom: 28px;
}

html.library-novo body.auth-screen-open .auth-card h2 {
  margin: 0 0 10px;
  color: var(--novo-ink);
  font-size: clamp(36px, 3.7vw, 58px);
  font-weight: 550;
  line-height: 1;
  letter-spacing: -.055em;
}

html.library-novo body.auth-screen-open .auth-card .muted {
  color: var(--novo-muted);
  font-size: 16px;
}

html.library-novo body.auth-screen-open .auth-card label {
  gap: 8px;
  margin-bottom: 18px;
  color: var(--novo-ink-soft);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .03em;
}

html.library-novo body.auth-screen-open .auth-card input {
  min-height: 54px;
  padding: 0 16px;
  color: var(--novo-ink);
  background: #fff;
  border: 1px solid var(--novo-line);
  border-radius: 8px;
  box-shadow: none;
}

html.library-novo body.auth-screen-open .auth-card input::placeholder {
  color: #8ca0ae;
}

html.library-novo body.auth-screen-open .auth-card input:focus {
  border-color: var(--novo-blue);
  box-shadow: var(--novo-focus);
}

html.library-novo body.auth-screen-open .auth-card .primary-button {
  min-height: 54px;
  margin-top: 4px;
  color: #fff;
  font-weight: 700;
  background: var(--novo-blue);
  border: 1px solid var(--novo-blue);
  border-radius: 8px;
  box-shadow: none;
}

html.library-novo body.auth-screen-open .auth-card .primary-button:hover {
  background: var(--novo-blue-strong);
  border-color: var(--novo-blue-strong);
  transform: translateY(-1px);
}

html.library-novo body.auth-screen-open .auth-note {
  min-height: 22px;
  color: var(--novo-danger);
}

html.library-novo body.auth-screen-open .auth-beta-prompt {
  gap: 18px;
  margin-top: 26px;
  padding: 18px;
  background: var(--novo-blue-pale);
  border: 1px solid var(--novo-line-soft);
  border-radius: 9px;
}

html.library-novo body.auth-screen-open .auth-beta-copy strong {
  color: var(--novo-ink);
}

html.library-novo body.auth-screen-open .auth-beta-copy span {
  color: var(--novo-muted);
}

html.library-novo body.auth-screen-open .auth-beta-link {
  min-height: 42px;
  color: var(--novo-blue-strong);
  background: #fff;
  border: 1px solid #9bc3fb;
  border-radius: 8px;
}

html.library-novo body.auth-screen-open .auth-beta-link:hover {
  color: #fff;
  background: var(--novo-blue);
  border-color: var(--novo-blue);
}

html.library-novo body.auth-screen-open > .site-footer.site-footer--unified[data-auth-site-chrome] {
  color: var(--novo-ink);
  background: #fff;
  border-top: 1px solid var(--novo-line-soft);
}

html.library-novo body.auth-screen-open .site-footer a,
html.library-novo body.auth-screen-open .site-footer p,
html.library-novo body.auth-screen-open .site-footer .footer-heading {
  color: var(--novo-ink-soft);
}

html.library-novo body.auth-screen-open .site-footer .footer-button {
  color: #fff;
  background: var(--novo-ink);
}

/* Authenticated shell: representative Novo foundation; detail states follow. */

html.library-novo body:not(.auth-screen-open) {
  min-width: 0;
  color: var(--novo-ink);
  background:
    radial-gradient(ellipse at 88% 100%, rgba(20, 104, 232, .11), transparent 34rem),
    linear-gradient(rgba(20, 104, 232, .05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20, 104, 232, .05) 1px, transparent 1px),
    var(--novo-canvas);
  background-size: auto, 44px 44px, 44px 44px, auto;
}

html.library-novo body:not(.auth-screen-open) .app-shell {
  width: 100%;
  min-height: 100dvh;
  padding: 14px;
}

html.library-novo .library-app {
  grid-template-columns: 276px minmax(0, 1fr);
  gap: 14px;
  width: 100%;
  height: calc(100dvh - 28px);
  min-height: 620px;
  padding: 0;
}

html.library-novo .sidebar,
html.library-novo .main-panel {
  color: var(--novo-ink);
  background: rgba(255, 255, 255, .96);
  border: 1px solid var(--novo-line);
  border-radius: 14px;
  box-shadow: 0 18px 48px rgba(9, 29, 45, .07);
}

html.library-novo .sidebar {
  padding: 12px;
}

html.library-novo .main-panel {
  overflow: hidden;
}

html.library-novo .command-bar {
  position: relative;
  z-index: 40;
  min-height: 70px;
  padding: 10px 12px;
  overflow: visible;
  background: rgba(255, 255, 255, .92);
  border-bottom: 1px solid var(--novo-line-soft);
  backdrop-filter: blur(14px);
}

html.library-novo .topbar-add,
html.library-novo .primary-button {
  color: #fff;
  background: var(--novo-blue);
  border-color: var(--novo-blue);
  border-radius: 8px;
  box-shadow: none;
}

html.library-novo .top-search,
html.library-novo .top-search > input,
html.library-novo .command-bar .toolbar button,
html.library-novo .command-bar .search-box button,
html.library-novo .command-bar .folder-picker-button {
  color: var(--novo-ink);
  background: #fff;
  border-color: var(--novo-line);
  border-radius: 8px;
  box-shadow: none;
}

html.library-novo .command-bar button:hover:not(:disabled) {
  color: var(--novo-blue-strong);
  background: var(--novo-blue-soft);
  border-color: #91bdf8;
}

html.library-novo .command-bar button:disabled {
  color: #93a5b2;
  background: #f3f6f8;
  border-color: var(--novo-line-soft);
  opacity: 1;
}

html.library-novo .list-header {
  min-height: 82px;
  padding: 16px 20px;
  color: var(--novo-ink);
  background: #f8fbff;
  border-bottom: 1px solid var(--novo-line-soft);
}

html.library-novo .list-header h1 {
  color: var(--novo-ink);
  font-size: 27px;
  font-weight: 650;
  letter-spacing: -.045em;
}

html.library-novo .content-grid {
  padding: 0 14px 14px;
  background: #fff;
}

html.library-novo .reference-list {
  background: #fff;
  border: 1px solid var(--novo-line-soft);
  border-radius: 10px;
}

@media (max-width: 1024px) {
  html.library-novo body.auth-screen-open .auth-page {
    grid-template-columns: minmax(0, 1fr) minmax(360px, .9fr);
  }

  html.library-novo body.auth-screen-open .auth-art,
  html.library-novo body.auth-screen-open .auth-card {
    padding: 44px;
  }
}

@media (max-width: 760px) {
  html.library-novo body.auth-screen-open > .site-header.site-header--unified[data-auth-site-chrome] {
    min-height: 64px;
    padding: 10px 16px;
  }

  html.library-novo body.auth-screen-open .site-header .main-nav {
    display: none;
  }

  html.library-novo body.auth-screen-open .site-header .header-tool-link {
    min-height: 40px;
    padding: 9px 12px;
    font-size: 12px;
  }

  html.library-novo body.auth-screen-open .app-shell {
    width: min(100% - 24px, 560px);
    padding: 30px 0 54px;
  }

  html.library-novo body.auth-screen-open .auth-page {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: visible;
  }

  html.library-novo body.auth-screen-open .auth-card {
    order: -1;
    padding: 30px 22px;
    border-radius: 13px 13px 0 0;
  }

  html.library-novo body.auth-screen-open .auth-card-head {
    margin-bottom: 28px;
  }

  html.library-novo body.auth-screen-open .auth-card h2 {
    font-size: clamp(36px, 12vw, 48px);
  }

  html.library-novo body.auth-screen-open .auth-beta-prompt {
    align-items: stretch;
  }

  html.library-novo body.auth-screen-open .auth-beta-link {
    justify-content: center;
  }

  html.library-novo body.auth-screen-open .auth-art {
    min-height: 430px;
    padding: 34px 22px 62px;
    border-top: 1px solid var(--novo-line-soft);
    border-right: 0;
    border-radius: 0 0 13px 13px;
  }

  html.library-novo body.auth-screen-open .auth-intro {
    margin-top: 56px;
  }

  html.library-novo body.auth-screen-open .glass-card h1 {
    font-size: clamp(44px, 14vw, 62px);
  }

  html.library-novo body.auth-screen-open .auth-proof-grid {
    grid-template-columns: 1fr;
    padding: 44px 0 0;
  }

  html.library-novo body.auth-screen-open .auth-art::after {
    display: none;
  }

  html.library-novo .library-app {
    grid-template-columns: minmax(0, 1fr);
    height: calc(100dvh - 20px);
  }

  html.library-novo body:not(.auth-screen-open) .app-shell {
    padding: 10px;
  }
}

/* Left library rail precision repair: identity, navigation, taxonomy, and drawer only. */

@media (min-width: 901px) {
  html.library-novo .library-app {
    grid-template-columns: clamp(264px, 20vw, 288px) minmax(0, 1fr);
  }
}

html.library-novo .sidebar {
  gap: 10px;
  padding: 10px;
  background: rgba(255, 255, 255, .98);
  border: 1.5px solid var(--novo-line-strong);
  border-top: 3px solid var(--novo-green);
  border-radius: 14px;
  box-shadow: 0 10px 28px rgba(9, 29, 45, .065);
}

html.library-novo .sidebar-fixed-top {
  gap: 10px;
}

html.library-novo .brand-row {
  grid-template-columns: 38px minmax(0, 1fr) 36px;
  align-items: center;
  gap: 9px;
  min-height: 88px;
  padding: 11px 10px 11px 12px;
  background: linear-gradient(142deg, #f1f6fe 0%, #f9fcff 60%, #eef8f4 100%);
  border: 1.5px solid var(--novo-line-strong);
  border-radius: 11px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9);
}

html.library-novo .brand-row > .novo-live-workspace-mark {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  color: var(--novo-blue);
}

html.library-novo .brand-row > .novo-live-workspace-mark .novo-wordmark-symbol {
  width: 38px;
  height: 38px;
}

html.library-novo .brand-copy {
  gap: 2px;
  overflow: visible;
}

html.library-novo .brand-title-line strong {
  font-size: 16.5px;
  line-height: 1.08;
  letter-spacing: -.025em;
}

html.library-novo .brand-email {
  width: 100%;
  max-width: none;
  margin-top: 1px;
  color: var(--novo-ink-soft);
  font-size: 11.5px;
  line-height: 1.35;
}

html.library-novo .brand-sync {
  max-width: 100%;
  min-height: 19px;
  margin-top: 3px;
  padding: 3px 7px;
  font-size: 9.5px;
  line-height: 1.1;
}

html.library-novo .account-menu-toggle {
  align-self: center;
  width: 36px;
  height: 36px;
  padding: 0;
  overflow: hidden;
  color: var(--novo-muted);
  font-size: 0;
  background: rgba(255, 255, 255, .9);
  border: 1px solid var(--novo-line);
  border-radius: 9px;
}

html.library-novo .account-menu-toggle::before {
  width: 16px;
  height: 16px;
  transition: transform 140ms ease;
}

html.library-novo .account-menu-toggle::after {
  content: none !important;
}

html.library-novo .account-menu-toggle[aria-expanded="true"]::before {
  transform: translate(-50%, -50%) rotate(180deg);
}

html.library-novo .account-menu {
  top: calc(100% + 7px);
  right: 0;
  min-width: 176px;
  padding: 5px;
  border: 1.5px solid var(--novo-line-strong);
  border-radius: 10px;
  box-shadow: 0 16px 42px rgba(9, 29, 45, .16);
}

html.library-novo .account-menu button {
  min-height: 40px;
  padding: 9px 11px;
  border-radius: 7px;
  font-size: 12px;
}

html.library-novo .sidebar-fixed-top > .nav-section {
  gap: 4px;
  padding-inline: 1px;
}

html.library-novo .nav-section > p {
  padding: 0 8px 3px;
  color: var(--novo-muted);
  font-size: 10px;
  font-weight: 720;
  letter-spacing: .11em;
}

html.library-novo .nav-item {
  min-height: 42px;
  padding: 8px 10px;
  font-size: 13px;
  border-radius: 9px;
}

html.library-novo .nav-item.active {
  background: linear-gradient(90deg, #e6f1ff 0%, #eef6ff 100%);
  border: 1.5px solid #9bc3fb;
  box-shadow: inset 3px 0 0 var(--novo-blue);
}

html.library-novo .nav-item-main {
  gap: 9px;
}

html.library-novo .nav-item .sidebar-icon {
  width: 20px;
  height: 20px;
  flex-basis: 20px;
}

html.library-novo .sidebar-scroll-region {
  min-height: 0;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-content: initial;
  gap: 2px;
  padding: 2px 1px 4px 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: #a6bac9 transparent;
  scrollbar-width: thin;
}

html.library-novo .sidebar-scroll-region::-webkit-scrollbar {
  display: block;
  width: 6px;
}

html.library-novo .sidebar-scroll-region::-webkit-scrollbar-track {
  display: block;
  background: transparent;
}

html.library-novo .sidebar-scroll-region::-webkit-scrollbar-thumb {
  display: block;
  background: #a6bac9;
  border: 2px solid #fff;
  border-radius: 999px;
}

html.library-novo .sidebar-scroll-region > .collapsible-section,
html.library-novo .sidebar-scroll-region > .collapsible-section:not(.collapsed) {
  min-height: 0;
  flex: 0 0 auto;
  overflow: visible;
}

html.library-novo .sidebar-scroll-region > .collapsible-section > .section-body {
  min-height: 0;
  flex: 0 0 auto;
  overflow: visible;
  scrollbar-gutter: auto;
}

html.library-novo .sidebar-scroll-region > .nav-section {
  padding-top: 6px;
  border-top: 1px solid var(--novo-line-soft);
}

html.library-novo .section-heading {
  min-height: 40px;
  gap: 6px;
}

html.library-novo .section-toggle {
  min-height: 36px !important;
  gap: 8px;
  padding: 0 6px !important;
  border-radius: 8px !important;
}

html.library-novo .section-toggle:hover {
  color: var(--novo-ink-soft) !important;
  background: var(--novo-blue-pale) !important;
}

html.library-novo .section-toggle span:last-child {
  font-size: 10px;
  font-weight: 720;
  letter-spacing: .09em;
}

html.library-novo .section-heading-actions,
html.library-novo .section-heading-actions button {
  width: 34px;
  min-width: 34px;
  height: 34px;
}

html.library-novo .section-heading-actions button {
  position: relative;
  padding: 0;
  overflow: hidden;
  color: var(--novo-blue);
  font-size: 0;
  background: #fff;
  border: 1px solid var(--novo-line);
  border-radius: 9px;
}

html.library-novo .section-heading-actions button::before,
html.library-novo .section-heading-actions button::after {
  width: 12px;
  height: 2px;
  background: currentColor;
}

html.library-novo .folder-tree,
html.library-novo .chip-list {
  gap: 2px;
  overflow: visible;
}

html.library-novo .folder-drop-zone {
  height: 5px;
}

html.library-novo .folder-row,
html.library-novo .shared-link-chip {
  min-height: 40px;
  gap: 6px;
  padding: 4px 8px;
  font-size: 12.5px;
  border-radius: 8px;
}

html.library-novo .folder-row {
  grid-template-columns: 14px minmax(0, 1fr) 24px 28px;
}

html.library-novo .folder-body {
  min-width: 0;
  padding-block: 4px;
}

html.library-novo .folder-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

html.library-novo .folder-menu-toggle {
  position: relative;
  width: 28px;
  height: 28px;
  padding: 0;
  overflow: hidden;
  font-size: 0;
}

html.library-novo .folder-menu-toggle::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 4px;
  background: radial-gradient(circle, currentColor 1.25px, transparent 1.4px) 0 50% / 5.5px 4px repeat-x;
  transform: translate(-50%, -50%);
}

html.library-novo .folder-count {
  min-width: 24px;
  font-size: 11px;
  text-align: right;
}

html.library-novo .section-body > .muted {
  padding: 5px 8px 9px 28px;
  font-size: 11px;
}

html.library-novo .signout {
  min-height: 42px;
  gap: 8px;
  padding: 9px 12px;
  color: var(--novo-danger);
  font-size: 12.5px;
  font-weight: 650;
  background: #fff;
  border: 1.5px solid #e7b7be;
  border-radius: 9px;
}

html.library-novo .signout:hover {
  color: var(--novo-danger);
  background: #fff3f5;
  border-color: #dc93a0;
}

@media (max-width: 900px) {
  html.library-novo .sidebar {
    width: min(340px, 92vw);
    padding: 10px;
    border-top: 3px solid var(--novo-green);
    border-right: 1.5px solid var(--novo-line-strong);
    border-radius: 0 14px 14px 0;
  }

  html.library-novo .mobile-sidebar-header {
    min-height: 44px;
    padding: 0 2px 8px;
  }
}

/* Login feedback integrity repair. Dynamic status text must add space to the
   card instead of being compressed into the fixed visual rhythm. */

html.library-novo body.auth-screen-open .auth-card {
  min-height: max-content;
}

html.library-novo body.auth-screen-open .auth-note:not(:empty) {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: auto !important;
  min-height: 36px !important;
  margin: 2px 0 4px;
  padding: 8px 12px;
  overflow: visible;
  font-size: 11px;
  line-height: 1.4;
  text-align: center;
  overflow-wrap: anywhere;
}

/* Phone and tablet login geometry repair.
 * The shared app stylesheet caps the auth surface to the viewport. Once Novo
 * stacks its panels, that cap makes the centered form overflow above and below
 * its card. Let the stacked surface follow its content instead. */
@media (max-width: 860px) {
  html.library-novo body.auth-screen-open .auth-page {
    height: auto !important;
    min-height: 0 !important;
  }

  html.library-novo body.auth-screen-open .auth-card {
    flex: 0 0 auto;
    height: auto !important;
    min-height: 0 !important;
    justify-content: flex-start !important;
    overflow: hidden;
  }

  html.library-novo body.auth-screen-open .auth-art {
    flex: 0 0 auto;
  }
}

@media (max-width: 760px) {
  html.library-novo body.auth-screen-open .auth-page {
    display: block !important;
  }

  html.library-novo body.auth-screen-open .auth-art {
    display: none !important;
  }
}

/* Novo sidebar and Settings refinement: compact information density, one
   selection language, explicit deleted taxonomy, and one contained scroller. */

html.library-novo .brand-row::before {
  content: "" !important;
  display: block !important;
  position: absolute;
  inset: -3px 16px auto;
  height: 3px;
  background: linear-gradient(90deg, var(--novo-blue) 0%, #399ed0 54%, var(--novo-green) 100%);
  border-radius: 0 0 999px 999px;
}

html.library-novo .nav-item[data-view="all"]:hover,
html.library-novo .nav-item[data-view="starred"]:hover,
html.library-novo .nav-item[data-view="trash"]:hover {
  color: var(--novo-ink) !important;
  background: #f5f9ff !important;
  border-color: #cfe0f5 !important;
}

html.library-novo .nav-item[data-view="all"].active,
html.library-novo .nav-item[data-view="starred"].active,
html.library-novo .nav-item[data-view="trash"].active {
  color: var(--novo-blue-strong) !important;
  background: linear-gradient(90deg, #e6f1ff 0%, #f0f7ff 100%) !important;
  border: 1.5px solid #91bdf8 !important;
  box-shadow: inset 3px 0 0 var(--novo-blue) !important;
}

html.library-novo .nav-item[data-view="starred"] .star-icon {
  color: #bb7600;
}

html.library-novo .nav-item[data-view="trash"] .trash-icon {
  color: #c83c4f;
}

html.library-novo .nav-item[data-view="starred"].active > span:last-child {
  color: #a96800 !important;
}

html.library-novo .nav-item[data-view="trash"].active > span:last-child {
  color: #bd3347 !important;
}

html.library-novo .sidebar-scroll-region {
  gap: 0;
  padding: 2px 8px 4px 0;
  scrollbar-color: #9bb1c0 transparent;
  scrollbar-width: thin;
}

html.library-novo .sidebar-scroll-region::-webkit-scrollbar {
  width: 6px;
  height: 0;
  -webkit-appearance: none;
}

html.library-novo .sidebar-scroll-region::-webkit-scrollbar-button {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  background: transparent !important;
}

html.library-novo .sidebar-scroll-region::-webkit-scrollbar-track {
  background: transparent;
}

html.library-novo .sidebar-scroll-region::-webkit-scrollbar-thumb {
  min-height: 48px;
  background: #9bb1c0;
  border: 1.5px solid #fff;
  border-radius: 999px;
}

html.library-novo .sidebar-scroll-region > .collapsible-section,
html.library-novo .trash-taxonomy-section {
  border-top: 1px solid var(--novo-line-soft);
}

html.library-novo .sidebar-scroll-region > .collapsible-section > .section-heading,
html.library-novo .trash-taxonomy-section > .section-heading {
  position: sticky;
  top: 0;
  z-index: 4;
  min-height: 42px;
  padding-block: 2px;
  background: rgba(255, 255, 255, .97);
  backdrop-filter: blur(8px);
}

html.library-novo .section-toggle {
  min-height: 36px !important;
  color: var(--novo-muted) !important;
}

html.library-novo .section-toggle:hover {
  color: var(--novo-blue-strong) !important;
  background: #f3f8ff !important;
}

html.library-novo .section-heading-actions,
html.library-novo .section-heading-actions button {
  width: 32px;
  min-width: 32px;
  height: 32px;
}

html.library-novo .section-heading-actions button {
  border-color: #bfd3e7;
  box-shadow: 0 1px 2px rgba(9, 29, 45, .04);
}

html.library-novo .folder-tree,
html.library-novo .chip-list {
  gap: 0;
}

html.library-novo .folder-drop-zone {
  height: 2px;
  min-height: 2px;
  transition: height 120ms ease, background 120ms ease;
}

html.library-novo .sidebar-scroll-region:has(.folder-node.dragging) .folder-drop-zone {
  height: 8px;
}

html.library-novo .folder-row,
html.library-novo .shared-link-chip {
  min-height: 40px;
  padding: 3px 7px;
  border: 1px solid transparent;
  border-radius: 8px;
}

html.library-novo .folder-body {
  gap: 8px;
  padding-block: 5px;
}

html.library-novo .folder-name {
  max-width: none;
  font-weight: 610;
}

html.library-novo .folder-row:hover {
  color: var(--novo-ink-soft);
  background: #f5f9ff;
  border-color: #d5e4f5;
}

html.library-novo .folder-row.active {
  color: var(--novo-blue-strong);
  background: #eaf3ff;
  border-color: #a9cbf8;
  box-shadow: inset 3px 0 0 var(--novo-blue);
}

html.library-novo .folder-row.active .folder-menu-toggle,
html.library-novo .folder-row:hover .folder-menu-toggle,
html.library-novo .folder-row:focus-within .folder-menu-toggle {
  opacity: 1;
}

html.library-novo .sidebar-scroll-region .sidebar-icon.folder-icon {
  color: #52728a;
}

html.library-novo .sidebar-scroll-region .folder-row.active .sidebar-icon.folder-icon {
  color: var(--novo-blue);
}

html.library-novo .sidebar-scroll-region .sidebar-icon.folder-icon::before {
  inset: 0;
  width: auto;
  height: auto;
  background: currentColor;
  background-image: none;
  -webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 7.4h6.2l2 2H21v9.1a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7.4Z'/%3E%3Cpath d='M3 7.4V5.5a2 2 0 0 1 2-2h4.1l2 2H19a2 2 0 0 1 2 2v1.9'/%3E%3C/svg%3E") center / 19px 19px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 7.4h6.2l2 2H21v9.1a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7.4Z'/%3E%3Cpath d='M3 7.4V5.5a2 2 0 0 1 2-2h4.1l2 2H19a2 2 0 0 1 2 2v1.9'/%3E%3C/svg%3E") center / 19px 19px no-repeat;
}

html.library-novo .trash-sidebar-taxonomy {
  display: grid;
  gap: 0;
  width: 100%;
  margin: 0;
  padding: 7px 0 8px;
  border-top: 1px solid var(--novo-line-soft);
}

html.library-novo .trash-sidebar-taxonomy:empty {
  display: none;
}

html.library-novo .trash-taxonomy {
  display: grid;
  gap: 0;
}

html.library-novo .trash-taxonomy-label {
  margin: 0;
  padding: 2px 8px 5px;
  color: #a74250;
  font-size: 9.5px;
  font-weight: 740;
  letter-spacing: .105em;
  text-transform: uppercase;
}

html.library-novo .trash-taxonomy-section .section-toggle span:last-child {
  font-size: 9.5px;
  letter-spacing: .075em;
}

html.library-novo .trash-taxonomy-section .folder-row {
  min-height: 38px;
}

html.library-novo .trash-taxonomy-count {
  min-width: 28px;
  padding-right: 7px;
  color: var(--novo-muted);
  font-size: 10.5px;
}

html.library-novo dialog[data-dialog="settings"],
html.library-novo dialog[data-dialog="settings"][open] {
  inset: 0 !important;
  width: min(900px, calc(100vw - 32px)) !important;
  height: auto !important;
  max-width: calc(100vw - 32px) !important;
  max-height: calc(var(--library-visual-height, 100dvh) - 32px) !important;
  margin: auto !important;
  padding: 0 !important;
  overflow: hidden !important;
}

html.library-novo dialog[data-dialog="settings"] .settings-card {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto !important;
  gap: 0 !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: calc(var(--library-visual-height, 100dvh) - 32px) !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1.5px solid var(--novo-line-strong);
  border-top: 3px solid var(--novo-blue);
  border-radius: 14px;
}

html.library-novo dialog[data-dialog="settings"] .settings-card > header {
  min-height: 62px;
  padding: 12px 18px;
  background: linear-gradient(90deg, #f4f8fe 0%, #f8fbff 72%, #f1faf6 100%);
}

html.library-novo dialog[data-dialog="settings"] .settings-card > header h2 {
  font-size: 20px;
  font-weight: 690;
  letter-spacing: -.02em;
}

html.library-novo dialog[data-dialog="settings"] .settings-card > header > button {
  position: relative;
  width: 38px;
  min-width: 38px;
  height: 38px;
  min-height: 38px;
  padding: 0;
  overflow: hidden;
  color: var(--novo-muted);
  font-size: 0;
  background: #fff;
  border: 1px solid var(--novo-line);
  border-radius: 9px;
}

html.library-novo dialog[data-dialog="settings"] .settings-card > header > button::before,
html.library-novo dialog[data-dialog="settings"] .settings-card > header > button::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 15px;
  height: 1.75px;
  background: currentColor;
  border-radius: 999px;
}

html.library-novo dialog[data-dialog="settings"] .settings-card > header > button::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

html.library-novo dialog[data-dialog="settings"] .settings-card > header > button::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

html.library-novo dialog[data-dialog="settings"] .settings-section {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 12px;
  min-height: 0;
  padding: 16px 18px;
  overflow: hidden;
  background: #f6f9fd;
  border: 0;
  border-radius: 0;
}

html.library-novo dialog[data-dialog="settings"] .settings-section > div:first-child {
  display: grid;
  gap: 4px;
  padding: 0 2px;
}

html.library-novo dialog[data-dialog="settings"] .settings-section h3 {
  margin: 0;
  color: var(--novo-ink);
  font-size: 15px;
  font-weight: 680;
}

html.library-novo dialog[data-dialog="settings"] .settings-section .muted {
  max-width: 68ch;
  margin: 0;
  color: var(--novo-muted);
  font-size: 11.5px;
  line-height: 1.45;
}

html.library-novo dialog[data-dialog="settings"] .integration-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: start;
  gap: 7px 10px;
  min-height: 0;
  height: 100%;
  max-height: none;
  padding: 2px 8px 2px 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: #9bb1c0 transparent;
  scrollbar-width: thin;
}

html.library-novo dialog[data-dialog="settings"] .integration-list::-webkit-scrollbar {
  width: 6px;
}

html.library-novo dialog[data-dialog="settings"] .integration-list::-webkit-scrollbar-button {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}

html.library-novo dialog[data-dialog="settings"] .integration-list::-webkit-scrollbar-thumb {
  min-height: 52px;
  background: #9bb1c0;
  border: 1px solid #f6f9fd;
  border-radius: 999px;
}

html.library-novo dialog[data-dialog="settings"] .integration-toggle {
  min-height: 44px;
  gap: 9px;
  padding: 8px 10px;
  color: var(--novo-ink-soft);
  font-size: 11.5px;
  font-weight: 610;
  background: #fff;
  border: 1px solid var(--novo-line);
  border-radius: 8px;
}

html.library-novo dialog[data-dialog="settings"] .integration-toggle:hover {
  color: var(--novo-blue-strong);
  background: #f2f7ff;
  border-color: #a9caf6;
}

html.library-novo dialog[data-dialog="settings"] .integration-toggle input {
  width: 17px;
  height: 17px;
  accent-color: var(--novo-blue);
}

html.library-novo dialog[data-dialog="settings"] .settings-card > footer {
  min-height: 58px;
  padding: 9px 18px;
  background: #f8fbff;
}

html.library-novo dialog[data-dialog="settings"] .settings-card > footer .primary-button {
  color: #fff;
  background: var(--novo-blue);
  border-color: var(--novo-blue);
  box-shadow: 0 6px 16px rgba(20, 104, 232, .14);
}

@media (max-width: 640px) {
  html.library-novo dialog[data-dialog="settings"],
  html.library-novo dialog[data-dialog="settings"][open] {
    width: calc(100vw - 16px) !important;
    max-width: calc(100vw - 16px) !important;
    max-height: calc(var(--library-visual-height, 100dvh) - 16px) !important;
  }

  html.library-novo dialog[data-dialog="settings"] .settings-card {
    max-height: calc(var(--library-visual-height, 100dvh) - 16px) !important;
    border-radius: 12px;
  }

  html.library-novo dialog[data-dialog="settings"] .settings-card > header,
  html.library-novo dialog[data-dialog="settings"] .settings-card > footer {
    padding-inline: 13px;
  }

  html.library-novo dialog[data-dialog="settings"] .settings-section {
    padding: 13px;
  }

  html.library-novo dialog[data-dialog="settings"] .integration-list {
    grid-template-columns: minmax(0, 1fr);
    gap: 7px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html.library-novo *,
  html.library-novo *::before,
  html.library-novo *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
  }
}

/* Login inheritance fixes from the legacy skin. */

html.library-novo body.auth-screen-open .auth-art::after {
  inset: auto clamp(32px, 4vw, 64px) 38px;
  width: auto;
  height: auto;
  transform: none;
  border: 0;
  border-radius: 0;
}

html.library-novo body.auth-screen-open .auth-card-head,
html.library-novo body.auth-screen-open .auth-access-pill {
  position: static;
  inset: auto;
  transform: none;
}

html.library-novo body.auth-screen-open .auth-brandline .brand-mark,
html.library-novo body.auth-screen-open .auth-logo-lockup .brand-mark {
  filter: none;
}

/* Account and library navigation. */

html.library-novo .sidebar-fixed-top,
html.library-novo .sidebar-fixed-bottom {
  background: transparent;
}

html.library-novo .brand-row {
  min-height: 104px;
  padding: 14px;
  background: linear-gradient(145deg, #eef5ff, #f8fbff 68%, #edf8f4);
  border: 1px solid var(--novo-line-soft);
  border-radius: 10px;
}

html.library-novo .brand-row::before {
  display: none !important;
}

html.library-novo .sidebar-brand-mark {
  width: 40px;
  height: 40px;
  border-radius: 9px;
}

html.library-novo .brand-title-line strong {
  color: var(--novo-ink);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -.035em;
}

html.library-novo .brand-email {
  max-width: 152px;
  overflow: hidden;
  color: var(--novo-muted);
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

html.library-novo .brand-sync {
  width: fit-content;
  margin-top: 6px;
  padding: 3px 7px;
  color: var(--novo-green);
  font-size: 10px;
  font-weight: 700;
  background: var(--novo-green-soft);
  border: 1px solid #addccb;
  border-radius: 999px;
}

html.library-novo .account-menu-toggle,
html.library-novo .section-heading-actions button {
  color: var(--novo-muted);
  background: #fff;
  border: 1px solid var(--novo-line);
  border-radius: 8px;
}

html.library-novo .account-menu-toggle:hover,
html.library-novo .section-heading-actions button:hover {
  color: var(--novo-blue);
  background: var(--novo-blue-soft);
  border-color: #9bc3fb;
}

html.library-novo .nav-section {
  border-color: var(--novo-line-soft);
}

html.library-novo .nav-section > h2,
html.library-novo .section-heading,
html.library-novo .section-toggle {
  color: var(--novo-muted);
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .11em;
  text-transform: uppercase;
}

html.library-novo .nav-item,
html.library-novo .folder-row,
html.library-novo .shared-link-chip {
  color: var(--novo-ink-soft);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 8px;
}

html.library-novo .nav-item:hover,
html.library-novo .folder-row:hover,
html.library-novo .shared-link-chip:hover {
  color: var(--novo-blue-strong);
  background: var(--novo-blue-pale);
  border-color: #cfe1fa;
}

html.library-novo .nav-item.active,
html.library-novo .folder-row.active {
  color: var(--novo-blue-strong);
  background: var(--novo-blue-soft);
  border-color: #91bdf8;
  box-shadow: inset 3px 0 0 var(--novo-blue);
}

html.library-novo .nav-item.active [data-count-all],
html.library-novo .folder-row.active .folder-count {
  color: var(--novo-blue-strong);
}

html.library-novo .sidebar-icon,
html.library-novo .folder-chevron,
html.library-novo .section-chevron {
  color: currentColor;
}

html.library-novo .folder-menu-toggle {
  color: #7f93a1;
  border-radius: 6px;
}

html.library-novo .folder-menu-toggle:hover {
  color: var(--novo-blue);
  background: #fff;
}

html.library-novo .folder-count,
html.library-novo .trash-taxonomy-count {
  color: #8295a3;
  font-variant-numeric: tabular-nums;
}

html.library-novo .signout {
  min-height: 44px;
  color: var(--novo-danger);
  background: #fff;
  border: 1px solid #e7b7be;
  border-radius: 8px;
}

html.library-novo .signout:hover {
  color: #fff;
  background: var(--novo-danger);
  border-color: var(--novo-danger);
}

/* Command bar and its fully interactive surfaces. */

html.library-novo .command-cluster {
  gap: 10px;
}

html.library-novo .topbar-add {
  min-height: 48px;
  padding: 0 18px;
  font-weight: 700;
}

html.library-novo .topbar-add::before {
  color: var(--novo-blue);
  background: #fff;
  border-radius: 6px;
}

html.library-novo .top-search {
  min-height: 48px;
  overflow: hidden;
}

html.library-novo .top-search > input {
  min-height: 46px;
  padding-inline: 16px 54px;
  color: var(--novo-ink);
}

html.library-novo .top-search > input::placeholder {
  color: #8498a6;
}

html.library-novo .top-search:focus-within {
  border-color: var(--novo-blue);
  box-shadow: var(--novo-focus);
}

html.library-novo .toolbar {
  gap: 8px;
}

html.library-novo .command-bar .toolbar > button,
html.library-novo .command-bar .toolbar-icon,
html.library-novo .command-bar .ref-capture-sync-button,
html.library-novo .command-bar .share-toolbar-button {
  min-height: 46px;
  color: var(--novo-ink-soft);
  font-size: 13px;
  font-weight: 650;
  background: #fff;
  border: 1px solid var(--novo-line);
  border-radius: 8px;
  box-shadow: none;
}

html.library-novo .command-bar .toolbar > button:last-child:not(:disabled) {
  color: #fff;
  background: var(--novo-ink);
  border-color: var(--novo-ink);
}

html.library-novo .command-bar .toolbar > button:last-child:not(:disabled):hover {
  color: #fff;
  background: var(--novo-blue);
  border-color: var(--novo-blue);
}

html.library-novo .ref-capture-sync-badge {
  color: #fff;
  background: var(--novo-blue);
}

html.library-novo .floating-menu,
html.library-novo .search-popover,
html.library-novo .account-menu,
html.library-novo .folder-menu,
html.library-novo .bulk-folder-menu,
html.library-novo .sf-select-content,
html.library-novo .ref-capture-sync-popover {
  z-index: 200;
  color: var(--novo-ink);
  background: rgba(255, 255, 255, .98);
  border: 1px solid var(--novo-line);
  border-radius: 10px;
  box-shadow: 0 20px 55px rgba(9, 29, 45, .15);
  backdrop-filter: blur(18px);
}

html.library-novo .floating-menu.add-menu {
  width: min(390px, calc(100vw - 36px));
  padding: 8px;
}

html.library-novo .add-menu-item {
  min-height: 62px;
  padding: 10px;
  color: var(--novo-ink-soft);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 8px;
}

html.library-novo .add-menu-item:hover,
html.library-novo .add-menu-item.featured:hover {
  color: var(--novo-blue-strong);
  background: var(--novo-blue-pale);
  border-color: #cfe1fa;
}

html.library-novo .add-menu-icon {
  color: var(--novo-blue);
  background: var(--novo-blue-soft);
  border: 1px solid #c6dcfb;
  border-radius: 7px;
}

html.library-novo .add-menu-copy strong {
  color: var(--novo-ink);
}

html.library-novo .add-menu-copy small {
  color: var(--novo-muted);
}

html.library-novo .search-popover {
  width: min(390px, calc(100vw - 36px));
  padding: 10px;
}

html.library-novo .search-help-row,
html.library-novo .account-menu button,
html.library-novo .folder-menu-item,
html.library-novo .sf-select-item,
html.library-novo .bulk-folder-row {
  color: var(--novo-ink-soft);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 7px;
}

html.library-novo .search-help-row:hover,
html.library-novo .account-menu button:hover,
html.library-novo .folder-menu-item:hover,
html.library-novo .sf-select-item:hover,
html.library-novo .bulk-folder-row:hover {
  color: var(--novo-blue-strong);
  background: var(--novo-blue-pale);
  border-color: #d4e4fa;
}

html.library-novo .folder-menu-item.danger:hover,
html.library-novo .trash-actions-menu .danger:hover {
  color: var(--novo-danger);
  background: #fff3f5;
  border-color: #f0c5cb;
}

html.library-novo .search-help-section {
  border-color: var(--novo-line-soft);
}

html.library-novo .search-help-section > span {
  color: var(--novo-muted);
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .1em;
  text-transform: uppercase;
}

html.library-novo .search-help-section > button {
  color: var(--novo-blue-strong);
  background: var(--novo-blue-soft);
  border: 1px solid #c8defb;
  border-radius: 6px;
}

html.library-novo .include-section label {
  color: var(--novo-ink-soft);
}

html.library-novo input[type="checkbox"],
html.library-novo input[type="radio"] {
  accent-color: var(--novo-blue);
}

html.library-novo .bulk-folder-check,
html.library-novo .sf-select-check {
  border-color: var(--novo-line);
  border-radius: 5px;
}

html.library-novo .bulk-folder-row.checked .bulk-folder-check,
html.library-novo .sf-select-item[aria-selected="true"] .sf-select-check {
  color: #fff;
  background: var(--novo-blue);
  border-color: var(--novo-blue);
}

/* List header, filters, and status controls. */

html.library-novo .list-header > div:first-child > span {
  color: var(--novo-muted);
  font-size: 13px;
  font-weight: 550;
}

html.library-novo .list-header {
  position: relative;
  z-index: 4;
}

html.library-novo .content-grid {
  position: relative;
  z-index: 1;
}

html.library-novo .sort-row {
  gap: 8px;
}

html.library-novo .sf-select-trigger,
html.library-novo .sort-direction-button,
html.library-novo .sort-row > [data-selected-count] {
  min-height: 44px;
  color: var(--novo-ink-soft);
  background: #fff;
  border: 1px solid var(--novo-line);
  border-radius: 8px;
  box-shadow: none;
}

html.library-novo .sf-select-trigger:hover,
html.library-novo .sort-direction-button:hover {
  color: var(--novo-blue-strong);
  background: var(--novo-blue-soft);
  border-color: #9bc3fb;
}

html.library-novo .quick-filter-active-count {
  color: #fff;
  background: var(--novo-blue);
}

html.library-novo .quick-filter-option {
  color: var(--novo-ink-soft);
  border-radius: 7px;
}

html.library-novo .quick-filter-option:hover {
  color: var(--novo-blue-strong);
  background: var(--novo-blue-pale);
}

html.library-novo .quick-filter-option-icon {
  color: var(--novo-blue);
}

html.library-novo .trash-action {
  min-height: 40px;
  border-radius: 8px;
}

html.library-novo .trash-action.restore {
  color: var(--novo-blue-strong);
  background: var(--novo-blue-soft);
  border-color: #a7caf8;
}

html.library-novo .trash-action.delete,
html.library-novo .danger-button {
  color: #fff;
  background: var(--novo-danger);
  border-color: var(--novo-danger);
  border-radius: 8px;
}

/* Reference records: dense enough for scanning, calm enough for long sessions. */

html.library-novo .reference-list {
  overflow: auto;
}

html.library-novo .reference-card {
  grid-template-columns: 46px minmax(0, 1fr) auto;
  gap: 14px;
  min-height: 116px;
  padding: 18px 16px 16px;
  color: var(--novo-ink);
  background: #fff;
  border: 0;
  border-bottom: 1px solid var(--novo-line-soft);
  border-radius: 0;
  box-shadow: none;
  transition: background-color .18s ease, box-shadow .18s ease;
}

html.library-novo .reference-card:first-child {
  border-radius: 9px 9px 0 0;
}

html.library-novo .reference-card:last-child {
  border-bottom: 0;
  border-radius: 0 0 9px 9px;
}

html.library-novo .reference-card:hover {
  background: #fbfdff;
  box-shadow: inset 3px 0 0 #9bc3fb;
}

html.library-novo .reference-card.selected {
  background: var(--novo-blue-pale);
  box-shadow: inset 3px 0 0 var(--novo-blue);
}

html.library-novo .reference-card.trashed {
  background: #fffafb;
}

html.library-novo .card-select-stack {
  align-items: center;
  gap: 12px;
}

html.library-novo .card-select-stack input {
  width: 18px;
  height: 18px;
  border-radius: 5px;
}

html.library-novo .reference-drag-handle {
  color: #9badb9;
}

html.library-novo .reference-title {
  margin: 0 0 4px;
  color: var(--novo-ink);
  font-size: 16px;
  font-weight: 680;
  line-height: 1.3;
  letter-spacing: -.025em;
}

html.library-novo .reference-card .meta {
  color: var(--novo-muted);
  font-size: 13px;
  line-height: 1.45;
}

html.library-novo .reference-card .bibliographic-meta {
  color: #667c8c;
}

html.library-novo .reference-card .source {
  color: var(--novo-blue-strong);
  font-weight: 650;
}

html.library-novo .meta-separator {
  color: #a0b2bf;
}

html.library-novo .meta-row {
  gap: 10px;
}

html.library-novo .reference-card .links {
  border-color: var(--novo-line-soft);
}

html.library-novo .reference-card .links a,
html.library-novo .reference-card .links > button,
html.library-novo .meta-primary-link a {
  color: var(--novo-blue-strong);
  font-weight: 650;
}

html.library-novo .reference-card .links > button:hover,
html.library-novo .reference-card .links a:hover {
  color: var(--novo-ink);
  text-decoration-color: var(--novo-blue);
}

html.library-novo .reference-resource-indicators {
  gap: 4px;
}

html.library-novo .reference-resource-indicator {
  width: 30px;
  height: 30px;
  color: #718896;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 7px;
}

html.library-novo .reference-resource-indicator:hover,
html.library-novo .reference-resource-indicator.selected {
  color: var(--novo-blue-strong);
  background: var(--novo-blue-soft);
  border-color: #bad5fa;
}

html.library-novo .reference-resource-indicator.active {
  color: var(--novo-green);
}

html.library-novo .reference-resource-count,
html.library-novo .reference-resource-dot {
  color: #fff;
  background: var(--novo-green);
}

html.library-novo .card-actions {
  gap: 8px;
}

html.library-novo .card-actions .ghost-button {
  min-height: 38px;
  padding: 0 13px;
  color: var(--novo-ink-soft);
  background: #fff;
  border: 1px solid var(--novo-line);
  border-radius: 7px;
}

html.library-novo .card-actions .ghost-button:hover {
  color: var(--novo-blue-strong);
  background: var(--novo-blue-soft);
  border-color: #9bc3fb;
}

html.library-novo .star {
  color: #a0b2bf;
}

html.library-novo .star:hover,
html.library-novo .star.active {
  color: #d59812;
}

html.library-novo .card-select-stack > .star,
html.library-novo .title-row > .star {
  display: none !important;
}

html.library-novo .card-action-star {
  display: inline-grid !important;
}

html.library-novo .chip,
html.library-novo .reference-chip {
  color: var(--novo-ink-soft);
  background: #f1f6fa;
  border: 1px solid var(--novo-line-soft);
  border-radius: 999px;
}

html.library-novo .reference-chip-folder {
  color: var(--novo-blue-strong);
  background: var(--novo-blue-soft);
  border-color: #c8defb;
}

html.library-novo .folder-chip-remove:hover {
  background: rgba(9, 29, 45, .08);
}

html.library-novo .abstract-preview {
  color: var(--novo-ink-soft);
  background: var(--novo-blue-pale);
  border: 1px solid #d4e4fa;
  border-left: 3px solid var(--novo-blue);
  border-radius: 8px;
}

html.library-novo .abstract-preview strong {
  color: var(--novo-ink);
}

html.library-novo .abstract-retry-button {
  color: var(--novo-blue-strong);
  background: #fff;
  border-color: #a8caf8;
  border-radius: 7px;
}

html.library-novo .reference-resource-panel {
  color: var(--novo-ink);
  background: #f8fbff;
  border: 1px solid var(--novo-line-soft);
  border-left: 3px solid var(--novo-blue);
  border-radius: 9px;
  box-shadow: none;
}

html.library-novo .reference-resource-panel-header {
  background: #fff;
  border-color: var(--novo-line-soft);
}

html.library-novo .reference-resource-panel-icon {
  color: var(--novo-blue);
  background: var(--novo-blue-soft);
  border-radius: 7px;
}

html.library-novo .reference-resource-panel-header strong,
html.library-novo .resource-file-copy strong {
  color: var(--novo-ink);
}

html.library-novo .reference-resource-panel-header small,
html.library-novo .resource-file-copy small,
html.library-novo .resource-panel-footer > span {
  color: var(--novo-muted);
}

html.library-novo .reference-resource-panel-close,
html.library-novo .resource-file-row > button {
  color: var(--novo-muted);
  background: #fff;
  border: 1px solid var(--novo-line-soft);
  border-radius: 7px;
}

html.library-novo .reference-resource-panel-close:hover,
html.library-novo .resource-file-row > button:hover {
  color: var(--novo-danger);
  background: #fff3f5;
}

html.library-novo .reference-resource-panel input,
html.library-novo .reference-resource-panel textarea {
  color: var(--novo-ink);
  background: #fff;
  border: 1px solid var(--novo-line);
  border-radius: 8px;
}

html.library-novo .reference-resource-panel input:focus,
html.library-novo .reference-resource-panel textarea:focus {
  border-color: var(--novo-blue);
  box-shadow: var(--novo-focus);
}

html.library-novo .resource-primary-action,
html.library-novo .resource-secondary-action,
html.library-novo .resource-file-action {
  min-height: 40px;
  border-radius: 7px;
}

html.library-novo .resource-primary-action {
  color: #fff;
  background: var(--novo-blue);
  border-color: var(--novo-blue);
}

html.library-novo .resource-secondary-action,
html.library-novo .resource-file-action {
  color: var(--novo-blue-strong);
  background: #fff;
  border-color: #a8caf8;
}

html.library-novo .resource-file-row {
  background: #fff;
  border-color: var(--novo-line-soft);
  border-radius: 8px;
}

html.library-novo .resource-empty-state,
html.library-novo .empty-state {
  color: var(--novo-muted);
  background:
    radial-gradient(circle at 50% 32%, rgba(20, 104, 232, .1), transparent 14rem),
    #fbfdff;
}

html.library-novo .empty-state h2 {
  color: var(--novo-ink);
  font-size: clamp(28px, 3vw, 44px);
  font-weight: 550;
  letter-spacing: -.05em;
}

html.library-novo .empty-actions .ghost-button {
  color: var(--novo-blue-strong);
  background: #fff;
  border: 1px solid #a8caf8;
  border-radius: 8px;
}

/* Dialog system shared by import, search, sharing, taxonomy, settings and export. */

html.library-novo .modal::backdrop,
html.library-novo .editor-modal::backdrop {
  background: rgba(9, 29, 45, .48);
  backdrop-filter: blur(5px);
}

html.library-novo .modal-card,
html.library-novo .editor-card,
html.library-novo .share-card,
html.library-novo .settings-card,
html.library-novo .export-card {
  color: var(--novo-ink);
  background: #fff;
  border: 1px solid var(--novo-line);
  border-radius: 12px;
  box-shadow: 0 30px 90px rgba(9, 29, 45, .24);
}

html.library-novo .modal-card > header,
html.library-novo .modal-card > footer,
html.library-novo .editor-header,
html.library-novo .editor-footer {
  background: #f8fbff;
  border-color: var(--novo-line-soft);
}

html.library-novo .modal-card h2,
html.library-novo .modal-card h3,
html.library-novo .editor-card h2,
html.library-novo .editor-section h3 {
  color: var(--novo-ink);
  font-weight: 650;
  letter-spacing: -.035em;
}

html.library-novo .modal-card .muted,
html.library-novo .editor-title-wrap p {
  color: var(--novo-muted);
}

html.library-novo .modal-card > header > button,
html.library-novo .editor-close,
html.library-novo .share-close-button {
  color: var(--novo-muted);
  background: #fff;
  border: 1px solid var(--novo-line);
  border-radius: 7px;
}

html.library-novo .modal-card > header > button:hover,
html.library-novo .editor-close:hover,
html.library-novo .share-close-button:hover {
  color: var(--novo-ink);
  background: var(--novo-blue-soft);
  border-color: #9bc3fb;
}

html.library-novo .modal-card input:not([type="checkbox"]):not([type="radio"]),
html.library-novo .modal-card select,
html.library-novo .modal-card textarea,
html.library-novo .editor-section input,
html.library-novo .editor-section select,
html.library-novo .editor-section textarea {
  color: var(--novo-ink);
  background: #fff;
  border: 1px solid var(--novo-line);
  border-radius: 8px;
  box-shadow: none;
}

html.library-novo .modal-card input:not([type="checkbox"]):not([type="radio"]):focus,
html.library-novo .modal-card select:focus,
html.library-novo .modal-card textarea:focus,
html.library-novo .editor-section input:focus,
html.library-novo .editor-section select:focus,
html.library-novo .editor-section textarea:focus {
  border-color: var(--novo-blue);
  box-shadow: var(--novo-focus);
}

html.library-novo .modal-card label,
html.library-novo .editor-section label {
  color: var(--novo-ink-soft);
}

html.library-novo .modal-card .primary-button,
html.library-novo .editor-footer .primary-button {
  color: #fff;
  background: var(--novo-blue);
  border: 1px solid var(--novo-blue);
  border-radius: 8px;
}

html.library-novo .modal-card .primary-button:hover,
html.library-novo .editor-footer .primary-button:hover {
  background: var(--novo-blue-strong);
  border-color: var(--novo-blue-strong);
}

html.library-novo .modal-card .ghost-button,
html.library-novo .editor-footer .ghost-button {
  color: var(--novo-ink-soft);
  background: #fff;
  border: 1px solid var(--novo-line);
  border-radius: 8px;
}

html.library-novo .modal-card .ghost-button:hover,
html.library-novo .editor-footer .ghost-button:hover {
  color: var(--novo-blue-strong);
  background: var(--novo-blue-soft);
  border-color: #9bc3fb;
}

html.library-novo .editor-title-icon {
  color: var(--novo-blue);
  background: var(--novo-blue-soft);
  border: 1px solid #c5dcfb;
  border-radius: 8px;
}

html.library-novo .editor-grid {
  gap: 14px;
  padding: 18px;
  background: #f3f7fb;
}

html.library-novo .editor-section,
html.library-novo .editor-section-core,
html.library-novo .editor-section-ids {
  padding: 18px;
  background: #fff;
  border: 1px solid var(--novo-line-soft);
  border-top: 3px solid var(--novo-line-soft);
  border-radius: 10px;
  box-shadow: none;
}

html.library-novo .editor-section-core {
  border-top-color: var(--novo-blue);
}

html.library-novo .editor-section-ids {
  border-top-color: var(--novo-green);
}

html.library-novo .import-file-panel,
html.library-novo .settings-section,
html.library-novo .share-section,
html.library-novo .export-format-option,
html.library-novo .online-card {
  background: var(--novo-blue-pale);
  border: 1px solid var(--novo-line-soft);
  border-radius: 9px;
}

html.library-novo .import-file-list,
html.library-novo .export-compat-note,
html.library-novo .share-status {
  color: var(--novo-muted);
}

html.library-novo .online-card:hover,
html.library-novo .export-format-option:hover {
  background: var(--novo-blue-soft);
  border-color: #a8caf8;
}

html.library-novo .online-card-subject,
html.library-novo .online-card h3 {
  color: var(--novo-blue-strong);
}

html.library-novo .integration-toggle,
html.library-novo .share-toggle-row {
  color: var(--novo-ink-soft);
  background: #fff;
  border: 1px solid var(--novo-line-soft);
  border-radius: 8px;
}

html.library-novo .integration-toggle:hover,
html.library-novo .share-toggle-row:hover {
  background: var(--novo-blue-pale);
  border-color: #b6d2f8;
}

html.library-novo .share-section-icon,
html.library-novo .share-option-icon {
  color: var(--novo-blue);
}

html.library-novo .share-link-row {
  background: #fff;
  border: 1px solid var(--novo-line);
  border-radius: 8px;
}

html.library-novo .share-open-button,
html.library-novo .share-copy-button,
html.library-novo .share-message-toggle {
  color: var(--novo-blue-strong);
  background: var(--novo-blue-soft);
  border-color: #b6d2f8;
  border-radius: 7px;
}

html.library-novo .share-switch > span,
html.library-novo .ref-capture-switch {
  background: #c6d3db;
}

html.library-novo .share-switch input:checked + span,
html.library-novo .ref-capture-auto-sync input:checked + .ref-capture-switch {
  background: var(--novo-blue);
}

html.library-novo .taxonomy-color-palette {
  padding: 12px;
  background: #f8fbff;
  border: 1px solid var(--novo-line-soft);
  border-radius: 9px;
}

html.library-novo .label-color-choice {
  border-radius: 8px;
}

html.library-novo .label-color-choice:has(input:checked) {
  outline: 2px solid var(--novo-blue);
  outline-offset: 2px;
}

html.library-novo .export-format-option:has(input:checked) {
  background: var(--novo-blue-soft);
  border-color: var(--novo-blue);
  box-shadow: 0 0 0 2px rgba(20, 104, 232, .12);
}

html.library-novo .confirm-card {
  border-top: 3px solid var(--novo-danger);
}

/* Ref Capture keeps every state visible and legible in Novo. */

html.library-novo .ref-capture-sync-popover {
  width: min(420px, calc(100vw - 32px));
  overflow: hidden;
}

html.library-novo .ref-capture-sync-popover > header {
  background: #f8fbff;
  border-color: var(--novo-line-soft);
}

html.library-novo .ref-capture-sync-brand strong,
html.library-novo .ref-capture-sync-status-card strong {
  color: var(--novo-ink);
}

html.library-novo .ref-capture-sync-brand span,
html.library-novo .ref-capture-sync-status-card span,
html.library-novo .ref-capture-last-sync {
  color: var(--novo-muted);
}

html.library-novo .ref-capture-sync-status-card {
  background: var(--novo-blue-pale);
  border: 1px solid var(--novo-line-soft);
  border-radius: 9px;
}

html.library-novo .ref-capture-sync-status-card[data-ref-capture-sync-state="connected"],
html.library-novo .ref-capture-sync-status-card[data-ref-capture-sync-state="ready"] {
  background: var(--novo-green-soft);
  border-color: #acdcca;
}

html.library-novo .ref-capture-sync-metrics > div,
html.library-novo .ref-capture-auto-sync {
  background: #fff;
  border: 1px solid var(--novo-line-soft);
  border-radius: 8px;
}

html.library-novo .ref-capture-sync-metrics strong {
  color: var(--novo-blue-strong);
}

html.library-novo .ref-capture-refresh-button,
html.library-novo .ref-capture-sync-now-button {
  min-height: 42px;
  border-radius: 8px;
}

html.library-novo .ref-capture-refresh-button {
  color: var(--novo-blue-strong);
  background: #fff;
  border-color: #a8caf8;
}

html.library-novo .ref-capture-sync-now-button {
  color: #fff;
  background: var(--novo-blue);
  border-color: var(--novo-blue);
}

/* Feedback and custom scrollbars. */

html.library-novo .toast {
  color: #fff;
  background: var(--novo-ink);
  border: 1px solid #29485e;
  border-radius: 9px;
  box-shadow: 0 18px 46px rgba(9, 29, 45, .22);
}

html.library-novo .reference-list,
html.library-novo .sidebar-scroll-region,
html.library-novo .editor-grid,
html.library-novo .settings-section,
html.library-novo .search-popover,
html.library-novo .floating-menu.add-menu {
  scrollbar-color: #9db6c7 transparent;
  scrollbar-width: thin;
}

html.library-novo .reference-scrollbar-thumb,
html.library-novo .bulk-folder-scrollbar-thumb,
html.library-novo .sidebar-scrollbar-thumb {
  background: #9db6c7;
  border-radius: 999px;
}

/* Responsive application behavior. */

@media (max-width: 1260px) {
  html.library-novo .library-app {
    grid-template-columns: 250px minmax(0, 1fr);
  }

  html.library-novo .command-bar {
    align-items: stretch;
  }

  html.library-novo .command-cluster {
    min-width: 0;
  }

  html.library-novo .toolbar {
    overflow-x: auto;
    padding-bottom: 2px;
    scrollbar-width: none;
  }

  html.library-novo .toolbar::-webkit-scrollbar {
    display: none;
  }
}

@media (max-width: 900px) {
  html.library-novo .library-app {
    grid-template-columns: minmax(0, 1fr);
  }

  html.library-novo .main-panel {
    border-radius: 12px;
  }

  html.library-novo .mobile-library-toggle {
    color: var(--novo-blue-strong);
    background: var(--novo-blue-soft);
    border: 1px solid #aacbf8;
    border-radius: 8px;
  }

  html.library-novo .sidebar {
    background: #fff;
    border-radius: 0 14px 14px 0;
    box-shadow: 18px 0 60px rgba(9, 29, 45, .22);
  }

  html.library-novo .mobile-sidebar-header {
    color: var(--novo-ink);
    background: #f8fbff;
    border-bottom: 1px solid var(--novo-line-soft);
  }

  html.library-novo .mobile-sidebar-close {
    color: var(--novo-muted);
    background: #fff;
    border: 1px solid var(--novo-line);
    border-radius: 8px;
  }

  html.library-novo .mobile-sidebar-backdrop {
    background: rgba(9, 29, 45, .45);
    backdrop-filter: blur(4px);
  }

  html.library-novo .list-header {
    align-items: flex-start;
  }

  html.library-novo .sort-row {
    width: 100%;
    overflow-x: auto;
    padding-bottom: 3px;
    scrollbar-width: none;
  }

  html.library-novo .sort-row::-webkit-scrollbar {
    display: none;
  }
}

@media (max-width: 700px) {
  html.library-novo .command-bar {
    gap: 8px;
    padding: 9px;
  }

  html.library-novo .topbar-add,
  html.library-novo .mobile-library-toggle {
    min-width: 46px;
    min-height: 46px;
  }

  html.library-novo .top-search,
  html.library-novo .top-search > input {
    min-height: 46px;
  }

  html.library-novo .list-header {
    min-height: 0;
    gap: 12px;
    padding: 14px;
  }

  html.library-novo .list-header h1 {
    font-size: 23px;
  }

  html.library-novo .content-grid {
    padding: 0 8px 8px;
  }

  html.library-novo .reference-card {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 10px;
    min-height: 0;
    padding: 14px 12px;
  }

  html.library-novo .reference-title {
    font-size: 15px;
  }

  html.library-novo .card-actions {
    grid-column: 2;
    justify-content: flex-start;
    margin-top: 7px;
  }

  html.library-novo .reference-resource-panel,
  html.library-novo .abstract-preview {
    grid-column: 1 / -1;
  }

  html.library-novo .resource-url-form,
  html.library-novo .resource-panel-footer {
    align-items: stretch;
  }

  html.library-novo .modal-card,
  html.library-novo .editor-card,
  html.library-novo .share-card,
  html.library-novo .settings-card,
  html.library-novo .export-card {
    border-radius: 12px 12px 0 0;
  }

  html.library-novo .editor-grid {
    grid-template-columns: 1fr;
    padding: 10px;
  }

  html.library-novo .editor-section,
  html.library-novo .editor-section-core,
  html.library-novo .editor-section-ids {
    padding: 14px;
  }

  html.library-novo .export-format-grid {
    grid-template-columns: 1fr;
  }

  html.library-novo .share-card-body {
    padding: 12px;
  }

  html.library-novo .share-section {
    padding: 14px;
  }

  html.library-novo .share-email-actions,
  html.library-novo .online-actions {
    align-items: stretch;
  }
}

@media (max-width: 420px) {
  html.library-novo body.auth-screen-open .app-shell {
    width: calc(100% - 16px);
  }

  html.library-novo body.auth-screen-open .auth-card,
  html.library-novo body.auth-screen-open .auth-art {
    padding-inline: 18px;
  }

  html.library-novo body.auth-screen-open .auth-beta-prompt {
    padding: 14px;
  }

  html.library-novo .sf-select-trigger,
  html.library-novo .sort-direction-button,
  html.library-novo .sort-row > [data-selected-count] {
    min-height: 42px;
  }
}

/*
 * 2026-08 Novo quality rebuild
 *
 * This final layer deliberately owns the complete visual contract for the Novo
 * route. Earlier files still provide the application's structural primitives;
 * the rules below normalize their competing skins into one calm, source-linked
 * system shared by authentication, the library workspace, menus and dialogs.
 */

html.library-novo {
  --novo-paper: #f8fafc;
  --novo-surface: #ffffff;
  --novo-surface-soft: #f1f6fb;
  --novo-ink: #102638;
  --novo-ink-strong: #091d2d;
  --novo-ink-soft: #173247;
  --novo-muted: #586d7e;
  --novo-subtle: #607688;
  --novo-line: #d6e1ea;
  --novo-line-strong: #bdcfdd;
  --novo-blue: #1468e8;
  --novo-blue-strong: #0758cf;
  --novo-blue-bright: #2f86ff;
  --novo-blue-soft: #eaf3ff;
  --novo-blue-pale: #f4f8fe;
  --novo-green: #167d5d;
  --novo-green-soft: #edf8f4;
  --novo-warning: #a86508;
  --novo-warning-soft: #fff7e7;
  --novo-danger: #c33e4f;
  --novo-danger-soft: #fff2f4;
  --novo-shadow-sm: 0 8px 24px rgba(9, 29, 45, .06);
  --novo-shadow-md: 0 20px 55px rgba(9, 29, 45, .14);
  --novo-shadow-lg: 0 30px 90px rgba(9, 29, 45, .22);
  --novo-focus: 0 0 0 3px rgba(20, 104, 232, .16);
}

html.library-novo body {
  color: var(--novo-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-synthesis: none;
}

html.library-novo button,
html.library-novo input,
html.library-novo select,
html.library-novo textarea {
  letter-spacing: normal;
}

html.library-novo button {
  transition: color .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

/* Novo identity: the blue [lc] source mark used by the extractor language. */

html.library-novo body.auth-screen-open .site-header .home-code-brand-mark,
html.library-novo body.auth-screen-open .site-footer .home-code-brand-mark {
  color: var(--novo-blue) !important;
  background: transparent !important;
  border: 0 !important;
}

html.library-novo body.auth-screen-open > .site-header.site-header--unified .brand .home-code-brand-mark,
html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .home-code-brand-mark {
  display: grid !important;
  place-items: center;
  color: var(--novo-blue) !important;
  background: var(--novo-blue-soft) !important;
  border: 1px solid #bcd6fa !important;
  border-radius: 9px !important;
}

html.library-novo body.auth-screen-open > .site-header.site-header--unified .home-code-brand-mark-glyph,
html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .home-code-brand-mark-glyph {
  display: none !important;
}

html.library-novo body.auth-screen-open > .site-header.site-header--unified .home-code-brand-mark::before,
html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .home-code-brand-mark::before {
  content: "lc";
  color: var(--novo-blue);
  font-size: .52em;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.08em;
  text-transform: lowercase;
}

html.library-novo body.auth-screen-open .novo-inline-mark {
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: -.08em !important;
  text-transform: lowercase !important;
}

html.library-novo body.auth-screen-open .novo-inline-mark::before,
html.library-novo body.auth-screen-open .novo-inline-mark::after {
  content: none !important;
}

html.library-novo body.auth-screen-open .auth-brandline .brand-mark {
  display: none;
}

html.library-novo body.auth-screen-open .auth-brandline::before,
html.library-novo .brand-row::before {
  content: "lc";
  display: grid !important;
  flex: 0 0 auto;
  place-items: center;
  width: 42px;
  height: 42px;
  color: var(--novo-blue);
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.08em;
  text-transform: lowercase;
  background: var(--novo-blue-soft);
  border: 1px solid #bcd6fa;
  border-radius: 9px;
}

/* Logged-out page: useful at first glance and fully visible at laptop heights. */

html.library-novo body.auth-screen-open > .site-header.site-header--unified[data-auth-site-chrome] {
  min-height: 68px;
  padding: 10px clamp(20px, 3.25vw, 52px);
  background: rgba(255, 255, 255, .94);
  border-bottom-color: var(--novo-line);
}

html.library-novo body.auth-screen-open .site-header .brand {
  gap: 10px;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -.04em;
}

html.library-novo body.auth-screen-open .site-header .main-nav {
  gap: 34px;
}

html.library-novo body.auth-screen-open .site-header .main-nav a {
  color: var(--novo-muted);
  font-size: 13px;
  font-weight: 650;
}

html.library-novo body.auth-screen-open .site-header .main-nav a:hover {
  color: var(--novo-blue-strong);
}

html.library-novo body.auth-screen-open .site-header .header-tool-link {
  min-height: 42px;
  padding: 10px 15px;
  color: #fff;
  font-size: 13px;
  font-weight: 650;
  background: var(--novo-ink-strong);
  border-color: var(--novo-ink-strong);
  border-radius: 8px;
}

html.library-novo body.auth-screen-open .app-shell {
  width: min(1260px, calc(100% - 40px));
  padding: clamp(30px, 4vh, 46px) 0 clamp(44px, 6vh, 72px);
}

html.library-novo body.auth-screen-open .auth-page {
  grid-template-columns: minmax(0, 1.08fr) minmax(410px, .92fr);
  min-height: 628px;
  overflow: hidden;
  border-color: var(--novo-line-strong);
  border-radius: 18px;
  box-shadow: 0 26px 80px rgba(9, 29, 45, .11);
}

html.library-novo body.auth-screen-open .auth-art {
  padding: clamp(38px, 4vw, 58px);
  background:
    radial-gradient(circle at 90% 34%, transparent 0 116px, rgba(20, 104, 232, .11) 117px 164px, transparent 165px),
    linear-gradient(145deg, #edf5ff 0%, #f8fbff 55%, #edf9f5 100%);
  border-right-color: var(--novo-line);
}

html.library-novo body.auth-screen-open .auth-brandline {
  display: flex;
  align-items: center;
  gap: 11px;
}

html.library-novo body.auth-screen-open .auth-brand-copy {
  display: grid;
  gap: 1px;
}

html.library-novo body.auth-screen-open .auth-brand-copy strong {
  font-size: 19px;
  font-weight: 700;
}

html.library-novo body.auth-screen-open .auth-brand-copy small {
  font-size: 11px;
  font-weight: 550;
}

html.library-novo body.auth-screen-open .auth-intro {
  margin-top: clamp(52px, 7vh, 78px);
}

html.library-novo body.auth-screen-open .eyebrow {
  min-height: 29px;
  padding: 6px 10px;
  font-size: 10px;
  letter-spacing: .13em;
  background: rgba(255, 255, 255, .86);
}

html.library-novo body.auth-screen-open .glass-card h1 {
  max-width: 590px;
  margin: 21px 0 18px;
  font-size: clamp(48px, 4.4vw, 66px);
  font-weight: 560;
  line-height: .99;
  letter-spacing: -.058em;
}

html.library-novo body.auth-screen-open .glass-card p {
  max-width: 560px;
  font-size: clamp(16px, 1.25vw, 19px);
  line-height: 1.55;
}

html.library-novo body.auth-screen-open .auth-proof-grid {
  gap: 8px;
  padding-bottom: 42px;
}

html.library-novo body.auth-screen-open .auth-proof-grid span {
  min-height: 38px;
  padding: 7px 12px 7px 8px;
  font-size: 12px;
  background: rgba(255, 255, 255, .84);
}

html.library-novo body.auth-screen-open .auth-proof-grid b {
  width: 23px;
  height: 23px;
}

html.library-novo body.auth-screen-open .auth-art::after {
  inset: auto clamp(38px, 4vw, 58px) 26px;
  color: #6c8292;
  font-size: 9px;
  letter-spacing: .15em;
}

html.library-novo body.auth-screen-open .auth-card {
  justify-content: center;
  padding: clamp(36px, 4vw, 58px);
}

html.library-novo body.auth-screen-open .auth-card-head {
  margin-bottom: 25px;
}

html.library-novo body.auth-screen-open .auth-access-pill {
  padding: 6px 10px;
  font-size: 9px;
}

html.library-novo body.auth-screen-open .auth-heading {
  margin-bottom: 23px;
}

html.library-novo body.auth-screen-open .auth-card h2 {
  margin-bottom: 8px;
  font-size: clamp(38px, 3.25vw, 51px);
  line-height: .98;
}

html.library-novo body.auth-screen-open .auth-card .muted {
  font-size: 14px;
}

html.library-novo body.auth-screen-open .auth-card label {
  gap: 7px;
  margin-bottom: 14px;
  font-size: 11px;
}

html.library-novo body.auth-screen-open .auth-card input {
  min-height: 50px;
  padding-inline: 15px;
  font-size: 14px;
}

html.library-novo body.auth-screen-open .auth-card .primary-button {
  min-height: 50px;
  margin-top: 2px;
  font-size: 14px;
}

html.library-novo body.auth-screen-open .auth-note {
  min-height: 16px;
  margin: 5px 0 0;
  font-size: 11px;
  line-height: 1.4;
}

html.library-novo body.auth-screen-open .auth-beta-prompt {
  align-items: center;
  margin-top: 16px;
  padding: 14px;
}

html.library-novo body.auth-screen-open .auth-beta-copy strong {
  font-size: 12px;
}

html.library-novo body.auth-screen-open .auth-beta-copy span {
  font-size: 11px;
  line-height: 1.35;
}

html.library-novo body.auth-screen-open .auth-beta-link {
  min-height: 38px;
  padding-inline: 12px;
  font-size: 11px;
  white-space: nowrap;
}

html.library-novo body.auth-screen-open > .site-footer.site-footer--unified[data-auth-site-chrome] {
  background: var(--novo-surface);
  border-top: 1px solid var(--novo-line) !important;
}

html.library-novo body.auth-screen-open .site-footer .footer-inner {
  padding-top: 56px;
  padding-bottom: 38px;
}

/* Workspace shell: stable hierarchy, fewer boxes, more readable records. */

html.library-novo body.library-workspace-open {
  overflow: hidden;
  background:
    radial-gradient(ellipse at 90% 100%, rgba(47, 134, 255, .11), transparent 34rem),
    radial-gradient(ellipse at 4% 0%, rgba(22, 125, 93, .06), transparent 28rem),
    linear-gradient(rgba(20, 104, 232, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20, 104, 232, .045) 1px, transparent 1px),
    var(--novo-paper);
  background-size: auto, auto, 52px 52px, 52px 52px, auto;
}

html.library-novo body.library-workspace-open .app-shell {
  min-height: 100dvh;
  padding: 12px;
}

html.library-novo .library-app {
  grid-template-columns: 270px minmax(0, 1fr);
  gap: 12px;
  height: calc(var(--library-visual-height, 100dvh) - 24px);
  min-height: 560px;
}

html.library-novo .sidebar,
html.library-novo .main-panel {
  border-color: var(--novo-line-strong);
  border-radius: 16px;
  box-shadow: var(--novo-shadow-sm);
}

html.library-novo .sidebar {
  padding: 10px;
  background: rgba(255, 255, 255, .97);
  border-top: 3px solid var(--novo-green);
}

html.library-novo .brand-row {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 34px;
  gap: 10px;
  min-height: 94px;
  padding: 13px;
  background: linear-gradient(145deg, #f1f6fe 0%, #f8fbff 58%, #eff8f4 100%);
  border-color: var(--novo-line);
  border-radius: 11px;
}

html.library-novo .brand-row > .sidebar-brand-mark {
  display: none;
}

html.library-novo .brand-row::before {
  position: static;
  inset: auto;
  transform: none;
}

html.library-novo .brand-copy {
  min-width: 0;
}

html.library-novo .brand-title-line strong {
  font-size: 17px;
  font-weight: 700;
}

html.library-novo .brand-title-line strong::after {
  width: 6px;
  height: 6px;
  background: var(--novo-green);
}

html.library-novo .brand-email {
  max-width: 100%;
  margin-top: 2px;
  font-size: 11px;
}

html.library-novo .brand-sync {
  display: inline-flex !important;
  max-width: 100%;
  margin-top: 5px;
  padding: 3px 7px;
  overflow: hidden;
  font-size: 9px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

html.library-novo .brand-sync[data-state="local"] {
  color: var(--novo-warning);
  background: var(--novo-warning-soft);
  border-color: #ead39e;
}

html.library-novo .account-menu-toggle {
  width: 34px;
  height: 34px;
  align-self: start;
}

html.library-novo .nav-section {
  padding-block: 8px;
}

html.library-novo .nav-section > p,
html.library-novo .section-heading,
html.library-novo .section-toggle {
  color: var(--novo-muted);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .13em;
}

html.library-novo .nav-item,
html.library-novo .folder-row,
html.library-novo .shared-link-chip {
  min-height: 40px;
  padding: 8px 10px;
  font-size: 13px;
}

html.library-novo .nav-item.active,
html.library-novo .folder-row.active {
  border-color: #b8d3f8;
  box-shadow: inset 3px 0 0 var(--novo-blue);
}

html.library-novo .section-heading-actions button {
  width: 32px;
  height: 32px;
  font-size: 20px;
}

html.library-novo .signout {
  min-height: 40px;
  font-size: 12px;
  font-weight: 600;
}

html.library-novo .main-panel {
  min-width: 0;
  background: rgba(255, 255, 255, .98);
  border-top: 3px solid var(--novo-blue);
}

html.library-novo .command-bar {
  min-height: 68px;
  gap: 10px;
  padding: 9px 10px;
  background: rgba(255, 255, 255, .96);
  border-bottom-color: var(--novo-line);
}

html.library-novo .command-cluster {
  gap: 8px;
  min-width: 340px;
}

html.library-novo .topbar-add {
  min-width: 88px;
  min-height: 46px;
  padding-inline: 15px;
  font-size: 13px;
  background: var(--novo-blue);
  border-radius: 9px;
}

html.library-novo .topbar-add:hover {
  color: #fff !important;
  background: var(--novo-blue-strong) !important;
  border-color: var(--novo-blue-strong) !important;
  transform: translateY(-1px);
}

html.library-novo .top-search {
  min-width: 180px;
  min-height: 46px;
  background: var(--novo-surface);
  border-color: var(--novo-line-strong);
  border-radius: 9px;
}

html.library-novo .top-search > input {
  min-height: 44px;
  font-size: 13px;
}

html.library-novo .toolbar {
  gap: 6px;
}

html.library-novo .command-bar .toolbar > button,
html.library-novo .command-bar .toolbar-icon,
html.library-novo .command-bar .ref-capture-sync-button,
html.library-novo .command-bar .share-toolbar-button {
  min-width: 42px;
  min-height: 44px;
  padding-inline: 11px;
  font-size: 12px;
  background: var(--novo-surface);
  border-color: var(--novo-line);
  border-radius: 8px;
}

html.library-novo .command-bar .toolbar > button[data-action="open-export"] {
  min-width: 68px;
  color: #fff;
  background: var(--novo-ink-strong);
  border-color: var(--novo-ink-strong);
}

html.library-novo .command-bar .toolbar > button[data-action="open-export"]:hover {
  color: #fff;
  background: var(--novo-blue-strong);
  border-color: var(--novo-blue-strong);
}

html.library-novo .list-header {
  min-height: 74px;
  padding: 13px 16px;
  background: #f7fafe;
  border-bottom-color: var(--novo-line);
}

html.library-novo .list-header > div:first-child {
  gap: 9px;
}

html.library-novo .list-header h1 {
  font-size: 25px;
  font-weight: 620;
}

html.library-novo .list-header > div:first-child > span {
  font-size: 12px;
}

html.library-novo .sort-row {
  gap: 6px;
}

html.library-novo .sf-select-trigger,
html.library-novo .sort-direction-button,
html.library-novo .sort-row > [data-selected-count] {
  min-height: 42px;
  padding-inline: 12px;
  font-size: 12px;
  border-color: var(--novo-line-strong);
  border-radius: 8px;
}

html.library-novo .sort-row > [data-selected-count] {
  min-width: 84px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--novo-muted);
  font-variant-numeric: tabular-nums;
}

html.library-novo .content-grid {
  padding: 0 10px 10px;
  background: #fff;
}

html.library-novo .reference-list {
  border-color: var(--novo-line);
  border-radius: 10px;
}

html.library-novo .reference-card {
  grid-template-columns: 38px minmax(0, 1fr) 126px;
  gap: 12px;
  min-height: 108px;
  padding: 15px 14px;
  border-bottom-color: var(--novo-line);
}

html.library-novo .reference-card:hover {
  background: #fafdff;
  box-shadow: inset 3px 0 0 #a5c7f5;
}

html.library-novo .reference-card.selected {
  background: var(--novo-blue-pale);
  box-shadow: inset 3px 0 0 var(--novo-blue);
}

html.library-novo .reference-title {
  margin-bottom: 3px;
  font-size: 15px;
  font-weight: 650;
  line-height: 1.32;
}

html.library-novo .reference-card .meta {
  font-size: 12px;
  line-height: 1.4;
}

html.library-novo .meta-row {
  gap: 8px;
  margin-top: 4px;
}

html.library-novo .reference-card .links {
  gap: 7px;
}

html.library-novo .reference-card .links a,
html.library-novo .reference-card .links > button,
html.library-novo .meta-primary-link a {
  font-size: 11px;
  font-weight: 650;
}

html.library-novo .reference-resource-indicator {
  width: 28px;
  height: 28px;
}

html.library-novo .card-actions {
  align-content: start;
  justify-content: end;
  gap: 6px;
}

html.library-novo .card-actions .ghost-button {
  min-height: 36px;
  padding-inline: 11px;
  font-size: 11px;
}

html.library-novo .card-action-star {
  width: 32px;
  height: 32px;
  margin-left: auto;
  color: #91a4b1;
  font-size: 0 !important;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 8px;
}

html.library-novo .card-action-star:hover,
html.library-novo .card-action-star.active {
  color: #c88408;
  background: var(--novo-warning-soft);
  border-color: #ead39e;
}

html.library-novo .abstract-preview,
html.library-novo .reference-resource-panel {
  width: min(980px, 100%);
  margin-top: 10px;
  padding: 13px;
  font-size: 12px;
  line-height: 1.55;
  border-radius: 8px;
}

html.library-novo .abstract-preview.is-loading {
  color: var(--novo-blue-strong);
  background: var(--novo-blue-pale);
  border-color: #c6dcfb;
  border-left-color: var(--novo-blue);
}

html.library-novo .abstract-preview.is-empty {
  color: var(--novo-warning);
  background: var(--novo-warning-soft);
  border-color: #ead39e;
  border-left-color: var(--novo-warning);
}

html.library-novo .abstract-preview.is-error {
  color: var(--novo-danger);
  background: var(--novo-danger-soft);
  border-color: #edc0c7;
  border-left-color: var(--novo-danger);
}

html.library-novo .empty-state {
  min-height: 100%;
}

html.library-novo .empty-state::before {
  content: "lc";
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  margin: 0 auto 16px;
  color: var(--novo-blue);
  font-size: 19px;
  font-weight: 700;
  letter-spacing: -.08em;
  background: var(--novo-blue-soft);
  border: 1px solid #bed7fa;
  border-radius: 10px;
}

html.library-novo .empty-state img,
html.library-novo .empty-state > .brand-mark {
  display: none;
}

html.library-novo .empty-state h2 {
  margin-bottom: 8px;
  font-size: clamp(28px, 2.6vw, 38px);
}

html.library-novo .empty-state p {
  color: var(--novo-muted);
  font-size: 13px;
}

html.library-novo .empty-state[data-empty-kind="trash"]::before {
  content: "×";
  color: var(--novo-muted);
  background: var(--novo-surface-soft);
  border-color: var(--novo-line);
  letter-spacing: 0;
}

html.library-novo .empty-state[data-empty-kind="starred"]::before {
  content: "★";
  color: var(--novo-warning);
  background: var(--novo-warning-soft);
  border-color: #ead39e;
  font-size: 17px;
  letter-spacing: 0;
}

html.library-novo .empty-state[data-empty-kind="search"]::before {
  content: "?";
  color: var(--novo-blue-strong);
  letter-spacing: 0;
}

/* Menus and popovers are one system, with predictable stacking and hit areas. */

html.library-novo .floating-menu,
html.library-novo .search-popover,
html.library-novo .account-menu,
html.library-novo .folder-menu,
html.library-novo .bulk-folder-menu,
html.library-novo .sf-select-content,
html.library-novo .ref-capture-sync-popover {
  z-index: 400;
  background: rgba(255, 255, 255, .99);
  border-color: var(--novo-line-strong);
  border-radius: 11px;
  box-shadow: var(--novo-shadow-md);
}

html.library-novo .floating-menu.add-menu {
  width: min(410px, calc(100vw - 28px));
  padding: 7px;
  overflow: auto;
}

html.library-novo .add-menu-item {
  min-height: 64px;
  gap: 11px;
  padding: 10px;
  border-radius: 8px;
}

html.library-novo .add-menu-icon {
  width: 34px;
  height: 34px;
}

html.library-novo .add-menu-copy strong {
  font-size: 12px;
}

html.library-novo .add-menu-copy small {
  margin-top: 2px;
  font-size: 10px;
  line-height: 1.4;
}

html.library-novo .add-menu-item kbd,
html.library-novo .search-help-row kbd {
  color: var(--novo-muted);
  background: var(--novo-surface-soft);
  border: 1px solid var(--novo-line);
  border-bottom-color: var(--novo-line-strong);
  border-radius: 5px;
  box-shadow: none;
}

html.library-novo .search-help-row,
html.library-novo .account-menu button,
html.library-novo .folder-menu-item,
html.library-novo .sf-select-item,
html.library-novo .bulk-folder-row {
  min-height: 38px;
  font-size: 11px;
}

html.library-novo .quick-filter-option {
  min-height: 40px;
  font-size: 11px;
}

html.library-novo .ref-capture-sync-popover {
  width: min(400px, calc(100vw - 24px));
}

/* Every modal shares the same readable frame and dependable footer. */

html.library-novo .modal {
  max-width: none;
  max-height: none;
  padding: 22px;
  background: transparent;
  border: 0;
}

html.library-novo .modal::backdrop,
html.library-novo .editor-modal::backdrop {
  background: rgba(8, 25, 38, .56);
  backdrop-filter: blur(6px);
}

html.library-novo .modal-card,
html.library-novo .editor-card,
html.library-novo .share-card,
html.library-novo .settings-card,
html.library-novo .export-card {
  overflow: hidden;
  border-color: var(--novo-line-strong);
  border-radius: 14px;
  box-shadow: var(--novo-shadow-lg);
}

html.library-novo .modal:not(.wide-modal) .modal-card {
  width: min(700px, calc(100vw - 44px));
  max-height: calc(100dvh - 44px);
}

html.library-novo .online-modal .modal-card,
html.library-novo .share-modal .modal-card,
html.library-novo .settings-modal .modal-card,
html.library-novo .export-modal .modal-card {
  width: min(820px, calc(100vw - 44px));
}

html.library-novo .editor-card {
  width: min(1220px, calc(100vw - 44px));
  max-height: calc(100dvh - 44px);
}

html.library-novo .modal-card > header,
html.library-novo .editor-header {
  min-height: 62px;
  padding: 14px 18px;
  background: #f7fafe;
  border-bottom: 1px solid var(--novo-line);
}

html.library-novo .modal-card > footer,
html.library-novo .editor-footer {
  min-height: 64px;
  padding: 11px 18px;
  background: #f7fafe;
  border-top: 1px solid var(--novo-line);
}

html.library-novo .modal-card h2,
html.library-novo .editor-card h2 {
  font-size: 20px;
  font-weight: 650;
}

html.library-novo .modal-card > header > button,
html.library-novo .editor-close,
html.library-novo .share-close-button {
  min-width: 38px;
  min-height: 38px;
  padding-inline: 11px;
  font-size: 11px;
}

html.library-novo .modal-card input:not([type="checkbox"]):not([type="radio"]),
html.library-novo .modal-card select,
html.library-novo .editor-section input,
html.library-novo .editor-section select {
  min-height: 43px;
  padding-inline: 11px;
  font-size: 12px;
}

html.library-novo .modal-card textarea,
html.library-novo .editor-section textarea {
  min-height: 90px;
  padding: 10px 11px;
  font-size: 12px;
  line-height: 1.5;
}

html.library-novo .modal-card label,
html.library-novo .editor-section label {
  gap: 6px;
  font-size: 11px;
  font-weight: 600;
}

html.library-novo .modal-card .primary-button,
html.library-novo .modal-card .ghost-button,
html.library-novo .editor-footer .primary-button,
html.library-novo .editor-footer .ghost-button,
html.library-novo .danger-button {
  min-height: 40px;
  padding-inline: 15px;
  font-size: 11px;
  font-weight: 650;
}

html.library-novo .import-scroll-region,
html.library-novo .online-results,
html.library-novo .share-card-body,
html.library-novo .settings-section,
html.library-novo .export-format-grid {
  padding: 16px 18px;
}

html.library-novo .import-file-panel,
html.library-novo .settings-section,
html.library-novo .share-section,
html.library-novo .export-format-option,
html.library-novo .online-card {
  background: #f7fafe;
  border-color: var(--novo-line);
  border-radius: 9px;
}

html.library-novo .editor-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 14px;
  background: var(--novo-surface-soft);
}

html.library-novo .editor-section,
html.library-novo .editor-section-core,
html.library-novo .editor-section-ids {
  gap: 10px;
  padding: 15px;
  border-color: var(--novo-line);
  border-top-width: 2px;
  border-radius: 9px;
}

html.library-novo .editor-section h3 {
  padding-bottom: 9px;
  font-size: 14px;
  border-bottom: 1px solid var(--novo-line);
}

html.library-novo .share-section {
  padding: 16px;
}

html.library-novo .integration-toggle,
html.library-novo .share-toggle-row,
html.library-novo .export-format-option {
  min-height: 52px;
}

html.library-novo .taxonomy-color-palette {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

html.library-novo .label-color-choice {
  min-height: 48px;
}

html.library-novo .confirm-card {
  border-top: 4px solid var(--novo-danger);
}

html.library-novo .beta-access-modal {
  background: rgba(8, 25, 38, .56);
  backdrop-filter: blur(6px);
}

html.library-novo .beta-access-card {
  border: 1px solid var(--novo-line-strong);
  border-radius: 14px;
  box-shadow: var(--novo-shadow-lg);
}

html.library-novo .toast {
  z-index: 1000;
  max-width: min(420px, calc(100vw - 28px));
  padding: 11px 14px;
  font-size: 11px;
}

/* Width pressure: preserve every action without crushing the search or list. */

@media (max-width: 1500px) {
  html.library-novo .library-app {
    grid-template-columns: 250px minmax(0, 1fr);
  }

  html.library-novo .command-cluster {
    min-width: 280px;
  }

  html.library-novo .command-bar {
    align-items: center;
  }

  html.library-novo .toolbar {
    max-width: 55%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
  }

  html.library-novo .toolbar::-webkit-scrollbar {
    display: none;
  }

  html.library-novo .reference-card {
    grid-template-columns: 36px minmax(0, 1fr) 118px;
  }
}

@media (max-width: 1120px) {
  html.library-novo .command-bar {
    align-items: stretch;
  }

  html.library-novo .toolbar {
    max-width: none;
  }

  html.library-novo .list-header {
    align-items: flex-start;
    gap: 10px;
  }

  html.library-novo .sort-row {
    width: 100%;
    overflow-x: auto;
    scrollbar-width: none;
  }
}

@media (max-width: 900px) {
  html.library-novo body.library-workspace-open .app-shell {
    padding: 8px;
  }

  html.library-novo .library-app {
    grid-template-columns: minmax(0, 1fr);
    height: calc(var(--library-visual-height, 100dvh) - 16px);
  }

  html.library-novo .sidebar {
    width: min(310px, 88vw);
  }

  html.library-novo .command-cluster {
    min-width: 0;
  }

  html.library-novo .mobile-library-toggle {
    min-height: 44px;
  }

  html.library-novo .editor-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  html.library-novo body.auth-screen-open .app-shell {
    width: min(100% - 20px, 560px);
    padding: 22px 0 42px;
  }

  html.library-novo body.auth-screen-open .auth-page {
    min-height: 0;
    border-radius: 14px;
  }

  html.library-novo body.auth-screen-open .auth-card {
    padding: 28px 22px;
  }

  html.library-novo body.auth-screen-open .auth-card h2 {
    font-size: clamp(34px, 10vw, 46px);
  }

  html.library-novo body.auth-screen-open .auth-art {
    min-height: 390px;
    padding: 30px 22px 48px;
  }

  html.library-novo body.auth-screen-open .auth-intro {
    margin-top: 44px;
  }

  html.library-novo body.auth-screen-open .glass-card h1 {
    font-size: clamp(42px, 13vw, 58px);
  }

  html.library-novo body.auth-screen-open .auth-proof-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    padding: 34px 0 0;
  }

  html.library-novo body.auth-screen-open .auth-proof-grid span {
    justify-content: center;
    padding-inline: 6px;
  }

  html.library-novo .command-bar {
    gap: 7px;
    padding: 8px;
  }

  html.library-novo .topbar-add {
    min-width: 44px;
  }

  html.library-novo .reference-card {
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 9px;
    padding: 13px 11px;
  }

  html.library-novo .card-actions {
    grid-column: 2;
    justify-content: flex-start;
  }

  html.library-novo .card-action-star {
    margin-left: 0;
  }

  html.library-novo .modal {
    padding: 0;
  }

  html.library-novo .modal:not(.wide-modal) .modal-card,
  html.library-novo .online-modal .modal-card,
  html.library-novo .share-modal .modal-card,
  html.library-novo .settings-modal .modal-card,
  html.library-novo .export-modal .modal-card,
  html.library-novo .editor-card {
    width: 100vw;
    max-height: calc(var(--library-visual-height, 100dvh) - 8px);
    border-radius: 14px 14px 0 0;
  }

  html.library-novo .taxonomy-color-palette {
    grid-template-columns: repeat(5, 1fr);
  }
}

@media (max-height: 760px) and (min-width: 761px) {
  html.library-novo body.auth-screen-open .app-shell {
    padding-block: 22px 36px;
  }

  html.library-novo body.auth-screen-open .auth-page {
    min-height: 590px;
  }

  html.library-novo body.auth-screen-open .auth-art,
  html.library-novo body.auth-screen-open .auth-card {
    padding-block: 34px;
  }

  html.library-novo body.auth-screen-open .auth-intro {
    margin-top: 38px;
  }

  html.library-novo body.auth-screen-open .glass-card h1 {
    font-size: clamp(46px, 4.2vw, 60px);
  }

  html.library-novo body.auth-screen-open .auth-proof-grid {
    padding-bottom: 32px;
  }

  html.library-novo body.auth-screen-open .auth-card-head {
    margin-bottom: 18px;
  }

  html.library-novo body.auth-screen-open .auth-heading {
    margin-bottom: 18px;
  }

  html.library-novo body.auth-screen-open .auth-beta-prompt {
    margin-top: 12px;
  }
}

/* State semantics shared with the Novo extraction review workspace. */

html.library-novo .ref-capture-sync-status-card[data-ref-capture-sync-state="offline"] {
  background: var(--novo-warning-soft);
  border-color: #ead39e;
}

html.library-novo .ref-capture-sync-status-card[data-ref-capture-sync-state="offline"] .ref-capture-sync-state-icon,
html.library-novo .ref-capture-sync-status-card[data-ref-capture-sync-state="offline"] strong {
  color: var(--novo-warning);
}

html.library-novo .ref-capture-sync-status-card[data-ref-capture-sync-state="error"] {
  background: var(--novo-danger-soft);
  border-color: #edc0c7;
}

html.library-novo .ref-capture-sync-status-card[data-ref-capture-sync-state="error"] .ref-capture-sync-state-icon,
html.library-novo .ref-capture-sync-status-card[data-ref-capture-sync-state="error"] strong,
html.library-novo .share-email-error {
  color: var(--novo-danger);
}

html.library-novo .modal-card .is-invalid,
html.library-novo .editor-section .is-invalid {
  border-color: var(--novo-danger) !important;
  background: var(--novo-danger-soft) !important;
  box-shadow: 0 0 0 3px rgba(195, 62, 79, .12) !important;
}

/*
 * 2026-08 focused login rebuild
 *
 * The public Novo library entrance now follows the same compact, source-trace
 * language as the Novo PDF extractor. This layer is intentionally limited to
 * the logged-out page and its invite-only dialog.
 */

html.library-novo body.auth-screen-open {
  min-width: 0;
  background:
    radial-gradient(ellipse at 78% 8%, rgba(47, 134, 255, .12), transparent 34rem),
    radial-gradient(ellipse at 10% 76%, rgba(22, 125, 93, .07), transparent 29rem),
    linear-gradient(rgba(20, 104, 232, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20, 104, 232, .045) 1px, transparent 1px),
    var(--novo-paper);
  background-size: auto, auto, 52px 52px, 52px 52px, auto;
}

html.library-novo body.auth-screen-open > .site-header.site-header--unified.site-header--unified[data-auth-site-chrome] {
  position: sticky !important;
  top: 0 !important;
  z-index: 50 !important;
  grid-template-columns: minmax(180px, 1fr) auto minmax(180px, 1fr) !important;
  width: 100% !important;
  height: 70px !important;
  min-height: 70px !important;
  padding: 0 clamp(22px, 4.15vw, 64px) !important;
  color: var(--novo-ink) !important;
  background: rgba(248, 250, 252, .94) !important;
  border: 0 !important;
  border-bottom: 1px solid var(--novo-line) !important;
  box-shadow: none !important;
  backdrop-filter: blur(16px);
}

html.library-novo body.auth-screen-open > .site-header.site-header--unified .site-brand {
  gap: 10px !important;
  color: var(--novo-ink-strong) !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  letter-spacing: -.035em !important;
}

html.library-novo body.auth-screen-open > .site-header.site-header--unified .site-brand > span:not(.home-code-brand-mark) {
  transform: none !important;
}

html.library-novo body.auth-screen-open > .site-header.site-header--unified .site-brand .home-code-brand-mark,
html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .home-code-brand-mark {
  width: auto !important;
  height: auto !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  color: var(--novo-blue) !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

html.library-novo body.auth-screen-open .novo-inline-mark {
  color: var(--novo-blue) !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: -.08em !important;
}

html.library-novo body.auth-screen-open > .site-header.site-header--unified .main-nav {
  gap: 30px !important;
  color: var(--novo-muted) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
}

html.library-novo body.auth-screen-open > .site-header.site-header--unified .main-nav a {
  color: var(--novo-muted) !important;
  font-weight: 500 !important;
}

html.library-novo body.auth-screen-open > .site-header.site-header--unified .main-nav a:hover {
  color: var(--novo-blue) !important;
}

html.library-novo body.auth-screen-open > .site-header.site-header--unified .header-tool-link {
  min-height: 36px !important;
  margin: 0 !important;
  padding: 8px 0 8px 18px !important;
  color: var(--novo-ink-soft) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  background: transparent !important;
  border: 0 !important;
  border-left: 1px solid var(--novo-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

html.library-novo body.auth-screen-open > .site-header.site-header--unified .header-tool-link:hover {
  color: var(--novo-blue) !important;
  background: transparent !important;
  border-color: var(--novo-line) !important;
}

html.library-novo body.auth-screen-open .app-shell {
  width: min(1180px, calc(100% - 40px));
  max-width: 1180px;
  min-height: auto;
  margin: 0 auto;
  padding: 38px 0 54px;
}

html.library-novo body.auth-screen-open .auth-page {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(430px, .96fr);
  width: 100%;
  min-height: 584px;
  overflow: hidden;
  background: var(--novo-surface);
  border: 1px solid var(--novo-line-strong);
  border-radius: 16px;
  box-shadow: 0 22px 64px rgba(9, 29, 45, .11);
}

html.library-novo body.auth-screen-open .auth-art,
html.library-novo body.auth-screen-open .auth-card {
  min-width: 0;
  min-height: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

html.library-novo body.auth-screen-open .auth-art {
  position: relative;
  isolation: isolate;
  padding: 42px 48px 38px;
  overflow: hidden;
  background:
    linear-gradient(rgba(20, 104, 232, .04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20, 104, 232, .04) 1px, transparent 1px),
    linear-gradient(145deg, #f5f9ff 0%, #fbfdff 56%, #eff9f5 100%);
  background-size: 34px 34px, 34px 34px, auto;
  border-right: 1px solid var(--novo-line);
}

html.library-novo body.auth-screen-open .auth-art::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 52px;
  right: -102px;
  width: 286px;
  height: 286px;
  border: 1px solid rgba(20, 104, 232, .16);
  border-radius: 50%;
  box-shadow:
    0 0 0 38px rgba(20, 104, 232, .045),
    0 0 0 76px rgba(20, 104, 232, .025);
}

html.library-novo body.auth-screen-open .auth-art::after {
  display: none;
}

html.library-novo body.auth-screen-open .glass-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

html.library-novo body.auth-screen-open .auth-brandline {
  display: flex;
  align-items: center;
  gap: 10px;
}

html.library-novo body.auth-screen-open .auth-brandline::before {
  content: "[lc]";
  display: inline-flex !important;
  width: auto;
  height: auto;
  flex: 0 0 auto;
  place-items: initial;
  color: var(--novo-blue);
  font-size: 17px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -.08em;
  background: transparent;
  border: 0;
  border-radius: 0;
}

html.library-novo body.auth-screen-open .auth-brand-copy {
  display: grid;
  gap: 1px;
  padding-left: 10px;
  border-left: 1px solid var(--novo-line-strong);
}

html.library-novo body.auth-screen-open .auth-brand-copy strong {
  color: var(--novo-ink-strong);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -.025em;
}

html.library-novo body.auth-screen-open .auth-brand-copy small {
  color: var(--novo-muted);
  font-size: 9px;
  font-weight: 650;
  line-height: 1.2;
  letter-spacing: .08em;
  text-transform: uppercase;
}

html.library-novo body.auth-screen-open .auth-intro {
  max-width: 520px;
  margin: 66px 0 0;
}

html.library-novo body.auth-screen-open .eyebrow {
  display: inline-flex;
  align-items: center;
  min-height: 0;
  padding: 0;
  color: var(--novo-blue-strong);
  font-size: 10px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .13em;
  text-transform: uppercase;
  background: transparent;
  border: 0;
  border-radius: 0;
}

html.library-novo body.auth-screen-open .eyebrow::before {
  content: "";
  width: 7px;
  height: 7px;
  margin-right: 10px;
  background: var(--novo-blue-bright);
  border: 2px solid #dcecff;
  border-radius: 50%;
  box-shadow: 0 0 0 3px rgba(47, 134, 255, .08);
}

html.library-novo body.auth-screen-open .glass-card h1 {
  max-width: 520px;
  margin: 22px 0 18px;
  color: var(--novo-ink-strong);
  font-size: clamp(46px, 4.1vw, 58px);
  font-weight: 550;
  line-height: .98;
  letter-spacing: -.06em;
}

html.library-novo body.auth-screen-open .glass-card p {
  max-width: 490px;
  margin: 0;
  color: var(--novo-muted);
  font-size: 15px;
  line-height: 1.58;
}

html.library-novo body.auth-screen-open .auth-proof-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin-top: auto;
  padding: 20px 0 0;
  border-top: 1px solid var(--novo-line);
}

html.library-novo body.auth-screen-open .auth-proof-grid span {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: center;
  min-height: 32px;
  padding: 0 12px;
  color: var(--novo-ink-soft);
  font-size: 11px;
  font-weight: 650;
  background: transparent;
  border: 0;
  border-right: 1px solid var(--novo-line);
  border-radius: 0;
}

html.library-novo body.auth-screen-open .auth-proof-grid span:first-child {
  padding-left: 0;
}

html.library-novo body.auth-screen-open .auth-proof-grid span:last-child {
  padding-right: 0;
  border-right: 0;
}

html.library-novo body.auth-screen-open .auth-proof-grid b {
  display: inline-grid;
  place-items: center;
  width: 20px;
  height: 20px;
  margin: 0;
  color: var(--novo-blue);
  font-size: 9px;
  font-weight: 750;
  background: var(--novo-blue-soft);
  border-radius: 5px;
}

html.library-novo body.auth-screen-open .auth-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 42px 48px;
  color: var(--novo-ink);
  background: rgba(255, 255, 255, .98);
}

html.library-novo body.auth-screen-open .auth-card-head {
  position: static;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 21px;
}

html.library-novo body.auth-screen-open .auth-logo-lockup {
  display: none;
}

html.library-novo body.auth-screen-open .auth-card-head::before {
  content: "Account access";
  color: var(--novo-muted);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

html.library-novo body.auth-screen-open .auth-access-pill {
  position: static;
  margin: 0;
  padding: 5px 9px;
  color: var(--novo-green);
  font-size: 9px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .09em;
  text-transform: uppercase;
  background: var(--novo-green-soft);
  border: 1px solid #b8dfd1;
  border-radius: 999px;
}

html.library-novo body.auth-screen-open .auth-heading {
  margin-bottom: 23px;
}

html.library-novo body.auth-screen-open .auth-card h2 {
  max-width: 430px;
  margin: 0 0 8px;
  color: var(--novo-ink-strong);
  font-size: clamp(37px, 3.25vw, 44px);
  font-weight: 550;
  line-height: 1;
  letter-spacing: -.055em;
}

html.library-novo body.auth-screen-open .auth-card .muted {
  margin: 0;
  color: var(--novo-muted);
  font-size: 13px;
  line-height: 1.5;
}

html.library-novo body.auth-screen-open .auth-card label {
  display: grid;
  gap: 7px;
  margin: 0 0 13px;
  color: var(--novo-ink-soft);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .015em;
}

html.library-novo body.auth-screen-open .auth-card input {
  width: 100%;
  min-height: 50px;
  padding: 0 14px;
  color: var(--novo-ink-strong);
  font-size: 13px;
  font-weight: 500;
  background: #fff;
  border: 1px solid var(--novo-line-strong);
  border-radius: 8px;
  box-shadow: inset 0 1px 0 rgba(9, 29, 45, .02);
}

html.library-novo body.auth-screen-open .auth-card input::placeholder {
  color: #8ca0ae;
  font-weight: 500;
}

html.library-novo body.auth-screen-open .auth-card input:hover {
  border-color: #9eb4c4;
}

html.library-novo body.auth-screen-open .auth-card input:focus {
  border-color: var(--novo-blue);
  outline: 0;
  box-shadow: var(--novo-focus);
}

html.library-novo body.auth-screen-open .novo-password-wrap {
  position: relative;
  display: block;
  margin-bottom: 13px;
}

html.library-novo body.auth-screen-open .novo-password-wrap label {
  margin-bottom: 0;
}

html.library-novo body.auth-screen-open .novo-password-wrap input {
  padding-right: 70px;
}

html.library-novo body.auth-screen-open .novo-password-toggle {
  position: absolute;
  top: auto;
  right: 7px;
  bottom: 8px;
  min-width: 52px;
  min-height: 34px;
  padding: 0 8px;
  color: var(--novo-blue-strong);
  font-size: 10px;
  font-weight: 700;
  background: var(--novo-blue-pale);
  border: 1px solid transparent;
  border-radius: 6px;
  transform: none;
}

html.library-novo body.auth-screen-open .novo-password-toggle:hover {
  background: var(--novo-blue-soft);
  border-color: #bcd6fa;
}

html.library-novo body.auth-screen-open .auth-card .primary-button {
  min-height: 50px;
  margin: 2px 0 0;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  background: var(--novo-blue);
  border: 1px solid var(--novo-blue);
  border-radius: 8px;
  box-shadow: 0 8px 20px rgba(20, 104, 232, .14);
}

html.library-novo body.auth-screen-open .auth-card .primary-button:hover {
  background: var(--novo-blue-strong);
  border-color: var(--novo-blue-strong);
  box-shadow: 0 10px 24px rgba(20, 104, 232, .2);
  transform: translateY(-1px);
}

html.library-novo body.auth-screen-open .novo-signin-assurance {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  min-height: 30px;
  color: var(--novo-muted);
  font-size: 9px;
  font-weight: 550;
}

html.library-novo body.auth-screen-open .novo-signin-assurance span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

html.library-novo body.auth-screen-open .novo-signin-assurance span + span::before {
  content: "";
  width: 3px;
  height: 3px;
  margin-right: 12px;
  background: #9aadb9;
  border-radius: 50%;
}

html.library-novo body.auth-screen-open .novo-signin-assurance i {
  position: relative;
  width: 9px;
  height: 8px;
  border: 1.5px solid var(--novo-green);
  border-radius: 2px;
}

html.library-novo body.auth-screen-open .novo-signin-assurance i::before {
  content: "";
  position: absolute;
  bottom: 5px;
  left: 1px;
  width: 5px;
  height: 5px;
  border: 1.5px solid var(--novo-green);
  border-bottom: 0;
  border-radius: 5px 5px 0 0;
}

html.library-novo body.auth-screen-open .auth-note {
  min-height: 0;
  margin: 0;
  color: var(--novo-danger);
  font-size: 10px;
  line-height: 1.4;
}

html.library-novo body.auth-screen-open .auth-note:not(:empty) {
  min-height: 18px;
  margin: 2px 0 4px;
  padding: 7px 9px;
  background: var(--novo-danger-soft);
  border: 1px solid #edc0c7;
  border-radius: 6px;
}

html.library-novo body.auth-screen-open .auth-beta-prompt {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  margin-top: 10px;
  padding: 12px 13px;
  background: var(--novo-blue-pale);
  border: 1px solid var(--novo-line);
  border-radius: 8px;
}

html.library-novo body.auth-screen-open .auth-beta-copy {
  display: grid;
  gap: 2px;
}

html.library-novo body.auth-screen-open .auth-beta-copy strong {
  color: var(--novo-ink-strong);
  font-size: 11px;
  font-weight: 700;
}

html.library-novo body.auth-screen-open .auth-beta-copy span {
  color: var(--novo-muted);
  font-size: 9px;
  line-height: 1.35;
}

html.library-novo body.auth-screen-open .auth-beta-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 36px;
  padding: 0 11px;
  color: var(--novo-blue-strong);
  font-size: 10px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  background: #fff;
  border: 1px solid #a8cbfa;
  border-radius: 7px;
}

html.library-novo body.auth-screen-open .auth-beta-link:hover {
  color: #fff;
  background: var(--novo-blue);
  border-color: var(--novo-blue);
}

/* The invite-only response is part of the login flow, so it shares its language. */

html.library-novo .beta-access-modal {
  padding: 22px;
  background: rgba(8, 25, 38, .58);
  backdrop-filter: blur(10px);
}

html.library-novo .beta-access-card {
  width: min(500px, 100%);
  padding: 34px;
  overflow: hidden;
  color: var(--novo-ink);
  background:
    linear-gradient(rgba(20, 104, 232, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20, 104, 232, .035) 1px, transparent 1px),
    #fff;
  background-size: 30px 30px, 30px 30px, auto;
  border: 1px solid var(--novo-line-strong);
  border-radius: 14px;
  box-shadow: var(--novo-shadow-lg);
}

html.library-novo .beta-access-card::after {
  top: -82px;
  right: -82px;
  width: 210px;
  height: 210px;
  border: 30px solid rgba(20, 104, 232, .06);
  border-radius: 50%;
  transform: none;
}

html.library-novo .beta-access-close {
  top: 16px;
  right: 16px;
  width: 34px;
  height: 34px;
  color: var(--novo-muted);
  background: #fff;
  border: 1px solid var(--novo-line);
  border-radius: 7px;
}

html.library-novo .beta-access-mark {
  position: relative;
  z-index: 1;
  display: inline-flex;
  width: auto;
  height: auto;
  color: var(--novo-blue);
  font-size: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

html.library-novo .beta-access-mark::before {
  content: "[lc]";
  font-size: 18px;
  font-weight: 600;
  letter-spacing: -.08em;
}

html.library-novo .beta-access-kicker {
  margin-top: 26px;
  padding: 5px 9px;
  color: var(--novo-green);
  font-size: 9px;
  font-weight: 700;
  background: var(--novo-green-soft);
  border: 1px solid #b8dfd1;
}

html.library-novo .beta-access-card h2 {
  max-width: 410px;
  margin: 16px 0 0;
  color: var(--novo-ink-strong);
  font-size: clamp(32px, 5vw, 40px);
  font-weight: 550;
  line-height: 1.02;
  letter-spacing: -.05em;
}

html.library-novo .beta-access-card p {
  margin-top: 13px;
  color: var(--novo-muted);
  font-size: 13px;
  line-height: 1.55;
}

html.library-novo .beta-access-actions {
  gap: 9px;
  margin-top: 22px;
}

html.library-novo .beta-access-actions .primary-button,
html.library-novo .beta-access-actions .ghost-button {
  min-height: 42px;
  padding: 0 14px;
  font-size: 11px;
  font-weight: 700;
  border-radius: 7px;
  box-shadow: none;
}

html.library-novo .beta-access-actions .primary-button {
  color: #fff;
  background: var(--novo-blue);
  border: 1px solid var(--novo-blue);
}

html.library-novo .beta-access-actions .ghost-button {
  color: var(--novo-ink-soft);
  background: #fff;
  border: 1px solid var(--novo-line-strong);
}

html.library-novo .beta-access-foot {
  gap: 0;
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid var(--novo-line);
}

html.library-novo .beta-access-foot span {
  padding: 0 12px;
  color: var(--novo-muted);
  font-size: 9px;
  font-weight: 650;
  background: transparent;
  border: 0;
  border-right: 1px solid var(--novo-line);
  border-radius: 0;
}

html.library-novo .beta-access-foot span:first-child {
  padding-left: 0;
}

html.library-novo .beta-access-foot span:last-child {
  padding-right: 0;
  border-right: 0;
}

/* A compact light footer replaces the legacy dark, page-dominating footer. */

html.library-novo body.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--novo-ink) !important;
  background: rgba(248, 250, 252, .97) !important;
  border: 0 !important;
  border-top: 1px solid var(--novo-line) !important;
  border-radius: 0 !important;
}

html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-inner {
  display: grid !important;
  grid-template-columns: minmax(230px, .8fr) minmax(0, 1.7fr) !important;
  gap: 36px 64px !important;
  width: min(1180px, 100%) !important;
  margin: 0 auto !important;
  padding: 44px 24px 26px !important;
}

html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-brand-block {
  display: grid !important;
  align-content: start !important;
  gap: 13px !important;
}

html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-logo {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  color: var(--novo-ink-strong) !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  letter-spacing: -.035em !important;
}

html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-logo strong {
  color: var(--novo-ink-strong) !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  letter-spacing: -.035em !important;
}

html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-brand-block p {
  max-width: 300px !important;
  margin: 0 !important;
  color: var(--novo-muted) !important;
  font-size: 12px !important;
  line-height: 1.55 !important;
}

html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-button {
  display: none !important;
}

html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-nav {
  display: grid !important;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr) !important;
  gap: 46px !important;
}

html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-nav div {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  align-content: start !important;
  gap: 11px 22px !important;
}

html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-nav div:last-child {
  grid-template-columns: 1fr !important;
}

html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-heading {
  grid-column: 1 / -1;
  margin: 0 0 3px !important;
  color: var(--novo-ink-strong) !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: .13em !important;
  text-transform: uppercase !important;
}

html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-nav a,
html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-bottom-nav a {
  color: var(--novo-muted) !important;
  font-size: 11px !important;
  font-weight: 550 !important;
  line-height: 1.35 !important;
  text-decoration: none !important;
}

html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-nav a:hover,
html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-bottom-nav a:hover {
  color: var(--novo-blue) !important;
}

html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-lower {
  grid-column: 1 / -1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 24px !important;
  width: 100% !important;
  padding-top: 20px !important;
  border-top: 1px solid var(--novo-line) !important;
}

html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-bottom-nav {
  display: flex !important;
  justify-content: flex-start !important;
  gap: 22px !important;
  width: auto !important;
  padding: 0 !important;
  border: 0 !important;
}

html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-signoff {
  margin: 0 !important;
  color: var(--novo-subtle) !important;
  font-size: 10px !important;
  text-align: right !important;
}

@media (max-width: 1020px) {
  html.library-novo body.auth-screen-open .app-shell {
    width: min(940px, calc(100% - 32px));
  }

  html.library-novo body.auth-screen-open .auth-page {
    grid-template-columns: minmax(0, .92fr) minmax(420px, 1.08fr);
  }

  html.library-novo body.auth-screen-open .auth-art {
    padding-inline: 38px;
  }

  html.library-novo body.auth-screen-open .auth-intro {
    margin-top: 58px;
  }

  html.library-novo body.auth-screen-open .glass-card h1 {
    font-size: 46px;
  }

  html.library-novo body.auth-screen-open .auth-card {
    padding-inline: 40px;
  }

  html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-inner {
    gap: 34px !important;
  }
}

@media (max-width: 860px) {
  html.library-novo body.auth-screen-open > .site-header.site-header--unified.site-header--unified[data-auth-site-chrome] {
    grid-template-columns: 1fr auto !important;
  }

  html.library-novo body.auth-screen-open > .site-header.site-header--unified .main-nav {
    display: none !important;
  }

  html.library-novo body.auth-screen-open .app-shell {
    width: min(600px, calc(100% - 28px));
    padding: 26px 0 42px;
  }

  html.library-novo body.auth-screen-open .auth-page {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
  }

  html.library-novo body.auth-screen-open .auth-card {
    order: -1;
    padding: 38px;
  }

  html.library-novo body.auth-screen-open .auth-art {
    min-height: 410px;
    padding: 38px;
    border-top: 1px solid var(--novo-line);
    border-right: 0;
  }

  html.library-novo body.auth-screen-open .auth-intro {
    margin-top: 54px;
  }

  html.library-novo body.auth-screen-open .glass-card h1 {
    max-width: 500px;
    font-size: clamp(44px, 9vw, 54px);
  }

  html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-inner {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }

  html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-brand-block p {
    max-width: 480px !important;
  }
}

@media (max-width: 620px) {
  html.library-novo body.auth-screen-open > .site-header.site-header--unified.site-header--unified[data-auth-site-chrome] {
    height: 62px !important;
    min-height: 62px !important;
    gap: 12px !important;
    padding: 0 14px !important;
  }

  html.library-novo body.auth-screen-open > .site-header.site-header--unified .site-brand {
    font-size: 16px !important;
  }

  html.library-novo body.auth-screen-open > .site-header.site-header--unified .header-tool-link {
    min-height: 32px !important;
    padding-left: 12px !important;
    font-size: 10px !important;
  }

  html.library-novo body.auth-screen-open .app-shell {
    width: min(100% - 20px, 540px);
    padding: 18px 0 34px;
  }

  html.library-novo body.auth-screen-open .auth-page {
    border-radius: 12px;
  }

  html.library-novo body.auth-screen-open .auth-card,
  html.library-novo body.auth-screen-open .auth-art {
    padding: 28px 22px;
  }

  html.library-novo body.auth-screen-open .auth-card h2 {
    font-size: clamp(34px, 11vw, 42px);
  }

  html.library-novo body.auth-screen-open .auth-beta-prompt {
    grid-template-columns: 1fr;
  }

  html.library-novo body.auth-screen-open .auth-beta-link {
    width: 100%;
  }

  html.library-novo body.auth-screen-open .auth-art {
    min-height: 390px;
    padding-bottom: 30px;
  }

  html.library-novo body.auth-screen-open .auth-intro {
    margin-top: 44px;
  }

  html.library-novo body.auth-screen-open .glass-card h1 {
    font-size: clamp(40px, 13vw, 50px);
  }

  html.library-novo body.auth-screen-open .auth-proof-grid {
    gap: 10px;
  }

  html.library-novo body.auth-screen-open .auth-proof-grid span {
    grid-template-columns: 20px minmax(0, 1fr);
    padding-inline: 7px;
    font-size: 10px;
  }

  html.library-novo body.auth-screen-open .novo-signin-assurance {
    gap: 8px;
  }

  html.library-novo body.auth-screen-open .novo-signin-assurance span + span::before {
    margin-right: 4px;
  }

  html.library-novo .beta-access-card {
    padding: 28px 22px;
  }

  html.library-novo .beta-access-actions {
    display: grid;
  }

  html.library-novo .beta-access-actions .primary-button,
  html.library-novo .beta-access-actions .ghost-button {
    width: 100%;
  }

  html.library-novo .beta-access-foot {
    display: grid;
    gap: 8px;
  }

  html.library-novo .beta-access-foot span {
    padding: 0;
    border: 0;
  }

  html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-inner {
    justify-items: stretch !important;
    padding: 34px 20px 24px !important;
    text-align: left !important;
  }

  html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-brand-block {
    justify-items: start !important;
  }

  html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-nav,
  html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-nav div {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    justify-items: start !important;
  }

  html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-nav {
    gap: 28px !important;
  }

  html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-lower {
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: 14px !important;
  }

  html.library-novo body.auth-screen-open > .site-footer.site-footer--unified .footer-signoff {
    text-align: left !important;
  }
}

/* Exact Novo6 wordmark and extractor-card geometry. */

html.library-novo body.auth-screen-open .novo-inline-mark .novo-wordmark-symbol {
  display: block;
  width: 31px;
  height: 29px;
  overflow: visible;
  color: var(--novo-blue);
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.15;
  shape-rendering: geometricPrecision;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-header.site-header--unified.site-header--unified[data-auth-site-chrome] .site-brand,
html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-logo {
  gap: 11px !important;
  width: max-content !important;
  min-height: 43px !important;
  padding: 7px 0 !important;
  color: var(--novo-ink-strong) !important;
  font-family: Inter, ui-sans-serif, system-ui, sans-serif !important;
  font-size: 17px !important;
  font-weight: 650 !important;
  line-height: 1.58 !important;
  letter-spacing: -.025em !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-header.site-header--unified.site-header--unified[data-auth-site-chrome] .site-brand > span:not(.home-code-brand-mark),
html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-logo strong {
  color: inherit !important;
  font-family: inherit !important;
  font-size: 17px !important;
  font-weight: 650 !important;
  line-height: 26.86px !important;
  letter-spacing: -.025em !important;
}

html.library-novo body.auth-screen-open .app-shell {
  width: min(1040px, calc(100% - 40px));
  max-width: 1040px;
}

html.library-novo body.auth-screen-open .auth-page {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 1.5px solid #98afbf;
}

html.library-novo body.auth-screen-open .auth-art {
  padding-inline: 44px;
  border-right: 1.5px solid #b0c3d0;
}

html.library-novo body.auth-screen-open .auth-card {
  padding-inline: 44px;
}

html.library-novo body.auth-screen-open .glass-card h1 {
  font-size: clamp(45px, 3.75vw, 52px);
}

html.library-novo body.auth-screen-open .auth-card h2 {
  font-size: clamp(36px, 3vw, 40px);
}

@media (max-width: 1020px) {
  html.library-novo body.auth-screen-open .app-shell {
    width: min(940px, calc(100% - 32px));
    max-width: 940px;
  }

  html.library-novo body.auth-screen-open .auth-page {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 860px) {
  html.library-novo body.auth-screen-open .app-shell {
    width: min(600px, calc(100% - 28px));
  }

  html.library-novo body.auth-screen-open .auth-page {
    display: flex;
  }

  html.library-novo body.auth-screen-open .auth-art {
    border-top: 1.5px solid #b0c3d0;
    border-right: 0;
  }
}

@media (max-width: 620px) {
  html.library-novo body.auth-screen-open .novo-inline-mark .novo-wordmark-symbol {
    width: 30px;
    height: 28px;
  }
}

@media (max-height: 760px) and (min-width: 861px) {
  html.library-novo body.auth-screen-open .app-shell {
    padding: 22px 0 36px;
  }

  html.library-novo body.auth-screen-open .auth-page {
    min-height: 550px;
  }

  html.library-novo body.auth-screen-open .auth-art,
  html.library-novo body.auth-screen-open .auth-card {
    padding-top: 32px;
    padding-bottom: 32px;
  }

  html.library-novo body.auth-screen-open .auth-intro {
    margin-top: 46px;
  }

  html.library-novo body.auth-screen-open .glass-card h1 {
    font-size: clamp(44px, 3.85vw, 54px);
  }

  html.library-novo body.auth-screen-open .auth-card-head {
    margin-bottom: 16px;
  }

  html.library-novo body.auth-screen-open .auth-heading {
    margin-bottom: 17px;
  }

  html.library-novo body.auth-screen-open .auth-card label {
    margin-bottom: 10px;
  }

  html.library-novo body.auth-screen-open .auth-card input,
  html.library-novo body.auth-screen-open .auth-card .primary-button {
    min-height: 46px;
  }

  html.library-novo body.auth-screen-open .auth-beta-prompt {
    margin-top: 7px;
  }
}

/* Specificity guard: the shared legacy chrome intentionally ships with strong
   selectors, so the route-scoped Novo chrome must be equally authoritative. */

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-header.site-header--unified.site-header--unified[data-auth-site-chrome] .site-brand {
  gap: 10px !important;
  color: var(--novo-ink-strong) !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  letter-spacing: -.035em !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-header.site-header--unified.site-header--unified[data-auth-site-chrome] .main-nav {
  gap: 30px !important;
  color: var(--novo-muted) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-header.site-header--unified.site-header--unified[data-auth-site-chrome] .main-nav a {
  color: var(--novo-muted) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-header.site-header--unified.site-header--unified[data-auth-site-chrome] .header-tool-link {
  min-height: 36px !important;
  padding: 8px 0 8px 18px !important;
  color: var(--novo-ink-soft) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  background: transparent !important;
  border: 0 !important;
  border-left: 1px solid var(--novo-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-header.site-header--unified.site-header--unified[data-auth-site-chrome] .header-tool-link:hover {
  color: var(--novo-blue) !important;
  background: transparent !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-inner {
  display: grid !important;
  grid-template-columns: minmax(230px, .8fr) minmax(0, 1.7fr) !important;
  gap: 36px 64px !important;
  width: min(1180px, 100%) !important;
  margin: 0 auto !important;
  padding: 44px 24px 26px !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-brand-block {
  gap: 13px !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-logo {
  gap: 10px !important;
  color: var(--novo-ink-strong) !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  letter-spacing: -.035em !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-logo strong {
  color: var(--novo-ink-strong) !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  letter-spacing: -.035em !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-brand-block p {
  max-width: 300px !important;
  color: var(--novo-muted) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-button {
  display: none !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-nav {
  grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr) !important;
  gap: 46px !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-nav div {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 11px 22px !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-nav div:last-child {
  grid-template-columns: 1fr !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-heading {
  grid-column: 1 / -1 !important;
  margin: 0 0 3px !important;
  color: var(--novo-ink-strong) !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  letter-spacing: .13em !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-nav a,
html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-bottom-nav a {
  color: var(--novo-muted) !important;
  font-size: 11px !important;
  font-weight: 550 !important;
  line-height: 1.35 !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-lower {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 24px !important;
  padding-top: 20px !important;
  border-top: 1px solid var(--novo-line) !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-bottom-nav {
  justify-content: flex-start !important;
  gap: 22px !important;
  width: auto !important;
  padding: 0 !important;
  border: 0 !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-signoff {
  color: var(--novo-subtle) !important;
  font-size: 10px !important;
  text-align: right !important;
}

@media (max-width: 860px) {
  html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-header.site-header--unified.site-header--unified[data-auth-site-chrome] .main-nav {
    display: none !important;
  }

  html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-inner {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }
}

@media (max-width: 620px) {
  html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-header.site-header--unified.site-header--unified[data-auth-site-chrome] .site-brand {
    font-size: 16px !important;
  }

  html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-header.site-header--unified.site-header--unified[data-auth-site-chrome] .header-tool-link {
    min-height: 32px !important;
    padding-left: 12px !important;
    font-size: 10px !important;
  }

  html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-inner {
    justify-items: stretch !important;
    padding: 34px 20px 24px !important;
    text-align: left !important;
  }

  html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-nav,
  html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-nav div {
    grid-template-columns: 1fr !important;
    justify-items: start !important;
  }

  html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-nav {
    gap: 28px !important;
  }

  html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-lower {
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: 14px !important;
  }

  html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-signoff {
    text-align: left !important;
  }
}

/* Final wordmark parity with the Novo extractor. */
html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-header.site-header--unified.site-header--unified[data-auth-site-chrome] .site-brand,
html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-logo {
  gap: 11px !important;
  width: max-content !important;
  min-height: 43px !important;
  padding: 7px 0 !important;
  color: var(--novo-ink-strong) !important;
  font-family: Inter, ui-sans-serif, system-ui, sans-serif !important;
  font-size: 17px !important;
  font-weight: 650 !important;
  line-height: 1.58 !important;
  letter-spacing: -.025em !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-header.site-header--unified.site-header--unified[data-auth-site-chrome] .site-brand > span:not(.home-code-brand-mark),
html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-logo strong {
  color: inherit !important;
  font-family: inherit !important;
  font-size: 17px !important;
  font-weight: 650 !important;
  line-height: 26.86px !important;
  letter-spacing: -.025em !important;
}

@media (max-width: 620px) {
  html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-header.site-header--unified.site-header--unified[data-auth-site-chrome] .site-brand,
  html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-logo {
    gap: 10px !important;
  }
}

/* Current production Novo extractor wordmark (2026-08-17). */
html.library-novo body.auth-screen-open .novo-wordmark-symbol,
html.library-novo body.auth-screen-open .novo-auth-wordmark-symbol,
html.library-novo .novo-beta-wordmark-symbol {
  display: block;
  width: 40px;
  height: 38px;
  overflow: visible;
  color: var(--novo-blue);
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.15;
  shape-rendering: geometricPrecision;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-header.site-header--unified.site-header--unified[data-auth-site-chrome] .site-brand,
html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-logo {
  gap: 14px !important;
  min-height: 52px !important;
  color: var(--novo-ink-strong) !important;
  font-size: 22px !important;
  font-weight: 650 !important;
  line-height: 1.58 !important;
  letter-spacing: -.025em !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-header.site-header--unified.site-header--unified[data-auth-site-chrome] .site-brand > span:not(.home-code-brand-mark),
html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-logo strong {
  font-size: 22px !important;
  font-weight: 650 !important;
  line-height: 34.76px !important;
  letter-spacing: -.025em !important;
}

html.library-novo body.auth-screen-open .auth-brandline.novo-live-wordmark {
  gap: 14px;
}

html.library-novo body.auth-screen-open .auth-brandline.novo-live-wordmark::before {
  content: none !important;
  display: none !important;
}

html.library-novo body.auth-screen-open .auth-brandline.novo-live-wordmark .auth-brand-copy {
  gap: 0;
  padding-left: 0;
  border-left: 0;
}

html.library-novo body.auth-screen-open .auth-brandline.novo-live-wordmark .auth-brand-copy strong {
  color: var(--novo-ink-strong);
  font-size: 22px;
  font-weight: 650;
  line-height: 1.1;
  letter-spacing: -.025em;
}

html.library-novo body.auth-screen-open .auth-brandline.novo-live-wordmark .auth-brand-copy small {
  margin-top: 2px;
}

html.library-novo .beta-access-mark.novo-live-beta-mark {
  display: inline-flex;
  width: 40px;
  height: 38px;
  align-items: center;
  justify-content: center;
}

html.library-novo .beta-access-mark.novo-live-beta-mark::before {
  content: none !important;
  display: none !important;
}

@media (max-width: 640px) {
  html.library-novo body.auth-screen-open .novo-inline-mark,
  html.library-novo body.auth-screen-open .novo-wordmark-symbol,
  html.library-novo body.auth-screen-open .novo-auth-wordmark-symbol,
  html.library-novo .novo-beta-wordmark-symbol {
    width: 39px !important;
    height: 36px !important;
    flex-basis: 39px !important;
  }

  html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-header.site-header--unified.site-header--unified[data-auth-site-chrome] .site-brand,
  html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-logo,
  html.library-novo body.auth-screen-open .auth-brandline.novo-live-wordmark {
    gap: 13px !important;
  }
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-header.site-header--unified.site-header--unified[data-auth-site-chrome] .novo-inline-mark .novo-wordmark-symbol,
html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .novo-inline-mark .novo-wordmark-symbol {
  width: 40px !important;
  height: 38px !important;
}

html.library-novo body.auth-screen-open .auth-brandline.novo-live-wordmark .auth-brand-copy strong {
  line-height: 34.76px;
}

@media (max-width: 640px) {
  html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-header.site-header--unified.site-header--unified[data-auth-site-chrome] .novo-inline-mark .novo-wordmark-symbol,
  html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .novo-inline-mark .novo-wordmark-symbol {
    width: 39px !important;
    height: 36px !important;
  }
}

/* Novo login footer: homepage-complete content with clearer product grouping. */

.novo-footer-inner {
  display: none;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] {
  overflow: hidden !important;
  color: var(--novo-ink) !important;
  background: #f7fafc !important;
  border-top: 1.5px solid #b8cad6 !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome]::before {
  position: absolute !important;
  inset: 0 0 auto !important;
  display: block !important;
  width: 100% !important;
  height: 3px !important;
  content: "" !important;
  background: linear-gradient(90deg, var(--novo-blue) 0 34%, #65a5f4 60%, var(--novo-green) 100%) !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .footer-inner--legacy {
  display: none !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .novo-footer-inner {
  display: grid !important;
  grid-template-columns: minmax(240px, .76fr) minmax(0, 1.74fr) !important;
  gap: 48px 76px !important;
  width: min(1160px, 100%) !important;
  margin: 0 auto !important;
  padding: 56px 24px 28px !important;
}

html.library-novo body.auth-screen-open .novo-footer-lead {
  display: grid;
  align-content: start;
  justify-items: start;
  gap: 17px;
}

html.library-novo body.auth-screen-open .novo-footer-brand-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 14px;
}

html.library-novo body.auth-screen-open .novo-footer-brand-row .footer-logo {
  gap: 12px !important;
  min-height: 40px !important;
  padding: 0 !important;
  color: var(--novo-ink-strong) !important;
  font-size: 21px !important;
  font-weight: 650 !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
}

html.library-novo body.auth-screen-open .novo-footer-brand-row .footer-logo strong {
  color: inherit !important;
  font-size: 21px !important;
  font-weight: 650 !important;
  line-height: 1.2 !important;
  letter-spacing: -.025em !important;
}

html.library-novo body.auth-screen-open .novo-footer-edition {
  display: inline-flex;
  min-height: 24px;
  align-items: center;
  padding: 4px 9px;
  color: var(--novo-blue-dark);
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .11em;
  text-transform: uppercase;
  background: var(--novo-blue-soft);
  border: 1px solid #c5daf4;
  border-radius: 999px;
}

html.library-novo body.auth-screen-open .novo-footer-lead > p {
  max-width: 330px;
  margin: 0;
  color: var(--novo-muted);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.62;
}

html.library-novo body.auth-screen-open .novo-footer-primary {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  margin-top: 3px;
  padding: 9px 14px 9px 16px;
  color: #fff !important;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  background: var(--novo-blue);
  border: 1px solid var(--novo-blue);
  border-radius: 7px;
  box-shadow: 0 7px 18px rgba(20, 104, 232, .13);
  transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

html.library-novo body.auth-screen-open .novo-footer-primary:hover {
  color: #fff !important;
  background: var(--novo-blue-dark);
  border-color: var(--novo-blue-dark);
  box-shadow: 0 9px 22px rgba(20, 104, 232, .18);
  transform: translateY(-1px);
}

html.library-novo body.auth-screen-open .novo-footer-directory {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, .82fr) minmax(0, .82fr);
  gap: 34px;
}

html.library-novo body.auth-screen-open .novo-footer-group {
  display: grid;
  align-content: start;
  justify-items: start;
  gap: 12px;
  min-width: 0;
}

html.library-novo body.auth-screen-open .novo-footer-group .footer-heading {
  margin: 0 0 4px !important;
  color: var(--novo-ink-strong) !important;
  font-size: 9px !important;
  font-weight: 750 !important;
  line-height: 1.2 !important;
  letter-spacing: .13em !important;
  text-transform: uppercase !important;
}

html.library-novo body.auth-screen-open .novo-footer-group > a {
  color: var(--novo-muted) !important;
  font-size: 11px !important;
  font-weight: 550 !important;
  line-height: 1.4 !important;
  text-decoration: none !important;
  transition: color 150ms ease, transform 150ms ease;
}

html.library-novo body.auth-screen-open .novo-footer-group > a:hover {
  color: var(--novo-blue) !important;
  transform: translateX(2px);
}

html.library-novo body.auth-screen-open .novo-footer-group .novo-footer-feature-link {
  display: grid;
  gap: 3px;
  padding-left: 12px;
  border-left: 2px solid #d3e0e9;
}

html.library-novo body.auth-screen-open .novo-footer-group .novo-footer-feature-link:hover {
  border-left-color: var(--novo-blue);
}

html.library-novo body.auth-screen-open .novo-footer-feature-link strong {
  color: var(--novo-ink-soft);
  font-size: 11px;
  font-weight: 650;
  line-height: 1.35;
}

html.library-novo body.auth-screen-open .novo-footer-feature-link small {
  max-width: 210px;
  color: var(--novo-subtle);
  font-size: 9.5px;
  font-weight: 450;
  line-height: 1.45;
}

html.library-novo body.auth-screen-open .novo-footer-lower {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  min-width: 0;
  padding-top: 24px;
  border-top: 1px solid var(--novo-line);
}

html.library-novo body.auth-screen-open .novo-footer-lower .footer-signoff {
  margin: 0 !important;
  color: var(--novo-subtle) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
}

html.library-novo body.auth-screen-open .novo-footer-utility {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 20px;
}

html.library-novo body.auth-screen-open .novo-footer-utility a {
  color: var(--novo-muted);
  font-size: 10px;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
}

html.library-novo body.auth-screen-open .novo-footer-utility a:hover {
  color: var(--novo-blue);
}

html.library-novo body.auth-screen-open .novo-footer-lower .footer-signoff {
  text-align: right !important;
}

@media (max-width: 940px) {
  html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .novo-footer-inner {
    grid-template-columns: 1fr !important;
    gap: 38px !important;
  }

  html.library-novo body.auth-screen-open .novo-footer-lead > p {
    max-width: 540px;
  }
}

@media (max-width: 680px) {
  html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .novo-footer-inner {
    padding: 44px 20px 24px !important;
  }

  html.library-novo body.auth-screen-open .novo-footer-directory {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px 26px;
  }

  html.library-novo body.auth-screen-open .novo-footer-group--library {
    grid-column: 1 / -1;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  html.library-novo body.auth-screen-open .novo-footer-group--library .footer-heading {
    grid-column: 1 / -1;
  }

  html.library-novo body.auth-screen-open .novo-footer-feature-link small {
    max-width: none;
  }

  html.library-novo body.auth-screen-open .novo-footer-lower {
    display: flex;
  }

  html.library-novo body.auth-screen-open .novo-footer-utility {
    justify-content: flex-start;
  }
}

@media (max-width: 480px) {
  html.library-novo body.auth-screen-open .novo-footer-directory,
  html.library-novo body.auth-screen-open .novo-footer-group--library {
    grid-template-columns: 1fr;
  }

  html.library-novo body.auth-screen-open .novo-footer-group--library .footer-heading {
    grid-column: auto;
  }

  html.library-novo body.auth-screen-open .novo-footer-lower {
    flex-direction: column;
    align-items: start;
    gap: 12px;
  }

  html.library-novo body.auth-screen-open .novo-footer-utility {
    justify-content: flex-start;
  }

  html.library-novo body.auth-screen-open .novo-footer-lower .footer-signoff {
    text-align: left !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html.library-novo body.auth-screen-open .novo-footer-primary,
  html.library-novo body.auth-screen-open .novo-footer-group > a {
    transition: none;
  }
}

/* Final login spacing, password-control, and blue footer refinement. */

html.library-novo.library-novo body.auth-screen-open.auth-screen-open .app-shell {
  padding-top: 62px !important;
  padding-bottom: 86px !important;
}

html.library-novo body.auth-screen-open .novo-password-wrap input {
  padding-right: 66px;
}

html.library-novo body.auth-screen-open .novo-password-toggle {
  right: 10px;
  bottom: 10px;
  min-width: 42px;
  min-height: 30px;
  padding: 0 5px;
  color: var(--novo-blue-strong);
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 5px;
  box-shadow: none;
}

html.library-novo body.auth-screen-open .novo-password-toggle:hover,
html.library-novo body.auth-screen-open .novo-password-toggle[aria-pressed="true"] {
  color: var(--novo-blue-strong);
  background: var(--novo-blue-pale);
  border-color: #c9dcf3;
}

html.library-novo body.auth-screen-open .novo-password-toggle:focus-visible {
  outline: 2px solid var(--novo-blue);
  outline-offset: 1px;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] {
  color: #f7fbff !important;
  background:
    radial-gradient(circle at 18% -28%, rgba(137, 198, 255, .32), transparent 28rem),
    radial-gradient(circle at 94% 118%, rgba(91, 211, 190, .16), transparent 25rem),
    linear-gradient(126deg, #155eb4 0%, #1d70cf 54%, #246bb5 100%) !important;
  border-top: 0 !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome]::before {
  height: 3px !important;
  background: linear-gradient(90deg, #8fcbff 0%, #d7eeff 48%, #7fd8c0 100%) !important;
  opacity: .92;
}

html.library-novo body.auth-screen-open .novo-footer-brand-row .footer-logo,
html.library-novo body.auth-screen-open .novo-footer-brand-row .footer-logo strong,
html.library-novo body.auth-screen-open .novo-footer-group .footer-heading,
html.library-novo body.auth-screen-open .novo-footer-feature-link strong {
  color: #fff !important;
}

html.library-novo body.auth-screen-open .novo-footer-edition {
  color: #f5fbff;
  background: rgba(255, 255, 255, .12);
  border-color: rgba(225, 241, 255, .34);
}

html.library-novo body.auth-screen-open .novo-footer-lead > p {
  color: #dcecff !important;
}

html.library-novo body.auth-screen-open .novo-footer-primary {
  color: #0d57aa !important;
  background: #fff;
  border-color: #fff;
  box-shadow: 0 9px 22px rgba(7, 48, 97, .18);
}

html.library-novo body.auth-screen-open .novo-footer-primary:hover {
  color: #073f7d !important;
  background: #edf7ff;
  border-color: #edf7ff;
  box-shadow: 0 11px 26px rgba(7, 48, 97, .23);
}

html.library-novo body.auth-screen-open .novo-footer-group > a,
html.library-novo body.auth-screen-open .novo-footer-feature-link small,
html.library-novo body.auth-screen-open .novo-footer-lower .footer-signoff,
html.library-novo body.auth-screen-open .novo-footer-utility a {
  color: #d8e9fb !important;
}

html.library-novo body.auth-screen-open .novo-footer-group > a:hover,
html.library-novo body.auth-screen-open .novo-footer-utility a:hover {
  color: #fff !important;
}

html.library-novo body.auth-screen-open .novo-footer-group .novo-footer-feature-link {
  border-left-color: rgba(223, 240, 255, .34);
}

html.library-novo body.auth-screen-open .novo-footer-group .novo-footer-feature-link:hover {
  border-left-color: #fff;
}

html.library-novo body.auth-screen-open .novo-footer-lower {
  border-top-color: rgba(225, 241, 255, .28);
}

@media (max-width: 860px) {
  html.library-novo.library-novo body.auth-screen-open.auth-screen-open .app-shell {
    padding-top: 42px !important;
    padding-bottom: 60px !important;
  }
}

@media (max-width: 620px) {
  html.library-novo.library-novo body.auth-screen-open.auth-screen-open .app-shell {
    padding-top: 28px !important;
    padding-bottom: 46px !important;
  }

  html.library-novo body.auth-screen-open .novo-password-toggle {
    right: 8px;
  }
}

@media (max-height: 760px) and (min-width: 861px) {
  html.library-novo.library-novo body.auth-screen-open.auth-screen-open .app-shell {
    padding-top: 40px !important;
    padding-bottom: 58px !important;
  }

  html.library-novo body.auth-screen-open .novo-password-wrap label {
    margin-bottom: 0 !important;
  }

  html.library-novo body.auth-screen-open .novo-password-toggle {
    bottom: 8px;
  }
}

/* Split footer: a lively pale-blue directory over a distinct blue utility band. */
html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] {
  color: var(--novo-ink) !important;
  background:
    radial-gradient(circle at 13% -34%, rgba(55, 137, 232, .21), transparent 29rem),
    radial-gradient(circle at 92% 118%, rgba(55, 171, 145, .12), transparent 27rem),
    linear-gradient(128deg, #e4f1ff 0%, #edf7ff 54%, #e8f5f7 100%) !important;
  border-top: 1px solid #a9c5dd !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome]::before {
  background: linear-gradient(90deg, #1875dd 0%, #6daff2 52%, #3ca78d 100%) !important;
  opacity: 1;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .novo-footer-inner {
  padding-bottom: 0 !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .novo-footer-inner .footer-logo,
html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .novo-footer-inner .footer-logo strong,
html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .novo-footer-inner .footer-heading,
html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .novo-footer-inner .novo-footer-feature-link strong {
  color: var(--novo-ink-strong) !important;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .novo-footer-inner .novo-inline-mark .novo-wordmark-symbol {
  color: var(--novo-blue) !important;
}

html.library-novo body.auth-screen-open .novo-footer-edition {
  color: #0b58ad;
  background: rgba(255, 255, 255, .52);
  border-color: #b7d2ec;
}

html.library-novo body.auth-screen-open .novo-footer-lead > p {
  color: #4e687d !important;
}

html.library-novo body.auth-screen-open .novo-footer-primary {
  color: #fff !important;
  background: var(--novo-blue);
  border-color: var(--novo-blue);
  box-shadow: 0 8px 20px rgba(20, 104, 232, .16);
}

html.library-novo body.auth-screen-open .novo-footer-primary:hover {
  color: #fff !important;
  background: var(--novo-blue-strong);
  border-color: var(--novo-blue-strong);
  box-shadow: 0 10px 24px rgba(20, 104, 232, .22);
}

html.library-novo body.auth-screen-open .novo-footer-group > a {
  color: #49657a !important;
}

html.library-novo body.auth-screen-open .novo-footer-feature-link small {
  color: #688095 !important;
}

html.library-novo body.auth-screen-open .novo-footer-group > a:hover {
  color: var(--novo-blue) !important;
}

html.library-novo body.auth-screen-open .novo-footer-group .novo-footer-feature-link {
  border-left-color: #b6cee2;
}

html.library-novo body.auth-screen-open .novo-footer-group .novo-footer-feature-link:hover {
  border-left-color: var(--novo-blue);
}

html.library-novo body.auth-screen-open .novo-footer-lower {
  position: relative;
  isolation: isolate;
  min-height: 68px;
  margin-top: 0;
  padding: 23px 0 24px;
  border-top: 0;
}

html.library-novo body.auth-screen-open .novo-footer-lower::before {
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100vw;
  content: "";
  background:
    radial-gradient(circle at 18% -120%, rgba(137, 198, 255, .25), transparent 22rem),
    linear-gradient(90deg, #155eb4 0%, #236cac 52%, #22735f 100%);
  box-shadow: inset 0 1px rgba(220, 239, 255, .24);
  transform: translateX(-50%);
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .novo-footer-inner .novo-footer-utility a,
html.library-novo.library-novo body.auth-screen-open.auth-screen-open > .site-footer.site-footer--unified.site-footer--unified[data-auth-site-chrome] .novo-footer-inner .footer-signoff {
  color: #e3f0fd !important;
}

html.library-novo body.auth-screen-open .novo-footer-utility a:hover {
  color: #fff !important;
}

@media (max-width: 480px) {
  html.library-novo body.auth-screen-open .novo-footer-lower {
    min-height: 104px;
    padding-top: 20px;
    padding-bottom: 22px;
  }
}

/* Authenticated Novo precision repair: floating layers, responsive actions,
   current [lc] identity, and one coherent source-review visual system. */

html.library-novo body.library-workspace-open .sidebar,
html.library-novo body.library-workspace-open .main-panel {
  border-width: 1.5px;
  border-color: var(--novo-line-strong);
}

html.library-novo body.library-workspace-open .sidebar,
html.library-novo body.library-workspace-open .main-panel {
  border-top-width: 1.5px;
  border-top-color: var(--novo-line-strong);
}

html.library-novo .brand-row::before {
  content: none !important;
  display: none !important;
}

html.library-novo .brand-row > .sidebar-brand-mark.novo-live-workspace-mark {
  display: grid !important;
  width: 42px;
  height: 42px;
  place-items: center;
  color: var(--novo-blue);
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

html.library-novo .novo-workspace-wordmark-symbol,
html.library-novo .novo-sync-wordmark-symbol {
  display: block;
  overflow: visible;
  color: var(--novo-blue);
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.15;
  shape-rendering: geometricPrecision;
}

html.library-novo .novo-workspace-wordmark-symbol {
  width: 40px;
  height: 38px;
}

html.library-novo .novo-sync-wordmark-symbol {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
}

html.library-novo .command-bar {
  isolation: isolate;
}

html.library-novo .command-cluster {
  min-width: 0;
  flex: 1 1 420px;
}

html.library-novo .command-cluster .top-search {
  width: auto;
  max-width: none;
  min-width: 180px;
  flex: 1 1 340px;
}

html.library-novo .toolbar {
  max-width: none;
  overflow: visible;
}

html.library-novo .ref-capture-sync-button {
  width: auto;
  min-width: 44px;
}

html.library-novo .ref-capture-sync-button > [data-ref-capture-sync-label] {
  display: inline;
}

html.library-novo .list-header:has(.sf-select-content:not(.hidden)) {
  z-index: 80;
}

html.library-novo .sort-row .sf-select:has(.sf-select-content:not(.hidden)) {
  z-index: 20;
}

html.library-novo .sort-row .sf-select-content {
  max-width: min(280px, calc(100vw - 32px));
}

html.library-novo .empty-state {
  display: flex;
  min-height: 100%;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 16px;
  padding: 40px 24px;
}

html.library-novo .empty-state::before {
  flex: 0 0 auto;
  margin: 0;
}

html.library-novo .empty-state > div {
  display: grid;
  max-width: 560px;
  justify-items: center;
  gap: 8px;
  text-align: center;
}

html.library-novo .empty-state > div::before {
  content: none !important;
  display: none !important;
}

html.library-novo .empty-state h2 {
  margin: 0;
  font-size: clamp(24px, 2vw, 31px);
  font-weight: 650;
  line-height: 1.08;
  letter-spacing: -.035em;
}

html.library-novo .empty-state p {
  margin: 0;
  font-size: 13px;
  line-height: 1.55;
}

html.library-novo .empty-actions {
  margin-top: 10px;
}

html.library-novo .add-menu-icon.share-svg::before,
html.library-novo .add-menu-icon.share-svg::after {
  content: none !important;
  display: none !important;
}

html.library-novo .add-menu-icon.share-svg {
  display: grid;
  place-items: center;
  color: var(--novo-blue-strong);
}

html.library-novo .add-menu-icon.share-svg .lc-icon {
  display: block;
  width: 19px;
  height: 19px;
}

html.library-novo .modal-card > header > button:not(.share-close-button),
html.library-novo .editor-close {
  position: relative;
  width: 38px;
  min-width: 38px;
  height: 38px;
  min-height: 38px;
  padding: 0;
  overflow: hidden;
  color: var(--novo-muted);
  font-size: 0 !important;
}

html.library-novo .modal-card > header > button:not(.share-close-button)::before,
html.library-novo .modal-card > header > button:not(.share-close-button)::after,
html.library-novo .editor-close::before,
html.library-novo .editor-close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 15px;
  height: 1.75px;
  border-radius: 999px;
  background: currentColor;
}

html.library-novo .modal-card > header > button:not(.share-close-button)::before,
html.library-novo .editor-close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

html.library-novo .modal-card > header > button:not(.share-close-button)::after,
html.library-novo .editor-close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

@media (max-width: 1280px) and (min-width: 901px) {
  html.library-novo .command-bar {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
  }

  html.library-novo .toolbar {
    width: 100%;
    justify-content: flex-end;
    overflow-x: auto;
    scrollbar-width: none;
  }

  html.library-novo .toolbar::-webkit-scrollbar {
    display: none;
  }
}

@media (max-width: 1120px) {
  html.library-novo .sort-row {
    overflow: visible !important;
  }
}

@media (max-width: 1024px) {
  html.library-novo .sort-row {
    grid-template-columns: minmax(106px, .95fr) 42px minmax(0, 1.18fr) minmax(0, .87fr);
    overflow: visible !important;
  }

  html.library-novo #app[data-has-selection="true"] .sort-row {
    grid-template-columns: minmax(106px, .85fr) 42px minmax(0, 1.1fr) minmax(0, .85fr) auto;
  }
}

@media (max-width: 760px) {
  html.library-novo dialog.modal:not(.editor-modal):not([data-dialog="import"])[open] {
    width: calc(100vw - 16px) !important;
    max-width: calc(100vw - 16px) !important;
    max-height: calc(var(--library-visual-height, 100dvh) - 16px) !important;
    margin: auto !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  html.library-novo .modal:not(.wide-modal) .modal-card,
  html.library-novo .online-modal .modal-card,
  html.library-novo .share-modal .modal-card,
  html.library-novo .settings-modal .modal-card,
  html.library-novo .export-modal .modal-card,
  html.library-novo .editor-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden;
  }

  html.library-novo .modal-card > *,
  html.library-novo .share-card-body,
  html.library-novo .settings-section,
  html.library-novo .export-format-grid,
  html.library-novo .online-results,
  html.library-novo .online-actions {
    min-width: 0;
  }

  html.library-novo .online-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  html.library-novo .reference-resource-indicator {
    width: 36px;
    height: 36px;
  }

  html.library-novo .card-actions .ghost-button,
  html.library-novo .card-action-star {
    min-height: 42px;
  }

  html.library-novo .card-action-star {
    width: 42px;
    height: 42px;
    border-color: var(--novo-line);
    background: var(--novo-surface);
  }
}

@media (max-width: 700px) {
  html.library-novo .command-cluster .top-search,
  html.library-novo .command-cluster .top-search > input {
    min-width: 0;
  }

  html.library-novo #app .toolbar,
  html.library-novo #app[data-has-selection="false"] .toolbar,
  html.library-novo #app[data-has-selection="true"] .toolbar {
    display: flex !important;
    min-height: 44px;
    grid-template-columns: none !important;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    padding-bottom: 1px;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none;
  }

  html.library-novo #app .toolbar::-webkit-scrollbar {
    display: none;
  }

  html.library-novo #app .toolbar > button,
  html.library-novo #app .toolbar > .bulk-folder-control,
  html.library-novo #app .toolbar > .ref-capture-sync-control,
  html.library-novo #app .toolbar .folder-picker-button,
  html.library-novo #app .toolbar .ref-capture-sync-button {
    width: auto !important;
    min-width: max-content !important;
    max-width: none !important;
    flex: 0 0 auto !important;
  }

  html.library-novo .command-bar .toolbar > button:not(.toolbar-icon),
  html.library-novo .toolbar .toolbar-icon,
  html.library-novo .ref-capture-sync-button {
    min-height: 42px;
    padding-inline: 10px !important;
    font-size: 11px;
  }

  html.library-novo .ref-capture-sync-button > [data-ref-capture-sync-label] {
    font-size: 0;
  }

  html.library-novo .ref-capture-sync-button > [data-ref-capture-sync-label]::after {
    content: "Capture";
    font-size: 11px;
  }

  html.library-novo .ref-capture-sync-popover {
    top: 124px;
    max-height: calc(var(--library-visual-height, 100dvh) - 140px);
  }

  html.library-novo .sort-row,
  html.library-novo #app[data-has-selection="true"] .sort-row {
    grid-template-columns: 96px 38px minmax(0, 1fr) minmax(100px, 1fr);
    gap: 5px;
  }

  html.library-novo .sort-row .sf-select-trigger {
    min-height: 40px;
    padding-inline: 6px;
    gap: 5px;
    font-size: 11px;
  }

  html.library-novo .sort-row .quick-filter-trigger {
    padding-inline: 5px;
  }

  html.library-novo .sort-row .sort-direction-button {
    width: 38px !important;
    min-width: 38px !important;
    min-height: 40px;
  }

  html.library-novo .empty-state {
    gap: 13px;
    padding: 28px 18px;
  }

  html.library-novo .empty-state h2 {
    font-size: 24px;
  }

  html.library-novo .toast {
    right: 14px;
    bottom: 14px;
    left: 14px;
    width: auto;
    max-width: none;
    text-align: center;
  }
}

@media (max-width: 480px) {
  html.library-novo .integration-list {
    grid-template-columns: minmax(0, 1fr);
  }

  html.library-novo .modal-card > header,
  html.library-novo .editor-header,
  html.library-novo .modal-card > footer,
  html.library-novo .editor-footer {
    padding-inline: 14px;
  }
}

@media (max-width: 380px) {
  html.library-novo .sort-row,
  html.library-novo #app[data-has-selection="true"] .sort-row {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-areas:
      "filters filters filters direction"
      "sort sort type type";
    gap: 4px;
  }

  html.library-novo .sort-row .quick-filter-select {
    grid-area: filters;
  }

  html.library-novo .sort-row > .sort-direction-button {
    grid-area: direction;
    justify-self: end;
  }

  html.library-novo .sort-row > [data-custom-select="sort"] {
    grid-area: sort;
  }

  html.library-novo .sort-row > [data-custom-select="type"] {
    grid-area: type;
  }

  html.library-novo .sort-row .sort-direction-button {
    width: 40px !important;
    min-width: 40px !important;
  }
}

/* Final workspace surface audit: contained dialogs, compact import, and semantic state graphics. */

html.library-novo dialog.modal:not(.wide-modal):not(.editor-modal) .modal-card {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

html.library-novo dialog[data-dialog="export"] {
  width: min(744px, calc(100vw - 32px));
  max-width: calc(100vw - 32px);
  overflow: hidden;
}

html.library-novo dialog[data-dialog="confirm"] {
  width: min(564px, calc(100vw - 32px));
  max-width: calc(100vw - 32px);
  overflow: hidden;
}

html.library-novo dialog[data-dialog="taxonomy"],
html.library-novo dialog[data-dialog="export"],
html.library-novo dialog[data-dialog="confirm"] {
  overflow-x: hidden;
}

html.library-novo dialog[data-dialog="import"],
html.library-novo dialog[data-dialog="import"][open] {
  inset: 0 !important;
  width: min(760px, calc(100vw - 32px)) !important;
  height: auto !important;
  max-width: calc(100vw - 32px) !important;
  max-height: calc(var(--library-visual-height, 100dvh) - 32px) !important;
  margin: auto !important;
  padding: 0 !important;
  overflow: hidden !important;
}

html.library-novo dialog[data-dialog="import"] .modal-card {
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: calc(var(--library-visual-height, 100dvh) - 32px) !important;
  grid-template-rows: auto minmax(0, auto) auto;
}

html.library-novo dialog[data-dialog="import"] .import-scroll-region {
  max-height: calc(var(--library-visual-height, 100dvh) - 156px);
}

html.library-novo .folder-menu-item.danger,
html.library-novo .trash-actions-menu .danger {
  color: var(--novo-danger);
}

html.library-novo .empty-state::before {
  content: "" !important;
  width: 52px;
  height: 52px;
  background-color: transparent;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36' fill='none' stroke='%231468e8' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.1375 6.25H4.3875v23.5H10.1375M25.8625 6.25h5.75v23.5h-5.75'/%3E%3Cpath d='M10.3375 12.75v10.5h5.175M25.6125 14.55c-.9-1.35-2.35-2.15-4-2.15-3.1 0-5.4 2.35-5.4 5.6s2.3 5.6 5.4 5.6c1.65 0 3.1-.8 4-2.15'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  border: 0;
  border-radius: 0;
}

html.library-novo .empty-state[data-empty-kind="folder"]::before,
html.library-novo .empty-state[data-empty-kind="label"]::before,
html.library-novo .empty-state[data-empty-kind="trash"]::before,
html.library-novo .empty-state[data-empty-kind="starred"]::before,
html.library-novo .empty-state[data-empty-kind="search"]::before {
  width: 48px;
  height: 48px;
  background-color: var(--novo-blue-soft);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 23px 23px;
  border: 1px solid #bed7fa;
  border-radius: 11px;
}

html.library-novo .empty-state[data-empty-kind="folder"]::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231468e8' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7.5h6l2 2h10v9.5a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7.5Z'/%3E%3Cpath d='M3 7.5V5a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v2.5'/%3E%3C/svg%3E");
}

html.library-novo .empty-state[data-empty-kind="label"]::before {
  background-color: var(--novo-green-soft);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23167d5d' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.6 13.6 11 23l-9-9V3h11l7.6 7.6a2.1 2.1 0 0 1 0 3Z'/%3E%3Ccircle cx='7.5' cy='8.5' r='1.5'/%3E%3C/svg%3E");
  border-color: #b7dece;
}

html.library-novo .empty-state[data-empty-kind="trash"]::before {
  background-color: var(--novo-surface-soft);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23526b7d' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16M9 7V4h6v3M6.5 7l1 14h9l1-14M10 11v6M14 11v6'/%3E%3C/svg%3E");
  border-color: var(--novo-line);
}

html.library-novo .empty-state[data-empty-kind="starred"]::before {
  background-color: var(--novo-warning-soft);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2.7 2.8 5.7 6.3.9-4.55 4.45 1.08 6.25L12 17.05 6.37 20l1.08-6.25L2.9 9.3l6.3-.9L12 2.7Z' fill='%23d99a24' stroke='%23a86508' stroke-width='1.15' stroke-linejoin='round'/%3E%3C/svg%3E");
  border-color: #ead39e;
}

html.library-novo .empty-state[data-empty-kind="search"]::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231468e8' stroke-width='1.9' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='m15.5 15.5 5 5'/%3E%3C/svg%3E");
}

@media (max-width: 760px) {
  html.library-novo dialog[data-dialog="import"],
  html.library-novo dialog[data-dialog="import"][open] {
    width: calc(100vw - 16px) !important;
    max-width: calc(100vw - 16px) !important;
    max-height: calc(var(--library-visual-height, 100dvh) - 16px) !important;
  }

  html.library-novo dialog[data-dialog="import"] .modal-card {
    max-height: calc(var(--library-visual-height, 100dvh) - 16px) !important;
  }

  html.library-novo dialog[data-dialog="import"] .import-scroll-region {
    max-height: calc(var(--library-visual-height, 100dvh) - 140px);
  }
}

/* Left library rail precision repair: final cascade authority. */

@media (min-width: 901px) {
  html.library-novo .library-app {
    grid-template-columns: clamp(264px, 20vw, 288px) minmax(0, 1fr);
  }
}

html.library-novo .sidebar {
  gap: 10px;
  padding: 10px;
  background: rgba(255, 255, 255, .98);
  border: 1.5px solid var(--novo-line-strong);
  border-top: 3px solid var(--novo-green);
  border-radius: 14px;
  box-shadow: 0 10px 28px rgba(9, 29, 45, .065);
}

html.library-novo .sidebar-fixed-top {
  gap: 10px;
}

html.library-novo .brand-row {
  grid-template-columns: 38px minmax(0, 1fr) 36px;
  align-items: center;
  gap: 9px;
  min-height: 88px;
  padding: 11px 10px 11px 12px;
  background: linear-gradient(142deg, #f1f6fe 0%, #f9fcff 60%, #eef8f4 100%);
  border: 1.5px solid var(--novo-line-strong);
  border-radius: 11px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9);
}

html.library-novo .brand-row::before {
  content: none;
  display: none;
}

html.library-novo .brand-row > .novo-live-workspace-mark,
html.library-novo .brand-row > .sidebar-brand-mark.novo-live-workspace-mark {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  color: var(--novo-blue);
}

html.library-novo .brand-row > .novo-live-workspace-mark .novo-wordmark-symbol {
  width: 38px;
  height: 38px;
}

html.library-novo .brand-copy {
  gap: 2px;
  min-width: 0;
  overflow: visible;
}

html.library-novo .brand-title-line strong {
  font-size: 16.5px;
  line-height: 1.08;
  letter-spacing: -.025em;
}

html.library-novo .brand-email {
  width: 100%;
  max-width: none;
  margin-top: 1px;
  overflow: visible;
  color: var(--novo-ink-soft);
  font-size: 11.5px;
  line-height: 1.35;
  text-overflow: clip;
  white-space: nowrap;
}

html.library-novo .brand-sync {
  max-width: 100%;
  min-height: 19px;
  margin-top: 3px;
  padding: 3px 7px;
  font-size: 9.5px;
  line-height: 1.1;
}

html.library-novo .account-menu-toggle {
  position: relative;
  align-self: center;
  width: 36px;
  height: 36px;
  padding: 0;
  overflow: hidden;
  color: var(--novo-muted);
  font-size: 0;
  background: rgba(255, 255, 255, .9);
  border: 1px solid var(--novo-line);
  border-radius: 9px;
}

html.library-novo .account-menu-toggle::before {
  width: 16px;
  height: 16px;
  transition: transform 140ms ease;
}

html.library-novo .account-menu-toggle::after {
  content: none !important;
}

html.library-novo .account-menu-toggle[aria-expanded="true"]::before {
  transform: translate(-50%, -50%) rotate(180deg);
}

html.library-novo .account-menu {
  top: calc(100% + 7px);
  right: 0;
  min-width: 176px;
  padding: 5px;
  border: 1.5px solid var(--novo-line-strong);
  border-radius: 10px;
  box-shadow: 0 16px 42px rgba(9, 29, 45, .16);
}

html.library-novo .account-menu button {
  min-height: 40px;
  padding: 9px 11px;
  border-radius: 7px;
  font-size: 12px;
}

html.library-novo .sidebar-fixed-top > .nav-section {
  gap: 4px;
  padding-inline: 1px;
}

html.library-novo .nav-section > p {
  padding: 0 8px 3px;
  color: var(--novo-muted);
  font-size: 10px;
  font-weight: 720;
  letter-spacing: .11em;
}

html.library-novo .nav-item {
  min-height: 42px;
  padding: 8px 10px;
  font-size: 13px;
  border-radius: 9px;
}

html.library-novo .nav-item.active {
  background: linear-gradient(90deg, #e6f1ff 0%, #eef6ff 100%);
  border: 1.5px solid #9bc3fb;
  box-shadow: inset 3px 0 0 var(--novo-blue);
}

html.library-novo .nav-item-main {
  gap: 9px;
}

html.library-novo .nav-item .sidebar-icon {
  width: 20px;
  height: 20px;
  flex-basis: 20px;
}

html.library-novo .sidebar-scroll-region {
  min-height: 0;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-content: initial;
  gap: 2px;
  padding: 2px 1px 4px 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: #a6bac9 transparent;
  scrollbar-width: thin;
}

html.library-novo .sidebar-scroll-region::-webkit-scrollbar {
  display: block;
  width: 6px;
}

html.library-novo .sidebar-scroll-region::-webkit-scrollbar-track {
  display: block;
  background: transparent;
}

html.library-novo .sidebar-scroll-region::-webkit-scrollbar-thumb {
  display: block;
  background: #a6bac9;
  border: 2px solid #fff;
  border-radius: 999px;
}

html.library-novo .sidebar-scroll-region > .collapsible-section,
html.library-novo .sidebar-scroll-region > .collapsible-section:not(.collapsed) {
  min-height: 0;
  flex: 0 0 auto;
  overflow: visible;
}

html.library-novo .sidebar-scroll-region > .collapsible-section > .section-body {
  min-height: 0;
  flex: 0 0 auto;
  overflow: visible;
  scrollbar-gutter: auto;
}

html.library-novo .sidebar-scroll-region > .nav-section {
  padding-top: 6px;
  border-top: 1px solid var(--novo-line-soft);
}

html.library-novo .section-heading {
  min-height: 40px;
  gap: 6px;
}

html.library-novo .section-toggle {
  min-height: 36px !important;
  gap: 8px;
  padding: 0 6px !important;
  border-radius: 8px !important;
}

html.library-novo .section-toggle:hover {
  color: var(--novo-ink-soft) !important;
  background: var(--novo-blue-pale) !important;
}

html.library-novo .section-toggle span:last-child {
  font-size: 10px;
  font-weight: 720;
  letter-spacing: .09em;
}

html.library-novo .section-heading-actions,
html.library-novo .section-heading-actions button {
  width: 34px;
  min-width: 34px;
  height: 34px;
}

html.library-novo .section-heading-actions button {
  position: relative;
  padding: 0;
  overflow: hidden;
  color: var(--novo-blue);
  font-size: 0;
  background: #fff;
  border: 1px solid var(--novo-line);
  border-radius: 9px;
}

html.library-novo .section-heading-actions button::before,
html.library-novo .section-heading-actions button::after {
  width: 12px;
  height: 2px;
  background: currentColor;
}

html.library-novo .folder-tree,
html.library-novo .chip-list {
  gap: 2px;
  overflow: visible;
}

html.library-novo .folder-drop-zone {
  height: 5px;
}

html.library-novo .folder-row,
html.library-novo .shared-link-chip {
  min-height: 40px;
  gap: 6px;
  padding: 4px 8px;
  font-size: 12.5px;
  border-radius: 8px;
}

html.library-novo .folder-row {
  grid-template-columns: 14px minmax(0, 1fr) 24px 28px;
}

html.library-novo .folder-body {
  min-width: 0;
  padding-block: 4px;
}

html.library-novo .folder-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

html.library-novo .folder-menu-toggle {
  position: relative;
  width: 28px;
  height: 28px;
  padding: 0;
  overflow: hidden;
  font-size: 0;
}

html.library-novo .folder-menu-toggle::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 4px;
  background: radial-gradient(circle, currentColor 1.25px, transparent 1.4px) 0 50% / 5.5px 4px repeat-x;
  transform: translate(-50%, -50%);
}

html.library-novo .folder-count {
  min-width: 24px;
  font-size: 11px;
  text-align: right;
}

html.library-novo .section-body > .muted {
  padding: 5px 8px 9px 28px;
  font-size: 11px;
}

html.library-novo .signout {
  min-height: 42px;
  gap: 8px;
  padding: 9px 12px;
  color: var(--novo-danger);
  font-size: 12.5px;
  font-weight: 650;
  background: #fff;
  border: 1.5px solid #e7b7be;
  border-radius: 9px;
}

html.library-novo .signout:hover {
  color: var(--novo-danger);
  background: #fff3f5;
  border-color: #dc93a0;
}

@media (max-width: 900px) {
  html.library-novo .sidebar {
    width: min(340px, 92vw);
    padding: 10px;
    border-top: 3px solid var(--novo-green);
    border-right: 1.5px solid var(--novo-line-strong);
    border-radius: 0 14px 14px 0;
  }

  html.library-novo .mobile-sidebar-header {
    min-height: 44px;
    padding: 0 2px 8px;
  }
}
