/* ==========================================================================
   Enterprise dark theme — editorial, warm-neutral, loaded last on every page.
   Serif display headings, mono micro-labels, large rounded cards, pill buttons,
   floating nav, mint accent. Refinements on top of the dark tokens only.
   ========================================================================== */

:root {
  --radius-card: 22px;
  --radius-pill: 999px;
  --hair: rgba(255, 255, 255, .08);
  --hair-2: rgba(255, 255, 255, .14);
  --mint: #45e3b5;
}

html { background: #0b0b0c; color-scheme: dark; }

body {
  background:
    radial-gradient(1100px 520px at 85% -120px, rgba(69, 227, 181, .10), transparent 70%),
    radial-gradient(900px 500px at -5% 0, rgba(255, 255, 255, .04), transparent 70%),
    #0b0b0c;
  background-attachment: fixed;
  font-feature-settings: "ss01", "cv11";
}

::selection { background: rgba(69, 227, 181, .35); color: #fff; }

* { scrollbar-width: thin; scrollbar-color: #333 transparent; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: #333; border-radius: 8px; border: 2px solid #0b0b0c; }

/* ---- typography: serif display, tight and light ---- */
h1, h2, h3, h4 {
  font-family: 'Newsreader', Georgia, 'Times New Roman', serif;
  font-weight: 400;
  letter-spacing: -.02em;
  color: #f5f5f5;
}
h1 { font-weight: 300; letter-spacing: -.035em; line-height: 1.04; }
h2 { font-weight: 400; letter-spacing: -.03em; line-height: 1.08; }
h3 { font-weight: 500; letter-spacing: -.015em; }
h1 em, h2 em, h1 .grad, h2 .grad { font-style: italic; color: var(--mint); -webkit-text-fill-color: var(--mint); background: none; }

/* mono micro-labels (eyebrows) */
.eyebrow, .tier, .swipe-hint, .badge, .tag, .kicker {
  font-family: 'Geist Mono', ui-monospace, Consolas, monospace;
  text-transform: uppercase;
  letter-spacing: .09em;
  font-size: 11.5px;
  font-weight: 500;
}
.eyebrow { color: var(--mint); }

/* ---- announcement bar: black strip ---- */
.announce { background: #000; border-bottom: 1px solid var(--hair); color: #b8b3b0; }
.announce a { color: #f5f5f5; }

/* ---- floating rounded nav ---- */
header, .site-header, .topbar, nav.main {
  background-color: rgba(18, 18, 19, .78);
  -webkit-backdrop-filter: saturate(1.5) blur(16px);
  backdrop-filter: saturate(1.5) blur(16px);
  border-color: var(--hair);
}
.nav, .nav-inner, .navbar, header .bar {
  border: 1px solid var(--hair);
  border-radius: 20px;
  background: rgba(22, 22, 23, .82);
  box-shadow: 0 10px 40px -16px rgba(0, 0, 0, .8), inset 0 1px 0 rgba(255, 255, 255, .04);
}

/* ---- cards: large radius, hairline, soft depth ---- */
.plan, .card, .feature, .tile, .panel, .step, .stat, .cmp-scroll, .mail-attach, details {
  border-radius: var(--radius-card);
}
.card, .feature, .tile, .panel, .step {
  background: linear-gradient(180deg, #171718, #131314);
  border: 1px solid var(--hair);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .035);
  transition: border-color .2s ease, transform .2s ease;
}
.card:hover, .feature:hover { border-color: var(--hair-2); transform: translateY(-2px); }

.plan {
  background: linear-gradient(180deg, #171718 0%, #121213 100%);
  border: 1px solid var(--hair);
  padding: 30px 26px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04), 0 24px 48px -30px rgba(0, 0, 0, .9);
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.plan:hover { transform: translateY(-4px); border-color: var(--hair-2); }
.plan .tier { color: #b8b3b0; }
.plan .price { font-family: 'Newsreader', Georgia, serif; font-weight: 400; font-size: 46px; letter-spacing: -.03em; color: #fff; }
.plan .price small { font-family: 'Geist', sans-serif; font-size: 14px; color: #8a8380; letter-spacing: 0; }
.plan .cadence, .plan .blurb { color: #8a8380; }
.plan li b { color: #f5f5f5; }
.plan li svg { color: var(--mint); }
.plan .foot-note { border-top: 1px solid var(--hair); color: #8a8380; }
.plan.featured {
  background: linear-gradient(180deg, #14211d 0%, #101413 100%);
  border-color: rgba(69, 227, 181, .55);
  box-shadow: 0 0 0 1px rgba(69, 227, 181, .25), 0 40px 80px -40px rgba(69, 227, 181, .35);
}
.plan .badge {
  background: var(--mint); color: #04130e;
  border-radius: var(--radius-pill);
  padding: 4px 12px;
}

/* ---- buttons: white pill primary (inverse of Atlantic's black pill) ---- */
.btn, a.btn, button.btn { border-radius: var(--radius-pill); font-weight: 500; letter-spacing: -.005em; }
.btn.primary, a.btn.primary, button.primary {
  background: #f5f5f5;
  color: #0b0b0c;
  border: 1px solid #fff;
  box-shadow: 0 8px 24px -10px rgba(255, 255, 255, .35);
}
.btn.primary:hover { background: #fff; transform: translateY(-1px); }
.btn.primary svg, .btn.primary span { color: inherit; }
.btn.outline, a.btn.outline {
  background: rgba(255, 255, 255, .03);
  color: #f5f5f5;
  border: 1px solid var(--hair-2);
}
.btn.outline:hover { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .3); }

/* ---- forms ---- */
input, select, textarea {
  background: #111112;
  color: #f5f5f5;
  border: 1px solid var(--hair-2);
  border-radius: 12px;
  color-scheme: dark;
}
input::placeholder, textarea::placeholder { color: #6b6561; }
input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: var(--mint);
  box-shadow: 0 0 0 3px rgba(69, 227, 181, .18);
}
option { background: #161617; color: #f5f5f5; }

/* ---- tables ---- */
.cmp-scroll { border: 1px solid var(--hair); background: #121213; overflow: hidden; }
table { border-color: var(--hair); }
thead th { background: #161617; color: #f5f5f5; }
th.hl { background: rgba(69, 227, 181, .05); }
tr.grp td {
  background: #0f0f10; color: var(--mint);
  font-family: 'Geist Mono', monospace; text-transform: uppercase; letter-spacing: .09em; font-size: 11px;
}
tbody tr:hover td, tbody tr:hover th { background: rgba(255, 255, 255, .025); }
td.ck { color: var(--mint); }
td.dash { color: #4a4745; }

/* ---- code ---- */
pre {
  background: #0a0a0b;
  border: 1px solid var(--hair);
  border-radius: 16px;
  color: #d9d6d3;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .03);
}
:not(pre) > code { background: rgba(255, 255, 255, .07); color: #b8f5e2; border: 0; border-radius: 6px; }

/* ---- faq / details ---- */
details { background: #131314; border: 1px solid var(--hair); }
details[open] { border-color: var(--hair-2); }
summary { color: #f5f5f5; }

/* ---- document / email previews keep a true white "paper" ---- */
.report-frame .sheet, .mail {
  color-scheme: light;
  --ink: #1f2430; --ink-1: #1f2430; --ink-2: #4b5563; --ink-3: #6b7280;
  --line: #e2e4e8; --line-2: #d5d8de; --surface: #fff; --surface-2: #f6f7f9; --bg: #fff;
}
.report-frame .sheet h1, .report-frame .sheet h2, .report-frame .sheet h3,
.report-frame .sheet th, .report-frame .sheet td, .mail * { text-shadow: none; }
.report-frame { border-radius: var(--radius-card); border-color: var(--hair-2); }

/* ---- footer ---- */
footer, .footer, .site-footer { background: #070708; border-top: 1px solid var(--hair); }

a { color: #cfeee3; }
a:hover { color: #fff; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ---- keep display weights light on pages that set heavy weights ---- */
.hero h1, .page-hero h1 { font-weight: 300; letter-spacing: -.035em; }
.sheet h4, .sheet h5, .mail h1, .mail h2, .mail h3, .mail h4 { font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; letter-spacing: 0; }
.sheet h4 { color: #1f2430; }
.sheet h5 { color: #1f4e79; }
.sheet .c { background: #fff; }
.sheet .c .v { color: #1f2430; }
.sheet .c.good .v { color: #0e8a52; }
.sheet .c.bad .v, .sheet .sev-c { color: #b3261e; }
.sheet .sev-w { color: #9a6b00; }
.sheet th { color: #1f2430; }
.mail-attach, .mail-attach span, .mail-attach code { color: #374151; background: #fafbfc; border-color: #e5e7eb; }
.btn.ghost, a.btn.ghost {
  background: rgba(255, 255, 255, .04);
  color: #f5f5f5;
  border: 1px solid var(--hair-2);
}
.btn.ghost:hover { background: rgba(255, 255, 255, .09); color: #fff; }
.btn.outline::after { background-color: var(--mint); }
section.close h2 { color: #f5f5f5; }

/* pricing cards: concise lists */
.plan li { line-height: 1.5; margin-bottom: 10px; }
.plan .cadence { margin-bottom: 20px; }
.plan .tier { white-space: nowrap; font-size: 11px; letter-spacing: .06em; }
.plan .blurb { min-height: 3em; }
.plan .cadence { min-height: 3em; }
.plan .price small { white-space: nowrap; }
.plan .price { display: flex; align-items: baseline; gap: 6px; height: 64px; line-height: 1; margin-bottom: 6px; }
.plan .badge { top: -12px; }

/* plan CTAs: full-width pill, label left-aligned, arrow badge pinned to the right edge */
.plan .btn { display: flex; width: 100%; justify-content: space-between; align-items: center; padding-left: 26px; padding-right: 8px; }
.plan .btn::after { margin-left: auto; flex: none; }
.plan .blurb { min-height: 0; height: 3.4em; overflow: hidden; }
.plan .cadence { min-height: 0; height: 3.4em; overflow: hidden; }

/* brand mark: the NuGet package icon */
.brand .glyph { width: 34px !important; height: 34px !important; background: none !important; box-shadow: none !important; border-radius: 9px; overflow: hidden; display: block; }
.brand .glyph img { width: 100%; height: 100%; display: block; object-fit: contain; filter: none !important; }

/* ==========================================================================
   Production polish: banner contrast, skip link, focus, print
   ========================================================================== */
.ann-pill { background: #45e3b5 !important; color: #04130e !important; box-shadow: none !important; }
.announce a { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(255, 255, 255, .35); }
.announce a:hover { text-decoration-color: #fff; }

.skip-link { position: absolute; left: 16px; top: -64px; z-index: 1000; background: #f5f5f5; color: #0b0b0c !important; padding: 10px 18px; border-radius: 999px; font-weight: 600; transition: top .15s ease; }
.skip-link:focus { top: 12px; }
main:focus { outline: none; }

:focus-visible { outline: 2px solid #45e3b5; outline-offset: 3px; border-radius: 6px; }
.form-status.ok { color: #7debcb; }
.form-status.err { color: #fca5a5; }

@media print {
  .announce, nav, header.site-top, footer, .skip-link, .contact { display: none !important; }
  body { background: #fff !important; color: #111 !important; padding: 0 !important; }
}

/* ---- layout fixes: footer sits at the end of the page; tighter hero ---- */
body { padding-bottom: 0 !important; }
footer, footer.site { position: static !important; }
footer .wrap, footer.site .wrap { padding-top: 32px !important; padding-bottom: 32px !important; }
.hero { padding-top: 48px !important; padding-bottom: 80px !important; }

/* ---- collapsible plan comparison ---- */
.cmp-toggle > summary { list-style: none; display: flex; width: fit-content; margin: 0 auto 28px; cursor: pointer; padding: 13px 26px; }
.cmp-toggle > summary::-webkit-details-marker { display: none; }
.cmp-toggle > summary::after { display: none !important; }
.cmp-toggle .when-open { display: none; }
.cmp-toggle[open] .when-open { display: inline; }
.cmp-toggle[open] .when-closed { display: none; }
details.cmp-toggle, details.cmp-toggle[open] { background: none !important; border: 0 !important; padding: 0 !important; margin: 0 !important; box-shadow: none !important; border-radius: 0; }

/* ---- nav: never wider than the viewport ---- */
.nav-in { min-width: 0; max-width: min(1140px, calc(100vw - 24px)); }
.nav-links { min-width: 0; }
@media (min-width: 1181px) { .nav-in .nav-links { margin-left: 24px; margin-right: auto; } }
