/* gc-explore.css — the /explore database surface (DEC-029).
   Visual language: Direction C "Field Atlas, working surface" (docs/mockups/EXPLORE-MOCKUP.md).
   Namespaced gcx- throughout; sits under the standard usn header / usf footer.
   System: ivory paper · forest = actions/interactive · gold = premium content ONLY ·
   serif (Fraunces) for title + stat numerals · sans (Plus Jakarta) for all content ·
   mono reserved for "stamp" labels (band headers, section labels, the sample tag). */

.gcx {
  --gcx-paper: #F6F1E3;
  --gcx-card: #FFFDF6;
  --gcx-card-2: #FBF6E7;
  --gcx-rule: #E4DAC1;
  --gcx-rule-soft: #EDE5D0;
  --gcx-ink: #26332B;
  --gcx-ink-soft: #47564C;
  --gcx-moss: #6E7E6C;
  --gcx-faint: #9AA391;
  --gcx-forest: #1F5C41;
  --gcx-leaf: #2E9D66;
  --gcx-ember: #C06A3F;
  --gcx-gold: #C39A3B;
  --gcx-gold-deep: #8A6414;
  --gcx-gold-wash: #F5EBD1;
  --gcx-gold-line: #DFC787;
  --gcx-shadow: 0 26px 60px -28px rgba(96, 78, 34, .28), 0 3px 8px rgba(96, 78, 34, .07);
  --gcx-serif: "Fraunces", Georgia, serif;
  --gcx-sans: "Plus Jakarta Sans", system-ui, sans-serif;
  --gcx-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  background: var(--gcx-paper);
  color: var(--gcx-ink);
  font-family: var(--gcx-sans);
  font-size: 14px;
  line-height: 1.45;
}
.gcx *, .gcx *::before, .gcx *::after { box-sizing: border-box; }
.gcx :where(button) { font-family: inherit; cursor: pointer; border: 0; background: none; color: inherit; padding: 0; }
.gcx :focus-visible { outline: 2px solid var(--gcx-forest); outline-offset: 2px; border-radius: 3px; }

/* ---------- compact working header ---------- */
.gcx-hero { padding: 18px 26px 16px; display: flex; flex-wrap: wrap; gap: 22px; align-items: center; border-bottom: 1px solid var(--gcx-rule); }
.gcx-hero-lede { max-width: 660px; }
.gcx-trow { display: flex; align-items: center; gap: 14px; }
.gcx-h1 { font-family: var(--gcx-serif); font-weight: 600; font-size: 27px; line-height: 1; letter-spacing: -.005em; color: var(--gcx-ink); display: flex; align-items: center; gap: 10px; margin: 0; }
.gcx-h1 svg { flex: none; position: relative; top: 1px; }
.gcx-live { display: inline-flex; align-items: center; gap: 6px; font-family: var(--gcx-mono); font-size: 9.5px; letter-spacing: .18em; color: var(--gcx-forest); border: 1px solid #CFE0D2; background: #EEF4EC; border-radius: 20px; padding: 4px 10px; white-space: nowrap; }
.gcx-live i { width: 6px; height: 6px; border-radius: 50%; background: var(--gcx-leaf); }
@media (prefers-reduced-motion: no-preference) { .gcx-live i { animation: gcx-blink 2.2s infinite; } }
@keyframes gcx-blink { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
.gcx-hero-lede p { color: var(--gcx-ink-soft); margin: 7px 0 0; font-size: 13px; max-width: 66ch; }
.gcx-hero-lede p b { color: var(--gcx-gold-deep); font-weight: 700; }
.gcx-stats { display: flex; gap: 0; margin-left: auto; background: var(--gcx-card); border: 1px solid var(--gcx-rule); border-radius: 10px; overflow: hidden; box-shadow: 0 2px 6px rgba(96, 78, 34, .06); }
.gcx-stat { padding: 10px 20px; border-left: 1px solid var(--gcx-rule-soft); }
.gcx-stat:first-child { border-left: 0; }
.gcx-stat .n { font-family: var(--gcx-serif); font-size: 22px; font-weight: 600; color: var(--gcx-ink); font-variant-numeric: tabular-nums; line-height: 1; }
.gcx-stat .n.gold { color: var(--gcx-gold-deep); }
.gcx-stat .l { font-size: 9px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--gcx-faint); margin-top: 5px; }

/* ---------- command bar ---------- */
.gcx-cmd { display: flex; align-items: center; gap: 12px; padding: 11px 26px; border-bottom: 1px solid var(--gcx-rule); flex-wrap: wrap; position: sticky; top: 61px; z-index: 40; background: rgba(246, 241, 227, .96); backdrop-filter: blur(8px); }
.gcx-search { display: flex; align-items: center; gap: 9px; background: var(--gcx-card); border: 1px solid var(--gcx-rule); border-radius: 9px; padding: 8px 13px; min-width: 260px; flex: 0 1 330px; box-shadow: inset 0 1px 2px rgba(96, 78, 34, .05); transition: border-color .15s; }
.gcx-search:focus-within { border-color: var(--gcx-forest); }
.gcx-search svg { flex: none; stroke: var(--gcx-faint); }
.gcx-search input { background: none; border: 0; color: var(--gcx-ink); font-family: var(--gcx-sans); font-size: 13px; width: 100%; outline: none; }
.gcx-search input::placeholder { color: var(--gcx-faint); }
.gcx-lenses { display: flex; background: var(--gcx-card); border: 1px solid var(--gcx-rule); border-radius: 9px; padding: 0; gap: 0; overflow: hidden; }
.gcx-lens { padding: 8px 14px; font-size: 12.5px; font-weight: 600; color: var(--gcx-ink-soft); border-right: 1px solid var(--gcx-rule-soft); transition: all .12s; white-space: nowrap; }
.gcx-lens:last-child { border-right: 0; }
.gcx-lens:hover { color: var(--gcx-ink); background: var(--gcx-card-2); }
.gcx-lens.on { background: var(--gcx-forest); color: #FBF7EA; }
.gcx-lens .lk { color: var(--gcx-gold); font-size: 10px; margin-left: 4px; }
.gcx-lens.on .lk { color: #E8C979; }
.gcx-toggle { display: flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 600; color: var(--gcx-ink-soft); padding: 8px 13px; border: 1px solid var(--gcx-rule); border-radius: 9px; background: var(--gcx-card); transition: all .12s; }
.gcx-toggle .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--gcx-faint); transition: all .12s; }
.gcx-toggle[aria-pressed="true"] { color: var(--gcx-forest); border-color: var(--gcx-forest); }
.gcx-toggle[aria-pressed="true"] .dot { background: var(--gcx-leaf); box-shadow: 0 0 6px rgba(46, 157, 102, .5); }
.gcx-count { margin-left: auto; font-size: 12px; color: var(--gcx-faint); font-variant-numeric: tabular-nums; }
.gcx-count b { color: var(--gcx-ink); font-weight: 700; }

/* ---------- deck: rail + grid ---------- */
.gcx-deck { display: flex; align-items: flex-start; }
.gcx-rail { width: 212px; flex: none; padding: 18px 16px 40px 26px; position: sticky; top: 121px; max-height: calc(100vh - 121px); overflow-y: auto; }
.gcx-railhead { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid var(--gcx-rule); }
.gcx-railhead span { font-family: var(--gcx-mono); font-size: 10px; letter-spacing: .2em; color: var(--gcx-ink-soft); font-weight: 600; }
.gcx-reset { font-size: 11.5px; color: var(--gcx-faint); text-decoration: underline; text-underline-offset: 3px; }
.gcx-reset:hover { color: var(--gcx-ink); }
.gcx-rail h3 { font-family: var(--gcx-mono); font-size: 9.5px; letter-spacing: .18em; color: var(--gcx-faint); margin: 18px 0 8px; font-weight: 600; }
.gcx-rail h3:first-of-type { margin-top: 0; }
.gcx-fchip { display: flex; align-items: center; gap: 8px; width: 100%; padding: 4px 7px; border-radius: 6px; font-size: 12.5px; color: var(--gcx-ink-soft); transition: all .1s; text-align: left; }
.gcx-fchip:hover { background: var(--gcx-card-2); color: var(--gcx-ink); }
.gcx-fchip .box { width: 12.5px; height: 12.5px; border: 1.5px solid var(--gcx-faint); border-radius: 3px; flex: none; position: relative; transition: all .1s; background: var(--gcx-card); }
.gcx-fchip[aria-pressed="true"] { color: var(--gcx-ink); }
.gcx-fchip[aria-pressed="true"] .box { background: var(--gcx-forest); border-color: var(--gcx-forest); }
.gcx-fchip[aria-pressed="true"] .box::after { content: ""; position: absolute; inset: 2px 2px 3px; border: solid var(--gcx-card); border-width: 0 0 2px 2px; transform: rotate(-45deg) translateY(-1px); }
.gcx-fchip .k { margin-left: auto; font-size: 11px; color: var(--gcx-faint); font-variant-numeric: tabular-nums; }
.gcx-histo { display: flex; flex-direction: column; gap: 3px; }
.gcx-hrow { display: flex; align-items: center; gap: 8px; padding: 3px 7px; border-radius: 6px; font-size: 11.5px; color: var(--gcx-ink-soft); width: 100%; text-align: left; }
.gcx-hrow:hover { background: var(--gcx-card-2); color: var(--gcx-ink); }
.gcx-hrow[aria-pressed="true"] { color: var(--gcx-forest); background: #EAF1E8; }
.gcx-hrow .lbl { width: 62px; flex: none; font-size: 11px; font-variant-numeric: tabular-nums; }
.gcx-hrow .bar { flex: 1; height: 8px; background: #EBE2CB; border-radius: 3px; overflow: hidden; }
.gcx-hrow .bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--gcx-moss), var(--gcx-forest)); border-radius: 3px; transition: width .5s; }
.gcx-hrow[aria-pressed="true"] .bar i { background: linear-gradient(90deg, #3F7D5E, var(--gcx-forest)); }
.gcx-hrow .n { font-size: 10.5px; color: var(--gcx-faint); width: 20px; text-align: right; font-variant-numeric: tabular-nums; }

/* ---------- grid ---------- */
.gcx-gridzone { flex: 1; min-width: 0; padding: 16px 26px 60px 8px; }
.gcx-lensnote { display: none; margin: 0 0 14px; padding: 10px 15px; border: 1px solid var(--gcx-gold-line); border-radius: 9px; background: var(--gcx-gold-wash); color: #6E5406; font-size: 12.5px; align-items: center; gap: 10px; }
.gcx-lensnote.show { display: flex; }
.gcx-gridwrap { overflow: auto; border: 1px solid var(--gcx-rule); border-radius: 12px; background: var(--gcx-card); max-height: calc(100vh - 180px); box-shadow: var(--gcx-shadow); }
.gcx-table { border-collapse: separate; border-spacing: 0; table-layout: fixed; }
.gcx-table thead .grp th { position: sticky; top: 0; z-index: 30; background: #F2EBD7; font-family: var(--gcx-mono); font-size: 10px; letter-spacing: .18em; padding: 7px 13px; text-align: left; border-bottom: 1px solid var(--gcx-rule); font-weight: 600; }
.gcx-gsticky { position: sticky; left: 13px; display: inline-block; }
.gcx-table thead .grp .g-free { color: var(--gcx-moss); }
.gcx-table thead .grp .g-win { color: var(--gcx-gold-deep); border-left: 2px solid var(--gcx-gold); background: var(--gcx-gold-wash); }
.gcx-table thead .cols th { position: sticky; top: 30px; z-index: 30; background: #FAF4E4; font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #8A9384; padding: 7px 11px; text-align: left; border-bottom: 1px solid var(--gcx-rule); white-space: nowrap; user-select: none; }
.gcx-table thead .cols th.sortable { cursor: pointer; }
.gcx-table thead .cols th.sortable:hover { color: var(--gcx-ink); }
.gcx-table thead .cols th .arr { font-size: 9px; opacity: 0; margin-left: 3px; }
.gcx-table thead .cols th.sorted .arr { opacity: 1; color: var(--gcx-forest); }
.gcx-table thead th.c-prog { position: sticky; left: 0; z-index: 35 !important; }
.gcx-table thead .cols th.winh { color: var(--gcx-gold-deep); }
.gcx-table thead .cols th.seam, .gcx-table tbody td.seam { border-left: 2px solid var(--gcx-gold); }
.gcx-table tbody td { padding: 8px 11px; border-bottom: 1px solid var(--gcx-rule-soft); font-size: 12px; vertical-align: middle; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #425147; font-variant-numeric: tabular-nums; height: 56px; }
.gcx-table tbody td > span:not(.gcx-meter):not(.gcx-pill):not(.gcx-sec) { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gcx-table tbody td.c-prog { overflow: visible; }
.gcx-table tbody tr { transition: background .1s; cursor: pointer; }
.gcx-table tbody tr:hover td { background: #FAF4E2; }
.gcx-table tbody td.c-prog { position: sticky; left: 0; background: var(--gcx-card); z-index: 10; box-shadow: 8px 0 14px -10px rgba(96, 78, 34, .18); }
.gcx-table tbody tr:hover td.c-prog { background: #F8F1DE; }
.gcx-pname { font-weight: 700; font-size: 12.5px; color: var(--gcx-ink); line-height: 1.25; white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; padding-right: 26px; }
.gcx-porg { font-size: 10.5px; color: var(--gcx-faint); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-right: 6px; }
.gcx-pill { display: inline-block; font-size: 10.5px; font-weight: 700; letter-spacing: .04em; border-radius: 4px; padding: 2px 7px; }
.gcx-pill.open { color: #1B7347; background: #E2F1E6; }
.gcx-pill.between { color: #6E7E6C; background: #EFEAD8; }
.gcx-pill.paused { color: #AC5A2F; background: #F7E7D9; }
.gcx-pill.closed { color: #9AA391; background: #EFEAD8; text-decoration: line-through; }
.gcx-when { display: block; font-size: 10.5px; color: var(--gcx-faint); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gcx-amt { font-weight: 700; color: var(--gcx-ink); font-size: 12px; line-height: 1.3; display: block; }
.gcx-type { font-size: 11.5px; color: #5F705F; text-transform: capitalize; }
.gcx-meter { display: inline-flex; gap: 2px; vertical-align: middle; }
.gcx-meter i { width: 7px; height: 11px; border-radius: 2px; background: #E7DFC8; }
.gcx-meter i.f { background: var(--gcx-leaf); }
.gcx-mnum { font-size: 10.5px; color: var(--gcx-faint); margin-left: 6px; font-variant-numeric: tabular-nums; }

/* locked cells — the survey-fog signature (empty placeholders, never masked text) */
.gcx-table td.lockcell { min-width: 108px; }
.gcx-sec { position: relative; display: flex; flex-direction: column; gap: 4px; width: 86px; }
.gcx-sec i { display: block; height: 10px; border-radius: 3px; border: 1px dashed #D6C79B; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath d='M0 8 Q6 3 12 7 T24 6 T36 8' fill='none' stroke='%23D8CBA4' stroke-width='1'/%3E%3Cpath d='M0 4 Q8 9 16 4 T32 5' fill='none' stroke='%23E2D7B6' stroke-width='1'/%3E%3C/svg%3E") #F2EAD3; transition: all .15s; }
.gcx-sec i:nth-child(2) { width: 72%; }
.gcx-table tr:hover .gcx-sec i { border-color: var(--gcx-gold); border-style: solid; background-color: #F0E5C3; }
.gcx-absent { color: #BBB29A; font-size: 11.5px; }
.gcx-table tr.sample td { background: #FCF6E2; border-bottom: 1px solid var(--gcx-gold-line); }
.gcx-table tr.sample td.c-prog { background: #FAF3DE; border-left: 3px solid var(--gcx-gold); }
.gcx-table tr.sample:hover td { background: #FAF2D9; }
.gcx-sampletag { display: inline-block; font-family: var(--gcx-mono); font-size: 9px; letter-spacing: .14em; color: #2E2205; background: #C79E3D; border-radius: 3px; padding: 2px 6px; margin-bottom: 5px; font-weight: 700; }
.gcx-openval { color: #6B5410; font-weight: 500; display: block; font-size: 12px; line-height: 1.35; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---------- tooltip ---------- */
.gcx-tip { position: fixed; z-index: 100; background: var(--gcx-card); border: 1px solid var(--gcx-gold-line); border-radius: 8px; padding: 9px 12px; font-size: 12px; color: #5A5030; max-width: 230px; pointer-events: none; opacity: 0; transition: opacity .12s; box-shadow: var(--gcx-shadow); line-height: 1.4; }
.gcx-tip.show { opacity: 1; }
.gcx-tip .t-h { font-family: var(--gcx-mono); font-size: 10px; letter-spacing: .14em; color: var(--gcx-gold-deep); margin-bottom: 4px; }

/* ---------- drawer ---------- */
.gcx-scrim { position: fixed; inset: 0; background: rgba(63, 54, 28, .32); z-index: 60; opacity: 0; pointer-events: none; transition: opacity .2s; }
.gcx-scrim.show { opacity: 1; pointer-events: auto; }
.gcx-drawer { position: fixed; top: 0; right: 0; bottom: 0; width: min(480px, 94vw); background: #FDFAF0; border-left: 1px solid var(--gcx-rule); z-index: 70; transform: translateX(102%); transition: transform .28s cubic-bezier(.32, .72, .28, 1); overflow-y: auto; box-shadow: -30px 0 70px rgba(96, 78, 34, .25); font-family: var(--gcx-sans); color: var(--gcx-ink); }
.gcx-drawer.show { transform: none; }
@media (prefers-reduced-motion: reduce) { .gcx-drawer { transition: none; } }
.gcx-dhead { padding: 24px 26px 17px; border-bottom: 1px solid var(--gcx-rule); position: relative; }
.gcx-dclose { position: absolute; top: 16px; right: 16px; width: 30px; height: 30px; border-radius: 8px; color: var(--gcx-moss); font-size: 17px; line-height: 1; border: 1px solid var(--gcx-rule); background: var(--gcx-card); }
.gcx-dclose:hover { color: var(--gcx-ink); border-color: var(--gcx-moss); }
.gcx-dhead h2 { font-family: var(--gcx-serif); font-weight: 600; font-size: 22px; line-height: 1.15; max-width: 380px; color: var(--gcx-ink); margin: 0; }
.gcx-dorg { color: var(--gcx-moss); font-size: 12.5px; margin-top: 6px; }
.gcx-dchips { display: flex; gap: 7px; flex-wrap: wrap; margin-top: 12px; align-items: center; }
.gcx-dchip { font-size: 11px; color: var(--gcx-moss); border: 1px solid var(--gcx-rule); border-radius: 4px; padding: 2px 8px; background: var(--gcx-card); text-transform: capitalize; }
.gcx-dfacts { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--gcx-rule); border-bottom: 1px solid var(--gcx-rule); }
.gcx-dfact { background: #FBF7E9; padding: 12px 26px; }
.gcx-dfact .k { font-size: 9.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--gcx-faint); font-weight: 700; }
.gcx-dfact .v { font-size: 13.5px; color: var(--gcx-ink); margin-top: 3px; font-weight: 600; font-variant-numeric: tabular-nums; }
.gcx-dsec { padding: 17px 26px 6px; }
.gcx-dsec .h { font-family: var(--gcx-mono); font-size: 10.5px; letter-spacing: .18em; color: var(--gcx-gold-deep); display: flex; align-items: center; gap: 10px; margin-bottom: 6px; font-weight: 600; }
.gcx-dsec .h::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, var(--gcx-gold-line), transparent); }
.gcx-dsec .h.free-h { color: var(--gcx-moss); }
.gcx-dsec .h.free-h::after { background: linear-gradient(90deg, var(--gcx-rule), transparent); }
.gcx-wfield { padding: 10px 0; border-bottom: 1px solid var(--gcx-rule-soft); }
.gcx-wfield:last-child { border-bottom: 0; }
.gcx-wfield .wk { font-weight: 700; font-size: 13px; color: var(--gcx-ink); display: flex; align-items: center; gap: 8px; }
.gcx-wfield .wk .lockg { color: var(--gcx-gold-deep); font-size: 11px; }
.gcx-wfield .wd { font-size: 12px; color: var(--gcx-ink-soft); margin-top: 3px; line-height: 1.45; }
.gcx-wfield .gcx-sec { margin-top: 8px; width: 150px; }
.gcx-wfield .openv { font-size: 12.5px; color: #574C28; margin-top: 6px; line-height: 1.5; white-space: normal; }
.gcx-wfield ul.openv { padding-left: 17px; margin: 6px 0 0; }
.gcx-wfield ul.openv li { margin-bottom: 3px; }
.gcx-dcta { padding: 18px 26px 28px; }
.gcx-btn { display: block; width: 100%; text-align: center; border-radius: 10px; padding: 13px; font-weight: 700; font-size: 14px; transition: all .15s; text-decoration: none; }
.gcx-btn.primary { background: var(--gcx-forest); color: #F7F3E6; box-shadow: 0 2px 10px rgba(31, 92, 65, .28); }
.gcx-btn.primary:hover { background: #1A4F38; }
.gcx-btn.ghost { border: 1px solid var(--gcx-rule); color: var(--gcx-ink-soft); margin-top: 9px; font-weight: 600; font-size: 13px; background: var(--gcx-card); }
.gcx-btn.ghost:hover { color: var(--gcx-ink); border-color: var(--gcx-moss); }
.gcx-dcta .fine { text-align: center; font-size: 11px; color: var(--gcx-faint); margin-top: 11px; }

/* ---------- unlock bar ---------- */
.gcx-unlock { position: fixed; left: 50%; bottom: 18px; transform: translate(-50%, 130px); z-index: 50; display: flex; align-items: center; gap: 18px; background: var(--gcx-card); border: 1px solid var(--gcx-gold-line); border-left: 4px solid var(--gcx-gold); border-radius: 12px; padding: 12px 16px 12px 18px; box-shadow: var(--gcx-shadow); transition: transform .35s cubic-bezier(.32, .72, .28, 1); max-width: calc(100vw - 32px); }
.gcx-unlock.show { transform: translate(-50%, 0); }
.gcx-unlock.pulse { animation: gcx-pulse .5s; }
@keyframes gcx-pulse { 0%, 100% { box-shadow: var(--gcx-shadow); } 50% { box-shadow: 0 0 0 5px rgba(195, 154, 59, .28), var(--gcx-shadow); } }
.gcx-unlock .msg { font-size: 13px; color: var(--gcx-ink); }
.gcx-unlock .msg b { color: var(--gcx-gold-deep); }
.gcx-unlock .msg .sub { display: block; font-size: 11px; color: var(--gcx-faint); margin-top: 2px; }
.gcx-unlock .b1 { background: var(--gcx-forest); color: #F7F3E6; border-radius: 9px; padding: 10px 18px; font-weight: 700; font-size: 13.5px; white-space: nowrap; }
.gcx-unlock .b1:hover { background: #1A4F38; }
.gcx-unlock .b1.joined { background: #EAF1E8; color: var(--gcx-forest); cursor: default; }

/* ---------- responsive ---------- */
@media (prefers-reduced-motion: no-preference) {
  .gcx-table tbody tr { animation: gcx-rise .35s both; }
  @keyframes gcx-rise { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
}
@media (max-width: 900px) {
  .gcx-rail { display: none; }
  .gcx-gridzone { padding-left: 16px; }
  .gcx-stats { margin: 0; }
  .gcx-stat { padding: 9px 14px; }
  .gcx-hero { gap: 14px; padding: 14px 16px; }
  .gcx-cmd { padding: 10px 16px; top: 61px; }
  .gcx-count { display: none; }
  .gcx-unlock { left: 12px; right: 12px; transform: translateY(130px); max-width: none; flex-wrap: wrap; gap: 10px; padding: 12px 16px; }
  .gcx-unlock.show { transform: translateY(0); }
  .gcx-unlock .msg { flex: 1 1 100%; font-size: 12.5px; }
  .gcx-unlock .msg .sub { display: none; }
  .gcx-gridwrap { max-height: none; }
}


/* ============ v2: resize handles, picker, shortlist, filter groups ============ */
.gcx-table thead .cols th { position: sticky; overflow: hidden; text-overflow: ellipsis; }
.gcx-rz { position: absolute; top: 0; right: -3px; width: 7px; height: 100%; cursor: col-resize; z-index: 40; }
.gcx-rz::after { content: ""; position: absolute; top: 25%; bottom: 25%; left: 3px; width: 1px; background: transparent; transition: background .12s; }
.gcx-rz:hover::after { background: var(--gcx-forest); }
body.gcx-resizing { cursor: col-resize; user-select: none; }
body.gcx-resizing .gcx-table tbody tr { cursor: col-resize; }

/* shortlist star */
.gcx-star { position: absolute; top: 6px; right: 6px; width: 22px; height: 22px; border-radius: 5px; color: #C9C1A9; font-size: 14px; line-height: 1; z-index: 12; transition: all .12s; }
.gcx-star:hover { color: var(--gcx-gold); background: var(--gcx-gold-wash); }
.gcx-star.on { color: var(--gcx-gold); }
.gcx-table tbody td.c-prog { position: sticky; }
.gcx-table tbody tr.starred td.c-prog { box-shadow: inset 3px 0 0 var(--gcx-gold), 8px 0 14px -10px rgba(96, 78, 34, .18); }
.gcx-savedchip .star { color: var(--gcx-gold); font-size: 12px; }
.gcx-savedchip b { font-variant-numeric: tabular-nums; }
.gcx-savedchip.has { border-color: var(--gcx-gold-line); background: var(--gcx-gold-wash); color: var(--gcx-gold-deep); }
.gcx-savedchip[aria-pressed="true"] { background: var(--gcx-forest); border-color: var(--gcx-forest); color: #FBF7EA; }
.gcx-savedchip[aria-pressed="true"] .star { color: #E8C979; }

/* column picker */
.gcx-pkwrap { position: relative; }
.gcx-picker { position: absolute; top: calc(100% + 7px); right: 0; z-index: 60; width: 240px; max-height: 66vh; overflow-y: auto; background: var(--gcx-card); border: 1px solid var(--gcx-rule); border-radius: 10px; box-shadow: var(--gcx-shadow); padding: 8px; display: none; }
.gcx-picker.show { display: block; }
.gcx-pkgrp { font-family: var(--gcx-mono); font-size: 9.5px; letter-spacing: .18em; color: var(--gcx-faint); padding: 9px 8px 5px; font-weight: 600; }
.gcx-pkrow { display: flex; align-items: center; gap: 9px; padding: 6px 8px; border-radius: 6px; font-size: 12.5px; color: var(--gcx-ink-soft); cursor: pointer; }
.gcx-pkrow:hover { background: var(--gcx-card-2); color: var(--gcx-ink); }
.gcx-pkrow input { accent-color: var(--gcx-forest); width: 13px; height: 13px; }
.gcx-pkmark { margin-left: auto; color: var(--gcx-gold); font-size: 10px; }
.gcx-pkfoot { border-top: 1px solid var(--gcx-rule-soft); margin-top: 6px; padding: 8px; }
.gcx-linkbtn { font-size: 11.5px; color: var(--gcx-faint); text-decoration: underline; text-underline-offset: 3px; }
.gcx-linkbtn:hover { color: var(--gcx-ink); }

/* collapsible rail groups */
.gcx-grptoggle { display: flex; align-items: center; justify-content: space-between; width: 100%; font-family: var(--gcx-mono); font-size: 9.5px; letter-spacing: .18em; color: var(--gcx-faint); margin: 18px 0 6px; font-weight: 600; }
.gcx-grptoggle:hover { color: var(--gcx-ink); }
.gcx-grptoggle .chev { transition: transform .15s; font-size: 13px; }
.gcx-grptoggle[aria-expanded="true"] .chev { transform: rotate(90deg); }
.gcx-grpbox { display: none; }
.gcx-grpbox.open { display: block; }
.gcx-proh { color: var(--gcx-gold-deep) !important; margin-top: 20px !important; }
.gcx-fchip.pro { color: var(--gcx-gold-deep); cursor: pointer; }
.gcx-fchip.pro .box.lock { border: 0; background: none; color: var(--gcx-gold); font-size: 9px; display: flex; align-items: center; justify-content: center; }
.gcx-fchip.pro:hover { background: var(--gcx-gold-wash); }
.gcx-pronote { font-size: 10.5px; color: var(--gcx-faint); padding: 4px 7px 0; line-height: 1.4; }

/* empty state */
.gcx-empty td { text-align: center; padding: 34px 18px !important; color: var(--gcx-faint); height: auto !important; }

/* tooltip may carry a heading span inline */
.gcx-tip .t-h { display: block; }

@media (max-width: 900px) {
  .gcx-picker { right: auto; left: 0; }
}


/* ============ v3: chips, density, urgency, keyboard, drawer nav, mobile sheet ============ */
.gcx-chips { display: none; align-items: center; flex-wrap: wrap; gap: 7px; margin: 0 0 12px; }
.gcx-chips.show { display: flex; }
.gcx-chips .lbl { font-family: var(--gcx-mono); font-size: 9.5px; letter-spacing: .18em; color: var(--gcx-faint); margin-right: 2px; }
.gcx-chip { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 600; color: var(--gcx-forest); background: #EAF1E8; border: 1px solid #CFE0D2; border-radius: 20px; padding: 4px 11px; transition: all .12s; }
.gcx-chip:hover { background: #DEEADB; }
.gcx-chip span { color: var(--gcx-moss); font-size: 13px; line-height: 1; }
.gcx-chip:hover span { color: var(--gcx-ink); }

/* deadline urgency */
.gcx-urg { display: inline-block; margin-left: 6px; font-size: 10px; font-weight: 700; letter-spacing: .02em; color: var(--gcx-gold-deep); background: var(--gcx-gold-wash); border: 1px solid var(--gcx-gold-line); border-radius: 4px; padding: 1px 6px; vertical-align: 1px; }
.gcx-urg.hot { color: #A6461C; background: #F9E7DC; border-color: #EDC3AB; }

/* compact density */
body.gcx-compact .gcx-table tbody td { height: 42px; padding: 5px 11px; }
body.gcx-compact .gcx-pname { -webkit-line-clamp: 1; font-size: 12px; }
body.gcx-compact .gcx-porg, body.gcx-compact .gcx-when { display: none; }
body.gcx-compact .gcx-star { top: 3px; }
body.gcx-compact .gcx-sampletag { display: none; }

/* keyboard focus on rows */
.gcx-table tbody tr:focus-visible { outline: none; }
.gcx-table tbody tr:focus-visible td { background: #EFF5EC; box-shadow: inset 0 -2px 0 var(--gcx-forest); }
.gcx-table tbody tr:focus-visible td.c-prog { box-shadow: inset 3px 0 0 var(--gcx-forest), inset 0 -2px 0 var(--gcx-forest); }

/* drawer prev/next */
.gcx-dnav { position: absolute; top: 16px; right: 54px; display: flex; align-items: center; gap: 4px; }
.gcx-dnavbtn { width: 26px; height: 26px; border-radius: 6px; border: 1px solid var(--gcx-rule); background: var(--gcx-card); color: var(--gcx-moss); font-size: 15px; line-height: 1; }
.gcx-dnavbtn:hover:not([disabled]) { color: var(--gcx-ink); border-color: var(--gcx-moss); }
.gcx-dnavbtn[disabled] { opacity: .35; cursor: default; }
.gcx-dnavix { font-family: var(--gcx-mono); font-size: 10px; color: var(--gcx-faint); padding: 0 3px; white-space: nowrap; }

/* mobile filter sheet */
.gcx-filtbtn { display: none; }
.gcx-sheetscrim { position: fixed; inset: 0; background: rgba(63, 54, 28, .32); z-index: 55; opacity: 0; pointer-events: none; transition: opacity .2s; }
.gcx-sheetscrim.show { opacity: 1; pointer-events: auto; }

@media (max-width: 900px) {
  .gcx-filtbtn { display: flex; }
  .gcx-densitybtn { display: none; }
  .gcx-rail { display: block; position: fixed; left: 0; right: 0; bottom: 0; top: auto; width: auto; max-height: 76vh; z-index: 58; background: var(--gcx-card); border-top: 1px solid var(--gcx-rule); border-radius: 16px 16px 0 0; box-shadow: 0 -18px 50px rgba(96, 78, 34, .28); transform: translateY(102%); transition: transform .26s cubic-bezier(.32, .72, .28, 1); padding: 16px 20px 28px; overflow-y: auto; }
  .gcx-rail.open { transform: none; }
  .gcx-rail::before { content: ""; display: block; width: 38px; height: 4px; border-radius: 3px; background: var(--gcx-rule); margin: -6px auto 12px; }
  .gcx-chips { margin-bottom: 10px; }
}
@media (prefers-reduced-motion: reduce) { .gcx-rail { transition: none; } }


/* ============ entitlement states ============ */
.gcx-owned { display: inline-block; font-size: 11px; font-weight: 700; color: var(--gcx-gold-deep); background: var(--gcx-gold-wash); border: 1px solid var(--gcx-gold-line); border-radius: 4px; padding: 2px 8px; }
.gcx-ownedbar { display: flex; align-items: center; justify-content: center; gap: 8px; font-weight: 700; font-size: 13.5px; color: var(--gcx-gold-deep); background: var(--gcx-gold-wash); border: 1px solid var(--gcx-gold-line); border-radius: 10px; padding: 12px; margin-bottom: 9px; }
.gcx-gpnote { font-size: 12.5px; color: var(--gcx-ink-soft); background: #EAF1E8; border: 1px solid #CFE0D2; border-radius: 9px; padding: 10px 13px; line-height: 1.5; }
.gcx-gpnote a { color: var(--gcx-forest); font-weight: 600; }
