/* Holobrook Trainer Card (trainercard.js): the card is a graded slab. Label on top, the showcase card in the well,
   collection numbers embossed in the base. Looks (t-*) restyle the label, a few change its structure. */
@font-face { font-family:"HB Cond"; font-weight:600; font-display:swap; src:url("assets/fonts/barlow-cond-600.woff2") format("woff2"); }
@font-face { font-family:"HB Cond"; font-weight:700; font-display:swap; src:url("assets/fonts/barlow-cond-700.woff2") format("woff2"); }
@font-face { font-family:"HB Cond"; font-weight:800; font-display:swap; src:url("assets/fonts/barlow-cond-800.woff2") format("woff2"); }
@font-face { font-family:"HB Mono"; font-weight:500; font-display:swap; src:url("assets/fonts/dm-mono-500.woff2") format("woff2"); }
:root { --sl-cond:"HB Cond","Barlow Condensed","Arial Narrow","Roboto Condensed",sans-serif; --sl-mono:"HB Mono",ui-monospace,Menlo,monospace;
  --sl-serif:Georgia,"Times New Roman",serif;
  --sl-grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .13 0'/></filter><rect width='100%' height='100%' filter='url(%23g)'/></svg>");
  --sl-fiber:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='260' height='260'><filter id='f'><feTurbulence type='fractalNoise' baseFrequency='.012 .22' numOctaves='3' seed='7' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .45  0 0 0 0 .35  0 0 0 0 .2  0 0 0 .55 -.12'/></filter><rect width='100%' height='100%' filter='url(%23f)'/></svg>"); }
#trainer .results { max-width:440px !important; }   /* the markup carries an inline 720px */
#trainer.tcx-editing .results { max-width:600px !important; }
.tcx-wrap { display:flex; flex-direction:column; align-items:stretch; gap:14px; }

/* the desk the slab rests on: a warm lit surface so the clear case reads on the dark app */
.tcx-desk { display:flex; justify-content:center; padding:22px 14px 24px; border-radius:20px;
  background:radial-gradient(130% 90% at 50% 0%, #ece6db, #d4cab8); box-shadow:inset 0 1px 0 rgba(255,255,255,.5), 0 10px 30px rgba(0,0,0,.35); }
.tcx-desk.dk { background:radial-gradient(130% 90% at 50% 0%, #3a3946, #22212b); box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 10px 30px rgba(0,0,0,.35); }

/* ---------- the case ---------- */
.tslab { --mx:.5; --w:320px; width:var(--w); max-width:100%; position:relative; border-radius:16px; padding:10px 10px 0; color:#16161d; text-align:left;
  background:linear-gradient(160deg,rgba(255,255,255,.88),rgba(226,233,243,.62) 38%,rgba(245,248,252,.8) 70%,rgba(214,222,235,.7));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.95),inset 0 0 0 4px rgba(200,210,226,.55),inset 0 0 0 5px rgba(255,255,255,.7),
             0 1px 0 1px rgba(150,160,180,.35),0 24px 34px -22px rgba(30,30,60,.6),0 4px 8px -4px rgba(30,30,60,.3);
  isolation:isolate; }
.tslab::after { content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; z-index:5; transition:background .2s;
  background:linear-gradient(calc(105deg + var(--mx)*30deg),transparent 28%,rgba(255,255,255,.5) 34%,transparent 41%,transparent 66%,rgba(255,255,255,.22) 70%,transparent 74%); }
.tslab.still::after { transition:none; }
.tslab button { font:inherit; color:inherit; background:none; border:0; padding:0; margin:0; cursor:pointer; text-align:inherit; }
.tslab button:focus-visible { outline:2px solid #3b6fd8; outline-offset:2px; border-radius:4px; }

/* ---------- the label ---------- */
.sl-label { position:relative; border-radius:7px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:0 10px; align-items:center;
  padding:9px 10px 9px 9px; min-height:84px; background:#fff; box-shadow:0 1px 2px rgba(0,0,0,.18); }
.sl-label::before { content:""; position:absolute; inset:4px; border:1.5px solid #cf3a33; border-radius:4px; pointer-events:none; }
.sl-pic { width:46px; height:54px; border-radius:5px; overflow:hidden; position:relative; background:linear-gradient(180deg,#eef5f8,#d7e7ee);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.12); display:grid; place-items:center; }
.sl-pic .av-svg { width:46px; height:46px; display:block; margin-top:8px; }
.sl-art { position:absolute; inset:0; background-size:235% auto; background-position:50% 17%; background-repeat:no-repeat; }
.sl-art::after { content:""; position:absolute; inset:0; box-shadow:inset 0 0 0 1px rgba(0,0,0,.14); border-radius:inherit; }
.sl-mid { min-width:0; overflow:hidden; }
.sl-brand { font:700 9px/1 var(--sl-cond); letter-spacing:.14em; color:#cf3a33; white-space:nowrap; }
.sl-name { display:block; max-width:100%; font:800 23px/1 var(--sl-cond); letter-spacing:.04em; text-transform:uppercase; margin-top:3px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tslab .sl-noname { font:700 13px/1 var(--sl-cond); letter-spacing:.06em; color:#6b6f86; border:1px dashed #b9bccb; border-radius:6px; padding:5px 8px; margin-top:5px; }
.sl-title { display:block; font:600 12px/1 var(--sl-cond); letter-spacing:.12em; text-transform:uppercase; color:#555; margin-top:3px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
.tslab button.sl-title:hover, .tslab button.sl-grade:hover { filter:brightness(.92); }
.sl-bdg { display:flex !important; gap:3px; margin-top:6px; align-items:center; }
.tcx-badge { position:relative; display:inline-block; width:15px; height:14px; }
.tcx-badge .cover-art, .tcx-badge svg { position:absolute; inset:0; width:100%; height:100%; }
.tcx-badge.won { filter:drop-shadow(0 1px .5px rgba(0,0,0,.25)); }
.tcx-badge.off { width:11px; height:11px; margin:1px 2px; border-radius:50%; border:1px dashed #c4c4c4; }
.sl-r { display:flex; flex-direction:column; align-items:center; }
.sl-grade { display:block; width:54px; text-align:center !important; border:1.5px solid #cf3a33 !important; border-radius:5px; padding:5px 0 4px !important; background:#fff !important; }
.sl-grade small { display:block; font:700 10px/1 var(--sl-cond); letter-spacing:.2em; color:#cf3a33; }
.sl-grade b { display:block; font:800 30px/.95 var(--sl-cond); }
.sl-no { font:500 9.5px/1 var(--sl-mono); color:#666; text-align:center; margin-top:5px; white-space:nowrap; }

/* ---------- the well + card ---------- */
.sl-well { margin:9px 2px 0; border-radius:9px; padding:10px; position:relative;
  background:linear-gradient(180deg,rgba(255,255,255,.35),rgba(210,218,232,.35)); box-shadow:inset 0 0 0 1px rgba(255,255,255,.9),inset 0 2px 7px rgba(60,70,100,.18); }
.sl-card img { display:block; width:100%; height:100%; object-fit:cover; border-radius:inherit; }
.sl-card { display:block; width:100%; aspect-ratio:63/88; border-radius:4.5%/3.2%; overflow:hidden; position:relative; background:#ddd;
  box-shadow:0 0 0 1px rgba(0,0,0,.15),0 6px 12px -6px rgba(0,0,0,.45); }
.sl-card::after { content:""; position:absolute; inset:0; border-radius:inherit; mix-blend-mode:color-dodge; opacity:.22; pointer-events:none;
  background:linear-gradient(calc(120deg + var(--mx)*50deg),transparent 25%,#ff8fd0 36%,#8fefff 46%,#fff38f 55%,transparent 66%); }
.sl-card.sl-empty { display:grid; place-items:center; padding:20px; background:rgba(255,255,255,.3); box-shadow:inset 0 0 0 1.5px rgba(120,130,155,.35);
  border:0; text-align:center; font:600 14px/1.35 var(--sl-cond); letter-spacing:.06em; text-transform:uppercase; color:rgba(80,90,115,.7); }
.sl-card.sl-empty::after { display:none; }
.sl-base { display:flex; justify-content:center; gap:10px; flex-wrap:wrap; padding:10px 8px 11px; font:700 10.5px/1 var(--sl-cond); letter-spacing:.16em; text-transform:uppercase;
  color:rgba(90,100,125,.78); text-shadow:0 1px 0 rgba(255,255,255,.95),0 -1px 0 rgba(80,90,110,.25); }
.sl-base b { font-weight:800; color:rgba(60,68,90,.85); }
.sl-base-empty { padding:6px 0; }
.tslab.tsmini { --w:250px; padding-bottom:10px; }
.tslab.tsmini::after { display:none; }

/* ---------- Midnight ---------- */
.tslab.t-midnight { color:#e9ecf3; background:linear-gradient(160deg,rgba(64,66,82,.92),rgba(28,29,40,.9) 45%,rgba(52,54,70,.92));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.22),inset 0 0 0 4px rgba(0,0,0,.35),inset 0 0 0 5px rgba(255,255,255,.12),0 24px 34px -22px rgba(0,0,0,.8),0 4px 8px -4px rgba(0,0,0,.5); }
.t-midnight .sl-label { background:linear-gradient(180deg,#17171f,#0d0d13); }
.t-midnight .sl-label::before { border-color:#8c93a6; border-width:1px; }
.t-midnight .sl-brand { color:#9aa3b8; } .t-midnight .sl-title { color:#aab1c2; }
.t-midnight .sl-grade { background:linear-gradient(135deg,#d7dbe4,#8f97a8 40%,#f2f4f8 60%,#9aa2b2) !important; border-color:#aeb5c4 !important; }
.t-midnight .sl-grade small, .t-midnight .sl-grade b { color:#15151c; }
.t-midnight .sl-no { color:#9aa3b8; }
.t-midnight .sl-pic { background:linear-gradient(180deg,#2b3550,#1a2034); }
.t-midnight .sl-well { background:rgba(0,0,0,.25); box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),inset 0 2px 8px rgba(0,0,0,.6); }
.t-midnight .sl-base { color:rgba(190,198,215,.6); text-shadow:0 -1px 0 rgba(0,0,0,.7); }
.t-midnight .sl-base b { color:rgba(225,230,240,.8); }
.t-midnight .tcx-badge.off { border-color:#555b6b; }
.t-midnight .sl-noname { color:#aab1c2; border-color:#555b6b; }
.t-midnight .sl-card.sl-empty { background:rgba(255,255,255,.04); color:rgba(190,198,215,.6); box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.12); }

/* ---------- Holo Foil ---------- */
.t-holo .sl-label { background:linear-gradient(calc(115deg + var(--mx)*40deg),#ffd9ef,#d3f5ff 18%,#fff6c9 34%,#e2d3ff 50%,#cffde6 66%,#ffd9ef 82%,#d3f5ff);
  box-shadow:0 1px 2px rgba(0,0,0,.18),inset 0 0 0 1px rgba(255,255,255,.7); }
.t-holo .sl-label::after { content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; opacity:.55; mix-blend-mode:overlay;
  background:repeating-linear-gradient(calc(60deg + var(--mx)*30deg),rgba(255,255,255,0) 0 7px,rgba(255,255,255,.75) 9px,rgba(255,255,255,0) 12px 19px); }
.t-holo .sl-label::before { border-color:rgba(70,60,120,.35); border-width:1px; }
.t-holo .sl-brand { color:#5a3f96; } .t-holo .sl-title { color:#4a4060; } .t-holo .sl-no { color:#4a4060; }
.t-holo .sl-grade { border:0 !important; background:conic-gradient(from calc(var(--mx)*360deg),#ff9ad5,#9ef0ff,#fff4a8,#c4a6ff,#9effc9,#ff9ad5) !important;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.7),0 1px 2px rgba(0,0,0,.2); }
.t-holo .sl-grade small { color:#3b2a66; } .t-holo .sl-grade b { color:#2a1f48; }
.tslab.t-holo { box-shadow:inset 0 0 0 1px rgba(255,255,255,.95),inset 0 0 0 4px rgba(214,200,255,.45),inset 0 0 0 5px rgba(255,255,255,.7),0 1px 0 1px rgba(150,140,200,.35),0 24px 34px -22px rgba(60,30,110,.55),0 4px 8px -4px rgba(30,30,60,.3); }

/* ---------- Vintage ---------- */
.tslab.t-vintage { border-radius:9px; background:linear-gradient(160deg,rgba(255,246,222,.92),rgba(236,220,186,.65) 40%,rgba(250,240,214,.85) 70%,rgba(226,206,166,.75));
  box-shadow:inset 0 0 0 1px rgba(255,250,235,.95),inset 0 0 0 4px rgba(200,170,110,.35),inset 0 0 0 5px rgba(255,250,235,.7),0 1px 0 1px rgba(150,120,70,.35),0 24px 34px -22px rgba(70,45,10,.6),0 4px 8px -4px rgba(70,45,10,.3); }
.t-vintage .sl-label { border-radius:3px; background:var(--sl-grain),linear-gradient(180deg,#f8eed6,#efe0bd); background-blend-mode:multiply,normal; }
.t-vintage .sl-label::before { inset:6px; border:1.5px solid #9e2b22; outline:1px solid #23376b; outline-offset:2px; border-radius:1px; }
.t-vintage .sl-brand { font:italic 600 9.5px/1 var(--sl-serif); letter-spacing:.04em; color:#9e2b22; }
.t-vintage .sl-name { font:700 21px/1 var(--sl-serif); letter-spacing:.06em; color:#23201b; }
.t-vintage .sl-title { font:italic 500 13px/1 var(--sl-serif); letter-spacing:.02em; text-transform:none; color:#5b4a33; }
.t-vintage .sl-grade { border-radius:50%; width:56px; height:56px; border:2px solid #23376b !important; display:grid; align-content:center; background:transparent !important; transform:rotate(-8deg);
  box-shadow:inset 0 0 0 3px #f5e9cc,inset 0 0 0 4px #23376b; padding:0 !important; }
.t-vintage .sl-grade small { color:#23376b; font:700 8px/1 var(--sl-cond); letter-spacing:.24em; }
.t-vintage .sl-grade b { color:#23376b; font:700 22px/1 var(--sl-serif); }
.t-vintage .sl-no { color:#5b4a33; }
.t-vintage .sl-pic { border-radius:2px; background:linear-gradient(180deg,#e7dcc1,#d5c39c); filter:sepia(.35); }
.t-vintage .sl-well { border-radius:4px; background:rgba(255,248,230,.3); }
.t-vintage .sl-base { color:rgba(120,90,45,.78); font:italic 500 12px/1 var(--sl-serif); letter-spacing:.06em; text-transform:none; }
.t-vintage .sl-base b { color:rgba(90,62,25,.88); font-weight:700; }
.t-vintage .tcx-badge.off { border-color:#c9b48c; }

/* ---------- Gym Leader: forest + gold, newest badge as a medallion on a ribbon ---------- */
.tslab.t-gym { background:linear-gradient(160deg,rgba(255,255,255,.88),rgba(226,233,243,.6) 40%,rgba(245,248,252,.8));
  box-shadow:inset 0 0 0 2px #d9b257,inset 0 0 0 3px #fff3c9,inset 0 0 0 5px #b18732,inset 0 0 0 6px rgba(255,255,255,.7),0 24px 34px -22px rgba(60,40,0,.6),0 4px 8px -4px rgba(60,40,0,.3); }
.t-gym .sl-label { background:var(--sl-grain),linear-gradient(180deg,#1f4a37,#163a2a); background-blend-mode:soft-light,normal; color:#f5e3a8; margin-top:2px; }
.t-gym .sl-label::before { border:1px solid #d9b257; }
.t-gym .sl-brand { color:#d9b257; letter-spacing:.08em; }
.t-gym .sl-name { background:linear-gradient(180deg,#fff2c0,#d9b257 60%,#a87c26); -webkit-background-clip:text; background-clip:text; color:transparent; }
.t-gym .sl-title { color:#cfe2d4; }
.t-gym .sl-grade { border:1px solid #d9b257 !important; background:transparent !important; }
.t-gym .sl-grade small { color:#d9b257; } .t-gym .sl-grade b { color:#f5e3a8; }
.t-gym .sl-no { color:#9fc2ab; }
.t-gym .sl-label:has(.sl-medal) .sl-pic { display:none; }
.sl-medal { grid-column:1; grid-row:1; position:relative; z-index:2; display:block; width:48px; height:48px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#fff3c9,#d9b257 55%,#9c7120); box-shadow:0 0 0 2px #163a2a,0 0 0 3px #d9b257,0 4px 8px rgba(0,0,0,.4); padding:9px 8px; }
.sl-medal svg, .sl-medal .cover-art { width:100%; height:100%; display:block; }
.sl-ribbon { position:absolute; left:21px; top:62px; width:24px; height:30px; z-index:1; filter:drop-shadow(0 2px 2px rgba(0,0,0,.35));
  background:linear-gradient(90deg,#b73a2c 0 33%,#f3e3b0 33% 66%,#2f5fa6 66%); clip-path:polygon(0 0,100% 0,100% 100%,50% 78%,0 100%); }
.t-gym .sl-pic { background:linear-gradient(180deg,#2c6047,#1a3f2f); box-shadow:inset 0 0 0 1px #d9b257; }
.t-gym .tcx-badge.off { border-color:#5c8a6f; }
.t-gym .sl-base { color:rgba(150,110,30,.88); } .t-gym .sl-base b { color:rgba(120,85,15,.95); }

/* ---------- Slab Lord: the perfect-10 format ---------- */
.tslab.t-lord { padding:13px 13px 0; background:linear-gradient(160deg,rgba(255,255,255,.9),rgba(222,228,238,.62) 38%,rgba(246,248,252,.85) 70%,rgba(210,218,232,.72));
  box-shadow:inset 0 0 0 1px #fff,inset 0 0 0 3px #c9cfdb,inset 0 0 0 5px #fff,inset 0 0 0 7px #aab2c3,inset 0 0 0 8px rgba(255,255,255,.8),0 1px 0 1px rgba(120,130,150,.4),0 26px 36px -22px rgba(20,20,50,.65),0 4px 8px -4px rgba(20,20,50,.35); }
.tslab.t-lord.tsmini { padding-bottom:13px; }
.t-lord .sl-label { grid-template-columns:auto minmax(0,1fr); padding:10px 10px 10px 8px; min-height:92px;
  background:linear-gradient(calc(120deg + var(--mx)*30deg),#e9edf4,#ffffff 22%,#b9c1d0 40%,#f7f9fc 55%,#a9b2c4 72%,#eef1f6); box-shadow:0 1px 2px rgba(0,0,0,.2),inset 0 0 0 1px rgba(255,255,255,.8); }
.t-lord .sl-label::before { inset:3px; border:1px solid #6b7489; border-radius:5px; box-shadow:inset 0 0 0 2px rgba(255,255,255,.75),inset 0 0 0 3px #8b94a8; }
.t-lord .sl-pic, .t-lord .sl-r { display:none; }
.sl-seal { display:grid; place-items:center; width:62px; height:62px; position:relative; border-radius:50%;
  background:conic-gradient(from 0deg,#e7c66b,#fff1bf,#b38a2f,#ffe9a3,#a87d24,#f6dc8e,#e7c66b);
  -webkit-mask:radial-gradient(circle,#000 70%,transparent 71%),conic-gradient(#000 0 5deg,transparent 5deg 10deg);
  mask:radial-gradient(circle,#000 70%,transparent 71%),conic-gradient(#000 0 5deg,transparent 5deg 10deg); mask-composite:add; }
.sl-seal i { position:absolute; inset:11px; border-radius:50%; background:radial-gradient(circle at 40% 35%,#fff8dc,#e2bd5c 70%,#b38a2f); box-shadow:inset 0 0 0 1.5px #8d6a1d,inset 0 0 0 3px #f8e7ad; }
.sl-seal b { position:relative; font:800 19px/1 var(--sl-cond); color:#5e430b; letter-spacing:.02em; }
.sl-seal small { position:absolute; bottom:13px; font:700 5.5px/1 var(--sl-cond); letter-spacing:.14em; color:#5e430b; }
.t-lord .sl-mid { text-align:center; display:flex; flex-direction:column; align-items:center; }
.t-lord .sl-brand { color:#3e475c; }
.t-lord .sl-name { display:inline-block; margin-top:5px; padding:4px 18px 3px; color:#fff; background:linear-gradient(180deg,#30374a,#1a1f2d);
  clip-path:polygon(0 0,100% 0,calc(100% - 8px) 50%,100% 100%,0 100%,8px 50%); font-size:20px; }
.t-lord .sl-title { color:#30374a; margin-top:5px; }
.t-lord .sl-bdg { justify-content:center; }
.sl-lordno { display:block; font:500 9.5px/1 var(--sl-mono); color:#3e475c; margin-top:5px; }
.t-lord .sl-base { color:rgba(70,80,105,.78); }

/* ---------- Japanese: washi label, red hanko level, vertical line ---------- */
.t-jp .sl-label { background:var(--sl-fiber),linear-gradient(180deg,#fbf6ea,#f3ead6); background-size:260px 260px,auto; padding-right:12px; }
.t-jp .sl-label::before { border:1px solid #2b2a33; inset:5px; border-radius:2px; }
.t-jp .sl-brand { color:#2b2a33; letter-spacing:.08em; }
.t-jp .sl-name { letter-spacing:.08em; }
.t-jp .sl-title { color:#8a2a22; }
.t-jp .sl-r { flex-direction:row; gap:6px; align-items:stretch; }
.t-jp .sl-grade { border:0 !important; background:#c3352b !important; border-radius:4px; width:38px; box-shadow:inset 0 0 0 2px #c3352b,inset 0 0 0 3px rgba(255,255,255,.65); }
.t-jp .sl-grade small { color:#ffe9e2; font-size:9px; } .t-jp .sl-grade b { color:#fff; font-size:22px; }
.t-jp .sl-no { display:none; }
.sl-tate { display:block; writing-mode:vertical-rl; font:800 13px/1 "Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif; letter-spacing:.12em; color:#2b2a33;
  padding:2px 0 2px 6px; border-left:1px solid #c9bfa8; }
.t-jp .sl-pic { background:linear-gradient(180deg,#f3e4dc,#e6cfc4); }

/* ---------- under the slab ---------- */
.tcx-shownote { text-align:center; font-size:12.5px; color:var(--muted); margin-top:-4px; }
.tcx-shownote .link-btn { font-size:12.5px; }
.tcx-chase { display:flex; align-items:center; gap:12px; width:100%; padding:10px 14px; font:inherit; color:var(--ink); text-align:left; cursor:pointer;
  background:var(--card); border:1px solid var(--line); border-radius:14px; }
.tcx-chase:hover, .tcx-chase:focus-visible { border-color:var(--line2, var(--accent)); outline:none; }
.tcx-chase img { width:34px; flex:none; border-radius:3px; box-shadow:0 2px 5px rgba(0,0,0,.35); }
.tcx-chase span { min-width:0; display:flex; flex-direction:column; line-height:1.3; }
.tcx-chase small { font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.tcx-chase b { font-size:14px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tcx-chase em { font-style:normal; font-size:12px; color:var(--muted); }
.tcx-actions { display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap; }
.tcx-actions .deal-btn { min-width:140px; text-align:center; }
.tcx-meta { display:flex; justify-content:center; gap:14px; align-items:center; font-size:12px; color:var(--muted); }
.tcx-meta:empty { display:none; }
.tcx-switch { font-size:12.5px; color:var(--muted); }
.tcx-hint .chint { margin:0; }

/* ---------- Edit: look picker ---------- */
.tce-looks { display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:10px; }
.tce-lk { display:flex; flex-direction:column; align-items:stretch; gap:3px; padding:8px 8px 9px; font:inherit; color:var(--ink); text-align:left; cursor:pointer;
  background:rgba(30,35,80,.35); border:2px solid var(--line); border-radius:12px; }
.tce-lk.on { border-color:var(--accent); box-shadow:0 0 0 1px var(--accent); }
.tce-lk-stage { position:relative; height:66px; border-radius:8px; overflow:hidden; pointer-events:none;
  background:radial-gradient(130% 90% at 50% 0%, #ece6db, #d4cab8); }
.tce-lk-stage.dk { background:radial-gradient(130% 90% at 50% 0%, #3a3946, #22212b); }
.tce-lk-stage .tslab { max-width:none; position:absolute; left:50%; top:6px; transform:translateX(-50%) scale(.52); transform-origin:50% 0; }
.tce-lk-nm { font-size:13px; font-weight:800; margin-top:4px; }
.tce-lk-how { font-size:11.5px; color:var(--muted); line-height:1.3; }
.tce-lk.locked .tce-lk-stage { filter:grayscale(.85) brightness(.75); opacity:.55; }
.tce-lk.locked .tce-lk-nm::after { content:" · locked"; font-weight:600; color:var(--muted); }

.tce-lk.prev { border-color:var(--muted); border-style:dashed; }
.tce-prev { display:flex; flex-direction:column; gap:8px; margin-bottom:12px; }
.tce-prev-desk { padding:14px 10px 16px; }
.tce-prev-fit { zoom:.6; display:flex; justify-content:center; width:100%; }
.tce-prev-cap { font-size:12.5px; color:var(--muted); text-align:center; line-height:1.4; }
.tce-prev-cap b { color:var(--ink); }

/* ---------- edit view ---------- */
.tce { display:flex; flex-direction:column; gap:14px; }
.tce-sec { background:var(--card); border:1px solid var(--line); border-radius:14px; padding:14px 16px; scroll-margin-top:16px; }
.tce-h { font-family:var(--pixel); font-size:9px; letter-spacing:.06em; color:var(--accent); margin-bottom:12px; }
.tce-lab { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); }
.tce-lab-b { display:block; margin:12px 0 8px; }
.tce-note { font-size:12.5px; color:var(--muted); line-height:1.45; margin-top:8px; }
.tce-who { display:flex; gap:14px; align-items:center; }
.tce-photo { flex:none; width:96px; height:96px; border-radius:18px; overflow:hidden; box-shadow:0 0 0 2px rgba(255,255,255,.08); }
.tce-photo .av-svg { width:96px; height:96px; display:block; }
.tce-namebox { min-width:0; flex:1; display:flex; flex-direction:column; gap:6px; }
.tce-look { display:flex; flex-direction:column; gap:12px; margin-top:16px; padding-top:14px; border-top:1px solid var(--line); }
.tce-row { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.tce-row > .tce-lab { width:86px; flex:none; }
.tce-col { align-items:flex-start; flex-direction:column; gap:8px; }
.tce-hair { display:grid; grid-template-columns:repeat(5, 1fr); gap:8px; width:100%; max-width:330px; }
.tce-hs { padding:0; aspect-ratio:1; border:2px solid var(--line); border-radius:12px; background:var(--card); overflow:hidden; cursor:pointer; line-height:0; }
.tce-hs .av-svg { width:100%; height:100%; }
.tce-hs.on { border-color:var(--accent); box-shadow:0 0 0 1px var(--accent); }
.tce-chips { display:flex; flex-wrap:wrap; gap:7px; }
.tce-chip { font:inherit; font-size:12.5px; font-weight:700; padding:7px 12px; border-radius:999px; border:1px solid var(--line);
  background:rgba(30,35,80,.5); color:var(--ink); cursor:pointer; }
.tce-chip.on { border-color:var(--accent); background:rgba(255,203,5,.14); color:var(--accent); }
.tce-locked { margin-top:12px; }
.tce-locked summary { cursor:pointer; font-size:12.5px; font-weight:700; color:var(--muted); list-style:none; }
.tce-locked summary::-webkit-details-marker { display:none; }
.tce-locked summary::before { content:"+ "; }
.tce-locked[open] summary::before { content:"− "; }
.tce-locked ul { list-style:none; margin:10px 0 0; padding:0; display:flex; flex-direction:column; gap:6px; max-height:260px; overflow:auto; scrollbar-width:thin; }
.tce-locked li { display:flex; flex-direction:column; font-size:12.5px; color:var(--muted); opacity:.8; }
.tce-locked li b { color:#cfd3f5; font-weight:700; }
.tce-cur { display:flex; align-items:center; gap:12px; }
.tce-cur img { width:44px; border-radius:5px; flex:none; }
.tce-cur > div { min-width:0; flex:1; display:flex; flex-direction:column; font-size:14px; }
.tce-cur > div span { font-size:12px; color:var(--muted); }
.tce-cur .link-btn { flex:none; font-size:12.5px; color:var(--muted); text-decoration:none; border:1px solid var(--line); border-radius:999px; padding:5px 11px; }
.tce-cur .link-btn:hover { color:var(--ink); border-color:var(--line2); }
.tce-picks { display:grid; grid-template-columns:repeat(6, 1fr); gap:8px; }
.tce-pick { padding:0; border:2px solid transparent; border-radius:7px; background:none; cursor:pointer; line-height:0; }
.tce-pick img { width:100%; aspect-ratio:63/88; object-fit:cover; border-radius:5px; }
.tce-pick.on { border-color:var(--accent); }
.tce-new { width:100%; text-align:center; }
.tce .tc-danger { margin-top:2px; }
.tce-done { text-align:center; padding-bottom:6px; }
.tce-done .deal-btn { min-width:160px; }
@media (max-width:480px) {
  .tcx-desk { padding:16px 8px 18px; border-radius:16px; }
  .sl-name { font-size:21px; }
  .tce-picks { grid-template-columns:repeat(4, 1fr); }
  .tce-row > .tce-lab { width:100%; }
  .tce-looks { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}

/* ---------- home: the label strip in the snapshot panel (tap = the full card) ---------- */
.hero-tc { display:block; width:100%; padding:0; margin:0; border:0; background:none; cursor:pointer; text-shadow:none; font:inherit; text-align:left; }
.hero-tc .tslab { --w:100%; padding:5px; border-radius:11px; transition:transform .15s ease; }
.hero-tc:hover .tslab, .hero-tc:focus-visible .tslab { transform:translateY(-1px); }
.hero-tc:focus-visible { outline:2px solid var(--accent); outline-offset:3px; border-radius:12px; }
.hero-tc .tslab.t-lord { padding:7px; }
.hero-tc .sl-label { min-height:0; padding:7px 8px 7px 7px; gap:0 8px; border-radius:6px; }
.hero-tc .sl-label::before { inset:3px; }
.hero-tc .sl-pic { width:32px; height:38px; border-radius:4px; }
.hero-tc .sl-pic .av-svg { width:32px; height:32px; margin-top:6px; }
.hero-tc .sl-brand { font-size:7px; letter-spacing:.12em; }
.hero-tc .sl-name { font-size:17px; margin-top:2px; }
.hero-tc .sl-title { font-size:9px; margin-top:2px; }
.hero-tc .sl-bdg, .hero-tc .sl-no, .hero-tc .sl-tate, .hero-tc .sl-ribbon, .hero-tc .sl-lordno { display:none !important; }
.hero-tc .sl-grade { width:34px; padding:3px 0 2px !important; border-radius:4px; }
.hero-tc .sl-grade small { font-size:7px; letter-spacing:.16em; }
.hero-tc .sl-grade b { font-size:19px; }
.hero-tc .t-vintage .sl-grade { width:36px; height:36px; }
.hero-tc .t-vintage .sl-name { font-size:15px; }
.hero-tc .t-jp .sl-grade { width:28px; }
.hero-tc .sl-medal { width:32px; height:32px; padding:6px 5px; }
.hero-tc .sl-seal { width:40px; height:40px; }
.hero-tc .sl-seal i { inset:7px; } .hero-tc .sl-seal b { font-size:13px; } .hero-tc .sl-seal small { display:none; }
.hero-tc .t-lord .sl-name { font-size:13px; padding:3px 12px 2px; }

/* ---------- Trophy Room: "Kept by" + the label under the name plaque ---------- */
.tr-keeper { display:flex; flex-direction:column; align-items:center; gap:5px; margin:2px auto 16px; width:100%; max-width:270px; }
.tr-keeper-k { font-size:10px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); opacity:.85; }
.tcx-fallback { text-align:center; padding:28px 18px; background:var(--card); border:1px solid var(--line); border-radius:16px; }
.tcx-fallback b { font-size:18px; } .tcx-fallback p { color:var(--muted); font-size:14px; margin:8px 0 14px; }

/* ---------- pixel trainers ---------- */
.tcx-px { display:block; width:100%; height:auto; image-rendering:pixelated; }
.av-svg.av2 { image-rendering:pixelated; }
/* the trainer stands at the desk's front edge beside the slab (waist cut by the desk, like the gym leaders) */
.tcx-desk { position:relative; }
.tcx-desk.has-fig { padding-bottom:0; overflow:hidden; }
.tcx-desk.has-fig .tslab { margin-bottom:22px; }
.tcx-fig { position:absolute; left:4px; bottom:0; width:124px; padding:0; margin:0; border:0; background:none; cursor:pointer; z-index:6;
  filter:drop-shadow(0 8px 10px rgba(30,20,10,.4)); transition:transform .15s ease; }
.tcx-fig:hover, .tcx-fig:focus-visible { transform:translateY(-2px); outline:none; }
@media (min-width:481px) { .tcx-fig { width:136px; left:6px; } }

/* Edit: builder */
.tce-fig { background:radial-gradient(120% 90% at 50% 10%, #3a4380, #20264f); display:flex; align-items:flex-end; justify-content:center; padding:6px 8px 0; }
.tce-fig .tcx-px { width:80px; }
.tce-presets { display:grid; grid-template-columns:repeat(8, minmax(0, 1fr)); gap:6px; width:100%; }
.tce-preset, .tce-tile { display:flex; flex-direction:column; align-items:center; gap:3px; padding:6px 4px 5px; font:inherit; color:var(--ink); cursor:pointer;
  background:rgba(30,35,80,.45); border:2px solid var(--line); border-radius:10px; min-width:0; }
.tce-preset small, .tce-tile small { font-size:10.5px; font-weight:700; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
.tce-preset .tcx-px, .tce-tile .tcx-px { width:100%; max-width:56px; }
.tce-preset:hover, .tce-tile:hover { border-color:var(--line2, var(--accent2)); }
.tce-tile.on { border-color:var(--accent); box-shadow:0 0 0 1px var(--accent); }
.tce-tile.on small { color:var(--accent); }
.tce-tiles { display:grid; grid-template-columns:repeat(auto-fill, minmax(64px, 1fr)); gap:7px; width:100%; }
.tce-none { display:grid; place-items:center; width:100%; max-width:56px; aspect-ratio:24/28; font-size:11px; color:var(--muted); border:1.5px dashed var(--line); border-radius:8px; }
@media (max-width:480px) { .tce-presets { grid-template-columns:repeat(4, minmax(0, 1fr)); } }

/* ---------- pins, patches, card in hand ---------- */
.tcx-figwrap { position:relative; display:block; }
.tcx-ov { position:absolute; display:block; pointer-events:none; }
.tcx-ov svg { display:block; width:100%; height:auto; }
.ov-pin .tcx-pin { display:block; filter:drop-shadow(0 .5px 0 rgba(0,0,0,.55)); }
.tcx-pin { display:inline-block; width:100%; }
.tcx-pin svg { width:100%; height:auto; display:block; image-rendering:pixelated; }
.tcx-patch { container-type:inline-size; display:grid; place-items:center; width:100%; aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle at 40% 35%, color-mix(in srgb, var(--pa) 80%, #fff), var(--pa) 70%);
  box-shadow:inset 0 0 0 1.5px var(--pb), inset 0 0 0 2.5px var(--pa), 0 1px 1px rgba(0,0,0,.45); }
.tcx-patch b { font:800 33cqw/1 var(--sl-cond); letter-spacing:.02em; color:var(--pb); }
.ov-card img { display:block; width:100%; aspect-ratio:63/88; object-fit:cover; border-radius:6%/4.5%;
  box-shadow:0 0 0 1px rgba(255,255,255,.8), 0 2px 4px rgba(0,0,0,.45); }
.tce-fig .tcx-figwrap { width:80px; }
/* Edit: pin chips */
.tce-pins { display:flex; flex-wrap:wrap; gap:7px; }
.tce-pin { display:inline-flex; align-items:center; gap:8px; padding:6px 11px 6px 7px; font:inherit; font-size:12.5px; font-weight:700; color:var(--ink); cursor:pointer;
  background:rgba(30,35,80,.45); border:1.5px solid var(--line); border-radius:999px; opacity:.7; }
.tce-pin.on { opacity:1; border-color:var(--accent); background:rgba(255,203,5,.1); }
.tce-pin .tcx-pin, .tce-pin .tcx-patch { width:22px; flex:none; }
.tcx-pin { position:relative; }
.tcx-pin svg, .tcx-pin .cover-art { position:static !important; inset:auto !important; width:100% !important; height:auto !important; display:block; }
.tce-pin .tcx-pin { min-height:18px; }
@media (min-width:600px) { .tce-prev-fit { zoom:.72; } }

/* phone home pill: the trainer's face opens the Trainer Card (the pill itself still expands the panel) */
.hc-face { display:inline-flex; width:30px; height:30px; flex:none; align-items:center; justify-content:center; border-radius:8px; margin-right:2px;
  background:rgba(255,255,255,.08); box-shadow:inset 0 0 0 1px rgba(255,255,255,.14); cursor:pointer; overflow:hidden; }
.hc-face .av-svg { width:26px; height:26px; }
.hc-face:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
/* Country flag (Nov 3 2026): after HOLOBROOK TRAINER on the label, before names on the pulls board */
.sl-flag { display:inline-block; width:auto; height:1.25em; aspect-ratio:4/3; margin-left:.5em; vertical-align:-.2em; border-radius:1.5px; box-shadow:0 0 0 .5px rgba(0,0,0,.3); }
.pull-flag { display:inline-block; width:14px; height:10.5px; margin-right:5px; vertical-align:-1px; border-radius:1.5px; box-shadow:0 0 0 .5px rgba(0,0,0,.35); }
.tce-flagcur { display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:14px; }
.tce-flagimg { width:24px; height:18px; border-radius:2px; box-shadow:0 0 0 .5px rgba(0,0,0,.35); flex:none; }
.tce-flaggo { align-self:flex-start; }
.tce-flagpick { display:flex; flex-direction:column; gap:8px; }
.tce-flaglist { max-height:260px; overflow-y:auto; border:1px solid var(--line); border-radius:10px; padding:4px; display:flex; flex-direction:column; }
.tce-flagrow { display:flex; align-items:center; gap:10px; padding:8px 10px; border:0; border-radius:7px; background:none; color:var(--ink); font:inherit; font-size:14px; text-align:left; cursor:pointer; }
.tce-flagrow:hover, .tce-flagrow:focus-visible { background:rgba(255,255,255,.07); outline:none; }
.tce-flagrow.on { background:rgba(255,255,255,.1); font-weight:700; }
.tce-flagpick .link-btn { align-self:flex-start; }
