#gced-wrap {
  --gc-bg: #0b1612; --gc-bg1: #0f1e17; --gc-bg2: #13241b;
  --gc-bdr: #1c3828; --gc-txt: #c8e8d8; --gc-dim: #4a7a5a;
  --gc-strong: #e8f4ee; --gc-desc: #88aa99; --gc-amber: #cc9944;
  --gc-ret: #00cc6a; --gc-pro: #5588ff; --gc-mod: #00ccff; --gc-gam: #ff8833;
  --gc-shadow: rgba(0,0,0,.6);
  --gc-overlay: rgba(0,0,0,.85);
  font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
  font-size: 16px; color: var(--gc-txt); background: var(--gc-bg);
  border-radius: 8px; overflow: hidden; border: 1px solid var(--gc-bdr);
  box-sizing: border-box; width: 100%; position: relative;
}
#gced-wrap .gced-rebuild {
  position: absolute; top: 0.5rem; right: 0.75rem;
  font-family: 'Courier New', monospace; font-size: 11px;
  color: var(--gc-dim); letter-spacing: 0.12em;
  background: var(--gc-bg2); border: 1px solid var(--gc-bdr);
  padding: 3px 7px; border-radius: 3px; z-index: 10;
  opacity: 0.75; pointer-events: none; line-height: 1;
}

#gced-wrap[data-theme="light"] {
  --gc-bg: #ffffff; --gc-bg1: #f4f6f5; --gc-bg2: #e8ece9;
  --gc-bdr: #cdd6d0; --gc-txt: #1f2937; --gc-dim: #6b7280;
  --gc-strong: #111827; --gc-desc: #4b5563; --gc-amber: #b45309;
  --gc-ret: #15803d; --gc-pro: #1d4ed8; --gc-mod: #0e7490; --gc-gam: #c2410c;
  --gc-shadow: rgba(0,0,0,.12);
  --gc-overlay: rgba(20,30,25,.45);
}
#gced-wrap[data-theme="light"] .gced-catbtn.active,
#gced-wrap[data-theme="light"] .gced-regbtn.active,
#gced-wrap[data-theme="light"] .gced-catbtn:hover,
#gced-wrap[data-theme="light"] .gced-regbtn:hover {
  background: rgba(21,128,61,.08); border-color: #15803d; color: #15803d;
}
#gced-wrap[data-theme="light"] .gced-btn-ret.active { background:rgba(21,128,61,.1); border-color:#15803d; color:#15803d; }
#gced-wrap[data-theme="light"] .gced-btn-pro.active { background:rgba(29,78,216,.08); border-color:#1d4ed8; color:#1d4ed8; }
#gced-wrap[data-theme="light"] .gced-btn-mod.active { background:rgba(14,116,144,.08); border-color:#0e7490; color:#0e7490; }
#gced-wrap[data-theme="light"] .gced-btn-gam.active { background:rgba(194,65,12,.08); border-color:#c2410c; color:#c2410c; }
#gced-wrap[data-theme="light"] .gced-search:focus { border-color: #15803d; box-shadow: 0 0 0 2px rgba(21,128,61,.15); }
#gced-wrap[data-theme="light"] .gced-card:hover::after { color: #15803d; }
#gced-wrap[data-theme="light"] .gced-section-title { color: #15803d; }
#gced-wrap[data-theme="light"] .gced-back-btn:hover { background: rgba(21,128,61,.08); border-color: #15803d; color: #15803d; }
#gced-wrap[data-theme="light"] .gced-close-btn { color: #6b7280; }
#gced-wrap[data-theme="light"] .gced-close-btn:hover { color: #15803d; border-color: #15803d; }
#gced-wrap[data-theme="light"] .gced-theme-btn { color: #1f2937; }
#gced-wrap[data-theme="light"] .gced-theme-btn:hover { border-color: #15803d; color: #15803d; }
#gced-wrap[data-theme="light"] .gced-modal { box-shadow: 0 20px 60px rgba(0,0,0,.15); }
#gced-wrap[data-theme="light"] .gced-modal-overlay { backdrop-filter: blur(2px); }
#gced-wrap[data-theme="light"] table tbody tr:hover { background: #e8ece9; }
#gced-wrap[data-theme="light"] td a { color: #15803d; }

#gced-wrap *, #gced-wrap *::before, #gced-wrap *::after { box-sizing: border-box; margin: 0; padding: 0; }
#gced-wrap .gced-header-bar {
  background: var(--gc-bg1); border-bottom: 2px solid var(--gc-ret);
  padding: 1.25rem 1.5rem; display: flex; flex-wrap: wrap; align-items: center;
  gap: 0.75rem; justify-content: space-between;
}
#gced-wrap .gced-title { font-size: clamp(1rem, 2.5vw, 1.4rem); font-weight: 700; color: var(--gc-ret); letter-spacing: 0.03em; }
#gced-wrap .gced-subtitle { font-size: 13px; color: var(--gc-dim); letter-spacing: 0.08em; text-transform: uppercase; margin-top: 0.2rem; }
#gced-wrap .gced-stats { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center; }
#gced-wrap .gced-stat { display: flex; flex-direction: column; align-items: center; background: var(--gc-bg2); border: 1px solid var(--gc-bdr); border-radius: 5px; padding: 0.3rem 0.65rem; min-width: 50px; }
#gced-wrap .gced-sn { font-size: 1.325rem; font-weight: 700; font-family: 'Courier New', monospace; color: var(--gc-ret); line-height: 1; }
#gced-wrap .gced-stat.gced-pro .gced-sn { color: var(--gc-pro); }
#gced-wrap .gced-stat.gced-mod .gced-sn { color: var(--gc-mod); }
#gced-wrap .gced-stat.gced-gam .gced-sn { color: var(--gc-gam); }
#gced-wrap .gced-sl { font-size: 11px; text-transform: uppercase; color: var(--gc-dim); letter-spacing: 0.08em; margin-top: 2px; }
#gced-wrap .gced-theme-btn {
  background: var(--gc-bg2); border: 1px solid var(--gc-bdr); border-radius: 5px;
  color: var(--gc-txt); padding: 0.4rem 0.7rem; cursor: pointer; font-family: inherit;
  font-size: 14px; transition: all 0.2s; line-height: 1; display: flex; align-items: center; gap: 4px;
}
#gced-wrap .gced-theme-btn:hover { border-color: var(--gc-ret); color: var(--gc-ret); }
#gced-wrap .gced-filters { background: var(--gc-bg1); border-bottom: 1px solid var(--gc-bdr); padding: 0.75rem 1.5rem; }
#gced-wrap .gced-filter-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; padding: 0.3rem 0; }
#gced-wrap .gced-filter-row:not(:last-child) { border-bottom: 1px solid var(--gc-bdr); padding-bottom: 0.5rem; margin-bottom: 0.2rem; }
#gced-wrap .gced-filter-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--gc-dim); min-width: 60px; font-family: 'Courier New', monospace; }
#gced-wrap .gced-filter-btns { display: flex; gap: 0.3rem; flex-wrap: wrap; flex: 1; }
#gced-wrap .gced-catbtn, #gced-wrap .gced-regbtn {
  background: var(--gc-bg2); border: 1px solid var(--gc-bdr); border-radius: 3px;
  color: var(--gc-dim); font-size: 12px; padding: 0.28rem 0.6rem; cursor: pointer;
  letter-spacing: 0.04em; transition: all 0.15s; font-family: inherit; white-space: nowrap;
}
#gced-wrap[data-theme="light"] .gced-catbtn, #gced-wrap[data-theme="light"] .gced-regbtn { color: #496153; }
#gced-wrap .gced-catbtn.active, #gced-wrap .gced-regbtn.active,
#gced-wrap .gced-catbtn:hover, #gced-wrap .gced-regbtn:hover {
  background: rgba(0,204,106,.12); border-color: var(--gc-ret); color: var(--gc-ret);
}
#gced-wrap[data-theme="light"] .gced-catbtn.active, #gced-wrap[data-theme="light"] .gced-regbtn.active,
#gced-wrap[data-theme="light"] .gced-catbtn:hover, #gced-wrap[data-theme="light"] .gced-regbtn:hover {
  background: rgba(0,127,64,.1);
}
#gced-wrap .gced-btn-ret.active { background:rgba(0,204,106,.15); border-color:var(--gc-ret); color:var(--gc-ret); }
#gced-wrap .gced-btn-pro.active { background:rgba(85,136,255,.15); border-color:var(--gc-pro); color:var(--gc-pro); }
#gced-wrap .gced-btn-mod.active { background:rgba(0,204,255,.15); border-color:var(--gc-mod); color:var(--gc-mod); }
#gced-wrap .gced-btn-gam.active { background:rgba(255,136,51,.15); border-color:var(--gc-gam); color:var(--gc-gam); }
#gced-wrap .gced-search {
  flex: 1; min-width: 180px; max-width: 320px; background: var(--gc-bg2);
  border: 1px solid var(--gc-bdr); border-radius: 3px; color: var(--gc-txt);
  font-size: 13px; padding: 0.32rem 0.7rem; font-family: inherit; outline: none; transition: border-color 0.2s;
}
#gced-wrap .gced-search:focus { border-color: var(--gc-ret); }
#gced-wrap .gced-info-row { font-size: 12px; color: var(--gc-dim); font-family: 'Courier New', monospace; padding: 0.25rem 0 0; letter-spacing: 0.05em; }
#gced-wrap .gced-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1px; background: var(--gc-bdr); border-top: 1px solid var(--gc-bdr);
}
#gced-wrap .gced-card {
  background: var(--gc-bg); border-top: 3px solid #00cc6a;
  padding: 1rem; display: flex; flex-direction: column; gap: 0.5rem;
  transition: background 0.12s; cursor: pointer; position: relative;
}
#gced-wrap .gced-card::after {
  content: '› more'; position: absolute; top: 0.55rem; right: 0.6rem;
  font-size: 11px; color: var(--gc-ret); font-family: 'Courier New', monospace;
  letter-spacing: 0.08em; opacity: 0; transition: opacity 0.15s;
  background: var(--gc-bg); padding: 2px 5px; border: 1px solid var(--gc-ret);
  border-radius: 3px; z-index: 3; pointer-events: none; line-height: 1;
}
#gced-wrap .gced-card:hover { background: var(--gc-bg1); }
#gced-wrap .gced-card:hover::after { opacity: 1; color: var(--gc-ret); }
#gced-wrap .gced-card-top { display: flex; gap: 0.4rem; flex-wrap: wrap; align-items: center; }
#gced-wrap .gced-catbadge { display: inline-block; font-size: 11px; padding: 2px 6px; border-radius: 3px; border: 1px solid; letter-spacing: 0.04em; font-weight: 600; font-family: 'Courier New', monospace; white-space: nowrap; }
#gced-wrap .gced-typebadge { font-size: 11px; color: var(--gc-dim); font-family: 'Courier New', monospace; letter-spacing: 0.04em; background: var(--gc-bg2); border: 1px solid var(--gc-bdr); border-radius: 2px; padding: 1px 5px; white-space: nowrap; }
#gced-wrap .gced-name { font-size: 15px; font-weight: 700; color: var(--gc-strong); line-height: 1.3; }
#gced-wrap .gced-region { font-size: 13px; color: var(--gc-dim); font-family: 'Courier New', monospace; }
#gced-wrap .gced-dates { display: flex; flex-wrap: wrap; gap: 0.5rem; font-size: 12px; font-family: 'Courier New', monospace; }
#gced-wrap .gced-lh { color: var(--gc-dim); }
#gced-wrap .gced-ne { color: var(--gc-amber); }
#gced-wrap .gced-desc { font-size: 13px; color: var(--gc-desc); line-height: 1.55; flex: 1; }
#gced-wrap .gced-footer { margin-top: auto; padding-top: 0.5rem; border-top: 1px solid var(--gc-bdr); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 0.4rem; }
#gced-wrap .gced-org { font-size: 11px; color: var(--gc-dim); font-style: italic; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#gced-wrap .gced-links { display: flex; gap: 0.5rem; align-items: center; flex-shrink: 0; }
#gced-wrap .gced-link { font-size: 12px; color: var(--gc-ret); text-decoration: none; font-family: 'Courier New', monospace; white-space: nowrap; border-bottom: 1px solid transparent; }
#gced-wrap .gced-link:hover { border-bottom-color: var(--gc-ret); }
#gced-wrap .gced-status { font-size: 11px; font-family: 'Courier New', monospace; letter-spacing: 0.04em; white-space: nowrap; }
#gced-wrap .gced-foot { padding: 0.75rem 1.5rem; font-size: 11px; color: var(--gc-dim); font-family: 'Courier New', monospace; border-top: 1px solid var(--gc-bdr); background: var(--gc-bg1); letter-spacing: 0.04em; line-height: 1.6; }

/* ─── MODAL DETAIL VIEW ─── */
#gced-wrap .gced-modal-overlay {
  position: fixed; inset: 0; background: var(--gc-overlay); backdrop-filter: blur(4px);
  display: none; align-items: flex-start; justify-content: center; z-index: 999999;
  overflow-y: auto; padding: 2rem 1rem;
}
#gced-wrap .gced-modal-overlay.gced-open { display: flex; }
#gced-wrap .gced-modal {
  background: var(--gc-bg); border: 1px solid var(--gc-bdr); border-radius: 8px;
  max-width: 800px; width: 100%; box-shadow: 0 20px 60px var(--gc-shadow);
  border-top: 4px solid var(--gc-ret); margin-bottom: 2rem;
}
#gced-wrap .gced-modal-head {
  padding: 1rem 1.5rem; border-bottom: 1px solid var(--gc-bdr);
  display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 0.5rem;
}
#gced-wrap .gced-back-btn {
  background: var(--gc-bg2); border: 1px solid var(--gc-bdr); border-radius: 4px;
  color: var(--gc-txt); padding: 0.4rem 0.8rem; cursor: pointer;
  font-family: inherit; font-size: 13px; letter-spacing: 0.04em; transition: all 0.15s;
}
#gced-wrap .gced-back-btn:hover { background: rgba(0,204,106,.12); border-color: var(--gc-ret); color: var(--gc-ret); }
#gced-wrap .gced-close-btn {
  background: transparent; border: 1px solid var(--gc-bdr); border-radius: 50%;
  width: 28px; height: 28px; cursor: pointer; color: var(--gc-dim);
  font-size: 16px; line-height: 1; display: flex; align-items: center; justify-content: center;
}
#gced-wrap .gced-close-btn:hover { color: var(--gc-ret); border-color: var(--gc-ret); }
#gced-wrap .gced-modal-body { padding: 1.5rem; }
#gced-wrap .gced-modal-title { font-size: 1.625rem; font-weight: 700; color: var(--gc-strong); margin-bottom: 0.3rem; line-height: 1.2; }
#gced-wrap .gced-modal-region { font-size: 14px; color: var(--gc-dim); font-family: 'Courier New', monospace; margin-bottom: 0.75rem; }
#gced-wrap .gced-modal-badges { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 1rem; }
#gced-wrap .gced-section {
  margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--gc-bdr);
}
#gced-wrap .gced-section-title {
  font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--gc-ret); font-family: 'Courier New', monospace; margin-bottom: 0.6rem;
}
#gced-wrap .gced-modal-desc { font-size: 15px; color: var(--gc-desc); line-height: 1.65; }
#gced-wrap .gced-detail-grid {
  display: grid; grid-template-columns: 130px 1fr; gap: 0.5rem 1rem; font-size: 14px;
}
#gced-wrap .gced-detail-label { color: var(--gc-dim); font-family: 'Courier New', monospace; font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; padding-top: 2px; }
#gced-wrap .gced-detail-value { color: var(--gc-strong); }
#gced-wrap .gced-detail-value a { color: var(--gc-ret); text-decoration: none; word-break: break-word; }
#gced-wrap .gced-detail-value a:hover { text-decoration: underline; }

#gced-wrap .gced-print-btn {
  background: var(--gc-bg2); border: 1px solid var(--gc-bdr); border-radius: 3px;
  color: var(--gc-dim); padding: 0.32rem 0.7rem; cursor: pointer;
  font-family: inherit; font-size: 13px; transition: all 0.15s; white-space: nowrap;
}
#gced-wrap .gced-print-btn:hover { border-color: var(--gc-ret); color: var(--gc-ret); }



/* ─── Inline print view (replaces visible content; foolproof against theme overlays) ─── */
#gced-wrap #gced-print-view { background: var(--gc-bg); color: var(--gc-strong); padding: 0; }
#gced-wrap .gced-print-toolbar { display: flex; gap: 0.5rem; padding: 1rem 1.5rem; border-bottom: 1px solid var(--gc-bdr); background: var(--gc-bg1); }
#gced-wrap .gced-print-body { font-family: Georgia, 'Times New Roman', serif; line-height: 1.55; padding: 1.5rem 2rem; color: var(--gc-strong); background: var(--gc-bg); }
#gced-wrap .gced-print-title { font-size: 1.725rem; margin: 0 0 4px; text-align: center; font-family: 'Helvetica Neue', Arial, sans-serif; font-weight: bold; color: var(--gc-strong); letter-spacing: 0.02em; }
#gced-wrap .gced-print-subtitle { font-size: 1.125rem; margin: 0 0 18px; text-align: center; font-family: 'Helvetica Neue', Arial, sans-serif; font-weight: normal; color: var(--gc-dim); font-style: italic; }
#gced-wrap .gced-print-hr { border: none; border-top: 2px solid var(--gc-bdr); margin: 16px 0; height: 0; }
#gced-wrap .gced-print-event { margin: 12px 0; }
#gced-wrap .gced-print-event > div { margin: 5px 0; font-size: 1.075rem; line-height: 1.55; }
#gced-wrap .gced-print-name { font-weight: bold; font-size: 1.175rem; font-family: 'Helvetica Neue', Arial, sans-serif; margin-bottom: 6px; color: var(--gc-strong); }
#gced-wrap .gced-print-lbl { font-weight: bold; color: var(--gc-strong); }
#gced-wrap .gced-print-desc { text-align: justify; }
#gced-wrap .gced-print-row a { color: var(--gc-ret); text-decoration: none; word-break: break-all; }
#gced-wrap .gced-print-row a:hover { text-decoration: underline; }
#gced-wrap .gced-print-foot { font-size: 0.875rem; color: var(--gc-dim); text-align: center; margin-top: 24px; font-family: 'Helvetica Neue', Arial, sans-serif; }

/* When printing, hide everything except the print body */
@media print {
  body > *:not(#gced-wrap),
  #gced-wrap > *:not(#gced-print-view),
  #gced-wrap .gced-no-print,
  #gced-wrap .gced-rebuild { display: none !important; }
  #gced-wrap, #gced-wrap #gced-print-view { background: #fff !important; border: none !important; box-shadow: none !important; }
  #gced-wrap .gced-print-body { color: #000 !important; padding: 0.5in 0.6in !important; }
  #gced-wrap .gced-print-title, #gced-wrap .gced-print-name, #gced-wrap .gced-print-lbl { color: #000 !important; }
  #gced-wrap .gced-print-subtitle, #gced-wrap .gced-print-foot { color: #555 !important; }
  #gced-wrap .gced-print-hr { border-top-color: #000 !important; }
  #gced-wrap .gced-print-event { page-break-inside: avoid; break-inside: avoid; }
  @page { margin: 0.5in 0.6in; }
}
@media (max-width: 600px) {
  #gced-wrap .gced-header-bar { padding: 1rem; }
  #gced-wrap .gced-filters { padding: 0.6rem 1rem; }
  #gced-wrap .gced-grid { grid-template-columns: 1fr; }
  #gced-wrap .gced-foot { padding: 0.6rem 1rem; }
  #gced-wrap .gced-detail-grid { grid-template-columns: 1fr; gap: 0.2rem 0; }
  #gced-wrap .gced-detail-grid > .gced-detail-label { padding-top: 0.5rem; }
  #gced-wrap .gced-modal-overlay { padding: 0.5rem; }
  #gced-wrap .gced-modal-body { padding: 1rem; }
}