/* Free-tier workspace.
   A signed-in account with no linked client used to get a separate landing page
   (#freeTierGate) instead of the portal. It now gets the real workspace shell
   with the paid tools shown as locked, so the product's depth is visible rather
   than hidden behind a wall. Styling leans on the portal's existing tokens so
   the locked state reads as part of the same system, not a bolt-on. */

/* ── locked sidebar entries ─────────────────────────────────────────────── */
.nav-item.fw-is-locked {
   position: relative;
   opacity: .58;
}
.nav-item.fw-is-locked:hover {
   opacity: .8;
}
.nav-item.fw-is-locked .fw-nav-lock {
   margin-left: auto;
   flex: none;
   display: inline-flex;
   align-items: center;
   color: var(--gold-t, #F0A51E);
   opacity: .75;
}
.nav-item.fw-is-locked .fw-nav-lock svg {
   width: 13px;
   height: 13px;
}

/* A locked panel's original markup stays in the document so portal.js's
   renderers can still resolve their element ids, but nothing in it is shown or
   reachable. !important because those renderers set inline display on their own
   children and would otherwise reveal parts of a hidden tool. */
.fw-stash {
   display: none !important;
}

/* ── the lock card that replaces a paid panel's body ─────────────────────── */
/* Centred with flex rather than `margin: 0 auto` — the portal's own panel rules
   reset margins on direct children and win on specificity, which left the lock
   badge pinned to the right edge. */
.fw-lock {
   max-width: 720px;
   margin: 8px auto 0;
   background: var(--card, #131318);
   border: 1px solid var(--border, #26262F);
   border-radius: var(--radius, 14px);
   padding: 36px 32px;
   text-align: center;
   display: flex;
   flex-direction: column;
   align-items: center;
}
.fw-lock__badge {
   width: 46px;
   height: 46px;
   margin-bottom: 18px;
   border-radius: 50%;
   display: flex;
   align-items: center;
   justify-content: center;
   flex: none;
   background: rgba(240, 165, 30, .12);
   border: 1px solid rgba(240, 165, 30, .28);
   color: var(--gold-t, #F0A51E);
}
.fw-lock__plan {
   display: inline-block;
   font-size: 10.5px;
   font-weight: 700;
   letter-spacing: .12em;
   text-transform: uppercase;
   color: var(--gold-t, #F0A51E);
   background: rgba(240, 165, 30, .1);
   border: 1px solid rgba(240, 165, 30, .24);
   border-radius: 100px;
   padding: 3px 12px;
   margin-bottom: 14px;
}
.fw-lock h3 {
   font-size: 20px;
   font-weight: 700;
   color: var(--bright, #F0F0F5);
   margin: 0 0 10px;
   line-height: 1.25;
}
.fw-lock__desc {
   font-size: 14.5px;
   line-height: 1.65;
   color: var(--mid, #A9A9B8);
   max-width: 52ch;
   margin-bottom: 22px;
}
.fw-lock__what {
   text-align: left;
   display: grid;
   gap: 9px;
   width: 100%;
   max-width: 420px;
   margin-bottom: 26px;
   padding: 16px 18px;
   background: rgba(255, 255, 255, .02);
   border: 1px solid var(--border, #26262F);
   border-radius: 10px;
}
.fw-lock__what li {
   list-style: none;
   display: flex;
   gap: 9px;
   align-items: flex-start;
   font-size: 13.5px;
   color: var(--mid, #A9A9B8);
   line-height: 1.5;
}
.fw-lock__what li svg {
   flex: none;
   margin-top: 3px;
   color: var(--gold-t, #F0A51E);
   opacity: .85;
}
.fw-lock__actions {
   display: flex;
   gap: 10px;
   justify-content: center;
   flex-wrap: wrap;
}
.fw-lock__note {
   margin-top: 18px;
   font-size: 12.5px;
   color: var(--dim, #7A7A8A);
}

/* ── the locked intelligence report ─────────────────────────────────────── */
/* Shows the real section structure of a decision report with the findings
   redacted. The point is to be specific about what is being withheld rather
   than showing a generic paywall. */
.fw-report {
   max-width: 780px;
   margin: 8px auto 0;
}
.fw-report__head {
   display: flex;
   flex-direction: column;
   align-items: center;
   text-align: center;
   background: var(--bg-card, #1F1F2A);
   border: 1px solid var(--border, rgba(255, 255, 255, .07));
   border-radius: var(--radius-lg, 16px);
   padding: 32px 28px;
   margin-bottom: 14px;
}
.fw-redact {
   display: grid;
   gap: 10px;
}
.fw-redact__sec {
   position: relative;
   background: rgba(255, 255, 255, .015);
   border: 1px dashed rgba(255, 255, 255, .1);
   border-radius: 12px;
   padding: 18px 20px;
}
.fw-redact__head {
   display: flex;
   align-items: center;
   gap: 12px;
   margin-bottom: 5px;
}
.fw-redact__head strong {
   font-size: 14.5px;
   font-weight: 700;
   color: var(--bright, #F0F0F5);
}
.fw-redact__pill {
   margin-left: auto;
   flex: none;
   display: inline-flex;
   align-items: center;
   gap: 4px;
   font-size: 10px;
   font-weight: 700;
   letter-spacing: .1em;
   text-transform: uppercase;
   color: var(--gold, #F0A51E);
   background: rgba(240, 165, 30, .1);
   border: 1px solid rgba(240, 165, 30, .22);
   border-radius: 100px;
   padding: 3px 9px;
}
.fw-redact__what {
   font-size: 13px;
   color: var(--mid, #9A9AAE);
   line-height: 1.55;
   margin: 0 0 13px;
}
/* The redaction itself: blurred bars standing in for withheld findings. */
.fw-redact__lines {
   display: grid;
   gap: 7px;
   filter: blur(2.6px);
   opacity: .5;
   user-select: none;
   pointer-events: none;
}
.fw-redact__row {
   display: block;
   height: 9px;
   border-radius: 4px;
   background: linear-gradient(90deg, rgba(255, 255, 255, .16), rgba(255, 255, 255, .06));
}
.fw-report__foot {
   margin-top: 18px;
   background: var(--bg-card, #1F1F2A);
   border: 1px solid rgba(240, 165, 30, .22);
   border-radius: var(--radius-lg, 16px);
   padding: 24px 26px;
   display: flex;
   flex-direction: column;
   align-items: center;
   text-align: center;
}
.fw-report__foot > strong {
   font-size: 14px;
   font-weight: 700;
   color: var(--bright, #F0F0F5);
   margin-bottom: 14px;
}

/* ── free-tier banner above the workspace ───────────────────────────────── */
.fw-banner {
   display: flex;
   align-items: center;
   gap: 16px;
   flex-wrap: wrap;
   background: linear-gradient(135deg, rgba(240, 165, 30, .09) 0%, rgba(240, 165, 30, .03) 100%);
   border: 1px solid rgba(240, 165, 30, .22);
   border-radius: var(--radius, 14px);
   padding: 16px 20px;
   margin-bottom: 22px;
}
.fw-banner__text {
   flex: 1 1 340px;
   min-width: 0;
}
.fw-banner__text strong {
   display: block;
   font-size: 14.5px;
   color: var(--bright, #F0F0F5);
   margin-bottom: 3px;
}
.fw-banner__text span {
   font-size: 13px;
   color: var(--mid, #A9A9B8);
   line-height: 1.55;
}
.fw-banner__actions {
   display: flex;
   gap: 8px;
   flex-wrap: wrap;
}

/* Activation-code row, carried over from the old gate so a manually created
   workspace can still be linked without leaving the dashboard. */
.fw-redeem {
   display: flex;
   gap: 8px;
   align-items: center;
   flex-wrap: wrap;
}
.fw-redeem input {
   flex: 1 1 190px;
   min-width: 0;
   background: var(--bg, #09090C);
   border: 1px solid var(--border, #26262F);
   border-radius: 8px;
   padding: 9px 12px;
   color: var(--bright, #F0F0F5);
   font-size: 13.5px;
   font-family: inherit;
}
.fw-redeem input:focus {
   outline: 2px solid rgba(240, 165, 30, .5);
   outline-offset: 1px;
   border-color: transparent;
}
.fw-redeem__msg {
   flex-basis: 100%;
   font-size: 12.5px;
   color: var(--dim, #7A7A8A);
   min-height: 1em;
}

@media (max-width: 640px) {
   .fw-lock { padding: 28px 20px; }
   .fw-lock h3 { font-size: 18px; }
}

@media (prefers-reduced-motion: reduce) {
   .nav-item.fw-is-locked { transition: none; }
}
