.zl-module { display: block; width: 100%; margin: 1px 0 6px; padding: 3px; border-radius: 4px; background: #d60000; color: #24344d; text-align: center; line-height: 1.45; font-size: 16px; overflow: hidden; }
.zl-module, .zl-module * { box-sizing: border-box; font-family: KaiTi, KaiTi_GB2312, STKaiti, "Kaiti SC", "楷体", serif; font-weight: 900; letter-spacing: 0; }
.zl-module img { width: auto; max-width: 100%; }

.zl-top { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 11px 9px 14px; background: linear-gradient(180deg, #d60000 80%, #fff2f2 100%); border-bottom: 1px solid #f3bcbc; }
.zl-emblem { display: block; width: 76px; height: 76px; border-radius: 50%; box-shadow: 0 0 0 3px #396efb, 0 2px 6px rgba(0, 0, 0, .35); }
.zl-emblem.zl-small { width: 46px; height: 46px; box-shadow: 0 0 0 2px #396efb; }
.zl-name { display: block; font-size: clamp(20px, 6vw, 40px); line-height: 1.2; color: #fff; text-shadow: 0 2px 3px rgba(0, 0, 0, .35); }

.zl-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 10px; padding: 12px; background: #fff5f5; }
.zl-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid #e8b4b4; border-radius: 9px; background: #fff; }
.zl-card-head { padding: 7px 3px; background: #ffecec; border-bottom: 1px solid #f0caca; color: #0000ff; font-size: clamp(12px, 2.9vw, 17px); line-height: 1.35; }
.zl-period { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; padding: 8px 4px 5px; min-width: 0; }
.zl-period b { display: block; width: 100%; color: #000; font-size: clamp(12px, 2.7vw, 20px); line-height: 1.4; overflow-wrap: anywhere; }
.zl-result { display: flex; align-items: center; justify-content: center; gap: 9px; width: 100%; padding: 5px 9px 12px; }

.zl-ball { position: relative; display: flex; flex: 1 1 0; align-items: center; justify-content: center; min-width: 0; max-width: 112px; height: 80px; overflow: hidden; border: 2px solid #dba957; border-radius: 9px; background: #b92e3a; color: #fff; font-size: clamp(33px, 7.5vw, 57px); line-height: 1; white-space: nowrap; font-variant-numeric: tabular-nums; }
.zl-ball::before { content: ""; position: absolute; z-index: 0; inset: -90%; background: conic-gradient(#a46c20 0deg, #fff0ac 50deg, #bd8d32 100deg, #fff4c4 175deg, #b57a28 245deg, #fff2b8 310deg, #a46c20 360deg); animation: zl-gold 4.5s linear infinite; }
.zl-ball::after { content: ""; position: absolute; z-index: 1; inset: 3px; border-radius: 5px; background: linear-gradient(140deg, #d83e49, #a91d30); }
.zl-ball span { position: relative; z-index: 2; line-height: 1; text-shadow: 0 2px 2px rgba(0, 0, 0, .35); }
.zl-ball.hit span { color: #ff0; }
.zl-ball.text span { font-size: .72em; }
@keyframes zl-gold { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

@media (max-width: 480px) {
    .zl-grid { padding: 7px; gap: 7px; }
    .zl-emblem { width: 64px; height: 64px; }
    .zl-emblem.zl-small { width: 40px; height: 40px; }
    .zl-period { gap: 4px; padding: 6px 3px 4px; }
    .zl-result { gap: 5px; padding: 4px 5px 9px; }
    .zl-ball { height: 61px; font-size: clamp(31px, 10vw, 41px); }
}
@media (prefers-reduced-motion: reduce) { .zl-ball::before { animation: none; } }
