:root {
  --docs-bg: #0b0f10;
  --docs-surface: rgba(22, 27, 28, 0.92);
  --docs-surface-2: rgba(18, 23, 25, 0.88);
  --docs-surface-3: rgba(25, 31, 34, 0.9);
  --docs-border: rgba(135, 157, 175, 0.18);
  --docs-border-bright: rgba(64, 139, 255, 0.38);
  --docs-text: #f3f7ff;
  --docs-muted: #a6b3c2;
  --docs-blue: #2f82ff;
  --docs-blue-2: #5aa0ff;
  --docs-shadow: 0 18px 55px rgba(0, 0, 0, 0.34);
}

html,
body {
  background:
    radial-gradient(circle at 42% 0%, rgba(49, 130, 255, 0.08), transparent 34rem),
    linear-gradient(180deg, #101416 0%, #090d0e 55%, #070a0b 100%) !important;
  color: var(--docs-text) !important;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.018) 1px, transparent 1px);
  background-size: 44px 44px;
  opacity: 0.35;
  z-index: -1;
}

.shell,
.landing-shell,
main.shell,
main.landing-shell {
  width: min(1280px, calc(100% - 32px)) !important;
  max-width: 1280px !important;
  margin: 0 auto !important;
  padding-top: 32px !important;
}

.brand-header,
.hero-card {
  background: linear-gradient(135deg, rgba(27, 39, 55, 0.92), rgba(20, 24, 25, 0.92)) !important;
  border: 1px solid var(--docs-border) !important;
  border-radius: 16px !important;
  box-shadow: var(--docs-shadow) !important;
  padding: 28px 30px !important;
  margin-bottom: 18px !important;
}

.brand-header {
  display: flex !important;
  align-items: center !important;
  gap: 18px !important;
}

.brand-mark,
.hero-mark,
.login-emblem,
.access-icon {
  width: 58px !important;
  height: 58px !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, rgba(47, 130, 255, 0.24), rgba(255, 255, 255, 0.04)) !important;
  border: 1px solid rgba(90, 160, 255, 0.38) !important;
  box-shadow: none !important;
  color: #dcecff !important;
}

.brand-mark span {
  background: var(--docs-blue-2) !important;
}

.eyebrow,
.step-label {
  color: var(--docs-blue-2) !important;
  letter-spacing: 0.12em !important;
  font-weight: 800 !important;
}

h1 {
  font-size: clamp(2.1rem, 4.2vw, 3.3rem) !important;
  letter-spacing: -0.055em !important;
  margin-bottom: 6px !important;
}

h2,
h3 {
  letter-spacing: -0.03em !important;
}

.lede,
p,
small,
label span + small,
.submission-meta,
.lock-note {
  color: var(--docs-muted) !important;
}

.panel,
.glass-card,
.profile-card,
.action-card,
.landing-info-card {
  background: linear-gradient(180deg, var(--docs-surface), var(--docs-surface-2)) !important;
  border: 1px solid var(--docs-border) !important;
  border-radius: 16px !important;
  box-shadow: 0 16px 42px rgba(0, 0, 0, 0.24) !important;
}

.panel {
  padding: 24px !important;
}

.panel-title,
.profile-card-top,
.profile-card-footer {
  border-color: var(--docs-border) !important;
}

.button,
button,
input,
textarea,
select {
  border-radius: 12px !important;
}

.button.primary,
button.primary,
.action-card.primary-action,
.login-button,
#logoutButton + .button,
a[href="/upload"].primary-action {
  background: linear-gradient(180deg, #3b8cff, #2375f4) !important;
  border-color: rgba(104, 170, 255, 0.72) !important;
  color: white !important;
  box-shadow: 0 14px 34px rgba(47, 130, 255, 0.28) !important;
}

.button.secondary,
button.secondary {
  background: rgba(31, 37, 39, 0.92) !important;
  border: 1px solid var(--docs-border) !important;
  color: var(--docs-text) !important;
}

.button.danger,
button.danger {
  background: rgba(50, 28, 32, 0.95) !important;
}

input,
textarea,
select {
  background: rgba(9, 12, 14, 0.82) !important;
  border: 1px solid rgba(123, 145, 166, 0.32) !important;
  color: var(--docs-text) !important;
}

input:focus,
textarea:focus,
select:focus {
  border-color: var(--docs-blue-2) !important;
  box-shadow: 0 0 0 3px rgba(47, 130, 255, 0.18) !important;
}

.drop-zone {
  background: rgba(17, 22, 25, 0.86) !important;
  border: 1px dashed rgba(90, 160, 255, 0.4) !important;
  border-radius: 16px !important;
}

.message.error,
.error,
[role="alert"] {
  border-radius: 12px !important;
}

.card-tags,
.profile-actions,
.quick-actions {
  gap: 14px !important;
}

.quick-actions {
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important;
}

.action-card {
  min-height: 146px !important;
  padding: 20px !important;
  transition: transform 0.16s ease, border-color 0.16s ease, background 0.16s ease !important;
}

.action-card:hover {
  transform: translateY(-2px) !important;
  border-color: var(--docs-border-bright) !important;
  background: linear-gradient(180deg, rgba(29, 36, 40, 0.95), rgba(18, 23, 25, 0.9)) !important;
}

.action-icon {
  background: rgba(47, 130, 255, 0.12) !important;
  color: var(--docs-blue-2) !important;
  border: 1px solid rgba(47, 130, 255, 0.25) !important;
}

.account-strip,
.status-chip,
.mini-tag {
  background: rgba(255, 255, 255, 0.045) !important;
  border: 1px solid var(--docs-border) !important;
  color: var(--docs-muted) !important;
}

footer {
  width: min(1280px, calc(100% - 32px)) !important;
  margin: 18px auto 32px !important;
  color: var(--docs-muted) !important;
}

footer a {
  color: var(--docs-blue-2) !important;
}

/* Docs-like top navigation injected by JS */
.docs-topbar {
  position: sticky;
  top: 0;
  z-index: 100;
  height: 64px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0 18px;
  border-bottom: 1px solid rgba(135, 157, 175, 0.16);
  background: rgba(15, 19, 20, 0.94);
  backdrop-filter: blur(14px);
}

.docs-topbar .docs-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--docs-text);
  text-decoration: none;
  font-weight: 850;
  font-size: 1.2rem;
  white-space: nowrap;
}

.docs-topbar .docs-logo-mark {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  background: linear-gradient(180deg, #3b8cff, #2375f4);
  box-shadow: 0 10px 25px rgba(47, 130, 255, 0.28);
}

.docs-topbar .docs-search {
  flex: 1;
  max-width: 620px;
  height: 44px;
  display: flex;
  align-items: center;
  padding: 0 16px;
  border-radius: 999px;
  background: rgba(31, 37, 39, 0.92);
  border: 1px solid rgba(135, 157, 175, 0.12);
  color: var(--docs-muted);
}

.docs-topbar .docs-spacer {
  flex: 1;
}

.docs-topbar .docs-user {
  display: flex;
  align-items: center;
  gap: 10px;
}

.docs-topbar .docs-avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #38424c;
  color: white;
  font-weight: 800;
}

.docs-topbar .docs-user-text {
  display: grid;
  line-height: 1.12;
}

.docs-topbar .docs-user-text small {
  color: var(--docs-muted);
}

.docs-topbar .docs-logout {
  padding: 8px 12px;
  border-radius: 10px;
  border: 1px solid var(--docs-border);
  background: rgba(255, 255, 255, 0.03);
  color: var(--docs-text);
  text-decoration: none;
  font-weight: 700;
}

@media (max-width: 820px) {
  .docs-topbar .docs-search,
  .docs-topbar .docs-user-text {
    display: none;
  }

  .brand-header,
  .hero-top {
    align-items: flex-start !important;
  }

  .shell,
  .landing-shell,
  main.shell,
  main.landing-shell {
    width: min(100% - 20px, 1280px) !important;
  }
}
