*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{min-height:100vh;background:linear-gradient(to bottom,#fff5f7,#fff8e1 25%,#e8f5e9 75%,#e3f2fd);position:relative;padding-bottom:40px}.header-container{position:sticky;top:0;z-index:100;width:100%}.header{background:transparent;padding:4px 12px 3px;text-align:center}.header h1{font-size:12px;font-weight:700;margin-bottom:1px;color:#333;letter-spacing:.5px}.header .date{font-size:9px;color:#666;font-weight:500}.content{padding:0 10px}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;color:#333}.spinner{width:50px;height:50px;border:5px solid rgba(0,0,0,.1);border-top:5px solid #ff6b6b;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading p{font-size:16px;font-weight:500}.error{text-align:center;padding:80px 20px;color:#333;background:#fffc;border-radius:16px;margin:20px}.retry-btn{margin-top:20px;padding:12px 32px;background:linear-gradient(135deg,#ff6b6b,#ff8e8e);color:#fff;border:none;border-radius:25px;font-size:16px;font-weight:600;cursor:pointer;box-shadow:0 4px 15px #ff6b6b66;transition:all .3s}.retry-btn:active{transform:scale(.95)}.lottery-list{display:flex;flex-direction:column;gap:0}.lottery-card{background:transparent;border-radius:10px;padding:0 10px;margin:0;border-bottom:1px solid #e0e0e0;transition:all .3s ease}.lottery-card:active{transform:scale(.98)}.lottery-header{display:flex;align-items:center;gap:6px;margin:0;padding:0;line-height:1}.lottery-logo{width:28px;height:28px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#f0f0f0;border-radius:50%}.lottery-logo img{width:100%;height:100%;object-fit:contain;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;image-rendering:pixelated}.lottery-info-header{flex:1;display:flex;align-items:center;margin:0;padding:0;line-height:1}.lottery-title-row{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;width:100%;justify-content:space-between;position:relative;margin:0;padding:0;line-height:1}.lottery-info-header h2{font-size:12px;font-weight:600;color:#333;line-height:1;margin:0;padding:0}.issue{font-size:11px;color:#666;font-weight:400;position:absolute;left:50%;transform:translate(-50%);bottom:0;line-height:1.2}.frequency{font-size:11px;color:#999;font-weight:400;margin-left:auto}.lottery-content{margin:0;padding:0;line-height:0}.winning-numbers{display:flex;flex-wrap:wrap;gap:2px;justify-content:center;align-items:center}.kl8-numbers{display:flex;flex-wrap:wrap;gap:2px;justify-content:center;align-items:center;width:100%;max-width:208px}.number-group{display:flex;flex-wrap:wrap;gap:2px;justify-content:center;align-items:center}.separator{font-size:12px;font-weight:700;color:#666;margin:0 1px}.number{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 4px;border-radius:50%;font-size:13px;font-weight:700;color:#fff;box-shadow:0 1px 2px #0003;flex-shrink:0}.number.red{background:#e74c3c}.number.blue{background:#3498db}.number.yellow{background:#f1c40f;color:#333}.number.pink,.number.magenta{background:#e91e63}.no-today-data{text-align:center;padding:60px 20px;color:#999;font-size:16px;background:#fffc;border-radius:16px;margin:20px}.footer{position:fixed;bottom:0;left:0;right:0;background:transparent;padding:6px 12px;text-align:center;z-index:99}.footer p{font-size:10px;color:#999;line-height:1.3}@media (max-width: 480px){.header h1{font-size:16px}.header .date{font-size:14px}.lottery-card{padding:16px}.lottery-logo{width:50px;height:50px}.lottery-info-header h2{font-size:18px}.number{min-width:28px;height:28px;font-size:13px}.content{padding-bottom:80px}}
