/* =====================================================================
   GovLink – feedback & ratings
   .fb-prompt   rating card after a successful action (signed-in layouts)
   .fb-page     Rate GovLink page        .fb-row  admin moderation
   .fb-ld-*     landing page / public reviews (dark theme)
   ===================================================================== */

/* ---------- star picker (stars rendered 5→1, shown 1→5) ---------- */
.fb-stars { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: .15rem; }
.fb-stars input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.fb-stars label { cursor: pointer; font-size: 1.9rem; line-height: 1; color: rgba(127, 127, 127, .35); transition: transform .12s, color .12s; padding: .1rem; }
.fb-stars-lg label { font-size: 2.3rem; }
.fb-stars label:hover, .fb-stars label:hover ~ label,
.fb-stars input:checked + label, .fb-stars input:checked + label ~ label { color: #f2b33d; }
.fb-stars label:hover { transform: scale(1.12); }
.fb-stars input:focus-visible + label { outline: 2px solid var(--gl-emerald, #0f9d76); outline-offset: 2px; border-radius: 6px; }

.fb-starline { color: rgba(127, 127, 127, .35); white-space: nowrap; font-size: .9rem; }
.fb-starline .on { color: #f2b33d; }

/* ---------- quick tags ---------- */
.fb-tags { display: flex; flex-wrap: wrap; gap: .35rem; }
.fb-tag { position: relative; margin: 0; }
.fb-tag input { position: absolute; opacity: 0; pointer-events: none; }
.fb-tag span { display: inline-block; padding: .3rem .7rem; border-radius: 999px; font-size: .8rem; font-weight: 600; cursor: pointer;
    border: 1px solid rgba(127, 127, 127, .35); color: var(--gl-ink, #14212b); background: transparent; transition: background .12s, border-color .12s; }
.fb-tag input:checked + span { background: rgba(15, 157, 118, .14); border-color: var(--gl-emerald, #0f9d76); color: var(--gl-emerald-deep, #0b5d48); }
.fb-tag.is-bad input:checked + span, [data-fb-bad] .fb-tag input:checked + span { background: rgba(214, 69, 69, .1); border-color: #d64545; color: #b42d2d; }
.fb-tag input:focus-visible + span { outline: 2px solid var(--gl-emerald, #0f9d76); outline-offset: 1px; }
[data-bs-theme="dark"] .fb-tag input:checked + span { color: #7fe3c3; }

/* ---------- rating card ---------- */
.fb-prompt { position: fixed; right: 18px; bottom: 18px; z-index: 1080; width: min(380px, calc(100vw - 24px)); max-height: calc(100vh - 36px); overflow: auto;
    background: #ffffff; color: #14212b; border: 1px solid rgba(20, 33, 43, .1); border-radius: 18px;
    box-shadow: 0 20px 60px -18px rgba(11, 61, 46, .45), 0 2px 8px rgba(0,0,0,.08); backdrop-filter: blur(18px) saturate(150%); -webkit-backdrop-filter: blur(18px) saturate(150%);
    padding: 1rem 1.1rem 1.05rem; transform: translateY(24px); opacity: 0; transition: transform .35s cubic-bezier(.22,.8,.24,1), opacity .35s; }
.fb-prompt.is-in { transform: none; opacity: 1; }
[data-bs-theme="dark"] .fb-prompt { background: #172229; color: #e8eef2; border-color: rgba(255, 255, 255, .1); }
.fb-prompt.is-leaving { transform: translateY(24px); opacity: 0; }
.fb-prompt h2 { font-size: 1.02rem; font-weight: 800; margin: .25rem 1.6rem .55rem 0; line-height: 1.3; }
.fb-prompt .fb-x { position: absolute; top: .55rem; right: .6rem; border: 0; background: transparent; color: var(--gl-muted, #66737f); font-size: 1.05rem; width: 2rem; height: 2rem; border-radius: 50%; }
.fb-prompt .fb-x:hover { background: rgba(127,127,127,.12); }
.fb-prompt .fb-step { display: grid; gap: .55rem; }
.fb-prompt .fb-step + .fb-step { margin-top: .6rem; }
.fb-hint { font-size: .78rem; color: var(--gl-muted, #66737f); min-height: 1.1em; }
.fb-public { display: flex; gap: .45rem; align-items: flex-start; font-size: .8rem; margin: 0; cursor: pointer; }
.fb-public input { margin-top: .15rem; }
.fb-public-fields { display: grid; gap: .35rem; }
.fb-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .3rem; }
.fb-actions .btn-link { color: var(--gl-muted, #66737f); text-decoration: none; font-size: .78rem; padding-left: 0; }
.fb-error { color: #d64545; font-size: .8rem; }
.fb-thanks { text-align: center; padding: .4rem 0 .2rem; }
.fb-thanks i { font-size: 1.8rem; color: #e25c7a; }
.fb-thanks h2 { margin: .3rem 0 0; }
.fb-thanks p { margin: 0; color: var(--gl-muted, #66737f); font-size: .85rem; }
.fb-eyebrow { font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 800; color: var(--gl-gold, #d4a72c); display: inline-flex; gap: .4rem; align-items: center; }
@media (max-width: 575.98px) {
    .fb-prompt { right: 12px; left: 12px; bottom: 12px; width: auto; }
    .fb-stars label { font-size: 2.1rem; }
}

/* ---------- Rate GovLink page ---------- */
.fb-page { display: grid; gap: 1.1rem; color: var(--gl-ink); }
.fb-card { background: var(--gl-glass); border: 1px solid var(--gl-glass-border); border-radius: 1.05rem; box-shadow: var(--gl-shadow); padding: 1.1rem 1.2rem; min-width: 0;
    backdrop-filter: blur(16px) saturate(140%); -webkit-backdrop-filter: blur(16px) saturate(140%); }
.fb-hero h1 { font-size: clamp(1.4rem, 2.3vw, 2rem); font-weight: 800; margin: .3rem 0; }
.fb-hero p { color: var(--gl-muted); margin: 0; max-width: 66ch; }
.fb-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 1rem; align-items: start; }
@media (max-width: 991.98px) { .fb-layout { grid-template-columns: 1fr; } }
.fb-h { font-size: 1rem; font-weight: 700; display: flex; gap: .5rem; align-items: center; margin: 0 0 .8rem; }
.fb-h i { color: var(--gl-gold); }
.fb-group { font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 800; color: var(--gl-muted); margin: .8rem 0 .35rem; }
.fb-picks { display: flex; flex-wrap: wrap; gap: .4rem; }
.fb-pick { display: inline-flex; align-items: center; gap: .4rem; padding: .4rem .75rem; border-radius: 999px; font-size: .84rem; font-weight: 600; text-decoration: none;
    color: var(--gl-ink); border: 1px solid var(--gl-glass-border); background: var(--gl-hover); }
.fb-pick i { color: var(--gl-emerald); }
.fb-pick.is-on { background: var(--gl-emerald-deep, #0b5d48); color: #fff; border-color: transparent; }
.fb-pick.is-on i { color: #f2d79b; }
.fb-public-box { border: 1px dashed var(--gl-glass-border); border-radius: .9rem; padding: .7rem .85rem; }
.fb-mine { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; }
.fb-mine li { border-bottom: 1px dashed var(--gl-line); padding-bottom: .6rem; }
.fb-reply { margin-top: .4rem; padding: .5rem .7rem; border-left: 3px solid var(--gl-emerald, #0f9d76); background: rgba(15,157,118,.07); border-radius: 0 .6rem .6rem 0; font-size: .86rem; }

/* ---------- admin ---------- */
.fb-dist { display: grid; gap: 2px; font-size: .7rem; }
.fb-dist > div { display: grid; grid-template-columns: .8rem minmax(0, 1fr) auto; gap: .35rem; align-items: center; }
.fb-dist i { display: block; height: .42rem; border-radius: 999px; background: rgba(127, 127, 127, .18); overflow: hidden; }
.fb-dist b { display: block; height: 100%; background: #f2b33d; border-radius: 999px; }
.fb-dist em { font-style: normal; color: var(--gl-muted, #94a3b8); min-width: 2.2rem; text-align: right; }
.fb-row { border: 1px solid var(--gl-line); border-radius: .9rem; padding: .75rem .9rem; }
.fb-row.is-hidden { opacity: .55; }
.fb-tagline { display: flex; flex-wrap: wrap; gap: .3rem; }
.fb-tagline span { font-size: .72rem; font-weight: 600; padding: .12rem .5rem; border-radius: 999px; background: rgba(127, 127, 127, .12); }

/* ---------- landing page & public reviews (dark) ---------- */
.fb-ld-scores { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 18px; }
@media (max-width: 860px) { .fb-ld-scores { grid-template-columns: 1fr; } }
.fb-ld-score { padding: 24px; border-radius: 22px; }
.fb-ld-score.is-sme { background: radial-gradient(420px 220px at 0% 0%, rgba(242, 179, 61, .16), transparent 70%), rgba(255, 255, 255, .04); }
.fb-ld-label { font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #f2b33d; display: flex; gap: .5rem; align-items: center; }
.fb-ld-big { font-family: "Sora", "Plus Jakarta Sans", sans-serif; font-size: clamp(2.6rem, 7vw, 3.6rem); font-weight: 800; line-height: 1; color: #fff; margin-top: .5rem; }
.fb-ld-big small { font-size: 1.1rem; color: #94a3b8; font-weight: 600; margin-left: .3rem; }
.fb-ld-stars { position: relative; display: inline-block; font-size: 1.5rem; line-height: 1; letter-spacing: .12em; margin-top: .45rem; }
.fb-ld-stars .bg { color: rgba(255, 255, 255, .16); }
.fb-ld-stars .fg { position: absolute; left: 0; top: 0; overflow: hidden; white-space: nowrap; color: #f2b33d; }
.fb-ld-sub { color: #c3cde6; font-size: .9rem; margin-top: .4rem; }
.fb-dist-ld { margin-top: 1rem; font-size: .78rem; color: #c3cde6; gap: 5px; }
.fb-dist-ld > div { grid-template-columns: .9rem minmax(0, 1fr) 2.6rem; }
.fb-dist-ld i { height: .5rem; background: rgba(255, 255, 255, .08); }
.fb-dist-ld em { color: #94a3b8; }
.fb-ld-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 1rem; }
.fb-ld-tags span { font-size: .78rem; font-weight: 700; padding: .3rem .7rem; border-radius: 999px; color: #dbe4fb; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1); }
.fb-ld-features { list-style: none; margin: 1.1rem 0 0; padding: 0; display: grid; gap: .55rem; }
.fb-ld-features li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(60px, 34%) 2.4rem; gap: .6rem; align-items: center; font-size: .88rem; color: #dbe4fb; }
.fb-ld-features .n { min-width: 0; overflow-wrap: anywhere; }
.fb-ld-features .n small { color: #94a3b8; }
.fb-ld-features .bar { display: block; height: .45rem; border-radius: 999px; background: rgba(255, 255, 255, .08); overflow: hidden; }
.fb-ld-features .bar b { display: block; height: 100%; background: linear-gradient(90deg, #22c55e, #f2b33d); border-radius: 999px; }
.fb-ld-features .v { font-weight: 800; color: #fff; text-align: right; grid-column: 3; }
.fb-ld-features .v.small { font-size: .72rem; color: #94a3b8; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.fb-ld-reviews { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); gap: 16px; margin-top: 20px; }
.fb-ld-review { margin: 0; padding: 20px; border-radius: 20px; display: flex; flex-direction: column; gap: .6rem; }
.fb-ld-review .fb-starline { font-size: .95rem; }
.fb-ld-review .fb-starline i { color: rgba(255, 255, 255, .16); }
.fb-ld-review .fb-starline .on { color: #f2b33d; }
.fb-ld-review blockquote { margin: 0; color: #e8eef9; font-size: .98rem; line-height: 1.55; overflow-wrap: anywhere; }
.fb-ld-review figcaption { margin-top: auto; font-size: .85rem; color: #c3cde6; }
.fb-ld-review figcaption b { color: #fff; }
.fb-ld-review figcaption span { display: block; font-size: .74rem; color: #94a3b8; margin-top: .15rem; }
.fb-ld-review .fb-reply { background: rgba(34, 197, 94, .08); color: #dbe4fb; }

.fb-public-page { color: #e8eef9; }
.fb-pub-scores { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 16px; }
.fb-pub-score { padding: 22px; text-align: center; }
.fb-pub-score .fb-ld-label { justify-content: center; }
