@page { size: A4; margin: 0; }
.cardsheet { width:210mm; height:297mm; margin:8mm auto; background:#fff; box-shadow:0 2px 12px rgba(0,0,0,.2); display:grid; grid-template-rows:148.5mm 148.5mm; position:relative; }
.cardsheet::after { content:""; position:absolute; left:0; right:0; top:148.5mm; border-top:1px dashed #bbb; }
.half { padding:5mm; height:148.5mm; }
.card { border:3px solid var(--c); border-radius:6mm; padding:4mm 5mm; height:100%; display:grid; grid-template-columns:64mm 1fr; gap:5mm; overflow:hidden; background:linear-gradient(180deg, var(--bg) 0, #fff 45mm); }
.card .left, .card .right { display:flex; flex-direction:column; min-width:0; }
.card .art { border:2px solid var(--c); border-radius:4mm; background:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; height:60mm; flex:none; }
.card .art img { width:46mm; height:56mm; }
.card .art small { color:#999; font-size:7.5pt; }
.card .name { font-family:'Comfortaa', sans-serif; font-size:28pt; font-weight:700; color:var(--c); line-height:1.05; }
.card .gr { font-family:'Comfortaa', sans-serif; font-size:16pt; font-weight:700; color:#444; margin-bottom:1mm; }
.card .gr .first { display:inline-block; background:var(--c); color:#fff; border-radius:2.5mm; padding:0 1.8mm; margin-right:0.5mm; }
.card .role { font-size:9.5pt; color:#555; margin-bottom:1.5mm; line-height:1.3; }
.card .label { font-family:'Comfortaa', sans-serif; font-weight:700; font-size:9pt; color:var(--c); text-transform:uppercase; margin:1.8mm 0 1mm; }
.slot { border:1.5px solid var(--line); border-radius:3mm; width:54mm; height:10mm; display:flex; align-items:center; justify-content:space-between; padding:0 2.5mm; font-size:9pt; margin-bottom:1.6mm; background:#fff; flex:none; }
.slot.empty { border-style:dashed; color:#bbb; }
.card .stk { margin-bottom:1.6mm; }
.card .start .stk { border-width:2.5px; }
.abils { display:grid; grid-template-columns:54mm 54mm; gap:0 2mm; }
.phrase { font-size:10pt; font-weight:700; font-style:italic; background:#fff; border:1.5px solid var(--c); border-radius:3mm; padding:1.2mm 2.5mm; }
.bank { display:flex; gap:2.5mm; align-items:center; }
.bank span.c { width:11mm; height:11mm; border:2.5px solid #e0b100; border-radius:50%; background:#fffbe6; display:block; }
.bank small { color:#8a6d00; font-size:8pt; line-height:1.2; }
.badges { display:grid; grid-template-columns:repeat(8, 1fr); gap:1.5mm; }
.badges span { aspect-ratio:1; max-width:10mm; border:2px dashed var(--c); border-radius:50%; display:block; }
.cell > .slot { display:none; }
.cell.off > :first-child { display:none; }
.cell.off > .slot { display:flex; }
@media screen { .cell { cursor:pointer; } .cell:hover > * { outline:2px solid var(--c); outline-offset:1px; } }
.picker h2 { margin-top:0; }
.picker p { margin:0; }
.stkpage .pupset { border:2px solid var(--c); border-radius:4mm; padding:2mm 3mm; margin-bottom:3mm; break-inside:avoid; }
.stkpage .pupset h3 { color:var(--c); margin:0 0 1.5mm; font-size:11pt; }
@media print {
  .noprint { display:none !important; }
  .cardsheet { margin:0; box-shadow:none; break-after:page; }
  .cardsheet:last-child { break-after:auto; }
  .card { break-inside:avoid; }
}
