.custom-card-tools { margin:18px 0; padding:14px; border:1px solid var(--line); border-radius:10px; background:#f8fbf9; }
.custom-card-tools h3 { margin:0 0 10px; font-size:14px; }
.upload-actions { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.file-button { text-align:center; position:relative; overflow:hidden; }
.file-button input { position:absolute; inset:0; opacity:0; cursor:pointer; }
.storage-note { text-align:left; line-height:1.55; }
.custom-card-editor { display:grid; gap:10px; max-height:420px; overflow:auto; }
.custom-editor-item { padding:9px; border:1px solid var(--line); border-radius:8px; background:#fff; }
.custom-editor-head { display:grid; grid-template-columns:58px 1fr auto; gap:8px; align-items:center; }
.custom-editor-head img { width:58px; height:58px; object-fit:cover; border-radius:6px; }
.custom-editor-item input[type=text] { width:100%; padding:6px; border:1px solid var(--line); border-radius:6px; margin:2px 0; }
.crop-controls { display:grid; grid-template-columns:1fr 1fr 1fr; gap:5px; margin-top:6px; font-size:10px; }
.crop-controls input { width:100%; }
.danger { color:#a32626; }
.reading-overrides { margin:14px 0; }
.reading-overrides summary { cursor:pointer; font-weight:700; }
#existingReadingEditor { display:grid; gap:6px; margin-top:8px; max-height:220px; overflow:auto; }
#existingReadingEditor label { display:grid; grid-template-columns:1fr 1.3fr; align-items:center; gap:6px; font-size:11px; }
#existingReadingEditor input { width:100%; padding:6px; border:1px solid var(--line); border-radius:6px; }
.existing-image-size output { float:right; color:var(--green); font-weight:800; }
.existing-image-size input { width:100%; margin-top:8px; }
.print-wait-note { padding:8px; border-radius:7px; background:#fff7dc; color:#6c5924; line-height:1.5; }
.flash-card:not(.custom-card) .card-picture img { transform:scale(var(--existing-scale,1)); }
.custom-card .card-picture img { width:100%; height:100%; max-width:none; max-height:none; object-fit:contain; transform:scale(var(--zoom)); transform-origin:center; object-position:var(--x) var(--y); }
.flash-card.label-top .card-label { order:-1; margin:0 0 4px; }
.custom-card .card-reading { font-size:.52em; font-weight:500; }
.sheet.format-pecs,.sheet.format-wide { padding:18.5mm 7.5mm; gap:0; }
.sheet.format-pecs { grid-template-columns:repeat(3,65mm); grid-template-rows:repeat(4,65mm); }
.sheet.format-wide { grid-template-columns:repeat(2,90mm); grid-template-rows:repeat(4,65mm); padding-left:15mm; padding-right:15mm; }
.format-pecs .flash-card,.format-wide .flash-card { padding:4mm; }
.format-pecs .card-label,.format-wide .card-label { font-size:6mm; }
.sheet.layout-1 { grid-template-columns:1fr; grid-template-rows:1fr; }
.sheet.layout-2 { grid-template-columns:1fr; grid-template-rows:repeat(2,1fr); }
.layout-1 .card-label { font-size:10mm; }
.layout-2 .card-label { font-size:9mm; }
.sheet.layout-580 { grid-template-columns:repeat(20,10mm); grid-template-rows:repeat(29,10mm); gap:0; padding:3.5mm 5mm; }
.sheet.layout-266 { grid-template-columns:repeat(14,15mm); grid-template-rows:repeat(19,15mm); gap:0; padding:6mm 0; }
.sheet.layout-88 { grid-template-columns:repeat(8,25mm); grid-template-rows:repeat(11,25mm); gap:0; padding:11mm 5mm; }
.layout-580 .flash-card,.layout-266 .flash-card { padding:.2mm; }
.layout-88 .flash-card { padding:.5mm; }
.layout-580 .card-label { font-size:.9mm; }
.layout-266 .card-label { font-size:1.2mm; }
.layout-88 .card-label { font-size:2.2mm; }
.sheet.layout-40 { grid-template-columns:repeat(5,35mm); grid-template-rows:repeat(8,35mm); gap:0; padding:8.5mm 17.5mm; }
.sheet.layout-24 { grid-template-columns:repeat(4,45mm); grid-template-rows:repeat(6,45mm); gap:0; padding:13.5mm 15mm; }
.sheet.layout-15 { grid-template-columns:repeat(3,55mm); grid-template-rows:repeat(5,55mm); gap:0; padding:11mm 22.5mm; }
.layout-40 .flash-card { padding:1mm; }
.layout-24 .flash-card,.layout-15 .flash-card { padding:2mm; }
.layout-40 .card-label { font-size:3mm; }
.layout-24 .card-label { font-size:4mm; }
.layout-15 .card-label { font-size:5mm; }
.sheet.layout-32 { grid-template-columns:repeat(4,45mm); grid-template-rows:repeat(8,35mm); gap:0; padding:8.5mm 15mm; }
.sheet.layout-18 { grid-template-columns:repeat(3,65mm); grid-template-rows:repeat(6,45mm); gap:0; padding:13.5mm 7.5mm; }
.sheet.layout-36 { grid-template-columns:repeat(6,35mm); grid-template-rows:repeat(6,45mm); gap:0; padding:13.5mm 0; }
.sheet.layout-16 { grid-template-columns:repeat(4,45mm); grid-template-rows:repeat(4,65mm); gap:0; padding:18.5mm 15mm; }
.sheet.layout-9 { grid-template-columns:repeat(3,65mm); grid-template-rows:repeat(3,90mm); gap:0; padding:13.5mm 7.5mm; }
.layout-32 .card-label,.layout-36 .card-label { font-size:3.2mm; }
.layout-18 .card-label,.layout-16 .card-label { font-size:4mm; }
@media(max-width:900px) { .custom-card-editor { max-height:none; } .crop-controls { grid-template-columns:1fr; } }
@media print { .sheet.format-pecs,.sheet.format-wide { padding-top:18.5mm; padding-bottom:18.5mm; } }
