/* /Components/Brand/FinalCta.razor.rz.scp.css */
/* Scoped styles for FinalCta.razor — moved out of inline (Rule 7). */

.cta-max[b-ld0qghxyz8] { max-width:1200px; }

.cta-banner[b-ld0qghxyz8] { position:relative;overflow:hidden;border-radius:32px;background:radial-gradient(120% 130% at 50% -10%,#e85ba3 0%,#db338a 38%,#be0076 100%);text-align:center;box-shadow:0 40px 80px -44px rgba(95,15,60,0.8); }

.cta-confetti[b-ld0qghxyz8] { position:absolute;inset:0;pointer-events:none; }

.cta-spark-1[b-ld0qghxyz8] { position:absolute;top:42px;left:9%;width:18px;height:18px;border-radius:5px;background:#f77461;transform:rotate(45deg);animation:gh-twinkle 3.4s ease-in-out infinite; }
.cta-spark-2[b-ld0qghxyz8] { position:absolute;top:128px;left:20%;width:12px;height:12px;border-radius:50%;background:#f2c94e;animation:gh-twinkle 2.8s ease-in-out .4s infinite; }
.cta-spark-3[b-ld0qghxyz8] { position:absolute;bottom:46px;left:13%;width:13px;height:13px;border-radius:50%;background:#ffc1dc;animation:gh-twinkle 3.1s ease-in-out .9s infinite; }
.cta-spark-4[b-ld0qghxyz8] { position:absolute;bottom:104px;left:5%;width:20px;height:20px;border-radius:6px;background:#f2c94e;transform:rotate(45deg);animation:gh-twinkle 3.6s ease-in-out .2s infinite; }
.cta-spark-5[b-ld0qghxyz8] { position:absolute;top:36px;right:11%;width:14px;height:14px;border-radius:50%;background:#f2c94e;animation:gh-twinkle 3s ease-in-out .6s infinite; }
.cta-spark-6[b-ld0qghxyz8] { position:absolute;top:118px;right:7%;width:20px;height:20px;border-radius:6px;background:#f77461;transform:rotate(45deg);animation:gh-twinkle 3.3s ease-in-out 1.1s infinite; }
.cta-spark-7[b-ld0qghxyz8] { position:absolute;bottom:54px;right:18%;width:12px;height:12px;border-radius:50%;background:#ffc1dc;animation:gh-twinkle 2.7s ease-in-out .3s infinite; }
.cta-spark-8[b-ld0qghxyz8] { position:absolute;bottom:96px;right:9%;width:16px;height:16px;border-radius:5px;background:#f2c94e;transform:rotate(45deg);animation:gh-twinkle 3.5s ease-in-out .8s infinite; }
.cta-spark-9[b-ld0qghxyz8] { position:absolute;top:74px;left:33%;width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,0.85);animation:gh-twinkle 2.6s ease-in-out .5s infinite; }
.cta-spark-10[b-ld0qghxyz8] { position:absolute;bottom:70px;right:33%;width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,0.85);animation:gh-twinkle 2.9s ease-in-out 1s infinite; }

.cta-content[b-ld0qghxyz8] { position:relative; }

.cta-mark[b-ld0qghxyz8] { width:88px;height:88px;border-radius:24px;background:#fff;box-shadow:0 14px 30px -14px rgba(50,12,30,0.55);margin-bottom:24px; }

.cta-h2[b-ld0qghxyz8] { font-weight:700;line-height:1.04;color:#fff;margin-bottom:14px; }

.cta-p[b-ld0qghxyz8] { font-size:18px;color:rgba(255,255,255,0.9);max-width:460px;margin:0 auto 32px; }

.cta-btn[b-ld0qghxyz8] { font-weight:800;font-size:17px;color:var(--gh-pink-600);background:#fff;padding:16px 34px;border-radius:999px;white-space:nowrap;text-decoration:none;box-shadow:0 18px 36px -16px rgba(0,0,0,0.4); }
/* /Components/Brand/GiftCard.razor.rz.scp.css */
/* Scoped styles for GiftCard.razor — page-specific one-offs that were inline (Rule 7). */

.gc-card[b-paosghwtc7] { background: #fff; border: 1px solid var(--gh-line); border-radius: 18px; overflow: hidden; box-shadow: 0 18px 40px -34px rgba(95,15,60,0.5); text-decoration: none; }

/* Tile background colour is computed from data, kept inline via --gc-tile-bg. */
.gc-tile[b-paosghwtc7] { position: relative; aspect-ratio: 4/3; background-color: var(--gc-tile-bg); }

/* Image placeholder: a spinner sits on the pastel tile until the image's load
   event adds .gc-img-loaded, then the image fades in over it. */
.gc-img[b-paosghwtc7] { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: 0; transition: opacity .25s ease; }
.gc-tile.gc-img-loaded .gc-img[b-paosghwtc7] { opacity: 1; }

.gc-img-spinner[b-paosghwtc7] { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.gc-img-spinner[b-paosghwtc7]::after { content: ""; width: 28px; height: 28px; border-radius: 50%; border: 3px solid rgba(11, 20, 48, .12); border-top-color: var(--gh-pink); animation: gc-spin-b-paosghwtc7 .8s linear infinite; }
.gc-tile.gc-img-loaded .gc-img-spinner[b-paosghwtc7] { display: none; }

@keyframes gc-spin-b-paosghwtc7 {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .gc-img-spinner[b-paosghwtc7]::after { animation: none; }
    .gc-img[b-paosghwtc7] { transition: none; }
}

.gc-body[b-paosghwtc7] { padding: 16px 18px 18px; }
.gc-name[b-paosghwtc7] { font-weight: 700; font-size: 16px; letter-spacing: -0.01em; color: var(--gh-ink); margin-bottom: 3px; }
.gc-merchant[b-paosghwtc7] { font-size: 13px; color: var(--gh-mute); margin-bottom: 9px; }
.gc-merchant-spacer[b-paosghwtc7] { margin-bottom: 9px; }

/* Delivery coverage pill: how far this gift travels, stated before the gifter opens the product. */
.gc-scope[b-paosghwtc7] { display: inline-flex; align-items: center; gap: 5px; line-height: 1; margin-bottom: 13px; padding: 4px 10px; border: 1px solid var(--gh-line); border-radius: 999px; background: #fff; font-size: 11.5px; font-weight: 600; letter-spacing: .01em; color: var(--gh-ink); }
.gc-row[b-paosghwtc7] { gap: 12px; }
.gc-price[b-paosghwtc7] { font-weight: 800; font-size: 18px; color: var(--gh-ink); }
.gc-giftit[b-paosghwtc7] { font-weight: 700; font-size: 13.5px; color: #fff; background: var(--gh-pink); padding: 9px 17px; border-radius: 999px; box-shadow: 0 8px 18px -10px rgba(190,0,118,0.85); transition: background .16s ease; }
/* /Components/Brand/GiftForm.razor.rz.scp.css */
.gf-title[b-xucaua06yk] {
    font-weight: 800;
    font-size: 22px;
    letter-spacing: -0.02em;
    color: var(--gh-ink);
}

.gf-intro[b-xucaua06yk] {
    margin-top: 6px;
    font-size: 14.5px;
    line-height: 1.5;
    color: var(--gh-mute);
}

/* EditForm renders the <form>, which does not receive the component's scope
   attribute, so reach it through the scoped root with ::deep. */
[b-xucaua06yk] .gf-form {
    margin-top: 22px;
}

.gf-sendto[b-xucaua06yk] {
    font-size: 13px;
    font-weight: 700;
    color: var(--gh-ink);
    margin-bottom: 9px;
}

/* Separates the recipient details from the numbered configuration blocks above them. */
.gf-whofor[b-xucaua06yk] {
    font-size: 15px;
    padding-top: 18px;
    border-top: 1px solid var(--gh-line);
}

.gf-optional[b-xucaua06yk] {
    font-weight: 600;
    color: var(--gh-mute);
}

/* InputSelect renders the <select>; reach it through ::deep like the form. */
[b-xucaua06yk] .gf-select {
    margin-bottom: 6px;
}

.gf-error[b-xucaua06yk],
.gf-field-error[b-xucaua06yk] {
    font-size: 13px;
    color: #c0392b;
    margin-top: 6px;
}

.gf-error[b-xucaua06yk] {
    margin-top: 10px;
}

.gf-total-row[b-xucaua06yk] {
    gap: 12px;
    padding: 14px 0;
    border-top: 1px solid var(--gh-line);
    margin: 18px 0;
}

.gf-total-label[b-xucaua06yk] {
    font-size: 14px;
    font-weight: 600;
    color: var(--gh-mute);
}

.gf-total-note[b-xucaua06yk] {
    font-size: 12px;
    font-weight: 500;
    color: var(--gh-mute);
}

.gf-total-price[b-xucaua06yk] {
    font-weight: 800;
    font-size: 20px;
    color: var(--gh-ink);
}

.gf-btn-trail[b-xucaua06yk] {
    margin-left: 8px;
}

.gf-buy-secondary[b-xucaua06yk] {
    margin-top: 10px;
}

.gf-footnote[b-xucaua06yk] {
    text-align: center;
    font-size: 12.5px;
    color: var(--gh-mute);
    margin-top: 14px;
    line-height: 1.4;
}
/* /Components/Brand/GiftShareLinks.razor.rz.scp.css */
.share[b-ph9amgio0j] {
    margin: 22px auto 0;
    padding-top: 20px;
    max-width: 380px;
    border-top: 0.5px solid rgba(11, 20, 48, 0.1);
}

.share-h2[b-ph9amgio0j] { font-size: 15px; letter-spacing: -0.2px; }
.share-lead[b-ph9amgio0j] { font-size: 13px; margin-top: 6px; line-height: 1.6; }
.share-links[b-ph9amgio0j] { display: flex; flex-direction: column; gap: 10px; margin-top: 14px; }
.share-for[b-ph9amgio0j] { font-size: 12px; font-weight: 600; text-align: left; margin-bottom: 4px; }
.share-note[b-ph9amgio0j] { font-size: 12px; margin-top: 10px; line-height: 1.5; }
.share-note[hidden][b-ph9amgio0j] { display: none; }
/* /Components/Brand/Hero.razor.rz.scp.css */
/* Scoped styles for Hero.razor — page-specific one-offs moved out of inline (Rule 7). */

.hero-section[b-lvryazbgxr] { background:linear-gradient(170deg,var(--gh-cream) 0%,var(--gh-pink-50) 60%,#fdeef4 100%); }

/* Tablet and up: size the hero to the viewport so the fold always lands on the
   how-it-works teaser (eyebrow plus the top of its heading) instead of slicing the
   next section at an arbitrary point. 270px = sticky nav (about 100px) + the teaser
   peek (about 170px). min-height, not height: content taller than the viewport still
   scrolls. The svh declaration overrides vh where supported (stable on mobile chrome). */
@media (min-width:768px) {
    .hero-section[b-lvryazbgxr] { display:flex; align-items:center; min-height:calc(100vh - 270px); min-height:calc(100svh - 270px); }
}

.hero-grid-max[b-lvryazbgxr] { max-width:1200px; width:100%; }

.hero-badge[b-lvryazbgxr] { gap:9px;background:#fff;border:1px solid var(--gh-pink-100);border-radius:999px;padding:7px 15px 7px 11px;margin-bottom:26px;box-shadow:0 6px 18px -12px rgba(190,0,118,0.4); }

.hero-badge-dot[b-lvryazbgxr] { width:8px;height:8px;border-radius:50%;background:var(--gh-pink); }

.hero-badge-text[b-lvryazbgxr] { font-size:12.5px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--gh-pink-600); }

.hero-h1[b-lvryazbgxr] { font-weight:800;letter-spacing:-0.02em;color:var(--gh-ink);margin-bottom:22px; }

.hero-h1-pink[b-lvryazbgxr] { color:var(--gh-pink); }

.hero-sub[b-lvryazbgxr] { font-size:19px;line-height:1.45;color:var(--gh-ink-700);max-width:480px;margin-bottom:32px; }

.hero-easy[b-lvryazbgxr] { font-weight:800;color:var(--gh-pink);margin:0 0 8px; }

/* Steps stay a semantic <ol> but flow inline as one paragraph; numbers come from the counter. */
.hero-steps[b-lvryazbgxr] { display:inline;margin:0;padding:0;list-style:none;counter-reset:hero-step; }

.hero-steps li[b-lvryazbgxr] { display:inline;counter-increment:hero-step; }

.hero-steps li[b-lvryazbgxr]::before { content:counter(hero-step) ". ";font-weight:800;color:var(--gh-pink); }

.hero-cta-row[b-lvryazbgxr] { gap:14px;margin-bottom:30px; }

.hero-cta-primary[b-lvryazbgxr] { font-weight:800;font-size:17px;color:#fff;background:var(--gh-pink);padding:16px 30px;border-radius:999px;white-space:nowrap;text-decoration:none;box-shadow:0 16px 32px -14px rgba(190,0,118,0.9); }

.hero-cta-secondary[b-lvryazbgxr] { font-weight:700;font-size:16px;color:var(--gh-ink);background:#fff;border:1px solid var(--gh-line);padding:15px 26px;border-radius:999px;text-decoration:none; }

.hero-trust-row[b-lvryazbgxr] { gap:14px; }

.hero-avatar-coral[b-lvryazbgxr] { width:34px;height:34px;border-radius:50%;background:var(--gh-coral);border:2.5px solid var(--gh-cream); }
.hero-avatar-sun[b-lvryazbgxr] { width:34px;height:34px;border-radius:50%;background:var(--gh-sun);border:2.5px solid var(--gh-cream);margin-left:-12px; }
.hero-avatar-pink[b-lvryazbgxr] { width:34px;height:34px;border-radius:50%;background:var(--gh-pink-200);border:2.5px solid var(--gh-cream);margin-left:-12px; }
.hero-avatar-berry[b-lvryazbgxr] { width:34px;height:34px;border-radius:50%;background:var(--gh-berry);border:2.5px solid var(--gh-cream);margin-left:-12px; }

.hero-trust-text[b-lvryazbgxr] { font-size:14px;line-height:1.3;color:var(--gh-mute); }
.hero-trust-strong[b-lvryazbgxr] { color:var(--gh-ink);font-weight:800; }

.hero-collage[b-lvryazbgxr] { position:relative;height:560px;overflow:hidden;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 7%,#000 93%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 7%,#000 93%,transparent 100%); }

/* Viewport-height steps for the collage (plus slimmer hero padding at the short end)
   so the hero genuinely fits above the how-it-works teaser on shorter screens and
   fills the extra room on tall ones. The collage just crops; the mask hides the cut. */
@media (min-width:768px) and (min-height:1200px) { .hero-collage[b-lvryazbgxr] { height:640px; } }
@media (min-width:768px) and (max-height:1080px) { .hero-collage[b-lvryazbgxr] { height:500px; } }
@media (min-width:768px) and (max-height:960px)  { .hero-collage[b-lvryazbgxr] { height:430px; } }
@media (min-width:768px) and (max-height:840px)  { .hero-collage[b-lvryazbgxr] { height:380px; } .gh-hero-grid[b-lvryazbgxr] { padding-top:48px; padding-bottom:56px; } }

.hero-collage-grid[b-lvryazbgxr] { grid-template-columns:1fr 1fr;gap:16px; }

.hero-col[b-lvryazbgxr] { overflow:visible; }

.hero-tile[b-lvryazbgxr] { height:196px;margin-bottom:16px;box-shadow:0 16px 34px -30px rgba(95,15,60,0.45);text-decoration:none; }

/* Tile background image is per-tile (computed), supplied via the --hero-tile-img custom property. */
.hero-tile-img[b-lvryazbgxr] { background-image:var(--hero-tile-img); }
/* /Components/Brand/HeroSpotlight.razor.rz.scp.css */
/* Scoped styles for HeroSpotlight.razor — moved out of inline (Rule 7). */

.spot-section[b-dcc1vixv1e] { border-bottom:1px solid var(--gh-line); }

.spot-max[b-dcc1vixv1e] { max-width:1200px; }

.spot-eyebrow[b-dcc1vixv1e] { gap:8px;font-size:12.5px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--gh-pink-600);margin-bottom:12px; }

.spot-dot[b-dcc1vixv1e] { width:7px;height:7px;border-radius:50%;background:var(--gh-pink); }

.spot-h2[b-dcc1vixv1e] { font-weight:800;letter-spacing:-0.025em;color:var(--gh-ink);margin-bottom:18px; }
/* /Components/Brand/HowItWorks.razor.rz.scp.css */
/* Scoped styles for HowItWorks.razor — the inline one-offs moved out (Rule 7).
   Shared storefront patterns stay in the global gh-* classes (app.tailwind.css). */

.hiw-section[b-w50v7bqcm5] { max-width: 1200px; }

/* Shorter desktop viewports leave a slimmer teaser strip under the hero; pull the
   eyebrow up so it lands inside that strip instead of an empty band of padding. */
@media (min-width: 768px) and (max-height: 920px) { .hiw-section[b-w50v7bqcm5] { padding-top: 48px; } }

.hiw-head[b-w50v7bqcm5] { max-width: 620px; margin-bottom: 52px; }

.hiw-eyebrow[b-w50v7bqcm5] { font-size: 12.5px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gh-pink-600); margin-bottom: 12px; }

.hiw-h2[b-w50v7bqcm5] { font-weight: 700; line-height: 1.08; letter-spacing: -0.01em; color: var(--gh-ink); }

.hiw-grid[b-w50v7bqcm5] { gap: 22px; }

.hiw-card[b-w50v7bqcm5] { background: #fff; border: 1px solid var(--gh-line); border-radius: 22px; padding: 28px 24px; box-shadow: 0 22px 46px -38px rgba(95,15,60,0.5); }

.hiw-icon[b-w50v7bqcm5] { width: 58px; height: 58px; border-radius: 16px; flex: 0 0 auto; background: var(--hiw-icon-bg); color: var(--hiw-icon-color); margin-bottom: 20px; }

.hiw-step[b-w50v7bqcm5] { font-size: 12px; font-weight: 800; letter-spacing: 0.1em; color: var(--hiw-icon-color); margin-bottom: 6px; }

.hiw-title[b-w50v7bqcm5] { font-weight: 700; font-size: 20px; color: var(--gh-ink); margin-bottom: 8px; }

.hiw-desc[b-w50v7bqcm5] { font-size: 14.5px; line-height: 1.5; color: var(--gh-mute); }
/* /Components/Brand/ProductCard.razor.rz.scp.css */
/* Scoped styles for ProductCard.razor — page-specific one-offs that were inline (Rule 7). */

.pc-card[b-24p9cmno6y] { padding: 5px; }

/* Tile background colour is computed from data — kept inline via --pc-tile-bg. */
.pc-tile[b-24p9cmno6y] { background: var(--pc-tile-bg); }

.pc-overlay[b-24p9cmno6y] { height: 45%; }

.pc-badge[b-24p9cmno6y] { padding: 3px 8px; }
.pc-badge-upper[b-24p9cmno6y] { padding: 3px 8px; letter-spacing: .06em; }

.pc-meta[b-24p9cmno6y] { padding: 8px 6px 6px; }
.pc-merchant[b-24p9cmno6y] { letter-spacing: .5px; }

/* Image placeholder: a spinner sits on the pastel tile until the image's load
   event adds .pc-img-loaded, then the image fades in over it. */
.pc-img-spinner[b-24p9cmno6y] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pc-img-spinner[b-24p9cmno6y]::after {
    content: "";
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 3px solid rgba(11, 20, 48, .12);
    border-top-color: #E8186D;
    animation: pc-spin-b-24p9cmno6y .8s linear infinite;
}

.pc-tile.pc-img-loaded .pc-img-spinner[b-24p9cmno6y] { display: none; }

.pc-img[b-24p9cmno6y] {
    opacity: 0;
    transition: opacity .25s ease;
}

.pc-tile.pc-img-loaded .pc-img[b-24p9cmno6y] { opacity: 1; }

@keyframes pc-spin-b-24p9cmno6y {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .pc-img-spinner[b-24p9cmno6y]::after { animation: none; }
    .pc-img[b-24p9cmno6y] { transition: none; }
}
/* /Components/Brand/ProductDetail.razor.rz.scp.css */
.pd-card[b-s9sxz55x8b] {
    padding: 0;
    overflow: hidden;
}

.pd-hero[b-s9sxz55x8b] {
    position: relative;
    height: 300px;
    background-color: var(--gh-cream);
}

/* ResponsiveImage renders the <picture>/<img>, so it never gets this component's scope
   attribute; reach it through the scoped hero with ::deep. */
.pd-hero[b-s9sxz55x8b]  .pd-hero-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pd-cat[b-s9sxz55x8b] {
    position: absolute;
    top: 16px;
    left: 16px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--gh-ink);
    background: rgba(255, 255, 255, 0.94);
    padding: 6px 13px;
    border-radius: 999px;
    box-shadow: 0 4px 10px -5px rgba(95, 15, 60, 0.4);
    text-decoration: none;
}

.pd-body[b-s9sxz55x8b] {
    padding: 24px 26px 26px;
}

.pd-head[b-s9sxz55x8b] {
    gap: 16px;
}

.pd-title[b-s9sxz55x8b] {
    font-weight: 800;
    font-size: 25px;
    letter-spacing: -0.02em;
    color: var(--gh-ink);
    margin-bottom: 4px;
}

.pd-merchant[b-s9sxz55x8b] {
    font-size: 14px;
    color: var(--gh-mute);
}

.pd-price[b-s9sxz55x8b] {
    font-weight: 800;
    font-size: 26px;
    color: var(--gh-ink);
    white-space: nowrap;
}

.pd-desc[b-s9sxz55x8b] {
    font-size: 15px;
    line-height: 1.6;
    color: var(--gh-ink-700);
    margin-top: 16px;
    white-space: pre-line;
}

.pd-included[b-s9sxz55x8b] {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--gh-line);
}

.pd-included-title[b-s9sxz55x8b] {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--gh-ink);
    margin-bottom: 10px;
}

.pd-incl-item[b-s9sxz55x8b] {
    gap: 9px;
    font-size: 14.5px;
    color: var(--gh-ink-700);
    line-height: 1.7;
}

.pd-incl-bullet[b-s9sxz55x8b] {
    color: var(--gh-pink);
    font-weight: 800;
    line-height: 1.7;
}

.pd-badges[b-s9sxz55x8b] {
    gap: 8px;
    margin-top: 20px;
}

.pd-next-title[b-s9sxz55x8b] {
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--gh-ink);
    margin-bottom: 14px;
}

.pd-next-steps[b-s9sxz55x8b] {
    gap: 14px;
}

.pd-next-row[b-s9sxz55x8b] {
    gap: 12px;
}

.pd-next-text[b-s9sxz55x8b] {
    font-size: 14px;
    line-height: 1.45;
    color: var(--gh-ink-700);
}
/* /Components/Brand/ProductGrid.razor.rz.scp.css */
/* Scoped styles for ProductGrid.razor — page-specific one-offs that were inline (Rule 7). */

.pg-grid[b-71vr69gz3m] { gap: 8px; }
.pg-empty[b-71vr69gz3m] { padding: 32px 16px; }
/* /Components/Brand/ProductOptionsPicker.razor.rz.scp.css */
/* Configurator blocks on the gift page: a numbered size picker plus the upsell rows. */

.po-groups[b-vokc2hudep] {
    display: flex;
    flex-direction: column;
    gap: 22px;
    margin-bottom: 22px;
}

.po-group[b-vokc2hudep] {
    border: 0;
    padding: 0;
    margin: 0;
    min-width: 0;
}

.po-legend[b-vokc2hudep] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0;
    margin-bottom: 10px;
}

.po-step[b-vokc2hudep] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--gh-pink-100);
    color: var(--gh-pink-600);
    font-size: 11.5px;
    font-weight: 800;
}

.po-legend-text[b-vokc2hudep] {
    font-size: 12.5px;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--gh-ink-700);
}

.po-optional[b-vokc2hudep] {
    font-size: 12px;
    font-weight: 600;
    color: var(--gh-mute);
}

.po-hint[b-vokc2hudep] {
    margin: -4px 0 10px;
    font-size: 13px;
    line-height: 1.45;
    color: var(--gh-mute);
}

/* The size axis: picture-led cards, because the whole point is seeing the difference. */
.po-tiles[b-vokc2hudep] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.po-tile[b-vokc2hudep] {
    position: relative;
    display: flex;
    flex-direction: column;
    border: 2px solid var(--gh-line);
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
    cursor: pointer;
    transition: border-color .14s ease, box-shadow .14s ease;
}

.po-tile:hover[b-vokc2hudep] { border-color: var(--gh-pink-200); }

.po-tile.is-picked[b-vokc2hudep] {
    border-color: var(--gh-pink);
    box-shadow: 0 10px 24px -18px rgba(190, 0, 118, .9);
}

.po-tile.is-picked .po-tile-body[b-vokc2hudep] { background: var(--gh-pink-50); }

.po-input[b-vokc2hudep] {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    margin: 0;
}

/* Keyboard focus has to survive the visually-hidden input. */
.po-input:focus-visible + .po-tile-img[b-vokc2hudep],
.po-input:focus-visible ~ .po-tile-body[b-vokc2hudep] {
    outline: 2px solid var(--gh-pink-600);
    outline-offset: -2px;
}

.po-tile-img[b-vokc2hudep] {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    background: var(--gh-pink-50);
    display: block;
}

.po-tile-body[b-vokc2hudep] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 9px 10px 11px;
}

.po-tile-name[b-vokc2hudep] {
    font-size: 14px;
    font-weight: 700;
    color: var(--gh-ink);
    line-height: 1.25;
}

.po-tile-price[b-vokc2hudep] {
    font-size: 13px;
    font-weight: 700;
    color: var(--gh-pink-600);
}

.po-tile-desc[b-vokc2hudep] {
    font-size: 11.5px;
    line-height: 1.35;
    color: var(--gh-mute);
}

/* Upsells: a thumbnail, a name, and what it adds. */
.po-rows[b-vokc2hudep] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.po-row[b-vokc2hudep] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 13px 9px 11px;
    border: 2px solid var(--gh-line);
    border-radius: 14px;
    background: #fff;
    cursor: pointer;
    transition: border-color .14s ease, background .14s ease;
}

.po-row:hover[b-vokc2hudep] { border-color: var(--gh-pink-200); }

.po-row.is-picked[b-vokc2hudep] {
    border-color: var(--gh-pink);
    background: var(--gh-pink-50);
}

.po-check[b-vokc2hudep] {
    flex: none;
    width: 19px;
    height: 19px;
    accent-color: var(--gh-pink);
    cursor: pointer;
}

.po-row-img[b-vokc2hudep] {
    flex: none;
    width: 48px;
    height: 48px;
    border-radius: 10px;
    object-fit: cover;
    background: var(--gh-pink-50);
}

.po-row-blank[b-vokc2hudep] {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 10px;
    background: var(--gh-cream);
    color: var(--gh-mute);
}

.po-row-body[b-vokc2hudep] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    flex: 1 1 auto;
}

.po-row-name[b-vokc2hudep] {
    font-size: 14.5px;
    font-weight: 700;
    color: var(--gh-ink);
    line-height: 1.3;
}

.po-row-desc[b-vokc2hudep] {
    font-size: 12px;
    line-height: 1.35;
    color: var(--gh-mute);
}

.po-row-price[b-vokc2hudep] {
    flex: none;
    font-size: 14px;
    font-weight: 800;
    color: var(--gh-ink);
    white-space: nowrap;
}

@media (max-width: 640px) {
    .po-tiles[b-vokc2hudep] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .po-tile-desc[b-vokc2hudep] { display: none; }
    .po-row-img[b-vokc2hudep], .po-row-blank[b-vokc2hudep] { width: 42px; height: 42px; }
}

@media (max-width: 380px) {
    .po-tiles[b-vokc2hudep] { grid-template-columns: minmax(0, 1fr); }
}
/* /Components/Brand/StatCards.razor.rz.scp.css */
/* Scoped styles for StatCards.razor — the inline one-offs moved out (Rule 7).
   Shared storefront patterns stay in the global gh-* classes (app.tailwind.css). */

.stat-band[b-gehqlcdn34] { background: var(--gh-cream); border-top: 1px solid var(--gh-line); border-bottom: 1px solid var(--gh-line); }

.stat-grid[b-gehqlcdn34] { max-width: 1100px; }

.stat-divider[b-gehqlcdn34] { border-right: 1px solid var(--gh-line); }

.stat-label[b-gehqlcdn34] { font-weight: 700; text-transform: uppercase; color: var(--gh-mute); margin-bottom: 8px; }

/* The values are short phrases (product facts), not figures, so they sit a step below the
   shared gh-stat-num numeral size to fit the column. */
.stat-num[b-gehqlcdn34] { font-weight: 700; color: var(--gh-ink); line-height: 1.1; font-size: 20px; }
@media (min-width: 640px) { .stat-num[b-gehqlcdn34] { font-size: 32px; } }

.stat-sub[b-gehqlcdn34] { font-weight: 600; color: var(--gh-mute); margin-top: 8px; }
/* /Components/Layout/Admin/AdminLayout.razor.rz.scp.css */
/* AdminLayout shell. Reuses the gifthappy --gh-* tokens (declared in app.tailwind.css :root).
   Mockup clamp() sizing is expressed as real media queries (house rule). */

.admin-shell[b-0wnlhovarp] {
    font-family: 'Nunito', system-ui, -apple-system, sans-serif;
    color: var(--gh-ink);
    background: var(--gh-page);
    min-height: 100vh;
}

.admin-skip[b-0wnlhovarp] {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 60;
}
.admin-skip:focus[b-0wnlhovarp] {
    left: 12px;
    top: 12px;
    padding: 8px 14px;
    border-radius: 10px;
    background: var(--gh-pink);
    color: #fff;
    font-weight: 700;
}

/* Top bar */
.admin-topbar[b-0wnlhovarp] {
    position: sticky;
    top: 0;
    z-index: 40;
    background: rgba(255, 249, 242, 0.86);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--gh-line);
}
.admin-topbar-inner[b-0wnlhovarp] {
    max-width: 1320px;
    margin: 0 auto;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 0 16px;
}
.admin-brand[b-0wnlhovarp] {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}
.admin-logo[b-0wnlhovarp] {
    display: flex;
    align-items: center;
}
.admin-pill[b-0wnlhovarp] {
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--gh-pink-600);
    background: var(--gh-pink-50);
    border: 1px solid var(--gh-pink-100);
    padding: 5px 10px;
    border-radius: 999px;
    white-space: nowrap;
}
.admin-topbar-right[b-0wnlhovarp] {
    display: flex;
    align-items: center;
    gap: 18px;
}
.admin-viewsite[b-0wnlhovarp] {
    font-size: 14.5px;
    font-weight: 600;
    color: var(--gh-ink-700);
    text-decoration: none;
    transition: color 0.16s ease;
    white-space: nowrap;
}
.admin-viewsite:hover[b-0wnlhovarp] {
    color: var(--gh-pink-600);
}

/* Shell body: sidebar + content */
.admin-body[b-0wnlhovarp] {
    max-width: 1320px;
    margin: 0 auto;
    display: flex;
    align-items: flex-start;
    gap: 18px;
    padding: 18px 16px 80px;
}

.admin-sidebar[b-0wnlhovarp] {
    flex: 0 0 auto;
    width: 228px;
    position: sticky;
    top: 80px;
}
.admin-nav[b-0wnlhovarp] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.admin-nav-link[b-0wnlhovarp] {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 11px 14px;
    border-radius: 12px;
    font-size: 14.5px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    background: #fff;
    border: 1px solid var(--gh-line);
    color: var(--gh-ink-700);
    transition: background 0.14s ease, color 0.14s ease, box-shadow 0.14s ease;
}
.admin-nav-link:hover[b-0wnlhovarp] {
    background: var(--gh-pink-50);
    color: var(--gh-pink-600);
    border-color: var(--gh-pink-100);
}
.admin-nav-link.active[b-0wnlhovarp] {
    background: var(--gh-pink);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 12px 24px -14px rgba(190, 0, 118, 0.8);
}

.admin-main[b-0wnlhovarp] {
    flex: 1 1 auto;
    min-width: 0;
}

/* Tablet/desktop spacing ramp (replaces the mockup's clamp()) */
@media (min-width: 768px) {
    .admin-topbar-inner[b-0wnlhovarp] { padding: 0 24px; }
    .admin-body[b-0wnlhovarp] { gap: 24px; padding: 22px 24px 80px; }
}
@media (min-width: 1024px) {
    .admin-topbar-inner[b-0wnlhovarp] { padding: 0 32px; }
    .admin-body[b-0wnlhovarp] { gap: 30px; padding: 28px 32px 80px; }
}

/* Below the sidebar breakpoint: the nav becomes a horizontal scroll row above the content. */
@media (max-width: 820px) {
    .admin-body[b-0wnlhovarp] { flex-direction: column; }
    .admin-sidebar[b-0wnlhovarp] {
        width: 100%;
        position: static;
    }
    .admin-nav[b-0wnlhovarp] {
        flex-direction: row;
        gap: 8px;
        overflow-x: auto;
        padding-bottom: 4px;
        -webkit-overflow-scrolling: touch;
    }
    .admin-nav-link[b-0wnlhovarp] {
        flex: 0 0 auto;
    }
}
/* /Components/Layout/LeftSidebar.razor.rz.scp.css */
.sidebar-item[b-bj7vt7s4t1] {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    border-radius: 8px;
    color: #0B1430;
    font-size: 14px;
    font-weight: 400;
    text-align: left;
    text-decoration: none;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.sidebar-item:hover[b-bj7vt7s4t1] {
    background: #FFF0F6;
    color: #E8186D;
}

/* Moved out of inline style="" on the <aside> (Rule 7). */
.lsb-aside[b-bj7vt7s4t1] { width: 152px; padding: 16px 8px; gap: 14px; height: calc(100vh - 56px); position: sticky; top: 56px; overflow-y: auto; }
/* /Components/Layout/LoginDisplay.razor.rz.scp.css */
.ld-account-trigger[b-9fk4ulrsqj] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 2px;
    height: 40px;
    padding: 0 6px 0 8px;
    color: var(--gh-ink-700);
    cursor: pointer;
    list-style: none;
    user-select: none;
    border-radius: 999px;
    transition: background 0.15s ease;
}

.ld-account-trigger:hover[b-9fk4ulrsqj] {
    background: var(--gh-pink-50);
}

.ld-account-trigger[b-9fk4ulrsqj]::-webkit-details-marker {
    display: none;
}

.ld-account-icon[b-9fk4ulrsqj] {
    flex-shrink: 0;
}

.ld-account[open] .ld-chevron[b-9fk4ulrsqj] {
    transform: rotate(180deg);
}

.ld-account-panel[b-9fk4ulrsqj] {
    position: absolute;
    right: 0;
    top: calc(100% + 12px);
    z-index: 70;
    width: 208px;
    padding: 8px;
    background: #fff;
    border: 1px solid var(--gh-line);
    border-radius: 14px;
    box-shadow: 0 24px 48px -28px rgba(95, 15, 60, 0.55);
}

.ld-account-item[b-9fk4ulrsqj] {
    display: block;
    width: 100%;
    padding: 10px 12px;
    font-size: 14px;
    font-weight: 600;
    color: var(--gh-ink-700);
    text-align: left;
    text-decoration: none;
    background: none;
    border: none;
    border-radius: 10px;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.ld-account-item:hover[b-9fk4ulrsqj] {
    background: var(--gh-pink-50);
    color: var(--gh-ink);
}

.ld-account-sep[b-9fk4ulrsqj] {
    height: 1px;
    margin: 6px 4px;
    background: var(--gh-line);
}

.ld-account-signout-form[b-9fk4ulrsqj] {
    display: block;
}

.ld-account-signout[b-9fk4ulrsqj] {
    color: var(--gh-mute);
}

.ld-menu[b-9fk4ulrsqj] {
    position: relative;
}

.ld-trigger[b-9fk4ulrsqj] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 15px;
    font-weight: 600;
    color: var(--gh-ink-700);
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.ld-trigger[b-9fk4ulrsqj]::-webkit-details-marker {
    display: none;
}

.ld-chevron[b-9fk4ulrsqj] {
    transition: transform 0.16s ease;
}

.ld-menu[open] .ld-chevron[b-9fk4ulrsqj] {
    transform: rotate(180deg);
}

.ld-panel[b-9fk4ulrsqj] {
    position: absolute;
    right: 0;
    top: calc(100% + 12px);
    z-index: 70;
    width: 288px;
    padding: 18px;
    background: #fff;
    border: 1px solid var(--gh-line);
    border-radius: 18px;
    box-shadow: 0 24px 48px -28px rgba(95, 15, 60, 0.55);
}

.ld-panel-title[b-9fk4ulrsqj] {
    font-weight: 800;
    font-size: 15px;
    color: var(--gh-ink);
}

.ld-panel-sub[b-9fk4ulrsqj] {
    margin-top: 4px;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--gh-mute);
}

.ld-option[b-9fk4ulrsqj] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    margin-top: 10px;
    padding: 11px 14px;
    font-size: 14px;
    font-weight: 700;
    color: var(--gh-ink);
    background: #fff;
    border: 1px solid var(--gh-line);
    border-radius: 12px;
    text-decoration: none;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.ld-option:hover[b-9fk4ulrsqj] {
    border-color: var(--gh-pink-200);
    background: var(--gh-pink-50);
}

.ld-option-icon[b-9fk4ulrsqj] {
    flex-shrink: 0;
}

.ld-divider[b-9fk4ulrsqj] {
    display: flex;
    align-items: center;
    margin: 14px 0 4px;
    color: var(--gh-mute);
    font-size: 12px;
}

.ld-divider[b-9fk4ulrsqj]::before,
.ld-divider[b-9fk4ulrsqj]::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--gh-line);
}

.ld-divider span[b-9fk4ulrsqj] {
    padding: 0 10px;
}

.ld-email[b-9fk4ulrsqj] {
    display: block;
    margin-top: 8px;
    padding: 11px 14px;
    font-size: 14px;
    font-weight: 800;
    text-align: center;
    color: #fff;
    background: var(--gh-pink);
    border-radius: 12px;
    text-decoration: none;
    transition: background 0.16s ease;
}

.ld-email:hover[b-9fk4ulrsqj] {
    background: var(--gh-pink-600);
}
/* /Components/Layout/MinimalLayout.razor.rz.scp.css */
/* Scoped styles for MinimalLayout.razor — moved out of inline style="" (Rule 7). */

.min-header[b-shrancapb4] { height: 56px; }

.min-main[b-shrancapb4] { max-width: 540px; padding: 32px 20px 64px; }
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-4y0y1gczii],
.components-reconnect-repeated-attempt-visible[b-4y0y1gczii],
.components-reconnect-failed-visible[b-4y0y1gczii],
.components-pause-visible[b-4y0y1gczii],
.components-resume-failed-visible[b-4y0y1gczii],
.components-rejoining-animation[b-4y0y1gczii] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-4y0y1gczii],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-4y0y1gczii],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-4y0y1gczii],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-4y0y1gczii],
#components-reconnect-modal.components-reconnect-retrying[b-4y0y1gczii],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-4y0y1gczii],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-4y0y1gczii],
#components-reconnect-modal.components-reconnect-failed[b-4y0y1gczii],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-4y0y1gczii] {
    display: block;
}


#components-reconnect-modal[b-4y0y1gczii] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-4y0y1gczii 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-4y0y1gczii 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-4y0y1gczii 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-4y0y1gczii]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-4y0y1gczii 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-4y0y1gczii {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-4y0y1gczii {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-4y0y1gczii {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-4y0y1gczii] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-4y0y1gczii] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-4y0y1gczii] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-4y0y1gczii] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-4y0y1gczii] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-4y0y1gczii] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-4y0y1gczii] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-4y0y1gczii 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-4y0y1gczii] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-4y0y1gczii {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Layout/SectionLabel.razor.rz.scp.css */
/* Scoped styles for SectionLabel.razor — moved out of inline style="" (Rule 7). */

.sl-label[b-jq6idfbacs] { letter-spacing: .12em; }
/* /Components/Layout/SiteFooter.razor.rz.scp.css */
/* Scoped styles for SiteFooter.razor — the inline one-offs moved out (Rule 7).
   Shared storefront patterns stay in the global gh-* classes (app.tailwind.css). */

.ft-root[b-hoqede1wl4] { background: var(--gh-ink); color: rgba(255,255,255,0.7); font-family: 'Nunito', system-ui, sans-serif; }

.ft-top[b-hoqede1wl4] { max-width: 1200px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 40px; }

.ft-logo[b-hoqede1wl4] { margin-bottom: 14px; }

.ft-blurb[b-hoqede1wl4] { font-size: 14px; line-height: 1.55; max-width: 280px; }

/* Social icons under the blurb; reversed treatment to sit on the dark ink panel. */
.ft-social[b-hoqede1wl4] { gap: 10px; margin-top: 18px; }
.ft-social-link[b-hoqede1wl4] { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 999px; color: rgba(255,255,255,0.7); background: rgba(255,255,255,0.08); text-decoration: none; }
.ft-social-link:hover[b-hoqede1wl4] { color: #fff; background: var(--gh-pink); }
.ft-social-link svg[b-hoqede1wl4] { width: 17px; height: 17px; }

.ft-col-title[b-hoqede1wl4] { font-size: 12px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: #fff; margin-bottom: 16px; }

.ft-links[b-hoqede1wl4] { gap: 11px; font-size: 14px; }

.ft-link[b-hoqede1wl4] { color: rgba(255,255,255,0.7); text-decoration: none; }

.ft-bottom[b-hoqede1wl4] { border-top: 1px solid rgba(255,255,255,0.12); }

.ft-bar[b-hoqede1wl4] { max-width: 1200px; gap: 12px; font-size: 13px; color: rgba(255,255,255,0.55); }

.ft-bar-link[b-hoqede1wl4] { color: rgba(255,255,255,0.55); text-decoration: none; }
/* /Components/Layout/TopNav.razor.rz.scp.css */
/* Scoped styles for TopNav.razor — the inline one-offs moved out (Rule 7).
   Shared storefront patterns stay in the global gh-* classes (app.tailwind.css). */

.nav-header[b-sdc14za87h] { position: sticky; top: 0; z-index: 40; background: rgba(255,249,242,0.86); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--gh-line); font-family: 'Nunito', system-ui, sans-serif; }

.nav-bar[b-sdc14za87h] { max-width: 1200px; }

.nav-link[b-sdc14za87h] { font-size: 15px; font-weight: 600; color: var(--gh-ink-700); text-decoration: none; }

.nav-cta[b-sdc14za87h] { font-weight: 700; font-size: 15px; color: #fff; background: var(--gh-pink); padding: 11px 22px; border-radius: 999px; white-space: nowrap; text-decoration: none; box-shadow: 0 10px 22px -12px rgba(190,0,118,0.8); }

.nav-cta-sm[b-sdc14za87h] { font-weight: 700; font-size: 14px; color: #fff; background: var(--gh-pink); padding: 10px 18px; border-radius: 999px; white-space: nowrap; text-decoration: none; box-shadow: 0 10px 22px -12px rgba(190,0,118,0.8); }

.nav-search[b-sdc14za87h] { position: relative; display: flex; align-items: center; }
.nav-search-icon[b-sdc14za87h] { position: absolute; left: 13px; pointer-events: none; }

/* Small screens: the brand row keeps the logo, basket and CTA; the search drops to a
   full-width row of its own beneath it (nav-search-row) rather than sharing the line. */
.nav-mobile[b-sdc14za87h] { flex: 1; min-width: 0; justify-content: flex-end; }

.nav-search-row[b-sdc14za87h] { max-width: 1200px; padding: 0 16px 12px; }
@media (min-width: 640px) { .nav-search-row[b-sdc14za87h] { padding: 0 24px 12px; } }

@media (max-width: 767.98px) {
    .nav-bar[b-sdc14za87h] { padding-bottom: 10px; }
    .nav-search-row .nav-search[b-sdc14za87h] { width: 100%; }
    .nav-search-row .gh-search[b-sdc14za87h] { width: 100%; min-width: 0; }
}

/* Narrow phones (360px class): tighten the gap and the CTA so the brand row still fits on one line. */
@media (max-width: 374.98px) {
    .nav-bar[b-sdc14za87h] { gap: 10px; }
    .nav-cta-sm[b-sdc14za87h] { padding: 9px 14px; font-size: 13px; }
}

.nav-basket[b-sdc14za87h] { position: relative; width: 40px; height: 40px; color: var(--gh-ink-700); text-decoration: none; }

.nav-badge[b-sdc14za87h] { position: absolute; top: 1px; right: 0; min-width: 18px; height: 18px; padding: 0 4px; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 800; line-height: 1; color: #fff; background: var(--gh-pink); border-radius: 999px; box-shadow: 0 0 0 2px var(--gh-cream); box-sizing: border-box; }
/* /Components/Onboarding/CatalogueReviewGrid.razor.rz.scp.css */
/* Catalogue review grid. Brand tokens (--gh-*); fixed sizes with a media-query reflow to cards (house rule). */

.crg[b-qb65jionoy] {
    color: var(--gh-ink);
    font-size: 13.5px;
}

.crg-toolbar[b-qb65jionoy] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}

.crg-search[b-qb65jionoy] {
    position: relative;
    display: flex;
    align-items: center;
    flex: 1 1 240px;
    min-width: 0;
}

.crg-search svg[b-qb65jionoy] {
    position: absolute;
    left: 12px;
    color: var(--gh-mute);
    pointer-events: none;
}

.crg-search input[b-qb65jionoy],
.crg-select select[b-qb65jionoy],
.crg-price-range input[b-qb65jionoy] {
    width: 100%;
    border: 1px solid var(--gh-line);
    border-radius: 10px;
    background: #fff;
    color: var(--gh-ink);
    font-size: 13px;
    padding: 9px 12px;
    outline: none;
}

.crg-search input[b-qb65jionoy] {
    padding-left: 36px;
}

.crg-search input:focus[b-qb65jionoy],
.crg-select select:focus[b-qb65jionoy],
.crg-price-range input:focus[b-qb65jionoy],
.crg-price-input input:focus[b-qb65jionoy] {
    border-color: var(--gh-pink);
}

.crg-select select[b-qb65jionoy] {
    width: auto;
}

.crg-price-range[b-qb65jionoy] {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--gh-mute);
    font-size: 12px;
}

.crg-price-range input[b-qb65jionoy] {
    width: 84px;
}

.crg-filter[b-qb65jionoy] {
    position: relative;
}

.crg-filter summary[b-qb65jionoy] {
    list-style: none;
    cursor: pointer;
    border: 1px solid var(--gh-line);
    border-radius: 10px;
    background: #fff;
    padding: 9px 12px;
    font-size: 13px;
    white-space: nowrap;
}

.crg-filter summary[b-qb65jionoy]::-webkit-details-marker {
    display: none;
}

.crg-filter[open] summary[b-qb65jionoy],
.crg-filter.crg-filter-active summary[b-qb65jionoy] {
    border-color: var(--gh-pink);
    color: var(--gh-pink-600);
}

.crg-filter-count:not(:empty)[b-qb65jionoy] {
    margin-left: 4px;
    border-radius: 999px;
    background: var(--gh-pink-50);
    padding: 1px 7px;
    font-size: 11px;
    font-weight: 700;
}

.crg-filter-menu[b-qb65jionoy] {
    position: absolute;
    z-index: 20;
    top: calc(100% + 6px);
    left: 0;
    min-width: 240px;
    max-height: 320px;
    overflow-y: auto;
    border: 1px solid var(--gh-line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(50, 32, 40, 0.14);
    padding: 6px;
}

.crg-filter-option[b-qb65jionoy] {
    display: flex;
    align-items: center;
    gap: 8px;
    border-radius: 8px;
    padding: 7px 8px;
    cursor: pointer;
}

.crg-filter-option:hover[b-qb65jionoy] {
    background: var(--gh-page);
}

.crg-filter-option span:nth-child(2)[b-qb65jionoy] {
    flex: 1;
}

.crg-link-btn[b-qb65jionoy] {
    border: 0;
    background: none;
    color: var(--gh-pink-600);
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    padding: 4px 0;
}

.crg-edit-prices[b-qb65jionoy] {
    display: block;
}

.crg-link-btn:hover[b-qb65jionoy] {
    text-decoration: underline;
}

.crg-summary[b-qb65jionoy] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 16px;
    margin-bottom: 10px;
}

.crg-counts[b-qb65jionoy] {
    margin: 0;
    font-size: 14px;
}

.crg-counts strong[b-qb65jionoy] {
    color: var(--gh-pink-600);
    font-size: 16px;
}

.crg-bulk[b-qb65jionoy] {
    display: flex;
    gap: 8px;
}

.crg-bulk-btn[b-qb65jionoy] {
    padding: 7px 12px;
    font-size: 12.5px;
}

.crg-status[b-qb65jionoy] {
    margin: 0 0 0 auto;
    color: var(--gh-mute);
    font-size: 12.5px;
}

.crg-status.crg-status-error[b-qb65jionoy] {
    color: var(--gh-coral-700);
    font-weight: 600;
}

.crg-muted[b-qb65jionoy] {
    color: var(--gh-mute);
}

.crg-table-wrap[b-qb65jionoy] {
    border: 1px solid var(--gh-line);
    border-radius: 14px;
    background: #fff;
    overflow-x: auto;
}

.crg-table[b-qb65jionoy] {
    width: 100%;
    border-collapse: collapse;
}

.crg-table > thead th[b-qb65jionoy] {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--gh-page);
    border-bottom: 1px solid var(--gh-line);
    color: var(--gh-ink-700);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-align: left;
    text-transform: uppercase;
    padding: 10px 12px;
    white-space: nowrap;
}

.crg-table > thead button[b-qb65jionoy] {
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
    cursor: pointer;
    padding: 0;
}

.crg-table > thead button[b-qb65jionoy]::after {
    content: "\2195";
    margin-left: 4px;
    opacity: 0.35;
}

.crg-table > thead button[data-dir="asc"][b-qb65jionoy]::after {
    content: "\2191";
    opacity: 1;
}

.crg-table > thead button[data-dir="desc"][b-qb65jionoy]::after {
    content: "\2193";
    opacity: 1;
}

.crg-row > td[b-qb65jionoy] {
    border-bottom: 1px solid var(--gh-line);
    padding: 12px;
    vertical-align: top;
}

.crg-row.crg-off > td[b-qb65jionoy] {
    background: #fcfafb;
}

.crg-row.crg-off .crg-name[b-qb65jionoy],
.crg-row.crg-off .crg-thumb img[b-qb65jionoy] {
    opacity: 0.6;
}

.crg-col-tick[b-qb65jionoy] {
    width: 96px;
}

.crg-col-image[b-qb65jionoy] {
    width: 84px;
}

.crg-col-desc[b-qb65jionoy] {
    width: 26%;
}

.crg-tick[b-qb65jionoy] {
    position: relative;
    display: inline-flex;
    cursor: pointer;
}

.crg-tick input[b-qb65jionoy] {
    position: absolute;
    opacity: 0;
    width: 26px;
    height: 26px;
    margin: 0;
    cursor: pointer;
}

.crg-tick-box[b-qb65jionoy] {
    width: 26px;
    height: 26px;
    border: 2px solid var(--gh-pink-200);
    border-radius: 8px;
    background: #fff;
    transition: background 0.15s, border-color 0.15s;
}

.crg-tick input:checked + .crg-tick-box[b-qb65jionoy] {
    border-color: var(--gh-pink);
    background: var(--gh-pink) no-repeat center / 16px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}

.crg-tick input:focus-visible + .crg-tick-box[b-qb65jionoy] {
    outline: 2px solid var(--gh-pink);
    outline-offset: 2px;
}

.crg-tick input:disabled + .crg-tick-box[b-qb65jionoy] {
    opacity: 0.55;
    cursor: not-allowed;
}

.crg-reason[b-qb65jionoy] {
    display: block;
    margin-top: 6px;
    color: var(--gh-coral-700);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.3;
}

.crg-reason-live[b-qb65jionoy] {
    color: var(--gh-success);
}

.crg-thumb[b-qb65jionoy] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border: 1px solid var(--gh-line);
    border-radius: 10px;
    background: var(--gh-page);
    overflow: hidden;
    padding: 0;
    cursor: zoom-in;
}

.crg-thumb img[b-qb65jionoy] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.crg-thumb-empty[b-qb65jionoy] {
    color: var(--gh-mute);
    cursor: default;
}

.crg-thumb-count[b-qb65jionoy] {
    position: absolute;
    right: 3px;
    bottom: 3px;
    border-radius: 999px;
    background: rgba(50, 32, 40, 0.72);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    padding: 1px 6px;
}

.crg-name[b-qb65jionoy] {
    font-weight: 700;
    line-height: 1.35;
}

.crg-sub[b-qb65jionoy] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 10px;
    margin-top: 4px;
    color: var(--gh-mute);
    font-size: 12px;
}

.crg-new[b-qb65jionoy] {
    border-radius: 999px;
    background: var(--gh-sun-100);
    color: #8a6400;
    font-weight: 700;
    padding: 0 7px;
}

.crg-source[b-qb65jionoy] {
    color: var(--gh-pink-600);
}

.crg-chips[b-qb65jionoy] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.crg-chip[b-qb65jionoy] {
    border-radius: 999px;
    background: var(--gh-pink-50);
    color: var(--gh-ink-700);
    font-size: 11.5px;
    padding: 2px 8px;
    white-space: nowrap;
}

.crg-chip-collection[b-qb65jionoy],
.crg-chip-category[b-qb65jionoy] {
    background: var(--gh-pink-100);
}

.crg-chip-producttype[b-qb65jionoy] {
    background: #e7f0fb;
}

.crg-chip-tag[b-qb65jionoy] {
    background: #f3eef1;
    color: var(--gh-mute);
}

.crg-price[b-qb65jionoy] {
    font-weight: 700;
    white-space: nowrap;
}

.crg-price-input[b-qb65jionoy] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-weight: 700;
}

.crg-price-input input[b-qb65jionoy] {
    width: 92px;
    border: 1px solid var(--gh-line);
    border-radius: 8px;
    color: var(--gh-ink);
    font-size: 13px;
    font-weight: 600;
    padding: 6px 8px;
    outline: none;
}

.crg-price-input input.crg-saved[b-qb65jionoy] {
    border-color: var(--gh-success);
}

.crg-price-input input.crg-invalid[b-qb65jionoy] {
    border-color: var(--gh-coral-700);
}

.crg-axis[b-qb65jionoy] {
    font-size: 12.5px;
    line-height: 1.45;
}

.crg-axis-name[b-qb65jionoy] {
    font-weight: 600;
}

.crg-desc[b-qb65jionoy] {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0;
    color: var(--gh-ink-700);
    font-size: 12.5px;
    line-height: 1.5;
}

.crg-detail > td[b-qb65jionoy] {
    border-bottom: 1px solid var(--gh-line);
    background: var(--gh-page);
    padding: 16px 20px 20px;
}

.crg-detail-grid[b-qb65jionoy] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 24px;
}

.crg-detail h3[b-qb65jionoy] {
    margin: 0 0 8px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--gh-ink-700);
}

.crg-rich[b-qb65jionoy] {
    font-size: 13px;
    line-height: 1.6;
}

/* The description is a MarkupString, so its elements carry no scope attribute: reach them with ::deep. */
.crg-rich[b-qb65jionoy]  p,
.crg-rich[b-qb65jionoy]  ul,
.crg-rich[b-qb65jionoy]  ol {
    margin: 0 0 8px;
}

.crg-rich[b-qb65jionoy]  ul,
.crg-rich[b-qb65jionoy]  ol {
    padding-left: 18px;
}

.crg-variants[b-qb65jionoy] {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 14px;
    font-size: 12.5px;
}

.crg-variants th[b-qb65jionoy],
.crg-variants td[b-qb65jionoy] {
    border-bottom: 1px solid var(--gh-line);
    padding: 6px 8px;
    text-align: left;
}

.crg-variants tr.crg-off td[b-qb65jionoy] {
    color: var(--gh-mute);
}

.crg-extras[b-qb65jionoy] {
    margin: 0;
    padding-left: 18px;
    font-size: 12.5px;
}

.crg-empty[b-qb65jionoy] {
    margin: 0;
    padding: 28px;
    color: var(--gh-mute);
    text-align: center;
}

.crg-lightbox[b-qb65jionoy] {
    max-width: 92vw;
    max-height: 92vh;
    border: 0;
    border-radius: 16px;
    background: #fff;
    padding: 16px 56px;
}

.crg-lightbox[b-qb65jionoy]::backdrop {
    background: rgba(28, 16, 22, 0.72);
}

.crg-lightbox-body img[b-qb65jionoy] {
    display: block;
    max-width: 80vw;
    max-height: 78vh;
    margin: 0 auto;
    object-fit: contain;
}

.crg-lightbox-caption[b-qb65jionoy] {
    margin: 8px 0 0;
    color: var(--gh-mute);
    font-size: 12.5px;
    text-align: center;
}

.crg-lightbox-btn[b-qb65jionoy],
.crg-lightbox-close[b-qb65jionoy] {
    position: absolute;
    border: 0;
    background: var(--gh-page);
    color: var(--gh-ink);
    cursor: pointer;
}

.crg-lightbox-btn[b-qb65jionoy] {
    top: 50%;
    width: 40px;
    height: 40px;
    margin-top: -20px;
    border-radius: 50%;
    font-size: 24px;
    line-height: 1;
}

.crg-lightbox-btn[hidden][b-qb65jionoy] {
    display: none;
}

.crg-lightbox-prev[b-qb65jionoy] {
    left: 8px;
}

.crg-lightbox-next[b-qb65jionoy] {
    right: 8px;
}

.crg-lightbox-close[b-qb65jionoy] {
    top: 8px;
    right: 8px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    font-size: 20px;
}

/* Phones and small tablets: one card per product, no sideways scrolling. */
@media (max-width: 767px) {
    .crg-table-wrap[b-qb65jionoy] {
        border: 0;
        background: none;
        overflow: visible;
    }

    .crg-table > thead[b-qb65jionoy] {
        display: none;
    }

    .crg-table[b-qb65jionoy],
    .crg-table > tbody[b-qb65jionoy] {
        display: block;
    }

    .crg-row[b-qb65jionoy] {
        display: grid;
        grid-template-columns: 64px minmax(0, 1fr) auto;
        gap: 8px 12px;
        margin-bottom: 10px;
        border: 1px solid var(--gh-line);
        border-radius: 14px;
        background: #fff;
        padding: 12px;
    }

    .crg-row > td[b-qb65jionoy] {
        border: 0;
        padding: 0;
    }

    .crg-row > td.crg-col-image[b-qb65jionoy] {
        grid-column: 1;
        grid-row: 1 / span 2;
        width: auto;
    }

    .crg-row > td.crg-col-name[b-qb65jionoy] {
        grid-column: 2;
        grid-row: 1;
    }

    .crg-row > td.crg-col-tick[b-qb65jionoy] {
        grid-column: 3;
        grid-row: 1;
        width: auto;
        text-align: right;
    }

    .crg-row > td:not(.crg-col-image):not(.crg-col-name):not(.crg-col-tick)[b-qb65jionoy] {
        grid-column: 2 / span 2;
    }

    .crg-row > td.crg-col-desc[b-qb65jionoy] {
        width: auto;
    }

    .crg-detail[b-qb65jionoy] {
        display: block;
        margin: -6px 0 12px;
    }

    .crg-detail[hidden][b-qb65jionoy] {
        display: none;
    }

    .crg-detail > td[b-qb65jionoy] {
        display: block;
        border: 1px solid var(--gh-line);
        border-radius: 14px;
    }

    .crg-detail-grid[b-qb65jionoy] {
        grid-template-columns: minmax(0, 1fr);
    }

    .crg-variants[b-qb65jionoy] {
        display: block;
        overflow-x: auto;
    }

    .crg-status[b-qb65jionoy] {
        margin-left: 0;
        flex-basis: 100%;
    }

    .crg-lightbox[b-qb65jionoy] {
        padding: 12px 44px;
    }
}
/* /Components/Pages/Admin/Products.razor.rz.scp.css */
/* Scoped styles for Products.razor — moved out of inline style="" (Rule 7). */

.prod-table-gap[b-hk0p1htsa7] { margin-top: 16px; }
/* /Components/Pages/Admin/SupplierCatalogue.razor.rz.scp.css */
.sc-head-actions[b-hx4mlczhkl] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.sc-bar[b-hx4mlczhkl] {
    width: 100%;
    height: 8px;
    margin-top: 10px;
    border: 0;
    border-radius: 999px;
    background: var(--gh-pink-50);
    overflow: hidden;
    appearance: none;
}

.sc-bar[b-hx4mlczhkl]::-webkit-progress-bar {
    background: var(--gh-pink-50);
}

.sc-bar[b-hx4mlczhkl]::-webkit-progress-value {
    background: var(--gh-pink);
    border-radius: 999px;
}

.sc-bar[b-hx4mlczhkl]::-moz-progress-bar {
    background: var(--gh-pink);
}

.sc-reasons[b-hx4mlczhkl] {
    margin: -6px 0 16px;
}

.sc-warnings ul[b-hx4mlczhkl],
.sc-log[b-hx4mlczhkl],
.sc-skipped[b-hx4mlczhkl] {
    margin: 8px 0 0;
    padding-left: 18px;
    font-size: 13px;
    line-height: 1.6;
}

.sc-warnings summary[b-hx4mlczhkl],
.sc-evidence summary[b-hx4mlczhkl] {
    cursor: pointer;
}

.sc-evidence[b-hx4mlczhkl] {
    margin-bottom: 14px;
    font-size: 13px;
}

.sc-table-scroll[b-hx4mlczhkl] {
    overflow-x: auto;
    margin: 8px 0 12px;
}

.sc-table[b-hx4mlczhkl] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.sc-table th[b-hx4mlczhkl],
.sc-table td[b-hx4mlczhkl] {
    border-bottom: 1px solid var(--gh-line);
    padding: 7px 8px;
    text-align: left;
    vertical-align: top;
}

.sc-table th[b-hx4mlczhkl] {
    color: var(--gh-mute);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    white-space: nowrap;
}

.sc-table select[b-hx4mlczhkl] {
    max-width: 220px;
    border: 1px solid var(--gh-line);
    border-radius: 8px;
    padding: 5px 8px;
    font-size: 13px;
}

.sc-evidence-text[b-hx4mlczhkl] {
    min-width: 260px;
    color: var(--gh-ink-700);
}

.sc-confidence[b-hx4mlczhkl] {
    border-radius: 999px;
    padding: 1px 8px;
    font-size: 11.5px;
    font-weight: 700;
}

.sc-confidence-high[b-hx4mlczhkl] {
    background: #e6f4ec;
    color: var(--gh-success);
}

.sc-confidence-medium[b-hx4mlczhkl] {
    background: var(--gh-sun-100);
    color: #8a6400;
}

.sc-confidence-low[b-hx4mlczhkl] {
    background: var(--gh-coral-100);
    color: var(--gh-coral-700);
}

.sc-plan-row[b-hx4mlczhkl] {
    display: grid;
    grid-template-columns: 2fr minmax(120px, 1.4fr) repeat(5, minmax(0, 1fr)) auto;
    align-items: end;
    gap: 8px;
    margin-bottom: 8px;
}

.sc-plan-row .adm-field[b-hx4mlczhkl] {
    margin: 0;
}

.sc-plan-row .adm-field span[b-hx4mlczhkl] {
    display: block;
    margin-bottom: 4px;
    color: var(--gh-mute);
    font-size: 11.5px;
    font-weight: 600;
}

.sc-default-cat[b-hx4mlczhkl] {
    max-width: 360px;
}

@media (max-width: 900px) {
    .sc-plan-row[b-hx4mlczhkl] {
        grid-template-columns: 1fr 1fr;
        border-bottom: 1px solid var(--gh-line);
        padding-bottom: 10px;
    }
}
/* /Components/Pages/Basket.razor.rz.scp.css */
/* Scoped styles for Basket.razor — the page-specific one-offs that were inline (Rule 7).
   Shared storefront patterns stay in the global gh-* classes (app.tailwind.css). */

.bsk-wrap[b-335govnk97] { max-width: 680px; }

.bsk-h1[b-335govnk97] { font-weight: 800; font-size: 32px; letter-spacing: -0.025em; color: var(--gh-ink); }

.bsk-empty[b-335govnk97] { margin-top: 22px; }
.bsk-empty-title[b-335govnk97] { font-weight: 800; font-size: 19px; color: var(--gh-ink); }
.bsk-empty-sub[b-335govnk97] { margin-top: 6px; font-size: 14.5px; color: var(--gh-mute); }
.bsk-explore-btn[b-335govnk97] { width: auto; display: inline-flex; margin-top: 18px; padding: 13px 26px; }
.bsk-btn-icon[b-335govnk97] { margin-left: 8px; display: inline-flex; }

.bsk-list[b-335govnk97] { margin-top: 22px; overflow: hidden; }

.bsk-item-name[b-335govnk97] { font-weight: 700; font-size: 15px; color: var(--gh-ink); line-height: 1.3; }
.bsk-item-variant[b-335govnk97] { font-size: 13px; color: var(--gh-ink-700); margin-top: 2px; }
.bsk-item-unit[b-335govnk97] { font-size: 12.5px; color: var(--gh-mute); margin-top: 2px; }

.bsk-line-total[b-335govnk97] { width: 64px; text-align: right; }

/* How the unit price is made up — the size that sets it, then each extra that adds to it. Sits under the
   row it explains, indented past the thumb so it reads as a detail of that line and not a new item. */
.bsk-breakdown[b-335govnk97] { margin: -6px 20px 0; padding: 10px 13px; border-radius: 14px; background: var(--gh-cream); }
.bsk-bd-row[b-335govnk97] { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; font-size: 12.5px; line-height: 1.4; color: var(--gh-mute); }
.bsk-bd-row + .bsk-bd-row[b-335govnk97] { margin-top: 5px; }
.bsk-bd-name[b-335govnk97] { min-width: 0; }
.bsk-bd-amount[b-335govnk97] { flex: 0 0 auto; font-weight: 700; }
.bsk-bd-base[b-335govnk97] { font-size: 13px; color: var(--gh-ink-700); }
/* Everything above is per gift, so a multi-buy says so rather than leaving the sums looking wrong. */
.bsk-bd-each[b-335govnk97] { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--gh-line); color: var(--gh-ink-700); }

/* The gift box the sender built, rendered from the same scene as the composer preview and the recipient's
   reveal, with the pencil that reopens that composer on this line. */
.bsk-wrapcard[b-335govnk97] { display: flex; align-items: center; gap: 12px; margin: 10px 20px 0; padding: 8px 12px 8px 8px; border: 1px solid var(--gh-line); border-radius: 16px; }

/* The scene is drawn at its full 300px canvas and scaled down into this tile; the wrapper clips it, so the
   box keeps its proportions and its own CSS needs no small-size variant. */
.bsk-boxprev[b-335govnk97] { flex: 0 0 auto; width: 84px; height: 84px; overflow: hidden; border-radius: 12px; }
.bsk-boxprev-scale[b-335govnk97] { width: 300px; height: 300px; transform: scale(.28); transform-origin: top left; pointer-events: none; }
.bsk-boxprev-scale[b-335govnk97]  .gw-stage--box { height: 300px; border-radius: 0; border: none; box-shadow: none; }

.bsk-wrapcard-body[b-335govnk97] { min-width: 0; flex: 1; }
.bsk-wrapcard-title[b-335govnk97] { font-size: 13px; font-weight: 700; color: var(--gh-ink); }
.bsk-wrapcard-meta[b-335govnk97] { margin-top: 2px; font-size: 12.5px; line-height: 1.4; color: var(--gh-mute); }
.bsk-wrapcard-edit[b-335govnk97] { flex: 0 0 auto; align-self: flex-start; }

/* Delivery options are chosen here, so each one is a submit button dressed as a radio row: full width,
   left-aligned, with a mark that fills in for the option currently being quoted. */
.bsk-deliv-pick[b-335govnk97] {
    width: 100%;
    text-align: left;
    font-family: 'Nunito', sans-serif;
    font-size: 13.5px;
    color: var(--gh-ink);
    background: transparent;
    border: 1px solid transparent;
    border-radius: 14px;
    padding: 8px 11px;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease;
}

/* Name takes the slack so every option's text starts at the same place, whatever its label is worth. */
.bsk-deliv-pick[b-335govnk97] { gap: 11px; }
.bsk-deliv-pick .gh-deliv-name[b-335govnk97] { flex: 1; }

.bsk-deliv-pick:hover[b-335govnk97] { background: var(--gh-pink-50); border-color: var(--gh-line); }
.bsk-deliv-pick:focus-visible[b-335govnk97] { outline: 2px solid var(--gh-pink); outline-offset: 2px; }
.bsk-deliv-chosen[b-335govnk97] { background: var(--gh-pink-50); border-color: var(--gh-pink); }

.bsk-deliv-mark[b-335govnk97] {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    border-radius: 999px;
    border: 2px solid var(--gh-line);
    background: #fff;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.bsk-deliv-chosen .bsk-deliv-mark[b-335govnk97] { border-color: var(--gh-pink); box-shadow: inset 0 0 0 3px var(--gh-pink); }

/* Supplier heading, plus the metro / regional column headings when that supplier bands its fees. The right
   padding matches the option button's padding + border, so each heading sits over its fee column. */
.bsk-deliv-head[b-335govnk97] { display: flex; align-items: baseline; gap: 11px; margin-top: 10px; padding-right: 12px; }
.bsk-deliv-head .gh-deliv-merchant[b-335govnk97] { flex: 1; min-width: 0; margin-top: 0; }
.bsk-deliv-head .bsk-deliv-col[b-335govnk97] { font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--gh-mute); }
.bsk-deliv-col[b-335govnk97] { flex: 0 0 72px; text-align: right; }

.bsk-deliv-speed[b-335govnk97] { color: var(--gh-mute); }
/* Delivery window under the option name — the supplier's setting, slowed to match the slowest item it ships. */
.bsk-deliv-eta[b-335govnk97] { display: block; margin-top: 2px; font-size: 12px; color: var(--gh-mute); }
.bsk-fee-free[b-335govnk97] { color: var(--gh-pink-600); }
.bsk-fee-paid[b-335govnk97] { color: var(--gh-ink); }

/* Summary figures: one value, or a metro and a regional column under the headings row when delivery is banded. */
.bsk-sum-vals[b-335govnk97] { display: inline-flex; gap: 11px; }
.bsk-sum-col[b-335govnk97] { min-width: 72px; text-align: right; }
.bsk-sum-head[b-335govnk97] { font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--gh-mute); }

/* The running total, separated from the lines above it because it is the number the gifter acts on. */
.bsk-sum-total[b-335govnk97] { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--gh-line); font-size: 17px; }
.bsk-sum-error[b-335govnk97] { margin-top: 9px; font-size: 12.5px; font-weight: 700; color: var(--gh-pink-600); }

.bsk-checkout-btn[b-335govnk97] { margin-top: 18px; }
.bsk-keep-browsing[b-335govnk97] {
    display: block;
    text-align: center;
    margin-top: 14px;
    font-size: 14px;
    font-weight: 700;
    color: var(--gh-mute);
    text-decoration: none;
}
/* /Components/Pages/CatalogueReview.razor.rz.scp.css */
/* With script, every change saves as it happens, so the no-script "Save my choices" button is redundant. */
.crg-js-form .crg-nojs-save[b-7x6nu5ar96] {
    display: none;
}
/* /Components/Pages/Category.razor.rz.scp.css */
/* Scoped styles for Category.razor — page-specific one-offs that were inline (Rule 7).
   Shared storefront patterns stay in the global gh-* classes (app.tailwind.css). */

.cat-wrap[b-84f4ecj1mg] { max-width: 1280px; }

.cat-h1[b-84f4ecj1mg] { font-weight: 800; letter-spacing: -0.025em; color: var(--gh-ink); }
.cat-h1-mb[b-84f4ecj1mg] { font-weight: 800; letter-spacing: -0.025em; color: var(--gh-ink); margin-bottom: 10px; }

.cat-browse-link[b-84f4ecj1mg] { margin-top: 10px; font-weight: 600; color: var(--gh-pink-600); text-decoration: none; }

.cat-head-row[b-84f4ecj1mg] { gap: 24px; }

.cat-eyebrow[b-84f4ecj1mg] { gap: 8px; font-size: 12.5px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gh-pink-600); margin-bottom: 12px; }
.cat-eyebrow-dot[b-84f4ecj1mg] { width: 7px; height: 7px; border-radius: 50%; background: var(--gh-pink); }

.cat-sub[b-84f4ecj1mg] { line-height: 1.5; color: var(--gh-ink-700); max-width: 560px; }

.cat-form[b-84f4ecj1mg] { gap: 10px; padding-bottom: 2px; }

.cat-search-wrap[b-84f4ecj1mg] { position: relative; display: flex; align-items: center; }
.cat-search-icon[b-84f4ecj1mg] { position: absolute; left: 13px; pointer-events: none; }

.cat-clear[b-84f4ecj1mg] { font-size: 12.5px; font-weight: 700; color: var(--gh-pink-600); text-decoration: none; }

.cat-rail-head[b-84f4ecj1mg] { margin-bottom: 14px; }
.cat-rail-list[b-84f4ecj1mg] { gap: 2px; }
.cat-rail-label[b-84f4ecj1mg] { margin-bottom: 12px; }

.cat-empty[b-84f4ecj1mg] { padding: 64px 24px; background: #fff; border: 1px dashed var(--gh-line); border-radius: 20px; }
.cat-empty-title[b-84f4ecj1mg] { font-weight: 700; font-size: 20px; color: var(--gh-ink); margin-bottom: 8px; }
.cat-empty-sub[b-84f4ecj1mg] { font-size: 14.5px; color: var(--gh-mute); margin-bottom: 20px; }
.cat-empty-btn[b-84f4ecj1mg] { font-weight: 700; font-size: 14px; color: #fff; background: var(--gh-pink); padding: 11px 22px; border-radius: 999px; text-decoration: none; }
/* /Components/Pages/Checkout.razor.rz.scp.css */
/* Scoped styles for Checkout.razor — the page-specific one-offs that were inline (Rule 7).
   Shared storefront patterns stay in the global gh-* classes (app.tailwind.css). */

.co-wrap[b-t3l7zy9sqp] { max-width: 600px; }

.co-h1[b-t3l7zy9sqp] { font-weight: 800; font-size: 32px; letter-spacing: -0.025em; color: var(--gh-ink); }
.co-h2[b-t3l7zy9sqp] { font-weight: 800; font-size: 18px; letter-spacing: -0.02em; color: var(--gh-ink); }

.co-mt14[b-t3l7zy9sqp] { margin-top: 14px; }
.co-mt16[b-t3l7zy9sqp] { margin-top: 16px; }
.co-mt18[b-t3l7zy9sqp] { margin-top: 18px; }
/* Deliberate breathing room between "what you're sending / who it's for" and the choices below it. */
.co-mt28[b-t3l7zy9sqp] { margin-top: 28px; }

.co-empty-link[b-t3l7zy9sqp] { margin-top: 10px; font-size: 14px; font-weight: 700; color: var(--gh-pink-600); text-decoration: none; }
.co-back[b-t3l7zy9sqp] { gap: 7px; font-size: 14px; font-weight: 700; color: var(--gh-mute); text-decoration: none; }

.co-recip-head[b-t3l7zy9sqp] { font-size: 11px; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; color: var(--gh-pink-600); margin-top: 16px; }

.co-divider[b-t3l7zy9sqp] { height: 1px; background: var(--gh-line); margin: 16px 0; }
.co-divider-lg[b-t3l7zy9sqp] { height: 1px; background: var(--gh-line); margin: 22px 0; }

.co-muted[b-t3l7zy9sqp] { color: var(--gh-mute); }
.co-ink[b-t3l7zy9sqp] { color: var(--gh-ink); }
.co-pink[b-t3l7zy9sqp] { color: var(--gh-pink-600); }
.co-bold[b-t3l7zy9sqp] { font-weight: 700; }

.co-free-hint[b-t3l7zy9sqp] { gap: 7px; margin-top: 8px; font-size: 13px; color: var(--gh-pink-600); line-height: 1.45; }

.co-sub[b-t3l7zy9sqp] { margin-top: 6px; font-size: 13.5px; line-height: 1.5; color: var(--gh-mute); }
.co-sub-mb[b-t3l7zy9sqp] { margin-top: 6px; margin-bottom: 16px; font-size: 13.5px; line-height: 1.5; color: var(--gh-mute); }

/* What a gift line is made of — the size that sets its price, then each extra that adds to it. Indented
   under the line it explains, so the summary still reads as one gift per row. */
.co-breakdown[b-t3l7zy9sqp] { margin: 8px 0 0 14px; padding-left: 12px; border-left: 2px solid var(--gh-line); }
.co-breakdown + .gh-co-line[b-t3l7zy9sqp] { margin-top: 12px; }
.co-bd-row[b-t3l7zy9sqp] { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; font-size: 12.5px; line-height: 1.4; color: var(--gh-mute); }
.co-bd-row + .co-bd-row[b-t3l7zy9sqp] { margin-top: 5px; }
.co-bd-name[b-t3l7zy9sqp] { min-width: 0; }
.co-bd-amount[b-t3l7zy9sqp] { flex: 0 0 auto; font-weight: 700; white-space: nowrap; }
.co-bd-base[b-t3l7zy9sqp] { font-size: 13px; color: var(--gh-ink-700); }
/* Every row above is per gift, so a multi-buy says so rather than leaving the sums looking wrong. */
.co-bd-each[b-t3l7zy9sqp] { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--gh-line); color: var(--gh-ink-700); }

.co-recip-name[b-t3l7zy9sqp] { font-size: 14px; color: var(--gh-ink); }
.co-recip-email[b-t3l7zy9sqp] { margin-left: 8px; font-size: 13px; }
.co-recip-count[b-t3l7zy9sqp] { font-size: 13px; font-weight: 600; color: var(--gh-mute); white-space: nowrap; }

/* Leads the page: the answer to "am I being charged now?", read before the summary rather than after it. */
.co-reassure[b-t3l7zy9sqp] { margin-top: 12px; font-size: 13.5px; line-height: 1.5; color: var(--gh-mute); }

/* Banded money: a metro and a regional column, right-aligned under the headings row so the figures stack. Sized
   for the grand total, the widest figure, so every column on the page lines up. */
.co-band-vals[b-t3l7zy9sqp] { display: inline-flex; gap: 12px; }
.co-band-col[b-t3l7zy9sqp] { min-width: 88px; text-align: right; }
.co-band-head[b-t3l7zy9sqp], .co-band-labels[b-t3l7zy9sqp] { font-size: 11px; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; color: var(--gh-mute); }

/* Delivery is confirmed here, one row per shipping supplier slice: what was chosen and what it costs. */
.co-deliv-head[b-t3l7zy9sqp] { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.co-deliv-row[b-t3l7zy9sqp] { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; }
/* Why delivery is quoted per band. */
.co-band-note[b-t3l7zy9sqp] { margin-top: 10px; font-size: 12.5px; line-height: 1.5; color: var(--gh-mute); }
/* Delivery is chosen on the basket; this sends the gifter back there to change it. */
.co-deliv-change[b-t3l7zy9sqp] { display: inline-block; margin-top: 10px; font-size: 13px; font-weight: 700; }
.co-opt-text[b-t3l7zy9sqp] { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.co-opt-name[b-t3l7zy9sqp] { font-size: 14px; color: var(--gh-ink); }

/* How long the option takes, under its name: the merchant's setting for this speed, raised to the slowest
   per-product override in this supplier's part of the order. */
.co-opt-eta[b-t3l7zy9sqp] { font-size: 12.5px; color: var(--gh-mute); }

/* Delivery fee — colour depends on whether free delivery is unlocked (was a dynamic inline style). */
.co-opt-fee[b-t3l7zy9sqp] { font-size: 14px; font-weight: 700; white-space: nowrap; }
.co-fee-free[b-t3l7zy9sqp] { color: var(--gh-pink-600); }
.co-fee-paid[b-t3l7zy9sqp] { color: var(--gh-ink); }

.co-error[b-t3l7zy9sqp] { font-size: 13px; margin-top: 12px; color: #c0392b; }
.co-btn-icon[b-t3l7zy9sqp] { margin-left: 8px; display: inline-flex; }

/* When-to-send selector (playbook §13 scheduled send). */
.co-send-modes[b-t3l7zy9sqp] { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.co-send-option[b-t3l7zy9sqp] { cursor: pointer; }
/* Static SSR: no re-render on radio change, so the date field is revealed purely in CSS —
   visible only while the "Scheduled" radio is checked. */
.co-sched-date[b-t3l7zy9sqp] { display: none; margin-top: 4px; }
.co-send-modes:has(.co-send-radio[value="Scheduled"]:checked) .co-sched-date[b-t3l7zy9sqp] { display: block; }
.co-sched-hint[b-t3l7zy9sqp] { font-size: 12px; margin-top: 4px; }
/* /Components/Pages/Dashboard.razor.rz.scp.css */
/* Scoped styles for Dashboard.razor — the page-specific one-offs that were inline (Rule 7). */

.dash-wrap[b-820f5a53mj] { max-width: 1280px; }

.dash-eyebrow[b-820f5a53mj] { gap: 8px; font-size: 12.5px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gh-pink-600); margin-bottom: 10px; }
.dash-eyebrow-dot[b-820f5a53mj] { width: 7px; height: 7px; border-radius: 50%; background: var(--gh-pink); }

.dash-stat-ink[b-820f5a53mj] { color: var(--gh-ink); }
.dash-stat-success[b-820f5a53mj] { color: var(--gh-success); }
.dash-stat-pending[b-820f5a53mj] { color: #c08a1e; }

.dash-empty[b-820f5a53mj] { text-align: center; padding: 56px 24px; }
.dash-empty-sub[b-820f5a53mj] { margin-bottom: 20px; }
.dash-cta[b-820f5a53mj] { font-weight: 700; font-size: 14px; color: #fff; background: var(--gh-pink); padding: 11px 22px; border-radius: 999px; text-decoration: none; }

/* Computed thumbnail background-image, passed in via the --dash-thumb custom property. */
.dash-thumb-img[b-820f5a53mj] { background-image: var(--dash-thumb); }
/* /Components/Pages/Explore.razor.rz.scp.css */
/* Scoped styles for Explore.razor — page-specific one-offs that were inline (Rule 7).
   Shared storefront patterns stay in the global gh-* classes (app.tailwind.css). */

.exp-wrap[b-6no78nmew0] { max-width: 1280px; }

.exp-head-row[b-6no78nmew0] { gap: 24px; }

.exp-eyebrow[b-6no78nmew0] { gap: 8px; font-size: 12.5px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gh-pink-600); margin-bottom: 12px; }
.exp-eyebrow-dot[b-6no78nmew0] { width: 7px; height: 7px; border-radius: 50%; background: var(--gh-pink); }

.exp-h1[b-6no78nmew0] { font-weight: 800; letter-spacing: -0.025em; color: var(--gh-ink); margin-bottom: 10px; }
.exp-sub[b-6no78nmew0] { line-height: 1.5; color: var(--gh-ink-700); max-width: 560px; }

.exp-form[b-6no78nmew0] { gap: 16px; padding-bottom: 2px; }

.exp-select[b-6no78nmew0] { gap: 8px; }
.exp-select-label[b-6no78nmew0] { font-size: 12.5px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--gh-mute); white-space: nowrap; }

.exp-clear[b-6no78nmew0] { font-size: 12.5px; font-weight: 700; color: var(--gh-pink-600); text-decoration: none; }

.exp-rail-head[b-6no78nmew0] { margin-bottom: 14px; }
.exp-rail-list[b-6no78nmew0] { gap: 2px; }
.exp-rail-label[b-6no78nmew0] { margin-bottom: 12px; }

.exp-empty[b-6no78nmew0] { padding: 64px 24px; background: #fff; border: 1px dashed var(--gh-line); border-radius: 20px; }
.exp-empty-title[b-6no78nmew0] { font-weight: 700; font-size: 20px; color: var(--gh-ink); margin-bottom: 8px; }
.exp-empty-sub[b-6no78nmew0] { font-size: 14.5px; color: var(--gh-mute); margin-bottom: 20px; }
.exp-empty-btn[b-6no78nmew0] { font-weight: 700; font-size: 14px; color: #fff; background: var(--gh-pink); padding: 11px 22px; border-radius: 999px; text-decoration: none; }
/* /Components/Pages/Faq.razor.rz.scp.css */
/* Scoped styles for Faq.razor: the native-details accordion. Shared storefront
   patterns stay in the global gh-* classes (app.tailwind.css). */

.faq-list[b-7j4zhjnbny] { display: flex; flex-direction: column; gap: 10px; }

.faq-item[b-7j4zhjnbny] { background: #fff; border: 1px solid var(--gh-line); border-radius: 14px; padding: 0 18px; }

.faq-q[b-7j4zhjnbny] { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 0; cursor: pointer; list-style: none; font-size: 14.5px; font-weight: 600; color: var(--gh-ink); }
.faq-q[b-7j4zhjnbny]::-webkit-details-marker { display: none; }

.faq-chevron[b-7j4zhjnbny] { flex-shrink: 0; color: var(--gh-mute); transition: transform .15s ease; }
.faq-item[open] .faq-chevron[b-7j4zhjnbny] { transform: rotate(180deg); }

.faq-a[b-7j4zhjnbny] { padding: 0 0 16px; }
/* /Components/Pages/GiftDetail.razor.rz.scp.css */
/* Scoped styles for GiftDetail.razor — page-specific one-offs that were inline (Rule 7). */

.gd-wrap[b-8amfw8s71m] { max-width: 1080px; }

.gd-h1[b-8amfw8s71m] { font-weight: 800; letter-spacing: -0.025em; color: var(--gh-ink); }
.gd-notfound-link[b-8amfw8s71m] { margin-top: 10px; font-weight: 600; color: var(--gh-pink-600); text-decoration: none; }

.gd-back[b-8amfw8s71m] { gap: 7px; font-size: 14px; font-weight: 700; color: var(--gh-mute); text-decoration: none; }
.gd-grid[b-8amfw8s71m] { margin-top: 18px; }
/* /Components/Pages/GiftMessage.razor.rz.scp.css */
/* Compose-page card chrome (shared look with the product page's GiftForm). */
.gf-title[b-zsluab692t] {
    font-weight: 800;
    font-size: 22px;
    letter-spacing: -0.02em;
    color: var(--gh-ink);
}

.gf-intro[b-zsluab692t] {
    margin-top: 6px;
    font-size: 14.5px;
    line-height: 1.5;
    color: var(--gh-mute);
}

.gf-form[b-zsluab692t] {
    margin-top: 22px;
}

.gf-optional[b-zsluab692t] {
    font-weight: 600;
    color: var(--gh-mute);
}

.gf-select[b-zsluab692t] {
    margin-bottom: 6px;
}

.gf-error[b-zsluab692t] {
    font-size: 13px;
    color: #c0392b;
    margin-top: 10px;
}

.gf-total-row[b-zsluab692t] {
    gap: 12px;
    padding: 14px 0;
    border-top: 1px solid var(--gh-line);
    margin: 18px 0;
}

.gf-total-label[b-zsluab692t] {
    font-size: 14px;
    font-weight: 600;
    color: var(--gh-mute);
}

.gf-total-note[b-zsluab692t] {
    font-size: 12px;
    font-weight: 500;
    color: var(--gh-mute);
}

.gf-total-price[b-zsluab692t] {
    font-weight: 800;
    font-size: 20px;
    color: var(--gh-ink);
}

.gf-btn-trail[b-zsluab692t] {
    margin-left: 8px;
}

.gf-buy-secondary[b-zsluab692t] {
    margin-top: 10px;
}

.gf-footnote[b-zsluab692t] {
    text-align: center;
    font-size: 12.5px;
    color: var(--gh-mute);
    margin-top: 14px;
    line-height: 1.4;
}

/* --- Composer (playbook §13): mood, emoji signature, starters, preview --- */
.gf-prompt[b-zsluab692t] {
    margin-top: 6px;
    font-weight: 600;
}

.gf-help[b-zsluab692t] {
    margin: 2px 0 8px;
    font-size: 12px;
    color: var(--gh-mute, #8C8A9C);
}

.gf-starters[b-zsluab692t] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 8px;
}

.gf-starter[b-zsluab692t] {
    border: 0.5px solid var(--gh-line, #ECE7EF);
    background: #fff;
    color: var(--gh-ink, #1C1B2E);
    font-size: 12px;
    padding: 6px 11px;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.12s ease, border-color 0.12s ease;
}

.gf-starter:hover[b-zsluab692t] {
    background: #FFF7FB;
    border-color: #F5C6DC;
}

.gf-moods[b-zsluab692t] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
    margin-bottom: 4px;
}

.gf-mood[b-zsluab692t] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border: 0.5px solid var(--gh-line, #ECE7EF);
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
    text-align: left;
    transition: border-color 0.12s ease, background 0.12s ease;
}

.gf-mood.is-selected[b-zsluab692t] {
    border-color: var(--gh-pink, #E8186D);
    background: #FFF7FB;
}

.gf-mood-emoji[b-zsluab692t] {
    font-size: 18px;
    line-height: 1;
}

.gf-mood-label[b-zsluab692t] {
    font-size: 13px;
    font-weight: 600;
    color: var(--gh-ink, #1C1B2E);
}

.gf-emojis[b-zsluab692t] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 4px;
}

.gf-emoji[b-zsluab692t] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
}

.gf-emoji-glyph[b-zsluab692t],
.gf-emoji-none[b-zsluab692t] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    padding: 0 8px;
    border: 0.5px solid var(--gh-line, #ECE7EF);
    border-radius: 999px;
    font-size: 18px;
    transition: border-color 0.12s ease, background 0.12s ease;
}

.gf-emoji-none[b-zsluab692t] {
    font-size: 12px;
    color: var(--gh-mute, #8C8A9C);
}

.gf-emoji.is-selected .gf-emoji-glyph[b-zsluab692t],
.gf-emoji.is-selected .gf-emoji-none[b-zsluab692t] {
    border-color: var(--gh-pink, #E8186D);
    background: #FFF7FB;
}

.gf-preview[b-zsluab692t] {
    margin-top: 14px;
}

.gf-preview-label[b-zsluab692t] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--gh-mute, #8C8A9C);
    margin-bottom: 6px;
}

.gf-preview-card[b-zsluab692t] {
    border: 0.5px solid var(--gh-line, #ECE7EF);
    border-radius: 14px;
    background: #FFF7FB;
    padding: 16px;
}

.gf-preview-msg[b-zsluab692t] {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--gh-ink, #1C1B2E);
    white-space: pre-wrap;
}

.gf-preview-msg.gf-preview-empty[b-zsluab692t] {
    color: var(--gh-mute, #8C8A9C);
    font-style: italic;
}

.gf-preview-from[b-zsluab692t] {
    margin: 10px 0 0;
    font-size: 13px;
    font-weight: 600;
    color: var(--gh-pink, #E8186D);
}
/* /Components/Pages/GiftSent.razor.rz.scp.css */
/* Scoped styles for GiftSent.razor — the page-specific one-offs that were inline (Rule 7). */

.gs-empty[b-msa181rnn8] { text-align: center; padding: 56px 24px; }

.gs-head-col[b-msa181rnn8] { flex: 1 1 240px; min-width: 0; }
.gs-minw0[b-msa181rnn8] { min-width: 0; }
.gs-replied[b-msa181rnn8] { margin-top: 10px; }

/* Computed thumbnail background-image, passed in via the --gs-thumb custom property. */
.gs-thumb-img[b-msa181rnn8] { background-image: var(--gs-thumb); }

/* Timeline bar colour — a small constant set keyed off the step state. */
.gs-bar-done[b-msa181rnn8] { background: var(--gh-pink); }
.gs-bar-neg[b-msa181rnn8] { background: #d9604f; }
.gs-bar-pending[b-msa181rnn8] { background: var(--gh-line); }

/* Timeline step dot — a small constant set keyed off the step state. */
.gs-dot-done[b-msa181rnn8] { background: var(--gh-pink); color: #fff; }
.gs-dot-neg[b-msa181rnn8] { background: #d9604f; color: #fff; }
.gs-dot-pending[b-msa181rnn8] { background: #fff; border: 2px solid var(--gh-line); color: transparent; }

/* Step label colour — done vs pending. */
.gs-label-done[b-msa181rnn8] { color: var(--gh-ink); }
.gs-label-pending[b-msa181rnn8] { color: var(--gh-mute); }

/* Wrong-contact recovery: a peer-checkbox reveal with the resend form (no JS). */
.gs-fix-toggle[b-msa181rnn8] { display: none; }
.gs-fix-link[b-msa181rnn8] {
    display: inline-block;
    margin-top: 14px;
    font-size: 12px;
    color: var(--gh-mute);
    cursor: pointer;
}
.gs-fix-link:hover[b-msa181rnn8] { color: var(--gh-ink); }
.gs-fix-panel[b-msa181rnn8] {
    display: none;
    margin-top: 12px;
    padding: 14px;
    border: 0.5px solid var(--gh-line);
    border-radius: 14px;
    background: #FFF7FB;
}
.gs-fix-label[b-msa181rnn8] {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: var(--gh-ink);
    margin-bottom: 6px;
}
.gs-fix-input[b-msa181rnn8] { width: 100%; }
.gs-fix-error[b-msa181rnn8] { margin-top: 6px; font-size: 12px; color: #c0392b; }
.gs-fix-actions[b-msa181rnn8] { display: flex; gap: 10px; align-items: center; margin-top: 12px; }
.gs-fix-cancel[b-msa181rnn8] { font-size: 13px; font-weight: 500; color: var(--gh-mute); cursor: pointer; }
.gs-fix-cancel:hover[b-msa181rnn8] { color: var(--gh-ink); }
.gs-resent[b-msa181rnn8] {
    margin-top: 14px;
    padding: 10px 14px;
    border-radius: 12px;
    background: #E9F8EF;
    color: #1B7a43;
    font-size: 13px;
}

/* The recipient's one-tap emoji reaction (playbook §13.5). */
.gs-reaction-emoji[b-msa181rnn8] { font-size: 34px; line-height: 1; margin-bottom: 8px; }

/* The sender's composed digital wrap, playing the recipient's reveal in the same scene the accept
   page uses. It takes the whole messages row (single column): the faux-3D box and the card that
   rises out of it need more room than half a row. */
.gs-msggrid[b-msa181rnn8] {
    grid-template-columns: 1fr;
}
.gs-wrapscene[b-msa181rnn8] {
    margin: 0 0 14px;
}
.gs-wrapmeta[b-msa181rnn8] {
    font-size: 13px;
    line-height: 1.5;
    color: var(--gh-mute);
}

.gs-share-lead[b-msa181rnn8] {
    margin: 0 0 12px;
    font-size: 14px;
    line-height: 1.55;
    color: var(--gh-mute);
}

/* Scheduled / draft "send now" banner (playbook §13). */
.gs-schedule[b-msa181rnn8] {
    margin-top: 16px;
    padding: 16px;
    border: 0.5px solid var(--gh-line);
    border-radius: 14px;
    background: #FFF7FB;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
}
.gs-schedule-text[b-msa181rnn8] { font-size: 13px; color: var(--gh-mute); display: flex; flex-direction: column; gap: 3px; }
.gs-schedule-text strong[b-msa181rnn8] { color: var(--gh-ink); font-size: 14px; }
/* /Components/Pages/HappyMerchants.razor.rz.scp.css */
/* Scoped styles for HappyMerchants.razor. The page is ungated and carries its own chrome (BareLayout), so the
   header, page background and footer line live here rather than in a shared layout. Sizing steps through
   real media queries at the storefront's breakpoints; no clamp(). */

.hm-page[b-7ca599v9ls] { min-height: 100vh; background: var(--gh-page); }

/* ---- ribbon divider ----
   The signature wave across the very top. preserveAspectRatio="none" in the markup lets it stretch, so
   only the height is set here; the stroke follows the colour. */
.hm-ribbon[b-7ca599v9ls] { display: block; width: 100%; height: 34px; color: var(--gh-pink-200); }

/* ---- header ---- */
.hm-header[b-7ca599v9ls] { display: flex; align-items: center; justify-content: space-between; gap: 16px; max-width: 1000px; margin: 0 auto; padding: 14px 20px 0; }
.hm-header-badge[b-7ca599v9ls] { display: inline-flex; align-items: center; font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--gh-pink-600); background: var(--gh-pink-50); border: 1px solid var(--gh-pink-100); border-radius: 999px; padding: 6px 13px; }

.hm-main[b-7ca599v9ls] { max-width: 1000px; margin: 0 auto; padding: 0 20px 72px; }

/* ---- hero ----
   Grid rather than flex so the art can be re-ordered above the copy on narrow screens (where a decorative
   parcel reads as a header image) and beside it on wide ones. */
.hm-hero[b-7ca599v9ls] { display: grid; gap: 30px; padding: 30px 0 6px; }
.hm-art[b-7ca599v9ls] { order: -1; }

.hm-eyebrow[b-7ca599v9ls] { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--gh-pink-600); background: var(--gh-pink-50); border-radius: 999px; padding: 8px 15px; }
.hm-eyebrow-dot[b-7ca599v9ls] { width: 7px; height: 7px; border-radius: 50%; background: var(--gh-pink); flex: none; }

.hm-h1[b-7ca599v9ls] { font-size: 30px; line-height: 1.16; letter-spacing: -0.02em; color: var(--gh-ink); margin: 18px 0 0; }
/* Same highlight the storefront hero uses on a headline word (.hero-h1-pink). */
.hm-h1-accent[b-7ca599v9ls] { color: var(--gh-pink); }

.hm-lead[b-7ca599v9ls] { font-size: 16px; line-height: 1.65; color: var(--gh-ink-700); margin: 14px 0 0; max-width: 52ch; }

/* ---- hero art ----
   A parcel on a soft disc, with five category chips pinned around a dashed orbit. Percentages, so the
   whole arrangement scales with the square box rather than needing a second set of positions per
   breakpoint.

   The chips sit at exact points on a circle rather than at eyeballed offsets: each is centred on
   left = 50% + 47%*sin(t), top = 50% - 47%*cos(t), for t = 0, 72, 144, 216, 288 degrees. That radius
   straddles the ring (which is at 50%), so every chip is threaded onto the orbit at the same depth and
   the five read as one deliberate arrangement. 47% rather than 50% keeps the overhang small enough to
   clear the page gutter at the narrowest width. */
.hm-art[b-7ca599v9ls] { position: relative; width: 100%; max-width: 260px; margin: 0 auto; aspect-ratio: 1 / 1; }
.hm-art-ring[b-7ca599v9ls] { position: absolute; inset: 0; border: 1.5px dashed var(--gh-pink-200); border-radius: 50%; }

/* Warms the middle of the orbit so the parcel sits on something instead of floating in a bare circle.
   The gradient fades to fully transparent well inside the element box, so there is no hard disc edge
   cutting across the ring - only a soft halo behind the parcel. */
.hm-art-disc[b-7ca599v9ls] { position: absolute; inset: 4%; border-radius: 50%; background: radial-gradient(circle at 50% 46%, var(--gh-pink-100) 0%, var(--gh-pink-50) 44%, rgba(255, 240, 246, 0) 72%); }

.hm-art-parcel[b-7ca599v9ls] { position: absolute; top: 50%; left: 50%; width: 50%; height: auto; transform: translate(-50%, -50%); color: var(--gh-berry); filter: drop-shadow(0 14px 22px rgba(95, 15, 60, 0.18)); }

.hm-chip[b-7ca599v9ls] { position: absolute; display: flex; align-items: center; justify-content: center; width: 58px; height: 58px; border-radius: 18px; background: #fff; border: 1px solid var(--gh-line); box-shadow: 0 10px 22px -12px rgba(95, 15, 60, 0.34); transform: translate(-50%, -50%); }
.hm-chip svg[b-7ca599v9ls] { width: 26px; height: 26px; }

/* Icon ink cycles through the app's three icon colours (the HowItWorks step tiles): pink-600, coral-700,
   and the darker gold #a8791c. Few enough to read as a set, and all three already appear on the storefront. */
.hm-chip--1[b-7ca599v9ls] { top: 3.0%; left: 50.0%; color: var(--gh-pink-600); }
.hm-chip--2[b-7ca599v9ls] { top: 35.5%; left: 94.7%; color: var(--gh-coral-700); }
.hm-chip--3[b-7ca599v9ls] { top: 88.0%; left: 77.6%; color: #a8791c; }
.hm-chip--4[b-7ca599v9ls] { top: 88.0%; left: 22.4%; color: var(--gh-pink-600); }
.hm-chip--5[b-7ca599v9ls] { top: 35.5%; left: 5.3%; color: var(--gh-coral-700); }

/* ---- section shell ---- */
.hm-block[b-7ca599v9ls] { padding-top: 40px; }
.hm-kicker[b-7ca599v9ls] { display: block; font-size: 12px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--gh-pink-600); }

/* ---- why join ---- */
.hm-benefits[b-7ca599v9ls] { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.hm-benefit[b-7ca599v9ls] { display: flex; align-items: center; gap: 11px; font-size: 15px; font-weight: 700; color: var(--gh-ink); }
.hm-benefit-icon[b-7ca599v9ls] { display: inline-flex; flex: none; }
.hm-benefit-icon svg[b-7ca599v9ls] { width: 20px; height: 20px; }
.hm-benefit:nth-child(1) .hm-benefit-icon[b-7ca599v9ls] { color: var(--gh-pink-600); }
.hm-benefit:nth-child(2) .hm-benefit-icon[b-7ca599v9ls] { color: #a8791c; }

/* ---- the plan ----
   The soft tinted panel the storefront uses for a highlighted block, one step up from the page ground
   and one step below the saturated pink of the closing CTA. Deliberately not a dark band: the app's only
   dark surface is the site footer, so a dark slab mid-page reads as a foreign element. */
.hm-plan[b-7ca599v9ls] { background: var(--gh-pink-100); border: 1px solid var(--gh-pink-200); color: var(--gh-ink); border-radius: 22px; padding: 26px 22px 28px; }
.hm-plan-h2[b-7ca599v9ls] { font-size: 19px; line-height: 1.28; letter-spacing: -0.01em; color: var(--gh-ink); margin: 9px 0 0; }
.hm-plan-sub[b-7ca599v9ls] { font-size: 14px; line-height: 1.6; color: var(--gh-ink-700); margin: 9px 0 0; }

/* Same shape as the storefront hero badge: white pill, pink hairline (.hero-badge). */
.hm-cats[b-7ca599v9ls] { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 0; padding: 0; }
.hm-cat[b-7ca599v9ls] { display: flex; align-items: center; gap: 9px; background: #fff; border: 1px solid var(--gh-pink-200); border-radius: 999px; padding: 8px 15px 8px 9px; }
.hm-cat-icon[b-7ca599v9ls] { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 26px; height: 26px; border-radius: 8px; background: var(--gh-pink-50); color: var(--gh-pink-600); }
.hm-cat-icon svg[b-7ca599v9ls] { width: 15px; height: 15px; }
.hm-cat-name[b-7ca599v9ls] { font-size: 14px; }

/* ---- closing ask ---- */
/* Same gradient as the storefront's final-CTA banner (.cta-banner), so the two pink asks match. */
.hm-close[b-7ca599v9ls] { background: radial-gradient(120% 130% at 50% -10%, #e85ba3 0%, #db338a 38%, #be0076 100%); border-radius: 18px; padding: 26px 24px; color: #fff; text-align: center; max-width: 520px; margin: 4px auto 0; }
.hm-close-h2[b-7ca599v9ls] { font-size: 19px; color: #fff; margin: 0; }
.hm-close-sub[b-7ca599v9ls] { font-size: 14px; line-height: 1.55; color: rgba(255, 255, 255, 0.88); max-width: 440px; margin: 8px auto 0; }
.hm-close-link[b-7ca599v9ls] { display: block; color: #fff; font-weight: 700; }
.hm-close-btn[b-7ca599v9ls] { display: inline-flex; align-items: center; margin-top: 18px; padding: 12px 24px; font-size: 14.5px; font-weight: 700; color: var(--gh-pink-600); background: #fff; border-radius: 999px; text-decoration: none; box-shadow: 0 8px 18px -6px rgba(0, 0, 0, 0.25); }

/* ---- foot ---- */
.hm-foot[b-7ca599v9ls] { margin: 44px 0 0; font-size: 13.5px; color: var(--gh-mute); }
.hm-foot-link[b-7ca599v9ls] { color: var(--gh-pink-600); font-weight: 600; }

/* ---- breakpoints ---- */
@media (min-width: 640px) {
  .hm-ribbon[b-7ca599v9ls] { height: 46px; }
  .hm-header[b-7ca599v9ls] { padding-top: 20px; }
  .hm-hero[b-7ca599v9ls] { padding-top: 38px; }
  .hm-h1[b-7ca599v9ls] { font-size: 38px; }
  .hm-lead[b-7ca599v9ls] { font-size: 17px; }
  .hm-art[b-7ca599v9ls] { max-width: 320px; }
  .hm-chip[b-7ca599v9ls] { width: 70px; height: 70px; border-radius: 20px; }
  .hm-chip svg[b-7ca599v9ls] { width: 30px; height: 30px; }
  .hm-block[b-7ca599v9ls] { padding-top: 52px; }
  .hm-plan[b-7ca599v9ls] { padding: 30px 34px 32px; }
  .hm-plan-h2[b-7ca599v9ls] { font-size: 21px; }
  .hm-plan-sub[b-7ca599v9ls] { font-size: 14.5px; }
  .hm-close[b-7ca599v9ls] { padding: 30px 34px; }
}

@media (min-width: 1024px) {
  .hm-hero[b-7ca599v9ls] { grid-template-columns: 1.15fr 0.85fr; align-items: center; gap: 48px; }
  .hm-art[b-7ca599v9ls] { order: 0; max-width: 400px; }
  .hm-h1[b-7ca599v9ls] { font-size: 44px; }
  .hm-chip[b-7ca599v9ls] { width: 78px; height: 78px; border-radius: 22px; }
  .hm-chip svg[b-7ca599v9ls] { width: 34px; height: 34px; }
}

/* /Components/Pages/HowItWorksPage.razor.rz.scp.css */
/* Scoped styles for HowItWorksPage.razor — the page-specific one-offs that were inline (Rule 7). */

.hiw-h1[b-anu0jfi8rg] { font-size: 30px; letter-spacing: -1.4px; line-height: 1.08; max-width: 620px; }
.hiw-lead[b-anu0jfi8rg] { font-size: 16px; line-height: 1.7; max-width: 520px; }
/* /Components/Pages/PaymentUpdated.razor.rz.scp.css */
/* Scoped styles for PaymentUpdated.razor — the page-specific one-offs that were inline (Rule 7). */

.pu-card[b-dd5g1phndm] { max-width: 480px; padding: 32px 24px; }
.pu-icon[b-dd5g1phndm] { width: 56px; height: 56px; background: #C8E6D4; font-size: 30px; line-height: 1; }
.pu-h1[b-dd5g1phndm] { font-size: 22px; margin-top: 14px; letter-spacing: -0.4px; }
.pu-lead[b-dd5g1phndm] { font-size: 13px; margin-top: 8px; line-height: 1.6; max-width: 380px; }
/* /Components/Pages/Profile.razor.rz.scp.css */
.profile-link[b-bk4grwy4du] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 12px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    color: #0B1430;
    text-decoration: none;
    transition: background-color 0.15s ease;
}

.profile-link:hover[b-bk4grwy4du] {
    background: #FFF0F6;
}

.prof-wrap[b-bk4grwy4du] { max-width: 640px; }
.prof-h1[b-bk4grwy4du] { font-size: 24px; letter-spacing: -0.8px; }
.prof-lead[b-bk4grwy4du] { font-size: 13px; }
.prof-card[b-bk4grwy4du] { padding: 18px; }
.prof-avatar[b-bk4grwy4du] { width: 48px; height: 48px; font-size: 18px; }
.prof-grid[b-bk4grwy4du] { gap: 12px; }
.prof-links-card[b-bk4grwy4du] { padding: 6px; }
/* /Components/Pages/ReceivedGift.razor.rz.scp.css */
/* Scoped styles for ReceivedGift.razor */

.rg-empty[b-ojujyq2ecy] { text-align: center; padding: 56px 24px; }
.rg-loading[b-ojujyq2ecy] { font-size: 13px; color: var(--gh-mute); }

.rg-meta[b-ojujyq2ecy] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 8px;
    font-size: 13px;
    color: var(--gh-mute);
}

.rg-accept-note[b-ojujyq2ecy] {
    margin-top: 20px;
    padding: 16px;
    border-radius: 14px;
    border: 1px solid var(--gh-line);
    background: var(--gh-cream);
}

.rg-accept-title[b-ojujyq2ecy] {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: var(--gh-ink);
    margin-bottom: 6px;
}

.rg-accept-note p[b-ojujyq2ecy] {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    color: var(--gh-mute);
}

.rg-status-note[b-ojujyq2ecy] {
    margin-top: 20px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--gh-mute);
}
/* /Components/Pages/Sent.razor.rz.scp.css */
/* Scoped styles for Sent.razor — the page-specific one-offs that were inline (Rule 7). */

.sent-card[b-gj3r1vt2ga] { max-width: 480px; padding: 32px 24px; }
.sent-icon[b-gj3r1vt2ga] { width: 56px; height: 56px; background: #C8E6D4; font-size: 30px; line-height: 1; }
.sent-h1[b-gj3r1vt2ga] { font-size: 22px; margin-top: 14px; letter-spacing: -0.4px; }
.sent-lead[b-gj3r1vt2ga] { font-size: 13px; margin-top: 8px; line-height: 1.6; max-width: 380px; }
.sent-lead + .sent-lead[b-gj3r1vt2ga] { margin-top: 12px; }
/* /Components/UI/AdminRevenueSummary.razor.rz.scp.css */
/* Scoped styles for AdminRevenueSummary.razor — moved out of inline style="" (Rule 7).
   Bar height is computed per data point; kept as an inline --ars-bar-h custom property. */

.ars-bar-fill[b-5marq7rz7m] { height: var(--ars-bar-h); }
/* /Components/UI/CheckCard.razor.rz.scp.css */
/* Scoped styles for CheckCard.razor — moved out of inline style="" (Rule 7).
   Background and border colour were dynamic; split into option classes. */

.cc-box[b-l1jxgof5eh] { width: 18px; height: 18px; margin-top: 1px; line-height: 1; }
.cc-on[b-l1jxgof5eh] { background: #E8186D; border: 0.5px solid #E8186D; }
.cc-off[b-l1jxgof5eh] { background: #FFFFFF; border: 0.5px solid rgba(11, 20, 48, 0.25); }
/* /Components/UI/ConsentBanner.razor.rz.scp.css */
.consent-banner[b-7ntqnxnju7] {
    position: fixed;
    inset-inline: 0;
    bottom: 0;
    z-index: 60;
    background: var(--card, #fff);
    border-top: 0.5px solid var(--hairline, rgba(11, 20, 48, 0.12));
    box-shadow: 0 -8px 24px rgba(11, 20, 48, 0.08);
}
/* /Components/UI/CopyLinkField.razor.rz.scp.css */
.copy-field[b-mrvqp197o7] { width: 100%; }

.copy-field-row[b-mrvqp197o7] {
    display: flex;
    align-items: stretch;
    gap: 8px;
}

.copy-field-input[b-mrvqp197o7] {
    flex: 1 1 auto;
    min-width: 0;
    background: var(--cream);
    border: 0.5px solid rgba(11, 20, 48, 0.12);
    border-radius: 8px;
    padding: 9px 12px;
    font-size: 12px;
    line-height: 1.5;
    color: var(--navy);
    text-overflow: ellipsis;
    outline: none;
}

.copy-field-input:focus[b-mrvqp197o7] { border-color: var(--pink); }

.copy-field-btn[b-mrvqp197o7] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    border-radius: 8px;
    border: 0.5px solid rgba(11, 20, 48, 0.12);
    background: #fff;
    color: var(--navy);
    cursor: pointer;
    transition: color 120ms ease, border-color 120ms ease;
}

.copy-field-btn:hover[b-mrvqp197o7],
.copy-field-btn:focus-visible[b-mrvqp197o7] { color: var(--pink); border-color: var(--pink); }

.copy-field-icon[b-mrvqp197o7] { display: inline-flex; }
.copy-field-icon[hidden][b-mrvqp197o7] { display: none; }

.copy-field-status[b-mrvqp197o7] {
    min-height: 16px;
    margin-top: 4px;
    font-size: 11px;
    color: rgba(11, 20, 48, 0.6);
    text-align: left;
}
/* /Components/UI/Logo.razor.rz.scp.css */
/* Scoped styles for Logo.razor. Sizing derives from the --logo-h custom property (set inline from the
   Size parameter). The ratios below start from the drawn lockup (docs/design/brand/GiftHappy Logo
   Full v2.svg, mark 117.95 x 171.2): gap to the mark 0.2625, and the word sits 0.202 down from the top
   of the mark, since the mark's ribbon rises well above the letters. The wordmark is set heavier and a
   touch larger than the drawn artwork measures (800 at 0.75 rather than 650 at 0.727): the lockup is
   drawn at poster scale but only ever renders here at 28-32px, where the drawn weight goes thin and
   loses the mark's solidity. */

.logo-sized[b-m4hv7ihqm4] { height: var(--logo-h); }

.gh-logo[b-m4hv7ihqm4] {
    display: inline-flex;
    align-items: flex-start;
    gap: calc(var(--logo-h) * 0.2625);
}

.gh-logo__mark[b-m4hv7ihqm4] {
    display: block;
    height: var(--logo-h);
    width: auto;
}

.gh-logo__word[b-m4hv7ihqm4] {
    font-family: 'Nunito', 'Plus Jakarta Sans', system-ui, sans-serif;
    font-weight: 800;
    font-size: calc(var(--logo-h) * 0.75);
    letter-spacing: -0.02em;
    line-height: 1;
    margin-top: calc(var(--logo-h) * 0.202);
}

.gh-logo__word span:first-child[b-m4hv7ihqm4] { color: #322028; }
.gh-logo__word span:last-child[b-m4hv7ihqm4] { color: #db338a; }

.gh-logo--on-dark .gh-logo__word span:first-child[b-m4hv7ihqm4] { color: #fff9f2; }
.gh-logo--on-dark .gh-logo__word span:last-child[b-m4hv7ihqm4] { color: #f2a4cd; }
/* /Components/UI/Pill.razor.rz.scp.css */
/* Scoped styles for Pill.razor — moved out of inline style="" (Rule 7). */

.pill-dot[b-7lsgns2fhi] { width: 5px; height: 5px; }
/* /Components/UI/StatTile.razor.rz.scp.css */
/* Scoped styles for StatTile.razor — page-specific one-offs that were inline (Rule 7). */

.st-card[b-ztf1qi7yof] { padding: 12px 14px; }
.st-label[b-ztf1qi7yof] { letter-spacing: .12em; }
.st-value[b-ztf1qi7yof] { font-size: 22px; letter-spacing: -0.5px; }
/* /Components/UI/StockBadge.razor.rz.scp.css */
.stock-badge[b-k04gsvqw55] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
    border-radius: 999px;
    padding: 3px 10px;
    font-size: 11.5px;
    font-weight: 600;
    line-height: 1.4;
}

.stock-badge[b-k04gsvqw55]::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
}

.stock-in[b-k04gsvqw55] {
    background: #e6f4ec;
    color: var(--gh-success);
}

.stock-low[b-k04gsvqw55] {
    background: var(--gh-sun-100);
    color: #8a6400;
}

.stock-back[b-k04gsvqw55] {
    background: #fdeee0;
    color: #a75a17;
}

.stock-out[b-k04gsvqw55] {
    background: var(--gh-coral-100);
    color: var(--gh-coral-700);
}
/* /Components/UI/ToggleSwitch.razor.rz.scp.css */
/* Scoped styles for ToggleSwitch.razor — moved out of inline style="" (Rule 7).
   On/off colour and knob position were dynamic; split into option classes. */

.tog-track[b-08k7zobqx4] { width: 36px; height: 20px; border: none; cursor: pointer; margin-top: 2px; }
.tog-on[b-08k7zobqx4] { background: #E8186D; }
.tog-off[b-08k7zobqx4] { background: rgba(11, 20, 48, 0.18); }

.tog-knob[b-08k7zobqx4] { top: 2px; width: 16px; height: 16px; box-shadow: 0 1px 3px rgba(0, 0, 0, .15); transition: left .15s ease; }
.tog-knob-on[b-08k7zobqx4] { left: 18px; }
.tog-knob-off[b-08k7zobqx4] { left: 2px; }
