/* GraphicBidu Pre-Launch Mandatory Repair Layer
   Loaded after all prior presentation layers. No data or business logic lives here. */
:root {
    --gb-prelaunch-ink: #0b1220;
    --gb-prelaunch-paper: #ffffff;
    --gb-prelaunch-muted: #4f5b6d;
    --gb-prelaunch-line: rgba(12, 18, 32, .14);
    --gb-prelaunch-shadow: 0 18px 44px rgba(12, 18, 32, .12);
}

/* Keep every public and authenticated surface from creating horizontal overflow. */
.site-main,
.candidate-dashboard-page,
.candidate-dashboard-frame,
.candidate-dashboard-content,
.candidate-dashboard-content > *,
.candidate-v3-action-card,
.candidate-v3-support-grid > article,
.candidate-page-intro,
.candidate-surface,
.candidate-course-card,
.candidate-payment-row,
.verification-apply-layout,
.verification-apply-layout > *,
.mentor-dashboard-grid,
.mentor-admin-review-grid,
.mentor-admin-context-card,
.mentor-admin-controls-card {
    min-width: 0;
}

.candidate-dashboard-content :is(h1,h2,h3,p,dd,dt,a,span),
.mentor-dashboard-grid :is(h1,h2,h3,p,dd,dt,a,span),
.mentor-admin-review-grid :is(h1,h2,h3,p,dd,dt,a,span) {
    overflow-wrap: anywhere;
}

/* Homepage: founder crop, route contrast, complete certificate, and CTA contrast. */
.gb-home-founder__image img {
    object-position: center 5%;
}
.gb-home-route-card {
    border-color: rgba(11, 18, 32, .18);
    background: #ffffff;
    box-shadow: var(--gb-prelaunch-shadow);
}
.gb-home-route-card .panel-label,
.gb-home-route-card a,
.gb-home-route-card a strong {
    color: var(--gb-prelaunch-ink);
}
.gb-home-route-card a small,
.gb-home-route-card a span {
    color: #465269;
}
.gb-home-route-card a:hover,
.gb-home-route-card a:focus-visible {
    background: #f2f6fb;
    outline: none;
}
.gb-home-route-card a:focus-visible {
    box-shadow: inset 0 0 0 2px #0b1220;
}
.gb-home-certificate__preview {
    display: grid;
    align-content: center;
    gap: .85rem;
    min-height: 31rem;
    background: linear-gradient(145deg, #fffdf7 0%, #fbf6e9 100%);
}
.gb-home-certificate__preview strong,
.gb-home-certificate__preview h3,
.gb-home-certificate__preview p {
    margin: 0;
}
.gb-home-certificate__preview p:not(.gb-home-certificate__label) {
    max-width: 32ch;
    margin-inline: auto;
}
.gb-home-final-cta__panel,
.gb-home-section--mentorship {
    color: #f8fafc;
}
.gb-home-final-cta__actions .button-secondary,
.gb-home-section--mentorship .button-secondary {
    background: #ffffff;
    border-color: #ffffff;
    color: #0b1220;
    font-weight: 800;
}
.gb-home-final-cta__actions .button-secondary:hover,
.gb-home-final-cta__actions .button-secondary:focus-visible,
.gb-home-section--mentorship .button-secondary:hover,
.gb-home-section--mentorship .button-secondary:focus-visible {
    background: #dfe8f2;
    border-color: #dfe8f2;
    color: #0b1220;
}
.gb-home-final-cta__actions .button-primary,
.gb-home-section--mentorship .button-primary {
    border-color: #cbd5e1;
}

/* Premium empty states for public courses and mentors. */
.gb-public-empty-state {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: clamp(1rem, 3vw, 2rem);
    min-width: 0;
    padding: clamp(1.3rem, 3.5vw, 2.5rem);
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 26px;
    background: linear-gradient(135deg, rgba(255,255,255,.10), rgba(255,255,255,.04));
    color: #f8fafc;
    box-shadow: 0 18px 48px rgba(0,0,0,.18);
}
.gb-public-empty-state h2,
.gb-public-empty-state p,
.gb-public-empty-state .eyebrow { color: inherit; }
.gb-public-empty-state p:not(.eyebrow) { margin-bottom: 0; color: rgba(226,232,240,.82); }
.gb-public-empty-state__body {
    display: grid;
    gap: .7rem;
    min-width: 0;
}
.gb-public-empty-state__body > * { margin: 0; }
.gb-public-empty-state__mark {
    display: grid;
    place-items: center;
    width: 4.5rem;
    height: 4.5rem;
    border: 1px solid rgba(255,255,255,.34);
    border-radius: 999px;
    background: rgba(255,255,255,.10);
    font: 800 .9rem/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    letter-spacing: .12em;
}
.gb-public-empty-state__actions,
.mentor-v9-empty-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .7rem;
}
.gb-public-empty-state :is(.button-primary, .button-ghost) {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    text-align: center;
    white-space: normal;
    overflow-wrap: anywhere;
}
.gb-public-empty-state .button-primary {
    background: #ffffff;
    border-color: #ffffff;
    color: #0b1220;
}
.gb-public-empty-state .button-ghost {
    background: transparent;
    border-color: rgba(255,255,255,.6);
    color: #ffffff;
}
.gb-public-empty-state--courses,
.gb-public-empty-state--jobs,
.gb-public-empty-state--marketplace,
.gb-public-empty-state--directory,
.mentor-v9-empty.gb-public-empty-state {
    margin: 0;
    background:
        radial-gradient(circle at top right, rgba(194,151,54,.18), transparent 32%),
        linear-gradient(135deg, #111a2a, #1c2a40);
}

/* Course thumbnails remain legible even before a custom asset is uploaded. */
.course-board-v2-media--fallback,
.gb-home-course-card__media.is-fallback {
    background:
        radial-gradient(circle at 85% 10%, rgba(194, 151, 54, .34), transparent 35%),
        linear-gradient(135deg, #0b1220, #1d2b42);
}
.gb-fallback-thumb,
.gb-home-course-card__fallback {
    color: #ffffff;
}

/* Dashboard surface alignment: actions now share a stable baseline and center labels. */
.candidate-v3-action-card,
.candidate-v3-support-grid > article,
.candidate-course-card,
.candidate-payment-row,
.candidate-empty-state,
.candidate-readiness-card,
.candidate-page-intro,
.candidate-surface,
.verification-journey-step {
    border-color: var(--gb-prelaunch-line);
}
.candidate-v3-action-card .button,
.candidate-v3-support-grid .button,
.candidate-course-card-actions .button,
.candidate-payment-row-actions .button,
.candidate-v3-inline-actions .button,
.candidate-surface-actions .button,
.candidate-form-save-row .button,
.candidate-apply-actions .button {
    justify-content: center;
    text-align: center;
}
.candidate-v3-action-card > .button,
.candidate-v3-support-grid > article > .button,
.candidate-course-card-actions,
.candidate-payment-row-actions {
    margin-top: auto;
}
.candidate-v3-inline-actions,
.candidate-course-card-actions,
.candidate-payment-row-actions,
.candidate-surface-actions,
.candidate-form-save-row,
.candidate-apply-actions {
    align-items: stretch;
}
.candidate-payment-row {
    gap: 1rem;
}
.candidate-payment-row-meta,
.candidate-payment-row-actions {
    min-width: 0;
}

/* Verification and admin detail cards need predictable internal spacing. */
.verification-apply-layout,
.verification-apply-layout--stable,
.candidate-form-section,
.candidate-check,
.mentor-admin-context-card,
.mentor-admin-controls-card,
.mentor-admin-review-grid > article {
    min-width: 0;
}
.verification-apply-layout :is(.button, input, textarea, select),
.candidate-form-section :is(.button, input, textarea, select) {
    max-width: 100%;
}
.mentor-admin-definition-list,
.mentor-admin-definition-list > div {
    min-width: 0;
}
.mentor-admin-definition-list dd {
    overflow-wrap: anywhere;
}

/* Tablet/mobile structure. */
@media (max-width: 900px) {
    .gb-public-empty-state { grid-template-columns: auto minmax(0, 1fr); }
    .gb-public-empty-state__actions,
    .mentor-v9-empty-actions { grid-column: 1 / -1; justify-content: flex-start; }
}
@media (max-width: 620px) {
    .gb-home-founder__image { min-height: 28rem; }
    .gb-home-founder__image img { object-position: center top; }
    .gb-home-certificate__preview { min-height: 27rem; padding: 1.35rem; }
    .gb-public-empty-state { grid-template-columns: minmax(0, 1fr); }
    .gb-public-empty-state__mark { width: 3.75rem; height: 3.75rem; }
    .gb-public-empty-state__actions,
    .mentor-v9-empty-actions { width: 100%; }
    .gb-public-empty-state__actions .button,
    .mentor-v9-empty-actions .button { width: 100%; }
    .candidate-v3-inline-actions,
    .candidate-course-card-actions,
    .candidate-payment-row-actions,
    .candidate-surface-actions,
    .candidate-form-save-row,
    .candidate-apply-actions { width: 100%; }
    .candidate-v3-inline-actions .button,
    .candidate-course-card-actions .button,
    .candidate-payment-row-actions .button,
    .candidate-surface-actions .button,
    .candidate-form-save-row .button,
    .candidate-apply-actions .button { width: 100%; }
}

/* Public dark mode: keep intentionally light pricing surfaces readable. */
html[data-theme="dark"] .pricing-v9-assurance,
html[data-theme="dark"] .pricing-v9-card,
html[data-theme="dark"] .pricing-v9-faqs details,
html[data-theme="dark"] .pricing-v9-section--recessed {
    color: #0b1220;
}

html[data-theme="dark"] .pricing-v9-assurance,
html[data-theme="dark"] .pricing-v9-card,
html[data-theme="dark"] .pricing-v9-faqs details {
    border-color: rgba(12, 18, 32, .12);
    background: #fcfcfb;
    box-shadow: 0 18px 36px rgba(0, 0, 0, .12);
}

html[data-theme="dark"] .pricing-v9-section--recessed {
    background: linear-gradient(180deg, #f6f3ec, #f8f6f1);
    border-top-color: rgba(12, 18, 32, .1);
    border-bottom-color: rgba(12, 18, 32, .1);
}

html[data-theme="dark"] .pricing-v9-assurance :is(.panel-label, dt),
html[data-theme="dark"] .pricing-v9-card :is(.pricing-v9-index, p, li, span),
html[data-theme="dark"] .pricing-v9-section--recessed :is(.eyebrow, p, li),
html[data-theme="dark"] .pricing-v9-faqs p {
    color: #526072 !important;
}

html[data-theme="dark"] .pricing-v9-assurance :is(strong, dd),
html[data-theme="dark"] .pricing-v9-card :is(h3, strong, summary, .button),
html[data-theme="dark"] .pricing-v9-section--recessed :is(h2, strong),
html[data-theme="dark"] .pricing-v9-faqs summary {
    color: #0b1220 !important;
}

html[data-theme="dark"] .pricing-v9-card .button-primary {
    background: #0b1220;
    border-color: #0b1220;
    color: #ffffff !important;
}

html[data-theme="dark"] .pricing-v9-card .button-ghost {
    border-color: rgba(12, 18, 32, .18);
    color: #0b1220 !important;
}

/* Public profile: only the main score value should use the oversized display size. */
.public-score-card > strong {
    display: block;
    font-size: clamp(2.1rem, 5vw, 3rem);
    line-height: 1;
    margin: 0.5rem 0;
}

.public-score-card .definition-list strong {
    font-size: 1rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

/* Compact header actions before the mobile drawer takes over. */
@media (max-width: 420px) {
    .launch-mobile-auth-shortcuts {
        display: none !important;
    }

    .launch-header-right {
        gap: 6px;
    }

    .launch-brand .brand-text {
        display: none;
    }
}
