/* V44 TUESDAY -- per-screen refinements of EXISTING public / user views (owner: the V44 screens workstream). Scoped by view-level
   classes only (.pb-buyer / .pb-seller / .pb-shop / .pb-acct-page / .pb-auth-wrap / .pb-cs-page / .pb-w3-page / .pb-wd-page /
   .pb-oc-page); nothing here reaches the header (.pb42*), the sidebar (.pb-sb*) or the admin shell. Tokens of pb-tokens.css
   (Light / System / Dark variants exist there) with literal fallbacks. The pb44-* components themselves live in pb-v44.css. */

/* ------------------------------------------------------------------ 1. the task width (640) wins over the view's own wrapper width
   (two-class specificity, so the order of the view-linked stylesheets does not matter) */
.pb-buyer--narrow.pb44-task,
.pb-acct-page.pb44-task,
.pb-seller-form.pb44-task,
.pb-cs-page .pb44-task,
.pb-w3-page .pb44-task { max-width: var(--pb44-form-max, 640px); }
/* inside a 640px task the two-column card grids become one reading column (labels and actions on one line) */
.pb-cs-page .pb44-task .pb-cs-grid,
.pb-w3-page .pb44-task .pb-w3-grid { grid-template-columns: minmax(0, 1fr); }
/* the quick-edit summary and the row tools reach the 48px target */
.pb-seller .pb-rsq summary { min-height: var(--pb44-target, 48px); }

/* ------------------------------------------------------------------ 2. field and form messages: a glyph beside the colour on the
   EXISTING message classes of these views (never colour alone). The pb44-msg classes carry their own glyph (pb-v44.css). */
.pb-buyer .pb-field-error:not(.pb44-msg)::before,
.pb-seller .pb-field-error:not(.pb44-msg):not(.pb-shop-field-error)::before,
.pb-shop .pb-field-error:not(.pb44-msg):not(.pb-shop-field-error)::before,
.pb-seller .pb-shop-field-error > p:first-child::before,
.pb-shop .pb-shop-field-error > p:first-child::before,
.pb-w3-page .pb-field-error::before,
.pb-cs-page .field-validation-error::before,
.pb-acct-page .field-validation-error::before,
.pb-auth-wrap .field-validation-error::before,
.pb-wd-page .field-validation-error::before,
.pb-oc-page .field-validation-error::before { content: "\26A0\00A0"; font-weight: 700; }
.pb-buyer div.pb-error::before,
.pb-seller div.pb-error::before,
.pb-shop div.pb-error::before,
.pb-acct-page div.pb-error::before,
.pb-auth-wrap div.pb-error::before,
.pb-cs-page div.pb-error::before,
.pb-w3-page div.pb-error::before,
.pb-wd-page div.pb-error::before,
.pb-oc-page div.pb-error::before { content: "\26A0\00A0"; font-weight: 700; }
.pb-buyer .pb-success::before,
.pb-seller .pb-success::before,
.pb-shop .pb-success::before,
.pb-acct-page .pb-success::before,
.pb-auth-wrap .pb-success::before,
.pb-cs-page .pb-success::before,
.pb-w3-page .pb-success::before,
.pb-wd-page .pb-success::before,
.pb-oc-page .pb-success::before { content: "\2713\00A0"; font-weight: 700; }
.pb-seller .pb-shop-field-error > p { margin: 0; }

/* ------------------------------------------------------------------ 3. read-only outputs are text (an <output>, never a disabled input) */
.pb44-readonly {
    display: inline-block; min-height: 0; padding: 0; margin: 0; border: 0; background: transparent;
    font: inherit; line-height: 1.6; color: var(--pb-text-primary, #171A1F); overflow-wrap: anywhere;
}

/* ------------------------------------------------------------------ 4. seller product list (SellerShop/Products): inline row editing --
   the row keeps its place; edit / save / cancel; ONE per-row status as text (pb44-msg) plus a surface tint */
.pb-seller .pb-rsq-form.pb44-row-edit { border-top: 0; padding: 8px 0 0; margin: 4px 0 0; }
.pb-seller .pb44-row-edit .pb44-row-actions { grid-column: 1 / -1; flex-wrap: wrap; }
.pb-seller .pb44-row-edit .pb44-row-status { grid-column: 1 / -1; margin: 0; }
.pb-seller .pb44-row-edit[data-pb44-state=""] { background: transparent; }
.pb-seller .pb-seller-item[data-pb44-state="saved"] { background: var(--pb-success-surface, #ECFDF3); }
.pb-seller .pb-seller-item[data-pb44-state="error"] { background: var(--pb-danger-surface, #FEF3F2); }
.pb-seller .pb-seller-item-main > .pb44-row-status { margin: 6px 0 0; }

/* ------------------------------------------------------------------ 5. the cases list (Cases/Mine) as cards on phones: the links keep a 48px target */
@media (max-width: 900px) {
    .pb-cs-page .pb44-table.pb44-cards td a { display: inline-flex; align-items: center; min-height: var(--pb44-target, 48px); }
}

/* ------------------------------------------------------------------ 6. empty states inside wallet cards (SellerShop/Wallet, Withdraw) */
.pb-seller .pb-card > .pb44-state,
.pb-wd-page .pb-card > .pb44-state { margin: 8px 0 0; padding: 16px; }

/* ------------------------------------------------------------------ V46 R23 (AT1/AT3): one frame per card family.
   A MODEL card (digital file / print-eligible: the object's shape is the information) shows the whole thumbnail inside its
   frame on the neutral matte; a PHYSICAL PRODUCT photo and a portfolio photo keep the filled (cover) frame of their family.
   Scoped to the feed card's own data-card-kind; no header / sidebar / admin rule, no other card family touched. */
.pb-feed-card[data-card-kind="DigitalFile"] .pb-feed-card-media img,
.pb-feed-card[data-card-kind="PrintRequestEligible"] .pb-feed-card-media img,
.pb-feed-card[data-card-kind="ExternalReference"] .pb-feed-card-media img { object-fit: contain; background: var(--pb-media-matte, var(--pb-surface-subtle, #F4F5F8)); }

/* ------------------------------------------------------------------ V46 R30 (AT1): a creator-journey blocker = reason + the permitted
   completion action beside it (the brief stays on the page). Same tokens; the action is an outline button (48px rule of .pb-btn). */
.pb-cm-blocker { display: grid; gap: 8px; }
.pb-cm-blocker__reason, .pb-cm-blocker__action { margin: 0; }
.pb-cm-blocker__action { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.pb-cm-blocker__action .pb-cm-help { margin: 0; }
/* V46 R22 (AT1): an empty page beyond the list, inside a search group */
.pb-v46-outofrange { display: grid; gap: 8px; justify-items: start; }
