*{margin:0;padding:0;box-sizing:border-box}body{font-family:Hiragino Sans,Yu Gothic,sans-serif;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);min-height:100vh;display:flex;justify-content:center;align-items:center;padding:20px}#root{width:100%;display:flex;justify-content:center;align-items:center;min-height:100vh}.ticket-container{background:#fff;width:100%;max-width:450px;border-radius:20px;box-shadow:0 10px 30px #0003;overflow:hidden;position:relative}.ticket-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:20px;text-align:center;position:relative}.ticket-title{font-size:18px;font-weight:700;margin-bottom:5px}.ticket-content{padding:30px 20px;text-align:center}.race-info{margin-bottom:20px}.race-type{font-size:24px;font-weight:700;color:#333;margin-bottom:10px}.participant-type{font-size:16px;color:#666;background:#f0f0f0;padding:8px 16px;border-radius:20px;display:inline-block;margin-bottom:20px}.qr-section{position:relative;display:flex;flex-direction:column;align-items:center;margin:20px auto}.qr-code{width:240px;height:240px;background:#fff;border:2px solid #ddd;border-radius:10px;display:flex;align-items:center;justify-content:center;position:relative;cursor:pointer;transition:transform .15s;padding:8px}.qr-code:hover{transform:scale(1.02)}.qr-help{display:flex;flex-direction:row-reverse;align-items:center;gap:8px;margin-top:12px;cursor:pointer}.qr-help-btn{width:20px;height:20px;border-radius:50%;background:#667eea;color:#fff;border:none;font-size:12px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s}.qr-help-btn:hover{background:#764ba2;transform:scale(1.1)}.qr-help-label{font-size:13px;color:#666}.qr-help-tooltip{width:100%;max-width:320px;background:#f5f5f5;color:#333;padding:12px;border-radius:8px;font-size:12px;line-height:1.6;text-align:left;margin-top:10px;border:1px solid #ddd}.qr-help-tooltip p{margin-bottom:6px}.qr-help-tooltip p:last-child{margin-bottom:0}.ticket-id{margin-top:15px;font-size:14px;color:#666}.ticket-id span{background:#e0e0e0;padding:4px 12px;border-radius:10px}.race-details{background:#f8f9fa;margin:20px -20px;padding:20px}.start-time-label{font-size:14px;color:#666;margin-bottom:5px}.start-datetime{font-size:24px;font-weight:700;color:#333;margin-bottom:15px}.today-badge{background:#007bff;color:#fff;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;margin:0 auto 15px}.date{font-size:28px;font-weight:700;color:#333;margin-bottom:10px}.start-time{font-size:36px;font-weight:700;color:#333;margin-bottom:15px}.bib-number{background:linear-gradient(135deg,#ff6b6b,#ee5a24);color:#fff;padding:15px;border-radius:10px;margin-top:15px}.bib-label{font-size:14px;margin-bottom:5px}.bib-num{font-size:32px;font-weight:700}.company-logo{margin-top:20px;padding-top:20px;border-top:1px solid #eee;display:flex;justify-content:center;align-items:center;gap:15px}.logo-item{width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:12px}.logo1{background:linear-gradient(45deg,#ff6b6b,#ee5a24)}.logo2{background:linear-gradient(45deg,#4ecdc4,#44a08d)}.logo3{background:linear-gradient(45deg,#667eea,#764ba2)}.ticket-links{display:flex;justify-content:center;gap:20px;margin-top:20px;padding-top:20px;border-top:1px solid #eee}.ticket-link{display:flex;align-items:center;gap:6px;padding:10px 16px;border-radius:8px;text-decoration:none;font-size:14px;font-weight:500;transition:all .2s}.tournament-link{background:#e3f2fd;color:#1976d2}.tournament-link:hover{background:#bbdefb}.results-link{background:#e8f5e9;color:#388e3c}.results-link:hover{background:#c8e6c9}.maintenance-page{background:#fff;width:100%;max-width:700px;border-radius:20px;box-shadow:0 10px 30px #0000001a;overflow:hidden}.maintenance-content{padding:60px 40px;text-align:center}.maintenance-icon{font-size:120px;margin-bottom:30px;display:flex;justify-content:center;align-items:center}.maintenance-image{width:120px;height:auto;max-width:100%}.maintenance-title{font-size:28px;font-weight:700;color:#333;margin-bottom:40px}.maintenance-period{background:#2196f3;color:#fff;padding:30px;border-radius:12px;margin-bottom:30px}.period-label{font-size:16px;margin-bottom:10px;font-weight:500}.period-time{font-size:24px;font-weight:700;letter-spacing:.5px}.maintenance-message{color:#666;line-height:1.8;margin-bottom:30px}.maintenance-message p{margin-bottom:10px}.maintenance-contact{background:#f8f9fa;padding:25px;border-radius:10px;margin-bottom:30px}.contact-title{font-size:16px;font-weight:700;color:#333;margin-bottom:15px}.contact-email{font-size:16px;color:#2196f3;font-weight:500}.maintenance-note{font-size:13px;color:#999;line-height:1.6;padding-top:20px;border-top:1px solid #eee}.maintenance-note p{margin-bottom:5px}.dev-actions{margin-top:40px;padding-top:30px;border-top:2px dashed #e0e0e0;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.retry-btn,.sample-btn{padding:12px 24px;font-size:14px;font-weight:700;border:none;border-radius:8px;cursor:pointer;transition:all .3s}.retry-btn{background:#4caf50;color:#fff}.retry-btn:hover{background:#45a049;transform:translateY(-2px)}.sample-btn{background:#2196f3;color:#fff}.sample-btn:hover{background:#1976d2;transform:translateY(-2px)}.dev-error{width:100%;margin-top:15px;padding:10px;background:#ffebee;color:#c62828;border-radius:6px;font-size:12px;text-align:left}.loading{text-align:center;padding:40px}.loading-spinner{border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite;margin:0 auto 20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:768px){.maintenance-content{padding:40px 25px}.maintenance-title{font-size:22px}.period-time{font-size:18px}.maintenance-image{width:100px}}@media(max-width:480px){.ticket-container{max-width:100%}.qr-code{width:220px;height:220px}.maintenance-content{padding:30px 20px}.maintenance-title{font-size:20px}.period-time{font-size:16px}.qr-help-tooltip{width:250px;font-size:11px}}
