/* Saved library only. The read-only team internals reuse team-hub.css. */
.gb[data-view=collection] .gb-top-actions [data-action=export-png] { display:none; }
.gb .gb-library-head { display:flex; flex-direction:row; justify-content:space-between; align-items:center; gap:24px; }
.gb .gb-library-head .th-kicker { margin:0 0 7px; }
.gb .gb-library-head > .th-btn { flex:none; }
.gb .gb-back-short { display:none; }
.gb .gb-library-tools { margin:0 0 20px; padding:20px; border:1px solid var(--th-line-2); border-radius:12px; background:var(--th-surface-sunk); }
.gb .gb-library-toggle { display:none; }
.gb .gb-library-search-row .gb-library-mode { display:none; }
.gb #tbCollectionPanel > .tb-import { margin:24px 0 0; }
.gb .gb-library-search-row { display:grid; grid-template-columns:minmax(200px,1fr) minmax(150px,.4fr) minmax(160px,.4fr); gap:16px; }
.gb .gb-library-search-row label { display:flex; flex-direction:column; align-items:stretch; gap:8px; margin:0; min-width:0; }
.gb .gb-library-search-row input,.gb .gb-library-search-row select { width:100%; min-width:0; min-height:44px; padding:10px 12px; border:1px solid var(--th-line-2); border-radius:8px; color:var(--th-ink); background:var(--th-field-bg); font-size:13px; }
.gb .gb-library-search-row input::placeholder { color:var(--th-ink-3); opacity:1; }
.gb .tb-collection-toolbar { margin:18px 0 0; }
.gb .tb-collection-filters { gap:7px; }
.gb .gb-library-filter { gap:8px; }
.gb .gb-library-filter > span { font-size:10px; opacity:.7; }
.gb .gb-library-filter[aria-pressed=true] { background:var(--th-sel-bg); color:var(--th-sel-ink); border-color:transparent; box-shadow:var(--th-sel-shadow); }
.gb .gb-library-results { display:flex; justify-content:space-between; align-items:center; gap:12px; padding-top:12px; margin-top:14px; border-top:1px solid var(--th-line); font-size:12px; color:var(--th-ink-3); }
.gb .gb-library-results .th-btn { min-height:32px; border-color:transparent; background:transparent; }
.gb .tb-collection { grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr)); gap:16px; }
.gb .tb-build-row.gb-saved-card { display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start; flex-wrap:nowrap; gap:14px; padding:20px; min-width:0; border:1px solid var(--th-line-2); border-radius:13px; background:var(--th-surface-1); box-shadow:var(--th-shadow-1); color:var(--th-ink); }
.gb .gb-saved-card.is-previewing { grid-column:1/-1; border-color:var(--th-gold-line); }
.gb .gb-saved-card { scroll-margin-top:90px; }
.gb .gb-saved-card.is-editing { border-color:var(--th-focus-color); }
.gb .gb-saved-card > * { order:0; flex:none; min-width:0; }
.gb .gb-saved-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
.gb .gb-saved-mode { color:var(--th-gold); font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.gb .gb-saved-visibility { display:inline-flex; align-items:center; gap:5px; border:1px solid var(--th-line-2); border-radius:6px; padding:4px 7px; color:var(--th-ink-3); font-size:10px; }
.gb .gb-saved-visibility svg { width:12px; height:12px; }
.gb .gb-saved-visibility.is-posted,.gb .gb-saved-visibility.is-shared { color:var(--th-gold); border-color:var(--th-gold-line); background:var(--th-gold-faint); }
.gb .gb-saved-title { margin:0; font:700 20px/1.35 "CookieRun KR",sans-serif; color:var(--th-heading); }
.gb .gb-saved-title button { display:block; width:100%; padding:0; border:0; background:transparent; color:inherit; font:inherit; text-align:left; overflow-wrap:anywhere; }
.gb .gb-saved-title button:hover { color:var(--th-gold); }
.gb .gb-saved-chevron,.gb .gb-saved-team-count { display:none; }
.gb .gb-saved-context { margin:7px 0 0; color:var(--th-ink-2); font-size:12px; }
.gb .gb-saved-tags { display:flex; align-items:center; flex-wrap:wrap; gap:7px 12px; margin-top:9px; color:var(--th-ink-3); font-size:10px; }
.gb .gb-saved-tags:empty { display:none; }
.gb .gb-saved-tags .tb-build-credit { padding:0; border:0; background:transparent; color:inherit; font:inherit; }
.gb .gb-saved-tags .tbs-stamp-chip { order:0; max-width:100%; border:0; padding:0; background:transparent; color:var(--th-ink-3); font:inherit; white-space:normal; }
.gb .gb-editing-tag { color:var(--th-link); }
.gb .gb-saved-card > .tb-build-cookies { width:100%; flex:none; gap:8px 12px; padding:12px 0; border-top:1px solid var(--th-line); border-bottom:1px solid var(--th-line); }
.gb .tb-build-cookie-team { gap:5px; max-width:100%; min-width:0; }
.gb .tb-build-cookie-team img { width:42px; height:42px; min-width:0; flex:0 1 42px; border-radius:8px; background:var(--th-surface-sunk); border-color:var(--th-line-2); }
.gb .tb-build-teams-toggle { min-width:42px; min-height:42px; border-color:var(--th-line-2); background:var(--th-btn-bg); color:var(--th-ink-2); }
.gb .gb-saved-description { margin:0; color:var(--th-ink-3); font-size:12px; line-height:1.65; overflow-wrap:anywhere; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.gb .gb-saved-card.is-previewing > .gb-saved-description { display:none; }
.gb .gb-saved-footer { display:flex; align-items:center; flex-wrap:wrap; gap:12px; justify-content:space-between; padding-top:2px; margin-top:auto; }
.gb .gb-saved-date { font-size:10px; color:var(--th-ink-3); }
.gb .gb-saved-actions { display:flex; align-items:center; flex-wrap:wrap; gap:7px; }
.gb .gb-saved-actions .th-btn { min-height:38px; padding:8px 11px; font-size:12px; }
.gb .gb-saved-actions .tb-menu-toggle { min-width:38px; font-weight:700; letter-spacing:2px; }
.gb .gb-preview-trigger[aria-expanded=true],.gb .gb-saved-actions .tb-menu-toggle.is-active { border-color:var(--th-gold-line); background:var(--th-gold-faint); color:var(--th-gold); }
.gb .gb-saved-card > .tb-build-menu { display:grid; grid-template-columns:repeat(auto-fit,minmax(135px,1fr)); justify-content:start; gap:8px; width:100%; margin:0; padding:14px 0 0; border-top:1px solid var(--th-line-2); }
.gb .tb-build-menu .tb-menu-item { min-height:40px; padding:10px 12px; text-align:left; font-size:12px; color:var(--th-ink-2); background:var(--th-btn-bg); border:1px solid var(--th-line-2); border-radius:8px; }
.gb .tb-build-menu .tb-menu-item:hover { border-color:var(--th-focus-color); color:var(--th-ink); }
.gb .tb-build-menu .tb-mini-primary,.gb .tb-build-menu .tb-mini-spotlight { color:var(--th-gold); border-color:var(--th-gold-line); }
.gb .tb-build-menu .tb-mini-danger { color:var(--th-down); }
.gb .gb-saved-card > .tb-build-preview { width:100%; margin:4px 0 0; padding:20px 0 0; border-top:1px solid var(--th-gold-line); overflow:visible; }
/* The shared Beacon responds to the opened-build container, separately from
   each team's own container. Supply that context in the saved-preview host. */
.gb .gb-saved-preview { container:th-ob / inline-size; min-width:0; }
.gb .gb-saved-preview .th-bea-r { white-space:normal; overflow-wrap:anywhere; }
.gb .gb-preview-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; margin-bottom:18px; }
.gb .gb-preview-toolbar .th-kicker { margin:0 0 6px; }
.gb .gb-preview-toolbar h4 { margin:0; font:700 18px/1.4 "CookieRun KR",sans-serif; color:var(--th-heading); overflow-wrap:anywhere; }
.gb .gb-preview-toolbar > div:first-child { flex:1 1 220px; min-width:0; }
.gb .gb-preview-toolbar .th-seg { flex:none; }
.gb .gb-preview-toolbar .th-seg button { min-height:40px; padding:8px 12px; font-size:12px; }
.gb .gb-saved-note { padding:12px 15px; margin:0 0 20px; border-left:2px solid var(--th-gold-line); border-radius:0 6px 6px 0; background:var(--th-wash); color:var(--th-ink-2); font-size:13px; line-height:1.65; white-space:pre-wrap; overflow-wrap:anywhere; }
.gb .gb-saved-team { min-width:0; margin:12px 0; padding:0 16px; border:1px solid var(--th-line-2); border-radius:11px; background:var(--th-surface-sunk); }
.gb .gb-saved-team > summary { display:flex; align-items:center; flex-wrap:wrap; gap:10px 14px; padding:16px 0; cursor:pointer; list-style:none; color:var(--th-ink-2); }
.gb .gb-saved-team > summary::-webkit-details-marker { display:none; }
.gb .gb-saved-team > summary strong { flex:1; font:700 16px/1.4 "CookieRun KR",sans-serif; overflow-wrap:anywhere; }
.gb .gb-saved-team > summary > span:not(.th-label) { color:var(--th-ink-3); font-size:11px; }
.gb .gb-saved-team[open] > summary > svg { transform:rotate(180deg); }
.gb .gb-saved-team[open] { padding-bottom:16px; }
.gb .gb-saved-team .th-team { padding-top:8px; }
.gb .gb-preview-footer { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding-top:20px; margin-top:20px; border-top:1px solid var(--th-line-2); }
.gb .gb-preview-footer > span { flex:1 1 220px; color:var(--th-ink-3); font-size:11px; }
.gb .gb-library-empty { grid-column:1/-1; display:flex; align-items:center; flex-direction:column; gap:16px; padding:50px 22px; border:1px dashed var(--th-line-2); border-radius:12px; text-align:center; background:var(--th-wash); }
.gb .gb-library-empty > svg { width:30px; height:30px; color:var(--th-gold); }
.gb .gb-library-empty h3 { margin:0; color:var(--th-heading); font:700 22px/1.4 "CookieRun KR",sans-serif; }
.gb .gb-library-empty p { margin:0; max-width:440px; font-size:13px; line-height:1.7; color:var(--th-ink-3); }
.gb .gb-library-notice { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin:16px 0; padding:16px; border:1px solid var(--th-gold-line); border-radius:9px; color:var(--th-ink-2); background:var(--th-gold-faint); font-size:13px; }
/* Library cards add a frame around the hub team. Give very narrow embedded
   teams a stacked loadout and full-width equipment values. */
@container th-team (max-width:360px) {
  .gb .gb-saved-preview .th-board { padding:14px 0; }
  .gb .gb-saved-preview .th-plate { grid-template-columns:76px minmax(0,1fr); }
  .gb .gb-saved-preview .th-plate-stage { overflow:clip; overflow-clip-margin:34px; }
  .gb .gb-saved-preview .th-plate-art { top:-16px; bottom:auto; height:180px; max-height:calc(100% + 16px); }
  .gb .gb-saved-preview .th-plate-name { white-space:normal; overflow-wrap:anywhere; }
  .gb .gb-saved-preview .th-plate-body .th-recipe { flex-wrap:wrap; gap:8px; }
  .gb .gb-saved-preview .th-plate-body .th-recipe-tx { flex-basis:100%; margin-left:0; }
  .gb .gb-saved-preview .th-plate-body .th-recipe-tx span { white-space:normal; overflow-wrap:anywhere; }
  .gb .gb-saved-preview .th-teambar { display:flex; flex-direction:column; align-items:stretch; padding:12px; gap:10px; }
  .gb .gb-saved-preview .th-teambar-acts { flex-wrap:wrap; }
  .gb .gb-saved-preview .th-kv { grid-template-columns:minmax(0,1fr); gap:8px; }
  .gb .gb-saved-preview .th-ck-sub { flex-wrap:wrap; gap:4px; white-space:normal; }
  .gb .gb-saved-preview .th-ck-sub .th-sep { display:none; }
  .gb .gb-saved-preview .th-ck-sum,.gb .gb-saved-preview .th-ck.is-open .th-ck-sum { grid-template-columns:32px minmax(0,1fr) 28px; gap:8px; padding:10px; }
  .gb .gb-saved-preview .th-ck-sum-face,.gb .gb-saved-preview .th-ck.is-open .th-ck-sum-face { width:32px; height:32px; }
  .gb .gb-saved-preview .th-ck-chev { width:28px; height:28px; }
  .gb .gb-saved-preview .th-recipe-tx span { white-space:normal; overflow-wrap:anywhere; }
}
@container th-team (max-width:260px) {
  .gb .gb-saved-preview .th-loadout { grid-template-columns:minmax(0,1fr); }
  .gb .gb-saved-preview .th-lead { flex-direction:row; align-items:center; flex-wrap:wrap; text-align:left; }
}
@media(max-width:800px) {
  .gb .tb-collection { grid-template-columns:minmax(0,1fr); gap:12px; }
  .gb .gb-saved-title button { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:44px; }
  .gb .gb-saved-title-text { min-width:0; }
  .gb .gb-saved-chevron { display:grid; place-items:center; flex:none; width:30px; height:30px; border:1px solid var(--th-line-2); border-radius:50%; color:var(--th-ink-2); background:var(--th-btn-bg); }
  .gb .gb-saved-card.is-previewing .gb-saved-chevron { color:var(--th-gold); border-color:var(--th-gold-line); background:var(--th-gold-faint); }
  /* One disclosure: the title opens the existing full preview and actions.
     Closed cards keep just the title and the first team's square portraits. */
  .gb .tb-build-row.gb-saved-card:not(.is-previewing) { gap:8px; padding:12px 14px 14px; }
  .gb .gb-saved-card:not(.is-previewing) .gb-saved-heading,
  .gb .gb-saved-card:not(.is-previewing) .gb-saved-context,
  .gb .gb-saved-card:not(.is-previewing) .gb-saved-tags,
  .gb .gb-saved-card:not(.is-previewing) > .gb-saved-description:not(.gb-saved-empty-lineup),
  .gb .gb-saved-card:not(.is-previewing) .gb-saved-footer,
  .gb .gb-saved-card:not(.is-previewing) > .tb-build-menu,
  .gb .gb-saved-card:not(.is-previewing) .tb-build-teams-toggle,
  .gb .gb-saved-card:not(.is-previewing) .tb-build-cookie-team:not(:first-child) { display:none; }
  .gb .gb-saved-card:not(.is-previewing) .gb-saved-title { font-size:16px; }
  .gb .gb-saved-card:not(.is-previewing) .gb-saved-title-text { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .gb .gb-saved-card:not(.is-previewing) > .tb-build-cookies { flex-wrap:nowrap; align-items:center; gap:8px; padding:0; border:0; }
  .gb .gb-saved-card:not(.is-previewing) .tb-build-cookie-team { flex:0 1 auto; gap:4px; }
  .gb .gb-saved-card:not(.is-previewing) .tb-build-cookie-team img { width:32px; height:auto; aspect-ratio:1; flex:0 1 32px; border-radius:6px; }
  .gb .gb-saved-card:not(.is-previewing) .gb-saved-team-count { display:block; flex:none; color:var(--th-ink-3); font-size:10px; }
  .gb .gb-library-tools { padding:0; }
  .gb .gb-library-toggle { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:13px 16px; list-style:none; cursor:pointer; color:var(--th-ink-2); }
  .gb .gb-library-toggle::-webkit-details-marker { display:none; }
  .gb .gb-library-toggle > span { display:grid; gap:4px; min-width:0; }
  .gb .gb-library-toggle strong { font-size:13px; font-weight:600; }
  .gb #tbCollectionSummary { font-size:11px; color:var(--th-ink-3); }
  .gb .gb-library-tools[data-filtered=true] #tbCollectionSummary { color:var(--th-gold); }
  .gb .gb-library-tools[open] > summary > svg { transform:rotate(180deg); }
  .gb .gb-library-controls { padding:16px; border-top:1px solid var(--th-line-2); }
  .gb .gb-library-search-row { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .gb .gb-library-search { grid-column:1/-1; }
  .gb .gb-library-search-row .gb-library-mode { display:flex; }
  .gb .gb-library-search-row .tb-collection-sort { grid-column:1/-1; }
  .gb .gb-library-controls .tb-collection-toolbar { display:none; }
  .gb .gb-library-head { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:0 12px; align-items:start; }
  .gb .gb-library-head > div { display:contents; }
  .gb .gb-library-head .th-kicker { grid-column:1; grid-row:1; }
  .gb .gb-library-head h2 { grid-column:1; grid-row:2; }
  .gb .gb-library-head .tb-panel-note { grid-column:1/-1; grid-row:3; }
  .gb .gb-library-head > .th-btn { grid-column:2; grid-row:1/3; min-height:36px; padding:8px 11px; font-size:12px; align-self:start; }
  .gb .gb-back-long { display:none; }
  .gb .gb-back-short { display:inline; }
}
@media(max-width:520px) {
  .gb .gb-library-controls { padding:14px; }
  .gb .gb-library-search-row input,.gb .gb-library-search-row select { font-size:16px; }
  .gb .gb-library-search-row .th-label { font-size:9px; }
  .gb .gb-library-filter { min-height:36px; padding:7px 10px; font-size:11px; }
  .gb .tb-build-row.gb-saved-card { padding:16px; }
  .gb .gb-saved-title { font-size:18px; }
  .gb .gb-saved-card > .tb-build-cookies { column-gap:7px; }
  .gb .tb-build-cookie-team img { width:36px; height:36px; flex-basis:36px; }
  .gb .tb-build-cookie-team { gap:4px; }
  .gb .tb-build-teams-toggle { min-height:36px; min-width:36px; padding:0 5px; }
  .gb .gb-saved-team { padding:0 10px; }
  .gb .gb-saved-team > summary { gap:7px 10px; }
  .gb .gb-saved-team > summary > span:not(.th-label) { display:none; }
  .gb .gb-saved-team > summary strong { font-size:14px; }
  .gb .gb-preview-toolbar .th-seg { display:flex; width:100%; }
  .gb .gb-preview-toolbar .th-seg button { flex:1; }
  .gb .gb-saved-note { padding:10px; }
  .gb .gb-preview-footer .th-btn { flex:1; font-size:12px; padding:9px; }
}
