/**
 * PPF Pro Blueprint - dashboard cards cluster, Component 5 of 7 (v0.3.36).
 *
 * Styles for the one-time notices (v0.3.112: the Shop Hours ledger card was
 * removed by owner order).
 * v0.3.63: the capstone card and certificate card styles are removed with
 * the grading extraction (owner ruling 16, 2026-09-20).
 *
 * Every --ppfb-10k-* token below is REFERENCED, never redefined: the canonical declarations live in
 * assets/css/ppfb-tokens.css on the .ppfb-scope selector. This sheet only
 * consumes them.
 *
 * Lock notes honored here: one gold per screen state (gold is button fill
 * only, charcoal text), zero em dashes, 44px minimum targets, 16px minimum
 * on form inputs, role=progressbar tracks animate scaleX from the left
 * origin, reduced-motion instant states, 390px single column.
 */

.ppfb-10k-card {
    background: var(--ppfb-10k-card);
    border: var(--ppfb-10k-border-1) solid var(--ppfb-10k-line);
    border-radius: var(--ppfb-10k-radius-card);
    padding: var(--ppfb-10k-space-5);
    margin: 0 0 var(--ppfb-10k-space-6);
    color: var(--ppfb-10k-ink);
    overflow-x: clip;
}

.ppfb-10k-eyebrow {
    font-family: var(--ppfb-10k-font-ui);
    font-size: 0.75rem;
    font-weight: var(--ppfb-10k-weight-extrabold);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ppfb-10k-eyebrow);
    margin: 0 0 var(--ppfb-10k-space-2);
}

.ppfb-10k-card-title {
    font-family: var(--ppfb-10k-font-ui);
    font-size: var(--ppfb-10k-text-lg);
    line-height: var(--ppfb-10k-leading-snug);
    font-weight: var(--ppfb-10k-weight-semibold);
    color: var(--ppfb-10k-ink);
    margin: 0 0 var(--ppfb-10k-space-2);
}

.ppfb-10k-card-body {
    font-family: var(--ppfb-10k-font-body);
    font-size: var(--ppfb-10k-text-17px);
    line-height: var(--ppfb-10k-leading-body);
    color: var(--ppfb-10k-ink);
    margin: 0 0 var(--ppfb-10k-space-3);
}

.ppfb-10k-quiet-line {
    font-family: var(--ppfb-10k-font-body);
    font-size: var(--ppfb-10k-text-17px);
    line-height: var(--ppfb-10k-leading-body);
    color: var(--ppfb-10k-quiet);
    margin: 0 0 var(--ppfb-10k-space-3);
}

/* Quiet actions: text links and link-styled buttons, never gold. */
.ppfb-10k-quiet-link-row {
    margin: var(--ppfb-10k-space-3) 0 0;
}

a.ppfb-10k-quiet-link,
button.ppfb-10k-quiet-link {
    display: inline-block;
    min-height: 44px;
    line-height: 44px;
    font-family: var(--ppfb-10k-font-ui);
    font-size: var(--ppfb-10k-text-ui);
    color: var(--ppfb-10k-ink);
    text-decoration: underline;
    text-underline-offset: var(--ppfb-10k-underline-offset);
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
}

a.ppfb-10k-quiet-link:hover,
button.ppfb-10k-quiet-link:hover {
    color: var(--ppfb-10k-black);
}

a.ppfb-10k-quiet-link:focus-visible,
button.ppfb-10k-quiet-link:focus-visible {
    outline: 2px solid var(--ppfb-10k-focus-paper);
    outline-offset: 2px;
    border-radius: var(--ppfb-10k-radius-xs);
}

/* The single gold action. Used only in the not-enrolled notice state. */
.ppfb-10k-action-row {
    margin: var(--ppfb-10k-space-4) 0 0;
}

a.ppfb-10k-btn-gold {
    display: inline-block;
    min-height: 44px;
    line-height: 44px;
    padding: 0 var(--ppfb-10k-space-6);
    font-family: var(--ppfb-10k-font-ui);
    font-size: var(--ppfb-10k-text-ui);
    font-weight: var(--ppfb-10k-weight-semibold);
    color: var(--course-button-text);
    background: var(--course-button-bg);
    border-radius: var(--ppfb-10k-radius-btn);
    text-decoration: none;
    text-align: center;
}

a.ppfb-10k-btn-gold:hover {
    background: var(--course-button-bg-hover);
    color: var(--course-button-text-hover);
}

a.ppfb-10k-btn-gold:focus-visible {
    outline: 2px solid var(--ppfb-10k-focus-paper);
    outline-offset: 2px;
}

/* v0.3.112: Shop Hours ledger card removed by owner order; its rules are gone. */

/* ============ Notices ============ */

.ppfb-10k-notice {
    margin-bottom: var(--ppfb-10k-space-4);
}

.ppfb-10k-notice-line {
    font-family: var(--ppfb-10k-font-body);
    font-size: var(--ppfb-10k-text-17px);
    line-height: var(--ppfb-10k-leading-body);
    color: var(--ppfb-10k-quiet);
    margin: 0 0 var(--ppfb-10k-space-4);
    padding: 0 var(--ppfb-10k-space-1);
}

.ppfb-10k-notice-line .ppfb-10k-quiet-link {
    min-height: 44px;
    line-height: 44px;
    font-size: var(--ppfb-10k-text-14px);
}

/* Hidden after dismissal: instant, no animation, content gone. */
.ppfb-10k-notice[data-ppfb-dismissed="1"],
.ppfb-10k-notice-line[data-ppfb-dismissed="1"] {
    display: none;
}

/* ============ 390px: single column, stacked, no horizontal scroll ============ */

@media (max-width: 480px) {
    .ppfb-10k-card {
        padding: var(--ppfb-10k-space-4);
    }
}

/* ============ Reduced motion: every staged reveal is instant ============ */

/* v0.3.112: the .ppfb-10k-track-fill reduced-motion rule is gone with the
   Shop Hours progress track it served. */

/* ============ v0.3.109: beta-code redeem card (Region 4b) ============
 * Card chrome comes from .ppfb-10k-card; this scopes the redeem form's
 * bare markup to the 10k visual language. Tokens are REFERENCED, never
 * redefined (canonical declarations live in assets/css/ppfb-tokens.css).
 * Lock notes honored: 16px minimum on form inputs, 44px minimum targets,
 * zero em dashes. The submit button uses the existing .ppfb-btn component
 * (assets/css/ppfb-buttons.css, in the enqueue chain via ppfb-lesson). */

.ppfb-beta-code .ppfb-beta-redeem p {
    margin: 0 0 var(--ppfb-10k-space-3);
}

.ppfb-beta-code .ppfb-beta-redeem input[type="text"] {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    font-family: var(--ppfb-10k-font-ui);
    font-size: 16px;
    line-height: 1.4;
    padding: 0.75rem 1rem;
    min-height: 44px;
    border: var(--ppfb-10k-border-1) solid var(--ppfb-10k-line);
    border-radius: var(--ppfb-10k-radius-card);
    background: var(--ppfb-10k-paper);
    color: var(--ppfb-10k-ink);
}

.ppfb-beta-code .ppfb-beta-redeem input[type="text"]:focus-visible {
    outline: 3px solid var(--course-focus-ring);
    outline-offset: var(--ppfb-10k-outline-offset, 2px);
}

.ppfb-beta-code .ppfb-beta-error {
    font-weight: var(--ppfb-10k-weight-semibold);
    color: var(--ppfb-10k-fail);
    margin: 0 0 var(--ppfb-10k-space-3);
}
