*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.6;color:#1d1d1f;background-color:#f5f5f7;min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.container{max-width:1200px;margin:0 auto;padding:2rem;width:100%;display:flex;flex-direction:column;align-items:center}h1{text-align:center;margin:2rem 0;color:#1d1d1f;font-size:3.5rem;font-weight:700;letter-spacing:-.03em;background:linear-gradient(135deg,#007AFF,#00C7BE);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.card{background:white;border-radius:24px;padding:2.5rem;box-shadow:0 8px 30px #00000014;max-width:800px;width:100%;margin-top:1rem}.slogan{text-align:center;margin-bottom:3rem;color:#666}.slogan-en{font-size:1.5rem;font-weight:500;margin-bottom:.5rem;color:#007aff}.slogan-zh{font-size:1.2rem;color:#666}.total-savings{text-align:center;margin:2.5rem 0;display:flex;flex-direction:column;align-items:center;gap:.5rem}.total-savings .currency-container{display:flex;align-items:baseline;justify-content:center}.total-savings .currency{font-size:3.5rem;font-weight:700;color:#0071e3;margin-right:.25rem;display:inline-block;line-height:1.2}.total-savings #total-amount{font-size:3.5rem;font-weight:700;color:#0071e3;line-height:1.2;display:inline-block;letter-spacing:-.03em}.coffee-count{display:flex;align-items:center;justify-content:center;gap:1rem;margin:2rem 0}.coffee-icon{width:2.5rem;height:2.5rem;color:#1d1d1f}.coffee-number{font-size:2.5rem;font-weight:600;color:#1d1d1f}.counter-number{font-size:2.5rem;font-weight:700;color:#2c3e50;margin-right:10px}.counter-label{font-size:1rem;color:#7f8c8d}@media (max-width: 768px){.container{margin:2rem auto;padding:0 1rem}.users-container{gap:1rem;flex-wrap:wrap}.user-card{padding:.75rem;width:calc(50% - 1rem);max-width:200px}.user-image{width:120px;height:120px;max-width:120px;margin-bottom:.75rem;object-fit:cover;box-shadow:0 4px 10px #00000014}.user-name{font-size:1rem}h1{font-size:2.5rem}.user-card.selected{transform:scale(1.03);box-shadow:0 4px 10px #00000014}}.users-container{display:flex;justify-content:center;gap:2rem;margin:3rem auto;max-width:1200px;padding:0 1rem}.user-card{text-align:center;cursor:pointer;transition:all .3s cubic-bezier(.25,.1,.25,1);padding:1rem;border-radius:16px;position:relative}.crown-icon{position:absolute;top:-10px;left:-5px;font-size:32px;display:none;transition:all .3s ease;z-index:10;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.gold-crown-icon{color:transparent;background:linear-gradient(135deg,#FFD700,#FFC800,#FFEC40);background-clip:text;-webkit-background-clip:text;filter:drop-shadow(0 0 3px rgba(255,215,0,.5));transform:scale(1.1)}.silver-crown-icon{color:transparent;background:linear-gradient(135deg,#C0C0C0,#E8E8E8,#A9A9A9);background-clip:text;-webkit-background-clip:text;filter:drop-shadow(0 0 3px rgba(192,192,192,.5));transform:scale(1.05)}.bronze-crown-icon{color:transparent;background:linear-gradient(135deg,#CD7F32,#E6A972,#B87333);background-clip:text;-webkit-background-clip:text;filter:drop-shadow(0 0 3px rgba(205,127,50,.5))}.user-card.gold-crown .gold-crown-icon,.user-card.silver-crown .silver-crown-icon,.user-card.bronze-crown .bronze-crown-icon{display:block}.crown-icon{animation:float 3s ease-in-out infinite}@keyframes float{0%{transform:translateY(0) rotate(-25deg)}50%{transform:translateY(-3px) rotate(-25deg)}to{transform:translateY(0) rotate(-25deg)}}.crown-icon:hover{animation-play-state:paused;filter:brightness(1.2);transform:scale(1.1) rotate(-25deg)}.user-card:hover{background:rgba(0,122,255,.05);transform:translateY(-3px);box-shadow:0 6px 20px #007aff26}.user-image{width:180px;height:180px;border:3px solid #e0e0e0;border-radius:20px;margin-bottom:1.5rem;object-fit:cover;box-shadow:0 4px 20px #0000001a}.user-name{font-size:1.2rem;font-weight:500;color:#1d1d1f}.counter-display{text-align:center;margin:2.5rem 0;display:flex;flex-direction:column;align-items:center;gap:.5rem}.counter-number{font-size:3.5rem;font-weight:700;color:#007aff;line-height:1.2}.counter-label{font-size:1.1rem;color:#666;font-weight:500}.btn{display:block;margin:0 auto;padding:1rem;font-size:1.5rem;font-weight:500;border-radius:50%;cursor:pointer;transition:all .3s cubic-bezier(.25,.1,.25,1);border:none;outline:none;width:60px;height:60px;line-height:1;position:relative;overflow:hidden}.btn.primary{background:linear-gradient(135deg,#007AFF,#00C7BE);color:#fff}.btn.primary:disabled{background:#ccc;cursor:not-allowed}.btn.primary:not(:disabled):hover{transform:translateY(-3px);box-shadow:0 6px 18px #007aff66}.btn.primary:not(:disabled):active{transform:translateY(1px);box-shadow:0 2px 8px #007aff4d;transition:all .1s ease}.btn:disabled{background:#e0e0e0;cursor:not-allowed;transform:none;box-shadow:none}.user-card.selected{background:rgba(0,122,255,.1);transform:scale(1.05);box-shadow:0 8px 25px #007aff33}.message{margin-top:1rem;padding:1rem;border-radius:12px;font-size:1rem;text-align:center}.message.error{background-color:#ffebee;color:#c62828}.message.success{background-color:#e8f5e9;color:#2e7d32}.hidden{display:none}.fade-in-up{animation:fadeInUp .8s cubic-bezier(.215,.61,.355,1) forwards}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}60%{transform:translateY(-5px)}80%{transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.counter-number,#total-amount{transition:all .5s cubic-bezier(.34,1.56,.64,1)}.btn.primary:not(:disabled):after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:rgba(255,255,255,.3);border-radius:50%;transform:translate(-50%,-50%);opacity:0}.btn.primary:not(:disabled):active:after{animation:ripple .6s ease-out}@keyframes ripple{0%{width:0;height:0;opacity:.5}to{width:100px;height:100px;opacity:0}}.history-link-container{text-align:center;margin-top:1.5rem}.history-link{background:none;border:none;color:#007aff;font-size:.9rem;padding:.5rem 1rem;cursor:pointer;opacity:.7;transition:all .3s ease;border-radius:20px}.history-link:hover{opacity:1;background:rgba(0,122,255,.1)}.history-link:disabled{opacity:.4;cursor:not-allowed}.history-link i{margin-right:.3rem;font-size:.8rem}.modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;transition:all .3s ease}.modal.show{opacity:1;visibility:visible}.modal-content{background:white;border-radius:16px;width:90%;max-width:500px;max-height:80vh;box-shadow:0 10px 30px #0003;overflow:hidden;transform:translateY(20px);transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.modal.show .modal-content{transform:translateY(0)}.modal-header{padding:1rem 1.5rem;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center}.modal-header h3{margin:0;color:#1d1d1f;font-weight:600;font-size:1.2rem}.close-btn{background:none;border:none;font-size:1.2rem;color:#666;cursor:pointer;padding:.3rem;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.close-btn:hover{background:#f5f5f7;color:#1d1d1f}.modal-body{padding:1.5rem;max-height:calc(80vh - 60px);overflow-y:auto}.pagination-controls{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding-top:15px;border-top:1px solid #e1e4e8}.pagination-btn{background-color:#fafbfc;border:1px solid #e1e4e8;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:500;color:#24292e;cursor:pointer;transition:background-color .2s ease}.pagination-btn:hover:not(:disabled){background-color:#f3f4f6}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-btn i{font-size:10px}#page-info{font-size:12px;color:#586069}.timeline-container{margin:20px 0;position:relative}.timeline-date-group{margin-bottom:30px;position:relative}.timeline-date-header{margin-bottom:15px;position:relative;display:flex;align-items:center}.timeline-date-header span{background:#f0f7ff;padding:5px 12px;border-radius:20px;font-size:14px;font-weight:600;color:#007aff;box-shadow:0 2px 8px #007aff26}.timeline-record-item{display:flex;margin-bottom:15px;position:relative;padding-left:20px}.timeline-record-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,#007AFF 0%,rgba(0,122,255,.2) 100%)}.timeline-time{min-width:60px;font-size:13px;color:#666;padding-top:2px}.timeline-content{flex:1;display:flex;background:white;border-radius:12px;padding:12px;margin-left:10px;box-shadow:0 2px 10px #0000000d;transition:all .3s ease}.timeline-content:hover{transform:translateY(-2px);box-shadow:0 5px 15px #00000014}.timeline-icon{width:36px;height:36px;background:linear-gradient(135deg,#007AFF,#00C7BE);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;margin-right:12px}.timeline-details{flex:1}.timeline-title{font-weight:500;margin-bottom:5px;color:#333}.timeline-amount{font-size:14px;color:#007aff;font-weight:600}.records-container{margin-top:20px;max-height:400px;overflow-y:auto;padding:10px}.github-style .record-item{padding:16px;border-bottom:1px solid #e1e4e8;background:#fff;display:flex;align-items:center;transition:all .2s ease;transition:background-color .2s ease;border-radius:0}.github-style .record-item:last-child{border-bottom:none}.github-style .record-item:hover{background-color:#f6f8fa;transform:translate(4px);box-shadow:-4px 0 #0969da}.github-style .record-icon{margin-right:16px;color:#40c463;font-size:14px;background:#e6ffec;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:.8}.github-style .record-content{flex:1}.github-style .record-title{font-weight:500;color:#24292e;margin-bottom:4px;font-size:14px}.github-style .record-date{font-size:12px;color:#586069}.loading,.no-records{text-align:center;padding:2rem 0;color:#666;font-style:italic}.record-count{text-align:center;margin-top:1.5rem;padding:.8rem 0;color:#666;font-size:.9rem;border-top:1px solid #eee}.record-count span{color:#007aff;font-weight:600}@media (max-width: 768px){.modal-content{width:95%;max-height:85vh}.modal-body{padding:1rem}.record-item{padding:.7rem}}
