/* ════════════════════════════════════════════════════════════════
   hive-pages.css — the four marquee card-faces as full tab pages.
   Tools (signal) · Triage (danger) · Missions (wax) · Output (mint)
   Echoes the .bf-card visual language: hex canvas wash, top accent
   rule, mono eyebrow, display title, item rows.
   ════════════════════════════════════════════════════════════════ */

.pg            { position:relative; padding:0 0 40px; }
.pg__hero      { position:relative; overflow:hidden; padding:30px 28px 26px;
                 border:1px solid rgba(255,255,255,.07);
                 background:linear-gradient(160deg, rgba(255,255,255,.035), rgba(0,0,0,.18));
                 border-top:2px solid var(--pg-accent, var(--wax-bright)); }
.pg__hero-canvas{ position:absolute; inset:0; width:100%; height:100%; opacity:.5; pointer-events:none; }
.pg__hero-inner{ position:relative; z-index:1; }
.pg__eyebrow   { font-family:var(--font-mono); font-size:13px; letter-spacing:.24em;
                 text-transform:uppercase; color:var(--pg-accent, var(--wax-bright)); opacity:.7; }
.pg__eyebrow-row{ display:flex; align-items:flex-start; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.pg__colony    { text-align:right; }
.pg__colony-label{ font-family:'Cinzel',serif; font-size:10px; letter-spacing:.2em; text-transform:uppercase;
                 color:rgba(210,175,90,.7); margin-bottom:2px; }
.pg__colony-name{ font-family:'Cinzel',serif; font-weight:600; font-size:15px; letter-spacing:.06em;
                 color:rgba(255,244,192,.85); line-height:1.1; margin-bottom:5px; }
.pg__colony-url{ display:inline-flex; align-items:center; background:rgba(255,255,255,.03); border:1px solid rgba(200,165,80,.1); }
.pg__colony-pre{ font-family:var(--font-mono); font-size:10.5px; color:rgba(78,205,196,.38);
                 padding:4px 6px; border-right:1px solid rgba(200,165,80,.08); white-space:nowrap; }
.pg__colony-domain{ font-family:var(--font-mono); font-size:10.5px; color:var(--signal, #5ce1c9);
                 padding:4px 7px; letter-spacing:.04em; white-space:nowrap; }
.pg__title     { font-family:var(--font-display); font-weight:700; font-size:34px;
                 line-height:1.02; color:#fff; margin:8px 0 6px; letter-spacing:-.01em; }
.pg__tag       { font-size:13px; color:rgba(255,255,255,.45); max-width:60ch; line-height:1.5; }
.pg__hero-stats{ display:flex; gap:26px; margin-top:18px; flex-wrap:wrap; }
.pg__hs        { display:flex; flex-direction:column; gap:2px; }
.pg__hs--locked{ opacity:.55; }
.pg__hs-k      { display:flex; align-items:center; }
.pg__hs-v      { font-family:var(--font-display); font-weight:700; font-size:26px; line-height:1;
                 color:var(--pg-accent, var(--wax-bright)); }
.pg__hs-k      { font-family:var(--font-mono); font-size:12.5px; letter-spacing:.14em;
                 text-transform:uppercase; color:rgba(255,255,255,.3); }

.pg__body      { padding:22px 4px 0; display:flex; flex-direction:column; gap:22px; }
.pg__sec       { }
.pg__sec-head  { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.pg__sec-title { font-family:var(--font-mono); font-size:13.5px; letter-spacing:.16em;
                 text-transform:uppercase; color:rgba(255,255,255,.55); }
.pg__sec-count { font-family:var(--font-mono); font-size:13px; letter-spacing:.08em;
                 color:var(--text-dim); margin-left:auto; }

/* generic accent-headed card */
.pg-card       { position:relative; overflow:hidden; padding:18px;
                 border:1px solid rgba(255,255,255,.07); background:rgba(255,255,255,.025);
                 border-top:2px solid var(--c, var(--pg-accent)); }
.pg-grid       { display:grid; gap:14px; }

/* ── Local/Ecommerce add-on hive promo, on the Missions/Tasks page ── */
.pg-addon-promo{ margin:20px 0; padding:22px 24px; background:linear-gradient(165deg,rgba(190,242,100,.06),transparent); border:1px solid rgba(190,242,100,.22); border-radius:8px; }
.pg-addon-promo__head{ display:flex; align-items:flex-start; gap:12px; margin-bottom:18px; }
.pg-addon-promo__ic{ color:#bef264; font-size:18px; flex:none; margin-top:1px; }
.pg-addon-promo__title{ font-family:var(--font-display); font-weight:600; font-size:16px; color:#fff; margin-bottom:4px; }
.pg-addon-promo__sub{ font-size:13px; color:rgba(255,255,255,.55); line-height:1.55; max-width:520px; }
.pg-addon-promo__cards{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.pg-addon-promo__card{ display:flex; gap:12px; padding:16px; background:rgba(0,0,0,.2); border:1px solid rgba(190,242,100,.15); border-radius:6px; cursor:pointer; transition:border-color .15s, background .15s; }
.pg-addon-promo__card:hover{ border-color:rgba(190,242,100,.4); background:rgba(190,242,100,.05); }
.pg-addon-promo__card-ic{ font-size:22px; flex:none; }
.pg-addon-promo__card-title{ font-family:var(--font-display); font-weight:700; font-size:14.5px; color:#bef264; margin-bottom:5px; }
.pg-addon-promo__card-desc{ font-size:12px; color:rgba(255,255,255,.5); line-height:1.55; margin-bottom:8px; }
.pg-addon-promo__card-stat{ font-family:var(--font-mono); font-size:11px; color:rgba(190,242,100,.7); }
@media(max-width:640px){ .pg-addon-promo__cards{ grid-template-columns:1fr; } }
.pg-grid--4    { grid-template-columns:repeat(4,1fr); }
.pg-grid--3    { grid-template-columns:repeat(3,1fr); }
.pg-grid--2    { grid-template-columns:repeat(2,1fr); }
@media (max-width:880px){ .pg-grid--4{ grid-template-columns:repeat(2,1fr);} .pg-grid--3{ grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .pg-grid--4,.pg-grid--3,.pg-grid--2{ grid-template-columns:1fr;} }

/* metric tile (Output) */
.pg-metric     { padding:20px 18px; border:1px solid rgba(255,255,255,.07);
                 background:rgba(255,255,255,.025); border-top:2px solid var(--c,var(--wax-bright)); }
.pg-metric__v  { font-family:var(--font-display); font-weight:700; font-size:38px; line-height:1;
                 color:var(--c,var(--wax-bright)); margin-bottom:6px; }
.pg-metric__k  { font-family:var(--font-mono); font-size:12.5px; letter-spacing:.13em;
                 text-transform:uppercase; color:rgba(255,255,255,.42); }
.pg-metric__s  { font-size:13.5px; color:rgba(255,255,255,.42); margin-top:4px; }
.pg-metric__bar{ height:3px; background:rgba(255,255,255,.07); margin-top:12px; overflow:hidden; }
.pg-metric__bar i{ display:block; height:100%; background:var(--c,var(--wax-bright)); transition:width .6s; }

/* pillar bars (Output) */
.pg-pillar     { display:flex; align-items:center; gap:12px; padding:10px 0; }
.pg-pillar__k  { font-family:var(--font-mono); font-size:13.5px; letter-spacing:.05em;
                 color:rgba(255,255,255,.6); width:130px; flex:none; }
.pg-pillar__track{ flex:1; height:8px; background:rgba(255,255,255,.06); position:relative; }
.pg-pillar__track i{ position:absolute; inset:0 auto 0 0; background:var(--mint); }
.pg-pillar__v  { font-family:var(--font-mono); font-size:13.5px; color:var(--mint); width:46px; text-align:right; }

/* tool catalog (Tools) */
.pg-tool       { display:flex; align-items:center; gap:12px; padding:11px 14px; cursor:pointer;
                 border:1px solid rgba(255,255,255,.06); background:rgba(255,255,255,.02);
                 transition:border-color .2s, background .2s; }
.pg-tool:hover { border-color:rgba(92,225,201,.4); background:rgba(92,225,201,.05); }
.pg-tool__dot  { width:8px; height:8px; flex:none; border-radius:50%; background:var(--text-dim); }
.pg-tool__dot.fresh{ background:var(--ok); box-shadow:0 0 7px var(--ok); }
.pg-tool__dot.stale{ background:var(--warn); box-shadow:0 0 7px var(--warn); }
.pg-tool__name { font-size:13px; color:rgba(255,255,255,.78); }
.pg-tool__desc { font-size:13.5px; color:rgba(255,255,255,.32); }
.pg-tool__meta { margin-left:auto; display:flex; align-items:center; gap:10px; }
.pg-tool__vp   { font-family:var(--font-mono); font-size:13.5px; color:var(--signal); }
.pg-tool__run  { font-family:var(--font-mono); font-size:12.5px; letter-spacing:.1em;
                 padding:4px 9px; border:1px solid rgba(92,225,201,.3); color:var(--signal); white-space:nowrap; }
.pg-tool__star { color:var(--royal); font-size:13.5px; }
.pg-catbar     { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px; }
.pg-catchip    { font-family:var(--font-mono); font-size:13px; letter-spacing:.08em; padding:6px 12px;
                 border:1px solid rgba(255,255,255,.1); color:var(--text-dim); cursor:pointer; }
.pg-catchip.on { border-color:var(--signal); color:var(--signal); background:rgba(92,225,201,.08); }

/* ══ Triage — the portal-framed white/blue redesign ══
   Everything below is scoped under .triage-portal so these variables
   (--bg, --card, --ink, --brand, --danger, --urgent, --delayed, etc.)
   never leak into the rest of the app's dark theme. */
.triage-portal{
  --tp-bg:#e8eef7; --tp-card:#ffffff;
  --tp-ink:#0a1626; --tp-ink-dim:#42536c; --tp-ink-faint:#75859c;
  --tp-brand:#2451e0; --tp-brand-deep:#16309e; --tp-brand-bright:#4f7cff; --tp-brand-soft:#eaf0ff;
  --tp-danger:#e11d2e; --tp-urgent:#ea580c; --tp-tend:#0f8577; --tp-ok:#0d9455;
  --tp-decay-weak:#b8863a; --tp-decay-crit:#c2570f; --tp-decay-dead:#94897a;
  --tp-border:#d7e1ee; --tp-border-strong:#b9c8dc;
  position:relative; max-width:1012px; margin:0 auto; padding:clamp(20px,4vw,52px);
  border-radius:8px;
  background:
    repeating-linear-gradient(115deg, rgba(255,182,39,.025) 0px, rgba(255,182,39,.025) 1px, transparent 1px, transparent 34px),
    repeating-linear-gradient(25deg, rgba(255,182,39,.02) 0px, rgba(255,182,39,.02) 1px, transparent 1px, transparent 34px),
    linear-gradient(155deg, #211609, #120b04 55%, #17100a 100%);
  box-shadow:
    0 70px 140px -50px rgba(0,0,0,.8),
    inset 0 0 0 1px rgba(255,182,39,.09),
    inset 0 1px 0 rgba(255,255,255,.04);
  font-family:'Inter',sans-serif;
}
.tp-corner{ position:absolute; width:9px; height:9px; border-radius:50%;
  background:radial-gradient(circle, var(--wax-bright,#ffb627), #a8690f 70%); box-shadow:0 0 8px rgba(255,182,39,.5); }
.tp-corner--tl{ top:16px; left:16px; } .tp-corner--tr{ top:16px; right:16px; }
.tp-corner--bl{ bottom:16px; left:16px; } .tp-corner--br{ bottom:16px; right:16px; }
.tp-keystone{ position:absolute; top:0; left:50%; transform:translate(-50%,-52%); z-index:6;
  width:58px; height:66px; display:flex; align-items:center; justify-content:center; }
.tp-keystone svg{ width:100%; height:100%; }
.tp-keystone .kbg{ fill:#17100a; stroke:rgba(255,182,39,.4); stroke-width:1.5; }
.tp-keystone-icon{ position:absolute; font-size:20px; }
.tp-seam{ position:relative; border-radius:4px; padding:3px;
  background:linear-gradient(155deg, rgba(255,182,39,.55), rgba(255,182,39,.12) 45%, rgba(255,182,39,.4));
  box-shadow:0 0 50px -6px rgba(255,182,39,.25); }
.tp-inner{ border-radius:2px; overflow:hidden; position:relative; background:var(--tp-bg);
  box-shadow:inset 0 12px 40px -18px rgba(0,0,0,.5), inset 0 -4px 20px -14px rgba(0,0,0,.3);
  padding:44px 28px 60px; color:var(--tp-ink); }

@keyframes tpFadeUp{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:translateY(0); } }
.tp-reveal{ animation:tpFadeUp .7s cubic-bezier(.16,.9,.35,1) both; }

/* ── hero: bold contained blue card ── */
.tp-hero > :not(.pg__hero-canvas){ position:relative; z-index:1; }
.tp-hero{ position:relative; padding:40px 44px 34px; border-radius:4px; overflow:hidden;
  background:linear-gradient(155deg, var(--tp-brand-deep), var(--tp-brand) 55%, #2f5ce8 100%);
  box-shadow:0 24px 50px -18px rgba(20,50,150,.4);
  clip-path:polygon(28px 0,calc(100% - 28px) 0,100% 28px,100% 100%,0 100%,0 28px); }
.tp-hero::before{ content:''; position:absolute; top:-30%; right:-10%; width:55%; height:200%;
  background:radial-gradient(ellipse, rgba(255,255,255,.1), transparent 70%); pointer-events:none; }
.tp-hero::after{ content:''; position:absolute; inset:0; opacity:.5; pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size:34px 34px; mask-image:linear-gradient(160deg, black, transparent 70%); }
.tp-hero__eyebrow{ display:flex; align-items:center; justify-content:space-between; gap:10px; font-family:var(--font-mono); font-size:12px;
  letter-spacing:.22em; color:rgba(255,255,255,.85); margin-bottom:20px; position:relative; }
.tp-hero__dot{ width:6px; height:6px; border-radius:50%; background:#fff; box-shadow:0 0 10px #fff; animation:tpPulse 2.4s ease-in-out infinite; }
@keyframes tpPulse{ 0%,100%{opacity:1} 50%{opacity:.35} }
.tp-hero__colony{ margin-left:auto; font-family:var(--font-mono); font-size:11.5px; color:rgba(255,255,255,.6); }
.tp-hero__title{ font-family:var(--font-display); font-weight:700; font-size:42px; line-height:1.05;
  letter-spacing:-.01em; margin:0 0 12px; color:#fff; position:relative; }
.tp-hero__title em{ font-style:normal; color:#bcd0ff; }
.tp-hero__sub{ font-size:15.5px; color:rgba(255,255,255,.82); max-width:540px; line-height:1.55; margin-bottom:26px; position:relative; }
.tp-hero__sub b{ color:#fff; font-weight:600; }
.tp-pillrow{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; position:relative; }
.tp-pill{ display:flex; align-items:center; gap:8px; padding:8px 15px 8px 12px; border-radius:100px;
  border:1px solid rgba(255,255,255,.35); background:rgba(255,255,255,.08);
  font-family:var(--font-mono); font-size:12.5px; }
.tp-pill .n{ font-weight:700; font-size:14px; color:#fff; }
.tp-pill .k{ color:rgba(255,255,255,.75); letter-spacing:.04em; }
.tp-pill .dot{ width:6px; height:6px; border-radius:50%; background:var(--pc, #fff); }

/* ── health banner ── */
.tp-healthbar{ display:flex; align-items:center; gap:14px; padding:16px 20px; margin-top:28px;
  background:var(--tp-card); border:1px solid var(--tp-border); border-left:4px solid var(--hc);
  border-radius:4px; box-shadow:0 10px 26px -16px rgba(20,40,90,.16); flex-wrap:wrap; }
.tp-healthbar__icon{ font-size:19px; flex:none; }
.tp-healthbar__text{ flex:1; font-size:13.5px; color:var(--tp-ink-dim); line-height:1.5; }
.tp-healthbar__text b{ color:var(--hc); font-family:var(--font-display); }
.tp-healthbar__unmeasured{ color:var(--tp-ink-faint); }
.tp-healthbar__link{ font-family:var(--font-mono); font-size:12px; color:var(--tp-brand); flex:none; cursor:pointer; white-space:nowrap; }
.tp-healthbar__link:hover{ text-decoration:underline; }

/* ── on the bench ── */
.tp-bench{ position:relative; z-index:1; padding:44px 0 8px; }
.tp-bench__label{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.2em; color:var(--tp-ink-faint);
  margin-bottom:14px; display:flex; align-items:center; gap:10px; }
.tp-bench__label::after{ content:''; flex:1; height:1px; background:var(--tp-border); }
.tp-cell{ position:relative; padding:36px 40px 32px; border-radius:4px; background:var(--tp-card);
  border:1px solid var(--tp-border-strong); border-left:4px solid var(--tp-brand);
  box-shadow:0 20px 46px -22px rgba(20,40,90,.18), 0 2px 8px -2px rgba(20,40,90,.06);
  cursor:pointer; transition:transform .2s ease, box-shadow .2s ease; }
.tp-cell:hover{ transform:translateY(-2px); box-shadow:0 26px 56px -20px rgba(20,40,90,.22), 0 2px 8px -2px rgba(20,40,90,.08); }
.tp-cell__top{ display:flex; align-items:flex-start; gap:18px; margin-bottom:20px; }
.tp-cell__icon{ font-size:30px; flex:none; }
.tp-cell__titles{ flex:1; min-width:0; }
.tp-cell__tier{ display:inline-flex; align-items:center; gap:6px; font-family:var(--font-mono); font-size:10.5px; letter-spacing:.14em;
  color:var(--cc); border:1px solid color-mix(in srgb, var(--cc) 40%, transparent);
  background:color-mix(in srgb, var(--cc) 8%, transparent); padding:4px 11px 4px 9px; border-radius:20px; margin-bottom:12px; }
.tp-cell__tier::before{ content:''; width:5px; height:5px; border-radius:50%; background:var(--cc); }
.tp-cell__name{ font-family:var(--font-display); font-weight:700; font-size:24px; line-height:1.2; color:var(--tp-ink); }
.tp-cell__source{ font-family:var(--font-mono); font-size:11px; color:var(--tp-ink-faint); margin-top:5px; letter-spacing:.05em; }
.tp-cell__desc{ font-size:15px; color:var(--tp-ink-dim); line-height:1.6; margin:0 0 18px; max-width:560px; }
.tp-cell__fix{ display:flex; gap:10px; padding:14px 16px; background:var(--tp-brand-soft); border-radius:6px;
  border-left:2px solid var(--cc); margin-bottom:22px; }
.tp-cell__fix b{ font-family:var(--font-mono); font-size:10px; letter-spacing:.1em; color:var(--cc); flex:none; padding-top:2px; }
.tp-cell__fix span{ font-size:13.5px; color:var(--tp-ink-dim); line-height:1.55; }
.tp-cell__go{ display:inline-flex; align-items:center; gap:10px; font-family:var(--font-mono); font-size:13px;
  font-weight:600; letter-spacing:.03em; color:#fff; background:linear-gradient(135deg, var(--tp-brand-bright), var(--tp-brand));
  padding:11px 21px; border-radius:5px; box-shadow:0 10px 24px -8px rgba(36,81,224,.4); }
.tp-cell__go .arrow{ transition:transform .2s; }
.tp-cell:hover .tp-cell__go .arrow{ transform:translateX(3px); }
.tp-cell--decay .tp-cell__icon{ animation:tpBenchFlicker 3.2s ease-in-out infinite; }
@keyframes tpBenchFlicker{ 0%,100%{ opacity:1; } 50%{ opacity:.6; } }

/* ── queue: tier-grouped, readable ── */
.tp-queue{ position:relative; z-index:1; padding:48px 0 0; }
.tp-queue__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
.tp-queue__label{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.2em; color:var(--tp-ink-faint); }
.tp-qlist{ margin-top:22px; display:flex; flex-direction:column; gap:20px; }
.tp-qsection{ display:flex; flex-direction:column; gap:7px; }
.tp-qsection__head{ display:inline-flex; align-items:center; gap:8px; font-family:var(--font-mono); font-weight:600; font-size:11.5px;
  letter-spacing:.14em; color:#fff; background:var(--sc); padding:5px 12px; border-radius:4px; margin-bottom:10px; }
.tp-qsection__count{ font-family:var(--font-mono); font-size:10.5px; color:rgba(255,255,255,.85); background:rgba(255,255,255,.2);
  padding:1px 7px; border-radius:9px; margin-left:2px; }
.tp-qrow{ display:flex; align-items:center; gap:14px; padding:13px 16px; background:var(--tp-card);
  cursor:pointer; transition:box-shadow .15s, transform .15s; border:1px solid var(--tp-border); border-left:3px solid var(--qc);
  border-radius:3px; box-shadow:0 2px 8px -4px rgba(20,40,90,.1); }
.tp-qrow:hover{ box-shadow:0 10px 22px -10px rgba(20,40,90,.2); transform:translateY(-1px); }
.tp-qrow__tier{ font-family:var(--font-mono); font-size:9.5px; letter-spacing:.08em; color:var(--qc); width:64px; flex:none; }
.tp-qrow__icon{ font-size:15px; flex:none; opacity:.8; }
.tp-qrow__body{ flex:1; min-width:0; }
.tp-qrow__name{ font-size:13.5px; color:var(--tp-ink); font-weight:500; }
.tp-qrow__sub{ font-size:12px; color:var(--tp-ink-faint); margin-top:1px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tp-qrow__source{ font-family:var(--font-mono); font-size:9.5px; color:var(--tp-ink-faint); flex:none; letter-spacing:.05em; }
.tp-warn-tag{ display:inline-block; font-family:var(--font-mono); font-size:9px; letter-spacing:.05em; padding:1px 5px;
  border:1px solid color-mix(in srgb, var(--qc) 50%, transparent); color:var(--qc); border-radius:3px; vertical-align:middle; margin-left:4px; }

.tp-decayhex{ width:16px; height:16px; flex:none; position:relative; }
.tp-decayhex svg{ width:100%; height:100%; overflow:visible; }
.tp-decayhex .fill{ fill:var(--dc); opacity:var(--fill-op); }
.tp-decayhex .outline{ fill:none; stroke:var(--dc); stroke-width:1.4; opacity:.6; }

.tp-clear{ display:flex; flex-direction:column; align-items:center; text-align:center; padding:64px 20px; border-radius:8px;
  border:1px dashed #bbe4c8; background:#f2fbf5; }
.tp-clear__icon{ font-size:38px; margin-bottom:14px; }
.tp-clear__title{ font-family:var(--font-display); font-weight:700; font-size:23px; color:var(--tp-ok); margin-bottom:8px; }
.tp-clear__sub{ font-size:14px; color:var(--tp-ink-dim); max-width:380px; line-height:1.6; }

@media(max-width:640px){
  .triage-portal{ padding:12px; }
  .tp-inner{ padding:28px 18px 46px; }
  .tp-hero{ padding:28px 24px 26px; }
  .tp-hero__title{ font-size:32px; }
  .tp-cell{ padding:26px 22px 24px; }
  .tp-cell__name{ font-size:20px; }
  .tp-qrow{ flex-wrap:wrap; }
  .tp-qrow__source{ width:100%; padding-left:29px; margin-top:2px; }
}

/* ── Apiary: active-colony marquee cards section ── */
.apy-cards-section{ margin:28px 0 8px; }
.apy-cards-head{ display:flex; align-items:baseline; gap:12px; margin-bottom:14px;
  padding-bottom:10px; border-bottom:1px solid rgba(200,165,80,.14); }
.apy-cards-eyebrow{ font-family:var(--font-mono); font-size:12px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--signal); }
.apy-cards-name{ font-family:var(--font-display); font-weight:700; font-size:18px; color:#fff; }
.apy-cards-url{ font-family:var(--font-mono); font-size:13px; font-weight:400; color:var(--text-dim); }

/* ── Apiary: live hive for the active colony ──
   The hive now leads the section and the marquee cards sit beneath it, so the
   18px gap moved from the hive's top to the cards' top. */
.apy-hive{ position:relative; margin-top:0; background:var(--void,#04020a);
  border:1px solid rgba(200,165,80,.12); }
#apy-active-cards{ margin-top:18px; }
.apy-hive-label{ position:absolute; top:0; left:0; right:0; z-index:3;
  display:flex; align-items:center; justify-content:space-between; padding:9px 18px;
  background:linear-gradient(180deg,rgba(4,2,10,.85),transparent); pointer-events:none; }
.apy-hive-eyebrow{ font-family:var(--font-mono); font-size:12px; letter-spacing:.2em;
  text-transform:uppercase; color:rgba(225,150,40,.78); }
.apy-hive-count{ font-family:var(--font-mono); font-size:12.5px; color:rgba(255,255,255,.55); }
.apy-hive-canvas-wrap{ width:100%; height:660px; position:relative; overflow:hidden; }
.apy-hive-canvas-wrap canvas{ display:block; width:100%; height:100%; }


/* ══ THE FRAMES ══════════════════════════════════════════════════════ */
.fr{ padding:0 0 60px; }
.fr-hero{ position:relative; overflow:hidden; padding:38px 40px 32px; border-radius:4px;
  border:1px solid rgba(255,182,39,.16);
  background:linear-gradient(160deg, rgba(255,182,39,.06), transparent 62%); margin-bottom:26px; }
.fr-hero > :not(.pg__hero-canvas){ position:relative; z-index:1; }
.fr-hero__eyebrow{ font-family:var(--font-mono); font-size:11px; letter-spacing:.22em;
  text-transform:uppercase; color:rgba(225,150,40,.8); margin-bottom:10px; }
.fr-hero__title{ font-family:var(--font-display); font-size:34px; font-weight:700; letter-spacing:-.01em;
  margin-bottom:12px; }
.fr-hero__sub{ font-size:14.5px; color:rgba(255,255,255,.6); max-width:60ch; line-height:1.6; }
.fr-hero__act{ display:flex; align-items:center; gap:14px; margin-top:22px; flex-wrap:wrap; }
.fr-btn{ font-family:var(--font-mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase;
  padding:12px 22px; border:1px solid var(--wax,#c97f1f); color:#ffe089; cursor:pointer;
  background:linear-gradient(180deg, rgba(255,200,80,.18), rgba(255,160,30,.05)); }
.fr-btn:hover{ filter:brightness(1.15); }
.fr-btn:disabled{ opacity:.5; cursor:default; filter:none; }
.fr-target{ font-family:var(--font-mono); font-size:12px; color:rgba(255,255,255,.42); }

.fr-empty{ padding:44px; text-align:center; border:1px dashed rgba(255,255,255,.12);
  font-family:var(--font-mono); font-size:12.5px; color:rgba(255,255,255,.4); letter-spacing:.06em; }

.fr-prog{ padding:44px; text-align:center; }
.fr-prog__phase{ font-family:var(--font-mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(225,150,40,.8); margin-bottom:10px; }
.fr-prog__n{ font-family:var(--font-mono); font-size:30px; color:#ffe089; margin-bottom:16px; }
.fr-prog__bar{ height:3px; background:rgba(255,255,255,.07); max-width:420px; margin:0 auto; }
.fr-prog__bar i{ display:block; height:100%; background:linear-gradient(90deg,#c97f1f,#ffd966);
  transition:width .3s ease; }

.fr-headline{ padding:30px 32px; border:1px solid rgba(255,182,39,.14); background:rgba(255,182,39,.03);
  margin-bottom:16px; }
.fr-headline__big{ font-family:var(--font-mono); font-size:46px; font-weight:700; color:#ffd966; line-height:1; }
.fr-headline__big span{ font-size:20px; color:rgba(255,255,255,.4); font-weight:400; }
.fr-headline__label{ font-size:15px; color:rgba(255,255,255,.72); margin:8px 0 16px; }
.fr-headline__bar{ height:6px; background:rgba(255,255,255,.06); margin-bottom:10px; }
.fr-headline__bar i{ display:block; height:100%; background:linear-gradient(90deg,#c97f1f,#ffd966); }
.fr-headline__note{ font-family:var(--font-mono); font-size:11.5px; color:rgba(255,255,255,.4); letter-spacing:.04em; }

.fr-intents{ display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:1px;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.06); margin-bottom:22px; }
.fr-intent{ background:var(--void,#0c0e12); padding:16px 18px; }
.fr-intent__n{ font-family:var(--font-mono); font-size:22px; font-weight:700; color:rgba(255,255,255,.85); }
.fr-intent__k{ font-family:var(--font-mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase;
  color:rgba(255,255,255,.38); margin-top:5px; }
.fr-intent--transactional .fr-intent__n{ color:#5cd97e; }
.fr-intent--format-label  .fr-intent__n{ color:#ff5e5e; }
.fr-intent--informational .fr-intent__n{ color:#5ce1c9; }

.fr-findings__head{ font-family:var(--font-mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(255,255,255,.4); margin-bottom:10px; }
.fr-f{ border:1px solid rgba(255,255,255,.07); border-left:2px solid rgba(255,255,255,.2);
  margin-bottom:6px; background:rgba(255,255,255,.015); }
.fr-f--crit{ border-left-color:#ff5e5e; } .fr-f--high{ border-left-color:#ffaa33; }
.fr-f--med{ border-left-color:#5ce1c9; }  .fr-f--low{ border-left-color:rgba(255,255,255,.25); }
.fr-f__top{ display:flex; align-items:center; gap:14px; padding:14px 18px; cursor:pointer; flex-wrap:wrap; }
.fr-f__top:hover{ background:rgba(255,255,255,.02); }
.fr-f__sev{ font-family:var(--font-mono); font-size:9.5px; letter-spacing:.16em; text-transform:uppercase;
  color:rgba(255,255,255,.45); width:62px; flex:none; }
.fr-f__label{ font-size:14px; font-weight:500; color:rgba(255,255,255,.9); min-width:150px; }
.fr-f__detail{ font-size:13px; color:rgba(255,255,255,.5); flex:1; }
.fr-f__count{ font-family:var(--font-mono); font-size:12px; color:#ffd966; }
.fr-f__urls{ padding:4px 18px 16px; display:flex; flex-wrap:wrap; gap:6px; }
.fr-f__urls a{ font-family:var(--font-mono); font-size:11px; color:rgba(255,255,255,.45);
  border:1px solid rgba(255,255,255,.08); padding:4px 8px; text-decoration:none; }
.fr-f__urls a:hover{ color:#ffd966; border-color:rgba(255,182,39,.4); }
.fr-f__more{ font-family:var(--font-mono); font-size:11px; color:rgba(255,255,255,.3); padding:4px 8px; }


/* ══ FIRST LIGHT ═════════════════════════════════════════════════════ */
.fl{ border:1px solid rgba(255,182,39,.16); background:linear-gradient(160deg,rgba(255,182,39,.04),transparent 60%);
  padding:22px 24px; margin-bottom:18px; border-radius:4px; }
.fl__head{ display:flex; justify-content:space-between; align-items:flex-start; gap:18px; flex-wrap:wrap; margin-bottom:16px; }
.fl__eyebrow{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.22em; text-transform:uppercase;
  color:rgba(225,150,40,.85); margin-bottom:7px; }
.fl__title{ font-family:var(--font-display); font-size:20px; font-weight:700; margin-bottom:6px; }
.fl__sub{ font-size:13px; color:rgba(255,255,255,.5); max-width:62ch; line-height:1.55; }
.fl__run{ font-family:var(--font-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  padding:10px 18px; border:1px solid var(--wax,#c97f1f); color:#ffe089; cursor:pointer; white-space:nowrap;
  background:linear-gradient(180deg,rgba(255,200,80,.18),rgba(255,160,30,.05)); }
.fl__run:hover{ filter:brightness(1.15); } .fl__run:disabled{ opacity:.5; }
.fl__empty,.fl__none,.fl__err{ padding:20px; text-align:center; font-family:var(--font-mono); font-size:12px;
  color:rgba(255,255,255,.38); border:1px dashed rgba(255,255,255,.1); }
.fl__err{ color:#ff8a8a; border-color:rgba(255,94,94,.3); }
.fl__profile{ padding:14px 16px; background:rgba(255,255,255,.02); border:1px solid rgba(255,255,255,.07); margin-bottom:14px; }
.fl__pname{ font-size:15px; font-weight:600; color:rgba(255,255,255,.92); }
.fl__pmeta{ font-size:12.5px; color:rgba(255,255,255,.42); margin-top:3px; }
.fl__pstats{ display:flex; gap:18px; flex-wrap:wrap; margin-top:10px; font-family:var(--font-mono); font-size:11.5px;
  color:rgba(255,255,255,.45); }
.fl__pstats b{ color:#ffd966; font-size:13px; }
.fl__sect{ margin-top:16px; }
.fl__secthead{ display:flex; align-items:center; gap:12px; font-family:var(--font-mono); font-size:10.5px;
  letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.42); margin-bottom:8px; }
.fl__apply{ font-family:var(--font-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase;
  padding:5px 11px; border:1px solid rgba(92,217,126,.4); color:#7ee89c; background:rgba(92,217,126,.08); cursor:pointer; }
.fl__apply:disabled{ opacity:.55; cursor:default; }
.fl__row{ display:flex; align-items:center; gap:12px; padding:9px 12px; border:1px solid rgba(255,255,255,.06);
  margin-bottom:4px; background:rgba(255,255,255,.015); flex-wrap:wrap; }
.fl__row--lit{ border-left:2px solid #5cd97e; }
.fl__tick{ font-size:13px; color:#5cd97e; width:14px; flex:none; }
.fl__tick--q{ color:#ffaa33; }
.fl__m{ font-size:13.5px; color:rgba(255,255,255,.85); flex:1; min-width:180px; }
.fl__ev{ font-family:var(--font-mono); font-size:11px; color:rgba(255,255,255,.4); }
.fl__confirm{ font-family:var(--font-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase;
  padding:5px 10px; border:1px solid rgba(255,182,39,.4); color:#ffd966; background:none; cursor:pointer; }
.fl__confirm:disabled{ opacity:.5; cursor:default; }
.fl__f{ padding:11px 14px; border:1px solid rgba(255,255,255,.06); border-left:2px solid rgba(255,255,255,.2);
  margin-bottom:4px; background:rgba(255,255,255,.015); }
.fl__f--crit{ border-left-color:#ff5e5e; } .fl__f--high{ border-left-color:#ffaa33; }
.fl__f--med{ border-left-color:#5ce1c9; }  .fl__f--low{ border-left-color:rgba(255,255,255,.25); }
.fl__flabel{ font-size:13.5px; font-weight:500; color:rgba(255,255,255,.9); }
.fl__fdetail{ font-size:12.5px; color:rgba(255,255,255,.5); margin-top:4px; line-height:1.5; }

.fl__ctl{ display:flex; align-items:flex-end; gap:8px; flex-wrap:wrap; }
.fl__lab{ display:block; font-family:var(--font-mono); font-size:9.5px; letter-spacing:.18em;
  text-transform:uppercase; color:rgba(255,255,255,.35); margin-bottom:5px; }
.fl__loc{ background:rgba(0,0,0,.35); border:1px solid rgba(255,255,255,.14); color:#f3ede2;
  font-family:var(--font-mono); font-size:12px; padding:9px 11px; width:150px; }
.fl__loc:focus{ outline:none; border-color:rgba(255,182,39,.5); }

.fl__src{ font-family:var(--font-mono); font-size:9.5px; letter-spacing:.14em; text-transform:uppercase;
  padding:3px 8px; margin-left:10px; vertical-align:middle; border:1px solid; }
.fl__src--gbp{ color:#7ee89c; border-color:rgba(92,217,126,.4); background:rgba(92,217,126,.08); }
.fl__src--places{ color:rgba(255,255,255,.45); border-color:rgba(255,255,255,.15); }

.fl__ident{ padding:12px 15px; margin-bottom:12px; border:1px solid; }
.fl__ident--doubtful{ border-color:rgba(255,94,94,.45); background:rgba(255,94,94,.07); }
.fl__ident--probable{ border-color:rgba(255,170,51,.4); background:rgba(255,170,51,.06); }
.fl__ident-h{ font-size:14px; font-weight:600; color:rgba(255,255,255,.92); margin-bottom:5px; }
.fl__ident-b{ font-size:12.5px; color:rgba(255,255,255,.55); line-height:1.55; }


/* ══ THE SITTING ═════════════════════════════════════════════════════ */
.sit{ border:1px solid rgba(255,182,39,.18); background:linear-gradient(160deg,rgba(255,182,39,.05),transparent 62%);
  padding:24px 26px; margin:18px 14px; border-radius:4px; }
.sit__head{ display:flex; justify-content:space-between; align-items:flex-start; gap:20px; flex-wrap:wrap; }
.sit__eyebrow{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.22em; text-transform:uppercase;
  color:rgba(225,150,40,.85); margin-bottom:8px; }
.sit__title{ font-family:var(--font-display); font-size:23px; font-weight:700; letter-spacing:-.01em; margin-bottom:6px; }
.sit__ctx{ font-size:13.5px; color:rgba(255,255,255,.5); }
.sit__sub{ font-size:13.5px; color:rgba(255,255,255,.55); max-width:62ch; line-height:1.6; margin-top:8px; }
.sit__meta{ text-align:right; flex:none; }
.sit__min{ font-family:var(--font-mono); font-size:30px; font-weight:700; color:#ffd966; line-height:1; }
.sit__min span{ font-size:12px; color:rgba(255,255,255,.4); margin-left:4px; }
.sit__cells{ font-family:var(--font-mono); font-size:11px; color:rgba(255,255,255,.4); margin-top:5px; }
.sit__blurb{ font-size:13.5px; color:rgba(255,255,255,.62); line-height:1.6; margin:14px 0 4px; max-width:70ch; }
.sit__list{ margin-top:14px; }
.sit__m{ display:flex; align-items:center; gap:12px; padding:11px 14px; border:1px solid rgba(255,255,255,.07);
  background:rgba(255,255,255,.015); margin-bottom:4px; cursor:pointer; transition:.15s; }
.sit__m:hover{ background:rgba(255,255,255,.04); border-color:rgba(255,182,39,.3); }
.sit__m-hex{ color:rgba(255,182,39,.55); font-size:13px; }
.sit__m-t{ flex:1; font-size:14px; color:rgba(255,255,255,.85); }
.sit__m-go{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.1em; color:rgba(255,255,255,.3); }
.sit__m:hover .sit__m-go{ color:#ffd966; }
.sit__foot{ display:flex; justify-content:space-between; gap:16px; margin-top:14px; flex-wrap:wrap;
  font-family:var(--font-mono); font-size:11px; color:rgba(255,255,255,.38); }
.sit__foot b{ color:rgba(255,255,255,.7); }
.sit__foot a{ color:rgba(255,182,39,.75); text-decoration:none; border-bottom:1px dotted rgba(255,182,39,.4); }
.sit__types{ display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:8px; margin-top:18px; }
.sit__type{ display:flex; align-items:center; gap:9px; padding:12px 14px; border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.02); color:rgba(255,255,255,.8); cursor:pointer; text-align:left; transition:.15s; }
.sit__type:hover{ border-color:rgba(255,182,39,.5); background:rgba(255,182,39,.07); color:#ffe089; }
.sit__type-i{ font-size:15px; }
.sit__type-l{ font-size:13px; }


/* ══ THE RIVALS ══════════════════════════════════════════════════════ */
.rv{ padding:0 0 60px; }
.rv-hero{ position:relative; overflow:hidden; padding:38px 40px 32px; border-radius:4px; margin-bottom:22px;
  border:1px solid rgba(205,221,245,.16);
  background:linear-gradient(160deg, rgba(205,221,245,.05), transparent 62%); }
.rv-hero > :not(.pg__hero-canvas){ position:relative; z-index:1; }
.rv-hero__eyebrow{ font-family:var(--font-mono); font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:rgba(205,221,245,.75); margin-bottom:10px; }
.rv-hero__title{ font-family:var(--font-display); font-size:34px; font-weight:700; margin-bottom:12px; }
.rv-hero__sub{ font-size:14.5px; color:rgba(255,255,255,.58); max-width:66ch; line-height:1.6; }
.rv-hero__act{ display:flex; gap:10px; margin-top:22px; flex-wrap:wrap; }
.rv-q{ flex:1; min-width:260px; background:rgba(0,0,0,.35); border:1px solid rgba(255,255,255,.14);
  color:#f3ede2; font-family:var(--font-mono); font-size:13px; padding:11px 13px; }
.rv-q:focus{ outline:none; border-color:rgba(205,221,245,.5); }
.rv-btn{ font-family:var(--font-mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase;
  padding:11px 20px; border:1px solid rgba(205,221,245,.5); color:#e4f2ff; cursor:pointer; white-space:nowrap;
  background:linear-gradient(180deg, rgba(205,221,245,.16), rgba(205,221,245,.04)); }
.rv-btn:hover{ filter:brightness(1.18); } .rv-btn:disabled{ opacity:.5; }
.rv-empty{ padding:40px; text-align:center; border:1px dashed rgba(255,255,255,.12);
  font-family:var(--font-mono); font-size:12.5px; color:rgba(255,255,255,.38); }
.rv-headline{ padding:20px 22px; border:1px solid rgba(205,221,245,.14); background:rgba(205,221,245,.03);
  margin-bottom:14px; }
.rv-headline__t{ font-size:17px; color:rgba(255,255,255,.92); line-height:1.45; }
.rv-headline__m{ font-family:var(--font-mono); font-size:11.5px; color:rgba(255,255,255,.42); margin-top:8px; }
.rv-row{ display:flex; align-items:center; gap:16px; padding:14px 16px; border:1px solid rgba(255,255,255,.06);
  background:rgba(255,255,255,.015); margin-bottom:4px; }
.rv-row--you{ border-color:rgba(255,182,39,.45); background:rgba(255,182,39,.05); }
.rv-rank{ font-family:var(--font-mono); font-size:16px; font-weight:700; color:rgba(255,255,255,.35);
  width:26px; flex:none; text-align:right; }
.rv-row--you .rv-rank{ color:#ffd966; }
.rv-main{ flex:1; min-width:0; }
.rv-name{ font-size:14.5px; font-weight:500; color:rgba(255,255,255,.9); }
.rv-you{ font-family:var(--font-mono); font-size:9.5px; letter-spacing:.14em; text-transform:uppercase;
  color:#ffd966; border:1px solid rgba(255,182,39,.4); padding:2px 7px; margin-left:9px; }
.rv-facts{ display:flex; gap:14px; flex-wrap:wrap; font-family:var(--font-mono); font-size:11px;
  color:rgba(255,255,255,.42); margin-top:5px; }
.rv-miss{ color:#ff8a8a; }
.rv-weak{ font-size:12px; color:rgba(255,255,255,.4); margin-top:5px; }
.rv-weak--none{ color:rgba(92,217,126,.7); }
.rv-score{ font-family:var(--font-mono); font-size:20px; font-weight:700; color:#e4f2ff; width:64px;
  flex:none; text-align:right; }
.rv-bar{ display:block; height:3px; background:rgba(255,255,255,.08); margin-top:6px; }
.rv-bar i{ display:block; height:100%; background:linear-gradient(90deg,#5a7ea8,#cdddf5); }
.rv-attr{ font-family:var(--font-mono); font-size:10.5px; color:rgba(255,255,255,.28);
  margin-top:14px; text-align:right; }

.sit__why{ display:flex; gap:9px; align-items:flex-start; margin-top:14px; padding:11px 13px;
  border-left:2px solid rgba(255,182,39,.55); background:rgba(255,182,39,.06);
  font-size:13.5px; color:rgba(255,255,255,.8); line-height:1.5; }
.sit__why-i{ color:rgba(255,182,39,.9); flex:none; }


/* ══ THE DIGEST ══════════════════════════════════════════════════════
   The only thing in the app that speaks first. Silent when nothing moved. */
.dg{ margin:14px 14px 0; padding:16px 18px; border:1px solid rgba(92,225,201,.28);
  background:linear-gradient(160deg,rgba(92,225,201,.07),transparent 60%); border-radius:4px; }
.dg--offer{ display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  border-color:rgba(255,255,255,.12); background:rgba(255,255,255,.02); }
.dg__i{ color:#5ce1c9; font-size:14px; flex:none; }
.dg__t{ flex:1; min-width:240px; font-size:13px; color:rgba(255,255,255,.55); line-height:1.55; }
.dg__btn{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase;
  padding:9px 16px; border:1px solid rgba(92,225,201,.5); color:#7ff0dc; cursor:pointer;
  background:rgba(92,225,201,.08); white-space:nowrap; }
.dg__btn:hover{ filter:brightness(1.2); } .dg__btn:disabled{ opacity:.5; }
.dg__head{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.dg__h{ flex:1; font-size:15.5px; color:rgba(255,255,255,.92); font-weight:500; }
.dg__x{ background:none; border:0; color:rgba(255,255,255,.28); cursor:pointer; font-size:13px; padding:2px 6px; }
.dg__x:hover{ color:rgba(255,255,255,.7); }
.dg__row{ display:flex; gap:12px; padding:8px 0; border-top:1px solid rgba(255,255,255,.05); }
.dg__when{ font-family:var(--font-mono); font-size:10.5px; color:rgba(255,255,255,.3);
  width:70px; flex:none; padding-top:2px; }
.dg__text{ font-size:13.5px; color:rgba(255,255,255,.72); line-height:1.5; }
.dg__row--reviews .dg__text{ color:#9ff0b6; }
.dg__row--profile .dg__text, .dg__row--description .dg__text{ color:#ffc46b; }
.dg__row--lcp .dg__text{ color:#8fd0ff; }

/* The quiet state — watching, nothing changed. A vanishing panel gave the
   user no way to tell the loop was running, so this shows the baseline it
   is monitoring instead. One line, low contrast, easy to ignore. */
.dg--quiet{ display:flex; align-items:center; gap:11px; padding:11px 16px; flex-wrap:wrap;
  border-color:rgba(255,255,255,.09); background:rgba(255,255,255,.02); }
.dg__pulse{ width:7px; height:7px; border-radius:50%; background:#5ce1c9; flex:none;
  box-shadow:0 0 7px rgba(92,225,201,.8); animation:dgpulse 2.6s ease-in-out infinite; }
@keyframes dgpulse{ 0%,100%{opacity:.35} 50%{opacity:1} }
.dg__qt{ flex:1; min-width:220px; font-size:12.5px; color:rgba(255,255,255,.45); line-height:1.5; }
.dg__qt b{ color:rgba(255,255,255,.8); font-weight:600; }
.dg__qt i{ color:#ffaa33; font-style:normal; }
.dg__link{ background:none; border:0; cursor:pointer; font-family:var(--font-mono); font-size:10.5px;
  letter-spacing:.1em; color:rgba(92,225,201,.7); text-decoration:underline; text-underline-offset:3px; }
.dg__link:hover{ color:#7ff0dc; } .dg__link:disabled{ opacity:.5; cursor:default; }
@media (prefers-reduced-motion: reduce){ .dg__pulse{ animation:none; } }
