/* ResumeTandem design system foundation.
   Loaded last so the client app shares one set of tokens, one button system, two typefaces and one page-title style.
   Older page stylesheets still hold layout; their colour and type rules are replaced here page by page.
   Resume and cover-letter templates keep their own print typography and palettes. */

:root {
  /* Colour */
  --ds-plum-900:#391735; --ds-plum-700:#592750; --ds-plum-500:#8a4f73; --ds-plum-100:#f5e8ee;
  --ds-coral-600:#e0634e; --ds-coral-100:#fdece7;
  --ds-cream-50:#fffaf5; --ds-cream-100:#f8efe8;
  --ds-ink-900:#2b1427; --ds-ink-600:#5c4757; --ds-ink-400:#7d6a78;
  --ds-line:#e6dbe1; --ds-line-strong:#d6c6d0; --ds-white:#fff;
  --ds-good:#1f6f47; --ds-warning:#8a5a00; --ds-critical:#b4362a;
  /* Type: 12 · 14 · 16 · 20 · 28 · 40 */
  --ds-text-xs:12px; --ds-text-sm:14px; --ds-text-md:16px; --ds-text-lg:20px; --ds-text-xl:28px;
  --ds-text-2xl:clamp(28px, 1.6vw + 18px, 40px);
  /* Shape and motion */
  --ds-radius-sm:8px; --ds-radius-md:12px; --ds-radius-lg:16px;
  --ds-fast:150ms; --ds-base:250ms; --ds-slow:400ms; --ds-ease:cubic-bezier(.2,.8,.2,1);
}

/* Critical layout resets so public landing first paint never shifts while portal stylesheets load asynchronously. */
*, *::before, *::after { box-sizing:border-box; }
body { margin:0; }
[hidden] { display:none !important; }
.skip-link { position:fixed; top:-70px; left:16px; z-index:200; background:var(--ds-white); color:var(--ds-ink-900); padding:12px 16px; border:2px solid var(--ds-plum-900); border-radius:var(--ds-radius-sm); font:650 var(--ds-text-xs)/1.3 var(--brand-sans); text-decoration:none; }
.skip-link:focus { top:10px; }
.landing-page .studio-brand { display:inline-flex; align-items:center; gap:9px; white-space:nowrap; text-decoration:none; }
.landing-page :is(h1,h2,h3,p) { margin-top:0; }
#toast:not(.show) { display:none; }

/* Typefaces: DM Sans for the interface, Instrument Serif only for accent words. */
:is(.rb-steps button,.rb-steps-head,.rb-steps-head small,.rb-step-mark,.rb-step-opt,.rb-footer-back,.rb-title-inline-input,
    .rb-fields textarea,.rb-step-panel>label textarea,.rb-import-notes pre,.ix-diff pre,.ix-field :is(input,textarea,select),.p-job .mark) {
  font-family:var(--brand-sans);
}
:is(.rb-step-title h3,.rb-build-left-head h2,.rb-build-right-head h2,.rb-heading h2,.rb-notes-coach-copy h2,.rb-notes-right-head h2,
    #workspace-detail:has(.rb-build-studio) #workspace-detail-title,.coach-pet h3) {
  font-family:var(--brand-sans); font-weight:650; letter-spacing:-.02em;
}
:is(.rb-gallery-head h1 em,.am-hero-copy .am-kicker,.ix-hero h2 em) { font-family:var(--brand-serif); }
/* Section headings: normal tracking, so letters never touch. */
:is(.portal-main,#workspace-detail) :is(h2,h3):not(:is(.rb-paper,.p-paper,.rb-specimen-sheet,.library-thumb) *) { letter-spacing:-.012em; }

/* One page-title style: <h1>, 28–40 px, an optional serif accent word. */
:is(.portal-head,.at-heading,.rb-gallery-head,.ix-hero-content,.ib-banner-copy,.sv-banner-copy,.cg-banner-copy,.library-identity,.cd-welcome,.aa-title-row,.catalog-heading) h1,
#workspace-detail-title {
  margin:0 0 8px; font:650 var(--ds-text-2xl)/1.12 var(--brand-sans); letter-spacing:-.03em; color:var(--ds-ink-900); text-wrap:balance;
}
:is(.portal-head,.at-heading,.rb-gallery-head,.ix-hero-content,.ib-banner-copy,.sv-banner-copy,.cg-banner-copy,.library-identity,.cd-welcome) h1 em {
  font-family:var(--brand-serif); font-style:italic; font-weight:400; letter-spacing:-.01em; color:#913d46;
}
.member-page .member-card-copy h2 { font-size:var(--ds-text-2xl); letter-spacing:-.03em; }

/* Buttons: primary (plum fill), secondary (outline), text link. One look everywhere in the app. */
:is(.btn:not(.outline),.cd-primary,.member-primary,.rb-footer-next,.rt-journey-cta,.cd-beginner-cta:not(.is-outline),.approval-primary,.rb-save-plan-primary) {
  background:var(--ds-plum-900); border:1px solid var(--ds-plum-900); color:#fff; border-radius:10px; font-weight:650;
  transition:background-color var(--ds-fast) var(--ds-ease),border-color var(--ds-fast) var(--ds-ease),box-shadow var(--ds-fast) var(--ds-ease);
}
:is(.btn:not(.outline),.cd-primary,.member-primary,.rb-footer-next,.rt-journey-cta,.cd-beginner-cta:not(.is-outline),.approval-primary,.rb-save-plan-primary):hover:not(:disabled) {
  background:var(--ds-plum-700); border-color:var(--ds-plum-700); color:#fff;
}
:is(.btn.outline,.member-secondary,.member-ghost-btn,.cd-track-add,.cd-beginner-cta.is-outline,.reader-nav-btn) {
  background:var(--ds-white); border:1px solid var(--ds-line-strong); color:var(--ds-plum-900); border-radius:10px; font-weight:650;
  transition:background-color var(--ds-fast) var(--ds-ease),border-color var(--ds-fast) var(--ds-ease);
}
:is(.btn.outline,.member-secondary,.member-ghost-btn,.cd-track-add,.cd-beginner-cta.is-outline,.reader-nav-btn):hover:not(:disabled) {
  background:var(--ds-plum-100); border-color:var(--ds-plum-500);
}
:is(.btn,.cd-primary,.member-primary,.member-secondary,.member-ghost-btn,.rb-footer-next,.rt-journey-cta,.cd-beginner-cta,.cd-track-add,.reader-nav-btn):focus-visible {
  outline:2px solid var(--ds-coral-600); outline-offset:2px;
}
@media (max-width:640px) {
  :is(.btn,.cd-primary,.member-primary,.member-secondary,.rb-footer-next,.cd-beginner-cta,.cd-track-add) { min-height:44px; }
}

/* Readable explanations: sentences at 14 px, never the 11 px grey they had. */
:is(.sv-step-head p,.member-credits-head p,.ib-all-clear p,.cg-lab-card small) { font-size:var(--ds-text-sm); line-height:1.5; }

/* Shell: one-line name and role in the profile card; Practice interview looks like the other links. */
.rt-rail .rt-profile-link>span:nth-child(2) { min-width:0; overflow:hidden; }
.rt-rail .rt-profile-link b { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; white-space:normal; overflow-wrap:normal; }
.rt-rail .rt-profile-link small { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; overflow-wrap:normal; }
.rt-rail button.rt-nav-link { width:100%; border:0; background:transparent; box-shadow:none; text-align:left; font:inherit; color:inherit; cursor:pointer; }
.rt-rail button.rt-nav-link:hover { background:var(--ds-plum-100); }
.cd-career-tools { margin-top:28px; }
/* The tracker board scrolls through seven stages; the faded edge shows there is more to the right. */
.at-board { -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent); mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent); padding-right:40px; }

@media (prefers-reduced-motion:reduce) {
  :is(.btn,.cd-primary,.member-primary,.member-secondary,.member-ghost-btn,.rb-footer-next,.rt-journey-cta,.cd-beginner-cta,.cd-track-add,.reader-nav-btn) { transition:none; }
}

/* One page header: light, with a short eyebrow, the <h1>, a one-sentence lead, at most two actions
   and a small illustration on the right. Dark plum is kept for the approval and plan moments only. */
:is(.ib-command-banner,.sv-command-banner,.cg-command-banner),
body .document-library:has(.library-heading) .library-heading.dv-command-banner {
  background:none; color:var(--ds-ink-900); border:0; border-radius:0; box-shadow:none; padding:4px 0 12px; margin:0 0 8px; min-height:0;
}
:is(.ib-banner-main,.sv-banner-main,.cg-banner-main) { grid-template-columns:minmax(0,1fr) auto; gap:24px; align-items:center; }
:is(.ib-banner-art,.sv-banner-art,.cg-banner-art,.dv-banner-art) { width:168px; max-width:168px; border:0; border-radius:var(--ds-radius-md); box-shadow:none; overflow:hidden; background:none; }
:is(.ib-banner-art,.sv-banner-art,.cg-banner-art,.dv-banner-art) img { display:block; width:100%; height:auto; border-radius:var(--ds-radius-md); }
:is(.ib-eyebrow,.sv-eyebrow,.cg-eyebrow,.aa-eyebrow,.dv-eyebrow-pill) { color:var(--ds-ink-400); background:none; border:0; padding:0; font:650 var(--ds-text-xs)/1.3 var(--brand-sans); letter-spacing:.08em; }
:is(.ib-eyebrow,.sv-eyebrow,.cg-eyebrow,.aa-eyebrow,.dv-eyebrow-pill) i { background:var(--ds-coral-600); box-shadow:none; }
:is(.ib-banner-copy,.sv-banner-copy,.cg-banner-copy) p,.dv-banner-sub { color:var(--ds-ink-600); font-size:var(--ds-text-md); line-height:1.55; max-width:60ch; }
/* Header actions use the standard buttons (the old dark-banner outline was pale text on transparent). */
:is(.ib-banner-actions,.sv-banner-actions,.cg-banner-actions,.dv-banner-actions) .btn.outline { background:var(--ds-white); border:1px solid var(--ds-line-strong); color:var(--ds-plum-900); box-shadow:none; }
:is(.ib-banner-actions,.sv-banner-actions,.cg-banner-actions,.dv-banner-actions) .btn.outline:hover { background:var(--ds-plum-100); border-color:var(--ds-plum-500); }
:is(.ib-banner-actions,.sv-banner-actions,.cg-banner-actions,.dv-banner-actions) .btn:not(.outline) { background:var(--ds-plum-900); border-color:var(--ds-plum-900); color:#fff; font-weight:650; }
/* Status chips repeated what the page already shows; Setup's stepper, Inbox's cards and the guides carry it. */
:is(.ib-telemetry-row,.sv-telemetry-row,.cg-telemetry-row) { display:none; }
.dv-chip { background:var(--ds-white); border-color:var(--ds-line); }

/* Tandem Apply keeps its status chips (real state) on a light band at the top of its card. */
.aa-banner { color:var(--ds-ink-900); background:var(--ds-cream-50); border-bottom:1px solid var(--ds-line); }
.aa-banner::before,.aa-banner::after { display:none; }
.aa-emblem { border-color:var(--ds-line); background:var(--ds-white); box-shadow:none; backdrop-filter:none; }
.aa-title-row h1 { color:var(--ds-ink-900); }
.aa-heading p { color:var(--ds-ink-600); font-size:var(--ds-text-md); }
.aa-banner .aa-chip { background:var(--ds-white); border-color:var(--ds-line); color:var(--ds-ink-600); }
.aa-banner .aa-chip b { color:var(--ds-ink-900); }
.aa-banner .auto-state { color:var(--ds-ink-900); background:var(--ds-white); border-color:var(--ds-line-strong); }
.aa-banner .auto-state::before { background:var(--ds-ink-400); }
.aa-banner .auto-state[data-on="true"] { color:var(--ds-good); background:#e5f3ea; border-color:#bfdcca; }
.aa-banner .auto-state[data-on="true"]::before { background:var(--ds-good); box-shadow:none; }

@media (max-width:640px) {
  :is(.ib-banner-main,.sv-banner-main,.cg-banner-main) { grid-template-columns:minmax(0,1fr); }
  :is(.ib-banner-art,.sv-banner-art,.cg-banner-art,.dv-banner-art) { display:none; }
}

/* Tandem Apply step numbers in the brand font, not a code-style monospace. */
.aa-pipe-num { font-family:var(--brand-sans); font-variant-numeric:tabular-nums; font-weight:700; }

/* Edit profile: light header, progress line, tab ticks, autosave status, one swipeable tab row on phones. */
.career-editor-page .pe-masthead { display:block; min-height:0; padding:4px 0 12px; margin:0 0 8px; background:none; border-radius:0; }
.career-editor-page .pe-masthead h1 { margin:6px 0 8px; font:650 var(--ds-text-2xl)/1.12 var(--brand-sans); letter-spacing:-.03em; color:var(--ds-ink-900); }
.career-editor-page .pe-masthead h1 em { font-family:var(--brand-serif); font-style:italic; font-weight:400; letter-spacing:-.01em; color:#913d46; }
.career-editor-page .pe-masthead p { margin:0; max-width:60ch; color:var(--ds-ink-600); font-size:var(--ds-text-md); line-height:1.55; }
.pe-progress { display:flex; flex-wrap:wrap; align-items:center; gap:6px 16px; margin:0 0 12px; font-size:var(--ds-text-sm); color:var(--ds-ink-600); }
.pe-progress [data-pe-count] { font-weight:650; color:var(--ds-ink-900); }
.pe-status { display:inline-flex; align-items:center; gap:6px; }
.pe-status::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--ds-ink-400); }
.pe-status[data-kind="saved"]::before { background:var(--ds-good); }
.pe-status[data-kind="busy"]::before { background:var(--ds-warning); }
.pe-status[data-kind="error"] { color:var(--ds-critical); font-weight:650; }
.pe-status[data-kind="error"]::before { background:var(--ds-critical); }
.pe-progress .p-error { flex-basis:100%; margin:0; color:var(--ds-critical); }
.pe-progress .p-error:empty { display:none; }
.career-editor-page .pe-nav button { position:relative; }
.pe-sr { position:absolute; left:0; top:0; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.career-editor-page .pe-nav .pe-tick { display:inline-grid; place-items:center; width:16px; height:16px; flex:none; border:1.5px solid var(--ds-line-strong); border-radius:50%; }
.career-editor-page .pe-nav button[data-done="true"] .pe-tick { background:var(--ds-good); border-color:var(--ds-good); }
.career-editor-page .pe-nav button[data-done="true"] .pe-tick::after { content:""; width:6px; height:3px; margin-top:-2px; border:solid #fff; border-width:0 0 2px 2px; transform:rotate(-45deg); }
.career-editor-page .pe-nav button[aria-pressed="true"] .pe-tick { border-color:#ffffffa0; }
.career-editor-page .pe-nav .pe-optional { font-size:var(--ds-text-xs); font-weight:500; opacity:.8; }
.pe-from-resume { grid-column:1/-1; display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; margin:0 0 16px; padding:12px 14px; background:var(--ds-cream-50); border:1px solid var(--ds-line); border-radius:var(--ds-radius-md); }
.pe-from-resume p { flex:1 1 260px; margin:0; color:var(--ds-ink-600); }
.pe-from-resume small:empty { display:none; }
.pe-from-resume small { flex-basis:100%; color:var(--ds-good); }
.pe-salary-link { margin:-8px 0 16px; color:var(--ds-ink-600); }
.career-editor-page .pe-source { display:block; padding:12px 14px; background:var(--ds-cream-50); border:1px solid var(--ds-line); border-radius:var(--ds-radius-md); color:var(--ds-ink-600); }
.career-editor-page .pe-source p { margin:0 0 6px; }
.pe-source-actions { display:flex; flex-wrap:wrap; gap:6px 18px; }
.cc-full-address { margin-top:14px; }
.cc-full-address summary { cursor:pointer; font-weight:650; color:var(--ds-plum-700); }
.cc-full-address[open] summary { margin-bottom:10px; }
.cc-reason { margin:0 0 12px; color:var(--ds-ink-600); font-size:var(--ds-text-sm); }
.client-contact-fields fieldset small { margin-bottom:.4rem; }
/* Autosave removes the sticky save bar that covered the form. */
.career-editor-page #profile-form .pe-save.pe-done { position:static; display:flex; justify-content:flex-end; padding:16px 0 4px; background:none; border-top:1px solid var(--ds-line); }
@media (max-width:760px) {
  /* contain:inline-size stops the long row from widening the page column. */
  .career-editor-page .pe-nav { contain:inline-size; display:flex; flex-wrap:nowrap; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x proximity; scrollbar-width:none; gap:4px; }
  .career-editor-page .pe-nav::-webkit-scrollbar { display:none; }
  .career-editor-page .pe-nav button { flex:0 0 auto; white-space:nowrap; scroll-snap-align:start; padding:8px 12px; font-size:var(--ds-text-sm); }
  .career-editor-page #profile-form .pe-save.pe-done { display:flex; }
  .career-editor-page #profile-form .pe-save.pe-done .btn { width:100%; }
}

/* Upgrade prompts (upgrade-journey.js): one inline card, never an overlay. */
.up-slot:empty { display:none; }
.up-card { display:flex; gap:16px; align-items:flex-start; margin:16px 0; padding:16px; background:var(--ds-cream-50); border:1px solid var(--ds-line); border-radius:var(--ds-radius-lg); color:var(--ds-ink-600); text-align:left; }
.up-card.is-slim { padding:12px 14px; }
.up-art { flex:none; width:96px; height:auto; border-radius:var(--ds-radius-md); border:1px solid var(--ds-line); background:var(--ds-white); }
.up-copy { min-width:0; flex:1; }
.up-copy h3 { margin:0 0 4px; font:650 var(--ds-text-lg)/1.25 var(--brand-sans); color:var(--ds-ink-900); }
.up-card.is-slim h3 { font-size:var(--ds-text-md); }
.up-copy p { margin:0 0 8px; line-height:1.5; }
.up-proof { margin:8px 0 10px; padding:10px 12px; background:var(--ds-white); border:1px solid var(--ds-line); border-radius:var(--ds-radius-md); }
.up-proof p { margin:0 0 6px; color:var(--ds-ink-900); }
.up-proof ul { margin:0; padding:0; list-style:none; display:grid; gap:4px; }
.up-proof li { display:flex; flex-wrap:wrap; gap:2px 8px; font-size:var(--ds-text-sm); }
.up-proof li span { color:var(--ds-ink-400); }
.up-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin-top:4px; }
.up-dismiss { background:none; border:0; padding:8px 4px; color:var(--ds-ink-600); font:inherit; font-weight:600; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.up-dismiss:hover { color:var(--ds-ink-900); }
.up-fine, .up-hint { margin:10px 0 0; font-size:var(--ds-text-sm); color:var(--ds-ink-400); }
.at-empty .up-card { margin:20px auto 0; max-width:560px; }
.at-empty-layout .up-card { margin:0; max-width:none; padding:20px 24px; }
.at-empty-layout .up-card [data-upgrade-go] { background:var(--ds-white); border-color:var(--ds-line-strong); color:var(--ds-plum-900); }
.at-empty-layout .up-card [data-upgrade-go]:hover { background:var(--ds-plum-100); border-color:var(--ds-plum-500); color:var(--ds-plum-900); }
.up-report-wrap { overflow-x:auto; }
.up-report table { width:100%; border-collapse:collapse; font-size:var(--ds-text-sm); }
.up-report :is(th,td) { padding:8px 10px; border-bottom:1px solid var(--ds-line); text-align:right; }
.up-report :is(thead th, tbody th) { text-align:left; }
@media (max-width:640px) {
  .up-art { display:none; }
  .up-actions .btn { flex:1 1 100%; justify-content:center; }
  .at-empty-layout .up-card { padding:18px 20px; }
}

/* Subscription, free plan: what happens after subscribing comes first. */
.member-next { margin:0 0 20px; padding:20px; background:var(--ds-white); border:1px solid var(--ds-line); border-radius:var(--ds-radius-lg); }
.member-next h2 { margin:0 0 12px; font:650 var(--ds-text-xl)/1.2 var(--brand-sans); color:var(--ds-ink-900); }
.member-next ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:0; padding:0; list-style:none; }
.member-next li { display:flex; gap:10px; align-items:flex-start; }
.member-next li > span { display:grid; place-items:center; flex:none; width:28px; height:28px; border-radius:50%; background:var(--ds-plum-900); color:#fff; font-weight:700; }
.member-next b { color:var(--ds-ink-900); }
.member-next p { margin:4px 0 0; color:var(--ds-ink-600); font-size:var(--ds-text-sm); line-height:1.5; }
.member-free-keeps { margin:8px 0 0; color:var(--ds-ink-600); }
@media (max-width:760px) { .member-next ol { grid-template-columns:minmax(0,1fr); } }

/* Subscription redesign: flat sections, clear plan cards, plain credit rules, one plan at a time on phones. */
.member-page :is(.member-tiers-section,.member-faq,.member-comparison) { background:none; border:0; box-shadow:none; padding:0; border-radius:0; }
.member-page .member-section-head h2, .member-faq h2 { margin:0 0 6px; font:650 var(--ds-text-xl)/1.2 var(--brand-sans); letter-spacing:-.01em; color:var(--ds-ink-900); }
.member-includes { margin:0; max-width:72ch; color:var(--ds-ink-600); font-size:var(--ds-text-md); line-height:1.55; }
.member-includes b { color:var(--ds-ink-900); margin-right:4px; }
.member-page .member-tier-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; align-items:stretch; margin:16px 0 0; }
.member-page .member-tier-card { position:relative; display:flex; flex-direction:column; gap:12px; padding:24px; background:var(--ds-white); border:1px solid var(--ds-line); border-radius:var(--ds-radius-lg); box-shadow:none; color:var(--ds-ink-600); }
.member-page .member-tier-card::before, .member-page .member-tier-card::after { display:none; }
.member-page .member-tier-card.is-featured { background:var(--ds-plum-900); border-color:var(--ds-plum-900); color:#f2dfe8; box-shadow:0 16px 32px -20px rgba(57,23,53,.65); }
.member-page .member-tier-card.is-active-tier { border:2px solid var(--ds-good); }
.member-tier-tag { align-self:flex-start; padding:4px 10px; border-radius:999px; background:var(--ds-cream-100); color:var(--ds-plum-700); font:650 var(--ds-text-xs)/1.3 var(--brand-sans); letter-spacing:.02em; }
.is-featured .member-tier-tag { background:var(--ds-coral-600); color:#fff; }
.is-active-tier .member-tier-tag { background:#e5f3ea; color:var(--ds-good); }
.member-page .member-tier-card h3 { margin:0; font:650 var(--ds-text-lg)/1.2 var(--brand-sans); color:var(--ds-ink-900); }
.member-page .member-tier-card.is-featured h3 { color:#fffaf5; }
.member-page .member-tier-price { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px; margin:0; }
.member-page .member-tier-price b { font:700 40px/1 var(--brand-sans); letter-spacing:-.02em; color:var(--ds-ink-900); }
.member-page .member-tier-price span { font-size:var(--ds-text-md); color:var(--ds-ink-400); }
.member-page .member-tier-price .is-unavailable { font-size:var(--ds-text-lg); }
.member-page .is-featured .member-tier-price b { color:#fffaf5; }
.member-page .is-featured .member-tier-price span { color:#ecccd8; }
.member-tier-volume { margin:0; padding:12px 0; border-block:1px solid var(--ds-line); }
.member-tier-volume b { display:block; font-size:var(--ds-text-md); color:var(--ds-ink-900); }
.member-tier-volume span { display:block; margin-top:2px; font-size:var(--ds-text-sm); color:var(--ds-ink-600); }
.is-featured .member-tier-volume { border-color:rgba(255,255,255,.18); }
.is-featured .member-tier-volume b { color:#fffaf5; }
.is-featured .member-tier-volume span { color:#ecccd8; }
.member-page .member-tier-list { display:grid; gap:8px; margin:0; padding:0; list-style:none; font-size:var(--ds-text-md); line-height:1.45; color:inherit; }
.member-page .member-tier-list li { display:flex; gap:8px; }
.member-page .member-tier-list li::before { content:"✓"; flex:none; color:var(--ds-good); font-weight:700; }
.member-page .is-featured .member-tier-list li::before { color:#ffb49a; }
.member-page .member-tier-btn { margin-top:auto; width:100%; min-height:48px; }
.member-tier-current { display:flex; align-items:center; justify-content:center; gap:6px; margin:auto 0 0; min-height:48px; border-radius:10px; background:#e5f3ea; color:var(--ds-good); font-weight:650; }
.member-tier-terms { margin:0; text-align:center; font-size:var(--ds-text-sm); color:var(--ds-ink-400); }
.is-featured .member-tier-terms { color:#ecccd8; }
.member-tiers-section > .member-note { margin:12px 0 0; font-size:var(--ds-text-sm); color:var(--ds-ink-600); }
.member-tier-switch { display:none; }
/* Current plan: one quiet line on the free plan; plain facts for paid plans. */
.member-page .member-card.member-free-line { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; min-height:0; padding:16px 20px; background:var(--ds-cream-50); border:1px solid var(--ds-line); border-radius:var(--ds-radius-lg); box-shadow:none; color:var(--ds-ink-600); }
.member-page .member-card.member-free-line::before, .member-page .member-card.member-free-line::after { display:none; }
.member-free-line p { flex:1 1 320px; margin:0; font-size:var(--ds-text-md); line-height:1.5; color:var(--ds-ink-600); }
.member-free-line p b { color:var(--ds-ink-900); }
.member-page .member-card { border-radius:var(--ds-radius-lg); }
.member-plan-facts { display:flex; flex-wrap:wrap; gap:8px 24px; margin:12px 0 4px; padding:0; list-style:none; color:#f1dee8; font-size:var(--ds-text-md); }
.member-plan-facts b { margin-right:4px; color:#ffcabd; font-size:var(--ds-text-lg); }
/* Credits: a meter for the month and the rules in plain words. */
.member-meter p { margin:8px 0 6px; font-size:var(--ds-text-md); color:var(--ds-ink-600); }
.member-meter p b { font-size:var(--ds-text-lg); color:var(--ds-ink-900); }
.member-meter meter { display:block; width:min(100%,420px); height:12px; }
.member-meter meter::-webkit-meter-bar { background:var(--ds-cream-100); border:0; border-radius:999px; }
.member-meter meter::-webkit-meter-optimum-value { background:var(--ds-plum-700); border-radius:999px; }
.member-meter meter::-moz-meter-bar { background:var(--ds-plum-700); border-radius:999px; }
.member-rules { display:grid; gap:4px; margin:12px 0 0; padding-left:18px; font-size:var(--ds-text-sm); line-height:1.5; color:var(--ds-ink-600); }
/* Questions and the full comparison, without extra boxes. */
.member-faq details { padding:12px 0; border-bottom:1px solid var(--ds-line); }
.member-faq summary { cursor:pointer; font-size:var(--ds-text-md); font-weight:650; color:var(--ds-ink-900); }
.member-faq details p { margin:8px 0 0; max-width:70ch; color:var(--ds-ink-600); line-height:1.55; }
.member-page .member-details .member-comparison > summary { padding:8px 0; color:var(--ds-plum-700); font-weight:650; cursor:pointer; }
.member-proof { margin:16px 0 0; }
@media (max-width:640px) {
  .member-tier-switch { display:flex; gap:4px; margin:16px 0 0; padding:4px; background:var(--ds-cream-100); border-radius:var(--ds-radius-md); }
  .member-tier-switch button { flex:1; min-height:44px; border:0; border-radius:var(--ds-radius-sm); background:none; color:var(--ds-ink-600); font:650 var(--ds-text-sm)/1 var(--brand-sans); cursor:pointer; }
  .member-tier-switch button[aria-pressed="true"] { background:var(--ds-white); color:var(--ds-ink-900); box-shadow:0 1px 3px rgba(43,20,39,.12); }
  .member-page .member-tier-grid { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; gap:12px; margin-top:12px; padding:4px 2px 8px; scrollbar-width:none; contain:inline-size; }
  .member-page .member-tier-grid::-webkit-scrollbar { display:none; }
  .member-page .member-tier-card { flex:0 0 88%; scroll-snap-align:center; padding:20px; }
  .member-page .member-tier-price b { font-size:34px; }
}
.member-page .member-credits-card .member-meter p { margin:8px 0 6px; font-size:var(--ds-text-md); color:var(--ds-ink-600); max-width:none; }
.member-page .member-tier-card.is-active-tier { outline:0; box-shadow:none; }

/* Subscription: one compact summary of the plan and this month's credits (paid and other non-free states). */
.member-page .member-card.member-summary { position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1.15fr) auto; align-items:center; gap:18px 28px; min-height:0; padding:22px 26px; background:radial-gradient(circle at 14% 18%,rgba(255,178,154,.16),transparent 46%),linear-gradient(125deg,#2c1129 0%,var(--ds-plum-900) 58%,#4c1f42 100%); border:1px solid rgba(255,196,178,.22); border-radius:var(--ds-radius-lg); box-shadow:0 16px 34px -22px rgba(43,16,39,.55); color:#f1dee8; }
.member-page .member-card.member-summary:not(:has(.member-summary-credits,.member-summary-perks)) { grid-template-columns:minmax(0,1fr) auto; }
.member-page .member-card.member-summary::before { display:none; }
.member-page .member-card.member-summary::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(110deg,transparent 25%,rgba(255,222,206,.14) 50%,transparent 75%); transform:translateX(-120%); }
.member-summary-label { display:inline-flex; align-items:center; gap:7px; font:650 var(--ds-text-xs)/1.3 var(--brand-sans); letter-spacing:.08em; text-transform:uppercase; color:#ffb6a3; }
.member-live-dot { width:7px; height:7px; border-radius:50%; background:#ffb49a; box-shadow:0 0 0 3px rgba(255,180,154,.24); display:inline-block; flex:none; }
.member-summary-plan h2 { margin:5px 0 3px; font:650 var(--ds-text-xl)/1.15 var(--brand-sans); color:#fffaf5; }
.member-summary-plan p { margin:0; font-size:var(--ds-text-sm); color:#ecccd8; }
.member-summary .member-alert-inline { margin-top:6px; color:#ffcabd; }
.member-page .member-summary-credits { margin:0; padding:0; background:none; border:0; box-shadow:none; }
.member-summary-credits p { margin:0; font-size:var(--ds-text-md); color:#f1dee8; }
.member-summary-credits p b { font-size:var(--ds-text-lg); color:#fffaf5; }
.member-summary-credits meter.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.member-meter-track { position:relative; overflow:hidden; width:100%; height:10px; margin:8px 0 6px; border-radius:999px; background:rgba(255,255,255,.16); }
.member-meter-track > span { display:block; height:100%; width:var(--meter-fill,0%); border-radius:inherit; background:linear-gradient(90deg,#ffb49a 0%,#ffd8c7 100%); transform-origin:left center; }
.member-summary-credits .member-summary-counts { font-size:var(--ds-text-sm); color:#ecccd8; }
.member-summary-note { margin-top:4px !important; font-size:var(--ds-text-sm) !important; color:#ffcabd !important; }
.member-summary-perks { padding:12px 16px; border-radius:var(--ds-radius-md); background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.15); }
.member-page .member-card.member-summary .member-summary-perk-head { margin:0 0 6px; font:650 var(--ds-text-xs)/1.3 var(--brand-sans); letter-spacing:.06em; text-transform:uppercase; color:#ffcabd; }
.member-summary-perk-list { margin:0; padding:0; list-style:none; display:grid; gap:4px; font-size:var(--ds-text-sm); line-height:1.45; color:#f7e8f0; }
.member-summary-perk-list li { display:flex; gap:7px; align-items:baseline; }
.member-summary-perk-list li::before { content:"✓"; flex:none; color:#ffb49a; font-weight:700; }
.member-summary-actions { display:flex; flex-direction:column; gap:8px; justify-self:end; min-width:196px; }
.member-page .member-card.member-summary .member-summary-actions .member-primary { justify-content:center; text-align:center; white-space:nowrap; background:#fffaf5; color:#391735; border:1px solid #fffaf5; box-shadow:0 6px 16px -8px rgba(0,0,0,.38); }
.member-page .member-card.member-summary .member-summary-actions .member-primary:hover { background:#ffe9dc; border-color:#ffe9dc; color:#2b1028; }
.member-page .member-card.member-summary .member-summary-actions .member-secondary { justify-content:center; text-align:center; white-space:nowrap; color:#fffaf5; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.38); }
.member-page .member-card.member-summary .member-summary-actions .member-secondary:hover { background:rgba(255,255,255,.2); border-color:#fffaf5; color:#fff; }
.member-summary-actions:empty { display:none; }
.member-page .member-test-banner { display:inline-flex; align-items:center; gap:8px; margin:0 0 12px; padding:7px 13px; border-radius:999px; background:#fff7e2; border:1px solid #e6cd8c; color:#5a3f07; font-size:var(--ds-text-xs); font-weight:650; }
.member-page .member-test-banner::before { content:""; width:7px; height:7px; border-radius:50%; background:#c78512; flex:none; }
body.client-mode[data-role="client"] .rt-rail .rt-profile-link[data-membership="complimentary"] { border-left:4px solid #ffa389; }
@media (max-width:900px) {
  .member-page .member-card.member-summary,
  .member-page .member-card.member-summary:not(:has(.member-summary-credits,.member-summary-perks)) { grid-template-columns:minmax(0,1fr); padding:20px; }
  .member-summary-actions { justify-self:stretch; min-width:0; flex-direction:row; flex-wrap:wrap; }
  .member-summary-actions > * { flex:1 1 180px; }
}
@media (max-width:480px) {
  .member-page .member-card.member-summary .member-summary-actions :is(.member-primary,.member-secondary) { flex:1 1 100%; white-space:normal; }
  .member-page .member-test-banner { display:flex; border-radius:var(--ds-radius-md); }
}

/* Subscription start stage (Coach Arti loader + warm shimmer preview) & entrance choreography. */
.member-loading-stage { display:grid; gap:16px; max-width:72rem; }
.member-arti-start { min-height:176px; padding:24px 22px; border-color:var(--ds-line); background:radial-gradient(ellipse at 26% 58%,#f8e6d8,transparent 62%),var(--ds-cream-50); }
.member-loading-deck { display:grid; gap:14px; pointer-events:none; }
.member-loading-summary, .member-loading-card { position:relative; overflow:hidden; border-radius:var(--ds-radius-lg); border:1px solid var(--ds-line); background:var(--ds-cream-50); padding:20px 22px; }
.member-loading-summary { display:grid; gap:8px; background:#3b1836; border-color:#53264c; }
.member-loading-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.member-loading-card { display:grid; gap:10px; background:var(--ds-white); min-height:220px; align-content:start; }
.member-loading-card.is-featured { background:#391735; border-color:#53264c; }
.member-loading-deck :is(i,b,span,u) { display:block; border-radius:6px; background:#eadfd8; height:12px; text-decoration:none; }
.member-loading-summary i { width:92px; height:10px; background:rgba(255,190,168,.28); }
.member-loading-summary b { width:min(240px,68%); height:22px; background:rgba(255,250,245,.2); }
.member-loading-summary span { width:min(320px,84%); height:12px; background:rgba(255,250,245,.13); }
.member-loading-card i { width:42%; height:16px; }
.member-loading-card b { width:56%; height:34px; margin:2px 0 6px; }
.member-loading-card span { width:88%; height:13px; }
.member-loading-card u { width:100%; height:44px; margin-top:28px; border-radius:10px; }
.member-loading-card.is-featured :is(i,b,span,u) { background:rgba(255,244,236,.15); }
@media (max-width:640px) {
  .member-loading-grid { grid-template-columns:minmax(0,1fr); }
  .member-loading-grid > :not(.is-featured) { display:none; }
}
@keyframes memberShimmer {
  from { transform:translateX(-100%); }
  to { transform:translateX(100%); }
}
@keyframes memberEnterUp {
  from { opacity:0; transform:translateY(10px); }
  to { opacity:1; transform:translateY(0); }
}
@keyframes memberSheenSweep {
  0% { transform:translateX(-120%); }
  100% { transform:translateX(120%); }
}
@keyframes memberMeterGrow {
  from { transform:scaleX(0); }
  to { transform:scaleX(1); }
}
@keyframes memberDotPulse {
  0%, 100% { box-shadow:0 0 0 3px rgba(255,180,154,.24); }
  50% { box-shadow:0 0 0 6px rgba(255,180,154,.44); }
}
@media (prefers-reduced-motion: no-preference) {
  .member-loading-summary::after, .member-loading-card::after {
    content:""; position:absolute; inset:0;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.46),transparent);
    animation:memberShimmer 1.45s ease-in-out infinite;
  }
  .member-loading-summary::after, .member-loading-card.is-featured::after {
    background:linear-gradient(90deg,transparent,rgba(255,214,196,.14),transparent);
  }
  .portal-main:has(#subscription-panel) > .portal-head {
    animation:memberEnterUp .28s cubic-bezier(.22,1,.36,1) both;
  }
  .member-page.is-entering > .member-test-banner {
    animation:memberEnterUp .28s cubic-bezier(.22,1,.36,1) both;
  }
  .member-page.is-entering > .member-summary,
  .member-page.is-entering > .member-proof {
    animation:memberEnterUp .34s .03s cubic-bezier(.22,1,.36,1) both;
  }
  .member-page.is-entering .member-card.member-summary::after {
    animation:memberSheenSweep 1.15s .18s cubic-bezier(.22,1,.36,1) 1 forwards;
  }
  .member-page.is-entering .member-live-dot {
    animation:memberDotPulse 1.6s .2s ease-in-out 2;
  }
  .member-page.is-entering .member-meter-track > span {
    animation:memberMeterGrow .72s .16s cubic-bezier(.22,1,.36,1) both;
  }
  .member-page.is-entering .member-tiers-section > .member-section-head {
    animation:memberEnterUp .34s .07s cubic-bezier(.22,1,.36,1) both;
  }
  .member-page.is-entering .member-tier-card {
    animation:memberEnterUp .38s calc(.1s + var(--tier-order, 0) * .065s) cubic-bezier(.22,1,.36,1) both;
    transition:transform .2s cubic-bezier(.22,1,.36,1), box-shadow .2s ease, border-color .2s ease;
  }
  .member-page.is-entering > :is(.member-next,.member-free-line,.member-sharing,.member-faq,.member-details) {
    animation:memberEnterUp .36s .24s cubic-bezier(.22,1,.36,1) both;
  }
  @media (hover: hover) {
    .member-page .member-tier-card:hover { transform:translateY(-3px); box-shadow:0 14px 28px -18px rgba(43,20,39,.24); }
    .member-page .member-tier-card.is-featured:hover { transform:translateY(-4px); box-shadow:0 22px 38px -18px rgba(57,23,53,.72); }
  }
}

/* Calm light surfaces across Templates, Find Jobs, Tracker Dossier, Cover Letter, Launchpad and Outreach.
   Dark plum stays reserved for the approval moment and featured plan summaries. */
:is(.ix-hero,.find-banner,.at-dossier .at-dossier-hero,.cl-command-banner,.rb-launchpad-hero,.ro-hero) {
  background:var(--ds-cream-50); color:var(--ds-ink-900); border:1px solid var(--ds-line); border-radius:var(--ds-radius-lg); box-shadow:none;
}
:is(.ix-hero,.find-banner,.at-dossier-hero)::before, .ix-hero::after { display:none; }
:is(.ix-hero h2,.portal-main .ix-hero h2,.portal-main .find-banner h1,.at-dossier [data-tracker-title] #workspace-detail-title,.cl-banner-copy h2,.rb-launchpad-copy h3) {
  color:var(--ds-ink-900);
}
:is(.ix-hero p,.portal-main .find-banner p,.at-dossier .at-dossier-company,.cl-banner-copy p,.rb-launchpad-copy p,.ro-hero-sub,.ro-resume-line) {
  color:var(--ds-ink-600);
}
:is(.rb-launchpad-copy p strong,.ro-resume-line strong,.cl-chip b,.rb-launchpad-chip b,.at-dossier-hero .at-step b) {
  color:var(--ds-ink-900);
}
:is(.ix-eyebrow,.cl-eyebrow-pill,.ro-eyebrow,.ix-trust-line) { color:var(--ds-ink-400); font-size:var(--ds-text-xs); }
:is(.cl-chip,.rb-launchpad-chip,.ro-attach-pill) { background:var(--ds-white); border:1px solid var(--ds-line); color:var(--ds-ink-600); font-size:var(--ds-text-xs); }
:is(.ix-hero,.cl-command-banner .letter-start,.rb-launchpad-hero-actions) .btn:not(.outline) { background:var(--ds-plum-900); border-color:var(--ds-plum-900); color:#fff; }
:is(.ix-hero,.cl-command-banner .letter-start,.rb-launchpad-hero-actions) .btn.outline { background:var(--ds-white); border-color:var(--ds-line-strong); color:var(--ds-plum-900); }

/* Sunlit paper studio spot & folio accents across Outreach, Tailoring, Mock Interview, and Find Jobs. */
.ro-hero-art { margin:0; flex:0 0 156px; width:156px; border-radius:var(--ds-radius-md); overflow:hidden; border:1px solid var(--ds-line); background:var(--ds-white); }
.ro-hero-art img { display:block; width:100%; height:auto; }
.jt-intro-row { display:flex; align-items:center; gap:16px; margin:0 0 14px; padding:12px 14px; border-radius:var(--ds-radius-md); background:var(--ds-cream-50); border:1px solid var(--ds-line); }
.jt-intro-art { flex:0 0 116px; width:116px; height:auto; border-radius:var(--ds-radius-sm); border:1px solid var(--ds-line); }
.jt-intro-copy { min-width:0; flex:1; }
.jt-intro-copy .jt-job-line { margin:0 0 4px; font-weight:650; color:var(--ds-ink-900); }
.jt-intro-copy .fine { margin:0; color:var(--ds-ink-600); font-size:var(--ds-text-sm); }
.vc-studio-desk { margin:10px 0 0; padding:10px 12px; display:flex; align-items:center; gap:12px; border-radius:var(--ds-radius-md); background:var(--ds-cream-50); border:1px solid var(--ds-line); color:var(--ds-ink-600); font-size:var(--ds-text-xs); line-height:1.4; }
.vc-studio-desk img { flex:0 0 76px; width:76px; height:auto; border-radius:var(--ds-radius-sm); }
.find-notice .find-notice-spot { flex:0 0 88px; width:88px; height:auto; border-radius:var(--ds-radius-sm); mix-blend-mode:multiply; }
.am-pitch img { border-radius:var(--ds-radius-md); border:1px solid var(--ds-line); }
@media (max-width:640px) {
  .ro-hero-art, .jt-intro-art, .vc-studio-desk { display:none; }
  .find-notice .find-notice-spot { flex:0 0 56px; width:56px; }
}

/* Mobile Coach Arti overlap guard: never cover Resume Builder step bars or mobile navigation. */
@media (max-width:980px) {
  body:has(#resume:not([hidden]),.rb-workbench,.rb-step-footer,.rb-build-action-bar) .coach-pet { display:none !important; }
  body[data-role="client"] .coach-pet { --pet-bottom:calc(74px + env(safe-area-inset-bottom)); }
}
